/* Generated automatically by the program `genmatch' from a IL pattern matching and simplification description. */ #include "gimple-match-head.c" bool gimple_power_of_two_cand (tree t, tree *res_ops, tree (*valueize)(tree) ATTRIBUTE_UNUSED) { tree type = TREE_TYPE (t); switch (TREE_CODE (t)) { case SSA_NAME: if (do_valueize (valueize, t) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (t); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case LSHIFT_EXPR: { tree op0 = gimple_assign_rhs1 (def); if ((op0 = do_valueize (valueize, op0))) { tree op1 = gimple_assign_rhs2 (def); if ((op1 = do_valueize (valueize, op1))) { switch (TREE_CODE (op0)) { case INTEGER_CST: { { /* #line 367 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 }; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:367, %s:%d\n", __FILE__, __LINE__); res_ops[0] = captures[0]; return true; } break; } default:; } } } break; } default:; } } break; case INTEGER_CST: { { /* #line 365 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { t }; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:365, %s:%d\n", __FILE__, __LINE__); res_ops[0] = captures[0]; return true; } break; } default:; } return false; } bool gimple_negate_expr_p (tree t, tree (*valueize)(tree) ATTRIBUTE_UNUSED) { tree type = TREE_TYPE (t); switch (TREE_CODE (t)) { case SSA_NAME: if (do_valueize (valueize, t) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (t); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case NEGATE_EXPR: { tree op0 = gimple_assign_rhs1 (def); if ((op0 = do_valueize (valueize, op0))) { { /* #line 846 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { op0 }; /* #line 846 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (!TYPE_OVERFLOW_SANITIZED (type)) { if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:845, %s:%d\n", __FILE__, __LINE__); return true; } } } break; } default:; } } break; case INTEGER_CST: { { /* #line 838 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ /* #line 838 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if ((INTEGRAL_TYPE_P (type) && TYPE_OVERFLOW_WRAPS (type)) || (!TYPE_OVERFLOW_SANITIZED (type) && may_negate_without_overflow_p (t))) { if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:837, %s:%d\n", __FILE__, __LINE__); return true; } } break; } case FIXED_CST: { { /* #line 843 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:843, %s:%d\n", __FILE__, __LINE__); return true; } break; } case REAL_CST: { { /* #line 849 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ /* #line 849 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (REAL_VALUE_NEGATIVE (TREE_REAL_CST (t))) { if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:848, %s:%d\n", __FILE__, __LINE__); return true; } } break; } case VECTOR_CST: { { /* #line 854 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ /* #line 854 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (FLOAT_TYPE_P (TREE_TYPE (type)) || TYPE_OVERFLOW_WRAPS (type)) { if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:853, %s:%d\n", __FILE__, __LINE__); return true; } } break; } default:; } return false; } bool gimple_truth_valued_p (tree t, tree (*valueize)(tree) ATTRIBUTE_UNUSED) { tree type = TREE_TYPE (t); { /* #line 934 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { t }; /* #line 934 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (INTEGRAL_TYPE_P (type) && TYPE_PRECISION (type) == 1) { if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:933, %s:%d\n", __FILE__, __LINE__); return true; } } switch (TREE_CODE (t)) { case SSA_NAME: if (do_valueize (valueize, t) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (t); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case LT_EXPR: { tree op0 = gimple_assign_rhs1 (def); if ((op0 = do_valueize (valueize, op0))) { tree op1 = gimple_assign_rhs2 (def); if ((op1 = do_valueize (valueize, op1))) { { /* #line 937 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 }; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:937, %s:%d\n", __FILE__, __LINE__); return true; } } } break; } case LE_EXPR: { tree op0 = gimple_assign_rhs1 (def); if ((op0 = do_valueize (valueize, op0))) { tree op1 = gimple_assign_rhs2 (def); if ((op1 = do_valueize (valueize, op1))) { { /* #line 937 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 }; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:937, %s:%d\n", __FILE__, __LINE__); return true; } } } break; } case EQ_EXPR: { tree op0 = gimple_assign_rhs1 (def); if ((op0 = do_valueize (valueize, op0))) { tree op1 = gimple_assign_rhs2 (def); if ((op1 = do_valueize (valueize, op1))) { if (tree_swap_operands_p (op0, op1)) std::swap (op0, op1); { /* #line 937 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 }; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:937, %s:%d\n", __FILE__, __LINE__); return true; } } } break; } case NE_EXPR: { tree op0 = gimple_assign_rhs1 (def); if ((op0 = do_valueize (valueize, op0))) { tree op1 = gimple_assign_rhs2 (def); if ((op1 = do_valueize (valueize, op1))) { if (tree_swap_operands_p (op0, op1)) std::swap (op0, op1); { /* #line 937 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 }; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:937, %s:%d\n", __FILE__, __LINE__); return true; } } } break; } case GE_EXPR: { tree op0 = gimple_assign_rhs1 (def); if ((op0 = do_valueize (valueize, op0))) { tree op1 = gimple_assign_rhs2 (def); if ((op1 = do_valueize (valueize, op1))) { { /* #line 937 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 }; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:937, %s:%d\n", __FILE__, __LINE__); return true; } } } break; } case GT_EXPR: { tree op0 = gimple_assign_rhs1 (def); if ((op0 = do_valueize (valueize, op0))) { tree op1 = gimple_assign_rhs2 (def); if ((op1 = do_valueize (valueize, op1))) { { /* #line 937 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 }; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:937, %s:%d\n", __FILE__, __LINE__); return true; } } } break; } case UNORDERED_EXPR: { tree op0 = gimple_assign_rhs1 (def); if ((op0 = do_valueize (valueize, op0))) { tree op1 = gimple_assign_rhs2 (def); if ((op1 = do_valueize (valueize, op1))) { if (tree_swap_operands_p (op0, op1)) std::swap (op0, op1); { /* #line 937 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 }; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:937, %s:%d\n", __FILE__, __LINE__); return true; } } } break; } case ORDERED_EXPR: { tree op0 = gimple_assign_rhs1 (def); if ((op0 = do_valueize (valueize, op0))) { tree op1 = gimple_assign_rhs2 (def); if ((op1 = do_valueize (valueize, op1))) { if (tree_swap_operands_p (op0, op1)) std::swap (op0, op1); { /* #line 937 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 }; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:937, %s:%d\n", __FILE__, __LINE__); return true; } } } break; } case UNLT_EXPR: { tree op0 = gimple_assign_rhs1 (def); if ((op0 = do_valueize (valueize, op0))) { tree op1 = gimple_assign_rhs2 (def); if ((op1 = do_valueize (valueize, op1))) { { /* #line 937 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 }; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:937, %s:%d\n", __FILE__, __LINE__); return true; } } } break; } case UNLE_EXPR: { tree op0 = gimple_assign_rhs1 (def); if ((op0 = do_valueize (valueize, op0))) { tree op1 = gimple_assign_rhs2 (def); if ((op1 = do_valueize (valueize, op1))) { { /* #line 937 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 }; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:937, %s:%d\n", __FILE__, __LINE__); return true; } } } break; } case UNGT_EXPR: { tree op0 = gimple_assign_rhs1 (def); if ((op0 = do_valueize (valueize, op0))) { tree op1 = gimple_assign_rhs2 (def); if ((op1 = do_valueize (valueize, op1))) { { /* #line 937 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 }; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:937, %s:%d\n", __FILE__, __LINE__); return true; } } } break; } case UNGE_EXPR: { tree op0 = gimple_assign_rhs1 (def); if ((op0 = do_valueize (valueize, op0))) { tree op1 = gimple_assign_rhs2 (def); if ((op1 = do_valueize (valueize, op1))) { { /* #line 937 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 }; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:937, %s:%d\n", __FILE__, __LINE__); return true; } } } break; } case UNEQ_EXPR: { tree op0 = gimple_assign_rhs1 (def); if ((op0 = do_valueize (valueize, op0))) { tree op1 = gimple_assign_rhs2 (def); if ((op1 = do_valueize (valueize, op1))) { if (tree_swap_operands_p (op0, op1)) std::swap (op0, op1); { /* #line 937 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 }; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:937, %s:%d\n", __FILE__, __LINE__); return true; } } } break; } case LTGT_EXPR: { tree op0 = gimple_assign_rhs1 (def); if ((op0 = do_valueize (valueize, op0))) { tree op1 = gimple_assign_rhs2 (def); if ((op1 = do_valueize (valueize, op1))) { if (tree_swap_operands_p (op0, op1)) std::swap (op0, op1); { /* #line 937 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 }; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:937, %s:%d\n", __FILE__, __LINE__); return true; } } } break; } case TRUTH_AND_EXPR: { tree op0 = gimple_assign_rhs1 (def); if ((op0 = do_valueize (valueize, op0))) { tree op1 = gimple_assign_rhs2 (def); if ((op1 = do_valueize (valueize, op1))) { if (tree_swap_operands_p (op0, op1)) std::swap (op0, op1); { /* #line 937 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 }; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:937, %s:%d\n", __FILE__, __LINE__); return true; } } } break; } case TRUTH_ANDIF_EXPR: { tree op0 = gimple_assign_rhs1 (def); if ((op0 = do_valueize (valueize, op0))) { tree op1 = gimple_assign_rhs2 (def); if ((op1 = do_valueize (valueize, op1))) { { /* #line 937 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 }; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:937, %s:%d\n", __FILE__, __LINE__); return true; } } } break; } case TRUTH_OR_EXPR: { tree op0 = gimple_assign_rhs1 (def); if ((op0 = do_valueize (valueize, op0))) { tree op1 = gimple_assign_rhs2 (def); if ((op1 = do_valueize (valueize, op1))) { if (tree_swap_operands_p (op0, op1)) std::swap (op0, op1); { /* #line 937 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 }; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:937, %s:%d\n", __FILE__, __LINE__); return true; } } } break; } case TRUTH_ORIF_EXPR: { tree op0 = gimple_assign_rhs1 (def); if ((op0 = do_valueize (valueize, op0))) { tree op1 = gimple_assign_rhs2 (def); if ((op1 = do_valueize (valueize, op1))) { { /* #line 937 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 }; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:937, %s:%d\n", __FILE__, __LINE__); return true; } } } break; } case TRUTH_XOR_EXPR: { tree op0 = gimple_assign_rhs1 (def); if ((op0 = do_valueize (valueize, op0))) { tree op1 = gimple_assign_rhs2 (def); if ((op1 = do_valueize (valueize, op1))) { if (tree_swap_operands_p (op0, op1)) std::swap (op0, op1); { /* #line 937 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 }; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:937, %s:%d\n", __FILE__, __LINE__); return true; } } } break; } case TRUTH_NOT_EXPR: { tree op0 = gimple_assign_rhs1 (def); if ((op0 = do_valueize (valueize, op0))) { { /* #line 939 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { op0 }; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:939, %s:%d\n", __FILE__, __LINE__); return true; } } break; } default:; } } break; default:; } return false; } bool gimple_logical_inverted_value (tree t, tree *res_ops, tree (*valueize)(tree) ATTRIBUTE_UNUSED) { tree type = TREE_TYPE (t); switch (TREE_CODE (t)) { case SSA_NAME: if (do_valueize (valueize, t) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (t); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case TRUTH_NOT_EXPR: { tree op0 = gimple_assign_rhs1 (def); if ((op0 = do_valueize (valueize, op0))) { { /* #line 941 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { op0 }; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:941, %s:%d\n", __FILE__, __LINE__); res_ops[0] = captures[0]; return true; } } break; } case BIT_NOT_EXPR: { tree op0 = gimple_assign_rhs1 (def); if ((op0 = do_valueize (valueize, op0))) { if (gimple_truth_valued_p (op0, valueize)) { { /* #line 943 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { op0 }; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:943, %s:%d\n", __FILE__, __LINE__); res_ops[0] = captures[0]; return true; } } } break; } case EQ_EXPR: { tree op0 = gimple_assign_rhs1 (def); if ((op0 = do_valueize (valueize, op0))) { tree op1 = gimple_assign_rhs2 (def); if ((op1 = do_valueize (valueize, op1))) { if (tree_swap_operands_p (op0, op1)) std::swap (op0, op1); if (integer_zerop (op1)) { { /* #line 945 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { op0 }; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:945, %s:%d\n", __FILE__, __LINE__); res_ops[0] = captures[0]; return true; } } } } break; } case NE_EXPR: { tree op0 = gimple_assign_rhs1 (def); if ((op0 = do_valueize (valueize, op0))) { tree op1 = gimple_assign_rhs2 (def); if ((op1 = do_valueize (valueize, op1))) { if (tree_swap_operands_p (op0, op1)) std::swap (op0, op1); if (gimple_truth_valued_p (op0, valueize)) { if (integer_truep (op1)) { { /* #line 947 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { op0 }; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:947, %s:%d\n", __FILE__, __LINE__); res_ops[0] = captures[0]; return true; } } } } } break; } case BIT_XOR_EXPR: { tree op0 = gimple_assign_rhs1 (def); if ((op0 = do_valueize (valueize, op0))) { tree op1 = gimple_assign_rhs2 (def); if ((op1 = do_valueize (valueize, op1))) { if (tree_swap_operands_p (op0, op1)) std::swap (op0, op1); if (gimple_truth_valued_p (op0, valueize)) { if (integer_truep (op1)) { { /* #line 949 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { op0 }; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:949, %s:%d\n", __FILE__, __LINE__); res_ops[0] = captures[0]; return true; } } } } } break; } default:; } } break; default:; } return false; } bool gimple_compositional_complex (tree t, tree (*valueize)(tree) ATTRIBUTE_UNUSED) { tree type = TREE_TYPE (t); switch (TREE_CODE (t)) { case SSA_NAME: if (do_valueize (valueize, t) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (t); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { CASE_CONVERT: { tree op0 = gimple_assign_rhs1 (def); if ((op0 = do_valueize (valueize, op0))) { switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case COMPLEX_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { { /* #line 1934 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 }; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1934, %s:%d\n", __FILE__, __LINE__); return true; } } } break; } default:; } } break; default:; } } break; } case COMPLEX_EXPR: { tree op0 = gimple_assign_rhs1 (def); if ((op0 = do_valueize (valueize, op0))) { tree op1 = gimple_assign_rhs2 (def); if ((op1 = do_valueize (valueize, op1))) { { /* #line 1934 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 }; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1934, %s:%d\n", __FILE__, __LINE__); return true; } } } break; } default:; } } break; default:; } return false; } bool gimple_double_value_p (tree t, tree (*valueize)(tree) ATTRIBUTE_UNUSED) { tree type = TREE_TYPE (t); { /* #line 3441 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { t }; /* #line 3441 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (TYPE_MAIN_VARIANT (TREE_TYPE (captures[0])) == double_type_node) { if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3440, %s:%d\n", __FILE__, __LINE__); return true; } } return false; } bool gimple_float_value_p (tree t, tree (*valueize)(tree) ATTRIBUTE_UNUSED) { tree type = TREE_TYPE (t); { /* #line 3462 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { t }; /* #line 3462 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (TYPE_MAIN_VARIANT (TREE_TYPE (captures[0])) == float_type_node) { if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3461, %s:%d\n", __FILE__, __LINE__); return true; } } return false; } static bool gimple_simplify_1 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , combined_fn ARG_UNUSED (minmax)) { /* #line 1423 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (real_isnan (TREE_REAL_CST_PTR (captures[1])) && (!HONOR_SNANS (captures[1]) || !TREE_REAL_CST (captures[1]).signalling)) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1425, %s:%d\n", __FILE__, __LINE__); res_ops[0] = captures[0]; *res_code = TREE_CODE (res_ops[0]); return true; } return false; } static bool gimple_simplify_2 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , enum tree_code ARG_UNUSED (cmp)) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2363, %s:%d\n", __FILE__, __LINE__); res_ops[0] = constant_boolean_node (true, type); *res_code = TREE_CODE (res_ops[0]); return true; return false; } static bool gimple_simplify_3 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) ) { /* #line 1009 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (tree_nop_conversion_p (type, TREE_TYPE (captures[0])) && tree_nop_conversion_p (type, TREE_TYPE (captures[3]))) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[1]) || !single_use (captures[2]))) lseq = NULL; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1011, %s:%d\n", __FILE__, __LINE__); *res_code = NOP_EXPR; { tree ops1[2], res; { tree ops2[1], res; ops2[0] = captures[3]; code_helper tem_code = BIT_NOT_EXPR; tree tem_ops[3] = { ops2[0] }; gimple_resimplify1 (lseq, &tem_code, TREE_TYPE (ops2[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops2[0]), tem_ops, lseq); if (!res) return false; ops1[0] = res; } ops1[1] = captures[0]; code_helper tem_code = BIT_AND_EXPR; tree tem_ops[3] = { ops1[0], ops1[1] }; gimple_resimplify2 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[0] = res; } gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } return false; } static bool gimple_simplify_4 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , enum tree_code ARG_UNUSED (bit_op), enum tree_code ARG_UNUSED (shift)) { /* #line 1694 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (tree_nop_conversion_p (type, TREE_TYPE (captures[2]))) { { /* #line 1695 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree mask = int_const_binop (shift, fold_convert (type, captures[3]), captures[4]); gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[1]))) lseq = NULL; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1696, %s:%d\n", __FILE__, __LINE__); *res_code = bit_op; { tree ops1[2], res; { tree ops2[1], res; ops2[0] = captures[2]; if (type != TREE_TYPE (ops2[0]) && !useless_type_conversion_p (type, TREE_TYPE (ops2[0]))) { code_helper tem_code = NOP_EXPR; tree tem_ops[3] = { ops2[0] }; gimple_resimplify1 (lseq, &tem_code, type, tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, type, tem_ops, lseq); if (!res) return false; } else res = ops2[0]; ops1[0] = res; } ops1[1] = captures[4]; code_helper tem_code = shift; tree tem_ops[3] = { ops1[0], ops1[1] }; gimple_resimplify2 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[0] = res; } res_ops[1] = mask; gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } return false; } static bool gimple_simplify_5 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , enum tree_code ARG_UNUSED (cmp)) { /* #line 3064 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (single_use (captures[0]) && ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[1])) && TYPE_UNSIGNED (TREE_TYPE (captures[1])) && TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[1]))) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3068, %s:%d\n", __FILE__, __LINE__); *res_code = cmp; res_ops[0] = captures[2]; res_ops[1] = captures[1]; gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } return false; } static bool gimple_simplify_6 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , enum tree_code ARG_UNUSED (shiftrotate)) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1518, %s:%d\n", __FILE__, __LINE__); res_ops[0] = captures[0]; *res_code = TREE_CODE (res_ops[0]); return true; return false; } static bool gimple_simplify_7 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , enum tree_code ARG_UNUSED (op), enum tree_code ARG_UNUSED (ext)) { /* #line 3691 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (INTEGRAL_TYPE_P (TREE_TYPE (captures[1])) && TREE_CODE (captures[1]) != INTEGER_CST) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[3]))) lseq = NULL; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3693, %s:%d\n", __FILE__, __LINE__); *res_code = op; res_ops[0] = captures[1]; { tree ops1[2], res; ops1[0] = captures[2]; ops1[1] = captures[4]; code_helper tem_code = ext; tree tem_ops[3] = { ops1[0], ops1[1] }; gimple_resimplify2 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[1] = res; } gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } return false; } static bool gimple_simplify_8 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , enum tree_code ARG_UNUSED (cmp)) { /* #line 595 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (TYPE_UNSIGNED (TREE_TYPE (captures[0]))) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:596, %s:%d\n", __FILE__, __LINE__); res_ops[0] = constant_boolean_node (cmp == LT_EXPR, type); *res_code = TREE_CODE (res_ops[0]); return true; } return false; } static bool gimple_simplify_9 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , enum tree_code ARG_UNUSED (mod)) { /* #line 372 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if ((TYPE_UNSIGNED (type) || tree_expr_nonnegative_p (captures[0])) && tree_nop_conversion_p (type, TREE_TYPE (captures[1])) && integer_pow2p (captures[3]) && tree_int_cst_sgn (captures[3]) > 0) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:376, %s:%d\n", __FILE__, __LINE__); *res_code = BIT_AND_EXPR; res_ops[0] = captures[0]; { tree ops1[1], res; { tree ops2[2], res; ops2[0] = captures[2]; ops2[1] = build_int_cst (TREE_TYPE (captures[2]), 1); code_helper tem_code = MINUS_EXPR; tree tem_ops[3] = { ops2[0], ops2[1] }; gimple_resimplify2 (lseq, &tem_code, TREE_TYPE (ops2[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops2[0]), tem_ops, lseq); if (!res) return false; ops1[0] = res; } if (type != TREE_TYPE (ops1[0]) && !useless_type_conversion_p (type, TREE_TYPE (ops1[0]))) { code_helper tem_code = NOP_EXPR; tree tem_ops[3] = { ops1[0] }; gimple_resimplify1 (lseq, &tem_code, type, tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, type, tem_ops, lseq); if (!res) return false; } else res = ops1[0]; res_ops[1] = res; } gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } return false; } static bool gimple_simplify_10 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , enum tree_code ARG_UNUSED (cmp), enum tree_code ARG_UNUSED (out)) { /* #line 3094 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (TYPE_UNSIGNED (TREE_TYPE (captures[2])) && !VECTOR_TYPE_P (TREE_TYPE (captures[2]))) { { /* #line 3095 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree t = TREE_TYPE (captures[2]), cpx = build_complex_type (t); gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]))) lseq = NULL; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3096, %s:%d\n", __FILE__, __LINE__); *res_code = out; { tree ops1[1], res; { tree ops2[2], res; ops2[0] = captures[2]; ops2[1] = captures[1]; code_helper tem_code = CFN_MUL_OVERFLOW; tree tem_ops[3] = { ops2[0], ops2[1] }; gimple_resimplify2 (lseq, &tem_code, cpx, tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, cpx, tem_ops, lseq); if (!res) return false; ops1[0] = res; } code_helper tem_code = IMAGPART_EXPR; tree tem_ops[3] = { ops1[0] }; gimple_resimplify1 (lseq, &tem_code, TREE_TYPE (TREE_TYPE (ops1[0])), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (TREE_TYPE (ops1[0])), tem_ops, lseq); if (!res) return false; res_ops[0] = res; } res_ops[1] = build_zero_cst (t); gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } return false; } static bool gimple_simplify_11 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) ) { /* #line 1147 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (!TYPE_SATURATING (type)) { /* #line 1186 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if ((!FLOAT_TYPE_P (type) || flag_associative_math) && !FIXED_POINT_TYPE_P (type)) { /* #line 1242 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (!TYPE_OVERFLOW_TRAPS (type)) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1243, %s:%d\n", __FILE__, __LINE__); res_ops[0] = build_all_ones_cst (type); *res_code = TREE_CODE (res_ops[0]); return true; } } } return false; } static bool gimple_simplify_12 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) ) { /* #line 866 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (!HONOR_SIGN_DEPENDENT_ROUNDING (element_mode (type)) && !HONOR_SIGNED_ZEROS (element_mode (type))) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:868, %s:%d\n", __FILE__, __LINE__); *res_code = MINUS_EXPR; { tree ops1[1], res; ops1[0] = captures[1]; code_helper tem_code = NEGATE_EXPR; tree tem_ops[3] = { ops1[0] }; gimple_resimplify1 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[0] = res; } res_ops[1] = captures[0]; gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } return false; } static bool gimple_simplify_13 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , enum tree_code ARG_UNUSED (op)) { /* #line 812 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (tree_nop_conversion_p (type, TREE_TYPE (captures[3])) && tree_nop_conversion_p (type, TREE_TYPE (captures[6]))) { /* #line 814 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (single_use (captures[4]) && single_use (captures[5])) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:815, %s:%d\n", __FILE__, __LINE__); *res_code = op; res_ops[0] = captures[0]; { tree ops1[1], res; ops1[0] = captures[6]; if (type != TREE_TYPE (ops1[0]) && !useless_type_conversion_p (type, TREE_TYPE (ops1[0]))) { code_helper tem_code = NOP_EXPR; tree tem_ops[3] = { ops1[0] }; gimple_resimplify1 (lseq, &tem_code, type, tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, type, tem_ops, lseq); if (!res) return false; } else res = ops1[0]; res_ops[1] = res; } gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } else { /* #line 816 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (single_use (captures[0]) && single_use (captures[1])) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:817, %s:%d\n", __FILE__, __LINE__); *res_code = op; { tree ops1[1], res; ops1[0] = captures[3]; if (type != TREE_TYPE (ops1[0]) && !useless_type_conversion_p (type, TREE_TYPE (ops1[0]))) { code_helper tem_code = NOP_EXPR; tree tem_ops[3] = { ops1[0] }; gimple_resimplify1 (lseq, &tem_code, type, tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, type, tem_ops, lseq); if (!res) return false; } else res = ops1[0]; res_ops[0] = res; } res_ops[1] = captures[4]; gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } } return false; } static bool gimple_simplify_14 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) ) { /* #line 1701 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (!TYPE_UNSIGNED (TREE_TYPE (captures[2])) && (element_precision (TREE_TYPE (captures[2])) <= element_precision (TREE_TYPE (captures[3])) || !TYPE_UNSIGNED (TREE_TYPE (captures[3])))) { { /* #line 1705 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree shift_type = TREE_TYPE (captures[2]); gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[1]))) lseq = NULL; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1707, %s:%d\n", __FILE__, __LINE__); *res_code = NOP_EXPR; { tree ops1[2], res; { tree ops2[1], res; ops2[0] = captures[3]; if (shift_type != TREE_TYPE (ops2[0]) && !useless_type_conversion_p (shift_type, TREE_TYPE (ops2[0]))) { code_helper tem_code = NOP_EXPR; tree tem_ops[3] = { ops2[0] }; gimple_resimplify1 (lseq, &tem_code, shift_type, tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, shift_type, tem_ops, lseq); if (!res) return false; } else res = ops2[0]; ops1[0] = res; } ops1[1] = captures[4]; code_helper tem_code = RSHIFT_EXPR; tree tem_ops[3] = { ops1[0], ops1[1] }; gimple_resimplify2 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[0] = res; } gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } return false; } static bool gimple_simplify_15 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , combined_fn ARG_UNUSED (floors), combined_fn ARG_UNUSED (truncs)) { /* #line 3431 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (canonicalize_math_p ()) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3437, %s:%d\n", __FILE__, __LINE__); *res_code = truncs; res_ops[0] = captures[0]; gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } return false; } static bool gimple_simplify_16 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , enum tree_code ARG_UNUSED (op), enum tree_code ARG_UNUSED (rop)) { /* #line 739 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (element_precision (type) <= element_precision (TREE_TYPE (captures[0])) && element_precision (type) <= element_precision (TREE_TYPE (captures[1]))) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:741, %s:%d\n", __FILE__, __LINE__); *res_code = BIT_NOT_EXPR; { tree ops1[2], res; { tree ops2[1], res; ops2[0] = captures[0]; if (type != TREE_TYPE (ops2[0]) && !useless_type_conversion_p (type, TREE_TYPE (ops2[0]))) { code_helper tem_code = NOP_EXPR; tree tem_ops[3] = { ops2[0] }; gimple_resimplify1 (lseq, &tem_code, type, tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, type, tem_ops, lseq); if (!res) return false; } else res = ops2[0]; ops1[0] = res; } { tree ops2[1], res; ops2[0] = captures[1]; if (type != TREE_TYPE (ops2[0]) && !useless_type_conversion_p (type, TREE_TYPE (ops2[0]))) { code_helper tem_code = NOP_EXPR; tree tem_ops[3] = { ops2[0] }; gimple_resimplify1 (lseq, &tem_code, type, tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, type, tem_ops, lseq); if (!res) return false; } else res = ops2[0]; ops1[1] = res; } code_helper tem_code = rop; tree tem_ops[3] = { ops1[0], ops1[1] }; gimple_resimplify2 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[0] = res; } gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } return false; } static bool gimple_simplify_17 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , enum tree_code ARG_UNUSED (mod)) { /* #line 309 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (!TYPE_UNSIGNED (type)) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:310, %s:%d\n", __FILE__, __LINE__); res_ops[0] = build_zero_cst (type); *res_code = TREE_CODE (res_ops[0]); return true; } return false; } static bool gimple_simplify_18 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , enum tree_code ARG_UNUSED (mod)) { /* #line 324 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (ANY_INTEGRAL_TYPE_P (type) && TYPE_OVERFLOW_UNDEFINED (type) && wi::multiple_of_p (captures[1], captures[2], TYPE_SIGN (type))) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:327, %s:%d\n", __FILE__, __LINE__); res_ops[0] = build_zero_cst (type); *res_code = TREE_CODE (res_ops[0]); return true; } return false; } static bool gimple_simplify_19 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) ) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1351, %s:%d\n", __FILE__, __LINE__); res_ops[0] = captures[1]; *res_code = TREE_CODE (res_ops[0]); return true; return false; } static bool gimple_simplify_20 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) ) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2635, %s:%d\n", __FILE__, __LINE__); res_ops[0] = captures[1]; *res_code = TREE_CODE (res_ops[0]); return true; return false; } static bool gimple_simplify_21 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , enum tree_code ARG_UNUSED (op)) { { /* #line 1558 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ unsigned int prec = element_precision (type); /* #line 1559 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (wi::ge_p (captures[1], 0, TYPE_SIGN (TREE_TYPE (captures[1]))) && wi::lt_p (captures[1], prec, TYPE_SIGN (TREE_TYPE (captures[1]))) && wi::ge_p (captures[2], 0, TYPE_SIGN (TREE_TYPE (captures[2]))) && wi::lt_p (captures[2], prec, TYPE_SIGN (TREE_TYPE (captures[2])))) { { /* #line 1563 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ unsigned int low = wi::add (captures[1], captures[2]).to_uhwi (); /* #line 1566 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (low >= prec) { /* #line 1567 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (op == LROTATE_EXPR || op == RROTATE_EXPR) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1568, %s:%d\n", __FILE__, __LINE__); *res_code = op; res_ops[0] = captures[0]; res_ops[1] = build_int_cst (TREE_TYPE (captures[1]), low % prec); gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } else { /* #line 1569 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (TYPE_UNSIGNED (type) || op == LSHIFT_EXPR) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1570, %s:%d\n", __FILE__, __LINE__); res_ops[0] = build_zero_cst (type); *res_code = TREE_CODE (res_ops[0]); return true; } else { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1571, %s:%d\n", __FILE__, __LINE__); *res_code = op; res_ops[0] = captures[0]; res_ops[1] = build_int_cst (TREE_TYPE (captures[1]), prec - 1); gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } } else { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1572, %s:%d\n", __FILE__, __LINE__); *res_code = op; res_ops[0] = captures[0]; res_ops[1] = build_int_cst (TREE_TYPE (captures[1]), low); gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } } } return false; } static bool gimple_simplify_22 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , enum tree_code ARG_UNUSED (test1), enum tree_code ARG_UNUSED (test2)) { /* #line 2651 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0])) || VECTOR_INTEGER_TYPE_P (TREE_TYPE (captures[0]))) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2653, %s:%d\n", __FILE__, __LINE__); res_ops[0] = constant_boolean_node (false, type); *res_code = TREE_CODE (res_ops[0]); return true; } return false; } static bool gimple_simplify_23 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , enum tree_code ARG_UNUSED (cmp), enum tree_code ARG_UNUSED (icmp)) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1581, %s:%d\n", __FILE__, __LINE__); *res_code = icmp; res_ops[0] = captures[0]; res_ops[1] = build_zero_cst (TREE_TYPE (captures[0])); gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; return false; } static bool gimple_simplify_24 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) ) { /* #line 2800 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (integer_pow2p (captures[2])) { { /* #line 2801 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ int shift = wi::exact_log2 (captures[2]) - wi::exact_log2 (captures[1]); /* #line 2804 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (shift > 0) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2805, %s:%d\n", __FILE__, __LINE__); *res_code = BIT_AND_EXPR; { tree ops1[2], res; { tree ops2[1], res; ops2[0] = captures[0]; if (type != TREE_TYPE (ops2[0]) && !useless_type_conversion_p (type, TREE_TYPE (ops2[0]))) { code_helper tem_code = NOP_EXPR; tree tem_ops[3] = { ops2[0] }; gimple_resimplify1 (lseq, &tem_code, type, tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, type, tem_ops, lseq); if (!res) return false; } else res = ops2[0]; ops1[0] = res; } ops1[1] = build_int_cst (integer_type_node, shift); code_helper tem_code = LSHIFT_EXPR; tree tem_ops[3] = { ops1[0], ops1[1] }; gimple_resimplify2 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[0] = res; } res_ops[1] = captures[2]; gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } else { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2807, %s:%d\n", __FILE__, __LINE__); *res_code = BIT_AND_EXPR; { tree ops1[1], res; { tree ops2[2], res; ops2[0] = captures[0]; ops2[1] = build_int_cst (integer_type_node, -shift); code_helper tem_code = RSHIFT_EXPR; tree tem_ops[3] = { ops2[0], ops2[1] }; gimple_resimplify2 (lseq, &tem_code, TREE_TYPE (ops2[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops2[0]), tem_ops, lseq); if (!res) return false; ops1[0] = res; } if (type != TREE_TYPE (ops1[0]) && !useless_type_conversion_p (type, TREE_TYPE (ops1[0]))) { code_helper tem_code = NOP_EXPR; tree tem_ops[3] = { ops1[0] }; gimple_resimplify1 (lseq, &tem_code, type, tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, type, tem_ops, lseq); if (!res) return false; } else res = ops1[0]; res_ops[0] = res; } res_ops[1] = captures[2]; gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } } return false; } static bool gimple_simplify_25 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , enum tree_code ARG_UNUSED (div)) { /* #line 182 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if ((INTEGRAL_TYPE_P (type) || VECTOR_INTEGER_TYPE_P (type)) && TYPE_OVERFLOW_UNDEFINED (type)) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:184, %s:%d\n", __FILE__, __LINE__); res_ops[0] = build_minus_one_cst (type); *res_code = TREE_CODE (res_ops[0]); return true; } return false; } static bool gimple_simplify_26 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , enum tree_code ARG_UNUSED (cmp)) { /* #line 2683 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0])) && !(targetm.have_canonicalize_funcptr_for_compare () && TREE_CODE (TREE_TYPE (captures[1])) == POINTER_TYPE && TREE_CODE (TREE_TYPE (TREE_TYPE (captures[1]))) == FUNCTION_TYPE) && single_use (captures[0])) { /* #line 2690 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (TYPE_PRECISION (TREE_TYPE (captures[1])) == TYPE_PRECISION (TREE_TYPE (captures[0])) && (TREE_CODE (captures[3]) == INTEGER_CST || (captures[2] != captures[3] && types_match (TREE_TYPE (captures[3]), TREE_TYPE (captures[1])))) && (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])) == POINTER_TYPE_P (TREE_TYPE (captures[0])))) { /* #line 2700 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (TREE_CODE (captures[2]) == INTEGER_CST) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2701, %s:%d\n", __FILE__, __LINE__); *res_code = cmp; res_ops[0] = captures[1]; res_ops[1] = force_fit_type (TREE_TYPE (captures[1]), wi::to_widest (captures[2]), 0, TREE_OVERFLOW (captures[2])); gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } else { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2703, %s:%d\n", __FILE__, __LINE__); *res_code = cmp; res_ops[0] = captures[1]; { tree ops1[1], res; ops1[0] = captures[2]; if (TREE_TYPE (res_ops[0]) != TREE_TYPE (ops1[0]) && !useless_type_conversion_p (TREE_TYPE (res_ops[0]), TREE_TYPE (ops1[0]))) { code_helper tem_code = NOP_EXPR; tree tem_ops[3] = { ops1[0] }; gimple_resimplify1 (lseq, &tem_code, TREE_TYPE (res_ops[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (res_ops[0]), tem_ops, lseq); if (!res) return false; } else res = ops1[0]; res_ops[1] = res; } gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } else { /* #line 2705 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (TYPE_PRECISION (TREE_TYPE (captures[0])) > TYPE_PRECISION (TREE_TYPE (captures[1]))) { /* #line 2707 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if ((cmp == EQ_EXPR || cmp == NE_EXPR || TYPE_UNSIGNED (TREE_TYPE (captures[0])) == TYPE_UNSIGNED (TREE_TYPE (captures[1])) || (!TYPE_UNSIGNED (TREE_TYPE (captures[0])) && TYPE_UNSIGNED (TREE_TYPE (captures[1])))) && (types_match (TREE_TYPE (captures[3]), TREE_TYPE (captures[1])) || ((TYPE_PRECISION (TREE_TYPE (captures[1])) >= TYPE_PRECISION (TREE_TYPE (captures[3]))) && (TYPE_UNSIGNED (TREE_TYPE (captures[1])) == TYPE_UNSIGNED (TREE_TYPE (captures[3])))) || (TREE_CODE (captures[3]) == INTEGER_CST && INTEGRAL_TYPE_P (TREE_TYPE (captures[1])) && int_fits_type_p (captures[3], TREE_TYPE (captures[1]))))) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2719, %s:%d\n", __FILE__, __LINE__); *res_code = cmp; res_ops[0] = captures[1]; { tree ops1[1], res; ops1[0] = captures[3]; if (TREE_TYPE (res_ops[0]) != TREE_TYPE (ops1[0]) && !useless_type_conversion_p (TREE_TYPE (res_ops[0]), TREE_TYPE (ops1[0]))) { code_helper tem_code = NOP_EXPR; tree tem_ops[3] = { ops1[0] }; gimple_resimplify1 (lseq, &tem_code, TREE_TYPE (res_ops[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (res_ops[0]), tem_ops, lseq); if (!res) return false; } else res = ops1[0]; res_ops[1] = res; } gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } else { /* #line 2720 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (TREE_CODE (captures[3]) == INTEGER_CST && INTEGRAL_TYPE_P (TREE_TYPE (captures[1])) && !int_fits_type_p (captures[3], TREE_TYPE (captures[1]))) { { /* #line 2723 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree min = lower_bound_in_type (TREE_TYPE (captures[3]), TREE_TYPE (captures[1])); tree max = upper_bound_in_type (TREE_TYPE (captures[3]), TREE_TYPE (captures[1])); bool above = integer_nonzerop (const_binop (LT_EXPR, type, max, captures[3])); bool below = integer_nonzerop (const_binop (LT_EXPR, type, captures[3], min)); /* #line 2730 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (above || below) { /* #line 2731 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (cmp == EQ_EXPR || cmp == NE_EXPR) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2732, %s:%d\n", __FILE__, __LINE__); res_ops[0] = constant_boolean_node (cmp == EQ_EXPR ? false : true, type); *res_code = TREE_CODE (res_ops[0]); return true; } else { /* #line 2733 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (cmp == LT_EXPR || cmp == LE_EXPR) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2734, %s:%d\n", __FILE__, __LINE__); res_ops[0] = constant_boolean_node (above ? true : false, type); *res_code = TREE_CODE (res_ops[0]); return true; } else { /* #line 2735 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (cmp == GT_EXPR || cmp == GE_EXPR) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2736, %s:%d\n", __FILE__, __LINE__); res_ops[0] = constant_boolean_node (above ? false : true, type); *res_code = TREE_CODE (res_ops[0]); return true; } } } } } } } } } } return false; } static bool gimple_simplify_27 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , combined_fn ARG_UNUSED (copysigns)) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:484, %s:%d\n", __FILE__, __LINE__); *res_code = copysigns; res_ops[0] = captures[0]; res_ops[1] = captures[2]; gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; return false; } static bool gimple_simplify_28 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , combined_fn ARG_UNUSED (copysigns)) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:490, %s:%d\n", __FILE__, __LINE__); *res_code = MULT_EXPR; res_ops[0] = captures[1]; res_ops[1] = captures[1]; gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; return false; } static bool gimple_simplify_29 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) ) { /* #line 230 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (SCALAR_FLOAT_TYPE_P (type) && ! HONOR_NANS (type) && ! HONOR_INFINITIES (type)) { /* #line 234 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (types_match (type, float_type_node)) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:235, %s:%d\n", __FILE__, __LINE__); *res_code = CFN_BUILT_IN_COPYSIGNF; res_ops[0] = build_one_cst (type); { tree ops1[1], res; ops1[0] = captures[0]; if (type != TREE_TYPE (ops1[0]) && !useless_type_conversion_p (type, TREE_TYPE (ops1[0]))) { code_helper tem_code = NOP_EXPR; tree tem_ops[3] = { ops1[0] }; gimple_resimplify1 (lseq, &tem_code, type, tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, type, tem_ops, lseq); if (!res) return false; } else res = ops1[0]; res_ops[1] = res; } gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } else { /* #line 236 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (types_match (type, double_type_node)) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:237, %s:%d\n", __FILE__, __LINE__); *res_code = CFN_BUILT_IN_COPYSIGN; res_ops[0] = build_one_cst (type); { tree ops1[1], res; ops1[0] = captures[0]; if (type != TREE_TYPE (ops1[0]) && !useless_type_conversion_p (type, TREE_TYPE (ops1[0]))) { code_helper tem_code = NOP_EXPR; tree tem_ops[3] = { ops1[0] }; gimple_resimplify1 (lseq, &tem_code, type, tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, type, tem_ops, lseq); if (!res) return false; } else res = ops1[0]; res_ops[1] = res; } gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } else { /* #line 238 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (types_match (type, long_double_type_node)) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:239, %s:%d\n", __FILE__, __LINE__); *res_code = CFN_BUILT_IN_COPYSIGNL; res_ops[0] = build_one_cst (type); { tree ops1[1], res; ops1[0] = captures[0]; if (type != TREE_TYPE (ops1[0]) && !useless_type_conversion_p (type, TREE_TYPE (ops1[0]))) { code_helper tem_code = NOP_EXPR; tree tem_ops[3] = { ops1[0] }; gimple_resimplify1 (lseq, &tem_code, type, tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, type, tem_ops, lseq); if (!res) return false; } else res = ops1[0]; res_ops[1] = res; } gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } } } return false; } static bool gimple_simplify_30 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , enum tree_code ARG_UNUSED (op)) { /* #line 812 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (tree_nop_conversion_p (type, TREE_TYPE (captures[3])) && tree_nop_conversion_p (type, TREE_TYPE (captures[6]))) { /* #line 814 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (single_use (captures[4]) && single_use (captures[5])) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:815, %s:%d\n", __FILE__, __LINE__); *res_code = op; res_ops[0] = captures[0]; { tree ops1[1], res; ops1[0] = captures[6]; if (type != TREE_TYPE (ops1[0]) && !useless_type_conversion_p (type, TREE_TYPE (ops1[0]))) { code_helper tem_code = NOP_EXPR; tree tem_ops[3] = { ops1[0] }; gimple_resimplify1 (lseq, &tem_code, type, tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, type, tem_ops, lseq); if (!res) return false; } else res = ops1[0]; res_ops[1] = res; } gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } else { /* #line 816 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (single_use (captures[0]) && single_use (captures[1])) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:817, %s:%d\n", __FILE__, __LINE__); *res_code = op; { tree ops1[1], res; ops1[0] = captures[3]; if (type != TREE_TYPE (ops1[0]) && !useless_type_conversion_p (type, TREE_TYPE (ops1[0]))) { code_helper tem_code = NOP_EXPR; tree tem_ops[3] = { ops1[0] }; gimple_resimplify1 (lseq, &tem_code, type, tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, type, tem_ops, lseq); if (!res) return false; } else res = ops1[0]; res_ops[0] = res; } res_ops[1] = captures[4]; gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } } return false; } static bool gimple_simplify_31 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , enum tree_code ARG_UNUSED (cmp)) { /* #line 2954 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if ((INTEGRAL_TYPE_P (TREE_TYPE (captures[2])) || POINTER_TYPE_P (TREE_TYPE (captures[2]))) && tree_nop_conversion_p (TREE_TYPE (captures[0]), TREE_TYPE (captures[1]))) { { /* #line 2956 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree arg1_type = TREE_TYPE (captures[2]); 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 2965 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (wi::eq_p (captures[2], max)) { /* #line 2967 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (cmp == GT_EXPR) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2968, %s:%d\n", __FILE__, __LINE__); res_ops[0] = constant_boolean_node (false, type); *res_code = TREE_CODE (res_ops[0]); return true; } else { /* #line 2969 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (cmp == GE_EXPR) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2970, %s:%d\n", __FILE__, __LINE__); *res_code = EQ_EXPR; res_ops[0] = captures[0]; res_ops[1] = captures[2]; gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } else { /* #line 2971 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (cmp == LE_EXPR) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2972, %s:%d\n", __FILE__, __LINE__); res_ops[0] = constant_boolean_node (true, type); *res_code = TREE_CODE (res_ops[0]); return true; } else { /* #line 2973 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (cmp == LT_EXPR) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2974, %s:%d\n", __FILE__, __LINE__); *res_code = NE_EXPR; res_ops[0] = captures[0]; res_ops[1] = captures[2]; gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } } } } else { /* #line 2975 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (wi::eq_p (captures[2], min)) { /* #line 2977 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (cmp == LT_EXPR) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2978, %s:%d\n", __FILE__, __LINE__); res_ops[0] = constant_boolean_node (false, type); *res_code = TREE_CODE (res_ops[0]); return true; } else { /* #line 2979 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (cmp == LE_EXPR) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2980, %s:%d\n", __FILE__, __LINE__); *res_code = EQ_EXPR; res_ops[0] = captures[0]; res_ops[1] = captures[2]; gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } else { /* #line 2981 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (cmp == GE_EXPR) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2982, %s:%d\n", __FILE__, __LINE__); res_ops[0] = constant_boolean_node (true, type); *res_code = TREE_CODE (res_ops[0]); return true; } else { /* #line 2983 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (cmp == GT_EXPR) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2984, %s:%d\n", __FILE__, __LINE__); *res_code = NE_EXPR; res_ops[0] = captures[0]; res_ops[1] = captures[2]; gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } } } } else { /* #line 2985 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (wi::eq_p (captures[2], max - 1)) { /* #line 2987 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (cmp == GT_EXPR) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2988, %s:%d\n", __FILE__, __LINE__); *res_code = EQ_EXPR; res_ops[0] = captures[0]; res_ops[1] = wide_int_to_tree (TREE_TYPE (captures[2]), wi::add (captures[2], 1)); gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } else { /* #line 2989 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (cmp == LE_EXPR) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2990, %s:%d\n", __FILE__, __LINE__); *res_code = NE_EXPR; res_ops[0] = captures[0]; res_ops[1] = wide_int_to_tree (TREE_TYPE (captures[2]), wi::add (captures[2], 1)); gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } } else { /* #line 2991 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (wi::eq_p (captures[2], min + 1)) { /* #line 2993 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (cmp == GE_EXPR) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2994, %s:%d\n", __FILE__, __LINE__); *res_code = NE_EXPR; res_ops[0] = captures[0]; res_ops[1] = wide_int_to_tree (TREE_TYPE (captures[2]), wi::sub (captures[2], 1)); gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } else { /* #line 2995 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (cmp == LT_EXPR) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2996, %s:%d\n", __FILE__, __LINE__); *res_code = EQ_EXPR; res_ops[0] = captures[0]; res_ops[1] = wide_int_to_tree (TREE_TYPE (captures[2]), wi::sub (captures[2], 1)); gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } } else { /* #line 2997 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (wi::eq_p (captures[2], signed_max) && TYPE_UNSIGNED (arg1_type) && prec == GET_MODE_PRECISION (TYPE_MODE (arg1_type)) && INTEGRAL_TYPE_P (arg1_type)) { /* #line 3008 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (cmp == LE_EXPR || cmp == GT_EXPR) { { /* #line 3009 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree st = signed_type_for (arg1_type); /* #line 3010 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (cmp == LE_EXPR) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3011, %s:%d\n", __FILE__, __LINE__); *res_code = GE_EXPR; { tree ops1[1], res; ops1[0] = captures[1]; if (st != TREE_TYPE (ops1[0]) && !useless_type_conversion_p (st, TREE_TYPE (ops1[0]))) { code_helper tem_code = NOP_EXPR; tree tem_ops[3] = { ops1[0] }; gimple_resimplify1 (lseq, &tem_code, st, tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, st, tem_ops, lseq); if (!res) return false; } else res = ops1[0]; res_ops[0] = res; } res_ops[1] = build_zero_cst (st); gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } else { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3012, %s:%d\n", __FILE__, __LINE__); *res_code = LT_EXPR; { tree ops1[1], res; ops1[0] = captures[1]; if (st != TREE_TYPE (ops1[0]) && !useless_type_conversion_p (st, TREE_TYPE (ops1[0]))) { code_helper tem_code = NOP_EXPR; tree tem_ops[3] = { ops1[0] }; gimple_resimplify1 (lseq, &tem_code, st, tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, st, tem_ops, lseq); if (!res) return false; } else res = ops1[0]; res_ops[0] = res; } res_ops[1] = build_zero_cst (st); gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } } } } } } } } } return false; } static bool gimple_simplify_32 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , enum tree_code ARG_UNUSED (shift)) { /* #line 1605 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (tree_nop_conversion_p (TREE_TYPE (captures[0]), TREE_TYPE (captures[1])) && TYPE_PRECISION (type) <= HOST_BITS_PER_WIDE_INT && tree_fits_uhwi_p (captures[4]) && tree_to_uhwi (captures[4]) > 0 && tree_to_uhwi (captures[4]) < TYPE_PRECISION (type)) { { /* #line 1610 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ unsigned int shiftc = tree_to_uhwi (captures[4]); unsigned HOST_WIDE_INT mask = TREE_INT_CST_LOW (captures[5]); unsigned HOST_WIDE_INT newmask, zerobits = 0; tree shift_type = TREE_TYPE (captures[2]); unsigned int prec; if (shift == LSHIFT_EXPR) zerobits = ((HOST_WIDE_INT_1U << shiftc) - 1); else if (shift == RSHIFT_EXPR && (TYPE_PRECISION (shift_type) == GET_MODE_PRECISION (TYPE_MODE (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_PRECISION (inner_type) == GET_MODE_PRECISION (TYPE_MODE (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 1666 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if ((mask & zerobits) == mask) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[1]))) lseq = NULL; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1667, %s:%d\n", __FILE__, __LINE__); res_ops[0] = build_int_cst (type, 0); *res_code = TREE_CODE (res_ops[0]); return true; } else { { /* #line 1668 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ newmask = mask | zerobits; /* #line 1669 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (newmask != mask && (newmask & (newmask + 1)) == 0) { { /* #line 1670 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ for (prec = BITS_PER_UNIT; prec < HOST_BITS_PER_WIDE_INT; prec <<= 1) if (newmask == (HOST_WIDE_INT_1U << prec) - 1) break; /* #line 1679 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (prec < HOST_BITS_PER_WIDE_INT || newmask == HOST_WIDE_INT_M1U) { { /* #line 1681 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree newmaskt = build_int_cst_type (TREE_TYPE (captures[5]), newmask); /* #line 1683 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (!tree_int_cst_equal (newmaskt, captures[5])) { /* #line 1684 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (shift_type != TREE_TYPE (captures[2])) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[1]))) lseq = NULL; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1685, %s:%d\n", __FILE__, __LINE__); *res_code = BIT_AND_EXPR; { tree ops1[1], res; { tree ops2[2], res; { tree ops3[1], res; ops3[0] = captures[2]; if (shift_type != TREE_TYPE (ops3[0]) && !useless_type_conversion_p (shift_type, TREE_TYPE (ops3[0]))) { code_helper tem_code = NOP_EXPR; tree tem_ops[3] = { ops3[0] }; gimple_resimplify1 (lseq, &tem_code, shift_type, tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, shift_type, tem_ops, lseq); if (!res) return false; } else res = ops3[0]; ops2[0] = res; } ops2[1] = captures[4]; code_helper tem_code = shift; tree tem_ops[3] = { ops2[0], ops2[1] }; gimple_resimplify2 (lseq, &tem_code, shift_type, tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, shift_type, tem_ops, lseq); if (!res) return false; ops1[0] = res; } if (type != TREE_TYPE (ops1[0]) && !useless_type_conversion_p (type, TREE_TYPE (ops1[0]))) { code_helper tem_code = NOP_EXPR; tree tem_ops[3] = { ops1[0] }; gimple_resimplify1 (lseq, &tem_code, type, tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, type, tem_ops, lseq); if (!res) return false; } else res = ops1[0]; res_ops[0] = res; } res_ops[1] = newmaskt; gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } else { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[1]))) lseq = NULL; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1686, %s:%d\n", __FILE__, __LINE__); *res_code = BIT_AND_EXPR; res_ops[0] = captures[0]; res_ops[1] = newmaskt; gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } } } } } } } } } return false; } static bool gimple_simplify_33 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , enum tree_code ARG_UNUSED (op)) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:802, %s:%d\n", __FILE__, __LINE__); res_ops[0] = captures[0]; *res_code = TREE_CODE (res_ops[0]); return true; return false; } static bool gimple_simplify_34 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) ) { /* #line 1009 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (tree_nop_conversion_p (type, TREE_TYPE (captures[0])) && tree_nop_conversion_p (type, TREE_TYPE (captures[3]))) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[1]) || !single_use (captures[2]))) lseq = NULL; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1011, %s:%d\n", __FILE__, __LINE__); *res_code = NOP_EXPR; { tree ops1[2], res; { tree ops2[1], res; ops2[0] = captures[3]; code_helper tem_code = BIT_NOT_EXPR; tree tem_ops[3] = { ops2[0] }; gimple_resimplify1 (lseq, &tem_code, TREE_TYPE (ops2[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops2[0]), tem_ops, lseq); if (!res) return false; ops1[0] = res; } ops1[1] = captures[0]; code_helper tem_code = BIT_AND_EXPR; tree tem_ops[3] = { ops1[0], ops1[1] }; gimple_resimplify2 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[0] = res; } gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } return false; } static bool gimple_simplify_35 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , combined_fn ARG_UNUSED (tans), combined_fn ARG_UNUSED (atans)) { /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (flag_unsafe_math_optimizations) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3247, %s:%d\n", __FILE__, __LINE__); res_ops[0] = captures[0]; *res_code = TREE_CODE (res_ops[0]); return true; } return false; } static bool gimple_simplify_36 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , enum tree_code ARG_UNUSED (cmp), enum tree_code ARG_UNUSED (scmp)) { /* #line 2333 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (integer_zerop (captures[2])) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2334, %s:%d\n", __FILE__, __LINE__); *res_code = cmp; res_ops[0] = captures[2]; res_ops[1] = captures[3]; gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } else { /* #line 2335 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[1])) && TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[1])) && single_use (captures[0])) { /* #line 2339 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (tree_int_cst_sgn (captures[2]) < 0) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2340, %s:%d\n", __FILE__, __LINE__); *res_code = scmp; res_ops[0] = captures[1]; res_ops[1] = captures[3]; gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } else { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2341, %s:%d\n", __FILE__, __LINE__); *res_code = cmp; res_ops[0] = captures[1]; res_ops[1] = captures[3]; gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } } return false; } static bool gimple_simplify_37 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , enum tree_code ARG_UNUSED (cmp)) { /* #line 3018 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (REAL_VALUE_ISNAN (TREE_REAL_CST (captures[1])) && (cmp != LTGT_EXPR || ! flag_trapping_math)) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3020, %s:%d\n", __FILE__, __LINE__); res_ops[0] = constant_boolean_node (cmp == ORDERED_EXPR || cmp == LTGT_EXPR ? false : true, type); *res_code = TREE_CODE (res_ops[0]); return true; } return false; } static bool gimple_simplify_38 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) ) { /* #line 2243 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (VECTOR_TYPE_P (type) && 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 (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2247, %s:%d\n", __FILE__, __LINE__); *res_code = MINUS_EXPR; res_ops[0] = captures[0]; { tree ops1[1], res; { tree ops2[3], res; ops2[0] = captures[2]; ops2[0] = unshare_expr (ops2[0]); { tree ops3[1], res; ops3[0] = captures[3]; code_helper tem_code = NEGATE_EXPR; tree tem_ops[3] = { ops3[0] }; gimple_resimplify1 (lseq, &tem_code, TREE_TYPE (ops3[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops3[0]), tem_ops, lseq); if (!res) return false; ops2[1] = res; } ops2[2] = captures[4]; code_helper tem_code = VEC_COND_EXPR; tree tem_ops[3] = { ops2[0], ops2[1], ops2[2] }; gimple_resimplify3 (lseq, &tem_code, TREE_TYPE (ops2[1]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops2[1]), tem_ops, lseq); if (!res) return false; ops1[0] = res; } code_helper tem_code = VIEW_CONVERT_EXPR; tree tem_ops[3] = { ops1[0] }; gimple_resimplify1 (lseq, &tem_code, type, tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, type, tem_ops, lseq); if (!res) return false; res_ops[1] = res; } gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } return false; } static bool gimple_simplify_39 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , combined_fn ARG_UNUSED (TAN), combined_fn ARG_UNUSED (SIN), combined_fn ARG_UNUSED (COS)) { /* #line 3308 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (flag_unsafe_math_optimizations && canonicalize_math_p ()) { /* #line 3340 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (! HONOR_NANS (captures[1]) && ! HONOR_INFINITIES (captures[1])) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[2]))) lseq = NULL; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3342, %s:%d\n", __FILE__, __LINE__); *res_code = RDIV_EXPR; res_ops[0] = build_one_cst (type); { tree ops1[1], res; ops1[0] = captures[1]; code_helper tem_code = COS; tree tem_ops[3] = { ops1[0] }; gimple_resimplify1 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[1] = res; } gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } return false; } static bool gimple_simplify_40 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) ) { /* #line 772 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (tree_nop_conversion_p (type, TREE_TYPE (captures[0]))) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:773, %s:%d\n", __FILE__, __LINE__); *res_code = BIT_XOR_EXPR; { tree ops1[1], res; ops1[0] = captures[0]; if (type != TREE_TYPE (ops1[0]) && !useless_type_conversion_p (type, TREE_TYPE (ops1[0]))) { code_helper tem_code = NOP_EXPR; tree tem_ops[3] = { ops1[0] }; gimple_resimplify1 (lseq, &tem_code, type, tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, type, tem_ops, lseq); if (!res) return false; } else res = ops1[0]; res_ops[0] = res; } { tree ops1[1], res; ops1[0] = captures[1]; code_helper tem_code = BIT_NOT_EXPR; tree tem_ops[3] = { ops1[0] }; gimple_resimplify1 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[1] = res; } gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } return false; } static bool gimple_simplify_41 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , enum tree_code ARG_UNUSED (bitop), enum tree_code ARG_UNUSED (cmp)) { /* #line 549 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0])) && INTEGRAL_TYPE_P (TREE_TYPE (captures[2])) && TYPE_PRECISION (TREE_TYPE (captures[0])) == TYPE_PRECISION (TREE_TYPE (captures[2]))) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:552, %s:%d\n", __FILE__, __LINE__); *res_code = cmp; { tree ops1[2], res; ops1[0] = captures[0]; { tree ops2[1], res; ops2[0] = captures[2]; if (TREE_TYPE (ops1[0]) != TREE_TYPE (ops2[0]) && !useless_type_conversion_p (TREE_TYPE (ops1[0]), TREE_TYPE (ops2[0]))) { code_helper tem_code = NOP_EXPR; tree tem_ops[3] = { ops2[0] }; gimple_resimplify1 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; } else res = ops2[0]; ops1[1] = res; } code_helper tem_code = BIT_IOR_EXPR; tree tem_ops[3] = { ops1[0], ops1[1] }; gimple_resimplify2 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[0] = res; } res_ops[1] = captures[1]; gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } return false; } static bool gimple_simplify_42 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , combined_fn ARG_UNUSED (POW)) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3273, %s:%d\n", __FILE__, __LINE__); res_ops[0] = captures[0]; *res_code = TREE_CODE (res_ops[0]); return true; return false; } static bool gimple_simplify_43 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , combined_fn ARG_UNUSED (froms), combined_fn ARG_UNUSED (tos)) { /* #line 3496 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (optimize && canonicalize_math_p ()) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3499, %s:%d\n", __FILE__, __LINE__); *res_code = tos; res_ops[0] = captures[0]; gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } return false; } static bool gimple_simplify_44 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) ) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3289, %s:%d\n", __FILE__, __LINE__); res_ops[0] = captures[0]; *res_code = TREE_CODE (res_ops[0]); return true; return false; } static bool gimple_simplify_45 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) ) { /* #line 358 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (INTEGRAL_TYPE_P (type) || VECTOR_INTEGER_TYPE_P (type)) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:359, %s:%d\n", __FILE__, __LINE__); *res_code = NOP_EXPR; { tree ops1[2], res; ops1[0] = captures[0]; ops1[1] = captures[1]; code_helper tem_code = TRUNC_MOD_EXPR; tree tem_ops[3] = { ops1[0], ops1[1] }; gimple_resimplify2 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[0] = res; } gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } return false; } static bool gimple_simplify_46 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , enum tree_code ARG_UNUSED (shift)) { /* #line 1537 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (INTEGRAL_TYPE_P (TREE_TYPE (captures[1]))) { { /* #line 1538 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ int width = ceil_log2 (element_precision (TREE_TYPE (captures[0]))); int prec = TYPE_PRECISION (TREE_TYPE (captures[1])); /* #line 1542 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if ((get_nonzero_bits (captures[1]) & wi::mask (width, false, prec)) == 0) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1543, %s:%d\n", __FILE__, __LINE__); res_ops[0] = captures[0]; *res_code = TREE_CODE (res_ops[0]); return true; } } } return false; } static bool gimple_simplify_47 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , enum tree_code ARG_UNUSED (div)) { { /* #line 199 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ bool overflow_p; wide_int mul = wi::mul (captures[1], captures[2], TYPE_SIGN (type), &overflow_p); /* #line 203 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (!overflow_p) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:204, %s:%d\n", __FILE__, __LINE__); *res_code = div; res_ops[0] = captures[0]; res_ops[1] = wide_int_to_tree (type, mul); gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } else { /* #line 205 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (TYPE_UNSIGNED (type) || mul != wi::min_value (TYPE_PRECISION (type), SIGNED)) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:207, %s:%d\n", __FILE__, __LINE__); res_ops[0] = build_zero_cst (type); *res_code = TREE_CODE (res_ops[0]); return true; } } } return false; } static bool gimple_simplify_48 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) ) { /* #line 1147 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (!TYPE_SATURATING (type)) { /* #line 1154 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (tree_nop_conversion_p (type, TREE_TYPE (captures[1])) && !TYPE_OVERFLOW_SANITIZED (type)) { { /* #line 1156 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree t1 = type; if (INTEGRAL_TYPE_P (type) && TYPE_OVERFLOW_WRAPS (type) != TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[1]))) t1 = TYPE_OVERFLOW_WRAPS (type) ? type : TREE_TYPE (captures[1]); gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1163, %s:%d\n", __FILE__, __LINE__); *res_code = NOP_EXPR; { tree ops1[2], res; { tree ops2[1], res; ops2[0] = captures[0]; if (t1 != TREE_TYPE (ops2[0]) && !useless_type_conversion_p (t1, TREE_TYPE (ops2[0]))) { code_helper tem_code = NOP_EXPR; tree tem_ops[3] = { ops2[0] }; gimple_resimplify1 (lseq, &tem_code, t1, tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, t1, tem_ops, lseq); if (!res) return false; } else res = ops2[0]; ops1[0] = res; } { tree ops2[1], res; ops2[0] = captures[1]; if (t1 != TREE_TYPE (ops2[0]) && !useless_type_conversion_p (t1, TREE_TYPE (ops2[0]))) { code_helper tem_code = NOP_EXPR; tree tem_ops[3] = { ops2[0] }; gimple_resimplify1 (lseq, &tem_code, t1, tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, t1, tem_ops, lseq); if (!res) return false; } else res = ops2[0]; ops1[1] = res; } code_helper tem_code = MINUS_EXPR; tree tem_ops[3] = { ops1[0], ops1[1] }; gimple_resimplify2 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[0] = res; } gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } } return false; } static bool gimple_simplify_49 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , enum tree_code ARG_UNUSED (cmp)) { /* #line 2939 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (((POINTER_TYPE_P (TREE_TYPE (captures[0])) && !FUNC_OR_METHOD_TYPE_P (TREE_TYPE (TREE_TYPE (captures[0]))) && INTEGRAL_TYPE_P (TREE_TYPE (captures[1]))) || (INTEGRAL_TYPE_P (TREE_TYPE (captures[0])) && POINTER_TYPE_P (TREE_TYPE (captures[1])) && !FUNC_OR_METHOD_TYPE_P (TREE_TYPE (TREE_TYPE (captures[1]))))) && TYPE_PRECISION (TREE_TYPE (captures[0])) == TYPE_PRECISION (TREE_TYPE (captures[1]))) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2946, %s:%d\n", __FILE__, __LINE__); *res_code = cmp; res_ops[0] = captures[0]; { tree ops1[1], res; ops1[0] = captures[1]; if (TREE_TYPE (res_ops[0]) != TREE_TYPE (ops1[0]) && !useless_type_conversion_p (TREE_TYPE (res_ops[0]), TREE_TYPE (ops1[0]))) { code_helper tem_code = NOP_EXPR; tree tem_ops[3] = { ops1[0] }; gimple_resimplify1 (lseq, &tem_code, TREE_TYPE (res_ops[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (res_ops[0]), tem_ops, lseq); if (!res) return false; } else res = ops1[0]; res_ops[1] = res; } gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } return false; } static bool gimple_simplify_50 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, 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 (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:557, %s:%d\n", __FILE__, __LINE__); *res_code = MINUS_EXPR; { tree ops1[2], res; ops1[0] = captures[1]; ops1[1] = captures[2]; code_helper tem_code = BIT_XOR_EXPR; tree tem_ops[3] = { ops1[0], ops1[1] }; gimple_resimplify2 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[0] = res; } res_ops[1] = captures[2]; gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; return false; } static bool gimple_simplify_51 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , enum tree_code ARG_UNUSED (bit_op), enum tree_code ARG_UNUSED (shift)) { /* #line 1694 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (tree_nop_conversion_p (type, TREE_TYPE (captures[2]))) { { /* #line 1695 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree mask = int_const_binop (shift, fold_convert (type, captures[3]), captures[4]); gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[1]))) lseq = NULL; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1696, %s:%d\n", __FILE__, __LINE__); *res_code = bit_op; { tree ops1[2], res; { tree ops2[1], res; ops2[0] = captures[2]; if (type != TREE_TYPE (ops2[0]) && !useless_type_conversion_p (type, TREE_TYPE (ops2[0]))) { code_helper tem_code = NOP_EXPR; tree tem_ops[3] = { ops2[0] }; gimple_resimplify1 (lseq, &tem_code, type, tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, type, tem_ops, lseq); if (!res) return false; } else res = ops2[0]; ops1[0] = res; } ops1[1] = captures[4]; code_helper tem_code = shift; tree tem_ops[3] = { ops1[0], ops1[1] }; gimple_resimplify2 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[0] = res; } res_ops[1] = mask; gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } return false; } static bool gimple_simplify_52 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) ) { /* #line 1362 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (TREE_CODE (type) != COMPLEX_TYPE && (! ANY_INTEGRAL_TYPE_P (type) || TYPE_OVERFLOW_UNDEFINED (type))) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1365, %s:%d\n", __FILE__, __LINE__); *res_code = NEGATE_EXPR; { tree ops1[1], res; ops1[0] = captures[0]; code_helper tem_code = ABS_EXPR; tree tem_ops[3] = { ops1[0] }; gimple_resimplify1 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[0] = res; } gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } return false; } static bool gimple_simplify_53 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , enum tree_code ARG_UNUSED (op)) { /* #line 3624 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (INTEGRAL_TYPE_P (type) && INTEGRAL_TYPE_P (TREE_TYPE (captures[2])) && INTEGRAL_TYPE_P (TREE_TYPE (captures[1])) && (TYPE_PRECISION (TREE_TYPE (captures[2])) == GET_MODE_PRECISION (TYPE_MODE (TREE_TYPE (captures[2])))) && (TYPE_PRECISION (TREE_TYPE (captures[4])) == GET_MODE_PRECISION (TYPE_MODE (TREE_TYPE (captures[4])))) && TYPE_PRECISION (type) == GET_MODE_PRECISION (TYPE_MODE (type)) && TYPE_PRECISION (TREE_TYPE (captures[1])) > TYPE_PRECISION (TREE_TYPE (captures[2])) && types_match (captures[2], type) && (types_match (captures[2], captures[4]) || TREE_CODE (captures[4]) == INTEGER_CST)) { /* #line 3644 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[2]))) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]))) lseq = NULL; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3645, %s:%d\n", __FILE__, __LINE__); *res_code = op; res_ops[0] = captures[2]; { tree ops1[1], res; ops1[0] = captures[4]; if (type != TREE_TYPE (ops1[0]) && !useless_type_conversion_p (type, TREE_TYPE (ops1[0]))) { code_helper tem_code = NOP_EXPR; tree tem_ops[3] = { ops1[0] }; gimple_resimplify1 (lseq, &tem_code, type, tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, type, tem_ops, lseq); if (!res) return false; } else res = ops1[0]; res_ops[1] = res; } gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } else { { /* #line 3646 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree utype = unsigned_type_for (TREE_TYPE (captures[2])); gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]))) lseq = NULL; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3647, %s:%d\n", __FILE__, __LINE__); *res_code = NOP_EXPR; { tree ops1[2], res; { tree ops2[1], res; ops2[0] = captures[2]; if (utype != TREE_TYPE (ops2[0]) && !useless_type_conversion_p (utype, TREE_TYPE (ops2[0]))) { code_helper tem_code = NOP_EXPR; tree tem_ops[3] = { ops2[0] }; gimple_resimplify1 (lseq, &tem_code, utype, tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, utype, tem_ops, lseq); if (!res) return false; } else res = ops2[0]; ops1[0] = res; } { tree ops2[1], res; ops2[0] = captures[4]; if (utype != TREE_TYPE (ops2[0]) && !useless_type_conversion_p (utype, TREE_TYPE (ops2[0]))) { code_helper tem_code = NOP_EXPR; tree tem_ops[3] = { ops2[0] }; gimple_resimplify1 (lseq, &tem_code, utype, tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, utype, tem_ops, lseq); if (!res) return false; } else res = ops2[0]; ops1[1] = res; } code_helper tem_code = op; tree tem_ops[3] = { ops1[0], ops1[1] }; gimple_resimplify2 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[0] = res; } gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } } return false; } static bool gimple_simplify_54 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, 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 (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:566, %s:%d\n", __FILE__, __LINE__); *res_code = MINUS_EXPR; res_ops[0] = captures[2]; { tree ops1[2], res; ops1[0] = captures[1]; ops1[1] = captures[2]; code_helper tem_code = BIT_XOR_EXPR; tree tem_ops[3] = { ops1[0], ops1[1] }; gimple_resimplify2 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[1] = res; } gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; return false; } static bool gimple_simplify_55 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) ) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:571, %s:%d\n", __FILE__, __LINE__); *res_code = BIT_XOR_EXPR; res_ops[0] = captures[0]; res_ops[1] = captures[1]; gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; return false; } static bool gimple_simplify_56 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) ) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:580, %s:%d\n", __FILE__, __LINE__); *res_code = BIT_IOR_EXPR; res_ops[0] = captures[0]; res_ops[1] = captures[1]; gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; return false; } static bool gimple_simplify_57 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , enum tree_code ARG_UNUSED (shiftrotate)) { { /* #line 1527 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree tem = uniform_vector_p (captures[1]); /* #line 1528 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (tem) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1529, %s:%d\n", __FILE__, __LINE__); *res_code = shiftrotate; res_ops[0] = captures[0]; res_ops[1] = tem; gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } return false; } static bool gimple_simplify_58 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) ) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:534, %s:%d\n", __FILE__, __LINE__); res_ops[0] = build_zero_cst (type); *res_code = TREE_CODE (res_ops[0]); return true; return false; } static bool gimple_simplify_59 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , enum tree_code ARG_UNUSED (cmp), enum tree_code ARG_UNUSED (out)) { /* #line 3051 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (TYPE_UNSIGNED (TREE_TYPE (captures[1])) && TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[1])) && wi::ne_p (captures[2], 0) && single_use (captures[0])) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3055, %s:%d\n", __FILE__, __LINE__); *res_code = out; res_ops[0] = captures[1]; res_ops[1] = wide_int_to_tree (TREE_TYPE (captures[1]), wi::max_value (TYPE_PRECISION (TREE_TYPE (captures[1])), UNSIGNED) - captures[2]); gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } return false; } static bool gimple_simplify_60 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) ) { /* #line 343 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (INTEGRAL_TYPE_P (type) && !TYPE_UNSIGNED (type) && !TYPE_OVERFLOW_TRAPS (type) && tree_nop_conversion_p (type, TREE_TYPE (captures[1])) && (expr_not_equal_to (captures[0], TYPE_MIN_VALUE (type)) || expr_not_equal_to (captures[1], wi::minus_one (TYPE_PRECISION (TREE_TYPE (captures[1])))))) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:353, %s:%d\n", __FILE__, __LINE__); *res_code = TRUNC_MOD_EXPR; res_ops[0] = captures[0]; { tree ops1[1], res; ops1[0] = captures[1]; if (type != TREE_TYPE (ops1[0]) && !useless_type_conversion_p (type, TREE_TYPE (ops1[0]))) { code_helper tem_code = NOP_EXPR; tree tem_ops[3] = { ops1[0] }; gimple_resimplify1 (lseq, &tem_code, type, tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, type, tem_ops, lseq); if (!res) return false; } else res = ops1[0]; res_ops[1] = res; } gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } return false; } static bool gimple_simplify_61 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) ) { /* #line 821 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (tree_nop_conversion_p (type, TREE_TYPE (captures[1])) && tree_nop_conversion_p (type, TREE_TYPE (captures[2]))) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:823, %s:%d\n", __FILE__, __LINE__); *res_code = BIT_XOR_EXPR; { tree ops1[1], res; ops1[0] = captures[1]; if (type != TREE_TYPE (ops1[0]) && !useless_type_conversion_p (type, TREE_TYPE (ops1[0]))) { code_helper tem_code = NOP_EXPR; tree tem_ops[3] = { ops1[0] }; gimple_resimplify1 (lseq, &tem_code, type, tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, type, tem_ops, lseq); if (!res) return false; } else res = ops1[0]; res_ops[0] = res; } { tree ops1[1], res; ops1[0] = captures[2]; if (type != TREE_TYPE (ops1[0]) && !useless_type_conversion_p (type, TREE_TYPE (ops1[0]))) { code_helper tem_code = NOP_EXPR; tree tem_ops[3] = { ops1[0] }; gimple_resimplify1 (lseq, &tem_code, type, tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, type, tem_ops, lseq); if (!res) return false; } else res = ops1[0]; res_ops[1] = res; } gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } return false; } static bool gimple_simplify_62 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , enum tree_code ARG_UNUSED (op)) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2677, %s:%d\n", __FILE__, __LINE__); *res_code = op; res_ops[0] = captures[0]; res_ops[1] = captures[1]; gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; return false; } static bool gimple_simplify_63 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , enum tree_code ARG_UNUSED (op)) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:802, %s:%d\n", __FILE__, __LINE__); res_ops[0] = captures[0]; *res_code = TREE_CODE (res_ops[0]); return true; return false; } static bool gimple_simplify_64 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , enum tree_code ARG_UNUSED (bitop)) { /* #line 885 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (((TREE_CODE (captures[1]) == INTEGER_CST && INTEGRAL_TYPE_P (TREE_TYPE (captures[0])) && int_fits_type_p (captures[1], TREE_TYPE (captures[0]))) || types_match (captures[0], captures[1])) && (bitop != BIT_AND_EXPR ||1) && ( TYPE_PRECISION (TREE_TYPE (captures[0])) < TYPE_PRECISION (type) || GET_MODE_CLASS (TYPE_MODE (type)) != MODE_INT || TYPE_PRECISION (type) != GET_MODE_PRECISION (TYPE_MODE (type)))) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:904, %s:%d\n", __FILE__, __LINE__); *res_code = NOP_EXPR; { tree ops1[2], res; ops1[0] = captures[0]; { tree ops2[1], res; ops2[0] = captures[1]; if (TREE_TYPE (ops1[0]) != TREE_TYPE (ops2[0]) && !useless_type_conversion_p (TREE_TYPE (ops1[0]), TREE_TYPE (ops2[0]))) { code_helper tem_code = NOP_EXPR; tree tem_ops[3] = { ops2[0] }; gimple_resimplify1 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; } else res = ops2[0]; ops1[1] = res; } code_helper tem_code = bitop; tree tem_ops[3] = { ops1[0], ops1[1] }; gimple_resimplify2 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[0] = res; } gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } return false; } static bool gimple_simplify_65 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) ) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1347, %s:%d\n", __FILE__, __LINE__); res_ops[0] = captures[1]; *res_code = TREE_CODE (res_ops[0]); return true; return false; } static bool gimple_simplify_66 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , combined_fn ARG_UNUSED (POW)) { /* #line 3308 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (flag_unsafe_math_optimizations && canonicalize_math_p ()) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[3]))) lseq = NULL; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3347, %s:%d\n", __FILE__, __LINE__); *res_code = POW; res_ops[0] = captures[1]; { tree ops1[2], res; ops1[0] = captures[2]; ops1[1] = captures[4]; code_helper tem_code = PLUS_EXPR; tree tem_ops[3] = { ops1[0], ops1[1] }; gimple_resimplify2 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[1] = res; } gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } return false; } static bool gimple_simplify_67 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , enum tree_code ARG_UNUSED (bitop)) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:645, %s:%d\n", __FILE__, __LINE__); res_ops[0] = captures[0]; *res_code = TREE_CODE (res_ops[0]); return true; return false; } static bool gimple_simplify_68 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) ) { /* #line 994 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (tree_nop_conversion_p (type, TREE_TYPE (captures[0]))) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:995, %s:%d\n", __FILE__, __LINE__); *res_code = NOP_EXPR; { tree ops1[2], res; ops1[0] = captures[0]; { tree ops2[1], res; ops2[0] = captures[1]; code_helper tem_code = BIT_NOT_EXPR; tree tem_ops[3] = { ops2[0] }; gimple_resimplify1 (lseq, &tem_code, TREE_TYPE (ops2[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops2[0]), tem_ops, lseq); if (!res) return false; ops1[1] = res; } code_helper tem_code = BIT_XOR_EXPR; tree tem_ops[3] = { ops1[0], ops1[1] }; gimple_resimplify2 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[0] = res; } gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } return false; } static bool gimple_simplify_69 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) ) { /* #line 1147 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (!TYPE_SATURATING (type)) { /* #line 1186 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if ((!FLOAT_TYPE_P (type) || flag_associative_math) && !FIXED_POINT_TYPE_P (type)) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1206, %s:%d\n", __FILE__, __LINE__); *res_code = NEGATE_EXPR; res_ops[0] = captures[1]; gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } return false; } static bool gimple_simplify_70 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[1]))) lseq = NULL; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:659, %s:%d\n", __FILE__, __LINE__); *res_code = BIT_AND_EXPR; { tree ops1[2], res; ops1[0] = captures[0]; ops1[1] = captures[2]; code_helper tem_code = PLUS_EXPR; tree tem_ops[3] = { ops1[0], ops1[1] }; gimple_resimplify2 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[0] = res; } { tree ops1[1], res; ops1[0] = captures[2]; code_helper tem_code = BIT_NOT_EXPR; tree tem_ops[3] = { ops1[0] }; gimple_resimplify1 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[1] = res; } gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; return false; } static bool gimple_simplify_71 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , combined_fn ARG_UNUSED (COS), combined_fn ARG_UNUSED (SIN), combined_fn ARG_UNUSED (TAN)) { /* #line 3308 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (flag_unsafe_math_optimizations && canonicalize_math_p ()) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[2]))) lseq = NULL; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3328, %s:%d\n", __FILE__, __LINE__); *res_code = RDIV_EXPR; res_ops[0] = build_one_cst (type); { tree ops1[1], res; ops1[0] = captures[1]; code_helper tem_code = TAN; tree tem_ops[3] = { ops1[0] }; gimple_resimplify1 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[1] = res; } gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } return false; } static bool gimple_simplify_72 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , enum tree_code ARG_UNUSED (bitop)) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[1]))) lseq = NULL; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:666, %s:%d\n", __FILE__, __LINE__); *res_code = bitop; res_ops[0] = captures[0]; { tree ops1[1], res; ops1[0] = captures[2]; code_helper tem_code = BIT_NOT_EXPR; tree tem_ops[3] = { ops1[0] }; gimple_resimplify1 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[1] = res; } gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; return false; } static bool gimple_simplify_73 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , enum tree_code ARG_UNUSED (bitop), enum tree_code ARG_UNUSED (rbitop)) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:674, %s:%d\n", __FILE__, __LINE__); *res_code = bitop; res_ops[0] = captures[1]; res_ops[1] = captures[2]; gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; return false; } static bool gimple_simplify_74 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , enum tree_code ARG_UNUSED (bitop), enum tree_code ARG_UNUSED (rbitop)) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:674, %s:%d\n", __FILE__, __LINE__); *res_code = bitop; res_ops[0] = captures[1]; res_ops[1] = captures[2]; gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; return false; } static bool gimple_simplify_75 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) ) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:679, %s:%d\n", __FILE__, __LINE__); *res_code = BIT_XOR_EXPR; res_ops[0] = captures[0]; res_ops[1] = captures[1]; gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; return false; } static bool gimple_simplify_76 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) ) { /* #line 2252 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (VECTOR_TYPE_P (type) && 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 (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2256, %s:%d\n", __FILE__, __LINE__); *res_code = PLUS_EXPR; res_ops[0] = captures[0]; { tree ops1[1], res; { tree ops2[3], res; ops2[0] = captures[2]; ops2[0] = unshare_expr (ops2[0]); { tree ops3[1], res; ops3[0] = captures[3]; code_helper tem_code = NEGATE_EXPR; tree tem_ops[3] = { ops3[0] }; gimple_resimplify1 (lseq, &tem_code, TREE_TYPE (ops3[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops3[0]), tem_ops, lseq); if (!res) return false; ops2[1] = res; } ops2[2] = captures[4]; code_helper tem_code = VEC_COND_EXPR; tree tem_ops[3] = { ops2[0], ops2[1], ops2[2] }; gimple_resimplify3 (lseq, &tem_code, TREE_TYPE (ops2[1]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops2[1]), tem_ops, lseq); if (!res) return false; ops1[0] = res; } code_helper tem_code = VIEW_CONVERT_EXPR; tree tem_ops[3] = { ops1[0] }; gimple_resimplify1 (lseq, &tem_code, type, tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, type, tem_ops, lseq); if (!res) return false; res_ops[1] = res; } gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } return false; } static bool gimple_simplify_77 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , enum tree_code ARG_UNUSED (rotate)) { /* #line 1714 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if ((element_precision (TREE_TYPE (captures[2])) <= element_precision (TREE_TYPE (captures[3])) || !TYPE_UNSIGNED (TREE_TYPE (captures[3]))) && (element_precision (type) <= element_precision (TREE_TYPE (captures[2])) || !TYPE_UNSIGNED (TREE_TYPE (captures[2])))) { { /* #line 1719 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree rotate_type = TREE_TYPE (captures[2]); gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[1]))) lseq = NULL; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1721, %s:%d\n", __FILE__, __LINE__); *res_code = NOP_EXPR; { tree ops1[2], res; { tree ops2[1], res; ops2[0] = captures[3]; if (rotate_type != TREE_TYPE (ops2[0]) && !useless_type_conversion_p (rotate_type, TREE_TYPE (ops2[0]))) { code_helper tem_code = NOP_EXPR; tree tem_ops[3] = { ops2[0] }; gimple_resimplify1 (lseq, &tem_code, rotate_type, tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, rotate_type, tem_ops, lseq); if (!res) return false; } else res = ops2[0]; ops1[0] = res; } ops1[1] = captures[4]; code_helper tem_code = rotate; tree tem_ops[3] = { ops1[0], ops1[1] }; gimple_resimplify2 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[0] = res; } gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } return false; } static bool gimple_simplify_78 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , enum tree_code ARG_UNUSED (cmp), enum tree_code ARG_UNUSED (acmp)) { /* #line 2268 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (tree_int_cst_sgn (captures[1]) == -1) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2269, %s:%d\n", __FILE__, __LINE__); *res_code = acmp; res_ops[0] = captures[0]; res_ops[1] = wide_int_to_tree (TREE_TYPE (captures[1]), wi::add (captures[1], 1)); gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } return false; } static bool gimple_simplify_79 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , enum tree_code ARG_UNUSED (cmp), enum tree_code ARG_UNUSED (out)) { /* #line 3084 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (TYPE_UNSIGNED (TREE_TYPE (captures[1])) && types_match (TREE_TYPE (captures[1]), TREE_TYPE (captures[2]))) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3086, %s:%d\n", __FILE__, __LINE__); *res_code = out; { tree ops1[1], res; ops1[0] = captures[0]; code_helper tem_code = IMAGPART_EXPR; tree tem_ops[3] = { ops1[0] }; gimple_resimplify1 (lseq, &tem_code, TREE_TYPE (TREE_TYPE (ops1[0])), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (TREE_TYPE (ops1[0])), tem_ops, lseq); if (!res) return false; res_ops[0] = res; } res_ops[1] = build_zero_cst (TREE_TYPE (captures[1])); gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } return false; } static bool gimple_simplify_80 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) ) { /* #line 1969 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (tree_nop_conversion_p (TREE_TYPE (captures[0]), type)) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1970, %s:%d\n", __FILE__, __LINE__); *res_code = NOP_EXPR; res_ops[0] = captures[0]; gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } return false; } static bool gimple_simplify_81 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , enum tree_code ARG_UNUSED (mod)) { /* #line 372 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if ((TYPE_UNSIGNED (type) || tree_expr_nonnegative_p (captures[0])) && tree_nop_conversion_p (type, TREE_TYPE (captures[1])) && integer_pow2p (captures[3]) && tree_int_cst_sgn (captures[3]) > 0) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:376, %s:%d\n", __FILE__, __LINE__); *res_code = BIT_AND_EXPR; res_ops[0] = captures[0]; { tree ops1[1], res; { tree ops2[2], res; ops2[0] = captures[2]; ops2[1] = build_int_cst (TREE_TYPE (captures[2]), 1); code_helper tem_code = MINUS_EXPR; tree tem_ops[3] = { ops2[0], ops2[1] }; gimple_resimplify2 (lseq, &tem_code, TREE_TYPE (ops2[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops2[0]), tem_ops, lseq); if (!res) return false; ops1[0] = res; } if (type != TREE_TYPE (ops1[0]) && !useless_type_conversion_p (type, TREE_TYPE (ops1[0]))) { code_helper tem_code = NOP_EXPR; tree tem_ops[3] = { ops1[0] }; gimple_resimplify1 (lseq, &tem_code, type, tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, type, tem_ops, lseq); if (!res) return false; } else res = ops1[0]; res_ops[1] = res; } gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } return false; } static bool gimple_simplify_82 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , combined_fn ARG_UNUSED (SQRT)) { /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (flag_unsafe_math_optimizations) { /* #line 3120 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (!HONOR_SNANS (type)) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3121, %s:%d\n", __FILE__, __LINE__); res_ops[0] = captures[1]; *res_code = TREE_CODE (res_ops[0]); return true; } } return false; } static bool gimple_simplify_83 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) ) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:726, %s:%d\n", __FILE__, __LINE__); *res_code = BIT_XOR_EXPR; res_ops[0] = captures[0]; res_ops[1] = captures[1]; gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; return false; } static bool gimple_simplify_84 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) ) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:731, %s:%d\n", __FILE__, __LINE__); *res_code = BIT_AND_EXPR; res_ops[0] = captures[0]; res_ops[1] = captures[1]; gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; return false; } static bool gimple_simplify_85 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , enum tree_code ARG_UNUSED (op)) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:692, %s:%d\n", __FILE__, __LINE__); *res_code = BIT_IOR_EXPR; res_ops[0] = captures[0]; res_ops[1] = captures[1]; gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; return false; } static bool gimple_simplify_86 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , enum tree_code ARG_UNUSED (op)) { /* #line 3658 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (INTEGRAL_TYPE_P (type) && INTEGRAL_TYPE_P (TREE_TYPE (captures[2])) && INTEGRAL_TYPE_P (TREE_TYPE (captures[1])) && (TYPE_PRECISION (TREE_TYPE (captures[2])) == GET_MODE_PRECISION (TYPE_MODE (TREE_TYPE (captures[2])))) && (TYPE_PRECISION (TREE_TYPE (captures[4])) == GET_MODE_PRECISION (TYPE_MODE (TREE_TYPE (captures[4])))) && TYPE_PRECISION (type) == GET_MODE_PRECISION (TYPE_MODE (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::bit_and (captures[5], wi::mask (TYPE_PRECISION (TREE_TYPE (captures[2])), true, TYPE_PRECISION (type))) == 0)) { /* #line 3678 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[2]))) { { /* #line 3679 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree ntype = TREE_TYPE (captures[2]); gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]))) lseq = NULL; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3680, %s:%d\n", __FILE__, __LINE__); *res_code = NOP_EXPR; { tree ops1[2], res; { tree ops2[2], res; ops2[0] = captures[2]; ops2[1] = captures[4]; code_helper tem_code = op; tree tem_ops[3] = { ops2[0], ops2[1] }; gimple_resimplify2 (lseq, &tem_code, TREE_TYPE (ops2[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops2[0]), tem_ops, lseq); if (!res) return false; ops1[0] = res; } { tree ops2[1], res; ops2[0] = captures[5]; if (ntype != TREE_TYPE (ops2[0]) && !useless_type_conversion_p (ntype, TREE_TYPE (ops2[0]))) { code_helper tem_code = NOP_EXPR; tree tem_ops[3] = { ops2[0] }; gimple_resimplify1 (lseq, &tem_code, ntype, tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, ntype, tem_ops, lseq); if (!res) return false; } else res = ops2[0]; ops1[1] = res; } code_helper tem_code = BIT_AND_EXPR; tree tem_ops[3] = { ops1[0], ops1[1] }; gimple_resimplify2 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[0] = res; } gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } else { { /* #line 3681 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree utype = unsigned_type_for (TREE_TYPE (captures[2])); gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]))) lseq = NULL; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3682, %s:%d\n", __FILE__, __LINE__); *res_code = NOP_EXPR; { tree ops1[2], res; { tree ops2[2], res; { tree ops3[1], res; ops3[0] = captures[2]; if (utype != TREE_TYPE (ops3[0]) && !useless_type_conversion_p (utype, TREE_TYPE (ops3[0]))) { code_helper tem_code = NOP_EXPR; tree tem_ops[3] = { ops3[0] }; gimple_resimplify1 (lseq, &tem_code, utype, tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, utype, tem_ops, lseq); if (!res) return false; } else res = ops3[0]; ops2[0] = res; } { tree ops3[1], res; ops3[0] = captures[4]; if (utype != TREE_TYPE (ops3[0]) && !useless_type_conversion_p (utype, TREE_TYPE (ops3[0]))) { code_helper tem_code = NOP_EXPR; tree tem_ops[3] = { ops3[0] }; gimple_resimplify1 (lseq, &tem_code, utype, tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, utype, tem_ops, lseq); if (!res) return false; } else res = ops3[0]; ops2[1] = res; } code_helper tem_code = op; tree tem_ops[3] = { ops2[0], ops2[1] }; gimple_resimplify2 (lseq, &tem_code, TREE_TYPE (ops2[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops2[0]), tem_ops, lseq); if (!res) return false; ops1[0] = res; } { tree ops2[1], res; ops2[0] = captures[5]; if (utype != TREE_TYPE (ops2[0]) && !useless_type_conversion_p (utype, TREE_TYPE (ops2[0]))) { code_helper tem_code = NOP_EXPR; tree tem_ops[3] = { ops2[0] }; gimple_resimplify1 (lseq, &tem_code, utype, tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, utype, tem_ops, lseq); if (!res) return false; } else res = ops2[0]; ops1[1] = res; } code_helper tem_code = BIT_AND_EXPR; tree tem_ops[3] = { ops1[0], ops1[1] }; gimple_resimplify2 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[0] = res; } gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } } return false; } static bool gimple_simplify_87 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , enum tree_code ARG_UNUSED (op)) { /* #line 812 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (tree_nop_conversion_p (type, TREE_TYPE (captures[3])) && tree_nop_conversion_p (type, TREE_TYPE (captures[6]))) { /* #line 814 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (single_use (captures[4]) && single_use (captures[5])) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:815, %s:%d\n", __FILE__, __LINE__); *res_code = op; res_ops[0] = captures[0]; { tree ops1[1], res; ops1[0] = captures[6]; if (type != TREE_TYPE (ops1[0]) && !useless_type_conversion_p (type, TREE_TYPE (ops1[0]))) { code_helper tem_code = NOP_EXPR; tree tem_ops[3] = { ops1[0] }; gimple_resimplify1 (lseq, &tem_code, type, tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, type, tem_ops, lseq); if (!res) return false; } else res = ops1[0]; res_ops[1] = res; } gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } else { /* #line 816 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (single_use (captures[0]) && single_use (captures[1])) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:817, %s:%d\n", __FILE__, __LINE__); *res_code = op; { tree ops1[1], res; ops1[0] = captures[3]; if (type != TREE_TYPE (ops1[0]) && !useless_type_conversion_p (type, TREE_TYPE (ops1[0]))) { code_helper tem_code = NOP_EXPR; tree tem_ops[3] = { ops1[0] }; gimple_resimplify1 (lseq, &tem_code, type, tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, type, tem_ops, lseq); if (!res) return false; } else res = ops1[0]; res_ops[0] = res; } res_ops[1] = captures[4]; gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } } return false; } static bool gimple_simplify_88 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , enum tree_code ARG_UNUSED (minmax)) { /* #line 1412 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (INTEGRAL_TYPE_P (type) && types_match (captures[1], type) && int_fits_type_p (captures[2], type) && TYPE_SIGN (TREE_TYPE (captures[0])) == TYPE_SIGN (type) && TYPE_PRECISION (TREE_TYPE (captures[0])) > TYPE_PRECISION (type)) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1416, %s:%d\n", __FILE__, __LINE__); *res_code = minmax; res_ops[0] = captures[1]; { tree ops1[1], res; ops1[0] = captures[2]; if (type != TREE_TYPE (ops1[0]) && !useless_type_conversion_p (type, TREE_TYPE (ops1[0]))) { code_helper tem_code = NOP_EXPR; tree tem_ops[3] = { ops1[0] }; gimple_resimplify1 (lseq, &tem_code, type, tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, type, tem_ops, lseq); if (!res) return false; } else res = ops1[0]; res_ops[1] = res; } gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } return false; } static bool gimple_simplify_89 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) ) { /* #line 982 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (element_precision (type) <= element_precision (TREE_TYPE (captures[0])) || !TYPE_UNSIGNED (TREE_TYPE (captures[0]))) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:984, %s:%d\n", __FILE__, __LINE__); *res_code = NOP_EXPR; { tree ops1[1], res; ops1[0] = captures[0]; code_helper tem_code = NEGATE_EXPR; tree tem_ops[3] = { ops1[0] }; gimple_resimplify1 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[0] = res; } gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } return false; } static bool gimple_simplify_90 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) ) { /* #line 759 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (tree_nop_conversion_p (type, TREE_TYPE (captures[0]))) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:760, %s:%d\n", __FILE__, __LINE__); *res_code = NOP_EXPR; { tree ops1[2], res; ops1[0] = captures[1]; { tree ops2[1], res; ops2[0] = captures[0]; code_helper tem_code = BIT_NOT_EXPR; tree tem_ops[3] = { ops2[0] }; gimple_resimplify1 (lseq, &tem_code, TREE_TYPE (ops2[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops2[0]), tem_ops, lseq); if (!res) return false; ops1[1] = res; } code_helper tem_code = BIT_AND_EXPR; tree tem_ops[3] = { ops1[0], ops1[1] }; gimple_resimplify2 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[0] = res; } gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } return false; } static bool gimple_simplify_91 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , enum tree_code ARG_UNUSED (cmp)) { /* #line 2348 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (! FLOAT_TYPE_P (TREE_TYPE (captures[0])) || ! HONOR_NANS (captures[0])) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2350, %s:%d\n", __FILE__, __LINE__); res_ops[0] = constant_boolean_node (true, type); *res_code = TREE_CODE (res_ops[0]); return true; } else { /* #line 2351 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (cmp != EQ_EXPR) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2352, %s:%d\n", __FILE__, __LINE__); *res_code = EQ_EXPR; res_ops[0] = captures[0]; res_ops[1] = captures[0]; gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } return false; } static bool gimple_simplify_92 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) ) { /* #line 998 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (tree_nop_conversion_p (type, TREE_TYPE (captures[0]))) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:999, %s:%d\n", __FILE__, __LINE__); *res_code = NOP_EXPR; { tree ops1[2], res; ops1[0] = captures[0]; ops1[1] = captures[1]; code_helper tem_code = BIT_XOR_EXPR; tree tem_ops[3] = { ops1[0], ops1[1] }; gimple_resimplify2 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[0] = res; } gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } return false; } static bool gimple_simplify_93 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , enum tree_code ARG_UNUSED (rotate)) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1492, %s:%d\n", __FILE__, __LINE__); res_ops[0] = captures[0]; *res_code = TREE_CODE (res_ops[0]); return true; return false; } static bool gimple_simplify_94 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , enum tree_code ARG_UNUSED (cmp)) { /* #line 600 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (TYPE_UNSIGNED (TREE_TYPE (captures[1]))) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:601, %s:%d\n", __FILE__, __LINE__); res_ops[0] = constant_boolean_node (cmp == GT_EXPR, type); *res_code = TREE_CODE (res_ops[0]); return true; } return false; } static bool gimple_simplify_95 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , enum tree_code ARG_UNUSED (div)) { /* #line 170 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (!integer_zerop (captures[0]) && !ALL_FRACT_MODE_P (TYPE_MODE (type))) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:171, %s:%d\n", __FILE__, __LINE__); res_ops[0] = build_one_cst (type); *res_code = TREE_CODE (res_ops[0]); return true; } return false; } static bool gimple_simplify_96 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , combined_fn ARG_UNUSED (bswap)) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1982, %s:%d\n", __FILE__, __LINE__); res_ops[0] = captures[0]; *res_code = TREE_CODE (res_ops[0]); return true; return false; } static bool gimple_simplify_97 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , enum tree_code ARG_UNUSED (opo), enum tree_code ARG_UNUSED (opi)) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:780, %s:%d\n", __FILE__, __LINE__); *res_code = BIT_AND_EXPR; { tree ops1[1], res; ops1[0] = captures[0]; code_helper tem_code = BIT_NOT_EXPR; tree tem_ops[3] = { ops1[0] }; gimple_resimplify1 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[0] = res; } res_ops[1] = captures[1]; gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; return false; } static bool gimple_simplify_98 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) ) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3595, %s:%d\n", __FILE__, __LINE__); res_ops[0] = captures[0]; *res_code = TREE_CODE (res_ops[0]); return true; return false; } static bool gimple_simplify_99 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , enum tree_code ARG_UNUSED (neeq)) { /* #line 2926 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (POINTER_TYPE_P (TREE_TYPE (captures[0])) && ptrs_compare_unequal (captures[0], captures[1])) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2928, %s:%d\n", __FILE__, __LINE__); res_ops[0] = neeq == EQ_EXPR ? boolean_false_node : boolean_true_node; *res_code = TREE_CODE (res_ops[0]); return true; } return false; } static bool gimple_simplify_100 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , enum tree_code ARG_UNUSED (op), enum tree_code ARG_UNUSED (cmp)) { /* #line 2480 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (flag_unsafe_math_optimizations) { { /* #line 2484 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree tem = const_binop (op == PLUS_EXPR ? MINUS_EXPR : PLUS_EXPR, TREE_TYPE (captures[1]), captures[2], captures[1]); /* #line 2489 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (tem && !TREE_OVERFLOW (tem)) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2490, %s:%d\n", __FILE__, __LINE__); *res_code = cmp; res_ops[0] = captures[0]; res_ops[1] = tem; gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } } return false; } static bool gimple_simplify_101 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) ) { /* #line 987 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (element_precision (type) <= element_precision (TREE_TYPE (captures[0])) || !TYPE_UNSIGNED (TREE_TYPE (captures[0]))) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:989, %s:%d\n", __FILE__, __LINE__); *res_code = NOP_EXPR; { tree ops1[1], res; ops1[0] = captures[0]; code_helper tem_code = NEGATE_EXPR; tree tem_ops[3] = { ops1[0] }; gimple_resimplify1 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[0] = res; } gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } return false; } static bool gimple_simplify_102 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , enum tree_code ARG_UNUSED (cmp)) { /* #line 2496 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (flag_associative_math) { { /* #line 2499 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree tem = const_binop (MINUS_EXPR, TREE_TYPE (captures[1]), captures[0], captures[2]); /* #line 2500 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (tem && !TREE_OVERFLOW (tem)) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2501, %s:%d\n", __FILE__, __LINE__); *res_code = cmp; res_ops[0] = tem; res_ops[1] = captures[1]; gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } } return false; } static bool gimple_simplify_103 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , enum tree_code ARG_UNUSED (cmp)) { { /* #line 2851 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ HOST_WIDE_INT off0, off1; tree base0 = get_addr_base_and_unit_offset (TREE_OPERAND (captures[1], 0), &off0); tree base1 = get_addr_base_and_unit_offset (TREE_OPERAND (captures[2], 0), &off1); if (base0 && TREE_CODE (base0) == MEM_REF) { off0 += mem_ref_offset (base0).to_short_addr (); base0 = TREE_OPERAND (base0, 0); } if (base1 && TREE_CODE (base1) == MEM_REF) { off1 += mem_ref_offset (base1).to_short_addr (); base1 = TREE_OPERAND (base1, 0); }/* #line 2867 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (base0 && base1) { { /* #line 2868 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ int equal = 2; if (0 && ((VAR_P (base0) && DECL_HAS_VALUE_EXPR_P (base0)) || (VAR_P (base1) && DECL_HAS_VALUE_EXPR_P (base1)))) ; else if (decl_in_symtab_p (base0) && decl_in_symtab_p (base1)) equal = symtab_node::get_create (base0) ->equal_address_to (symtab_node::get_create (base1)); else if ((DECL_P (base0) || TREE_CODE (base0) == SSA_NAME || TREE_CODE (base0) == STRING_CST) && (DECL_P (base1) || TREE_CODE (base1) == SSA_NAME || TREE_CODE (base1) == STRING_CST)) equal = (base0 == base1); /* #line 2890 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (equal == 1 && (cmp == EQ_EXPR || cmp == NE_EXPR || off0 == off1 || POINTER_TYPE_OVERFLOW_UNDEFINED || (POINTER_TYPE_P (TREE_TYPE (captures[0])) && (DECL_P (base0) || TREE_CODE (base0) == STRING_CST)))) { /* #line 2899 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (cmp == EQ_EXPR) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2900, %s:%d\n", __FILE__, __LINE__); res_ops[0] = constant_boolean_node (off0 == off1, type); *res_code = TREE_CODE (res_ops[0]); return true; } else { /* #line 2901 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (cmp == NE_EXPR) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2902, %s:%d\n", __FILE__, __LINE__); res_ops[0] = constant_boolean_node (off0 != off1, type); *res_code = TREE_CODE (res_ops[0]); return true; } else { /* #line 2903 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (cmp == LT_EXPR) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2904, %s:%d\n", __FILE__, __LINE__); res_ops[0] = constant_boolean_node (off0 < off1, type); *res_code = TREE_CODE (res_ops[0]); return true; } else { /* #line 2905 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (cmp == LE_EXPR) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2906, %s:%d\n", __FILE__, __LINE__); res_ops[0] = constant_boolean_node (off0 <= off1, type); *res_code = TREE_CODE (res_ops[0]); return true; } else { /* #line 2907 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (cmp == GE_EXPR) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2908, %s:%d\n", __FILE__, __LINE__); res_ops[0] = constant_boolean_node (off0 >= off1, type); *res_code = TREE_CODE (res_ops[0]); return true; } else { /* #line 2909 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (cmp == GT_EXPR) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2910, %s:%d\n", __FILE__, __LINE__); res_ops[0] = constant_boolean_node (off0 > off1, type); *res_code = TREE_CODE (res_ops[0]); return true; } } } } } } } else { /* #line 2911 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (equal == 0 && DECL_P (base0) && DECL_P (base1) && (!INTEGRAL_TYPE_P (TREE_TYPE (captures[0])) || off0 == off1)) { /* #line 2917 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (cmp == EQ_EXPR) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2918, %s:%d\n", __FILE__, __LINE__); res_ops[0] = constant_boolean_node (false, type); *res_code = TREE_CODE (res_ops[0]); return true; } else { /* #line 2919 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (cmp == NE_EXPR) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2920, %s:%d\n", __FILE__, __LINE__); res_ops[0] = constant_boolean_node (true, type); *res_code = TREE_CODE (res_ops[0]); return true; } } } } } } } return false; } static bool gimple_simplify_104 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , combined_fn ARG_UNUSED (POW)) { /* #line 3308 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (flag_unsafe_math_optimizations && canonicalize_math_p ()) { /* #line 3317 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (!TREE_OVERFLOW (captures[2])) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[1]))) lseq = NULL; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3318, %s:%d\n", __FILE__, __LINE__); *res_code = POW; res_ops[0] = captures[0]; { tree ops1[2], res; ops1[0] = captures[2]; ops1[1] = build_one_cst (type); code_helper tem_code = PLUS_EXPR; tree tem_ops[3] = { ops1[0], ops1[1] }; gimple_resimplify2 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[1] = res; } gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } return false; } static bool gimple_simplify_105 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , enum tree_code ARG_UNUSED (cmp)) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2767, %s:%d\n", __FILE__, __LINE__); *res_code = cmp; res_ops[0] = captures[0]; res_ops[1] = captures[1]; gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; return false; } static bool gimple_simplify_106 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , enum tree_code ARG_UNUSED (cmp)) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2773, %s:%d\n", __FILE__, __LINE__); *res_code = cmp; res_ops[0] = captures[1]; res_ops[1] = build_zero_cst (TREE_TYPE (captures[1])); gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; return false; } static bool gimple_simplify_107 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , enum tree_code ARG_UNUSED (cmp)) { /* #line 2783 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (tree_single_nonzero_warnv_p (captures[0], NULL)) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2784, %s:%d\n", __FILE__, __LINE__); res_ops[0] = constant_boolean_node (cmp == NE_EXPR, type); *res_code = TREE_CODE (res_ops[0]); return true; } return false; } static bool gimple_simplify_108 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , enum tree_code ARG_UNUSED (op)) { /* #line 812 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (tree_nop_conversion_p (type, TREE_TYPE (captures[3])) && tree_nop_conversion_p (type, TREE_TYPE (captures[6]))) { /* #line 814 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (single_use (captures[4]) && single_use (captures[5])) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:815, %s:%d\n", __FILE__, __LINE__); *res_code = op; res_ops[0] = captures[0]; { tree ops1[1], res; ops1[0] = captures[6]; if (type != TREE_TYPE (ops1[0]) && !useless_type_conversion_p (type, TREE_TYPE (ops1[0]))) { code_helper tem_code = NOP_EXPR; tree tem_ops[3] = { ops1[0] }; gimple_resimplify1 (lseq, &tem_code, type, tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, type, tem_ops, lseq); if (!res) return false; } else res = ops1[0]; res_ops[1] = res; } gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } else { /* #line 816 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (single_use (captures[0]) && single_use (captures[1])) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:817, %s:%d\n", __FILE__, __LINE__); *res_code = op; { tree ops1[1], res; ops1[0] = captures[3]; if (type != TREE_TYPE (ops1[0]) && !useless_type_conversion_p (type, TREE_TYPE (ops1[0]))) { code_helper tem_code = NOP_EXPR; tree tem_ops[3] = { ops1[0] }; gimple_resimplify1 (lseq, &tem_code, type, tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, type, tem_ops, lseq); if (!res) return false; } else res = ops1[0]; res_ops[0] = res; } res_ops[1] = captures[4]; gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } } return false; } static bool gimple_simplify_109 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) ) { /* #line 1147 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (!TYPE_SATURATING (type)) { /* #line 1186 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if ((!FLOAT_TYPE_P (type) || flag_associative_math) && !FIXED_POINT_TYPE_P (type)) { /* #line 1254 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (!TYPE_OVERFLOW_TRAPS (type) && tree_nop_conversion_p (type, TREE_TYPE (captures[0]))) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1256, %s:%d\n", __FILE__, __LINE__); *res_code = BIT_NOT_EXPR; { tree ops1[1], res; ops1[0] = captures[0]; if (type != TREE_TYPE (ops1[0]) && !useless_type_conversion_p (type, TREE_TYPE (ops1[0]))) { code_helper tem_code = NOP_EXPR; tree tem_ops[3] = { ops1[0] }; gimple_resimplify1 (lseq, &tem_code, type, tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, type, tem_ops, lseq); if (!res) return false; } else res = ops1[0]; res_ops[0] = res; } gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } } return false; } static bool gimple_simplify_110 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , enum tree_code ARG_UNUSED (minmax), enum tree_code ARG_UNUSED (cmp), enum tree_code ARG_UNUSED (out)) { /* #line 1461 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1462, %s:%d\n", __FILE__, __LINE__); *res_code = out; res_ops[0] = captures[0]; res_ops[1] = captures[1]; gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } return false; } static bool gimple_simplify_111 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) ) { /* #line 2831 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (integer_pow2p (captures[1]) && !TYPE_UNSIGNED (TREE_TYPE (captures[0]))) { { /* #line 2833 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ int shift = element_precision (captures[0]) - wi::exact_log2 (captures[1]) - 1; /* #line 2836 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (shift >= 0) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2837, %s:%d\n", __FILE__, __LINE__); *res_code = BIT_AND_EXPR; { tree ops1[1], res; { tree ops2[2], res; ops2[0] = captures[0]; ops2[1] = build_int_cst (integer_type_node, shift); code_helper tem_code = RSHIFT_EXPR; tree tem_ops[3] = { ops2[0], ops2[1] }; gimple_resimplify2 (lseq, &tem_code, TREE_TYPE (ops2[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops2[0]), tem_ops, lseq); if (!res) return false; ops1[0] = res; } if (type != TREE_TYPE (ops1[0]) && !useless_type_conversion_p (type, TREE_TYPE (ops1[0]))) { code_helper tem_code = NOP_EXPR; tree tem_ops[3] = { ops1[0] }; gimple_resimplify1 (lseq, &tem_code, type, tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, type, tem_ops, lseq); if (!res) return false; } else res = ops1[0]; res_ops[0] = res; } res_ops[1] = captures[1]; gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } else { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2842, %s:%d\n", __FILE__, __LINE__); *res_code = BIT_AND_EXPR; { tree ops1[1], res; ops1[0] = captures[0]; if (type != TREE_TYPE (ops1[0]) && !useless_type_conversion_p (type, TREE_TYPE (ops1[0]))) { code_helper tem_code = NOP_EXPR; tree tem_ops[3] = { ops1[0] }; gimple_resimplify1 (lseq, &tem_code, type, tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, type, tem_ops, lseq); if (!res) return false; } else res = ops1[0]; res_ops[0] = res; } res_ops[1] = captures[1]; gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } } return false; } static bool gimple_simplify_112 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , enum tree_code ARG_UNUSED (op), enum tree_code ARG_UNUSED (rop)) { /* #line 792 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (tree_nop_conversion_p (type, TREE_TYPE (captures[1])) && tree_nop_conversion_p (type, TREE_TYPE (captures[2]))) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:794, %s:%d\n", __FILE__, __LINE__); *res_code = rop; { tree ops1[1], res; ops1[0] = captures[0]; if (type != TREE_TYPE (ops1[0]) && !useless_type_conversion_p (type, TREE_TYPE (ops1[0]))) { code_helper tem_code = NOP_EXPR; tree tem_ops[3] = { ops1[0] }; gimple_resimplify1 (lseq, &tem_code, type, tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, type, tem_ops, lseq); if (!res) return false; } else res = ops1[0]; res_ops[0] = res; } { tree ops1[2], res; { tree ops2[1], res; ops2[0] = captures[1]; if (type != TREE_TYPE (ops2[0]) && !useless_type_conversion_p (type, TREE_TYPE (ops2[0]))) { code_helper tem_code = NOP_EXPR; tree tem_ops[3] = { ops2[0] }; gimple_resimplify1 (lseq, &tem_code, type, tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, type, tem_ops, lseq); if (!res) return false; } else res = ops2[0]; ops1[0] = res; } { tree ops2[1], res; ops2[0] = captures[2]; if (type != TREE_TYPE (ops2[0]) && !useless_type_conversion_p (type, TREE_TYPE (ops2[0]))) { code_helper tem_code = NOP_EXPR; tree tem_ops[3] = { ops2[0] }; gimple_resimplify1 (lseq, &tem_code, type, tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, type, tem_ops, lseq); if (!res) return false; } else res = ops2[0]; ops1[1] = res; } code_helper tem_code = op; tree tem_ops[3] = { ops1[0], ops1[1] }; gimple_resimplify2 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[1] = res; } gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } return false; } static bool gimple_simplify_113 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , enum tree_code ARG_UNUSED (cmp), enum tree_code ARG_UNUSED (scmp)) { /* #line 2385 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (single_use (captures[0]) && (TREE_CODE (captures[2]) == INTEGER_CST || TREE_CODE (captures[2]) == VECTOR_CST)) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2387, %s:%d\n", __FILE__, __LINE__); *res_code = scmp; res_ops[0] = captures[1]; { tree ops1[1], res; ops1[0] = captures[2]; code_helper tem_code = BIT_NOT_EXPR; tree tem_ops[3] = { ops1[0] }; gimple_resimplify1 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[1] = res; } gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } return false; } static bool gimple_simplify_114 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) ) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3293, %s:%d\n", __FILE__, __LINE__); res_ops[0] = captures[0]; *res_code = TREE_CODE (res_ops[0]); return true; return false; } static bool gimple_simplify_115 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , enum tree_code ARG_UNUSED (cmp)) { /* #line 2683 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0])) && !(targetm.have_canonicalize_funcptr_for_compare () && TREE_CODE (TREE_TYPE (captures[1])) == POINTER_TYPE && TREE_CODE (TREE_TYPE (TREE_TYPE (captures[1]))) == FUNCTION_TYPE) && single_use (captures[0])) { /* #line 2690 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (TYPE_PRECISION (TREE_TYPE (captures[1])) == TYPE_PRECISION (TREE_TYPE (captures[0])) && (TREE_CODE (captures[3]) == INTEGER_CST || (captures[2] != captures[3] && types_match (TREE_TYPE (captures[3]), TREE_TYPE (captures[1])))) && (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])) == POINTER_TYPE_P (TREE_TYPE (captures[0])))) { /* #line 2700 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (TREE_CODE (captures[2]) == INTEGER_CST) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2701, %s:%d\n", __FILE__, __LINE__); *res_code = cmp; res_ops[0] = captures[1]; res_ops[1] = force_fit_type (TREE_TYPE (captures[1]), wi::to_widest (captures[2]), 0, TREE_OVERFLOW (captures[2])); gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } else { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2703, %s:%d\n", __FILE__, __LINE__); *res_code = cmp; res_ops[0] = captures[1]; { tree ops1[1], res; ops1[0] = captures[2]; if (TREE_TYPE (res_ops[0]) != TREE_TYPE (ops1[0]) && !useless_type_conversion_p (TREE_TYPE (res_ops[0]), TREE_TYPE (ops1[0]))) { code_helper tem_code = NOP_EXPR; tree tem_ops[3] = { ops1[0] }; gimple_resimplify1 (lseq, &tem_code, TREE_TYPE (res_ops[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (res_ops[0]), tem_ops, lseq); if (!res) return false; } else res = ops1[0]; res_ops[1] = res; } gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } else { /* #line 2705 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (TYPE_PRECISION (TREE_TYPE (captures[0])) > TYPE_PRECISION (TREE_TYPE (captures[1]))) { /* #line 2707 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if ((cmp == EQ_EXPR || cmp == NE_EXPR || TYPE_UNSIGNED (TREE_TYPE (captures[0])) == TYPE_UNSIGNED (TREE_TYPE (captures[1])) || (!TYPE_UNSIGNED (TREE_TYPE (captures[0])) && TYPE_UNSIGNED (TREE_TYPE (captures[1])))) && (types_match (TREE_TYPE (captures[3]), TREE_TYPE (captures[1])) || ((TYPE_PRECISION (TREE_TYPE (captures[1])) >= TYPE_PRECISION (TREE_TYPE (captures[3]))) && (TYPE_UNSIGNED (TREE_TYPE (captures[1])) == TYPE_UNSIGNED (TREE_TYPE (captures[3])))) || (TREE_CODE (captures[3]) == INTEGER_CST && INTEGRAL_TYPE_P (TREE_TYPE (captures[1])) && int_fits_type_p (captures[3], TREE_TYPE (captures[1]))))) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2719, %s:%d\n", __FILE__, __LINE__); *res_code = cmp; res_ops[0] = captures[1]; { tree ops1[1], res; ops1[0] = captures[3]; if (TREE_TYPE (res_ops[0]) != TREE_TYPE (ops1[0]) && !useless_type_conversion_p (TREE_TYPE (res_ops[0]), TREE_TYPE (ops1[0]))) { code_helper tem_code = NOP_EXPR; tree tem_ops[3] = { ops1[0] }; gimple_resimplify1 (lseq, &tem_code, TREE_TYPE (res_ops[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (res_ops[0]), tem_ops, lseq); if (!res) return false; } else res = ops1[0]; res_ops[1] = res; } gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } else { /* #line 2720 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (TREE_CODE (captures[3]) == INTEGER_CST && INTEGRAL_TYPE_P (TREE_TYPE (captures[1])) && !int_fits_type_p (captures[3], TREE_TYPE (captures[1]))) { { /* #line 2723 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree min = lower_bound_in_type (TREE_TYPE (captures[3]), TREE_TYPE (captures[1])); tree max = upper_bound_in_type (TREE_TYPE (captures[3]), TREE_TYPE (captures[1])); bool above = integer_nonzerop (const_binop (LT_EXPR, type, max, captures[3])); bool below = integer_nonzerop (const_binop (LT_EXPR, type, captures[3], min)); /* #line 2730 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (above || below) { /* #line 2731 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (cmp == EQ_EXPR || cmp == NE_EXPR) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2732, %s:%d\n", __FILE__, __LINE__); res_ops[0] = constant_boolean_node (cmp == EQ_EXPR ? false : true, type); *res_code = TREE_CODE (res_ops[0]); return true; } else { /* #line 2733 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (cmp == LT_EXPR || cmp == LE_EXPR) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2734, %s:%d\n", __FILE__, __LINE__); res_ops[0] = constant_boolean_node (above ? true : false, type); *res_code = TREE_CODE (res_ops[0]); return true; } else { /* #line 2735 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (cmp == GT_EXPR || cmp == GE_EXPR) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2736, %s:%d\n", __FILE__, __LINE__); res_ops[0] = constant_boolean_node (above ? false : true, type); *res_code = TREE_CODE (res_ops[0]); return true; } } } } } } } } } } return false; } static bool gimple_simplify_116 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , enum tree_code ARG_UNUSED (inner_op), enum tree_code ARG_UNUSED (outer_op)) { /* #line 1147 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (!TYPE_SATURATING (type)) { /* #line 1186 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if ((!FLOAT_TYPE_P (type) || flag_associative_math) && !FIXED_POINT_TYPE_P (type)) { { /* #line 1219 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree cst = const_binop (outer_op == inner_op ? PLUS_EXPR : MINUS_EXPR, type, captures[1], captures[2]); /* #line 1221 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (cst && !TREE_OVERFLOW (cst)) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1222, %s:%d\n", __FILE__, __LINE__); *res_code = inner_op; res_ops[0] = captures[0]; res_ops[1] = cst; gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } } } return false; } static bool gimple_simplify_117 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , enum tree_code ARG_UNUSED (cmp)) { { /* #line 1589 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ int cand = wi::ctz (captures[2]) - wi::ctz (captures[0]); /* #line 1590 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (cand < 0 || (!integer_zerop (captures[2]) && wi::ne_p (wi::lshift (captures[0], cand), captures[2]))) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1593, %s:%d\n", __FILE__, __LINE__); res_ops[0] = constant_boolean_node (cmp == NE_EXPR, type); *res_code = TREE_CODE (res_ops[0]); return true; } else { /* #line 1594 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (!integer_zerop (captures[2]) && wi::eq_p (wi::lshift (captures[0], cand), captures[2])) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1596, %s:%d\n", __FILE__, __LINE__); *res_code = cmp; res_ops[0] = captures[1]; res_ops[1] = build_int_cst (TREE_TYPE (captures[1]), cand); gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } } return false; } static bool gimple_simplify_118 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , enum tree_code ARG_UNUSED (cmp), enum tree_code ARG_UNUSED (acmp)) { /* #line 2274 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (tree_int_cst_sgn (captures[1]) == 1) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2275, %s:%d\n", __FILE__, __LINE__); *res_code = acmp; res_ops[0] = captures[0]; res_ops[1] = wide_int_to_tree (TREE_TYPE (captures[1]), wi::sub (captures[1], 1)); gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } return false; } static bool gimple_simplify_119 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , enum tree_code ARG_UNUSED (shift)) { /* #line 1605 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (tree_nop_conversion_p (TREE_TYPE (captures[0]), TREE_TYPE (captures[1])) && TYPE_PRECISION (type) <= HOST_BITS_PER_WIDE_INT && tree_fits_uhwi_p (captures[4]) && tree_to_uhwi (captures[4]) > 0 && tree_to_uhwi (captures[4]) < TYPE_PRECISION (type)) { { /* #line 1610 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ unsigned int shiftc = tree_to_uhwi (captures[4]); unsigned HOST_WIDE_INT mask = TREE_INT_CST_LOW (captures[5]); unsigned HOST_WIDE_INT newmask, zerobits = 0; tree shift_type = TREE_TYPE (captures[2]); unsigned int prec; if (shift == LSHIFT_EXPR) zerobits = ((HOST_WIDE_INT_1U << shiftc) - 1); else if (shift == RSHIFT_EXPR && (TYPE_PRECISION (shift_type) == GET_MODE_PRECISION (TYPE_MODE (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_PRECISION (inner_type) == GET_MODE_PRECISION (TYPE_MODE (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 1666 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if ((mask & zerobits) == mask) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[1]))) lseq = NULL; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1667, %s:%d\n", __FILE__, __LINE__); res_ops[0] = build_int_cst (type, 0); *res_code = TREE_CODE (res_ops[0]); return true; } else { { /* #line 1668 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ newmask = mask | zerobits; /* #line 1669 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (newmask != mask && (newmask & (newmask + 1)) == 0) { { /* #line 1670 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ for (prec = BITS_PER_UNIT; prec < HOST_BITS_PER_WIDE_INT; prec <<= 1) if (newmask == (HOST_WIDE_INT_1U << prec) - 1) break; /* #line 1679 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (prec < HOST_BITS_PER_WIDE_INT || newmask == HOST_WIDE_INT_M1U) { { /* #line 1681 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree newmaskt = build_int_cst_type (TREE_TYPE (captures[5]), newmask); /* #line 1683 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (!tree_int_cst_equal (newmaskt, captures[5])) { /* #line 1684 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (shift_type != TREE_TYPE (captures[2])) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[1]))) lseq = NULL; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1685, %s:%d\n", __FILE__, __LINE__); *res_code = BIT_AND_EXPR; { tree ops1[1], res; { tree ops2[2], res; { tree ops3[1], res; ops3[0] = captures[2]; if (shift_type != TREE_TYPE (ops3[0]) && !useless_type_conversion_p (shift_type, TREE_TYPE (ops3[0]))) { code_helper tem_code = NOP_EXPR; tree tem_ops[3] = { ops3[0] }; gimple_resimplify1 (lseq, &tem_code, shift_type, tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, shift_type, tem_ops, lseq); if (!res) return false; } else res = ops3[0]; ops2[0] = res; } ops2[1] = captures[4]; code_helper tem_code = shift; tree tem_ops[3] = { ops2[0], ops2[1] }; gimple_resimplify2 (lseq, &tem_code, shift_type, tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, shift_type, tem_ops, lseq); if (!res) return false; ops1[0] = res; } if (type != TREE_TYPE (ops1[0]) && !useless_type_conversion_p (type, TREE_TYPE (ops1[0]))) { code_helper tem_code = NOP_EXPR; tree tem_ops[3] = { ops1[0] }; gimple_resimplify1 (lseq, &tem_code, type, tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, type, tem_ops, lseq); if (!res) return false; } else res = ops1[0]; res_ops[0] = res; } res_ops[1] = newmaskt; gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } else { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[1]))) lseq = NULL; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1686, %s:%d\n", __FILE__, __LINE__); *res_code = BIT_AND_EXPR; res_ops[0] = captures[0]; res_ops[1] = newmaskt; gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } } } } } } } } } return false; } static bool gimple_simplify_120 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , enum tree_code ARG_UNUSED (op)) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:624, %s:%d\n", __FILE__, __LINE__); *res_code = NOP_EXPR; res_ops[0] = build_all_ones_cst (TREE_TYPE (captures[0])); gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; return false; } static bool gimple_simplify_121 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , enum tree_code ARG_UNUSED (cmp), enum tree_code ARG_UNUSED (icmp), enum tree_code ARG_UNUSED (ncmp)) { { /* #line 2306 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ enum tree_code ic = invert_tree_comparison (cmp, HONOR_NANS (captures[0])); /* #line 2308 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (ic == icmp) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2309, %s:%d\n", __FILE__, __LINE__); *res_code = icmp; res_ops[0] = captures[0]; res_ops[1] = captures[1]; gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } else { /* #line 2310 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (ic == ncmp) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2311, %s:%d\n", __FILE__, __LINE__); *res_code = ncmp; res_ops[0] = captures[0]; res_ops[1] = captures[1]; gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } } return false; } static bool gimple_simplify_122 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , enum tree_code ARG_UNUSED (shiftrotate)) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1521, %s:%d\n", __FILE__, __LINE__); res_ops[0] = captures[0]; *res_code = TREE_CODE (res_ops[0]); return true; return false; } static bool gimple_simplify_123 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , enum tree_code ARG_UNUSED (cmp)) { /* #line 2954 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if ((INTEGRAL_TYPE_P (TREE_TYPE (captures[2])) || POINTER_TYPE_P (TREE_TYPE (captures[2]))) && tree_nop_conversion_p (TREE_TYPE (captures[0]), TREE_TYPE (captures[1]))) { { /* #line 2956 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree arg1_type = TREE_TYPE (captures[2]); 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 2965 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (wi::eq_p (captures[2], max)) { /* #line 2967 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (cmp == GT_EXPR) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2968, %s:%d\n", __FILE__, __LINE__); res_ops[0] = constant_boolean_node (false, type); *res_code = TREE_CODE (res_ops[0]); return true; } else { /* #line 2969 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (cmp == GE_EXPR) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2970, %s:%d\n", __FILE__, __LINE__); *res_code = EQ_EXPR; res_ops[0] = captures[0]; res_ops[1] = captures[2]; gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } else { /* #line 2971 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (cmp == LE_EXPR) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2972, %s:%d\n", __FILE__, __LINE__); res_ops[0] = constant_boolean_node (true, type); *res_code = TREE_CODE (res_ops[0]); return true; } else { /* #line 2973 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (cmp == LT_EXPR) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2974, %s:%d\n", __FILE__, __LINE__); *res_code = NE_EXPR; res_ops[0] = captures[0]; res_ops[1] = captures[2]; gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } } } } else { /* #line 2975 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (wi::eq_p (captures[2], min)) { /* #line 2977 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (cmp == LT_EXPR) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2978, %s:%d\n", __FILE__, __LINE__); res_ops[0] = constant_boolean_node (false, type); *res_code = TREE_CODE (res_ops[0]); return true; } else { /* #line 2979 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (cmp == LE_EXPR) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2980, %s:%d\n", __FILE__, __LINE__); *res_code = EQ_EXPR; res_ops[0] = captures[0]; res_ops[1] = captures[2]; gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } else { /* #line 2981 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (cmp == GE_EXPR) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2982, %s:%d\n", __FILE__, __LINE__); res_ops[0] = constant_boolean_node (true, type); *res_code = TREE_CODE (res_ops[0]); return true; } else { /* #line 2983 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (cmp == GT_EXPR) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2984, %s:%d\n", __FILE__, __LINE__); *res_code = NE_EXPR; res_ops[0] = captures[0]; res_ops[1] = captures[2]; gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } } } } else { /* #line 2985 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (wi::eq_p (captures[2], max - 1)) { /* #line 2987 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (cmp == GT_EXPR) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2988, %s:%d\n", __FILE__, __LINE__); *res_code = EQ_EXPR; res_ops[0] = captures[0]; res_ops[1] = wide_int_to_tree (TREE_TYPE (captures[2]), wi::add (captures[2], 1)); gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } else { /* #line 2989 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (cmp == LE_EXPR) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2990, %s:%d\n", __FILE__, __LINE__); *res_code = NE_EXPR; res_ops[0] = captures[0]; res_ops[1] = wide_int_to_tree (TREE_TYPE (captures[2]), wi::add (captures[2], 1)); gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } } else { /* #line 2991 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (wi::eq_p (captures[2], min + 1)) { /* #line 2993 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (cmp == GE_EXPR) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2994, %s:%d\n", __FILE__, __LINE__); *res_code = NE_EXPR; res_ops[0] = captures[0]; res_ops[1] = wide_int_to_tree (TREE_TYPE (captures[2]), wi::sub (captures[2], 1)); gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } else { /* #line 2995 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (cmp == LT_EXPR) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2996, %s:%d\n", __FILE__, __LINE__); *res_code = EQ_EXPR; res_ops[0] = captures[0]; res_ops[1] = wide_int_to_tree (TREE_TYPE (captures[2]), wi::sub (captures[2], 1)); gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } } else { /* #line 2997 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (wi::eq_p (captures[2], signed_max) && TYPE_UNSIGNED (arg1_type) && prec == GET_MODE_PRECISION (TYPE_MODE (arg1_type)) && INTEGRAL_TYPE_P (arg1_type)) { /* #line 3008 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (cmp == LE_EXPR || cmp == GT_EXPR) { { /* #line 3009 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree st = signed_type_for (arg1_type); /* #line 3010 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (cmp == LE_EXPR) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3011, %s:%d\n", __FILE__, __LINE__); *res_code = GE_EXPR; { tree ops1[1], res; ops1[0] = captures[1]; if (st != TREE_TYPE (ops1[0]) && !useless_type_conversion_p (st, TREE_TYPE (ops1[0]))) { code_helper tem_code = NOP_EXPR; tree tem_ops[3] = { ops1[0] }; gimple_resimplify1 (lseq, &tem_code, st, tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, st, tem_ops, lseq); if (!res) return false; } else res = ops1[0]; res_ops[0] = res; } res_ops[1] = build_zero_cst (st); gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } else { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3012, %s:%d\n", __FILE__, __LINE__); *res_code = LT_EXPR; { tree ops1[1], res; ops1[0] = captures[1]; if (st != TREE_TYPE (ops1[0]) && !useless_type_conversion_p (st, TREE_TYPE (ops1[0]))) { code_helper tem_code = NOP_EXPR; tree tem_ops[3] = { ops1[0] }; gimple_resimplify1 (lseq, &tem_code, st, tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, st, tem_ops, lseq); if (!res) return false; } else res = ops1[0]; res_ops[0] = res; } res_ops[1] = build_zero_cst (st); gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } } } } } } } } } return false; } static bool gimple_simplify_124 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) ) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1894, %s:%d\n", __FILE__, __LINE__); *res_code = NOP_EXPR; res_ops[0] = captures[0]; gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; return false; } static bool gimple_simplify_125 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , enum tree_code ARG_UNUSED (mod)) { /* #line 315 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (!integer_zerop (captures[0])) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:316, %s:%d\n", __FILE__, __LINE__); res_ops[0] = build_zero_cst (type); *res_code = TREE_CODE (res_ops[0]); return true; } return false; } static bool gimple_simplify_126 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , combined_fn ARG_UNUSED (COPYSIGN)) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3278, %s:%d\n", __FILE__, __LINE__); res_ops[0] = captures[0]; *res_code = TREE_CODE (res_ops[0]); return true; return false; } static bool gimple_simplify_127 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) ) { /* #line 1701 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (!TYPE_UNSIGNED (TREE_TYPE (captures[2])) && (element_precision (TREE_TYPE (captures[2])) <= element_precision (TREE_TYPE (captures[3])) || !TYPE_UNSIGNED (TREE_TYPE (captures[3])))) { { /* #line 1705 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree shift_type = TREE_TYPE (captures[2]); gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[1]))) lseq = NULL; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1707, %s:%d\n", __FILE__, __LINE__); *res_code = NOP_EXPR; { tree ops1[2], res; { tree ops2[1], res; ops2[0] = captures[3]; if (shift_type != TREE_TYPE (ops2[0]) && !useless_type_conversion_p (shift_type, TREE_TYPE (ops2[0]))) { code_helper tem_code = NOP_EXPR; tree tem_ops[3] = { ops2[0] }; gimple_resimplify1 (lseq, &tem_code, shift_type, tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, shift_type, tem_ops, lseq); if (!res) return false; } else res = ops2[0]; ops1[0] = res; } ops1[1] = captures[4]; code_helper tem_code = RSHIFT_EXPR; tree tem_ops[3] = { ops1[0], ops1[1] }; gimple_resimplify2 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[0] = res; } gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } return false; } static bool gimple_simplify_128 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , enum tree_code ARG_UNUSED (bitop), enum tree_code ARG_UNUSED (rbitop)) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:917, %s:%d\n", __FILE__, __LINE__); *res_code = bitop; res_ops[0] = captures[0]; res_ops[1] = captures[1]; gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; return false; } static bool gimple_simplify_129 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , combined_fn ARG_UNUSED (POW)) { /* #line 3308 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (flag_unsafe_math_optimizations && canonicalize_math_p ()) { /* #line 3362 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (!TREE_OVERFLOW (captures[2])) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]))) lseq = NULL; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3363, %s:%d\n", __FILE__, __LINE__); *res_code = POW; res_ops[0] = captures[1]; { tree ops1[2], res; ops1[0] = captures[2]; ops1[1] = build_one_cst (type); code_helper tem_code = MINUS_EXPR; tree tem_ops[3] = { ops1[0], ops1[1] }; gimple_resimplify2 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[1] = res; } gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } return false; } static bool gimple_simplify_130 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , enum tree_code ARG_UNUSED (bitop)) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:928, %s:%d\n", __FILE__, __LINE__); *res_code = bitop; res_ops[0] = captures[0]; { tree ops1[2], res; ops1[0] = captures[1]; ops1[1] = captures[2]; code_helper tem_code = bitop; tree tem_ops[3] = { ops1[0], ops1[1] }; gimple_resimplify2 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[1] = res; } gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; return false; } static bool gimple_simplify_131 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , enum tree_code ARG_UNUSED (cmp)) { { /* #line 2036 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree from_type = TREE_TYPE (captures[0]); tree c1_type = TREE_TYPE (captures[1]), c2_type = TREE_TYPE (captures[2]); enum tree_code code = ERROR_MARK; if (INTEGRAL_TYPE_P (from_type) && int_fits_type_p (captures[2], from_type) && (types_match (c1_type, from_type) || (TYPE_PRECISION (c1_type) > TYPE_PRECISION (from_type) && (TYPE_UNSIGNED (from_type) || TYPE_SIGN (c1_type) == TYPE_SIGN (from_type)))) && (types_match (c2_type, from_type) || (TYPE_PRECISION (c2_type) > TYPE_PRECISION (from_type) && (TYPE_UNSIGNED (from_type) || TYPE_SIGN (c2_type) == TYPE_SIGN (from_type))))) { if (cmp != EQ_EXPR) { if (wi::to_widest (captures[1]) == (wi::to_widest (captures[2]) - 1)) { if (cmp == LE_EXPR) code = LT_EXPR; if (cmp == GT_EXPR) code = GE_EXPR; } if (wi::to_widest (captures[1]) == (wi::to_widest (captures[2]) + 1)) { if (cmp == LT_EXPR) code = LE_EXPR; if (cmp == GE_EXPR) code = GT_EXPR; } if (code != ERROR_MARK || wi::to_widest (captures[2]) == wi::to_widest (captures[1])) { if (cmp == LT_EXPR || cmp == LE_EXPR) code = MIN_EXPR; if (cmp == GT_EXPR || cmp == GE_EXPR) code = MAX_EXPR; } } else if (int_fits_type_p (captures[1], from_type)) code = EQ_EXPR; }/* #line 2087 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (code == MAX_EXPR) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2088, %s:%d\n", __FILE__, __LINE__); *res_code = NOP_EXPR; { tree ops1[2], res; ops1[0] = captures[0]; { tree ops2[1], res; ops2[0] = captures[2]; if (TREE_TYPE (ops1[0]) != TREE_TYPE (ops2[0]) && !useless_type_conversion_p (TREE_TYPE (ops1[0]), TREE_TYPE (ops2[0]))) { code_helper tem_code = NOP_EXPR; tree tem_ops[3] = { ops2[0] }; gimple_resimplify1 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; } else res = ops2[0]; ops1[1] = res; } code_helper tem_code = MAX_EXPR; tree tem_ops[3] = { ops1[0], ops1[1] }; gimple_resimplify2 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[0] = res; } gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } else { /* #line 2089 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (code == MIN_EXPR) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2090, %s:%d\n", __FILE__, __LINE__); *res_code = NOP_EXPR; { tree ops1[2], res; ops1[0] = captures[0]; { tree ops2[1], res; ops2[0] = captures[2]; if (TREE_TYPE (ops1[0]) != TREE_TYPE (ops2[0]) && !useless_type_conversion_p (TREE_TYPE (ops1[0]), TREE_TYPE (ops2[0]))) { code_helper tem_code = NOP_EXPR; tree tem_ops[3] = { ops2[0] }; gimple_resimplify1 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; } else res = ops2[0]; ops1[1] = res; } code_helper tem_code = MIN_EXPR; tree tem_ops[3] = { ops1[0], ops1[1] }; gimple_resimplify2 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[0] = res; } gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } else { /* #line 2091 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (code == EQ_EXPR) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2092, %s:%d\n", __FILE__, __LINE__); *res_code = NOP_EXPR; { tree ops1[3], res; { tree ops2[2], res; ops2[0] = captures[0]; { tree ops3[1], res; ops3[0] = captures[1]; if (TREE_TYPE (ops2[0]) != TREE_TYPE (ops3[0]) && !useless_type_conversion_p (TREE_TYPE (ops2[0]), TREE_TYPE (ops3[0]))) { code_helper tem_code = NOP_EXPR; tree tem_ops[3] = { ops3[0] }; gimple_resimplify1 (lseq, &tem_code, TREE_TYPE (ops2[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops2[0]), tem_ops, lseq); if (!res) return false; } else res = ops3[0]; ops2[1] = res; } code_helper tem_code = EQ_EXPR; tree tem_ops[3] = { ops2[0], ops2[1] }; gimple_resimplify2 (lseq, &tem_code, boolean_type_node, tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, boolean_type_node, tem_ops, lseq); if (!res) return false; ops1[0] = res; } { tree ops2[1], res; ops2[0] = captures[1]; if (from_type != TREE_TYPE (ops2[0]) && !useless_type_conversion_p (from_type, TREE_TYPE (ops2[0]))) { code_helper tem_code = NOP_EXPR; tree tem_ops[3] = { ops2[0] }; gimple_resimplify1 (lseq, &tem_code, from_type, tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, from_type, tem_ops, lseq); if (!res) return false; } else res = ops2[0]; ops1[1] = res; } { tree ops2[1], res; ops2[0] = captures[2]; if (from_type != TREE_TYPE (ops2[0]) && !useless_type_conversion_p (from_type, TREE_TYPE (ops2[0]))) { code_helper tem_code = NOP_EXPR; tree tem_ops[3] = { ops2[0] }; gimple_resimplify1 (lseq, &tem_code, from_type, tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, from_type, tem_ops, lseq); if (!res) return false; } else res = ops2[0]; ops1[2] = res; } code_helper tem_code = COND_EXPR; tree tem_ops[3] = { ops1[0], ops1[1], ops1[2] }; gimple_resimplify3 (lseq, &tem_code, TREE_TYPE (ops1[1]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[1]), tem_ops, lseq); if (!res) return false; res_ops[0] = res; } gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } } } return false; } static bool gimple_simplify_132 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , combined_fn ARG_UNUSED (TAN), combined_fn ARG_UNUSED (COS), combined_fn ARG_UNUSED (SIN)) { /* #line 3308 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (flag_unsafe_math_optimizations && canonicalize_math_p ()) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[2]))) lseq = NULL; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3312, %s:%d\n", __FILE__, __LINE__); *res_code = SIN; res_ops[0] = captures[1]; gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } return false; } static bool gimple_simplify_133 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , enum tree_code ARG_UNUSED (div)) { /* #line 268 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (integer_pow2p (captures[2]) && tree_int_cst_sgn (captures[2]) > 0 && wi::add (captures[2], captures[1]) == 0 && tree_nop_conversion_p (type, TREE_TYPE (captures[0]))) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:272, %s:%d\n", __FILE__, __LINE__); *res_code = RSHIFT_EXPR; { tree ops1[1], res; ops1[0] = captures[0]; if (type != TREE_TYPE (ops1[0]) && !useless_type_conversion_p (type, TREE_TYPE (ops1[0]))) { code_helper tem_code = NOP_EXPR; tree tem_ops[3] = { ops1[0] }; gimple_resimplify1 (lseq, &tem_code, type, tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, type, tem_ops, lseq); if (!res) return false; } else res = ops1[0]; res_ops[0] = res; } res_ops[1] = build_int_cst (integer_type_node, wi::exact_log2 (captures[2])); gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } return false; } static bool gimple_simplify_134 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , enum tree_code ARG_UNUSED (cmp), enum tree_code ARG_UNUSED (scmp)) { /* #line 2666 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (FLOAT_TYPE_P (TREE_TYPE (captures[0])) || (ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[0])) && TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[0])))) { { /* #line 2669 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree tem = const_unop (NEGATE_EXPR, TREE_TYPE (captures[0]), captures[1]); /* #line 2670 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (tem && !TREE_OVERFLOW (tem)) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2671, %s:%d\n", __FILE__, __LINE__); *res_code = scmp; res_ops[0] = captures[0]; res_ops[1] = tem; gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } } return false; } static bool gimple_simplify_135 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , enum tree_code ARG_UNUSED (cmp)) { { /* #line 2851 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ HOST_WIDE_INT off0, off1; tree base0 = get_addr_base_and_unit_offset (TREE_OPERAND (captures[1], 0), &off0); tree base1 = get_addr_base_and_unit_offset (TREE_OPERAND (captures[2], 0), &off1); if (base0 && TREE_CODE (base0) == MEM_REF) { off0 += mem_ref_offset (base0).to_short_addr (); base0 = TREE_OPERAND (base0, 0); } if (base1 && TREE_CODE (base1) == MEM_REF) { off1 += mem_ref_offset (base1).to_short_addr (); base1 = TREE_OPERAND (base1, 0); }/* #line 2867 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (base0 && base1) { { /* #line 2868 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ int equal = 2; if (0 && ((VAR_P (base0) && DECL_HAS_VALUE_EXPR_P (base0)) || (VAR_P (base1) && DECL_HAS_VALUE_EXPR_P (base1)))) ; else if (decl_in_symtab_p (base0) && decl_in_symtab_p (base1)) equal = symtab_node::get_create (base0) ->equal_address_to (symtab_node::get_create (base1)); else if ((DECL_P (base0) || TREE_CODE (base0) == SSA_NAME || TREE_CODE (base0) == STRING_CST) && (DECL_P (base1) || TREE_CODE (base1) == SSA_NAME || TREE_CODE (base1) == STRING_CST)) equal = (base0 == base1); /* #line 2890 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (equal == 1 && (cmp == EQ_EXPR || cmp == NE_EXPR || off0 == off1 || POINTER_TYPE_OVERFLOW_UNDEFINED || (POINTER_TYPE_P (TREE_TYPE (captures[0])) && (DECL_P (base0) || TREE_CODE (base0) == STRING_CST)))) { /* #line 2899 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (cmp == EQ_EXPR) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2900, %s:%d\n", __FILE__, __LINE__); res_ops[0] = constant_boolean_node (off0 == off1, type); *res_code = TREE_CODE (res_ops[0]); return true; } else { /* #line 2901 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (cmp == NE_EXPR) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2902, %s:%d\n", __FILE__, __LINE__); res_ops[0] = constant_boolean_node (off0 != off1, type); *res_code = TREE_CODE (res_ops[0]); return true; } else { /* #line 2903 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (cmp == LT_EXPR) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2904, %s:%d\n", __FILE__, __LINE__); res_ops[0] = constant_boolean_node (off0 < off1, type); *res_code = TREE_CODE (res_ops[0]); return true; } else { /* #line 2905 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (cmp == LE_EXPR) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2906, %s:%d\n", __FILE__, __LINE__); res_ops[0] = constant_boolean_node (off0 <= off1, type); *res_code = TREE_CODE (res_ops[0]); return true; } else { /* #line 2907 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (cmp == GE_EXPR) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2908, %s:%d\n", __FILE__, __LINE__); res_ops[0] = constant_boolean_node (off0 >= off1, type); *res_code = TREE_CODE (res_ops[0]); return true; } else { /* #line 2909 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (cmp == GT_EXPR) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2910, %s:%d\n", __FILE__, __LINE__); res_ops[0] = constant_boolean_node (off0 > off1, type); *res_code = TREE_CODE (res_ops[0]); return true; } } } } } } } else { /* #line 2911 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (equal == 0 && DECL_P (base0) && DECL_P (base1) && (!INTEGRAL_TYPE_P (TREE_TYPE (captures[0])) || off0 == off1)) { /* #line 2917 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (cmp == EQ_EXPR) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2918, %s:%d\n", __FILE__, __LINE__); res_ops[0] = constant_boolean_node (false, type); *res_code = TREE_CODE (res_ops[0]); return true; } else { /* #line 2919 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (cmp == NE_EXPR) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2920, %s:%d\n", __FILE__, __LINE__); res_ops[0] = constant_boolean_node (true, type); *res_code = TREE_CODE (res_ops[0]); return true; } } } } } } } return false; } static bool gimple_simplify_136 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , combined_fn ARG_UNUSED (FMIN)) { /* #line 1431 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (flag_finite_math_only) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1434, %s:%d\n", __FILE__, __LINE__); *res_code = MIN_EXPR; res_ops[0] = captures[0]; res_ops[1] = captures[1]; gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } return false; } static bool gimple_simplify_137 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , combined_fn ARG_UNUSED (fns)) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3263, %s:%d\n", __FILE__, __LINE__); res_ops[0] = captures[0]; *res_code = TREE_CODE (res_ops[0]); return true; return false; } static bool gimple_simplify_138 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , combined_fn ARG_UNUSED (froms), combined_fn ARG_UNUSED (tos)) { /* #line 3486 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (optimize && canonicalize_math_p ()) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3489, %s:%d\n", __FILE__, __LINE__); *res_code = tos; res_ops[0] = captures[0]; gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } return false; } static bool gimple_simplify_139 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , enum tree_code ARG_UNUSED (cmp), enum tree_code ARG_UNUSED (ncmp)) { /* #line 2817 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (INTEGRAL_TYPE_P (TREE_TYPE (captures[1])) && (TYPE_PRECISION (TREE_TYPE (captures[1])) == GET_MODE_PRECISION (TYPE_MODE (TREE_TYPE (captures[1])))) && element_precision (captures[0]) >= element_precision (captures[1]) && wi::only_sign_bit_p (captures[2], element_precision (captures[1]))) { { /* #line 2822 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree stype = signed_type_for (TREE_TYPE (captures[1])); gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2823, %s:%d\n", __FILE__, __LINE__); *res_code = ncmp; { tree ops1[1], res; ops1[0] = captures[1]; if (stype != TREE_TYPE (ops1[0]) && !useless_type_conversion_p (stype, TREE_TYPE (ops1[0]))) { code_helper tem_code = NOP_EXPR; tree tem_ops[3] = { ops1[0] }; gimple_resimplify1 (lseq, &tem_code, stype, tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, stype, tem_ops, lseq); if (!res) return false; } else res = ops1[0]; res_ops[0] = res; } res_ops[1] = build_zero_cst (stype); gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } return false; } static bool gimple_simplify_140 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , combined_fn ARG_UNUSED (bswap)) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1985, %s:%d\n", __FILE__, __LINE__); *res_code = BIT_NOT_EXPR; res_ops[0] = captures[0]; gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; return false; } static bool gimple_simplify_141 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , enum tree_code ARG_UNUSED (cmp)) { /* #line 2610 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (wi::gt_p (captures[1], 0, TYPE_SIGN (TREE_TYPE (captures[1])))) { { /* #line 2611 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ bool ovf; wide_int prod = wi::mul (captures[2], captures[1], TYPE_SIGN (TREE_TYPE (captures[1])), &ovf); /* #line 2616 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (ovf) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2617, %s:%d\n", __FILE__, __LINE__); res_ops[0] = constant_boolean_node (wi::lt_p (captures[2], 0, TYPE_SIGN (TREE_TYPE (captures[2]))) != (cmp == LT_EXPR || cmp == LE_EXPR), type); *res_code = TREE_CODE (res_ops[0]); return true; } else { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2619, %s:%d\n", __FILE__, __LINE__); *res_code = cmp; res_ops[0] = captures[0]; res_ops[1] = wide_int_to_tree (TREE_TYPE (captures[0]), prod); gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } } return false; } static bool gimple_simplify_142 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , enum tree_code ARG_UNUSED (bitop), combined_fn ARG_UNUSED (bswap)) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1989, %s:%d\n", __FILE__, __LINE__); *res_code = bitop; res_ops[0] = captures[0]; { tree ops1[1], res; ops1[0] = captures[1]; code_helper tem_code = bswap; tree tem_ops[3] = { ops1[0] }; gimple_resimplify1 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[1] = res; } gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; return false; } static bool gimple_simplify_143 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) ) { /* #line 1147 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (!TYPE_SATURATING (type)) { /* #line 1180 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (tree_nop_conversion_p (type, TREE_TYPE (captures[0])) && !TYPE_OVERFLOW_SANITIZED (type)) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1182, %s:%d\n", __FILE__, __LINE__); *res_code = NOP_EXPR; res_ops[0] = captures[0]; gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } return false; } static bool gimple_simplify_144 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , enum tree_code ARG_UNUSED (div)) { /* #line 396 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (ANY_INTEGRAL_TYPE_P (type) && TYPE_OVERFLOW_UNDEFINED (type)) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:398, %s:%d\n", __FILE__, __LINE__); res_ops[0] = captures[0]; *res_code = TREE_CODE (res_ops[0]); return true; } return false; } static bool gimple_simplify_145 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , combined_fn ARG_UNUSED (copysigns)) { /* #line 476 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (REAL_VALUE_NEGATIVE (TREE_REAL_CST (captures[1]))) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:477, %s:%d\n", __FILE__, __LINE__); *res_code = NEGATE_EXPR; { tree ops1[1], res; ops1[0] = captures[0]; code_helper tem_code = ABS_EXPR; tree tem_ops[3] = { ops1[0] }; gimple_resimplify1 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[0] = res; } gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } else { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:478, %s:%d\n", __FILE__, __LINE__); *res_code = ABS_EXPR; res_ops[0] = captures[0]; gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } return false; } static bool gimple_simplify_146 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , enum tree_code ARG_UNUSED (cmp), enum tree_code ARG_UNUSED (icmp), enum tree_code ARG_UNUSED (ncmp)) { /* #line 2292 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (VECTOR_TYPE_P (type) || (INTEGRAL_TYPE_P (type) && TYPE_PRECISION (type) == 1)) { { /* #line 2298 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ enum tree_code ic = invert_tree_comparison (cmp, HONOR_NANS (captures[0])); /* #line 2300 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (ic == icmp) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2301, %s:%d\n", __FILE__, __LINE__); *res_code = icmp; res_ops[0] = captures[0]; res_ops[1] = captures[1]; gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } else { /* #line 2302 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (ic == ncmp) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2303, %s:%d\n", __FILE__, __LINE__); *res_code = ncmp; res_ops[0] = captures[0]; res_ops[1] = captures[1]; gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } } } return false; } static bool gimple_simplify_147 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, 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 (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1004, %s:%d\n", __FILE__, __LINE__); *res_code = BIT_XOR_EXPR; { tree ops1[2], res; { tree ops2[2], res; ops2[0] = captures[1]; ops2[1] = captures[4]; code_helper tem_code = BIT_XOR_EXPR; tree tem_ops[3] = { ops2[0], ops2[1] }; gimple_resimplify2 (lseq, &tem_code, TREE_TYPE (ops2[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops2[0]), tem_ops, lseq); if (!res) return false; ops1[0] = res; } ops1[1] = captures[2]; code_helper tem_code = BIT_AND_EXPR; tree tem_ops[3] = { ops1[0], ops1[1] }; gimple_resimplify2 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[0] = res; } res_ops[1] = captures[1]; gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; return false; } static bool gimple_simplify_148 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) ) { /* #line 508 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (! FLOAT_TYPE_P (type) && tree_nop_conversion_p (type, TREE_TYPE (captures[1]))) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:510, %s:%d\n", __FILE__, __LINE__); *res_code = LSHIFT_EXPR; res_ops[0] = captures[0]; res_ops[1] = captures[2]; gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } return false; } static bool gimple_simplify_149 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , combined_fn ARG_UNUSED (froms), combined_fn ARG_UNUSED (tos)) { /* #line 3455 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (optimize && canonicalize_math_p ()) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3458, %s:%d\n", __FILE__, __LINE__); *res_code = NOP_EXPR; { tree ops1[1], res; ops1[0] = captures[0]; code_helper tem_code = tos; tree tem_ops[3] = { ops1[0] }; gimple_resimplify1 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[0] = res; } gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } return false; } static bool gimple_simplify_150 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , enum tree_code ARG_UNUSED (cmp)) { /* #line 2356 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (cmp != NE_EXPR || ! FLOAT_TYPE_P (TREE_TYPE (captures[0])) || ! HONOR_NANS (captures[0])) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2359, %s:%d\n", __FILE__, __LINE__); res_ops[0] = constant_boolean_node (false, type); *res_code = TREE_CODE (res_ops[0]); return true; } return false; } static bool gimple_simplify_151 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , enum tree_code ARG_UNUSED (cmp)) { /* #line 2595 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (!integer_zerop (captures[1])) { /* #line 2596 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (wi::eq_p (captures[2], 0)) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2597, %s:%d\n", __FILE__, __LINE__); *res_code = cmp; res_ops[0] = captures[0]; res_ops[1] = captures[2]; gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } else { /* #line 2598 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (TREE_CODE (captures[1]) == INTEGER_CST) { { /* #line 2599 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ bool ovf; wide_int prod = wi::mul (captures[2], captures[1], TYPE_SIGN (TREE_TYPE (captures[1])), &ovf); /* #line 2604 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (ovf) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2605, %s:%d\n", __FILE__, __LINE__); res_ops[0] = constant_boolean_node (cmp == NE_EXPR, type); *res_code = TREE_CODE (res_ops[0]); return true; } else { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2606, %s:%d\n", __FILE__, __LINE__); *res_code = cmp; res_ops[0] = captures[0]; res_ops[1] = wide_int_to_tree (TREE_TYPE (captures[0]), prod); gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } } } } return false; } static bool gimple_simplify_152 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , enum tree_code ARG_UNUSED (op)) { /* #line 812 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (tree_nop_conversion_p (type, TREE_TYPE (captures[3])) && tree_nop_conversion_p (type, TREE_TYPE (captures[6]))) { /* #line 814 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (single_use (captures[4]) && single_use (captures[5])) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:815, %s:%d\n", __FILE__, __LINE__); *res_code = op; res_ops[0] = captures[0]; { tree ops1[1], res; ops1[0] = captures[6]; if (type != TREE_TYPE (ops1[0]) && !useless_type_conversion_p (type, TREE_TYPE (ops1[0]))) { code_helper tem_code = NOP_EXPR; tree tem_ops[3] = { ops1[0] }; gimple_resimplify1 (lseq, &tem_code, type, tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, type, tem_ops, lseq); if (!res) return false; } else res = ops1[0]; res_ops[1] = res; } gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } else { /* #line 816 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (single_use (captures[0]) && single_use (captures[1])) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:817, %s:%d\n", __FILE__, __LINE__); *res_code = op; { tree ops1[1], res; ops1[0] = captures[3]; if (type != TREE_TYPE (ops1[0]) && !useless_type_conversion_p (type, TREE_TYPE (ops1[0]))) { code_helper tem_code = NOP_EXPR; tree tem_ops[3] = { ops1[0] }; gimple_resimplify1 (lseq, &tem_code, type, tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, type, tem_ops, lseq); if (!res) return false; } else res = ops1[0]; res_ops[0] = res; } res_ops[1] = captures[4]; gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } } return false; } static bool gimple_simplify_153 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , enum tree_code ARG_UNUSED (test1), enum tree_code ARG_UNUSED (test2)) { /* #line 2643 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0])) || VECTOR_INTEGER_TYPE_P (TREE_TYPE (captures[0]))) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2645, %s:%d\n", __FILE__, __LINE__); res_ops[0] = constant_boolean_node (true, type); *res_code = TREE_CODE (res_ops[0]); return true; } return false; } static bool gimple_simplify_154 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , enum tree_code ARG_UNUSED (div)) { /* #line 158 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (!integer_zerop (captures[1])) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:159, %s:%d\n", __FILE__, __LINE__); res_ops[0] = captures[0]; *res_code = TREE_CODE (res_ops[0]); return true; } return false; } static bool gimple_simplify_155 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) ) { /* #line 1147 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (!TYPE_SATURATING (type)) { /* #line 1186 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if ((!FLOAT_TYPE_P (type) || flag_associative_math) && !FIXED_POINT_TYPE_P (type)) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1197, %s:%d\n", __FILE__, __LINE__); res_ops[0] = captures[1]; *res_code = TREE_CODE (res_ops[0]); return true; } } return false; } static bool gimple_simplify_156 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) ) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:684, %s:%d\n", __FILE__, __LINE__); *res_code = BIT_AND_EXPR; res_ops[0] = captures[0]; res_ops[1] = captures[1]; gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; return false; } static bool gimple_simplify_157 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , enum tree_code ARG_UNUSED (op)) { /* #line 3624 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (INTEGRAL_TYPE_P (type) && INTEGRAL_TYPE_P (TREE_TYPE (captures[2])) && INTEGRAL_TYPE_P (TREE_TYPE (captures[1])) && (TYPE_PRECISION (TREE_TYPE (captures[2])) == GET_MODE_PRECISION (TYPE_MODE (TREE_TYPE (captures[2])))) && (TYPE_PRECISION (TREE_TYPE (captures[4])) == GET_MODE_PRECISION (TYPE_MODE (TREE_TYPE (captures[4])))) && TYPE_PRECISION (type) == GET_MODE_PRECISION (TYPE_MODE (type)) && TYPE_PRECISION (TREE_TYPE (captures[1])) > TYPE_PRECISION (TREE_TYPE (captures[2])) && types_match (captures[2], type) && (types_match (captures[2], captures[4]) || TREE_CODE (captures[4]) == INTEGER_CST)) { /* #line 3644 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[2]))) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]))) lseq = NULL; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3645, %s:%d\n", __FILE__, __LINE__); *res_code = op; res_ops[0] = captures[2]; { tree ops1[1], res; ops1[0] = captures[4]; if (type != TREE_TYPE (ops1[0]) && !useless_type_conversion_p (type, TREE_TYPE (ops1[0]))) { code_helper tem_code = NOP_EXPR; tree tem_ops[3] = { ops1[0] }; gimple_resimplify1 (lseq, &tem_code, type, tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, type, tem_ops, lseq); if (!res) return false; } else res = ops1[0]; res_ops[1] = res; } gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } else { { /* #line 3646 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree utype = unsigned_type_for (TREE_TYPE (captures[2])); gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]))) lseq = NULL; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3647, %s:%d\n", __FILE__, __LINE__); *res_code = NOP_EXPR; { tree ops1[2], res; { tree ops2[1], res; ops2[0] = captures[2]; if (utype != TREE_TYPE (ops2[0]) && !useless_type_conversion_p (utype, TREE_TYPE (ops2[0]))) { code_helper tem_code = NOP_EXPR; tree tem_ops[3] = { ops2[0] }; gimple_resimplify1 (lseq, &tem_code, utype, tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, utype, tem_ops, lseq); if (!res) return false; } else res = ops2[0]; ops1[0] = res; } { tree ops2[1], res; ops2[0] = captures[4]; if (utype != TREE_TYPE (ops2[0]) && !useless_type_conversion_p (utype, TREE_TYPE (ops2[0]))) { code_helper tem_code = NOP_EXPR; tree tem_ops[3] = { ops2[0] }; gimple_resimplify1 (lseq, &tem_code, utype, tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, utype, tem_ops, lseq); if (!res) return false; } else res = ops2[0]; ops1[1] = res; } code_helper tem_code = op; tree tem_ops[3] = { ops1[0], ops1[1] }; gimple_resimplify2 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[0] = res; } gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } } return false; } static bool gimple_simplify_158 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , enum tree_code ARG_UNUSED (cmp)) { /* #line 2778 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (tree_nop_conversion_p (TREE_TYPE (captures[0]), TREE_TYPE (captures[1]))) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2779, %s:%d\n", __FILE__, __LINE__); *res_code = cmp; res_ops[0] = captures[1]; { tree ops1[2], res; ops1[0] = captures[2]; { tree ops2[1], res; ops2[0] = captures[3]; if (TREE_TYPE (res_ops[0]) != TREE_TYPE (ops2[0]) && !useless_type_conversion_p (TREE_TYPE (res_ops[0]), TREE_TYPE (ops2[0]))) { code_helper tem_code = NOP_EXPR; tree tem_ops[3] = { ops2[0] }; gimple_resimplify1 (lseq, &tem_code, TREE_TYPE (res_ops[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (res_ops[0]), tem_ops, lseq); if (!res) return false; } else res = ops2[0]; ops1[1] = res; } code_helper tem_code = BIT_XOR_EXPR; tree tem_ops[3] = { ops1[0], ops1[1] }; gimple_resimplify2 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[1] = res; } gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } return false; } static bool gimple_simplify_159 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) ) { /* #line 222 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (FLOAT_TYPE_P (type) && ! HONOR_NANS (type) && ! HONOR_INFINITIES (type)) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:225, %s:%d\n", __FILE__, __LINE__); res_ops[0] = build_minus_one_cst (type); *res_code = TREE_CODE (res_ops[0]); return true; } return false; } static bool gimple_simplify_160 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , enum tree_code ARG_UNUSED (cmp)) { /* #line 1018 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (INTEGRAL_TYPE_P (TREE_TYPE (captures[1])) && TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[0])) && tree_expr_nonzero_p (captures[1])) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1021, %s:%d\n", __FILE__, __LINE__); *res_code = cmp; res_ops[0] = captures[0]; res_ops[1] = captures[2]; gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } return false; } static bool gimple_simplify_161 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) ) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:697, %s:%d\n", __FILE__, __LINE__); *res_code = PLUS_EXPR; res_ops[0] = captures[0]; res_ops[1] = captures[1]; gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; return false; } static bool gimple_simplify_162 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) ) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:955, %s:%d\n", __FILE__, __LINE__); res_ops[0] = build_zero_cst (type); *res_code = TREE_CODE (res_ops[0]); return true; return false; } static bool gimple_simplify_163 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , enum tree_code ARG_UNUSED (mod)) { /* #line 300 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (!integer_zerop (captures[1])) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:301, %s:%d\n", __FILE__, __LINE__); res_ops[0] = captures[0]; *res_code = TREE_CODE (res_ops[0]); return true; } return false; } static bool gimple_simplify_164 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) ) { /* #line 1147 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (!TYPE_SATURATING (type)) { /* #line 1186 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if ((!FLOAT_TYPE_P (type) || flag_associative_math) && !FIXED_POINT_TYPE_P (type)) { /* #line 1248 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (tree_nop_conversion_p (type, TREE_TYPE (captures[0]))) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1249, %s:%d\n", __FILE__, __LINE__); *res_code = NEGATE_EXPR; { tree ops1[1], res; ops1[0] = captures[0]; if (type != TREE_TYPE (ops1[0]) && !useless_type_conversion_p (type, TREE_TYPE (ops1[0]))) { code_helper tem_code = NOP_EXPR; tree tem_ops[3] = { ops1[0] }; gimple_resimplify1 (lseq, &tem_code, type, tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, type, tem_ops, lseq); if (!res) return false; } else res = ops1[0]; res_ops[0] = res; } gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } } return false; } static bool gimple_simplify_165 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) ) { /* #line 95 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (fold_real_zero_addition_p (type, captures[1], 0)) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:96, %s:%d\n", __FILE__, __LINE__); res_ops[0] = captures[0]; *res_code = TREE_CODE (res_ops[0]); return true; } return false; } static bool gimple_simplify_166 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , enum tree_code ARG_UNUSED (op), enum tree_code ARG_UNUSED (rop), enum tree_code ARG_UNUSED (cmp)) { /* #line 3727 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (!TREE_OVERFLOW (captures[2]) && !TREE_OVERFLOW (captures[3]) && TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[1]))) { { /* #line 3729 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree res = int_const_binop (rop, captures[3], captures[2]); /* #line 3730 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (TREE_OVERFLOW (res)) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3731, %s:%d\n", __FILE__, __LINE__); 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 (captures[2], 0, TYPE_SIGN (TREE_TYPE (captures[2]))) != (op == MINUS_EXPR); res_ops[0] = constant_boolean_node (less == ovf_high, type); *res_code = TREE_CODE (res_ops[0]); return true; } else { /* #line 3741 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (single_use (captures[0])) { { /* #line 3742 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ fold_overflow_warning (("assuming signed overflow does not occur " "when changing X +- C1 cmp C2 to " "X cmp C2 -+ C1"), WARN_STRICT_OVERFLOW_COMPARISON); gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3749, %s:%d\n", __FILE__, __LINE__); *res_code = cmp; res_ops[0] = captures[1]; res_ops[1] = res; gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } } } } return false; } static bool gimple_simplify_167 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , enum tree_code ARG_UNUSED (op)) { /* #line 812 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (tree_nop_conversion_p (type, TREE_TYPE (captures[3])) && tree_nop_conversion_p (type, TREE_TYPE (captures[6]))) { /* #line 814 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (single_use (captures[4]) && single_use (captures[5])) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:815, %s:%d\n", __FILE__, __LINE__); *res_code = op; res_ops[0] = captures[0]; { tree ops1[1], res; ops1[0] = captures[6]; if (type != TREE_TYPE (ops1[0]) && !useless_type_conversion_p (type, TREE_TYPE (ops1[0]))) { code_helper tem_code = NOP_EXPR; tree tem_ops[3] = { ops1[0] }; gimple_resimplify1 (lseq, &tem_code, type, tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, type, tem_ops, lseq); if (!res) return false; } else res = ops1[0]; res_ops[1] = res; } gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } else { /* #line 816 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (single_use (captures[0]) && single_use (captures[1])) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:817, %s:%d\n", __FILE__, __LINE__); *res_code = op; { tree ops1[1], res; ops1[0] = captures[3]; if (type != TREE_TYPE (ops1[0]) && !useless_type_conversion_p (type, TREE_TYPE (ops1[0]))) { code_helper tem_code = NOP_EXPR; tree tem_ops[3] = { ops1[0] }; gimple_resimplify1 (lseq, &tem_code, type, tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, type, tem_ops, lseq); if (!res) return false; } else res = ops1[0]; res_ops[0] = res; } res_ops[1] = captures[4]; gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } } return false; } static bool gimple_simplify_168 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) ) { /* #line 859 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (tree_nop_conversion_p (type, TREE_TYPE (captures[0])) && tree_nop_conversion_p (type, TREE_TYPE (captures[1]))) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:861, %s:%d\n", __FILE__, __LINE__); *res_code = MULT_EXPR; { tree ops1[1], res; ops1[0] = captures[0]; if (type != TREE_TYPE (ops1[0]) && !useless_type_conversion_p (type, TREE_TYPE (ops1[0]))) { code_helper tem_code = NOP_EXPR; tree tem_ops[3] = { ops1[0] }; gimple_resimplify1 (lseq, &tem_code, type, tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, type, tem_ops, lseq); if (!res) return false; } else res = ops1[0]; res_ops[0] = res; } { tree ops1[1], res; { tree ops2[1], res; ops2[0] = captures[1]; code_helper tem_code = NEGATE_EXPR; tree tem_ops[3] = { ops2[0] }; gimple_resimplify1 (lseq, &tem_code, TREE_TYPE (ops2[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops2[0]), tem_ops, lseq); if (!res) return false; ops1[0] = res; } if (type != TREE_TYPE (ops1[0]) && !useless_type_conversion_p (type, TREE_TYPE (ops1[0]))) { code_helper tem_code = NOP_EXPR; tree tem_ops[3] = { ops1[0] }; gimple_resimplify1 (lseq, &tem_code, type, tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, type, tem_ops, lseq); if (!res) return false; } else res = ops1[0]; res_ops[1] = res; } gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } return false; } static bool gimple_simplify_169 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , enum tree_code ARG_UNUSED (cmp), enum tree_code ARG_UNUSED (scmp)) { /* #line 2660 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (FLOAT_TYPE_P (TREE_TYPE (captures[0])) || (ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[0])) && TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[0])))) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2663, %s:%d\n", __FILE__, __LINE__); *res_code = scmp; res_ops[0] = captures[0]; res_ops[1] = captures[1]; gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } return false; } static bool gimple_simplify_170 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , enum tree_code ARG_UNUSED (div)) { /* #line 175 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (INTEGRAL_TYPE_P (type) && TYPE_OVERFLOW_UNDEFINED (type)) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:177, %s:%d\n", __FILE__, __LINE__); *res_code = COND_EXPR; { tree ops1[2], res; ops1[0] = captures[0]; ops1[1] = build_zero_cst (type); code_helper tem_code = LT_EXPR; tree tem_ops[3] = { ops1[0], ops1[1] }; gimple_resimplify2 (lseq, &tem_code, boolean_type_node, tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, boolean_type_node, tem_ops, lseq); if (!res) return false; res_ops[0] = res; } res_ops[1] = build_minus_one_cst (type); res_ops[2] = build_one_cst (type); gimple_resimplify3 (lseq, res_code, type, res_ops, valueize); return true; } return false; } static bool gimple_simplify_171 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , enum tree_code ARG_UNUSED (cmp)) { /* #line 1475 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (wi::gt_p (captures[1], captures[2], TYPE_SIGN (TREE_TYPE (captures[0])))) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1476, %s:%d\n", __FILE__, __LINE__); res_ops[0] = constant_boolean_node (cmp == NE_EXPR, type); *res_code = TREE_CODE (res_ops[0]); return true; } else { /* #line 1477 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (wi::lt_p (captures[1], captures[2], TYPE_SIGN (TREE_TYPE (captures[0])))) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1478, %s:%d\n", __FILE__, __LINE__); *res_code = cmp; res_ops[0] = captures[0]; res_ops[1] = captures[2]; gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } return false; } static bool gimple_simplify_172 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , enum tree_code ARG_UNUSED (cmp), enum tree_code ARG_UNUSED (ncmp)) { /* #line 2817 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (INTEGRAL_TYPE_P (TREE_TYPE (captures[1])) && (TYPE_PRECISION (TREE_TYPE (captures[1])) == GET_MODE_PRECISION (TYPE_MODE (TREE_TYPE (captures[1])))) && element_precision (captures[0]) >= element_precision (captures[1]) && wi::only_sign_bit_p (captures[2], element_precision (captures[1]))) { { /* #line 2822 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree stype = signed_type_for (TREE_TYPE (captures[1])); gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2823, %s:%d\n", __FILE__, __LINE__); *res_code = ncmp; { tree ops1[1], res; ops1[0] = captures[1]; if (stype != TREE_TYPE (ops1[0]) && !useless_type_conversion_p (stype, TREE_TYPE (ops1[0]))) { code_helper tem_code = NOP_EXPR; tree tem_ops[3] = { ops1[0] }; gimple_resimplify1 (lseq, &tem_code, stype, tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, stype, tem_ops, lseq); if (!res) return false; } else res = ops1[0]; res_ops[0] = res; } res_ops[1] = build_zero_cst (stype); gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } return false; } static bool gimple_simplify_173 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , enum tree_code ARG_UNUSED (shift)) { /* #line 1605 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (tree_nop_conversion_p (TREE_TYPE (captures[0]), TREE_TYPE (captures[1])) && TYPE_PRECISION (type) <= HOST_BITS_PER_WIDE_INT && tree_fits_uhwi_p (captures[4]) && tree_to_uhwi (captures[4]) > 0 && tree_to_uhwi (captures[4]) < TYPE_PRECISION (type)) { { /* #line 1610 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ unsigned int shiftc = tree_to_uhwi (captures[4]); unsigned HOST_WIDE_INT mask = TREE_INT_CST_LOW (captures[5]); unsigned HOST_WIDE_INT newmask, zerobits = 0; tree shift_type = TREE_TYPE (captures[2]); unsigned int prec; if (shift == LSHIFT_EXPR) zerobits = ((HOST_WIDE_INT_1U << shiftc) - 1); else if (shift == RSHIFT_EXPR && (TYPE_PRECISION (shift_type) == GET_MODE_PRECISION (TYPE_MODE (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_PRECISION (inner_type) == GET_MODE_PRECISION (TYPE_MODE (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 1666 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if ((mask & zerobits) == mask) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[1]))) lseq = NULL; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1667, %s:%d\n", __FILE__, __LINE__); res_ops[0] = build_int_cst (type, 0); *res_code = TREE_CODE (res_ops[0]); return true; } else { { /* #line 1668 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ newmask = mask | zerobits; /* #line 1669 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (newmask != mask && (newmask & (newmask + 1)) == 0) { { /* #line 1670 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ for (prec = BITS_PER_UNIT; prec < HOST_BITS_PER_WIDE_INT; prec <<= 1) if (newmask == (HOST_WIDE_INT_1U << prec) - 1) break; /* #line 1679 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (prec < HOST_BITS_PER_WIDE_INT || newmask == HOST_WIDE_INT_M1U) { { /* #line 1681 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree newmaskt = build_int_cst_type (TREE_TYPE (captures[5]), newmask); /* #line 1683 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (!tree_int_cst_equal (newmaskt, captures[5])) { /* #line 1684 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (shift_type != TREE_TYPE (captures[2])) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[1]))) lseq = NULL; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1685, %s:%d\n", __FILE__, __LINE__); *res_code = BIT_AND_EXPR; { tree ops1[1], res; { tree ops2[2], res; { tree ops3[1], res; ops3[0] = captures[2]; if (shift_type != TREE_TYPE (ops3[0]) && !useless_type_conversion_p (shift_type, TREE_TYPE (ops3[0]))) { code_helper tem_code = NOP_EXPR; tree tem_ops[3] = { ops3[0] }; gimple_resimplify1 (lseq, &tem_code, shift_type, tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, shift_type, tem_ops, lseq); if (!res) return false; } else res = ops3[0]; ops2[0] = res; } ops2[1] = captures[4]; code_helper tem_code = shift; tree tem_ops[3] = { ops2[0], ops2[1] }; gimple_resimplify2 (lseq, &tem_code, shift_type, tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, shift_type, tem_ops, lseq); if (!res) return false; ops1[0] = res; } if (type != TREE_TYPE (ops1[0]) && !useless_type_conversion_p (type, TREE_TYPE (ops1[0]))) { code_helper tem_code = NOP_EXPR; tree tem_ops[3] = { ops1[0] }; gimple_resimplify1 (lseq, &tem_code, type, tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, type, tem_ops, lseq); if (!res) return false; } else res = ops1[0]; res_ops[0] = res; } res_ops[1] = newmaskt; gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } else { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[1]))) lseq = NULL; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1686, %s:%d\n", __FILE__, __LINE__); *res_code = BIT_AND_EXPR; res_ops[0] = captures[0]; res_ops[1] = newmaskt; gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } } } } } } } } } return false; } static bool gimple_simplify_174 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , enum tree_code ARG_UNUSED (rotate)) { /* #line 1714 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if ((element_precision (TREE_TYPE (captures[2])) <= element_precision (TREE_TYPE (captures[3])) || !TYPE_UNSIGNED (TREE_TYPE (captures[3]))) && (element_precision (type) <= element_precision (TREE_TYPE (captures[2])) || !TYPE_UNSIGNED (TREE_TYPE (captures[2])))) { { /* #line 1719 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree rotate_type = TREE_TYPE (captures[2]); gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[1]))) lseq = NULL; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1721, %s:%d\n", __FILE__, __LINE__); *res_code = NOP_EXPR; { tree ops1[2], res; { tree ops2[1], res; ops2[0] = captures[3]; if (rotate_type != TREE_TYPE (ops2[0]) && !useless_type_conversion_p (rotate_type, TREE_TYPE (ops2[0]))) { code_helper tem_code = NOP_EXPR; tree tem_ops[3] = { ops2[0] }; gimple_resimplify1 (lseq, &tem_code, rotate_type, tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, rotate_type, tem_ops, lseq); if (!res) return false; } else res = ops2[0]; ops1[0] = res; } ops1[1] = captures[4]; code_helper tem_code = rotate; tree tem_ops[3] = { ops1[0], ops1[1] }; gimple_resimplify2 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[0] = res; } gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } return false; } static bool gimple_simplify_175 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , enum tree_code ARG_UNUSED (mod)) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:305, %s:%d\n", __FILE__, __LINE__); res_ops[0] = build_zero_cst (type); *res_code = TREE_CODE (res_ops[0]); return true; return false; } static bool gimple_simplify_176 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , enum tree_code ARG_UNUSED (cmp), enum tree_code ARG_UNUSED (op)) { { /* #line 2119 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree from_type = TREE_TYPE (captures[0]), to_type = TREE_TYPE (captures[1]); /* #line 2120 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (types_match (from_type, to_type) || (TYPE_UNSIGNED (from_type) && !TYPE_UNSIGNED (to_type) && TYPE_PRECISION (from_type) == TYPE_PRECISION (to_type) && integer_zerop (captures[1]) && (cmp == LT_EXPR || cmp == GE_EXPR))) { { /* #line 2127 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ bool overflow = false; enum tree_code code, cmp_code = cmp; wide_int real_c1, c1 = captures[1], c2 = captures[2], c3 = 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 2188 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (code == MAX_EXPR) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2189, %s:%d\n", __FILE__, __LINE__); *res_code = op; { tree ops1[2], res; ops1[0] = captures[0]; ops1[1] = wide_int_to_tree (from_type, real_c1); code_helper tem_code = MAX_EXPR; tree tem_ops[3] = { ops1[0], ops1[1] }; gimple_resimplify2 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[0] = res; } res_ops[1] = wide_int_to_tree (from_type, c2); gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } else { /* #line 2191 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (code == MIN_EXPR) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2192, %s:%d\n", __FILE__, __LINE__); *res_code = op; { tree ops1[2], res; ops1[0] = captures[0]; ops1[1] = wide_int_to_tree (from_type, real_c1); code_helper tem_code = MIN_EXPR; tree tem_ops[3] = { ops1[0], ops1[1] }; gimple_resimplify2 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[0] = res; } res_ops[1] = wide_int_to_tree (from_type, c2); gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } } } } return false; } static bool gimple_simplify_177 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) ) { /* #line 765 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (element_precision (type) <= element_precision (TREE_TYPE (captures[0])) && element_precision (type) <= element_precision (TREE_TYPE (captures[1]))) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:767, %s:%d\n", __FILE__, __LINE__); *res_code = BIT_XOR_EXPR; { tree ops1[1], res; ops1[0] = captures[0]; if (type != TREE_TYPE (ops1[0]) && !useless_type_conversion_p (type, TREE_TYPE (ops1[0]))) { code_helper tem_code = NOP_EXPR; tree tem_ops[3] = { ops1[0] }; gimple_resimplify1 (lseq, &tem_code, type, tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, type, tem_ops, lseq); if (!res) return false; } else res = ops1[0]; res_ops[0] = res; } { tree ops1[1], res; ops1[0] = captures[1]; if (type != TREE_TYPE (ops1[0]) && !useless_type_conversion_p (type, TREE_TYPE (ops1[0]))) { code_helper tem_code = NOP_EXPR; tree tem_ops[3] = { ops1[0] }; gimple_resimplify1 (lseq, &tem_code, type, tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, type, tem_ops, lseq); if (!res) return false; } else res = ops1[0]; res_ops[1] = res; } gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } return false; } static bool gimple_simplify_178 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , enum tree_code ARG_UNUSED (op), enum tree_code ARG_UNUSED (rop), enum tree_code ARG_UNUSED (cmp)) { /* #line 3712 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (!TREE_OVERFLOW (captures[2]) && !TREE_OVERFLOW (captures[3]) && !TYPE_OVERFLOW_SANITIZED (TREE_TYPE (captures[1])) && !TYPE_OVERFLOW_TRAPS (TREE_TYPE (captures[1])) && !TYPE_SATURATING (TREE_TYPE (captures[1]))) { { /* #line 3716 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree res = int_const_binop (rop, captures[3], captures[2]); /* #line 3717 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (TREE_OVERFLOW (res) && TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[1]))) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3719, %s:%d\n", __FILE__, __LINE__); res_ops[0] = constant_boolean_node (cmp == NE_EXPR, type); *res_code = TREE_CODE (res_ops[0]); return true; } else { /* #line 3720 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (single_use (captures[0])) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3721, %s:%d\n", __FILE__, __LINE__); *res_code = cmp; res_ops[0] = captures[1]; res_ops[1] = res; gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } } } return false; } static bool gimple_simplify_179 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) ) { /* #line 574 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (wi::bit_not (captures[1]) == captures[2]) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:575, %s:%d\n", __FILE__, __LINE__); *res_code = BIT_XOR_EXPR; res_ops[0] = captures[0]; res_ops[1] = captures[2]; gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } return false; } static bool gimple_simplify_180 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , combined_fn ARG_UNUSED (logs), combined_fn ARG_UNUSED (pows)) { /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (flag_unsafe_math_optimizations) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3223, %s:%d\n", __FILE__, __LINE__); *res_code = MULT_EXPR; res_ops[0] = captures[1]; { tree ops1[1], res; ops1[0] = captures[0]; code_helper tem_code = logs; tree tem_ops[3] = { ops1[0] }; gimple_resimplify1 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[1] = res; } gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } return false; } static bool gimple_simplify_181 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) ) { /* #line 1355 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (TREE_CODE (type) != COMPLEX_TYPE && (! ANY_INTEGRAL_TYPE_P (type) || TYPE_OVERFLOW_UNDEFINED (type))) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1358, %s:%d\n", __FILE__, __LINE__); *res_code = ABS_EXPR; res_ops[0] = captures[0]; gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } return false; } static bool gimple_simplify_182 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , combined_fn ARG_UNUSED (POW)) { /* #line 3308 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (flag_unsafe_math_optimizations && canonicalize_math_p ()) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[3]))) lseq = NULL; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3352, %s:%d\n", __FILE__, __LINE__); *res_code = POW; { tree ops1[2], res; ops1[0] = captures[1]; ops1[1] = captures[4]; code_helper tem_code = MULT_EXPR; tree tem_ops[3] = { ops1[0], ops1[1] }; gimple_resimplify2 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[0] = res; } res_ops[1] = captures[2]; gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } return false; } static bool gimple_simplify_183 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , enum tree_code ARG_UNUSED (mod)) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:320, %s:%d\n", __FILE__, __LINE__); res_ops[0] = captures[0]; *res_code = TREE_CODE (res_ops[0]); return true; return false; } static bool gimple_simplify_184 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , combined_fn ARG_UNUSED (FMAX)) { /* #line 1431 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (flag_finite_math_only) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1437, %s:%d\n", __FILE__, __LINE__); *res_code = MAX_EXPR; res_ops[0] = captures[0]; res_ops[1] = captures[1]; gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } return false; } static bool gimple_simplify_185 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , enum tree_code ARG_UNUSED (cmp), enum tree_code ARG_UNUSED (out)) { /* #line 3076 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (TYPE_UNSIGNED (TREE_TYPE (captures[1])) && types_match (TREE_TYPE (captures[1]), TREE_TYPE (captures[2]))) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3078, %s:%d\n", __FILE__, __LINE__); *res_code = out; { tree ops1[1], res; ops1[0] = captures[0]; code_helper tem_code = IMAGPART_EXPR; tree tem_ops[3] = { ops1[0] }; gimple_resimplify1 (lseq, &tem_code, TREE_TYPE (TREE_TYPE (ops1[0])), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (TREE_TYPE (ops1[0])), tem_ops, lseq); if (!res) return false; res_ops[0] = res; } res_ops[1] = build_zero_cst (TREE_TYPE (captures[1])); gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } return false; } static bool gimple_simplify_186 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , enum tree_code ARG_UNUSED (cmp), enum tree_code ARG_UNUSED (out)) { /* #line 3076 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (TYPE_UNSIGNED (TREE_TYPE (captures[1])) && types_match (TREE_TYPE (captures[1]), TREE_TYPE (captures[2]))) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3078, %s:%d\n", __FILE__, __LINE__); *res_code = out; { tree ops1[1], res; ops1[0] = captures[0]; code_helper tem_code = IMAGPART_EXPR; tree tem_ops[3] = { ops1[0] }; gimple_resimplify1 (lseq, &tem_code, TREE_TYPE (TREE_TYPE (ops1[0])), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (TREE_TYPE (ops1[0])), tem_ops, lseq); if (!res) return false; res_ops[0] = res; } res_ops[1] = build_zero_cst (TREE_TYPE (captures[1])); gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } return false; } static bool gimple_simplify_187 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , enum tree_code ARG_UNUSED (cmp), enum tree_code ARG_UNUSED (out)) { /* #line 3084 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (TYPE_UNSIGNED (TREE_TYPE (captures[1])) && types_match (TREE_TYPE (captures[1]), TREE_TYPE (captures[2]))) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3086, %s:%d\n", __FILE__, __LINE__); *res_code = out; { tree ops1[1], res; ops1[0] = captures[0]; code_helper tem_code = IMAGPART_EXPR; tree tem_ops[3] = { ops1[0] }; gimple_resimplify1 (lseq, &tem_code, TREE_TYPE (TREE_TYPE (ops1[0])), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (TREE_TYPE (ops1[0])), tem_ops, lseq); if (!res) return false; res_ops[0] = res; } res_ops[1] = build_zero_cst (TREE_TYPE (captures[1])); gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } return false; } static bool gimple_simplify_188 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , enum tree_code ARG_UNUSED (op)) { /* #line 812 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (tree_nop_conversion_p (type, TREE_TYPE (captures[3])) && tree_nop_conversion_p (type, TREE_TYPE (captures[6]))) { /* #line 814 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (single_use (captures[4]) && single_use (captures[5])) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:815, %s:%d\n", __FILE__, __LINE__); *res_code = op; res_ops[0] = captures[0]; { tree ops1[1], res; ops1[0] = captures[6]; if (type != TREE_TYPE (ops1[0]) && !useless_type_conversion_p (type, TREE_TYPE (ops1[0]))) { code_helper tem_code = NOP_EXPR; tree tem_ops[3] = { ops1[0] }; gimple_resimplify1 (lseq, &tem_code, type, tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, type, tem_ops, lseq); if (!res) return false; } else res = ops1[0]; res_ops[1] = res; } gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } else { /* #line 816 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (single_use (captures[0]) && single_use (captures[1])) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:817, %s:%d\n", __FILE__, __LINE__); *res_code = op; { tree ops1[1], res; ops1[0] = captures[3]; if (type != TREE_TYPE (ops1[0]) && !useless_type_conversion_p (type, TREE_TYPE (ops1[0]))) { code_helper tem_code = NOP_EXPR; tree tem_ops[3] = { ops1[0] }; gimple_resimplify1 (lseq, &tem_code, type, tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, type, tem_ops, lseq); if (!res) return false; } else res = ops1[0]; res_ops[0] = res; } res_ops[1] = captures[4]; gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } } return false; } static bool gimple_simplify_189 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , combined_fn ARG_UNUSED (POW)) { /* #line 3308 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (flag_unsafe_math_optimizations && canonicalize_math_p ()) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[1]))) lseq = NULL; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3368, %s:%d\n", __FILE__, __LINE__); *res_code = MULT_EXPR; res_ops[0] = captures[0]; { tree ops1[2], res; ops1[0] = captures[2]; { tree ops2[1], res; ops2[0] = captures[3]; code_helper tem_code = NEGATE_EXPR; tree tem_ops[3] = { ops2[0] }; gimple_resimplify1 (lseq, &tem_code, TREE_TYPE (ops2[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops2[0]), tem_ops, lseq); if (!res) return false; ops1[1] = res; } code_helper tem_code = POW; tree tem_ops[3] = { ops1[0], ops1[1] }; gimple_resimplify2 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[1] = res; } gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } return false; } static bool gimple_simplify_190 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , enum tree_code ARG_UNUSED (cmp)) { /* #line 2423 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (REAL_VALUE_MINUS_ZERO (TREE_REAL_CST (captures[1]))) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2424, %s:%d\n", __FILE__, __LINE__); *res_code = cmp; res_ops[0] = captures[0]; res_ops[1] = build_real (TREE_TYPE (captures[1]), dconst0); gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } else { /* #line 2426 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (REAL_VALUE_ISNAN (TREE_REAL_CST (captures[1])) && ! HONOR_SNANS (captures[1])) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2428, %s:%d\n", __FILE__, __LINE__); res_ops[0] = constant_boolean_node (cmp == NE_EXPR, type); *res_code = TREE_CODE (res_ops[0]); return true; } else { /* #line 2430 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (REAL_VALUE_ISINF (TREE_REAL_CST (captures[1])) && MODE_HAS_INFINITIES (TYPE_MODE (TREE_TYPE (captures[1])))) { { /* #line 2432 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ REAL_VALUE_TYPE max; enum tree_code code = cmp; bool neg = REAL_VALUE_NEGATIVE (TREE_REAL_CST (captures[1])); if (neg) code = swap_tree_comparison (code); /* #line 2442 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (code == GT_EXPR && ! HONOR_SNANS (captures[0])) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2444, %s:%d\n", __FILE__, __LINE__); res_ops[0] = constant_boolean_node (false, type); *res_code = TREE_CODE (res_ops[0]); return true; } else { /* #line 2445 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (code == LE_EXPR) { /* #line 2447 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (! HONOR_NANS (captures[0])) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2448, %s:%d\n", __FILE__, __LINE__); res_ops[0] = constant_boolean_node (true, type); *res_code = TREE_CODE (res_ops[0]); return true; } else { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2450, %s:%d\n", __FILE__, __LINE__); *res_code = EQ_EXPR; res_ops[0] = captures[0]; res_ops[1] = captures[0]; gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } else { /* #line 2452 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (code == EQ_EXPR || code == GE_EXPR) { { /* #line 2453 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ real_maxval (&max, neg, TYPE_MODE (TREE_TYPE (captures[0]))); /* #line 2454 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (neg) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2455, %s:%d\n", __FILE__, __LINE__); *res_code = LT_EXPR; res_ops[0] = captures[0]; res_ops[1] = build_real (TREE_TYPE (captures[0]), max); gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } else { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2456, %s:%d\n", __FILE__, __LINE__); *res_code = GT_EXPR; res_ops[0] = captures[0]; res_ops[1] = build_real (TREE_TYPE (captures[0]), max); gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } } else { /* #line 2458 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (code == LT_EXPR) { { /* #line 2459 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ real_maxval (&max, neg, TYPE_MODE (TREE_TYPE (captures[0]))); /* #line 2460 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (neg) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2461, %s:%d\n", __FILE__, __LINE__); *res_code = GE_EXPR; res_ops[0] = captures[0]; res_ops[1] = build_real (TREE_TYPE (captures[0]), max); gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } else { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2462, %s:%d\n", __FILE__, __LINE__); *res_code = LE_EXPR; res_ops[0] = captures[0]; res_ops[1] = build_real (TREE_TYPE (captures[0]), max); gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } } else { /* #line 2464 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (code == NE_EXPR) { { /* #line 2465 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ real_maxval (&max, neg, TYPE_MODE (TREE_TYPE (captures[0]))); /* #line 2466 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (! HONOR_NANS (captures[0])) { /* #line 2467 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (neg) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2468, %s:%d\n", __FILE__, __LINE__); *res_code = GE_EXPR; res_ops[0] = captures[0]; res_ops[1] = build_real (TREE_TYPE (captures[0]), max); gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } else { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2469, %s:%d\n", __FILE__, __LINE__); *res_code = LE_EXPR; res_ops[0] = captures[0]; res_ops[1] = build_real (TREE_TYPE (captures[0]), max); gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } else { /* #line 2470 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (neg) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2471, %s:%d\n", __FILE__, __LINE__); *res_code = BIT_XOR_EXPR; { tree ops1[2], res; ops1[0] = captures[0]; ops1[1] = build_real (TREE_TYPE (captures[0]), max); code_helper tem_code = LT_EXPR; tree tem_ops[3] = { ops1[0], ops1[1] }; gimple_resimplify2 (lseq, &tem_code, type, tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, type, tem_ops, lseq); if (!res) return false; res_ops[0] = res; } res_ops[1] = build_one_cst (type); gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } else { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2473, %s:%d\n", __FILE__, __LINE__); *res_code = BIT_XOR_EXPR; { tree ops1[2], res; ops1[0] = captures[0]; ops1[1] = build_real (TREE_TYPE (captures[0]), max); code_helper tem_code = GT_EXPR; tree tem_ops[3] = { ops1[0], ops1[1] }; gimple_resimplify2 (lseq, &tem_code, type, tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, type, tem_ops, lseq); if (!res) return false; res_ops[0] = res; } res_ops[1] = build_one_cst (type); gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } } } } } } } } } } } return false; } static bool gimple_simplify_191 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , enum tree_code ARG_UNUSED (outer_op)) { /* #line 1147 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (!TYPE_SATURATING (type)) { /* #line 1186 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if ((!FLOAT_TYPE_P (type) || flag_associative_math) && !FIXED_POINT_TYPE_P (type)) { { /* #line 1228 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree cst = const_binop (outer_op, type, captures[0], captures[2]); /* #line 1229 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (cst && !TREE_OVERFLOW (cst)) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1230, %s:%d\n", __FILE__, __LINE__); *res_code = MINUS_EXPR; res_ops[0] = cst; res_ops[1] = captures[1]; gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } } } return false; } static bool gimple_simplify_192 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) ) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2635, %s:%d\n", __FILE__, __LINE__); res_ops[0] = captures[1]; *res_code = TREE_CODE (res_ops[0]); return true; return false; } static bool gimple_simplify_193 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , enum tree_code ARG_UNUSED (op)) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:148, %s:%d\n", __FILE__, __LINE__); res_ops[0] = captures[0]; *res_code = TREE_CODE (res_ops[0]); return true; return false; } static bool gimple_simplify_194 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , enum tree_code ARG_UNUSED (op)) { /* #line 751 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (tree_nop_conversion_p (type, TREE_TYPE (captures[1])) && tree_nop_conversion_p (type, TREE_TYPE (captures[4])) && wi::bit_and (captures[2], captures[5]) == 0) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:754, %s:%d\n", __FILE__, __LINE__); *res_code = BIT_IOR_EXPR; { tree ops1[1], res; ops1[0] = captures[0]; if (type != TREE_TYPE (ops1[0]) && !useless_type_conversion_p (type, TREE_TYPE (ops1[0]))) { code_helper tem_code = NOP_EXPR; tree tem_ops[3] = { ops1[0] }; gimple_resimplify1 (lseq, &tem_code, type, tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, type, tem_ops, lseq); if (!res) return false; } else res = ops1[0]; res_ops[0] = res; } { tree ops1[1], res; ops1[0] = captures[3]; if (type != TREE_TYPE (ops1[0]) && !useless_type_conversion_p (type, TREE_TYPE (ops1[0]))) { code_helper tem_code = NOP_EXPR; tree tem_ops[3] = { ops1[0] }; gimple_resimplify1 (lseq, &tem_code, type, tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, type, tem_ops, lseq); if (!res) return false; } else res = ops1[0]; res_ops[1] = res; } gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } return false; } static bool gimple_simplify_195 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) ) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:806, %s:%d\n", __FILE__, __LINE__); *res_code = NOP_EXPR; res_ops[0] = captures[0]; gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; return false; } static bool gimple_simplify_196 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , enum tree_code ARG_UNUSED (cmp)) { /* #line 1468 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (wi::lt_p (captures[1], captures[2], TYPE_SIGN (TREE_TYPE (captures[0])))) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1469, %s:%d\n", __FILE__, __LINE__); res_ops[0] = constant_boolean_node (cmp == NE_EXPR, type); *res_code = TREE_CODE (res_ops[0]); return true; } else { /* #line 1470 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (wi::gt_p (captures[1], captures[2], TYPE_SIGN (TREE_TYPE (captures[0])))) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1471, %s:%d\n", __FILE__, __LINE__); *res_code = cmp; res_ops[0] = captures[0]; res_ops[1] = captures[2]; gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } return false; } static bool gimple_simplify_197 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , enum tree_code ARG_UNUSED (inner_op), enum tree_code ARG_UNUSED (outer_op)) { { /* #line 1054 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ bool fail = false; wide_int zero_mask_not; wide_int C0; wide_int cst_emit; if (TREE_CODE (captures[1]) == SSA_NAME) zero_mask_not = get_nonzero_bits (captures[1]); else fail = true; if (inner_op == BIT_XOR_EXPR) { C0 = wi::bit_and_not (captures[2], captures[3]); cst_emit = wi::bit_or (C0, captures[3]); } else { C0 = captures[2]; cst_emit = wi::bit_xor (captures[2], captures[3]); }/* #line 1077 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (!fail && wi::bit_and (C0, zero_mask_not) == 0) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]))) lseq = NULL; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1078, %s:%d\n", __FILE__, __LINE__); *res_code = outer_op; res_ops[0] = captures[1]; res_ops[1] = wide_int_to_tree (type, cst_emit); gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } else { /* #line 1079 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (!fail && wi::bit_and (captures[3], zero_mask_not) == 0) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]))) lseq = NULL; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1080, %s:%d\n", __FILE__, __LINE__); *res_code = inner_op; res_ops[0] = captures[1]; res_ops[1] = wide_int_to_tree (type, cst_emit); gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } } return false; } static bool gimple_simplify_198 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , combined_fn ARG_UNUSED (SIN), combined_fn ARG_UNUSED (TAN), combined_fn ARG_UNUSED (COS)) { /* #line 3308 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (flag_unsafe_math_optimizations && canonicalize_math_p ()) { /* #line 3333 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (! HONOR_NANS (captures[1]) && ! HONOR_INFINITIES (captures[1])) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[2]))) lseq = NULL; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3335, %s:%d\n", __FILE__, __LINE__); *res_code = COS; res_ops[0] = captures[1]; gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } return false; } static bool gimple_simplify_199 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , enum tree_code ARG_UNUSED (op)) { /* #line 812 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (tree_nop_conversion_p (type, TREE_TYPE (captures[3])) && tree_nop_conversion_p (type, TREE_TYPE (captures[6]))) { /* #line 814 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (single_use (captures[4]) && single_use (captures[5])) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:815, %s:%d\n", __FILE__, __LINE__); *res_code = op; res_ops[0] = captures[0]; { tree ops1[1], res; ops1[0] = captures[6]; if (type != TREE_TYPE (ops1[0]) && !useless_type_conversion_p (type, TREE_TYPE (ops1[0]))) { code_helper tem_code = NOP_EXPR; tree tem_ops[3] = { ops1[0] }; gimple_resimplify1 (lseq, &tem_code, type, tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, type, tem_ops, lseq); if (!res) return false; } else res = ops1[0]; res_ops[1] = res; } gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } else { /* #line 816 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (single_use (captures[0]) && single_use (captures[1])) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:817, %s:%d\n", __FILE__, __LINE__); *res_code = op; { tree ops1[1], res; ops1[0] = captures[3]; if (type != TREE_TYPE (ops1[0]) && !useless_type_conversion_p (type, TREE_TYPE (ops1[0]))) { code_helper tem_code = NOP_EXPR; tree tem_ops[3] = { ops1[0] }; gimple_resimplify1 (lseq, &tem_code, type, tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, type, tem_ops, lseq); if (!res) return false; } else res = ops1[0]; res_ops[0] = res; } res_ops[1] = captures[4]; gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } } return false; } static bool gimple_simplify_200 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) ) { /* #line 1147 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (!TYPE_SATURATING (type)) { /* #line 1167 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (tree_nop_conversion_p (type, TREE_TYPE (captures[1])) && !TYPE_OVERFLOW_SANITIZED (type)) { { /* #line 1169 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree t1 = type; if (INTEGRAL_TYPE_P (type) && TYPE_OVERFLOW_WRAPS (type) != TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[1]))) t1 = TYPE_OVERFLOW_WRAPS (type) ? type : TREE_TYPE (captures[1]); gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1176, %s:%d\n", __FILE__, __LINE__); *res_code = NOP_EXPR; { tree ops1[2], res; { tree ops2[1], res; ops2[0] = captures[0]; if (t1 != TREE_TYPE (ops2[0]) && !useless_type_conversion_p (t1, TREE_TYPE (ops2[0]))) { code_helper tem_code = NOP_EXPR; tree tem_ops[3] = { ops2[0] }; gimple_resimplify1 (lseq, &tem_code, t1, tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, t1, tem_ops, lseq); if (!res) return false; } else res = ops2[0]; ops1[0] = res; } { tree ops2[1], res; ops2[0] = captures[1]; if (t1 != TREE_TYPE (ops2[0]) && !useless_type_conversion_p (t1, TREE_TYPE (ops2[0]))) { code_helper tem_code = NOP_EXPR; tree tem_ops[3] = { ops2[0] }; gimple_resimplify1 (lseq, &tem_code, t1, tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, t1, tem_ops, lseq); if (!res) return false; } else res = ops2[0]; ops1[1] = res; } code_helper tem_code = PLUS_EXPR; tree tem_ops[3] = { ops1[0], ops1[1] }; gimple_resimplify2 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[0] = res; } gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } } return false; } static bool gimple_simplify_201 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , enum tree_code ARG_UNUSED (shiftrotate)) { { /* #line 1527 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree tem = uniform_vector_p (captures[1]); /* #line 1528 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (tem) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1529, %s:%d\n", __FILE__, __LINE__); *res_code = shiftrotate; res_ops[0] = captures[0]; res_ops[1] = tem; gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } return false; } static bool gimple_simplify_202 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , enum tree_code ARG_UNUSED (div)) { /* #line 163 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (!TYPE_UNSIGNED (type)) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:164, %s:%d\n", __FILE__, __LINE__); *res_code = NEGATE_EXPR; res_ops[0] = captures[0]; gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } return false; } static bool gimple_simplify_203 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) ) { /* #line 1134 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (POINTER_TYPE_P (TREE_TYPE (captures[0])) && tree_nop_conversion_p (type, TREE_TYPE (captures[0]))) { { /* #line 1136 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ unsigned int align; unsigned HOST_WIDE_INT bitpos; get_pointer_alignment_1 (captures[0], &align, &bitpos); /* #line 1142 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (wi::ltu_p (captures[1], align / BITS_PER_UNIT)) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1143, %s:%d\n", __FILE__, __LINE__); res_ops[0] = wide_int_to_tree (type, wi::bit_and (captures[1], bitpos / BITS_PER_UNIT)); *res_code = TREE_CODE (res_ops[0]); return true; } } } return false; } static bool gimple_simplify_204 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , enum tree_code ARG_UNUSED (cmp), enum tree_code ARG_UNUSED (icmp)) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2792, %s:%d\n", __FILE__, __LINE__); *res_code = icmp; res_ops[0] = captures[0]; res_ops[1] = build_zero_cst (TREE_TYPE (captures[1])); gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; return false; } static bool gimple_simplify_205 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , combined_fn ARG_UNUSED (sq), enum tree_code ARG_UNUSED (cmp)) { /* #line 2504 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (flag_unsafe_math_optimizations && ! flag_errno_math) { /* #line 2510 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (REAL_VALUE_NEGATIVE (TREE_REAL_CST (captures[1]))) { /* #line 2513 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (cmp == EQ_EXPR || cmp == LT_EXPR || cmp == LE_EXPR) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2514, %s:%d\n", __FILE__, __LINE__); res_ops[0] = constant_boolean_node (false, type); *res_code = TREE_CODE (res_ops[0]); return true; } else { /* #line 2517 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (cmp == NE_EXPR || !HONOR_NANS (captures[0])) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2518, %s:%d\n", __FILE__, __LINE__); res_ops[0] = constant_boolean_node (true, type); *res_code = TREE_CODE (res_ops[0]); return true; } else { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2520, %s:%d\n", __FILE__, __LINE__); *res_code = GE_EXPR; res_ops[0] = captures[0]; res_ops[1] = build_real (TREE_TYPE (captures[0]), dconst0); gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } } else { /* #line 2521 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (real_equal (TREE_REAL_CST_PTR (captures[1]), &dconst0)) { /* #line 2524 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (cmp == LT_EXPR) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2525, %s:%d\n", __FILE__, __LINE__); res_ops[0] = constant_boolean_node (false, type); *res_code = TREE_CODE (res_ops[0]); return true; } else { /* #line 2527 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (cmp == GE_EXPR && !HONOR_NANS (captures[0])) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2528, %s:%d\n", __FILE__, __LINE__); res_ops[0] = constant_boolean_node (true, type); *res_code = TREE_CODE (res_ops[0]); return true; } else { /* #line 2530 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (cmp == LE_EXPR) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2531, %s:%d\n", __FILE__, __LINE__); *res_code = EQ_EXPR; res_ops[0] = captures[0]; res_ops[1] = captures[1]; gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } else { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2539, %s:%d\n", __FILE__, __LINE__); *res_code = cmp; res_ops[0] = captures[0]; res_ops[1] = captures[1]; gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } } } else { /* #line 2540 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (cmp == GT_EXPR || cmp == GE_EXPR) { { /* #line 2541 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ REAL_VALUE_TYPE c2; real_arithmetic (&c2, MULT_EXPR, &TREE_REAL_CST (captures[1]), &TREE_REAL_CST (captures[1])); real_convert (&c2, TYPE_MODE (TREE_TYPE (captures[0])), &c2); /* #line 2548 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (REAL_VALUE_ISINF (c2)) { /* #line 2550 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (HONOR_INFINITIES (captures[0])) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2551, %s:%d\n", __FILE__, __LINE__); *res_code = EQ_EXPR; res_ops[0] = captures[0]; res_ops[1] = build_real (TREE_TYPE (captures[0]), c2); gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } else { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2552, %s:%d\n", __FILE__, __LINE__); res_ops[0] = constant_boolean_node (false, type); *res_code = TREE_CODE (res_ops[0]); return true; } } else { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2554, %s:%d\n", __FILE__, __LINE__); *res_code = cmp; res_ops[0] = captures[0]; res_ops[1] = build_real (TREE_TYPE (captures[0]), c2); gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } } else { /* #line 2555 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (cmp == LT_EXPR || cmp == LE_EXPR) { { /* #line 2556 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ REAL_VALUE_TYPE c2; real_arithmetic (&c2, MULT_EXPR, &TREE_REAL_CST (captures[1]), &TREE_REAL_CST (captures[1])); real_convert (&c2, TYPE_MODE (TREE_TYPE (captures[0])), &c2); /* #line 2563 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (REAL_VALUE_ISINF (c2)) { /* #line 2567 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (! HONOR_NANS (captures[0]) && ! HONOR_INFINITIES (captures[0])) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2568, %s:%d\n", __FILE__, __LINE__); res_ops[0] = constant_boolean_node (true, type); *res_code = TREE_CODE (res_ops[0]); return true; } else { /* #line 2571 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (! HONOR_NANS (captures[0])) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2572, %s:%d\n", __FILE__, __LINE__); *res_code = NE_EXPR; res_ops[0] = captures[0]; res_ops[1] = build_real (TREE_TYPE (captures[0]), c2); gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } else { /* #line 2575 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (! HONOR_INFINITIES (captures[0])) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2576, %s:%d\n", __FILE__, __LINE__); *res_code = GE_EXPR; res_ops[0] = captures[0]; res_ops[1] = build_real (TREE_TYPE (captures[0]), dconst0); gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } else { /* #line 2578 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (0) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2579, %s:%d\n", __FILE__, __LINE__); *res_code = TRUTH_ANDIF_EXPR; { tree ops1[2], res; ops1[0] = captures[0]; ops1[1] = build_real (TREE_TYPE (captures[0]), dconst0); code_helper tem_code = GE_EXPR; tree tem_ops[3] = { ops1[0], ops1[1] }; gimple_resimplify2 (lseq, &tem_code, type, tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, type, tem_ops, lseq); if (!res) return false; res_ops[0] = res; } { tree ops1[2], res; ops1[0] = captures[0]; ops1[1] = build_real (TREE_TYPE (captures[0]), c2); code_helper tem_code = NE_EXPR; tree tem_ops[3] = { ops1[0], ops1[1] }; gimple_resimplify2 (lseq, &tem_code, type, tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, type, tem_ops, lseq); if (!res) return false; res_ops[1] = res; } gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } } } } else { /* #line 2583 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (! HONOR_NANS (captures[0])) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2584, %s:%d\n", __FILE__, __LINE__); *res_code = cmp; res_ops[0] = captures[0]; res_ops[1] = build_real (TREE_TYPE (captures[0]), c2); gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } else { /* #line 2586 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (0) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2587, %s:%d\n", __FILE__, __LINE__); *res_code = TRUTH_ANDIF_EXPR; { tree ops1[2], res; ops1[0] = captures[0]; ops1[1] = build_real (TREE_TYPE (captures[0]), dconst0); code_helper tem_code = GE_EXPR; tree tem_ops[3] = { ops1[0], ops1[1] }; gimple_resimplify2 (lseq, &tem_code, type, tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, type, tem_ops, lseq); if (!res) return false; res_ops[0] = res; } { tree ops1[2], res; ops1[0] = captures[0]; ops1[1] = build_real (TREE_TYPE (captures[0]), c2); code_helper tem_code = cmp; tree tem_ops[3] = { ops1[0], ops1[1] }; gimple_resimplify2 (lseq, &tem_code, type, tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, type, tem_ops, lseq); if (!res) return false; res_ops[1] = res; } gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } } } } } } } } return false; } static bool gimple_simplify_206 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , enum tree_code ARG_UNUSED (cmp)) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2367, %s:%d\n", __FILE__, __LINE__); *res_code = UNORDERED_EXPR; res_ops[0] = captures[0]; res_ops[1] = captures[0]; gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; return false; } static bool gimple_simplify_207 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) ) { /* #line 975 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (element_precision (type) <= element_precision (TREE_TYPE (captures[0])) || !TYPE_UNSIGNED (TREE_TYPE (captures[0]))) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:977, %s:%d\n", __FILE__, __LINE__); *res_code = NOP_EXPR; { tree ops1[2], res; ops1[0] = captures[0]; ops1[1] = build_each_one_cst (TREE_TYPE (captures[0])); code_helper tem_code = MINUS_EXPR; tree tem_ops[3] = { ops1[0], ops1[1] }; gimple_resimplify2 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[0] = res; } gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } return false; } static bool gimple_simplify_208 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , combined_fn ARG_UNUSED (fns)) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3258, %s:%d\n", __FILE__, __LINE__); *res_code = fns; res_ops[0] = captures[0]; gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; return false; } static bool gimple_simplify_209 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , enum tree_code ARG_UNUSED (cmp)) { /* #line 1031 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (INTEGRAL_TYPE_P (TREE_TYPE (captures[1])) && TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[0]))) { /* #line 1033 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (tree_expr_nonnegative_p (captures[1]) && tree_expr_nonzero_p (captures[1])) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1034, %s:%d\n", __FILE__, __LINE__); *res_code = cmp; res_ops[0] = captures[0]; res_ops[1] = captures[2]; gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } else { /* #line 1035 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (TREE_CODE (captures[1]) == INTEGER_CST && wi::neg_p (captures[1], TYPE_SIGN (TREE_TYPE (captures[1])))) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1037, %s:%d\n", __FILE__, __LINE__); *res_code = cmp; res_ops[0] = captures[2]; res_ops[1] = captures[0]; gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } } return false; } static bool gimple_simplify_210 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , enum tree_code ARG_UNUSED (cmp)) { /* #line 2377 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (single_use (captures[0]) && single_use (captures[2])) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2378, %s:%d\n", __FILE__, __LINE__); *res_code = cmp; res_ops[0] = captures[3]; res_ops[1] = captures[1]; gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } return false; } static bool gimple_simplify_211 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , combined_fn ARG_UNUSED (COPYSIGN)) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3283, %s:%d\n", __FILE__, __LINE__); *res_code = ABS_EXPR; res_ops[0] = captures[0]; gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; return false; } static bool gimple_simplify_212 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , enum tree_code ARG_UNUSED (cmp)) { /* #line 2393 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (FLOAT_TYPE_P (TREE_TYPE (captures[1])) && (DECIMAL_FLOAT_TYPE_P (TREE_TYPE (captures[0])) == DECIMAL_FLOAT_TYPE_P (TREE_TYPE (captures[1]))) && (DECIMAL_FLOAT_TYPE_P (TREE_TYPE (captures[0])) == DECIMAL_FLOAT_TYPE_P (TREE_TYPE (captures[2])))) { { /* #line 2398 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree type1 = TREE_TYPE (captures[2]); if (TREE_CODE (captures[2]) == REAL_CST && !DECIMAL_FLOAT_TYPE_P (type1)) { REAL_VALUE_TYPE orig = TREE_REAL_CST (captures[2]); if (TYPE_PRECISION (type1) > TYPE_PRECISION (float_type_node) && exact_real_truncate (TYPE_MODE (float_type_node), &orig)) type1 = float_type_node; if (TYPE_PRECISION (type1) > TYPE_PRECISION (double_type_node) && exact_real_truncate (TYPE_MODE (double_type_node), &orig)) type1 = double_type_node; } tree newtype = (TYPE_PRECISION (TREE_TYPE (captures[1])) > TYPE_PRECISION (type1) ? TREE_TYPE (captures[1]) : type1); /* #line 2415 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (TYPE_PRECISION (TREE_TYPE (captures[0])) > TYPE_PRECISION (newtype)) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2416, %s:%d\n", __FILE__, __LINE__); *res_code = cmp; { tree ops1[1], res; ops1[0] = captures[1]; if (newtype != TREE_TYPE (ops1[0]) && !useless_type_conversion_p (newtype, TREE_TYPE (ops1[0]))) { code_helper tem_code = NOP_EXPR; tree tem_ops[3] = { ops1[0] }; gimple_resimplify1 (lseq, &tem_code, newtype, tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, newtype, tem_ops, lseq); if (!res) return false; } else res = ops1[0]; res_ops[0] = res; } { tree ops1[1], res; ops1[0] = captures[2]; if (newtype != TREE_TYPE (ops1[0]) && !useless_type_conversion_p (newtype, TREE_TYPE (ops1[0]))) { code_helper tem_code = NOP_EXPR; tree tem_ops[3] = { ops1[0] }; gimple_resimplify1 (lseq, &tem_code, newtype, tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, newtype, tem_ops, lseq); if (!res) return false; } else res = ops1[0]; res_ops[1] = res; } gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } } return false; } static bool gimple_simplify_213 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) ) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2632, %s:%d\n", __FILE__, __LINE__); res_ops[0] = captures[1]; *res_code = TREE_CODE (res_ops[0]); return true; return false; } static bool gimple_simplify_214 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , enum tree_code ARG_UNUSED (cmp), enum tree_code ARG_UNUSED (out)) { /* #line 3094 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (TYPE_UNSIGNED (TREE_TYPE (captures[2])) && !VECTOR_TYPE_P (TREE_TYPE (captures[2]))) { { /* #line 3095 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree t = TREE_TYPE (captures[2]), cpx = build_complex_type (t); gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]))) lseq = NULL; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3096, %s:%d\n", __FILE__, __LINE__); *res_code = out; { tree ops1[1], res; { tree ops2[2], res; ops2[0] = captures[2]; ops2[1] = captures[1]; code_helper tem_code = CFN_MUL_OVERFLOW; tree tem_ops[3] = { ops2[0], ops2[1] }; gimple_resimplify2 (lseq, &tem_code, cpx, tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, cpx, tem_ops, lseq); if (!res) return false; ops1[0] = res; } code_helper tem_code = IMAGPART_EXPR; tree tem_ops[3] = { ops1[0] }; gimple_resimplify1 (lseq, &tem_code, TREE_TYPE (TREE_TYPE (ops1[0])), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (TREE_TYPE (ops1[0])), tem_ops, lseq); if (!res) return false; res_ops[0] = res; } res_ops[1] = build_zero_cst (t); gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } return false; } static bool gimple_simplify_215 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , combined_fn ARG_UNUSED (pows), combined_fn ARG_UNUSED (copysigns)) { { /* #line 450 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ HOST_WIDE_INT n; /* #line 451 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (real_isinteger (&TREE_REAL_CST (captures[2]), &n) && (n & 1) == 0) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:452, %s:%d\n", __FILE__, __LINE__); *res_code = pows; res_ops[0] = captures[0]; res_ops[1] = captures[2]; gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } return false; } static bool gimple_simplify_216 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , combined_fn ARG_UNUSED (SIN), combined_fn ARG_UNUSED (COS), combined_fn ARG_UNUSED (TAN)) { /* #line 3308 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (flag_unsafe_math_optimizations && canonicalize_math_p ()) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[2]))) lseq = NULL; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3323, %s:%d\n", __FILE__, __LINE__); *res_code = TAN; res_ops[0] = captures[1]; gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } return false; } static bool gimple_simplify_217 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , enum tree_code ARG_UNUSED (cmp)) { /* #line 2744 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (SSA_NAME_IS_DEFAULT_DEF (captures[1]) && TREE_CODE (SSA_NAME_VAR (captures[1])) == PARM_DECL) { { /* #line 2746 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree base = get_base_address (TREE_OPERAND (captures[0], 0)); /* #line 2747 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (TREE_CODE (base) == VAR_DECL && auto_var_in_fn_p (base, current_function_decl)) { /* #line 2749 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (cmp == NE_EXPR) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2750, %s:%d\n", __FILE__, __LINE__); res_ops[0] = constant_boolean_node (true, type); *res_code = TREE_CODE (res_ops[0]); return true; } else { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2751, %s:%d\n", __FILE__, __LINE__); res_ops[0] = constant_boolean_node (false, type); *res_code = TREE_CODE (res_ops[0]); return true; } } } } return false; } static bool gimple_simplify_218 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , enum tree_code ARG_UNUSED (cmp)) { /* #line 2321 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (single_use (captures[0])) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2322, %s:%d\n", __FILE__, __LINE__); *res_code = cmp; res_ops[0] = captures[1]; res_ops[1] = captures[2]; gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } return false; } static bool gimple_simplify_219 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , enum tree_code ARG_UNUSED (cmp)) { /* #line 2760 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (tree_nop_conversion_p (TREE_TYPE (captures[0]), TREE_TYPE (captures[1])) && wi::bit_and_not (captures[2], captures[3]) != 0) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2762, %s:%d\n", __FILE__, __LINE__); res_ops[0] = constant_boolean_node (cmp == NE_EXPR, type); *res_code = TREE_CODE (res_ops[0]); return true; } return false; } static bool gimple_simplify_220 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , enum tree_code ARG_UNUSED (op)) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:960, %s:%d\n", __FILE__, __LINE__); res_ops[0] = constant_boolean_node (true, type); *res_code = TREE_CODE (res_ops[0]); return true; return false; } static bool gimple_simplify_221 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , enum tree_code ARG_UNUSED (minmax), enum tree_code ARG_UNUSED (maxmin)) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[2]))) lseq = NULL; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1453, %s:%d\n", __FILE__, __LINE__); *res_code = BIT_NOT_EXPR; { tree ops1[2], res; ops1[0] = captures[1]; ops1[1] = captures[3]; code_helper tem_code = maxmin; tree tem_ops[3] = { ops1[0], ops1[1] }; gimple_resimplify2 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[0] = res; } gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; return false; } static bool gimple_simplify_222 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , enum tree_code ARG_UNUSED (bitop), enum tree_code ARG_UNUSED (rbitop)) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:912, %s:%d\n", __FILE__, __LINE__); res_ops[0] = captures[0]; *res_code = TREE_CODE (res_ops[0]); return true; return false; } static bool gimple_simplify_223 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , combined_fn ARG_UNUSED (froms), combined_fn ARG_UNUSED (tos)) { /* #line 3477 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (optimize && canonicalize_math_p () && targetm.libc_has_function (function_c99_misc)) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3481, %s:%d\n", __FILE__, __LINE__); *res_code = NOP_EXPR; { tree ops1[1], res; ops1[0] = captures[0]; code_helper tem_code = tos; tree tem_ops[3] = { ops1[0] }; gimple_resimplify1 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[0] = res; } gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } return false; } static bool gimple_simplify_224 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) ) { /* #line 1147 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (!TYPE_SATURATING (type)) { /* #line 1186 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if ((!FLOAT_TYPE_P (type) || flag_associative_math) && !FIXED_POINT_TYPE_P (type)) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1203, %s:%d\n", __FILE__, __LINE__); res_ops[0] = captures[0]; *res_code = TREE_CODE (res_ops[0]); return true; } } return false; } static bool gimple_simplify_225 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) ) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1343, %s:%d\n", __FILE__, __LINE__); res_ops[0] = captures[0]; *res_code = TREE_CODE (res_ops[0]); return true; return false; } static bool gimple_simplify_226 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , enum tree_code ARG_UNUSED (op)) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:965, %s:%d\n", __FILE__, __LINE__); res_ops[0] = constant_boolean_node (op == NE_EXPR ? true : false, type); *res_code = TREE_CODE (res_ops[0]); return true; return false; } static bool gimple_simplify_227 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , enum tree_code ARG_UNUSED (minmax), enum tree_code ARG_UNUSED (cmp), enum tree_code ARG_UNUSED (comb)) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1485, %s:%d\n", __FILE__, __LINE__); *res_code = comb; { tree ops1[2], res; ops1[0] = captures[0]; ops1[1] = captures[2]; code_helper tem_code = cmp; tree tem_ops[3] = { ops1[0], ops1[1] }; gimple_resimplify2 (lseq, &tem_code, type, tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, type, tem_ops, lseq); if (!res) return false; res_ops[0] = res; } { tree ops1[2], res; ops1[0] = captures[1]; ops1[1] = captures[2]; code_helper tem_code = cmp; tree tem_ops[3] = { ops1[0], ops1[1] }; gimple_resimplify2 (lseq, &tem_code, type, tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, type, tem_ops, lseq); if (!res) return false; res_ops[1] = res; } gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; return false; } static bool gimple_simplify_228 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , enum tree_code ARG_UNUSED (shift)) { /* #line 1605 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (tree_nop_conversion_p (TREE_TYPE (captures[0]), TREE_TYPE (captures[1])) && TYPE_PRECISION (type) <= HOST_BITS_PER_WIDE_INT && tree_fits_uhwi_p (captures[4]) && tree_to_uhwi (captures[4]) > 0 && tree_to_uhwi (captures[4]) < TYPE_PRECISION (type)) { { /* #line 1610 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ unsigned int shiftc = tree_to_uhwi (captures[4]); unsigned HOST_WIDE_INT mask = TREE_INT_CST_LOW (captures[5]); unsigned HOST_WIDE_INT newmask, zerobits = 0; tree shift_type = TREE_TYPE (captures[2]); unsigned int prec; if (shift == LSHIFT_EXPR) zerobits = ((HOST_WIDE_INT_1U << shiftc) - 1); else if (shift == RSHIFT_EXPR && (TYPE_PRECISION (shift_type) == GET_MODE_PRECISION (TYPE_MODE (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_PRECISION (inner_type) == GET_MODE_PRECISION (TYPE_MODE (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 1666 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if ((mask & zerobits) == mask) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[1]))) lseq = NULL; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1667, %s:%d\n", __FILE__, __LINE__); res_ops[0] = build_int_cst (type, 0); *res_code = TREE_CODE (res_ops[0]); return true; } else { { /* #line 1668 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ newmask = mask | zerobits; /* #line 1669 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (newmask != mask && (newmask & (newmask + 1)) == 0) { { /* #line 1670 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ for (prec = BITS_PER_UNIT; prec < HOST_BITS_PER_WIDE_INT; prec <<= 1) if (newmask == (HOST_WIDE_INT_1U << prec) - 1) break; /* #line 1679 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (prec < HOST_BITS_PER_WIDE_INT || newmask == HOST_WIDE_INT_M1U) { { /* #line 1681 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree newmaskt = build_int_cst_type (TREE_TYPE (captures[5]), newmask); /* #line 1683 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (!tree_int_cst_equal (newmaskt, captures[5])) { /* #line 1684 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (shift_type != TREE_TYPE (captures[2])) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[1]))) lseq = NULL; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1685, %s:%d\n", __FILE__, __LINE__); *res_code = BIT_AND_EXPR; { tree ops1[1], res; { tree ops2[2], res; { tree ops3[1], res; ops3[0] = captures[2]; if (shift_type != TREE_TYPE (ops3[0]) && !useless_type_conversion_p (shift_type, TREE_TYPE (ops3[0]))) { code_helper tem_code = NOP_EXPR; tree tem_ops[3] = { ops3[0] }; gimple_resimplify1 (lseq, &tem_code, shift_type, tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, shift_type, tem_ops, lseq); if (!res) return false; } else res = ops3[0]; ops2[0] = res; } ops2[1] = captures[4]; code_helper tem_code = shift; tree tem_ops[3] = { ops2[0], ops2[1] }; gimple_resimplify2 (lseq, &tem_code, shift_type, tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, shift_type, tem_ops, lseq); if (!res) return false; ops1[0] = res; } if (type != TREE_TYPE (ops1[0]) && !useless_type_conversion_p (type, TREE_TYPE (ops1[0]))) { code_helper tem_code = NOP_EXPR; tree tem_ops[3] = { ops1[0] }; gimple_resimplify1 (lseq, &tem_code, type, tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, type, tem_ops, lseq); if (!res) return false; } else res = ops1[0]; res_ops[0] = res; } res_ops[1] = newmaskt; gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } else { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[1]))) lseq = NULL; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1686, %s:%d\n", __FILE__, __LINE__); *res_code = BIT_AND_EXPR; res_ops[0] = captures[0]; res_ops[1] = newmaskt; gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } } } } } } } } } return false; } static bool gimple_simplify_229 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) ) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2632, %s:%d\n", __FILE__, __LINE__); res_ops[0] = captures[1]; *res_code = TREE_CODE (res_ops[0]); return true; return false; } static bool gimple_simplify_CFN_BUILT_IN_COSF (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree op0) { switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case NEGATE_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { { /* #line 405 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:405, %s:%d\n", __FILE__, __LINE__); *res_code = CFN_BUILT_IN_COSF; res_ops[0] = captures[0]; gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } break; } case ABS_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { { /* #line 405 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:405, %s:%d\n", __FILE__, __LINE__); *res_code = CFN_BUILT_IN_COSF; res_ops[0] = captures[0]; gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } break; } default:; } else if (gcall *def = dyn_cast (def_stmt)) switch (gimple_call_combined_fn (def)) { case CFN_BUILT_IN_COPYSIGNF: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_call_arg (def, 1); if ((o21 = do_valueize (valueize, o21))) { { /* #line 443 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 }; gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:443, %s:%d\n", __FILE__, __LINE__); *res_code = CFN_BUILT_IN_COSF; res_ops[0] = captures[0]; gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } } break; } default:; } } break; default:; } return false; } static bool gimple_simplify_CFN_BUILT_IN_COS (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree op0) { switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case NEGATE_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { { /* #line 405 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:405, %s:%d\n", __FILE__, __LINE__); *res_code = CFN_BUILT_IN_COS; res_ops[0] = captures[0]; gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } break; } case ABS_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { { /* #line 405 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:405, %s:%d\n", __FILE__, __LINE__); *res_code = CFN_BUILT_IN_COS; res_ops[0] = captures[0]; gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } break; } default:; } else if (gcall *def = dyn_cast (def_stmt)) switch (gimple_call_combined_fn (def)) { case CFN_BUILT_IN_COPYSIGN: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_call_arg (def, 1); if ((o21 = do_valueize (valueize, o21))) { { /* #line 443 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 }; gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:443, %s:%d\n", __FILE__, __LINE__); *res_code = CFN_BUILT_IN_COS; res_ops[0] = captures[0]; gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } } break; } default:; } } break; default:; } return false; } static bool gimple_simplify_CFN_BUILT_IN_COSL (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree op0) { switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case NEGATE_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { { /* #line 405 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:405, %s:%d\n", __FILE__, __LINE__); *res_code = CFN_BUILT_IN_COSL; res_ops[0] = captures[0]; gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } break; } case ABS_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { { /* #line 405 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:405, %s:%d\n", __FILE__, __LINE__); *res_code = CFN_BUILT_IN_COSL; res_ops[0] = captures[0]; gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } break; } default:; } else if (gcall *def = dyn_cast (def_stmt)) switch (gimple_call_combined_fn (def)) { case CFN_BUILT_IN_COPYSIGNL: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_call_arg (def, 1); if ((o21 = do_valueize (valueize, o21))) { { /* #line 443 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 }; gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:443, %s:%d\n", __FILE__, __LINE__); *res_code = CFN_BUILT_IN_COSL; res_ops[0] = captures[0]; gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } } break; } default:; } } break; default:; } return false; } static bool gimple_simplify_CFN_COS (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree op0) { switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case NEGATE_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { { /* #line 405 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:405, %s:%d\n", __FILE__, __LINE__); *res_code = CFN_COS; res_ops[0] = captures[0]; gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } break; } case ABS_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { { /* #line 405 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:405, %s:%d\n", __FILE__, __LINE__); *res_code = CFN_COS; res_ops[0] = captures[0]; gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } break; } default:; } else if (gcall *def = dyn_cast (def_stmt)) switch (gimple_call_combined_fn (def)) { case CFN_COPYSIGN: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_call_arg (def, 1); if ((o21 = do_valueize (valueize, o21))) { { /* #line 443 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 }; gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:443, %s:%d\n", __FILE__, __LINE__); *res_code = CFN_COS; res_ops[0] = captures[0]; gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } } break; } default:; } } break; default:; } return false; } static bool gimple_simplify_CFN_BUILT_IN_COSHF (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree op0) { switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case NEGATE_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { { /* #line 405 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:405, %s:%d\n", __FILE__, __LINE__); *res_code = CFN_BUILT_IN_COSHF; res_ops[0] = captures[0]; gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } break; } case ABS_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { { /* #line 405 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:405, %s:%d\n", __FILE__, __LINE__); *res_code = CFN_BUILT_IN_COSHF; res_ops[0] = captures[0]; gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } break; } default:; } else if (gcall *def = dyn_cast (def_stmt)) switch (gimple_call_combined_fn (def)) { case CFN_BUILT_IN_COPYSIGNF: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_call_arg (def, 1); if ((o21 = do_valueize (valueize, o21))) { { /* #line 443 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 }; gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:443, %s:%d\n", __FILE__, __LINE__); *res_code = CFN_BUILT_IN_COSHF; res_ops[0] = captures[0]; gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } } break; } default:; } } break; default:; } return false; } static bool gimple_simplify_CFN_BUILT_IN_COSH (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree op0) { switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case NEGATE_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { { /* #line 405 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:405, %s:%d\n", __FILE__, __LINE__); *res_code = CFN_BUILT_IN_COSH; res_ops[0] = captures[0]; gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } break; } case ABS_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { { /* #line 405 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:405, %s:%d\n", __FILE__, __LINE__); *res_code = CFN_BUILT_IN_COSH; res_ops[0] = captures[0]; gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } break; } default:; } else if (gcall *def = dyn_cast (def_stmt)) switch (gimple_call_combined_fn (def)) { case CFN_BUILT_IN_COPYSIGN: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_call_arg (def, 1); if ((o21 = do_valueize (valueize, o21))) { { /* #line 443 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 }; gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:443, %s:%d\n", __FILE__, __LINE__); *res_code = CFN_BUILT_IN_COSH; res_ops[0] = captures[0]; gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } } break; } default:; } } break; default:; } return false; } static bool gimple_simplify_CFN_BUILT_IN_COSHL (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree op0) { switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case NEGATE_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { { /* #line 405 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:405, %s:%d\n", __FILE__, __LINE__); *res_code = CFN_BUILT_IN_COSHL; res_ops[0] = captures[0]; gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } break; } case ABS_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { { /* #line 405 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:405, %s:%d\n", __FILE__, __LINE__); *res_code = CFN_BUILT_IN_COSHL; res_ops[0] = captures[0]; gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } break; } default:; } else if (gcall *def = dyn_cast (def_stmt)) switch (gimple_call_combined_fn (def)) { case CFN_BUILT_IN_COPYSIGNL: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_call_arg (def, 1); if ((o21 = do_valueize (valueize, o21))) { { /* #line 443 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 }; gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:443, %s:%d\n", __FILE__, __LINE__); *res_code = CFN_BUILT_IN_COSHL; res_ops[0] = captures[0]; gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } } break; } default:; } } break; default:; } return false; } static bool gimple_simplify_CFN_BUILT_IN_CCOSF (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree op0) { switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case NEGATE_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { { /* #line 496 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:496, %s:%d\n", __FILE__, __LINE__); *res_code = CFN_BUILT_IN_CCOSF; res_ops[0] = captures[0]; gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } break; } default:; } } break; default:; } return false; } static bool gimple_simplify_CFN_BUILT_IN_CCOS (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree op0) { switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case NEGATE_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { { /* #line 496 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:496, %s:%d\n", __FILE__, __LINE__); *res_code = CFN_BUILT_IN_CCOS; res_ops[0] = captures[0]; gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } break; } default:; } } break; default:; } return false; } static bool gimple_simplify_CFN_BUILT_IN_CCOSL (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree op0) { switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case NEGATE_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { { /* #line 496 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:496, %s:%d\n", __FILE__, __LINE__); *res_code = CFN_BUILT_IN_CCOSL; res_ops[0] = captures[0]; gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } break; } default:; } } break; default:; } return false; } static bool gimple_simplify_CFN_BUILT_IN_CCOSHF (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree op0) { switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case NEGATE_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { { /* #line 496 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:496, %s:%d\n", __FILE__, __LINE__); *res_code = CFN_BUILT_IN_CCOSHF; res_ops[0] = captures[0]; gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } break; } default:; } } break; default:; } return false; } static bool gimple_simplify_CFN_BUILT_IN_CCOSH (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree op0) { switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case NEGATE_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { { /* #line 496 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:496, %s:%d\n", __FILE__, __LINE__); *res_code = CFN_BUILT_IN_CCOSH; res_ops[0] = captures[0]; gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } break; } default:; } } break; default:; } return false; } static bool gimple_simplify_CFN_BUILT_IN_CCOSHL (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree op0) { switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case NEGATE_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { { /* #line 496 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:496, %s:%d\n", __FILE__, __LINE__); *res_code = CFN_BUILT_IN_CCOSHL; res_ops[0] = captures[0]; gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } break; } default:; } } break; default:; } return false; } static bool gimple_simplify_CFN_BUILT_IN_CABSF (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree op0) { switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case CONJ_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { { /* #line 503 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:503, %s:%d\n", __FILE__, __LINE__); *res_code = CFN_BUILT_IN_CABSF; res_ops[0] = captures[0]; gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } break; } case NEGATE_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { { /* #line 503 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:503, %s:%d\n", __FILE__, __LINE__); *res_code = CFN_BUILT_IN_CABSF; res_ops[0] = captures[0]; gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } break; } case COMPLEX_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { if (real_zerop (o21)) { { /* #line 3252 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 }; gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3252, %s:%d\n", __FILE__, __LINE__); *res_code = ABS_EXPR; res_ops[0] = captures[0]; gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } if (real_zerop (o20)) { { /* #line 3252 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o21, o20 }; gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3252, %s:%d\n", __FILE__, __LINE__); *res_code = ABS_EXPR; res_ops[0] = captures[0]; gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } if (o21 == o20 || (operand_equal_p (o21, o20, 0) && types_match (o21, o20))) { { /* #line 3308 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; /* #line 3308 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (flag_unsafe_math_optimizations && canonicalize_math_p ()) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3413, %s:%d\n", __FILE__, __LINE__); *res_code = MULT_EXPR; { tree ops1[1], res; ops1[0] = captures[0]; code_helper tem_code = ABS_EXPR; tree tem_ops[3] = { ops1[0] }; gimple_resimplify1 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[0] = res; } res_ops[1] = build_real_truncate (type, dconst_sqrt2 ()); gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } } } } break; } default:; } } break; default:; } return false; } static bool gimple_simplify_CFN_BUILT_IN_CABS (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree op0) { switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case CONJ_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { { /* #line 503 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:503, %s:%d\n", __FILE__, __LINE__); *res_code = CFN_BUILT_IN_CABS; res_ops[0] = captures[0]; gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } break; } case NEGATE_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { { /* #line 503 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:503, %s:%d\n", __FILE__, __LINE__); *res_code = CFN_BUILT_IN_CABS; res_ops[0] = captures[0]; gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } break; } case COMPLEX_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { if (real_zerop (o21)) { { /* #line 3252 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 }; gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3252, %s:%d\n", __FILE__, __LINE__); *res_code = ABS_EXPR; res_ops[0] = captures[0]; gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } if (real_zerop (o20)) { { /* #line 3252 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o21, o20 }; gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3252, %s:%d\n", __FILE__, __LINE__); *res_code = ABS_EXPR; res_ops[0] = captures[0]; gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } if (o21 == o20 || (operand_equal_p (o21, o20, 0) && types_match (o21, o20))) { { /* #line 3308 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; /* #line 3308 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (flag_unsafe_math_optimizations && canonicalize_math_p ()) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3413, %s:%d\n", __FILE__, __LINE__); *res_code = MULT_EXPR; { tree ops1[1], res; ops1[0] = captures[0]; code_helper tem_code = ABS_EXPR; tree tem_ops[3] = { ops1[0] }; gimple_resimplify1 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[0] = res; } res_ops[1] = build_real_truncate (type, dconst_sqrt2 ()); gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } } } } break; } default:; } } break; default:; } return false; } static bool gimple_simplify_CFN_BUILT_IN_CABSL (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree op0) { switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case CONJ_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { { /* #line 503 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:503, %s:%d\n", __FILE__, __LINE__); *res_code = CFN_BUILT_IN_CABSL; res_ops[0] = captures[0]; gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } break; } case NEGATE_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { { /* #line 503 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:503, %s:%d\n", __FILE__, __LINE__); *res_code = CFN_BUILT_IN_CABSL; res_ops[0] = captures[0]; gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } break; } case COMPLEX_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { if (real_zerop (o21)) { { /* #line 3252 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 }; gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3252, %s:%d\n", __FILE__, __LINE__); *res_code = ABS_EXPR; res_ops[0] = captures[0]; gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } if (real_zerop (o20)) { { /* #line 3252 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o21, o20 }; gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3252, %s:%d\n", __FILE__, __LINE__); *res_code = ABS_EXPR; res_ops[0] = captures[0]; gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } if (o21 == o20 || (operand_equal_p (o21, o20, 0) && types_match (o21, o20))) { { /* #line 3308 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; /* #line 3308 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (flag_unsafe_math_optimizations && canonicalize_math_p ()) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3413, %s:%d\n", __FILE__, __LINE__); *res_code = MULT_EXPR; { tree ops1[1], res; ops1[0] = captures[0]; code_helper tem_code = ABS_EXPR; tree tem_ops[3] = { ops1[0] }; gimple_resimplify1 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[0] = res; } res_ops[1] = build_real_truncate (type, dconst_sqrt2 ()); gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } } } } break; } default:; } } break; default:; } return false; } static bool gimple_simplify_ABS_EXPR (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree op0) { switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case ABS_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { { /* #line 827 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { op0, o20 }; gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:827, %s:%d\n", __FILE__, __LINE__); res_ops[0] = captures[0]; *res_code = TREE_CODE (res_ops[0]); return true; } } break; } case NEGATE_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { { /* #line 830 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:830, %s:%d\n", __FILE__, __LINE__); *res_code = ABS_EXPR; res_ops[0] = captures[0]; gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } break; } default:; } } break; default:; } if (tree_expr_nonnegative_p (op0)) { { /* #line 833 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { op0 }; gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:833, %s:%d\n", __FILE__, __LINE__); res_ops[0] = captures[0]; *res_code = TREE_CODE (res_ops[0]); return true; } } return false; } static bool gimple_simplify_NEGATE_EXPR (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree op0) { switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case PLUS_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { if (tree_swap_operands_p (o20, o21)) std::swap (o20, o21); if (gimple_negate_expr_p (o21, valueize)) { { /* #line 866 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 }; if (gimple_simplify_12 (res_code, res_ops, seq, valueize, type, captures)) return true; } } if (gimple_negate_expr_p (o20, valueize)) { { /* #line 866 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o21, o20 }; if (gimple_simplify_12 (res_code, res_ops, seq, valueize, type, captures)) return true; } } } } break; } CASE_CONVERT: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { switch (TREE_CODE (o20)) { case SSA_NAME: if (do_valueize (valueize, o20) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (o20); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case NEGATE_EXPR: { tree o30 = gimple_assign_rhs1 (def); if ((o30 = do_valueize (valueize, o30))) { { /* #line 1147 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o30 }; if (gimple_simplify_143 (res_code, res_ops, seq, valueize, type, captures)) return true; } } break; } default:; } } break; default:; } } break; } case NEGATE_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { { /* #line 1147 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; if (gimple_simplify_143 (res_code, res_ops, seq, valueize, type, captures)) return true; } } break; } default:; } } break; default:; } return false; } static bool gimple_simplify_BIT_NOT_EXPR (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree op0) { switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case BIT_NOT_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { { /* #line 970 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:970, %s:%d\n", __FILE__, __LINE__); res_ops[0] = captures[0]; *res_code = TREE_CODE (res_ops[0]); return true; } } break; } CASE_CONVERT: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { switch (TREE_CODE (o20)) { case SSA_NAME: if (do_valueize (valueize, o20) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (o20); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case NEGATE_EXPR: { tree o30 = gimple_assign_rhs1 (def); if ((o30 = do_valueize (valueize, o30))) { { /* #line 975 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o30 }; if (gimple_simplify_207 (res_code, res_ops, seq, valueize, type, captures)) return true; } } break; } case MINUS_EXPR: { tree o30 = gimple_assign_rhs1 (def); if ((o30 = do_valueize (valueize, o30))) { tree o31 = gimple_assign_rhs2 (def); if ((o31 = do_valueize (valueize, o31))) { if (integer_each_onep (o31)) { { /* #line 982 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o30 }; if (gimple_simplify_89 (res_code, res_ops, seq, valueize, type, captures)) return true; } } } } break; } case PLUS_EXPR: { tree o30 = gimple_assign_rhs1 (def); if ((o30 = do_valueize (valueize, o30))) { tree o31 = gimple_assign_rhs2 (def); if ((o31 = do_valueize (valueize, o31))) { if (tree_swap_operands_p (o30, o31)) std::swap (o30, o31); if (integer_all_onesp (o31)) { { /* #line 987 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o30 }; if (gimple_simplify_101 (res_code, res_ops, seq, valueize, type, captures)) return true; } } } } break; } case BIT_XOR_EXPR: { tree o30 = gimple_assign_rhs1 (def); if ((o30 = do_valueize (valueize, o30))) { tree o31 = gimple_assign_rhs2 (def); if ((o31 = do_valueize (valueize, o31))) { if (tree_swap_operands_p (o30, o31)) std::swap (o30, o31); switch (TREE_CODE (o31)) { case INTEGER_CST: { { /* #line 994 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o30, o31 }; if (gimple_simplify_68 (res_code, res_ops, seq, valueize, type, captures)) return true; } break; } default:; } switch (TREE_CODE (o30)) { case SSA_NAME: if (do_valueize (valueize, o30) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (o30); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case BIT_NOT_EXPR: { tree o40 = gimple_assign_rhs1 (def); if ((o40 = do_valueize (valueize, o40))) { { /* #line 998 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o40, o31 }; if (gimple_simplify_92 (res_code, res_ops, seq, valueize, type, captures)) return true; } } break; } default:; } } break; default:; } switch (TREE_CODE (o31)) { case SSA_NAME: if (do_valueize (valueize, o31) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (o31); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case BIT_NOT_EXPR: { tree o50 = gimple_assign_rhs1 (def); if ((o50 = do_valueize (valueize, o50))) { { /* #line 998 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o50, o30 }; if (gimple_simplify_92 (res_code, res_ops, seq, valueize, type, captures)) return true; } } break; } default:; } } break; default:; } } } break; } case RSHIFT_EXPR: { tree o30 = gimple_assign_rhs1 (def); if ((o30 = do_valueize (valueize, o30))) { tree o31 = gimple_assign_rhs2 (def); if ((o31 = do_valueize (valueize, o31))) { switch (TREE_CODE (o30)) { case SSA_NAME: if (do_valueize (valueize, o30) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (o30); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { CASE_CONVERT: { tree o40 = gimple_assign_rhs1 (def); if ((o40 = do_valueize (valueize, o40))) { switch (TREE_CODE (o40)) { case SSA_NAME: if (do_valueize (valueize, o40) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (o40); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case BIT_NOT_EXPR: { tree o50 = gimple_assign_rhs1 (def); if ((o50 = do_valueize (valueize, o50))) { { /* #line 1701 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { op0, o20, o30, o50, o31 }; if (gimple_simplify_127 (res_code, res_ops, seq, valueize, type, captures)) return true; } } break; } default:; } } break; default:; } } break; } case BIT_NOT_EXPR: { tree o40 = gimple_assign_rhs1 (def); if ((o40 = do_valueize (valueize, o40))) { { /* #line 1701 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { op0, o20, o30, o40, o31 }; if (gimple_simplify_127 (res_code, res_ops, seq, valueize, type, captures)) return true; } } break; } default:; } } break; default:; } } } break; } case LROTATE_EXPR: { tree o30 = gimple_assign_rhs1 (def); if ((o30 = do_valueize (valueize, o30))) { tree o31 = gimple_assign_rhs2 (def); if ((o31 = do_valueize (valueize, o31))) { switch (TREE_CODE (o30)) { case SSA_NAME: if (do_valueize (valueize, o30) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (o30); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { CASE_CONVERT: { tree o40 = gimple_assign_rhs1 (def); if ((o40 = do_valueize (valueize, o40))) { switch (TREE_CODE (o40)) { case SSA_NAME: if (do_valueize (valueize, o40) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (o40); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case BIT_NOT_EXPR: { tree o50 = gimple_assign_rhs1 (def); if ((o50 = do_valueize (valueize, o50))) { { /* #line 1714 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { op0, o20, o30, o50, o31 }; if (gimple_simplify_174 (res_code, res_ops, seq, valueize, type, captures, LROTATE_EXPR)) return true; } } break; } default:; } } break; default:; } } break; } case BIT_NOT_EXPR: { tree o40 = gimple_assign_rhs1 (def); if ((o40 = do_valueize (valueize, o40))) { { /* #line 1714 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { op0, o20, o30, o40, o31 }; if (gimple_simplify_174 (res_code, res_ops, seq, valueize, type, captures, LROTATE_EXPR)) return true; } } break; } default:; } } break; default:; } } } break; } case RROTATE_EXPR: { tree o30 = gimple_assign_rhs1 (def); if ((o30 = do_valueize (valueize, o30))) { tree o31 = gimple_assign_rhs2 (def); if ((o31 = do_valueize (valueize, o31))) { switch (TREE_CODE (o30)) { case SSA_NAME: if (do_valueize (valueize, o30) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (o30); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { CASE_CONVERT: { tree o40 = gimple_assign_rhs1 (def); if ((o40 = do_valueize (valueize, o40))) { switch (TREE_CODE (o40)) { case SSA_NAME: if (do_valueize (valueize, o40) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (o40); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case BIT_NOT_EXPR: { tree o50 = gimple_assign_rhs1 (def); if ((o50 = do_valueize (valueize, o50))) { { /* #line 1714 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { op0, o20, o30, o50, o31 }; if (gimple_simplify_174 (res_code, res_ops, seq, valueize, type, captures, RROTATE_EXPR)) return true; } } break; } default:; } } break; default:; } } break; } case BIT_NOT_EXPR: { tree o40 = gimple_assign_rhs1 (def); if ((o40 = do_valueize (valueize, o40))) { { /* #line 1714 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { op0, o20, o30, o40, o31 }; if (gimple_simplify_174 (res_code, res_ops, seq, valueize, type, captures, RROTATE_EXPR)) return true; } } break; } default:; } } break; default:; } } } break; } default:; } } break; default:; } } break; } case NEGATE_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { { /* #line 975 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; if (gimple_simplify_207 (res_code, res_ops, seq, valueize, type, captures)) return true; } } break; } case MINUS_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { if (integer_each_onep (o21)) { { /* #line 982 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; if (gimple_simplify_89 (res_code, res_ops, seq, valueize, type, captures)) return true; } } } } break; } case PLUS_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { if (tree_swap_operands_p (o20, o21)) std::swap (o20, o21); if (integer_all_onesp (o21)) { { /* #line 987 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; if (gimple_simplify_101 (res_code, res_ops, seq, valueize, type, captures)) return true; } } } } break; } case BIT_XOR_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { if (tree_swap_operands_p (o20, o21)) std::swap (o20, o21); switch (TREE_CODE (o21)) { case INTEGER_CST: { { /* #line 994 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 }; if (gimple_simplify_68 (res_code, res_ops, seq, valueize, type, captures)) return true; } break; } default:; } switch (TREE_CODE (o20)) { case SSA_NAME: if (do_valueize (valueize, o20) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (o20); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case BIT_NOT_EXPR: { tree o30 = gimple_assign_rhs1 (def); if ((o30 = do_valueize (valueize, o30))) { { /* #line 998 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o30, o21 }; if (gimple_simplify_92 (res_code, res_ops, seq, valueize, type, captures)) return true; } } break; } default:; } } break; default:; } switch (TREE_CODE (o21)) { case SSA_NAME: if (do_valueize (valueize, o21) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (o21); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case BIT_NOT_EXPR: { tree o40 = gimple_assign_rhs1 (def); if ((o40 = do_valueize (valueize, o40))) { { /* #line 998 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o40, o20 }; if (gimple_simplify_92 (res_code, res_ops, seq, valueize, type, captures)) return true; } } break; } default:; } } break; default:; } } } break; } case RSHIFT_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { switch (TREE_CODE (o20)) { case SSA_NAME: if (do_valueize (valueize, o20) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (o20); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { CASE_CONVERT: { tree o30 = gimple_assign_rhs1 (def); if ((o30 = do_valueize (valueize, o30))) { switch (TREE_CODE (o30)) { case SSA_NAME: if (do_valueize (valueize, o30) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (o30); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case BIT_NOT_EXPR: { tree o40 = gimple_assign_rhs1 (def); if ((o40 = do_valueize (valueize, o40))) { { /* #line 1701 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { op0, op0, o20, o40, o21 }; if (gimple_simplify_14 (res_code, res_ops, seq, valueize, type, captures)) return true; } } break; } default:; } } break; default:; } } break; } case BIT_NOT_EXPR: { tree o30 = gimple_assign_rhs1 (def); if ((o30 = do_valueize (valueize, o30))) { { /* #line 1701 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { op0, op0, o20, o30, o21 }; if (gimple_simplify_14 (res_code, res_ops, seq, valueize, type, captures)) return true; } } break; } default:; } } break; default:; } } } break; } case LROTATE_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { switch (TREE_CODE (o20)) { case SSA_NAME: if (do_valueize (valueize, o20) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (o20); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { CASE_CONVERT: { tree o30 = gimple_assign_rhs1 (def); if ((o30 = do_valueize (valueize, o30))) { switch (TREE_CODE (o30)) { case SSA_NAME: if (do_valueize (valueize, o30) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (o30); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case BIT_NOT_EXPR: { tree o40 = gimple_assign_rhs1 (def); if ((o40 = do_valueize (valueize, o40))) { { /* #line 1714 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { op0, op0, o20, o40, o21 }; if (gimple_simplify_77 (res_code, res_ops, seq, valueize, type, captures, LROTATE_EXPR)) return true; } } break; } default:; } } break; default:; } } break; } case BIT_NOT_EXPR: { tree o30 = gimple_assign_rhs1 (def); if ((o30 = do_valueize (valueize, o30))) { { /* #line 1714 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { op0, op0, o20, o30, o21 }; if (gimple_simplify_77 (res_code, res_ops, seq, valueize, type, captures, LROTATE_EXPR)) return true; } } break; } default:; } } break; default:; } } } break; } case RROTATE_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { switch (TREE_CODE (o20)) { case SSA_NAME: if (do_valueize (valueize, o20) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (o20); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { CASE_CONVERT: { tree o30 = gimple_assign_rhs1 (def); if ((o30 = do_valueize (valueize, o30))) { switch (TREE_CODE (o30)) { case SSA_NAME: if (do_valueize (valueize, o30) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (o30); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case BIT_NOT_EXPR: { tree o40 = gimple_assign_rhs1 (def); if ((o40 = do_valueize (valueize, o40))) { { /* #line 1714 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { op0, op0, o20, o40, o21 }; if (gimple_simplify_77 (res_code, res_ops, seq, valueize, type, captures, RROTATE_EXPR)) return true; } } break; } default:; } } break; default:; } } break; } case BIT_NOT_EXPR: { tree o30 = gimple_assign_rhs1 (def); if ((o30 = do_valueize (valueize, o30))) { { /* #line 1714 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { op0, op0, o20, o30, o21 }; if (gimple_simplify_77 (res_code, res_ops, seq, valueize, type, captures, RROTATE_EXPR)) return true; } } break; } default:; } } break; default:; } } } break; } case LT_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { { /* #line 2292 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 }; if (gimple_simplify_146 (res_code, res_ops, seq, valueize, type, captures, LT_EXPR, GE_EXPR, UNGE_EXPR)) return true; } } } break; } case LE_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { { /* #line 2292 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 }; if (gimple_simplify_146 (res_code, res_ops, seq, valueize, type, captures, LE_EXPR, GT_EXPR, UNGT_EXPR)) return true; } } } break; } case EQ_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { if (tree_swap_operands_p (o20, o21)) std::swap (o20, o21); { /* #line 2292 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 }; if (gimple_simplify_146 (res_code, res_ops, seq, valueize, type, captures, EQ_EXPR, NE_EXPR, NE_EXPR)) return true; } } } break; } case NE_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { if (tree_swap_operands_p (o20, o21)) std::swap (o20, o21); { /* #line 2292 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 }; if (gimple_simplify_146 (res_code, res_ops, seq, valueize, type, captures, NE_EXPR, EQ_EXPR, EQ_EXPR)) return true; } } } break; } case GE_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { { /* #line 2292 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 }; if (gimple_simplify_146 (res_code, res_ops, seq, valueize, type, captures, GE_EXPR, LT_EXPR, UNLT_EXPR)) return true; } } } break; } case GT_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { { /* #line 2292 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 }; if (gimple_simplify_146 (res_code, res_ops, seq, valueize, type, captures, GT_EXPR, LE_EXPR, UNLE_EXPR)) return true; } } } break; } case UNORDERED_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { if (tree_swap_operands_p (o20, o21)) std::swap (o20, o21); { /* #line 2292 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 }; if (gimple_simplify_146 (res_code, res_ops, seq, valueize, type, captures, UNORDERED_EXPR, ORDERED_EXPR, ORDERED_EXPR)) return true; } } } break; } case ORDERED_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { if (tree_swap_operands_p (o20, o21)) std::swap (o20, o21); { /* #line 2292 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 }; if (gimple_simplify_146 (res_code, res_ops, seq, valueize, type, captures, ORDERED_EXPR, UNORDERED_EXPR, UNORDERED_EXPR)) return true; } } } break; } case UNLT_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { { /* #line 2292 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 }; if (gimple_simplify_146 (res_code, res_ops, seq, valueize, type, captures, UNLT_EXPR, GE_EXPR, GE_EXPR)) return true; } } } break; } case UNLE_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { { /* #line 2292 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 }; if (gimple_simplify_146 (res_code, res_ops, seq, valueize, type, captures, UNLE_EXPR, GT_EXPR, GT_EXPR)) return true; } } } break; } case UNGT_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { { /* #line 2292 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 }; if (gimple_simplify_146 (res_code, res_ops, seq, valueize, type, captures, UNGT_EXPR, LE_EXPR, LE_EXPR)) return true; } } } break; } case UNGE_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { { /* #line 2292 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 }; if (gimple_simplify_146 (res_code, res_ops, seq, valueize, type, captures, UNGE_EXPR, LT_EXPR, LT_EXPR)) return true; } } } break; } case UNEQ_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { if (tree_swap_operands_p (o20, o21)) std::swap (o20, o21); { /* #line 2292 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 }; if (gimple_simplify_146 (res_code, res_ops, seq, valueize, type, captures, UNEQ_EXPR, LTGT_EXPR, LTGT_EXPR)) return true; } } } break; } case LTGT_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { if (tree_swap_operands_p (o20, o21)) std::swap (o20, o21); { /* #line 2292 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 }; if (gimple_simplify_146 (res_code, res_ops, seq, valueize, type, captures, LTGT_EXPR, UNEQ_EXPR, UNEQ_EXPR)) return true; } } } break; } default:; } } break; default:; } return false; } static bool gimple_simplify_CONVERT_EXPR (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree op0) { switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case MIN_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { if (tree_swap_operands_p (o20, o21)) std::swap (o20, o21); switch (TREE_CODE (o20)) { case SSA_NAME: if (do_valueize (valueize, o20) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (o20); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { CASE_CONVERT: { tree o30 = gimple_assign_rhs1 (def); if ((o30 = do_valueize (valueize, o30))) { switch (TREE_CODE (o21)) { case INTEGER_CST: { { /* #line 1412 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { op0, o30, o21 }; if (gimple_simplify_88 (res_code, res_ops, seq, valueize, type, captures, MIN_EXPR)) return true; } break; } default:; } } break; } default:; } } break; default:; } } } break; } case MAX_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { if (tree_swap_operands_p (o20, o21)) std::swap (o20, o21); switch (TREE_CODE (o20)) { case SSA_NAME: if (do_valueize (valueize, o20) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (o20); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { CASE_CONVERT: { tree o30 = gimple_assign_rhs1 (def); if ((o30 = do_valueize (valueize, o30))) { switch (TREE_CODE (o21)) { case INTEGER_CST: { { /* #line 1412 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { op0, o30, o21 }; if (gimple_simplify_88 (res_code, res_ops, seq, valueize, type, captures, MAX_EXPR)) return true; } break; } default:; } } break; } default:; } } break; default:; } } } break; } default:; } } break; default:; } { /* #line 1729 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { op0 }; /* #line 1729 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if ((1 && useless_type_conversion_p (type, TREE_TYPE (captures[0]))) || (0 && type == TREE_TYPE (captures[0]))) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1731, %s:%d\n", __FILE__, __LINE__); res_ops[0] = captures[0]; *res_code = TREE_CODE (res_ops[0]); return true; } } switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { CASE_CONVERT: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { { /* #line 1777 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { op0, o20 }; { /* #line 1777 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree inside_type = TREE_TYPE (captures[1]); tree inter_type = TREE_TYPE (captures[0]); int inside_int = INTEGRAL_TYPE_P (inside_type); int inside_ptr = POINTER_TYPE_P (inside_type); int inside_float = FLOAT_TYPE_P (inside_type); int inside_vec = VECTOR_TYPE_P (inside_type); unsigned int inside_prec = TYPE_PRECISION (inside_type); int inside_unsignedp = TYPE_UNSIGNED (inside_type); int inter_int = INTEGRAL_TYPE_P (inter_type); int inter_ptr = POINTER_TYPE_P (inter_type); int inter_float = FLOAT_TYPE_P (inter_type); int inter_vec = VECTOR_TYPE_P (inter_type); unsigned int inter_prec = TYPE_PRECISION (inter_type); int inter_unsignedp = TYPE_UNSIGNED (inter_type); int final_int = INTEGRAL_TYPE_P (type); int final_ptr = POINTER_TYPE_P (type); int final_float = FLOAT_TYPE_P (type); int final_vec = VECTOR_TYPE_P (type); unsigned int final_prec = TYPE_PRECISION (type); int final_unsignedp = TYPE_UNSIGNED (type); /* #line 1805 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (((1 && useless_type_conversion_p (type, inside_type)) || (0 && TYPE_MAIN_VARIANT (type) == TYPE_MAIN_VARIANT (inside_type))) && (((inter_int || inter_ptr) && final_int) || (inter_float && final_float)) && inter_prec >= final_prec) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1811, %s:%d\n", __FILE__, __LINE__); *res_code = NOP_EXPR; res_ops[0] = captures[1]; gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } else { /* #line 1818 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (((inter_int && inside_int) || (inter_float && inside_float)) && (final_int || final_float) && inter_prec >= inside_prec && (inter_float || inter_unsignedp == inside_unsignedp)) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1822, %s:%d\n", __FILE__, __LINE__); *res_code = NOP_EXPR; res_ops[0] = captures[1]; gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } else { /* #line 1828 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (inside_int && inter_int && final_int && ((inside_prec < inter_prec && inter_prec < final_prec && inside_unsignedp && !inter_unsignedp) || final_prec == inter_prec)) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1832, %s:%d\n", __FILE__, __LINE__); *res_code = NOP_EXPR; res_ops[0] = captures[1]; gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } else { /* #line 1845 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (! inside_float && ! inter_float && ! final_float && ! inside_vec && ! inter_vec && ! final_vec && (inter_prec >= inside_prec || inter_prec >= final_prec) && ! (inside_int && inter_int && inter_unsignedp != inside_unsignedp && inter_prec < final_prec) && ((inter_unsignedp && inter_prec > inside_prec) == (final_unsignedp && final_prec > inter_prec)) && ! (inside_ptr && inter_prec != final_prec) && ! (final_ptr && inside_prec != inter_prec)) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1855, %s:%d\n", __FILE__, __LINE__); *res_code = NOP_EXPR; res_ops[0] = captures[1]; gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } else { /* #line 1859 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (1 && final_int && inter_int && inside_int && final_prec == inside_prec && final_prec > inter_prec && inter_unsignedp) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1864, %s:%d\n", __FILE__, __LINE__); *res_code = NOP_EXPR; { tree ops1[2], res; ops1[0] = captures[1]; ops1[1] = wide_int_to_tree (inside_type, wi::mask (inter_prec, false, TYPE_PRECISION (inside_type))); code_helper tem_code = BIT_AND_EXPR; tree tem_ops[3] = { ops1[0], ops1[1] }; gimple_resimplify2 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[0] = res; } gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } else { /* #line 1872 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (1 && inside_int && inter_float && final_int && (unsigned) significand_size (TYPE_MODE (inter_type)) >= inside_prec - !inside_unsignedp) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1876, %s:%d\n", __FILE__, __LINE__); *res_code = NOP_EXPR; res_ops[0] = captures[1]; gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } } } } } } } } break; } case FLOAT_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { { /* #line 1777 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { op0, o20 }; { /* #line 1777 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree inside_type = TREE_TYPE (captures[1]); tree inter_type = TREE_TYPE (captures[0]); int inside_int = INTEGRAL_TYPE_P (inside_type); int inside_ptr = POINTER_TYPE_P (inside_type); int inside_float = FLOAT_TYPE_P (inside_type); int inside_vec = VECTOR_TYPE_P (inside_type); unsigned int inside_prec = TYPE_PRECISION (inside_type); int inside_unsignedp = TYPE_UNSIGNED (inside_type); int inter_int = INTEGRAL_TYPE_P (inter_type); int inter_ptr = POINTER_TYPE_P (inter_type); int inter_float = FLOAT_TYPE_P (inter_type); int inter_vec = VECTOR_TYPE_P (inter_type); unsigned int inter_prec = TYPE_PRECISION (inter_type); int inter_unsignedp = TYPE_UNSIGNED (inter_type); int final_int = INTEGRAL_TYPE_P (type); int final_ptr = POINTER_TYPE_P (type); int final_float = FLOAT_TYPE_P (type); int final_vec = VECTOR_TYPE_P (type); unsigned int final_prec = TYPE_PRECISION (type); int final_unsignedp = TYPE_UNSIGNED (type); /* #line 1805 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (((1 && useless_type_conversion_p (type, inside_type)) || (0 && TYPE_MAIN_VARIANT (type) == TYPE_MAIN_VARIANT (inside_type))) && (((inter_int || inter_ptr) && final_int) || (inter_float && final_float)) && inter_prec >= final_prec) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1811, %s:%d\n", __FILE__, __LINE__); *res_code = NOP_EXPR; res_ops[0] = captures[1]; gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } else { /* #line 1818 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (((inter_int && inside_int) || (inter_float && inside_float)) && (final_int || final_float) && inter_prec >= inside_prec && (inter_float || inter_unsignedp == inside_unsignedp)) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1822, %s:%d\n", __FILE__, __LINE__); *res_code = NOP_EXPR; res_ops[0] = captures[1]; gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } else { /* #line 1828 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (inside_int && inter_int && final_int && ((inside_prec < inter_prec && inter_prec < final_prec && inside_unsignedp && !inter_unsignedp) || final_prec == inter_prec)) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1832, %s:%d\n", __FILE__, __LINE__); *res_code = NOP_EXPR; res_ops[0] = captures[1]; gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } else { /* #line 1845 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (! inside_float && ! inter_float && ! final_float && ! inside_vec && ! inter_vec && ! final_vec && (inter_prec >= inside_prec || inter_prec >= final_prec) && ! (inside_int && inter_int && inter_unsignedp != inside_unsignedp && inter_prec < final_prec) && ((inter_unsignedp && inter_prec > inside_prec) == (final_unsignedp && final_prec > inter_prec)) && ! (inside_ptr && inter_prec != final_prec) && ! (final_ptr && inside_prec != inter_prec)) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1855, %s:%d\n", __FILE__, __LINE__); *res_code = NOP_EXPR; res_ops[0] = captures[1]; gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } else { /* #line 1859 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (1 && final_int && inter_int && inside_int && final_prec == inside_prec && final_prec > inter_prec && inter_unsignedp) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1864, %s:%d\n", __FILE__, __LINE__); *res_code = NOP_EXPR; { tree ops1[2], res; ops1[0] = captures[1]; ops1[1] = wide_int_to_tree (inside_type, wi::mask (inter_prec, false, TYPE_PRECISION (inside_type))); code_helper tem_code = BIT_AND_EXPR; tree tem_ops[3] = { ops1[0], ops1[1] }; gimple_resimplify2 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[0] = res; } gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } else { /* #line 1872 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (1 && inside_int && inter_float && final_int && (unsigned) significand_size (TYPE_MODE (inter_type)) >= inside_prec - !inside_unsignedp) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1876, %s:%d\n", __FILE__, __LINE__); *res_code = NOP_EXPR; res_ops[0] = captures[1]; gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } } } } } } } } break; } case BIT_AND_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { if (tree_swap_operands_p (o20, o21)) std::swap (o20, o21); switch (TREE_CODE (o21)) { case INTEGER_CST: { { /* #line 1883 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 }; /* #line 1883 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (INTEGRAL_TYPE_P (type) && INTEGRAL_TYPE_P (TREE_TYPE (captures[0])) && TYPE_PRECISION (type) <= TYPE_PRECISION (TREE_TYPE (captures[0])) && operand_equal_p (captures[1], build_low_bits_mask (TREE_TYPE (captures[1]), TYPE_PRECISION (type)), 0)) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1888, %s:%d\n", __FILE__, __LINE__); *res_code = NOP_EXPR; res_ops[0] = captures[0]; gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } break; } default:; } } } break; } case PLUS_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { if (tree_swap_operands_p (o20, o21)) std::swap (o20, o21); switch (TREE_CODE (o20)) { case SSA_NAME: if (do_valueize (valueize, o20) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (o20); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { CASE_CONVERT: { tree o30 = gimple_assign_rhs1 (def); if ((o30 = do_valueize (valueize, o30))) { switch (TREE_CODE (o21)) { case SSA_NAME: if (do_valueize (valueize, o21) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (o21); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { CASE_CONVERT: { tree o50 = gimple_assign_rhs1 (def); if ((o50 = do_valueize (valueize, o50))) { { /* #line 3624 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { op0, o20, o30, o21, o50 }; if (gimple_simplify_53 (res_code, res_ops, seq, valueize, type, captures, PLUS_EXPR)) return true; } } break; } default:; } } break; default:; } { /* #line 3624 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { op0, o20, o30, o21, o21 }; if (gimple_simplify_157 (res_code, res_ops, seq, valueize, type, captures, PLUS_EXPR)) return true; } } break; } default:; } } break; default:; } } } break; } case MINUS_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { switch (TREE_CODE (o20)) { case SSA_NAME: if (do_valueize (valueize, o20) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (o20); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { CASE_CONVERT: { tree o30 = gimple_assign_rhs1 (def); if ((o30 = do_valueize (valueize, o30))) { switch (TREE_CODE (o21)) { case SSA_NAME: if (do_valueize (valueize, o21) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (o21); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { CASE_CONVERT: { tree o50 = gimple_assign_rhs1 (def); if ((o50 = do_valueize (valueize, o50))) { { /* #line 3624 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { op0, o20, o30, o21, o50 }; if (gimple_simplify_53 (res_code, res_ops, seq, valueize, type, captures, MINUS_EXPR)) return true; } } break; } default:; } } break; default:; } { /* #line 3624 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { op0, o20, o30, o21, o21 }; if (gimple_simplify_157 (res_code, res_ops, seq, valueize, type, captures, MINUS_EXPR)) return true; } } break; } default:; } } break; default:; } } } break; } default:; } } break; default:; } return false; } static bool gimple_simplify_VIEW_CONVERT_EXPR (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree op0) { { /* #line 1729 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { op0 }; /* #line 1729 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if ((1 && useless_type_conversion_p (type, TREE_TYPE (captures[0]))) || (0 && type == TREE_TYPE (captures[0]))) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1731, %s:%d\n", __FILE__, __LINE__); res_ops[0] = captures[0]; *res_code = TREE_CODE (res_ops[0]); return true; } } switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case VIEW_CONVERT_EXPR: { tree o20 = TREE_OPERAND (gimple_assign_rhs1 (def), 0); if ((TREE_CODE (o20) == SSA_NAME || is_gimple_min_invariant (o20)) && (o20 = do_valueize (valueize, o20))) { { /* #line 1736 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1736, %s:%d\n", __FILE__, __LINE__); *res_code = VIEW_CONVERT_EXPR; res_ops[0] = captures[0]; gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } break; } default:; } } break; default:; } { /* #line 1742 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { op0 }; /* #line 1742 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if ((INTEGRAL_TYPE_P (type) || POINTER_TYPE_P (type)) && (INTEGRAL_TYPE_P (TREE_TYPE (captures[0])) || POINTER_TYPE_P (TREE_TYPE (captures[0]))) && TYPE_PRECISION (type) == TYPE_PRECISION (TREE_TYPE (captures[0]))) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1745, %s:%d\n", __FILE__, __LINE__); *res_code = NOP_EXPR; res_ops[0] = captures[0]; gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { CASE_CONVERT: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { { /* #line 1750 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { op0, o20 }; /* #line 1750 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if ((INTEGRAL_TYPE_P (TREE_TYPE (captures[0])) || POINTER_TYPE_P (TREE_TYPE (captures[0]))) && (INTEGRAL_TYPE_P (TREE_TYPE (captures[1])) || POINTER_TYPE_P (TREE_TYPE (captures[1]))) && (TYPE_PRECISION (TREE_TYPE (captures[0])) == TYPE_PRECISION (TREE_TYPE (captures[1]))) && (TYPE_SIZE (TREE_TYPE (captures[0])) == TYPE_SIZE (TREE_TYPE (captures[1])))) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1754, %s:%d\n", __FILE__, __LINE__); *res_code = VIEW_CONVERT_EXPR; res_ops[0] = captures[1]; gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } } break; } case CONSTRUCTOR: { { /* #line 1759 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { op0 }; /* #line 1759 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (TREE_CODE (captures[0]) != SSA_NAME && CONSTRUCTOR_NELTS (captures[0]) == 0) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1761, %s:%d\n", __FILE__, __LINE__); res_ops[0] = build_zero_cst (type); *res_code = TREE_CODE (res_ops[0]); return true; } } break; } default:; } } break; default:; } return false; } static bool gimple_simplify_FLOAT_EXPR (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree op0) { { /* #line 1729 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { op0 }; /* #line 1729 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if ((1 && useless_type_conversion_p (type, TREE_TYPE (captures[0]))) || (0 && type == TREE_TYPE (captures[0]))) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1731, %s:%d\n", __FILE__, __LINE__); res_ops[0] = captures[0]; *res_code = TREE_CODE (res_ops[0]); return true; } } switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { CASE_CONVERT: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { { /* #line 1777 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { op0, o20 }; { /* #line 1777 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree inside_type = TREE_TYPE (captures[1]); tree inter_type = TREE_TYPE (captures[0]); int inside_int = INTEGRAL_TYPE_P (inside_type); int inside_ptr = POINTER_TYPE_P (inside_type); int inside_float = FLOAT_TYPE_P (inside_type); int inside_vec = VECTOR_TYPE_P (inside_type); unsigned int inside_prec = TYPE_PRECISION (inside_type); int inside_unsignedp = TYPE_UNSIGNED (inside_type); int inter_int = INTEGRAL_TYPE_P (inter_type); int inter_ptr = POINTER_TYPE_P (inter_type); int inter_float = FLOAT_TYPE_P (inter_type); int inter_vec = VECTOR_TYPE_P (inter_type); unsigned int inter_prec = TYPE_PRECISION (inter_type); int inter_unsignedp = TYPE_UNSIGNED (inter_type); int final_int = INTEGRAL_TYPE_P (type); int final_ptr = POINTER_TYPE_P (type); int final_float = FLOAT_TYPE_P (type); int final_vec = VECTOR_TYPE_P (type); unsigned int final_prec = TYPE_PRECISION (type); int final_unsignedp = TYPE_UNSIGNED (type); /* #line 1805 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (((1 && useless_type_conversion_p (type, inside_type)) || (0 && TYPE_MAIN_VARIANT (type) == TYPE_MAIN_VARIANT (inside_type))) && (((inter_int || inter_ptr) && final_int) || (inter_float && final_float)) && inter_prec >= final_prec) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1811, %s:%d\n", __FILE__, __LINE__); *res_code = FLOAT_EXPR; res_ops[0] = captures[1]; gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } else { /* #line 1818 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (((inter_int && inside_int) || (inter_float && inside_float)) && (final_int || final_float) && inter_prec >= inside_prec && (inter_float || inter_unsignedp == inside_unsignedp)) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1822, %s:%d\n", __FILE__, __LINE__); *res_code = FLOAT_EXPR; res_ops[0] = captures[1]; gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } else { /* #line 1828 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (inside_int && inter_int && final_int && ((inside_prec < inter_prec && inter_prec < final_prec && inside_unsignedp && !inter_unsignedp) || final_prec == inter_prec)) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1832, %s:%d\n", __FILE__, __LINE__); *res_code = FLOAT_EXPR; res_ops[0] = captures[1]; gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } else { /* #line 1845 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (! inside_float && ! inter_float && ! final_float && ! inside_vec && ! inter_vec && ! final_vec && (inter_prec >= inside_prec || inter_prec >= final_prec) && ! (inside_int && inter_int && inter_unsignedp != inside_unsignedp && inter_prec < final_prec) && ((inter_unsignedp && inter_prec > inside_prec) == (final_unsignedp && final_prec > inter_prec)) && ! (inside_ptr && inter_prec != final_prec) && ! (final_ptr && inside_prec != inter_prec)) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1855, %s:%d\n", __FILE__, __LINE__); *res_code = FLOAT_EXPR; res_ops[0] = captures[1]; gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } else { /* #line 1859 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (1 && final_int && inter_int && inside_int && final_prec == inside_prec && final_prec > inter_prec && inter_unsignedp) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1864, %s:%d\n", __FILE__, __LINE__); *res_code = NOP_EXPR; { tree ops1[2], res; ops1[0] = captures[1]; ops1[1] = wide_int_to_tree (inside_type, wi::mask (inter_prec, false, TYPE_PRECISION (inside_type))); code_helper tem_code = BIT_AND_EXPR; tree tem_ops[3] = { ops1[0], ops1[1] }; gimple_resimplify2 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[0] = res; } gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } else { /* #line 1872 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (1 && inside_int && inter_float && final_int && (unsigned) significand_size (TYPE_MODE (inter_type)) >= inside_prec - !inside_unsignedp) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1876, %s:%d\n", __FILE__, __LINE__); *res_code = NOP_EXPR; res_ops[0] = captures[1]; gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } } } } } } } } break; } case FLOAT_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { { /* #line 1777 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { op0, o20 }; { /* #line 1777 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree inside_type = TREE_TYPE (captures[1]); tree inter_type = TREE_TYPE (captures[0]); int inside_int = INTEGRAL_TYPE_P (inside_type); int inside_ptr = POINTER_TYPE_P (inside_type); int inside_float = FLOAT_TYPE_P (inside_type); int inside_vec = VECTOR_TYPE_P (inside_type); unsigned int inside_prec = TYPE_PRECISION (inside_type); int inside_unsignedp = TYPE_UNSIGNED (inside_type); int inter_int = INTEGRAL_TYPE_P (inter_type); int inter_ptr = POINTER_TYPE_P (inter_type); int inter_float = FLOAT_TYPE_P (inter_type); int inter_vec = VECTOR_TYPE_P (inter_type); unsigned int inter_prec = TYPE_PRECISION (inter_type); int inter_unsignedp = TYPE_UNSIGNED (inter_type); int final_int = INTEGRAL_TYPE_P (type); int final_ptr = POINTER_TYPE_P (type); int final_float = FLOAT_TYPE_P (type); int final_vec = VECTOR_TYPE_P (type); unsigned int final_prec = TYPE_PRECISION (type); int final_unsignedp = TYPE_UNSIGNED (type); /* #line 1805 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (((1 && useless_type_conversion_p (type, inside_type)) || (0 && TYPE_MAIN_VARIANT (type) == TYPE_MAIN_VARIANT (inside_type))) && (((inter_int || inter_ptr) && final_int) || (inter_float && final_float)) && inter_prec >= final_prec) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1811, %s:%d\n", __FILE__, __LINE__); *res_code = FLOAT_EXPR; res_ops[0] = captures[1]; gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } else { /* #line 1818 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (((inter_int && inside_int) || (inter_float && inside_float)) && (final_int || final_float) && inter_prec >= inside_prec && (inter_float || inter_unsignedp == inside_unsignedp)) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1822, %s:%d\n", __FILE__, __LINE__); *res_code = FLOAT_EXPR; res_ops[0] = captures[1]; gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } else { /* #line 1828 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (inside_int && inter_int && final_int && ((inside_prec < inter_prec && inter_prec < final_prec && inside_unsignedp && !inter_unsignedp) || final_prec == inter_prec)) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1832, %s:%d\n", __FILE__, __LINE__); *res_code = FLOAT_EXPR; res_ops[0] = captures[1]; gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } else { /* #line 1845 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (! inside_float && ! inter_float && ! final_float && ! inside_vec && ! inter_vec && ! final_vec && (inter_prec >= inside_prec || inter_prec >= final_prec) && ! (inside_int && inter_int && inter_unsignedp != inside_unsignedp && inter_prec < final_prec) && ((inter_unsignedp && inter_prec > inside_prec) == (final_unsignedp && final_prec > inter_prec)) && ! (inside_ptr && inter_prec != final_prec) && ! (final_ptr && inside_prec != inter_prec)) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1855, %s:%d\n", __FILE__, __LINE__); *res_code = FLOAT_EXPR; res_ops[0] = captures[1]; gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } else { /* #line 1859 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (1 && final_int && inter_int && inside_int && final_prec == inside_prec && final_prec > inter_prec && inter_unsignedp) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1864, %s:%d\n", __FILE__, __LINE__); *res_code = NOP_EXPR; { tree ops1[2], res; ops1[0] = captures[1]; ops1[1] = wide_int_to_tree (inside_type, wi::mask (inter_prec, false, TYPE_PRECISION (inside_type))); code_helper tem_code = BIT_AND_EXPR; tree tem_ops[3] = { ops1[0], ops1[1] }; gimple_resimplify2 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[0] = res; } gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } else { /* #line 1872 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (1 && inside_int && inter_float && final_int && (unsigned) significand_size (TYPE_MODE (inter_type)) >= inside_prec - !inside_unsignedp) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1876, %s:%d\n", __FILE__, __LINE__); *res_code = NOP_EXPR; res_ops[0] = captures[1]; gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } } } } } } } } break; } default:; } } break; default:; } return false; } static bool gimple_simplify_FIX_TRUNC_EXPR (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree op0) { { /* #line 1729 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { op0 }; /* #line 1729 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if ((1 && useless_type_conversion_p (type, TREE_TYPE (captures[0]))) || (0 && type == TREE_TYPE (captures[0]))) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1731, %s:%d\n", __FILE__, __LINE__); res_ops[0] = captures[0]; *res_code = TREE_CODE (res_ops[0]); return true; } } switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { CASE_CONVERT: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { { /* #line 1777 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { op0, o20 }; { /* #line 1777 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree inside_type = TREE_TYPE (captures[1]); tree inter_type = TREE_TYPE (captures[0]); int inside_int = INTEGRAL_TYPE_P (inside_type); int inside_ptr = POINTER_TYPE_P (inside_type); int inside_float = FLOAT_TYPE_P (inside_type); int inside_vec = VECTOR_TYPE_P (inside_type); unsigned int inside_prec = TYPE_PRECISION (inside_type); int inside_unsignedp = TYPE_UNSIGNED (inside_type); int inter_int = INTEGRAL_TYPE_P (inter_type); int inter_ptr = POINTER_TYPE_P (inter_type); int inter_float = FLOAT_TYPE_P (inter_type); int inter_vec = VECTOR_TYPE_P (inter_type); unsigned int inter_prec = TYPE_PRECISION (inter_type); int inter_unsignedp = TYPE_UNSIGNED (inter_type); int final_int = INTEGRAL_TYPE_P (type); int final_ptr = POINTER_TYPE_P (type); int final_float = FLOAT_TYPE_P (type); int final_vec = VECTOR_TYPE_P (type); unsigned int final_prec = TYPE_PRECISION (type); int final_unsignedp = TYPE_UNSIGNED (type); /* #line 1805 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (((1 && useless_type_conversion_p (type, inside_type)) || (0 && TYPE_MAIN_VARIANT (type) == TYPE_MAIN_VARIANT (inside_type))) && (((inter_int || inter_ptr) && final_int) || (inter_float && final_float)) && inter_prec >= final_prec) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1811, %s:%d\n", __FILE__, __LINE__); *res_code = FIX_TRUNC_EXPR; res_ops[0] = captures[1]; gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } else { /* #line 1818 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (((inter_int && inside_int) || (inter_float && inside_float)) && (final_int || final_float) && inter_prec >= inside_prec && (inter_float || inter_unsignedp == inside_unsignedp)) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1822, %s:%d\n", __FILE__, __LINE__); *res_code = FIX_TRUNC_EXPR; res_ops[0] = captures[1]; gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } else { /* #line 1828 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (inside_int && inter_int && final_int && ((inside_prec < inter_prec && inter_prec < final_prec && inside_unsignedp && !inter_unsignedp) || final_prec == inter_prec)) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1832, %s:%d\n", __FILE__, __LINE__); *res_code = FIX_TRUNC_EXPR; res_ops[0] = captures[1]; gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } else { /* #line 1845 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (! inside_float && ! inter_float && ! final_float && ! inside_vec && ! inter_vec && ! final_vec && (inter_prec >= inside_prec || inter_prec >= final_prec) && ! (inside_int && inter_int && inter_unsignedp != inside_unsignedp && inter_prec < final_prec) && ((inter_unsignedp && inter_prec > inside_prec) == (final_unsignedp && final_prec > inter_prec)) && ! (inside_ptr && inter_prec != final_prec) && ! (final_ptr && inside_prec != inter_prec)) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1855, %s:%d\n", __FILE__, __LINE__); *res_code = FIX_TRUNC_EXPR; res_ops[0] = captures[1]; gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } else { /* #line 1859 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (1 && final_int && inter_int && inside_int && final_prec == inside_prec && final_prec > inter_prec && inter_unsignedp) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1864, %s:%d\n", __FILE__, __LINE__); *res_code = NOP_EXPR; { tree ops1[2], res; ops1[0] = captures[1]; ops1[1] = wide_int_to_tree (inside_type, wi::mask (inter_prec, false, TYPE_PRECISION (inside_type))); code_helper tem_code = BIT_AND_EXPR; tree tem_ops[3] = { ops1[0], ops1[1] }; gimple_resimplify2 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[0] = res; } gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } else { /* #line 1872 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (1 && inside_int && inter_float && final_int && (unsigned) significand_size (TYPE_MODE (inter_type)) >= inside_prec - !inside_unsignedp) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1876, %s:%d\n", __FILE__, __LINE__); *res_code = NOP_EXPR; res_ops[0] = captures[1]; gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } } } } } } } } break; } case FLOAT_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { { /* #line 1777 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { op0, o20 }; { /* #line 1777 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree inside_type = TREE_TYPE (captures[1]); tree inter_type = TREE_TYPE (captures[0]); int inside_int = INTEGRAL_TYPE_P (inside_type); int inside_ptr = POINTER_TYPE_P (inside_type); int inside_float = FLOAT_TYPE_P (inside_type); int inside_vec = VECTOR_TYPE_P (inside_type); unsigned int inside_prec = TYPE_PRECISION (inside_type); int inside_unsignedp = TYPE_UNSIGNED (inside_type); int inter_int = INTEGRAL_TYPE_P (inter_type); int inter_ptr = POINTER_TYPE_P (inter_type); int inter_float = FLOAT_TYPE_P (inter_type); int inter_vec = VECTOR_TYPE_P (inter_type); unsigned int inter_prec = TYPE_PRECISION (inter_type); int inter_unsignedp = TYPE_UNSIGNED (inter_type); int final_int = INTEGRAL_TYPE_P (type); int final_ptr = POINTER_TYPE_P (type); int final_float = FLOAT_TYPE_P (type); int final_vec = VECTOR_TYPE_P (type); unsigned int final_prec = TYPE_PRECISION (type); int final_unsignedp = TYPE_UNSIGNED (type); /* #line 1805 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (((1 && useless_type_conversion_p (type, inside_type)) || (0 && TYPE_MAIN_VARIANT (type) == TYPE_MAIN_VARIANT (inside_type))) && (((inter_int || inter_ptr) && final_int) || (inter_float && final_float)) && inter_prec >= final_prec) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1811, %s:%d\n", __FILE__, __LINE__); *res_code = FIX_TRUNC_EXPR; res_ops[0] = captures[1]; gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } else { /* #line 1818 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (((inter_int && inside_int) || (inter_float && inside_float)) && (final_int || final_float) && inter_prec >= inside_prec && (inter_float || inter_unsignedp == inside_unsignedp)) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1822, %s:%d\n", __FILE__, __LINE__); *res_code = FIX_TRUNC_EXPR; res_ops[0] = captures[1]; gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } else { /* #line 1828 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (inside_int && inter_int && final_int && ((inside_prec < inter_prec && inter_prec < final_prec && inside_unsignedp && !inter_unsignedp) || final_prec == inter_prec)) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1832, %s:%d\n", __FILE__, __LINE__); *res_code = FIX_TRUNC_EXPR; res_ops[0] = captures[1]; gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } else { /* #line 1845 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (! inside_float && ! inter_float && ! final_float && ! inside_vec && ! inter_vec && ! final_vec && (inter_prec >= inside_prec || inter_prec >= final_prec) && ! (inside_int && inter_int && inter_unsignedp != inside_unsignedp && inter_prec < final_prec) && ((inter_unsignedp && inter_prec > inside_prec) == (final_unsignedp && final_prec > inter_prec)) && ! (inside_ptr && inter_prec != final_prec) && ! (final_ptr && inside_prec != inter_prec)) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1855, %s:%d\n", __FILE__, __LINE__); *res_code = FIX_TRUNC_EXPR; res_ops[0] = captures[1]; gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } else { /* #line 1859 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (1 && final_int && inter_int && inside_int && final_prec == inside_prec && final_prec > inter_prec && inter_unsignedp) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1864, %s:%d\n", __FILE__, __LINE__); *res_code = NOP_EXPR; { tree ops1[2], res; ops1[0] = captures[1]; ops1[1] = wide_int_to_tree (inside_type, wi::mask (inter_prec, false, TYPE_PRECISION (inside_type))); code_helper tem_code = BIT_AND_EXPR; tree tem_ops[3] = { ops1[0], ops1[1] }; gimple_resimplify2 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[0] = res; } gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } else { /* #line 1872 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (1 && inside_int && inter_float && final_int && (unsigned) significand_size (TYPE_MODE (inter_type)) >= inside_prec - !inside_unsignedp) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1876, %s:%d\n", __FILE__, __LINE__); *res_code = NOP_EXPR; res_ops[0] = captures[1]; gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } } } } } } } } break; } default:; } } break; default:; } return false; } static bool gimple_simplify_PAREN_EXPR (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree op0) { switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case PAREN_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { { /* #line 1770 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { op0, o20 }; gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1770, %s:%d\n", __FILE__, __LINE__); res_ops[0] = captures[0]; *res_code = TREE_CODE (res_ops[0]); return true; } } break; } default:; } } break; default:; } if (CONSTANT_CLASS_P (op0)) { { /* #line 1767 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { op0 }; gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1767, %s:%d\n", __FILE__, __LINE__); res_ops[0] = captures[0]; *res_code = TREE_CODE (res_ops[0]); return true; } } return false; } static bool gimple_simplify_REALPART_EXPR (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree op0) { switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case COMPLEX_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { { /* #line 1942 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 }; gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1942, %s:%d\n", __FILE__, __LINE__); res_ops[0] = captures[0]; *res_code = TREE_CODE (res_ops[0]); return true; } } } break; } CASE_CONVERT: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { switch (TREE_CODE (o20)) { case SSA_NAME: if (do_valueize (valueize, o20) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (o20); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case CONJ_EXPR: { tree o30 = gimple_assign_rhs1 (def); if ((o30 = do_valueize (valueize, o30))) { { /* #line 1950 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, o30 }; gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[1]))) lseq = NULL; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1950, %s:%d\n", __FILE__, __LINE__); *res_code = NOP_EXPR; { tree ops1[1], res; ops1[0] = captures[2]; code_helper tem_code = REALPART_EXPR; tree tem_ops[3] = { ops1[0] }; gimple_resimplify1 (lseq, &tem_code, TREE_TYPE (TREE_TYPE (ops1[0])), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (TREE_TYPE (ops1[0])), tem_ops, lseq); if (!res) return false; res_ops[0] = res; } gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } break; } case PLUS_EXPR: { tree o30 = gimple_assign_rhs1 (def); if ((o30 = do_valueize (valueize, o30))) { tree o31 = gimple_assign_rhs2 (def); if ((o31 = do_valueize (valueize, o31))) { if (tree_swap_operands_p (o30, o31)) std::swap (o30, o31); { /* #line 1958 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o30, o31 }; enum tree_code op = PLUS_EXPR; gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[1]))) lseq = NULL; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1958, %s:%d\n", __FILE__, __LINE__); *res_code = NOP_EXPR; { tree ops1[2], res; { tree ops2[1], res; ops2[0] = captures[2]; code_helper tem_code = REALPART_EXPR; tree tem_ops[3] = { ops2[0] }; gimple_resimplify1 (lseq, &tem_code, TREE_TYPE (TREE_TYPE (ops2[0])), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (TREE_TYPE (ops2[0])), tem_ops, lseq); if (!res) return false; ops1[0] = res; } { tree ops2[1], res; ops2[0] = captures[3]; code_helper tem_code = REALPART_EXPR; tree tem_ops[3] = { ops2[0] }; gimple_resimplify1 (lseq, &tem_code, TREE_TYPE (TREE_TYPE (ops2[0])), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (TREE_TYPE (ops2[0])), tem_ops, lseq); if (!res) return false; ops1[1] = res; } code_helper tem_code = op; tree tem_ops[3] = { ops1[0], ops1[1] }; gimple_resimplify2 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[0] = res; } gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } } break; } case MINUS_EXPR: { tree o30 = gimple_assign_rhs1 (def); if ((o30 = do_valueize (valueize, o30))) { tree o31 = gimple_assign_rhs2 (def); if ((o31 = do_valueize (valueize, o31))) { { /* #line 1958 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o30, o31 }; enum tree_code op = MINUS_EXPR; gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[1]))) lseq = NULL; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1958, %s:%d\n", __FILE__, __LINE__); *res_code = NOP_EXPR; { tree ops1[2], res; { tree ops2[1], res; ops2[0] = captures[2]; code_helper tem_code = REALPART_EXPR; tree tem_ops[3] = { ops2[0] }; gimple_resimplify1 (lseq, &tem_code, TREE_TYPE (TREE_TYPE (ops2[0])), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (TREE_TYPE (ops2[0])), tem_ops, lseq); if (!res) return false; ops1[0] = res; } { tree ops2[1], res; ops2[0] = captures[3]; code_helper tem_code = REALPART_EXPR; tree tem_ops[3] = { ops2[0] }; gimple_resimplify1 (lseq, &tem_code, TREE_TYPE (TREE_TYPE (ops2[0])), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (TREE_TYPE (ops2[0])), tem_ops, lseq); if (!res) return false; ops1[1] = res; } code_helper tem_code = op; tree tem_ops[3] = { ops1[0], ops1[1] }; gimple_resimplify2 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[0] = res; } gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } } break; } default:; } else if (gcall *def = dyn_cast (def_stmt)) switch (gimple_call_combined_fn (def)) { case CFN_BUILT_IN_CEXPIF: { tree o30 = gimple_call_arg (def, 0); if ((o30 = do_valueize (valueize, o30))) { { /* #line 1961 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, o30 }; gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[1]))) lseq = NULL; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1961, %s:%d\n", __FILE__, __LINE__); *res_code = NOP_EXPR; { tree ops1[1], res; ops1[0] = captures[2]; code_helper tem_code = CFN_BUILT_IN_COSF; tree tem_ops[3] = { ops1[0] }; gimple_resimplify1 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[0] = res; } gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } break; } case CFN_BUILT_IN_CEXPI: { tree o30 = gimple_call_arg (def, 0); if ((o30 = do_valueize (valueize, o30))) { { /* #line 1961 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, o30 }; gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[1]))) lseq = NULL; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1961, %s:%d\n", __FILE__, __LINE__); *res_code = NOP_EXPR; { tree ops1[1], res; ops1[0] = captures[2]; code_helper tem_code = CFN_BUILT_IN_COS; tree tem_ops[3] = { ops1[0] }; gimple_resimplify1 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[0] = res; } gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } break; } case CFN_BUILT_IN_CEXPIL: { tree o30 = gimple_call_arg (def, 0); if ((o30 = do_valueize (valueize, o30))) { { /* #line 1961 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, o30 }; gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[1]))) lseq = NULL; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1961, %s:%d\n", __FILE__, __LINE__); *res_code = NOP_EXPR; { tree ops1[1], res; ops1[0] = captures[2]; code_helper tem_code = CFN_BUILT_IN_COSL; tree tem_ops[3] = { ops1[0] }; gimple_resimplify1 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[0] = res; } gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } break; } default:; } } break; default:; } } break; } case CONJ_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { { /* #line 1950 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { op0, op0, o20 }; gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[1]))) lseq = NULL; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1950, %s:%d\n", __FILE__, __LINE__); *res_code = NOP_EXPR; { tree ops1[1], res; ops1[0] = captures[2]; code_helper tem_code = REALPART_EXPR; tree tem_ops[3] = { ops1[0] }; gimple_resimplify1 (lseq, &tem_code, TREE_TYPE (TREE_TYPE (ops1[0])), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (TREE_TYPE (ops1[0])), tem_ops, lseq); if (!res) return false; res_ops[0] = res; } gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } break; } case PLUS_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { if (tree_swap_operands_p (o20, o21)) std::swap (o20, o21); { /* #line 1958 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { op0, op0, o20, o21 }; enum tree_code op = PLUS_EXPR; gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[1]))) lseq = NULL; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1958, %s:%d\n", __FILE__, __LINE__); *res_code = NOP_EXPR; { tree ops1[2], res; { tree ops2[1], res; ops2[0] = captures[2]; code_helper tem_code = REALPART_EXPR; tree tem_ops[3] = { ops2[0] }; gimple_resimplify1 (lseq, &tem_code, TREE_TYPE (TREE_TYPE (ops2[0])), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (TREE_TYPE (ops2[0])), tem_ops, lseq); if (!res) return false; ops1[0] = res; } { tree ops2[1], res; ops2[0] = captures[3]; code_helper tem_code = REALPART_EXPR; tree tem_ops[3] = { ops2[0] }; gimple_resimplify1 (lseq, &tem_code, TREE_TYPE (TREE_TYPE (ops2[0])), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (TREE_TYPE (ops2[0])), tem_ops, lseq); if (!res) return false; ops1[1] = res; } code_helper tem_code = op; tree tem_ops[3] = { ops1[0], ops1[1] }; gimple_resimplify2 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[0] = res; } gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } } break; } case MINUS_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { { /* #line 1958 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { op0, op0, o20, o21 }; enum tree_code op = MINUS_EXPR; gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[1]))) lseq = NULL; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1958, %s:%d\n", __FILE__, __LINE__); *res_code = NOP_EXPR; { tree ops1[2], res; { tree ops2[1], res; ops2[0] = captures[2]; code_helper tem_code = REALPART_EXPR; tree tem_ops[3] = { ops2[0] }; gimple_resimplify1 (lseq, &tem_code, TREE_TYPE (TREE_TYPE (ops2[0])), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (TREE_TYPE (ops2[0])), tem_ops, lseq); if (!res) return false; ops1[0] = res; } { tree ops2[1], res; ops2[0] = captures[3]; code_helper tem_code = REALPART_EXPR; tree tem_ops[3] = { ops2[0] }; gimple_resimplify1 (lseq, &tem_code, TREE_TYPE (TREE_TYPE (ops2[0])), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (TREE_TYPE (ops2[0])), tem_ops, lseq); if (!res) return false; ops1[1] = res; } code_helper tem_code = op; tree tem_ops[3] = { ops1[0], ops1[1] }; gimple_resimplify2 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[0] = res; } gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } } break; } default:; } else if (gcall *def = dyn_cast (def_stmt)) switch (gimple_call_combined_fn (def)) { case CFN_BUILT_IN_CEXPIF: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { { /* #line 1961 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { op0, op0, o20 }; gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[1]))) lseq = NULL; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1961, %s:%d\n", __FILE__, __LINE__); *res_code = NOP_EXPR; { tree ops1[1], res; ops1[0] = captures[2]; code_helper tem_code = CFN_BUILT_IN_COSF; tree tem_ops[3] = { ops1[0] }; gimple_resimplify1 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[0] = res; } gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } break; } case CFN_BUILT_IN_CEXPI: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { { /* #line 1961 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { op0, op0, o20 }; gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[1]))) lseq = NULL; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1961, %s:%d\n", __FILE__, __LINE__); *res_code = NOP_EXPR; { tree ops1[1], res; ops1[0] = captures[2]; code_helper tem_code = CFN_BUILT_IN_COS; tree tem_ops[3] = { ops1[0] }; gimple_resimplify1 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[0] = res; } gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } break; } case CFN_BUILT_IN_CEXPIL: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { { /* #line 1961 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { op0, op0, o20 }; gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[1]))) lseq = NULL; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1961, %s:%d\n", __FILE__, __LINE__); *res_code = NOP_EXPR; { tree ops1[1], res; ops1[0] = captures[2]; code_helper tem_code = CFN_BUILT_IN_COSL; tree tem_ops[3] = { ops1[0] }; gimple_resimplify1 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[0] = res; } gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } break; } default:; } } break; default:; } return false; } static bool gimple_simplify_IMAGPART_EXPR (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree op0) { switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case COMPLEX_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { { /* #line 1945 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 }; gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1945, %s:%d\n", __FILE__, __LINE__); res_ops[0] = captures[1]; *res_code = TREE_CODE (res_ops[0]); return true; } } } break; } CASE_CONVERT: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { switch (TREE_CODE (o20)) { case SSA_NAME: if (do_valueize (valueize, o20) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (o20); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case CONJ_EXPR: { tree o30 = gimple_assign_rhs1 (def); if ((o30 = do_valueize (valueize, o30))) { { /* #line 1953 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, o30 }; gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[1]))) lseq = NULL; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1953, %s:%d\n", __FILE__, __LINE__); *res_code = NOP_EXPR; { tree ops1[1], res; { tree ops2[1], res; ops2[0] = captures[2]; code_helper tem_code = IMAGPART_EXPR; tree tem_ops[3] = { ops2[0] }; gimple_resimplify1 (lseq, &tem_code, TREE_TYPE (TREE_TYPE (ops2[0])), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (TREE_TYPE (ops2[0])), tem_ops, lseq); if (!res) return false; ops1[0] = res; } code_helper tem_code = NEGATE_EXPR; tree tem_ops[3] = { ops1[0] }; gimple_resimplify1 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[0] = res; } gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } break; } case PLUS_EXPR: { tree o30 = gimple_assign_rhs1 (def); if ((o30 = do_valueize (valueize, o30))) { tree o31 = gimple_assign_rhs2 (def); if ((o31 = do_valueize (valueize, o31))) { if (tree_swap_operands_p (o30, o31)) std::swap (o30, o31); { /* #line 1958 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o30, o31 }; enum tree_code op = PLUS_EXPR; gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[1]))) lseq = NULL; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1958, %s:%d\n", __FILE__, __LINE__); *res_code = NOP_EXPR; { tree ops1[2], res; { tree ops2[1], res; ops2[0] = captures[2]; code_helper tem_code = IMAGPART_EXPR; tree tem_ops[3] = { ops2[0] }; gimple_resimplify1 (lseq, &tem_code, TREE_TYPE (TREE_TYPE (ops2[0])), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (TREE_TYPE (ops2[0])), tem_ops, lseq); if (!res) return false; ops1[0] = res; } { tree ops2[1], res; ops2[0] = captures[3]; code_helper tem_code = IMAGPART_EXPR; tree tem_ops[3] = { ops2[0] }; gimple_resimplify1 (lseq, &tem_code, TREE_TYPE (TREE_TYPE (ops2[0])), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (TREE_TYPE (ops2[0])), tem_ops, lseq); if (!res) return false; ops1[1] = res; } code_helper tem_code = op; tree tem_ops[3] = { ops1[0], ops1[1] }; gimple_resimplify2 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[0] = res; } gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } } break; } case MINUS_EXPR: { tree o30 = gimple_assign_rhs1 (def); if ((o30 = do_valueize (valueize, o30))) { tree o31 = gimple_assign_rhs2 (def); if ((o31 = do_valueize (valueize, o31))) { { /* #line 1958 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o30, o31 }; enum tree_code op = MINUS_EXPR; gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[1]))) lseq = NULL; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1958, %s:%d\n", __FILE__, __LINE__); *res_code = NOP_EXPR; { tree ops1[2], res; { tree ops2[1], res; ops2[0] = captures[2]; code_helper tem_code = IMAGPART_EXPR; tree tem_ops[3] = { ops2[0] }; gimple_resimplify1 (lseq, &tem_code, TREE_TYPE (TREE_TYPE (ops2[0])), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (TREE_TYPE (ops2[0])), tem_ops, lseq); if (!res) return false; ops1[0] = res; } { tree ops2[1], res; ops2[0] = captures[3]; code_helper tem_code = IMAGPART_EXPR; tree tem_ops[3] = { ops2[0] }; gimple_resimplify1 (lseq, &tem_code, TREE_TYPE (TREE_TYPE (ops2[0])), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (TREE_TYPE (ops2[0])), tem_ops, lseq); if (!res) return false; ops1[1] = res; } code_helper tem_code = op; tree tem_ops[3] = { ops1[0], ops1[1] }; gimple_resimplify2 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[0] = res; } gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } } break; } default:; } else if (gcall *def = dyn_cast (def_stmt)) switch (gimple_call_combined_fn (def)) { case CFN_BUILT_IN_CEXPIF: { tree o30 = gimple_call_arg (def, 0); if ((o30 = do_valueize (valueize, o30))) { { /* #line 1964 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, o30 }; gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[1]))) lseq = NULL; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1964, %s:%d\n", __FILE__, __LINE__); *res_code = NOP_EXPR; { tree ops1[1], res; ops1[0] = captures[2]; code_helper tem_code = CFN_BUILT_IN_SINF; tree tem_ops[3] = { ops1[0] }; gimple_resimplify1 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[0] = res; } gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } break; } case CFN_BUILT_IN_CEXPI: { tree o30 = gimple_call_arg (def, 0); if ((o30 = do_valueize (valueize, o30))) { { /* #line 1964 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, o30 }; gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[1]))) lseq = NULL; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1964, %s:%d\n", __FILE__, __LINE__); *res_code = NOP_EXPR; { tree ops1[1], res; ops1[0] = captures[2]; code_helper tem_code = CFN_BUILT_IN_SIN; tree tem_ops[3] = { ops1[0] }; gimple_resimplify1 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[0] = res; } gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } break; } case CFN_BUILT_IN_CEXPIL: { tree o30 = gimple_call_arg (def, 0); if ((o30 = do_valueize (valueize, o30))) { { /* #line 1964 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, o30 }; gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[1]))) lseq = NULL; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1964, %s:%d\n", __FILE__, __LINE__); *res_code = NOP_EXPR; { tree ops1[1], res; ops1[0] = captures[2]; code_helper tem_code = CFN_BUILT_IN_SINL; tree tem_ops[3] = { ops1[0] }; gimple_resimplify1 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[0] = res; } gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } break; } default:; } } break; default:; } } break; } case CONJ_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { { /* #line 1953 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { op0, op0, o20 }; gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[1]))) lseq = NULL; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1953, %s:%d\n", __FILE__, __LINE__); *res_code = NOP_EXPR; { tree ops1[1], res; { tree ops2[1], res; ops2[0] = captures[2]; code_helper tem_code = IMAGPART_EXPR; tree tem_ops[3] = { ops2[0] }; gimple_resimplify1 (lseq, &tem_code, TREE_TYPE (TREE_TYPE (ops2[0])), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (TREE_TYPE (ops2[0])), tem_ops, lseq); if (!res) return false; ops1[0] = res; } code_helper tem_code = NEGATE_EXPR; tree tem_ops[3] = { ops1[0] }; gimple_resimplify1 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[0] = res; } gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } break; } case PLUS_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { if (tree_swap_operands_p (o20, o21)) std::swap (o20, o21); { /* #line 1958 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { op0, op0, o20, o21 }; enum tree_code op = PLUS_EXPR; gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[1]))) lseq = NULL; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1958, %s:%d\n", __FILE__, __LINE__); *res_code = NOP_EXPR; { tree ops1[2], res; { tree ops2[1], res; ops2[0] = captures[2]; code_helper tem_code = IMAGPART_EXPR; tree tem_ops[3] = { ops2[0] }; gimple_resimplify1 (lseq, &tem_code, TREE_TYPE (TREE_TYPE (ops2[0])), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (TREE_TYPE (ops2[0])), tem_ops, lseq); if (!res) return false; ops1[0] = res; } { tree ops2[1], res; ops2[0] = captures[3]; code_helper tem_code = IMAGPART_EXPR; tree tem_ops[3] = { ops2[0] }; gimple_resimplify1 (lseq, &tem_code, TREE_TYPE (TREE_TYPE (ops2[0])), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (TREE_TYPE (ops2[0])), tem_ops, lseq); if (!res) return false; ops1[1] = res; } code_helper tem_code = op; tree tem_ops[3] = { ops1[0], ops1[1] }; gimple_resimplify2 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[0] = res; } gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } } break; } case MINUS_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { { /* #line 1958 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { op0, op0, o20, o21 }; enum tree_code op = MINUS_EXPR; gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[1]))) lseq = NULL; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1958, %s:%d\n", __FILE__, __LINE__); *res_code = NOP_EXPR; { tree ops1[2], res; { tree ops2[1], res; ops2[0] = captures[2]; code_helper tem_code = IMAGPART_EXPR; tree tem_ops[3] = { ops2[0] }; gimple_resimplify1 (lseq, &tem_code, TREE_TYPE (TREE_TYPE (ops2[0])), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (TREE_TYPE (ops2[0])), tem_ops, lseq); if (!res) return false; ops1[0] = res; } { tree ops2[1], res; ops2[0] = captures[3]; code_helper tem_code = IMAGPART_EXPR; tree tem_ops[3] = { ops2[0] }; gimple_resimplify1 (lseq, &tem_code, TREE_TYPE (TREE_TYPE (ops2[0])), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (TREE_TYPE (ops2[0])), tem_ops, lseq); if (!res) return false; ops1[1] = res; } code_helper tem_code = op; tree tem_ops[3] = { ops1[0], ops1[1] }; gimple_resimplify2 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[0] = res; } gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } } break; } default:; } else if (gcall *def = dyn_cast (def_stmt)) switch (gimple_call_combined_fn (def)) { case CFN_BUILT_IN_CEXPIF: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { { /* #line 1964 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { op0, op0, o20 }; gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[1]))) lseq = NULL; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1964, %s:%d\n", __FILE__, __LINE__); *res_code = NOP_EXPR; { tree ops1[1], res; ops1[0] = captures[2]; code_helper tem_code = CFN_BUILT_IN_SINF; tree tem_ops[3] = { ops1[0] }; gimple_resimplify1 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[0] = res; } gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } break; } case CFN_BUILT_IN_CEXPI: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { { /* #line 1964 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { op0, op0, o20 }; gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[1]))) lseq = NULL; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1964, %s:%d\n", __FILE__, __LINE__); *res_code = NOP_EXPR; { tree ops1[1], res; ops1[0] = captures[2]; code_helper tem_code = CFN_BUILT_IN_SIN; tree tem_ops[3] = { ops1[0] }; gimple_resimplify1 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[0] = res; } gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } break; } case CFN_BUILT_IN_CEXPIL: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { { /* #line 1964 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { op0, op0, o20 }; gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[1]))) lseq = NULL; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1964, %s:%d\n", __FILE__, __LINE__); *res_code = NOP_EXPR; { tree ops1[1], res; ops1[0] = captures[2]; code_helper tem_code = CFN_BUILT_IN_SINL; tree tem_ops[3] = { ops1[0] }; gimple_resimplify1 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[0] = res; } gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } break; } default:; } } break; default:; } return false; } static bool gimple_simplify_CONJ_EXPR (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree op0) { switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { CASE_CONVERT: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { switch (TREE_CODE (o20)) { case SSA_NAME: if (do_valueize (valueize, o20) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (o20); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case CONJ_EXPR: { tree o30 = gimple_assign_rhs1 (def); if ((o30 = do_valueize (valueize, o30))) { { /* #line 1969 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o30 }; if (gimple_simplify_80 (res_code, res_ops, seq, valueize, type, captures)) return true; } } break; } case COMPLEX_EXPR: { tree o30 = gimple_assign_rhs1 (def); if ((o30 = do_valueize (valueize, o30))) { tree o31 = gimple_assign_rhs2 (def); if ((o31 = do_valueize (valueize, o31))) { { /* #line 1975 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o30, o31 }; { /* #line 1975 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree itype = TREE_TYPE (type); gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[1]))) lseq = NULL; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1976, %s:%d\n", __FILE__, __LINE__); *res_code = COMPLEX_EXPR; { tree ops1[1], res; ops1[0] = captures[2]; if (itype != TREE_TYPE (ops1[0]) && !useless_type_conversion_p (itype, TREE_TYPE (ops1[0]))) { code_helper tem_code = NOP_EXPR; tree tem_ops[3] = { ops1[0] }; gimple_resimplify1 (lseq, &tem_code, itype, tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, itype, tem_ops, lseq); if (!res) return false; } else res = ops1[0]; res_ops[0] = res; } { tree ops1[1], res; { tree ops2[1], res; ops2[0] = captures[3]; if (itype != TREE_TYPE (ops2[0]) && !useless_type_conversion_p (itype, TREE_TYPE (ops2[0]))) { code_helper tem_code = NOP_EXPR; tree tem_ops[3] = { ops2[0] }; gimple_resimplify1 (lseq, &tem_code, itype, tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, itype, tem_ops, lseq); if (!res) return false; } else res = ops2[0]; ops1[0] = res; } code_helper tem_code = NEGATE_EXPR; tree tem_ops[3] = { ops1[0] }; gimple_resimplify1 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[1] = res; } gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } } } break; } default:; } } break; default:; } } break; } case CONJ_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { { /* #line 1969 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; if (gimple_simplify_80 (res_code, res_ops, seq, valueize, type, captures)) return true; } } break; } case COMPLEX_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { { /* #line 1975 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { op0, op0, o20, o21 }; { /* #line 1975 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree itype = TREE_TYPE (type); gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[1]))) lseq = NULL; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1976, %s:%d\n", __FILE__, __LINE__); *res_code = COMPLEX_EXPR; { tree ops1[1], res; ops1[0] = captures[2]; if (itype != TREE_TYPE (ops1[0]) && !useless_type_conversion_p (itype, TREE_TYPE (ops1[0]))) { code_helper tem_code = NOP_EXPR; tree tem_ops[3] = { ops1[0] }; gimple_resimplify1 (lseq, &tem_code, itype, tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, itype, tem_ops, lseq); if (!res) return false; } else res = ops1[0]; res_ops[0] = res; } { tree ops1[1], res; { tree ops2[1], res; ops2[0] = captures[3]; if (itype != TREE_TYPE (ops2[0]) && !useless_type_conversion_p (itype, TREE_TYPE (ops2[0]))) { code_helper tem_code = NOP_EXPR; tree tem_ops[3] = { ops2[0] }; gimple_resimplify1 (lseq, &tem_code, itype, tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, itype, tem_ops, lseq); if (!res) return false; } else res = ops2[0]; ops1[0] = res; } code_helper tem_code = NEGATE_EXPR; tree tem_ops[3] = { ops1[0] }; gimple_resimplify1 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[1] = res; } gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } } } break; } default:; } } break; default:; } return false; } static bool gimple_simplify_CFN_BUILT_IN_BSWAP16 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree op0) { switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case BIT_NOT_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { switch (TREE_CODE (o20)) { case SSA_NAME: if (do_valueize (valueize, o20) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (o20); if (gcall *def = dyn_cast (def_stmt)) switch (gimple_call_combined_fn (def)) { case CFN_BUILT_IN_BSWAP16: { tree o30 = gimple_call_arg (def, 0); if ((o30 = do_valueize (valueize, o30))) { { /* #line 1985 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o30 }; if (gimple_simplify_140 (res_code, res_ops, seq, valueize, type, captures, CFN_BUILT_IN_BSWAP16)) return true; } } break; } default:; } } break; default:; } } break; } case BIT_XOR_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { if (tree_swap_operands_p (o20, o21)) std::swap (o20, o21); switch (TREE_CODE (o20)) { case SSA_NAME: if (do_valueize (valueize, o20) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (o20); if (gcall *def = dyn_cast (def_stmt)) switch (gimple_call_combined_fn (def)) { case CFN_BUILT_IN_BSWAP16: { tree o30 = gimple_call_arg (def, 0); if ((o30 = do_valueize (valueize, o30))) { { /* #line 1989 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o30, o21 }; if (gimple_simplify_142 (res_code, res_ops, seq, valueize, type, captures, BIT_XOR_EXPR, CFN_BUILT_IN_BSWAP16)) return true; } } break; } default:; } } break; default:; } switch (TREE_CODE (o21)) { case SSA_NAME: if (do_valueize (valueize, o21) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (o21); if (gcall *def = dyn_cast (def_stmt)) switch (gimple_call_combined_fn (def)) { case CFN_BUILT_IN_BSWAP16: { tree o40 = gimple_call_arg (def, 0); if ((o40 = do_valueize (valueize, o40))) { { /* #line 1989 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o40, o20 }; if (gimple_simplify_142 (res_code, res_ops, seq, valueize, type, captures, BIT_XOR_EXPR, CFN_BUILT_IN_BSWAP16)) return true; } } break; } default:; } } break; default:; } } } break; } case BIT_IOR_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { if (tree_swap_operands_p (o20, o21)) std::swap (o20, o21); switch (TREE_CODE (o20)) { case SSA_NAME: if (do_valueize (valueize, o20) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (o20); if (gcall *def = dyn_cast (def_stmt)) switch (gimple_call_combined_fn (def)) { case CFN_BUILT_IN_BSWAP16: { tree o30 = gimple_call_arg (def, 0); if ((o30 = do_valueize (valueize, o30))) { { /* #line 1989 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o30, o21 }; if (gimple_simplify_142 (res_code, res_ops, seq, valueize, type, captures, BIT_IOR_EXPR, CFN_BUILT_IN_BSWAP16)) return true; } } break; } default:; } } break; default:; } switch (TREE_CODE (o21)) { case SSA_NAME: if (do_valueize (valueize, o21) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (o21); if (gcall *def = dyn_cast (def_stmt)) switch (gimple_call_combined_fn (def)) { case CFN_BUILT_IN_BSWAP16: { tree o40 = gimple_call_arg (def, 0); if ((o40 = do_valueize (valueize, o40))) { { /* #line 1989 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o40, o20 }; if (gimple_simplify_142 (res_code, res_ops, seq, valueize, type, captures, BIT_IOR_EXPR, CFN_BUILT_IN_BSWAP16)) return true; } } break; } default:; } } break; default:; } } } break; } case BIT_AND_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { if (tree_swap_operands_p (o20, o21)) std::swap (o20, o21); switch (TREE_CODE (o20)) { case SSA_NAME: if (do_valueize (valueize, o20) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (o20); if (gcall *def = dyn_cast (def_stmt)) switch (gimple_call_combined_fn (def)) { case CFN_BUILT_IN_BSWAP16: { tree o30 = gimple_call_arg (def, 0); if ((o30 = do_valueize (valueize, o30))) { { /* #line 1989 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o30, o21 }; if (gimple_simplify_142 (res_code, res_ops, seq, valueize, type, captures, BIT_AND_EXPR, CFN_BUILT_IN_BSWAP16)) return true; } } break; } default:; } } break; default:; } switch (TREE_CODE (o21)) { case SSA_NAME: if (do_valueize (valueize, o21) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (o21); if (gcall *def = dyn_cast (def_stmt)) switch (gimple_call_combined_fn (def)) { case CFN_BUILT_IN_BSWAP16: { tree o40 = gimple_call_arg (def, 0); if ((o40 = do_valueize (valueize, o40))) { { /* #line 1989 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o40, o20 }; if (gimple_simplify_142 (res_code, res_ops, seq, valueize, type, captures, BIT_AND_EXPR, CFN_BUILT_IN_BSWAP16)) return true; } } break; } default:; } } break; default:; } } } break; } default:; } else if (gcall *def = dyn_cast (def_stmt)) switch (gimple_call_combined_fn (def)) { case CFN_BUILT_IN_BSWAP16: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { { /* #line 1982 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; if (gimple_simplify_96 (res_code, res_ops, seq, valueize, type, captures, CFN_BUILT_IN_BSWAP16)) return true; } } break; } default:; } } break; default:; } return false; } static bool gimple_simplify_CFN_BUILT_IN_BSWAP32 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree op0) { switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case BIT_NOT_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { switch (TREE_CODE (o20)) { case SSA_NAME: if (do_valueize (valueize, o20) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (o20); if (gcall *def = dyn_cast (def_stmt)) switch (gimple_call_combined_fn (def)) { case CFN_BUILT_IN_BSWAP32: { tree o30 = gimple_call_arg (def, 0); if ((o30 = do_valueize (valueize, o30))) { { /* #line 1985 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o30 }; if (gimple_simplify_140 (res_code, res_ops, seq, valueize, type, captures, CFN_BUILT_IN_BSWAP32)) return true; } } break; } default:; } } break; default:; } } break; } case BIT_XOR_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { if (tree_swap_operands_p (o20, o21)) std::swap (o20, o21); switch (TREE_CODE (o20)) { case SSA_NAME: if (do_valueize (valueize, o20) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (o20); if (gcall *def = dyn_cast (def_stmt)) switch (gimple_call_combined_fn (def)) { case CFN_BUILT_IN_BSWAP32: { tree o30 = gimple_call_arg (def, 0); if ((o30 = do_valueize (valueize, o30))) { { /* #line 1989 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o30, o21 }; if (gimple_simplify_142 (res_code, res_ops, seq, valueize, type, captures, BIT_XOR_EXPR, CFN_BUILT_IN_BSWAP32)) return true; } } break; } default:; } } break; default:; } switch (TREE_CODE (o21)) { case SSA_NAME: if (do_valueize (valueize, o21) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (o21); if (gcall *def = dyn_cast (def_stmt)) switch (gimple_call_combined_fn (def)) { case CFN_BUILT_IN_BSWAP32: { tree o40 = gimple_call_arg (def, 0); if ((o40 = do_valueize (valueize, o40))) { { /* #line 1989 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o40, o20 }; if (gimple_simplify_142 (res_code, res_ops, seq, valueize, type, captures, BIT_XOR_EXPR, CFN_BUILT_IN_BSWAP32)) return true; } } break; } default:; } } break; default:; } } } break; } case BIT_IOR_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { if (tree_swap_operands_p (o20, o21)) std::swap (o20, o21); switch (TREE_CODE (o20)) { case SSA_NAME: if (do_valueize (valueize, o20) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (o20); if (gcall *def = dyn_cast (def_stmt)) switch (gimple_call_combined_fn (def)) { case CFN_BUILT_IN_BSWAP32: { tree o30 = gimple_call_arg (def, 0); if ((o30 = do_valueize (valueize, o30))) { { /* #line 1989 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o30, o21 }; if (gimple_simplify_142 (res_code, res_ops, seq, valueize, type, captures, BIT_IOR_EXPR, CFN_BUILT_IN_BSWAP32)) return true; } } break; } default:; } } break; default:; } switch (TREE_CODE (o21)) { case SSA_NAME: if (do_valueize (valueize, o21) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (o21); if (gcall *def = dyn_cast (def_stmt)) switch (gimple_call_combined_fn (def)) { case CFN_BUILT_IN_BSWAP32: { tree o40 = gimple_call_arg (def, 0); if ((o40 = do_valueize (valueize, o40))) { { /* #line 1989 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o40, o20 }; if (gimple_simplify_142 (res_code, res_ops, seq, valueize, type, captures, BIT_IOR_EXPR, CFN_BUILT_IN_BSWAP32)) return true; } } break; } default:; } } break; default:; } } } break; } case BIT_AND_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { if (tree_swap_operands_p (o20, o21)) std::swap (o20, o21); switch (TREE_CODE (o20)) { case SSA_NAME: if (do_valueize (valueize, o20) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (o20); if (gcall *def = dyn_cast (def_stmt)) switch (gimple_call_combined_fn (def)) { case CFN_BUILT_IN_BSWAP32: { tree o30 = gimple_call_arg (def, 0); if ((o30 = do_valueize (valueize, o30))) { { /* #line 1989 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o30, o21 }; if (gimple_simplify_142 (res_code, res_ops, seq, valueize, type, captures, BIT_AND_EXPR, CFN_BUILT_IN_BSWAP32)) return true; } } break; } default:; } } break; default:; } switch (TREE_CODE (o21)) { case SSA_NAME: if (do_valueize (valueize, o21) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (o21); if (gcall *def = dyn_cast (def_stmt)) switch (gimple_call_combined_fn (def)) { case CFN_BUILT_IN_BSWAP32: { tree o40 = gimple_call_arg (def, 0); if ((o40 = do_valueize (valueize, o40))) { { /* #line 1989 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o40, o20 }; if (gimple_simplify_142 (res_code, res_ops, seq, valueize, type, captures, BIT_AND_EXPR, CFN_BUILT_IN_BSWAP32)) return true; } } break; } default:; } } break; default:; } } } break; } default:; } else if (gcall *def = dyn_cast (def_stmt)) switch (gimple_call_combined_fn (def)) { case CFN_BUILT_IN_BSWAP32: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { { /* #line 1982 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; if (gimple_simplify_96 (res_code, res_ops, seq, valueize, type, captures, CFN_BUILT_IN_BSWAP32)) return true; } } break; } default:; } } break; default:; } return false; } static bool gimple_simplify_CFN_BUILT_IN_BSWAP64 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree op0) { switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case BIT_NOT_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { switch (TREE_CODE (o20)) { case SSA_NAME: if (do_valueize (valueize, o20) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (o20); if (gcall *def = dyn_cast (def_stmt)) switch (gimple_call_combined_fn (def)) { case CFN_BUILT_IN_BSWAP64: { tree o30 = gimple_call_arg (def, 0); if ((o30 = do_valueize (valueize, o30))) { { /* #line 1985 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o30 }; if (gimple_simplify_140 (res_code, res_ops, seq, valueize, type, captures, CFN_BUILT_IN_BSWAP64)) return true; } } break; } default:; } } break; default:; } } break; } case BIT_XOR_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { if (tree_swap_operands_p (o20, o21)) std::swap (o20, o21); switch (TREE_CODE (o20)) { case SSA_NAME: if (do_valueize (valueize, o20) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (o20); if (gcall *def = dyn_cast (def_stmt)) switch (gimple_call_combined_fn (def)) { case CFN_BUILT_IN_BSWAP64: { tree o30 = gimple_call_arg (def, 0); if ((o30 = do_valueize (valueize, o30))) { { /* #line 1989 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o30, o21 }; if (gimple_simplify_142 (res_code, res_ops, seq, valueize, type, captures, BIT_XOR_EXPR, CFN_BUILT_IN_BSWAP64)) return true; } } break; } default:; } } break; default:; } switch (TREE_CODE (o21)) { case SSA_NAME: if (do_valueize (valueize, o21) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (o21); if (gcall *def = dyn_cast (def_stmt)) switch (gimple_call_combined_fn (def)) { case CFN_BUILT_IN_BSWAP64: { tree o40 = gimple_call_arg (def, 0); if ((o40 = do_valueize (valueize, o40))) { { /* #line 1989 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o40, o20 }; if (gimple_simplify_142 (res_code, res_ops, seq, valueize, type, captures, BIT_XOR_EXPR, CFN_BUILT_IN_BSWAP64)) return true; } } break; } default:; } } break; default:; } } } break; } case BIT_IOR_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { if (tree_swap_operands_p (o20, o21)) std::swap (o20, o21); switch (TREE_CODE (o20)) { case SSA_NAME: if (do_valueize (valueize, o20) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (o20); if (gcall *def = dyn_cast (def_stmt)) switch (gimple_call_combined_fn (def)) { case CFN_BUILT_IN_BSWAP64: { tree o30 = gimple_call_arg (def, 0); if ((o30 = do_valueize (valueize, o30))) { { /* #line 1989 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o30, o21 }; if (gimple_simplify_142 (res_code, res_ops, seq, valueize, type, captures, BIT_IOR_EXPR, CFN_BUILT_IN_BSWAP64)) return true; } } break; } default:; } } break; default:; } switch (TREE_CODE (o21)) { case SSA_NAME: if (do_valueize (valueize, o21) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (o21); if (gcall *def = dyn_cast (def_stmt)) switch (gimple_call_combined_fn (def)) { case CFN_BUILT_IN_BSWAP64: { tree o40 = gimple_call_arg (def, 0); if ((o40 = do_valueize (valueize, o40))) { { /* #line 1989 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o40, o20 }; if (gimple_simplify_142 (res_code, res_ops, seq, valueize, type, captures, BIT_IOR_EXPR, CFN_BUILT_IN_BSWAP64)) return true; } } break; } default:; } } break; default:; } } } break; } case BIT_AND_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { if (tree_swap_operands_p (o20, o21)) std::swap (o20, o21); switch (TREE_CODE (o20)) { case SSA_NAME: if (do_valueize (valueize, o20) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (o20); if (gcall *def = dyn_cast (def_stmt)) switch (gimple_call_combined_fn (def)) { case CFN_BUILT_IN_BSWAP64: { tree o30 = gimple_call_arg (def, 0); if ((o30 = do_valueize (valueize, o30))) { { /* #line 1989 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o30, o21 }; if (gimple_simplify_142 (res_code, res_ops, seq, valueize, type, captures, BIT_AND_EXPR, CFN_BUILT_IN_BSWAP64)) return true; } } break; } default:; } } break; default:; } switch (TREE_CODE (o21)) { case SSA_NAME: if (do_valueize (valueize, o21) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (o21); if (gcall *def = dyn_cast (def_stmt)) switch (gimple_call_combined_fn (def)) { case CFN_BUILT_IN_BSWAP64: { tree o40 = gimple_call_arg (def, 0); if ((o40 = do_valueize (valueize, o40))) { { /* #line 1989 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o40, o20 }; if (gimple_simplify_142 (res_code, res_ops, seq, valueize, type, captures, BIT_AND_EXPR, CFN_BUILT_IN_BSWAP64)) return true; } } break; } default:; } } break; default:; } } } break; } default:; } else if (gcall *def = dyn_cast (def_stmt)) switch (gimple_call_combined_fn (def)) { case CFN_BUILT_IN_BSWAP64: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { { /* #line 1982 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; if (gimple_simplify_96 (res_code, res_ops, seq, valueize, type, captures, CFN_BUILT_IN_BSWAP64)) return true; } } break; } default:; } } break; default:; } return false; } static bool gimple_simplify_CFN_BUILT_IN_LOGF (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree op0) { switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gcall *def = dyn_cast (def_stmt)) switch (gimple_call_combined_fn (def)) { case CFN_BUILT_IN_EXPF: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { { /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (flag_unsafe_math_optimizations) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3152, %s:%d\n", __FILE__, __LINE__); res_ops[0] = captures[0]; *res_code = TREE_CODE (res_ops[0]); return true; } } } break; } case CFN_BUILT_IN_EXP2F: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { { /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (flag_unsafe_math_optimizations) { /* #line 3165 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (SCALAR_FLOAT_TYPE_P (type)) { { /* #line 3166 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree x; switch (CFN_BUILT_IN_EXP2F) { CASE_CFN_EXP: x = build_real_truncate (type, dconst_e ()); break; CASE_CFN_EXP2: x = build_real (type, dconst2); break; CASE_CFN_EXP10: CASE_CFN_POW10: { REAL_VALUE_TYPE dconst10; real_from_integer (&dconst10, VOIDmode, 10, SIGNED); x = build_real (type, dconst10); } break; default: gcc_unreachable (); } gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3191, %s:%d\n", __FILE__, __LINE__); *res_code = MULT_EXPR; { tree ops1[1], res; ops1[0] = x; code_helper tem_code = CFN_BUILT_IN_LOGF; tree tem_ops[3] = { ops1[0] }; gimple_resimplify1 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[0] = res; } res_ops[1] = captures[0]; gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } } } } break; } case CFN_BUILT_IN_EXP10F: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { { /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (flag_unsafe_math_optimizations) { /* #line 3165 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (SCALAR_FLOAT_TYPE_P (type)) { { /* #line 3166 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree x; switch (CFN_BUILT_IN_EXP10F) { CASE_CFN_EXP: x = build_real_truncate (type, dconst_e ()); break; CASE_CFN_EXP2: x = build_real (type, dconst2); break; CASE_CFN_EXP10: CASE_CFN_POW10: { REAL_VALUE_TYPE dconst10; real_from_integer (&dconst10, VOIDmode, 10, SIGNED); x = build_real (type, dconst10); } break; default: gcc_unreachable (); } gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3191, %s:%d\n", __FILE__, __LINE__); *res_code = MULT_EXPR; { tree ops1[1], res; ops1[0] = x; code_helper tem_code = CFN_BUILT_IN_LOGF; tree tem_ops[3] = { ops1[0] }; gimple_resimplify1 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[0] = res; } res_ops[1] = captures[0]; gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } } } } break; } case CFN_BUILT_IN_POW10F: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { { /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (flag_unsafe_math_optimizations) { /* #line 3165 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (SCALAR_FLOAT_TYPE_P (type)) { { /* #line 3166 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree x; switch (CFN_BUILT_IN_POW10F) { CASE_CFN_EXP: x = build_real_truncate (type, dconst_e ()); break; CASE_CFN_EXP2: x = build_real (type, dconst2); break; CASE_CFN_EXP10: CASE_CFN_POW10: { REAL_VALUE_TYPE dconst10; real_from_integer (&dconst10, VOIDmode, 10, SIGNED); x = build_real (type, dconst10); } break; default: gcc_unreachable (); } gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3191, %s:%d\n", __FILE__, __LINE__); *res_code = MULT_EXPR; { tree ops1[1], res; ops1[0] = x; code_helper tem_code = CFN_BUILT_IN_LOGF; tree tem_ops[3] = { ops1[0] }; gimple_resimplify1 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[0] = res; } res_ops[1] = captures[0]; gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } } } } break; } case CFN_BUILT_IN_SQRTF: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { { /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (flag_unsafe_math_optimizations) { /* #line 3199 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (SCALAR_FLOAT_TYPE_P (type)) { { /* #line 3200 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree x; switch (CFN_BUILT_IN_SQRTF) { CASE_CFN_SQRT: x = build_real (type, dconsthalf); break; CASE_CFN_CBRT: x = build_real_truncate (type, dconst_third ()); break; default: gcc_unreachable (); } gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3216, %s:%d\n", __FILE__, __LINE__); *res_code = MULT_EXPR; res_ops[0] = x; { tree ops1[1], res; ops1[0] = captures[0]; code_helper tem_code = CFN_BUILT_IN_LOGF; tree tem_ops[3] = { ops1[0] }; gimple_resimplify1 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[1] = res; } gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } } } } break; } case CFN_BUILT_IN_CBRTF: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { { /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (flag_unsafe_math_optimizations) { /* #line 3199 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (SCALAR_FLOAT_TYPE_P (type)) { { /* #line 3200 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree x; switch (CFN_BUILT_IN_CBRTF) { CASE_CFN_SQRT: x = build_real (type, dconsthalf); break; CASE_CFN_CBRT: x = build_real_truncate (type, dconst_third ()); break; default: gcc_unreachable (); } gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3216, %s:%d\n", __FILE__, __LINE__); *res_code = MULT_EXPR; res_ops[0] = x; { tree ops1[1], res; ops1[0] = captures[0]; code_helper tem_code = CFN_BUILT_IN_LOGF; tree tem_ops[3] = { ops1[0] }; gimple_resimplify1 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[1] = res; } gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } } } } break; } case CFN_BUILT_IN_POWF: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_call_arg (def, 1); if ((o21 = do_valueize (valueize, o21))) { { /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 }; if (gimple_simplify_180 (res_code, res_ops, 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 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree op0) { switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gcall *def = dyn_cast (def_stmt)) switch (gimple_call_combined_fn (def)) { case CFN_BUILT_IN_EXP: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { { /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (flag_unsafe_math_optimizations) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3152, %s:%d\n", __FILE__, __LINE__); res_ops[0] = captures[0]; *res_code = TREE_CODE (res_ops[0]); return true; } } } break; } case CFN_BUILT_IN_EXP2: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { { /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (flag_unsafe_math_optimizations) { /* #line 3165 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (SCALAR_FLOAT_TYPE_P (type)) { { /* #line 3166 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree x; switch (CFN_BUILT_IN_EXP2) { CASE_CFN_EXP: x = build_real_truncate (type, dconst_e ()); break; CASE_CFN_EXP2: x = build_real (type, dconst2); break; CASE_CFN_EXP10: CASE_CFN_POW10: { REAL_VALUE_TYPE dconst10; real_from_integer (&dconst10, VOIDmode, 10, SIGNED); x = build_real (type, dconst10); } break; default: gcc_unreachable (); } gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3191, %s:%d\n", __FILE__, __LINE__); *res_code = MULT_EXPR; { tree ops1[1], res; ops1[0] = x; code_helper tem_code = CFN_BUILT_IN_LOG; tree tem_ops[3] = { ops1[0] }; gimple_resimplify1 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[0] = res; } res_ops[1] = captures[0]; gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } } } } break; } case CFN_BUILT_IN_EXP10: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { { /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (flag_unsafe_math_optimizations) { /* #line 3165 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (SCALAR_FLOAT_TYPE_P (type)) { { /* #line 3166 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree x; switch (CFN_BUILT_IN_EXP10) { CASE_CFN_EXP: x = build_real_truncate (type, dconst_e ()); break; CASE_CFN_EXP2: x = build_real (type, dconst2); break; CASE_CFN_EXP10: CASE_CFN_POW10: { REAL_VALUE_TYPE dconst10; real_from_integer (&dconst10, VOIDmode, 10, SIGNED); x = build_real (type, dconst10); } break; default: gcc_unreachable (); } gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3191, %s:%d\n", __FILE__, __LINE__); *res_code = MULT_EXPR; { tree ops1[1], res; ops1[0] = x; code_helper tem_code = CFN_BUILT_IN_LOG; tree tem_ops[3] = { ops1[0] }; gimple_resimplify1 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[0] = res; } res_ops[1] = captures[0]; gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } } } } break; } case CFN_BUILT_IN_POW10: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { { /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (flag_unsafe_math_optimizations) { /* #line 3165 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (SCALAR_FLOAT_TYPE_P (type)) { { /* #line 3166 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree x; switch (CFN_BUILT_IN_POW10) { CASE_CFN_EXP: x = build_real_truncate (type, dconst_e ()); break; CASE_CFN_EXP2: x = build_real (type, dconst2); break; CASE_CFN_EXP10: CASE_CFN_POW10: { REAL_VALUE_TYPE dconst10; real_from_integer (&dconst10, VOIDmode, 10, SIGNED); x = build_real (type, dconst10); } break; default: gcc_unreachable (); } gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3191, %s:%d\n", __FILE__, __LINE__); *res_code = MULT_EXPR; { tree ops1[1], res; ops1[0] = x; code_helper tem_code = CFN_BUILT_IN_LOG; tree tem_ops[3] = { ops1[0] }; gimple_resimplify1 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[0] = res; } res_ops[1] = captures[0]; gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } } } } break; } case CFN_BUILT_IN_SQRT: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { { /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (flag_unsafe_math_optimizations) { /* #line 3199 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (SCALAR_FLOAT_TYPE_P (type)) { { /* #line 3200 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree x; switch (CFN_BUILT_IN_SQRT) { CASE_CFN_SQRT: x = build_real (type, dconsthalf); break; CASE_CFN_CBRT: x = build_real_truncate (type, dconst_third ()); break; default: gcc_unreachable (); } gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3216, %s:%d\n", __FILE__, __LINE__); *res_code = MULT_EXPR; res_ops[0] = x; { tree ops1[1], res; ops1[0] = captures[0]; code_helper tem_code = CFN_BUILT_IN_LOG; tree tem_ops[3] = { ops1[0] }; gimple_resimplify1 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[1] = res; } gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } } } } break; } case CFN_BUILT_IN_CBRT: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { { /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (flag_unsafe_math_optimizations) { /* #line 3199 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (SCALAR_FLOAT_TYPE_P (type)) { { /* #line 3200 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree x; switch (CFN_BUILT_IN_CBRT) { CASE_CFN_SQRT: x = build_real (type, dconsthalf); break; CASE_CFN_CBRT: x = build_real_truncate (type, dconst_third ()); break; default: gcc_unreachable (); } gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3216, %s:%d\n", __FILE__, __LINE__); *res_code = MULT_EXPR; res_ops[0] = x; { tree ops1[1], res; ops1[0] = captures[0]; code_helper tem_code = CFN_BUILT_IN_LOG; tree tem_ops[3] = { ops1[0] }; gimple_resimplify1 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[1] = res; } gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } } } } break; } case CFN_BUILT_IN_POW: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_call_arg (def, 1); if ((o21 = do_valueize (valueize, o21))) { { /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 }; if (gimple_simplify_180 (res_code, res_ops, 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 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree op0) { switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gcall *def = dyn_cast (def_stmt)) switch (gimple_call_combined_fn (def)) { case CFN_BUILT_IN_EXPL: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { { /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (flag_unsafe_math_optimizations) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3152, %s:%d\n", __FILE__, __LINE__); res_ops[0] = captures[0]; *res_code = TREE_CODE (res_ops[0]); return true; } } } break; } case CFN_BUILT_IN_EXP2L: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { { /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (flag_unsafe_math_optimizations) { /* #line 3165 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (SCALAR_FLOAT_TYPE_P (type)) { { /* #line 3166 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree x; switch (CFN_BUILT_IN_EXP2L) { CASE_CFN_EXP: x = build_real_truncate (type, dconst_e ()); break; CASE_CFN_EXP2: x = build_real (type, dconst2); break; CASE_CFN_EXP10: CASE_CFN_POW10: { REAL_VALUE_TYPE dconst10; real_from_integer (&dconst10, VOIDmode, 10, SIGNED); x = build_real (type, dconst10); } break; default: gcc_unreachable (); } gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3191, %s:%d\n", __FILE__, __LINE__); *res_code = MULT_EXPR; { tree ops1[1], res; ops1[0] = x; code_helper tem_code = CFN_BUILT_IN_LOGL; tree tem_ops[3] = { ops1[0] }; gimple_resimplify1 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[0] = res; } res_ops[1] = captures[0]; gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } } } } break; } case CFN_BUILT_IN_EXP10L: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { { /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (flag_unsafe_math_optimizations) { /* #line 3165 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (SCALAR_FLOAT_TYPE_P (type)) { { /* #line 3166 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree x; switch (CFN_BUILT_IN_EXP10L) { CASE_CFN_EXP: x = build_real_truncate (type, dconst_e ()); break; CASE_CFN_EXP2: x = build_real (type, dconst2); break; CASE_CFN_EXP10: CASE_CFN_POW10: { REAL_VALUE_TYPE dconst10; real_from_integer (&dconst10, VOIDmode, 10, SIGNED); x = build_real (type, dconst10); } break; default: gcc_unreachable (); } gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3191, %s:%d\n", __FILE__, __LINE__); *res_code = MULT_EXPR; { tree ops1[1], res; ops1[0] = x; code_helper tem_code = CFN_BUILT_IN_LOGL; tree tem_ops[3] = { ops1[0] }; gimple_resimplify1 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[0] = res; } res_ops[1] = captures[0]; gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } } } } break; } case CFN_BUILT_IN_POW10L: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { { /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (flag_unsafe_math_optimizations) { /* #line 3165 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (SCALAR_FLOAT_TYPE_P (type)) { { /* #line 3166 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree x; switch (CFN_BUILT_IN_POW10L) { CASE_CFN_EXP: x = build_real_truncate (type, dconst_e ()); break; CASE_CFN_EXP2: x = build_real (type, dconst2); break; CASE_CFN_EXP10: CASE_CFN_POW10: { REAL_VALUE_TYPE dconst10; real_from_integer (&dconst10, VOIDmode, 10, SIGNED); x = build_real (type, dconst10); } break; default: gcc_unreachable (); } gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3191, %s:%d\n", __FILE__, __LINE__); *res_code = MULT_EXPR; { tree ops1[1], res; ops1[0] = x; code_helper tem_code = CFN_BUILT_IN_LOGL; tree tem_ops[3] = { ops1[0] }; gimple_resimplify1 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[0] = res; } res_ops[1] = captures[0]; gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } } } } break; } case CFN_BUILT_IN_SQRTL: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { { /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (flag_unsafe_math_optimizations) { /* #line 3199 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (SCALAR_FLOAT_TYPE_P (type)) { { /* #line 3200 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree x; switch (CFN_BUILT_IN_SQRTL) { CASE_CFN_SQRT: x = build_real (type, dconsthalf); break; CASE_CFN_CBRT: x = build_real_truncate (type, dconst_third ()); break; default: gcc_unreachable (); } gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3216, %s:%d\n", __FILE__, __LINE__); *res_code = MULT_EXPR; res_ops[0] = x; { tree ops1[1], res; ops1[0] = captures[0]; code_helper tem_code = CFN_BUILT_IN_LOGL; tree tem_ops[3] = { ops1[0] }; gimple_resimplify1 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[1] = res; } gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } } } } break; } case CFN_BUILT_IN_CBRTL: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { { /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (flag_unsafe_math_optimizations) { /* #line 3199 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (SCALAR_FLOAT_TYPE_P (type)) { { /* #line 3200 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree x; switch (CFN_BUILT_IN_CBRTL) { CASE_CFN_SQRT: x = build_real (type, dconsthalf); break; CASE_CFN_CBRT: x = build_real_truncate (type, dconst_third ()); break; default: gcc_unreachable (); } gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3216, %s:%d\n", __FILE__, __LINE__); *res_code = MULT_EXPR; res_ops[0] = x; { tree ops1[1], res; ops1[0] = captures[0]; code_helper tem_code = CFN_BUILT_IN_LOGL; tree tem_ops[3] = { ops1[0] }; gimple_resimplify1 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[1] = res; } gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } } } } break; } case CFN_BUILT_IN_POWL: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_call_arg (def, 1); if ((o21 = do_valueize (valueize, o21))) { { /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 }; if (gimple_simplify_180 (res_code, res_ops, 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 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree op0) { switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gcall *def = dyn_cast (def_stmt)) switch (gimple_call_combined_fn (def)) { case CFN_EXP: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { { /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (flag_unsafe_math_optimizations) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3152, %s:%d\n", __FILE__, __LINE__); res_ops[0] = captures[0]; *res_code = TREE_CODE (res_ops[0]); return true; } } } break; } case CFN_EXP2: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { { /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (flag_unsafe_math_optimizations) { /* #line 3165 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (SCALAR_FLOAT_TYPE_P (type)) { { /* #line 3166 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree x; switch (CFN_EXP2) { CASE_CFN_EXP: x = build_real_truncate (type, dconst_e ()); break; CASE_CFN_EXP2: x = build_real (type, dconst2); break; CASE_CFN_EXP10: CASE_CFN_POW10: { REAL_VALUE_TYPE dconst10; real_from_integer (&dconst10, VOIDmode, 10, SIGNED); x = build_real (type, dconst10); } break; default: gcc_unreachable (); } gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3191, %s:%d\n", __FILE__, __LINE__); *res_code = MULT_EXPR; { tree ops1[1], res; ops1[0] = x; code_helper tem_code = CFN_LOG; tree tem_ops[3] = { ops1[0] }; gimple_resimplify1 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[0] = res; } res_ops[1] = captures[0]; gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } } } } break; } case CFN_EXP10: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { { /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (flag_unsafe_math_optimizations) { /* #line 3165 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (SCALAR_FLOAT_TYPE_P (type)) { { /* #line 3166 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree x; switch (CFN_EXP10) { CASE_CFN_EXP: x = build_real_truncate (type, dconst_e ()); break; CASE_CFN_EXP2: x = build_real (type, dconst2); break; CASE_CFN_EXP10: CASE_CFN_POW10: { REAL_VALUE_TYPE dconst10; real_from_integer (&dconst10, VOIDmode, 10, SIGNED); x = build_real (type, dconst10); } break; default: gcc_unreachable (); } gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3191, %s:%d\n", __FILE__, __LINE__); *res_code = MULT_EXPR; { tree ops1[1], res; ops1[0] = x; code_helper tem_code = CFN_LOG; tree tem_ops[3] = { ops1[0] }; gimple_resimplify1 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[0] = res; } res_ops[1] = captures[0]; gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } } } } break; } case CFN_SQRT: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { { /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (flag_unsafe_math_optimizations) { /* #line 3199 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (SCALAR_FLOAT_TYPE_P (type)) { { /* #line 3200 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree x; switch (CFN_SQRT) { CASE_CFN_SQRT: x = build_real (type, dconsthalf); break; CASE_CFN_CBRT: x = build_real_truncate (type, dconst_third ()); break; default: gcc_unreachable (); } gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3216, %s:%d\n", __FILE__, __LINE__); *res_code = MULT_EXPR; res_ops[0] = x; { tree ops1[1], res; ops1[0] = captures[0]; code_helper tem_code = CFN_LOG; tree tem_ops[3] = { ops1[0] }; gimple_resimplify1 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[1] = res; } gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } } } } break; } case CFN_POW: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_call_arg (def, 1); if ((o21 = do_valueize (valueize, o21))) { { /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 }; if (gimple_simplify_180 (res_code, res_ops, seq, valueize, type, captures, CFN_LOG, CFN_POW)) return true; } } } break; } default:; } } break; default:; } return false; } static bool gimple_simplify_CFN_BUILT_IN_LOG2F (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree op0) { switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gcall *def = dyn_cast (def_stmt)) switch (gimple_call_combined_fn (def)) { case CFN_BUILT_IN_EXP2F: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { { /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (flag_unsafe_math_optimizations) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3152, %s:%d\n", __FILE__, __LINE__); res_ops[0] = captures[0]; *res_code = TREE_CODE (res_ops[0]); return true; } } } break; } case CFN_BUILT_IN_EXPF: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { { /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (flag_unsafe_math_optimizations) { /* #line 3165 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (SCALAR_FLOAT_TYPE_P (type)) { { /* #line 3166 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree x; switch (CFN_BUILT_IN_EXPF) { CASE_CFN_EXP: x = build_real_truncate (type, dconst_e ()); break; CASE_CFN_EXP2: x = build_real (type, dconst2); break; CASE_CFN_EXP10: CASE_CFN_POW10: { REAL_VALUE_TYPE dconst10; real_from_integer (&dconst10, VOIDmode, 10, SIGNED); x = build_real (type, dconst10); } break; default: gcc_unreachable (); } gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3191, %s:%d\n", __FILE__, __LINE__); *res_code = MULT_EXPR; { tree ops1[1], res; ops1[0] = x; code_helper tem_code = CFN_BUILT_IN_LOG2F; tree tem_ops[3] = { ops1[0] }; gimple_resimplify1 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[0] = res; } res_ops[1] = captures[0]; gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } } } } break; } case CFN_BUILT_IN_EXP10F: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { { /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (flag_unsafe_math_optimizations) { /* #line 3165 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (SCALAR_FLOAT_TYPE_P (type)) { { /* #line 3166 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree x; switch (CFN_BUILT_IN_EXP10F) { CASE_CFN_EXP: x = build_real_truncate (type, dconst_e ()); break; CASE_CFN_EXP2: x = build_real (type, dconst2); break; CASE_CFN_EXP10: CASE_CFN_POW10: { REAL_VALUE_TYPE dconst10; real_from_integer (&dconst10, VOIDmode, 10, SIGNED); x = build_real (type, dconst10); } break; default: gcc_unreachable (); } gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3191, %s:%d\n", __FILE__, __LINE__); *res_code = MULT_EXPR; { tree ops1[1], res; ops1[0] = x; code_helper tem_code = CFN_BUILT_IN_LOG2F; tree tem_ops[3] = { ops1[0] }; gimple_resimplify1 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[0] = res; } res_ops[1] = captures[0]; gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } } } } break; } case CFN_BUILT_IN_POW10F: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { { /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (flag_unsafe_math_optimizations) { /* #line 3165 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (SCALAR_FLOAT_TYPE_P (type)) { { /* #line 3166 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree x; switch (CFN_BUILT_IN_POW10F) { CASE_CFN_EXP: x = build_real_truncate (type, dconst_e ()); break; CASE_CFN_EXP2: x = build_real (type, dconst2); break; CASE_CFN_EXP10: CASE_CFN_POW10: { REAL_VALUE_TYPE dconst10; real_from_integer (&dconst10, VOIDmode, 10, SIGNED); x = build_real (type, dconst10); } break; default: gcc_unreachable (); } gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3191, %s:%d\n", __FILE__, __LINE__); *res_code = MULT_EXPR; { tree ops1[1], res; ops1[0] = x; code_helper tem_code = CFN_BUILT_IN_LOG2F; tree tem_ops[3] = { ops1[0] }; gimple_resimplify1 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[0] = res; } res_ops[1] = captures[0]; gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } } } } break; } case CFN_BUILT_IN_SQRTF: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { { /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (flag_unsafe_math_optimizations) { /* #line 3199 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (SCALAR_FLOAT_TYPE_P (type)) { { /* #line 3200 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree x; switch (CFN_BUILT_IN_SQRTF) { CASE_CFN_SQRT: x = build_real (type, dconsthalf); break; CASE_CFN_CBRT: x = build_real_truncate (type, dconst_third ()); break; default: gcc_unreachable (); } gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3216, %s:%d\n", __FILE__, __LINE__); *res_code = MULT_EXPR; res_ops[0] = x; { tree ops1[1], res; ops1[0] = captures[0]; code_helper tem_code = CFN_BUILT_IN_LOG2F; tree tem_ops[3] = { ops1[0] }; gimple_resimplify1 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[1] = res; } gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } } } } break; } case CFN_BUILT_IN_CBRTF: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { { /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (flag_unsafe_math_optimizations) { /* #line 3199 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (SCALAR_FLOAT_TYPE_P (type)) { { /* #line 3200 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree x; switch (CFN_BUILT_IN_CBRTF) { CASE_CFN_SQRT: x = build_real (type, dconsthalf); break; CASE_CFN_CBRT: x = build_real_truncate (type, dconst_third ()); break; default: gcc_unreachable (); } gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3216, %s:%d\n", __FILE__, __LINE__); *res_code = MULT_EXPR; res_ops[0] = x; { tree ops1[1], res; ops1[0] = captures[0]; code_helper tem_code = CFN_BUILT_IN_LOG2F; tree tem_ops[3] = { ops1[0] }; gimple_resimplify1 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[1] = res; } gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } } } } break; } case CFN_BUILT_IN_POWF: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_call_arg (def, 1); if ((o21 = do_valueize (valueize, o21))) { { /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 }; if (gimple_simplify_180 (res_code, res_ops, 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 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree op0) { switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gcall *def = dyn_cast (def_stmt)) switch (gimple_call_combined_fn (def)) { case CFN_BUILT_IN_EXP2: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { { /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (flag_unsafe_math_optimizations) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3152, %s:%d\n", __FILE__, __LINE__); res_ops[0] = captures[0]; *res_code = TREE_CODE (res_ops[0]); return true; } } } break; } case CFN_BUILT_IN_EXP: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { { /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (flag_unsafe_math_optimizations) { /* #line 3165 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (SCALAR_FLOAT_TYPE_P (type)) { { /* #line 3166 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree x; switch (CFN_BUILT_IN_EXP) { CASE_CFN_EXP: x = build_real_truncate (type, dconst_e ()); break; CASE_CFN_EXP2: x = build_real (type, dconst2); break; CASE_CFN_EXP10: CASE_CFN_POW10: { REAL_VALUE_TYPE dconst10; real_from_integer (&dconst10, VOIDmode, 10, SIGNED); x = build_real (type, dconst10); } break; default: gcc_unreachable (); } gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3191, %s:%d\n", __FILE__, __LINE__); *res_code = MULT_EXPR; { tree ops1[1], res; ops1[0] = x; code_helper tem_code = CFN_BUILT_IN_LOG2; tree tem_ops[3] = { ops1[0] }; gimple_resimplify1 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[0] = res; } res_ops[1] = captures[0]; gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } } } } break; } case CFN_BUILT_IN_EXP10: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { { /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (flag_unsafe_math_optimizations) { /* #line 3165 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (SCALAR_FLOAT_TYPE_P (type)) { { /* #line 3166 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree x; switch (CFN_BUILT_IN_EXP10) { CASE_CFN_EXP: x = build_real_truncate (type, dconst_e ()); break; CASE_CFN_EXP2: x = build_real (type, dconst2); break; CASE_CFN_EXP10: CASE_CFN_POW10: { REAL_VALUE_TYPE dconst10; real_from_integer (&dconst10, VOIDmode, 10, SIGNED); x = build_real (type, dconst10); } break; default: gcc_unreachable (); } gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3191, %s:%d\n", __FILE__, __LINE__); *res_code = MULT_EXPR; { tree ops1[1], res; ops1[0] = x; code_helper tem_code = CFN_BUILT_IN_LOG2; tree tem_ops[3] = { ops1[0] }; gimple_resimplify1 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[0] = res; } res_ops[1] = captures[0]; gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } } } } break; } case CFN_BUILT_IN_POW10: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { { /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (flag_unsafe_math_optimizations) { /* #line 3165 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (SCALAR_FLOAT_TYPE_P (type)) { { /* #line 3166 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree x; switch (CFN_BUILT_IN_POW10) { CASE_CFN_EXP: x = build_real_truncate (type, dconst_e ()); break; CASE_CFN_EXP2: x = build_real (type, dconst2); break; CASE_CFN_EXP10: CASE_CFN_POW10: { REAL_VALUE_TYPE dconst10; real_from_integer (&dconst10, VOIDmode, 10, SIGNED); x = build_real (type, dconst10); } break; default: gcc_unreachable (); } gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3191, %s:%d\n", __FILE__, __LINE__); *res_code = MULT_EXPR; { tree ops1[1], res; ops1[0] = x; code_helper tem_code = CFN_BUILT_IN_LOG2; tree tem_ops[3] = { ops1[0] }; gimple_resimplify1 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[0] = res; } res_ops[1] = captures[0]; gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } } } } break; } case CFN_BUILT_IN_SQRT: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { { /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (flag_unsafe_math_optimizations) { /* #line 3199 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (SCALAR_FLOAT_TYPE_P (type)) { { /* #line 3200 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree x; switch (CFN_BUILT_IN_SQRT) { CASE_CFN_SQRT: x = build_real (type, dconsthalf); break; CASE_CFN_CBRT: x = build_real_truncate (type, dconst_third ()); break; default: gcc_unreachable (); } gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3216, %s:%d\n", __FILE__, __LINE__); *res_code = MULT_EXPR; res_ops[0] = x; { tree ops1[1], res; ops1[0] = captures[0]; code_helper tem_code = CFN_BUILT_IN_LOG2; tree tem_ops[3] = { ops1[0] }; gimple_resimplify1 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[1] = res; } gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } } } } break; } case CFN_BUILT_IN_CBRT: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { { /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (flag_unsafe_math_optimizations) { /* #line 3199 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (SCALAR_FLOAT_TYPE_P (type)) { { /* #line 3200 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree x; switch (CFN_BUILT_IN_CBRT) { CASE_CFN_SQRT: x = build_real (type, dconsthalf); break; CASE_CFN_CBRT: x = build_real_truncate (type, dconst_third ()); break; default: gcc_unreachable (); } gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3216, %s:%d\n", __FILE__, __LINE__); *res_code = MULT_EXPR; res_ops[0] = x; { tree ops1[1], res; ops1[0] = captures[0]; code_helper tem_code = CFN_BUILT_IN_LOG2; tree tem_ops[3] = { ops1[0] }; gimple_resimplify1 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[1] = res; } gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } } } } break; } case CFN_BUILT_IN_POW: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_call_arg (def, 1); if ((o21 = do_valueize (valueize, o21))) { { /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 }; if (gimple_simplify_180 (res_code, res_ops, 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 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree op0) { switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gcall *def = dyn_cast (def_stmt)) switch (gimple_call_combined_fn (def)) { case CFN_BUILT_IN_EXP2L: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { { /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (flag_unsafe_math_optimizations) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3152, %s:%d\n", __FILE__, __LINE__); res_ops[0] = captures[0]; *res_code = TREE_CODE (res_ops[0]); return true; } } } break; } case CFN_BUILT_IN_EXPL: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { { /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (flag_unsafe_math_optimizations) { /* #line 3165 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (SCALAR_FLOAT_TYPE_P (type)) { { /* #line 3166 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree x; switch (CFN_BUILT_IN_EXPL) { CASE_CFN_EXP: x = build_real_truncate (type, dconst_e ()); break; CASE_CFN_EXP2: x = build_real (type, dconst2); break; CASE_CFN_EXP10: CASE_CFN_POW10: { REAL_VALUE_TYPE dconst10; real_from_integer (&dconst10, VOIDmode, 10, SIGNED); x = build_real (type, dconst10); } break; default: gcc_unreachable (); } gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3191, %s:%d\n", __FILE__, __LINE__); *res_code = MULT_EXPR; { tree ops1[1], res; ops1[0] = x; code_helper tem_code = CFN_BUILT_IN_LOG2L; tree tem_ops[3] = { ops1[0] }; gimple_resimplify1 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[0] = res; } res_ops[1] = captures[0]; gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } } } } break; } case CFN_BUILT_IN_EXP10L: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { { /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (flag_unsafe_math_optimizations) { /* #line 3165 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (SCALAR_FLOAT_TYPE_P (type)) { { /* #line 3166 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree x; switch (CFN_BUILT_IN_EXP10L) { CASE_CFN_EXP: x = build_real_truncate (type, dconst_e ()); break; CASE_CFN_EXP2: x = build_real (type, dconst2); break; CASE_CFN_EXP10: CASE_CFN_POW10: { REAL_VALUE_TYPE dconst10; real_from_integer (&dconst10, VOIDmode, 10, SIGNED); x = build_real (type, dconst10); } break; default: gcc_unreachable (); } gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3191, %s:%d\n", __FILE__, __LINE__); *res_code = MULT_EXPR; { tree ops1[1], res; ops1[0] = x; code_helper tem_code = CFN_BUILT_IN_LOG2L; tree tem_ops[3] = { ops1[0] }; gimple_resimplify1 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[0] = res; } res_ops[1] = captures[0]; gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } } } } break; } case CFN_BUILT_IN_POW10L: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { { /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (flag_unsafe_math_optimizations) { /* #line 3165 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (SCALAR_FLOAT_TYPE_P (type)) { { /* #line 3166 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree x; switch (CFN_BUILT_IN_POW10L) { CASE_CFN_EXP: x = build_real_truncate (type, dconst_e ()); break; CASE_CFN_EXP2: x = build_real (type, dconst2); break; CASE_CFN_EXP10: CASE_CFN_POW10: { REAL_VALUE_TYPE dconst10; real_from_integer (&dconst10, VOIDmode, 10, SIGNED); x = build_real (type, dconst10); } break; default: gcc_unreachable (); } gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3191, %s:%d\n", __FILE__, __LINE__); *res_code = MULT_EXPR; { tree ops1[1], res; ops1[0] = x; code_helper tem_code = CFN_BUILT_IN_LOG2L; tree tem_ops[3] = { ops1[0] }; gimple_resimplify1 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[0] = res; } res_ops[1] = captures[0]; gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } } } } break; } case CFN_BUILT_IN_SQRTL: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { { /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (flag_unsafe_math_optimizations) { /* #line 3199 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (SCALAR_FLOAT_TYPE_P (type)) { { /* #line 3200 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree x; switch (CFN_BUILT_IN_SQRTL) { CASE_CFN_SQRT: x = build_real (type, dconsthalf); break; CASE_CFN_CBRT: x = build_real_truncate (type, dconst_third ()); break; default: gcc_unreachable (); } gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3216, %s:%d\n", __FILE__, __LINE__); *res_code = MULT_EXPR; res_ops[0] = x; { tree ops1[1], res; ops1[0] = captures[0]; code_helper tem_code = CFN_BUILT_IN_LOG2L; tree tem_ops[3] = { ops1[0] }; gimple_resimplify1 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[1] = res; } gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } } } } break; } case CFN_BUILT_IN_CBRTL: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { { /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (flag_unsafe_math_optimizations) { /* #line 3199 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (SCALAR_FLOAT_TYPE_P (type)) { { /* #line 3200 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree x; switch (CFN_BUILT_IN_CBRTL) { CASE_CFN_SQRT: x = build_real (type, dconsthalf); break; CASE_CFN_CBRT: x = build_real_truncate (type, dconst_third ()); break; default: gcc_unreachable (); } gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3216, %s:%d\n", __FILE__, __LINE__); *res_code = MULT_EXPR; res_ops[0] = x; { tree ops1[1], res; ops1[0] = captures[0]; code_helper tem_code = CFN_BUILT_IN_LOG2L; tree tem_ops[3] = { ops1[0] }; gimple_resimplify1 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[1] = res; } gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } } } } break; } case CFN_BUILT_IN_POWL: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_call_arg (def, 1); if ((o21 = do_valueize (valueize, o21))) { { /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 }; if (gimple_simplify_180 (res_code, res_ops, 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 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree op0) { switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gcall *def = dyn_cast (def_stmt)) switch (gimple_call_combined_fn (def)) { case CFN_EXP2: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { { /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (flag_unsafe_math_optimizations) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3152, %s:%d\n", __FILE__, __LINE__); res_ops[0] = captures[0]; *res_code = TREE_CODE (res_ops[0]); return true; } } } break; } case CFN_EXP: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { { /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (flag_unsafe_math_optimizations) { /* #line 3165 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (SCALAR_FLOAT_TYPE_P (type)) { { /* #line 3166 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree x; switch (CFN_EXP) { CASE_CFN_EXP: x = build_real_truncate (type, dconst_e ()); break; CASE_CFN_EXP2: x = build_real (type, dconst2); break; CASE_CFN_EXP10: CASE_CFN_POW10: { REAL_VALUE_TYPE dconst10; real_from_integer (&dconst10, VOIDmode, 10, SIGNED); x = build_real (type, dconst10); } break; default: gcc_unreachable (); } gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3191, %s:%d\n", __FILE__, __LINE__); *res_code = MULT_EXPR; { tree ops1[1], res; ops1[0] = x; code_helper tem_code = CFN_LOG2; tree tem_ops[3] = { ops1[0] }; gimple_resimplify1 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[0] = res; } res_ops[1] = captures[0]; gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } } } } break; } case CFN_EXP10: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { { /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (flag_unsafe_math_optimizations) { /* #line 3165 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (SCALAR_FLOAT_TYPE_P (type)) { { /* #line 3166 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree x; switch (CFN_EXP10) { CASE_CFN_EXP: x = build_real_truncate (type, dconst_e ()); break; CASE_CFN_EXP2: x = build_real (type, dconst2); break; CASE_CFN_EXP10: CASE_CFN_POW10: { REAL_VALUE_TYPE dconst10; real_from_integer (&dconst10, VOIDmode, 10, SIGNED); x = build_real (type, dconst10); } break; default: gcc_unreachable (); } gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3191, %s:%d\n", __FILE__, __LINE__); *res_code = MULT_EXPR; { tree ops1[1], res; ops1[0] = x; code_helper tem_code = CFN_LOG2; tree tem_ops[3] = { ops1[0] }; gimple_resimplify1 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[0] = res; } res_ops[1] = captures[0]; gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } } } } break; } case CFN_SQRT: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { { /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (flag_unsafe_math_optimizations) { /* #line 3199 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (SCALAR_FLOAT_TYPE_P (type)) { { /* #line 3200 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree x; switch (CFN_SQRT) { CASE_CFN_SQRT: x = build_real (type, dconsthalf); break; CASE_CFN_CBRT: x = build_real_truncate (type, dconst_third ()); break; default: gcc_unreachable (); } gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3216, %s:%d\n", __FILE__, __LINE__); *res_code = MULT_EXPR; res_ops[0] = x; { tree ops1[1], res; ops1[0] = captures[0]; code_helper tem_code = CFN_LOG2; tree tem_ops[3] = { ops1[0] }; gimple_resimplify1 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[1] = res; } gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } } } } break; } case CFN_POW: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_call_arg (def, 1); if ((o21 = do_valueize (valueize, o21))) { { /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 }; if (gimple_simplify_180 (res_code, res_ops, seq, valueize, type, captures, CFN_LOG2, CFN_POW)) return true; } } } break; } default:; } } break; default:; } return false; } static bool gimple_simplify_CFN_BUILT_IN_LOG10F (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree op0) { switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gcall *def = dyn_cast (def_stmt)) switch (gimple_call_combined_fn (def)) { case CFN_BUILT_IN_EXP10F: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { { /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (flag_unsafe_math_optimizations) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3152, %s:%d\n", __FILE__, __LINE__); res_ops[0] = captures[0]; *res_code = TREE_CODE (res_ops[0]); return true; } } } break; } case CFN_BUILT_IN_POW10F: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { { /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (flag_unsafe_math_optimizations) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3152, %s:%d\n", __FILE__, __LINE__); res_ops[0] = captures[0]; *res_code = TREE_CODE (res_ops[0]); return true; } } } break; } case CFN_BUILT_IN_EXPF: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { { /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (flag_unsafe_math_optimizations) { /* #line 3165 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (SCALAR_FLOAT_TYPE_P (type)) { { /* #line 3166 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree x; switch (CFN_BUILT_IN_EXPF) { CASE_CFN_EXP: x = build_real_truncate (type, dconst_e ()); break; CASE_CFN_EXP2: x = build_real (type, dconst2); break; CASE_CFN_EXP10: CASE_CFN_POW10: { REAL_VALUE_TYPE dconst10; real_from_integer (&dconst10, VOIDmode, 10, SIGNED); x = build_real (type, dconst10); } break; default: gcc_unreachable (); } gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3191, %s:%d\n", __FILE__, __LINE__); *res_code = MULT_EXPR; { tree ops1[1], res; ops1[0] = x; code_helper tem_code = CFN_BUILT_IN_LOG10F; tree tem_ops[3] = { ops1[0] }; gimple_resimplify1 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[0] = res; } res_ops[1] = captures[0]; gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } } } } break; } case CFN_BUILT_IN_EXP2F: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { { /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (flag_unsafe_math_optimizations) { /* #line 3165 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (SCALAR_FLOAT_TYPE_P (type)) { { /* #line 3166 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree x; switch (CFN_BUILT_IN_EXP2F) { CASE_CFN_EXP: x = build_real_truncate (type, dconst_e ()); break; CASE_CFN_EXP2: x = build_real (type, dconst2); break; CASE_CFN_EXP10: CASE_CFN_POW10: { REAL_VALUE_TYPE dconst10; real_from_integer (&dconst10, VOIDmode, 10, SIGNED); x = build_real (type, dconst10); } break; default: gcc_unreachable (); } gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3191, %s:%d\n", __FILE__, __LINE__); *res_code = MULT_EXPR; { tree ops1[1], res; ops1[0] = x; code_helper tem_code = CFN_BUILT_IN_LOG10F; tree tem_ops[3] = { ops1[0] }; gimple_resimplify1 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[0] = res; } res_ops[1] = captures[0]; gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } } } } break; } case CFN_BUILT_IN_SQRTF: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { { /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (flag_unsafe_math_optimizations) { /* #line 3199 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (SCALAR_FLOAT_TYPE_P (type)) { { /* #line 3200 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree x; switch (CFN_BUILT_IN_SQRTF) { CASE_CFN_SQRT: x = build_real (type, dconsthalf); break; CASE_CFN_CBRT: x = build_real_truncate (type, dconst_third ()); break; default: gcc_unreachable (); } gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3216, %s:%d\n", __FILE__, __LINE__); *res_code = MULT_EXPR; res_ops[0] = x; { tree ops1[1], res; ops1[0] = captures[0]; code_helper tem_code = CFN_BUILT_IN_LOG10F; tree tem_ops[3] = { ops1[0] }; gimple_resimplify1 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[1] = res; } gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } } } } break; } case CFN_BUILT_IN_CBRTF: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { { /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (flag_unsafe_math_optimizations) { /* #line 3199 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (SCALAR_FLOAT_TYPE_P (type)) { { /* #line 3200 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree x; switch (CFN_BUILT_IN_CBRTF) { CASE_CFN_SQRT: x = build_real (type, dconsthalf); break; CASE_CFN_CBRT: x = build_real_truncate (type, dconst_third ()); break; default: gcc_unreachable (); } gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3216, %s:%d\n", __FILE__, __LINE__); *res_code = MULT_EXPR; res_ops[0] = x; { tree ops1[1], res; ops1[0] = captures[0]; code_helper tem_code = CFN_BUILT_IN_LOG10F; tree tem_ops[3] = { ops1[0] }; gimple_resimplify1 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[1] = res; } gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } } } } break; } case CFN_BUILT_IN_POWF: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_call_arg (def, 1); if ((o21 = do_valueize (valueize, o21))) { { /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 }; if (gimple_simplify_180 (res_code, res_ops, 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 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree op0) { switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gcall *def = dyn_cast (def_stmt)) switch (gimple_call_combined_fn (def)) { case CFN_BUILT_IN_EXP10: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { { /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (flag_unsafe_math_optimizations) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3152, %s:%d\n", __FILE__, __LINE__); res_ops[0] = captures[0]; *res_code = TREE_CODE (res_ops[0]); return true; } } } break; } case CFN_BUILT_IN_POW10: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { { /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (flag_unsafe_math_optimizations) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3152, %s:%d\n", __FILE__, __LINE__); res_ops[0] = captures[0]; *res_code = TREE_CODE (res_ops[0]); return true; } } } break; } case CFN_BUILT_IN_EXP: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { { /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (flag_unsafe_math_optimizations) { /* #line 3165 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (SCALAR_FLOAT_TYPE_P (type)) { { /* #line 3166 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree x; switch (CFN_BUILT_IN_EXP) { CASE_CFN_EXP: x = build_real_truncate (type, dconst_e ()); break; CASE_CFN_EXP2: x = build_real (type, dconst2); break; CASE_CFN_EXP10: CASE_CFN_POW10: { REAL_VALUE_TYPE dconst10; real_from_integer (&dconst10, VOIDmode, 10, SIGNED); x = build_real (type, dconst10); } break; default: gcc_unreachable (); } gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3191, %s:%d\n", __FILE__, __LINE__); *res_code = MULT_EXPR; { tree ops1[1], res; ops1[0] = x; code_helper tem_code = CFN_BUILT_IN_LOG10; tree tem_ops[3] = { ops1[0] }; gimple_resimplify1 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[0] = res; } res_ops[1] = captures[0]; gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } } } } break; } case CFN_BUILT_IN_EXP2: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { { /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (flag_unsafe_math_optimizations) { /* #line 3165 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (SCALAR_FLOAT_TYPE_P (type)) { { /* #line 3166 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree x; switch (CFN_BUILT_IN_EXP2) { CASE_CFN_EXP: x = build_real_truncate (type, dconst_e ()); break; CASE_CFN_EXP2: x = build_real (type, dconst2); break; CASE_CFN_EXP10: CASE_CFN_POW10: { REAL_VALUE_TYPE dconst10; real_from_integer (&dconst10, VOIDmode, 10, SIGNED); x = build_real (type, dconst10); } break; default: gcc_unreachable (); } gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3191, %s:%d\n", __FILE__, __LINE__); *res_code = MULT_EXPR; { tree ops1[1], res; ops1[0] = x; code_helper tem_code = CFN_BUILT_IN_LOG10; tree tem_ops[3] = { ops1[0] }; gimple_resimplify1 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[0] = res; } res_ops[1] = captures[0]; gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } } } } break; } case CFN_BUILT_IN_SQRT: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { { /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (flag_unsafe_math_optimizations) { /* #line 3199 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (SCALAR_FLOAT_TYPE_P (type)) { { /* #line 3200 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree x; switch (CFN_BUILT_IN_SQRT) { CASE_CFN_SQRT: x = build_real (type, dconsthalf); break; CASE_CFN_CBRT: x = build_real_truncate (type, dconst_third ()); break; default: gcc_unreachable (); } gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3216, %s:%d\n", __FILE__, __LINE__); *res_code = MULT_EXPR; res_ops[0] = x; { tree ops1[1], res; ops1[0] = captures[0]; code_helper tem_code = CFN_BUILT_IN_LOG10; tree tem_ops[3] = { ops1[0] }; gimple_resimplify1 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[1] = res; } gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } } } } break; } case CFN_BUILT_IN_CBRT: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { { /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (flag_unsafe_math_optimizations) { /* #line 3199 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (SCALAR_FLOAT_TYPE_P (type)) { { /* #line 3200 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree x; switch (CFN_BUILT_IN_CBRT) { CASE_CFN_SQRT: x = build_real (type, dconsthalf); break; CASE_CFN_CBRT: x = build_real_truncate (type, dconst_third ()); break; default: gcc_unreachable (); } gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3216, %s:%d\n", __FILE__, __LINE__); *res_code = MULT_EXPR; res_ops[0] = x; { tree ops1[1], res; ops1[0] = captures[0]; code_helper tem_code = CFN_BUILT_IN_LOG10; tree tem_ops[3] = { ops1[0] }; gimple_resimplify1 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[1] = res; } gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } } } } break; } case CFN_BUILT_IN_POW: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_call_arg (def, 1); if ((o21 = do_valueize (valueize, o21))) { { /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 }; if (gimple_simplify_180 (res_code, res_ops, 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 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree op0) { switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gcall *def = dyn_cast (def_stmt)) switch (gimple_call_combined_fn (def)) { case CFN_BUILT_IN_EXP10L: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { { /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (flag_unsafe_math_optimizations) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3152, %s:%d\n", __FILE__, __LINE__); res_ops[0] = captures[0]; *res_code = TREE_CODE (res_ops[0]); return true; } } } break; } case CFN_BUILT_IN_POW10L: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { { /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (flag_unsafe_math_optimizations) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3152, %s:%d\n", __FILE__, __LINE__); res_ops[0] = captures[0]; *res_code = TREE_CODE (res_ops[0]); return true; } } } break; } case CFN_BUILT_IN_EXPL: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { { /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (flag_unsafe_math_optimizations) { /* #line 3165 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (SCALAR_FLOAT_TYPE_P (type)) { { /* #line 3166 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree x; switch (CFN_BUILT_IN_EXPL) { CASE_CFN_EXP: x = build_real_truncate (type, dconst_e ()); break; CASE_CFN_EXP2: x = build_real (type, dconst2); break; CASE_CFN_EXP10: CASE_CFN_POW10: { REAL_VALUE_TYPE dconst10; real_from_integer (&dconst10, VOIDmode, 10, SIGNED); x = build_real (type, dconst10); } break; default: gcc_unreachable (); } gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3191, %s:%d\n", __FILE__, __LINE__); *res_code = MULT_EXPR; { tree ops1[1], res; ops1[0] = x; code_helper tem_code = CFN_BUILT_IN_LOG10L; tree tem_ops[3] = { ops1[0] }; gimple_resimplify1 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[0] = res; } res_ops[1] = captures[0]; gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } } } } break; } case CFN_BUILT_IN_EXP2L: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { { /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (flag_unsafe_math_optimizations) { /* #line 3165 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (SCALAR_FLOAT_TYPE_P (type)) { { /* #line 3166 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree x; switch (CFN_BUILT_IN_EXP2L) { CASE_CFN_EXP: x = build_real_truncate (type, dconst_e ()); break; CASE_CFN_EXP2: x = build_real (type, dconst2); break; CASE_CFN_EXP10: CASE_CFN_POW10: { REAL_VALUE_TYPE dconst10; real_from_integer (&dconst10, VOIDmode, 10, SIGNED); x = build_real (type, dconst10); } break; default: gcc_unreachable (); } gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3191, %s:%d\n", __FILE__, __LINE__); *res_code = MULT_EXPR; { tree ops1[1], res; ops1[0] = x; code_helper tem_code = CFN_BUILT_IN_LOG10L; tree tem_ops[3] = { ops1[0] }; gimple_resimplify1 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[0] = res; } res_ops[1] = captures[0]; gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } } } } break; } case CFN_BUILT_IN_SQRTL: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { { /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (flag_unsafe_math_optimizations) { /* #line 3199 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (SCALAR_FLOAT_TYPE_P (type)) { { /* #line 3200 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree x; switch (CFN_BUILT_IN_SQRTL) { CASE_CFN_SQRT: x = build_real (type, dconsthalf); break; CASE_CFN_CBRT: x = build_real_truncate (type, dconst_third ()); break; default: gcc_unreachable (); } gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3216, %s:%d\n", __FILE__, __LINE__); *res_code = MULT_EXPR; res_ops[0] = x; { tree ops1[1], res; ops1[0] = captures[0]; code_helper tem_code = CFN_BUILT_IN_LOG10L; tree tem_ops[3] = { ops1[0] }; gimple_resimplify1 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[1] = res; } gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } } } } break; } case CFN_BUILT_IN_CBRTL: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { { /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (flag_unsafe_math_optimizations) { /* #line 3199 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (SCALAR_FLOAT_TYPE_P (type)) { { /* #line 3200 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree x; switch (CFN_BUILT_IN_CBRTL) { CASE_CFN_SQRT: x = build_real (type, dconsthalf); break; CASE_CFN_CBRT: x = build_real_truncate (type, dconst_third ()); break; default: gcc_unreachable (); } gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3216, %s:%d\n", __FILE__, __LINE__); *res_code = MULT_EXPR; res_ops[0] = x; { tree ops1[1], res; ops1[0] = captures[0]; code_helper tem_code = CFN_BUILT_IN_LOG10L; tree tem_ops[3] = { ops1[0] }; gimple_resimplify1 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[1] = res; } gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } } } } break; } case CFN_BUILT_IN_POWL: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_call_arg (def, 1); if ((o21 = do_valueize (valueize, o21))) { { /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 }; if (gimple_simplify_180 (res_code, res_ops, 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 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree op0) { switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gcall *def = dyn_cast (def_stmt)) switch (gimple_call_combined_fn (def)) { case CFN_EXP10: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { { /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (flag_unsafe_math_optimizations) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3152, %s:%d\n", __FILE__, __LINE__); res_ops[0] = captures[0]; *res_code = TREE_CODE (res_ops[0]); return true; } } } break; } case CFN_EXP: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { { /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (flag_unsafe_math_optimizations) { /* #line 3165 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (SCALAR_FLOAT_TYPE_P (type)) { { /* #line 3166 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree x; switch (CFN_EXP) { CASE_CFN_EXP: x = build_real_truncate (type, dconst_e ()); break; CASE_CFN_EXP2: x = build_real (type, dconst2); break; CASE_CFN_EXP10: CASE_CFN_POW10: { REAL_VALUE_TYPE dconst10; real_from_integer (&dconst10, VOIDmode, 10, SIGNED); x = build_real (type, dconst10); } break; default: gcc_unreachable (); } gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3191, %s:%d\n", __FILE__, __LINE__); *res_code = MULT_EXPR; { tree ops1[1], res; ops1[0] = x; code_helper tem_code = CFN_LOG10; tree tem_ops[3] = { ops1[0] }; gimple_resimplify1 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[0] = res; } res_ops[1] = captures[0]; gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } } } } break; } case CFN_EXP2: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { { /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (flag_unsafe_math_optimizations) { /* #line 3165 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (SCALAR_FLOAT_TYPE_P (type)) { { /* #line 3166 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree x; switch (CFN_EXP2) { CASE_CFN_EXP: x = build_real_truncate (type, dconst_e ()); break; CASE_CFN_EXP2: x = build_real (type, dconst2); break; CASE_CFN_EXP10: CASE_CFN_POW10: { REAL_VALUE_TYPE dconst10; real_from_integer (&dconst10, VOIDmode, 10, SIGNED); x = build_real (type, dconst10); } break; default: gcc_unreachable (); } gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3191, %s:%d\n", __FILE__, __LINE__); *res_code = MULT_EXPR; { tree ops1[1], res; ops1[0] = x; code_helper tem_code = CFN_LOG10; tree tem_ops[3] = { ops1[0] }; gimple_resimplify1 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[0] = res; } res_ops[1] = captures[0]; gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } } } } break; } case CFN_SQRT: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { { /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (flag_unsafe_math_optimizations) { /* #line 3199 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (SCALAR_FLOAT_TYPE_P (type)) { { /* #line 3200 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree x; switch (CFN_SQRT) { CASE_CFN_SQRT: x = build_real (type, dconsthalf); break; CASE_CFN_CBRT: x = build_real_truncate (type, dconst_third ()); break; default: gcc_unreachable (); } gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3216, %s:%d\n", __FILE__, __LINE__); *res_code = MULT_EXPR; res_ops[0] = x; { tree ops1[1], res; ops1[0] = captures[0]; code_helper tem_code = CFN_LOG10; tree tem_ops[3] = { ops1[0] }; gimple_resimplify1 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[1] = res; } gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } } } } break; } case CFN_POW: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_call_arg (def, 1); if ((o21 = do_valueize (valueize, o21))) { { /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 }; if (gimple_simplify_180 (res_code, res_ops, seq, valueize, type, captures, CFN_LOG10, CFN_POW)) return true; } } } break; } default:; } } break; default:; } return false; } static bool gimple_simplify_CFN_BUILT_IN_EXPF (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree op0) { switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gcall *def = dyn_cast (def_stmt)) switch (gimple_call_combined_fn (def)) { case CFN_BUILT_IN_LOGF: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { { /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (flag_unsafe_math_optimizations) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3156, %s:%d\n", __FILE__, __LINE__); res_ops[0] = captures[0]; *res_code = TREE_CODE (res_ops[0]); return true; } } } break; } default:; } } break; default:; } return false; } static bool gimple_simplify_CFN_BUILT_IN_EXP (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree op0) { switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gcall *def = dyn_cast (def_stmt)) switch (gimple_call_combined_fn (def)) { case CFN_BUILT_IN_LOG: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { { /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (flag_unsafe_math_optimizations) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3156, %s:%d\n", __FILE__, __LINE__); res_ops[0] = captures[0]; *res_code = TREE_CODE (res_ops[0]); return true; } } } break; } default:; } } break; default:; } return false; } static bool gimple_simplify_CFN_BUILT_IN_EXPL (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree op0) { switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gcall *def = dyn_cast (def_stmt)) switch (gimple_call_combined_fn (def)) { case CFN_BUILT_IN_LOGL: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { { /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (flag_unsafe_math_optimizations) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3156, %s:%d\n", __FILE__, __LINE__); res_ops[0] = captures[0]; *res_code = TREE_CODE (res_ops[0]); return true; } } } break; } default:; } } break; default:; } return false; } static bool gimple_simplify_CFN_EXP (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree op0) { switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gcall *def = dyn_cast (def_stmt)) switch (gimple_call_combined_fn (def)) { case CFN_LOG: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { { /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (flag_unsafe_math_optimizations) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3156, %s:%d\n", __FILE__, __LINE__); res_ops[0] = captures[0]; *res_code = TREE_CODE (res_ops[0]); return true; } } } break; } default:; } } break; default:; } return false; } static bool gimple_simplify_CFN_BUILT_IN_EXP2F (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree op0) { switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gcall *def = dyn_cast (def_stmt)) switch (gimple_call_combined_fn (def)) { case CFN_BUILT_IN_LOG2F: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { { /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (flag_unsafe_math_optimizations) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3156, %s:%d\n", __FILE__, __LINE__); res_ops[0] = captures[0]; *res_code = TREE_CODE (res_ops[0]); return true; } } } break; } default:; } } break; default:; } return false; } static bool gimple_simplify_CFN_BUILT_IN_EXP2 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree op0) { switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gcall *def = dyn_cast (def_stmt)) switch (gimple_call_combined_fn (def)) { case CFN_BUILT_IN_LOG2: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { { /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (flag_unsafe_math_optimizations) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3156, %s:%d\n", __FILE__, __LINE__); res_ops[0] = captures[0]; *res_code = TREE_CODE (res_ops[0]); return true; } } } break; } default:; } } break; default:; } return false; } static bool gimple_simplify_CFN_BUILT_IN_EXP2L (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree op0) { switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gcall *def = dyn_cast (def_stmt)) switch (gimple_call_combined_fn (def)) { case CFN_BUILT_IN_LOG2L: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { { /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (flag_unsafe_math_optimizations) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3156, %s:%d\n", __FILE__, __LINE__); res_ops[0] = captures[0]; *res_code = TREE_CODE (res_ops[0]); return true; } } } break; } default:; } } break; default:; } return false; } static bool gimple_simplify_CFN_EXP2 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree op0) { switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gcall *def = dyn_cast (def_stmt)) switch (gimple_call_combined_fn (def)) { case CFN_LOG2: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { { /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (flag_unsafe_math_optimizations) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3156, %s:%d\n", __FILE__, __LINE__); res_ops[0] = captures[0]; *res_code = TREE_CODE (res_ops[0]); return true; } } } break; } default:; } } break; default:; } return false; } static bool gimple_simplify_CFN_BUILT_IN_EXP10F (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree op0) { switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gcall *def = dyn_cast (def_stmt)) switch (gimple_call_combined_fn (def)) { case CFN_BUILT_IN_LOG10F: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { { /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (flag_unsafe_math_optimizations) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3156, %s:%d\n", __FILE__, __LINE__); res_ops[0] = captures[0]; *res_code = TREE_CODE (res_ops[0]); return true; } } } break; } default:; } } break; default:; } return false; } static bool gimple_simplify_CFN_BUILT_IN_EXP10 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree op0) { switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gcall *def = dyn_cast (def_stmt)) switch (gimple_call_combined_fn (def)) { case CFN_BUILT_IN_LOG10: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { { /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (flag_unsafe_math_optimizations) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3156, %s:%d\n", __FILE__, __LINE__); res_ops[0] = captures[0]; *res_code = TREE_CODE (res_ops[0]); return true; } } } break; } default:; } } break; default:; } return false; } static bool gimple_simplify_CFN_BUILT_IN_EXP10L (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree op0) { switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gcall *def = dyn_cast (def_stmt)) switch (gimple_call_combined_fn (def)) { case CFN_BUILT_IN_LOG10L: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { { /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (flag_unsafe_math_optimizations) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3156, %s:%d\n", __FILE__, __LINE__); res_ops[0] = captures[0]; *res_code = TREE_CODE (res_ops[0]); return true; } } } break; } default:; } } break; default:; } return false; } static bool gimple_simplify_CFN_EXP10 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree op0) { switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gcall *def = dyn_cast (def_stmt)) switch (gimple_call_combined_fn (def)) { case CFN_LOG10: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { { /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (flag_unsafe_math_optimizations) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3156, %s:%d\n", __FILE__, __LINE__); res_ops[0] = captures[0]; *res_code = TREE_CODE (res_ops[0]); return true; } } } break; } default:; } } break; default:; } return false; } static bool gimple_simplify_CFN_BUILT_IN_POW10F (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree op0) { switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gcall *def = dyn_cast (def_stmt)) switch (gimple_call_combined_fn (def)) { case CFN_BUILT_IN_LOG10F: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { { /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (flag_unsafe_math_optimizations) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3156, %s:%d\n", __FILE__, __LINE__); res_ops[0] = captures[0]; *res_code = TREE_CODE (res_ops[0]); return true; } } } break; } default:; } } break; default:; } return false; } static bool gimple_simplify_CFN_BUILT_IN_POW10 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree op0) { switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gcall *def = dyn_cast (def_stmt)) switch (gimple_call_combined_fn (def)) { case CFN_BUILT_IN_LOG10: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { { /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (flag_unsafe_math_optimizations) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3156, %s:%d\n", __FILE__, __LINE__); res_ops[0] = captures[0]; *res_code = TREE_CODE (res_ops[0]); return true; } } } break; } default:; } } break; default:; } return false; } static bool gimple_simplify_CFN_BUILT_IN_POW10L (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree op0) { switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gcall *def = dyn_cast (def_stmt)) switch (gimple_call_combined_fn (def)) { case CFN_BUILT_IN_LOG10L: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { { /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (flag_unsafe_math_optimizations) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3156, %s:%d\n", __FILE__, __LINE__); res_ops[0] = captures[0]; *res_code = TREE_CODE (res_ops[0]); return true; } } } break; } default:; } } break; default:; } return false; } static bool gimple_simplify_CFN_BUILT_IN_SQRTF (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree op0) { switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gcall *def = dyn_cast (def_stmt)) switch (gimple_call_combined_fn (def)) { case CFN_BUILT_IN_EXPF: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { { /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (flag_unsafe_math_optimizations) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3232, %s:%d\n", __FILE__, __LINE__); *res_code = CFN_BUILT_IN_EXPF; { tree ops1[2], res; ops1[0] = captures[0]; ops1[1] = build_real (type, dconsthalf); code_helper tem_code = MULT_EXPR; tree tem_ops[3] = { ops1[0], ops1[1] }; gimple_resimplify2 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[0] = res; } gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } } break; } case CFN_BUILT_IN_EXP2F: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { { /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (flag_unsafe_math_optimizations) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3232, %s:%d\n", __FILE__, __LINE__); *res_code = CFN_BUILT_IN_EXP2F; { tree ops1[2], res; ops1[0] = captures[0]; ops1[1] = build_real (type, dconsthalf); code_helper tem_code = MULT_EXPR; tree tem_ops[3] = { ops1[0], ops1[1] }; gimple_resimplify2 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[0] = res; } gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } } break; } case CFN_BUILT_IN_EXP10F: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { { /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (flag_unsafe_math_optimizations) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3232, %s:%d\n", __FILE__, __LINE__); *res_code = CFN_BUILT_IN_EXP10F; { tree ops1[2], res; ops1[0] = captures[0]; ops1[1] = build_real (type, dconsthalf); code_helper tem_code = MULT_EXPR; tree tem_ops[3] = { ops1[0], ops1[1] }; gimple_resimplify2 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[0] = res; } gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } } break; } case CFN_BUILT_IN_POW10F: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { { /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (flag_unsafe_math_optimizations) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3232, %s:%d\n", __FILE__, __LINE__); *res_code = CFN_BUILT_IN_POW10F; { tree ops1[2], res; ops1[0] = captures[0]; ops1[1] = build_real (type, dconsthalf); code_helper tem_code = MULT_EXPR; tree tem_ops[3] = { ops1[0], ops1[1] }; gimple_resimplify2 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[0] = res; } gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } } break; } case CFN_BUILT_IN_SQRTF: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { { /* #line 3308 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; /* #line 3308 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (flag_unsafe_math_optimizations && canonicalize_math_p ()) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3376, %s:%d\n", __FILE__, __LINE__); *res_code = CFN_BUILT_IN_POWF; res_ops[0] = captures[0]; res_ops[1] = build_real (type, dconst_quarter ()); gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } } break; } case CFN_BUILT_IN_CBRTF: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { { /* #line 3308 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; /* #line 3308 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (flag_unsafe_math_optimizations && canonicalize_math_p ()) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3380, %s:%d\n", __FILE__, __LINE__); *res_code = CFN_BUILT_IN_POWF; res_ops[0] = captures[0]; res_ops[1] = build_real_truncate (type, dconst_sixth ()); gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } } break; } case CFN_BUILT_IN_POWF: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_call_arg (def, 1); if ((o21 = do_valueize (valueize, o21))) { { /* #line 3308 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 }; /* #line 3308 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (flag_unsafe_math_optimizations && canonicalize_math_p ()) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3392, %s:%d\n", __FILE__, __LINE__); *res_code = CFN_BUILT_IN_POWF; { tree ops1[1], res; ops1[0] = captures[0]; code_helper tem_code = ABS_EXPR; tree tem_ops[3] = { ops1[0] }; gimple_resimplify1 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[0] = res; } { tree ops1[2], res; ops1[0] = captures[1]; ops1[1] = build_real (type, dconsthalf); code_helper tem_code = MULT_EXPR; tree tem_ops[3] = { ops1[0], ops1[1] }; gimple_resimplify2 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[1] = res; } gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } } } break; } default:; } } break; default:; } return false; } static bool gimple_simplify_CFN_BUILT_IN_SQRT (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree op0) { switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gcall *def = dyn_cast (def_stmt)) switch (gimple_call_combined_fn (def)) { case CFN_BUILT_IN_EXP: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { { /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (flag_unsafe_math_optimizations) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3232, %s:%d\n", __FILE__, __LINE__); *res_code = CFN_BUILT_IN_EXP; { tree ops1[2], res; ops1[0] = captures[0]; ops1[1] = build_real (type, dconsthalf); code_helper tem_code = MULT_EXPR; tree tem_ops[3] = { ops1[0], ops1[1] }; gimple_resimplify2 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[0] = res; } gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } } break; } case CFN_BUILT_IN_EXP2: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { { /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (flag_unsafe_math_optimizations) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3232, %s:%d\n", __FILE__, __LINE__); *res_code = CFN_BUILT_IN_EXP2; { tree ops1[2], res; ops1[0] = captures[0]; ops1[1] = build_real (type, dconsthalf); code_helper tem_code = MULT_EXPR; tree tem_ops[3] = { ops1[0], ops1[1] }; gimple_resimplify2 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[0] = res; } gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } } break; } case CFN_BUILT_IN_EXP10: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { { /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (flag_unsafe_math_optimizations) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3232, %s:%d\n", __FILE__, __LINE__); *res_code = CFN_BUILT_IN_EXP10; { tree ops1[2], res; ops1[0] = captures[0]; ops1[1] = build_real (type, dconsthalf); code_helper tem_code = MULT_EXPR; tree tem_ops[3] = { ops1[0], ops1[1] }; gimple_resimplify2 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[0] = res; } gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } } break; } case CFN_BUILT_IN_POW10: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { { /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (flag_unsafe_math_optimizations) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3232, %s:%d\n", __FILE__, __LINE__); *res_code = CFN_BUILT_IN_POW10; { tree ops1[2], res; ops1[0] = captures[0]; ops1[1] = build_real (type, dconsthalf); code_helper tem_code = MULT_EXPR; tree tem_ops[3] = { ops1[0], ops1[1] }; gimple_resimplify2 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[0] = res; } gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } } break; } case CFN_BUILT_IN_SQRT: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { { /* #line 3308 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; /* #line 3308 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (flag_unsafe_math_optimizations && canonicalize_math_p ()) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3376, %s:%d\n", __FILE__, __LINE__); *res_code = CFN_BUILT_IN_POW; res_ops[0] = captures[0]; res_ops[1] = build_real (type, dconst_quarter ()); gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } } break; } case CFN_BUILT_IN_CBRT: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { { /* #line 3308 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; /* #line 3308 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (flag_unsafe_math_optimizations && canonicalize_math_p ()) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3380, %s:%d\n", __FILE__, __LINE__); *res_code = CFN_BUILT_IN_POW; res_ops[0] = captures[0]; res_ops[1] = build_real_truncate (type, dconst_sixth ()); gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } } break; } case CFN_BUILT_IN_POW: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_call_arg (def, 1); if ((o21 = do_valueize (valueize, o21))) { { /* #line 3308 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 }; /* #line 3308 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (flag_unsafe_math_optimizations && canonicalize_math_p ()) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3392, %s:%d\n", __FILE__, __LINE__); *res_code = CFN_BUILT_IN_POW; { tree ops1[1], res; ops1[0] = captures[0]; code_helper tem_code = ABS_EXPR; tree tem_ops[3] = { ops1[0] }; gimple_resimplify1 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[0] = res; } { tree ops1[2], res; ops1[0] = captures[1]; ops1[1] = build_real (type, dconsthalf); code_helper tem_code = MULT_EXPR; tree tem_ops[3] = { ops1[0], ops1[1] }; gimple_resimplify2 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[1] = res; } gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } } } break; } default:; } } break; default:; } return false; } static bool gimple_simplify_CFN_BUILT_IN_SQRTL (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree op0) { switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gcall *def = dyn_cast (def_stmt)) switch (gimple_call_combined_fn (def)) { case CFN_BUILT_IN_EXPL: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { { /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (flag_unsafe_math_optimizations) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3232, %s:%d\n", __FILE__, __LINE__); *res_code = CFN_BUILT_IN_EXPL; { tree ops1[2], res; ops1[0] = captures[0]; ops1[1] = build_real (type, dconsthalf); code_helper tem_code = MULT_EXPR; tree tem_ops[3] = { ops1[0], ops1[1] }; gimple_resimplify2 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[0] = res; } gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } } break; } case CFN_BUILT_IN_EXP2L: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { { /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (flag_unsafe_math_optimizations) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3232, %s:%d\n", __FILE__, __LINE__); *res_code = CFN_BUILT_IN_EXP2L; { tree ops1[2], res; ops1[0] = captures[0]; ops1[1] = build_real (type, dconsthalf); code_helper tem_code = MULT_EXPR; tree tem_ops[3] = { ops1[0], ops1[1] }; gimple_resimplify2 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[0] = res; } gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } } break; } case CFN_BUILT_IN_EXP10L: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { { /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (flag_unsafe_math_optimizations) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3232, %s:%d\n", __FILE__, __LINE__); *res_code = CFN_BUILT_IN_EXP10L; { tree ops1[2], res; ops1[0] = captures[0]; ops1[1] = build_real (type, dconsthalf); code_helper tem_code = MULT_EXPR; tree tem_ops[3] = { ops1[0], ops1[1] }; gimple_resimplify2 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[0] = res; } gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } } break; } case CFN_BUILT_IN_POW10L: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { { /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (flag_unsafe_math_optimizations) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3232, %s:%d\n", __FILE__, __LINE__); *res_code = CFN_BUILT_IN_POW10L; { tree ops1[2], res; ops1[0] = captures[0]; ops1[1] = build_real (type, dconsthalf); code_helper tem_code = MULT_EXPR; tree tem_ops[3] = { ops1[0], ops1[1] }; gimple_resimplify2 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[0] = res; } gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } } break; } case CFN_BUILT_IN_SQRTL: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { { /* #line 3308 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; /* #line 3308 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (flag_unsafe_math_optimizations && canonicalize_math_p ()) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3376, %s:%d\n", __FILE__, __LINE__); *res_code = CFN_BUILT_IN_POWL; res_ops[0] = captures[0]; res_ops[1] = build_real (type, dconst_quarter ()); gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } } break; } case CFN_BUILT_IN_CBRTL: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { { /* #line 3308 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; /* #line 3308 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (flag_unsafe_math_optimizations && canonicalize_math_p ()) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3380, %s:%d\n", __FILE__, __LINE__); *res_code = CFN_BUILT_IN_POWL; res_ops[0] = captures[0]; res_ops[1] = build_real_truncate (type, dconst_sixth ()); gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } } break; } case CFN_BUILT_IN_POWL: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_call_arg (def, 1); if ((o21 = do_valueize (valueize, o21))) { { /* #line 3308 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 }; /* #line 3308 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (flag_unsafe_math_optimizations && canonicalize_math_p ()) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3392, %s:%d\n", __FILE__, __LINE__); *res_code = CFN_BUILT_IN_POWL; { tree ops1[1], res; ops1[0] = captures[0]; code_helper tem_code = ABS_EXPR; tree tem_ops[3] = { ops1[0] }; gimple_resimplify1 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[0] = res; } { tree ops1[2], res; ops1[0] = captures[1]; ops1[1] = build_real (type, dconsthalf); code_helper tem_code = MULT_EXPR; tree tem_ops[3] = { ops1[0], ops1[1] }; gimple_resimplify2 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[1] = res; } gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } } } break; } default:; } } break; default:; } return false; } static bool gimple_simplify_CFN_SQRT (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree op0) { switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gcall *def = dyn_cast (def_stmt)) switch (gimple_call_combined_fn (def)) { case CFN_EXP: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { { /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (flag_unsafe_math_optimizations) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3232, %s:%d\n", __FILE__, __LINE__); *res_code = CFN_EXP; { tree ops1[2], res; ops1[0] = captures[0]; ops1[1] = build_real (type, dconsthalf); code_helper tem_code = MULT_EXPR; tree tem_ops[3] = { ops1[0], ops1[1] }; gimple_resimplify2 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[0] = res; } gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } } break; } case CFN_EXP2: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { { /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (flag_unsafe_math_optimizations) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3232, %s:%d\n", __FILE__, __LINE__); *res_code = CFN_EXP2; { tree ops1[2], res; ops1[0] = captures[0]; ops1[1] = build_real (type, dconsthalf); code_helper tem_code = MULT_EXPR; tree tem_ops[3] = { ops1[0], ops1[1] }; gimple_resimplify2 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[0] = res; } gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } } break; } case CFN_EXP10: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { { /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (flag_unsafe_math_optimizations) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3232, %s:%d\n", __FILE__, __LINE__); *res_code = CFN_EXP10; { tree ops1[2], res; ops1[0] = captures[0]; ops1[1] = build_real (type, dconsthalf); code_helper tem_code = MULT_EXPR; tree tem_ops[3] = { ops1[0], ops1[1] }; gimple_resimplify2 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[0] = res; } gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } } break; } case CFN_SQRT: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { { /* #line 3308 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; /* #line 3308 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (flag_unsafe_math_optimizations && canonicalize_math_p ()) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3376, %s:%d\n", __FILE__, __LINE__); *res_code = CFN_POW; res_ops[0] = captures[0]; res_ops[1] = build_real (type, dconst_quarter ()); gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } } break; } case CFN_POW: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_call_arg (def, 1); if ((o21 = do_valueize (valueize, o21))) { { /* #line 3308 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 }; /* #line 3308 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (flag_unsafe_math_optimizations && canonicalize_math_p ()) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3392, %s:%d\n", __FILE__, __LINE__); *res_code = CFN_POW; { tree ops1[1], res; ops1[0] = captures[0]; code_helper tem_code = ABS_EXPR; tree tem_ops[3] = { ops1[0] }; gimple_resimplify1 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[0] = res; } { tree ops1[2], res; ops1[0] = captures[1]; ops1[1] = build_real (type, dconsthalf); code_helper tem_code = MULT_EXPR; tree tem_ops[3] = { ops1[0], ops1[1] }; gimple_resimplify2 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[1] = res; } gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } } } break; } default:; } } break; default:; } return false; } static bool gimple_simplify_CFN_BUILT_IN_CBRTF (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree op0) { switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gcall *def = dyn_cast (def_stmt)) switch (gimple_call_combined_fn (def)) { case CFN_BUILT_IN_EXPF: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { { /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (flag_unsafe_math_optimizations) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3236, %s:%d\n", __FILE__, __LINE__); *res_code = CFN_BUILT_IN_EXPF; { tree ops1[2], res; ops1[0] = captures[0]; ops1[1] = build_real_truncate (type, dconst_third ()); code_helper tem_code = MULT_EXPR; tree tem_ops[3] = { ops1[0], ops1[1] }; gimple_resimplify2 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[0] = res; } gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } } break; } case CFN_BUILT_IN_EXP2F: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { { /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (flag_unsafe_math_optimizations) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3236, %s:%d\n", __FILE__, __LINE__); *res_code = CFN_BUILT_IN_EXP2F; { tree ops1[2], res; ops1[0] = captures[0]; ops1[1] = build_real_truncate (type, dconst_third ()); code_helper tem_code = MULT_EXPR; tree tem_ops[3] = { ops1[0], ops1[1] }; gimple_resimplify2 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[0] = res; } gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } } break; } case CFN_BUILT_IN_EXP10F: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { { /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (flag_unsafe_math_optimizations) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3236, %s:%d\n", __FILE__, __LINE__); *res_code = CFN_BUILT_IN_EXP10F; { tree ops1[2], res; ops1[0] = captures[0]; ops1[1] = build_real_truncate (type, dconst_third ()); code_helper tem_code = MULT_EXPR; tree tem_ops[3] = { ops1[0], ops1[1] }; gimple_resimplify2 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[0] = res; } gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } } break; } case CFN_BUILT_IN_POW10F: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { { /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (flag_unsafe_math_optimizations) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3236, %s:%d\n", __FILE__, __LINE__); *res_code = CFN_BUILT_IN_POW10F; { tree ops1[2], res; ops1[0] = captures[0]; ops1[1] = build_real_truncate (type, dconst_third ()); code_helper tem_code = MULT_EXPR; tree tem_ops[3] = { ops1[0], ops1[1] }; gimple_resimplify2 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[0] = res; } gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } } break; } case CFN_BUILT_IN_SQRTF: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { { /* #line 3308 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; /* #line 3308 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (flag_unsafe_math_optimizations && canonicalize_math_p ()) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3384, %s:%d\n", __FILE__, __LINE__); *res_code = CFN_BUILT_IN_POWF; res_ops[0] = captures[0]; res_ops[1] = build_real_truncate (type, dconst_sixth ()); gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } } break; } case CFN_BUILT_IN_CBRTF: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { if (tree_expr_nonnegative_p (o20)) { { /* #line 3308 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; /* #line 3308 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (flag_unsafe_math_optimizations && canonicalize_math_p ()) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3388, %s:%d\n", __FILE__, __LINE__); *res_code = CFN_BUILT_IN_POWF; res_ops[0] = captures[0]; res_ops[1] = build_real_truncate (type, dconst_ninth ()); gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } } } break; } case CFN_BUILT_IN_POWF: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_call_arg (def, 1); if ((o21 = do_valueize (valueize, o21))) { if (tree_expr_nonnegative_p (o20)) { { /* #line 3308 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 }; /* #line 3308 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (flag_unsafe_math_optimizations && canonicalize_math_p ()) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3396, %s:%d\n", __FILE__, __LINE__); *res_code = CFN_BUILT_IN_POWF; res_ops[0] = captures[0]; { tree ops1[2], res; ops1[0] = captures[1]; ops1[1] = build_real_truncate (type, dconst_third ()); code_helper tem_code = MULT_EXPR; tree tem_ops[3] = { ops1[0], ops1[1] }; gimple_resimplify2 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[1] = res; } gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } } } } break; } default:; } } break; default:; } return false; } static bool gimple_simplify_CFN_BUILT_IN_CBRT (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree op0) { switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gcall *def = dyn_cast (def_stmt)) switch (gimple_call_combined_fn (def)) { case CFN_BUILT_IN_EXP: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { { /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (flag_unsafe_math_optimizations) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3236, %s:%d\n", __FILE__, __LINE__); *res_code = CFN_BUILT_IN_EXP; { tree ops1[2], res; ops1[0] = captures[0]; ops1[1] = build_real_truncate (type, dconst_third ()); code_helper tem_code = MULT_EXPR; tree tem_ops[3] = { ops1[0], ops1[1] }; gimple_resimplify2 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[0] = res; } gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } } break; } case CFN_BUILT_IN_EXP2: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { { /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (flag_unsafe_math_optimizations) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3236, %s:%d\n", __FILE__, __LINE__); *res_code = CFN_BUILT_IN_EXP2; { tree ops1[2], res; ops1[0] = captures[0]; ops1[1] = build_real_truncate (type, dconst_third ()); code_helper tem_code = MULT_EXPR; tree tem_ops[3] = { ops1[0], ops1[1] }; gimple_resimplify2 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[0] = res; } gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } } break; } case CFN_BUILT_IN_EXP10: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { { /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (flag_unsafe_math_optimizations) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3236, %s:%d\n", __FILE__, __LINE__); *res_code = CFN_BUILT_IN_EXP10; { tree ops1[2], res; ops1[0] = captures[0]; ops1[1] = build_real_truncate (type, dconst_third ()); code_helper tem_code = MULT_EXPR; tree tem_ops[3] = { ops1[0], ops1[1] }; gimple_resimplify2 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[0] = res; } gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } } break; } case CFN_BUILT_IN_POW10: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { { /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (flag_unsafe_math_optimizations) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3236, %s:%d\n", __FILE__, __LINE__); *res_code = CFN_BUILT_IN_POW10; { tree ops1[2], res; ops1[0] = captures[0]; ops1[1] = build_real_truncate (type, dconst_third ()); code_helper tem_code = MULT_EXPR; tree tem_ops[3] = { ops1[0], ops1[1] }; gimple_resimplify2 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[0] = res; } gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } } break; } case CFN_BUILT_IN_SQRT: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { { /* #line 3308 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; /* #line 3308 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (flag_unsafe_math_optimizations && canonicalize_math_p ()) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3384, %s:%d\n", __FILE__, __LINE__); *res_code = CFN_BUILT_IN_POW; res_ops[0] = captures[0]; res_ops[1] = build_real_truncate (type, dconst_sixth ()); gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } } break; } case CFN_BUILT_IN_CBRT: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { if (tree_expr_nonnegative_p (o20)) { { /* #line 3308 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; /* #line 3308 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (flag_unsafe_math_optimizations && canonicalize_math_p ()) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3388, %s:%d\n", __FILE__, __LINE__); *res_code = CFN_BUILT_IN_POW; res_ops[0] = captures[0]; res_ops[1] = build_real_truncate (type, dconst_ninth ()); gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } } } break; } case CFN_BUILT_IN_POW: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_call_arg (def, 1); if ((o21 = do_valueize (valueize, o21))) { if (tree_expr_nonnegative_p (o20)) { { /* #line 3308 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 }; /* #line 3308 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (flag_unsafe_math_optimizations && canonicalize_math_p ()) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3396, %s:%d\n", __FILE__, __LINE__); *res_code = CFN_BUILT_IN_POW; res_ops[0] = captures[0]; { tree ops1[2], res; ops1[0] = captures[1]; ops1[1] = build_real_truncate (type, dconst_third ()); code_helper tem_code = MULT_EXPR; tree tem_ops[3] = { ops1[0], ops1[1] }; gimple_resimplify2 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[1] = res; } gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } } } } break; } default:; } } break; default:; } return false; } static bool gimple_simplify_CFN_BUILT_IN_CBRTL (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree op0) { switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gcall *def = dyn_cast (def_stmt)) switch (gimple_call_combined_fn (def)) { case CFN_BUILT_IN_EXPL: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { { /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (flag_unsafe_math_optimizations) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3236, %s:%d\n", __FILE__, __LINE__); *res_code = CFN_BUILT_IN_EXPL; { tree ops1[2], res; ops1[0] = captures[0]; ops1[1] = build_real_truncate (type, dconst_third ()); code_helper tem_code = MULT_EXPR; tree tem_ops[3] = { ops1[0], ops1[1] }; gimple_resimplify2 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[0] = res; } gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } } break; } case CFN_BUILT_IN_EXP2L: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { { /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (flag_unsafe_math_optimizations) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3236, %s:%d\n", __FILE__, __LINE__); *res_code = CFN_BUILT_IN_EXP2L; { tree ops1[2], res; ops1[0] = captures[0]; ops1[1] = build_real_truncate (type, dconst_third ()); code_helper tem_code = MULT_EXPR; tree tem_ops[3] = { ops1[0], ops1[1] }; gimple_resimplify2 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[0] = res; } gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } } break; } case CFN_BUILT_IN_EXP10L: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { { /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (flag_unsafe_math_optimizations) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3236, %s:%d\n", __FILE__, __LINE__); *res_code = CFN_BUILT_IN_EXP10L; { tree ops1[2], res; ops1[0] = captures[0]; ops1[1] = build_real_truncate (type, dconst_third ()); code_helper tem_code = MULT_EXPR; tree tem_ops[3] = { ops1[0], ops1[1] }; gimple_resimplify2 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[0] = res; } gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } } break; } case CFN_BUILT_IN_POW10L: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { { /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (flag_unsafe_math_optimizations) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3236, %s:%d\n", __FILE__, __LINE__); *res_code = CFN_BUILT_IN_POW10L; { tree ops1[2], res; ops1[0] = captures[0]; ops1[1] = build_real_truncate (type, dconst_third ()); code_helper tem_code = MULT_EXPR; tree tem_ops[3] = { ops1[0], ops1[1] }; gimple_resimplify2 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[0] = res; } gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } } break; } case CFN_BUILT_IN_SQRTL: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { { /* #line 3308 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; /* #line 3308 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (flag_unsafe_math_optimizations && canonicalize_math_p ()) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3384, %s:%d\n", __FILE__, __LINE__); *res_code = CFN_BUILT_IN_POWL; res_ops[0] = captures[0]; res_ops[1] = build_real_truncate (type, dconst_sixth ()); gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } } break; } case CFN_BUILT_IN_CBRTL: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { if (tree_expr_nonnegative_p (o20)) { { /* #line 3308 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; /* #line 3308 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (flag_unsafe_math_optimizations && canonicalize_math_p ()) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3388, %s:%d\n", __FILE__, __LINE__); *res_code = CFN_BUILT_IN_POWL; res_ops[0] = captures[0]; res_ops[1] = build_real_truncate (type, dconst_ninth ()); gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } } } break; } case CFN_BUILT_IN_POWL: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_call_arg (def, 1); if ((o21 = do_valueize (valueize, o21))) { if (tree_expr_nonnegative_p (o20)) { { /* #line 3308 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 }; /* #line 3308 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (flag_unsafe_math_optimizations && canonicalize_math_p ()) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3396, %s:%d\n", __FILE__, __LINE__); *res_code = CFN_BUILT_IN_POWL; res_ops[0] = captures[0]; { tree ops1[2], res; ops1[0] = captures[1]; ops1[1] = build_real_truncate (type, dconst_third ()); code_helper tem_code = MULT_EXPR; tree tem_ops[3] = { ops1[0], ops1[1] }; gimple_resimplify2 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[1] = res; } gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } } } } break; } default:; } } break; default:; } return false; } static bool gimple_simplify_CFN_BUILT_IN_TANF (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree op0) { switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gcall *def = dyn_cast (def_stmt)) switch (gimple_call_combined_fn (def)) { case CFN_BUILT_IN_ATANF: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { { /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; if (gimple_simplify_35 (res_code, res_ops, 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 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree op0) { switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gcall *def = dyn_cast (def_stmt)) switch (gimple_call_combined_fn (def)) { case CFN_BUILT_IN_ATAN: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { { /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; if (gimple_simplify_35 (res_code, res_ops, 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 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree op0) { switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gcall *def = dyn_cast (def_stmt)) switch (gimple_call_combined_fn (def)) { case CFN_BUILT_IN_ATANL: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { { /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; if (gimple_simplify_35 (res_code, res_ops, 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 (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree op0) { switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gcall *def = dyn_cast (def_stmt)) switch (gimple_call_combined_fn (def)) { case CFN_ATAN: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { { /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; if (gimple_simplify_35 (res_code, res_ops, seq, valueize, type, captures, CFN_TAN, CFN_ATAN)) return true; } } break; } default:; } } break; default:; } return false; } static bool gimple_simplify_CFN_BUILT_IN_TRUNCF (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree op0) { switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gcall *def = dyn_cast (def_stmt)) switch (gimple_call_combined_fn (def)) { case CFN_BUILT_IN_TRUNCF: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { { /* #line 3258 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; if (gimple_simplify_208 (res_code, res_ops, seq, valueize, type, captures, CFN_BUILT_IN_TRUNCF)) return true; } } break; } default:; } } break; default:; } if (integer_valued_real_p (op0)) { { /* #line 3263 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { op0 }; if (gimple_simplify_137 (res_code, res_ops, seq, valueize, type, captures, CFN_BUILT_IN_TRUNCF)) return true; } } return false; } static bool gimple_simplify_CFN_BUILT_IN_TRUNC (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree op0) { switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { CASE_CONVERT: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { if (gimple_float_value_p (o20, valueize)) { { /* #line 3477 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; if (gimple_simplify_223 (res_code, res_ops, seq, valueize, type, captures, CFN_BUILT_IN_TRUNC, CFN_BUILT_IN_TRUNCF)) return true; } } } break; } default:; } else if (gcall *def = dyn_cast (def_stmt)) switch (gimple_call_combined_fn (def)) { case CFN_BUILT_IN_TRUNC: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { { /* #line 3258 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; if (gimple_simplify_208 (res_code, res_ops, seq, valueize, type, captures, CFN_BUILT_IN_TRUNC)) return true; } } break; } default:; } } break; default:; } if (integer_valued_real_p (op0)) { { /* #line 3263 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { op0 }; if (gimple_simplify_137 (res_code, res_ops, seq, valueize, type, captures, CFN_BUILT_IN_TRUNC)) return true; } } return false; } static bool gimple_simplify_CFN_BUILT_IN_TRUNCL (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree op0) { switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { CASE_CONVERT: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { if (gimple_double_value_p (o20, valueize)) { { /* #line 3455 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; if (gimple_simplify_149 (res_code, res_ops, seq, valueize, type, captures, CFN_BUILT_IN_TRUNCL, CFN_BUILT_IN_TRUNC)) return true; } } if (gimple_float_value_p (o20, valueize)) { { /* #line 3477 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; if (gimple_simplify_223 (res_code, res_ops, seq, valueize, type, captures, CFN_BUILT_IN_TRUNCL, CFN_BUILT_IN_TRUNCF)) return true; } } } break; } default:; } else if (gcall *def = dyn_cast (def_stmt)) switch (gimple_call_combined_fn (def)) { case CFN_BUILT_IN_TRUNCL: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { { /* #line 3258 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; if (gimple_simplify_208 (res_code, res_ops, seq, valueize, type, captures, CFN_BUILT_IN_TRUNCL)) return true; } } break; } default:; } } break; default:; } if (integer_valued_real_p (op0)) { { /* #line 3263 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { op0 }; if (gimple_simplify_137 (res_code, res_ops, seq, valueize, type, captures, CFN_BUILT_IN_TRUNCL)) return true; } } return false; } static bool gimple_simplify_CFN_TRUNC (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree op0) { switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gcall *def = dyn_cast (def_stmt)) switch (gimple_call_combined_fn (def)) { case CFN_TRUNC: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { { /* #line 3258 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; if (gimple_simplify_208 (res_code, res_ops, seq, valueize, type, captures, CFN_TRUNC)) return true; } } break; } default:; } } break; default:; } if (integer_valued_real_p (op0)) { { /* #line 3263 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { op0 }; if (gimple_simplify_137 (res_code, res_ops, seq, valueize, type, captures, CFN_TRUNC)) return true; } } return false; } static bool gimple_simplify_CFN_BUILT_IN_FLOORF (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree op0) { switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gcall *def = dyn_cast (def_stmt)) switch (gimple_call_combined_fn (def)) { case CFN_BUILT_IN_FLOORF: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { { /* #line 3258 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; if (gimple_simplify_208 (res_code, res_ops, seq, valueize, type, captures, CFN_BUILT_IN_FLOORF)) return true; } } break; } default:; } } break; default:; } if (integer_valued_real_p (op0)) { { /* #line 3263 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { op0 }; if (gimple_simplify_137 (res_code, res_ops, seq, valueize, type, captures, CFN_BUILT_IN_FLOORF)) return true; } } if (tree_expr_nonnegative_p (op0)) { { /* #line 3431 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { op0 }; if (gimple_simplify_15 (res_code, res_ops, seq, valueize, type, captures, CFN_BUILT_IN_FLOORF, CFN_BUILT_IN_TRUNCF)) return true; } } return false; } static bool gimple_simplify_CFN_BUILT_IN_FLOOR (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree op0) { switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { CASE_CONVERT: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { if (gimple_float_value_p (o20, valueize)) { { /* #line 3477 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; if (gimple_simplify_223 (res_code, res_ops, seq, valueize, type, captures, CFN_BUILT_IN_FLOOR, CFN_BUILT_IN_FLOORF)) return true; } } } break; } default:; } else if (gcall *def = dyn_cast (def_stmt)) switch (gimple_call_combined_fn (def)) { case CFN_BUILT_IN_FLOOR: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { { /* #line 3258 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; if (gimple_simplify_208 (res_code, res_ops, seq, valueize, type, captures, CFN_BUILT_IN_FLOOR)) return true; } } break; } default:; } } break; default:; } if (integer_valued_real_p (op0)) { { /* #line 3263 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { op0 }; if (gimple_simplify_137 (res_code, res_ops, seq, valueize, type, captures, CFN_BUILT_IN_FLOOR)) return true; } } if (tree_expr_nonnegative_p (op0)) { { /* #line 3431 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { op0 }; if (gimple_simplify_15 (res_code, res_ops, seq, valueize, type, captures, CFN_BUILT_IN_FLOOR, CFN_BUILT_IN_TRUNC)) return true; } } return false; } static bool gimple_simplify_CFN_BUILT_IN_FLOORL (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree op0) { switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { CASE_CONVERT: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { if (gimple_double_value_p (o20, valueize)) { { /* #line 3455 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; if (gimple_simplify_149 (res_code, res_ops, seq, valueize, type, captures, CFN_BUILT_IN_FLOORL, CFN_BUILT_IN_FLOOR)) return true; } } if (gimple_float_value_p (o20, valueize)) { { /* #line 3477 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; if (gimple_simplify_223 (res_code, res_ops, seq, valueize, type, captures, CFN_BUILT_IN_FLOORL, CFN_BUILT_IN_FLOORF)) return true; } } } break; } default:; } else if (gcall *def = dyn_cast (def_stmt)) switch (gimple_call_combined_fn (def)) { case CFN_BUILT_IN_FLOORL: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { { /* #line 3258 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; if (gimple_simplify_208 (res_code, res_ops, seq, valueize, type, captures, CFN_BUILT_IN_FLOORL)) return true; } } break; } default:; } } break; default:; } if (integer_valued_real_p (op0)) { { /* #line 3263 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { op0 }; if (gimple_simplify_137 (res_code, res_ops, seq, valueize, type, captures, CFN_BUILT_IN_FLOORL)) return true; } } if (tree_expr_nonnegative_p (op0)) { { /* #line 3431 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { op0 }; if (gimple_simplify_15 (res_code, res_ops, seq, valueize, type, captures, CFN_BUILT_IN_FLOORL, CFN_BUILT_IN_TRUNCL)) return true; } } return false; } static bool gimple_simplify_CFN_FLOOR (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree op0) { switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gcall *def = dyn_cast (def_stmt)) switch (gimple_call_combined_fn (def)) { case CFN_FLOOR: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { { /* #line 3258 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; if (gimple_simplify_208 (res_code, res_ops, seq, valueize, type, captures, CFN_FLOOR)) return true; } } break; } default:; } } break; default:; } if (integer_valued_real_p (op0)) { { /* #line 3263 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { op0 }; if (gimple_simplify_137 (res_code, res_ops, seq, valueize, type, captures, CFN_FLOOR)) return true; } } if (tree_expr_nonnegative_p (op0)) { { /* #line 3431 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { op0 }; if (gimple_simplify_15 (res_code, res_ops, seq, valueize, type, captures, CFN_FLOOR, CFN_TRUNC)) return true; } } return false; } static bool gimple_simplify_CFN_BUILT_IN_CEILF (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree op0) { switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gcall *def = dyn_cast (def_stmt)) switch (gimple_call_combined_fn (def)) { case CFN_BUILT_IN_CEILF: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { { /* #line 3258 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; if (gimple_simplify_208 (res_code, res_ops, seq, valueize, type, captures, CFN_BUILT_IN_CEILF)) return true; } } break; } default:; } } break; default:; } if (integer_valued_real_p (op0)) { { /* #line 3263 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { op0 }; if (gimple_simplify_137 (res_code, res_ops, seq, valueize, type, captures, CFN_BUILT_IN_CEILF)) return true; } } return false; } static bool gimple_simplify_CFN_BUILT_IN_CEIL (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree op0) { switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { CASE_CONVERT: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { if (gimple_float_value_p (o20, valueize)) { { /* #line 3477 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; if (gimple_simplify_223 (res_code, res_ops, seq, valueize, type, captures, CFN_BUILT_IN_CEIL, CFN_BUILT_IN_CEILF)) return true; } } } break; } default:; } else if (gcall *def = dyn_cast (def_stmt)) switch (gimple_call_combined_fn (def)) { case CFN_BUILT_IN_CEIL: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { { /* #line 3258 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; if (gimple_simplify_208 (res_code, res_ops, seq, valueize, type, captures, CFN_BUILT_IN_CEIL)) return true; } } break; } default:; } } break; default:; } if (integer_valued_real_p (op0)) { { /* #line 3263 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { op0 }; if (gimple_simplify_137 (res_code, res_ops, seq, valueize, type, captures, CFN_BUILT_IN_CEIL)) return true; } } return false; } static bool gimple_simplify_CFN_BUILT_IN_CEILL (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree op0) { switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { CASE_CONVERT: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { if (gimple_double_value_p (o20, valueize)) { { /* #line 3455 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; if (gimple_simplify_149 (res_code, res_ops, seq, valueize, type, captures, CFN_BUILT_IN_CEILL, CFN_BUILT_IN_CEIL)) return true; } } if (gimple_float_value_p (o20, valueize)) { { /* #line 3477 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; if (gimple_simplify_223 (res_code, res_ops, seq, valueize, type, captures, CFN_BUILT_IN_CEILL, CFN_BUILT_IN_CEILF)) return true; } } } break; } default:; } else if (gcall *def = dyn_cast (def_stmt)) switch (gimple_call_combined_fn (def)) { case CFN_BUILT_IN_CEILL: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { { /* #line 3258 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; if (gimple_simplify_208 (res_code, res_ops, seq, valueize, type, captures, CFN_BUILT_IN_CEILL)) return true; } } break; } default:; } } break; default:; } if (integer_valued_real_p (op0)) { { /* #line 3263 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { op0 }; if (gimple_simplify_137 (res_code, res_ops, seq, valueize, type, captures, CFN_BUILT_IN_CEILL)) return true; } } return false; } static bool gimple_simplify_CFN_CEIL (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree op0) { switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gcall *def = dyn_cast (def_stmt)) switch (gimple_call_combined_fn (def)) { case CFN_CEIL: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { { /* #line 3258 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; if (gimple_simplify_208 (res_code, res_ops, seq, valueize, type, captures, CFN_CEIL)) return true; } } break; } default:; } } break; default:; } if (integer_valued_real_p (op0)) { { /* #line 3263 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { op0 }; if (gimple_simplify_137 (res_code, res_ops, seq, valueize, type, captures, CFN_CEIL)) return true; } } return false; } static bool gimple_simplify_CFN_BUILT_IN_ROUNDF (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree op0) { switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gcall *def = dyn_cast (def_stmt)) switch (gimple_call_combined_fn (def)) { case CFN_BUILT_IN_ROUNDF: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { { /* #line 3258 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; if (gimple_simplify_208 (res_code, res_ops, seq, valueize, type, captures, CFN_BUILT_IN_ROUNDF)) return true; } } break; } default:; } } break; default:; } if (integer_valued_real_p (op0)) { { /* #line 3263 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { op0 }; if (gimple_simplify_137 (res_code, res_ops, seq, valueize, type, captures, CFN_BUILT_IN_ROUNDF)) return true; } } return false; } static bool gimple_simplify_CFN_BUILT_IN_ROUND (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree op0) { switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { CASE_CONVERT: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { if (gimple_float_value_p (o20, valueize)) { { /* #line 3477 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; if (gimple_simplify_223 (res_code, res_ops, seq, valueize, type, captures, CFN_BUILT_IN_ROUND, CFN_BUILT_IN_ROUNDF)) return true; } } } break; } default:; } else if (gcall *def = dyn_cast (def_stmt)) switch (gimple_call_combined_fn (def)) { case CFN_BUILT_IN_ROUND: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { { /* #line 3258 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; if (gimple_simplify_208 (res_code, res_ops, seq, valueize, type, captures, CFN_BUILT_IN_ROUND)) return true; } } break; } default:; } } break; default:; } if (integer_valued_real_p (op0)) { { /* #line 3263 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { op0 }; if (gimple_simplify_137 (res_code, res_ops, seq, valueize, type, captures, CFN_BUILT_IN_ROUND)) return true; } } return false; } static bool gimple_simplify_CFN_BUILT_IN_ROUNDL (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree op0) { switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { CASE_CONVERT: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { if (gimple_double_value_p (o20, valueize)) { { /* #line 3455 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; if (gimple_simplify_149 (res_code, res_ops, seq, valueize, type, captures, CFN_BUILT_IN_ROUNDL, CFN_BUILT_IN_ROUND)) return true; } } if (gimple_float_value_p (o20, valueize)) { { /* #line 3477 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; if (gimple_simplify_223 (res_code, res_ops, seq, valueize, type, captures, CFN_BUILT_IN_ROUNDL, CFN_BUILT_IN_ROUNDF)) return true; } } } break; } default:; } else if (gcall *def = dyn_cast (def_stmt)) switch (gimple_call_combined_fn (def)) { case CFN_BUILT_IN_ROUNDL: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { { /* #line 3258 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; if (gimple_simplify_208 (res_code, res_ops, seq, valueize, type, captures, CFN_BUILT_IN_ROUNDL)) return true; } } break; } default:; } } break; default:; } if (integer_valued_real_p (op0)) { { /* #line 3263 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { op0 }; if (gimple_simplify_137 (res_code, res_ops, seq, valueize, type, captures, CFN_BUILT_IN_ROUNDL)) return true; } } return false; } static bool gimple_simplify_CFN_ROUND (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree op0) { switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gcall *def = dyn_cast (def_stmt)) switch (gimple_call_combined_fn (def)) { case CFN_ROUND: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { { /* #line 3258 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; if (gimple_simplify_208 (res_code, res_ops, seq, valueize, type, captures, CFN_ROUND)) return true; } } break; } default:; } } break; default:; } if (integer_valued_real_p (op0)) { { /* #line 3263 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { op0 }; if (gimple_simplify_137 (res_code, res_ops, seq, valueize, type, captures, CFN_ROUND)) return true; } } return false; } static bool gimple_simplify_CFN_BUILT_IN_NEARBYINTF (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree op0) { switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gcall *def = dyn_cast (def_stmt)) switch (gimple_call_combined_fn (def)) { case CFN_BUILT_IN_NEARBYINTF: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { { /* #line 3258 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; if (gimple_simplify_208 (res_code, res_ops, seq, valueize, type, captures, CFN_BUILT_IN_NEARBYINTF)) return true; } } break; } default:; } } break; default:; } if (integer_valued_real_p (op0)) { { /* #line 3263 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { op0 }; if (gimple_simplify_137 (res_code, res_ops, seq, valueize, type, captures, CFN_BUILT_IN_NEARBYINTF)) return true; } } return false; } static bool gimple_simplify_CFN_BUILT_IN_NEARBYINT (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree op0) { switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { CASE_CONVERT: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { if (gimple_float_value_p (o20, valueize)) { { /* #line 3477 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; if (gimple_simplify_223 (res_code, res_ops, seq, valueize, type, captures, CFN_BUILT_IN_NEARBYINT, CFN_BUILT_IN_NEARBYINTF)) return true; } } } break; } default:; } else if (gcall *def = dyn_cast (def_stmt)) switch (gimple_call_combined_fn (def)) { case CFN_BUILT_IN_NEARBYINT: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { { /* #line 3258 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; if (gimple_simplify_208 (res_code, res_ops, seq, valueize, type, captures, CFN_BUILT_IN_NEARBYINT)) return true; } } break; } default:; } } break; default:; } if (integer_valued_real_p (op0)) { { /* #line 3263 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { op0 }; if (gimple_simplify_137 (res_code, res_ops, seq, valueize, type, captures, CFN_BUILT_IN_NEARBYINT)) return true; } } return false; } static bool gimple_simplify_CFN_BUILT_IN_NEARBYINTL (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree op0) { switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { CASE_CONVERT: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { if (gimple_double_value_p (o20, valueize)) { { /* #line 3455 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; if (gimple_simplify_149 (res_code, res_ops, seq, valueize, type, captures, CFN_BUILT_IN_NEARBYINTL, CFN_BUILT_IN_NEARBYINT)) return true; } } if (gimple_float_value_p (o20, valueize)) { { /* #line 3477 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; if (gimple_simplify_223 (res_code, res_ops, seq, valueize, type, captures, CFN_BUILT_IN_NEARBYINTL, CFN_BUILT_IN_NEARBYINTF)) return true; } } } break; } default:; } else if (gcall *def = dyn_cast (def_stmt)) switch (gimple_call_combined_fn (def)) { case CFN_BUILT_IN_NEARBYINTL: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { { /* #line 3258 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; if (gimple_simplify_208 (res_code, res_ops, seq, valueize, type, captures, CFN_BUILT_IN_NEARBYINTL)) return true; } } break; } default:; } } break; default:; } if (integer_valued_real_p (op0)) { { /* #line 3263 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { op0 }; if (gimple_simplify_137 (res_code, res_ops, seq, valueize, type, captures, CFN_BUILT_IN_NEARBYINTL)) return true; } } return false; } static bool gimple_simplify_CFN_NEARBYINT (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree op0) { switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gcall *def = dyn_cast (def_stmt)) switch (gimple_call_combined_fn (def)) { case CFN_NEARBYINT: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { { /* #line 3258 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; if (gimple_simplify_208 (res_code, res_ops, seq, valueize, type, captures, CFN_NEARBYINT)) return true; } } break; } default:; } } break; default:; } if (integer_valued_real_p (op0)) { { /* #line 3263 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { op0 }; if (gimple_simplify_137 (res_code, res_ops, seq, valueize, type, captures, CFN_NEARBYINT)) return true; } } return false; } static bool gimple_simplify_CFN_BUILT_IN_RINTF (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree op0) { switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gcall *def = dyn_cast (def_stmt)) switch (gimple_call_combined_fn (def)) { case CFN_BUILT_IN_RINTF: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { { /* #line 3258 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; if (gimple_simplify_208 (res_code, res_ops, seq, valueize, type, captures, CFN_BUILT_IN_RINTF)) return true; } } break; } default:; } } break; default:; } if (integer_valued_real_p (op0)) { { /* #line 3263 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { op0 }; if (gimple_simplify_137 (res_code, res_ops, seq, valueize, type, captures, CFN_BUILT_IN_RINTF)) return true; } } return false; } static bool gimple_simplify_CFN_BUILT_IN_RINT (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree op0) { switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { CASE_CONVERT: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { if (gimple_float_value_p (o20, valueize)) { { /* #line 3477 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; if (gimple_simplify_223 (res_code, res_ops, seq, valueize, type, captures, CFN_BUILT_IN_RINT, CFN_BUILT_IN_RINTF)) return true; } } } break; } default:; } else if (gcall *def = dyn_cast (def_stmt)) switch (gimple_call_combined_fn (def)) { case CFN_BUILT_IN_RINT: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { { /* #line 3258 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; if (gimple_simplify_208 (res_code, res_ops, seq, valueize, type, captures, CFN_BUILT_IN_RINT)) return true; } } break; } default:; } } break; default:; } if (integer_valued_real_p (op0)) { { /* #line 3263 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { op0 }; if (gimple_simplify_137 (res_code, res_ops, seq, valueize, type, captures, CFN_BUILT_IN_RINT)) return true; } } return false; } static bool gimple_simplify_CFN_BUILT_IN_RINTL (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree op0) { switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { CASE_CONVERT: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { if (gimple_double_value_p (o20, valueize)) { { /* #line 3455 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; if (gimple_simplify_149 (res_code, res_ops, seq, valueize, type, captures, CFN_BUILT_IN_RINTL, CFN_BUILT_IN_RINT)) return true; } } if (gimple_float_value_p (o20, valueize)) { { /* #line 3477 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; if (gimple_simplify_223 (res_code, res_ops, seq, valueize, type, captures, CFN_BUILT_IN_RINTL, CFN_BUILT_IN_RINTF)) return true; } } } break; } default:; } else if (gcall *def = dyn_cast (def_stmt)) switch (gimple_call_combined_fn (def)) { case CFN_BUILT_IN_RINTL: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { { /* #line 3258 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; if (gimple_simplify_208 (res_code, res_ops, seq, valueize, type, captures, CFN_BUILT_IN_RINTL)) return true; } } break; } default:; } } break; default:; } if (integer_valued_real_p (op0)) { { /* #line 3263 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { op0 }; if (gimple_simplify_137 (res_code, res_ops, seq, valueize, type, captures, CFN_BUILT_IN_RINTL)) return true; } } return false; } static bool gimple_simplify_CFN_RINT (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree op0) { switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gcall *def = dyn_cast (def_stmt)) switch (gimple_call_combined_fn (def)) { case CFN_RINT: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { { /* #line 3258 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; if (gimple_simplify_208 (res_code, res_ops, seq, valueize, type, captures, CFN_RINT)) return true; } } break; } default:; } } break; default:; } if (integer_valued_real_p (op0)) { { /* #line 3263 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { op0 }; if (gimple_simplify_137 (res_code, res_ops, seq, valueize, type, captures, CFN_RINT)) return true; } } return false; } static bool gimple_simplify_CFN_BUILT_IN_CEXPF (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree op0) { if (gimple_compositional_complex (op0, valueize)) { { /* #line 3308 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { op0 }; /* #line 3308 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (flag_unsafe_math_optimizations && canonicalize_math_p ()) { /* #line 3426 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (targetm.libc_has_function (function_c99_math_complex)) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3427, %s:%d\n", __FILE__, __LINE__); *res_code = COMPLEX_EXPR; { tree ops1[2], res; { tree ops2[1], res; { tree ops3[1], res; ops3[0] = captures[0]; code_helper tem_code = REALPART_EXPR; tree tem_ops[3] = { ops3[0] }; gimple_resimplify1 (lseq, &tem_code, TREE_TYPE (TREE_TYPE (ops3[0])), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (TREE_TYPE (ops3[0])), tem_ops, lseq); if (!res) return false; ops2[0] = res; } code_helper tem_code = CFN_BUILT_IN_EXPF; tree tem_ops[3] = { ops2[0] }; gimple_resimplify1 (lseq, &tem_code, TREE_TYPE (ops2[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops2[0]), tem_ops, lseq); if (!res) return false; captures[1] = res; } ops1[0] = captures[1]; { tree ops2[1], res; { tree ops3[1], res; { tree ops4[1], res; ops4[0] = captures[0]; code_helper tem_code = IMAGPART_EXPR; tree tem_ops[3] = { ops4[0] }; gimple_resimplify1 (lseq, &tem_code, TREE_TYPE (TREE_TYPE (ops4[0])), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (TREE_TYPE (ops4[0])), tem_ops, lseq); if (!res) return false; ops3[0] = res; } code_helper tem_code = CFN_BUILT_IN_CEXPIF; tree tem_ops[3] = { ops3[0] }; gimple_resimplify1 (lseq, &tem_code, type, tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, type, tem_ops, lseq); if (!res) return false; captures[2] = res; } ops2[0] = captures[2]; code_helper tem_code = REALPART_EXPR; tree tem_ops[3] = { ops2[0] }; gimple_resimplify1 (lseq, &tem_code, TREE_TYPE (TREE_TYPE (ops2[0])), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (TREE_TYPE (ops2[0])), tem_ops, lseq); if (!res) return false; ops1[1] = res; } code_helper tem_code = MULT_EXPR; tree tem_ops[3] = { ops1[0], ops1[1] }; gimple_resimplify2 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[0] = res; } { tree ops1[2], res; ops1[0] = captures[1]; { tree ops2[1], res; ops2[0] = captures[2]; code_helper tem_code = IMAGPART_EXPR; tree tem_ops[3] = { ops2[0] }; gimple_resimplify1 (lseq, &tem_code, TREE_TYPE (TREE_TYPE (ops2[0])), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (TREE_TYPE (ops2[0])), tem_ops, lseq); if (!res) return false; ops1[1] = res; } code_helper tem_code = MULT_EXPR; tree tem_ops[3] = { ops1[0], ops1[1] }; gimple_resimplify2 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[1] = res; } gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } } } return false; } static bool gimple_simplify_CFN_BUILT_IN_CEXP (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree op0) { if (gimple_compositional_complex (op0, valueize)) { { /* #line 3308 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { op0 }; /* #line 3308 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (flag_unsafe_math_optimizations && canonicalize_math_p ()) { /* #line 3426 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (targetm.libc_has_function (function_c99_math_complex)) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3427, %s:%d\n", __FILE__, __LINE__); *res_code = COMPLEX_EXPR; { tree ops1[2], res; { tree ops2[1], res; { tree ops3[1], res; ops3[0] = captures[0]; code_helper tem_code = REALPART_EXPR; tree tem_ops[3] = { ops3[0] }; gimple_resimplify1 (lseq, &tem_code, TREE_TYPE (TREE_TYPE (ops3[0])), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (TREE_TYPE (ops3[0])), tem_ops, lseq); if (!res) return false; ops2[0] = res; } code_helper tem_code = CFN_BUILT_IN_EXP; tree tem_ops[3] = { ops2[0] }; gimple_resimplify1 (lseq, &tem_code, TREE_TYPE (ops2[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops2[0]), tem_ops, lseq); if (!res) return false; captures[1] = res; } ops1[0] = captures[1]; { tree ops2[1], res; { tree ops3[1], res; { tree ops4[1], res; ops4[0] = captures[0]; code_helper tem_code = IMAGPART_EXPR; tree tem_ops[3] = { ops4[0] }; gimple_resimplify1 (lseq, &tem_code, TREE_TYPE (TREE_TYPE (ops4[0])), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (TREE_TYPE (ops4[0])), tem_ops, lseq); if (!res) return false; ops3[0] = res; } code_helper tem_code = CFN_BUILT_IN_CEXPI; tree tem_ops[3] = { ops3[0] }; gimple_resimplify1 (lseq, &tem_code, type, tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, type, tem_ops, lseq); if (!res) return false; captures[2] = res; } ops2[0] = captures[2]; code_helper tem_code = REALPART_EXPR; tree tem_ops[3] = { ops2[0] }; gimple_resimplify1 (lseq, &tem_code, TREE_TYPE (TREE_TYPE (ops2[0])), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (TREE_TYPE (ops2[0])), tem_ops, lseq); if (!res) return false; ops1[1] = res; } code_helper tem_code = MULT_EXPR; tree tem_ops[3] = { ops1[0], ops1[1] }; gimple_resimplify2 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[0] = res; } { tree ops1[2], res; ops1[0] = captures[1]; { tree ops2[1], res; ops2[0] = captures[2]; code_helper tem_code = IMAGPART_EXPR; tree tem_ops[3] = { ops2[0] }; gimple_resimplify1 (lseq, &tem_code, TREE_TYPE (TREE_TYPE (ops2[0])), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (TREE_TYPE (ops2[0])), tem_ops, lseq); if (!res) return false; ops1[1] = res; } code_helper tem_code = MULT_EXPR; tree tem_ops[3] = { ops1[0], ops1[1] }; gimple_resimplify2 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[1] = res; } gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } } } return false; } static bool gimple_simplify_CFN_BUILT_IN_CEXPL (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree op0) { if (gimple_compositional_complex (op0, valueize)) { { /* #line 3308 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { op0 }; /* #line 3308 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (flag_unsafe_math_optimizations && canonicalize_math_p ()) { /* #line 3426 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (targetm.libc_has_function (function_c99_math_complex)) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3427, %s:%d\n", __FILE__, __LINE__); *res_code = COMPLEX_EXPR; { tree ops1[2], res; { tree ops2[1], res; { tree ops3[1], res; ops3[0] = captures[0]; code_helper tem_code = REALPART_EXPR; tree tem_ops[3] = { ops3[0] }; gimple_resimplify1 (lseq, &tem_code, TREE_TYPE (TREE_TYPE (ops3[0])), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (TREE_TYPE (ops3[0])), tem_ops, lseq); if (!res) return false; ops2[0] = res; } code_helper tem_code = CFN_BUILT_IN_EXPL; tree tem_ops[3] = { ops2[0] }; gimple_resimplify1 (lseq, &tem_code, TREE_TYPE (ops2[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops2[0]), tem_ops, lseq); if (!res) return false; captures[1] = res; } ops1[0] = captures[1]; { tree ops2[1], res; { tree ops3[1], res; { tree ops4[1], res; ops4[0] = captures[0]; code_helper tem_code = IMAGPART_EXPR; tree tem_ops[3] = { ops4[0] }; gimple_resimplify1 (lseq, &tem_code, TREE_TYPE (TREE_TYPE (ops4[0])), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (TREE_TYPE (ops4[0])), tem_ops, lseq); if (!res) return false; ops3[0] = res; } code_helper tem_code = CFN_BUILT_IN_CEXPIL; tree tem_ops[3] = { ops3[0] }; gimple_resimplify1 (lseq, &tem_code, type, tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, type, tem_ops, lseq); if (!res) return false; captures[2] = res; } ops2[0] = captures[2]; code_helper tem_code = REALPART_EXPR; tree tem_ops[3] = { ops2[0] }; gimple_resimplify1 (lseq, &tem_code, TREE_TYPE (TREE_TYPE (ops2[0])), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (TREE_TYPE (ops2[0])), tem_ops, lseq); if (!res) return false; ops1[1] = res; } code_helper tem_code = MULT_EXPR; tree tem_ops[3] = { ops1[0], ops1[1] }; gimple_resimplify2 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[0] = res; } { tree ops1[2], res; ops1[0] = captures[1]; { tree ops2[1], res; ops2[0] = captures[2]; code_helper tem_code = IMAGPART_EXPR; tree tem_ops[3] = { ops2[0] }; gimple_resimplify1 (lseq, &tem_code, TREE_TYPE (TREE_TYPE (ops2[0])), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (TREE_TYPE (ops2[0])), tem_ops, lseq); if (!res) return false; ops1[1] = res; } code_helper tem_code = MULT_EXPR; tree tem_ops[3] = { ops1[0], ops1[1] }; gimple_resimplify2 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[1] = res; } gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } } } return false; } static bool gimple_simplify_CFN_BUILT_IN_IFLOORL (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree op0) { switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { CASE_CONVERT: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { if (gimple_double_value_p (o20, valueize)) { { /* #line 3486 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; if (gimple_simplify_138 (res_code, res_ops, seq, valueize, type, captures, CFN_BUILT_IN_IFLOORL, CFN_BUILT_IN_IFLOOR)) return true; } } if (gimple_float_value_p (o20, valueize)) { { /* #line 3496 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; if (gimple_simplify_43 (res_code, res_ops, seq, valueize, type, captures, CFN_BUILT_IN_IFLOORL, CFN_BUILT_IN_IFLOORF)) return true; } } } break; } default:; } } break; default:; } if (tree_expr_nonnegative_p (op0)) { { /* #line 3501 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { op0 }; /* #line 3501 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (canonicalize_math_p ()) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3506, %s:%d\n", __FILE__, __LINE__); *res_code = FIX_TRUNC_EXPR; res_ops[0] = captures[0]; gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } } if (integer_valued_real_p (op0)) { { /* #line 3508 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { op0 }; /* #line 3508 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (canonicalize_math_p ()) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3515, %s:%d\n", __FILE__, __LINE__); *res_code = FIX_TRUNC_EXPR; res_ops[0] = captures[0]; gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } } { /* #line 3523 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { op0 }; /* #line 3523 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (canonicalize_math_p ()) { /* #line 3529 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (TYPE_PRECISION (integer_type_node) == TYPE_PRECISION (long_integer_type_node)) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3533, %s:%d\n", __FILE__, __LINE__); *res_code = CFN_BUILT_IN_LFLOORL; res_ops[0] = captures[0]; gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } } return false; } static bool gimple_simplify_CFN_BUILT_IN_LFLOORL (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree op0) { switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { CASE_CONVERT: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { if (gimple_double_value_p (o20, valueize)) { { /* #line 3486 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; if (gimple_simplify_138 (res_code, res_ops, seq, valueize, type, captures, CFN_BUILT_IN_LFLOORL, CFN_BUILT_IN_LFLOOR)) return true; } } if (gimple_float_value_p (o20, valueize)) { { /* #line 3496 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; if (gimple_simplify_43 (res_code, res_ops, seq, valueize, type, captures, CFN_BUILT_IN_LFLOORL, CFN_BUILT_IN_LFLOORF)) return true; } } } break; } default:; } } break; default:; } if (tree_expr_nonnegative_p (op0)) { { /* #line 3501 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { op0 }; /* #line 3501 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (canonicalize_math_p ()) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3506, %s:%d\n", __FILE__, __LINE__); *res_code = FIX_TRUNC_EXPR; res_ops[0] = captures[0]; gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } } if (integer_valued_real_p (op0)) { { /* #line 3508 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { op0 }; /* #line 3508 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (canonicalize_math_p ()) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3515, %s:%d\n", __FILE__, __LINE__); *res_code = FIX_TRUNC_EXPR; res_ops[0] = captures[0]; gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } } return false; } static bool gimple_simplify_CFN_BUILT_IN_LLFLOORL (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree op0) { switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { CASE_CONVERT: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { if (gimple_double_value_p (o20, valueize)) { { /* #line 3486 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; if (gimple_simplify_138 (res_code, res_ops, seq, valueize, type, captures, CFN_BUILT_IN_LLFLOORL, CFN_BUILT_IN_LLFLOOR)) return true; } } if (gimple_float_value_p (o20, valueize)) { { /* #line 3496 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; if (gimple_simplify_43 (res_code, res_ops, seq, valueize, type, captures, CFN_BUILT_IN_LLFLOORL, CFN_BUILT_IN_LLFLOORF)) return true; } } } break; } default:; } } break; default:; } if (tree_expr_nonnegative_p (op0)) { { /* #line 3501 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { op0 }; /* #line 3501 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (canonicalize_math_p ()) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3506, %s:%d\n", __FILE__, __LINE__); *res_code = FIX_TRUNC_EXPR; res_ops[0] = captures[0]; gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } } if (integer_valued_real_p (op0)) { { /* #line 3508 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { op0 }; /* #line 3508 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (canonicalize_math_p ()) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3515, %s:%d\n", __FILE__, __LINE__); *res_code = FIX_TRUNC_EXPR; res_ops[0] = captures[0]; gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } } { /* #line 3523 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { op0 }; /* #line 3523 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (canonicalize_math_p ()) { /* #line 3536 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (TYPE_PRECISION (long_long_integer_type_node) == TYPE_PRECISION (long_integer_type_node)) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3540, %s:%d\n", __FILE__, __LINE__); *res_code = CFN_BUILT_IN_LFLOORL; res_ops[0] = captures[0]; gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } } return false; } static bool gimple_simplify_CFN_BUILT_IN_ICEILL (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree op0) { switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { CASE_CONVERT: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { if (gimple_double_value_p (o20, valueize)) { { /* #line 3486 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; if (gimple_simplify_138 (res_code, res_ops, seq, valueize, type, captures, CFN_BUILT_IN_ICEILL, CFN_BUILT_IN_ICEIL)) return true; } } if (gimple_float_value_p (o20, valueize)) { { /* #line 3496 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; if (gimple_simplify_43 (res_code, res_ops, seq, valueize, type, captures, CFN_BUILT_IN_ICEILL, CFN_BUILT_IN_ICEILF)) return true; } } } break; } default:; } } break; default:; } if (integer_valued_real_p (op0)) { { /* #line 3508 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { op0 }; /* #line 3508 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (canonicalize_math_p ()) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3515, %s:%d\n", __FILE__, __LINE__); *res_code = FIX_TRUNC_EXPR; res_ops[0] = captures[0]; gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } } { /* #line 3523 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { op0 }; /* #line 3523 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (canonicalize_math_p ()) { /* #line 3529 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (TYPE_PRECISION (integer_type_node) == TYPE_PRECISION (long_integer_type_node)) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3533, %s:%d\n", __FILE__, __LINE__); *res_code = CFN_BUILT_IN_LCEILL; res_ops[0] = captures[0]; gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } } return false; } static bool gimple_simplify_CFN_BUILT_IN_LCEILL (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree op0) { switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { CASE_CONVERT: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { if (gimple_double_value_p (o20, valueize)) { { /* #line 3486 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; if (gimple_simplify_138 (res_code, res_ops, seq, valueize, type, captures, CFN_BUILT_IN_LCEILL, CFN_BUILT_IN_LCEIL)) return true; } } if (gimple_float_value_p (o20, valueize)) { { /* #line 3496 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; if (gimple_simplify_43 (res_code, res_ops, seq, valueize, type, captures, CFN_BUILT_IN_LCEILL, CFN_BUILT_IN_LCEILF)) return true; } } } break; } default:; } } break; default:; } if (integer_valued_real_p (op0)) { { /* #line 3508 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { op0 }; /* #line 3508 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (canonicalize_math_p ()) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3515, %s:%d\n", __FILE__, __LINE__); *res_code = FIX_TRUNC_EXPR; res_ops[0] = captures[0]; gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } } return false; } static bool gimple_simplify_CFN_BUILT_IN_LLCEILL (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree op0) { switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { CASE_CONVERT: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { if (gimple_double_value_p (o20, valueize)) { { /* #line 3486 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; if (gimple_simplify_138 (res_code, res_ops, seq, valueize, type, captures, CFN_BUILT_IN_LLCEILL, CFN_BUILT_IN_LLCEIL)) return true; } } if (gimple_float_value_p (o20, valueize)) { { /* #line 3496 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; if (gimple_simplify_43 (res_code, res_ops, seq, valueize, type, captures, CFN_BUILT_IN_LLCEILL, CFN_BUILT_IN_LLCEILF)) return true; } } } break; } default:; } } break; default:; } if (integer_valued_real_p (op0)) { { /* #line 3508 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { op0 }; /* #line 3508 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (canonicalize_math_p ()) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3515, %s:%d\n", __FILE__, __LINE__); *res_code = FIX_TRUNC_EXPR; res_ops[0] = captures[0]; gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } } { /* #line 3523 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { op0 }; /* #line 3523 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (canonicalize_math_p ()) { /* #line 3536 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (TYPE_PRECISION (long_long_integer_type_node) == TYPE_PRECISION (long_integer_type_node)) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3540, %s:%d\n", __FILE__, __LINE__); *res_code = CFN_BUILT_IN_LCEILL; res_ops[0] = captures[0]; gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } } return false; } static bool gimple_simplify_CFN_BUILT_IN_IROUNDL (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree op0) { switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { CASE_CONVERT: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { if (gimple_double_value_p (o20, valueize)) { { /* #line 3486 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; if (gimple_simplify_138 (res_code, res_ops, seq, valueize, type, captures, CFN_BUILT_IN_IROUNDL, CFN_BUILT_IN_IROUND)) return true; } } if (gimple_float_value_p (o20, valueize)) { { /* #line 3496 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; if (gimple_simplify_43 (res_code, res_ops, seq, valueize, type, captures, CFN_BUILT_IN_IROUNDL, CFN_BUILT_IN_IROUNDF)) return true; } } } break; } default:; } } break; default:; } if (integer_valued_real_p (op0)) { { /* #line 3508 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { op0 }; /* #line 3508 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (canonicalize_math_p ()) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3515, %s:%d\n", __FILE__, __LINE__); *res_code = FIX_TRUNC_EXPR; res_ops[0] = captures[0]; gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } } { /* #line 3523 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { op0 }; /* #line 3523 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (canonicalize_math_p ()) { /* #line 3529 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (TYPE_PRECISION (integer_type_node) == TYPE_PRECISION (long_integer_type_node)) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3533, %s:%d\n", __FILE__, __LINE__); *res_code = CFN_BUILT_IN_LROUNDL; res_ops[0] = captures[0]; gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } } return false; } static bool gimple_simplify_CFN_BUILT_IN_LROUNDL (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree op0) { switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { CASE_CONVERT: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { if (gimple_double_value_p (o20, valueize)) { { /* #line 3486 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; if (gimple_simplify_138 (res_code, res_ops, seq, valueize, type, captures, CFN_BUILT_IN_LROUNDL, CFN_BUILT_IN_LROUND)) return true; } } if (gimple_float_value_p (o20, valueize)) { { /* #line 3496 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; if (gimple_simplify_43 (res_code, res_ops, seq, valueize, type, captures, CFN_BUILT_IN_LROUNDL, CFN_BUILT_IN_LROUNDF)) return true; } } } break; } default:; } } break; default:; } if (integer_valued_real_p (op0)) { { /* #line 3508 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { op0 }; /* #line 3508 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (canonicalize_math_p ()) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3515, %s:%d\n", __FILE__, __LINE__); *res_code = FIX_TRUNC_EXPR; res_ops[0] = captures[0]; gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } } return false; } static bool gimple_simplify_CFN_BUILT_IN_LLROUNDL (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree op0) { switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { CASE_CONVERT: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { if (gimple_double_value_p (o20, valueize)) { { /* #line 3486 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; if (gimple_simplify_138 (res_code, res_ops, seq, valueize, type, captures, CFN_BUILT_IN_LLROUNDL, CFN_BUILT_IN_LLROUND)) return true; } } if (gimple_float_value_p (o20, valueize)) { { /* #line 3496 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; if (gimple_simplify_43 (res_code, res_ops, seq, valueize, type, captures, CFN_BUILT_IN_LLROUNDL, CFN_BUILT_IN_LLROUNDF)) return true; } } } break; } default:; } } break; default:; } if (integer_valued_real_p (op0)) { { /* #line 3508 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { op0 }; /* #line 3508 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (canonicalize_math_p ()) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3515, %s:%d\n", __FILE__, __LINE__); *res_code = FIX_TRUNC_EXPR; res_ops[0] = captures[0]; gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } } { /* #line 3523 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { op0 }; /* #line 3523 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (canonicalize_math_p ()) { /* #line 3536 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (TYPE_PRECISION (long_long_integer_type_node) == TYPE_PRECISION (long_integer_type_node)) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3540, %s:%d\n", __FILE__, __LINE__); *res_code = CFN_BUILT_IN_LROUNDL; res_ops[0] = captures[0]; gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } } return false; } static bool gimple_simplify_CFN_BUILT_IN_IRINTL (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree op0) { switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { CASE_CONVERT: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { if (gimple_double_value_p (o20, valueize)) { { /* #line 3486 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; if (gimple_simplify_138 (res_code, res_ops, seq, valueize, type, captures, CFN_BUILT_IN_IRINTL, CFN_BUILT_IN_IRINT)) return true; } } if (gimple_float_value_p (o20, valueize)) { { /* #line 3496 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; if (gimple_simplify_43 (res_code, res_ops, seq, valueize, type, captures, CFN_BUILT_IN_IRINTL, CFN_BUILT_IN_IRINTF)) return true; } } } break; } default:; } } break; default:; } if (integer_valued_real_p (op0)) { { /* #line 3508 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { op0 }; /* #line 3508 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (canonicalize_math_p ()) { /* #line 3516 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (!flag_errno_math) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3521, %s:%d\n", __FILE__, __LINE__); *res_code = FIX_TRUNC_EXPR; res_ops[0] = captures[0]; gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } } } { /* #line 3523 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { op0 }; /* #line 3523 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (canonicalize_math_p ()) { /* #line 3529 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (TYPE_PRECISION (integer_type_node) == TYPE_PRECISION (long_integer_type_node)) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3533, %s:%d\n", __FILE__, __LINE__); *res_code = CFN_BUILT_IN_LRINTL; res_ops[0] = captures[0]; gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } } return false; } static bool gimple_simplify_CFN_BUILT_IN_LRINTL (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree op0) { switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { CASE_CONVERT: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { if (gimple_double_value_p (o20, valueize)) { { /* #line 3486 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; if (gimple_simplify_138 (res_code, res_ops, seq, valueize, type, captures, CFN_BUILT_IN_LRINTL, CFN_BUILT_IN_LRINT)) return true; } } if (gimple_float_value_p (o20, valueize)) { { /* #line 3496 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; if (gimple_simplify_43 (res_code, res_ops, seq, valueize, type, captures, CFN_BUILT_IN_LRINTL, CFN_BUILT_IN_LRINTF)) return true; } } } break; } default:; } } break; default:; } if (integer_valued_real_p (op0)) { { /* #line 3508 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { op0 }; /* #line 3508 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (canonicalize_math_p ()) { /* #line 3516 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (!flag_errno_math) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3521, %s:%d\n", __FILE__, __LINE__); *res_code = FIX_TRUNC_EXPR; res_ops[0] = captures[0]; gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } } } return false; } static bool gimple_simplify_CFN_BUILT_IN_LLRINTL (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree op0) { switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { CASE_CONVERT: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { if (gimple_double_value_p (o20, valueize)) { { /* #line 3486 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; if (gimple_simplify_138 (res_code, res_ops, seq, valueize, type, captures, CFN_BUILT_IN_LLRINTL, CFN_BUILT_IN_LLRINT)) return true; } } if (gimple_float_value_p (o20, valueize)) { { /* #line 3496 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; if (gimple_simplify_43 (res_code, res_ops, seq, valueize, type, captures, CFN_BUILT_IN_LLRINTL, CFN_BUILT_IN_LLRINTF)) return true; } } } break; } default:; } } break; default:; } if (integer_valued_real_p (op0)) { { /* #line 3508 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { op0 }; /* #line 3508 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (canonicalize_math_p ()) { /* #line 3516 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (!flag_errno_math) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3521, %s:%d\n", __FILE__, __LINE__); *res_code = FIX_TRUNC_EXPR; res_ops[0] = captures[0]; gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } } } { /* #line 3523 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { op0 }; /* #line 3523 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (canonicalize_math_p ()) { /* #line 3536 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (TYPE_PRECISION (long_long_integer_type_node) == TYPE_PRECISION (long_integer_type_node)) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3540, %s:%d\n", __FILE__, __LINE__); *res_code = CFN_BUILT_IN_LRINTL; res_ops[0] = captures[0]; gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } } return false; } static bool gimple_simplify_CFN_BUILT_IN_IFLOOR (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree op0) { switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { CASE_CONVERT: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { if (gimple_float_value_p (o20, valueize)) { { /* #line 3496 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; if (gimple_simplify_43 (res_code, res_ops, seq, valueize, type, captures, CFN_BUILT_IN_IFLOOR, CFN_BUILT_IN_IFLOORF)) return true; } } } break; } default:; } } break; default:; } if (tree_expr_nonnegative_p (op0)) { { /* #line 3501 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { op0 }; /* #line 3501 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (canonicalize_math_p ()) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3506, %s:%d\n", __FILE__, __LINE__); *res_code = FIX_TRUNC_EXPR; res_ops[0] = captures[0]; gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } } if (integer_valued_real_p (op0)) { { /* #line 3508 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { op0 }; /* #line 3508 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (canonicalize_math_p ()) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3515, %s:%d\n", __FILE__, __LINE__); *res_code = FIX_TRUNC_EXPR; res_ops[0] = captures[0]; gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } } { /* #line 3523 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { op0 }; /* #line 3523 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (canonicalize_math_p ()) { /* #line 3529 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (TYPE_PRECISION (integer_type_node) == TYPE_PRECISION (long_integer_type_node)) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3533, %s:%d\n", __FILE__, __LINE__); *res_code = CFN_BUILT_IN_LFLOOR; res_ops[0] = captures[0]; gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } } return false; } static bool gimple_simplify_CFN_BUILT_IN_LFLOOR (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree op0) { switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { CASE_CONVERT: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { if (gimple_float_value_p (o20, valueize)) { { /* #line 3496 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; if (gimple_simplify_43 (res_code, res_ops, seq, valueize, type, captures, CFN_BUILT_IN_LFLOOR, CFN_BUILT_IN_LFLOORF)) return true; } } } break; } default:; } } break; default:; } if (tree_expr_nonnegative_p (op0)) { { /* #line 3501 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { op0 }; /* #line 3501 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (canonicalize_math_p ()) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3506, %s:%d\n", __FILE__, __LINE__); *res_code = FIX_TRUNC_EXPR; res_ops[0] = captures[0]; gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } } if (integer_valued_real_p (op0)) { { /* #line 3508 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { op0 }; /* #line 3508 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (canonicalize_math_p ()) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3515, %s:%d\n", __FILE__, __LINE__); *res_code = FIX_TRUNC_EXPR; res_ops[0] = captures[0]; gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } } return false; } static bool gimple_simplify_CFN_BUILT_IN_LLFLOOR (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree op0) { switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { CASE_CONVERT: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { if (gimple_float_value_p (o20, valueize)) { { /* #line 3496 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; if (gimple_simplify_43 (res_code, res_ops, seq, valueize, type, captures, CFN_BUILT_IN_LLFLOOR, CFN_BUILT_IN_LLFLOORF)) return true; } } } break; } default:; } } break; default:; } if (tree_expr_nonnegative_p (op0)) { { /* #line 3501 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { op0 }; /* #line 3501 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (canonicalize_math_p ()) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3506, %s:%d\n", __FILE__, __LINE__); *res_code = FIX_TRUNC_EXPR; res_ops[0] = captures[0]; gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } } if (integer_valued_real_p (op0)) { { /* #line 3508 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { op0 }; /* #line 3508 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (canonicalize_math_p ()) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3515, %s:%d\n", __FILE__, __LINE__); *res_code = FIX_TRUNC_EXPR; res_ops[0] = captures[0]; gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } } { /* #line 3523 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { op0 }; /* #line 3523 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (canonicalize_math_p ()) { /* #line 3536 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (TYPE_PRECISION (long_long_integer_type_node) == TYPE_PRECISION (long_integer_type_node)) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3540, %s:%d\n", __FILE__, __LINE__); *res_code = CFN_BUILT_IN_LFLOOR; res_ops[0] = captures[0]; gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } } return false; } static bool gimple_simplify_CFN_BUILT_IN_ICEIL (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree op0) { switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { CASE_CONVERT: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { if (gimple_float_value_p (o20, valueize)) { { /* #line 3496 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; if (gimple_simplify_43 (res_code, res_ops, seq, valueize, type, captures, CFN_BUILT_IN_ICEIL, CFN_BUILT_IN_ICEILF)) return true; } } } break; } default:; } } break; default:; } if (integer_valued_real_p (op0)) { { /* #line 3508 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { op0 }; /* #line 3508 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (canonicalize_math_p ()) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3515, %s:%d\n", __FILE__, __LINE__); *res_code = FIX_TRUNC_EXPR; res_ops[0] = captures[0]; gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } } { /* #line 3523 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { op0 }; /* #line 3523 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (canonicalize_math_p ()) { /* #line 3529 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (TYPE_PRECISION (integer_type_node) == TYPE_PRECISION (long_integer_type_node)) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3533, %s:%d\n", __FILE__, __LINE__); *res_code = CFN_BUILT_IN_LCEIL; res_ops[0] = captures[0]; gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } } return false; } static bool gimple_simplify_CFN_BUILT_IN_LCEIL (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree op0) { switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { CASE_CONVERT: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { if (gimple_float_value_p (o20, valueize)) { { /* #line 3496 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; if (gimple_simplify_43 (res_code, res_ops, seq, valueize, type, captures, CFN_BUILT_IN_LCEIL, CFN_BUILT_IN_LCEILF)) return true; } } } break; } default:; } } break; default:; } if (integer_valued_real_p (op0)) { { /* #line 3508 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { op0 }; /* #line 3508 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (canonicalize_math_p ()) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3515, %s:%d\n", __FILE__, __LINE__); *res_code = FIX_TRUNC_EXPR; res_ops[0] = captures[0]; gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } } return false; } static bool gimple_simplify_CFN_BUILT_IN_LLCEIL (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree op0) { switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { CASE_CONVERT: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { if (gimple_float_value_p (o20, valueize)) { { /* #line 3496 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; if (gimple_simplify_43 (res_code, res_ops, seq, valueize, type, captures, CFN_BUILT_IN_LLCEIL, CFN_BUILT_IN_LLCEILF)) return true; } } } break; } default:; } } break; default:; } if (integer_valued_real_p (op0)) { { /* #line 3508 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { op0 }; /* #line 3508 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (canonicalize_math_p ()) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3515, %s:%d\n", __FILE__, __LINE__); *res_code = FIX_TRUNC_EXPR; res_ops[0] = captures[0]; gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } } { /* #line 3523 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { op0 }; /* #line 3523 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (canonicalize_math_p ()) { /* #line 3536 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (TYPE_PRECISION (long_long_integer_type_node) == TYPE_PRECISION (long_integer_type_node)) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3540, %s:%d\n", __FILE__, __LINE__); *res_code = CFN_BUILT_IN_LCEIL; res_ops[0] = captures[0]; gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } } return false; } static bool gimple_simplify_CFN_BUILT_IN_IROUND (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree op0) { switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { CASE_CONVERT: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { if (gimple_float_value_p (o20, valueize)) { { /* #line 3496 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; if (gimple_simplify_43 (res_code, res_ops, seq, valueize, type, captures, CFN_BUILT_IN_IROUND, CFN_BUILT_IN_IROUNDF)) return true; } } } break; } default:; } } break; default:; } if (integer_valued_real_p (op0)) { { /* #line 3508 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { op0 }; /* #line 3508 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (canonicalize_math_p ()) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3515, %s:%d\n", __FILE__, __LINE__); *res_code = FIX_TRUNC_EXPR; res_ops[0] = captures[0]; gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } } { /* #line 3523 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { op0 }; /* #line 3523 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (canonicalize_math_p ()) { /* #line 3529 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (TYPE_PRECISION (integer_type_node) == TYPE_PRECISION (long_integer_type_node)) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3533, %s:%d\n", __FILE__, __LINE__); *res_code = CFN_BUILT_IN_LROUND; res_ops[0] = captures[0]; gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } } return false; } static bool gimple_simplify_CFN_BUILT_IN_LROUND (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree op0) { switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { CASE_CONVERT: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { if (gimple_float_value_p (o20, valueize)) { { /* #line 3496 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; if (gimple_simplify_43 (res_code, res_ops, seq, valueize, type, captures, CFN_BUILT_IN_LROUND, CFN_BUILT_IN_LROUNDF)) return true; } } } break; } default:; } } break; default:; } if (integer_valued_real_p (op0)) { { /* #line 3508 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { op0 }; /* #line 3508 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (canonicalize_math_p ()) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3515, %s:%d\n", __FILE__, __LINE__); *res_code = FIX_TRUNC_EXPR; res_ops[0] = captures[0]; gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } } return false; } static bool gimple_simplify_CFN_BUILT_IN_LLROUND (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree op0) { switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { CASE_CONVERT: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { if (gimple_float_value_p (o20, valueize)) { { /* #line 3496 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; if (gimple_simplify_43 (res_code, res_ops, seq, valueize, type, captures, CFN_BUILT_IN_LLROUND, CFN_BUILT_IN_LLROUNDF)) return true; } } } break; } default:; } } break; default:; } if (integer_valued_real_p (op0)) { { /* #line 3508 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { op0 }; /* #line 3508 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (canonicalize_math_p ()) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3515, %s:%d\n", __FILE__, __LINE__); *res_code = FIX_TRUNC_EXPR; res_ops[0] = captures[0]; gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } } { /* #line 3523 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { op0 }; /* #line 3523 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (canonicalize_math_p ()) { /* #line 3536 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (TYPE_PRECISION (long_long_integer_type_node) == TYPE_PRECISION (long_integer_type_node)) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3540, %s:%d\n", __FILE__, __LINE__); *res_code = CFN_BUILT_IN_LROUND; res_ops[0] = captures[0]; gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } } return false; } static bool gimple_simplify_CFN_BUILT_IN_IRINT (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree op0) { switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { CASE_CONVERT: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { if (gimple_float_value_p (o20, valueize)) { { /* #line 3496 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; if (gimple_simplify_43 (res_code, res_ops, seq, valueize, type, captures, CFN_BUILT_IN_IRINT, CFN_BUILT_IN_IRINTF)) return true; } } } break; } default:; } } break; default:; } if (integer_valued_real_p (op0)) { { /* #line 3508 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { op0 }; /* #line 3508 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (canonicalize_math_p ()) { /* #line 3516 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (!flag_errno_math) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3521, %s:%d\n", __FILE__, __LINE__); *res_code = FIX_TRUNC_EXPR; res_ops[0] = captures[0]; gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } } } { /* #line 3523 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { op0 }; /* #line 3523 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (canonicalize_math_p ()) { /* #line 3529 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (TYPE_PRECISION (integer_type_node) == TYPE_PRECISION (long_integer_type_node)) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3533, %s:%d\n", __FILE__, __LINE__); *res_code = CFN_BUILT_IN_LRINT; res_ops[0] = captures[0]; gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } } return false; } static bool gimple_simplify_CFN_BUILT_IN_LRINT (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree op0) { switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { CASE_CONVERT: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { if (gimple_float_value_p (o20, valueize)) { { /* #line 3496 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; if (gimple_simplify_43 (res_code, res_ops, seq, valueize, type, captures, CFN_BUILT_IN_LRINT, CFN_BUILT_IN_LRINTF)) return true; } } } break; } default:; } } break; default:; } if (integer_valued_real_p (op0)) { { /* #line 3508 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { op0 }; /* #line 3508 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (canonicalize_math_p ()) { /* #line 3516 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (!flag_errno_math) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3521, %s:%d\n", __FILE__, __LINE__); *res_code = FIX_TRUNC_EXPR; res_ops[0] = captures[0]; gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } } } return false; } static bool gimple_simplify_CFN_BUILT_IN_LLRINT (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree op0) { switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { CASE_CONVERT: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { if (gimple_float_value_p (o20, valueize)) { { /* #line 3496 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; if (gimple_simplify_43 (res_code, res_ops, seq, valueize, type, captures, CFN_BUILT_IN_LLRINT, CFN_BUILT_IN_LLRINTF)) return true; } } } break; } default:; } } break; default:; } if (integer_valued_real_p (op0)) { { /* #line 3508 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { op0 }; /* #line 3508 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (canonicalize_math_p ()) { /* #line 3516 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (!flag_errno_math) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3521, %s:%d\n", __FILE__, __LINE__); *res_code = FIX_TRUNC_EXPR; res_ops[0] = captures[0]; gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } } } { /* #line 3523 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { op0 }; /* #line 3523 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (canonicalize_math_p ()) { /* #line 3536 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (TYPE_PRECISION (long_long_integer_type_node) == TYPE_PRECISION (long_integer_type_node)) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3540, %s:%d\n", __FILE__, __LINE__); *res_code = CFN_BUILT_IN_LRINT; res_ops[0] = captures[0]; gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } } return false; } static bool gimple_simplify_CFN_BUILT_IN_IFLOORF (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree op0) { if (tree_expr_nonnegative_p (op0)) { { /* #line 3501 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { op0 }; /* #line 3501 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (canonicalize_math_p ()) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3506, %s:%d\n", __FILE__, __LINE__); *res_code = FIX_TRUNC_EXPR; res_ops[0] = captures[0]; gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } } if (integer_valued_real_p (op0)) { { /* #line 3508 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { op0 }; /* #line 3508 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (canonicalize_math_p ()) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3515, %s:%d\n", __FILE__, __LINE__); *res_code = FIX_TRUNC_EXPR; res_ops[0] = captures[0]; gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } } { /* #line 3523 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { op0 }; /* #line 3523 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (canonicalize_math_p ()) { /* #line 3529 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (TYPE_PRECISION (integer_type_node) == TYPE_PRECISION (long_integer_type_node)) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3533, %s:%d\n", __FILE__, __LINE__); *res_code = CFN_BUILT_IN_LFLOORF; res_ops[0] = captures[0]; gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } } return false; } static bool gimple_simplify_CFN_BUILT_IN_LFLOORF (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree op0) { if (tree_expr_nonnegative_p (op0)) { { /* #line 3501 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { op0 }; /* #line 3501 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (canonicalize_math_p ()) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3506, %s:%d\n", __FILE__, __LINE__); *res_code = FIX_TRUNC_EXPR; res_ops[0] = captures[0]; gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } } if (integer_valued_real_p (op0)) { { /* #line 3508 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { op0 }; /* #line 3508 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (canonicalize_math_p ()) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3515, %s:%d\n", __FILE__, __LINE__); *res_code = FIX_TRUNC_EXPR; res_ops[0] = captures[0]; gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } } return false; } static bool gimple_simplify_CFN_BUILT_IN_LLFLOORF (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree op0) { if (tree_expr_nonnegative_p (op0)) { { /* #line 3501 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { op0 }; /* #line 3501 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (canonicalize_math_p ()) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3506, %s:%d\n", __FILE__, __LINE__); *res_code = FIX_TRUNC_EXPR; res_ops[0] = captures[0]; gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } } if (integer_valued_real_p (op0)) { { /* #line 3508 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { op0 }; /* #line 3508 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (canonicalize_math_p ()) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3515, %s:%d\n", __FILE__, __LINE__); *res_code = FIX_TRUNC_EXPR; res_ops[0] = captures[0]; gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } } { /* #line 3523 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { op0 }; /* #line 3523 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (canonicalize_math_p ()) { /* #line 3536 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (TYPE_PRECISION (long_long_integer_type_node) == TYPE_PRECISION (long_integer_type_node)) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3540, %s:%d\n", __FILE__, __LINE__); *res_code = CFN_BUILT_IN_LFLOORF; res_ops[0] = captures[0]; gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } } return false; } static bool gimple_simplify_CFN_BUILT_IN_ICEILF (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree op0) { if (integer_valued_real_p (op0)) { { /* #line 3508 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { op0 }; /* #line 3508 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (canonicalize_math_p ()) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3515, %s:%d\n", __FILE__, __LINE__); *res_code = FIX_TRUNC_EXPR; res_ops[0] = captures[0]; gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } } { /* #line 3523 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { op0 }; /* #line 3523 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (canonicalize_math_p ()) { /* #line 3529 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (TYPE_PRECISION (integer_type_node) == TYPE_PRECISION (long_integer_type_node)) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3533, %s:%d\n", __FILE__, __LINE__); *res_code = CFN_BUILT_IN_LCEILF; res_ops[0] = captures[0]; gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } } return false; } static bool gimple_simplify_CFN_BUILT_IN_LCEILF (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree op0) { if (integer_valued_real_p (op0)) { { /* #line 3508 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { op0 }; /* #line 3508 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (canonicalize_math_p ()) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3515, %s:%d\n", __FILE__, __LINE__); *res_code = FIX_TRUNC_EXPR; res_ops[0] = captures[0]; gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } } return false; } static bool gimple_simplify_CFN_BUILT_IN_LLCEILF (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree op0) { if (integer_valued_real_p (op0)) { { /* #line 3508 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { op0 }; /* #line 3508 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (canonicalize_math_p ()) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3515, %s:%d\n", __FILE__, __LINE__); *res_code = FIX_TRUNC_EXPR; res_ops[0] = captures[0]; gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } } { /* #line 3523 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { op0 }; /* #line 3523 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (canonicalize_math_p ()) { /* #line 3536 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (TYPE_PRECISION (long_long_integer_type_node) == TYPE_PRECISION (long_integer_type_node)) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3540, %s:%d\n", __FILE__, __LINE__); *res_code = CFN_BUILT_IN_LCEILF; res_ops[0] = captures[0]; gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } } return false; } static bool gimple_simplify_CFN_BUILT_IN_IROUNDF (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree op0) { if (integer_valued_real_p (op0)) { { /* #line 3508 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { op0 }; /* #line 3508 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (canonicalize_math_p ()) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3515, %s:%d\n", __FILE__, __LINE__); *res_code = FIX_TRUNC_EXPR; res_ops[0] = captures[0]; gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } } { /* #line 3523 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { op0 }; /* #line 3523 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (canonicalize_math_p ()) { /* #line 3529 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (TYPE_PRECISION (integer_type_node) == TYPE_PRECISION (long_integer_type_node)) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3533, %s:%d\n", __FILE__, __LINE__); *res_code = CFN_BUILT_IN_LROUNDF; res_ops[0] = captures[0]; gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } } return false; } static bool gimple_simplify_CFN_BUILT_IN_LROUNDF (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree op0) { if (integer_valued_real_p (op0)) { { /* #line 3508 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { op0 }; /* #line 3508 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (canonicalize_math_p ()) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3515, %s:%d\n", __FILE__, __LINE__); *res_code = FIX_TRUNC_EXPR; res_ops[0] = captures[0]; gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } } return false; } static bool gimple_simplify_CFN_BUILT_IN_LLROUNDF (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree op0) { if (integer_valued_real_p (op0)) { { /* #line 3508 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { op0 }; /* #line 3508 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (canonicalize_math_p ()) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3515, %s:%d\n", __FILE__, __LINE__); *res_code = FIX_TRUNC_EXPR; res_ops[0] = captures[0]; gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } } { /* #line 3523 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { op0 }; /* #line 3523 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (canonicalize_math_p ()) { /* #line 3536 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (TYPE_PRECISION (long_long_integer_type_node) == TYPE_PRECISION (long_integer_type_node)) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3540, %s:%d\n", __FILE__, __LINE__); *res_code = CFN_BUILT_IN_LROUNDF; res_ops[0] = captures[0]; gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } } return false; } static bool gimple_simplify_CFN_BUILT_IN_IRINTF (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree op0) { if (integer_valued_real_p (op0)) { { /* #line 3508 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { op0 }; /* #line 3508 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (canonicalize_math_p ()) { /* #line 3516 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (!flag_errno_math) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3521, %s:%d\n", __FILE__, __LINE__); *res_code = FIX_TRUNC_EXPR; res_ops[0] = captures[0]; gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } } } { /* #line 3523 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { op0 }; /* #line 3523 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (canonicalize_math_p ()) { /* #line 3529 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (TYPE_PRECISION (integer_type_node) == TYPE_PRECISION (long_integer_type_node)) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3533, %s:%d\n", __FILE__, __LINE__); *res_code = CFN_BUILT_IN_LRINTF; res_ops[0] = captures[0]; gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } } return false; } static bool gimple_simplify_CFN_BUILT_IN_LRINTF (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree op0) { if (integer_valued_real_p (op0)) { { /* #line 3508 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { op0 }; /* #line 3508 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (canonicalize_math_p ()) { /* #line 3516 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (!flag_errno_math) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3521, %s:%d\n", __FILE__, __LINE__); *res_code = FIX_TRUNC_EXPR; res_ops[0] = captures[0]; gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } } } return false; } static bool gimple_simplify_CFN_BUILT_IN_LLRINTF (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree op0) { if (integer_valued_real_p (op0)) { { /* #line 3508 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { op0 }; /* #line 3508 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (canonicalize_math_p ()) { /* #line 3516 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (!flag_errno_math) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3521, %s:%d\n", __FILE__, __LINE__); *res_code = FIX_TRUNC_EXPR; res_ops[0] = captures[0]; gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } } } { /* #line 3523 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { op0 }; /* #line 3523 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (canonicalize_math_p ()) { /* #line 3536 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (TYPE_PRECISION (long_long_integer_type_node) == TYPE_PRECISION (long_integer_type_node)) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3540, %s:%d\n", __FILE__, __LINE__); *res_code = CFN_BUILT_IN_LRINTF; res_ops[0] = captures[0]; gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } } return false; } static bool gimple_simplify_CFN_BUILT_IN_CPROJF (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree op0) { { /* #line 3545 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { op0 }; /* #line 3545 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (!HONOR_INFINITIES (type)) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3546, %s:%d\n", __FILE__, __LINE__); res_ops[0] = captures[0]; *res_code = TREE_CODE (res_ops[0]); return true; } } switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case COMPLEX_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { switch (TREE_CODE (o20)) { case REAL_CST: { if (tree_expr_nonnegative_p (o21)) { { /* #line 3552 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 }; /* #line 3552 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (real_isinf (TREE_REAL_CST_PTR (captures[0]))) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3553, %s:%d\n", __FILE__, __LINE__); res_ops[0] = build_complex_inf (type, false); *res_code = TREE_CODE (res_ops[0]); return true; } } } break; } default:; } switch (TREE_CODE (o21)) { case REAL_CST: { { /* #line 3558 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 }; /* #line 3558 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (real_isinf (TREE_REAL_CST_PTR (captures[1]))) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3559, %s:%d\n", __FILE__, __LINE__); res_ops[0] = build_complex_inf (type, TREE_REAL_CST_PTR (captures[1])->sign); *res_code = TREE_CODE (res_ops[0]); return true; } } break; } default:; } } } break; } default:; } } break; default:; } return false; } static bool gimple_simplify_CFN_BUILT_IN_CPROJ (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree op0) { { /* #line 3545 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { op0 }; /* #line 3545 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (!HONOR_INFINITIES (type)) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3546, %s:%d\n", __FILE__, __LINE__); res_ops[0] = captures[0]; *res_code = TREE_CODE (res_ops[0]); return true; } } switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case COMPLEX_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { switch (TREE_CODE (o20)) { case REAL_CST: { if (tree_expr_nonnegative_p (o21)) { { /* #line 3552 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 }; /* #line 3552 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (real_isinf (TREE_REAL_CST_PTR (captures[0]))) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3553, %s:%d\n", __FILE__, __LINE__); res_ops[0] = build_complex_inf (type, false); *res_code = TREE_CODE (res_ops[0]); return true; } } } break; } default:; } switch (TREE_CODE (o21)) { case REAL_CST: { { /* #line 3558 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 }; /* #line 3558 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (real_isinf (TREE_REAL_CST_PTR (captures[1]))) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3559, %s:%d\n", __FILE__, __LINE__); res_ops[0] = build_complex_inf (type, TREE_REAL_CST_PTR (captures[1])->sign); *res_code = TREE_CODE (res_ops[0]); return true; } } break; } default:; } } } break; } default:; } } break; default:; } return false; } static bool gimple_simplify_CFN_BUILT_IN_CPROJL (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree op0) { { /* #line 3545 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { op0 }; /* #line 3545 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (!HONOR_INFINITIES (type)) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3546, %s:%d\n", __FILE__, __LINE__); res_ops[0] = captures[0]; *res_code = TREE_CODE (res_ops[0]); return true; } } switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case COMPLEX_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { switch (TREE_CODE (o20)) { case REAL_CST: { if (tree_expr_nonnegative_p (o21)) { { /* #line 3552 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 }; /* #line 3552 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (real_isinf (TREE_REAL_CST_PTR (captures[0]))) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3553, %s:%d\n", __FILE__, __LINE__); res_ops[0] = build_complex_inf (type, false); *res_code = TREE_CODE (res_ops[0]); return true; } } } break; } default:; } switch (TREE_CODE (o21)) { case REAL_CST: { { /* #line 3558 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 }; /* #line 3558 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (real_isinf (TREE_REAL_CST_PTR (captures[1]))) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3559, %s:%d\n", __FILE__, __LINE__); res_ops[0] = build_complex_inf (type, TREE_REAL_CST_PTR (captures[1])->sign); *res_code = TREE_CODE (res_ops[0]); return true; } } break; } default:; } } } break; } default:; } } break; default:; } return false; } static bool gimple_simplify_CFN_BUILT_IN_SIGNBITF (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree op0) { if (tree_expr_nonnegative_p (op0)) { { /* #line 3698 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { op0 }; gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3698, %s:%d\n", __FILE__, __LINE__); res_ops[0] = integer_zero_node; *res_code = TREE_CODE (res_ops[0]); return true; } } { /* #line 3703 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { op0 }; /* #line 3703 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (!HONOR_SIGNED_ZEROS (captures[0])) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3704, %s:%d\n", __FILE__, __LINE__); *res_code = NOP_EXPR; { tree ops1[2], res; ops1[0] = captures[0]; ops1[1] = build_real (TREE_TYPE (captures[0]), dconst0); code_helper tem_code = LT_EXPR; tree tem_ops[3] = { ops1[0], ops1[1] }; gimple_resimplify2 (lseq, &tem_code, boolean_type_node, tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, boolean_type_node, tem_ops, lseq); if (!res) return false; res_ops[0] = res; } gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } return false; } static bool gimple_simplify_CFN_BUILT_IN_SIGNBIT (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree op0) { if (tree_expr_nonnegative_p (op0)) { { /* #line 3698 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { op0 }; gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3698, %s:%d\n", __FILE__, __LINE__); res_ops[0] = integer_zero_node; *res_code = TREE_CODE (res_ops[0]); return true; } } { /* #line 3703 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { op0 }; /* #line 3703 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (!HONOR_SIGNED_ZEROS (captures[0])) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3704, %s:%d\n", __FILE__, __LINE__); *res_code = NOP_EXPR; { tree ops1[2], res; ops1[0] = captures[0]; ops1[1] = build_real (TREE_TYPE (captures[0]), dconst0); code_helper tem_code = LT_EXPR; tree tem_ops[3] = { ops1[0], ops1[1] }; gimple_resimplify2 (lseq, &tem_code, boolean_type_node, tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, boolean_type_node, tem_ops, lseq); if (!res) return false; res_ops[0] = res; } gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } return false; } static bool gimple_simplify_CFN_BUILT_IN_SIGNBITL (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree op0) { if (tree_expr_nonnegative_p (op0)) { { /* #line 3698 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { op0 }; gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3698, %s:%d\n", __FILE__, __LINE__); res_ops[0] = integer_zero_node; *res_code = TREE_CODE (res_ops[0]); return true; } } { /* #line 3703 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { op0 }; /* #line 3703 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (!HONOR_SIGNED_ZEROS (captures[0])) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3704, %s:%d\n", __FILE__, __LINE__); *res_code = NOP_EXPR; { tree ops1[2], res; ops1[0] = captures[0]; ops1[1] = build_real (TREE_TYPE (captures[0]), dconst0); code_helper tem_code = LT_EXPR; tree tem_ops[3] = { ops1[0], ops1[1] }; gimple_resimplify2 (lseq, &tem_code, boolean_type_node, tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, boolean_type_node, tem_ops, lseq); if (!res) return false; res_ops[0] = res; } gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } return false; } static bool gimple_simplify (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree), code_helper code, tree type, tree op0) { switch (code.get_rep()) { case -CFN_BUILT_IN_COSF: return gimple_simplify_CFN_BUILT_IN_COSF (res_code, res_ops, seq, valueize, code, type, op0); case -CFN_BUILT_IN_COS: return gimple_simplify_CFN_BUILT_IN_COS (res_code, res_ops, seq, valueize, code, type, op0); case -CFN_BUILT_IN_COSL: return gimple_simplify_CFN_BUILT_IN_COSL (res_code, res_ops, seq, valueize, code, type, op0); case -CFN_COS: return gimple_simplify_CFN_COS (res_code, res_ops, seq, valueize, code, type, op0); case -CFN_BUILT_IN_COSHF: return gimple_simplify_CFN_BUILT_IN_COSHF (res_code, res_ops, seq, valueize, code, type, op0); case -CFN_BUILT_IN_COSH: return gimple_simplify_CFN_BUILT_IN_COSH (res_code, res_ops, seq, valueize, code, type, op0); case -CFN_BUILT_IN_COSHL: return gimple_simplify_CFN_BUILT_IN_COSHL (res_code, res_ops, seq, valueize, code, type, op0); case -CFN_BUILT_IN_CCOSF: return gimple_simplify_CFN_BUILT_IN_CCOSF (res_code, res_ops, seq, valueize, code, type, op0); case -CFN_BUILT_IN_CCOS: return gimple_simplify_CFN_BUILT_IN_CCOS (res_code, res_ops, seq, valueize, code, type, op0); case -CFN_BUILT_IN_CCOSL: return gimple_simplify_CFN_BUILT_IN_CCOSL (res_code, res_ops, seq, valueize, code, type, op0); case -CFN_BUILT_IN_CCOSHF: return gimple_simplify_CFN_BUILT_IN_CCOSHF (res_code, res_ops, seq, valueize, code, type, op0); case -CFN_BUILT_IN_CCOSH: return gimple_simplify_CFN_BUILT_IN_CCOSH (res_code, res_ops, seq, valueize, code, type, op0); case -CFN_BUILT_IN_CCOSHL: return gimple_simplify_CFN_BUILT_IN_CCOSHL (res_code, res_ops, seq, valueize, code, type, op0); case -CFN_BUILT_IN_CABSF: return gimple_simplify_CFN_BUILT_IN_CABSF (res_code, res_ops, seq, valueize, code, type, op0); case -CFN_BUILT_IN_CABS: return gimple_simplify_CFN_BUILT_IN_CABS (res_code, res_ops, seq, valueize, code, type, op0); case -CFN_BUILT_IN_CABSL: return gimple_simplify_CFN_BUILT_IN_CABSL (res_code, res_ops, seq, valueize, code, type, op0); case ABS_EXPR: return gimple_simplify_ABS_EXPR (res_code, res_ops, seq, valueize, code, type, op0); case NEGATE_EXPR: return gimple_simplify_NEGATE_EXPR (res_code, res_ops, seq, valueize, code, type, op0); case BIT_NOT_EXPR: return gimple_simplify_BIT_NOT_EXPR (res_code, res_ops, seq, valueize, code, type, op0); CASE_CONVERT: return gimple_simplify_CONVERT_EXPR (res_code, res_ops, seq, valueize, code, type, op0); case VIEW_CONVERT_EXPR: return gimple_simplify_VIEW_CONVERT_EXPR (res_code, res_ops, seq, valueize, code, type, op0); case FLOAT_EXPR: return gimple_simplify_FLOAT_EXPR (res_code, res_ops, seq, valueize, code, type, op0); case FIX_TRUNC_EXPR: return gimple_simplify_FIX_TRUNC_EXPR (res_code, res_ops, seq, valueize, code, type, op0); case PAREN_EXPR: return gimple_simplify_PAREN_EXPR (res_code, res_ops, seq, valueize, code, type, op0); case REALPART_EXPR: return gimple_simplify_REALPART_EXPR (res_code, res_ops, seq, valueize, code, type, op0); case IMAGPART_EXPR: return gimple_simplify_IMAGPART_EXPR (res_code, res_ops, seq, valueize, code, type, op0); case CONJ_EXPR: return gimple_simplify_CONJ_EXPR (res_code, res_ops, seq, valueize, code, type, op0); case -CFN_BUILT_IN_BSWAP16: return gimple_simplify_CFN_BUILT_IN_BSWAP16 (res_code, res_ops, seq, valueize, code, type, op0); case -CFN_BUILT_IN_BSWAP32: return gimple_simplify_CFN_BUILT_IN_BSWAP32 (res_code, res_ops, seq, valueize, code, type, op0); case -CFN_BUILT_IN_BSWAP64: return gimple_simplify_CFN_BUILT_IN_BSWAP64 (res_code, res_ops, seq, valueize, code, type, op0); case -CFN_BUILT_IN_LOGF: return gimple_simplify_CFN_BUILT_IN_LOGF (res_code, res_ops, seq, valueize, code, type, op0); case -CFN_BUILT_IN_LOG: return gimple_simplify_CFN_BUILT_IN_LOG (res_code, res_ops, seq, valueize, code, type, op0); case -CFN_BUILT_IN_LOGL: return gimple_simplify_CFN_BUILT_IN_LOGL (res_code, res_ops, seq, valueize, code, type, op0); case -CFN_LOG: return gimple_simplify_CFN_LOG (res_code, res_ops, seq, valueize, code, type, op0); case -CFN_BUILT_IN_LOG2F: return gimple_simplify_CFN_BUILT_IN_LOG2F (res_code, res_ops, seq, valueize, code, type, op0); case -CFN_BUILT_IN_LOG2: return gimple_simplify_CFN_BUILT_IN_LOG2 (res_code, res_ops, seq, valueize, code, type, op0); case -CFN_BUILT_IN_LOG2L: return gimple_simplify_CFN_BUILT_IN_LOG2L (res_code, res_ops, seq, valueize, code, type, op0); case -CFN_LOG2: return gimple_simplify_CFN_LOG2 (res_code, res_ops, seq, valueize, code, type, op0); case -CFN_BUILT_IN_LOG10F: return gimple_simplify_CFN_BUILT_IN_LOG10F (res_code, res_ops, seq, valueize, code, type, op0); case -CFN_BUILT_IN_LOG10: return gimple_simplify_CFN_BUILT_IN_LOG10 (res_code, res_ops, seq, valueize, code, type, op0); case -CFN_BUILT_IN_LOG10L: return gimple_simplify_CFN_BUILT_IN_LOG10L (res_code, res_ops, seq, valueize, code, type, op0); case -CFN_LOG10: return gimple_simplify_CFN_LOG10 (res_code, res_ops, seq, valueize, code, type, op0); case -CFN_BUILT_IN_EXPF: return gimple_simplify_CFN_BUILT_IN_EXPF (res_code, res_ops, seq, valueize, code, type, op0); case -CFN_BUILT_IN_EXP: return gimple_simplify_CFN_BUILT_IN_EXP (res_code, res_ops, seq, valueize, code, type, op0); case -CFN_BUILT_IN_EXPL: return gimple_simplify_CFN_BUILT_IN_EXPL (res_code, res_ops, seq, valueize, code, type, op0); case -CFN_EXP: return gimple_simplify_CFN_EXP (res_code, res_ops, seq, valueize, code, type, op0); case -CFN_BUILT_IN_EXP2F: return gimple_simplify_CFN_BUILT_IN_EXP2F (res_code, res_ops, seq, valueize, code, type, op0); case -CFN_BUILT_IN_EXP2: return gimple_simplify_CFN_BUILT_IN_EXP2 (res_code, res_ops, seq, valueize, code, type, op0); case -CFN_BUILT_IN_EXP2L: return gimple_simplify_CFN_BUILT_IN_EXP2L (res_code, res_ops, seq, valueize, code, type, op0); case -CFN_EXP2: return gimple_simplify_CFN_EXP2 (res_code, res_ops, seq, valueize, code, type, op0); case -CFN_BUILT_IN_EXP10F: return gimple_simplify_CFN_BUILT_IN_EXP10F (res_code, res_ops, seq, valueize, code, type, op0); case -CFN_BUILT_IN_EXP10: return gimple_simplify_CFN_BUILT_IN_EXP10 (res_code, res_ops, seq, valueize, code, type, op0); case -CFN_BUILT_IN_EXP10L: return gimple_simplify_CFN_BUILT_IN_EXP10L (res_code, res_ops, seq, valueize, code, type, op0); case -CFN_EXP10: return gimple_simplify_CFN_EXP10 (res_code, res_ops, seq, valueize, code, type, op0); case -CFN_BUILT_IN_POW10F: return gimple_simplify_CFN_BUILT_IN_POW10F (res_code, res_ops, seq, valueize, code, type, op0); case -CFN_BUILT_IN_POW10: return gimple_simplify_CFN_BUILT_IN_POW10 (res_code, res_ops, seq, valueize, code, type, op0); case -CFN_BUILT_IN_POW10L: return gimple_simplify_CFN_BUILT_IN_POW10L (res_code, res_ops, seq, valueize, code, type, op0); case -CFN_BUILT_IN_SQRTF: return gimple_simplify_CFN_BUILT_IN_SQRTF (res_code, res_ops, seq, valueize, code, type, op0); case -CFN_BUILT_IN_SQRT: return gimple_simplify_CFN_BUILT_IN_SQRT (res_code, res_ops, seq, valueize, code, type, op0); case -CFN_BUILT_IN_SQRTL: return gimple_simplify_CFN_BUILT_IN_SQRTL (res_code, res_ops, seq, valueize, code, type, op0); case -CFN_SQRT: return gimple_simplify_CFN_SQRT (res_code, res_ops, seq, valueize, code, type, op0); case -CFN_BUILT_IN_CBRTF: return gimple_simplify_CFN_BUILT_IN_CBRTF (res_code, res_ops, seq, valueize, code, type, op0); case -CFN_BUILT_IN_CBRT: return gimple_simplify_CFN_BUILT_IN_CBRT (res_code, res_ops, seq, valueize, code, type, op0); case -CFN_BUILT_IN_CBRTL: return gimple_simplify_CFN_BUILT_IN_CBRTL (res_code, res_ops, seq, valueize, code, type, op0); case -CFN_BUILT_IN_TANF: return gimple_simplify_CFN_BUILT_IN_TANF (res_code, res_ops, seq, valueize, code, type, op0); case -CFN_BUILT_IN_TAN: return gimple_simplify_CFN_BUILT_IN_TAN (res_code, res_ops, seq, valueize, code, type, op0); case -CFN_BUILT_IN_TANL: return gimple_simplify_CFN_BUILT_IN_TANL (res_code, res_ops, seq, valueize, code, type, op0); case -CFN_TAN: return gimple_simplify_CFN_TAN (res_code, res_ops, seq, valueize, code, type, op0); case -CFN_BUILT_IN_TRUNCF: return gimple_simplify_CFN_BUILT_IN_TRUNCF (res_code, res_ops, seq, valueize, code, type, op0); case -CFN_BUILT_IN_TRUNC: return gimple_simplify_CFN_BUILT_IN_TRUNC (res_code, res_ops, seq, valueize, code, type, op0); case -CFN_BUILT_IN_TRUNCL: return gimple_simplify_CFN_BUILT_IN_TRUNCL (res_code, res_ops, seq, valueize, code, type, op0); case -CFN_TRUNC: return gimple_simplify_CFN_TRUNC (res_code, res_ops, seq, valueize, code, type, op0); case -CFN_BUILT_IN_FLOORF: return gimple_simplify_CFN_BUILT_IN_FLOORF (res_code, res_ops, seq, valueize, code, type, op0); case -CFN_BUILT_IN_FLOOR: return gimple_simplify_CFN_BUILT_IN_FLOOR (res_code, res_ops, seq, valueize, code, type, op0); case -CFN_BUILT_IN_FLOORL: return gimple_simplify_CFN_BUILT_IN_FLOORL (res_code, res_ops, seq, valueize, code, type, op0); case -CFN_FLOOR: return gimple_simplify_CFN_FLOOR (res_code, res_ops, seq, valueize, code, type, op0); case -CFN_BUILT_IN_CEILF: return gimple_simplify_CFN_BUILT_IN_CEILF (res_code, res_ops, seq, valueize, code, type, op0); case -CFN_BUILT_IN_CEIL: return gimple_simplify_CFN_BUILT_IN_CEIL (res_code, res_ops, seq, valueize, code, type, op0); case -CFN_BUILT_IN_CEILL: return gimple_simplify_CFN_BUILT_IN_CEILL (res_code, res_ops, seq, valueize, code, type, op0); case -CFN_CEIL: return gimple_simplify_CFN_CEIL (res_code, res_ops, seq, valueize, code, type, op0); case -CFN_BUILT_IN_ROUNDF: return gimple_simplify_CFN_BUILT_IN_ROUNDF (res_code, res_ops, seq, valueize, code, type, op0); case -CFN_BUILT_IN_ROUND: return gimple_simplify_CFN_BUILT_IN_ROUND (res_code, res_ops, seq, valueize, code, type, op0); case -CFN_BUILT_IN_ROUNDL: return gimple_simplify_CFN_BUILT_IN_ROUNDL (res_code, res_ops, seq, valueize, code, type, op0); case -CFN_ROUND: return gimple_simplify_CFN_ROUND (res_code, res_ops, seq, valueize, code, type, op0); case -CFN_BUILT_IN_NEARBYINTF: return gimple_simplify_CFN_BUILT_IN_NEARBYINTF (res_code, res_ops, seq, valueize, code, type, op0); case -CFN_BUILT_IN_NEARBYINT: return gimple_simplify_CFN_BUILT_IN_NEARBYINT (res_code, res_ops, seq, valueize, code, type, op0); case -CFN_BUILT_IN_NEARBYINTL: return gimple_simplify_CFN_BUILT_IN_NEARBYINTL (res_code, res_ops, seq, valueize, code, type, op0); case -CFN_NEARBYINT: return gimple_simplify_CFN_NEARBYINT (res_code, res_ops, seq, valueize, code, type, op0); case -CFN_BUILT_IN_RINTF: return gimple_simplify_CFN_BUILT_IN_RINTF (res_code, res_ops, seq, valueize, code, type, op0); case -CFN_BUILT_IN_RINT: return gimple_simplify_CFN_BUILT_IN_RINT (res_code, res_ops, seq, valueize, code, type, op0); case -CFN_BUILT_IN_RINTL: return gimple_simplify_CFN_BUILT_IN_RINTL (res_code, res_ops, seq, valueize, code, type, op0); case -CFN_RINT: return gimple_simplify_CFN_RINT (res_code, res_ops, seq, valueize, code, type, op0); case -CFN_BUILT_IN_CEXPF: return gimple_simplify_CFN_BUILT_IN_CEXPF (res_code, res_ops, seq, valueize, code, type, op0); case -CFN_BUILT_IN_CEXP: return gimple_simplify_CFN_BUILT_IN_CEXP (res_code, res_ops, seq, valueize, code, type, op0); case -CFN_BUILT_IN_CEXPL: return gimple_simplify_CFN_BUILT_IN_CEXPL (res_code, res_ops, seq, valueize, code, type, op0); case -CFN_BUILT_IN_IFLOORL: return gimple_simplify_CFN_BUILT_IN_IFLOORL (res_code, res_ops, seq, valueize, code, type, op0); case -CFN_BUILT_IN_LFLOORL: return gimple_simplify_CFN_BUILT_IN_LFLOORL (res_code, res_ops, seq, valueize, code, type, op0); case -CFN_BUILT_IN_LLFLOORL: return gimple_simplify_CFN_BUILT_IN_LLFLOORL (res_code, res_ops, seq, valueize, code, type, op0); case -CFN_BUILT_IN_ICEILL: return gimple_simplify_CFN_BUILT_IN_ICEILL (res_code, res_ops, seq, valueize, code, type, op0); case -CFN_BUILT_IN_LCEILL: return gimple_simplify_CFN_BUILT_IN_LCEILL (res_code, res_ops, seq, valueize, code, type, op0); case -CFN_BUILT_IN_LLCEILL: return gimple_simplify_CFN_BUILT_IN_LLCEILL (res_code, res_ops, seq, valueize, code, type, op0); case -CFN_BUILT_IN_IROUNDL: return gimple_simplify_CFN_BUILT_IN_IROUNDL (res_code, res_ops, seq, valueize, code, type, op0); case -CFN_BUILT_IN_LROUNDL: return gimple_simplify_CFN_BUILT_IN_LROUNDL (res_code, res_ops, seq, valueize, code, type, op0); case -CFN_BUILT_IN_LLROUNDL: return gimple_simplify_CFN_BUILT_IN_LLROUNDL (res_code, res_ops, seq, valueize, code, type, op0); case -CFN_BUILT_IN_IRINTL: return gimple_simplify_CFN_BUILT_IN_IRINTL (res_code, res_ops, seq, valueize, code, type, op0); case -CFN_BUILT_IN_LRINTL: return gimple_simplify_CFN_BUILT_IN_LRINTL (res_code, res_ops, seq, valueize, code, type, op0); case -CFN_BUILT_IN_LLRINTL: return gimple_simplify_CFN_BUILT_IN_LLRINTL (res_code, res_ops, seq, valueize, code, type, op0); case -CFN_BUILT_IN_IFLOOR: return gimple_simplify_CFN_BUILT_IN_IFLOOR (res_code, res_ops, seq, valueize, code, type, op0); case -CFN_BUILT_IN_LFLOOR: return gimple_simplify_CFN_BUILT_IN_LFLOOR (res_code, res_ops, seq, valueize, code, type, op0); case -CFN_BUILT_IN_LLFLOOR: return gimple_simplify_CFN_BUILT_IN_LLFLOOR (res_code, res_ops, seq, valueize, code, type, op0); case -CFN_BUILT_IN_ICEIL: return gimple_simplify_CFN_BUILT_IN_ICEIL (res_code, res_ops, seq, valueize, code, type, op0); case -CFN_BUILT_IN_LCEIL: return gimple_simplify_CFN_BUILT_IN_LCEIL (res_code, res_ops, seq, valueize, code, type, op0); case -CFN_BUILT_IN_LLCEIL: return gimple_simplify_CFN_BUILT_IN_LLCEIL (res_code, res_ops, seq, valueize, code, type, op0); case -CFN_BUILT_IN_IROUND: return gimple_simplify_CFN_BUILT_IN_IROUND (res_code, res_ops, seq, valueize, code, type, op0); case -CFN_BUILT_IN_LROUND: return gimple_simplify_CFN_BUILT_IN_LROUND (res_code, res_ops, seq, valueize, code, type, op0); case -CFN_BUILT_IN_LLROUND: return gimple_simplify_CFN_BUILT_IN_LLROUND (res_code, res_ops, seq, valueize, code, type, op0); case -CFN_BUILT_IN_IRINT: return gimple_simplify_CFN_BUILT_IN_IRINT (res_code, res_ops, seq, valueize, code, type, op0); case -CFN_BUILT_IN_LRINT: return gimple_simplify_CFN_BUILT_IN_LRINT (res_code, res_ops, seq, valueize, code, type, op0); case -CFN_BUILT_IN_LLRINT: return gimple_simplify_CFN_BUILT_IN_LLRINT (res_code, res_ops, seq, valueize, code, type, op0); case -CFN_BUILT_IN_IFLOORF: return gimple_simplify_CFN_BUILT_IN_IFLOORF (res_code, res_ops, seq, valueize, code, type, op0); case -CFN_BUILT_IN_LFLOORF: return gimple_simplify_CFN_BUILT_IN_LFLOORF (res_code, res_ops, seq, valueize, code, type, op0); case -CFN_BUILT_IN_LLFLOORF: return gimple_simplify_CFN_BUILT_IN_LLFLOORF (res_code, res_ops, seq, valueize, code, type, op0); case -CFN_BUILT_IN_ICEILF: return gimple_simplify_CFN_BUILT_IN_ICEILF (res_code, res_ops, seq, valueize, code, type, op0); case -CFN_BUILT_IN_LCEILF: return gimple_simplify_CFN_BUILT_IN_LCEILF (res_code, res_ops, seq, valueize, code, type, op0); case -CFN_BUILT_IN_LLCEILF: return gimple_simplify_CFN_BUILT_IN_LLCEILF (res_code, res_ops, seq, valueize, code, type, op0); case -CFN_BUILT_IN_IROUNDF: return gimple_simplify_CFN_BUILT_IN_IROUNDF (res_code, res_ops, seq, valueize, code, type, op0); case -CFN_BUILT_IN_LROUNDF: return gimple_simplify_CFN_BUILT_IN_LROUNDF (res_code, res_ops, seq, valueize, code, type, op0); case -CFN_BUILT_IN_LLROUNDF: return gimple_simplify_CFN_BUILT_IN_LLROUNDF (res_code, res_ops, seq, valueize, code, type, op0); case -CFN_BUILT_IN_IRINTF: return gimple_simplify_CFN_BUILT_IN_IRINTF (res_code, res_ops, seq, valueize, code, type, op0); case -CFN_BUILT_IN_LRINTF: return gimple_simplify_CFN_BUILT_IN_LRINTF (res_code, res_ops, seq, valueize, code, type, op0); case -CFN_BUILT_IN_LLRINTF: return gimple_simplify_CFN_BUILT_IN_LLRINTF (res_code, res_ops, seq, valueize, code, type, op0); case -CFN_BUILT_IN_CPROJF: return gimple_simplify_CFN_BUILT_IN_CPROJF (res_code, res_ops, seq, valueize, code, type, op0); case -CFN_BUILT_IN_CPROJ: return gimple_simplify_CFN_BUILT_IN_CPROJ (res_code, res_ops, seq, valueize, code, type, op0); case -CFN_BUILT_IN_CPROJL: return gimple_simplify_CFN_BUILT_IN_CPROJL (res_code, res_ops, seq, valueize, code, type, op0); case -CFN_BUILT_IN_SIGNBITF: return gimple_simplify_CFN_BUILT_IN_SIGNBITF (res_code, res_ops, seq, valueize, code, type, op0); case -CFN_BUILT_IN_SIGNBIT: return gimple_simplify_CFN_BUILT_IN_SIGNBIT (res_code, res_ops, seq, valueize, code, type, op0); case -CFN_BUILT_IN_SIGNBITL: return gimple_simplify_CFN_BUILT_IN_SIGNBITL (res_code, res_ops, seq, valueize, code, type, op0); default:; } return false; } static bool gimple_simplify_PLUS_EXPR (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree op0, tree op1) { if (integer_zerop (op1)) { { /* #line 84 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { op0 }; gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:84, %s:%d\n", __FILE__, __LINE__); res_ops[0] = captures[0]; *res_code = TREE_CODE (res_ops[0]); return true; } } if (real_zerop (op1)) { { /* #line 95 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 }; if (gimple_simplify_165 (res_code, res_ops, seq, valueize, type, captures)) return true; } } switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { CASE_CONVERT: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { CASE_CONVERT: { tree o40 = gimple_assign_rhs1 (def); if ((o40 = do_valueize (valueize, o40))) { switch (TREE_CODE (o40)) { case SSA_NAME: if (do_valueize (valueize, o40) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (o40); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case BIT_NOT_EXPR: { tree o50 = gimple_assign_rhs1 (def); if ((o50 = do_valueize (valueize, o50))) { if (o50 == o20 || (operand_equal_p (o50, o20, 0) && types_match (o50, o20))) { { /* #line 624 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; if (gimple_simplify_120 (res_code, res_ops, seq, valueize, type, captures, PLUS_EXPR)) return true; } } } break; } default:; } } break; default:; } } break; } default:; } } break; default:; } switch (TREE_CODE (o20)) { case SSA_NAME: if (do_valueize (valueize, o20) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (o20); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case BIT_NOT_EXPR: { tree o30 = gimple_assign_rhs1 (def); if ((o30 = do_valueize (valueize, o30))) { switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { CASE_CONVERT: { tree o50 = gimple_assign_rhs1 (def); if ((o50 = do_valueize (valueize, o50))) { if (o50 == o30 || (operand_equal_p (o50, o30, 0) && types_match (o50, o30))) { { /* #line 624 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o30 }; if (gimple_simplify_120 (res_code, res_ops, seq, valueize, type, captures, PLUS_EXPR)) return true; } } } break; } default:; } } break; default:; } } break; } default:; } } break; default:; } } break; } default:; } } break; default:; } if (real_zerop (op0)) { { /* #line 95 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { op1, op0 }; if (gimple_simplify_165 (res_code, res_ops, seq, valueize, type, captures)) return true; } } switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case BIT_NOT_EXPR: { tree o30 = gimple_assign_rhs1 (def); if ((o30 = do_valueize (valueize, o30))) { if (o30 == op0 || (operand_equal_p (o30, op0, 0) && types_match (o30, op0))) { { /* #line 624 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { op0 }; if (gimple_simplify_120 (res_code, res_ops, seq, valueize, type, captures, PLUS_EXPR)) return true; } } } break; } default:; } } break; default:; } switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case BIT_NOT_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { if (op1 == o20 || (operand_equal_p (op1, o20, 0) && types_match (op1, o20))) { { /* #line 624 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; if (gimple_simplify_120 (res_code, res_ops, seq, valueize, type, captures, PLUS_EXPR)) return true; } } } break; } default:; } } break; default:; } switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case BIT_AND_EXPR: { tree o30 = gimple_assign_rhs1 (def); if ((o30 = do_valueize (valueize, o30))) { tree o31 = gimple_assign_rhs2 (def); if ((o31 = do_valueize (valueize, o31))) { if (tree_swap_operands_p (o30, o31)) std::swap (o30, o31); if (o30 == op0 || (operand_equal_p (o30, op0, 0) && types_match (o30, op0))) { if (integer_onep (o31)) { { /* #line 659 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { op0, op1, o31 }; if (gimple_simplify_70 (res_code, res_ops, seq, valueize, type, captures)) return true; } } } } } break; } default:; } } break; default:; } switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case BIT_AND_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { if (tree_swap_operands_p (o20, o21)) std::swap (o20, o21); if (integer_onep (o21)) { if (op1 == o20 || (operand_equal_p (op1, o20, 0) && types_match (op1, o20))) { { /* #line 659 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o20, op0, o21 }; if (gimple_simplify_70 (res_code, res_ops, seq, valueize, type, captures)) return true; } } } switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case BIT_XOR_EXPR: { tree o50 = gimple_assign_rhs1 (def); if ((o50 = do_valueize (valueize, o50))) { tree o51 = gimple_assign_rhs2 (def); if ((o51 = do_valueize (valueize, o51))) { if (tree_swap_operands_p (o50, o51)) std::swap (o50, o51); if (o50 == o20 || (operand_equal_p (o50, o20, 0) && types_match (o50, o20))) { if (o51 == o21 || (operand_equal_p (o51, o21, 0) && types_match (o51, o21))) { { /* #line 692 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 }; if (gimple_simplify_85 (res_code, res_ops, seq, valueize, type, captures, PLUS_EXPR)) return true; } } } } } break; } case BIT_IOR_EXPR: { tree o50 = gimple_assign_rhs1 (def); if ((o50 = do_valueize (valueize, o50))) { tree o51 = gimple_assign_rhs2 (def); if ((o51 = do_valueize (valueize, o51))) { if (tree_swap_operands_p (o50, o51)) std::swap (o50, o51); if (o50 == o20 || (operand_equal_p (o50, o20, 0) && types_match (o50, o20))) { if (o51 == o21 || (operand_equal_p (o51, o21, 0) && types_match (o51, o21))) { { /* #line 697 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 }; if (gimple_simplify_161 (res_code, res_ops, seq, valueize, type, captures)) return true; } } } } } break; } default:; } } break; default:; } switch (TREE_CODE (o21)) { case INTEGER_CST: { switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { CASE_CONVERT: { tree o50 = gimple_assign_rhs1 (def); if ((o50 = do_valueize (valueize, o50))) { switch (TREE_CODE (o50)) { case SSA_NAME: if (do_valueize (valueize, o50) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (o50); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case BIT_AND_EXPR: { tree o60 = gimple_assign_rhs1 (def); if ((o60 = do_valueize (valueize, o60))) { tree o61 = gimple_assign_rhs2 (def); if ((o61 = do_valueize (valueize, o61))) { if (tree_swap_operands_p (o60, o61)) std::swap (o60, o61); switch (TREE_CODE (o61)) { case INTEGER_CST: { { /* #line 751 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { op0, o20, o21, o50, o60, o61 }; if (gimple_simplify_194 (res_code, res_ops, seq, valueize, type, captures, PLUS_EXPR)) return true; } break; } default:; } } } break; } default:; } } break; default:; } } break; } case BIT_AND_EXPR: { tree o50 = gimple_assign_rhs1 (def); if ((o50 = do_valueize (valueize, o50))) { tree o51 = gimple_assign_rhs2 (def); if ((o51 = do_valueize (valueize, o51))) { if (tree_swap_operands_p (o50, o51)) std::swap (o50, o51); switch (TREE_CODE (o51)) { case INTEGER_CST: { { /* #line 751 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { op0, o20, o21, op1, o50, o51 }; if (gimple_simplify_194 (res_code, res_ops, seq, valueize, type, captures, PLUS_EXPR)) return true; } break; } default:; } } } break; } default:; } } break; default:; } break; } default:; } } } break; } case BIT_XOR_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { if (tree_swap_operands_p (o20, o21)) std::swap (o20, o21); switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case BIT_AND_EXPR: { tree o50 = gimple_assign_rhs1 (def); if ((o50 = do_valueize (valueize, o50))) { tree o51 = gimple_assign_rhs2 (def); if ((o51 = do_valueize (valueize, o51))) { if (tree_swap_operands_p (o50, o51)) std::swap (o50, o51); if (o50 == o20 || (operand_equal_p (o50, o20, 0) && types_match (o50, o20))) { if (o51 == o21 || (operand_equal_p (o51, o21, 0) && types_match (o51, o21))) { { /* #line 692 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 }; if (gimple_simplify_85 (res_code, res_ops, seq, valueize, type, captures, PLUS_EXPR)) return true; } } } } } break; } default:; } } break; default:; } } } break; } case BIT_IOR_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { if (tree_swap_operands_p (o20, o21)) std::swap (o20, o21); switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case BIT_AND_EXPR: { tree o50 = gimple_assign_rhs1 (def); if ((o50 = do_valueize (valueize, o50))) { tree o51 = gimple_assign_rhs2 (def); if ((o51 = do_valueize (valueize, o51))) { if (tree_swap_operands_p (o50, o51)) std::swap (o50, o51); if (o50 == o20 || (operand_equal_p (o50, o20, 0) && types_match (o50, o20))) { if (o51 == o21 || (operand_equal_p (o51, o21, 0) && types_match (o51, o21))) { { /* #line 697 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 }; if (gimple_simplify_161 (res_code, res_ops, seq, valueize, type, captures)) return true; } } } } } break; } default:; } } break; default:; } } } break; } CASE_CONVERT: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { switch (TREE_CODE (o20)) { case SSA_NAME: if (do_valueize (valueize, o20) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (o20); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case BIT_AND_EXPR: { tree o30 = gimple_assign_rhs1 (def); if ((o30 = do_valueize (valueize, o30))) { tree o31 = gimple_assign_rhs2 (def); if ((o31 = do_valueize (valueize, o31))) { if (tree_swap_operands_p (o30, o31)) std::swap (o30, o31); switch (TREE_CODE (o31)) { case INTEGER_CST: { switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { CASE_CONVERT: { tree o60 = gimple_assign_rhs1 (def); if ((o60 = do_valueize (valueize, o60))) { switch (TREE_CODE (o60)) { case SSA_NAME: if (do_valueize (valueize, o60) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (o60); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case BIT_AND_EXPR: { tree o70 = gimple_assign_rhs1 (def); if ((o70 = do_valueize (valueize, o70))) { tree o71 = gimple_assign_rhs2 (def); if ((o71 = do_valueize (valueize, o71))) { if (tree_swap_operands_p (o70, o71)) std::swap (o70, o71); switch (TREE_CODE (o71)) { case INTEGER_CST: { { /* #line 751 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { o20, o30, o31, o60, o70, o71 }; if (gimple_simplify_194 (res_code, res_ops, seq, valueize, type, captures, PLUS_EXPR)) return true; } break; } default:; } } } break; } default:; } } break; default:; } } break; } case BIT_AND_EXPR: { tree o60 = gimple_assign_rhs1 (def); if ((o60 = do_valueize (valueize, o60))) { tree o61 = gimple_assign_rhs2 (def); if ((o61 = do_valueize (valueize, o61))) { if (tree_swap_operands_p (o60, o61)) std::swap (o60, o61); switch (TREE_CODE (o61)) { case INTEGER_CST: { { /* #line 751 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { o20, o30, o31, op1, o60, o61 }; if (gimple_simplify_194 (res_code, res_ops, seq, valueize, type, captures, PLUS_EXPR)) return true; } break; } default:; } } } break; } default:; } } break; default:; } break; } default:; } } } break; } default:; } } break; default:; } } break; } default:; } } break; default:; } switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { CASE_CONVERT: { tree o30 = gimple_assign_rhs1 (def); if ((o30 = do_valueize (valueize, o30))) { switch (TREE_CODE (o30)) { case SSA_NAME: if (do_valueize (valueize, o30) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (o30); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case NEGATE_EXPR: { tree o40 = gimple_assign_rhs1 (def); if ((o40 = do_valueize (valueize, o40))) { { /* #line 1147 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { op0, o40 }; if (gimple_simplify_48 (res_code, res_ops, seq, valueize, type, captures)) return true; } } break; } default:; } } break; default:; } } break; } default:; } } break; default:; } switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { CASE_CONVERT: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { switch (TREE_CODE (o20)) { case SSA_NAME: if (do_valueize (valueize, o20) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (o20); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case NEGATE_EXPR: { tree o30 = gimple_assign_rhs1 (def); if ((o30 = do_valueize (valueize, o30))) { { /* #line 1147 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { op1, o30 }; if (gimple_simplify_48 (res_code, res_ops, seq, valueize, type, captures)) return true; } } break; } default:; } } break; default:; } } break; } default:; } } break; default:; } switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case NEGATE_EXPR: { tree o30 = gimple_assign_rhs1 (def); if ((o30 = do_valueize (valueize, o30))) { { /* #line 1147 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { op0, o30 }; if (gimple_simplify_48 (res_code, res_ops, seq, valueize, type, captures)) return true; } } break; } default:; } } break; default:; } switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case NEGATE_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { { /* #line 1147 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { op1, o20 }; if (gimple_simplify_48 (res_code, res_ops, seq, valueize, type, captures)) return true; } } break; } case MINUS_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { if (op1 == o21 || (operand_equal_p (op1, o21, 0) && types_match (op1, o21))) { { /* #line 1147 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 }; if (gimple_simplify_224 (res_code, res_ops, seq, valueize, type, captures)) return true; } } } } break; } default:; } } break; default:; } switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case MINUS_EXPR: { tree o30 = gimple_assign_rhs1 (def); if ((o30 = do_valueize (valueize, o30))) { tree o31 = gimple_assign_rhs2 (def); if ((o31 = do_valueize (valueize, o31))) { if (o31 == op0 || (operand_equal_p (o31, op0, 0) && types_match (o31, op0))) { { /* #line 1147 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o30, op0 }; if (gimple_simplify_224 (res_code, res_ops, seq, valueize, type, captures)) return true; } } } } break; } default:; } } break; default:; } switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case PLUS_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { if (tree_swap_operands_p (o20, o21)) std::swap (o20, o21); if (CONSTANT_CLASS_P (o21)) { if (CONSTANT_CLASS_P (op1)) { { /* #line 1147 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 }; if (gimple_simplify_116 (res_code, res_ops, seq, valueize, type, captures, PLUS_EXPR, PLUS_EXPR)) return true; } } } } } break; } case MINUS_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { if (CONSTANT_CLASS_P (o21)) { if (CONSTANT_CLASS_P (op1)) { { /* #line 1147 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 }; if (gimple_simplify_116 (res_code, res_ops, seq, valueize, type, captures, MINUS_EXPR, PLUS_EXPR)) return true; } } } if (CONSTANT_CLASS_P (o20)) { if (CONSTANT_CLASS_P (op1)) { { /* #line 1147 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 }; if (gimple_simplify_191 (res_code, res_ops, seq, valueize, type, captures, PLUS_EXPR)) return true; } } } } } break; } case BIT_NOT_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { if (op1 == o20 || (operand_equal_p (op1, o20, 0) && types_match (op1, o20))) { { /* #line 1147 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; if (gimple_simplify_11 (res_code, res_ops, seq, valueize, type, captures)) return true; } } } break; } default:; } } break; default:; } switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case BIT_NOT_EXPR: { tree o30 = gimple_assign_rhs1 (def); if ((o30 = do_valueize (valueize, o30))) { if (o30 == op0 || (operand_equal_p (o30, op0, 0) && types_match (o30, op0))) { { /* #line 1147 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { op0 }; if (gimple_simplify_11 (res_code, res_ops, seq, valueize, type, captures)) return true; } } } break; } default:; } } break; default:; } switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { CASE_CONVERT: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { switch (TREE_CODE (o20)) { case SSA_NAME: if (do_valueize (valueize, o20) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (o20); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case BIT_NOT_EXPR: { tree o30 = gimple_assign_rhs1 (def); if ((o30 = do_valueize (valueize, o30))) { if (integer_each_onep (op1)) { { /* #line 1147 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o30 }; if (gimple_simplify_164 (res_code, res_ops, seq, valueize, type, captures)) return true; } } } break; } default:; } } break; default:; } } break; } case BIT_NOT_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { if (integer_each_onep (op1)) { { /* #line 1147 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; if (gimple_simplify_164 (res_code, res_ops, seq, valueize, type, captures)) return true; } } } break; } default:; } } break; default:; } switch (TREE_CODE (op1)) { case REAL_CST: { { /* #line 1901 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 }; /* #line 1901 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (REAL_VALUE_NEGATIVE (TREE_REAL_CST (captures[1]))) { { /* #line 1902 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree tem = const_unop (NEGATE_EXPR, type, captures[1]); /* #line 1903 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (!TREE_OVERFLOW (tem) || !flag_trapping_math) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1904, %s:%d\n", __FILE__, __LINE__); *res_code = MINUS_EXPR; res_ops[0] = captures[0]; res_ops[1] = tem; gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } } } break; } default:; } if (op1 == op0 || (operand_equal_p (op1, op0, 0) && types_match (op1, op0))) { { /* #line 1909 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { op0 }; /* #line 1909 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (SCALAR_FLOAT_TYPE_P (type)) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1910, %s:%d\n", __FILE__, __LINE__); *res_code = MULT_EXPR; res_ops[0] = captures[0]; res_ops[1] = build_real (type, dconst2); gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } else { /* #line 1911 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (INTEGRAL_TYPE_P (type)) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1912, %s:%d\n", __FILE__, __LINE__); *res_code = MULT_EXPR; res_ops[0] = captures[0]; res_ops[1] = build_int_cst (type, 2); gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } } } switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case VIEW_CONVERT_EXPR: { tree o30 = TREE_OPERAND (gimple_assign_rhs1 (def), 0); if ((TREE_CODE (o30) == SSA_NAME || is_gimple_min_invariant (o30)) && (o30 = do_valueize (valueize, o30))) { switch (TREE_CODE (o30)) { case SSA_NAME: if (do_valueize (valueize, o30) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (o30); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case VEC_COND_EXPR: { tree o40 = gimple_assign_rhs1 (def); if ((o40 = do_valueize (valueize, o40))) { tree o41 = gimple_assign_rhs2 (def); if ((o41 = do_valueize (valueize, o41))) { tree o42 = gimple_assign_rhs3 (def); if ((o42 = do_valueize (valueize, o42))) { if (integer_each_onep (o41)) { if (integer_zerop (o42)) { { /* #line 2243 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { op0, o30, o40, o41, o42 }; if (gimple_simplify_38 (res_code, res_ops, seq, valueize, type, captures)) return true; } } } } } } break; } default:; } } break; default:; } } break; } default:; } } break; default:; } switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case VIEW_CONVERT_EXPR: { tree o20 = TREE_OPERAND (gimple_assign_rhs1 (def), 0); if ((TREE_CODE (o20) == SSA_NAME || is_gimple_min_invariant (o20)) && (o20 = do_valueize (valueize, o20))) { switch (TREE_CODE (o20)) { case SSA_NAME: if (do_valueize (valueize, o20) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (o20); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case VEC_COND_EXPR: { tree o30 = gimple_assign_rhs1 (def); if ((o30 = do_valueize (valueize, o30))) { tree o31 = gimple_assign_rhs2 (def); if ((o31 = do_valueize (valueize, o31))) { tree o32 = gimple_assign_rhs3 (def); if ((o32 = do_valueize (valueize, o32))) { if (integer_each_onep (o31)) { if (integer_zerop (o32)) { { /* #line 2243 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { op1, o20, o30, o31, o32 }; if (gimple_simplify_38 (res_code, res_ops, seq, valueize, type, captures)) return true; } } } } } } break; } default:; } } break; default:; } } break; } default:; } } break; default:; } switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case VEC_COND_EXPR: { tree o30 = gimple_assign_rhs1 (def); if ((o30 = do_valueize (valueize, o30))) { tree o31 = gimple_assign_rhs2 (def); if ((o31 = do_valueize (valueize, o31))) { tree o32 = gimple_assign_rhs3 (def); if ((o32 = do_valueize (valueize, o32))) { if (integer_each_onep (o31)) { if (integer_zerop (o32)) { { /* #line 2243 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { op0, op1, o30, o31, o32 }; if (gimple_simplify_38 (res_code, res_ops, seq, valueize, type, captures)) return true; } } } } } } break; } default:; } } break; default:; } switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case VEC_COND_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { tree o22 = gimple_assign_rhs3 (def); if ((o22 = do_valueize (valueize, o22))) { if (integer_each_onep (o21)) { if (integer_zerop (o22)) { { /* #line 2243 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { op1, op0, o20, o21, o22 }; if (gimple_simplify_38 (res_code, res_ops, seq, valueize, type, captures)) return true; } } } } } } break; } default:; } } break; default:; } return false; } static bool gimple_simplify_POINTER_PLUS_EXPR (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree op0, tree op1) { if (integer_zerop (op1)) { { /* #line 84 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { op0 }; gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:84, %s:%d\n", __FILE__, __LINE__); res_ops[0] = captures[0]; *res_code = TREE_CODE (res_ops[0]); return true; } } switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case POINTER_PLUS_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { { /* #line 1085 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o21, op1 }; gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]))) lseq = NULL; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1085, %s:%d\n", __FILE__, __LINE__); *res_code = POINTER_PLUS_EXPR; res_ops[0] = captures[1]; { tree ops1[2], res; ops1[0] = captures[2]; ops1[1] = captures[3]; code_helper tem_code = PLUS_EXPR; tree tem_ops[3] = { ops1[0], ops1[1] }; gimple_resimplify2 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[1] = res; } gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } } break; } default:; } } break; default:; } if (integer_zerop (op0)) { { /* #line 89 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { op1 }; gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:89, %s:%d\n", __FILE__, __LINE__); *res_code = NOP_EXPR; res_ops[0] = captures[0]; gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { CASE_CONVERT: { tree o30 = gimple_assign_rhs1 (def); if ((o30 = do_valueize (valueize, o30))) { switch (TREE_CODE (o30)) { case SSA_NAME: if (do_valueize (valueize, o30) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (o30); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case MINUS_EXPR: { tree o40 = gimple_assign_rhs1 (def); if ((o40 = do_valueize (valueize, o40))) { tree o41 = gimple_assign_rhs2 (def); if ((o41 = do_valueize (valueize, o41))) { switch (TREE_CODE (o40)) { case SSA_NAME: if (do_valueize (valueize, o40) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (o40); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { CASE_CONVERT: { tree o50 = gimple_assign_rhs1 (def); if ((o50 = do_valueize (valueize, o50))) { switch (TREE_CODE (o41)) { case SSA_NAME: if (do_valueize (valueize, o41) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (o41); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { CASE_CONVERT: { tree o70 = gimple_assign_rhs1 (def); if ((o70 = do_valueize (valueize, o70))) { if (o70 == op0 || (operand_equal_p (o70, op0, 0) && types_match (o70, op0))) { { /* #line 1098 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { op0, op1, o30, o50 }; /* #line 1098 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (TYPE_PRECISION (TREE_TYPE (captures[1])) == TYPE_PRECISION (TREE_TYPE (captures[2])) && ((1 && useless_type_conversion_p (type, TREE_TYPE (captures[3]))) || (0 && type == TREE_TYPE (captures[3])))) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1101, %s:%d\n", __FILE__, __LINE__); res_ops[0] = captures[3]; *res_code = TREE_CODE (res_ops[0]); return true; } } } } break; } default:; } } break; default:; } } break; } default:; } } break; default:; } } } break; } default:; } } break; default:; } } break; } case MINUS_EXPR: { tree o30 = gimple_assign_rhs1 (def); if ((o30 = do_valueize (valueize, o30))) { tree o31 = gimple_assign_rhs2 (def); if ((o31 = do_valueize (valueize, o31))) { switch (TREE_CODE (o30)) { case SSA_NAME: if (do_valueize (valueize, o30) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (o30); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { CASE_CONVERT: { tree o40 = gimple_assign_rhs1 (def); if ((o40 = do_valueize (valueize, o40))) { switch (TREE_CODE (o31)) { case SSA_NAME: if (do_valueize (valueize, o31) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (o31); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { CASE_CONVERT: { tree o60 = gimple_assign_rhs1 (def); if ((o60 = do_valueize (valueize, o60))) { if (o60 == op0 || (operand_equal_p (o60, op0, 0) && types_match (o60, op0))) { { /* #line 1098 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { op0, op1, op1, o40 }; /* #line 1098 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (TYPE_PRECISION (TREE_TYPE (captures[1])) == TYPE_PRECISION (TREE_TYPE (captures[2])) && ((1 && useless_type_conversion_p (type, TREE_TYPE (captures[3]))) || (0 && type == TREE_TYPE (captures[3])))) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1101, %s:%d\n", __FILE__, __LINE__); res_ops[0] = captures[3]; *res_code = TREE_CODE (res_ops[0]); return true; } } } } break; } default:; } } break; default:; } } break; } default:; } } break; default:; } } } break; } case NEGATE_EXPR: { tree o30 = gimple_assign_rhs1 (def); if ((o30 = do_valueize (valueize, o30))) { switch (TREE_CODE (o30)) { case SSA_NAME: if (do_valueize (valueize, o30) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (o30); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case BIT_AND_EXPR: { tree o40 = gimple_assign_rhs1 (def); if ((o40 = do_valueize (valueize, o40))) { tree o41 = gimple_assign_rhs2 (def); if ((o41 = do_valueize (valueize, o41))) { if (tree_swap_operands_p (o40, o41)) std::swap (o40, o41); switch (TREE_CODE (o40)) { case SSA_NAME: if (do_valueize (valueize, o40) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (o40); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { CASE_CONVERT: { tree o50 = gimple_assign_rhs1 (def); if ((o50 = do_valueize (valueize, o50))) { if (o50 == op0 || (operand_equal_p (o50, op0, 0) && types_match (o50, op0))) { switch (TREE_CODE (o41)) { case INTEGER_CST: { { /* #line 1112 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { op0, o41 }; { /* #line 1112 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree algn = wide_int_to_tree (TREE_TYPE (captures[0]), wi::bit_not (captures[1])); gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1113, %s:%d\n", __FILE__, __LINE__); *res_code = BIT_AND_EXPR; res_ops[0] = captures[0]; res_ops[1] = algn; gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } break; } default:; } } } break; } default:; } } break; default:; } } } break; } default:; } } break; default:; } } break; } default:; } } break; default:; } return false; } static bool gimple_simplify_MINUS_EXPR (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree op0, tree op1) { if (integer_zerop (op1)) { { /* #line 84 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { op0 }; gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:84, %s:%d\n", __FILE__, __LINE__); res_ops[0] = captures[0]; *res_code = TREE_CODE (res_ops[0]); return true; } } if (real_zerop (op1)) { { /* #line 101 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 }; /* #line 101 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (fold_real_zero_addition_p (type, captures[1], 1)) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:102, %s:%d\n", __FILE__, __LINE__); res_ops[0] = captures[0]; *res_code = TREE_CODE (res_ops[0]); return true; } } } if (op1 == op0 || (operand_equal_p (op1, op0, 0) && types_match (op1, op0))) { { /* #line 111 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { op0 }; /* #line 111 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (!FLOAT_TYPE_P (type) || !HONOR_NANS (type)) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:112, %s:%d\n", __FILE__, __LINE__); res_ops[0] = build_zero_cst (type); *res_code = TREE_CODE (res_ops[0]); return true; } } } switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { CASE_CONVERT: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { CASE_CONVERT: { tree o40 = gimple_assign_rhs1 (def); if ((o40 = do_valueize (valueize, o40))) { switch (TREE_CODE (o40)) { case SSA_NAME: if (do_valueize (valueize, o40) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (o40); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case MULT_EXPR: { tree o50 = gimple_assign_rhs1 (def); if ((o50 = do_valueize (valueize, o50))) { tree o51 = gimple_assign_rhs2 (def); if ((o51 = do_valueize (valueize, o51))) { if (tree_swap_operands_p (o50, o51)) std::swap (o50, o51); switch (TREE_CODE (o50)) { case SSA_NAME: if (do_valueize (valueize, o50) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (o50); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case TRUNC_DIV_EXPR: { tree o60 = gimple_assign_rhs1 (def); if ((o60 = do_valueize (valueize, o60))) { tree o61 = gimple_assign_rhs2 (def); if ((o61 = do_valueize (valueize, o61))) { if (o60 == o20 || operand_equal_p (o60, o20, 0)) { if (o51 == o61 || operand_equal_p (o51, o61, 0)) { { /* #line 358 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { o60, o61, o20, o61 }; if (gimple_simplify_45 (res_code, res_ops, seq, valueize, type, captures)) return true; } } } } } break; } default:; } } break; default:; } switch (TREE_CODE (o51)) { case SSA_NAME: if (do_valueize (valueize, o51) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (o51); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case TRUNC_DIV_EXPR: { tree o70 = gimple_assign_rhs1 (def); if ((o70 = do_valueize (valueize, o70))) { tree o71 = gimple_assign_rhs2 (def); if ((o71 = do_valueize (valueize, o71))) { if (o70 == o20 || operand_equal_p (o70, o20, 0)) { if (o71 == o50 || operand_equal_p (o71, o50, 0)) { { /* #line 358 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { o70, o71, o20, o50 }; if (gimple_simplify_45 (res_code, res_ops, seq, valueize, type, captures)) return true; } } } } } break; } default:; } } break; default:; } } } break; } default:; } } break; default:; } } break; } case MULT_EXPR: { tree o40 = gimple_assign_rhs1 (def); if ((o40 = do_valueize (valueize, o40))) { tree o41 = gimple_assign_rhs2 (def); if ((o41 = do_valueize (valueize, o41))) { if (tree_swap_operands_p (o40, o41)) std::swap (o40, o41); switch (TREE_CODE (o40)) { case SSA_NAME: if (do_valueize (valueize, o40) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (o40); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case TRUNC_DIV_EXPR: { tree o50 = gimple_assign_rhs1 (def); if ((o50 = do_valueize (valueize, o50))) { tree o51 = gimple_assign_rhs2 (def); if ((o51 = do_valueize (valueize, o51))) { if (o50 == o20 || operand_equal_p (o50, o20, 0)) { if (o41 == o51 || operand_equal_p (o41, o51, 0)) { { /* #line 358 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { o50, o51, o20, o51 }; if (gimple_simplify_45 (res_code, res_ops, seq, valueize, type, captures)) return true; } } } } } break; } default:; } } break; default:; } switch (TREE_CODE (o41)) { case SSA_NAME: if (do_valueize (valueize, o41) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (o41); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case TRUNC_DIV_EXPR: { tree o60 = gimple_assign_rhs1 (def); if ((o60 = do_valueize (valueize, o60))) { tree o61 = gimple_assign_rhs2 (def); if ((o61 = do_valueize (valueize, o61))) { if (o60 == o20 || operand_equal_p (o60, o20, 0)) { if (o61 == o40 || operand_equal_p (o61, o40, 0)) { { /* #line 358 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { o60, o61, o20, o40 }; if (gimple_simplify_45 (res_code, res_ops, seq, valueize, type, captures)) return true; } } } } } break; } default:; } } break; default:; } } } break; } default:; } } break; default:; } } break; } default:; } } break; default:; } switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { CASE_CONVERT: { tree o30 = gimple_assign_rhs1 (def); if ((o30 = do_valueize (valueize, o30))) { switch (TREE_CODE (o30)) { case SSA_NAME: if (do_valueize (valueize, o30) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (o30); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case MULT_EXPR: { tree o40 = gimple_assign_rhs1 (def); if ((o40 = do_valueize (valueize, o40))) { tree o41 = gimple_assign_rhs2 (def); if ((o41 = do_valueize (valueize, o41))) { if (tree_swap_operands_p (o40, o41)) std::swap (o40, o41); switch (TREE_CODE (o40)) { case SSA_NAME: if (do_valueize (valueize, o40) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (o40); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case TRUNC_DIV_EXPR: { tree o50 = gimple_assign_rhs1 (def); if ((o50 = do_valueize (valueize, o50))) { tree o51 = gimple_assign_rhs2 (def); if ((o51 = do_valueize (valueize, o51))) { if (o50 == op0 || operand_equal_p (o50, op0, 0)) { if (o41 == o51 || operand_equal_p (o41, o51, 0)) { { /* #line 358 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { o50, o51, op0, o51 }; if (gimple_simplify_45 (res_code, res_ops, seq, valueize, type, captures)) return true; } } } } } break; } default:; } } break; default:; } switch (TREE_CODE (o41)) { case SSA_NAME: if (do_valueize (valueize, o41) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (o41); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case TRUNC_DIV_EXPR: { tree o60 = gimple_assign_rhs1 (def); if ((o60 = do_valueize (valueize, o60))) { tree o61 = gimple_assign_rhs2 (def); if ((o61 = do_valueize (valueize, o61))) { if (o60 == op0 || operand_equal_p (o60, op0, 0)) { if (o61 == o40 || operand_equal_p (o61, o40, 0)) { { /* #line 358 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { o60, o61, op0, o40 }; if (gimple_simplify_45 (res_code, res_ops, seq, valueize, type, captures)) return true; } } } } } break; } default:; } } break; default:; } } } break; } default:; } } break; default:; } } break; } case MULT_EXPR: { tree o30 = gimple_assign_rhs1 (def); if ((o30 = do_valueize (valueize, o30))) { tree o31 = gimple_assign_rhs2 (def); if ((o31 = do_valueize (valueize, o31))) { if (tree_swap_operands_p (o30, o31)) std::swap (o30, o31); switch (TREE_CODE (o30)) { case SSA_NAME: if (do_valueize (valueize, o30) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (o30); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case TRUNC_DIV_EXPR: { tree o40 = gimple_assign_rhs1 (def); if ((o40 = do_valueize (valueize, o40))) { tree o41 = gimple_assign_rhs2 (def); if ((o41 = do_valueize (valueize, o41))) { if (o40 == op0 || operand_equal_p (o40, op0, 0)) { if (o31 == o41 || operand_equal_p (o31, o41, 0)) { { /* #line 358 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { o40, o41, op0, o41 }; if (gimple_simplify_45 (res_code, res_ops, seq, valueize, type, captures)) return true; } } } } } break; } default:; } } break; default:; } switch (TREE_CODE (o31)) { case SSA_NAME: if (do_valueize (valueize, o31) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (o31); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case TRUNC_DIV_EXPR: { tree o50 = gimple_assign_rhs1 (def); if ((o50 = do_valueize (valueize, o50))) { tree o51 = gimple_assign_rhs2 (def); if ((o51 = do_valueize (valueize, o51))) { if (o50 == op0 || operand_equal_p (o50, op0, 0)) { if (o51 == o30 || operand_equal_p (o51, o30, 0)) { { /* #line 358 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { o50, o51, op0, o30 }; if (gimple_simplify_45 (res_code, res_ops, seq, valueize, type, captures)) return true; } } } } } break; } default:; } } break; default:; } } } break; } default:; } } break; default:; } switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case BIT_AND_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { if (tree_swap_operands_p (o20, o21)) std::swap (o20, o21); switch (TREE_CODE (o21)) { case SSA_NAME: if (do_valueize (valueize, o21) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (o21); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case BIT_NOT_EXPR: { tree o40 = gimple_assign_rhs1 (def); if ((o40 = do_valueize (valueize, o40))) { switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case BIT_AND_EXPR: { tree o60 = gimple_assign_rhs1 (def); if ((o60 = do_valueize (valueize, o60))) { tree o61 = gimple_assign_rhs2 (def); if ((o61 = do_valueize (valueize, o61))) { if (tree_swap_operands_p (o60, o61)) std::swap (o60, o61); if (o60 == o20 || (operand_equal_p (o60, o20, 0) && types_match (o60, o20))) { if (o61 == o40 || (operand_equal_p (o61, o40, 0) && types_match (o61, o40))) { { /* #line 557 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o40, op1 }; if (gimple_simplify_50 (res_code, res_ops, seq, valueize, type, captures)) return true; } } } if (o60 == o40 || (operand_equal_p (o60, o40, 0) && types_match (o60, o40))) { if (o61 == o20 || (operand_equal_p (o61, o20, 0) && types_match (o61, o20))) { { /* #line 557 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o40, op1 }; if (gimple_simplify_50 (res_code, res_ops, seq, valueize, type, captures)) return true; } } } } } break; } default:; } } break; default:; } } break; } default:; } } break; default:; } switch (TREE_CODE (o20)) { case SSA_NAME: if (do_valueize (valueize, o20) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (o20); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case BIT_NOT_EXPR: { tree o30 = gimple_assign_rhs1 (def); if ((o30 = do_valueize (valueize, o30))) { switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case BIT_AND_EXPR: { tree o60 = gimple_assign_rhs1 (def); if ((o60 = do_valueize (valueize, o60))) { tree o61 = gimple_assign_rhs2 (def); if ((o61 = do_valueize (valueize, o61))) { if (tree_swap_operands_p (o60, o61)) std::swap (o60, o61); if (o60 == o21 || (operand_equal_p (o60, o21, 0) && types_match (o60, o21))) { if (o61 == o30 || (operand_equal_p (o61, o30, 0) && types_match (o61, o30))) { { /* #line 557 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { op0, o21, o30, op1 }; if (gimple_simplify_50 (res_code, res_ops, seq, valueize, type, captures)) return true; } } } if (o60 == o30 || (operand_equal_p (o60, o30, 0) && types_match (o60, o30))) { if (o61 == o21 || (operand_equal_p (o61, o21, 0) && types_match (o61, o21))) { { /* #line 557 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { op0, o21, o30, op1 }; if (gimple_simplify_50 (res_code, res_ops, seq, valueize, type, captures)) return true; } } } } } break; } default:; } } break; default:; } } break; } default:; } } break; default:; } switch (TREE_CODE (o21)) { case INTEGER_CST: { switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case BIT_AND_EXPR: { tree o50 = gimple_assign_rhs1 (def); if ((o50 = do_valueize (valueize, o50))) { tree o51 = gimple_assign_rhs2 (def); if ((o51 = do_valueize (valueize, o51))) { if (tree_swap_operands_p (o50, o51)) std::swap (o50, o51); if (o50 == o20 || (operand_equal_p (o50, o20, 0) && types_match (o50, o20))) { switch (TREE_CODE (o51)) { case INTEGER_CST: { { /* #line 560 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { op0, o20, o21, op1, o51 }; /* #line 560 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (wi::bit_not (captures[2]) == captures[4]) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[3]))) lseq = NULL; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:561, %s:%d\n", __FILE__, __LINE__); *res_code = MINUS_EXPR; { tree ops1[2], res; ops1[0] = captures[1]; ops1[1] = captures[4]; code_helper tem_code = BIT_XOR_EXPR; tree tem_ops[3] = { ops1[0], ops1[1] }; gimple_resimplify2 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[0] = res; } res_ops[1] = captures[4]; gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } break; } default:; } } } } break; } default:; } } break; default:; } break; } default:; } switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case BIT_AND_EXPR: { tree o50 = gimple_assign_rhs1 (def); if ((o50 = do_valueize (valueize, o50))) { tree o51 = gimple_assign_rhs2 (def); if ((o51 = do_valueize (valueize, o51))) { if (tree_swap_operands_p (o50, o51)) std::swap (o50, o51); if (o50 == o20 || (operand_equal_p (o50, o20, 0) && types_match (o50, o20))) { switch (TREE_CODE (o51)) { case SSA_NAME: if (do_valueize (valueize, o51) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (o51); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case BIT_NOT_EXPR: { tree o70 = gimple_assign_rhs1 (def); if ((o70 = do_valueize (valueize, o70))) { if (o70 == o21 || (operand_equal_p (o70, o21, 0) && types_match (o70, o21))) { { /* #line 566 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o21, op1 }; if (gimple_simplify_54 (res_code, res_ops, seq, valueize, type, captures)) return true; } } } break; } default:; } } break; default:; } } switch (TREE_CODE (o50)) { case SSA_NAME: if (do_valueize (valueize, o50) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (o50); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case BIT_NOT_EXPR: { tree o60 = gimple_assign_rhs1 (def); if ((o60 = do_valueize (valueize, o60))) { if (o60 == o21 || (operand_equal_p (o60, o21, 0) && types_match (o60, o21))) { if (o51 == o20 || (operand_equal_p (o51, o20, 0) && types_match (o51, o20))) { { /* #line 566 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o21, op1 }; if (gimple_simplify_54 (res_code, res_ops, seq, valueize, type, captures)) return true; } } } if (o60 == o20 || (operand_equal_p (o60, o20, 0) && types_match (o60, o20))) { if (o51 == o21 || (operand_equal_p (o51, o21, 0) && types_match (o51, o21))) { { /* #line 566 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { op0, o21, o20, op1 }; if (gimple_simplify_54 (res_code, res_ops, seq, valueize, type, captures)) return true; } } } } break; } default:; } } break; default:; } if (o50 == o21 || (operand_equal_p (o50, o21, 0) && types_match (o50, o21))) { switch (TREE_CODE (o51)) { case SSA_NAME: if (do_valueize (valueize, o51) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (o51); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case BIT_NOT_EXPR: { tree o70 = gimple_assign_rhs1 (def); if ((o70 = do_valueize (valueize, o70))) { if (o70 == o20 || (operand_equal_p (o70, o20, 0) && types_match (o70, o20))) { { /* #line 566 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { op0, o21, o20, op1 }; if (gimple_simplify_54 (res_code, res_ops, seq, valueize, type, captures)) return true; } } } break; } default:; } } break; default:; } } } } break; } default:; } } break; default:; } } } break; } case PLUS_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { if (tree_swap_operands_p (o20, o21)) std::swap (o20, o21); switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case BIT_IOR_EXPR: { tree o50 = gimple_assign_rhs1 (def); if ((o50 = do_valueize (valueize, o50))) { tree o51 = gimple_assign_rhs2 (def); if ((o51 = do_valueize (valueize, o51))) { if (tree_swap_operands_p (o50, o51)) std::swap (o50, o51); if (o50 == o20 || (operand_equal_p (o50, o20, 0) && types_match (o50, o20))) { if (o51 == o21 || (operand_equal_p (o51, o21, 0) && types_match (o51, o21))) { { /* #line 702 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 }; /* #line 702 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (!TYPE_OVERFLOW_SANITIZED (type) && !TYPE_OVERFLOW_TRAPS (type) && !TYPE_SATURATING (type)) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:704, %s:%d\n", __FILE__, __LINE__); *res_code = BIT_AND_EXPR; res_ops[0] = captures[0]; res_ops[1] = captures[1]; gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } } } } } break; } case BIT_AND_EXPR: { tree o50 = gimple_assign_rhs1 (def); if ((o50 = do_valueize (valueize, o50))) { tree o51 = gimple_assign_rhs2 (def); if ((o51 = do_valueize (valueize, o51))) { if (tree_swap_operands_p (o50, o51)) std::swap (o50, o51); if (o50 == o20 || (operand_equal_p (o50, o20, 0) && types_match (o50, o20))) { if (o51 == o21 || (operand_equal_p (o51, o21, 0) && types_match (o51, o21))) { { /* #line 709 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 }; /* #line 709 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (!TYPE_OVERFLOW_SANITIZED (type) && !TYPE_OVERFLOW_TRAPS (type) && !TYPE_SATURATING (type)) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:711, %s:%d\n", __FILE__, __LINE__); *res_code = BIT_IOR_EXPR; res_ops[0] = captures[0]; res_ops[1] = captures[1]; gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } } } } } break; } default:; } } break; default:; } } } break; } case BIT_IOR_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { if (tree_swap_operands_p (o20, o21)) std::swap (o20, o21); switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case BIT_XOR_EXPR: { tree o50 = gimple_assign_rhs1 (def); if ((o50 = do_valueize (valueize, o50))) { tree o51 = gimple_assign_rhs2 (def); if ((o51 = do_valueize (valueize, o51))) { if (tree_swap_operands_p (o50, o51)) std::swap (o50, o51); if (o50 == o20 || (operand_equal_p (o50, o20, 0) && types_match (o50, o20))) { if (o51 == o21 || (operand_equal_p (o51, o21, 0) && types_match (o51, o21))) { { /* #line 716 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 }; gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:716, %s:%d\n", __FILE__, __LINE__); *res_code = BIT_AND_EXPR; res_ops[0] = captures[0]; res_ops[1] = captures[1]; gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } } } } break; } case BIT_AND_EXPR: { tree o50 = gimple_assign_rhs1 (def); if ((o50 = do_valueize (valueize, o50))) { tree o51 = gimple_assign_rhs2 (def); if ((o51 = do_valueize (valueize, o51))) { if (tree_swap_operands_p (o50, o51)) std::swap (o50, o51); if (o50 == o20 || (operand_equal_p (o50, o20, 0) && types_match (o50, o20))) { if (o51 == o21 || (operand_equal_p (o51, o21, 0) && types_match (o51, o21))) { { /* #line 721 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 }; gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:721, %s:%d\n", __FILE__, __LINE__); *res_code = BIT_XOR_EXPR; res_ops[0] = captures[0]; res_ops[1] = captures[1]; gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } } } } break; } default:; } } break; default:; } } } break; } default:; } } break; default:; } if (gimple_negate_expr_p (op1, valueize)) { { /* #line 873 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 }; /* #line 873 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (!FIXED_POINT_TYPE_P (type)) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:874, %s:%d\n", __FILE__, __LINE__); *res_code = PLUS_EXPR; res_ops[0] = captures[0]; { tree ops1[1], res; ops1[0] = captures[1]; code_helper tem_code = NEGATE_EXPR; tree tem_ops[3] = { ops1[0] }; gimple_resimplify1 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[1] = res; } gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } } switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { CASE_CONVERT: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { CASE_CONVERT: { tree o40 = gimple_assign_rhs1 (def); if ((o40 = do_valueize (valueize, o40))) { switch (TREE_CODE (o40)) { case SSA_NAME: if (do_valueize (valueize, o40) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (o40); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case BIT_AND_EXPR: { tree o50 = gimple_assign_rhs1 (def); if ((o50 = do_valueize (valueize, o50))) { tree o51 = gimple_assign_rhs2 (def); if ((o51 = do_valueize (valueize, o51))) { if (tree_swap_operands_p (o50, o51)) std::swap (o50, o51); if (o50 == o20 || operand_equal_p (o50, o20, 0)) { { /* #line 1009 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { o50, op1, o40, o51, o20 }; if (gimple_simplify_3 (res_code, res_ops, seq, valueize, type, captures)) return true; } } if (o51 == o20 || operand_equal_p (o51, o20, 0)) { { /* #line 1009 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { o51, op1, o40, o50, o20 }; if (gimple_simplify_3 (res_code, res_ops, seq, valueize, type, captures)) return true; } } } } break; } default:; } } break; default:; } } break; } case BIT_AND_EXPR: { tree o40 = gimple_assign_rhs1 (def); if ((o40 = do_valueize (valueize, o40))) { tree o41 = gimple_assign_rhs2 (def); if ((o41 = do_valueize (valueize, o41))) { if (tree_swap_operands_p (o40, o41)) std::swap (o40, o41); if (o40 == o20 || operand_equal_p (o40, o20, 0)) { { /* #line 1009 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { o40, op1, op1, o41, o20 }; if (gimple_simplify_34 (res_code, res_ops, seq, valueize, type, captures)) return true; } } if (o41 == o20 || operand_equal_p (o41, o20, 0)) { { /* #line 1009 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { o41, op1, op1, o40, o20 }; if (gimple_simplify_34 (res_code, res_ops, seq, valueize, type, captures)) return true; } } } } break; } default:; } } break; default:; } } break; } default:; } } break; default:; } switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { CASE_CONVERT: { tree o30 = gimple_assign_rhs1 (def); if ((o30 = do_valueize (valueize, o30))) { switch (TREE_CODE (o30)) { case SSA_NAME: if (do_valueize (valueize, o30) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (o30); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case BIT_AND_EXPR: { tree o40 = gimple_assign_rhs1 (def); if ((o40 = do_valueize (valueize, o40))) { tree o41 = gimple_assign_rhs2 (def); if ((o41 = do_valueize (valueize, o41))) { if (tree_swap_operands_p (o40, o41)) std::swap (o40, o41); if (o40 == op0 || operand_equal_p (o40, op0, 0)) { { /* #line 1009 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { o40, op1, o30, o41, op0 }; if (gimple_simplify_3 (res_code, res_ops, seq, valueize, type, captures)) return true; } } if (o41 == op0 || operand_equal_p (o41, op0, 0)) { { /* #line 1009 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { o41, op1, o30, o40, op0 }; if (gimple_simplify_3 (res_code, res_ops, seq, valueize, type, captures)) return true; } } } } break; } default:; } } break; default:; } } break; } case BIT_AND_EXPR: { tree o30 = gimple_assign_rhs1 (def); if ((o30 = do_valueize (valueize, o30))) { tree o31 = gimple_assign_rhs2 (def); if ((o31 = do_valueize (valueize, o31))) { if (tree_swap_operands_p (o30, o31)) std::swap (o30, o31); if (o30 == op0 || operand_equal_p (o30, op0, 0)) { { /* #line 1009 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { o30, op1, op1, o31, op0 }; if (gimple_simplify_34 (res_code, res_ops, seq, valueize, type, captures)) return true; } } if (o31 == op0 || operand_equal_p (o31, op0, 0)) { { /* #line 1009 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { o31, op1, op1, o30, op0 }; if (gimple_simplify_34 (res_code, res_ops, seq, valueize, type, captures)) return true; } } } } break; } default:; } } break; default:; } switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { CASE_CONVERT: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { switch (TREE_CODE (o20)) { case ADDR_EXPR: { switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { CASE_CONVERT: { tree o40 = gimple_assign_rhs1 (def); if ((o40 = do_valueize (valueize, o40))) { { /* #line 1118 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, o40 }; /* #line 1118 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (tree_nop_conversion_p (type, TREE_TYPE (captures[0]))) { { /* #line 1119 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ HOST_WIDE_INT diff; /* #line 1120 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (ptr_difference_const (captures[0], captures[1], &diff)) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1121, %s:%d\n", __FILE__, __LINE__); res_ops[0] = build_int_cst_type (type, diff); *res_code = TREE_CODE (res_ops[0]); return true; } } } } } break; } default:; } } break; default:; } break; } default:; } switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { CASE_CONVERT: { tree o40 = gimple_assign_rhs1 (def); if ((o40 = do_valueize (valueize, o40))) { switch (TREE_CODE (o40)) { case ADDR_EXPR: { { /* #line 1124 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, o40 }; /* #line 1124 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (tree_nop_conversion_p (type, TREE_TYPE (captures[0]))) { { /* #line 1125 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ HOST_WIDE_INT diff; /* #line 1126 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (ptr_difference_const (captures[0], captures[1], &diff)) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1127, %s:%d\n", __FILE__, __LINE__); res_ops[0] = build_int_cst_type (type, diff); *res_code = TREE_CODE (res_ops[0]); return true; } } } } break; } default:; } } break; } default:; } } break; default:; } } break; } default:; } } break; default:; } switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { CASE_CONVERT: { tree o30 = gimple_assign_rhs1 (def); if ((o30 = do_valueize (valueize, o30))) { switch (TREE_CODE (o30)) { case SSA_NAME: if (do_valueize (valueize, o30) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (o30); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case NEGATE_EXPR: { tree o40 = gimple_assign_rhs1 (def); if ((o40 = do_valueize (valueize, o40))) { { /* #line 1147 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { op0, o40 }; if (gimple_simplify_200 (res_code, res_ops, seq, valueize, type, captures)) return true; } } break; } default:; } } break; default:; } } break; } case NEGATE_EXPR: { tree o30 = gimple_assign_rhs1 (def); if ((o30 = do_valueize (valueize, o30))) { { /* #line 1147 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { op0, o30 }; if (gimple_simplify_200 (res_code, res_ops, seq, valueize, type, captures)) return true; } } break; } default:; } } break; default:; } switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case PLUS_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { if (tree_swap_operands_p (o20, o21)) std::swap (o20, o21); if (op1 == o20 || (operand_equal_p (op1, o20, 0) && types_match (op1, o20))) { { /* #line 1147 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 }; if (gimple_simplify_155 (res_code, res_ops, seq, valueize, type, captures)) return true; } } if (op1 == o21 || (operand_equal_p (op1, o21, 0) && types_match (op1, o21))) { { /* #line 1147 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o21, o20 }; if (gimple_simplify_155 (res_code, res_ops, seq, valueize, type, captures)) return true; } } } } break; } case MINUS_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { if (op1 == o20 || (operand_equal_p (op1, o20, 0) && types_match (op1, o20))) { { /* #line 1147 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 }; /* #line 1147 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (!TYPE_SATURATING (type)) { /* #line 1186 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if ((!FLOAT_TYPE_P (type) || flag_associative_math) && !FIXED_POINT_TYPE_P (type)) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1200, %s:%d\n", __FILE__, __LINE__); *res_code = NEGATE_EXPR; res_ops[0] = captures[1]; gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } } } } } break; } default:; } } break; default:; } switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case PLUS_EXPR: { tree o30 = gimple_assign_rhs1 (def); if ((o30 = do_valueize (valueize, o30))) { tree o31 = gimple_assign_rhs2 (def); if ((o31 = do_valueize (valueize, o31))) { if (tree_swap_operands_p (o30, o31)) std::swap (o30, o31); if (o30 == op0 || (operand_equal_p (o30, op0, 0) && types_match (o30, op0))) { { /* #line 1147 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { op0, o31 }; if (gimple_simplify_69 (res_code, res_ops, seq, valueize, type, captures)) return true; } } if (o31 == op0 || (operand_equal_p (o31, op0, 0) && types_match (o31, op0))) { { /* #line 1147 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { op0, o30 }; if (gimple_simplify_69 (res_code, res_ops, seq, valueize, type, captures)) return true; } } } } break; } case MINUS_EXPR: { tree o30 = gimple_assign_rhs1 (def); if ((o30 = do_valueize (valueize, o30))) { tree o31 = gimple_assign_rhs2 (def); if ((o31 = do_valueize (valueize, o31))) { if (o30 == op0 || (operand_equal_p (o30, op0, 0) && types_match (o30, op0))) { { /* #line 1147 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { op0, o31 }; /* #line 1147 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (!TYPE_SATURATING (type)) { /* #line 1186 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if ((!FLOAT_TYPE_P (type) || flag_associative_math) && !FIXED_POINT_TYPE_P (type)) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1209, %s:%d\n", __FILE__, __LINE__); res_ops[0] = captures[1]; *res_code = TREE_CODE (res_ops[0]); return true; } } } } } } break; } default:; } } break; default:; } switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case PLUS_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { if (tree_swap_operands_p (o20, o21)) std::swap (o20, o21); if (CONSTANT_CLASS_P (o21)) { if (CONSTANT_CLASS_P (op1)) { { /* #line 1147 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 }; if (gimple_simplify_116 (res_code, res_ops, seq, valueize, type, captures, PLUS_EXPR, MINUS_EXPR)) return true; } } } } } break; } case MINUS_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { if (CONSTANT_CLASS_P (o21)) { if (CONSTANT_CLASS_P (op1)) { { /* #line 1147 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 }; if (gimple_simplify_116 (res_code, res_ops, seq, valueize, type, captures, MINUS_EXPR, MINUS_EXPR)) return true; } } } if (CONSTANT_CLASS_P (o20)) { if (CONSTANT_CLASS_P (op1)) { { /* #line 1147 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 }; if (gimple_simplify_191 (res_code, res_ops, seq, valueize, type, captures, MINUS_EXPR)) return true; } } } } } break; } CASE_CONVERT: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { switch (TREE_CODE (o20)) { case SSA_NAME: if (do_valueize (valueize, o20) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (o20); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case NEGATE_EXPR: { tree o30 = gimple_assign_rhs1 (def); if ((o30 = do_valueize (valueize, o30))) { if (integer_each_onep (op1)) { { /* #line 1147 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o30 }; if (gimple_simplify_109 (res_code, res_ops, seq, valueize, type, captures)) return true; } } } break; } case PLUS_EXPR: { tree o30 = gimple_assign_rhs1 (def); if ((o30 = do_valueize (valueize, o30))) { tree o31 = gimple_assign_rhs2 (def); if ((o31 = do_valueize (valueize, o31))) { if (tree_swap_operands_p (o30, o31)) std::swap (o30, o31); switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { CASE_CONVERT: { tree o60 = gimple_assign_rhs1 (def); if ((o60 = do_valueize (valueize, o60))) { if (o60 == o30 || operand_equal_p (o60, o30, 0)) { { /* #line 1147 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o30, o31, o30 }; /* #line 1147 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (!TYPE_SATURATING (type)) { /* #line 1186 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if ((!FLOAT_TYPE_P (type) || flag_associative_math) && !FIXED_POINT_TYPE_P (type)) { /* #line 1268 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (element_precision (type) <= element_precision (TREE_TYPE (captures[1])) || (INTEGRAL_TYPE_P (TREE_TYPE (captures[0])) && TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[0]))) || (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 (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1285, %s:%d\n", __FILE__, __LINE__); *res_code = NOP_EXPR; res_ops[0] = captures[1]; gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } } } } } break; } default:; } } break; default:; } } } break; } case POINTER_PLUS_EXPR: { tree o30 = gimple_assign_rhs1 (def); if ((o30 = do_valueize (valueize, o30))) { tree o31 = gimple_assign_rhs2 (def); if ((o31 = do_valueize (valueize, o31))) { switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { CASE_CONVERT: { tree o60 = gimple_assign_rhs1 (def); if ((o60 = do_valueize (valueize, o60))) { if (o60 == o30 || operand_equal_p (o60, o30, 0)) { { /* #line 1147 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o30, o31, o30 }; /* #line 1147 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (!TYPE_SATURATING (type)) { /* #line 1186 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if ((!FLOAT_TYPE_P (type) || flag_associative_math) && !FIXED_POINT_TYPE_P (type)) { /* #line 1268 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (element_precision (type) <= element_precision (TREE_TYPE (captures[1])) || (INTEGRAL_TYPE_P (TREE_TYPE (captures[0])) && TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[0]))) || (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 (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1285, %s:%d\n", __FILE__, __LINE__); *res_code = NOP_EXPR; res_ops[0] = captures[1]; gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } } } } } break; } default:; } } break; default:; } } } break; } default:; } } break; default:; } switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { CASE_CONVERT: { tree o40 = gimple_assign_rhs1 (def); if ((o40 = do_valueize (valueize, o40))) { switch (TREE_CODE (o40)) { case SSA_NAME: if (do_valueize (valueize, o40) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (o40); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case PLUS_EXPR: { tree o50 = gimple_assign_rhs1 (def); if ((o50 = do_valueize (valueize, o50))) { tree o51 = gimple_assign_rhs2 (def); if ((o51 = do_valueize (valueize, o51))) { if (tree_swap_operands_p (o50, o51)) std::swap (o50, o51); if (o50 == o20 || operand_equal_p (o50, o20, 0)) { { /* #line 1147 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o50, o51, o20 }; /* #line 1147 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (!TYPE_SATURATING (type)) { /* #line 1186 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if ((!FLOAT_TYPE_P (type) || flag_associative_math) && !FIXED_POINT_TYPE_P (type)) { /* #line 1292 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (element_precision (type) <= element_precision (TREE_TYPE (captures[1])) || (INTEGRAL_TYPE_P (TREE_TYPE (captures[0])) && TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[0]))) || (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 (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1309, %s:%d\n", __FILE__, __LINE__); *res_code = NEGATE_EXPR; { tree ops1[1], res; ops1[0] = captures[1]; if (type != TREE_TYPE (ops1[0]) && !useless_type_conversion_p (type, TREE_TYPE (ops1[0]))) { code_helper tem_code = NOP_EXPR; tree tem_ops[3] = { ops1[0] }; gimple_resimplify1 (lseq, &tem_code, type, tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, type, tem_ops, lseq); if (!res) return false; } else res = ops1[0]; res_ops[0] = res; } gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } } } } } } break; } case POINTER_PLUS_EXPR: { tree o50 = gimple_assign_rhs1 (def); if ((o50 = do_valueize (valueize, o50))) { tree o51 = gimple_assign_rhs2 (def); if ((o51 = do_valueize (valueize, o51))) { if (o50 == o20 || operand_equal_p (o50, o20, 0)) { { /* #line 1147 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o50, o51, o20 }; /* #line 1147 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (!TYPE_SATURATING (type)) { /* #line 1186 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if ((!FLOAT_TYPE_P (type) || flag_associative_math) && !FIXED_POINT_TYPE_P (type)) { /* #line 1292 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (element_precision (type) <= element_precision (TREE_TYPE (captures[1])) || (INTEGRAL_TYPE_P (TREE_TYPE (captures[0])) && TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[0]))) || (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 (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1309, %s:%d\n", __FILE__, __LINE__); *res_code = NEGATE_EXPR; { tree ops1[1], res; ops1[0] = captures[1]; if (type != TREE_TYPE (ops1[0]) && !useless_type_conversion_p (type, TREE_TYPE (ops1[0]))) { code_helper tem_code = NOP_EXPR; tree tem_ops[3] = { ops1[0] }; gimple_resimplify1 (lseq, &tem_code, type, tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, type, tem_ops, lseq); if (!res) return false; } else res = ops1[0]; res_ops[0] = res; } gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } } } } } } break; } default:; } } break; default:; } } break; } default:; } } break; default:; } switch (TREE_CODE (o20)) { case SSA_NAME: if (do_valueize (valueize, o20) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (o20); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case PLUS_EXPR: { tree o30 = gimple_assign_rhs1 (def); if ((o30 = do_valueize (valueize, o30))) { tree o31 = gimple_assign_rhs2 (def); if ((o31 = do_valueize (valueize, o31))) { if (tree_swap_operands_p (o30, o31)) std::swap (o30, o31); switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { CASE_CONVERT: { tree o60 = gimple_assign_rhs1 (def); if ((o60 = do_valueize (valueize, o60))) { switch (TREE_CODE (o60)) { case SSA_NAME: if (do_valueize (valueize, o60) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (o60); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case PLUS_EXPR: { tree o70 = gimple_assign_rhs1 (def); if ((o70 = do_valueize (valueize, o70))) { tree o71 = gimple_assign_rhs2 (def); if ((o71 = do_valueize (valueize, o71))) { if (tree_swap_operands_p (o70, o71)) std::swap (o70, o71); if (o70 == o30 || operand_equal_p (o70, o30, 0)) { { /* #line 1147 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { o30, o31, o71, o30 }; /* #line 1147 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (!TYPE_SATURATING (type)) { /* #line 1186 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if ((!FLOAT_TYPE_P (type) || flag_associative_math) && !FIXED_POINT_TYPE_P (type)) { /* #line 1316 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (element_precision (type) <= element_precision (TREE_TYPE (captures[1])) || (INTEGRAL_TYPE_P (TREE_TYPE (captures[0])) && TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[0]))) || (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 (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1335, %s:%d\n", __FILE__, __LINE__); *res_code = MINUS_EXPR; { tree ops1[1], res; ops1[0] = captures[1]; if (type != TREE_TYPE (ops1[0]) && !useless_type_conversion_p (type, TREE_TYPE (ops1[0]))) { code_helper tem_code = NOP_EXPR; tree tem_ops[3] = { ops1[0] }; gimple_resimplify1 (lseq, &tem_code, type, tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, type, tem_ops, lseq); if (!res) return false; } else res = ops1[0]; res_ops[0] = res; } { tree ops1[1], res; ops1[0] = captures[2]; if (type != TREE_TYPE (ops1[0]) && !useless_type_conversion_p (type, TREE_TYPE (ops1[0]))) { code_helper tem_code = NOP_EXPR; tree tem_ops[3] = { ops1[0] }; gimple_resimplify1 (lseq, &tem_code, type, tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, type, tem_ops, lseq); if (!res) return false; } else res = ops1[0]; res_ops[1] = res; } gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } } } } } } break; } default:; } } break; default:; } } break; } default:; } } break; default:; } } } break; } case POINTER_PLUS_EXPR: { tree o30 = gimple_assign_rhs1 (def); if ((o30 = do_valueize (valueize, o30))) { tree o31 = gimple_assign_rhs2 (def); if ((o31 = do_valueize (valueize, o31))) { switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { CASE_CONVERT: { tree o60 = gimple_assign_rhs1 (def); if ((o60 = do_valueize (valueize, o60))) { switch (TREE_CODE (o60)) { case SSA_NAME: if (do_valueize (valueize, o60) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (o60); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case POINTER_PLUS_EXPR: { tree o70 = gimple_assign_rhs1 (def); if ((o70 = do_valueize (valueize, o70))) { tree o71 = gimple_assign_rhs2 (def); if ((o71 = do_valueize (valueize, o71))) { if (o70 == o30 || operand_equal_p (o70, o30, 0)) { { /* #line 1147 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { o30, o31, o71, o30 }; /* #line 1147 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (!TYPE_SATURATING (type)) { /* #line 1186 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if ((!FLOAT_TYPE_P (type) || flag_associative_math) && !FIXED_POINT_TYPE_P (type)) { /* #line 1316 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (element_precision (type) <= element_precision (TREE_TYPE (captures[1])) || (INTEGRAL_TYPE_P (TREE_TYPE (captures[0])) && TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[0]))) || (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 (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1335, %s:%d\n", __FILE__, __LINE__); *res_code = MINUS_EXPR; { tree ops1[1], res; ops1[0] = captures[1]; if (type != TREE_TYPE (ops1[0]) && !useless_type_conversion_p (type, TREE_TYPE (ops1[0]))) { code_helper tem_code = NOP_EXPR; tree tem_ops[3] = { ops1[0] }; gimple_resimplify1 (lseq, &tem_code, type, tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, type, tem_ops, lseq); if (!res) return false; } else res = ops1[0]; res_ops[0] = res; } { tree ops1[1], res; ops1[0] = captures[2]; if (type != TREE_TYPE (ops1[0]) && !useless_type_conversion_p (type, TREE_TYPE (ops1[0]))) { code_helper tem_code = NOP_EXPR; tree tem_ops[3] = { ops1[0] }; gimple_resimplify1 (lseq, &tem_code, type, tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, type, tem_ops, lseq); if (!res) return false; } else res = ops1[0]; res_ops[1] = res; } gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } } } } } } break; } default:; } } break; default:; } } break; } default:; } } break; default:; } } } break; } default:; } } break; default:; } } break; } case NEGATE_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { if (integer_each_onep (op1)) { { /* #line 1147 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; if (gimple_simplify_109 (res_code, res_ops, seq, valueize, type, captures)) return true; } } } break; } default:; } } break; default:; } if (CONSTANT_CLASS_P (op0)) { switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case MINUS_EXPR: { tree o30 = gimple_assign_rhs1 (def); if ((o30 = do_valueize (valueize, o30))) { tree o31 = gimple_assign_rhs2 (def); if ((o31 = do_valueize (valueize, o31))) { if (CONSTANT_CLASS_P (o30)) { { /* #line 1147 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { op0, o30, o31 }; /* #line 1147 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (!TYPE_SATURATING (type)) { /* #line 1186 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if ((!FLOAT_TYPE_P (type) || flag_associative_math) && !FIXED_POINT_TYPE_P (type)) { { /* #line 1235 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree cst = const_binop (MINUS_EXPR, type, captures[0], captures[1]); /* #line 1236 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (cst && !TREE_OVERFLOW (cst)) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1237, %s:%d\n", __FILE__, __LINE__); *res_code = PLUS_EXPR; res_ops[0] = cst; res_ops[1] = captures[2]; gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } } } } } } } break; } default:; } } break; default:; } } if (integer_all_onesp (op0)) { { /* #line 1147 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { op1 }; /* #line 1147 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (!TYPE_SATURATING (type)) { /* #line 1186 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if ((!FLOAT_TYPE_P (type) || flag_associative_math) && !FIXED_POINT_TYPE_P (type)) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1261, %s:%d\n", __FILE__, __LINE__); *res_code = BIT_NOT_EXPR; res_ops[0] = captures[0]; gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } } } if (integer_zerop (op0)) { { /* #line 1916 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { op1 }; gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1916, %s:%d\n", __FILE__, __LINE__); *res_code = NEGATE_EXPR; res_ops[0] = captures[0]; gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } if (real_zerop (op0)) { { /* #line 1923 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 }; /* #line 1923 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (fold_real_zero_addition_p (type, captures[0], 0)) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1924, %s:%d\n", __FILE__, __LINE__); *res_code = NEGATE_EXPR; res_ops[0] = captures[1]; gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } } switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case VIEW_CONVERT_EXPR: { tree o30 = TREE_OPERAND (gimple_assign_rhs1 (def), 0); if ((TREE_CODE (o30) == SSA_NAME || is_gimple_min_invariant (o30)) && (o30 = do_valueize (valueize, o30))) { switch (TREE_CODE (o30)) { case SSA_NAME: if (do_valueize (valueize, o30) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (o30); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case VEC_COND_EXPR: { tree o40 = gimple_assign_rhs1 (def); if ((o40 = do_valueize (valueize, o40))) { tree o41 = gimple_assign_rhs2 (def); if ((o41 = do_valueize (valueize, o41))) { tree o42 = gimple_assign_rhs3 (def); if ((o42 = do_valueize (valueize, o42))) { if (integer_each_onep (o41)) { if (integer_zerop (o42)) { { /* #line 2252 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { op0, o30, o40, o41, o42 }; if (gimple_simplify_76 (res_code, res_ops, seq, valueize, type, captures)) return true; } } } } } } break; } default:; } } break; default:; } } break; } case VEC_COND_EXPR: { tree o30 = gimple_assign_rhs1 (def); if ((o30 = do_valueize (valueize, o30))) { tree o31 = gimple_assign_rhs2 (def); if ((o31 = do_valueize (valueize, o31))) { tree o32 = gimple_assign_rhs3 (def); if ((o32 = do_valueize (valueize, o32))) { if (integer_each_onep (o31)) { if (integer_zerop (o32)) { { /* #line 2252 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { op0, op1, o30, o31, o32 }; if (gimple_simplify_76 (res_code, res_ops, seq, valueize, type, captures)) return true; } } } } } } break; } default:; } } break; default:; } return false; } static bool gimple_simplify_BIT_IOR_EXPR (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree op0, tree op1) { if (integer_zerop (op1)) { { /* #line 84 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { op0 }; gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:84, %s:%d\n", __FILE__, __LINE__); res_ops[0] = captures[0]; *res_code = TREE_CODE (res_ops[0]); return true; } } switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case NE_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { if (tree_swap_operands_p (o20, o21)) std::swap (o20, o21); if (integer_zerop (o21)) { switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case NE_EXPR: { tree o50 = gimple_assign_rhs1 (def); if ((o50 = do_valueize (valueize, o50))) { tree o51 = gimple_assign_rhs2 (def); if ((o51 = do_valueize (valueize, o51))) { if (tree_swap_operands_p (o50, o51)) std::swap (o50, o51); if (integer_zerop (o51)) { { /* #line 549 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, o50 }; if (gimple_simplify_41 (res_code, res_ops, seq, valueize, type, captures, BIT_IOR_EXPR, NE_EXPR)) return true; } } } } break; } default:; } } break; default:; } } } } break; } case BIT_AND_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { if (tree_swap_operands_p (o20, o21)) std::swap (o20, o21); switch (TREE_CODE (o21)) { case SSA_NAME: if (do_valueize (valueize, o21) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (o21); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case BIT_NOT_EXPR: { tree o40 = gimple_assign_rhs1 (def); if ((o40 = do_valueize (valueize, o40))) { switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case BIT_AND_EXPR: { tree o60 = gimple_assign_rhs1 (def); if ((o60 = do_valueize (valueize, o60))) { tree o61 = gimple_assign_rhs2 (def); if ((o61 = do_valueize (valueize, o61))) { if (tree_swap_operands_p (o60, o61)) std::swap (o60, o61); switch (TREE_CODE (o60)) { case SSA_NAME: if (do_valueize (valueize, o60) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (o60); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case BIT_NOT_EXPR: { tree o70 = gimple_assign_rhs1 (def); if ((o70 = do_valueize (valueize, o70))) { if (o70 == o20 || (operand_equal_p (o70, o20, 0) && types_match (o70, o20))) { if (o61 == o40 || (operand_equal_p (o61, o40, 0) && types_match (o61, o40))) { { /* #line 571 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, o40 }; if (gimple_simplify_55 (res_code, res_ops, seq, valueize, type, captures)) return true; } } } } break; } default:; } } break; default:; } if (o60 == o40 || (operand_equal_p (o60, o40, 0) && types_match (o60, o40))) { switch (TREE_CODE (o61)) { case SSA_NAME: if (do_valueize (valueize, o61) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (o61); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case BIT_NOT_EXPR: { tree o80 = gimple_assign_rhs1 (def); if ((o80 = do_valueize (valueize, o80))) { if (o80 == o20 || (operand_equal_p (o80, o20, 0) && types_match (o80, o20))) { { /* #line 571 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, o40 }; if (gimple_simplify_55 (res_code, res_ops, seq, valueize, type, captures)) return true; } } } break; } default:; } } break; default:; } } } } break; } default:; } } break; default:; } } break; } default:; } } break; default:; } switch (TREE_CODE (o20)) { case SSA_NAME: if (do_valueize (valueize, o20) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (o20); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case BIT_NOT_EXPR: { tree o30 = gimple_assign_rhs1 (def); if ((o30 = do_valueize (valueize, o30))) { switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case BIT_AND_EXPR: { tree o60 = gimple_assign_rhs1 (def); if ((o60 = do_valueize (valueize, o60))) { tree o61 = gimple_assign_rhs2 (def); if ((o61 = do_valueize (valueize, o61))) { if (tree_swap_operands_p (o60, o61)) std::swap (o60, o61); switch (TREE_CODE (o60)) { case SSA_NAME: if (do_valueize (valueize, o60) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (o60); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case BIT_NOT_EXPR: { tree o70 = gimple_assign_rhs1 (def); if ((o70 = do_valueize (valueize, o70))) { if (o70 == o21 || (operand_equal_p (o70, o21, 0) && types_match (o70, o21))) { if (o61 == o30 || (operand_equal_p (o61, o30, 0) && types_match (o61, o30))) { { /* #line 571 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o21, o30 }; if (gimple_simplify_55 (res_code, res_ops, seq, valueize, type, captures)) return true; } } } } break; } default:; } } break; default:; } if (o60 == o30 || (operand_equal_p (o60, o30, 0) && types_match (o60, o30))) { switch (TREE_CODE (o61)) { case SSA_NAME: if (do_valueize (valueize, o61) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (o61); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case BIT_NOT_EXPR: { tree o80 = gimple_assign_rhs1 (def); if ((o80 = do_valueize (valueize, o80))) { if (o80 == o21 || (operand_equal_p (o80, o21, 0) && types_match (o80, o21))) { { /* #line 571 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o21, o30 }; if (gimple_simplify_55 (res_code, res_ops, seq, valueize, type, captures)) return true; } } } break; } default:; } } break; default:; } } } } break; } default:; } } break; default:; } } break; } default:; } } break; default:; } switch (TREE_CODE (o21)) { case INTEGER_CST: { switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case BIT_AND_EXPR: { tree o50 = gimple_assign_rhs1 (def); if ((o50 = do_valueize (valueize, o50))) { tree o51 = gimple_assign_rhs2 (def); if ((o51 = do_valueize (valueize, o51))) { if (tree_swap_operands_p (o50, o51)) std::swap (o50, o51); switch (TREE_CODE (o50)) { case SSA_NAME: if (do_valueize (valueize, o50) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (o50); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case BIT_NOT_EXPR: { tree o60 = gimple_assign_rhs1 (def); if ((o60 = do_valueize (valueize, o60))) { if (o60 == o20 || (operand_equal_p (o60, o20, 0) && types_match (o60, o20))) { switch (TREE_CODE (o51)) { case INTEGER_CST: { { /* #line 574 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, o51 }; if (gimple_simplify_179 (res_code, res_ops, seq, valueize, type, captures)) return true; } break; } default:; } } } break; } default:; } } break; default:; } } } break; } default:; } } break; default:; } break; } default:; } switch (TREE_CODE (o20)) { case SSA_NAME: if (do_valueize (valueize, o20) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (o20); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case BIT_NOT_EXPR: { tree o30 = gimple_assign_rhs1 (def); if ((o30 = do_valueize (valueize, o30))) { switch (TREE_CODE (o21)) { case INTEGER_CST: { switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case BIT_AND_EXPR: { tree o60 = gimple_assign_rhs1 (def); if ((o60 = do_valueize (valueize, o60))) { tree o61 = gimple_assign_rhs2 (def); if ((o61 = do_valueize (valueize, o61))) { if (tree_swap_operands_p (o60, o61)) std::swap (o60, o61); if (o60 == o30 || (operand_equal_p (o60, o30, 0) && types_match (o60, o30))) { switch (TREE_CODE (o61)) { case INTEGER_CST: { { /* #line 574 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o30, o61, o21 }; if (gimple_simplify_179 (res_code, res_ops, seq, valueize, type, captures)) return true; } break; } default:; } } } } break; } default:; } } break; default:; } break; } default:; } } break; } default:; } } break; default:; } } } break; } case BIT_XOR_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { if (tree_swap_operands_p (o20, o21)) std::swap (o20, o21); if (op1 == o20 || (operand_equal_p (op1, o20, 0) && types_match (op1, o20))) { { /* #line 580 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 }; if (gimple_simplify_56 (res_code, res_ops, seq, valueize, type, captures)) return true; } } if (op1 == o21 || (operand_equal_p (op1, o21, 0) && types_match (op1, o21))) { { /* #line 580 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o21, o20 }; if (gimple_simplify_56 (res_code, res_ops, seq, valueize, type, captures)) return true; } } } } break; } default:; } } break; default:; } switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case BIT_XOR_EXPR: { tree o30 = gimple_assign_rhs1 (def); if ((o30 = do_valueize (valueize, o30))) { tree o31 = gimple_assign_rhs2 (def); if ((o31 = do_valueize (valueize, o31))) { if (tree_swap_operands_p (o30, o31)) std::swap (o30, o31); if (o30 == op0 || (operand_equal_p (o30, op0, 0) && types_match (o30, op0))) { { /* #line 580 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { op0, o31 }; if (gimple_simplify_56 (res_code, res_ops, seq, valueize, type, captures)) return true; } } if (o31 == op0 || (operand_equal_p (o31, op0, 0) && types_match (o31, op0))) { { /* #line 580 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { op0, o30 }; if (gimple_simplify_56 (res_code, res_ops, seq, valueize, type, captures)) return true; } } } } break; } default:; } } break; default:; } if (integer_all_onesp (op1)) { { /* #line 606 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 }; gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:606, %s:%d\n", __FILE__, __LINE__); res_ops[0] = captures[1]; *res_code = TREE_CODE (res_ops[0]); return true; } } if (integer_zerop (op1)) { { /* #line 611 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { op0 }; gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:611, %s:%d\n", __FILE__, __LINE__); res_ops[0] = captures[0]; *res_code = TREE_CODE (res_ops[0]); return true; } } switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { CASE_CONVERT: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { CASE_CONVERT: { tree o40 = gimple_assign_rhs1 (def); if ((o40 = do_valueize (valueize, o40))) { switch (TREE_CODE (o40)) { case SSA_NAME: if (do_valueize (valueize, o40) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (o40); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case BIT_NOT_EXPR: { tree o50 = gimple_assign_rhs1 (def); if ((o50 = do_valueize (valueize, o50))) { if (o50 == o20 || (operand_equal_p (o50, o20, 0) && types_match (o50, o20))) { { /* #line 624 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; if (gimple_simplify_120 (res_code, res_ops, seq, valueize, type, captures, BIT_IOR_EXPR)) return true; } } } break; } default:; } } break; default:; } } break; } default:; } } break; default:; } switch (TREE_CODE (o20)) { case SSA_NAME: if (do_valueize (valueize, o20) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (o20); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case BIT_NOT_EXPR: { tree o30 = gimple_assign_rhs1 (def); if ((o30 = do_valueize (valueize, o30))) { switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { CASE_CONVERT: { tree o50 = gimple_assign_rhs1 (def); if ((o50 = do_valueize (valueize, o50))) { if (o50 == o30 || (operand_equal_p (o50, o30, 0) && types_match (o50, o30))) { { /* #line 624 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o30 }; if (gimple_simplify_120 (res_code, res_ops, seq, valueize, type, captures, BIT_IOR_EXPR)) return true; } } } break; } default:; } } break; default:; } } break; } default:; } } break; default:; } } break; } default:; } } break; default:; } switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case BIT_NOT_EXPR: { tree o30 = gimple_assign_rhs1 (def); if ((o30 = do_valueize (valueize, o30))) { if (o30 == op0 || (operand_equal_p (o30, op0, 0) && types_match (o30, op0))) { { /* #line 624 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { op0 }; if (gimple_simplify_120 (res_code, res_ops, seq, valueize, type, captures, BIT_IOR_EXPR)) return true; } } } break; } default:; } } break; default:; } switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case BIT_NOT_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { if (op1 == o20 || (operand_equal_p (op1, o20, 0) && types_match (op1, o20))) { { /* #line 624 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; if (gimple_simplify_120 (res_code, res_ops, seq, valueize, type, captures, BIT_IOR_EXPR)) return true; } } } break; } default:; } } break; default:; } if (op1 == op0 || (operand_equal_p (op1, op0, 0) && types_match (op1, op0))) { { /* #line 645 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { op0 }; if (gimple_simplify_67 (res_code, res_ops, seq, valueize, type, captures, BIT_IOR_EXPR)) return true; } } switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case BIT_NOT_EXPR: { tree o30 = gimple_assign_rhs1 (def); if ((o30 = do_valueize (valueize, o30))) { switch (TREE_CODE (o30)) { case SSA_NAME: if (do_valueize (valueize, o30) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (o30); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case BIT_IOR_EXPR: { tree o40 = gimple_assign_rhs1 (def); if ((o40 = do_valueize (valueize, o40))) { tree o41 = gimple_assign_rhs2 (def); if ((o41 = do_valueize (valueize, o41))) { if (tree_swap_operands_p (o40, o41)) std::swap (o40, o41); if (o40 == op0 || (operand_equal_p (o40, op0, 0) && types_match (o40, op0))) { { /* #line 666 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { op0, o30, o41 }; if (gimple_simplify_72 (res_code, res_ops, seq, valueize, type, captures, BIT_IOR_EXPR)) return true; } } if (o41 == op0 || (operand_equal_p (o41, op0, 0) && types_match (o41, op0))) { { /* #line 666 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { op0, o30, o40 }; if (gimple_simplify_72 (res_code, res_ops, seq, valueize, type, captures, BIT_IOR_EXPR)) return true; } } } } break; } default:; } } break; default:; } } break; } default:; } } break; default:; } switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case BIT_NOT_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { switch (TREE_CODE (o20)) { case SSA_NAME: if (do_valueize (valueize, o20) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (o20); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case BIT_IOR_EXPR: { tree o30 = gimple_assign_rhs1 (def); if ((o30 = do_valueize (valueize, o30))) { tree o31 = gimple_assign_rhs2 (def); if ((o31 = do_valueize (valueize, o31))) { if (tree_swap_operands_p (o30, o31)) std::swap (o30, o31); if (op1 == o30 || (operand_equal_p (op1, o30, 0) && types_match (op1, o30))) { { /* #line 666 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o30, o20, o31 }; if (gimple_simplify_72 (res_code, res_ops, seq, valueize, type, captures, BIT_IOR_EXPR)) return true; } } if (op1 == o31 || (operand_equal_p (op1, o31, 0) && types_match (op1, o31))) { { /* #line 666 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o31, o20, o30 }; if (gimple_simplify_72 (res_code, res_ops, seq, valueize, type, captures, BIT_IOR_EXPR)) return true; } } } } break; } default:; } } break; default:; } switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case BIT_AND_EXPR: { tree o40 = gimple_assign_rhs1 (def); if ((o40 = do_valueize (valueize, o40))) { tree o41 = gimple_assign_rhs2 (def); if ((o41 = do_valueize (valueize, o41))) { if (tree_swap_operands_p (o40, o41)) std::swap (o40, o41); if (o40 == o20 || (operand_equal_p (o40, o20, 0) && types_match (o40, o20))) { { /* #line 674 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o20, o41, op0 }; if (gimple_simplify_73 (res_code, res_ops, seq, valueize, type, captures, BIT_IOR_EXPR, BIT_AND_EXPR)) return true; } } if (o41 == o20 || (operand_equal_p (o41, o20, 0) && types_match (o41, o20))) { { /* #line 674 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o20, o40, op0 }; if (gimple_simplify_73 (res_code, res_ops, seq, valueize, type, captures, BIT_IOR_EXPR, BIT_AND_EXPR)) return true; } } } } break; } CASE_CONVERT: { tree o40 = gimple_assign_rhs1 (def); if ((o40 = do_valueize (valueize, o40))) { switch (TREE_CODE (o40)) { case SSA_NAME: if (do_valueize (valueize, o40) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (o40); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case BIT_NOT_EXPR: { tree o50 = gimple_assign_rhs1 (def); if ((o50 = do_valueize (valueize, o50))) { { /* #line 739 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, o50 }; if (gimple_simplify_16 (res_code, res_ops, seq, valueize, type, captures, BIT_IOR_EXPR, BIT_AND_EXPR)) return true; } } break; } default:; } } break; default:; } } break; } case BIT_NOT_EXPR: { tree o40 = gimple_assign_rhs1 (def); if ((o40 = do_valueize (valueize, o40))) { { /* #line 739 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, o40 }; if (gimple_simplify_16 (res_code, res_ops, seq, valueize, type, captures, BIT_IOR_EXPR, BIT_AND_EXPR)) return true; } } break; } default:; } } break; default:; } } break; } case BIT_AND_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { if (tree_swap_operands_p (o20, o21)) std::swap (o20, o21); switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case BIT_NOT_EXPR: { tree o50 = gimple_assign_rhs1 (def); if ((o50 = do_valueize (valueize, o50))) { if (o50 == o20 || (operand_equal_p (o50, o20, 0) && types_match (o50, o20))) { { /* #line 674 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 }; if (gimple_simplify_74 (res_code, res_ops, seq, valueize, type, captures, BIT_IOR_EXPR, BIT_AND_EXPR)) return true; } } if (o50 == o21 || (operand_equal_p (o50, o21, 0) && types_match (o50, o21))) { { /* #line 674 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o21, o20, op1 }; if (gimple_simplify_74 (res_code, res_ops, seq, valueize, type, captures, BIT_IOR_EXPR, BIT_AND_EXPR)) return true; } } } break; } case BIT_XOR_EXPR: { tree o50 = gimple_assign_rhs1 (def); if ((o50 = do_valueize (valueize, o50))) { tree o51 = gimple_assign_rhs2 (def); if ((o51 = do_valueize (valueize, o51))) { if (tree_swap_operands_p (o50, o51)) std::swap (o50, o51); if (o50 == o20 || (operand_equal_p (o50, o20, 0) && types_match (o50, o20))) { if (o51 == o21 || (operand_equal_p (o51, o21, 0) && types_match (o51, o21))) { { /* #line 692 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 }; if (gimple_simplify_85 (res_code, res_ops, seq, valueize, type, captures, BIT_IOR_EXPR)) return true; } } } } } break; } case BIT_AND_EXPR: { tree o50 = gimple_assign_rhs1 (def); if ((o50 = do_valueize (valueize, o50))) { tree o51 = gimple_assign_rhs2 (def); if ((o51 = do_valueize (valueize, o51))) { if (tree_swap_operands_p (o50, o51)) std::swap (o50, o51); if (o50 == o20 || operand_equal_p (o50, o20, 0)) { { /* #line 792 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { o20, o21, o51, o20 }; if (gimple_simplify_112 (res_code, res_ops, seq, valueize, type, captures, BIT_IOR_EXPR, BIT_AND_EXPR)) return true; } } if (o51 == o20 || operand_equal_p (o51, o20, 0)) { { /* #line 792 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { o20, o21, o50, o20 }; if (gimple_simplify_112 (res_code, res_ops, seq, valueize, type, captures, BIT_IOR_EXPR, BIT_AND_EXPR)) return true; } } if (o50 == o21 || operand_equal_p (o50, o21, 0)) { { /* #line 792 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { o21, o20, o51, o21 }; if (gimple_simplify_112 (res_code, res_ops, seq, valueize, type, captures, BIT_IOR_EXPR, BIT_AND_EXPR)) return true; } } if (o51 == o21 || operand_equal_p (o51, o21, 0)) { { /* #line 792 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { o21, o20, o50, o21 }; if (gimple_simplify_112 (res_code, res_ops, seq, valueize, type, captures, BIT_IOR_EXPR, BIT_AND_EXPR)) return true; } } } } break; } default:; } } break; default:; } } } break; } case BIT_XOR_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { if (tree_swap_operands_p (o20, o21)) std::swap (o20, o21); switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case BIT_AND_EXPR: { tree o50 = gimple_assign_rhs1 (def); if ((o50 = do_valueize (valueize, o50))) { tree o51 = gimple_assign_rhs2 (def); if ((o51 = do_valueize (valueize, o51))) { if (tree_swap_operands_p (o50, o51)) std::swap (o50, o51); if (o50 == o20 || (operand_equal_p (o50, o20, 0) && types_match (o50, o20))) { if (o51 == o21 || (operand_equal_p (o51, o21, 0) && types_match (o51, o21))) { { /* #line 692 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 }; if (gimple_simplify_85 (res_code, res_ops, seq, valueize, type, captures, BIT_IOR_EXPR)) return true; } } } } } break; } default:; } } break; default:; } } } break; } CASE_CONVERT: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { switch (TREE_CODE (o20)) { case SSA_NAME: if (do_valueize (valueize, o20) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (o20); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case BIT_NOT_EXPR: { tree o30 = gimple_assign_rhs1 (def); if ((o30 = do_valueize (valueize, o30))) { switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { CASE_CONVERT: { tree o50 = gimple_assign_rhs1 (def); if ((o50 = do_valueize (valueize, o50))) { switch (TREE_CODE (o50)) { case SSA_NAME: if (do_valueize (valueize, o50) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (o50); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case BIT_NOT_EXPR: { tree o60 = gimple_assign_rhs1 (def); if ((o60 = do_valueize (valueize, o60))) { { /* #line 739 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o30, o60 }; if (gimple_simplify_16 (res_code, res_ops, seq, valueize, type, captures, BIT_IOR_EXPR, BIT_AND_EXPR)) return true; } } break; } default:; } } break; default:; } } break; } case BIT_NOT_EXPR: { tree o50 = gimple_assign_rhs1 (def); if ((o50 = do_valueize (valueize, o50))) { { /* #line 739 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o30, o50 }; if (gimple_simplify_16 (res_code, res_ops, seq, valueize, type, captures, BIT_IOR_EXPR, BIT_AND_EXPR)) return true; } } break; } default:; } } break; default:; } } break; } case BIT_AND_EXPR: { tree o30 = gimple_assign_rhs1 (def); if ((o30 = do_valueize (valueize, o30))) { tree o31 = gimple_assign_rhs2 (def); if ((o31 = do_valueize (valueize, o31))) { if (tree_swap_operands_p (o30, o31)) std::swap (o30, o31); switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { CASE_CONVERT: { tree o60 = gimple_assign_rhs1 (def); if ((o60 = do_valueize (valueize, o60))) { switch (TREE_CODE (o60)) { case SSA_NAME: if (do_valueize (valueize, o60) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (o60); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case BIT_AND_EXPR: { tree o70 = gimple_assign_rhs1 (def); if ((o70 = do_valueize (valueize, o70))) { tree o71 = gimple_assign_rhs2 (def); if ((o71 = do_valueize (valueize, o71))) { if (tree_swap_operands_p (o70, o71)) std::swap (o70, o71); if (o70 == o30 || operand_equal_p (o70, o30, 0)) { { /* #line 792 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { o30, o31, o71, o30 }; if (gimple_simplify_112 (res_code, res_ops, seq, valueize, type, captures, BIT_IOR_EXPR, BIT_AND_EXPR)) return true; } } if (o71 == o30 || operand_equal_p (o71, o30, 0)) { { /* #line 792 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { o30, o31, o70, o30 }; if (gimple_simplify_112 (res_code, res_ops, seq, valueize, type, captures, BIT_IOR_EXPR, BIT_AND_EXPR)) return true; } } if (o70 == o31 || operand_equal_p (o70, o31, 0)) { { /* #line 792 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { o31, o30, o71, o31 }; if (gimple_simplify_112 (res_code, res_ops, seq, valueize, type, captures, BIT_IOR_EXPR, BIT_AND_EXPR)) return true; } } if (o71 == o31 || operand_equal_p (o71, o31, 0)) { { /* #line 792 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { o31, o30, o70, o31 }; if (gimple_simplify_112 (res_code, res_ops, seq, valueize, type, captures, BIT_IOR_EXPR, BIT_AND_EXPR)) return true; } } } } break; } default:; } } break; default:; } } break; } default:; } } break; default:; } } } break; } case BIT_IOR_EXPR: { tree o30 = gimple_assign_rhs1 (def); if ((o30 = do_valueize (valueize, o30))) { tree o31 = gimple_assign_rhs2 (def); if ((o31 = do_valueize (valueize, o31))) { if (tree_swap_operands_p (o30, o31)) std::swap (o30, o31); switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { CASE_CONVERT: { tree o60 = gimple_assign_rhs1 (def); if ((o60 = do_valueize (valueize, o60))) { if (o60 == o31 || operand_equal_p (o60, o31, 0)) { { /* #line 802 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { op0, o30, o31, o31 }; if (gimple_simplify_63 (res_code, res_ops, seq, valueize, type, captures, BIT_IOR_EXPR)) return true; } } if (o60 == o30 || operand_equal_p (o60, o30, 0)) { { /* #line 802 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { op0, o31, o30, o30 }; if (gimple_simplify_63 (res_code, res_ops, seq, valueize, type, captures, BIT_IOR_EXPR)) return true; } } } break; } default:; } } break; default:; } } } break; } default:; } } break; default:; } switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { CASE_CONVERT: { tree o40 = gimple_assign_rhs1 (def); if ((o40 = do_valueize (valueize, o40))) { switch (TREE_CODE (o40)) { case SSA_NAME: if (do_valueize (valueize, o40) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (o40); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case BIT_IOR_EXPR: { tree o50 = gimple_assign_rhs1 (def); if ((o50 = do_valueize (valueize, o50))) { tree o51 = gimple_assign_rhs2 (def); if ((o51 = do_valueize (valueize, o51))) { if (tree_swap_operands_p (o50, o51)) std::swap (o50, o51); if (o51 == o20 || operand_equal_p (o51, o20, 0)) { { /* #line 802 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { op1, o50, o51, o20 }; if (gimple_simplify_33 (res_code, res_ops, seq, valueize, type, captures, BIT_IOR_EXPR)) return true; } } if (o50 == o20 || operand_equal_p (o50, o20, 0)) { { /* #line 802 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { op1, o51, o50, o20 }; if (gimple_simplify_33 (res_code, res_ops, seq, valueize, type, captures, BIT_IOR_EXPR)) return true; } } } } break; } default:; } } break; default:; } } break; } default:; } } break; default:; } switch (TREE_CODE (o20)) { case SSA_NAME: if (do_valueize (valueize, o20) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (o20); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case BIT_IOR_EXPR: { tree o30 = gimple_assign_rhs1 (def); if ((o30 = do_valueize (valueize, o30))) { tree o31 = gimple_assign_rhs2 (def); if ((o31 = do_valueize (valueize, o31))) { if (tree_swap_operands_p (o30, o31)) std::swap (o30, o31); if (op1 == o31 || operand_equal_p (op1, o31, 0)) { { /* #line 802 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { op0, o30, o31, o31 }; if (gimple_simplify_63 (res_code, res_ops, seq, valueize, type, captures, BIT_IOR_EXPR)) return true; } } if (op1 == o30 || operand_equal_p (op1, o30, 0)) { { /* #line 802 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { op0, o31, o30, o30 }; if (gimple_simplify_63 (res_code, res_ops, seq, valueize, type, captures, BIT_IOR_EXPR)) return true; } } } } break; } default:; } } break; default:; } } break; } default:; } } break; default:; } switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { CASE_CONVERT: { tree o30 = gimple_assign_rhs1 (def); if ((o30 = do_valueize (valueize, o30))) { switch (TREE_CODE (o30)) { case SSA_NAME: if (do_valueize (valueize, o30) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (o30); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case BIT_IOR_EXPR: { tree o40 = gimple_assign_rhs1 (def); if ((o40 = do_valueize (valueize, o40))) { tree o41 = gimple_assign_rhs2 (def); if ((o41 = do_valueize (valueize, o41))) { if (tree_swap_operands_p (o40, o41)) std::swap (o40, o41); if (o41 == op0 || operand_equal_p (o41, op0, 0)) { { /* #line 802 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { op1, o40, o41, op0 }; if (gimple_simplify_33 (res_code, res_ops, seq, valueize, type, captures, BIT_IOR_EXPR)) return true; } } if (o40 == op0 || operand_equal_p (o40, op0, 0)) { { /* #line 802 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { op1, o41, o40, op0 }; if (gimple_simplify_33 (res_code, res_ops, seq, valueize, type, captures, BIT_IOR_EXPR)) return true; } } } } break; } default:; } } break; default:; } } break; } default:; } } break; default:; } switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case BIT_IOR_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { if (tree_swap_operands_p (o20, o21)) std::swap (o20, o21); switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { CASE_CONVERT: { tree o50 = gimple_assign_rhs1 (def); if ((o50 = do_valueize (valueize, o50))) { if (o50 == o21 || operand_equal_p (o50, o21, 0)) { { /* #line 802 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o21, o21 }; if (gimple_simplify_63 (res_code, res_ops, seq, valueize, type, captures, BIT_IOR_EXPR)) return true; } } if (o50 == o20 || operand_equal_p (o50, o20, 0)) { { /* #line 802 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { op0, o21, o20, o20 }; if (gimple_simplify_63 (res_code, res_ops, seq, valueize, type, captures, BIT_IOR_EXPR)) return true; } } } break; } default:; } } break; default:; } if (op1 == o21 || operand_equal_p (op1, o21, 0)) { { /* #line 802 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o21, o21 }; if (gimple_simplify_63 (res_code, res_ops, seq, valueize, type, captures, BIT_IOR_EXPR)) return true; } } if (op1 == o20 || operand_equal_p (op1, o20, 0)) { { /* #line 802 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { op0, o21, o20, o20 }; if (gimple_simplify_63 (res_code, res_ops, seq, valueize, type, captures, BIT_IOR_EXPR)) return true; } } } } break; } CASE_CONVERT: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case BIT_IOR_EXPR: { tree o40 = gimple_assign_rhs1 (def); if ((o40 = do_valueize (valueize, o40))) { tree o41 = gimple_assign_rhs2 (def); if ((o41 = do_valueize (valueize, o41))) { if (tree_swap_operands_p (o40, o41)) std::swap (o40, o41); if (o41 == o20 || operand_equal_p (o41, o20, 0)) { { /* #line 802 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { op1, o40, o41, o20 }; if (gimple_simplify_33 (res_code, res_ops, seq, valueize, type, captures, BIT_IOR_EXPR)) return true; } } if (o40 == o20 || operand_equal_p (o40, o20, 0)) { { /* #line 802 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { op1, o41, o40, o20 }; if (gimple_simplify_33 (res_code, res_ops, seq, valueize, type, captures, BIT_IOR_EXPR)) return true; } } } } break; } default:; } } break; default:; } } break; } default:; } } break; default:; } switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case BIT_IOR_EXPR: { tree o30 = gimple_assign_rhs1 (def); if ((o30 = do_valueize (valueize, o30))) { tree o31 = gimple_assign_rhs2 (def); if ((o31 = do_valueize (valueize, o31))) { if (tree_swap_operands_p (o30, o31)) std::swap (o30, o31); if (o31 == op0 || operand_equal_p (o31, op0, 0)) { { /* #line 802 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { op1, o30, o31, op0 }; if (gimple_simplify_33 (res_code, res_ops, seq, valueize, type, captures, BIT_IOR_EXPR)) return true; } } if (o30 == op0 || operand_equal_p (o30, op0, 0)) { { /* #line 802 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { op1, o31, o30, op0 }; if (gimple_simplify_33 (res_code, res_ops, seq, valueize, type, captures, BIT_IOR_EXPR)) return true; } } } } break; } default:; } } break; default:; } switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { CASE_CONVERT: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { switch (TREE_CODE (o20)) { case SSA_NAME: if (do_valueize (valueize, o20) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (o20); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case BIT_IOR_EXPR: { tree o30 = gimple_assign_rhs1 (def); if ((o30 = do_valueize (valueize, o30))) { tree o31 = gimple_assign_rhs2 (def); if ((o31 = do_valueize (valueize, o31))) { if (tree_swap_operands_p (o30, o31)) std::swap (o30, o31); switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { CASE_CONVERT: { tree o60 = gimple_assign_rhs1 (def); if ((o60 = do_valueize (valueize, o60))) { switch (TREE_CODE (o60)) { case SSA_NAME: if (do_valueize (valueize, o60) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (o60); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case BIT_IOR_EXPR: { tree o70 = gimple_assign_rhs1 (def); if ((o70 = do_valueize (valueize, o70))) { tree o71 = gimple_assign_rhs2 (def); if ((o71 = do_valueize (valueize, o71))) { if (tree_swap_operands_p (o70, o71)) std::swap (o70, o71); if (o70 == o30 || (operand_equal_p (o70, o30, 0) && types_match (o70, o30))) { { /* #line 812 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[7] ATTRIBUTE_UNUSED = { op0, o20, o30, o31, op1, o60, o71 }; if (gimple_simplify_152 (res_code, res_ops, seq, valueize, type, captures, BIT_IOR_EXPR)) return true; } } if (o71 == o30 || (operand_equal_p (o71, o30, 0) && types_match (o71, o30))) { { /* #line 812 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[7] ATTRIBUTE_UNUSED = { op0, o20, o30, o31, op1, o60, o70 }; if (gimple_simplify_152 (res_code, res_ops, seq, valueize, type, captures, BIT_IOR_EXPR)) return true; } } if (o70 == o31 || (operand_equal_p (o70, o31, 0) && types_match (o70, o31))) { { /* #line 812 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[7] ATTRIBUTE_UNUSED = { op0, o20, o31, o30, op1, o60, o71 }; if (gimple_simplify_152 (res_code, res_ops, seq, valueize, type, captures, BIT_IOR_EXPR)) return true; } } if (o71 == o31 || (operand_equal_p (o71, o31, 0) && types_match (o71, o31))) { { /* #line 812 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[7] ATTRIBUTE_UNUSED = { op0, o20, o31, o30, op1, o60, o70 }; if (gimple_simplify_152 (res_code, res_ops, seq, valueize, type, captures, BIT_IOR_EXPR)) return true; } } if (o70 == o30 || (operand_equal_p (o70, o30, 0) && types_match (o70, o30))) { { /* #line 812 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[7] ATTRIBUTE_UNUSED = { op1, o60, o30, o71, op0, o20, o31 }; if (gimple_simplify_87 (res_code, res_ops, seq, valueize, type, captures, BIT_IOR_EXPR)) return true; } } if (o70 == o31 || (operand_equal_p (o70, o31, 0) && types_match (o70, o31))) { { /* #line 812 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[7] ATTRIBUTE_UNUSED = { op1, o60, o31, o71, op0, o20, o30 }; if (gimple_simplify_87 (res_code, res_ops, seq, valueize, type, captures, BIT_IOR_EXPR)) return true; } } if (o71 == o30 || (operand_equal_p (o71, o30, 0) && types_match (o71, o30))) { { /* #line 812 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[7] ATTRIBUTE_UNUSED = { op1, o60, o30, o70, op0, o20, o31 }; if (gimple_simplify_87 (res_code, res_ops, seq, valueize, type, captures, BIT_IOR_EXPR)) return true; } } if (o71 == o31 || (operand_equal_p (o71, o31, 0) && types_match (o71, o31))) { { /* #line 812 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[7] ATTRIBUTE_UNUSED = { op1, o60, o31, o70, op0, o20, o30 }; if (gimple_simplify_87 (res_code, res_ops, seq, valueize, type, captures, BIT_IOR_EXPR)) return true; } } } } break; } default:; } } break; default:; } } break; } case BIT_IOR_EXPR: { tree o60 = gimple_assign_rhs1 (def); if ((o60 = do_valueize (valueize, o60))) { tree o61 = gimple_assign_rhs2 (def); if ((o61 = do_valueize (valueize, o61))) { if (tree_swap_operands_p (o60, o61)) std::swap (o60, o61); if (o60 == o30 || (operand_equal_p (o60, o30, 0) && types_match (o60, o30))) { { /* #line 812 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[7] ATTRIBUTE_UNUSED = { op0, o20, o30, o31, op1, op1, o61 }; if (gimple_simplify_199 (res_code, res_ops, seq, valueize, type, captures, BIT_IOR_EXPR)) return true; } } if (o61 == o30 || (operand_equal_p (o61, o30, 0) && types_match (o61, o30))) { { /* #line 812 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[7] ATTRIBUTE_UNUSED = { op0, o20, o30, o31, op1, op1, o60 }; if (gimple_simplify_199 (res_code, res_ops, seq, valueize, type, captures, BIT_IOR_EXPR)) return true; } } if (o60 == o31 || (operand_equal_p (o60, o31, 0) && types_match (o60, o31))) { { /* #line 812 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[7] ATTRIBUTE_UNUSED = { op0, o20, o31, o30, op1, op1, o61 }; if (gimple_simplify_199 (res_code, res_ops, seq, valueize, type, captures, BIT_IOR_EXPR)) return true; } } if (o61 == o31 || (operand_equal_p (o61, o31, 0) && types_match (o61, o31))) { { /* #line 812 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[7] ATTRIBUTE_UNUSED = { op0, o20, o31, o30, op1, op1, o60 }; if (gimple_simplify_199 (res_code, res_ops, seq, valueize, type, captures, BIT_IOR_EXPR)) return true; } } if (o60 == o30 || (operand_equal_p (o60, o30, 0) && types_match (o60, o30))) { { /* #line 812 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[7] ATTRIBUTE_UNUSED = { op1, op1, o30, o61, op0, o20, o31 }; if (gimple_simplify_188 (res_code, res_ops, seq, valueize, type, captures, BIT_IOR_EXPR)) return true; } } if (o60 == o31 || (operand_equal_p (o60, o31, 0) && types_match (o60, o31))) { { /* #line 812 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[7] ATTRIBUTE_UNUSED = { op1, op1, o31, o61, op0, o20, o30 }; if (gimple_simplify_188 (res_code, res_ops, seq, valueize, type, captures, BIT_IOR_EXPR)) return true; } } if (o61 == o30 || (operand_equal_p (o61, o30, 0) && types_match (o61, o30))) { { /* #line 812 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[7] ATTRIBUTE_UNUSED = { op1, op1, o30, o60, op0, o20, o31 }; if (gimple_simplify_188 (res_code, res_ops, seq, valueize, type, captures, BIT_IOR_EXPR)) return true; } } if (o61 == o31 || (operand_equal_p (o61, o31, 0) && types_match (o61, o31))) { { /* #line 812 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[7] ATTRIBUTE_UNUSED = { op1, op1, o31, o60, op0, o20, o30 }; if (gimple_simplify_188 (res_code, res_ops, seq, valueize, type, captures, BIT_IOR_EXPR)) return true; } } } } break; } default:; } } break; default:; } } } break; } default:; } } break; default:; } switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { CASE_CONVERT: { tree o40 = gimple_assign_rhs1 (def); if ((o40 = do_valueize (valueize, o40))) { { /* #line 885 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, o40 }; if (gimple_simplify_64 (res_code, res_ops, seq, valueize, type, captures, BIT_IOR_EXPR)) return true; } } break; } default:; } } break; default:; } { /* #line 885 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 }; if (gimple_simplify_64 (res_code, res_ops, seq, valueize, type, captures, BIT_IOR_EXPR)) return true; } } break; } case BIT_IOR_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { if (tree_swap_operands_p (o20, o21)) std::swap (o20, o21); switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { CASE_CONVERT: { tree o50 = gimple_assign_rhs1 (def); if ((o50 = do_valueize (valueize, o50))) { switch (TREE_CODE (o50)) { case SSA_NAME: if (do_valueize (valueize, o50) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (o50); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case BIT_IOR_EXPR: { tree o60 = gimple_assign_rhs1 (def); if ((o60 = do_valueize (valueize, o60))) { tree o61 = gimple_assign_rhs2 (def); if ((o61 = do_valueize (valueize, o61))) { if (tree_swap_operands_p (o60, o61)) std::swap (o60, o61); if (o60 == o20 || (operand_equal_p (o60, o20, 0) && types_match (o60, o20))) { { /* #line 812 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[7] ATTRIBUTE_UNUSED = { op1, o50, o20, o61, op0, op0, o21 }; if (gimple_simplify_167 (res_code, res_ops, seq, valueize, type, captures, BIT_IOR_EXPR)) return true; } } if (o60 == o21 || (operand_equal_p (o60, o21, 0) && types_match (o60, o21))) { { /* #line 812 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[7] ATTRIBUTE_UNUSED = { op1, o50, o21, o61, op0, op0, o20 }; if (gimple_simplify_167 (res_code, res_ops, seq, valueize, type, captures, BIT_IOR_EXPR)) return true; } } if (o61 == o20 || (operand_equal_p (o61, o20, 0) && types_match (o61, o20))) { { /* #line 812 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[7] ATTRIBUTE_UNUSED = { op1, o50, o20, o60, op0, op0, o21 }; if (gimple_simplify_167 (res_code, res_ops, seq, valueize, type, captures, BIT_IOR_EXPR)) return true; } } if (o61 == o21 || (operand_equal_p (o61, o21, 0) && types_match (o61, o21))) { { /* #line 812 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[7] ATTRIBUTE_UNUSED = { op1, o50, o21, o60, op0, op0, o20 }; if (gimple_simplify_167 (res_code, res_ops, seq, valueize, type, captures, BIT_IOR_EXPR)) return true; } } if (o60 == o20 || (operand_equal_p (o60, o20, 0) && types_match (o60, o20))) { { /* #line 812 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[7] ATTRIBUTE_UNUSED = { op0, op0, o20, o21, op1, o50, o61 }; if (gimple_simplify_13 (res_code, res_ops, seq, valueize, type, captures, BIT_IOR_EXPR)) return true; } } if (o61 == o20 || (operand_equal_p (o61, o20, 0) && types_match (o61, o20))) { { /* #line 812 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[7] ATTRIBUTE_UNUSED = { op0, op0, o20, o21, op1, o50, o60 }; if (gimple_simplify_13 (res_code, res_ops, seq, valueize, type, captures, BIT_IOR_EXPR)) return true; } } if (o60 == o21 || (operand_equal_p (o60, o21, 0) && types_match (o60, o21))) { { /* #line 812 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[7] ATTRIBUTE_UNUSED = { op0, op0, o21, o20, op1, o50, o61 }; if (gimple_simplify_13 (res_code, res_ops, seq, valueize, type, captures, BIT_IOR_EXPR)) return true; } } if (o61 == o21 || (operand_equal_p (o61, o21, 0) && types_match (o61, o21))) { { /* #line 812 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[7] ATTRIBUTE_UNUSED = { op0, op0, o21, o20, op1, o50, o60 }; if (gimple_simplify_13 (res_code, res_ops, seq, valueize, type, captures, BIT_IOR_EXPR)) return true; } } } } break; } default:; } } break; default:; } } break; } case BIT_IOR_EXPR: { tree o50 = gimple_assign_rhs1 (def); if ((o50 = do_valueize (valueize, o50))) { tree o51 = gimple_assign_rhs2 (def); if ((o51 = do_valueize (valueize, o51))) { if (tree_swap_operands_p (o50, o51)) std::swap (o50, o51); if (o50 == o20 || (operand_equal_p (o50, o20, 0) && types_match (o50, o20))) { { /* #line 812 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[7] ATTRIBUTE_UNUSED = { op0, op0, o20, o21, op1, op1, o51 }; if (gimple_simplify_30 (res_code, res_ops, seq, valueize, type, captures, BIT_IOR_EXPR)) return true; } } if (o51 == o20 || (operand_equal_p (o51, o20, 0) && types_match (o51, o20))) { { /* #line 812 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[7] ATTRIBUTE_UNUSED = { op0, op0, o20, o21, op1, op1, o50 }; if (gimple_simplify_30 (res_code, res_ops, seq, valueize, type, captures, BIT_IOR_EXPR)) return true; } } if (o50 == o21 || (operand_equal_p (o50, o21, 0) && types_match (o50, o21))) { { /* #line 812 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[7] ATTRIBUTE_UNUSED = { op0, op0, o21, o20, op1, op1, o51 }; if (gimple_simplify_30 (res_code, res_ops, seq, valueize, type, captures, BIT_IOR_EXPR)) return true; } } if (o51 == o21 || (operand_equal_p (o51, o21, 0) && types_match (o51, o21))) { { /* #line 812 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[7] ATTRIBUTE_UNUSED = { op0, op0, o21, o20, op1, op1, o50 }; if (gimple_simplify_30 (res_code, res_ops, seq, valueize, type, captures, BIT_IOR_EXPR)) return true; } } if (o50 == o20 || (operand_equal_p (o50, o20, 0) && types_match (o50, o20))) { { /* #line 812 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[7] ATTRIBUTE_UNUSED = { op1, op1, o20, o51, op0, op0, o21 }; if (gimple_simplify_108 (res_code, res_ops, seq, valueize, type, captures, BIT_IOR_EXPR)) return true; } } if (o50 == o21 || (operand_equal_p (o50, o21, 0) && types_match (o50, o21))) { { /* #line 812 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[7] ATTRIBUTE_UNUSED = { op1, op1, o21, o51, op0, op0, o20 }; if (gimple_simplify_108 (res_code, res_ops, seq, valueize, type, captures, BIT_IOR_EXPR)) return true; } } if (o51 == o20 || (operand_equal_p (o51, o20, 0) && types_match (o51, o20))) { { /* #line 812 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[7] ATTRIBUTE_UNUSED = { op1, op1, o20, o50, op0, op0, o21 }; if (gimple_simplify_108 (res_code, res_ops, seq, valueize, type, captures, BIT_IOR_EXPR)) return true; } } if (o51 == o21 || (operand_equal_p (o51, o21, 0) && types_match (o51, o21))) { { /* #line 812 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[7] ATTRIBUTE_UNUSED = { op1, op1, o21, o50, op0, op0, o20 }; if (gimple_simplify_108 (res_code, res_ops, seq, valueize, type, captures, BIT_IOR_EXPR)) return true; } } } } break; } default:; } } break; default:; } } } break; } case BIT_AND_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { if (tree_swap_operands_p (o20, o21)) std::swap (o20, o21); if (op1 == o20 || (operand_equal_p (op1, o20, 0) && types_match (op1, o20))) { { /* #line 912 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 }; if (gimple_simplify_222 (res_code, res_ops, seq, valueize, type, captures, BIT_IOR_EXPR, BIT_AND_EXPR)) return true; } } if (op1 == o21 || (operand_equal_p (op1, o21, 0) && types_match (op1, o21))) { { /* #line 912 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o21, o20 }; if (gimple_simplify_222 (res_code, res_ops, seq, valueize, type, captures, BIT_IOR_EXPR, BIT_AND_EXPR)) return true; } } } } break; } default:; } } break; default:; } switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case BIT_AND_EXPR: { tree o30 = gimple_assign_rhs1 (def); if ((o30 = do_valueize (valueize, o30))) { tree o31 = gimple_assign_rhs2 (def); if ((o31 = do_valueize (valueize, o31))) { if (tree_swap_operands_p (o30, o31)) std::swap (o30, o31); if (o30 == op0 || (operand_equal_p (o30, op0, 0) && types_match (o30, op0))) { { /* #line 912 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { op0, o31 }; if (gimple_simplify_222 (res_code, res_ops, seq, valueize, type, captures, BIT_IOR_EXPR, BIT_AND_EXPR)) return true; } } if (o31 == op0 || (operand_equal_p (o31, op0, 0) && types_match (o31, op0))) { { /* #line 912 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { op0, o30 }; if (gimple_simplify_222 (res_code, res_ops, seq, valueize, type, captures, BIT_IOR_EXPR, BIT_AND_EXPR)) return true; } } } } break; } default:; } } break; default:; } switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case BIT_AND_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { if (tree_swap_operands_p (o20, o21)) std::swap (o20, o21); switch (TREE_CODE (o20)) { case SSA_NAME: if (do_valueize (valueize, o20) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (o20); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case BIT_NOT_EXPR: { tree o30 = gimple_assign_rhs1 (def); if ((o30 = do_valueize (valueize, o30))) { if (op1 == o30 || (operand_equal_p (op1, o30, 0) && types_match (op1, o30))) { { /* #line 917 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o30, o21 }; if (gimple_simplify_128 (res_code, res_ops, seq, valueize, type, captures, BIT_IOR_EXPR, BIT_AND_EXPR)) return true; } } } break; } default:; } } break; default:; } switch (TREE_CODE (o21)) { case SSA_NAME: if (do_valueize (valueize, o21) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (o21); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case BIT_NOT_EXPR: { tree o40 = gimple_assign_rhs1 (def); if ((o40 = do_valueize (valueize, o40))) { if (op1 == o40 || (operand_equal_p (op1, o40, 0) && types_match (op1, o40))) { { /* #line 917 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o40, o20 }; if (gimple_simplify_128 (res_code, res_ops, seq, valueize, type, captures, BIT_IOR_EXPR, BIT_AND_EXPR)) return true; } } } break; } default:; } } break; default:; } } } break; } default:; } } break; default:; } switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case BIT_AND_EXPR: { tree o30 = gimple_assign_rhs1 (def); if ((o30 = do_valueize (valueize, o30))) { tree o31 = gimple_assign_rhs2 (def); if ((o31 = do_valueize (valueize, o31))) { if (tree_swap_operands_p (o30, o31)) std::swap (o30, o31); switch (TREE_CODE (o30)) { case SSA_NAME: if (do_valueize (valueize, o30) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (o30); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case BIT_NOT_EXPR: { tree o40 = gimple_assign_rhs1 (def); if ((o40 = do_valueize (valueize, o40))) { if (o40 == op0 || (operand_equal_p (o40, op0, 0) && types_match (o40, op0))) { { /* #line 917 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { op0, o31 }; if (gimple_simplify_128 (res_code, res_ops, seq, valueize, type, captures, BIT_IOR_EXPR, BIT_AND_EXPR)) return true; } } } break; } default:; } } break; default:; } switch (TREE_CODE (o31)) { case SSA_NAME: if (do_valueize (valueize, o31) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (o31); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case BIT_NOT_EXPR: { tree o50 = gimple_assign_rhs1 (def); if ((o50 = do_valueize (valueize, o50))) { if (o50 == op0 || (operand_equal_p (o50, op0, 0) && types_match (o50, op0))) { { /* #line 917 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { op0, o30 }; if (gimple_simplify_128 (res_code, res_ops, seq, valueize, type, captures, BIT_IOR_EXPR, BIT_AND_EXPR)) return true; } } } break; } default:; } } break; default:; } } } break; } default:; } } break; default:; } switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case BIT_IOR_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { if (tree_swap_operands_p (o20, o21)) std::swap (o20, o21); if (CONSTANT_CLASS_P (o21)) { if (CONSTANT_CLASS_P (op1)) { { /* #line 928 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 }; if (gimple_simplify_130 (res_code, res_ops, seq, valueize, type, captures, BIT_IOR_EXPR)) return true; } } } } } break; } case BIT_AND_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { if (tree_swap_operands_p (o20, o21)) std::swap (o20, o21); switch (TREE_CODE (o21)) { case SSA_NAME: if (do_valueize (valueize, o21) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (o21); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case BIT_NOT_EXPR: { tree o40 = gimple_assign_rhs1 (def); if ((o40 = do_valueize (valueize, o40))) { switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case BIT_AND_EXPR: { tree o60 = gimple_assign_rhs1 (def); if ((o60 = do_valueize (valueize, o60))) { tree o61 = gimple_assign_rhs2 (def); if ((o61 = do_valueize (valueize, o61))) { if (tree_swap_operands_p (o60, o61)) std::swap (o60, o61); if (o61 == o40 || (operand_equal_p (o61, o40, 0) && types_match (o61, o40))) { { /* #line 1004 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { op0, o20, o40, op1, o60 }; if (gimple_simplify_147 (res_code, res_ops, seq, valueize, type, captures)) return true; } } if (o60 == o40 || (operand_equal_p (o60, o40, 0) && types_match (o60, o40))) { { /* #line 1004 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { op0, o20, o40, op1, o61 }; if (gimple_simplify_147 (res_code, res_ops, seq, valueize, type, captures)) return true; } } } } break; } default:; } } break; default:; } } break; } default:; } } break; default:; } switch (TREE_CODE (o20)) { case SSA_NAME: if (do_valueize (valueize, o20) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (o20); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case BIT_NOT_EXPR: { tree o30 = gimple_assign_rhs1 (def); if ((o30 = do_valueize (valueize, o30))) { switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case BIT_AND_EXPR: { tree o60 = gimple_assign_rhs1 (def); if ((o60 = do_valueize (valueize, o60))) { tree o61 = gimple_assign_rhs2 (def); if ((o61 = do_valueize (valueize, o61))) { if (tree_swap_operands_p (o60, o61)) std::swap (o60, o61); if (o61 == o30 || (operand_equal_p (o61, o30, 0) && types_match (o61, o30))) { { /* #line 1004 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { op0, o21, o30, op1, o60 }; if (gimple_simplify_147 (res_code, res_ops, seq, valueize, type, captures)) return true; } } if (o60 == o30 || (operand_equal_p (o60, o30, 0) && types_match (o60, o30))) { { /* #line 1004 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { op0, o21, o30, op1, o61 }; if (gimple_simplify_147 (res_code, res_ops, seq, valueize, type, captures)) return true; } } } } break; } default:; } } break; default:; } } break; } default:; } } break; default:; } switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case BIT_AND_EXPR: { tree o50 = gimple_assign_rhs1 (def); if ((o50 = do_valueize (valueize, o50))) { tree o51 = gimple_assign_rhs2 (def); if ((o51 = do_valueize (valueize, o51))) { if (tree_swap_operands_p (o50, o51)) std::swap (o50, o51); switch (TREE_CODE (o51)) { case SSA_NAME: if (do_valueize (valueize, o51) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (o51); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case BIT_NOT_EXPR: { tree o70 = gimple_assign_rhs1 (def); if ((o70 = do_valueize (valueize, o70))) { if (o70 == o21 || (operand_equal_p (o70, o21, 0) && types_match (o70, o21))) { { /* #line 1004 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { op1, o50, o21, op0, o20 }; if (gimple_simplify_147 (res_code, res_ops, seq, valueize, type, captures)) return true; } } if (o70 == o20 || (operand_equal_p (o70, o20, 0) && types_match (o70, o20))) { { /* #line 1004 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { op1, o50, o20, op0, o21 }; if (gimple_simplify_147 (res_code, res_ops, seq, valueize, type, captures)) return true; } } } break; } default:; } } break; default:; } switch (TREE_CODE (o50)) { case SSA_NAME: if (do_valueize (valueize, o50) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (o50); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case BIT_NOT_EXPR: { tree o60 = gimple_assign_rhs1 (def); if ((o60 = do_valueize (valueize, o60))) { if (o60 == o21 || (operand_equal_p (o60, o21, 0) && types_match (o60, o21))) { { /* #line 1004 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { op1, o51, o21, op0, o20 }; if (gimple_simplify_147 (res_code, res_ops, seq, valueize, type, captures)) return true; } } if (o60 == o20 || (operand_equal_p (o60, o20, 0) && types_match (o60, o20))) { { /* #line 1004 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { op1, o51, o20, op0, o21 }; if (gimple_simplify_147 (res_code, res_ops, seq, valueize, type, captures)) return true; } } } break; } default:; } } break; default:; } } } break; } default:; } } break; default:; } } } break; } case BIT_XOR_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { if (tree_swap_operands_p (o20, o21)) std::swap (o20, o21); switch (TREE_CODE (o21)) { case INTEGER_CST: { switch (TREE_CODE (op1)) { case INTEGER_CST: { { /* #line 1054 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o21, op1 }; if (gimple_simplify_197 (res_code, res_ops, seq, valueize, type, captures, BIT_XOR_EXPR, BIT_IOR_EXPR)) return true; } break; } default:; } break; } default:; } } } break; } case UNORDERED_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { if (tree_swap_operands_p (o20, o21)) std::swap (o20, o21); if (o21 == o20 || (operand_equal_p (o21, o20, 0) && types_match (o21, o20))) { switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case UNORDERED_EXPR: { tree o50 = gimple_assign_rhs1 (def); if ((o50 = do_valueize (valueize, o50))) { tree o51 = gimple_assign_rhs2 (def); if ((o51 = do_valueize (valueize, o51))) { if (tree_swap_operands_p (o50, o51)) std::swap (o50, o51); if (o51 == o50 || (operand_equal_p (o51, o50, 0) && types_match (o51, o50))) { { /* #line 2624 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, o50 }; /* #line 2624 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (types_match (captures[0], captures[1])) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2625, %s:%d\n", __FILE__, __LINE__); *res_code = UNORDERED_EXPR; res_ops[0] = captures[0]; res_ops[1] = captures[1]; gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } } if (o50 == o20 || (operand_equal_p (o50, o20, 0) && types_match (o50, o20))) { { /* #line 2632 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o20, op1, o51 }; if (gimple_simplify_229 (res_code, res_ops, seq, valueize, type, captures)) return true; } } if (o51 == o20 || (operand_equal_p (o51, o20, 0) && types_match (o51, o20))) { { /* #line 2632 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o20, op1, o50 }; if (gimple_simplify_229 (res_code, res_ops, seq, valueize, type, captures)) return true; } } } } break; } default:; } } break; default:; } } switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case UNORDERED_EXPR: { tree o50 = gimple_assign_rhs1 (def); if ((o50 = do_valueize (valueize, o50))) { tree o51 = gimple_assign_rhs2 (def); if ((o51 = do_valueize (valueize, o51))) { if (tree_swap_operands_p (o50, o51)) std::swap (o50, o51); if (o50 == o20 || (operand_equal_p (o50, o20, 0) && types_match (o50, o20))) { if (o51 == o20 || (operand_equal_p (o51, o20, 0) && types_match (o51, o20))) { { /* #line 2632 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o20, op0, o21 }; if (gimple_simplify_213 (res_code, res_ops, seq, valueize, type, captures)) return true; } } } if (o50 == o21 || (operand_equal_p (o50, o21, 0) && types_match (o50, o21))) { if (o51 == o21 || (operand_equal_p (o51, o21, 0) && types_match (o51, o21))) { { /* #line 2632 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o21, op0, o20 }; if (gimple_simplify_213 (res_code, res_ops, seq, valueize, type, captures)) return true; } } } } } break; } default:; } } break; default:; } } } break; } case LT_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case GE_EXPR: { tree o50 = gimple_assign_rhs1 (def); if ((o50 = do_valueize (valueize, o50))) { tree o51 = gimple_assign_rhs2 (def); if ((o51 = do_valueize (valueize, o51))) { if (o50 == o20 || (operand_equal_p (o50, o20, 0) && types_match (o50, o20))) { if (o51 == o21 || (operand_equal_p (o51, o21, 0) && types_match (o51, o21))) { { /* #line 2643 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 }; if (gimple_simplify_153 (res_code, res_ops, seq, valueize, type, captures, LT_EXPR, GE_EXPR)) return true; } } } } } break; } default:; } } break; default:; } } } break; } case LE_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case GT_EXPR: { tree o50 = gimple_assign_rhs1 (def); if ((o50 = do_valueize (valueize, o50))) { tree o51 = gimple_assign_rhs2 (def); if ((o51 = do_valueize (valueize, o51))) { if (o50 == o20 || (operand_equal_p (o50, o20, 0) && types_match (o50, o20))) { if (o51 == o21 || (operand_equal_p (o51, o21, 0) && types_match (o51, o21))) { { /* #line 2643 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 }; if (gimple_simplify_153 (res_code, res_ops, seq, valueize, type, captures, LE_EXPR, GT_EXPR)) return true; } } } } } break; } case GE_EXPR: { tree o50 = gimple_assign_rhs1 (def); if ((o50 = do_valueize (valueize, o50))) { tree o51 = gimple_assign_rhs2 (def); if ((o51 = do_valueize (valueize, o51))) { if (o50 == o20 || (operand_equal_p (o50, o20, 0) && types_match (o50, o20))) { if (o51 == o21 || (operand_equal_p (o51, o21, 0) && types_match (o51, o21))) { { /* #line 2643 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 }; if (gimple_simplify_153 (res_code, res_ops, seq, valueize, type, captures, LE_EXPR, GE_EXPR)) return true; } } } } } break; } case NE_EXPR: { tree o50 = gimple_assign_rhs1 (def); if ((o50 = do_valueize (valueize, o50))) { tree o51 = gimple_assign_rhs2 (def); if ((o51 = do_valueize (valueize, o51))) { if (tree_swap_operands_p (o50, o51)) std::swap (o50, o51); if (o50 == o20 || (operand_equal_p (o50, o20, 0) && types_match (o50, o20))) { if (o51 == o21 || (operand_equal_p (o51, o21, 0) && types_match (o51, o21))) { { /* #line 2643 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 }; if (gimple_simplify_153 (res_code, res_ops, seq, valueize, type, captures, LE_EXPR, NE_EXPR)) return true; } } } } } break; } default:; } } break; default:; } } } break; } case NE_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { if (tree_swap_operands_p (o20, o21)) std::swap (o20, o21); switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case EQ_EXPR: { tree o50 = gimple_assign_rhs1 (def); if ((o50 = do_valueize (valueize, o50))) { tree o51 = gimple_assign_rhs2 (def); if ((o51 = do_valueize (valueize, o51))) { if (tree_swap_operands_p (o50, o51)) std::swap (o50, o51); if (o50 == o20 || (operand_equal_p (o50, o20, 0) && types_match (o50, o20))) { if (o51 == o21 || (operand_equal_p (o51, o21, 0) && types_match (o51, o21))) { { /* #line 2643 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 }; if (gimple_simplify_153 (res_code, res_ops, seq, valueize, type, captures, NE_EXPR, EQ_EXPR)) return true; } } } } } break; } case LE_EXPR: { tree o50 = gimple_assign_rhs1 (def); if ((o50 = do_valueize (valueize, o50))) { tree o51 = gimple_assign_rhs2 (def); if ((o51 = do_valueize (valueize, o51))) { if (o50 == o20 || (operand_equal_p (o50, o20, 0) && types_match (o50, o20))) { if (o51 == o21 || (operand_equal_p (o51, o21, 0) && types_match (o51, o21))) { { /* #line 2643 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 }; if (gimple_simplify_153 (res_code, res_ops, seq, valueize, type, captures, LE_EXPR, NE_EXPR)) return true; } } } } } break; } case GE_EXPR: { tree o50 = gimple_assign_rhs1 (def); if ((o50 = do_valueize (valueize, o50))) { tree o51 = gimple_assign_rhs2 (def); if ((o51 = do_valueize (valueize, o51))) { if (o50 == o20 || (operand_equal_p (o50, o20, 0) && types_match (o50, o20))) { if (o51 == o21 || (operand_equal_p (o51, o21, 0) && types_match (o51, o21))) { { /* #line 2643 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 }; if (gimple_simplify_153 (res_code, res_ops, seq, valueize, type, captures, GE_EXPR, NE_EXPR)) return true; } } } } } break; } default:; } } break; default:; } } } break; } case GE_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case NE_EXPR: { tree o50 = gimple_assign_rhs1 (def); if ((o50 = do_valueize (valueize, o50))) { tree o51 = gimple_assign_rhs2 (def); if ((o51 = do_valueize (valueize, o51))) { if (tree_swap_operands_p (o50, o51)) std::swap (o50, o51); if (o50 == o20 || (operand_equal_p (o50, o20, 0) && types_match (o50, o20))) { if (o51 == o21 || (operand_equal_p (o51, o21, 0) && types_match (o51, o21))) { { /* #line 2643 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 }; if (gimple_simplify_153 (res_code, res_ops, seq, valueize, type, captures, GE_EXPR, NE_EXPR)) return true; } } } } } break; } case LT_EXPR: { tree o50 = gimple_assign_rhs1 (def); if ((o50 = do_valueize (valueize, o50))) { tree o51 = gimple_assign_rhs2 (def); if ((o51 = do_valueize (valueize, o51))) { if (o50 == o20 || (operand_equal_p (o50, o20, 0) && types_match (o50, o20))) { if (o51 == o21 || (operand_equal_p (o51, o21, 0) && types_match (o51, o21))) { { /* #line 2643 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 }; if (gimple_simplify_153 (res_code, res_ops, seq, valueize, type, captures, LT_EXPR, GE_EXPR)) return true; } } } } } break; } case LE_EXPR: { tree o50 = gimple_assign_rhs1 (def); if ((o50 = do_valueize (valueize, o50))) { tree o51 = gimple_assign_rhs2 (def); if ((o51 = do_valueize (valueize, o51))) { if (o50 == o20 || (operand_equal_p (o50, o20, 0) && types_match (o50, o20))) { if (o51 == o21 || (operand_equal_p (o51, o21, 0) && types_match (o51, o21))) { { /* #line 2643 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 }; if (gimple_simplify_153 (res_code, res_ops, seq, valueize, type, captures, LE_EXPR, GE_EXPR)) return true; } } } } } break; } default:; } } break; default:; } } } break; } case GT_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case LE_EXPR: { tree o50 = gimple_assign_rhs1 (def); if ((o50 = do_valueize (valueize, o50))) { tree o51 = gimple_assign_rhs2 (def); if ((o51 = do_valueize (valueize, o51))) { if (o50 == o20 || (operand_equal_p (o50, o20, 0) && types_match (o50, o20))) { if (o51 == o21 || (operand_equal_p (o51, o21, 0) && types_match (o51, o21))) { { /* #line 2643 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 }; if (gimple_simplify_153 (res_code, res_ops, seq, valueize, type, captures, LE_EXPR, GT_EXPR)) return true; } } } } } break; } default:; } } break; default:; } } } break; } case EQ_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { if (tree_swap_operands_p (o20, o21)) std::swap (o20, o21); switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case NE_EXPR: { tree o50 = gimple_assign_rhs1 (def); if ((o50 = do_valueize (valueize, o50))) { tree o51 = gimple_assign_rhs2 (def); if ((o51 = do_valueize (valueize, o51))) { if (tree_swap_operands_p (o50, o51)) std::swap (o50, o51); if (o50 == o20 || (operand_equal_p (o50, o20, 0) && types_match (o50, o20))) { if (o51 == o21 || (operand_equal_p (o51, o21, 0) && types_match (o51, o21))) { { /* #line 2643 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 }; if (gimple_simplify_153 (res_code, res_ops, seq, valueize, type, captures, NE_EXPR, EQ_EXPR)) return true; } } } } } break; } default:; } } break; default:; } } } break; } default:; } } break; default:; } tree op0_pops[1]; if (gimple_logical_inverted_value (op0, op0_pops, valueize)) { tree o20 = op0_pops[0]; if (op1 == o20 || (operand_equal_p (op1, o20, 0) && types_match (op1, o20))) { if (gimple_truth_valued_p (op1, valueize)) { { /* #line 960 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; if (gimple_simplify_220 (res_code, res_ops, seq, valueize, type, captures, BIT_IOR_EXPR)) return true; } } } } if (gimple_truth_valued_p (op0, valueize)) { tree op1_pops[1]; if (gimple_logical_inverted_value (op1, op1_pops, valueize)) { tree o30 = op1_pops[0]; if (o30 == op0 || (operand_equal_p (o30, op0, 0) && types_match (o30, op0))) { { /* #line 960 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { op0 }; if (gimple_simplify_220 (res_code, res_ops, seq, valueize, type, captures, BIT_IOR_EXPR)) return true; } } } } return false; } static bool gimple_simplify_BIT_XOR_EXPR (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree op0, tree op1) { if (integer_zerop (op1)) { { /* #line 84 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { op0 }; gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:84, %s:%d\n", __FILE__, __LINE__); res_ops[0] = captures[0]; *res_code = TREE_CODE (res_ops[0]); return true; } } switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { CASE_CONVERT: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { CASE_CONVERT: { tree o40 = gimple_assign_rhs1 (def); if ((o40 = do_valueize (valueize, o40))) { switch (TREE_CODE (o40)) { case SSA_NAME: if (do_valueize (valueize, o40) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (o40); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case BIT_NOT_EXPR: { tree o50 = gimple_assign_rhs1 (def); if ((o50 = do_valueize (valueize, o50))) { if (o50 == o20 || (operand_equal_p (o50, o20, 0) && types_match (o50, o20))) { { /* #line 624 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; if (gimple_simplify_120 (res_code, res_ops, seq, valueize, type, captures, BIT_XOR_EXPR)) return true; } } } break; } default:; } } break; default:; } } break; } default:; } } break; default:; } switch (TREE_CODE (o20)) { case SSA_NAME: if (do_valueize (valueize, o20) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (o20); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case BIT_NOT_EXPR: { tree o30 = gimple_assign_rhs1 (def); if ((o30 = do_valueize (valueize, o30))) { switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { CASE_CONVERT: { tree o50 = gimple_assign_rhs1 (def); if ((o50 = do_valueize (valueize, o50))) { if (o50 == o30 || (operand_equal_p (o50, o30, 0) && types_match (o50, o30))) { { /* #line 624 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o30 }; if (gimple_simplify_120 (res_code, res_ops, seq, valueize, type, captures, BIT_XOR_EXPR)) return true; } } } break; } default:; } } break; default:; } } break; } default:; } } break; default:; } } break; } default:; } } break; default:; } switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case BIT_NOT_EXPR: { tree o30 = gimple_assign_rhs1 (def); if ((o30 = do_valueize (valueize, o30))) { if (o30 == op0 || (operand_equal_p (o30, op0, 0) && types_match (o30, op0))) { { /* #line 624 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { op0 }; if (gimple_simplify_120 (res_code, res_ops, seq, valueize, type, captures, BIT_XOR_EXPR)) return true; } } } break; } default:; } } break; default:; } switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case BIT_NOT_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { if (op1 == o20 || (operand_equal_p (op1, o20, 0) && types_match (op1, o20))) { { /* #line 624 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; if (gimple_simplify_120 (res_code, res_ops, seq, valueize, type, captures, BIT_XOR_EXPR)) return true; } } } break; } default:; } } break; default:; } if (op1 == op0 || (operand_equal_p (op1, op0, 0) && types_match (op1, op0))) { { /* #line 629 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { op0 }; gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:629, %s:%d\n", __FILE__, __LINE__); res_ops[0] = build_zero_cst (type); *res_code = TREE_CODE (res_ops[0]); return true; } } if (integer_all_onesp (op1)) { { /* #line 634 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 }; gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:634, %s:%d\n", __FILE__, __LINE__); *res_code = BIT_NOT_EXPR; res_ops[0] = captures[0]; gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case BIT_AND_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { if (tree_swap_operands_p (o20, o21)) std::swap (o20, o21); switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case BIT_IOR_EXPR: { tree o50 = gimple_assign_rhs1 (def); if ((o50 = do_valueize (valueize, o50))) { tree o51 = gimple_assign_rhs2 (def); if ((o51 = do_valueize (valueize, o51))) { if (tree_swap_operands_p (o50, o51)) std::swap (o50, o51); if (o50 == o20 || (operand_equal_p (o50, o20, 0) && types_match (o50, o20))) { if (o51 == o21 || (operand_equal_p (o51, o21, 0) && types_match (o51, o21))) { { /* #line 679 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 }; if (gimple_simplify_75 (res_code, res_ops, seq, valueize, type, captures)) return true; } } } } } break; } case BIT_XOR_EXPR: { tree o50 = gimple_assign_rhs1 (def); if ((o50 = do_valueize (valueize, o50))) { tree o51 = gimple_assign_rhs2 (def); if ((o51 = do_valueize (valueize, o51))) { if (tree_swap_operands_p (o50, o51)) std::swap (o50, o51); if (o50 == o20 || (operand_equal_p (o50, o20, 0) && types_match (o50, o20))) { if (o51 == o21 || (operand_equal_p (o51, o21, 0) && types_match (o51, o21))) { { /* #line 692 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 }; if (gimple_simplify_85 (res_code, res_ops, seq, valueize, type, captures, BIT_XOR_EXPR)) return true; } } } } } break; } default:; } } break; default:; } switch (TREE_CODE (o21)) { case INTEGER_CST: { switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { CASE_CONVERT: { tree o50 = gimple_assign_rhs1 (def); if ((o50 = do_valueize (valueize, o50))) { switch (TREE_CODE (o50)) { case SSA_NAME: if (do_valueize (valueize, o50) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (o50); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case BIT_AND_EXPR: { tree o60 = gimple_assign_rhs1 (def); if ((o60 = do_valueize (valueize, o60))) { tree o61 = gimple_assign_rhs2 (def); if ((o61 = do_valueize (valueize, o61))) { if (tree_swap_operands_p (o60, o61)) std::swap (o60, o61); switch (TREE_CODE (o61)) { case INTEGER_CST: { { /* #line 751 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { op0, o20, o21, o50, o60, o61 }; if (gimple_simplify_194 (res_code, res_ops, seq, valueize, type, captures, BIT_XOR_EXPR)) return true; } break; } default:; } } } break; } default:; } } break; default:; } } break; } case BIT_AND_EXPR: { tree o50 = gimple_assign_rhs1 (def); if ((o50 = do_valueize (valueize, o50))) { tree o51 = gimple_assign_rhs2 (def); if ((o51 = do_valueize (valueize, o51))) { if (tree_swap_operands_p (o50, o51)) std::swap (o50, o51); switch (TREE_CODE (o51)) { case INTEGER_CST: { { /* #line 751 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { op0, o20, o21, op1, o50, o51 }; if (gimple_simplify_194 (res_code, res_ops, seq, valueize, type, captures, BIT_XOR_EXPR)) return true; } break; } default:; } } } break; } default:; } } break; default:; } break; } default:; } } } break; } case BIT_IOR_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { if (tree_swap_operands_p (o20, o21)) std::swap (o20, o21); switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case BIT_AND_EXPR: { tree o50 = gimple_assign_rhs1 (def); if ((o50 = do_valueize (valueize, o50))) { tree o51 = gimple_assign_rhs2 (def); if ((o51 = do_valueize (valueize, o51))) { if (tree_swap_operands_p (o50, o51)) std::swap (o50, o51); if (o50 == o20 || (operand_equal_p (o50, o20, 0) && types_match (o50, o20))) { if (o51 == o21 || (operand_equal_p (o51, o21, 0) && types_match (o51, o21))) { { /* #line 679 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 }; if (gimple_simplify_75 (res_code, res_ops, seq, valueize, type, captures)) return true; } } } } } break; } case BIT_XOR_EXPR: { tree o50 = gimple_assign_rhs1 (def); if ((o50 = do_valueize (valueize, o50))) { tree o51 = gimple_assign_rhs2 (def); if ((o51 = do_valueize (valueize, o51))) { if (tree_swap_operands_p (o50, o51)) std::swap (o50, o51); if (o50 == o20 || (operand_equal_p (o50, o20, 0) && types_match (o50, o20))) { if (o51 == o21 || (operand_equal_p (o51, o21, 0) && types_match (o51, o21))) { { /* #line 684 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 }; if (gimple_simplify_156 (res_code, res_ops, seq, valueize, type, captures)) return true; } } } } } break; } default:; } } break; default:; } } } break; } case BIT_XOR_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { if (tree_swap_operands_p (o20, o21)) std::swap (o20, o21); switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case BIT_IOR_EXPR: { tree o50 = gimple_assign_rhs1 (def); if ((o50 = do_valueize (valueize, o50))) { tree o51 = gimple_assign_rhs2 (def); if ((o51 = do_valueize (valueize, o51))) { if (tree_swap_operands_p (o50, o51)) std::swap (o50, o51); if (o50 == o20 || (operand_equal_p (o50, o20, 0) && types_match (o50, o20))) { if (o51 == o21 || (operand_equal_p (o51, o21, 0) && types_match (o51, o21))) { { /* #line 684 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 }; if (gimple_simplify_156 (res_code, res_ops, seq, valueize, type, captures)) return true; } } } } } break; } case BIT_AND_EXPR: { tree o50 = gimple_assign_rhs1 (def); if ((o50 = do_valueize (valueize, o50))) { tree o51 = gimple_assign_rhs2 (def); if ((o51 = do_valueize (valueize, o51))) { if (tree_swap_operands_p (o50, o51)) std::swap (o50, o51); if (o50 == o20 || (operand_equal_p (o50, o20, 0) && types_match (o50, o20))) { if (o51 == o21 || (operand_equal_p (o51, o21, 0) && types_match (o51, o21))) { { /* #line 692 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 }; if (gimple_simplify_85 (res_code, res_ops, seq, valueize, type, captures, BIT_XOR_EXPR)) return true; } } } } } break; } default:; } } break; default:; } } } break; } CASE_CONVERT: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { switch (TREE_CODE (o20)) { case SSA_NAME: if (do_valueize (valueize, o20) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (o20); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case BIT_AND_EXPR: { tree o30 = gimple_assign_rhs1 (def); if ((o30 = do_valueize (valueize, o30))) { tree o31 = gimple_assign_rhs2 (def); if ((o31 = do_valueize (valueize, o31))) { if (tree_swap_operands_p (o30, o31)) std::swap (o30, o31); switch (TREE_CODE (o31)) { case INTEGER_CST: { switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { CASE_CONVERT: { tree o60 = gimple_assign_rhs1 (def); if ((o60 = do_valueize (valueize, o60))) { switch (TREE_CODE (o60)) { case SSA_NAME: if (do_valueize (valueize, o60) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (o60); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case BIT_AND_EXPR: { tree o70 = gimple_assign_rhs1 (def); if ((o70 = do_valueize (valueize, o70))) { tree o71 = gimple_assign_rhs2 (def); if ((o71 = do_valueize (valueize, o71))) { if (tree_swap_operands_p (o70, o71)) std::swap (o70, o71); switch (TREE_CODE (o71)) { case INTEGER_CST: { { /* #line 751 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { o20, o30, o31, o60, o70, o71 }; if (gimple_simplify_194 (res_code, res_ops, seq, valueize, type, captures, BIT_XOR_EXPR)) return true; } break; } default:; } } } break; } default:; } } break; default:; } } break; } case BIT_AND_EXPR: { tree o60 = gimple_assign_rhs1 (def); if ((o60 = do_valueize (valueize, o60))) { tree o61 = gimple_assign_rhs2 (def); if ((o61 = do_valueize (valueize, o61))) { if (tree_swap_operands_p (o60, o61)) std::swap (o60, o61); switch (TREE_CODE (o61)) { case INTEGER_CST: { { /* #line 751 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { o20, o30, o31, op1, o60, o61 }; if (gimple_simplify_194 (res_code, res_ops, seq, valueize, type, captures, BIT_XOR_EXPR)) return true; } break; } default:; } } } break; } default:; } } break; default:; } break; } default:; } } } break; } case BIT_IOR_EXPR: { tree o30 = gimple_assign_rhs1 (def); if ((o30 = do_valueize (valueize, o30))) { tree o31 = gimple_assign_rhs2 (def); if ((o31 = do_valueize (valueize, o31))) { if (tree_swap_operands_p (o30, o31)) std::swap (o30, o31); switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { CASE_CONVERT: { tree o60 = gimple_assign_rhs1 (def); if ((o60 = do_valueize (valueize, o60))) { if (o60 == o30 || operand_equal_p (o60, o30, 0)) { { /* #line 759 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o30, o31, o30 }; if (gimple_simplify_90 (res_code, res_ops, seq, valueize, type, captures)) return true; } } if (o60 == o31 || operand_equal_p (o60, o31, 0)) { { /* #line 759 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o31, o30, o31 }; if (gimple_simplify_90 (res_code, res_ops, seq, valueize, type, captures)) return true; } } } break; } default:; } } break; default:; } } } break; } default:; } } break; default:; } switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { CASE_CONVERT: { tree o40 = gimple_assign_rhs1 (def); if ((o40 = do_valueize (valueize, o40))) { switch (TREE_CODE (o40)) { case SSA_NAME: if (do_valueize (valueize, o40) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (o40); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case BIT_IOR_EXPR: { tree o50 = gimple_assign_rhs1 (def); if ((o50 = do_valueize (valueize, o50))) { tree o51 = gimple_assign_rhs2 (def); if ((o51 = do_valueize (valueize, o51))) { if (tree_swap_operands_p (o50, o51)) std::swap (o50, o51); if (o50 == o20 || operand_equal_p (o50, o20, 0)) { { /* #line 759 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o50, o51, o20 }; if (gimple_simplify_90 (res_code, res_ops, seq, valueize, type, captures)) return true; } } if (o51 == o20 || operand_equal_p (o51, o20, 0)) { { /* #line 759 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o51, o50, o20 }; if (gimple_simplify_90 (res_code, res_ops, seq, valueize, type, captures)) return true; } } } } break; } default:; } } break; default:; } } break; } default:; } } break; default:; } switch (TREE_CODE (o20)) { case SSA_NAME: if (do_valueize (valueize, o20) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (o20); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case BIT_IOR_EXPR: { tree o30 = gimple_assign_rhs1 (def); if ((o30 = do_valueize (valueize, o30))) { tree o31 = gimple_assign_rhs2 (def); if ((o31 = do_valueize (valueize, o31))) { if (tree_swap_operands_p (o30, o31)) std::swap (o30, o31); if (op1 == o30 || operand_equal_p (op1, o30, 0)) { { /* #line 759 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o30, o31, o30 }; if (gimple_simplify_90 (res_code, res_ops, seq, valueize, type, captures)) return true; } } if (op1 == o31 || operand_equal_p (op1, o31, 0)) { { /* #line 759 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o31, o30, o31 }; if (gimple_simplify_90 (res_code, res_ops, seq, valueize, type, captures)) return true; } } } } break; } default:; } } break; default:; } } break; } default:; } } break; default:; } switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { CASE_CONVERT: { tree o30 = gimple_assign_rhs1 (def); if ((o30 = do_valueize (valueize, o30))) { switch (TREE_CODE (o30)) { case SSA_NAME: if (do_valueize (valueize, o30) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (o30); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case BIT_IOR_EXPR: { tree o40 = gimple_assign_rhs1 (def); if ((o40 = do_valueize (valueize, o40))) { tree o41 = gimple_assign_rhs2 (def); if ((o41 = do_valueize (valueize, o41))) { if (tree_swap_operands_p (o40, o41)) std::swap (o40, o41); if (o40 == op0 || operand_equal_p (o40, op0, 0)) { { /* #line 759 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o40, o41, op0 }; if (gimple_simplify_90 (res_code, res_ops, seq, valueize, type, captures)) return true; } } if (o41 == op0 || operand_equal_p (o41, op0, 0)) { { /* #line 759 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o41, o40, op0 }; if (gimple_simplify_90 (res_code, res_ops, seq, valueize, type, captures)) return true; } } } } break; } default:; } } break; default:; } } break; } default:; } } break; default:; } switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case BIT_IOR_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { if (tree_swap_operands_p (o20, o21)) std::swap (o20, o21); switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { CASE_CONVERT: { tree o50 = gimple_assign_rhs1 (def); if ((o50 = do_valueize (valueize, o50))) { if (o50 == o20 || operand_equal_p (o50, o20, 0)) { { /* #line 759 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, o20 }; if (gimple_simplify_90 (res_code, res_ops, seq, valueize, type, captures)) return true; } } if (o50 == o21 || operand_equal_p (o50, o21, 0)) { { /* #line 759 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o21, o20, o21 }; if (gimple_simplify_90 (res_code, res_ops, seq, valueize, type, captures)) return true; } } } break; } default:; } } break; default:; } if (op1 == o20 || operand_equal_p (op1, o20, 0)) { { /* #line 759 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, o20 }; if (gimple_simplify_90 (res_code, res_ops, seq, valueize, type, captures)) return true; } } if (op1 == o21 || operand_equal_p (op1, o21, 0)) { { /* #line 759 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o21, o20, o21 }; if (gimple_simplify_90 (res_code, res_ops, seq, valueize, type, captures)) return true; } } } } break; } CASE_CONVERT: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case BIT_IOR_EXPR: { tree o40 = gimple_assign_rhs1 (def); if ((o40 = do_valueize (valueize, o40))) { tree o41 = gimple_assign_rhs2 (def); if ((o41 = do_valueize (valueize, o41))) { if (tree_swap_operands_p (o40, o41)) std::swap (o40, o41); if (o40 == o20 || operand_equal_p (o40, o20, 0)) { { /* #line 759 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o40, o41, o20 }; if (gimple_simplify_90 (res_code, res_ops, seq, valueize, type, captures)) return true; } } if (o41 == o20 || operand_equal_p (o41, o20, 0)) { { /* #line 759 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o41, o40, o20 }; if (gimple_simplify_90 (res_code, res_ops, seq, valueize, type, captures)) return true; } } } } break; } default:; } } break; default:; } } break; } default:; } } break; default:; } switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case BIT_IOR_EXPR: { tree o30 = gimple_assign_rhs1 (def); if ((o30 = do_valueize (valueize, o30))) { tree o31 = gimple_assign_rhs2 (def); if ((o31 = do_valueize (valueize, o31))) { if (tree_swap_operands_p (o30, o31)) std::swap (o30, o31); if (o30 == op0 || operand_equal_p (o30, op0, 0)) { { /* #line 759 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o30, o31, op0 }; if (gimple_simplify_90 (res_code, res_ops, seq, valueize, type, captures)) return true; } } if (o31 == op0 || operand_equal_p (o31, op0, 0)) { { /* #line 759 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o31, o30, op0 }; if (gimple_simplify_90 (res_code, res_ops, seq, valueize, type, captures)) return true; } } } } break; } default:; } } break; default:; } switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { CASE_CONVERT: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { switch (TREE_CODE (o20)) { case SSA_NAME: if (do_valueize (valueize, o20) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (o20); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case BIT_NOT_EXPR: { tree o30 = gimple_assign_rhs1 (def); if ((o30 = do_valueize (valueize, o30))) { switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { CASE_CONVERT: { tree o50 = gimple_assign_rhs1 (def); if ((o50 = do_valueize (valueize, o50))) { switch (TREE_CODE (o50)) { case SSA_NAME: if (do_valueize (valueize, o50) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (o50); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case BIT_NOT_EXPR: { tree o60 = gimple_assign_rhs1 (def); if ((o60 = do_valueize (valueize, o60))) { { /* #line 765 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o30, o60 }; if (gimple_simplify_177 (res_code, res_ops, seq, valueize, type, captures)) return true; } } break; } default:; } } break; default:; } } break; } case BIT_NOT_EXPR: { tree o50 = gimple_assign_rhs1 (def); if ((o50 = do_valueize (valueize, o50))) { { /* #line 765 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o30, o50 }; if (gimple_simplify_177 (res_code, res_ops, seq, valueize, type, captures)) return true; } } break; } default:; } } break; case INTEGER_CST: { { /* #line 772 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o30, op1 }; if (gimple_simplify_40 (res_code, res_ops, seq, valueize, type, captures)) return true; } break; } default:; } } break; } default:; } } break; default:; } } break; } case BIT_NOT_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { CASE_CONVERT: { tree o40 = gimple_assign_rhs1 (def); if ((o40 = do_valueize (valueize, o40))) { switch (TREE_CODE (o40)) { case SSA_NAME: if (do_valueize (valueize, o40) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (o40); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case BIT_NOT_EXPR: { tree o50 = gimple_assign_rhs1 (def); if ((o50 = do_valueize (valueize, o50))) { { /* #line 765 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, o50 }; if (gimple_simplify_177 (res_code, res_ops, seq, valueize, type, captures)) return true; } } break; } default:; } } break; default:; } } break; } case BIT_NOT_EXPR: { tree o40 = gimple_assign_rhs1 (def); if ((o40 = do_valueize (valueize, o40))) { { /* #line 765 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, o40 }; if (gimple_simplify_177 (res_code, res_ops, seq, valueize, type, captures)) return true; } } break; } default:; } } break; case INTEGER_CST: { { /* #line 772 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 }; if (gimple_simplify_40 (res_code, res_ops, seq, valueize, type, captures)) return true; } break; } default:; } } break; } case BIT_AND_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { if (tree_swap_operands_p (o20, o21)) std::swap (o20, o21); if (op1 == o21 || (operand_equal_p (op1, o21, 0) && types_match (op1, o21))) { { /* #line 780 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 }; if (gimple_simplify_97 (res_code, res_ops, seq, valueize, type, captures, BIT_XOR_EXPR, BIT_AND_EXPR)) return true; } } if (op1 == o20 || (operand_equal_p (op1, o20, 0) && types_match (op1, o20))) { { /* #line 780 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o21, o20 }; if (gimple_simplify_97 (res_code, res_ops, seq, valueize, type, captures, BIT_XOR_EXPR, BIT_AND_EXPR)) return true; } } } } break; } default:; } } break; default:; } switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case BIT_AND_EXPR: { tree o30 = gimple_assign_rhs1 (def); if ((o30 = do_valueize (valueize, o30))) { tree o31 = gimple_assign_rhs2 (def); if ((o31 = do_valueize (valueize, o31))) { if (tree_swap_operands_p (o30, o31)) std::swap (o30, o31); if (o31 == op0 || (operand_equal_p (o31, op0, 0) && types_match (o31, op0))) { { /* #line 780 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o30, op0 }; if (gimple_simplify_97 (res_code, res_ops, seq, valueize, type, captures, BIT_XOR_EXPR, BIT_AND_EXPR)) return true; } } if (o30 == op0 || (operand_equal_p (o30, op0, 0) && types_match (o30, op0))) { { /* #line 780 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o31, op0 }; if (gimple_simplify_97 (res_code, res_ops, seq, valueize, type, captures, BIT_XOR_EXPR, BIT_AND_EXPR)) return true; } } } } break; } default:; } } break; default:; } switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { CASE_CONVERT: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { switch (TREE_CODE (o20)) { case SSA_NAME: if (do_valueize (valueize, o20) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (o20); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case BIT_AND_EXPR: { tree o30 = gimple_assign_rhs1 (def); if ((o30 = do_valueize (valueize, o30))) { tree o31 = gimple_assign_rhs2 (def); if ((o31 = do_valueize (valueize, o31))) { if (tree_swap_operands_p (o30, o31)) std::swap (o30, o31); switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { CASE_CONVERT: { tree o60 = gimple_assign_rhs1 (def); if ((o60 = do_valueize (valueize, o60))) { switch (TREE_CODE (o60)) { case SSA_NAME: if (do_valueize (valueize, o60) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (o60); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case BIT_AND_EXPR: { tree o70 = gimple_assign_rhs1 (def); if ((o70 = do_valueize (valueize, o70))) { tree o71 = gimple_assign_rhs2 (def); if ((o71 = do_valueize (valueize, o71))) { if (tree_swap_operands_p (o70, o71)) std::swap (o70, o71); if (o70 == o30 || operand_equal_p (o70, o30, 0)) { { /* #line 792 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { o30, o31, o71, o30 }; if (gimple_simplify_112 (res_code, res_ops, seq, valueize, type, captures, BIT_XOR_EXPR, BIT_AND_EXPR)) return true; } } if (o71 == o30 || operand_equal_p (o71, o30, 0)) { { /* #line 792 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { o30, o31, o70, o30 }; if (gimple_simplify_112 (res_code, res_ops, seq, valueize, type, captures, BIT_XOR_EXPR, BIT_AND_EXPR)) return true; } } if (o70 == o31 || operand_equal_p (o70, o31, 0)) { { /* #line 792 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { o31, o30, o71, o31 }; if (gimple_simplify_112 (res_code, res_ops, seq, valueize, type, captures, BIT_XOR_EXPR, BIT_AND_EXPR)) return true; } } if (o71 == o31 || operand_equal_p (o71, o31, 0)) { { /* #line 792 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { o31, o30, o70, o31 }; if (gimple_simplify_112 (res_code, res_ops, seq, valueize, type, captures, BIT_XOR_EXPR, BIT_AND_EXPR)) return true; } } } } break; } default:; } } break; default:; } } break; } default:; } } break; default:; } } } break; } case BIT_XOR_EXPR: { tree o30 = gimple_assign_rhs1 (def); if ((o30 = do_valueize (valueize, o30))) { tree o31 = gimple_assign_rhs2 (def); if ((o31 = do_valueize (valueize, o31))) { if (tree_swap_operands_p (o30, o31)) std::swap (o30, o31); switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { CASE_CONVERT: { tree o60 = gimple_assign_rhs1 (def); if ((o60 = do_valueize (valueize, o60))) { if (o60 == o31 || operand_equal_p (o60, o31, 0)) { { /* #line 806 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o30, o31, o31 }; if (gimple_simplify_195 (res_code, res_ops, seq, valueize, type, captures)) return true; } } if (o60 == o30 || operand_equal_p (o60, o30, 0)) { { /* #line 806 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o31, o30, o30 }; if (gimple_simplify_195 (res_code, res_ops, seq, valueize, type, captures)) return true; } } } break; } default:; } } break; default:; } } } break; } default:; } } break; default:; } switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { CASE_CONVERT: { tree o40 = gimple_assign_rhs1 (def); if ((o40 = do_valueize (valueize, o40))) { switch (TREE_CODE (o40)) { case SSA_NAME: if (do_valueize (valueize, o40) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (o40); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case BIT_XOR_EXPR: { tree o50 = gimple_assign_rhs1 (def); if ((o50 = do_valueize (valueize, o50))) { tree o51 = gimple_assign_rhs2 (def); if ((o51 = do_valueize (valueize, o51))) { if (tree_swap_operands_p (o50, o51)) std::swap (o50, o51); if (o51 == o20 || operand_equal_p (o51, o20, 0)) { { /* #line 806 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o50, o51, o20 }; if (gimple_simplify_195 (res_code, res_ops, seq, valueize, type, captures)) return true; } } if (o50 == o20 || operand_equal_p (o50, o20, 0)) { { /* #line 806 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o51, o50, o20 }; if (gimple_simplify_195 (res_code, res_ops, seq, valueize, type, captures)) return true; } } } } break; } default:; } } break; default:; } } break; } default:; } } break; default:; } switch (TREE_CODE (o20)) { case SSA_NAME: if (do_valueize (valueize, o20) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (o20); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case BIT_XOR_EXPR: { tree o30 = gimple_assign_rhs1 (def); if ((o30 = do_valueize (valueize, o30))) { tree o31 = gimple_assign_rhs2 (def); if ((o31 = do_valueize (valueize, o31))) { if (tree_swap_operands_p (o30, o31)) std::swap (o30, o31); if (op1 == o31 || operand_equal_p (op1, o31, 0)) { { /* #line 806 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o30, o31, o31 }; if (gimple_simplify_195 (res_code, res_ops, seq, valueize, type, captures)) return true; } } if (op1 == o30 || operand_equal_p (op1, o30, 0)) { { /* #line 806 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o31, o30, o30 }; if (gimple_simplify_195 (res_code, res_ops, seq, valueize, type, captures)) return true; } } } } break; } default:; } } break; default:; } } break; } case BIT_AND_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { if (tree_swap_operands_p (o20, o21)) std::swap (o20, o21); switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case BIT_AND_EXPR: { tree o50 = gimple_assign_rhs1 (def); if ((o50 = do_valueize (valueize, o50))) { tree o51 = gimple_assign_rhs2 (def); if ((o51 = do_valueize (valueize, o51))) { if (tree_swap_operands_p (o50, o51)) std::swap (o50, o51); if (o50 == o20 || operand_equal_p (o50, o20, 0)) { { /* #line 792 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { o20, o21, o51, o20 }; if (gimple_simplify_112 (res_code, res_ops, seq, valueize, type, captures, BIT_XOR_EXPR, BIT_AND_EXPR)) return true; } } if (o51 == o20 || operand_equal_p (o51, o20, 0)) { { /* #line 792 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { o20, o21, o50, o20 }; if (gimple_simplify_112 (res_code, res_ops, seq, valueize, type, captures, BIT_XOR_EXPR, BIT_AND_EXPR)) return true; } } if (o50 == o21 || operand_equal_p (o50, o21, 0)) { { /* #line 792 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { o21, o20, o51, o21 }; if (gimple_simplify_112 (res_code, res_ops, seq, valueize, type, captures, BIT_XOR_EXPR, BIT_AND_EXPR)) return true; } } if (o51 == o21 || operand_equal_p (o51, o21, 0)) { { /* #line 792 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { o21, o20, o50, o21 }; if (gimple_simplify_112 (res_code, res_ops, seq, valueize, type, captures, BIT_XOR_EXPR, BIT_AND_EXPR)) return true; } } } } break; } default:; } } break; default:; } } } break; } default:; } } break; default:; } switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { CASE_CONVERT: { tree o30 = gimple_assign_rhs1 (def); if ((o30 = do_valueize (valueize, o30))) { switch (TREE_CODE (o30)) { case SSA_NAME: if (do_valueize (valueize, o30) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (o30); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case BIT_XOR_EXPR: { tree o40 = gimple_assign_rhs1 (def); if ((o40 = do_valueize (valueize, o40))) { tree o41 = gimple_assign_rhs2 (def); if ((o41 = do_valueize (valueize, o41))) { if (tree_swap_operands_p (o40, o41)) std::swap (o40, o41); if (o41 == op0 || operand_equal_p (o41, op0, 0)) { { /* #line 806 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o40, o41, op0 }; if (gimple_simplify_195 (res_code, res_ops, seq, valueize, type, captures)) return true; } } if (o40 == op0 || operand_equal_p (o40, op0, 0)) { { /* #line 806 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o41, o40, op0 }; if (gimple_simplify_195 (res_code, res_ops, seq, valueize, type, captures)) return true; } } } } break; } default:; } } break; default:; } } break; } default:; } } break; default:; } switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case BIT_XOR_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { if (tree_swap_operands_p (o20, o21)) std::swap (o20, o21); switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { CASE_CONVERT: { tree o50 = gimple_assign_rhs1 (def); if ((o50 = do_valueize (valueize, o50))) { if (o50 == o21 || operand_equal_p (o50, o21, 0)) { { /* #line 806 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, o21 }; if (gimple_simplify_195 (res_code, res_ops, seq, valueize, type, captures)) return true; } } if (o50 == o20 || operand_equal_p (o50, o20, 0)) { { /* #line 806 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o21, o20, o20 }; if (gimple_simplify_195 (res_code, res_ops, seq, valueize, type, captures)) return true; } } } break; } default:; } } break; default:; } if (op1 == o21 || operand_equal_p (op1, o21, 0)) { { /* #line 806 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, o21 }; if (gimple_simplify_195 (res_code, res_ops, seq, valueize, type, captures)) return true; } } if (op1 == o20 || operand_equal_p (op1, o20, 0)) { { /* #line 806 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o21, o20, o20 }; if (gimple_simplify_195 (res_code, res_ops, seq, valueize, type, captures)) return true; } } } } break; } CASE_CONVERT: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case BIT_XOR_EXPR: { tree o40 = gimple_assign_rhs1 (def); if ((o40 = do_valueize (valueize, o40))) { tree o41 = gimple_assign_rhs2 (def); if ((o41 = do_valueize (valueize, o41))) { if (tree_swap_operands_p (o40, o41)) std::swap (o40, o41); if (o41 == o20 || operand_equal_p (o41, o20, 0)) { { /* #line 806 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o40, o41, o20 }; if (gimple_simplify_195 (res_code, res_ops, seq, valueize, type, captures)) return true; } } if (o40 == o20 || operand_equal_p (o40, o20, 0)) { { /* #line 806 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o41, o40, o20 }; if (gimple_simplify_195 (res_code, res_ops, seq, valueize, type, captures)) return true; } } } } break; } default:; } } break; default:; } } break; } default:; } } break; default:; } switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case BIT_XOR_EXPR: { tree o30 = gimple_assign_rhs1 (def); if ((o30 = do_valueize (valueize, o30))) { tree o31 = gimple_assign_rhs2 (def); if ((o31 = do_valueize (valueize, o31))) { if (tree_swap_operands_p (o30, o31)) std::swap (o30, o31); if (o31 == op0 || operand_equal_p (o31, op0, 0)) { { /* #line 806 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o30, o31, op0 }; if (gimple_simplify_195 (res_code, res_ops, seq, valueize, type, captures)) return true; } } if (o30 == op0 || operand_equal_p (o30, op0, 0)) { { /* #line 806 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o31, o30, op0 }; if (gimple_simplify_195 (res_code, res_ops, seq, valueize, type, captures)) return true; } } } } break; } default:; } } break; default:; } switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { CASE_CONVERT: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { switch (TREE_CODE (o20)) { case SSA_NAME: if (do_valueize (valueize, o20) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (o20); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case BIT_XOR_EXPR: { tree o30 = gimple_assign_rhs1 (def); if ((o30 = do_valueize (valueize, o30))) { tree o31 = gimple_assign_rhs2 (def); if ((o31 = do_valueize (valueize, o31))) { if (tree_swap_operands_p (o30, o31)) std::swap (o30, o31); switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { CASE_CONVERT: { tree o60 = gimple_assign_rhs1 (def); if ((o60 = do_valueize (valueize, o60))) { switch (TREE_CODE (o60)) { case SSA_NAME: if (do_valueize (valueize, o60) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (o60); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case BIT_XOR_EXPR: { tree o70 = gimple_assign_rhs1 (def); if ((o70 = do_valueize (valueize, o70))) { tree o71 = gimple_assign_rhs2 (def); if ((o71 = do_valueize (valueize, o71))) { if (tree_swap_operands_p (o70, o71)) std::swap (o70, o71); if (o70 == o30 || (operand_equal_p (o70, o30, 0) && types_match (o70, o30))) { { /* #line 821 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o30, o31, o71 }; if (gimple_simplify_61 (res_code, res_ops, seq, valueize, type, captures)) return true; } } if (o71 == o30 || (operand_equal_p (o71, o30, 0) && types_match (o71, o30))) { { /* #line 821 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o30, o31, o70 }; if (gimple_simplify_61 (res_code, res_ops, seq, valueize, type, captures)) return true; } } if (o70 == o31 || (operand_equal_p (o70, o31, 0) && types_match (o70, o31))) { { /* #line 821 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o31, o30, o71 }; if (gimple_simplify_61 (res_code, res_ops, seq, valueize, type, captures)) return true; } } if (o71 == o31 || (operand_equal_p (o71, o31, 0) && types_match (o71, o31))) { { /* #line 821 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o31, o30, o70 }; if (gimple_simplify_61 (res_code, res_ops, seq, valueize, type, captures)) return true; } } } } break; } default:; } } break; default:; } } break; } case BIT_XOR_EXPR: { tree o60 = gimple_assign_rhs1 (def); if ((o60 = do_valueize (valueize, o60))) { tree o61 = gimple_assign_rhs2 (def); if ((o61 = do_valueize (valueize, o61))) { if (tree_swap_operands_p (o60, o61)) std::swap (o60, o61); if (o60 == o30 || (operand_equal_p (o60, o30, 0) && types_match (o60, o30))) { { /* #line 821 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o30, o31, o61 }; if (gimple_simplify_61 (res_code, res_ops, seq, valueize, type, captures)) return true; } } if (o61 == o30 || (operand_equal_p (o61, o30, 0) && types_match (o61, o30))) { { /* #line 821 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o30, o31, o60 }; if (gimple_simplify_61 (res_code, res_ops, seq, valueize, type, captures)) return true; } } if (o60 == o31 || (operand_equal_p (o60, o31, 0) && types_match (o60, o31))) { { /* #line 821 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o31, o30, o61 }; if (gimple_simplify_61 (res_code, res_ops, seq, valueize, type, captures)) return true; } } if (o61 == o31 || (operand_equal_p (o61, o31, 0) && types_match (o61, o31))) { { /* #line 821 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o31, o30, o60 }; if (gimple_simplify_61 (res_code, res_ops, seq, valueize, type, captures)) return true; } } } } break; } default:; } } break; default:; } } } break; } default:; } } break; default:; } switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { CASE_CONVERT: { tree o40 = gimple_assign_rhs1 (def); if ((o40 = do_valueize (valueize, o40))) { { /* #line 885 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, o40 }; if (gimple_simplify_64 (res_code, res_ops, seq, valueize, type, captures, BIT_XOR_EXPR)) return true; } } break; } default:; } } break; default:; } { /* #line 885 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 }; if (gimple_simplify_64 (res_code, res_ops, seq, valueize, type, captures, BIT_XOR_EXPR)) return true; } } break; } case BIT_XOR_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { if (tree_swap_operands_p (o20, o21)) std::swap (o20, o21); switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { CASE_CONVERT: { tree o50 = gimple_assign_rhs1 (def); if ((o50 = do_valueize (valueize, o50))) { switch (TREE_CODE (o50)) { case SSA_NAME: if (do_valueize (valueize, o50) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (o50); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case BIT_XOR_EXPR: { tree o60 = gimple_assign_rhs1 (def); if ((o60 = do_valueize (valueize, o60))) { tree o61 = gimple_assign_rhs2 (def); if ((o61 = do_valueize (valueize, o61))) { if (tree_swap_operands_p (o60, o61)) std::swap (o60, o61); if (o60 == o20 || (operand_equal_p (o60, o20, 0) && types_match (o60, o20))) { { /* #line 821 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, o61 }; if (gimple_simplify_61 (res_code, res_ops, seq, valueize, type, captures)) return true; } } if (o61 == o20 || (operand_equal_p (o61, o20, 0) && types_match (o61, o20))) { { /* #line 821 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, o60 }; if (gimple_simplify_61 (res_code, res_ops, seq, valueize, type, captures)) return true; } } if (o60 == o21 || (operand_equal_p (o60, o21, 0) && types_match (o60, o21))) { { /* #line 821 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o21, o20, o61 }; if (gimple_simplify_61 (res_code, res_ops, seq, valueize, type, captures)) return true; } } if (o61 == o21 || (operand_equal_p (o61, o21, 0) && types_match (o61, o21))) { { /* #line 821 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o21, o20, o60 }; if (gimple_simplify_61 (res_code, res_ops, seq, valueize, type, captures)) return true; } } } } break; } default:; } } break; default:; } } break; } case BIT_XOR_EXPR: { tree o50 = gimple_assign_rhs1 (def); if ((o50 = do_valueize (valueize, o50))) { tree o51 = gimple_assign_rhs2 (def); if ((o51 = do_valueize (valueize, o51))) { if (tree_swap_operands_p (o50, o51)) std::swap (o50, o51); if (o50 == o20 || (operand_equal_p (o50, o20, 0) && types_match (o50, o20))) { { /* #line 821 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, o51 }; if (gimple_simplify_61 (res_code, res_ops, seq, valueize, type, captures)) return true; } } if (o51 == o20 || (operand_equal_p (o51, o20, 0) && types_match (o51, o20))) { { /* #line 821 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, o50 }; if (gimple_simplify_61 (res_code, res_ops, seq, valueize, type, captures)) return true; } } if (o50 == o21 || (operand_equal_p (o50, o21, 0) && types_match (o50, o21))) { { /* #line 821 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o21, o20, o51 }; if (gimple_simplify_61 (res_code, res_ops, seq, valueize, type, captures)) return true; } } if (o51 == o21 || (operand_equal_p (o51, o21, 0) && types_match (o51, o21))) { { /* #line 821 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o21, o20, o50 }; if (gimple_simplify_61 (res_code, res_ops, seq, valueize, type, captures)) return true; } } } } break; } default:; } } break; default:; } if (CONSTANT_CLASS_P (o21)) { if (CONSTANT_CLASS_P (op1)) { { /* #line 928 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 }; if (gimple_simplify_130 (res_code, res_ops, seq, valueize, type, captures, BIT_XOR_EXPR)) return true; } } } } } break; } case BIT_IOR_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { if (tree_swap_operands_p (o20, o21)) std::swap (o20, o21); switch (TREE_CODE (o21)) { case INTEGER_CST: { switch (TREE_CODE (op1)) { case INTEGER_CST: { { /* #line 1054 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o21, op1 }; if (gimple_simplify_197 (res_code, res_ops, seq, valueize, type, captures, BIT_IOR_EXPR, BIT_XOR_EXPR)) return true; } break; } default:; } break; } default:; } } } break; } case LT_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { if (integer_truep (op1)) { { /* #line 2306 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 }; if (gimple_simplify_121 (res_code, res_ops, seq, valueize, type, captures, LT_EXPR, GE_EXPR, UNGE_EXPR)) return true; } } } } break; } case LE_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { if (integer_truep (op1)) { { /* #line 2306 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 }; if (gimple_simplify_121 (res_code, res_ops, seq, valueize, type, captures, LE_EXPR, GT_EXPR, UNGT_EXPR)) return true; } } } } break; } case EQ_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { if (tree_swap_operands_p (o20, o21)) std::swap (o20, o21); if (integer_truep (op1)) { { /* #line 2306 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 }; if (gimple_simplify_121 (res_code, res_ops, seq, valueize, type, captures, EQ_EXPR, NE_EXPR, NE_EXPR)) return true; } } } } break; } case NE_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { if (tree_swap_operands_p (o20, o21)) std::swap (o20, o21); if (integer_truep (op1)) { { /* #line 2306 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 }; if (gimple_simplify_121 (res_code, res_ops, seq, valueize, type, captures, NE_EXPR, EQ_EXPR, EQ_EXPR)) return true; } } } } break; } case GE_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { if (integer_truep (op1)) { { /* #line 2306 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 }; if (gimple_simplify_121 (res_code, res_ops, seq, valueize, type, captures, GE_EXPR, LT_EXPR, UNLT_EXPR)) return true; } } } } break; } case GT_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { if (integer_truep (op1)) { { /* #line 2306 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 }; if (gimple_simplify_121 (res_code, res_ops, seq, valueize, type, captures, GT_EXPR, LE_EXPR, UNLE_EXPR)) return true; } } } } break; } case UNORDERED_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { if (tree_swap_operands_p (o20, o21)) std::swap (o20, o21); if (integer_truep (op1)) { { /* #line 2306 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 }; if (gimple_simplify_121 (res_code, res_ops, seq, valueize, type, captures, UNORDERED_EXPR, ORDERED_EXPR, ORDERED_EXPR)) return true; } } } } break; } case ORDERED_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { if (tree_swap_operands_p (o20, o21)) std::swap (o20, o21); if (integer_truep (op1)) { { /* #line 2306 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 }; if (gimple_simplify_121 (res_code, res_ops, seq, valueize, type, captures, ORDERED_EXPR, UNORDERED_EXPR, UNORDERED_EXPR)) return true; } } } } break; } case UNLT_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { if (integer_truep (op1)) { { /* #line 2306 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 }; if (gimple_simplify_121 (res_code, res_ops, seq, valueize, type, captures, UNLT_EXPR, GE_EXPR, GE_EXPR)) return true; } } } } break; } case UNLE_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { if (integer_truep (op1)) { { /* #line 2306 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 }; if (gimple_simplify_121 (res_code, res_ops, seq, valueize, type, captures, UNLE_EXPR, GT_EXPR, GT_EXPR)) return true; } } } } break; } case UNGT_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { if (integer_truep (op1)) { { /* #line 2306 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 }; if (gimple_simplify_121 (res_code, res_ops, seq, valueize, type, captures, UNGT_EXPR, LE_EXPR, LE_EXPR)) return true; } } } } break; } case UNGE_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { if (integer_truep (op1)) { { /* #line 2306 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 }; if (gimple_simplify_121 (res_code, res_ops, seq, valueize, type, captures, UNGE_EXPR, LT_EXPR, LT_EXPR)) return true; } } } } break; } case UNEQ_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { if (tree_swap_operands_p (o20, o21)) std::swap (o20, o21); if (integer_truep (op1)) { { /* #line 2306 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 }; if (gimple_simplify_121 (res_code, res_ops, seq, valueize, type, captures, UNEQ_EXPR, LTGT_EXPR, LTGT_EXPR)) return true; } } } } break; } case LTGT_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { if (tree_swap_operands_p (o20, o21)) std::swap (o20, o21); if (integer_truep (op1)) { { /* #line 2306 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 }; if (gimple_simplify_121 (res_code, res_ops, seq, valueize, type, captures, LTGT_EXPR, UNEQ_EXPR, UNEQ_EXPR)) return true; } } } } break; } default:; } } break; default:; } tree op0_pops[1]; if (gimple_logical_inverted_value (op0, op0_pops, valueize)) { tree o20 = op0_pops[0]; if (op1 == o20 || (operand_equal_p (op1, o20, 0) && types_match (op1, o20))) { if (gimple_truth_valued_p (op1, valueize)) { { /* #line 960 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; if (gimple_simplify_220 (res_code, res_ops, seq, valueize, type, captures, BIT_XOR_EXPR)) return true; } } } } if (gimple_truth_valued_p (op0, valueize)) { tree op1_pops[1]; if (gimple_logical_inverted_value (op1, op1_pops, valueize)) { tree o30 = op1_pops[0]; if (o30 == op0 || (operand_equal_p (o30, op0, 0) && types_match (o30, op0))) { { /* #line 960 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { op0 }; if (gimple_simplify_220 (res_code, res_ops, seq, valueize, type, captures, BIT_XOR_EXPR)) return true; } } } } return false; } static bool gimple_simplify_MULT_EXPR (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree op0, tree op1) { if (integer_zerop (op1)) { { /* #line 116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 }; gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:116, %s:%d\n", __FILE__, __LINE__); res_ops[0] = captures[1]; *res_code = TREE_CODE (res_ops[0]); return true; } } if (real_zerop (op1)) { { /* #line 124 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 }; /* #line 124 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (!HONOR_NANS (type) && !HONOR_SIGNED_ZEROS (type)) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:125, %s:%d\n", __FILE__, __LINE__); res_ops[0] = captures[1]; *res_code = TREE_CODE (res_ops[0]); return true; } } } if (real_onep (op1)) { { /* #line 131 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { op0 }; /* #line 131 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (!HONOR_SNANS (type) && (!HONOR_SIGNED_ZEROS (type) || !COMPLEX_FLOAT_TYPE_P (type))) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:134, %s:%d\n", __FILE__, __LINE__); res_ops[0] = captures[0]; *res_code = TREE_CODE (res_ops[0]); return true; } } } if (real_minus_onep (op1)) { { /* #line 139 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { op0 }; /* #line 139 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (!HONOR_SNANS (type) && (!HONOR_SIGNED_ZEROS (type) || !COMPLEX_FLOAT_TYPE_P (type))) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:142, %s:%d\n", __FILE__, __LINE__); *res_code = NEGATE_EXPR; res_ops[0] = captures[0]; gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } } if (integer_onep (op1)) { { /* #line 148 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { op0 }; if (gimple_simplify_193 (res_code, res_ops, seq, valueize, type, captures, MULT_EXPR)) return true; } } switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case TRUNC_DIV_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { if (integer_pow2p (o21)) { if (op1 == o21 || (operand_equal_p (op1, o21, 0) && types_match (op1, o21))) { { /* #line 389 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 }; /* #line 389 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (TYPE_UNSIGNED (TREE_TYPE (captures[0]))) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:390, %s:%d\n", __FILE__, __LINE__); *res_code = BIT_AND_EXPR; res_ops[0] = captures[0]; { tree ops1[1], res; ops1[0] = captures[1]; code_helper tem_code = NEGATE_EXPR; tree tem_ops[3] = { ops1[0] }; gimple_resimplify1 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[1] = res; } gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } } } } } break; } case ABS_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { if (op1 == op0 || (operand_equal_p (op1, op0, 0) && types_match (op1, op0))) { { /* #line 436 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { op0, o20 }; gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:436, %s:%d\n", __FILE__, __LINE__); *res_code = MULT_EXPR; res_ops[0] = captures[1]; res_ops[1] = captures[1]; gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } } break; } default:; } else if (gcall *def = dyn_cast (def_stmt)) switch (gimple_call_combined_fn (def)) { case CFN_BUILT_IN_COPYSIGNF: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_call_arg (def, 1); if ((o21 = do_valueize (valueize, o21))) { if (op1 == op0 || (operand_equal_p (op1, op0, 0) && types_match (op1, op0))) { { /* #line 490 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, o21 }; if (gimple_simplify_28 (res_code, res_ops, seq, valueize, type, captures, CFN_BUILT_IN_COPYSIGNF)) return true; } } } } break; } case CFN_BUILT_IN_COPYSIGN: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_call_arg (def, 1); if ((o21 = do_valueize (valueize, o21))) { if (op1 == op0 || (operand_equal_p (op1, op0, 0) && types_match (op1, op0))) { { /* #line 490 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, o21 }; if (gimple_simplify_28 (res_code, res_ops, seq, valueize, type, captures, CFN_BUILT_IN_COPYSIGN)) return true; } } } } break; } case CFN_BUILT_IN_COPYSIGNL: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_call_arg (def, 1); if ((o21 = do_valueize (valueize, o21))) { if (op1 == op0 || (operand_equal_p (op1, op0, 0) && types_match (op1, op0))) { { /* #line 490 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, o21 }; if (gimple_simplify_28 (res_code, res_ops, seq, valueize, type, captures, CFN_BUILT_IN_COPYSIGNL)) return true; } } } } break; } case CFN_COPYSIGN: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_call_arg (def, 1); if ((o21 = do_valueize (valueize, o21))) { if (op1 == op0 || (operand_equal_p (op1, op0, 0) && types_match (op1, op0))) { { /* #line 490 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, o21 }; if (gimple_simplify_28 (res_code, res_ops, seq, valueize, type, captures, CFN_COPYSIGN)) return true; } } } } break; } default:; } } break; default:; } switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { CASE_CONVERT: { tree o30 = gimple_assign_rhs1 (def); if ((o30 = do_valueize (valueize, o30))) { switch (TREE_CODE (o30)) { case SSA_NAME: if (do_valueize (valueize, o30) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (o30); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case LSHIFT_EXPR: { tree o40 = gimple_assign_rhs1 (def); if ((o40 = do_valueize (valueize, o40))) { tree o41 = gimple_assign_rhs2 (def); if ((o41 = do_valueize (valueize, o41))) { if (integer_onep (o40)) { { /* #line 508 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { op0, o40, o41 }; if (gimple_simplify_148 (res_code, res_ops, seq, valueize, type, captures)) return true; } } } } break; } default:; } } break; default:; } } break; } default:; } } break; default:; } switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { CASE_CONVERT: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { switch (TREE_CODE (o20)) { case SSA_NAME: if (do_valueize (valueize, o20) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (o20); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case LSHIFT_EXPR: { tree o30 = gimple_assign_rhs1 (def); if ((o30 = do_valueize (valueize, o30))) { tree o31 = gimple_assign_rhs2 (def); if ((o31 = do_valueize (valueize, o31))) { if (integer_onep (o30)) { { /* #line 508 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { op1, o30, o31 }; if (gimple_simplify_148 (res_code, res_ops, seq, valueize, type, captures)) return true; } } } } break; } default:; } } break; default:; } } break; } default:; } } break; default:; } switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case LSHIFT_EXPR: { tree o30 = gimple_assign_rhs1 (def); if ((o30 = do_valueize (valueize, o30))) { tree o31 = gimple_assign_rhs2 (def); if ((o31 = do_valueize (valueize, o31))) { if (integer_onep (o30)) { { /* #line 508 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { op0, o30, o31 }; if (gimple_simplify_148 (res_code, res_ops, seq, valueize, type, captures)) return true; } } } } break; } default:; } } break; default:; } switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case LSHIFT_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { if (integer_onep (o20)) { { /* #line 508 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { op1, o20, o21 }; if (gimple_simplify_148 (res_code, res_ops, seq, valueize, type, captures)) return true; } } } } break; } case RDIV_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { switch (TREE_CODE (o20)) { case REAL_CST: { switch (TREE_CODE (op1)) { case REAL_CST: { { /* #line 515 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o21, op1 }; /* #line 515 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (flag_associative_math && single_use (captures[0])) { { /* #line 517 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree tem = const_binop (MULT_EXPR, type, captures[1], captures[3]); /* #line 519 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (tem) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:520, %s:%d\n", __FILE__, __LINE__); *res_code = RDIV_EXPR; res_ops[0] = tem; res_ops[1] = captures[2]; gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } } } break; } default:; } break; } default:; } } } break; } CASE_CONVERT: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { switch (TREE_CODE (o20)) { case SSA_NAME: if (do_valueize (valueize, o20) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (o20); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case NEGATE_EXPR: { tree o30 = gimple_assign_rhs1 (def); if ((o30 = do_valueize (valueize, o30))) { switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { CASE_CONVERT: { tree o50 = gimple_assign_rhs1 (def); if ((o50 = do_valueize (valueize, o50))) { if (gimple_negate_expr_p (o50, valueize)) { { /* #line 859 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o30, o50 }; if (gimple_simplify_168 (res_code, res_ops, seq, valueize, type, captures)) return true; } } } break; } default:; } } break; default:; } if (gimple_negate_expr_p (op1, valueize)) { { /* #line 859 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o30, op1 }; if (gimple_simplify_168 (res_code, res_ops, seq, valueize, type, captures)) return true; } } } break; } case EXACT_DIV_EXPR: { tree o30 = gimple_assign_rhs1 (def); if ((o30 = do_valueize (valueize, o30))) { tree o31 = gimple_assign_rhs2 (def); if ((o31 = do_valueize (valueize, o31))) { switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { CASE_CONVERT: { tree o60 = gimple_assign_rhs1 (def); if ((o60 = do_valueize (valueize, o60))) { if (o60 == o31 || operand_equal_p (o60, o31, 0)) { { /* #line 1894 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o30, o31, o31 }; if (gimple_simplify_124 (res_code, res_ops, seq, valueize, type, captures)) return true; } } } break; } default:; } } break; default:; } if (op1 == o31 || operand_equal_p (op1, o31, 0)) { { /* #line 1894 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o30, o31, o31 }; if (gimple_simplify_124 (res_code, res_ops, seq, valueize, type, captures)) return true; } } } } break; } default:; } } break; default:; } if (gimple_negate_expr_p (o20, valueize)) { switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { CASE_CONVERT: { tree o40 = gimple_assign_rhs1 (def); if ((o40 = do_valueize (valueize, o40))) { switch (TREE_CODE (o40)) { case SSA_NAME: if (do_valueize (valueize, o40) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (o40); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case NEGATE_EXPR: { tree o50 = gimple_assign_rhs1 (def); if ((o50 = do_valueize (valueize, o50))) { { /* #line 859 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o50, o20 }; if (gimple_simplify_168 (res_code, res_ops, seq, valueize, type, captures)) return true; } } break; } default:; } } break; default:; } } break; } case NEGATE_EXPR: { tree o40 = gimple_assign_rhs1 (def); if ((o40 = do_valueize (valueize, o40))) { { /* #line 859 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o40, o20 }; if (gimple_simplify_168 (res_code, res_ops, seq, valueize, type, captures)) return true; } } break; } default:; } } break; default:; } } } break; } case NEGATE_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { CASE_CONVERT: { tree o40 = gimple_assign_rhs1 (def); if ((o40 = do_valueize (valueize, o40))) { if (gimple_negate_expr_p (o40, valueize)) { { /* #line 859 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, o40 }; if (gimple_simplify_168 (res_code, res_ops, seq, valueize, type, captures)) return true; } } } break; } default:; } } break; default:; } if (gimple_negate_expr_p (op1, valueize)) { { /* #line 859 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 }; if (gimple_simplify_168 (res_code, res_ops, seq, valueize, type, captures)) return true; } } } break; } case EXACT_DIV_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { CASE_CONVERT: { tree o50 = gimple_assign_rhs1 (def); if ((o50 = do_valueize (valueize, o50))) { if (o50 == o21 || operand_equal_p (o50, o21, 0)) { { /* #line 1894 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, o21 }; if (gimple_simplify_124 (res_code, res_ops, seq, valueize, type, captures)) return true; } } } break; } default:; } } break; default:; } if (op1 == o21 || operand_equal_p (op1, o21, 0)) { { /* #line 1894 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, o21 }; if (gimple_simplify_124 (res_code, res_ops, seq, valueize, type, captures)) return true; } } } } break; } default:; } } break; default:; } if (gimple_negate_expr_p (op0, valueize)) { switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { CASE_CONVERT: { tree o30 = gimple_assign_rhs1 (def); if ((o30 = do_valueize (valueize, o30))) { switch (TREE_CODE (o30)) { case SSA_NAME: if (do_valueize (valueize, o30) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (o30); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case NEGATE_EXPR: { tree o40 = gimple_assign_rhs1 (def); if ((o40 = do_valueize (valueize, o40))) { { /* #line 859 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o40, op0 }; if (gimple_simplify_168 (res_code, res_ops, seq, valueize, type, captures)) return true; } } break; } default:; } } break; default:; } } break; } case NEGATE_EXPR: { tree o30 = gimple_assign_rhs1 (def); if ((o30 = do_valueize (valueize, o30))) { { /* #line 859 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o30, op0 }; if (gimple_simplify_168 (res_code, res_ops, seq, valueize, type, captures)) return true; } } break; } default:; } } break; default:; } } if (integer_minus_onep (op1)) { { /* #line 1929 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { op0 }; gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1929, %s:%d\n", __FILE__, __LINE__); *res_code = NEGATE_EXPR; res_ops[0] = captures[0]; gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gcall *def = dyn_cast (def_stmt)) switch (gimple_call_combined_fn (def)) { case CFN_BUILT_IN_SQRTF: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { if (op1 == op0 || (operand_equal_p (op1, op0, 0) && types_match (op1, op0))) { { /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { op0, o20 }; if (gimple_simplify_82 (res_code, res_ops, seq, valueize, type, captures, CFN_BUILT_IN_SQRTF)) return true; } } switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gcall *def = dyn_cast (def_stmt)) switch (gimple_call_combined_fn (def)) { case CFN_BUILT_IN_SQRTF: { tree o40 = gimple_call_arg (def, 0); if ((o40 = do_valueize (valueize, o40))) { { /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, op1, o40 }; /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (flag_unsafe_math_optimizations) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[2]))) lseq = NULL; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3127, %s:%d\n", __FILE__, __LINE__); *res_code = CFN_BUILT_IN_SQRTF; { tree ops1[2], res; ops1[0] = captures[1]; ops1[1] = captures[3]; code_helper tem_code = MULT_EXPR; tree tem_ops[3] = { ops1[0], ops1[1] }; gimple_resimplify2 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[0] = res; } gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } } break; } default:; } } break; default:; } } break; } case CFN_BUILT_IN_SQRT: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { if (op1 == op0 || (operand_equal_p (op1, op0, 0) && types_match (op1, op0))) { { /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { op0, o20 }; if (gimple_simplify_82 (res_code, res_ops, seq, valueize, type, captures, CFN_BUILT_IN_SQRT)) return true; } } switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gcall *def = dyn_cast (def_stmt)) switch (gimple_call_combined_fn (def)) { case CFN_BUILT_IN_SQRT: { tree o40 = gimple_call_arg (def, 0); if ((o40 = do_valueize (valueize, o40))) { { /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, op1, o40 }; /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (flag_unsafe_math_optimizations) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[2]))) lseq = NULL; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3127, %s:%d\n", __FILE__, __LINE__); *res_code = CFN_BUILT_IN_SQRT; { tree ops1[2], res; ops1[0] = captures[1]; ops1[1] = captures[3]; code_helper tem_code = MULT_EXPR; tree tem_ops[3] = { ops1[0], ops1[1] }; gimple_resimplify2 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[0] = res; } gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } } break; } default:; } } break; default:; } } break; } case CFN_BUILT_IN_SQRTL: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { if (op1 == op0 || (operand_equal_p (op1, op0, 0) && types_match (op1, op0))) { { /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { op0, o20 }; if (gimple_simplify_82 (res_code, res_ops, seq, valueize, type, captures, CFN_BUILT_IN_SQRTL)) return true; } } switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gcall *def = dyn_cast (def_stmt)) switch (gimple_call_combined_fn (def)) { case CFN_BUILT_IN_SQRTL: { tree o40 = gimple_call_arg (def, 0); if ((o40 = do_valueize (valueize, o40))) { { /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, op1, o40 }; /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (flag_unsafe_math_optimizations) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[2]))) lseq = NULL; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3127, %s:%d\n", __FILE__, __LINE__); *res_code = CFN_BUILT_IN_SQRTL; { tree ops1[2], res; ops1[0] = captures[1]; ops1[1] = captures[3]; code_helper tem_code = MULT_EXPR; tree tem_ops[3] = { ops1[0], ops1[1] }; gimple_resimplify2 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[0] = res; } gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } } break; } default:; } } break; default:; } } break; } case CFN_SQRT: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { if (op1 == op0 || (operand_equal_p (op1, op0, 0) && types_match (op1, op0))) { { /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { op0, o20 }; if (gimple_simplify_82 (res_code, res_ops, seq, valueize, type, captures, CFN_SQRT)) return true; } } switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gcall *def = dyn_cast (def_stmt)) switch (gimple_call_combined_fn (def)) { case CFN_SQRT: { tree o40 = gimple_call_arg (def, 0); if ((o40 = do_valueize (valueize, o40))) { { /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, op1, o40 }; /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (flag_unsafe_math_optimizations) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[2]))) lseq = NULL; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3127, %s:%d\n", __FILE__, __LINE__); *res_code = CFN_SQRT; { tree ops1[2], res; ops1[0] = captures[1]; ops1[1] = captures[3]; code_helper tem_code = MULT_EXPR; tree tem_ops[3] = { ops1[0], ops1[1] }; gimple_resimplify2 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[0] = res; } gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } } break; } default:; } } break; default:; } } break; } case CFN_BUILT_IN_CBRTF: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gcall *def = dyn_cast (def_stmt)) switch (gimple_call_combined_fn (def)) { case CFN_BUILT_IN_CBRTF: { tree o40 = gimple_call_arg (def, 0); if ((o40 = do_valueize (valueize, o40))) { { /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, op1, o40 }; /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (flag_unsafe_math_optimizations) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[2]))) lseq = NULL; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3127, %s:%d\n", __FILE__, __LINE__); *res_code = CFN_BUILT_IN_CBRTF; { tree ops1[2], res; ops1[0] = captures[1]; ops1[1] = captures[3]; code_helper tem_code = MULT_EXPR; tree tem_ops[3] = { ops1[0], ops1[1] }; gimple_resimplify2 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[0] = res; } gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } } break; } default:; } } break; default:; } } break; } case CFN_BUILT_IN_CBRT: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gcall *def = dyn_cast (def_stmt)) switch (gimple_call_combined_fn (def)) { case CFN_BUILT_IN_CBRT: { tree o40 = gimple_call_arg (def, 0); if ((o40 = do_valueize (valueize, o40))) { { /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, op1, o40 }; /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (flag_unsafe_math_optimizations) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[2]))) lseq = NULL; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3127, %s:%d\n", __FILE__, __LINE__); *res_code = CFN_BUILT_IN_CBRT; { tree ops1[2], res; ops1[0] = captures[1]; ops1[1] = captures[3]; code_helper tem_code = MULT_EXPR; tree tem_ops[3] = { ops1[0], ops1[1] }; gimple_resimplify2 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[0] = res; } gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } } break; } default:; } } break; default:; } } break; } case CFN_BUILT_IN_CBRTL: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gcall *def = dyn_cast (def_stmt)) switch (gimple_call_combined_fn (def)) { case CFN_BUILT_IN_CBRTL: { tree o40 = gimple_call_arg (def, 0); if ((o40 = do_valueize (valueize, o40))) { { /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, op1, o40 }; /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (flag_unsafe_math_optimizations) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[2]))) lseq = NULL; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3127, %s:%d\n", __FILE__, __LINE__); *res_code = CFN_BUILT_IN_CBRTL; { tree ops1[2], res; ops1[0] = captures[1]; ops1[1] = captures[3]; code_helper tem_code = MULT_EXPR; tree tem_ops[3] = { ops1[0], ops1[1] }; gimple_resimplify2 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[0] = res; } gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } } break; } default:; } } break; default:; } } break; } case CFN_BUILT_IN_EXPF: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gcall *def = dyn_cast (def_stmt)) switch (gimple_call_combined_fn (def)) { case CFN_BUILT_IN_EXPF: { tree o40 = gimple_call_arg (def, 0); if ((o40 = do_valueize (valueize, o40))) { { /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, op1, o40 }; /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (flag_unsafe_math_optimizations) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[2]))) lseq = NULL; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3133, %s:%d\n", __FILE__, __LINE__); *res_code = CFN_BUILT_IN_EXPF; { tree ops1[2], res; ops1[0] = captures[1]; ops1[1] = captures[3]; code_helper tem_code = PLUS_EXPR; tree tem_ops[3] = { ops1[0], ops1[1] }; gimple_resimplify2 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[0] = res; } gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } } break; } default:; } } break; default:; } } break; } case CFN_BUILT_IN_EXP: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gcall *def = dyn_cast (def_stmt)) switch (gimple_call_combined_fn (def)) { case CFN_BUILT_IN_EXP: { tree o40 = gimple_call_arg (def, 0); if ((o40 = do_valueize (valueize, o40))) { { /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, op1, o40 }; /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (flag_unsafe_math_optimizations) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[2]))) lseq = NULL; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3133, %s:%d\n", __FILE__, __LINE__); *res_code = CFN_BUILT_IN_EXP; { tree ops1[2], res; ops1[0] = captures[1]; ops1[1] = captures[3]; code_helper tem_code = PLUS_EXPR; tree tem_ops[3] = { ops1[0], ops1[1] }; gimple_resimplify2 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[0] = res; } gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } } break; } default:; } } break; default:; } } break; } case CFN_BUILT_IN_EXPL: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gcall *def = dyn_cast (def_stmt)) switch (gimple_call_combined_fn (def)) { case CFN_BUILT_IN_EXPL: { tree o40 = gimple_call_arg (def, 0); if ((o40 = do_valueize (valueize, o40))) { { /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, op1, o40 }; /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (flag_unsafe_math_optimizations) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[2]))) lseq = NULL; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3133, %s:%d\n", __FILE__, __LINE__); *res_code = CFN_BUILT_IN_EXPL; { tree ops1[2], res; ops1[0] = captures[1]; ops1[1] = captures[3]; code_helper tem_code = PLUS_EXPR; tree tem_ops[3] = { ops1[0], ops1[1] }; gimple_resimplify2 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[0] = res; } gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } } break; } default:; } } break; default:; } } break; } case CFN_EXP: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gcall *def = dyn_cast (def_stmt)) switch (gimple_call_combined_fn (def)) { case CFN_EXP: { tree o40 = gimple_call_arg (def, 0); if ((o40 = do_valueize (valueize, o40))) { { /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, op1, o40 }; /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (flag_unsafe_math_optimizations) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[2]))) lseq = NULL; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3133, %s:%d\n", __FILE__, __LINE__); *res_code = CFN_EXP; { tree ops1[2], res; ops1[0] = captures[1]; ops1[1] = captures[3]; code_helper tem_code = PLUS_EXPR; tree tem_ops[3] = { ops1[0], ops1[1] }; gimple_resimplify2 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[0] = res; } gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } } break; } default:; } } break; default:; } } break; } case CFN_BUILT_IN_EXP2F: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gcall *def = dyn_cast (def_stmt)) switch (gimple_call_combined_fn (def)) { case CFN_BUILT_IN_EXP2F: { tree o40 = gimple_call_arg (def, 0); if ((o40 = do_valueize (valueize, o40))) { { /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, op1, o40 }; /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (flag_unsafe_math_optimizations) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[2]))) lseq = NULL; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3133, %s:%d\n", __FILE__, __LINE__); *res_code = CFN_BUILT_IN_EXP2F; { tree ops1[2], res; ops1[0] = captures[1]; ops1[1] = captures[3]; code_helper tem_code = PLUS_EXPR; tree tem_ops[3] = { ops1[0], ops1[1] }; gimple_resimplify2 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[0] = res; } gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } } break; } default:; } } break; default:; } } break; } case CFN_BUILT_IN_EXP2: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gcall *def = dyn_cast (def_stmt)) switch (gimple_call_combined_fn (def)) { case CFN_BUILT_IN_EXP2: { tree o40 = gimple_call_arg (def, 0); if ((o40 = do_valueize (valueize, o40))) { { /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, op1, o40 }; /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (flag_unsafe_math_optimizations) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[2]))) lseq = NULL; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3133, %s:%d\n", __FILE__, __LINE__); *res_code = CFN_BUILT_IN_EXP2; { tree ops1[2], res; ops1[0] = captures[1]; ops1[1] = captures[3]; code_helper tem_code = PLUS_EXPR; tree tem_ops[3] = { ops1[0], ops1[1] }; gimple_resimplify2 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[0] = res; } gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } } break; } default:; } } break; default:; } } break; } case CFN_BUILT_IN_EXP2L: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gcall *def = dyn_cast (def_stmt)) switch (gimple_call_combined_fn (def)) { case CFN_BUILT_IN_EXP2L: { tree o40 = gimple_call_arg (def, 0); if ((o40 = do_valueize (valueize, o40))) { { /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, op1, o40 }; /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (flag_unsafe_math_optimizations) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[2]))) lseq = NULL; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3133, %s:%d\n", __FILE__, __LINE__); *res_code = CFN_BUILT_IN_EXP2L; { tree ops1[2], res; ops1[0] = captures[1]; ops1[1] = captures[3]; code_helper tem_code = PLUS_EXPR; tree tem_ops[3] = { ops1[0], ops1[1] }; gimple_resimplify2 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[0] = res; } gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } } break; } default:; } } break; default:; } } break; } case CFN_EXP2: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gcall *def = dyn_cast (def_stmt)) switch (gimple_call_combined_fn (def)) { case CFN_EXP2: { tree o40 = gimple_call_arg (def, 0); if ((o40 = do_valueize (valueize, o40))) { { /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, op1, o40 }; /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (flag_unsafe_math_optimizations) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[2]))) lseq = NULL; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3133, %s:%d\n", __FILE__, __LINE__); *res_code = CFN_EXP2; { tree ops1[2], res; ops1[0] = captures[1]; ops1[1] = captures[3]; code_helper tem_code = PLUS_EXPR; tree tem_ops[3] = { ops1[0], ops1[1] }; gimple_resimplify2 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[0] = res; } gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } } break; } default:; } } break; default:; } } break; } case CFN_BUILT_IN_EXP10F: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gcall *def = dyn_cast (def_stmt)) switch (gimple_call_combined_fn (def)) { case CFN_BUILT_IN_EXP10F: { tree o40 = gimple_call_arg (def, 0); if ((o40 = do_valueize (valueize, o40))) { { /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, op1, o40 }; /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (flag_unsafe_math_optimizations) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[2]))) lseq = NULL; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3133, %s:%d\n", __FILE__, __LINE__); *res_code = CFN_BUILT_IN_EXP10F; { tree ops1[2], res; ops1[0] = captures[1]; ops1[1] = captures[3]; code_helper tem_code = PLUS_EXPR; tree tem_ops[3] = { ops1[0], ops1[1] }; gimple_resimplify2 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[0] = res; } gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } } break; } default:; } } break; default:; } } break; } case CFN_BUILT_IN_EXP10: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gcall *def = dyn_cast (def_stmt)) switch (gimple_call_combined_fn (def)) { case CFN_BUILT_IN_EXP10: { tree o40 = gimple_call_arg (def, 0); if ((o40 = do_valueize (valueize, o40))) { { /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, op1, o40 }; /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (flag_unsafe_math_optimizations) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[2]))) lseq = NULL; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3133, %s:%d\n", __FILE__, __LINE__); *res_code = CFN_BUILT_IN_EXP10; { tree ops1[2], res; ops1[0] = captures[1]; ops1[1] = captures[3]; code_helper tem_code = PLUS_EXPR; tree tem_ops[3] = { ops1[0], ops1[1] }; gimple_resimplify2 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[0] = res; } gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } } break; } default:; } } break; default:; } } break; } case CFN_BUILT_IN_EXP10L: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gcall *def = dyn_cast (def_stmt)) switch (gimple_call_combined_fn (def)) { case CFN_BUILT_IN_EXP10L: { tree o40 = gimple_call_arg (def, 0); if ((o40 = do_valueize (valueize, o40))) { { /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, op1, o40 }; /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (flag_unsafe_math_optimizations) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[2]))) lseq = NULL; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3133, %s:%d\n", __FILE__, __LINE__); *res_code = CFN_BUILT_IN_EXP10L; { tree ops1[2], res; ops1[0] = captures[1]; ops1[1] = captures[3]; code_helper tem_code = PLUS_EXPR; tree tem_ops[3] = { ops1[0], ops1[1] }; gimple_resimplify2 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[0] = res; } gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } } break; } default:; } } break; default:; } } break; } case CFN_EXP10: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gcall *def = dyn_cast (def_stmt)) switch (gimple_call_combined_fn (def)) { case CFN_EXP10: { tree o40 = gimple_call_arg (def, 0); if ((o40 = do_valueize (valueize, o40))) { { /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, op1, o40 }; /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (flag_unsafe_math_optimizations) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[2]))) lseq = NULL; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3133, %s:%d\n", __FILE__, __LINE__); *res_code = CFN_EXP10; { tree ops1[2], res; ops1[0] = captures[1]; ops1[1] = captures[3]; code_helper tem_code = PLUS_EXPR; tree tem_ops[3] = { ops1[0], ops1[1] }; gimple_resimplify2 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[0] = res; } gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } } break; } default:; } } break; default:; } } break; } case CFN_BUILT_IN_POW10F: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gcall *def = dyn_cast (def_stmt)) switch (gimple_call_combined_fn (def)) { case CFN_BUILT_IN_POW10F: { tree o40 = gimple_call_arg (def, 0); if ((o40 = do_valueize (valueize, o40))) { { /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, op1, o40 }; /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (flag_unsafe_math_optimizations) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[2]))) lseq = NULL; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3133, %s:%d\n", __FILE__, __LINE__); *res_code = CFN_BUILT_IN_POW10F; { tree ops1[2], res; ops1[0] = captures[1]; ops1[1] = captures[3]; code_helper tem_code = PLUS_EXPR; tree tem_ops[3] = { ops1[0], ops1[1] }; gimple_resimplify2 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[0] = res; } gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } } break; } default:; } } break; default:; } } break; } case CFN_BUILT_IN_POW10: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gcall *def = dyn_cast (def_stmt)) switch (gimple_call_combined_fn (def)) { case CFN_BUILT_IN_POW10: { tree o40 = gimple_call_arg (def, 0); if ((o40 = do_valueize (valueize, o40))) { { /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, op1, o40 }; /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (flag_unsafe_math_optimizations) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[2]))) lseq = NULL; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3133, %s:%d\n", __FILE__, __LINE__); *res_code = CFN_BUILT_IN_POW10; { tree ops1[2], res; ops1[0] = captures[1]; ops1[1] = captures[3]; code_helper tem_code = PLUS_EXPR; tree tem_ops[3] = { ops1[0], ops1[1] }; gimple_resimplify2 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[0] = res; } gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } } break; } default:; } } break; default:; } } break; } case CFN_BUILT_IN_POW10L: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gcall *def = dyn_cast (def_stmt)) switch (gimple_call_combined_fn (def)) { case CFN_BUILT_IN_POW10L: { tree o40 = gimple_call_arg (def, 0); if ((o40 = do_valueize (valueize, o40))) { { /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, op1, o40 }; /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (flag_unsafe_math_optimizations) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[2]))) lseq = NULL; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3133, %s:%d\n", __FILE__, __LINE__); *res_code = CFN_BUILT_IN_POW10L; { tree ops1[2], res; ops1[0] = captures[1]; ops1[1] = captures[3]; code_helper tem_code = PLUS_EXPR; tree tem_ops[3] = { ops1[0], ops1[1] }; gimple_resimplify2 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[0] = res; } gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } } break; } default:; } } break; default:; } } break; } case CFN_BUILT_IN_TANF: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gcall *def = dyn_cast (def_stmt)) switch (gimple_call_combined_fn (def)) { case CFN_BUILT_IN_COSF: { tree o40 = gimple_call_arg (def, 0); if ((o40 = do_valueize (valueize, o40))) { if (o40 == o20 || (operand_equal_p (o40, o20, 0) && types_match (o40, o20))) { { /* #line 3308 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, op1 }; if (gimple_simplify_132 (res_code, res_ops, seq, valueize, type, captures, CFN_BUILT_IN_TANF, CFN_BUILT_IN_COSF, CFN_BUILT_IN_SINF)) return true; } } } break; } default:; } } break; default:; } } break; } case CFN_BUILT_IN_TAN: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gcall *def = dyn_cast (def_stmt)) switch (gimple_call_combined_fn (def)) { case CFN_BUILT_IN_COS: { tree o40 = gimple_call_arg (def, 0); if ((o40 = do_valueize (valueize, o40))) { if (o40 == o20 || (operand_equal_p (o40, o20, 0) && types_match (o40, o20))) { { /* #line 3308 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, op1 }; if (gimple_simplify_132 (res_code, res_ops, seq, valueize, type, captures, CFN_BUILT_IN_TAN, CFN_BUILT_IN_COS, CFN_BUILT_IN_SIN)) return true; } } } break; } default:; } } break; default:; } } break; } case CFN_BUILT_IN_TANL: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gcall *def = dyn_cast (def_stmt)) switch (gimple_call_combined_fn (def)) { case CFN_BUILT_IN_COSL: { tree o40 = gimple_call_arg (def, 0); if ((o40 = do_valueize (valueize, o40))) { if (o40 == o20 || (operand_equal_p (o40, o20, 0) && types_match (o40, o20))) { { /* #line 3308 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, op1 }; if (gimple_simplify_132 (res_code, res_ops, seq, valueize, type, captures, CFN_BUILT_IN_TANL, CFN_BUILT_IN_COSL, CFN_BUILT_IN_SINL)) return true; } } } break; } default:; } } break; default:; } } break; } case CFN_TAN: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gcall *def = dyn_cast (def_stmt)) switch (gimple_call_combined_fn (def)) { case CFN_COS: { tree o40 = gimple_call_arg (def, 0); if ((o40 = do_valueize (valueize, o40))) { if (o40 == o20 || (operand_equal_p (o40, o20, 0) && types_match (o40, o20))) { { /* #line 3308 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, op1 }; if (gimple_simplify_132 (res_code, res_ops, seq, valueize, type, captures, CFN_TAN, CFN_COS, CFN_SIN)) return true; } } } break; } default:; } } break; default:; } } break; } case CFN_BUILT_IN_COSF: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gcall *def = dyn_cast (def_stmt)) switch (gimple_call_combined_fn (def)) { case CFN_BUILT_IN_TANF: { tree o40 = gimple_call_arg (def, 0); if ((o40 = do_valueize (valueize, o40))) { if (o40 == o20 || (operand_equal_p (o40, o20, 0) && types_match (o40, o20))) { { /* #line 3308 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { op1, o20, op0 }; if (gimple_simplify_132 (res_code, res_ops, seq, valueize, type, captures, CFN_BUILT_IN_TANF, CFN_BUILT_IN_COSF, CFN_BUILT_IN_SINF)) return true; } } } break; } default:; } } break; default:; } } break; } case CFN_BUILT_IN_COS: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gcall *def = dyn_cast (def_stmt)) switch (gimple_call_combined_fn (def)) { case CFN_BUILT_IN_TAN: { tree o40 = gimple_call_arg (def, 0); if ((o40 = do_valueize (valueize, o40))) { if (o40 == o20 || (operand_equal_p (o40, o20, 0) && types_match (o40, o20))) { { /* #line 3308 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { op1, o20, op0 }; if (gimple_simplify_132 (res_code, res_ops, seq, valueize, type, captures, CFN_BUILT_IN_TAN, CFN_BUILT_IN_COS, CFN_BUILT_IN_SIN)) return true; } } } break; } default:; } } break; default:; } } break; } case CFN_BUILT_IN_COSL: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gcall *def = dyn_cast (def_stmt)) switch (gimple_call_combined_fn (def)) { case CFN_BUILT_IN_TANL: { tree o40 = gimple_call_arg (def, 0); if ((o40 = do_valueize (valueize, o40))) { if (o40 == o20 || (operand_equal_p (o40, o20, 0) && types_match (o40, o20))) { { /* #line 3308 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { op1, o20, op0 }; if (gimple_simplify_132 (res_code, res_ops, seq, valueize, type, captures, CFN_BUILT_IN_TANL, CFN_BUILT_IN_COSL, CFN_BUILT_IN_SINL)) return true; } } } break; } default:; } } break; default:; } } break; } case CFN_COS: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gcall *def = dyn_cast (def_stmt)) switch (gimple_call_combined_fn (def)) { case CFN_TAN: { tree o40 = gimple_call_arg (def, 0); if ((o40 = do_valueize (valueize, o40))) { if (o40 == o20 || (operand_equal_p (o40, o20, 0) && types_match (o40, o20))) { { /* #line 3308 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { op1, o20, op0 }; if (gimple_simplify_132 (res_code, res_ops, seq, valueize, type, captures, CFN_TAN, CFN_COS, CFN_SIN)) return true; } } } break; } default:; } } break; default:; } } break; } default:; } } break; default:; } switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gcall *def = dyn_cast (def_stmt)) switch (gimple_call_combined_fn (def)) { case CFN_BUILT_IN_POWF: { tree o30 = gimple_call_arg (def, 0); if ((o30 = do_valueize (valueize, o30))) { tree o31 = gimple_call_arg (def, 1); if ((o31 = do_valueize (valueize, o31))) { if (o30 == op0 || (operand_equal_p (o30, op0, 0) && types_match (o30, op0))) { switch (TREE_CODE (o31)) { case REAL_CST: { { /* #line 3308 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { op0, op1, o31 }; if (gimple_simplify_104 (res_code, res_ops, seq, valueize, type, captures, CFN_BUILT_IN_POWF)) return true; } break; } default:; } } } } break; } case CFN_BUILT_IN_POW: { tree o30 = gimple_call_arg (def, 0); if ((o30 = do_valueize (valueize, o30))) { tree o31 = gimple_call_arg (def, 1); if ((o31 = do_valueize (valueize, o31))) { if (o30 == op0 || (operand_equal_p (o30, op0, 0) && types_match (o30, op0))) { switch (TREE_CODE (o31)) { case REAL_CST: { { /* #line 3308 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { op0, op1, o31 }; if (gimple_simplify_104 (res_code, res_ops, seq, valueize, type, captures, CFN_BUILT_IN_POW)) return true; } break; } default:; } } } } break; } case CFN_BUILT_IN_POWL: { tree o30 = gimple_call_arg (def, 0); if ((o30 = do_valueize (valueize, o30))) { tree o31 = gimple_call_arg (def, 1); if ((o31 = do_valueize (valueize, o31))) { if (o30 == op0 || (operand_equal_p (o30, op0, 0) && types_match (o30, op0))) { switch (TREE_CODE (o31)) { case REAL_CST: { { /* #line 3308 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { op0, op1, o31 }; if (gimple_simplify_104 (res_code, res_ops, seq, valueize, type, captures, CFN_BUILT_IN_POWL)) return true; } break; } default:; } } } } break; } case CFN_POW: { tree o30 = gimple_call_arg (def, 0); if ((o30 = do_valueize (valueize, o30))) { tree o31 = gimple_call_arg (def, 1); if ((o31 = do_valueize (valueize, o31))) { if (o30 == op0 || (operand_equal_p (o30, op0, 0) && types_match (o30, op0))) { switch (TREE_CODE (o31)) { case REAL_CST: { { /* #line 3308 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { op0, op1, o31 }; if (gimple_simplify_104 (res_code, res_ops, seq, valueize, type, captures, CFN_POW)) return true; } break; } default:; } } } } break; } default:; } } break; default:; } switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gcall *def = dyn_cast (def_stmt)) switch (gimple_call_combined_fn (def)) { case CFN_BUILT_IN_POWF: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_call_arg (def, 1); if ((o21 = do_valueize (valueize, o21))) { switch (TREE_CODE (o21)) { case REAL_CST: { if (op1 == o20 || (operand_equal_p (op1, o20, 0) && types_match (op1, o20))) { { /* #line 3308 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o20, op0, o21 }; if (gimple_simplify_104 (res_code, res_ops, seq, valueize, type, captures, CFN_BUILT_IN_POWF)) return true; } } break; } default:; } switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gcall *def = dyn_cast (def_stmt)) switch (gimple_call_combined_fn (def)) { case CFN_BUILT_IN_POWF: { tree o50 = gimple_call_arg (def, 0); if ((o50 = do_valueize (valueize, o50))) { tree o51 = gimple_call_arg (def, 1); if ((o51 = do_valueize (valueize, o51))) { if (o50 == o20 || (operand_equal_p (o50, o20, 0) && types_match (o50, o20))) { { /* #line 3308 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { op0, o20, o21, op1, o51 }; if (gimple_simplify_66 (res_code, res_ops, seq, valueize, type, captures, CFN_BUILT_IN_POWF)) return true; } } if (o51 == o21 || (operand_equal_p (o51, o21, 0) && types_match (o51, o21))) { { /* #line 3308 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { op0, o20, o21, op1, o50 }; if (gimple_simplify_182 (res_code, res_ops, seq, valueize, type, captures, CFN_BUILT_IN_POWF)) return true; } } } } break; } default:; } } break; default:; } } } break; } case CFN_BUILT_IN_POW: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_call_arg (def, 1); if ((o21 = do_valueize (valueize, o21))) { switch (TREE_CODE (o21)) { case REAL_CST: { if (op1 == o20 || (operand_equal_p (op1, o20, 0) && types_match (op1, o20))) { { /* #line 3308 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o20, op0, o21 }; if (gimple_simplify_104 (res_code, res_ops, seq, valueize, type, captures, CFN_BUILT_IN_POW)) return true; } } break; } default:; } switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gcall *def = dyn_cast (def_stmt)) switch (gimple_call_combined_fn (def)) { case CFN_BUILT_IN_POW: { tree o50 = gimple_call_arg (def, 0); if ((o50 = do_valueize (valueize, o50))) { tree o51 = gimple_call_arg (def, 1); if ((o51 = do_valueize (valueize, o51))) { if (o50 == o20 || (operand_equal_p (o50, o20, 0) && types_match (o50, o20))) { { /* #line 3308 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { op0, o20, o21, op1, o51 }; if (gimple_simplify_66 (res_code, res_ops, seq, valueize, type, captures, CFN_BUILT_IN_POW)) return true; } } if (o51 == o21 || (operand_equal_p (o51, o21, 0) && types_match (o51, o21))) { { /* #line 3308 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { op0, o20, o21, op1, o50 }; if (gimple_simplify_182 (res_code, res_ops, seq, valueize, type, captures, CFN_BUILT_IN_POW)) return true; } } } } break; } default:; } } break; default:; } } } break; } case CFN_BUILT_IN_POWL: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_call_arg (def, 1); if ((o21 = do_valueize (valueize, o21))) { switch (TREE_CODE (o21)) { case REAL_CST: { if (op1 == o20 || (operand_equal_p (op1, o20, 0) && types_match (op1, o20))) { { /* #line 3308 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o20, op0, o21 }; if (gimple_simplify_104 (res_code, res_ops, seq, valueize, type, captures, CFN_BUILT_IN_POWL)) return true; } } break; } default:; } switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gcall *def = dyn_cast (def_stmt)) switch (gimple_call_combined_fn (def)) { case CFN_BUILT_IN_POWL: { tree o50 = gimple_call_arg (def, 0); if ((o50 = do_valueize (valueize, o50))) { tree o51 = gimple_call_arg (def, 1); if ((o51 = do_valueize (valueize, o51))) { if (o50 == o20 || (operand_equal_p (o50, o20, 0) && types_match (o50, o20))) { { /* #line 3308 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { op0, o20, o21, op1, o51 }; if (gimple_simplify_66 (res_code, res_ops, seq, valueize, type, captures, CFN_BUILT_IN_POWL)) return true; } } if (o51 == o21 || (operand_equal_p (o51, o21, 0) && types_match (o51, o21))) { { /* #line 3308 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { op0, o20, o21, op1, o50 }; if (gimple_simplify_182 (res_code, res_ops, seq, valueize, type, captures, CFN_BUILT_IN_POWL)) return true; } } } } break; } default:; } } break; default:; } } } break; } case CFN_POW: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_call_arg (def, 1); if ((o21 = do_valueize (valueize, o21))) { switch (TREE_CODE (o21)) { case REAL_CST: { if (op1 == o20 || (operand_equal_p (op1, o20, 0) && types_match (op1, o20))) { { /* #line 3308 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o20, op0, o21 }; if (gimple_simplify_104 (res_code, res_ops, seq, valueize, type, captures, CFN_POW)) return true; } } break; } default:; } switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gcall *def = dyn_cast (def_stmt)) switch (gimple_call_combined_fn (def)) { case CFN_POW: { tree o50 = gimple_call_arg (def, 0); if ((o50 = do_valueize (valueize, o50))) { tree o51 = gimple_call_arg (def, 1); if ((o51 = do_valueize (valueize, o51))) { if (o50 == o20 || (operand_equal_p (o50, o20, 0) && types_match (o50, o20))) { { /* #line 3308 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { op0, o20, o21, op1, o51 }; if (gimple_simplify_66 (res_code, res_ops, seq, valueize, type, captures, CFN_POW)) return true; } } if (o51 == o21 || (operand_equal_p (o51, o21, 0) && types_match (o51, o21))) { { /* #line 3308 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { op0, o20, o21, op1, o50 }; if (gimple_simplify_182 (res_code, res_ops, seq, valueize, type, captures, CFN_POW)) return true; } } } } break; } default:; } } break; default:; } } } break; } case CFN_BUILT_IN_POWIF: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_call_arg (def, 1); if ((o21 = do_valueize (valueize, o21))) { switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gcall *def = dyn_cast (def_stmt)) switch (gimple_call_combined_fn (def)) { case CFN_BUILT_IN_POWIF: { tree o50 = gimple_call_arg (def, 0); if ((o50 = do_valueize (valueize, o50))) { tree o51 = gimple_call_arg (def, 1); if ((o51 = do_valueize (valueize, o51))) { if (o51 == o21 || (operand_equal_p (o51, o21, 0) && types_match (o51, o21))) { { /* #line 3308 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { op0, o20, o21, op1, o50 }; /* #line 3308 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (flag_unsafe_math_optimizations && canonicalize_math_p ()) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[3]))) lseq = NULL; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3357, %s:%d\n", __FILE__, __LINE__); *res_code = CFN_BUILT_IN_POWIF; { tree ops1[2], res; ops1[0] = captures[1]; ops1[1] = captures[4]; code_helper tem_code = MULT_EXPR; tree tem_ops[3] = { ops1[0], ops1[1] }; gimple_resimplify2 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[0] = res; } res_ops[1] = captures[2]; gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } } } } break; } default:; } } break; default:; } } } break; } case CFN_BUILT_IN_POWI: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_call_arg (def, 1); if ((o21 = do_valueize (valueize, o21))) { switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gcall *def = dyn_cast (def_stmt)) switch (gimple_call_combined_fn (def)) { case CFN_BUILT_IN_POWI: { tree o50 = gimple_call_arg (def, 0); if ((o50 = do_valueize (valueize, o50))) { tree o51 = gimple_call_arg (def, 1); if ((o51 = do_valueize (valueize, o51))) { if (o51 == o21 || (operand_equal_p (o51, o21, 0) && types_match (o51, o21))) { { /* #line 3308 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { op0, o20, o21, op1, o50 }; /* #line 3308 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (flag_unsafe_math_optimizations && canonicalize_math_p ()) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[3]))) lseq = NULL; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3357, %s:%d\n", __FILE__, __LINE__); *res_code = CFN_BUILT_IN_POWI; { tree ops1[2], res; ops1[0] = captures[1]; ops1[1] = captures[4]; code_helper tem_code = MULT_EXPR; tree tem_ops[3] = { ops1[0], ops1[1] }; gimple_resimplify2 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[0] = res; } res_ops[1] = captures[2]; gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } } } } break; } default:; } } break; default:; } } } break; } case CFN_BUILT_IN_POWIL: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_call_arg (def, 1); if ((o21 = do_valueize (valueize, o21))) { switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gcall *def = dyn_cast (def_stmt)) switch (gimple_call_combined_fn (def)) { case CFN_BUILT_IN_POWIL: { tree o50 = gimple_call_arg (def, 0); if ((o50 = do_valueize (valueize, o50))) { tree o51 = gimple_call_arg (def, 1); if ((o51 = do_valueize (valueize, o51))) { if (o51 == o21 || (operand_equal_p (o51, o21, 0) && types_match (o51, o21))) { { /* #line 3308 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { op0, o20, o21, op1, o50 }; /* #line 3308 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (flag_unsafe_math_optimizations && canonicalize_math_p ()) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[3]))) lseq = NULL; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3357, %s:%d\n", __FILE__, __LINE__); *res_code = CFN_BUILT_IN_POWIL; { tree ops1[2], res; ops1[0] = captures[1]; ops1[1] = captures[4]; code_helper tem_code = MULT_EXPR; tree tem_ops[3] = { ops1[0], ops1[1] }; gimple_resimplify2 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[0] = res; } res_ops[1] = captures[2]; gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } } } } break; } default:; } } break; default:; } } } break; } default:; } } break; default:; } return false; } static bool gimple_simplify_TRUNC_DIV_EXPR (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree op0, tree op1) { if (integer_onep (op1)) { { /* #line 148 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { op0 }; if (gimple_simplify_193 (res_code, res_ops, seq, valueize, type, captures, TRUNC_DIV_EXPR)) return true; } } if (integer_zerop (op0)) { { /* #line 158 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 }; if (gimple_simplify_154 (res_code, res_ops, seq, valueize, type, captures, TRUNC_DIV_EXPR)) return true; } } if (integer_minus_onep (op1)) { { /* #line 163 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 }; if (gimple_simplify_202 (res_code, res_ops, seq, valueize, type, captures, TRUNC_DIV_EXPR)) return true; } } if (op1 == op0 || (operand_equal_p (op1, op0, 0) && types_match (op1, op0))) { { /* #line 170 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { op0 }; if (gimple_simplify_95 (res_code, res_ops, seq, valueize, type, captures, TRUNC_DIV_EXPR)) return true; } } switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case ABS_EXPR: { tree o30 = gimple_assign_rhs1 (def); if ((o30 = do_valueize (valueize, o30))) { if (o30 == op0 || (operand_equal_p (o30, op0, 0) && types_match (o30, op0))) { { /* #line 175 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { op0 }; if (gimple_simplify_170 (res_code, res_ops, seq, valueize, type, captures, TRUNC_DIV_EXPR)) return true; } } } break; } default:; } } break; default:; } switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case ABS_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { if (op1 == o20 || (operand_equal_p (op1, o20, 0) && types_match (op1, o20))) { { /* #line 175 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; if (gimple_simplify_170 (res_code, res_ops, seq, valueize, type, captures, TRUNC_DIV_EXPR)) return true; } } } break; } default:; } } break; default:; } switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case NEGATE_EXPR: { tree o30 = gimple_assign_rhs1 (def); if ((o30 = do_valueize (valueize, o30))) { if (o30 == op0 || (operand_equal_p (o30, op0, 0) && types_match (o30, op0))) { { /* #line 182 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { op0 }; if (gimple_simplify_25 (res_code, res_ops, seq, valueize, type, captures, TRUNC_DIV_EXPR)) return true; } } } break; } default:; } } break; default:; } switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case NEGATE_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { if (op1 == o20 || (operand_equal_p (op1, o20, 0) && types_match (op1, o20))) { { /* #line 182 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; if (gimple_simplify_25 (res_code, res_ops, seq, valueize, type, captures, TRUNC_DIV_EXPR)) return true; } } } break; } case TRUNC_DIV_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { switch (TREE_CODE (o21)) { case INTEGER_CST: { switch (TREE_CODE (op1)) { case INTEGER_CST: { { /* #line 199 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 }; if (gimple_simplify_47 (res_code, res_ops, seq, valueize, type, captures, TRUNC_DIV_EXPR)) return true; } break; } default:; } break; } default:; } } } break; } CASE_CONVERT: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { switch (TREE_CODE (o20)) { case SSA_NAME: if (do_valueize (valueize, o20) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (o20); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case BIT_AND_EXPR: { tree o30 = gimple_assign_rhs1 (def); if ((o30 = do_valueize (valueize, o30))) { tree o31 = gimple_assign_rhs2 (def); if ((o31 = do_valueize (valueize, o31))) { if (tree_swap_operands_p (o30, o31)) std::swap (o30, o31); switch (TREE_CODE (o31)) { case INTEGER_CST: { switch (TREE_CODE (op1)) { case INTEGER_CST: { { /* #line 268 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o30, o31, op1 }; if (gimple_simplify_133 (res_code, res_ops, seq, valueize, type, captures, TRUNC_DIV_EXPR)) return true; } break; } default:; } break; } default:; } } } break; } default:; } } break; default:; } } break; } case BIT_AND_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { if (tree_swap_operands_p (o20, o21)) std::swap (o20, o21); switch (TREE_CODE (o21)) { case INTEGER_CST: { switch (TREE_CODE (op1)) { case INTEGER_CST: { { /* #line 268 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 }; if (gimple_simplify_133 (res_code, res_ops, seq, valueize, type, captures, TRUNC_DIV_EXPR)) return true; } break; } default:; } break; } default:; } } } break; } case MULT_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { if (tree_swap_operands_p (o20, o21)) std::swap (o20, o21); if (integer_pow2p (o21)) { if (op1 == o21 || (operand_equal_p (op1, o21, 0) && types_match (op1, o21))) { { /* #line 381 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 }; /* #line 381 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (TYPE_UNSIGNED (TREE_TYPE (captures[0]))) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:382, %s:%d\n", __FILE__, __LINE__); *res_code = BIT_AND_EXPR; res_ops[0] = captures[0]; res_ops[1] = wide_int_to_tree (type, wi::mask (TYPE_PRECISION (type) - wi::exact_log2 (captures[1]), false, TYPE_PRECISION (type))); gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } } } if (op1 == o21 || (operand_equal_p (op1, o21, 0) && types_match (op1, o21))) { { /* #line 396 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 }; if (gimple_simplify_144 (res_code, res_ops, seq, valueize, type, captures, TRUNC_DIV_EXPR)) return true; } } } } break; } default:; } } break; default:; } return false; } static bool gimple_simplify_CEIL_DIV_EXPR (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree op0, tree op1) { if (integer_onep (op1)) { { /* #line 148 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { op0 }; if (gimple_simplify_193 (res_code, res_ops, seq, valueize, type, captures, CEIL_DIV_EXPR)) return true; } } if (integer_zerop (op0)) { { /* #line 158 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 }; if (gimple_simplify_154 (res_code, res_ops, seq, valueize, type, captures, CEIL_DIV_EXPR)) return true; } } if (integer_minus_onep (op1)) { { /* #line 163 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 }; if (gimple_simplify_202 (res_code, res_ops, seq, valueize, type, captures, CEIL_DIV_EXPR)) return true; } } if (op1 == op0 || (operand_equal_p (op1, op0, 0) && types_match (op1, op0))) { { /* #line 170 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { op0 }; if (gimple_simplify_95 (res_code, res_ops, seq, valueize, type, captures, CEIL_DIV_EXPR)) return true; } } switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case ABS_EXPR: { tree o30 = gimple_assign_rhs1 (def); if ((o30 = do_valueize (valueize, o30))) { if (o30 == op0 || (operand_equal_p (o30, op0, 0) && types_match (o30, op0))) { { /* #line 175 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { op0 }; if (gimple_simplify_170 (res_code, res_ops, seq, valueize, type, captures, CEIL_DIV_EXPR)) return true; } } } break; } default:; } } break; default:; } switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case ABS_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { if (op1 == o20 || (operand_equal_p (op1, o20, 0) && types_match (op1, o20))) { { /* #line 175 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; if (gimple_simplify_170 (res_code, res_ops, seq, valueize, type, captures, CEIL_DIV_EXPR)) return true; } } } break; } default:; } } break; default:; } switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case NEGATE_EXPR: { tree o30 = gimple_assign_rhs1 (def); if ((o30 = do_valueize (valueize, o30))) { if (o30 == op0 || (operand_equal_p (o30, op0, 0) && types_match (o30, op0))) { { /* #line 182 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { op0 }; if (gimple_simplify_25 (res_code, res_ops, seq, valueize, type, captures, CEIL_DIV_EXPR)) return true; } } } break; } default:; } } break; default:; } switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case NEGATE_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { if (op1 == o20 || (operand_equal_p (op1, o20, 0) && types_match (op1, o20))) { { /* #line 182 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; if (gimple_simplify_25 (res_code, res_ops, seq, valueize, type, captures, CEIL_DIV_EXPR)) return true; } } } break; } CASE_CONVERT: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { switch (TREE_CODE (o20)) { case SSA_NAME: if (do_valueize (valueize, o20) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (o20); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case BIT_AND_EXPR: { tree o30 = gimple_assign_rhs1 (def); if ((o30 = do_valueize (valueize, o30))) { tree o31 = gimple_assign_rhs2 (def); if ((o31 = do_valueize (valueize, o31))) { if (tree_swap_operands_p (o30, o31)) std::swap (o30, o31); switch (TREE_CODE (o31)) { case INTEGER_CST: { switch (TREE_CODE (op1)) { case INTEGER_CST: { { /* #line 268 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o30, o31, op1 }; if (gimple_simplify_133 (res_code, res_ops, seq, valueize, type, captures, CEIL_DIV_EXPR)) return true; } break; } default:; } break; } default:; } } } break; } default:; } } break; default:; } } break; } case BIT_AND_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { if (tree_swap_operands_p (o20, o21)) std::swap (o20, o21); switch (TREE_CODE (o21)) { case INTEGER_CST: { switch (TREE_CODE (op1)) { case INTEGER_CST: { { /* #line 268 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 }; if (gimple_simplify_133 (res_code, res_ops, seq, valueize, type, captures, CEIL_DIV_EXPR)) return true; } break; } default:; } break; } default:; } } } break; } case MULT_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { if (tree_swap_operands_p (o20, o21)) std::swap (o20, o21); if (op1 == o21 || (operand_equal_p (op1, o21, 0) && types_match (op1, o21))) { { /* #line 396 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 }; if (gimple_simplify_144 (res_code, res_ops, seq, valueize, type, captures, CEIL_DIV_EXPR)) return true; } } } } break; } default:; } } break; default:; } return false; } static bool gimple_simplify_FLOOR_DIV_EXPR (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree op0, tree op1) { if (integer_onep (op1)) { { /* #line 148 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { op0 }; if (gimple_simplify_193 (res_code, res_ops, seq, valueize, type, captures, FLOOR_DIV_EXPR)) return true; } } if (integer_zerop (op0)) { { /* #line 158 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 }; if (gimple_simplify_154 (res_code, res_ops, seq, valueize, type, captures, FLOOR_DIV_EXPR)) return true; } } if (integer_minus_onep (op1)) { { /* #line 163 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 }; if (gimple_simplify_202 (res_code, res_ops, seq, valueize, type, captures, FLOOR_DIV_EXPR)) return true; } } if (op1 == op0 || (operand_equal_p (op1, op0, 0) && types_match (op1, op0))) { { /* #line 170 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { op0 }; if (gimple_simplify_95 (res_code, res_ops, seq, valueize, type, captures, FLOOR_DIV_EXPR)) return true; } } switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case ABS_EXPR: { tree o30 = gimple_assign_rhs1 (def); if ((o30 = do_valueize (valueize, o30))) { if (o30 == op0 || (operand_equal_p (o30, op0, 0) && types_match (o30, op0))) { { /* #line 175 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { op0 }; if (gimple_simplify_170 (res_code, res_ops, seq, valueize, type, captures, FLOOR_DIV_EXPR)) return true; } } } break; } default:; } } break; default:; } switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case ABS_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { if (op1 == o20 || (operand_equal_p (op1, o20, 0) && types_match (op1, o20))) { { /* #line 175 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; if (gimple_simplify_170 (res_code, res_ops, seq, valueize, type, captures, FLOOR_DIV_EXPR)) return true; } } } break; } default:; } } break; default:; } switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case NEGATE_EXPR: { tree o30 = gimple_assign_rhs1 (def); if ((o30 = do_valueize (valueize, o30))) { if (o30 == op0 || (operand_equal_p (o30, op0, 0) && types_match (o30, op0))) { { /* #line 182 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { op0 }; if (gimple_simplify_25 (res_code, res_ops, seq, valueize, type, captures, FLOOR_DIV_EXPR)) return true; } } } break; } default:; } } break; default:; } switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case NEGATE_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { if (op1 == o20 || (operand_equal_p (op1, o20, 0) && types_match (op1, o20))) { { /* #line 182 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; if (gimple_simplify_25 (res_code, res_ops, seq, valueize, type, captures, FLOOR_DIV_EXPR)) return true; } } } break; } default:; } } break; default:; } { /* #line 190 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 }; /* #line 190 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if ((INTEGRAL_TYPE_P (type) || VECTOR_INTEGER_TYPE_P (type)) && TYPE_UNSIGNED (type)) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:192, %s:%d\n", __FILE__, __LINE__); *res_code = TRUNC_DIV_EXPR; res_ops[0] = captures[0]; res_ops[1] = captures[1]; gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { CASE_CONVERT: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { switch (TREE_CODE (o20)) { case SSA_NAME: if (do_valueize (valueize, o20) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (o20); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case BIT_AND_EXPR: { tree o30 = gimple_assign_rhs1 (def); if ((o30 = do_valueize (valueize, o30))) { tree o31 = gimple_assign_rhs2 (def); if ((o31 = do_valueize (valueize, o31))) { if (tree_swap_operands_p (o30, o31)) std::swap (o30, o31); switch (TREE_CODE (o31)) { case INTEGER_CST: { switch (TREE_CODE (op1)) { case INTEGER_CST: { { /* #line 268 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o30, o31, op1 }; if (gimple_simplify_133 (res_code, res_ops, seq, valueize, type, captures, FLOOR_DIV_EXPR)) return true; } break; } default:; } break; } default:; } } } break; } default:; } } break; default:; } } break; } case BIT_AND_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { if (tree_swap_operands_p (o20, o21)) std::swap (o20, o21); switch (TREE_CODE (o21)) { case INTEGER_CST: { switch (TREE_CODE (op1)) { case INTEGER_CST: { { /* #line 268 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 }; if (gimple_simplify_133 (res_code, res_ops, seq, valueize, type, captures, FLOOR_DIV_EXPR)) return true; } break; } default:; } break; } default:; } } } break; } case MULT_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { if (tree_swap_operands_p (o20, o21)) std::swap (o20, o21); if (op1 == o21 || (operand_equal_p (op1, o21, 0) && types_match (op1, o21))) { { /* #line 396 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 }; if (gimple_simplify_144 (res_code, res_ops, seq, valueize, type, captures, FLOOR_DIV_EXPR)) return true; } } } } break; } default:; } } break; default:; } return false; } static bool gimple_simplify_ROUND_DIV_EXPR (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree op0, tree op1) { if (integer_onep (op1)) { { /* #line 148 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { op0 }; if (gimple_simplify_193 (res_code, res_ops, seq, valueize, type, captures, ROUND_DIV_EXPR)) return true; } } if (integer_zerop (op0)) { { /* #line 158 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 }; if (gimple_simplify_154 (res_code, res_ops, seq, valueize, type, captures, ROUND_DIV_EXPR)) return true; } } if (integer_minus_onep (op1)) { { /* #line 163 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 }; if (gimple_simplify_202 (res_code, res_ops, seq, valueize, type, captures, ROUND_DIV_EXPR)) return true; } } if (op1 == op0 || (operand_equal_p (op1, op0, 0) && types_match (op1, op0))) { { /* #line 170 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { op0 }; if (gimple_simplify_95 (res_code, res_ops, seq, valueize, type, captures, ROUND_DIV_EXPR)) return true; } } switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case ABS_EXPR: { tree o30 = gimple_assign_rhs1 (def); if ((o30 = do_valueize (valueize, o30))) { if (o30 == op0 || (operand_equal_p (o30, op0, 0) && types_match (o30, op0))) { { /* #line 175 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { op0 }; if (gimple_simplify_170 (res_code, res_ops, seq, valueize, type, captures, ROUND_DIV_EXPR)) return true; } } } break; } default:; } } break; default:; } switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case ABS_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { if (op1 == o20 || (operand_equal_p (op1, o20, 0) && types_match (op1, o20))) { { /* #line 175 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; if (gimple_simplify_170 (res_code, res_ops, seq, valueize, type, captures, ROUND_DIV_EXPR)) return true; } } } break; } default:; } } break; default:; } switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case NEGATE_EXPR: { tree o30 = gimple_assign_rhs1 (def); if ((o30 = do_valueize (valueize, o30))) { if (o30 == op0 || (operand_equal_p (o30, op0, 0) && types_match (o30, op0))) { { /* #line 182 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { op0 }; if (gimple_simplify_25 (res_code, res_ops, seq, valueize, type, captures, ROUND_DIV_EXPR)) return true; } } } break; } default:; } } break; default:; } switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case NEGATE_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { if (op1 == o20 || (operand_equal_p (op1, o20, 0) && types_match (op1, o20))) { { /* #line 182 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; if (gimple_simplify_25 (res_code, res_ops, seq, valueize, type, captures, ROUND_DIV_EXPR)) return true; } } } break; } CASE_CONVERT: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { switch (TREE_CODE (o20)) { case SSA_NAME: if (do_valueize (valueize, o20) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (o20); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case BIT_AND_EXPR: { tree o30 = gimple_assign_rhs1 (def); if ((o30 = do_valueize (valueize, o30))) { tree o31 = gimple_assign_rhs2 (def); if ((o31 = do_valueize (valueize, o31))) { if (tree_swap_operands_p (o30, o31)) std::swap (o30, o31); switch (TREE_CODE (o31)) { case INTEGER_CST: { switch (TREE_CODE (op1)) { case INTEGER_CST: { { /* #line 268 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o30, o31, op1 }; if (gimple_simplify_133 (res_code, res_ops, seq, valueize, type, captures, ROUND_DIV_EXPR)) return true; } break; } default:; } break; } default:; } } } break; } default:; } } break; default:; } } break; } case BIT_AND_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { if (tree_swap_operands_p (o20, o21)) std::swap (o20, o21); switch (TREE_CODE (o21)) { case INTEGER_CST: { switch (TREE_CODE (op1)) { case INTEGER_CST: { { /* #line 268 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 }; if (gimple_simplify_133 (res_code, res_ops, seq, valueize, type, captures, ROUND_DIV_EXPR)) return true; } break; } default:; } break; } default:; } } } break; } case MULT_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { if (tree_swap_operands_p (o20, o21)) std::swap (o20, o21); if (op1 == o21 || (operand_equal_p (op1, o21, 0) && types_match (op1, o21))) { { /* #line 396 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 }; if (gimple_simplify_144 (res_code, res_ops, seq, valueize, type, captures, ROUND_DIV_EXPR)) return true; } } } } break; } default:; } } break; default:; } return false; } static bool gimple_simplify_EXACT_DIV_EXPR (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree op0, tree op1) { if (integer_onep (op1)) { { /* #line 148 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { op0 }; if (gimple_simplify_193 (res_code, res_ops, seq, valueize, type, captures, EXACT_DIV_EXPR)) return true; } } if (integer_zerop (op0)) { { /* #line 158 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 }; if (gimple_simplify_154 (res_code, res_ops, seq, valueize, type, captures, EXACT_DIV_EXPR)) return true; } } if (integer_minus_onep (op1)) { { /* #line 163 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 }; if (gimple_simplify_202 (res_code, res_ops, seq, valueize, type, captures, EXACT_DIV_EXPR)) return true; } } if (op1 == op0 || (operand_equal_p (op1, op0, 0) && types_match (op1, op0))) { { /* #line 170 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { op0 }; if (gimple_simplify_95 (res_code, res_ops, seq, valueize, type, captures, EXACT_DIV_EXPR)) return true; } } switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case ABS_EXPR: { tree o30 = gimple_assign_rhs1 (def); if ((o30 = do_valueize (valueize, o30))) { if (o30 == op0 || (operand_equal_p (o30, op0, 0) && types_match (o30, op0))) { { /* #line 175 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { op0 }; if (gimple_simplify_170 (res_code, res_ops, seq, valueize, type, captures, EXACT_DIV_EXPR)) return true; } } } break; } default:; } } break; default:; } switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case ABS_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { if (op1 == o20 || (operand_equal_p (op1, o20, 0) && types_match (op1, o20))) { { /* #line 175 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; if (gimple_simplify_170 (res_code, res_ops, seq, valueize, type, captures, EXACT_DIV_EXPR)) return true; } } } break; } default:; } } break; default:; } switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case NEGATE_EXPR: { tree o30 = gimple_assign_rhs1 (def); if ((o30 = do_valueize (valueize, o30))) { if (o30 == op0 || (operand_equal_p (o30, op0, 0) && types_match (o30, op0))) { { /* #line 182 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { op0 }; if (gimple_simplify_25 (res_code, res_ops, seq, valueize, type, captures, EXACT_DIV_EXPR)) return true; } } } break; } default:; } } break; default:; } switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case NEGATE_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { if (op1 == o20 || (operand_equal_p (op1, o20, 0) && types_match (op1, o20))) { { /* #line 182 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; if (gimple_simplify_25 (res_code, res_ops, seq, valueize, type, captures, EXACT_DIV_EXPR)) return true; } } } break; } case EXACT_DIV_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { switch (TREE_CODE (o21)) { case INTEGER_CST: { switch (TREE_CODE (op1)) { case INTEGER_CST: { { /* #line 199 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 }; if (gimple_simplify_47 (res_code, res_ops, seq, valueize, type, captures, EXACT_DIV_EXPR)) return true; } break; } default:; } break; } default:; } } } break; } CASE_CONVERT: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { switch (TREE_CODE (o20)) { case SSA_NAME: if (do_valueize (valueize, o20) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (o20); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case BIT_AND_EXPR: { tree o30 = gimple_assign_rhs1 (def); if ((o30 = do_valueize (valueize, o30))) { tree o31 = gimple_assign_rhs2 (def); if ((o31 = do_valueize (valueize, o31))) { if (tree_swap_operands_p (o30, o31)) std::swap (o30, o31); switch (TREE_CODE (o31)) { case INTEGER_CST: { switch (TREE_CODE (op1)) { case INTEGER_CST: { { /* #line 268 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o30, o31, op1 }; if (gimple_simplify_133 (res_code, res_ops, seq, valueize, type, captures, EXACT_DIV_EXPR)) return true; } break; } default:; } break; } default:; } } } break; } default:; } } break; default:; } } break; } case BIT_AND_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { if (tree_swap_operands_p (o20, o21)) std::swap (o20, o21); switch (TREE_CODE (o21)) { case INTEGER_CST: { switch (TREE_CODE (op1)) { case INTEGER_CST: { { /* #line 268 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 }; if (gimple_simplify_133 (res_code, res_ops, seq, valueize, type, captures, EXACT_DIV_EXPR)) return true; } break; } default:; } break; } default:; } } } break; } case MULT_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { if (tree_swap_operands_p (o20, o21)) std::swap (o20, o21); if (op1 == o21 || (operand_equal_p (op1, o21, 0) && types_match (op1, o21))) { { /* #line 396 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 }; if (gimple_simplify_144 (res_code, res_ops, seq, valueize, type, captures, EXACT_DIV_EXPR)) return true; } } } } break; } default:; } } break; default:; } return false; } static bool gimple_simplify_RDIV_EXPR (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree op0, tree op1) { if (op1 == op0 || (operand_equal_p (op1, op0, 0) && types_match (op1, op0))) { { /* #line 213 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { op0 }; /* #line 213 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (FLOAT_TYPE_P (type) && ! HONOR_NANS (type) && ! HONOR_INFINITIES (type)) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:216, %s:%d\n", __FILE__, __LINE__); res_ops[0] = build_one_cst (type); *res_code = TREE_CODE (res_ops[0]); return true; } } } switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case NEGATE_EXPR: { tree o30 = gimple_assign_rhs1 (def); if ((o30 = do_valueize (valueize, o30))) { if (o30 == op0 || (operand_equal_p (o30, op0, 0) && types_match (o30, op0))) { { /* #line 222 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { op0 }; if (gimple_simplify_159 (res_code, res_ops, seq, valueize, type, captures)) return true; } } } break; } default:; } } break; default:; } switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case NEGATE_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { if (op1 == o20 || (operand_equal_p (op1, o20, 0) && types_match (op1, o20))) { { /* #line 222 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; if (gimple_simplify_159 (res_code, res_ops, seq, valueize, type, captures)) return true; } } } break; } CASE_CONVERT: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { CASE_CONVERT: { tree o40 = gimple_assign_rhs1 (def); if ((o40 = do_valueize (valueize, o40))) { switch (TREE_CODE (o40)) { case SSA_NAME: if (do_valueize (valueize, o40) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (o40); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case ABS_EXPR: { tree o50 = gimple_assign_rhs1 (def); if ((o50 = do_valueize (valueize, o50))) { if (o50 == o20 || (operand_equal_p (o50, o20, 0) && types_match (o50, o20))) { { /* #line 230 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; if (gimple_simplify_29 (res_code, res_ops, seq, valueize, type, captures)) return true; } } } break; } default:; } } break; default:; } } break; } default:; } } break; default:; } switch (TREE_CODE (o20)) { case SSA_NAME: if (do_valueize (valueize, o20) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (o20); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case ABS_EXPR: { tree o30 = gimple_assign_rhs1 (def); if ((o30 = do_valueize (valueize, o30))) { switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { CASE_CONVERT: { tree o50 = gimple_assign_rhs1 (def); if ((o50 = do_valueize (valueize, o50))) { if (o50 == o30 || (operand_equal_p (o50, o30, 0) && types_match (o50, o30))) { { /* #line 230 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o30 }; if (gimple_simplify_29 (res_code, res_ops, seq, valueize, type, captures)) return true; } } } break; } default:; } } break; default:; } } break; } default:; } } break; default:; } } break; } default:; } } break; default:; } switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case ABS_EXPR: { tree o30 = gimple_assign_rhs1 (def); if ((o30 = do_valueize (valueize, o30))) { if (o30 == op0 || (operand_equal_p (o30, op0, 0) && types_match (o30, op0))) { { /* #line 230 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { op0 }; if (gimple_simplify_29 (res_code, res_ops, seq, valueize, type, captures)) return true; } } } break; } default:; } } break; default:; } switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case ABS_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { if (op1 == o20 || (operand_equal_p (op1, o20, 0) && types_match (op1, o20))) { { /* #line 230 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; if (gimple_simplify_29 (res_code, res_ops, seq, valueize, type, captures)) return true; } } } break; } default:; } } break; default:; } if (real_onep (op1)) { { /* #line 244 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { op0 }; /* #line 244 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (!HONOR_SNANS (type)) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:245, %s:%d\n", __FILE__, __LINE__); res_ops[0] = captures[0]; *res_code = TREE_CODE (res_ops[0]); return true; } } } if (real_minus_onep (op1)) { { /* #line 250 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { op0 }; /* #line 250 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (!HONOR_SNANS (type)) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:251, %s:%d\n", __FILE__, __LINE__); *res_code = NEGATE_EXPR; res_ops[0] = captures[0]; gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } } switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case RDIV_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { { /* #line 253 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o21, op1 }; /* #line 253 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (flag_reciprocal_math) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]))) lseq = NULL; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:257, %s:%d\n", __FILE__, __LINE__); *res_code = RDIV_EXPR; res_ops[0] = captures[1]; { tree ops1[2], res; ops1[0] = captures[2]; ops1[1] = captures[3]; code_helper tem_code = MULT_EXPR; tree tem_ops[3] = { ops1[0], ops1[1] }; gimple_resimplify2 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[1] = res; } gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } } } break; } default:; } } break; default:; } switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case RDIV_EXPR: { tree o30 = gimple_assign_rhs1 (def); if ((o30 = do_valueize (valueize, o30))) { tree o31 = gimple_assign_rhs2 (def); if ((o31 = do_valueize (valueize, o31))) { { /* #line 253 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { op0, op1, o30, o31 }; /* #line 253 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (flag_reciprocal_math) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[1]))) lseq = NULL; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:262, %s:%d\n", __FILE__, __LINE__); *res_code = MULT_EXPR; { tree ops1[2], res; ops1[0] = captures[0]; ops1[1] = captures[2]; code_helper tem_code = RDIV_EXPR; tree tem_ops[3] = { ops1[0], ops1[1] }; gimple_resimplify2 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[0] = res; } res_ops[1] = captures[3]; gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } } } break; } default:; } } break; case REAL_CST: { { /* #line 283 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 }; /* #line 283 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (optimize) { /* #line 284 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (flag_reciprocal_math && !real_zerop (captures[1])) { { /* #line 286 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree tem = const_binop (RDIV_EXPR, type, build_one_cst (type), captures[1]); /* #line 288 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (tem) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:289, %s:%d\n", __FILE__, __LINE__); *res_code = MULT_EXPR; res_ops[0] = captures[0]; res_ops[1] = tem; gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } } else { /* #line 290 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (REAL_CST != COMPLEX_CST) { { /* #line 291 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree inverse = exact_inverse (type, captures[1]); /* #line 292 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (inverse) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:293, %s:%d\n", __FILE__, __LINE__); *res_code = MULT_EXPR; res_ops[0] = captures[0]; res_ops[1] = inverse; gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } } } } } break; } case COMPLEX_CST: { { /* #line 283 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 }; /* #line 283 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (optimize) { /* #line 284 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (flag_reciprocal_math && !real_zerop (captures[1])) { { /* #line 286 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree tem = const_binop (RDIV_EXPR, type, build_one_cst (type), captures[1]); /* #line 288 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (tem) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:289, %s:%d\n", __FILE__, __LINE__); *res_code = MULT_EXPR; res_ops[0] = captures[0]; res_ops[1] = tem; gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } } else { /* #line 290 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (COMPLEX_CST != COMPLEX_CST) { { /* #line 291 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree inverse = exact_inverse (type, captures[1]); /* #line 292 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (inverse) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:293, %s:%d\n", __FILE__, __LINE__); *res_code = MULT_EXPR; res_ops[0] = captures[0]; res_ops[1] = inverse; gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } } } } } break; } case VECTOR_CST: { { /* #line 283 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 }; /* #line 283 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (optimize) { /* #line 284 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (flag_reciprocal_math && !real_zerop (captures[1])) { { /* #line 286 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree tem = const_binop (RDIV_EXPR, type, build_one_cst (type), captures[1]); /* #line 288 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (tem) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:289, %s:%d\n", __FILE__, __LINE__); *res_code = MULT_EXPR; res_ops[0] = captures[0]; res_ops[1] = tem; gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } } else { /* #line 290 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (VECTOR_CST != COMPLEX_CST) { { /* #line 291 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree inverse = exact_inverse (type, captures[1]); /* #line 292 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (inverse) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:293, %s:%d\n", __FILE__, __LINE__); *res_code = MULT_EXPR; res_ops[0] = captures[0]; res_ops[1] = inverse; gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } } } } } break; } default:; } switch (TREE_CODE (op0)) { case REAL_CST: { switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case MULT_EXPR: { tree o30 = gimple_assign_rhs1 (def); if ((o30 = do_valueize (valueize, o30))) { tree o31 = gimple_assign_rhs2 (def); if ((o31 = do_valueize (valueize, o31))) { if (tree_swap_operands_p (o30, o31)) std::swap (o30, o31); switch (TREE_CODE (o31)) { case REAL_CST: { { /* #line 525 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { op0, o30, o31 }; /* #line 525 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (flag_reciprocal_math) { { /* #line 526 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree tem = const_binop (RDIV_EXPR, type, captures[0], captures[2]); /* #line 528 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (tem) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:529, %s:%d\n", __FILE__, __LINE__); *res_code = RDIV_EXPR; res_ops[0] = tem; res_ops[1] = captures[1]; gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } } } break; } default:; } } } break; } default:; } } break; default:; } break; } default:; } switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gcall *def = dyn_cast (def_stmt)) switch (gimple_call_combined_fn (def)) { case CFN_BUILT_IN_SQRTF: { tree o30 = gimple_call_arg (def, 0); if ((o30 = do_valueize (valueize, o30))) { switch (TREE_CODE (o30)) { case SSA_NAME: if (do_valueize (valueize, o30) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (o30); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case RDIV_EXPR: { tree o40 = gimple_assign_rhs1 (def); if ((o40 = do_valueize (valueize, o40))) { tree o41 = gimple_assign_rhs2 (def); if ((o41 = do_valueize (valueize, o41))) { { /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { op0, op1, o30, o40, o41 }; /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (flag_unsafe_math_optimizations) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[1]) || !single_use (captures[2]))) lseq = NULL; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3139, %s:%d\n", __FILE__, __LINE__); *res_code = MULT_EXPR; res_ops[0] = captures[0]; { tree ops1[1], res; { tree ops2[2], res; ops2[0] = captures[4]; ops2[1] = captures[3]; code_helper tem_code = RDIV_EXPR; tree tem_ops[3] = { ops2[0], ops2[1] }; gimple_resimplify2 (lseq, &tem_code, TREE_TYPE (ops2[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops2[0]), tem_ops, lseq); if (!res) return false; ops1[0] = res; } code_helper tem_code = CFN_BUILT_IN_SQRTF; tree tem_ops[3] = { ops1[0] }; gimple_resimplify1 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[1] = res; } gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } } } break; } default:; } } break; default:; } } break; } case CFN_BUILT_IN_SQRT: { tree o30 = gimple_call_arg (def, 0); if ((o30 = do_valueize (valueize, o30))) { switch (TREE_CODE (o30)) { case SSA_NAME: if (do_valueize (valueize, o30) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (o30); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case RDIV_EXPR: { tree o40 = gimple_assign_rhs1 (def); if ((o40 = do_valueize (valueize, o40))) { tree o41 = gimple_assign_rhs2 (def); if ((o41 = do_valueize (valueize, o41))) { { /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { op0, op1, o30, o40, o41 }; /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (flag_unsafe_math_optimizations) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[1]) || !single_use (captures[2]))) lseq = NULL; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3139, %s:%d\n", __FILE__, __LINE__); *res_code = MULT_EXPR; res_ops[0] = captures[0]; { tree ops1[1], res; { tree ops2[2], res; ops2[0] = captures[4]; ops2[1] = captures[3]; code_helper tem_code = RDIV_EXPR; tree tem_ops[3] = { ops2[0], ops2[1] }; gimple_resimplify2 (lseq, &tem_code, TREE_TYPE (ops2[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops2[0]), tem_ops, lseq); if (!res) return false; ops1[0] = res; } code_helper tem_code = CFN_BUILT_IN_SQRT; tree tem_ops[3] = { ops1[0] }; gimple_resimplify1 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[1] = res; } gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } } } break; } default:; } } break; default:; } } break; } case CFN_BUILT_IN_SQRTL: { tree o30 = gimple_call_arg (def, 0); if ((o30 = do_valueize (valueize, o30))) { switch (TREE_CODE (o30)) { case SSA_NAME: if (do_valueize (valueize, o30) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (o30); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case RDIV_EXPR: { tree o40 = gimple_assign_rhs1 (def); if ((o40 = do_valueize (valueize, o40))) { tree o41 = gimple_assign_rhs2 (def); if ((o41 = do_valueize (valueize, o41))) { { /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { op0, op1, o30, o40, o41 }; /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (flag_unsafe_math_optimizations) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[1]) || !single_use (captures[2]))) lseq = NULL; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3139, %s:%d\n", __FILE__, __LINE__); *res_code = MULT_EXPR; res_ops[0] = captures[0]; { tree ops1[1], res; { tree ops2[2], res; ops2[0] = captures[4]; ops2[1] = captures[3]; code_helper tem_code = RDIV_EXPR; tree tem_ops[3] = { ops2[0], ops2[1] }; gimple_resimplify2 (lseq, &tem_code, TREE_TYPE (ops2[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops2[0]), tem_ops, lseq); if (!res) return false; ops1[0] = res; } code_helper tem_code = CFN_BUILT_IN_SQRTL; tree tem_ops[3] = { ops1[0] }; gimple_resimplify1 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[1] = res; } gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } } } break; } default:; } } break; default:; } } break; } case CFN_SQRT: { tree o30 = gimple_call_arg (def, 0); if ((o30 = do_valueize (valueize, o30))) { switch (TREE_CODE (o30)) { case SSA_NAME: if (do_valueize (valueize, o30) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (o30); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case RDIV_EXPR: { tree o40 = gimple_assign_rhs1 (def); if ((o40 = do_valueize (valueize, o40))) { tree o41 = gimple_assign_rhs2 (def); if ((o41 = do_valueize (valueize, o41))) { { /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { op0, op1, o30, o40, o41 }; /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (flag_unsafe_math_optimizations) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[1]) || !single_use (captures[2]))) lseq = NULL; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3139, %s:%d\n", __FILE__, __LINE__); *res_code = MULT_EXPR; res_ops[0] = captures[0]; { tree ops1[1], res; { tree ops2[2], res; ops2[0] = captures[4]; ops2[1] = captures[3]; code_helper tem_code = RDIV_EXPR; tree tem_ops[3] = { ops2[0], ops2[1] }; gimple_resimplify2 (lseq, &tem_code, TREE_TYPE (ops2[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops2[0]), tem_ops, lseq); if (!res) return false; ops1[0] = res; } code_helper tem_code = CFN_SQRT; tree tem_ops[3] = { ops1[0] }; gimple_resimplify1 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[1] = res; } gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } } } break; } default:; } } break; default:; } } break; } case CFN_BUILT_IN_CBRTF: { tree o30 = gimple_call_arg (def, 0); if ((o30 = do_valueize (valueize, o30))) { switch (TREE_CODE (o30)) { case SSA_NAME: if (do_valueize (valueize, o30) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (o30); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case RDIV_EXPR: { tree o40 = gimple_assign_rhs1 (def); if ((o40 = do_valueize (valueize, o40))) { tree o41 = gimple_assign_rhs2 (def); if ((o41 = do_valueize (valueize, o41))) { { /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { op0, op1, o30, o40, o41 }; /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (flag_unsafe_math_optimizations) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[1]) || !single_use (captures[2]))) lseq = NULL; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3139, %s:%d\n", __FILE__, __LINE__); *res_code = MULT_EXPR; res_ops[0] = captures[0]; { tree ops1[1], res; { tree ops2[2], res; ops2[0] = captures[4]; ops2[1] = captures[3]; code_helper tem_code = RDIV_EXPR; tree tem_ops[3] = { ops2[0], ops2[1] }; gimple_resimplify2 (lseq, &tem_code, TREE_TYPE (ops2[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops2[0]), tem_ops, lseq); if (!res) return false; ops1[0] = res; } code_helper tem_code = CFN_BUILT_IN_CBRTF; tree tem_ops[3] = { ops1[0] }; gimple_resimplify1 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[1] = res; } gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } } } break; } default:; } } break; default:; } } break; } case CFN_BUILT_IN_CBRT: { tree o30 = gimple_call_arg (def, 0); if ((o30 = do_valueize (valueize, o30))) { switch (TREE_CODE (o30)) { case SSA_NAME: if (do_valueize (valueize, o30) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (o30); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case RDIV_EXPR: { tree o40 = gimple_assign_rhs1 (def); if ((o40 = do_valueize (valueize, o40))) { tree o41 = gimple_assign_rhs2 (def); if ((o41 = do_valueize (valueize, o41))) { { /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { op0, op1, o30, o40, o41 }; /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (flag_unsafe_math_optimizations) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[1]) || !single_use (captures[2]))) lseq = NULL; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3139, %s:%d\n", __FILE__, __LINE__); *res_code = MULT_EXPR; res_ops[0] = captures[0]; { tree ops1[1], res; { tree ops2[2], res; ops2[0] = captures[4]; ops2[1] = captures[3]; code_helper tem_code = RDIV_EXPR; tree tem_ops[3] = { ops2[0], ops2[1] }; gimple_resimplify2 (lseq, &tem_code, TREE_TYPE (ops2[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops2[0]), tem_ops, lseq); if (!res) return false; ops1[0] = res; } code_helper tem_code = CFN_BUILT_IN_CBRT; tree tem_ops[3] = { ops1[0] }; gimple_resimplify1 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[1] = res; } gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } } } break; } default:; } } break; default:; } } break; } case CFN_BUILT_IN_CBRTL: { tree o30 = gimple_call_arg (def, 0); if ((o30 = do_valueize (valueize, o30))) { switch (TREE_CODE (o30)) { case SSA_NAME: if (do_valueize (valueize, o30) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (o30); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case RDIV_EXPR: { tree o40 = gimple_assign_rhs1 (def); if ((o40 = do_valueize (valueize, o40))) { tree o41 = gimple_assign_rhs2 (def); if ((o41 = do_valueize (valueize, o41))) { { /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { op0, op1, o30, o40, o41 }; /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (flag_unsafe_math_optimizations) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[1]) || !single_use (captures[2]))) lseq = NULL; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3139, %s:%d\n", __FILE__, __LINE__); *res_code = MULT_EXPR; res_ops[0] = captures[0]; { tree ops1[1], res; { tree ops2[2], res; ops2[0] = captures[4]; ops2[1] = captures[3]; code_helper tem_code = RDIV_EXPR; tree tem_ops[3] = { ops2[0], ops2[1] }; gimple_resimplify2 (lseq, &tem_code, TREE_TYPE (ops2[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops2[0]), tem_ops, lseq); if (!res) return false; ops1[0] = res; } code_helper tem_code = CFN_BUILT_IN_CBRTL; tree tem_ops[3] = { ops1[0] }; gimple_resimplify1 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[1] = res; } gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } } } break; } default:; } } break; default:; } } break; } case CFN_BUILT_IN_EXPF: { tree o30 = gimple_call_arg (def, 0); if ((o30 = do_valueize (valueize, o30))) { { /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { op0, op1, o30 }; /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (flag_unsafe_math_optimizations) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[1]))) lseq = NULL; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3145, %s:%d\n", __FILE__, __LINE__); *res_code = MULT_EXPR; res_ops[0] = captures[0]; { tree ops1[1], res; { tree ops2[1], res; ops2[0] = captures[2]; code_helper tem_code = NEGATE_EXPR; tree tem_ops[3] = { ops2[0] }; gimple_resimplify1 (lseq, &tem_code, TREE_TYPE (ops2[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops2[0]), tem_ops, lseq); if (!res) return false; ops1[0] = res; } code_helper tem_code = CFN_BUILT_IN_EXPF; tree tem_ops[3] = { ops1[0] }; gimple_resimplify1 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[1] = res; } gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } } break; } case CFN_BUILT_IN_EXP: { tree o30 = gimple_call_arg (def, 0); if ((o30 = do_valueize (valueize, o30))) { { /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { op0, op1, o30 }; /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (flag_unsafe_math_optimizations) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[1]))) lseq = NULL; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3145, %s:%d\n", __FILE__, __LINE__); *res_code = MULT_EXPR; res_ops[0] = captures[0]; { tree ops1[1], res; { tree ops2[1], res; ops2[0] = captures[2]; code_helper tem_code = NEGATE_EXPR; tree tem_ops[3] = { ops2[0] }; gimple_resimplify1 (lseq, &tem_code, TREE_TYPE (ops2[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops2[0]), tem_ops, lseq); if (!res) return false; ops1[0] = res; } code_helper tem_code = CFN_BUILT_IN_EXP; tree tem_ops[3] = { ops1[0] }; gimple_resimplify1 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[1] = res; } gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } } break; } case CFN_BUILT_IN_EXPL: { tree o30 = gimple_call_arg (def, 0); if ((o30 = do_valueize (valueize, o30))) { { /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { op0, op1, o30 }; /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (flag_unsafe_math_optimizations) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[1]))) lseq = NULL; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3145, %s:%d\n", __FILE__, __LINE__); *res_code = MULT_EXPR; res_ops[0] = captures[0]; { tree ops1[1], res; { tree ops2[1], res; ops2[0] = captures[2]; code_helper tem_code = NEGATE_EXPR; tree tem_ops[3] = { ops2[0] }; gimple_resimplify1 (lseq, &tem_code, TREE_TYPE (ops2[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops2[0]), tem_ops, lseq); if (!res) return false; ops1[0] = res; } code_helper tem_code = CFN_BUILT_IN_EXPL; tree tem_ops[3] = { ops1[0] }; gimple_resimplify1 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[1] = res; } gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } } break; } case CFN_EXP: { tree o30 = gimple_call_arg (def, 0); if ((o30 = do_valueize (valueize, o30))) { { /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { op0, op1, o30 }; /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (flag_unsafe_math_optimizations) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[1]))) lseq = NULL; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3145, %s:%d\n", __FILE__, __LINE__); *res_code = MULT_EXPR; res_ops[0] = captures[0]; { tree ops1[1], res; { tree ops2[1], res; ops2[0] = captures[2]; code_helper tem_code = NEGATE_EXPR; tree tem_ops[3] = { ops2[0] }; gimple_resimplify1 (lseq, &tem_code, TREE_TYPE (ops2[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops2[0]), tem_ops, lseq); if (!res) return false; ops1[0] = res; } code_helper tem_code = CFN_EXP; tree tem_ops[3] = { ops1[0] }; gimple_resimplify1 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[1] = res; } gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } } break; } case CFN_BUILT_IN_EXP2F: { tree o30 = gimple_call_arg (def, 0); if ((o30 = do_valueize (valueize, o30))) { { /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { op0, op1, o30 }; /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (flag_unsafe_math_optimizations) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[1]))) lseq = NULL; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3145, %s:%d\n", __FILE__, __LINE__); *res_code = MULT_EXPR; res_ops[0] = captures[0]; { tree ops1[1], res; { tree ops2[1], res; ops2[0] = captures[2]; code_helper tem_code = NEGATE_EXPR; tree tem_ops[3] = { ops2[0] }; gimple_resimplify1 (lseq, &tem_code, TREE_TYPE (ops2[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops2[0]), tem_ops, lseq); if (!res) return false; ops1[0] = res; } code_helper tem_code = CFN_BUILT_IN_EXP2F; tree tem_ops[3] = { ops1[0] }; gimple_resimplify1 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[1] = res; } gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } } break; } case CFN_BUILT_IN_EXP2: { tree o30 = gimple_call_arg (def, 0); if ((o30 = do_valueize (valueize, o30))) { { /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { op0, op1, o30 }; /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (flag_unsafe_math_optimizations) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[1]))) lseq = NULL; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3145, %s:%d\n", __FILE__, __LINE__); *res_code = MULT_EXPR; res_ops[0] = captures[0]; { tree ops1[1], res; { tree ops2[1], res; ops2[0] = captures[2]; code_helper tem_code = NEGATE_EXPR; tree tem_ops[3] = { ops2[0] }; gimple_resimplify1 (lseq, &tem_code, TREE_TYPE (ops2[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops2[0]), tem_ops, lseq); if (!res) return false; ops1[0] = res; } code_helper tem_code = CFN_BUILT_IN_EXP2; tree tem_ops[3] = { ops1[0] }; gimple_resimplify1 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[1] = res; } gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } } break; } case CFN_BUILT_IN_EXP2L: { tree o30 = gimple_call_arg (def, 0); if ((o30 = do_valueize (valueize, o30))) { { /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { op0, op1, o30 }; /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (flag_unsafe_math_optimizations) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[1]))) lseq = NULL; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3145, %s:%d\n", __FILE__, __LINE__); *res_code = MULT_EXPR; res_ops[0] = captures[0]; { tree ops1[1], res; { tree ops2[1], res; ops2[0] = captures[2]; code_helper tem_code = NEGATE_EXPR; tree tem_ops[3] = { ops2[0] }; gimple_resimplify1 (lseq, &tem_code, TREE_TYPE (ops2[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops2[0]), tem_ops, lseq); if (!res) return false; ops1[0] = res; } code_helper tem_code = CFN_BUILT_IN_EXP2L; tree tem_ops[3] = { ops1[0] }; gimple_resimplify1 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[1] = res; } gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } } break; } case CFN_EXP2: { tree o30 = gimple_call_arg (def, 0); if ((o30 = do_valueize (valueize, o30))) { { /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { op0, op1, o30 }; /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (flag_unsafe_math_optimizations) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[1]))) lseq = NULL; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3145, %s:%d\n", __FILE__, __LINE__); *res_code = MULT_EXPR; res_ops[0] = captures[0]; { tree ops1[1], res; { tree ops2[1], res; ops2[0] = captures[2]; code_helper tem_code = NEGATE_EXPR; tree tem_ops[3] = { ops2[0] }; gimple_resimplify1 (lseq, &tem_code, TREE_TYPE (ops2[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops2[0]), tem_ops, lseq); if (!res) return false; ops1[0] = res; } code_helper tem_code = CFN_EXP2; tree tem_ops[3] = { ops1[0] }; gimple_resimplify1 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[1] = res; } gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } } break; } case CFN_BUILT_IN_EXP10F: { tree o30 = gimple_call_arg (def, 0); if ((o30 = do_valueize (valueize, o30))) { { /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { op0, op1, o30 }; /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (flag_unsafe_math_optimizations) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[1]))) lseq = NULL; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3145, %s:%d\n", __FILE__, __LINE__); *res_code = MULT_EXPR; res_ops[0] = captures[0]; { tree ops1[1], res; { tree ops2[1], res; ops2[0] = captures[2]; code_helper tem_code = NEGATE_EXPR; tree tem_ops[3] = { ops2[0] }; gimple_resimplify1 (lseq, &tem_code, TREE_TYPE (ops2[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops2[0]), tem_ops, lseq); if (!res) return false; ops1[0] = res; } code_helper tem_code = CFN_BUILT_IN_EXP10F; tree tem_ops[3] = { ops1[0] }; gimple_resimplify1 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[1] = res; } gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } } break; } case CFN_BUILT_IN_EXP10: { tree o30 = gimple_call_arg (def, 0); if ((o30 = do_valueize (valueize, o30))) { { /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { op0, op1, o30 }; /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (flag_unsafe_math_optimizations) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[1]))) lseq = NULL; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3145, %s:%d\n", __FILE__, __LINE__); *res_code = MULT_EXPR; res_ops[0] = captures[0]; { tree ops1[1], res; { tree ops2[1], res; ops2[0] = captures[2]; code_helper tem_code = NEGATE_EXPR; tree tem_ops[3] = { ops2[0] }; gimple_resimplify1 (lseq, &tem_code, TREE_TYPE (ops2[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops2[0]), tem_ops, lseq); if (!res) return false; ops1[0] = res; } code_helper tem_code = CFN_BUILT_IN_EXP10; tree tem_ops[3] = { ops1[0] }; gimple_resimplify1 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[1] = res; } gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } } break; } case CFN_BUILT_IN_EXP10L: { tree o30 = gimple_call_arg (def, 0); if ((o30 = do_valueize (valueize, o30))) { { /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { op0, op1, o30 }; /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (flag_unsafe_math_optimizations) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[1]))) lseq = NULL; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3145, %s:%d\n", __FILE__, __LINE__); *res_code = MULT_EXPR; res_ops[0] = captures[0]; { tree ops1[1], res; { tree ops2[1], res; ops2[0] = captures[2]; code_helper tem_code = NEGATE_EXPR; tree tem_ops[3] = { ops2[0] }; gimple_resimplify1 (lseq, &tem_code, TREE_TYPE (ops2[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops2[0]), tem_ops, lseq); if (!res) return false; ops1[0] = res; } code_helper tem_code = CFN_BUILT_IN_EXP10L; tree tem_ops[3] = { ops1[0] }; gimple_resimplify1 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[1] = res; } gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } } break; } case CFN_EXP10: { tree o30 = gimple_call_arg (def, 0); if ((o30 = do_valueize (valueize, o30))) { { /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { op0, op1, o30 }; /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (flag_unsafe_math_optimizations) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[1]))) lseq = NULL; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3145, %s:%d\n", __FILE__, __LINE__); *res_code = MULT_EXPR; res_ops[0] = captures[0]; { tree ops1[1], res; { tree ops2[1], res; ops2[0] = captures[2]; code_helper tem_code = NEGATE_EXPR; tree tem_ops[3] = { ops2[0] }; gimple_resimplify1 (lseq, &tem_code, TREE_TYPE (ops2[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops2[0]), tem_ops, lseq); if (!res) return false; ops1[0] = res; } code_helper tem_code = CFN_EXP10; tree tem_ops[3] = { ops1[0] }; gimple_resimplify1 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[1] = res; } gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } } break; } case CFN_BUILT_IN_POW10F: { tree o30 = gimple_call_arg (def, 0); if ((o30 = do_valueize (valueize, o30))) { { /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { op0, op1, o30 }; /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (flag_unsafe_math_optimizations) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[1]))) lseq = NULL; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3145, %s:%d\n", __FILE__, __LINE__); *res_code = MULT_EXPR; res_ops[0] = captures[0]; { tree ops1[1], res; { tree ops2[1], res; ops2[0] = captures[2]; code_helper tem_code = NEGATE_EXPR; tree tem_ops[3] = { ops2[0] }; gimple_resimplify1 (lseq, &tem_code, TREE_TYPE (ops2[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops2[0]), tem_ops, lseq); if (!res) return false; ops1[0] = res; } code_helper tem_code = CFN_BUILT_IN_POW10F; tree tem_ops[3] = { ops1[0] }; gimple_resimplify1 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[1] = res; } gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } } break; } case CFN_BUILT_IN_POW10: { tree o30 = gimple_call_arg (def, 0); if ((o30 = do_valueize (valueize, o30))) { { /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { op0, op1, o30 }; /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (flag_unsafe_math_optimizations) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[1]))) lseq = NULL; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3145, %s:%d\n", __FILE__, __LINE__); *res_code = MULT_EXPR; res_ops[0] = captures[0]; { tree ops1[1], res; { tree ops2[1], res; ops2[0] = captures[2]; code_helper tem_code = NEGATE_EXPR; tree tem_ops[3] = { ops2[0] }; gimple_resimplify1 (lseq, &tem_code, TREE_TYPE (ops2[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops2[0]), tem_ops, lseq); if (!res) return false; ops1[0] = res; } code_helper tem_code = CFN_BUILT_IN_POW10; tree tem_ops[3] = { ops1[0] }; gimple_resimplify1 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[1] = res; } gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } } break; } case CFN_BUILT_IN_POW10L: { tree o30 = gimple_call_arg (def, 0); if ((o30 = do_valueize (valueize, o30))) { { /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { op0, op1, o30 }; /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (flag_unsafe_math_optimizations) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[1]))) lseq = NULL; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3145, %s:%d\n", __FILE__, __LINE__); *res_code = MULT_EXPR; res_ops[0] = captures[0]; { tree ops1[1], res; { tree ops2[1], res; ops2[0] = captures[2]; code_helper tem_code = NEGATE_EXPR; tree tem_ops[3] = { ops2[0] }; gimple_resimplify1 (lseq, &tem_code, TREE_TYPE (ops2[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops2[0]), tem_ops, lseq); if (!res) return false; ops1[0] = res; } code_helper tem_code = CFN_BUILT_IN_POW10L; tree tem_ops[3] = { ops1[0] }; gimple_resimplify1 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[1] = res; } gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } } break; } default:; } } break; default:; } switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gcall *def = dyn_cast (def_stmt)) switch (gimple_call_combined_fn (def)) { case CFN_BUILT_IN_SINF: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gcall *def = dyn_cast (def_stmt)) switch (gimple_call_combined_fn (def)) { case CFN_BUILT_IN_COSF: { tree o40 = gimple_call_arg (def, 0); if ((o40 = do_valueize (valueize, o40))) { if (o40 == o20 || (operand_equal_p (o40, o20, 0) && types_match (o40, o20))) { { /* #line 3308 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, op1 }; if (gimple_simplify_216 (res_code, res_ops, seq, valueize, type, captures, CFN_BUILT_IN_SINF, CFN_BUILT_IN_COSF, CFN_BUILT_IN_TANF)) return true; } } } break; } case CFN_BUILT_IN_TANF: { tree o40 = gimple_call_arg (def, 0); if ((o40 = do_valueize (valueize, o40))) { if (o40 == o20 || (operand_equal_p (o40, o20, 0) && types_match (o40, o20))) { { /* #line 3308 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, op1 }; if (gimple_simplify_198 (res_code, res_ops, seq, valueize, type, captures, CFN_BUILT_IN_SINF, CFN_BUILT_IN_TANF, CFN_BUILT_IN_COSF)) return true; } } } break; } default:; } } break; default:; } } break; } case CFN_BUILT_IN_SIN: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gcall *def = dyn_cast (def_stmt)) switch (gimple_call_combined_fn (def)) { case CFN_BUILT_IN_COS: { tree o40 = gimple_call_arg (def, 0); if ((o40 = do_valueize (valueize, o40))) { if (o40 == o20 || (operand_equal_p (o40, o20, 0) && types_match (o40, o20))) { { /* #line 3308 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, op1 }; if (gimple_simplify_216 (res_code, res_ops, seq, valueize, type, captures, CFN_BUILT_IN_SIN, CFN_BUILT_IN_COS, CFN_BUILT_IN_TAN)) return true; } } } break; } case CFN_BUILT_IN_TAN: { tree o40 = gimple_call_arg (def, 0); if ((o40 = do_valueize (valueize, o40))) { if (o40 == o20 || (operand_equal_p (o40, o20, 0) && types_match (o40, o20))) { { /* #line 3308 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, op1 }; if (gimple_simplify_198 (res_code, res_ops, seq, valueize, type, captures, CFN_BUILT_IN_SIN, CFN_BUILT_IN_TAN, CFN_BUILT_IN_COS)) return true; } } } break; } default:; } } break; default:; } } break; } case CFN_BUILT_IN_SINL: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gcall *def = dyn_cast (def_stmt)) switch (gimple_call_combined_fn (def)) { case CFN_BUILT_IN_COSL: { tree o40 = gimple_call_arg (def, 0); if ((o40 = do_valueize (valueize, o40))) { if (o40 == o20 || (operand_equal_p (o40, o20, 0) && types_match (o40, o20))) { { /* #line 3308 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, op1 }; if (gimple_simplify_216 (res_code, res_ops, seq, valueize, type, captures, CFN_BUILT_IN_SINL, CFN_BUILT_IN_COSL, CFN_BUILT_IN_TANL)) return true; } } } break; } case CFN_BUILT_IN_TANL: { tree o40 = gimple_call_arg (def, 0); if ((o40 = do_valueize (valueize, o40))) { if (o40 == o20 || (operand_equal_p (o40, o20, 0) && types_match (o40, o20))) { { /* #line 3308 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, op1 }; if (gimple_simplify_198 (res_code, res_ops, seq, valueize, type, captures, CFN_BUILT_IN_SINL, CFN_BUILT_IN_TANL, CFN_BUILT_IN_COSL)) return true; } } } break; } default:; } } break; default:; } } break; } case CFN_SIN: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gcall *def = dyn_cast (def_stmt)) switch (gimple_call_combined_fn (def)) { case CFN_COS: { tree o40 = gimple_call_arg (def, 0); if ((o40 = do_valueize (valueize, o40))) { if (o40 == o20 || (operand_equal_p (o40, o20, 0) && types_match (o40, o20))) { { /* #line 3308 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, op1 }; if (gimple_simplify_216 (res_code, res_ops, seq, valueize, type, captures, CFN_SIN, CFN_COS, CFN_TAN)) return true; } } } break; } case CFN_TAN: { tree o40 = gimple_call_arg (def, 0); if ((o40 = do_valueize (valueize, o40))) { if (o40 == o20 || (operand_equal_p (o40, o20, 0) && types_match (o40, o20))) { { /* #line 3308 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, op1 }; if (gimple_simplify_198 (res_code, res_ops, seq, valueize, type, captures, CFN_SIN, CFN_TAN, CFN_COS)) return true; } } } break; } default:; } } break; default:; } } break; } case CFN_BUILT_IN_COSF: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gcall *def = dyn_cast (def_stmt)) switch (gimple_call_combined_fn (def)) { case CFN_BUILT_IN_SINF: { tree o40 = gimple_call_arg (def, 0); if ((o40 = do_valueize (valueize, o40))) { if (o40 == o20 || (operand_equal_p (o40, o20, 0) && types_match (o40, o20))) { { /* #line 3308 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, op1 }; if (gimple_simplify_71 (res_code, res_ops, seq, valueize, type, captures, CFN_BUILT_IN_COSF, CFN_BUILT_IN_SINF, CFN_BUILT_IN_TANF)) return true; } } } break; } default:; } } break; default:; } } break; } case CFN_BUILT_IN_COS: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gcall *def = dyn_cast (def_stmt)) switch (gimple_call_combined_fn (def)) { case CFN_BUILT_IN_SIN: { tree o40 = gimple_call_arg (def, 0); if ((o40 = do_valueize (valueize, o40))) { if (o40 == o20 || (operand_equal_p (o40, o20, 0) && types_match (o40, o20))) { { /* #line 3308 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, op1 }; if (gimple_simplify_71 (res_code, res_ops, seq, valueize, type, captures, CFN_BUILT_IN_COS, CFN_BUILT_IN_SIN, CFN_BUILT_IN_TAN)) return true; } } } break; } default:; } } break; default:; } } break; } case CFN_BUILT_IN_COSL: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gcall *def = dyn_cast (def_stmt)) switch (gimple_call_combined_fn (def)) { case CFN_BUILT_IN_SINL: { tree o40 = gimple_call_arg (def, 0); if ((o40 = do_valueize (valueize, o40))) { if (o40 == o20 || (operand_equal_p (o40, o20, 0) && types_match (o40, o20))) { { /* #line 3308 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, op1 }; if (gimple_simplify_71 (res_code, res_ops, seq, valueize, type, captures, CFN_BUILT_IN_COSL, CFN_BUILT_IN_SINL, CFN_BUILT_IN_TANL)) return true; } } } break; } default:; } } break; default:; } } break; } case CFN_COS: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gcall *def = dyn_cast (def_stmt)) switch (gimple_call_combined_fn (def)) { case CFN_SIN: { tree o40 = gimple_call_arg (def, 0); if ((o40 = do_valueize (valueize, o40))) { if (o40 == o20 || (operand_equal_p (o40, o20, 0) && types_match (o40, o20))) { { /* #line 3308 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, op1 }; if (gimple_simplify_71 (res_code, res_ops, seq, valueize, type, captures, CFN_COS, CFN_SIN, CFN_TAN)) return true; } } } break; } default:; } } break; default:; } } break; } case CFN_BUILT_IN_TANF: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gcall *def = dyn_cast (def_stmt)) switch (gimple_call_combined_fn (def)) { case CFN_BUILT_IN_SINF: { tree o40 = gimple_call_arg (def, 0); if ((o40 = do_valueize (valueize, o40))) { if (o40 == o20 || (operand_equal_p (o40, o20, 0) && types_match (o40, o20))) { { /* #line 3308 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, op1 }; if (gimple_simplify_39 (res_code, res_ops, seq, valueize, type, captures, CFN_BUILT_IN_TANF, CFN_BUILT_IN_SINF, CFN_BUILT_IN_COSF)) return true; } } } break; } default:; } } break; default:; } } break; } case CFN_BUILT_IN_TAN: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gcall *def = dyn_cast (def_stmt)) switch (gimple_call_combined_fn (def)) { case CFN_BUILT_IN_SIN: { tree o40 = gimple_call_arg (def, 0); if ((o40 = do_valueize (valueize, o40))) { if (o40 == o20 || (operand_equal_p (o40, o20, 0) && types_match (o40, o20))) { { /* #line 3308 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, op1 }; if (gimple_simplify_39 (res_code, res_ops, seq, valueize, type, captures, CFN_BUILT_IN_TAN, CFN_BUILT_IN_SIN, CFN_BUILT_IN_COS)) return true; } } } break; } default:; } } break; default:; } } break; } case CFN_BUILT_IN_TANL: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gcall *def = dyn_cast (def_stmt)) switch (gimple_call_combined_fn (def)) { case CFN_BUILT_IN_SINL: { tree o40 = gimple_call_arg (def, 0); if ((o40 = do_valueize (valueize, o40))) { if (o40 == o20 || (operand_equal_p (o40, o20, 0) && types_match (o40, o20))) { { /* #line 3308 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, op1 }; if (gimple_simplify_39 (res_code, res_ops, seq, valueize, type, captures, CFN_BUILT_IN_TANL, CFN_BUILT_IN_SINL, CFN_BUILT_IN_COSL)) return true; } } } break; } default:; } } break; default:; } } break; } case CFN_TAN: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gcall *def = dyn_cast (def_stmt)) switch (gimple_call_combined_fn (def)) { case CFN_SIN: { tree o40 = gimple_call_arg (def, 0); if ((o40 = do_valueize (valueize, o40))) { if (o40 == o20 || (operand_equal_p (o40, o20, 0) && types_match (o40, o20))) { { /* #line 3308 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, op1 }; if (gimple_simplify_39 (res_code, res_ops, seq, valueize, type, captures, CFN_TAN, CFN_SIN, CFN_COS)) return true; } } } break; } default:; } } break; default:; } } break; } case CFN_BUILT_IN_POWF: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_call_arg (def, 1); if ((o21 = do_valueize (valueize, o21))) { switch (TREE_CODE (o21)) { case REAL_CST: { if (op1 == o20 || (operand_equal_p (op1, o20, 0) && types_match (op1, o20))) { { /* #line 3308 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, o21 }; if (gimple_simplify_129 (res_code, res_ops, seq, valueize, type, captures, CFN_BUILT_IN_POWF)) return true; } } break; } default:; } } } break; } case CFN_BUILT_IN_POW: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_call_arg (def, 1); if ((o21 = do_valueize (valueize, o21))) { switch (TREE_CODE (o21)) { case REAL_CST: { if (op1 == o20 || (operand_equal_p (op1, o20, 0) && types_match (op1, o20))) { { /* #line 3308 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, o21 }; if (gimple_simplify_129 (res_code, res_ops, seq, valueize, type, captures, CFN_BUILT_IN_POW)) return true; } } break; } default:; } } } break; } case CFN_BUILT_IN_POWL: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_call_arg (def, 1); if ((o21 = do_valueize (valueize, o21))) { switch (TREE_CODE (o21)) { case REAL_CST: { if (op1 == o20 || (operand_equal_p (op1, o20, 0) && types_match (op1, o20))) { { /* #line 3308 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, o21 }; if (gimple_simplify_129 (res_code, res_ops, seq, valueize, type, captures, CFN_BUILT_IN_POWL)) return true; } } break; } default:; } } } break; } case CFN_POW: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_call_arg (def, 1); if ((o21 = do_valueize (valueize, o21))) { switch (TREE_CODE (o21)) { case REAL_CST: { if (op1 == o20 || (operand_equal_p (op1, o20, 0) && types_match (op1, o20))) { { /* #line 3308 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, o21 }; if (gimple_simplify_129 (res_code, res_ops, seq, valueize, type, captures, CFN_POW)) return true; } } break; } default:; } } } break; } default:; } } break; default:; } switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gcall *def = dyn_cast (def_stmt)) switch (gimple_call_combined_fn (def)) { case CFN_BUILT_IN_POWF: { tree o30 = gimple_call_arg (def, 0); if ((o30 = do_valueize (valueize, o30))) { tree o31 = gimple_call_arg (def, 1); if ((o31 = do_valueize (valueize, o31))) { { /* #line 3308 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { op0, op1, o30, o31 }; if (gimple_simplify_189 (res_code, res_ops, seq, valueize, type, captures, CFN_BUILT_IN_POWF)) return true; } } } break; } case CFN_BUILT_IN_POW: { tree o30 = gimple_call_arg (def, 0); if ((o30 = do_valueize (valueize, o30))) { tree o31 = gimple_call_arg (def, 1); if ((o31 = do_valueize (valueize, o31))) { { /* #line 3308 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { op0, op1, o30, o31 }; if (gimple_simplify_189 (res_code, res_ops, seq, valueize, type, captures, CFN_BUILT_IN_POW)) return true; } } } break; } case CFN_BUILT_IN_POWL: { tree o30 = gimple_call_arg (def, 0); if ((o30 = do_valueize (valueize, o30))) { tree o31 = gimple_call_arg (def, 1); if ((o31 = do_valueize (valueize, o31))) { { /* #line 3308 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { op0, op1, o30, o31 }; if (gimple_simplify_189 (res_code, res_ops, seq, valueize, type, captures, CFN_BUILT_IN_POWL)) return true; } } } break; } case CFN_POW: { tree o30 = gimple_call_arg (def, 0); if ((o30 = do_valueize (valueize, o30))) { tree o31 = gimple_call_arg (def, 1); if ((o31 = do_valueize (valueize, o31))) { { /* #line 3308 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { op0, op1, o30, o31 }; if (gimple_simplify_189 (res_code, res_ops, seq, valueize, type, captures, CFN_POW)) return true; } } } break; } default:; } } break; default:; } return false; } static bool gimple_simplify_CEIL_MOD_EXPR (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree op0, tree op1) { if (integer_zerop (op0)) { { /* #line 300 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 }; if (gimple_simplify_163 (res_code, res_ops, seq, valueize, type, captures, CEIL_MOD_EXPR)) return true; } } if (integer_onep (op1)) { { /* #line 305 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { op0 }; if (gimple_simplify_175 (res_code, res_ops, seq, valueize, type, captures, CEIL_MOD_EXPR)) return true; } } if (integer_minus_onep (op1)) { { /* #line 309 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 }; if (gimple_simplify_17 (res_code, res_ops, seq, valueize, type, captures, CEIL_MOD_EXPR)) return true; } } if (op1 == op0 || (operand_equal_p (op1, op0, 0) && types_match (op1, op0))) { { /* #line 315 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { op0 }; if (gimple_simplify_125 (res_code, res_ops, seq, valueize, type, captures, CEIL_MOD_EXPR)) return true; } } switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case CEIL_MOD_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { if (op1 == o21 || (operand_equal_p (op1, o21, 0) && types_match (op1, o21))) { { /* #line 320 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, o21 }; if (gimple_simplify_183 (res_code, res_ops, seq, valueize, type, captures, CEIL_MOD_EXPR)) return true; } } } } break; } case MULT_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { if (tree_swap_operands_p (o20, o21)) std::swap (o20, o21); switch (TREE_CODE (o21)) { case INTEGER_CST: { switch (TREE_CODE (op1)) { case INTEGER_CST: { { /* #line 324 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 }; if (gimple_simplify_18 (res_code, res_ops, seq, valueize, type, captures, CEIL_MOD_EXPR)) return true; } break; } default:; } break; } default:; } } } break; } default:; } } break; default:; } return false; } static bool gimple_simplify_FLOOR_MOD_EXPR (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree op0, tree op1) { if (integer_zerop (op0)) { { /* #line 300 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 }; if (gimple_simplify_163 (res_code, res_ops, seq, valueize, type, captures, FLOOR_MOD_EXPR)) return true; } } if (integer_onep (op1)) { { /* #line 305 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { op0 }; if (gimple_simplify_175 (res_code, res_ops, seq, valueize, type, captures, FLOOR_MOD_EXPR)) return true; } } if (integer_minus_onep (op1)) { { /* #line 309 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 }; if (gimple_simplify_17 (res_code, res_ops, seq, valueize, type, captures, FLOOR_MOD_EXPR)) return true; } } if (op1 == op0 || (operand_equal_p (op1, op0, 0) && types_match (op1, op0))) { { /* #line 315 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { op0 }; if (gimple_simplify_125 (res_code, res_ops, seq, valueize, type, captures, FLOOR_MOD_EXPR)) return true; } } switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case FLOOR_MOD_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { if (op1 == o21 || (operand_equal_p (op1, o21, 0) && types_match (op1, o21))) { { /* #line 320 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, o21 }; if (gimple_simplify_183 (res_code, res_ops, seq, valueize, type, captures, FLOOR_MOD_EXPR)) return true; } } } } break; } case MULT_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { if (tree_swap_operands_p (o20, o21)) std::swap (o20, o21); switch (TREE_CODE (o21)) { case INTEGER_CST: { switch (TREE_CODE (op1)) { case INTEGER_CST: { { /* #line 324 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 }; if (gimple_simplify_18 (res_code, res_ops, seq, valueize, type, captures, FLOOR_MOD_EXPR)) return true; } break; } default:; } break; } default:; } } } break; } default:; } } break; default:; } switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { CASE_CONVERT: { tree o30 = gimple_assign_rhs1 (def); if ((o30 = do_valueize (valueize, o30))) { tree o30_pops[1]; if (gimple_power_of_two_cand (o30, o30_pops, valueize)) { tree o40 = o30_pops[0]; { /* #line 372 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { op0, op1, o30, o40 }; if (gimple_simplify_9 (res_code, res_ops, seq, valueize, type, captures, FLOOR_MOD_EXPR)) return true; } } } break; } default:; } } break; default:; } tree op1_pops[1]; if (gimple_power_of_two_cand (op1, op1_pops, valueize)) { tree o30 = op1_pops[0]; { /* #line 372 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { op0, op1, op1, o30 }; if (gimple_simplify_81 (res_code, res_ops, seq, valueize, type, captures, FLOOR_MOD_EXPR)) return true; } } return false; } static bool gimple_simplify_ROUND_MOD_EXPR (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree op0, tree op1) { if (integer_zerop (op0)) { { /* #line 300 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 }; if (gimple_simplify_163 (res_code, res_ops, seq, valueize, type, captures, ROUND_MOD_EXPR)) return true; } } if (integer_onep (op1)) { { /* #line 305 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { op0 }; if (gimple_simplify_175 (res_code, res_ops, seq, valueize, type, captures, ROUND_MOD_EXPR)) return true; } } if (integer_minus_onep (op1)) { { /* #line 309 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 }; if (gimple_simplify_17 (res_code, res_ops, seq, valueize, type, captures, ROUND_MOD_EXPR)) return true; } } if (op1 == op0 || (operand_equal_p (op1, op0, 0) && types_match (op1, op0))) { { /* #line 315 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { op0 }; if (gimple_simplify_125 (res_code, res_ops, seq, valueize, type, captures, ROUND_MOD_EXPR)) return true; } } switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case ROUND_MOD_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { if (op1 == o21 || (operand_equal_p (op1, o21, 0) && types_match (op1, o21))) { { /* #line 320 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, o21 }; if (gimple_simplify_183 (res_code, res_ops, seq, valueize, type, captures, ROUND_MOD_EXPR)) return true; } } } } break; } case MULT_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { if (tree_swap_operands_p (o20, o21)) std::swap (o20, o21); switch (TREE_CODE (o21)) { case INTEGER_CST: { switch (TREE_CODE (op1)) { case INTEGER_CST: { { /* #line 324 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 }; if (gimple_simplify_18 (res_code, res_ops, seq, valueize, type, captures, ROUND_MOD_EXPR)) return true; } break; } default:; } break; } default:; } } } break; } default:; } } break; default:; } return false; } static bool gimple_simplify_TRUNC_MOD_EXPR (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree op0, tree op1) { if (integer_zerop (op0)) { { /* #line 300 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 }; if (gimple_simplify_163 (res_code, res_ops, seq, valueize, type, captures, TRUNC_MOD_EXPR)) return true; } } if (integer_onep (op1)) { { /* #line 305 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { op0 }; if (gimple_simplify_175 (res_code, res_ops, seq, valueize, type, captures, TRUNC_MOD_EXPR)) return true; } } if (integer_minus_onep (op1)) { { /* #line 309 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 }; if (gimple_simplify_17 (res_code, res_ops, seq, valueize, type, captures, TRUNC_MOD_EXPR)) return true; } } if (op1 == op0 || (operand_equal_p (op1, op0, 0) && types_match (op1, op0))) { { /* #line 315 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { op0 }; if (gimple_simplify_125 (res_code, res_ops, seq, valueize, type, captures, TRUNC_MOD_EXPR)) return true; } } switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case TRUNC_MOD_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { if (op1 == o21 || (operand_equal_p (op1, o21, 0) && types_match (op1, o21))) { { /* #line 320 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, o21 }; if (gimple_simplify_183 (res_code, res_ops, seq, valueize, type, captures, TRUNC_MOD_EXPR)) return true; } } } } break; } case MULT_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { if (tree_swap_operands_p (o20, o21)) std::swap (o20, o21); switch (TREE_CODE (o21)) { case INTEGER_CST: { switch (TREE_CODE (op1)) { case INTEGER_CST: { { /* #line 324 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 }; if (gimple_simplify_18 (res_code, res_ops, seq, valueize, type, captures, TRUNC_MOD_EXPR)) return true; } break; } default:; } break; } default:; } } } break; } default:; } } break; default:; } switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { CASE_CONVERT: { tree o30 = gimple_assign_rhs1 (def); if ((o30 = do_valueize (valueize, o30))) { switch (TREE_CODE (o30)) { case SSA_NAME: if (do_valueize (valueize, o30) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (o30); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case NEGATE_EXPR: { tree o40 = gimple_assign_rhs1 (def); if ((o40 = do_valueize (valueize, o40))) { { /* #line 343 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { op0, o40 }; if (gimple_simplify_60 (res_code, res_ops, seq, valueize, type, captures)) return true; } } break; } default:; } } break; default:; } tree o30_pops[1]; if (gimple_power_of_two_cand (o30, o30_pops, valueize)) { tree o40 = o30_pops[0]; { /* #line 372 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { op0, op1, o30, o40 }; if (gimple_simplify_9 (res_code, res_ops, seq, valueize, type, captures, TRUNC_MOD_EXPR)) return true; } } } break; } case NEGATE_EXPR: { tree o30 = gimple_assign_rhs1 (def); if ((o30 = do_valueize (valueize, o30))) { { /* #line 343 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { op0, o30 }; if (gimple_simplify_60 (res_code, res_ops, seq, valueize, type, captures)) return true; } } break; } default:; } } break; case INTEGER_CST: { { /* #line 332 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 }; /* #line 332 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (TYPE_SIGN (type) == SIGNED && !TREE_OVERFLOW (captures[1]) && wi::neg_p (captures[1]) && !TYPE_OVERFLOW_TRAPS (type) && !sign_bit_p (captures[1], captures[1])) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:338, %s:%d\n", __FILE__, __LINE__); *res_code = TRUNC_MOD_EXPR; res_ops[0] = captures[0]; { tree ops1[1], res; ops1[0] = captures[1]; code_helper tem_code = NEGATE_EXPR; tree tem_ops[3] = { ops1[0] }; gimple_resimplify1 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[1] = res; } gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } break; } default:; } tree op1_pops[1]; if (gimple_power_of_two_cand (op1, op1_pops, valueize)) { tree o30 = op1_pops[0]; { /* #line 372 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { op0, op1, op1, o30 }; if (gimple_simplify_81 (res_code, res_ops, seq, valueize, type, captures, TRUNC_MOD_EXPR)) return true; } } return false; } static bool gimple_simplify_CFN_BUILT_IN_POWF (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree op0, tree op1) { switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case NEGATE_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { switch (TREE_CODE (op1)) { case REAL_CST: { { /* #line 410 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 }; combined_fn pows = CFN_BUILT_IN_POWF; { /* #line 410 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ HOST_WIDE_INT n; /* #line 411 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (real_isinteger (&TREE_REAL_CST (captures[1]), &n) && (n & 1) == 0) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:412, %s:%d\n", __FILE__, __LINE__); *res_code = pows; res_ops[0] = captures[0]; res_ops[1] = captures[1]; gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } } break; } default:; } } break; } case ABS_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { switch (TREE_CODE (op1)) { case REAL_CST: { { /* #line 410 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 }; combined_fn pows = CFN_BUILT_IN_POWF; { /* #line 410 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ HOST_WIDE_INT n; /* #line 411 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (real_isinteger (&TREE_REAL_CST (captures[1]), &n) && (n & 1) == 0) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:412, %s:%d\n", __FILE__, __LINE__); *res_code = pows; res_ops[0] = captures[0]; res_ops[1] = captures[1]; gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } } break; } default:; } } break; } default:; } else if (gcall *def = dyn_cast (def_stmt)) switch (gimple_call_combined_fn (def)) { case CFN_BUILT_IN_COPYSIGNF: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_call_arg (def, 1); if ((o21 = do_valueize (valueize, o21))) { switch (TREE_CODE (op1)) { case REAL_CST: { { /* #line 450 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 }; if (gimple_simplify_215 (res_code, res_ops, seq, valueize, type, captures, CFN_BUILT_IN_POWF, CFN_BUILT_IN_COPYSIGNF)) return true; } break; } default:; } } } break; } case CFN_BUILT_IN_EXPF: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { { /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 }; /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (flag_unsafe_math_optimizations) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3240, %s:%d\n", __FILE__, __LINE__); *res_code = CFN_BUILT_IN_EXPF; { tree ops1[2], res; ops1[0] = captures[0]; ops1[1] = captures[1]; code_helper tem_code = MULT_EXPR; tree tem_ops[3] = { ops1[0], ops1[1] }; gimple_resimplify2 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[0] = res; } gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } } break; } case CFN_BUILT_IN_EXP2F: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { { /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 }; /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (flag_unsafe_math_optimizations) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3240, %s:%d\n", __FILE__, __LINE__); *res_code = CFN_BUILT_IN_EXP2F; { tree ops1[2], res; ops1[0] = captures[0]; ops1[1] = captures[1]; code_helper tem_code = MULT_EXPR; tree tem_ops[3] = { ops1[0], ops1[1] }; gimple_resimplify2 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[0] = res; } gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } } break; } case CFN_BUILT_IN_EXP10F: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { { /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 }; /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (flag_unsafe_math_optimizations) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3240, %s:%d\n", __FILE__, __LINE__); *res_code = CFN_BUILT_IN_EXP10F; { tree ops1[2], res; ops1[0] = captures[0]; ops1[1] = captures[1]; code_helper tem_code = MULT_EXPR; tree tem_ops[3] = { ops1[0], ops1[1] }; gimple_resimplify2 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[0] = res; } gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } } break; } case CFN_BUILT_IN_POW10F: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { { /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 }; /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (flag_unsafe_math_optimizations) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3240, %s:%d\n", __FILE__, __LINE__); *res_code = CFN_BUILT_IN_POW10F; { tree ops1[2], res; ops1[0] = captures[0]; ops1[1] = captures[1]; code_helper tem_code = MULT_EXPR; tree tem_ops[3] = { ops1[0], ops1[1] }; gimple_resimplify2 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[0] = res; } gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } } break; } case CFN_BUILT_IN_SQRTF: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { { /* #line 3308 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 }; /* #line 3308 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (flag_unsafe_math_optimizations && canonicalize_math_p ()) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3400, %s:%d\n", __FILE__, __LINE__); *res_code = CFN_BUILT_IN_POWF; res_ops[0] = captures[0]; { tree ops1[2], res; ops1[0] = captures[1]; ops1[1] = build_real (type, dconsthalf); code_helper tem_code = MULT_EXPR; tree tem_ops[3] = { ops1[0], ops1[1] }; gimple_resimplify2 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[1] = res; } gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } } break; } case CFN_BUILT_IN_CBRTF: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { if (tree_expr_nonnegative_p (o20)) { { /* #line 3308 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 }; /* #line 3308 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (flag_unsafe_math_optimizations && canonicalize_math_p ()) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3404, %s:%d\n", __FILE__, __LINE__); *res_code = CFN_BUILT_IN_POWF; res_ops[0] = captures[0]; { tree ops1[2], res; ops1[0] = captures[1]; ops1[1] = build_real_truncate (type, dconst_third ()); code_helper tem_code = MULT_EXPR; tree tem_ops[3] = { ops1[0], ops1[1] }; gimple_resimplify2 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[1] = res; } gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } } } break; } case CFN_BUILT_IN_POWF: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_call_arg (def, 1); if ((o21 = do_valueize (valueize, o21))) { if (tree_expr_nonnegative_p (o20)) { { /* #line 3308 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 }; /* #line 3308 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (flag_unsafe_math_optimizations && canonicalize_math_p ()) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3408, %s:%d\n", __FILE__, __LINE__); *res_code = CFN_BUILT_IN_POWF; res_ops[0] = captures[0]; { tree ops1[2], res; ops1[0] = captures[1]; ops1[1] = captures[2]; code_helper tem_code = MULT_EXPR; tree tem_ops[3] = { ops1[0], ops1[1] }; gimple_resimplify2 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[1] = res; } gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } } } } break; } default:; } } break; default:; } if (real_onep (op0)) { { /* #line 3273 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 }; if (gimple_simplify_42 (res_code, res_ops, seq, valueize, type, captures, CFN_BUILT_IN_POWF)) return true; } } switch (TREE_CODE (op1)) { case REAL_CST: { { /* #line 3566 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 }; { /* #line 3566 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ const REAL_VALUE_TYPE *value = TREE_REAL_CST_PTR (captures[1]); REAL_VALUE_TYPE tmp; /* #line 3572 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (real_equal (value, &dconst0)) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3573, %s:%d\n", __FILE__, __LINE__); res_ops[0] = build_real (type, dconst1); *res_code = TREE_CODE (res_ops[0]); return true; } else { /* #line 3575 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (real_equal (value, &dconst1)) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3576, %s:%d\n", __FILE__, __LINE__); res_ops[0] = captures[0]; *res_code = TREE_CODE (res_ops[0]); return true; } else { /* #line 3578 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (real_equal (value, &dconstm1)) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3579, %s:%d\n", __FILE__, __LINE__); *res_code = RDIV_EXPR; res_ops[0] = build_real (type, dconst1); res_ops[1] = captures[0]; gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } else { /* #line 3581 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (flag_unsafe_math_optimizations && canonicalize_math_p () && real_equal (value, &dconsthalf)) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3584, %s:%d\n", __FILE__, __LINE__); *res_code = CFN_BUILT_IN_SQRTF; res_ops[0] = captures[0]; gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } else { /* #line 3586 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (flag_unsafe_math_optimizations && canonicalize_math_p () && (tmp = real_value_truncate (TYPE_MODE (type), dconst_third ()), real_equal (value, &tmp))) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3590, %s:%d\n", __FILE__, __LINE__); *res_code = CFN_BUILT_IN_CBRTF; res_ops[0] = captures[0]; gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } } } } } } break; } default:; } return false; } static bool gimple_simplify_CFN_BUILT_IN_POW (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree op0, tree op1) { switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case NEGATE_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { switch (TREE_CODE (op1)) { case REAL_CST: { { /* #line 410 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 }; combined_fn pows = CFN_BUILT_IN_POW; { /* #line 410 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ HOST_WIDE_INT n; /* #line 411 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (real_isinteger (&TREE_REAL_CST (captures[1]), &n) && (n & 1) == 0) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:412, %s:%d\n", __FILE__, __LINE__); *res_code = pows; res_ops[0] = captures[0]; res_ops[1] = captures[1]; gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } } break; } default:; } } break; } case ABS_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { switch (TREE_CODE (op1)) { case REAL_CST: { { /* #line 410 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 }; combined_fn pows = CFN_BUILT_IN_POW; { /* #line 410 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ HOST_WIDE_INT n; /* #line 411 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (real_isinteger (&TREE_REAL_CST (captures[1]), &n) && (n & 1) == 0) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:412, %s:%d\n", __FILE__, __LINE__); *res_code = pows; res_ops[0] = captures[0]; res_ops[1] = captures[1]; gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } } break; } default:; } } break; } default:; } else if (gcall *def = dyn_cast (def_stmt)) switch (gimple_call_combined_fn (def)) { case CFN_BUILT_IN_COPYSIGN: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_call_arg (def, 1); if ((o21 = do_valueize (valueize, o21))) { switch (TREE_CODE (op1)) { case REAL_CST: { { /* #line 450 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 }; if (gimple_simplify_215 (res_code, res_ops, seq, valueize, type, captures, CFN_BUILT_IN_POW, CFN_BUILT_IN_COPYSIGN)) return true; } break; } default:; } } } break; } case CFN_BUILT_IN_EXP: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { { /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 }; /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (flag_unsafe_math_optimizations) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3240, %s:%d\n", __FILE__, __LINE__); *res_code = CFN_BUILT_IN_EXP; { tree ops1[2], res; ops1[0] = captures[0]; ops1[1] = captures[1]; code_helper tem_code = MULT_EXPR; tree tem_ops[3] = { ops1[0], ops1[1] }; gimple_resimplify2 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[0] = res; } gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } } break; } case CFN_BUILT_IN_EXP2: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { { /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 }; /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (flag_unsafe_math_optimizations) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3240, %s:%d\n", __FILE__, __LINE__); *res_code = CFN_BUILT_IN_EXP2; { tree ops1[2], res; ops1[0] = captures[0]; ops1[1] = captures[1]; code_helper tem_code = MULT_EXPR; tree tem_ops[3] = { ops1[0], ops1[1] }; gimple_resimplify2 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[0] = res; } gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } } break; } case CFN_BUILT_IN_EXP10: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { { /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 }; /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (flag_unsafe_math_optimizations) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3240, %s:%d\n", __FILE__, __LINE__); *res_code = CFN_BUILT_IN_EXP10; { tree ops1[2], res; ops1[0] = captures[0]; ops1[1] = captures[1]; code_helper tem_code = MULT_EXPR; tree tem_ops[3] = { ops1[0], ops1[1] }; gimple_resimplify2 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[0] = res; } gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } } break; } case CFN_BUILT_IN_POW10: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { { /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 }; /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (flag_unsafe_math_optimizations) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3240, %s:%d\n", __FILE__, __LINE__); *res_code = CFN_BUILT_IN_POW10; { tree ops1[2], res; ops1[0] = captures[0]; ops1[1] = captures[1]; code_helper tem_code = MULT_EXPR; tree tem_ops[3] = { ops1[0], ops1[1] }; gimple_resimplify2 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[0] = res; } gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } } break; } case CFN_BUILT_IN_SQRT: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { { /* #line 3308 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 }; /* #line 3308 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (flag_unsafe_math_optimizations && canonicalize_math_p ()) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3400, %s:%d\n", __FILE__, __LINE__); *res_code = CFN_BUILT_IN_POW; res_ops[0] = captures[0]; { tree ops1[2], res; ops1[0] = captures[1]; ops1[1] = build_real (type, dconsthalf); code_helper tem_code = MULT_EXPR; tree tem_ops[3] = { ops1[0], ops1[1] }; gimple_resimplify2 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[1] = res; } gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } } break; } case CFN_BUILT_IN_CBRT: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { if (tree_expr_nonnegative_p (o20)) { { /* #line 3308 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 }; /* #line 3308 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (flag_unsafe_math_optimizations && canonicalize_math_p ()) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3404, %s:%d\n", __FILE__, __LINE__); *res_code = CFN_BUILT_IN_POW; res_ops[0] = captures[0]; { tree ops1[2], res; ops1[0] = captures[1]; ops1[1] = build_real_truncate (type, dconst_third ()); code_helper tem_code = MULT_EXPR; tree tem_ops[3] = { ops1[0], ops1[1] }; gimple_resimplify2 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[1] = res; } gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } } } break; } case CFN_BUILT_IN_POW: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_call_arg (def, 1); if ((o21 = do_valueize (valueize, o21))) { if (tree_expr_nonnegative_p (o20)) { { /* #line 3308 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 }; /* #line 3308 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (flag_unsafe_math_optimizations && canonicalize_math_p ()) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3408, %s:%d\n", __FILE__, __LINE__); *res_code = CFN_BUILT_IN_POW; res_ops[0] = captures[0]; { tree ops1[2], res; ops1[0] = captures[1]; ops1[1] = captures[2]; code_helper tem_code = MULT_EXPR; tree tem_ops[3] = { ops1[0], ops1[1] }; gimple_resimplify2 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[1] = res; } gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } } } } break; } default:; } } break; default:; } if (real_onep (op0)) { { /* #line 3273 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 }; if (gimple_simplify_42 (res_code, res_ops, seq, valueize, type, captures, CFN_BUILT_IN_POW)) return true; } } switch (TREE_CODE (op1)) { case REAL_CST: { { /* #line 3566 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 }; { /* #line 3566 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ const REAL_VALUE_TYPE *value = TREE_REAL_CST_PTR (captures[1]); REAL_VALUE_TYPE tmp; /* #line 3572 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (real_equal (value, &dconst0)) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3573, %s:%d\n", __FILE__, __LINE__); res_ops[0] = build_real (type, dconst1); *res_code = TREE_CODE (res_ops[0]); return true; } else { /* #line 3575 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (real_equal (value, &dconst1)) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3576, %s:%d\n", __FILE__, __LINE__); res_ops[0] = captures[0]; *res_code = TREE_CODE (res_ops[0]); return true; } else { /* #line 3578 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (real_equal (value, &dconstm1)) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3579, %s:%d\n", __FILE__, __LINE__); *res_code = RDIV_EXPR; res_ops[0] = build_real (type, dconst1); res_ops[1] = captures[0]; gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } else { /* #line 3581 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (flag_unsafe_math_optimizations && canonicalize_math_p () && real_equal (value, &dconsthalf)) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3584, %s:%d\n", __FILE__, __LINE__); *res_code = CFN_BUILT_IN_SQRT; res_ops[0] = captures[0]; gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } else { /* #line 3586 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (flag_unsafe_math_optimizations && canonicalize_math_p () && (tmp = real_value_truncate (TYPE_MODE (type), dconst_third ()), real_equal (value, &tmp))) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3590, %s:%d\n", __FILE__, __LINE__); *res_code = CFN_BUILT_IN_CBRT; res_ops[0] = captures[0]; gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } } } } } } break; } default:; } return false; } static bool gimple_simplify_CFN_BUILT_IN_POWL (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree op0, tree op1) { switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case NEGATE_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { switch (TREE_CODE (op1)) { case REAL_CST: { { /* #line 410 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 }; combined_fn pows = CFN_BUILT_IN_POWL; { /* #line 410 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ HOST_WIDE_INT n; /* #line 411 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (real_isinteger (&TREE_REAL_CST (captures[1]), &n) && (n & 1) == 0) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:412, %s:%d\n", __FILE__, __LINE__); *res_code = pows; res_ops[0] = captures[0]; res_ops[1] = captures[1]; gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } } break; } default:; } } break; } case ABS_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { switch (TREE_CODE (op1)) { case REAL_CST: { { /* #line 410 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 }; combined_fn pows = CFN_BUILT_IN_POWL; { /* #line 410 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ HOST_WIDE_INT n; /* #line 411 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (real_isinteger (&TREE_REAL_CST (captures[1]), &n) && (n & 1) == 0) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:412, %s:%d\n", __FILE__, __LINE__); *res_code = pows; res_ops[0] = captures[0]; res_ops[1] = captures[1]; gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } } break; } default:; } } break; } default:; } else if (gcall *def = dyn_cast (def_stmt)) switch (gimple_call_combined_fn (def)) { case CFN_BUILT_IN_COPYSIGNL: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_call_arg (def, 1); if ((o21 = do_valueize (valueize, o21))) { switch (TREE_CODE (op1)) { case REAL_CST: { { /* #line 450 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 }; if (gimple_simplify_215 (res_code, res_ops, seq, valueize, type, captures, CFN_BUILT_IN_POWL, CFN_BUILT_IN_COPYSIGNL)) return true; } break; } default:; } } } break; } case CFN_BUILT_IN_EXPL: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { { /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 }; /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (flag_unsafe_math_optimizations) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3240, %s:%d\n", __FILE__, __LINE__); *res_code = CFN_BUILT_IN_EXPL; { tree ops1[2], res; ops1[0] = captures[0]; ops1[1] = captures[1]; code_helper tem_code = MULT_EXPR; tree tem_ops[3] = { ops1[0], ops1[1] }; gimple_resimplify2 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[0] = res; } gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } } break; } case CFN_BUILT_IN_EXP2L: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { { /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 }; /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (flag_unsafe_math_optimizations) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3240, %s:%d\n", __FILE__, __LINE__); *res_code = CFN_BUILT_IN_EXP2L; { tree ops1[2], res; ops1[0] = captures[0]; ops1[1] = captures[1]; code_helper tem_code = MULT_EXPR; tree tem_ops[3] = { ops1[0], ops1[1] }; gimple_resimplify2 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[0] = res; } gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } } break; } case CFN_BUILT_IN_EXP10L: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { { /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 }; /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (flag_unsafe_math_optimizations) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3240, %s:%d\n", __FILE__, __LINE__); *res_code = CFN_BUILT_IN_EXP10L; { tree ops1[2], res; ops1[0] = captures[0]; ops1[1] = captures[1]; code_helper tem_code = MULT_EXPR; tree tem_ops[3] = { ops1[0], ops1[1] }; gimple_resimplify2 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[0] = res; } gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } } break; } case CFN_BUILT_IN_POW10L: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { { /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 }; /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (flag_unsafe_math_optimizations) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3240, %s:%d\n", __FILE__, __LINE__); *res_code = CFN_BUILT_IN_POW10L; { tree ops1[2], res; ops1[0] = captures[0]; ops1[1] = captures[1]; code_helper tem_code = MULT_EXPR; tree tem_ops[3] = { ops1[0], ops1[1] }; gimple_resimplify2 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[0] = res; } gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } } break; } case CFN_BUILT_IN_SQRTL: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { { /* #line 3308 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 }; /* #line 3308 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (flag_unsafe_math_optimizations && canonicalize_math_p ()) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3400, %s:%d\n", __FILE__, __LINE__); *res_code = CFN_BUILT_IN_POWL; res_ops[0] = captures[0]; { tree ops1[2], res; ops1[0] = captures[1]; ops1[1] = build_real (type, dconsthalf); code_helper tem_code = MULT_EXPR; tree tem_ops[3] = { ops1[0], ops1[1] }; gimple_resimplify2 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[1] = res; } gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } } break; } case CFN_BUILT_IN_CBRTL: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { if (tree_expr_nonnegative_p (o20)) { { /* #line 3308 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 }; /* #line 3308 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (flag_unsafe_math_optimizations && canonicalize_math_p ()) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3404, %s:%d\n", __FILE__, __LINE__); *res_code = CFN_BUILT_IN_POWL; res_ops[0] = captures[0]; { tree ops1[2], res; ops1[0] = captures[1]; ops1[1] = build_real_truncate (type, dconst_third ()); code_helper tem_code = MULT_EXPR; tree tem_ops[3] = { ops1[0], ops1[1] }; gimple_resimplify2 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[1] = res; } gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } } } break; } case CFN_BUILT_IN_POWL: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_call_arg (def, 1); if ((o21 = do_valueize (valueize, o21))) { if (tree_expr_nonnegative_p (o20)) { { /* #line 3308 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 }; /* #line 3308 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (flag_unsafe_math_optimizations && canonicalize_math_p ()) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3408, %s:%d\n", __FILE__, __LINE__); *res_code = CFN_BUILT_IN_POWL; res_ops[0] = captures[0]; { tree ops1[2], res; ops1[0] = captures[1]; ops1[1] = captures[2]; code_helper tem_code = MULT_EXPR; tree tem_ops[3] = { ops1[0], ops1[1] }; gimple_resimplify2 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[1] = res; } gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } } } } break; } default:; } } break; default:; } if (real_onep (op0)) { { /* #line 3273 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 }; if (gimple_simplify_42 (res_code, res_ops, seq, valueize, type, captures, CFN_BUILT_IN_POWL)) return true; } } switch (TREE_CODE (op1)) { case REAL_CST: { { /* #line 3566 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 }; { /* #line 3566 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ const REAL_VALUE_TYPE *value = TREE_REAL_CST_PTR (captures[1]); REAL_VALUE_TYPE tmp; /* #line 3572 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (real_equal (value, &dconst0)) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3573, %s:%d\n", __FILE__, __LINE__); res_ops[0] = build_real (type, dconst1); *res_code = TREE_CODE (res_ops[0]); return true; } else { /* #line 3575 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (real_equal (value, &dconst1)) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3576, %s:%d\n", __FILE__, __LINE__); res_ops[0] = captures[0]; *res_code = TREE_CODE (res_ops[0]); return true; } else { /* #line 3578 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (real_equal (value, &dconstm1)) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3579, %s:%d\n", __FILE__, __LINE__); *res_code = RDIV_EXPR; res_ops[0] = build_real (type, dconst1); res_ops[1] = captures[0]; gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } else { /* #line 3581 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (flag_unsafe_math_optimizations && canonicalize_math_p () && real_equal (value, &dconsthalf)) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3584, %s:%d\n", __FILE__, __LINE__); *res_code = CFN_BUILT_IN_SQRTL; res_ops[0] = captures[0]; gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } else { /* #line 3586 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (flag_unsafe_math_optimizations && canonicalize_math_p () && (tmp = real_value_truncate (TYPE_MODE (type), dconst_third ()), real_equal (value, &tmp))) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3590, %s:%d\n", __FILE__, __LINE__); *res_code = CFN_BUILT_IN_CBRTL; res_ops[0] = captures[0]; gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } } } } } } break; } default:; } return false; } static bool gimple_simplify_CFN_POW (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree op0, tree op1) { switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case NEGATE_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { switch (TREE_CODE (op1)) { case REAL_CST: { { /* #line 410 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 }; combined_fn pows = CFN_POW; { /* #line 410 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ HOST_WIDE_INT n; /* #line 411 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (real_isinteger (&TREE_REAL_CST (captures[1]), &n) && (n & 1) == 0) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:412, %s:%d\n", __FILE__, __LINE__); *res_code = pows; res_ops[0] = captures[0]; res_ops[1] = captures[1]; gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } } break; } default:; } } break; } case ABS_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { switch (TREE_CODE (op1)) { case REAL_CST: { { /* #line 410 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 }; combined_fn pows = CFN_POW; { /* #line 410 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ HOST_WIDE_INT n; /* #line 411 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (real_isinteger (&TREE_REAL_CST (captures[1]), &n) && (n & 1) == 0) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:412, %s:%d\n", __FILE__, __LINE__); *res_code = pows; res_ops[0] = captures[0]; res_ops[1] = captures[1]; gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } } break; } default:; } } break; } default:; } else if (gcall *def = dyn_cast (def_stmt)) switch (gimple_call_combined_fn (def)) { case CFN_COPYSIGN: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_call_arg (def, 1); if ((o21 = do_valueize (valueize, o21))) { switch (TREE_CODE (op1)) { case REAL_CST: { { /* #line 450 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 }; if (gimple_simplify_215 (res_code, res_ops, seq, valueize, type, captures, CFN_POW, CFN_COPYSIGN)) return true; } break; } default:; } } } break; } case CFN_EXP: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { { /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 }; /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (flag_unsafe_math_optimizations) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3240, %s:%d\n", __FILE__, __LINE__); *res_code = CFN_EXP; { tree ops1[2], res; ops1[0] = captures[0]; ops1[1] = captures[1]; code_helper tem_code = MULT_EXPR; tree tem_ops[3] = { ops1[0], ops1[1] }; gimple_resimplify2 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[0] = res; } gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } } break; } case CFN_EXP2: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { { /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 }; /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (flag_unsafe_math_optimizations) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3240, %s:%d\n", __FILE__, __LINE__); *res_code = CFN_EXP2; { tree ops1[2], res; ops1[0] = captures[0]; ops1[1] = captures[1]; code_helper tem_code = MULT_EXPR; tree tem_ops[3] = { ops1[0], ops1[1] }; gimple_resimplify2 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[0] = res; } gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } } break; } case CFN_EXP10: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { { /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 }; /* #line 3116 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (flag_unsafe_math_optimizations) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3240, %s:%d\n", __FILE__, __LINE__); *res_code = CFN_EXP10; { tree ops1[2], res; ops1[0] = captures[0]; ops1[1] = captures[1]; code_helper tem_code = MULT_EXPR; tree tem_ops[3] = { ops1[0], ops1[1] }; gimple_resimplify2 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[0] = res; } gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } } break; } case CFN_SQRT: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { { /* #line 3308 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 }; /* #line 3308 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (flag_unsafe_math_optimizations && canonicalize_math_p ()) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3400, %s:%d\n", __FILE__, __LINE__); *res_code = CFN_POW; res_ops[0] = captures[0]; { tree ops1[2], res; ops1[0] = captures[1]; ops1[1] = build_real (type, dconsthalf); code_helper tem_code = MULT_EXPR; tree tem_ops[3] = { ops1[0], ops1[1] }; gimple_resimplify2 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[1] = res; } gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } } break; } case CFN_POW: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_call_arg (def, 1); if ((o21 = do_valueize (valueize, o21))) { if (tree_expr_nonnegative_p (o20)) { { /* #line 3308 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 }; /* #line 3308 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (flag_unsafe_math_optimizations && canonicalize_math_p ()) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3408, %s:%d\n", __FILE__, __LINE__); *res_code = CFN_POW; res_ops[0] = captures[0]; { tree ops1[2], res; ops1[0] = captures[1]; ops1[1] = captures[2]; code_helper tem_code = MULT_EXPR; tree tem_ops[3] = { ops1[0], ops1[1] }; gimple_resimplify2 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[1] = res; } gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } } } } break; } default:; } } break; default:; } if (real_onep (op0)) { { /* #line 3273 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 }; if (gimple_simplify_42 (res_code, res_ops, seq, valueize, type, captures, CFN_POW)) return true; } } return false; } static bool gimple_simplify_CFN_BUILT_IN_POWIF (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree op0, tree op1) { switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case NEGATE_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { switch (TREE_CODE (op1)) { case INTEGER_CST: { { /* #line 417 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 }; /* #line 417 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (wi::bit_and (captures[1], 1) == 0) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:418, %s:%d\n", __FILE__, __LINE__); *res_code = CFN_BUILT_IN_POWIF; res_ops[0] = captures[0]; res_ops[1] = captures[1]; gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } break; } default:; } } break; } case ABS_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { switch (TREE_CODE (op1)) { case INTEGER_CST: { { /* #line 417 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 }; /* #line 417 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (wi::bit_and (captures[1], 1) == 0) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:418, %s:%d\n", __FILE__, __LINE__); *res_code = CFN_BUILT_IN_POWIF; res_ops[0] = captures[0]; res_ops[1] = captures[1]; gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } break; } default:; } } break; } default:; } else if (gcall *def = dyn_cast (def_stmt)) switch (gimple_call_combined_fn (def)) { case CFN_BUILT_IN_COPYSIGNF: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_call_arg (def, 1); if ((o21 = do_valueize (valueize, o21))) { switch (TREE_CODE (op1)) { case INTEGER_CST: { { /* #line 458 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 }; /* #line 458 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (wi::bit_and (captures[2], 1) == 0) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:459, %s:%d\n", __FILE__, __LINE__); *res_code = CFN_BUILT_IN_POWIF; res_ops[0] = captures[0]; res_ops[1] = captures[2]; gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } break; } default:; } } } break; } default:; } } break; default:; } if (real_onep (op0)) { { /* #line 3595 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 }; if (gimple_simplify_98 (res_code, res_ops, seq, valueize, type, captures)) return true; } } switch (TREE_CODE (op1)) { case INTEGER_CST: { { /* #line 3601 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 }; /* #line 3601 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (wi::eq_p (captures[1], 0)) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3602, %s:%d\n", __FILE__, __LINE__); res_ops[0] = build_real (type, dconst1); *res_code = TREE_CODE (res_ops[0]); return true; } else { /* #line 3604 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (wi::eq_p (captures[1], 1)) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3605, %s:%d\n", __FILE__, __LINE__); res_ops[0] = captures[0]; *res_code = TREE_CODE (res_ops[0]); return true; } else { /* #line 3607 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (wi::eq_p (captures[1], -1)) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3608, %s:%d\n", __FILE__, __LINE__); *res_code = RDIV_EXPR; res_ops[0] = build_real (type, dconst1); res_ops[1] = captures[0]; gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } } } break; } default:; } return false; } static bool gimple_simplify_CFN_BUILT_IN_POWI (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree op0, tree op1) { switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case NEGATE_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { switch (TREE_CODE (op1)) { case INTEGER_CST: { { /* #line 417 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 }; /* #line 417 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (wi::bit_and (captures[1], 1) == 0) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:418, %s:%d\n", __FILE__, __LINE__); *res_code = CFN_BUILT_IN_POWI; res_ops[0] = captures[0]; res_ops[1] = captures[1]; gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } break; } default:; } } break; } case ABS_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { switch (TREE_CODE (op1)) { case INTEGER_CST: { { /* #line 417 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 }; /* #line 417 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (wi::bit_and (captures[1], 1) == 0) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:418, %s:%d\n", __FILE__, __LINE__); *res_code = CFN_BUILT_IN_POWI; res_ops[0] = captures[0]; res_ops[1] = captures[1]; gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } break; } default:; } } break; } default:; } else if (gcall *def = dyn_cast (def_stmt)) switch (gimple_call_combined_fn (def)) { case CFN_BUILT_IN_COPYSIGN: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_call_arg (def, 1); if ((o21 = do_valueize (valueize, o21))) { switch (TREE_CODE (op1)) { case INTEGER_CST: { { /* #line 458 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 }; /* #line 458 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (wi::bit_and (captures[2], 1) == 0) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:459, %s:%d\n", __FILE__, __LINE__); *res_code = CFN_BUILT_IN_POWI; res_ops[0] = captures[0]; res_ops[1] = captures[2]; gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } break; } default:; } } } break; } default:; } } break; default:; } if (real_onep (op0)) { { /* #line 3595 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 }; if (gimple_simplify_98 (res_code, res_ops, seq, valueize, type, captures)) return true; } } switch (TREE_CODE (op1)) { case INTEGER_CST: { { /* #line 3601 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 }; /* #line 3601 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (wi::eq_p (captures[1], 0)) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3602, %s:%d\n", __FILE__, __LINE__); res_ops[0] = build_real (type, dconst1); *res_code = TREE_CODE (res_ops[0]); return true; } else { /* #line 3604 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (wi::eq_p (captures[1], 1)) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3605, %s:%d\n", __FILE__, __LINE__); res_ops[0] = captures[0]; *res_code = TREE_CODE (res_ops[0]); return true; } else { /* #line 3607 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (wi::eq_p (captures[1], -1)) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3608, %s:%d\n", __FILE__, __LINE__); *res_code = RDIV_EXPR; res_ops[0] = build_real (type, dconst1); res_ops[1] = captures[0]; gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } } } break; } default:; } return false; } static bool gimple_simplify_CFN_BUILT_IN_POWIL (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree op0, tree op1) { switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case NEGATE_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { switch (TREE_CODE (op1)) { case INTEGER_CST: { { /* #line 417 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 }; /* #line 417 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (wi::bit_and (captures[1], 1) == 0) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:418, %s:%d\n", __FILE__, __LINE__); *res_code = CFN_BUILT_IN_POWIL; res_ops[0] = captures[0]; res_ops[1] = captures[1]; gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } break; } default:; } } break; } case ABS_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { switch (TREE_CODE (op1)) { case INTEGER_CST: { { /* #line 417 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 }; /* #line 417 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (wi::bit_and (captures[1], 1) == 0) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:418, %s:%d\n", __FILE__, __LINE__); *res_code = CFN_BUILT_IN_POWIL; res_ops[0] = captures[0]; res_ops[1] = captures[1]; gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } break; } default:; } } break; } default:; } else if (gcall *def = dyn_cast (def_stmt)) switch (gimple_call_combined_fn (def)) { case CFN_BUILT_IN_COPYSIGNL: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_call_arg (def, 1); if ((o21 = do_valueize (valueize, o21))) { switch (TREE_CODE (op1)) { case INTEGER_CST: { { /* #line 458 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 }; /* #line 458 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (wi::bit_and (captures[2], 1) == 0) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:459, %s:%d\n", __FILE__, __LINE__); *res_code = CFN_BUILT_IN_POWIL; res_ops[0] = captures[0]; res_ops[1] = captures[2]; gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } break; } default:; } } } break; } default:; } } break; default:; } if (real_onep (op0)) { { /* #line 3595 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 }; if (gimple_simplify_98 (res_code, res_ops, seq, valueize, type, captures)) return true; } } switch (TREE_CODE (op1)) { case INTEGER_CST: { { /* #line 3601 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 }; /* #line 3601 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (wi::eq_p (captures[1], 0)) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3602, %s:%d\n", __FILE__, __LINE__); res_ops[0] = build_real (type, dconst1); *res_code = TREE_CODE (res_ops[0]); return true; } else { /* #line 3604 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (wi::eq_p (captures[1], 1)) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3605, %s:%d\n", __FILE__, __LINE__); res_ops[0] = captures[0]; *res_code = TREE_CODE (res_ops[0]); return true; } else { /* #line 3607 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (wi::eq_p (captures[1], -1)) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3608, %s:%d\n", __FILE__, __LINE__); *res_code = RDIV_EXPR; res_ops[0] = build_real (type, dconst1); res_ops[1] = captures[0]; gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } } } break; } default:; } return false; } static bool gimple_simplify_CFN_BUILT_IN_HYPOTF (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree op0, tree op1) { switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case NEGATE_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { { /* #line 423 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 }; gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:423, %s:%d\n", __FILE__, __LINE__); *res_code = CFN_BUILT_IN_HYPOTF; res_ops[0] = captures[0]; res_ops[1] = captures[1]; gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } break; } case ABS_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { { /* #line 423 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 }; gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:423, %s:%d\n", __FILE__, __LINE__); *res_code = CFN_BUILT_IN_HYPOTF; res_ops[0] = captures[0]; res_ops[1] = captures[1]; gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } break; } default:; } } break; default:; } switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case NEGATE_EXPR: { tree o30 = gimple_assign_rhs1 (def); if ((o30 = do_valueize (valueize, o30))) { { /* #line 426 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { op0, o30 }; gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:426, %s:%d\n", __FILE__, __LINE__); *res_code = CFN_BUILT_IN_HYPOTF; res_ops[0] = captures[0]; res_ops[1] = captures[1]; gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } break; } case ABS_EXPR: { tree o30 = gimple_assign_rhs1 (def); if ((o30 = do_valueize (valueize, o30))) { { /* #line 426 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { op0, o30 }; gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:426, %s:%d\n", __FILE__, __LINE__); *res_code = CFN_BUILT_IN_HYPOTF; res_ops[0] = captures[0]; res_ops[1] = captures[1]; gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } break; } default:; } } break; default:; } switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gcall *def = dyn_cast (def_stmt)) switch (gimple_call_combined_fn (def)) { case CFN_BUILT_IN_COPYSIGNF: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_call_arg (def, 1); if ((o21 = do_valueize (valueize, o21))) { { /* #line 466 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 }; gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:466, %s:%d\n", __FILE__, __LINE__); *res_code = CFN_BUILT_IN_HYPOTF; res_ops[0] = captures[0]; res_ops[1] = captures[2]; gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } } break; } default:; } } break; default:; } switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gcall *def = dyn_cast (def_stmt)) switch (gimple_call_combined_fn (def)) { case CFN_BUILT_IN_COPYSIGNF: { tree o30 = gimple_call_arg (def, 0); if ((o30 = do_valueize (valueize, o30))) { tree o31 = gimple_call_arg (def, 1); if ((o31 = do_valueize (valueize, o31))) { { /* #line 470 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { op0, o30, o31 }; gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:470, %s:%d\n", __FILE__, __LINE__); *res_code = CFN_BUILT_IN_HYPOTF; res_ops[0] = captures[0]; res_ops[1] = captures[1]; gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } } break; } default:; } } break; default:; } if (real_zerop (op1)) { { /* #line 3268 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 }; gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3268, %s:%d\n", __FILE__, __LINE__); *res_code = ABS_EXPR; res_ops[0] = captures[0]; gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } if (real_zerop (op0)) { { /* #line 3268 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { op1, op0 }; gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3268, %s:%d\n", __FILE__, __LINE__); *res_code = ABS_EXPR; res_ops[0] = captures[0]; gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } if (op1 == op0 || (operand_equal_p (op1, op0, 0) && types_match (op1, op0))) { { /* #line 3308 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { op0 }; /* #line 3308 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (flag_unsafe_math_optimizations && canonicalize_math_p ()) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3418, %s:%d\n", __FILE__, __LINE__); *res_code = MULT_EXPR; { tree ops1[1], res; ops1[0] = captures[0]; code_helper tem_code = ABS_EXPR; tree tem_ops[3] = { ops1[0] }; gimple_resimplify1 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[0] = res; } res_ops[1] = build_real_truncate (type, dconst_sqrt2 ()); gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } } return false; } static bool gimple_simplify_CFN_BUILT_IN_HYPOT (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree op0, tree op1) { switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case NEGATE_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { { /* #line 423 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 }; gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:423, %s:%d\n", __FILE__, __LINE__); *res_code = CFN_BUILT_IN_HYPOT; res_ops[0] = captures[0]; res_ops[1] = captures[1]; gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } break; } case ABS_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { { /* #line 423 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 }; gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:423, %s:%d\n", __FILE__, __LINE__); *res_code = CFN_BUILT_IN_HYPOT; res_ops[0] = captures[0]; res_ops[1] = captures[1]; gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } break; } default:; } } break; default:; } switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case NEGATE_EXPR: { tree o30 = gimple_assign_rhs1 (def); if ((o30 = do_valueize (valueize, o30))) { { /* #line 426 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { op0, o30 }; gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:426, %s:%d\n", __FILE__, __LINE__); *res_code = CFN_BUILT_IN_HYPOT; res_ops[0] = captures[0]; res_ops[1] = captures[1]; gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } break; } case ABS_EXPR: { tree o30 = gimple_assign_rhs1 (def); if ((o30 = do_valueize (valueize, o30))) { { /* #line 426 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { op0, o30 }; gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:426, %s:%d\n", __FILE__, __LINE__); *res_code = CFN_BUILT_IN_HYPOT; res_ops[0] = captures[0]; res_ops[1] = captures[1]; gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } break; } default:; } } break; default:; } switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gcall *def = dyn_cast (def_stmt)) switch (gimple_call_combined_fn (def)) { case CFN_BUILT_IN_COPYSIGN: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_call_arg (def, 1); if ((o21 = do_valueize (valueize, o21))) { { /* #line 466 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 }; gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:466, %s:%d\n", __FILE__, __LINE__); *res_code = CFN_BUILT_IN_HYPOT; res_ops[0] = captures[0]; res_ops[1] = captures[2]; gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } } break; } default:; } } break; default:; } switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gcall *def = dyn_cast (def_stmt)) switch (gimple_call_combined_fn (def)) { case CFN_BUILT_IN_COPYSIGN: { tree o30 = gimple_call_arg (def, 0); if ((o30 = do_valueize (valueize, o30))) { tree o31 = gimple_call_arg (def, 1); if ((o31 = do_valueize (valueize, o31))) { { /* #line 470 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { op0, o30, o31 }; gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:470, %s:%d\n", __FILE__, __LINE__); *res_code = CFN_BUILT_IN_HYPOT; res_ops[0] = captures[0]; res_ops[1] = captures[1]; gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } } break; } default:; } } break; default:; } if (real_zerop (op1)) { { /* #line 3268 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 }; gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3268, %s:%d\n", __FILE__, __LINE__); *res_code = ABS_EXPR; res_ops[0] = captures[0]; gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } if (real_zerop (op0)) { { /* #line 3268 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { op1, op0 }; gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3268, %s:%d\n", __FILE__, __LINE__); *res_code = ABS_EXPR; res_ops[0] = captures[0]; gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } if (op1 == op0 || (operand_equal_p (op1, op0, 0) && types_match (op1, op0))) { { /* #line 3308 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { op0 }; /* #line 3308 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (flag_unsafe_math_optimizations && canonicalize_math_p ()) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3418, %s:%d\n", __FILE__, __LINE__); *res_code = MULT_EXPR; { tree ops1[1], res; ops1[0] = captures[0]; code_helper tem_code = ABS_EXPR; tree tem_ops[3] = { ops1[0] }; gimple_resimplify1 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[0] = res; } res_ops[1] = build_real_truncate (type, dconst_sqrt2 ()); gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } } return false; } static bool gimple_simplify_CFN_BUILT_IN_HYPOTL (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree op0, tree op1) { switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case NEGATE_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { { /* #line 423 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 }; gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:423, %s:%d\n", __FILE__, __LINE__); *res_code = CFN_BUILT_IN_HYPOTL; res_ops[0] = captures[0]; res_ops[1] = captures[1]; gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } break; } case ABS_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { { /* #line 423 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 }; gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:423, %s:%d\n", __FILE__, __LINE__); *res_code = CFN_BUILT_IN_HYPOTL; res_ops[0] = captures[0]; res_ops[1] = captures[1]; gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } break; } default:; } } break; default:; } switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case NEGATE_EXPR: { tree o30 = gimple_assign_rhs1 (def); if ((o30 = do_valueize (valueize, o30))) { { /* #line 426 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { op0, o30 }; gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:426, %s:%d\n", __FILE__, __LINE__); *res_code = CFN_BUILT_IN_HYPOTL; res_ops[0] = captures[0]; res_ops[1] = captures[1]; gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } break; } case ABS_EXPR: { tree o30 = gimple_assign_rhs1 (def); if ((o30 = do_valueize (valueize, o30))) { { /* #line 426 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { op0, o30 }; gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:426, %s:%d\n", __FILE__, __LINE__); *res_code = CFN_BUILT_IN_HYPOTL; res_ops[0] = captures[0]; res_ops[1] = captures[1]; gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } break; } default:; } } break; default:; } switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gcall *def = dyn_cast (def_stmt)) switch (gimple_call_combined_fn (def)) { case CFN_BUILT_IN_COPYSIGNL: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_call_arg (def, 1); if ((o21 = do_valueize (valueize, o21))) { { /* #line 466 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 }; gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:466, %s:%d\n", __FILE__, __LINE__); *res_code = CFN_BUILT_IN_HYPOTL; res_ops[0] = captures[0]; res_ops[1] = captures[2]; gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } } break; } default:; } } break; default:; } switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gcall *def = dyn_cast (def_stmt)) switch (gimple_call_combined_fn (def)) { case CFN_BUILT_IN_COPYSIGNL: { tree o30 = gimple_call_arg (def, 0); if ((o30 = do_valueize (valueize, o30))) { tree o31 = gimple_call_arg (def, 1); if ((o31 = do_valueize (valueize, o31))) { { /* #line 470 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { op0, o30, o31 }; gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:470, %s:%d\n", __FILE__, __LINE__); *res_code = CFN_BUILT_IN_HYPOTL; res_ops[0] = captures[0]; res_ops[1] = captures[1]; gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } } break; } default:; } } break; default:; } if (real_zerop (op1)) { { /* #line 3268 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 }; gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3268, %s:%d\n", __FILE__, __LINE__); *res_code = ABS_EXPR; res_ops[0] = captures[0]; gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } if (real_zerop (op0)) { { /* #line 3268 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { op1, op0 }; gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3268, %s:%d\n", __FILE__, __LINE__); *res_code = ABS_EXPR; res_ops[0] = captures[0]; gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } if (op1 == op0 || (operand_equal_p (op1, op0, 0) && types_match (op1, op0))) { { /* #line 3308 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { op0 }; /* #line 3308 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (flag_unsafe_math_optimizations && canonicalize_math_p ()) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3418, %s:%d\n", __FILE__, __LINE__); *res_code = MULT_EXPR; { tree ops1[1], res; ops1[0] = captures[0]; code_helper tem_code = ABS_EXPR; tree tem_ops[3] = { ops1[0] }; gimple_resimplify1 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[0] = res; } res_ops[1] = build_real_truncate (type, dconst_sqrt2 ()); gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } } return false; } static bool gimple_simplify_CFN_BUILT_IN_COPYSIGNF (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree op0, tree op1) { switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case NEGATE_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { { /* #line 431 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 }; combined_fn copysigns = CFN_BUILT_IN_COPYSIGNF; gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:431, %s:%d\n", __FILE__, __LINE__); *res_code = copysigns; res_ops[0] = captures[0]; res_ops[1] = captures[1]; gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } break; } case ABS_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { { /* #line 431 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 }; combined_fn copysigns = CFN_BUILT_IN_COPYSIGNF; gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:431, %s:%d\n", __FILE__, __LINE__); *res_code = copysigns; res_ops[0] = captures[0]; res_ops[1] = captures[1]; gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } break; } default:; } } break; default:; } switch (TREE_CODE (op1)) { case REAL_CST: { { /* #line 476 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 }; if (gimple_simplify_145 (res_code, res_ops, seq, valueize, type, captures, CFN_BUILT_IN_COPYSIGNF)) return true; } break; } default:; } switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gcall *def = dyn_cast (def_stmt)) switch (gimple_call_combined_fn (def)) { case CFN_BUILT_IN_COPYSIGNF: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_call_arg (def, 1); if ((o21 = do_valueize (valueize, o21))) { { /* #line 484 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 }; if (gimple_simplify_27 (res_code, res_ops, seq, valueize, type, captures, CFN_BUILT_IN_COPYSIGNF)) return true; } } } break; } default:; } } break; default:; } if (op1 == op0 || (operand_equal_p (op1, op0, 0) && types_match (op1, op0))) { { /* #line 3278 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { op0 }; if (gimple_simplify_126 (res_code, res_ops, seq, valueize, type, captures, CFN_BUILT_IN_COPYSIGNF)) return true; } } if (tree_expr_nonnegative_p (op1)) { { /* #line 3283 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 }; if (gimple_simplify_211 (res_code, res_ops, seq, valueize, type, captures, CFN_BUILT_IN_COPYSIGNF)) return true; } } return false; } static bool gimple_simplify_CFN_BUILT_IN_COPYSIGN (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree op0, tree op1) { switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case NEGATE_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { { /* #line 431 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 }; combined_fn copysigns = CFN_BUILT_IN_COPYSIGN; gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:431, %s:%d\n", __FILE__, __LINE__); *res_code = copysigns; res_ops[0] = captures[0]; res_ops[1] = captures[1]; gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } break; } case ABS_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { { /* #line 431 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 }; combined_fn copysigns = CFN_BUILT_IN_COPYSIGN; gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:431, %s:%d\n", __FILE__, __LINE__); *res_code = copysigns; res_ops[0] = captures[0]; res_ops[1] = captures[1]; gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } break; } default:; } } break; default:; } switch (TREE_CODE (op1)) { case REAL_CST: { { /* #line 476 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 }; if (gimple_simplify_145 (res_code, res_ops, seq, valueize, type, captures, CFN_BUILT_IN_COPYSIGN)) return true; } break; } default:; } switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gcall *def = dyn_cast (def_stmt)) switch (gimple_call_combined_fn (def)) { case CFN_BUILT_IN_COPYSIGN: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_call_arg (def, 1); if ((o21 = do_valueize (valueize, o21))) { { /* #line 484 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 }; if (gimple_simplify_27 (res_code, res_ops, seq, valueize, type, captures, CFN_BUILT_IN_COPYSIGN)) return true; } } } break; } default:; } } break; default:; } if (op1 == op0 || (operand_equal_p (op1, op0, 0) && types_match (op1, op0))) { { /* #line 3278 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { op0 }; if (gimple_simplify_126 (res_code, res_ops, seq, valueize, type, captures, CFN_BUILT_IN_COPYSIGN)) return true; } } if (tree_expr_nonnegative_p (op1)) { { /* #line 3283 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 }; if (gimple_simplify_211 (res_code, res_ops, seq, valueize, type, captures, CFN_BUILT_IN_COPYSIGN)) return true; } } return false; } static bool gimple_simplify_CFN_BUILT_IN_COPYSIGNL (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree op0, tree op1) { switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case NEGATE_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { { /* #line 431 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 }; combined_fn copysigns = CFN_BUILT_IN_COPYSIGNL; gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:431, %s:%d\n", __FILE__, __LINE__); *res_code = copysigns; res_ops[0] = captures[0]; res_ops[1] = captures[1]; gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } break; } case ABS_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { { /* #line 431 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 }; combined_fn copysigns = CFN_BUILT_IN_COPYSIGNL; gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:431, %s:%d\n", __FILE__, __LINE__); *res_code = copysigns; res_ops[0] = captures[0]; res_ops[1] = captures[1]; gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } break; } default:; } } break; default:; } switch (TREE_CODE (op1)) { case REAL_CST: { { /* #line 476 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 }; if (gimple_simplify_145 (res_code, res_ops, seq, valueize, type, captures, CFN_BUILT_IN_COPYSIGNL)) return true; } break; } default:; } switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gcall *def = dyn_cast (def_stmt)) switch (gimple_call_combined_fn (def)) { case CFN_BUILT_IN_COPYSIGNL: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_call_arg (def, 1); if ((o21 = do_valueize (valueize, o21))) { { /* #line 484 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 }; if (gimple_simplify_27 (res_code, res_ops, seq, valueize, type, captures, CFN_BUILT_IN_COPYSIGNL)) return true; } } } break; } default:; } } break; default:; } if (op1 == op0 || (operand_equal_p (op1, op0, 0) && types_match (op1, op0))) { { /* #line 3278 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { op0 }; if (gimple_simplify_126 (res_code, res_ops, seq, valueize, type, captures, CFN_BUILT_IN_COPYSIGNL)) return true; } } if (tree_expr_nonnegative_p (op1)) { { /* #line 3283 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 }; if (gimple_simplify_211 (res_code, res_ops, seq, valueize, type, captures, CFN_BUILT_IN_COPYSIGNL)) return true; } } return false; } static bool gimple_simplify_CFN_COPYSIGN (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree op0, tree op1) { switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case NEGATE_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { { /* #line 431 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 }; combined_fn copysigns = CFN_COPYSIGN; gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:431, %s:%d\n", __FILE__, __LINE__); *res_code = copysigns; res_ops[0] = captures[0]; res_ops[1] = captures[1]; gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } break; } case ABS_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { { /* #line 431 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 }; combined_fn copysigns = CFN_COPYSIGN; gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:431, %s:%d\n", __FILE__, __LINE__); *res_code = copysigns; res_ops[0] = captures[0]; res_ops[1] = captures[1]; gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } break; } default:; } } break; default:; } switch (TREE_CODE (op1)) { case REAL_CST: { { /* #line 476 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 }; if (gimple_simplify_145 (res_code, res_ops, seq, valueize, type, captures, CFN_COPYSIGN)) return true; } break; } default:; } switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gcall *def = dyn_cast (def_stmt)) switch (gimple_call_combined_fn (def)) { case CFN_COPYSIGN: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_call_arg (def, 1); if ((o21 = do_valueize (valueize, o21))) { { /* #line 484 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 }; if (gimple_simplify_27 (res_code, res_ops, seq, valueize, type, captures, CFN_COPYSIGN)) return true; } } } break; } default:; } } break; default:; } if (op1 == op0 || (operand_equal_p (op1, op0, 0) && types_match (op1, op0))) { { /* #line 3278 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { op0 }; if (gimple_simplify_126 (res_code, res_ops, seq, valueize, type, captures, CFN_COPYSIGN)) return true; } } if (tree_expr_nonnegative_p (op1)) { { /* #line 3283 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 }; if (gimple_simplify_211 (res_code, res_ops, seq, valueize, type, captures, CFN_COPYSIGN)) return true; } } return false; } static bool gimple_simplify_BIT_AND_EXPR (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree op0, tree op1) { switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { CASE_CONVERT: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { CASE_CONVERT: { tree o40 = gimple_assign_rhs1 (def); if ((o40 = do_valueize (valueize, o40))) { switch (TREE_CODE (o40)) { case SSA_NAME: if (do_valueize (valueize, o40) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (o40); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case BIT_NOT_EXPR: { tree o50 = gimple_assign_rhs1 (def); if ((o50 = do_valueize (valueize, o50))) { if (o50 == o20 || (operand_equal_p (o50, o20, 0) && types_match (o50, o20))) { { /* #line 534 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; if (gimple_simplify_58 (res_code, res_ops, seq, valueize, type, captures)) return true; } } } break; } default:; } } break; default:; } } break; } default:; } } break; default:; } switch (TREE_CODE (o20)) { case SSA_NAME: if (do_valueize (valueize, o20) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (o20); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case BIT_NOT_EXPR: { tree o30 = gimple_assign_rhs1 (def); if ((o30 = do_valueize (valueize, o30))) { switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { CASE_CONVERT: { tree o50 = gimple_assign_rhs1 (def); if ((o50 = do_valueize (valueize, o50))) { if (o50 == o30 || (operand_equal_p (o50, o30, 0) && types_match (o50, o30))) { { /* #line 534 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o30 }; if (gimple_simplify_58 (res_code, res_ops, seq, valueize, type, captures)) return true; } } } break; } default:; } } break; default:; } } break; } default:; } } break; default:; } } break; } default:; } } break; default:; } switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case BIT_NOT_EXPR: { tree o30 = gimple_assign_rhs1 (def); if ((o30 = do_valueize (valueize, o30))) { if (o30 == op0 || (operand_equal_p (o30, op0, 0) && types_match (o30, op0))) { { /* #line 534 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { op0 }; if (gimple_simplify_58 (res_code, res_ops, seq, valueize, type, captures)) return true; } } } break; } default:; } } break; default:; } switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case BIT_NOT_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { if (op1 == o20 || (operand_equal_p (op1, o20, 0) && types_match (op1, o20))) { { /* #line 534 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; if (gimple_simplify_58 (res_code, res_ops, seq, valueize, type, captures)) return true; } } } break; } default:; } } break; default:; } switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case PLUS_EXPR: { tree o30 = gimple_assign_rhs1 (def); if ((o30 = do_valueize (valueize, o30))) { tree o31 = gimple_assign_rhs2 (def); if ((o31 = do_valueize (valueize, o31))) { if (tree_swap_operands_p (o30, o31)) std::swap (o30, o31); switch (TREE_CODE (o30)) { case SSA_NAME: if (do_valueize (valueize, o30) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (o30); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case LSHIFT_EXPR: { tree o40 = gimple_assign_rhs1 (def); if ((o40 = do_valueize (valueize, o40))) { tree o41 = gimple_assign_rhs2 (def); if ((o41 = do_valueize (valueize, o41))) { if (integer_onep (o40)) { if (integer_minus_onep (o31)) { { /* #line 539 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { op0, op1, o30, o41 }; /* #line 539 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (TYPE_UNSIGNED (type)) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[1]) || !single_use (captures[2]))) lseq = NULL; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:540, %s:%d\n", __FILE__, __LINE__); *res_code = BIT_AND_EXPR; res_ops[0] = captures[0]; { tree ops1[1], res; { tree ops2[2], res; ops2[0] = build_all_ones_cst (type); ops2[1] = captures[3]; code_helper tem_code = LSHIFT_EXPR; tree tem_ops[3] = { ops2[0], ops2[1] }; gimple_resimplify2 (lseq, &tem_code, TREE_TYPE (ops2[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops2[0]), tem_ops, lseq); if (!res) return false; ops1[0] = res; } code_helper tem_code = BIT_NOT_EXPR; tree tem_ops[3] = { ops1[0] }; gimple_resimplify1 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[1] = res; } gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } } } } } break; } default:; } } break; default:; } } } break; } default:; } } break; default:; } switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case PLUS_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { if (tree_swap_operands_p (o20, o21)) std::swap (o20, o21); switch (TREE_CODE (o20)) { case SSA_NAME: if (do_valueize (valueize, o20) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (o20); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case LSHIFT_EXPR: { tree o30 = gimple_assign_rhs1 (def); if ((o30 = do_valueize (valueize, o30))) { tree o31 = gimple_assign_rhs2 (def); if ((o31 = do_valueize (valueize, o31))) { if (integer_onep (o30)) { if (integer_minus_onep (o21)) { { /* #line 539 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { op1, op0, o20, o31 }; /* #line 539 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (TYPE_UNSIGNED (type)) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[1]) || !single_use (captures[2]))) lseq = NULL; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:540, %s:%d\n", __FILE__, __LINE__); *res_code = BIT_AND_EXPR; res_ops[0] = captures[0]; { tree ops1[1], res; { tree ops2[2], res; ops2[0] = build_all_ones_cst (type); ops2[1] = captures[3]; code_helper tem_code = LSHIFT_EXPR; tree tem_ops[3] = { ops2[0], ops2[1] }; gimple_resimplify2 (lseq, &tem_code, TREE_TYPE (ops2[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops2[0]), tem_ops, lseq); if (!res) return false; ops1[0] = res; } code_helper tem_code = BIT_NOT_EXPR; tree tem_ops[3] = { ops1[0] }; gimple_resimplify1 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[1] = res; } gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } } } } } break; } default:; } } break; default:; } } } break; } case EQ_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { if (tree_swap_operands_p (o20, o21)) std::swap (o20, o21); if (integer_zerop (o21)) { switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case EQ_EXPR: { tree o50 = gimple_assign_rhs1 (def); if ((o50 = do_valueize (valueize, o50))) { tree o51 = gimple_assign_rhs2 (def); if ((o51 = do_valueize (valueize, o51))) { if (tree_swap_operands_p (o50, o51)) std::swap (o50, o51); if (integer_zerop (o51)) { { /* #line 549 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, o50 }; if (gimple_simplify_41 (res_code, res_ops, seq, valueize, type, captures, BIT_AND_EXPR, EQ_EXPR)) return true; } } } } break; } default:; } } break; default:; } } } } break; } case BIT_NOT_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { switch (TREE_CODE (o20)) { case SSA_NAME: { switch (TREE_CODE (op1)) { case INTEGER_CST: { { /* #line 586 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 }; /* #line 586 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0])) && (get_nonzero_bits (captures[0]) & wi::bit_not (captures[1])) == 0) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:588, %s:%d\n", __FILE__, __LINE__); *res_code = BIT_XOR_EXPR; res_ops[0] = captures[0]; res_ops[1] = captures[1]; gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } break; } default:; } break; } default:; } } break; } default:; } } break; default:; } if (integer_zerop (op1)) { { /* #line 616 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 }; gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:616, %s:%d\n", __FILE__, __LINE__); res_ops[0] = captures[1]; *res_code = TREE_CODE (res_ops[0]); return true; } } if (integer_all_onesp (op1)) { { /* #line 639 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { op0 }; gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:639, %s:%d\n", __FILE__, __LINE__); res_ops[0] = captures[0]; *res_code = TREE_CODE (res_ops[0]); return true; } } if (op1 == op0 || (operand_equal_p (op1, op0, 0) && types_match (op1, op0))) { { /* #line 645 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { op0 }; if (gimple_simplify_67 (res_code, res_ops, seq, valueize, type, captures, BIT_AND_EXPR)) return true; } } switch (TREE_CODE (op0)) { case SSA_NAME: { switch (TREE_CODE (op1)) { case INTEGER_CST: { { /* #line 651 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 }; /* #line 651 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0])) && (get_nonzero_bits (captures[0]) & wi::bit_not (captures[1])) == 0) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:653, %s:%d\n", __FILE__, __LINE__); res_ops[0] = captures[0]; *res_code = TREE_CODE (res_ops[0]); return true; } } break; } default:; } break; } default:; } switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case BIT_NOT_EXPR: { tree o30 = gimple_assign_rhs1 (def); if ((o30 = do_valueize (valueize, o30))) { switch (TREE_CODE (o30)) { case SSA_NAME: if (do_valueize (valueize, o30) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (o30); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case BIT_AND_EXPR: { tree o40 = gimple_assign_rhs1 (def); if ((o40 = do_valueize (valueize, o40))) { tree o41 = gimple_assign_rhs2 (def); if ((o41 = do_valueize (valueize, o41))) { if (tree_swap_operands_p (o40, o41)) std::swap (o40, o41); if (o40 == op0 || (operand_equal_p (o40, op0, 0) && types_match (o40, op0))) { { /* #line 666 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { op0, o30, o41 }; if (gimple_simplify_72 (res_code, res_ops, seq, valueize, type, captures, BIT_AND_EXPR)) return true; } } if (o41 == op0 || (operand_equal_p (o41, op0, 0) && types_match (o41, op0))) { { /* #line 666 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { op0, o30, o40 }; if (gimple_simplify_72 (res_code, res_ops, seq, valueize, type, captures, BIT_AND_EXPR)) return true; } } } } break; } default:; } } break; default:; } } break; } default:; } } break; default:; } switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case BIT_NOT_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { switch (TREE_CODE (o20)) { case SSA_NAME: if (do_valueize (valueize, o20) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (o20); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case BIT_AND_EXPR: { tree o30 = gimple_assign_rhs1 (def); if ((o30 = do_valueize (valueize, o30))) { tree o31 = gimple_assign_rhs2 (def); if ((o31 = do_valueize (valueize, o31))) { if (tree_swap_operands_p (o30, o31)) std::swap (o30, o31); if (op1 == o30 || (operand_equal_p (op1, o30, 0) && types_match (op1, o30))) { { /* #line 666 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o30, o20, o31 }; if (gimple_simplify_72 (res_code, res_ops, seq, valueize, type, captures, BIT_AND_EXPR)) return true; } } if (op1 == o31 || (operand_equal_p (op1, o31, 0) && types_match (op1, o31))) { { /* #line 666 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o31, o20, o30 }; if (gimple_simplify_72 (res_code, res_ops, seq, valueize, type, captures, BIT_AND_EXPR)) return true; } } } } break; } default:; } } break; default:; } switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case BIT_IOR_EXPR: { tree o40 = gimple_assign_rhs1 (def); if ((o40 = do_valueize (valueize, o40))) { tree o41 = gimple_assign_rhs2 (def); if ((o41 = do_valueize (valueize, o41))) { if (tree_swap_operands_p (o40, o41)) std::swap (o40, o41); if (o40 == o20 || (operand_equal_p (o40, o20, 0) && types_match (o40, o20))) { { /* #line 674 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o20, o41, op0 }; if (gimple_simplify_73 (res_code, res_ops, seq, valueize, type, captures, BIT_AND_EXPR, BIT_IOR_EXPR)) return true; } } if (o41 == o20 || (operand_equal_p (o41, o20, 0) && types_match (o41, o20))) { { /* #line 674 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o20, o40, op0 }; if (gimple_simplify_73 (res_code, res_ops, seq, valueize, type, captures, BIT_AND_EXPR, BIT_IOR_EXPR)) return true; } } } } break; } default:; } } break; default:; } switch (TREE_CODE (o20)) { case SSA_NAME: if (do_valueize (valueize, o20) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (o20); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case BIT_AND_EXPR: { tree o30 = gimple_assign_rhs1 (def); if ((o30 = do_valueize (valueize, o30))) { tree o31 = gimple_assign_rhs2 (def); if ((o31 = do_valueize (valueize, o31))) { if (tree_swap_operands_p (o30, o31)) std::swap (o30, o31); switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case BIT_IOR_EXPR: { tree o60 = gimple_assign_rhs1 (def); if ((o60 = do_valueize (valueize, o60))) { tree o61 = gimple_assign_rhs2 (def); if ((o61 = do_valueize (valueize, o61))) { if (tree_swap_operands_p (o60, o61)) std::swap (o60, o61); if (o60 == o30 || (operand_equal_p (o60, o30, 0) && types_match (o60, o30))) { if (o61 == o31 || (operand_equal_p (o61, o31, 0) && types_match (o61, o31))) { { /* #line 726 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o30, o31 }; if (gimple_simplify_83 (res_code, res_ops, seq, valueize, type, captures)) return true; } } } } } break; } default:; } } break; default:; } } } break; } default:; } } break; default:; } switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { CASE_CONVERT: { tree o40 = gimple_assign_rhs1 (def); if ((o40 = do_valueize (valueize, o40))) { switch (TREE_CODE (o40)) { case SSA_NAME: if (do_valueize (valueize, o40) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (o40); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case BIT_NOT_EXPR: { tree o50 = gimple_assign_rhs1 (def); if ((o50 = do_valueize (valueize, o50))) { { /* #line 739 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, o50 }; if (gimple_simplify_16 (res_code, res_ops, seq, valueize, type, captures, BIT_AND_EXPR, BIT_IOR_EXPR)) return true; } } break; } default:; } } break; default:; } } break; } case BIT_NOT_EXPR: { tree o40 = gimple_assign_rhs1 (def); if ((o40 = do_valueize (valueize, o40))) { { /* #line 739 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, o40 }; if (gimple_simplify_16 (res_code, res_ops, seq, valueize, type, captures, BIT_AND_EXPR, BIT_IOR_EXPR)) return true; } } break; } default:; } } break; default:; } } break; } case BIT_IOR_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { if (tree_swap_operands_p (o20, o21)) std::swap (o20, o21); switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case BIT_NOT_EXPR: { tree o50 = gimple_assign_rhs1 (def); if ((o50 = do_valueize (valueize, o50))) { if (o50 == o20 || (operand_equal_p (o50, o20, 0) && types_match (o50, o20))) { { /* #line 674 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 }; if (gimple_simplify_74 (res_code, res_ops, seq, valueize, type, captures, BIT_AND_EXPR, BIT_IOR_EXPR)) return true; } } if (o50 == o21 || (operand_equal_p (o50, o21, 0) && types_match (o50, o21))) { { /* #line 674 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o21, o20, op1 }; if (gimple_simplify_74 (res_code, res_ops, seq, valueize, type, captures, BIT_AND_EXPR, BIT_IOR_EXPR)) return true; } } switch (TREE_CODE (o50)) { case SSA_NAME: if (do_valueize (valueize, o50) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (o50); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case BIT_AND_EXPR: { tree o60 = gimple_assign_rhs1 (def); if ((o60 = do_valueize (valueize, o60))) { tree o61 = gimple_assign_rhs2 (def); if ((o61 = do_valueize (valueize, o61))) { if (tree_swap_operands_p (o60, o61)) std::swap (o60, o61); if (o60 == o20 || (operand_equal_p (o60, o20, 0) && types_match (o60, o20))) { if (o61 == o21 || (operand_equal_p (o61, o21, 0) && types_match (o61, o21))) { { /* #line 726 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 }; if (gimple_simplify_83 (res_code, res_ops, seq, valueize, type, captures)) return true; } } } } } break; } default:; } } break; default:; } } break; } case BIT_XOR_EXPR: { tree o50 = gimple_assign_rhs1 (def); if ((o50 = do_valueize (valueize, o50))) { tree o51 = gimple_assign_rhs2 (def); if ((o51 = do_valueize (valueize, o51))) { if (tree_swap_operands_p (o50, o51)) std::swap (o50, o51); if (o50 == o21 || (operand_equal_p (o50, o21, 0) && types_match (o50, o21))) { switch (TREE_CODE (o51)) { case SSA_NAME: if (do_valueize (valueize, o51) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (o51); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case BIT_NOT_EXPR: { tree o70 = gimple_assign_rhs1 (def); if ((o70 = do_valueize (valueize, o70))) { if (o70 == o20 || (operand_equal_p (o70, o20, 0) && types_match (o70, o20))) { { /* #line 731 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 }; if (gimple_simplify_84 (res_code, res_ops, seq, valueize, type, captures)) return true; } } } break; } default:; } } break; default:; } } switch (TREE_CODE (o50)) { case SSA_NAME: if (do_valueize (valueize, o50) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (o50); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case BIT_NOT_EXPR: { tree o60 = gimple_assign_rhs1 (def); if ((o60 = do_valueize (valueize, o60))) { if (o60 == o20 || (operand_equal_p (o60, o20, 0) && types_match (o60, o20))) { if (o51 == o21 || (operand_equal_p (o51, o21, 0) && types_match (o51, o21))) { { /* #line 731 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 }; if (gimple_simplify_84 (res_code, res_ops, seq, valueize, type, captures)) return true; } } } if (o60 == o21 || (operand_equal_p (o60, o21, 0) && types_match (o60, o21))) { if (o51 == o20 || (operand_equal_p (o51, o20, 0) && types_match (o51, o20))) { { /* #line 731 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o21, o20 }; if (gimple_simplify_84 (res_code, res_ops, seq, valueize, type, captures)) return true; } } } } break; } default:; } } break; default:; } if (o50 == o20 || (operand_equal_p (o50, o20, 0) && types_match (o50, o20))) { switch (TREE_CODE (o51)) { case SSA_NAME: if (do_valueize (valueize, o51) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (o51); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case BIT_NOT_EXPR: { tree o70 = gimple_assign_rhs1 (def); if ((o70 = do_valueize (valueize, o70))) { if (o70 == o21 || (operand_equal_p (o70, o21, 0) && types_match (o70, o21))) { { /* #line 731 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o21, o20 }; if (gimple_simplify_84 (res_code, res_ops, seq, valueize, type, captures)) return true; } } } break; } default:; } } break; default:; } } } } break; } default:; } } break; default:; } } } break; } case BIT_XOR_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { if (tree_swap_operands_p (o20, o21)) std::swap (o20, o21); switch (TREE_CODE (o21)) { case SSA_NAME: if (do_valueize (valueize, o21) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (o21); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case BIT_NOT_EXPR: { tree o40 = gimple_assign_rhs1 (def); if ((o40 = do_valueize (valueize, o40))) { switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case BIT_IOR_EXPR: { tree o60 = gimple_assign_rhs1 (def); if ((o60 = do_valueize (valueize, o60))) { tree o61 = gimple_assign_rhs2 (def); if ((o61 = do_valueize (valueize, o61))) { if (tree_swap_operands_p (o60, o61)) std::swap (o60, o61); if (o60 == o40 || (operand_equal_p (o60, o40, 0) && types_match (o60, o40))) { if (o61 == o20 || (operand_equal_p (o61, o20, 0) && types_match (o61, o20))) { { /* #line 731 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o40, o20 }; if (gimple_simplify_84 (res_code, res_ops, seq, valueize, type, captures)) return true; } } } } } break; } default:; } } break; default:; } } break; } default:; } } break; default:; } switch (TREE_CODE (o20)) { case SSA_NAME: if (do_valueize (valueize, o20) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (o20); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case BIT_NOT_EXPR: { tree o30 = gimple_assign_rhs1 (def); if ((o30 = do_valueize (valueize, o30))) { switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case BIT_IOR_EXPR: { tree o60 = gimple_assign_rhs1 (def); if ((o60 = do_valueize (valueize, o60))) { tree o61 = gimple_assign_rhs2 (def); if ((o61 = do_valueize (valueize, o61))) { if (tree_swap_operands_p (o60, o61)) std::swap (o60, o61); if (o60 == o30 || (operand_equal_p (o60, o30, 0) && types_match (o60, o30))) { if (o61 == o21 || (operand_equal_p (o61, o21, 0) && types_match (o61, o21))) { { /* #line 731 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o30, o21 }; if (gimple_simplify_84 (res_code, res_ops, seq, valueize, type, captures)) return true; } } } } } break; } default:; } } break; default:; } } break; } default:; } } break; default:; } switch (TREE_CODE (o21)) { case SSA_NAME: if (do_valueize (valueize, o21) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (o21); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case BIT_NOT_EXPR: { tree o40 = gimple_assign_rhs1 (def); if ((o40 = do_valueize (valueize, o40))) { switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case BIT_IOR_EXPR: { tree o60 = gimple_assign_rhs1 (def); if ((o60 = do_valueize (valueize, o60))) { tree o61 = gimple_assign_rhs2 (def); if ((o61 = do_valueize (valueize, o61))) { if (tree_swap_operands_p (o60, o61)) std::swap (o60, o61); if (o60 == o20 || (operand_equal_p (o60, o20, 0) && types_match (o60, o20))) { if (o61 == o40 || (operand_equal_p (o61, o40, 0) && types_match (o61, o40))) { { /* #line 731 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o40, o20 }; if (gimple_simplify_84 (res_code, res_ops, seq, valueize, type, captures)) return true; } } } } } break; } default:; } } break; default:; } } break; } default:; } } break; default:; } switch (TREE_CODE (o20)) { case SSA_NAME: if (do_valueize (valueize, o20) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (o20); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case BIT_NOT_EXPR: { tree o30 = gimple_assign_rhs1 (def); if ((o30 = do_valueize (valueize, o30))) { switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case BIT_IOR_EXPR: { tree o60 = gimple_assign_rhs1 (def); if ((o60 = do_valueize (valueize, o60))) { tree o61 = gimple_assign_rhs2 (def); if ((o61 = do_valueize (valueize, o61))) { if (tree_swap_operands_p (o60, o61)) std::swap (o60, o61); if (o60 == o21 || (operand_equal_p (o60, o21, 0) && types_match (o60, o21))) { if (o61 == o30 || (operand_equal_p (o61, o30, 0) && types_match (o61, o30))) { { /* #line 731 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o30, o21 }; if (gimple_simplify_84 (res_code, res_ops, seq, valueize, type, captures)) return true; } } } } } break; } default:; } } break; default:; } } break; } default:; } } break; default:; } if (op1 == o21 || (operand_equal_p (op1, o21, 0) && types_match (op1, o21))) { { /* #line 780 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 }; if (gimple_simplify_97 (res_code, res_ops, seq, valueize, type, captures, BIT_AND_EXPR, BIT_XOR_EXPR)) return true; } } if (op1 == o20 || (operand_equal_p (op1, o20, 0) && types_match (op1, o20))) { { /* #line 780 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o21, o20 }; if (gimple_simplify_97 (res_code, res_ops, seq, valueize, type, captures, BIT_AND_EXPR, BIT_XOR_EXPR)) return true; } } } } break; } CASE_CONVERT: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { switch (TREE_CODE (o20)) { case SSA_NAME: if (do_valueize (valueize, o20) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (o20); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case BIT_NOT_EXPR: { tree o30 = gimple_assign_rhs1 (def); if ((o30 = do_valueize (valueize, o30))) { switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { CASE_CONVERT: { tree o50 = gimple_assign_rhs1 (def); if ((o50 = do_valueize (valueize, o50))) { switch (TREE_CODE (o50)) { case SSA_NAME: if (do_valueize (valueize, o50) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (o50); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case BIT_NOT_EXPR: { tree o60 = gimple_assign_rhs1 (def); if ((o60 = do_valueize (valueize, o60))) { { /* #line 739 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o30, o60 }; if (gimple_simplify_16 (res_code, res_ops, seq, valueize, type, captures, BIT_AND_EXPR, BIT_IOR_EXPR)) return true; } } break; } default:; } } break; default:; } } break; } case BIT_NOT_EXPR: { tree o50 = gimple_assign_rhs1 (def); if ((o50 = do_valueize (valueize, o50))) { { /* #line 739 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o30, o50 }; if (gimple_simplify_16 (res_code, res_ops, seq, valueize, type, captures, BIT_AND_EXPR, BIT_IOR_EXPR)) return true; } } break; } default:; } } break; default:; } } break; } default:; } } break; default:; } } break; } default:; } } break; default:; } switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case BIT_XOR_EXPR: { tree o30 = gimple_assign_rhs1 (def); if ((o30 = do_valueize (valueize, o30))) { tree o31 = gimple_assign_rhs2 (def); if ((o31 = do_valueize (valueize, o31))) { if (tree_swap_operands_p (o30, o31)) std::swap (o30, o31); if (o31 == op0 || (operand_equal_p (o31, op0, 0) && types_match (o31, op0))) { { /* #line 780 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o30, op0 }; if (gimple_simplify_97 (res_code, res_ops, seq, valueize, type, captures, BIT_AND_EXPR, BIT_XOR_EXPR)) return true; } } if (o30 == op0 || (operand_equal_p (o30, op0, 0) && types_match (o30, op0))) { { /* #line 780 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o31, op0 }; if (gimple_simplify_97 (res_code, res_ops, seq, valueize, type, captures, BIT_AND_EXPR, BIT_XOR_EXPR)) return true; } } } } break; } default:; } } break; default:; } switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { CASE_CONVERT: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { switch (TREE_CODE (o20)) { case SSA_NAME: if (do_valueize (valueize, o20) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (o20); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case BIT_IOR_EXPR: { tree o30 = gimple_assign_rhs1 (def); if ((o30 = do_valueize (valueize, o30))) { tree o31 = gimple_assign_rhs2 (def); if ((o31 = do_valueize (valueize, o31))) { if (tree_swap_operands_p (o30, o31)) std::swap (o30, o31); switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { CASE_CONVERT: { tree o60 = gimple_assign_rhs1 (def); if ((o60 = do_valueize (valueize, o60))) { switch (TREE_CODE (o60)) { case SSA_NAME: if (do_valueize (valueize, o60) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (o60); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case BIT_IOR_EXPR: { tree o70 = gimple_assign_rhs1 (def); if ((o70 = do_valueize (valueize, o70))) { tree o71 = gimple_assign_rhs2 (def); if ((o71 = do_valueize (valueize, o71))) { if (tree_swap_operands_p (o70, o71)) std::swap (o70, o71); if (o70 == o30 || operand_equal_p (o70, o30, 0)) { { /* #line 792 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { o30, o31, o71, o30 }; if (gimple_simplify_112 (res_code, res_ops, seq, valueize, type, captures, BIT_AND_EXPR, BIT_IOR_EXPR)) return true; } } if (o71 == o30 || operand_equal_p (o71, o30, 0)) { { /* #line 792 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { o30, o31, o70, o30 }; if (gimple_simplify_112 (res_code, res_ops, seq, valueize, type, captures, BIT_AND_EXPR, BIT_IOR_EXPR)) return true; } } if (o70 == o31 || operand_equal_p (o70, o31, 0)) { { /* #line 792 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { o31, o30, o71, o31 }; if (gimple_simplify_112 (res_code, res_ops, seq, valueize, type, captures, BIT_AND_EXPR, BIT_IOR_EXPR)) return true; } } if (o71 == o31 || operand_equal_p (o71, o31, 0)) { { /* #line 792 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { o31, o30, o70, o31 }; if (gimple_simplify_112 (res_code, res_ops, seq, valueize, type, captures, BIT_AND_EXPR, BIT_IOR_EXPR)) return true; } } } } break; } default:; } } break; default:; } } break; } default:; } } break; default:; } } } break; } case BIT_AND_EXPR: { tree o30 = gimple_assign_rhs1 (def); if ((o30 = do_valueize (valueize, o30))) { tree o31 = gimple_assign_rhs2 (def); if ((o31 = do_valueize (valueize, o31))) { if (tree_swap_operands_p (o30, o31)) std::swap (o30, o31); switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { CASE_CONVERT: { tree o60 = gimple_assign_rhs1 (def); if ((o60 = do_valueize (valueize, o60))) { if (o60 == o31 || operand_equal_p (o60, o31, 0)) { { /* #line 802 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { op0, o30, o31, o31 }; if (gimple_simplify_63 (res_code, res_ops, seq, valueize, type, captures, BIT_AND_EXPR)) return true; } } if (o60 == o30 || operand_equal_p (o60, o30, 0)) { { /* #line 802 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { op0, o31, o30, o30 }; if (gimple_simplify_63 (res_code, res_ops, seq, valueize, type, captures, BIT_AND_EXPR)) return true; } } } break; } default:; } } break; default:; } } } break; } default:; } } break; default:; } switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { CASE_CONVERT: { tree o40 = gimple_assign_rhs1 (def); if ((o40 = do_valueize (valueize, o40))) { switch (TREE_CODE (o40)) { case SSA_NAME: if (do_valueize (valueize, o40) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (o40); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case BIT_AND_EXPR: { tree o50 = gimple_assign_rhs1 (def); if ((o50 = do_valueize (valueize, o50))) { tree o51 = gimple_assign_rhs2 (def); if ((o51 = do_valueize (valueize, o51))) { if (tree_swap_operands_p (o50, o51)) std::swap (o50, o51); if (o51 == o20 || operand_equal_p (o51, o20, 0)) { { /* #line 802 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { op1, o50, o51, o20 }; if (gimple_simplify_33 (res_code, res_ops, seq, valueize, type, captures, BIT_AND_EXPR)) return true; } } if (o50 == o20 || operand_equal_p (o50, o20, 0)) { { /* #line 802 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { op1, o51, o50, o20 }; if (gimple_simplify_33 (res_code, res_ops, seq, valueize, type, captures, BIT_AND_EXPR)) return true; } } } } break; } default:; } } break; default:; } } break; } default:; } } break; default:; } switch (TREE_CODE (o20)) { case SSA_NAME: if (do_valueize (valueize, o20) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (o20); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case BIT_AND_EXPR: { tree o30 = gimple_assign_rhs1 (def); if ((o30 = do_valueize (valueize, o30))) { tree o31 = gimple_assign_rhs2 (def); if ((o31 = do_valueize (valueize, o31))) { if (tree_swap_operands_p (o30, o31)) std::swap (o30, o31); if (op1 == o31 || operand_equal_p (op1, o31, 0)) { { /* #line 802 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { op0, o30, o31, o31 }; if (gimple_simplify_63 (res_code, res_ops, seq, valueize, type, captures, BIT_AND_EXPR)) return true; } } if (op1 == o30 || operand_equal_p (op1, o30, 0)) { { /* #line 802 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { op0, o31, o30, o30 }; if (gimple_simplify_63 (res_code, res_ops, seq, valueize, type, captures, BIT_AND_EXPR)) return true; } } } } break; } default:; } } break; default:; } } break; } case BIT_IOR_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { if (tree_swap_operands_p (o20, o21)) std::swap (o20, o21); switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case BIT_IOR_EXPR: { tree o50 = gimple_assign_rhs1 (def); if ((o50 = do_valueize (valueize, o50))) { tree o51 = gimple_assign_rhs2 (def); if ((o51 = do_valueize (valueize, o51))) { if (tree_swap_operands_p (o50, o51)) std::swap (o50, o51); if (o50 == o20 || operand_equal_p (o50, o20, 0)) { { /* #line 792 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { o20, o21, o51, o20 }; if (gimple_simplify_112 (res_code, res_ops, seq, valueize, type, captures, BIT_AND_EXPR, BIT_IOR_EXPR)) return true; } } if (o51 == o20 || operand_equal_p (o51, o20, 0)) { { /* #line 792 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { o20, o21, o50, o20 }; if (gimple_simplify_112 (res_code, res_ops, seq, valueize, type, captures, BIT_AND_EXPR, BIT_IOR_EXPR)) return true; } } if (o50 == o21 || operand_equal_p (o50, o21, 0)) { { /* #line 792 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { o21, o20, o51, o21 }; if (gimple_simplify_112 (res_code, res_ops, seq, valueize, type, captures, BIT_AND_EXPR, BIT_IOR_EXPR)) return true; } } if (o51 == o21 || operand_equal_p (o51, o21, 0)) { { /* #line 792 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { o21, o20, o50, o21 }; if (gimple_simplify_112 (res_code, res_ops, seq, valueize, type, captures, BIT_AND_EXPR, BIT_IOR_EXPR)) return true; } } } } break; } default:; } } break; default:; } } } break; } default:; } } break; default:; } switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { CASE_CONVERT: { tree o30 = gimple_assign_rhs1 (def); if ((o30 = do_valueize (valueize, o30))) { switch (TREE_CODE (o30)) { case SSA_NAME: if (do_valueize (valueize, o30) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (o30); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case BIT_AND_EXPR: { tree o40 = gimple_assign_rhs1 (def); if ((o40 = do_valueize (valueize, o40))) { tree o41 = gimple_assign_rhs2 (def); if ((o41 = do_valueize (valueize, o41))) { if (tree_swap_operands_p (o40, o41)) std::swap (o40, o41); if (o41 == op0 || operand_equal_p (o41, op0, 0)) { { /* #line 802 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { op1, o40, o41, op0 }; if (gimple_simplify_33 (res_code, res_ops, seq, valueize, type, captures, BIT_AND_EXPR)) return true; } } if (o40 == op0 || operand_equal_p (o40, op0, 0)) { { /* #line 802 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { op1, o41, o40, op0 }; if (gimple_simplify_33 (res_code, res_ops, seq, valueize, type, captures, BIT_AND_EXPR)) return true; } } } } break; } default:; } } break; default:; } } break; } default:; } } break; default:; } switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case BIT_AND_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { if (tree_swap_operands_p (o20, o21)) std::swap (o20, o21); switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { CASE_CONVERT: { tree o50 = gimple_assign_rhs1 (def); if ((o50 = do_valueize (valueize, o50))) { if (o50 == o21 || operand_equal_p (o50, o21, 0)) { { /* #line 802 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o21, o21 }; if (gimple_simplify_63 (res_code, res_ops, seq, valueize, type, captures, BIT_AND_EXPR)) return true; } } if (o50 == o20 || operand_equal_p (o50, o20, 0)) { { /* #line 802 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { op0, o21, o20, o20 }; if (gimple_simplify_63 (res_code, res_ops, seq, valueize, type, captures, BIT_AND_EXPR)) return true; } } } break; } default:; } } break; default:; } if (op1 == o21 || operand_equal_p (op1, o21, 0)) { { /* #line 802 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o21, o21 }; if (gimple_simplify_63 (res_code, res_ops, seq, valueize, type, captures, BIT_AND_EXPR)) return true; } } if (op1 == o20 || operand_equal_p (op1, o20, 0)) { { /* #line 802 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { op0, o21, o20, o20 }; if (gimple_simplify_63 (res_code, res_ops, seq, valueize, type, captures, BIT_AND_EXPR)) return true; } } } } break; } CASE_CONVERT: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case BIT_AND_EXPR: { tree o40 = gimple_assign_rhs1 (def); if ((o40 = do_valueize (valueize, o40))) { tree o41 = gimple_assign_rhs2 (def); if ((o41 = do_valueize (valueize, o41))) { if (tree_swap_operands_p (o40, o41)) std::swap (o40, o41); if (o41 == o20 || operand_equal_p (o41, o20, 0)) { { /* #line 802 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { op1, o40, o41, o20 }; if (gimple_simplify_33 (res_code, res_ops, seq, valueize, type, captures, BIT_AND_EXPR)) return true; } } if (o40 == o20 || operand_equal_p (o40, o20, 0)) { { /* #line 802 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { op1, o41, o40, o20 }; if (gimple_simplify_33 (res_code, res_ops, seq, valueize, type, captures, BIT_AND_EXPR)) return true; } } } } break; } default:; } } break; default:; } } break; } default:; } } break; default:; } switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case BIT_AND_EXPR: { tree o30 = gimple_assign_rhs1 (def); if ((o30 = do_valueize (valueize, o30))) { tree o31 = gimple_assign_rhs2 (def); if ((o31 = do_valueize (valueize, o31))) { if (tree_swap_operands_p (o30, o31)) std::swap (o30, o31); if (o31 == op0 || operand_equal_p (o31, op0, 0)) { { /* #line 802 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { op1, o30, o31, op0 }; if (gimple_simplify_33 (res_code, res_ops, seq, valueize, type, captures, BIT_AND_EXPR)) return true; } } if (o30 == op0 || operand_equal_p (o30, op0, 0)) { { /* #line 802 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { op1, o31, o30, op0 }; if (gimple_simplify_33 (res_code, res_ops, seq, valueize, type, captures, BIT_AND_EXPR)) return true; } } } } break; } default:; } } break; default:; } switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { CASE_CONVERT: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { switch (TREE_CODE (o20)) { case SSA_NAME: if (do_valueize (valueize, o20) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (o20); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case BIT_AND_EXPR: { tree o30 = gimple_assign_rhs1 (def); if ((o30 = do_valueize (valueize, o30))) { tree o31 = gimple_assign_rhs2 (def); if ((o31 = do_valueize (valueize, o31))) { if (tree_swap_operands_p (o30, o31)) std::swap (o30, o31); switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { CASE_CONVERT: { tree o60 = gimple_assign_rhs1 (def); if ((o60 = do_valueize (valueize, o60))) { switch (TREE_CODE (o60)) { case SSA_NAME: if (do_valueize (valueize, o60) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (o60); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case BIT_AND_EXPR: { tree o70 = gimple_assign_rhs1 (def); if ((o70 = do_valueize (valueize, o70))) { tree o71 = gimple_assign_rhs2 (def); if ((o71 = do_valueize (valueize, o71))) { if (tree_swap_operands_p (o70, o71)) std::swap (o70, o71); if (o70 == o30 || (operand_equal_p (o70, o30, 0) && types_match (o70, o30))) { { /* #line 812 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[7] ATTRIBUTE_UNUSED = { op0, o20, o30, o31, op1, o60, o71 }; if (gimple_simplify_152 (res_code, res_ops, seq, valueize, type, captures, BIT_AND_EXPR)) return true; } } if (o71 == o30 || (operand_equal_p (o71, o30, 0) && types_match (o71, o30))) { { /* #line 812 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[7] ATTRIBUTE_UNUSED = { op0, o20, o30, o31, op1, o60, o70 }; if (gimple_simplify_152 (res_code, res_ops, seq, valueize, type, captures, BIT_AND_EXPR)) return true; } } if (o70 == o31 || (operand_equal_p (o70, o31, 0) && types_match (o70, o31))) { { /* #line 812 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[7] ATTRIBUTE_UNUSED = { op0, o20, o31, o30, op1, o60, o71 }; if (gimple_simplify_152 (res_code, res_ops, seq, valueize, type, captures, BIT_AND_EXPR)) return true; } } if (o71 == o31 || (operand_equal_p (o71, o31, 0) && types_match (o71, o31))) { { /* #line 812 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[7] ATTRIBUTE_UNUSED = { op0, o20, o31, o30, op1, o60, o70 }; if (gimple_simplify_152 (res_code, res_ops, seq, valueize, type, captures, BIT_AND_EXPR)) return true; } } if (o70 == o30 || (operand_equal_p (o70, o30, 0) && types_match (o70, o30))) { { /* #line 812 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[7] ATTRIBUTE_UNUSED = { op1, o60, o30, o71, op0, o20, o31 }; if (gimple_simplify_87 (res_code, res_ops, seq, valueize, type, captures, BIT_AND_EXPR)) return true; } } if (o70 == o31 || (operand_equal_p (o70, o31, 0) && types_match (o70, o31))) { { /* #line 812 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[7] ATTRIBUTE_UNUSED = { op1, o60, o31, o71, op0, o20, o30 }; if (gimple_simplify_87 (res_code, res_ops, seq, valueize, type, captures, BIT_AND_EXPR)) return true; } } if (o71 == o30 || (operand_equal_p (o71, o30, 0) && types_match (o71, o30))) { { /* #line 812 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[7] ATTRIBUTE_UNUSED = { op1, o60, o30, o70, op0, o20, o31 }; if (gimple_simplify_87 (res_code, res_ops, seq, valueize, type, captures, BIT_AND_EXPR)) return true; } } if (o71 == o31 || (operand_equal_p (o71, o31, 0) && types_match (o71, o31))) { { /* #line 812 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[7] ATTRIBUTE_UNUSED = { op1, o60, o31, o70, op0, o20, o30 }; if (gimple_simplify_87 (res_code, res_ops, seq, valueize, type, captures, BIT_AND_EXPR)) return true; } } } } break; } default:; } } break; default:; } } break; } case BIT_AND_EXPR: { tree o60 = gimple_assign_rhs1 (def); if ((o60 = do_valueize (valueize, o60))) { tree o61 = gimple_assign_rhs2 (def); if ((o61 = do_valueize (valueize, o61))) { if (tree_swap_operands_p (o60, o61)) std::swap (o60, o61); if (o60 == o30 || (operand_equal_p (o60, o30, 0) && types_match (o60, o30))) { { /* #line 812 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[7] ATTRIBUTE_UNUSED = { op0, o20, o30, o31, op1, op1, o61 }; if (gimple_simplify_199 (res_code, res_ops, seq, valueize, type, captures, BIT_AND_EXPR)) return true; } } if (o61 == o30 || (operand_equal_p (o61, o30, 0) && types_match (o61, o30))) { { /* #line 812 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[7] ATTRIBUTE_UNUSED = { op0, o20, o30, o31, op1, op1, o60 }; if (gimple_simplify_199 (res_code, res_ops, seq, valueize, type, captures, BIT_AND_EXPR)) return true; } } if (o60 == o31 || (operand_equal_p (o60, o31, 0) && types_match (o60, o31))) { { /* #line 812 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[7] ATTRIBUTE_UNUSED = { op0, o20, o31, o30, op1, op1, o61 }; if (gimple_simplify_199 (res_code, res_ops, seq, valueize, type, captures, BIT_AND_EXPR)) return true; } } if (o61 == o31 || (operand_equal_p (o61, o31, 0) && types_match (o61, o31))) { { /* #line 812 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[7] ATTRIBUTE_UNUSED = { op0, o20, o31, o30, op1, op1, o60 }; if (gimple_simplify_199 (res_code, res_ops, seq, valueize, type, captures, BIT_AND_EXPR)) return true; } } if (o60 == o30 || (operand_equal_p (o60, o30, 0) && types_match (o60, o30))) { { /* #line 812 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[7] ATTRIBUTE_UNUSED = { op1, op1, o30, o61, op0, o20, o31 }; if (gimple_simplify_188 (res_code, res_ops, seq, valueize, type, captures, BIT_AND_EXPR)) return true; } } if (o60 == o31 || (operand_equal_p (o60, o31, 0) && types_match (o60, o31))) { { /* #line 812 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[7] ATTRIBUTE_UNUSED = { op1, op1, o31, o61, op0, o20, o30 }; if (gimple_simplify_188 (res_code, res_ops, seq, valueize, type, captures, BIT_AND_EXPR)) return true; } } if (o61 == o30 || (operand_equal_p (o61, o30, 0) && types_match (o61, o30))) { { /* #line 812 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[7] ATTRIBUTE_UNUSED = { op1, op1, o30, o60, op0, o20, o31 }; if (gimple_simplify_188 (res_code, res_ops, seq, valueize, type, captures, BIT_AND_EXPR)) return true; } } if (o61 == o31 || (operand_equal_p (o61, o31, 0) && types_match (o61, o31))) { { /* #line 812 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[7] ATTRIBUTE_UNUSED = { op1, op1, o31, o60, op0, o20, o30 }; if (gimple_simplify_188 (res_code, res_ops, seq, valueize, type, captures, BIT_AND_EXPR)) return true; } } } } break; } default:; } } break; default:; } } } break; } default:; } } break; default:; } switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { CASE_CONVERT: { tree o40 = gimple_assign_rhs1 (def); if ((o40 = do_valueize (valueize, o40))) { { /* #line 885 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, o40 }; if (gimple_simplify_64 (res_code, res_ops, seq, valueize, type, captures, BIT_AND_EXPR)) return true; } } break; } default:; } } break; default:; } { /* #line 885 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 }; if (gimple_simplify_64 (res_code, res_ops, seq, valueize, type, captures, BIT_AND_EXPR)) return true; } } break; } case BIT_AND_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { if (tree_swap_operands_p (o20, o21)) std::swap (o20, o21); switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { CASE_CONVERT: { tree o50 = gimple_assign_rhs1 (def); if ((o50 = do_valueize (valueize, o50))) { switch (TREE_CODE (o50)) { case SSA_NAME: if (do_valueize (valueize, o50) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (o50); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case BIT_AND_EXPR: { tree o60 = gimple_assign_rhs1 (def); if ((o60 = do_valueize (valueize, o60))) { tree o61 = gimple_assign_rhs2 (def); if ((o61 = do_valueize (valueize, o61))) { if (tree_swap_operands_p (o60, o61)) std::swap (o60, o61); if (o60 == o20 || (operand_equal_p (o60, o20, 0) && types_match (o60, o20))) { { /* #line 812 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[7] ATTRIBUTE_UNUSED = { op1, o50, o20, o61, op0, op0, o21 }; if (gimple_simplify_167 (res_code, res_ops, seq, valueize, type, captures, BIT_AND_EXPR)) return true; } } if (o60 == o21 || (operand_equal_p (o60, o21, 0) && types_match (o60, o21))) { { /* #line 812 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[7] ATTRIBUTE_UNUSED = { op1, o50, o21, o61, op0, op0, o20 }; if (gimple_simplify_167 (res_code, res_ops, seq, valueize, type, captures, BIT_AND_EXPR)) return true; } } if (o61 == o20 || (operand_equal_p (o61, o20, 0) && types_match (o61, o20))) { { /* #line 812 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[7] ATTRIBUTE_UNUSED = { op1, o50, o20, o60, op0, op0, o21 }; if (gimple_simplify_167 (res_code, res_ops, seq, valueize, type, captures, BIT_AND_EXPR)) return true; } } if (o61 == o21 || (operand_equal_p (o61, o21, 0) && types_match (o61, o21))) { { /* #line 812 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[7] ATTRIBUTE_UNUSED = { op1, o50, o21, o60, op0, op0, o20 }; if (gimple_simplify_167 (res_code, res_ops, seq, valueize, type, captures, BIT_AND_EXPR)) return true; } } if (o60 == o20 || (operand_equal_p (o60, o20, 0) && types_match (o60, o20))) { { /* #line 812 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[7] ATTRIBUTE_UNUSED = { op0, op0, o20, o21, op1, o50, o61 }; if (gimple_simplify_13 (res_code, res_ops, seq, valueize, type, captures, BIT_AND_EXPR)) return true; } } if (o61 == o20 || (operand_equal_p (o61, o20, 0) && types_match (o61, o20))) { { /* #line 812 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[7] ATTRIBUTE_UNUSED = { op0, op0, o20, o21, op1, o50, o60 }; if (gimple_simplify_13 (res_code, res_ops, seq, valueize, type, captures, BIT_AND_EXPR)) return true; } } if (o60 == o21 || (operand_equal_p (o60, o21, 0) && types_match (o60, o21))) { { /* #line 812 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[7] ATTRIBUTE_UNUSED = { op0, op0, o21, o20, op1, o50, o61 }; if (gimple_simplify_13 (res_code, res_ops, seq, valueize, type, captures, BIT_AND_EXPR)) return true; } } if (o61 == o21 || (operand_equal_p (o61, o21, 0) && types_match (o61, o21))) { { /* #line 812 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[7] ATTRIBUTE_UNUSED = { op0, op0, o21, o20, op1, o50, o60 }; if (gimple_simplify_13 (res_code, res_ops, seq, valueize, type, captures, BIT_AND_EXPR)) return true; } } } } break; } default:; } } break; default:; } } break; } case BIT_AND_EXPR: { tree o50 = gimple_assign_rhs1 (def); if ((o50 = do_valueize (valueize, o50))) { tree o51 = gimple_assign_rhs2 (def); if ((o51 = do_valueize (valueize, o51))) { if (tree_swap_operands_p (o50, o51)) std::swap (o50, o51); if (o50 == o20 || (operand_equal_p (o50, o20, 0) && types_match (o50, o20))) { { /* #line 812 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[7] ATTRIBUTE_UNUSED = { op0, op0, o20, o21, op1, op1, o51 }; if (gimple_simplify_30 (res_code, res_ops, seq, valueize, type, captures, BIT_AND_EXPR)) return true; } } if (o51 == o20 || (operand_equal_p (o51, o20, 0) && types_match (o51, o20))) { { /* #line 812 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[7] ATTRIBUTE_UNUSED = { op0, op0, o20, o21, op1, op1, o50 }; if (gimple_simplify_30 (res_code, res_ops, seq, valueize, type, captures, BIT_AND_EXPR)) return true; } } if (o50 == o21 || (operand_equal_p (o50, o21, 0) && types_match (o50, o21))) { { /* #line 812 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[7] ATTRIBUTE_UNUSED = { op0, op0, o21, o20, op1, op1, o51 }; if (gimple_simplify_30 (res_code, res_ops, seq, valueize, type, captures, BIT_AND_EXPR)) return true; } } if (o51 == o21 || (operand_equal_p (o51, o21, 0) && types_match (o51, o21))) { { /* #line 812 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[7] ATTRIBUTE_UNUSED = { op0, op0, o21, o20, op1, op1, o50 }; if (gimple_simplify_30 (res_code, res_ops, seq, valueize, type, captures, BIT_AND_EXPR)) return true; } } if (o50 == o20 || (operand_equal_p (o50, o20, 0) && types_match (o50, o20))) { { /* #line 812 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[7] ATTRIBUTE_UNUSED = { op1, op1, o20, o51, op0, op0, o21 }; if (gimple_simplify_108 (res_code, res_ops, seq, valueize, type, captures, BIT_AND_EXPR)) return true; } } if (o50 == o21 || (operand_equal_p (o50, o21, 0) && types_match (o50, o21))) { { /* #line 812 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[7] ATTRIBUTE_UNUSED = { op1, op1, o21, o51, op0, op0, o20 }; if (gimple_simplify_108 (res_code, res_ops, seq, valueize, type, captures, BIT_AND_EXPR)) return true; } } if (o51 == o20 || (operand_equal_p (o51, o20, 0) && types_match (o51, o20))) { { /* #line 812 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[7] ATTRIBUTE_UNUSED = { op1, op1, o20, o50, op0, op0, o21 }; if (gimple_simplify_108 (res_code, res_ops, seq, valueize, type, captures, BIT_AND_EXPR)) return true; } } if (o51 == o21 || (operand_equal_p (o51, o21, 0) && types_match (o51, o21))) { { /* #line 812 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[7] ATTRIBUTE_UNUSED = { op1, op1, o21, o50, op0, op0, o20 }; if (gimple_simplify_108 (res_code, res_ops, seq, valueize, type, captures, BIT_AND_EXPR)) return true; } } } } break; } default:; } } break; default:; } } } break; } case BIT_IOR_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { if (tree_swap_operands_p (o20, o21)) std::swap (o20, o21); if (op1 == o20 || (operand_equal_p (op1, o20, 0) && types_match (op1, o20))) { { /* #line 912 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 }; if (gimple_simplify_222 (res_code, res_ops, seq, valueize, type, captures, BIT_AND_EXPR, BIT_IOR_EXPR)) return true; } } if (op1 == o21 || (operand_equal_p (op1, o21, 0) && types_match (op1, o21))) { { /* #line 912 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o21, o20 }; if (gimple_simplify_222 (res_code, res_ops, seq, valueize, type, captures, BIT_AND_EXPR, BIT_IOR_EXPR)) return true; } } } } break; } default:; } } break; default:; } switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case BIT_IOR_EXPR: { tree o30 = gimple_assign_rhs1 (def); if ((o30 = do_valueize (valueize, o30))) { tree o31 = gimple_assign_rhs2 (def); if ((o31 = do_valueize (valueize, o31))) { if (tree_swap_operands_p (o30, o31)) std::swap (o30, o31); if (o30 == op0 || (operand_equal_p (o30, op0, 0) && types_match (o30, op0))) { { /* #line 912 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { op0, o31 }; if (gimple_simplify_222 (res_code, res_ops, seq, valueize, type, captures, BIT_AND_EXPR, BIT_IOR_EXPR)) return true; } } if (o31 == op0 || (operand_equal_p (o31, op0, 0) && types_match (o31, op0))) { { /* #line 912 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { op0, o30 }; if (gimple_simplify_222 (res_code, res_ops, seq, valueize, type, captures, BIT_AND_EXPR, BIT_IOR_EXPR)) return true; } } } } break; } default:; } } break; default:; } switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case BIT_IOR_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { if (tree_swap_operands_p (o20, o21)) std::swap (o20, o21); switch (TREE_CODE (o20)) { case SSA_NAME: if (do_valueize (valueize, o20) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (o20); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case BIT_NOT_EXPR: { tree o30 = gimple_assign_rhs1 (def); if ((o30 = do_valueize (valueize, o30))) { if (op1 == o30 || (operand_equal_p (op1, o30, 0) && types_match (op1, o30))) { { /* #line 917 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o30, o21 }; if (gimple_simplify_128 (res_code, res_ops, seq, valueize, type, captures, BIT_AND_EXPR, BIT_IOR_EXPR)) return true; } } } break; } default:; } } break; default:; } switch (TREE_CODE (o21)) { case SSA_NAME: if (do_valueize (valueize, o21) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (o21); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case BIT_NOT_EXPR: { tree o40 = gimple_assign_rhs1 (def); if ((o40 = do_valueize (valueize, o40))) { if (op1 == o40 || (operand_equal_p (op1, o40, 0) && types_match (op1, o40))) { { /* #line 917 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o40, o20 }; if (gimple_simplify_128 (res_code, res_ops, seq, valueize, type, captures, BIT_AND_EXPR, BIT_IOR_EXPR)) return true; } } } break; } default:; } } break; default:; } } } break; } default:; } } break; default:; } switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case BIT_IOR_EXPR: { tree o30 = gimple_assign_rhs1 (def); if ((o30 = do_valueize (valueize, o30))) { tree o31 = gimple_assign_rhs2 (def); if ((o31 = do_valueize (valueize, o31))) { if (tree_swap_operands_p (o30, o31)) std::swap (o30, o31); switch (TREE_CODE (o30)) { case SSA_NAME: if (do_valueize (valueize, o30) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (o30); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case BIT_NOT_EXPR: { tree o40 = gimple_assign_rhs1 (def); if ((o40 = do_valueize (valueize, o40))) { if (o40 == op0 || (operand_equal_p (o40, op0, 0) && types_match (o40, op0))) { { /* #line 917 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { op0, o31 }; if (gimple_simplify_128 (res_code, res_ops, seq, valueize, type, captures, BIT_AND_EXPR, BIT_IOR_EXPR)) return true; } } } break; } default:; } } break; default:; } switch (TREE_CODE (o31)) { case SSA_NAME: if (do_valueize (valueize, o31) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (o31); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case BIT_NOT_EXPR: { tree o50 = gimple_assign_rhs1 (def); if ((o50 = do_valueize (valueize, o50))) { if (o50 == op0 || (operand_equal_p (o50, op0, 0) && types_match (o50, op0))) { { /* #line 917 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { op0, o30 }; if (gimple_simplify_128 (res_code, res_ops, seq, valueize, type, captures, BIT_AND_EXPR, BIT_IOR_EXPR)) return true; } } } break; } default:; } } break; default:; } } } break; } default:; } } break; default:; } switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case BIT_IOR_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { if (tree_swap_operands_p (o20, o21)) std::swap (o20, o21); if (CONSTANT_CLASS_P (o21)) { if (CONSTANT_CLASS_P (op1)) { { /* #line 922 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 }; gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:922, %s:%d\n", __FILE__, __LINE__); *res_code = BIT_IOR_EXPR; { tree ops1[2], res; ops1[0] = captures[0]; ops1[1] = captures[2]; code_helper tem_code = BIT_AND_EXPR; tree tem_ops[3] = { ops1[0], ops1[1] }; gimple_resimplify2 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[0] = res; } { tree ops1[2], res; ops1[0] = captures[1]; ops1[1] = captures[2]; code_helper tem_code = BIT_AND_EXPR; tree tem_ops[3] = { ops1[0], ops1[1] }; gimple_resimplify2 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[1] = res; } gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } } } } break; } case BIT_AND_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { if (tree_swap_operands_p (o20, o21)) std::swap (o20, o21); if (CONSTANT_CLASS_P (o21)) { if (CONSTANT_CLASS_P (op1)) { { /* #line 928 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 }; if (gimple_simplify_130 (res_code, res_ops, seq, valueize, type, captures, BIT_AND_EXPR)) return true; } } } } } break; } default:; } } break; default:; } tree op1_pops[1]; if (gimple_logical_inverted_value (op1, op1_pops, valueize)) { tree o30 = op1_pops[0]; if (o30 == op0 || (operand_equal_p (o30, op0, 0) && types_match (o30, op0))) { { /* #line 955 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { op0 }; if (gimple_simplify_162 (res_code, res_ops, seq, valueize, type, captures)) return true; } } } switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { CASE_CONVERT: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { switch (TREE_CODE (op1)) { case INTEGER_CST: { { /* #line 1134 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 }; if (gimple_simplify_203 (res_code, res_ops, seq, valueize, type, captures)) return true; } break; } default:; } } break; } default:; } } break; default:; } tree op0_pops[1]; if (gimple_logical_inverted_value (op0, op0_pops, valueize)) { tree o20 = op0_pops[0]; if (op1 == o20 || (operand_equal_p (op1, o20, 0) && types_match (op1, o20))) { { /* #line 955 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; if (gimple_simplify_162 (res_code, res_ops, seq, valueize, type, captures)) return true; } } } switch (TREE_CODE (op1)) { case INTEGER_CST: { { /* #line 1134 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 }; if (gimple_simplify_203 (res_code, res_ops, seq, valueize, type, captures)) return true; } break; } default:; } switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { CASE_CONVERT: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { switch (TREE_CODE (o20)) { case SSA_NAME: if (do_valueize (valueize, o20) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (o20); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case LSHIFT_EXPR: { tree o30 = gimple_assign_rhs1 (def); if ((o30 = do_valueize (valueize, o30))) { tree o31 = gimple_assign_rhs2 (def); if ((o31 = do_valueize (valueize, o31))) { switch (TREE_CODE (o30)) { case SSA_NAME: if (do_valueize (valueize, o30) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (o30); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { CASE_CONVERT: { tree o40 = gimple_assign_rhs1 (def); if ((o40 = do_valueize (valueize, o40))) { switch (TREE_CODE (o31)) { case INTEGER_CST: { switch (TREE_CODE (op1)) { case INTEGER_CST: { { /* #line 1605 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { op0, o20, o30, o40, o31, op1 }; if (gimple_simplify_173 (res_code, res_ops, seq, valueize, type, captures, LSHIFT_EXPR)) return true; } break; } default:; } break; } default:; } } break; } default:; } } break; default:; } switch (TREE_CODE (o31)) { case INTEGER_CST: { switch (TREE_CODE (op1)) { case INTEGER_CST: { { /* #line 1605 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { op0, o20, o30, o30, o31, op1 }; if (gimple_simplify_119 (res_code, res_ops, seq, valueize, type, captures, LSHIFT_EXPR)) return true; } break; } default:; } break; } default:; } } } break; } case RSHIFT_EXPR: { tree o30 = gimple_assign_rhs1 (def); if ((o30 = do_valueize (valueize, o30))) { tree o31 = gimple_assign_rhs2 (def); if ((o31 = do_valueize (valueize, o31))) { switch (TREE_CODE (o30)) { case SSA_NAME: if (do_valueize (valueize, o30) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (o30); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { CASE_CONVERT: { tree o40 = gimple_assign_rhs1 (def); if ((o40 = do_valueize (valueize, o40))) { switch (TREE_CODE (o31)) { case INTEGER_CST: { switch (TREE_CODE (op1)) { case INTEGER_CST: { { /* #line 1605 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { op0, o20, o30, o40, o31, op1 }; if (gimple_simplify_173 (res_code, res_ops, seq, valueize, type, captures, RSHIFT_EXPR)) return true; } break; } default:; } break; } default:; } } break; } default:; } } break; default:; } switch (TREE_CODE (o31)) { case INTEGER_CST: { switch (TREE_CODE (op1)) { case INTEGER_CST: { { /* #line 1605 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { op0, o20, o30, o30, o31, op1 }; if (gimple_simplify_119 (res_code, res_ops, seq, valueize, type, captures, RSHIFT_EXPR)) return true; } break; } default:; } break; } default:; } } } break; } default:; } } break; default:; } } break; } case LSHIFT_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { switch (TREE_CODE (o20)) { case SSA_NAME: if (do_valueize (valueize, o20) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (o20); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { CASE_CONVERT: { tree o30 = gimple_assign_rhs1 (def); if ((o30 = do_valueize (valueize, o30))) { switch (TREE_CODE (o21)) { case INTEGER_CST: { switch (TREE_CODE (op1)) { case INTEGER_CST: { { /* #line 1605 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { op0, op0, o20, o30, o21, op1 }; if (gimple_simplify_228 (res_code, res_ops, seq, valueize, type, captures, LSHIFT_EXPR)) return true; } break; } default:; } break; } default:; } } break; } default:; } } break; default:; } switch (TREE_CODE (o21)) { case INTEGER_CST: { switch (TREE_CODE (op1)) { case INTEGER_CST: { { /* #line 1605 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { op0, op0, o20, o20, o21, op1 }; if (gimple_simplify_32 (res_code, res_ops, seq, valueize, type, captures, LSHIFT_EXPR)) return true; } break; } default:; } break; } default:; } } } break; } case RSHIFT_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { switch (TREE_CODE (o20)) { case SSA_NAME: if (do_valueize (valueize, o20) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (o20); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { CASE_CONVERT: { tree o30 = gimple_assign_rhs1 (def); if ((o30 = do_valueize (valueize, o30))) { switch (TREE_CODE (o21)) { case INTEGER_CST: { switch (TREE_CODE (op1)) { case INTEGER_CST: { { /* #line 1605 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { op0, op0, o20, o30, o21, op1 }; if (gimple_simplify_228 (res_code, res_ops, seq, valueize, type, captures, RSHIFT_EXPR)) return true; } break; } default:; } break; } default:; } } break; } default:; } } break; default:; } switch (TREE_CODE (o21)) { case INTEGER_CST: { switch (TREE_CODE (op1)) { case INTEGER_CST: { { /* #line 1605 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { op0, op0, o20, o20, o21, op1 }; if (gimple_simplify_32 (res_code, res_ops, seq, valueize, type, captures, RSHIFT_EXPR)) return true; } break; } default:; } break; } default:; } } } break; } case ORDERED_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { if (tree_swap_operands_p (o20, o21)) std::swap (o20, o21); if (o21 == o20 || (operand_equal_p (o21, o20, 0) && types_match (o21, o20))) { switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case ORDERED_EXPR: { tree o50 = gimple_assign_rhs1 (def); if ((o50 = do_valueize (valueize, o50))) { tree o51 = gimple_assign_rhs2 (def); if ((o51 = do_valueize (valueize, o51))) { if (tree_swap_operands_p (o50, o51)) std::swap (o50, o51); if (o51 == o50 || (operand_equal_p (o51, o50, 0) && types_match (o51, o50))) { { /* #line 2628 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, o50 }; /* #line 2628 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (types_match (captures[0], captures[1])) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2629, %s:%d\n", __FILE__, __LINE__); *res_code = ORDERED_EXPR; res_ops[0] = captures[0]; res_ops[1] = captures[1]; gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } } if (o50 == o20 || (operand_equal_p (o50, o20, 0) && types_match (o50, o20))) { { /* #line 2635 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o20, op1, o51 }; if (gimple_simplify_20 (res_code, res_ops, seq, valueize, type, captures)) return true; } } if (o51 == o20 || (operand_equal_p (o51, o20, 0) && types_match (o51, o20))) { { /* #line 2635 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o20, op1, o50 }; if (gimple_simplify_20 (res_code, res_ops, seq, valueize, type, captures)) return true; } } } } break; } default:; } } break; default:; } } switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case ORDERED_EXPR: { tree o50 = gimple_assign_rhs1 (def); if ((o50 = do_valueize (valueize, o50))) { tree o51 = gimple_assign_rhs2 (def); if ((o51 = do_valueize (valueize, o51))) { if (tree_swap_operands_p (o50, o51)) std::swap (o50, o51); if (o50 == o20 || (operand_equal_p (o50, o20, 0) && types_match (o50, o20))) { if (o51 == o20 || (operand_equal_p (o51, o20, 0) && types_match (o51, o20))) { { /* #line 2635 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o20, op0, o21 }; if (gimple_simplify_192 (res_code, res_ops, seq, valueize, type, captures)) return true; } } } if (o50 == o21 || (operand_equal_p (o50, o21, 0) && types_match (o50, o21))) { if (o51 == o21 || (operand_equal_p (o51, o21, 0) && types_match (o51, o21))) { { /* #line 2635 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o21, op0, o20 }; if (gimple_simplify_192 (res_code, res_ops, seq, valueize, type, captures)) return true; } } } } } break; } default:; } } break; default:; } } } break; } case LT_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case GE_EXPR: { tree o50 = gimple_assign_rhs1 (def); if ((o50 = do_valueize (valueize, o50))) { tree o51 = gimple_assign_rhs2 (def); if ((o51 = do_valueize (valueize, o51))) { if (o50 == o20 || (operand_equal_p (o50, o20, 0) && types_match (o50, o20))) { if (o51 == o21 || (operand_equal_p (o51, o21, 0) && types_match (o51, o21))) { { /* #line 2651 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 }; if (gimple_simplify_22 (res_code, res_ops, seq, valueize, type, captures, LT_EXPR, GE_EXPR)) return true; } } } } } break; } case GT_EXPR: { tree o50 = gimple_assign_rhs1 (def); if ((o50 = do_valueize (valueize, o50))) { tree o51 = gimple_assign_rhs2 (def); if ((o51 = do_valueize (valueize, o51))) { if (o50 == o20 || (operand_equal_p (o50, o20, 0) && types_match (o50, o20))) { if (o51 == o21 || (operand_equal_p (o51, o21, 0) && types_match (o51, o21))) { { /* #line 2651 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 }; if (gimple_simplify_22 (res_code, res_ops, seq, valueize, type, captures, LT_EXPR, GT_EXPR)) return true; } } } if (o51 == o20 || (operand_equal_p (o51, o20, 0) && types_match (o51, o20))) { { /* #line 3691 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { op0, o20, o21, op1, o50 }; if (gimple_simplify_7 (res_code, res_ops, seq, valueize, type, captures, LT_EXPR, MIN_EXPR)) return true; } } if (o50 == o21 || (operand_equal_p (o50, o21, 0) && types_match (o50, o21))) { { /* #line 3691 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { op0, o21, o20, op1, o51 }; if (gimple_simplify_7 (res_code, res_ops, seq, valueize, type, captures, GT_EXPR, MAX_EXPR)) return true; } } } } break; } case EQ_EXPR: { tree o50 = gimple_assign_rhs1 (def); if ((o50 = do_valueize (valueize, o50))) { tree o51 = gimple_assign_rhs2 (def); if ((o51 = do_valueize (valueize, o51))) { if (tree_swap_operands_p (o50, o51)) std::swap (o50, o51); if (o50 == o20 || (operand_equal_p (o50, o20, 0) && types_match (o50, o20))) { if (o51 == o21 || (operand_equal_p (o51, o21, 0) && types_match (o51, o21))) { { /* #line 2651 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 }; if (gimple_simplify_22 (res_code, res_ops, seq, valueize, type, captures, LT_EXPR, EQ_EXPR)) return true; } } } } } break; } case LT_EXPR: { tree o50 = gimple_assign_rhs1 (def); if ((o50 = do_valueize (valueize, o50))) { tree o51 = gimple_assign_rhs2 (def); if ((o51 = do_valueize (valueize, o51))) { if (o50 == o20 || (operand_equal_p (o50, o20, 0) && types_match (o50, o20))) { { /* #line 3691 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { op0, o20, o21, op1, o51 }; if (gimple_simplify_7 (res_code, res_ops, seq, valueize, type, captures, LT_EXPR, MIN_EXPR)) return true; } } if (o51 == o21 || (operand_equal_p (o51, o21, 0) && types_match (o51, o21))) { { /* #line 3691 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { op0, o21, o20, op1, o50 }; if (gimple_simplify_7 (res_code, res_ops, seq, valueize, type, captures, GT_EXPR, MAX_EXPR)) return true; } } } } break; } default:; } } break; default:; } } } break; } case LE_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case GT_EXPR: { tree o50 = gimple_assign_rhs1 (def); if ((o50 = do_valueize (valueize, o50))) { tree o51 = gimple_assign_rhs2 (def); if ((o51 = do_valueize (valueize, o51))) { if (o50 == o20 || (operand_equal_p (o50, o20, 0) && types_match (o50, o20))) { if (o51 == o21 || (operand_equal_p (o51, o21, 0) && types_match (o51, o21))) { { /* #line 2651 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 }; if (gimple_simplify_22 (res_code, res_ops, seq, valueize, type, captures, LE_EXPR, GT_EXPR)) return true; } } } } } break; } case LE_EXPR: { tree o50 = gimple_assign_rhs1 (def); if ((o50 = do_valueize (valueize, o50))) { tree o51 = gimple_assign_rhs2 (def); if ((o51 = do_valueize (valueize, o51))) { if (o50 == o20 || (operand_equal_p (o50, o20, 0) && types_match (o50, o20))) { { /* #line 3691 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { op0, o20, o21, op1, o51 }; if (gimple_simplify_7 (res_code, res_ops, seq, valueize, type, captures, LE_EXPR, MIN_EXPR)) return true; } } if (o51 == o21 || (operand_equal_p (o51, o21, 0) && types_match (o51, o21))) { { /* #line 3691 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { op0, o21, o20, op1, o50 }; if (gimple_simplify_7 (res_code, res_ops, seq, valueize, type, captures, GE_EXPR, MAX_EXPR)) return true; } } } } break; } case GE_EXPR: { tree o50 = gimple_assign_rhs1 (def); if ((o50 = do_valueize (valueize, o50))) { tree o51 = gimple_assign_rhs2 (def); if ((o51 = do_valueize (valueize, o51))) { if (o51 == o20 || (operand_equal_p (o51, o20, 0) && types_match (o51, o20))) { { /* #line 3691 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { op0, o20, o21, op1, o50 }; if (gimple_simplify_7 (res_code, res_ops, seq, valueize, type, captures, LE_EXPR, MIN_EXPR)) return true; } } if (o50 == o21 || (operand_equal_p (o50, o21, 0) && types_match (o50, o21))) { { /* #line 3691 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { op0, o21, o20, op1, o51 }; if (gimple_simplify_7 (res_code, res_ops, seq, valueize, type, captures, GE_EXPR, MAX_EXPR)) return true; } } } } break; } default:; } } break; default:; } } } break; } case NE_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { if (tree_swap_operands_p (o20, o21)) std::swap (o20, o21); switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case EQ_EXPR: { tree o50 = gimple_assign_rhs1 (def); if ((o50 = do_valueize (valueize, o50))) { tree o51 = gimple_assign_rhs2 (def); if ((o51 = do_valueize (valueize, o51))) { if (tree_swap_operands_p (o50, o51)) std::swap (o50, o51); if (o50 == o20 || (operand_equal_p (o50, o20, 0) && types_match (o50, o20))) { if (o51 == o21 || (operand_equal_p (o51, o21, 0) && types_match (o51, o21))) { { /* #line 2651 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 }; if (gimple_simplify_22 (res_code, res_ops, seq, valueize, type, captures, NE_EXPR, EQ_EXPR)) return true; } } } } } break; } default:; } } break; default:; } } } break; } case EQ_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { if (tree_swap_operands_p (o20, o21)) std::swap (o20, o21); switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case GT_EXPR: { tree o50 = gimple_assign_rhs1 (def); if ((o50 = do_valueize (valueize, o50))) { tree o51 = gimple_assign_rhs2 (def); if ((o51 = do_valueize (valueize, o51))) { if (o50 == o20 || (operand_equal_p (o50, o20, 0) && types_match (o50, o20))) { if (o51 == o21 || (operand_equal_p (o51, o21, 0) && types_match (o51, o21))) { { /* #line 2651 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 }; if (gimple_simplify_22 (res_code, res_ops, seq, valueize, type, captures, EQ_EXPR, GT_EXPR)) return true; } } } } } break; } case LT_EXPR: { tree o50 = gimple_assign_rhs1 (def); if ((o50 = do_valueize (valueize, o50))) { tree o51 = gimple_assign_rhs2 (def); if ((o51 = do_valueize (valueize, o51))) { if (o50 == o20 || (operand_equal_p (o50, o20, 0) && types_match (o50, o20))) { if (o51 == o21 || (operand_equal_p (o51, o21, 0) && types_match (o51, o21))) { { /* #line 2651 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 }; if (gimple_simplify_22 (res_code, res_ops, seq, valueize, type, captures, LT_EXPR, EQ_EXPR)) return true; } } } } } break; } case NE_EXPR: { tree o50 = gimple_assign_rhs1 (def); if ((o50 = do_valueize (valueize, o50))) { tree o51 = gimple_assign_rhs2 (def); if ((o51 = do_valueize (valueize, o51))) { if (tree_swap_operands_p (o50, o51)) std::swap (o50, o51); if (o50 == o20 || (operand_equal_p (o50, o20, 0) && types_match (o50, o20))) { if (o51 == o21 || (operand_equal_p (o51, o21, 0) && types_match (o51, o21))) { { /* #line 2651 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 }; if (gimple_simplify_22 (res_code, res_ops, seq, valueize, type, captures, NE_EXPR, EQ_EXPR)) return true; } } } } } break; } default:; } } break; default:; } } } break; } case GE_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case LT_EXPR: { tree o50 = gimple_assign_rhs1 (def); if ((o50 = do_valueize (valueize, o50))) { tree o51 = gimple_assign_rhs2 (def); if ((o51 = do_valueize (valueize, o51))) { if (o50 == o20 || (operand_equal_p (o50, o20, 0) && types_match (o50, o20))) { if (o51 == o21 || (operand_equal_p (o51, o21, 0) && types_match (o51, o21))) { { /* #line 2651 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 }; if (gimple_simplify_22 (res_code, res_ops, seq, valueize, type, captures, LT_EXPR, GE_EXPR)) return true; } } } } } break; } case GE_EXPR: { tree o50 = gimple_assign_rhs1 (def); if ((o50 = do_valueize (valueize, o50))) { tree o51 = gimple_assign_rhs2 (def); if ((o51 = do_valueize (valueize, o51))) { if (o50 == o20 || (operand_equal_p (o50, o20, 0) && types_match (o50, o20))) { { /* #line 3691 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { op0, o20, o21, op1, o51 }; if (gimple_simplify_7 (res_code, res_ops, seq, valueize, type, captures, GE_EXPR, MAX_EXPR)) return true; } } if (o51 == o21 || (operand_equal_p (o51, o21, 0) && types_match (o51, o21))) { { /* #line 3691 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { op0, o21, o20, op1, o50 }; if (gimple_simplify_7 (res_code, res_ops, seq, valueize, type, captures, LE_EXPR, MIN_EXPR)) return true; } } } } break; } case LE_EXPR: { tree o50 = gimple_assign_rhs1 (def); if ((o50 = do_valueize (valueize, o50))) { tree o51 = gimple_assign_rhs2 (def); if ((o51 = do_valueize (valueize, o51))) { if (o51 == o20 || (operand_equal_p (o51, o20, 0) && types_match (o51, o20))) { { /* #line 3691 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { op0, o20, o21, op1, o50 }; if (gimple_simplify_7 (res_code, res_ops, seq, valueize, type, captures, GE_EXPR, MAX_EXPR)) return true; } } if (o50 == o21 || (operand_equal_p (o50, o21, 0) && types_match (o50, o21))) { { /* #line 3691 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { op0, o21, o20, op1, o51 }; if (gimple_simplify_7 (res_code, res_ops, seq, valueize, type, captures, LE_EXPR, MIN_EXPR)) return true; } } } } break; } default:; } } break; default:; } } } break; } case GT_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case LT_EXPR: { tree o50 = gimple_assign_rhs1 (def); if ((o50 = do_valueize (valueize, o50))) { tree o51 = gimple_assign_rhs2 (def); if ((o51 = do_valueize (valueize, o51))) { if (o50 == o20 || (operand_equal_p (o50, o20, 0) && types_match (o50, o20))) { if (o51 == o21 || (operand_equal_p (o51, o21, 0) && types_match (o51, o21))) { { /* #line 2651 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 }; if (gimple_simplify_22 (res_code, res_ops, seq, valueize, type, captures, LT_EXPR, GT_EXPR)) return true; } } } if (o51 == o20 || (operand_equal_p (o51, o20, 0) && types_match (o51, o20))) { { /* #line 3691 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { op0, o20, o21, op1, o50 }; if (gimple_simplify_7 (res_code, res_ops, seq, valueize, type, captures, GT_EXPR, MAX_EXPR)) return true; } } if (o50 == o21 || (operand_equal_p (o50, o21, 0) && types_match (o50, o21))) { { /* #line 3691 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { op0, o21, o20, op1, o51 }; if (gimple_simplify_7 (res_code, res_ops, seq, valueize, type, captures, LT_EXPR, MIN_EXPR)) return true; } } } } break; } case LE_EXPR: { tree o50 = gimple_assign_rhs1 (def); if ((o50 = do_valueize (valueize, o50))) { tree o51 = gimple_assign_rhs2 (def); if ((o51 = do_valueize (valueize, o51))) { if (o50 == o20 || (operand_equal_p (o50, o20, 0) && types_match (o50, o20))) { if (o51 == o21 || (operand_equal_p (o51, o21, 0) && types_match (o51, o21))) { { /* #line 2651 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 }; if (gimple_simplify_22 (res_code, res_ops, seq, valueize, type, captures, LE_EXPR, GT_EXPR)) return true; } } } } } break; } case EQ_EXPR: { tree o50 = gimple_assign_rhs1 (def); if ((o50 = do_valueize (valueize, o50))) { tree o51 = gimple_assign_rhs2 (def); if ((o51 = do_valueize (valueize, o51))) { if (tree_swap_operands_p (o50, o51)) std::swap (o50, o51); if (o50 == o20 || (operand_equal_p (o50, o20, 0) && types_match (o50, o20))) { if (o51 == o21 || (operand_equal_p (o51, o21, 0) && types_match (o51, o21))) { { /* #line 2651 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 }; if (gimple_simplify_22 (res_code, res_ops, seq, valueize, type, captures, EQ_EXPR, GT_EXPR)) return true; } } } } } break; } case GT_EXPR: { tree o50 = gimple_assign_rhs1 (def); if ((o50 = do_valueize (valueize, o50))) { tree o51 = gimple_assign_rhs2 (def); if ((o51 = do_valueize (valueize, o51))) { if (o50 == o20 || (operand_equal_p (o50, o20, 0) && types_match (o50, o20))) { { /* #line 3691 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { op0, o20, o21, op1, o51 }; if (gimple_simplify_7 (res_code, res_ops, seq, valueize, type, captures, GT_EXPR, MAX_EXPR)) return true; } } if (o51 == o21 || (operand_equal_p (o51, o21, 0) && types_match (o51, o21))) { { /* #line 3691 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { op0, o21, o20, op1, o50 }; if (gimple_simplify_7 (res_code, res_ops, seq, valueize, type, captures, LT_EXPR, MIN_EXPR)) return true; } } } } break; } default:; } } break; default:; } } } break; } case MINUS_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { switch (TREE_CODE (o20)) { case SSA_NAME: if (do_valueize (valueize, o20) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (o20); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { CASE_CONVERT: { tree o30 = gimple_assign_rhs1 (def); if ((o30 = do_valueize (valueize, o30))) { switch (TREE_CODE (o21)) { case SSA_NAME: if (do_valueize (valueize, o21) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (o21); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { CASE_CONVERT: { tree o50 = gimple_assign_rhs1 (def); if ((o50 = do_valueize (valueize, o50))) { switch (TREE_CODE (op1)) { case INTEGER_CST: { { /* #line 3658 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { op0, o20, o30, o21, o50, op1 }; if (gimple_simplify_86 (res_code, res_ops, seq, valueize, type, captures, MINUS_EXPR)) return true; } break; } default:; } } break; } default:; } } break; default:; } } break; } default:; } } break; default:; } } } break; } case PLUS_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { if (tree_swap_operands_p (o20, o21)) std::swap (o20, o21); switch (TREE_CODE (o20)) { case SSA_NAME: if (do_valueize (valueize, o20) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (o20); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { CASE_CONVERT: { tree o30 = gimple_assign_rhs1 (def); if ((o30 = do_valueize (valueize, o30))) { switch (TREE_CODE (o21)) { case SSA_NAME: if (do_valueize (valueize, o21) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (o21); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { CASE_CONVERT: { tree o50 = gimple_assign_rhs1 (def); if ((o50 = do_valueize (valueize, o50))) { switch (TREE_CODE (op1)) { case INTEGER_CST: { { /* #line 3658 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { op0, o20, o30, o21, o50, op1 }; if (gimple_simplify_86 (res_code, res_ops, seq, valueize, type, captures, PLUS_EXPR)) return true; } break; } default:; } } break; } default:; } } break; default:; } } break; } default:; } } break; default:; } } } break; } default:; } } break; default:; } return false; } static bool gimple_simplify_LT_EXPR (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree op0, tree op1) { switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case TRUNC_MOD_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { if (op1 == o21 || (operand_equal_p (op1, o21, 0) && types_match (op1, o21))) { { /* #line 595 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 }; if (gimple_simplify_8 (res_code, res_ops, seq, valueize, type, captures, LT_EXPR)) return true; } } } } break; } case MULT_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { if (tree_swap_operands_p (o20, o21)) std::swap (o20, o21); switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case MULT_EXPR: { tree o50 = gimple_assign_rhs1 (def); if ((o50 = do_valueize (valueize, o50))) { tree o51 = gimple_assign_rhs2 (def); if ((o51 = do_valueize (valueize, o51))) { if (tree_swap_operands_p (o50, o51)) std::swap (o50, o51); if (o51 == o21 || (operand_equal_p (o51, o21, 0) && types_match (o51, o21))) { { /* #line 1031 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, o50 }; if (gimple_simplify_209 (res_code, res_ops, seq, valueize, type, captures, LT_EXPR)) return true; } } if (o50 == o21 || (operand_equal_p (o50, o21, 0) && types_match (o50, o21))) { { /* #line 1031 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, o51 }; if (gimple_simplify_209 (res_code, res_ops, seq, valueize, type, captures, LT_EXPR)) return true; } } if (o51 == o20 || (operand_equal_p (o51, o20, 0) && types_match (o51, o20))) { { /* #line 1031 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o21, o20, o50 }; if (gimple_simplify_209 (res_code, res_ops, seq, valueize, type, captures, LT_EXPR)) return true; } } if (o50 == o20 || (operand_equal_p (o50, o20, 0) && types_match (o50, o20))) { { /* #line 1031 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o21, o20, o51 }; if (gimple_simplify_209 (res_code, res_ops, seq, valueize, type, captures, LT_EXPR)) return true; } } } } break; } default:; } } break; default:; } } } break; } case MIN_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { if (tree_swap_operands_p (o20, o21)) std::swap (o20, o21); switch (TREE_CODE (o21)) { case INTEGER_CST: { switch (TREE_CODE (op1)) { case INTEGER_CST: { { /* #line 1485 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 }; if (gimple_simplify_227 (res_code, res_ops, seq, valueize, type, captures, MIN_EXPR, LT_EXPR, BIT_IOR_EXPR)) return true; } break; } default:; } break; } default:; } } } break; } case MAX_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { if (tree_swap_operands_p (o20, o21)) std::swap (o20, o21); switch (TREE_CODE (o21)) { case INTEGER_CST: { switch (TREE_CODE (op1)) { case INTEGER_CST: { { /* #line 1485 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 }; if (gimple_simplify_227 (res_code, res_ops, seq, valueize, type, captures, MAX_EXPR, LT_EXPR, BIT_AND_EXPR)) return true; } break; } default:; } break; } default:; } } } break; } default:; } } break; default:; } switch (TREE_CODE (op1)) { case INTEGER_CST: { { /* #line 2274 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 }; if (gimple_simplify_118 (res_code, res_ops, seq, valueize, type, captures, LT_EXPR, LE_EXPR)) return true; } break; } default:; } switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case MULT_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { if (tree_swap_operands_p (o20, o21)) std::swap (o20, o21); switch (TREE_CODE (o21)) { case INTEGER_CST: { if (integer_zerop (op1)) { { /* #line 2333 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o21, op1 }; if (gimple_simplify_36 (res_code, res_ops, seq, valueize, type, captures, LT_EXPR, GT_EXPR)) return true; } } break; } default:; } } } break; } default:; } } break; default:; } if (op1 == op0 || (operand_equal_p (op1, op0, 0) && types_match (op1, op0))) { { /* #line 2356 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { op0 }; if (gimple_simplify_150 (res_code, res_ops, seq, valueize, type, captures, LT_EXPR)) return true; } } switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case BIT_NOT_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case BIT_NOT_EXPR: { tree o40 = gimple_assign_rhs1 (def); if ((o40 = do_valueize (valueize, o40))) { { /* #line 2377 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, op1, o40 }; if (gimple_simplify_210 (res_code, res_ops, seq, valueize, type, captures, LT_EXPR)) return true; } } break; } default:; } } break; default:; } if (CONSTANT_CLASS_P (op1)) { { /* #line 2385 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, op1 }; if (gimple_simplify_113 (res_code, res_ops, seq, valueize, type, captures, LT_EXPR, GT_EXPR)) return true; } } } break; } CASE_CONVERT: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { CASE_CONVERT: { tree o40 = gimple_assign_rhs1 (def); if ((o40 = do_valueize (valueize, o40))) { { /* #line 2393 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, o40 }; if (gimple_simplify_212 (res_code, res_ops, seq, valueize, type, captures, LT_EXPR)) return true; } } break; } default:; } } break; default:; } { /* #line 2393 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, op1 }; if (gimple_simplify_212 (res_code, res_ops, seq, valueize, type, captures, LT_EXPR)) return true; } } break; } default:; } } break; default:; } switch (TREE_CODE (op1)) { case REAL_CST: { { /* #line 2423 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 }; if (gimple_simplify_190 (res_code, res_ops, seq, valueize, type, captures, LT_EXPR)) return true; } break; } default:; } switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case PLUS_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { if (tree_swap_operands_p (o20, o21)) std::swap (o20, o21); switch (TREE_CODE (o21)) { case REAL_CST: { switch (TREE_CODE (op1)) { case REAL_CST: { { /* #line 2480 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 }; if (gimple_simplify_100 (res_code, res_ops, seq, valueize, type, captures, PLUS_EXPR, LT_EXPR)) return true; } break; } default:; } break; } default:; } } } break; } case MINUS_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { switch (TREE_CODE (o21)) { case REAL_CST: { switch (TREE_CODE (op1)) { case REAL_CST: { { /* #line 2480 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 }; if (gimple_simplify_100 (res_code, res_ops, seq, valueize, type, captures, MINUS_EXPR, LT_EXPR)) return true; } break; } default:; } break; } default:; } switch (TREE_CODE (o20)) { case REAL_CST: { switch (TREE_CODE (op1)) { case REAL_CST: { { /* #line 2496 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 }; if (gimple_simplify_102 (res_code, res_ops, seq, valueize, type, captures, LT_EXPR)) return true; } break; } default:; } break; } default:; } } } break; } case EXACT_DIV_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { switch (TREE_CODE (o21)) { case INTEGER_CST: { switch (TREE_CODE (op1)) { case INTEGER_CST: { { /* #line 2610 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 }; if (gimple_simplify_141 (res_code, res_ops, seq, valueize, type, captures, LT_EXPR)) return true; } break; } default:; } break; } default:; } } } break; } case NEGATE_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case NEGATE_EXPR: { tree o40 = gimple_assign_rhs1 (def); if ((o40 = do_valueize (valueize, o40))) { { /* #line 2660 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, o40 }; if (gimple_simplify_169 (res_code, res_ops, seq, valueize, type, captures, LT_EXPR, GT_EXPR)) return true; } } break; } default:; } } break; default:; } if (CONSTANT_CLASS_P (op1)) { { /* #line 2666 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 }; if (gimple_simplify_134 (res_code, res_ops, seq, valueize, type, captures, LT_EXPR, GT_EXPR)) return true; } } } break; } CASE_CONVERT: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { CASE_CONVERT: { tree o40 = gimple_assign_rhs1 (def); if ((o40 = do_valueize (valueize, o40))) { { /* #line 2683 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, op1, o40 }; if (gimple_simplify_115 (res_code, res_ops, seq, valueize, type, captures, LT_EXPR)) return true; } } break; } default:; } } break; default:; } { /* #line 2683 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, op1, op1 }; if (gimple_simplify_26 (res_code, res_ops, seq, valueize, type, captures, LT_EXPR)) return true; } switch (TREE_CODE (o20)) { case ADDR_EXPR: { switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { CASE_CONVERT: { tree o40 = gimple_assign_rhs1 (def); if ((o40 = do_valueize (valueize, o40))) { switch (TREE_CODE (o40)) { case ADDR_EXPR: { { /* #line 2851 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, o40 }; if (gimple_simplify_135 (res_code, res_ops, seq, valueize, type, captures, LT_EXPR)) return true; } break; } default:; } } break; } default:; } } break; case ADDR_EXPR: { { /* #line 2851 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, op1 }; if (gimple_simplify_135 (res_code, res_ops, seq, valueize, type, captures, LT_EXPR)) return true; } break; } default:; } break; } default:; } switch (TREE_CODE (op1)) { case INTEGER_CST: { { /* #line 2954 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, op1 }; if (gimple_simplify_31 (res_code, res_ops, seq, valueize, type, captures, LT_EXPR)) return true; } break; } default:; } } break; } default:; } else if (gcall *def = dyn_cast (def_stmt)) switch (gimple_call_combined_fn (def)) { case CFN_BUILT_IN_SQRTF: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { switch (TREE_CODE (op1)) { case REAL_CST: { { /* #line 2504 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 }; if (gimple_simplify_205 (res_code, res_ops, seq, valueize, type, captures, CFN_BUILT_IN_SQRTF, LT_EXPR)) return true; } break; } default:; } } break; } case CFN_BUILT_IN_SQRT: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { switch (TREE_CODE (op1)) { case REAL_CST: { { /* #line 2504 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 }; if (gimple_simplify_205 (res_code, res_ops, seq, valueize, type, captures, CFN_BUILT_IN_SQRT, LT_EXPR)) return true; } break; } default:; } } break; } case CFN_BUILT_IN_SQRTL: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { switch (TREE_CODE (op1)) { case REAL_CST: { { /* #line 2504 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 }; if (gimple_simplify_205 (res_code, res_ops, seq, valueize, type, captures, CFN_BUILT_IN_SQRTL, LT_EXPR)) return true; } break; } default:; } } break; } case CFN_SQRT: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { switch (TREE_CODE (op1)) { case REAL_CST: { { /* #line 2504 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 }; if (gimple_simplify_205 (res_code, res_ops, seq, valueize, type, captures, CFN_SQRT, LT_EXPR)) return true; } break; } default:; } } break; } default:; } } break; case ADDR_EXPR: { switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { CASE_CONVERT: { tree o30 = gimple_assign_rhs1 (def); if ((o30 = do_valueize (valueize, o30))) { switch (TREE_CODE (o30)) { case ADDR_EXPR: { { /* #line 2851 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { op0, op0, o30 }; if (gimple_simplify_103 (res_code, res_ops, seq, valueize, type, captures, LT_EXPR)) return true; } break; } default:; } } break; } default:; } } break; case ADDR_EXPR: { { /* #line 2851 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { op0, op0, op1 }; if (gimple_simplify_103 (res_code, res_ops, seq, valueize, type, captures, LT_EXPR)) return true; } break; } default:; } break; } default:; } switch (TREE_CODE (op1)) { case INTEGER_CST: { { /* #line 2954 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { op0, op0, op1 }; if (gimple_simplify_123 (res_code, res_ops, seq, valueize, type, captures, LT_EXPR)) return true; } break; } default:; } switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case PLUS_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { if (tree_swap_operands_p (o20, o21)) std::swap (o20, o21); switch (TREE_CODE (o21)) { case INTEGER_CST: { if (op1 == o20 || (operand_equal_p (op1, o20, 0) && types_match (op1, o20))) { { /* #line 3051 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, o21 }; if (gimple_simplify_59 (res_code, res_ops, seq, valueize, type, captures, LT_EXPR, GT_EXPR)) return true; } } break; } default:; } } } break; } default:; } } break; default:; } switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case PLUS_EXPR: { tree o30 = gimple_assign_rhs1 (def); if ((o30 = do_valueize (valueize, o30))) { tree o31 = gimple_assign_rhs2 (def); if ((o31 = do_valueize (valueize, o31))) { if (tree_swap_operands_p (o30, o31)) std::swap (o30, o31); if (o30 == op0 || (operand_equal_p (o30, op0, 0) && types_match (o30, op0))) { switch (TREE_CODE (o31)) { case INTEGER_CST: { { /* #line 3051 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { op1, op0, o31 }; if (gimple_simplify_59 (res_code, res_ops, seq, valueize, type, captures, GT_EXPR, LE_EXPR)) return true; } break; } default:; } } } } break; } case MINUS_EXPR: { tree o30 = gimple_assign_rhs1 (def); if ((o30 = do_valueize (valueize, o30))) { tree o31 = gimple_assign_rhs2 (def); if ((o31 = do_valueize (valueize, o31))) { if (o30 == op0 || (operand_equal_p (o30, op0, 0) && types_match (o30, op0))) { { /* #line 3064 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { op1, op0, o31 }; if (gimple_simplify_5 (res_code, res_ops, seq, valueize, type, captures, GT_EXPR)) return true; } } } } break; } case REALPART_EXPR: { tree o30 = TREE_OPERAND (gimple_assign_rhs1 (def), 0); if ((TREE_CODE (o30) == SSA_NAME || is_gimple_min_invariant (o30)) && (o30 = do_valueize (valueize, o30))) { switch (TREE_CODE (o30)) { case SSA_NAME: if (do_valueize (valueize, o30) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (o30); if (gcall *def = dyn_cast (def_stmt)) switch (gimple_call_combined_fn (def)) { case CFN_SUB_OVERFLOW: { tree o40 = gimple_call_arg (def, 0); if ((o40 = do_valueize (valueize, o40))) { tree o41 = gimple_call_arg (def, 1); if ((o41 = do_valueize (valueize, o41))) { if (o40 == op0 || (operand_equal_p (o40, op0, 0) && types_match (o40, op0))) { { /* #line 3076 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o30, op0, o41 }; if (gimple_simplify_185 (res_code, res_ops, seq, valueize, type, captures, GT_EXPR, NE_EXPR)) return true; } } } } break; } default:; } } break; default:; } } break; } default:; } } break; default:; } switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case REALPART_EXPR: { tree o20 = TREE_OPERAND (gimple_assign_rhs1 (def), 0); if ((TREE_CODE (o20) == SSA_NAME || is_gimple_min_invariant (o20)) && (o20 = do_valueize (valueize, o20))) { switch (TREE_CODE (o20)) { case SSA_NAME: if (do_valueize (valueize, o20) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (o20); if (gcall *def = dyn_cast (def_stmt)) switch (gimple_call_combined_fn (def)) { case CFN_ADD_OVERFLOW: { tree o30 = gimple_call_arg (def, 0); if ((o30 = do_valueize (valueize, o30))) { tree o31 = gimple_call_arg (def, 1); if ((o31 = do_valueize (valueize, o31))) { if (op1 == o30 || (operand_equal_p (op1, o30, 0) && types_match (op1, o30))) { { /* #line 3084 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o20, o30, o31 }; if (gimple_simplify_187 (res_code, res_ops, seq, valueize, type, captures, LT_EXPR, NE_EXPR)) return true; } } if (op1 == o31 || (operand_equal_p (op1, o31, 0) && types_match (op1, o31))) { { /* #line 3084 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o20, o31, o30 }; if (gimple_simplify_187 (res_code, res_ops, seq, valueize, type, captures, LT_EXPR, NE_EXPR)) return true; } } } } break; } default:; } } break; default:; } } break; } case TRUNC_DIV_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { if (integer_all_onesp (o20)) { { /* #line 3094 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { op0, o21, op1 }; if (gimple_simplify_214 (res_code, res_ops, seq, valueize, type, captures, LT_EXPR, NE_EXPR)) return true; } } } } break; } case PLUS_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { if (tree_swap_operands_p (o20, o21)) std::swap (o20, o21); switch (TREE_CODE (o21)) { case INTEGER_CST: { switch (TREE_CODE (op1)) { case INTEGER_CST: { { /* #line 3727 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o21, op1 }; if (gimple_simplify_166 (res_code, res_ops, seq, valueize, type, captures, PLUS_EXPR, MINUS_EXPR, LT_EXPR)) return true; } break; } default:; } break; } default:; } } } break; } case MINUS_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { switch (TREE_CODE (o21)) { case INTEGER_CST: { switch (TREE_CODE (op1)) { case INTEGER_CST: { { /* #line 3727 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o21, op1 }; if (gimple_simplify_166 (res_code, res_ops, seq, valueize, type, captures, MINUS_EXPR, PLUS_EXPR, LT_EXPR)) return true; } break; } default:; } break; } default:; } } } break; } default:; } } break; default:; } return false; } static bool gimple_simplify_GE_EXPR (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree op0, tree op1) { switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case TRUNC_MOD_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { if (op1 == o21 || (operand_equal_p (op1, o21, 0) && types_match (op1, o21))) { { /* #line 595 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 }; if (gimple_simplify_8 (res_code, res_ops, seq, valueize, type, captures, GE_EXPR)) return true; } } } } break; } case MULT_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { if (tree_swap_operands_p (o20, o21)) std::swap (o20, o21); switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case MULT_EXPR: { tree o50 = gimple_assign_rhs1 (def); if ((o50 = do_valueize (valueize, o50))) { tree o51 = gimple_assign_rhs2 (def); if ((o51 = do_valueize (valueize, o51))) { if (tree_swap_operands_p (o50, o51)) std::swap (o50, o51); if (o51 == o21 || (operand_equal_p (o51, o21, 0) && types_match (o51, o21))) { { /* #line 1031 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, o50 }; if (gimple_simplify_209 (res_code, res_ops, seq, valueize, type, captures, GE_EXPR)) return true; } } if (o50 == o21 || (operand_equal_p (o50, o21, 0) && types_match (o50, o21))) { { /* #line 1031 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, o51 }; if (gimple_simplify_209 (res_code, res_ops, seq, valueize, type, captures, GE_EXPR)) return true; } } if (o51 == o20 || (operand_equal_p (o51, o20, 0) && types_match (o51, o20))) { { /* #line 1031 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o21, o20, o50 }; if (gimple_simplify_209 (res_code, res_ops, seq, valueize, type, captures, GE_EXPR)) return true; } } if (o50 == o20 || (operand_equal_p (o50, o20, 0) && types_match (o50, o20))) { { /* #line 1031 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o21, o20, o51 }; if (gimple_simplify_209 (res_code, res_ops, seq, valueize, type, captures, GE_EXPR)) return true; } } } } break; } default:; } } break; default:; } } } break; } case MAX_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { if (tree_swap_operands_p (o20, o21)) std::swap (o20, o21); switch (TREE_CODE (o21)) { case INTEGER_CST: { switch (TREE_CODE (op1)) { case INTEGER_CST: { { /* #line 1485 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 }; if (gimple_simplify_227 (res_code, res_ops, seq, valueize, type, captures, MAX_EXPR, GE_EXPR, BIT_IOR_EXPR)) return true; } break; } default:; } break; } default:; } } } break; } case MIN_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { if (tree_swap_operands_p (o20, o21)) std::swap (o20, o21); switch (TREE_CODE (o21)) { case INTEGER_CST: { switch (TREE_CODE (op1)) { case INTEGER_CST: { { /* #line 1485 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 }; if (gimple_simplify_227 (res_code, res_ops, seq, valueize, type, captures, MIN_EXPR, GE_EXPR, BIT_AND_EXPR)) return true; } break; } default:; } break; } default:; } } } break; } default:; } } break; default:; } switch (TREE_CODE (op1)) { case INTEGER_CST: { { /* #line 2274 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 }; if (gimple_simplify_118 (res_code, res_ops, seq, valueize, type, captures, GE_EXPR, GT_EXPR)) return true; } break; } default:; } switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case MULT_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { if (tree_swap_operands_p (o20, o21)) std::swap (o20, o21); switch (TREE_CODE (o21)) { case INTEGER_CST: { if (integer_zerop (op1)) { { /* #line 2333 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o21, op1 }; if (gimple_simplify_36 (res_code, res_ops, seq, valueize, type, captures, GE_EXPR, LE_EXPR)) return true; } } break; } default:; } } } break; } default:; } } break; default:; } if (op1 == op0 || (operand_equal_p (op1, op0, 0) && types_match (op1, op0))) { { /* #line 2348 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { op0 }; if (gimple_simplify_91 (res_code, res_ops, seq, valueize, type, captures, GE_EXPR)) return true; } } switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case BIT_NOT_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case BIT_NOT_EXPR: { tree o40 = gimple_assign_rhs1 (def); if ((o40 = do_valueize (valueize, o40))) { { /* #line 2377 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, op1, o40 }; if (gimple_simplify_210 (res_code, res_ops, seq, valueize, type, captures, GE_EXPR)) return true; } } break; } default:; } } break; default:; } if (CONSTANT_CLASS_P (op1)) { { /* #line 2385 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, op1 }; if (gimple_simplify_113 (res_code, res_ops, seq, valueize, type, captures, GE_EXPR, LE_EXPR)) return true; } } } break; } CASE_CONVERT: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { CASE_CONVERT: { tree o40 = gimple_assign_rhs1 (def); if ((o40 = do_valueize (valueize, o40))) { { /* #line 2393 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, o40 }; if (gimple_simplify_212 (res_code, res_ops, seq, valueize, type, captures, GE_EXPR)) return true; } } break; } default:; } } break; default:; } { /* #line 2393 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, op1 }; if (gimple_simplify_212 (res_code, res_ops, seq, valueize, type, captures, GE_EXPR)) return true; } } break; } default:; } } break; default:; } switch (TREE_CODE (op1)) { case REAL_CST: { { /* #line 2423 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 }; if (gimple_simplify_190 (res_code, res_ops, seq, valueize, type, captures, GE_EXPR)) return true; } break; } default:; } switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case PLUS_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { if (tree_swap_operands_p (o20, o21)) std::swap (o20, o21); switch (TREE_CODE (o21)) { case REAL_CST: { switch (TREE_CODE (op1)) { case REAL_CST: { { /* #line 2480 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 }; if (gimple_simplify_100 (res_code, res_ops, seq, valueize, type, captures, PLUS_EXPR, GE_EXPR)) return true; } break; } default:; } break; } default:; } } } break; } case MINUS_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { switch (TREE_CODE (o21)) { case REAL_CST: { switch (TREE_CODE (op1)) { case REAL_CST: { { /* #line 2480 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 }; if (gimple_simplify_100 (res_code, res_ops, seq, valueize, type, captures, MINUS_EXPR, GE_EXPR)) return true; } break; } default:; } break; } default:; } switch (TREE_CODE (o20)) { case REAL_CST: { switch (TREE_CODE (op1)) { case REAL_CST: { { /* #line 2496 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 }; if (gimple_simplify_102 (res_code, res_ops, seq, valueize, type, captures, GE_EXPR)) return true; } break; } default:; } break; } default:; } } } break; } case EXACT_DIV_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { switch (TREE_CODE (o21)) { case INTEGER_CST: { switch (TREE_CODE (op1)) { case INTEGER_CST: { { /* #line 2610 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 }; if (gimple_simplify_141 (res_code, res_ops, seq, valueize, type, captures, GE_EXPR)) return true; } break; } default:; } break; } default:; } } } break; } case NEGATE_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case NEGATE_EXPR: { tree o40 = gimple_assign_rhs1 (def); if ((o40 = do_valueize (valueize, o40))) { { /* #line 2660 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, o40 }; if (gimple_simplify_169 (res_code, res_ops, seq, valueize, type, captures, GE_EXPR, LE_EXPR)) return true; } } break; } default:; } } break; default:; } if (CONSTANT_CLASS_P (op1)) { { /* #line 2666 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 }; if (gimple_simplify_134 (res_code, res_ops, seq, valueize, type, captures, GE_EXPR, LE_EXPR)) return true; } } } break; } CASE_CONVERT: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { CASE_CONVERT: { tree o40 = gimple_assign_rhs1 (def); if ((o40 = do_valueize (valueize, o40))) { { /* #line 2683 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, op1, o40 }; if (gimple_simplify_115 (res_code, res_ops, seq, valueize, type, captures, GE_EXPR)) return true; } } break; } default:; } } break; default:; } { /* #line 2683 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, op1, op1 }; if (gimple_simplify_26 (res_code, res_ops, seq, valueize, type, captures, GE_EXPR)) return true; } switch (TREE_CODE (o20)) { case ADDR_EXPR: { switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { CASE_CONVERT: { tree o40 = gimple_assign_rhs1 (def); if ((o40 = do_valueize (valueize, o40))) { switch (TREE_CODE (o40)) { case ADDR_EXPR: { { /* #line 2851 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, o40 }; if (gimple_simplify_135 (res_code, res_ops, seq, valueize, type, captures, GE_EXPR)) return true; } break; } default:; } } break; } default:; } } break; case ADDR_EXPR: { { /* #line 2851 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, op1 }; if (gimple_simplify_135 (res_code, res_ops, seq, valueize, type, captures, GE_EXPR)) return true; } break; } default:; } break; } default:; } switch (TREE_CODE (op1)) { case INTEGER_CST: { { /* #line 2954 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, op1 }; if (gimple_simplify_31 (res_code, res_ops, seq, valueize, type, captures, GE_EXPR)) return true; } break; } default:; } } break; } default:; } else if (gcall *def = dyn_cast (def_stmt)) switch (gimple_call_combined_fn (def)) { case CFN_BUILT_IN_SQRTF: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { switch (TREE_CODE (op1)) { case REAL_CST: { { /* #line 2504 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 }; if (gimple_simplify_205 (res_code, res_ops, seq, valueize, type, captures, CFN_BUILT_IN_SQRTF, GE_EXPR)) return true; } break; } default:; } } break; } case CFN_BUILT_IN_SQRT: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { switch (TREE_CODE (op1)) { case REAL_CST: { { /* #line 2504 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 }; if (gimple_simplify_205 (res_code, res_ops, seq, valueize, type, captures, CFN_BUILT_IN_SQRT, GE_EXPR)) return true; } break; } default:; } } break; } case CFN_BUILT_IN_SQRTL: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { switch (TREE_CODE (op1)) { case REAL_CST: { { /* #line 2504 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 }; if (gimple_simplify_205 (res_code, res_ops, seq, valueize, type, captures, CFN_BUILT_IN_SQRTL, GE_EXPR)) return true; } break; } default:; } } break; } case CFN_SQRT: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { switch (TREE_CODE (op1)) { case REAL_CST: { { /* #line 2504 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 }; if (gimple_simplify_205 (res_code, res_ops, seq, valueize, type, captures, CFN_SQRT, GE_EXPR)) return true; } break; } default:; } } break; } default:; } } break; case ADDR_EXPR: { switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { CASE_CONVERT: { tree o30 = gimple_assign_rhs1 (def); if ((o30 = do_valueize (valueize, o30))) { switch (TREE_CODE (o30)) { case ADDR_EXPR: { { /* #line 2851 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { op0, op0, o30 }; if (gimple_simplify_103 (res_code, res_ops, seq, valueize, type, captures, GE_EXPR)) return true; } break; } default:; } } break; } default:; } } break; case ADDR_EXPR: { { /* #line 2851 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { op0, op0, op1 }; if (gimple_simplify_103 (res_code, res_ops, seq, valueize, type, captures, GE_EXPR)) return true; } break; } default:; } break; } default:; } switch (TREE_CODE (op1)) { case INTEGER_CST: { { /* #line 2954 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { op0, op0, op1 }; if (gimple_simplify_123 (res_code, res_ops, seq, valueize, type, captures, GE_EXPR)) return true; } break; } default:; } switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case PLUS_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { if (tree_swap_operands_p (o20, o21)) std::swap (o20, o21); switch (TREE_CODE (o21)) { case INTEGER_CST: { if (op1 == o20 || (operand_equal_p (op1, o20, 0) && types_match (op1, o20))) { { /* #line 3051 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, o21 }; if (gimple_simplify_59 (res_code, res_ops, seq, valueize, type, captures, GE_EXPR, LE_EXPR)) return true; } } break; } default:; } } } break; } default:; } } break; default:; } switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case PLUS_EXPR: { tree o30 = gimple_assign_rhs1 (def); if ((o30 = do_valueize (valueize, o30))) { tree o31 = gimple_assign_rhs2 (def); if ((o31 = do_valueize (valueize, o31))) { if (tree_swap_operands_p (o30, o31)) std::swap (o30, o31); if (o30 == op0 || (operand_equal_p (o30, op0, 0) && types_match (o30, op0))) { switch (TREE_CODE (o31)) { case INTEGER_CST: { { /* #line 3051 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { op1, op0, o31 }; if (gimple_simplify_59 (res_code, res_ops, seq, valueize, type, captures, LE_EXPR, GT_EXPR)) return true; } break; } default:; } } } } break; } case MINUS_EXPR: { tree o30 = gimple_assign_rhs1 (def); if ((o30 = do_valueize (valueize, o30))) { tree o31 = gimple_assign_rhs2 (def); if ((o31 = do_valueize (valueize, o31))) { if (o30 == op0 || (operand_equal_p (o30, op0, 0) && types_match (o30, op0))) { { /* #line 3064 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { op1, op0, o31 }; if (gimple_simplify_5 (res_code, res_ops, seq, valueize, type, captures, LE_EXPR)) return true; } } } } break; } case REALPART_EXPR: { tree o30 = TREE_OPERAND (gimple_assign_rhs1 (def), 0); if ((TREE_CODE (o30) == SSA_NAME || is_gimple_min_invariant (o30)) && (o30 = do_valueize (valueize, o30))) { switch (TREE_CODE (o30)) { case SSA_NAME: if (do_valueize (valueize, o30) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (o30); if (gcall *def = dyn_cast (def_stmt)) switch (gimple_call_combined_fn (def)) { case CFN_SUB_OVERFLOW: { tree o40 = gimple_call_arg (def, 0); if ((o40 = do_valueize (valueize, o40))) { tree o41 = gimple_call_arg (def, 1); if ((o41 = do_valueize (valueize, o41))) { if (o40 == op0 || (operand_equal_p (o40, op0, 0) && types_match (o40, op0))) { { /* #line 3076 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o30, op0, o41 }; if (gimple_simplify_185 (res_code, res_ops, seq, valueize, type, captures, LE_EXPR, EQ_EXPR)) return true; } } } } break; } default:; } } break; default:; } } break; } default:; } } break; default:; } switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case REALPART_EXPR: { tree o20 = TREE_OPERAND (gimple_assign_rhs1 (def), 0); if ((TREE_CODE (o20) == SSA_NAME || is_gimple_min_invariant (o20)) && (o20 = do_valueize (valueize, o20))) { switch (TREE_CODE (o20)) { case SSA_NAME: if (do_valueize (valueize, o20) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (o20); if (gcall *def = dyn_cast (def_stmt)) switch (gimple_call_combined_fn (def)) { case CFN_ADD_OVERFLOW: { tree o30 = gimple_call_arg (def, 0); if ((o30 = do_valueize (valueize, o30))) { tree o31 = gimple_call_arg (def, 1); if ((o31 = do_valueize (valueize, o31))) { if (op1 == o30 || (operand_equal_p (op1, o30, 0) && types_match (op1, o30))) { { /* #line 3084 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o20, o30, o31 }; if (gimple_simplify_187 (res_code, res_ops, seq, valueize, type, captures, GE_EXPR, EQ_EXPR)) return true; } } if (op1 == o31 || (operand_equal_p (op1, o31, 0) && types_match (op1, o31))) { { /* #line 3084 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o20, o31, o30 }; if (gimple_simplify_187 (res_code, res_ops, seq, valueize, type, captures, GE_EXPR, EQ_EXPR)) return true; } } } } break; } default:; } } break; default:; } } break; } case TRUNC_DIV_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { if (integer_all_onesp (o20)) { { /* #line 3094 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { op0, o21, op1 }; if (gimple_simplify_214 (res_code, res_ops, seq, valueize, type, captures, GE_EXPR, EQ_EXPR)) return true; } } } } break; } case PLUS_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { if (tree_swap_operands_p (o20, o21)) std::swap (o20, o21); switch (TREE_CODE (o21)) { case INTEGER_CST: { switch (TREE_CODE (op1)) { case INTEGER_CST: { { /* #line 3727 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o21, op1 }; if (gimple_simplify_166 (res_code, res_ops, seq, valueize, type, captures, PLUS_EXPR, MINUS_EXPR, GE_EXPR)) return true; } break; } default:; } break; } default:; } } } break; } case MINUS_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { switch (TREE_CODE (o21)) { case INTEGER_CST: { switch (TREE_CODE (op1)) { case INTEGER_CST: { { /* #line 3727 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o21, op1 }; if (gimple_simplify_166 (res_code, res_ops, seq, valueize, type, captures, MINUS_EXPR, PLUS_EXPR, GE_EXPR)) return true; } break; } default:; } break; } default:; } } } break; } default:; } } break; default:; } return false; } static bool gimple_simplify_GT_EXPR (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree op0, tree op1) { switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case TRUNC_MOD_EXPR: { tree o30 = gimple_assign_rhs1 (def); if ((o30 = do_valueize (valueize, o30))) { tree o31 = gimple_assign_rhs2 (def); if ((o31 = do_valueize (valueize, o31))) { if (o31 == op0 || (operand_equal_p (o31, op0, 0) && types_match (o31, op0))) { { /* #line 600 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { op0, o30 }; if (gimple_simplify_94 (res_code, res_ops, seq, valueize, type, captures, GT_EXPR)) return true; } } } } break; } default:; } } break; default:; } switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case MULT_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { if (tree_swap_operands_p (o20, o21)) std::swap (o20, o21); switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case MULT_EXPR: { tree o50 = gimple_assign_rhs1 (def); if ((o50 = do_valueize (valueize, o50))) { tree o51 = gimple_assign_rhs2 (def); if ((o51 = do_valueize (valueize, o51))) { if (tree_swap_operands_p (o50, o51)) std::swap (o50, o51); if (o51 == o21 || (operand_equal_p (o51, o21, 0) && types_match (o51, o21))) { { /* #line 1031 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, o50 }; if (gimple_simplify_209 (res_code, res_ops, seq, valueize, type, captures, GT_EXPR)) return true; } } if (o50 == o21 || (operand_equal_p (o50, o21, 0) && types_match (o50, o21))) { { /* #line 1031 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, o51 }; if (gimple_simplify_209 (res_code, res_ops, seq, valueize, type, captures, GT_EXPR)) return true; } } if (o51 == o20 || (operand_equal_p (o51, o20, 0) && types_match (o51, o20))) { { /* #line 1031 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o21, o20, o50 }; if (gimple_simplify_209 (res_code, res_ops, seq, valueize, type, captures, GT_EXPR)) return true; } } if (o50 == o20 || (operand_equal_p (o50, o20, 0) && types_match (o50, o20))) { { /* #line 1031 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o21, o20, o51 }; if (gimple_simplify_209 (res_code, res_ops, seq, valueize, type, captures, GT_EXPR)) return true; } } } } break; } default:; } } break; default:; } } } break; } case MAX_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { if (tree_swap_operands_p (o20, o21)) std::swap (o20, o21); switch (TREE_CODE (o21)) { case INTEGER_CST: { switch (TREE_CODE (op1)) { case INTEGER_CST: { { /* #line 1485 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 }; if (gimple_simplify_227 (res_code, res_ops, seq, valueize, type, captures, MAX_EXPR, GT_EXPR, BIT_IOR_EXPR)) return true; } break; } default:; } break; } default:; } } } break; } case MIN_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { if (tree_swap_operands_p (o20, o21)) std::swap (o20, o21); switch (TREE_CODE (o21)) { case INTEGER_CST: { switch (TREE_CODE (op1)) { case INTEGER_CST: { { /* #line 1485 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 }; if (gimple_simplify_227 (res_code, res_ops, seq, valueize, type, captures, MIN_EXPR, GT_EXPR, BIT_AND_EXPR)) return true; } break; } default:; } break; } default:; } } } break; } default:; } } break; default:; } switch (TREE_CODE (op1)) { case INTEGER_CST: { { /* #line 2268 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 }; if (gimple_simplify_78 (res_code, res_ops, seq, valueize, type, captures, GT_EXPR, GE_EXPR)) return true; } break; } default:; } switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case MULT_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { if (tree_swap_operands_p (o20, o21)) std::swap (o20, o21); switch (TREE_CODE (o21)) { case INTEGER_CST: { if (integer_zerop (op1)) { { /* #line 2333 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o21, op1 }; if (gimple_simplify_36 (res_code, res_ops, seq, valueize, type, captures, GT_EXPR, LT_EXPR)) return true; } } break; } default:; } } } break; } default:; } } break; default:; } if (op1 == op0 || (operand_equal_p (op1, op0, 0) && types_match (op1, op0))) { { /* #line 2356 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { op0 }; if (gimple_simplify_150 (res_code, res_ops, seq, valueize, type, captures, GT_EXPR)) return true; } } switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case BIT_NOT_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case BIT_NOT_EXPR: { tree o40 = gimple_assign_rhs1 (def); if ((o40 = do_valueize (valueize, o40))) { { /* #line 2377 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, op1, o40 }; if (gimple_simplify_210 (res_code, res_ops, seq, valueize, type, captures, GT_EXPR)) return true; } } break; } default:; } } break; default:; } if (CONSTANT_CLASS_P (op1)) { { /* #line 2385 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, op1 }; if (gimple_simplify_113 (res_code, res_ops, seq, valueize, type, captures, GT_EXPR, LT_EXPR)) return true; } } } break; } CASE_CONVERT: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { CASE_CONVERT: { tree o40 = gimple_assign_rhs1 (def); if ((o40 = do_valueize (valueize, o40))) { { /* #line 2393 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, o40 }; if (gimple_simplify_212 (res_code, res_ops, seq, valueize, type, captures, GT_EXPR)) return true; } } break; } default:; } } break; default:; } { /* #line 2393 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, op1 }; if (gimple_simplify_212 (res_code, res_ops, seq, valueize, type, captures, GT_EXPR)) return true; } } break; } default:; } } break; default:; } switch (TREE_CODE (op1)) { case REAL_CST: { { /* #line 2423 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 }; if (gimple_simplify_190 (res_code, res_ops, seq, valueize, type, captures, GT_EXPR)) return true; } break; } default:; } switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case PLUS_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { if (tree_swap_operands_p (o20, o21)) std::swap (o20, o21); switch (TREE_CODE (o21)) { case REAL_CST: { switch (TREE_CODE (op1)) { case REAL_CST: { { /* #line 2480 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 }; if (gimple_simplify_100 (res_code, res_ops, seq, valueize, type, captures, PLUS_EXPR, GT_EXPR)) return true; } break; } default:; } break; } default:; } } } break; } case MINUS_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { switch (TREE_CODE (o21)) { case REAL_CST: { switch (TREE_CODE (op1)) { case REAL_CST: { { /* #line 2480 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 }; if (gimple_simplify_100 (res_code, res_ops, seq, valueize, type, captures, MINUS_EXPR, GT_EXPR)) return true; } break; } default:; } break; } default:; } switch (TREE_CODE (o20)) { case REAL_CST: { switch (TREE_CODE (op1)) { case REAL_CST: { { /* #line 2496 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 }; if (gimple_simplify_102 (res_code, res_ops, seq, valueize, type, captures, GT_EXPR)) return true; } break; } default:; } break; } default:; } } } break; } case EXACT_DIV_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { switch (TREE_CODE (o21)) { case INTEGER_CST: { switch (TREE_CODE (op1)) { case INTEGER_CST: { { /* #line 2610 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 }; if (gimple_simplify_141 (res_code, res_ops, seq, valueize, type, captures, GT_EXPR)) return true; } break; } default:; } break; } default:; } } } break; } case NEGATE_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case NEGATE_EXPR: { tree o40 = gimple_assign_rhs1 (def); if ((o40 = do_valueize (valueize, o40))) { { /* #line 2660 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, o40 }; if (gimple_simplify_169 (res_code, res_ops, seq, valueize, type, captures, GT_EXPR, LT_EXPR)) return true; } } break; } default:; } } break; default:; } if (CONSTANT_CLASS_P (op1)) { { /* #line 2666 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 }; if (gimple_simplify_134 (res_code, res_ops, seq, valueize, type, captures, GT_EXPR, LT_EXPR)) return true; } } } break; } CASE_CONVERT: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { CASE_CONVERT: { tree o40 = gimple_assign_rhs1 (def); if ((o40 = do_valueize (valueize, o40))) { { /* #line 2683 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, op1, o40 }; if (gimple_simplify_115 (res_code, res_ops, seq, valueize, type, captures, GT_EXPR)) return true; } } break; } default:; } } break; default:; } { /* #line 2683 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, op1, op1 }; if (gimple_simplify_26 (res_code, res_ops, seq, valueize, type, captures, GT_EXPR)) return true; } switch (TREE_CODE (o20)) { case ADDR_EXPR: { switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { CASE_CONVERT: { tree o40 = gimple_assign_rhs1 (def); if ((o40 = do_valueize (valueize, o40))) { switch (TREE_CODE (o40)) { case ADDR_EXPR: { { /* #line 2851 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, o40 }; if (gimple_simplify_135 (res_code, res_ops, seq, valueize, type, captures, GT_EXPR)) return true; } break; } default:; } } break; } default:; } } break; case ADDR_EXPR: { { /* #line 2851 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, op1 }; if (gimple_simplify_135 (res_code, res_ops, seq, valueize, type, captures, GT_EXPR)) return true; } break; } default:; } break; } default:; } switch (TREE_CODE (op1)) { case INTEGER_CST: { { /* #line 2954 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, op1 }; if (gimple_simplify_31 (res_code, res_ops, seq, valueize, type, captures, GT_EXPR)) return true; } break; } default:; } } break; } default:; } else if (gcall *def = dyn_cast (def_stmt)) switch (gimple_call_combined_fn (def)) { case CFN_BUILT_IN_SQRTF: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { switch (TREE_CODE (op1)) { case REAL_CST: { { /* #line 2504 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 }; if (gimple_simplify_205 (res_code, res_ops, seq, valueize, type, captures, CFN_BUILT_IN_SQRTF, GT_EXPR)) return true; } break; } default:; } } break; } case CFN_BUILT_IN_SQRT: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { switch (TREE_CODE (op1)) { case REAL_CST: { { /* #line 2504 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 }; if (gimple_simplify_205 (res_code, res_ops, seq, valueize, type, captures, CFN_BUILT_IN_SQRT, GT_EXPR)) return true; } break; } default:; } } break; } case CFN_BUILT_IN_SQRTL: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { switch (TREE_CODE (op1)) { case REAL_CST: { { /* #line 2504 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 }; if (gimple_simplify_205 (res_code, res_ops, seq, valueize, type, captures, CFN_BUILT_IN_SQRTL, GT_EXPR)) return true; } break; } default:; } } break; } case CFN_SQRT: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { switch (TREE_CODE (op1)) { case REAL_CST: { { /* #line 2504 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 }; if (gimple_simplify_205 (res_code, res_ops, seq, valueize, type, captures, CFN_SQRT, GT_EXPR)) return true; } break; } default:; } } break; } default:; } } break; case ADDR_EXPR: { switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { CASE_CONVERT: { tree o30 = gimple_assign_rhs1 (def); if ((o30 = do_valueize (valueize, o30))) { switch (TREE_CODE (o30)) { case ADDR_EXPR: { { /* #line 2851 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { op0, op0, o30 }; if (gimple_simplify_103 (res_code, res_ops, seq, valueize, type, captures, GT_EXPR)) return true; } break; } default:; } } break; } default:; } } break; case ADDR_EXPR: { { /* #line 2851 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { op0, op0, op1 }; if (gimple_simplify_103 (res_code, res_ops, seq, valueize, type, captures, GT_EXPR)) return true; } break; } default:; } break; } default:; } switch (TREE_CODE (op1)) { case INTEGER_CST: { { /* #line 2954 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { op0, op0, op1 }; if (gimple_simplify_123 (res_code, res_ops, seq, valueize, type, captures, GT_EXPR)) return true; } break; } default:; } switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case PLUS_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { if (tree_swap_operands_p (o20, o21)) std::swap (o20, o21); switch (TREE_CODE (o21)) { case INTEGER_CST: { if (op1 == o20 || (operand_equal_p (op1, o20, 0) && types_match (op1, o20))) { { /* #line 3051 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, o21 }; if (gimple_simplify_59 (res_code, res_ops, seq, valueize, type, captures, GT_EXPR, LE_EXPR)) return true; } } break; } default:; } } } break; } default:; } } break; default:; } switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case PLUS_EXPR: { tree o30 = gimple_assign_rhs1 (def); if ((o30 = do_valueize (valueize, o30))) { tree o31 = gimple_assign_rhs2 (def); if ((o31 = do_valueize (valueize, o31))) { if (tree_swap_operands_p (o30, o31)) std::swap (o30, o31); if (o30 == op0 || (operand_equal_p (o30, op0, 0) && types_match (o30, op0))) { switch (TREE_CODE (o31)) { case INTEGER_CST: { { /* #line 3051 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { op1, op0, o31 }; if (gimple_simplify_59 (res_code, res_ops, seq, valueize, type, captures, LT_EXPR, GT_EXPR)) return true; } break; } default:; } } } } break; } default:; } } break; default:; } switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case MINUS_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { if (op1 == o20 || (operand_equal_p (op1, o20, 0) && types_match (op1, o20))) { { /* #line 3064 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, o21 }; if (gimple_simplify_5 (res_code, res_ops, seq, valueize, type, captures, GT_EXPR)) return true; } } } } break; } case REALPART_EXPR: { tree o20 = TREE_OPERAND (gimple_assign_rhs1 (def), 0); if ((TREE_CODE (o20) == SSA_NAME || is_gimple_min_invariant (o20)) && (o20 = do_valueize (valueize, o20))) { switch (TREE_CODE (o20)) { case SSA_NAME: if (do_valueize (valueize, o20) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (o20); if (gcall *def = dyn_cast (def_stmt)) switch (gimple_call_combined_fn (def)) { case CFN_SUB_OVERFLOW: { tree o30 = gimple_call_arg (def, 0); if ((o30 = do_valueize (valueize, o30))) { tree o31 = gimple_call_arg (def, 1); if ((o31 = do_valueize (valueize, o31))) { if (op1 == o30 || (operand_equal_p (op1, o30, 0) && types_match (op1, o30))) { { /* #line 3076 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o20, o30, o31 }; if (gimple_simplify_186 (res_code, res_ops, seq, valueize, type, captures, GT_EXPR, NE_EXPR)) return true; } } } } break; } default:; } } break; default:; } } break; } default:; } } break; default:; } switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case REALPART_EXPR: { tree o30 = TREE_OPERAND (gimple_assign_rhs1 (def), 0); if ((TREE_CODE (o30) == SSA_NAME || is_gimple_min_invariant (o30)) && (o30 = do_valueize (valueize, o30))) { switch (TREE_CODE (o30)) { case SSA_NAME: if (do_valueize (valueize, o30) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (o30); if (gcall *def = dyn_cast (def_stmt)) switch (gimple_call_combined_fn (def)) { case CFN_ADD_OVERFLOW: { tree o40 = gimple_call_arg (def, 0); if ((o40 = do_valueize (valueize, o40))) { tree o41 = gimple_call_arg (def, 1); if ((o41 = do_valueize (valueize, o41))) { if (o40 == op0 || (operand_equal_p (o40, op0, 0) && types_match (o40, op0))) { { /* #line 3084 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o30, op0, o41 }; if (gimple_simplify_79 (res_code, res_ops, seq, valueize, type, captures, LT_EXPR, NE_EXPR)) return true; } } if (o41 == op0 || (operand_equal_p (o41, op0, 0) && types_match (o41, op0))) { { /* #line 3084 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o30, op0, o40 }; if (gimple_simplify_79 (res_code, res_ops, seq, valueize, type, captures, LT_EXPR, NE_EXPR)) return true; } } } } break; } default:; } } break; default:; } } break; } case TRUNC_DIV_EXPR: { tree o30 = gimple_assign_rhs1 (def); if ((o30 = do_valueize (valueize, o30))) { tree o31 = gimple_assign_rhs2 (def); if ((o31 = do_valueize (valueize, o31))) { if (integer_all_onesp (o30)) { { /* #line 3094 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { op1, o31, op0 }; if (gimple_simplify_10 (res_code, res_ops, seq, valueize, type, captures, LT_EXPR, NE_EXPR)) return true; } } } } break; } default:; } } break; default:; } switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case PLUS_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { if (tree_swap_operands_p (o20, o21)) std::swap (o20, o21); switch (TREE_CODE (o21)) { case INTEGER_CST: { switch (TREE_CODE (op1)) { case INTEGER_CST: { { /* #line 3727 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o21, op1 }; if (gimple_simplify_166 (res_code, res_ops, seq, valueize, type, captures, PLUS_EXPR, MINUS_EXPR, GT_EXPR)) return true; } break; } default:; } break; } default:; } } } break; } case MINUS_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { switch (TREE_CODE (o21)) { case INTEGER_CST: { switch (TREE_CODE (op1)) { case INTEGER_CST: { { /* #line 3727 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o21, op1 }; if (gimple_simplify_166 (res_code, res_ops, seq, valueize, type, captures, MINUS_EXPR, PLUS_EXPR, GT_EXPR)) return true; } break; } default:; } break; } default:; } } } break; } default:; } } break; default:; } return false; } static bool gimple_simplify_LE_EXPR (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree op0, tree op1) { switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case TRUNC_MOD_EXPR: { tree o30 = gimple_assign_rhs1 (def); if ((o30 = do_valueize (valueize, o30))) { tree o31 = gimple_assign_rhs2 (def); if ((o31 = do_valueize (valueize, o31))) { if (o31 == op0 || (operand_equal_p (o31, op0, 0) && types_match (o31, op0))) { { /* #line 600 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { op0, o30 }; if (gimple_simplify_94 (res_code, res_ops, seq, valueize, type, captures, LE_EXPR)) return true; } } } } break; } default:; } } break; default:; } switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case MULT_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { if (tree_swap_operands_p (o20, o21)) std::swap (o20, o21); switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case MULT_EXPR: { tree o50 = gimple_assign_rhs1 (def); if ((o50 = do_valueize (valueize, o50))) { tree o51 = gimple_assign_rhs2 (def); if ((o51 = do_valueize (valueize, o51))) { if (tree_swap_operands_p (o50, o51)) std::swap (o50, o51); if (o51 == o21 || (operand_equal_p (o51, o21, 0) && types_match (o51, o21))) { { /* #line 1031 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, o50 }; if (gimple_simplify_209 (res_code, res_ops, seq, valueize, type, captures, LE_EXPR)) return true; } } if (o50 == o21 || (operand_equal_p (o50, o21, 0) && types_match (o50, o21))) { { /* #line 1031 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, o51 }; if (gimple_simplify_209 (res_code, res_ops, seq, valueize, type, captures, LE_EXPR)) return true; } } if (o51 == o20 || (operand_equal_p (o51, o20, 0) && types_match (o51, o20))) { { /* #line 1031 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o21, o20, o50 }; if (gimple_simplify_209 (res_code, res_ops, seq, valueize, type, captures, LE_EXPR)) return true; } } if (o50 == o20 || (operand_equal_p (o50, o20, 0) && types_match (o50, o20))) { { /* #line 1031 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o21, o20, o51 }; if (gimple_simplify_209 (res_code, res_ops, seq, valueize, type, captures, LE_EXPR)) return true; } } } } break; } default:; } } break; default:; } } } break; } case MIN_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { if (tree_swap_operands_p (o20, o21)) std::swap (o20, o21); switch (TREE_CODE (o21)) { case INTEGER_CST: { switch (TREE_CODE (op1)) { case INTEGER_CST: { { /* #line 1485 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 }; if (gimple_simplify_227 (res_code, res_ops, seq, valueize, type, captures, MIN_EXPR, LE_EXPR, BIT_IOR_EXPR)) return true; } break; } default:; } break; } default:; } } } break; } case MAX_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { if (tree_swap_operands_p (o20, o21)) std::swap (o20, o21); switch (TREE_CODE (o21)) { case INTEGER_CST: { switch (TREE_CODE (op1)) { case INTEGER_CST: { { /* #line 1485 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 }; if (gimple_simplify_227 (res_code, res_ops, seq, valueize, type, captures, MAX_EXPR, LE_EXPR, BIT_AND_EXPR)) return true; } break; } default:; } break; } default:; } } } break; } default:; } } break; default:; } switch (TREE_CODE (op1)) { case INTEGER_CST: { { /* #line 2268 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 }; if (gimple_simplify_78 (res_code, res_ops, seq, valueize, type, captures, LE_EXPR, LT_EXPR)) return true; } break; } default:; } switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case MULT_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { if (tree_swap_operands_p (o20, o21)) std::swap (o20, o21); switch (TREE_CODE (o21)) { case INTEGER_CST: { if (integer_zerop (op1)) { { /* #line 2333 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o21, op1 }; if (gimple_simplify_36 (res_code, res_ops, seq, valueize, type, captures, LE_EXPR, GE_EXPR)) return true; } } break; } default:; } } } break; } default:; } } break; default:; } if (op1 == op0 || (operand_equal_p (op1, op0, 0) && types_match (op1, op0))) { { /* #line 2348 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { op0 }; if (gimple_simplify_91 (res_code, res_ops, seq, valueize, type, captures, LE_EXPR)) return true; } } switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case BIT_NOT_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case BIT_NOT_EXPR: { tree o40 = gimple_assign_rhs1 (def); if ((o40 = do_valueize (valueize, o40))) { { /* #line 2377 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, op1, o40 }; if (gimple_simplify_210 (res_code, res_ops, seq, valueize, type, captures, LE_EXPR)) return true; } } break; } default:; } } break; default:; } if (CONSTANT_CLASS_P (op1)) { { /* #line 2385 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, op1 }; if (gimple_simplify_113 (res_code, res_ops, seq, valueize, type, captures, LE_EXPR, GE_EXPR)) return true; } } } break; } CASE_CONVERT: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { CASE_CONVERT: { tree o40 = gimple_assign_rhs1 (def); if ((o40 = do_valueize (valueize, o40))) { { /* #line 2393 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, o40 }; if (gimple_simplify_212 (res_code, res_ops, seq, valueize, type, captures, LE_EXPR)) return true; } } break; } default:; } } break; default:; } { /* #line 2393 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, op1 }; if (gimple_simplify_212 (res_code, res_ops, seq, valueize, type, captures, LE_EXPR)) return true; } } break; } default:; } } break; default:; } switch (TREE_CODE (op1)) { case REAL_CST: { { /* #line 2423 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 }; if (gimple_simplify_190 (res_code, res_ops, seq, valueize, type, captures, LE_EXPR)) return true; } break; } default:; } switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case PLUS_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { if (tree_swap_operands_p (o20, o21)) std::swap (o20, o21); switch (TREE_CODE (o21)) { case REAL_CST: { switch (TREE_CODE (op1)) { case REAL_CST: { { /* #line 2480 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 }; if (gimple_simplify_100 (res_code, res_ops, seq, valueize, type, captures, PLUS_EXPR, LE_EXPR)) return true; } break; } default:; } break; } default:; } } } break; } case MINUS_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { switch (TREE_CODE (o21)) { case REAL_CST: { switch (TREE_CODE (op1)) { case REAL_CST: { { /* #line 2480 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 }; if (gimple_simplify_100 (res_code, res_ops, seq, valueize, type, captures, MINUS_EXPR, LE_EXPR)) return true; } break; } default:; } break; } default:; } switch (TREE_CODE (o20)) { case REAL_CST: { switch (TREE_CODE (op1)) { case REAL_CST: { { /* #line 2496 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 }; if (gimple_simplify_102 (res_code, res_ops, seq, valueize, type, captures, LE_EXPR)) return true; } break; } default:; } break; } default:; } } } break; } case EXACT_DIV_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { switch (TREE_CODE (o21)) { case INTEGER_CST: { switch (TREE_CODE (op1)) { case INTEGER_CST: { { /* #line 2610 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 }; if (gimple_simplify_141 (res_code, res_ops, seq, valueize, type, captures, LE_EXPR)) return true; } break; } default:; } break; } default:; } } } break; } case NEGATE_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case NEGATE_EXPR: { tree o40 = gimple_assign_rhs1 (def); if ((o40 = do_valueize (valueize, o40))) { { /* #line 2660 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, o40 }; if (gimple_simplify_169 (res_code, res_ops, seq, valueize, type, captures, LE_EXPR, GE_EXPR)) return true; } } break; } default:; } } break; default:; } if (CONSTANT_CLASS_P (op1)) { { /* #line 2666 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 }; if (gimple_simplify_134 (res_code, res_ops, seq, valueize, type, captures, LE_EXPR, GE_EXPR)) return true; } } } break; } CASE_CONVERT: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { CASE_CONVERT: { tree o40 = gimple_assign_rhs1 (def); if ((o40 = do_valueize (valueize, o40))) { { /* #line 2683 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, op1, o40 }; if (gimple_simplify_115 (res_code, res_ops, seq, valueize, type, captures, LE_EXPR)) return true; } } break; } default:; } } break; default:; } { /* #line 2683 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, op1, op1 }; if (gimple_simplify_26 (res_code, res_ops, seq, valueize, type, captures, LE_EXPR)) return true; } switch (TREE_CODE (o20)) { case ADDR_EXPR: { switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { CASE_CONVERT: { tree o40 = gimple_assign_rhs1 (def); if ((o40 = do_valueize (valueize, o40))) { switch (TREE_CODE (o40)) { case ADDR_EXPR: { { /* #line 2851 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, o40 }; if (gimple_simplify_135 (res_code, res_ops, seq, valueize, type, captures, LE_EXPR)) return true; } break; } default:; } } break; } default:; } } break; case ADDR_EXPR: { { /* #line 2851 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, op1 }; if (gimple_simplify_135 (res_code, res_ops, seq, valueize, type, captures, LE_EXPR)) return true; } break; } default:; } break; } default:; } switch (TREE_CODE (op1)) { case INTEGER_CST: { { /* #line 2954 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, op1 }; if (gimple_simplify_31 (res_code, res_ops, seq, valueize, type, captures, LE_EXPR)) return true; } break; } default:; } } break; } default:; } else if (gcall *def = dyn_cast (def_stmt)) switch (gimple_call_combined_fn (def)) { case CFN_BUILT_IN_SQRTF: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { switch (TREE_CODE (op1)) { case REAL_CST: { { /* #line 2504 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 }; if (gimple_simplify_205 (res_code, res_ops, seq, valueize, type, captures, CFN_BUILT_IN_SQRTF, LE_EXPR)) return true; } break; } default:; } } break; } case CFN_BUILT_IN_SQRT: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { switch (TREE_CODE (op1)) { case REAL_CST: { { /* #line 2504 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 }; if (gimple_simplify_205 (res_code, res_ops, seq, valueize, type, captures, CFN_BUILT_IN_SQRT, LE_EXPR)) return true; } break; } default:; } } break; } case CFN_BUILT_IN_SQRTL: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { switch (TREE_CODE (op1)) { case REAL_CST: { { /* #line 2504 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 }; if (gimple_simplify_205 (res_code, res_ops, seq, valueize, type, captures, CFN_BUILT_IN_SQRTL, LE_EXPR)) return true; } break; } default:; } } break; } case CFN_SQRT: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { switch (TREE_CODE (op1)) { case REAL_CST: { { /* #line 2504 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 }; if (gimple_simplify_205 (res_code, res_ops, seq, valueize, type, captures, CFN_SQRT, LE_EXPR)) return true; } break; } default:; } } break; } default:; } } break; case ADDR_EXPR: { switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { CASE_CONVERT: { tree o30 = gimple_assign_rhs1 (def); if ((o30 = do_valueize (valueize, o30))) { switch (TREE_CODE (o30)) { case ADDR_EXPR: { { /* #line 2851 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { op0, op0, o30 }; if (gimple_simplify_103 (res_code, res_ops, seq, valueize, type, captures, LE_EXPR)) return true; } break; } default:; } } break; } default:; } } break; case ADDR_EXPR: { { /* #line 2851 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { op0, op0, op1 }; if (gimple_simplify_103 (res_code, res_ops, seq, valueize, type, captures, LE_EXPR)) return true; } break; } default:; } break; } default:; } switch (TREE_CODE (op1)) { case INTEGER_CST: { { /* #line 2954 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { op0, op0, op1 }; if (gimple_simplify_123 (res_code, res_ops, seq, valueize, type, captures, LE_EXPR)) return true; } break; } default:; } switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case PLUS_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { if (tree_swap_operands_p (o20, o21)) std::swap (o20, o21); switch (TREE_CODE (o21)) { case INTEGER_CST: { if (op1 == o20 || (operand_equal_p (op1, o20, 0) && types_match (op1, o20))) { { /* #line 3051 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, o21 }; if (gimple_simplify_59 (res_code, res_ops, seq, valueize, type, captures, LE_EXPR, GT_EXPR)) return true; } } break; } default:; } } } break; } default:; } } break; default:; } switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case PLUS_EXPR: { tree o30 = gimple_assign_rhs1 (def); if ((o30 = do_valueize (valueize, o30))) { tree o31 = gimple_assign_rhs2 (def); if ((o31 = do_valueize (valueize, o31))) { if (tree_swap_operands_p (o30, o31)) std::swap (o30, o31); if (o30 == op0 || (operand_equal_p (o30, op0, 0) && types_match (o30, op0))) { switch (TREE_CODE (o31)) { case INTEGER_CST: { { /* #line 3051 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { op1, op0, o31 }; if (gimple_simplify_59 (res_code, res_ops, seq, valueize, type, captures, GE_EXPR, LE_EXPR)) return true; } break; } default:; } } } } break; } default:; } } break; default:; } switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case MINUS_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { if (op1 == o20 || (operand_equal_p (op1, o20, 0) && types_match (op1, o20))) { { /* #line 3064 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, o21 }; if (gimple_simplify_5 (res_code, res_ops, seq, valueize, type, captures, LE_EXPR)) return true; } } } } break; } case REALPART_EXPR: { tree o20 = TREE_OPERAND (gimple_assign_rhs1 (def), 0); if ((TREE_CODE (o20) == SSA_NAME || is_gimple_min_invariant (o20)) && (o20 = do_valueize (valueize, o20))) { switch (TREE_CODE (o20)) { case SSA_NAME: if (do_valueize (valueize, o20) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (o20); if (gcall *def = dyn_cast (def_stmt)) switch (gimple_call_combined_fn (def)) { case CFN_SUB_OVERFLOW: { tree o30 = gimple_call_arg (def, 0); if ((o30 = do_valueize (valueize, o30))) { tree o31 = gimple_call_arg (def, 1); if ((o31 = do_valueize (valueize, o31))) { if (op1 == o30 || (operand_equal_p (op1, o30, 0) && types_match (op1, o30))) { { /* #line 3076 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o20, o30, o31 }; if (gimple_simplify_186 (res_code, res_ops, seq, valueize, type, captures, LE_EXPR, EQ_EXPR)) return true; } } } } break; } default:; } } break; default:; } } break; } default:; } } break; default:; } switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case REALPART_EXPR: { tree o30 = TREE_OPERAND (gimple_assign_rhs1 (def), 0); if ((TREE_CODE (o30) == SSA_NAME || is_gimple_min_invariant (o30)) && (o30 = do_valueize (valueize, o30))) { switch (TREE_CODE (o30)) { case SSA_NAME: if (do_valueize (valueize, o30) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (o30); if (gcall *def = dyn_cast (def_stmt)) switch (gimple_call_combined_fn (def)) { case CFN_ADD_OVERFLOW: { tree o40 = gimple_call_arg (def, 0); if ((o40 = do_valueize (valueize, o40))) { tree o41 = gimple_call_arg (def, 1); if ((o41 = do_valueize (valueize, o41))) { if (o40 == op0 || (operand_equal_p (o40, op0, 0) && types_match (o40, op0))) { { /* #line 3084 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o30, op0, o41 }; if (gimple_simplify_79 (res_code, res_ops, seq, valueize, type, captures, GE_EXPR, EQ_EXPR)) return true; } } if (o41 == op0 || (operand_equal_p (o41, op0, 0) && types_match (o41, op0))) { { /* #line 3084 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o30, op0, o40 }; if (gimple_simplify_79 (res_code, res_ops, seq, valueize, type, captures, GE_EXPR, EQ_EXPR)) return true; } } } } break; } default:; } } break; default:; } } break; } case TRUNC_DIV_EXPR: { tree o30 = gimple_assign_rhs1 (def); if ((o30 = do_valueize (valueize, o30))) { tree o31 = gimple_assign_rhs2 (def); if ((o31 = do_valueize (valueize, o31))) { if (integer_all_onesp (o30)) { { /* #line 3094 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { op1, o31, op0 }; if (gimple_simplify_10 (res_code, res_ops, seq, valueize, type, captures, GE_EXPR, EQ_EXPR)) return true; } } } } break; } default:; } } break; default:; } switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case PLUS_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { if (tree_swap_operands_p (o20, o21)) std::swap (o20, o21); switch (TREE_CODE (o21)) { case INTEGER_CST: { switch (TREE_CODE (op1)) { case INTEGER_CST: { { /* #line 3727 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o21, op1 }; if (gimple_simplify_166 (res_code, res_ops, seq, valueize, type, captures, PLUS_EXPR, MINUS_EXPR, LE_EXPR)) return true; } break; } default:; } break; } default:; } } } break; } case MINUS_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { switch (TREE_CODE (o21)) { case INTEGER_CST: { switch (TREE_CODE (op1)) { case INTEGER_CST: { { /* #line 3727 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o21, op1 }; if (gimple_simplify_166 (res_code, res_ops, seq, valueize, type, captures, MINUS_EXPR, PLUS_EXPR, LE_EXPR)) return true; } break; } default:; } break; } default:; } } } break; } default:; } } break; default:; } return false; } static bool gimple_simplify_EQ_EXPR (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree op0, tree op1) { switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case MULT_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { if (tree_swap_operands_p (o20, o21)) std::swap (o20, o21); switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case MULT_EXPR: { tree o50 = gimple_assign_rhs1 (def); if ((o50 = do_valueize (valueize, o50))) { tree o51 = gimple_assign_rhs2 (def); if ((o51 = do_valueize (valueize, o51))) { if (tree_swap_operands_p (o50, o51)) std::swap (o50, o51); if (o51 == o21 || (operand_equal_p (o51, o21, 0) && types_match (o51, o21))) { { /* #line 1018 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, o50 }; if (gimple_simplify_160 (res_code, res_ops, seq, valueize, type, captures, EQ_EXPR)) return true; } } if (o50 == o21 || (operand_equal_p (o50, o21, 0) && types_match (o50, o21))) { { /* #line 1018 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, o51 }; if (gimple_simplify_160 (res_code, res_ops, seq, valueize, type, captures, EQ_EXPR)) return true; } } if (o51 == o20 || (operand_equal_p (o51, o20, 0) && types_match (o51, o20))) { { /* #line 1018 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o21, o20, o50 }; if (gimple_simplify_160 (res_code, res_ops, seq, valueize, type, captures, EQ_EXPR)) return true; } } if (o50 == o20 || (operand_equal_p (o50, o20, 0) && types_match (o50, o20))) { { /* #line 1018 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o21, o20, o51 }; if (gimple_simplify_160 (res_code, res_ops, seq, valueize, type, captures, EQ_EXPR)) return true; } } } } break; } default:; } } break; default:; } } } break; } case MIN_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { if (tree_swap_operands_p (o20, o21)) std::swap (o20, o21); if (op1 == o20 || (operand_equal_p (op1, o20, 0) && types_match (op1, o20))) { { /* #line 1461 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 }; if (gimple_simplify_110 (res_code, res_ops, seq, valueize, type, captures, MIN_EXPR, EQ_EXPR, LE_EXPR)) return true; } } if (op1 == o21 || (operand_equal_p (op1, o21, 0) && types_match (op1, o21))) { { /* #line 1461 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o21, o20 }; if (gimple_simplify_110 (res_code, res_ops, seq, valueize, type, captures, MIN_EXPR, EQ_EXPR, LE_EXPR)) return true; } } } } break; } case MAX_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { if (tree_swap_operands_p (o20, o21)) std::swap (o20, o21); if (op1 == o20 || (operand_equal_p (op1, o20, 0) && types_match (op1, o20))) { { /* #line 1461 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 }; if (gimple_simplify_110 (res_code, res_ops, seq, valueize, type, captures, MAX_EXPR, EQ_EXPR, GE_EXPR)) return true; } } if (op1 == o21 || (operand_equal_p (op1, o21, 0) && types_match (op1, o21))) { { /* #line 1461 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o21, o20 }; if (gimple_simplify_110 (res_code, res_ops, seq, valueize, type, captures, MAX_EXPR, EQ_EXPR, GE_EXPR)) return true; } } } } break; } default:; } } break; default:; } tree op0_pops[1]; if (gimple_logical_inverted_value (op0, op0_pops, valueize)) { tree o20 = op0_pops[0]; if (op1 == o20 || (operand_equal_p (op1, o20, 0) && types_match (op1, o20))) { if (gimple_truth_valued_p (op1, valueize)) { { /* #line 965 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; if (gimple_simplify_226 (res_code, res_ops, seq, valueize, type, captures, EQ_EXPR)) return true; } } } } if (gimple_truth_valued_p (op0, valueize)) { tree op1_pops[1]; if (gimple_logical_inverted_value (op1, op1_pops, valueize)) { tree o30 = op1_pops[0]; if (o30 == op0 || (operand_equal_p (o30, op0, 0) && types_match (o30, op0))) { { /* #line 965 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { op0 }; if (gimple_simplify_226 (res_code, res_ops, seq, valueize, type, captures, EQ_EXPR)) return true; } } } } switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case MIN_EXPR: { tree o30 = gimple_assign_rhs1 (def); if ((o30 = do_valueize (valueize, o30))) { tree o31 = gimple_assign_rhs2 (def); if ((o31 = do_valueize (valueize, o31))) { if (tree_swap_operands_p (o30, o31)) std::swap (o30, o31); if (o30 == op0 || (operand_equal_p (o30, op0, 0) && types_match (o30, op0))) { { /* #line 1461 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { op0, o31 }; if (gimple_simplify_110 (res_code, res_ops, seq, valueize, type, captures, MIN_EXPR, EQ_EXPR, LE_EXPR)) return true; } } if (o31 == op0 || (operand_equal_p (o31, op0, 0) && types_match (o31, op0))) { { /* #line 1461 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { op0, o30 }; if (gimple_simplify_110 (res_code, res_ops, seq, valueize, type, captures, MIN_EXPR, EQ_EXPR, LE_EXPR)) return true; } } } } break; } case MAX_EXPR: { tree o30 = gimple_assign_rhs1 (def); if ((o30 = do_valueize (valueize, o30))) { tree o31 = gimple_assign_rhs2 (def); if ((o31 = do_valueize (valueize, o31))) { if (tree_swap_operands_p (o30, o31)) std::swap (o30, o31); if (o30 == op0 || (operand_equal_p (o30, op0, 0) && types_match (o30, op0))) { { /* #line 1461 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { op0, o31 }; if (gimple_simplify_110 (res_code, res_ops, seq, valueize, type, captures, MAX_EXPR, EQ_EXPR, GE_EXPR)) return true; } } if (o31 == op0 || (operand_equal_p (o31, op0, 0) && types_match (o31, op0))) { { /* #line 1461 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { op0, o30 }; if (gimple_simplify_110 (res_code, res_ops, seq, valueize, type, captures, MAX_EXPR, EQ_EXPR, GE_EXPR)) return true; } } } } break; } default:; } } break; default:; } switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case MIN_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { if (tree_swap_operands_p (o20, o21)) std::swap (o20, o21); switch (TREE_CODE (o21)) { case INTEGER_CST: { switch (TREE_CODE (op1)) { case INTEGER_CST: { { /* #line 1468 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 }; if (gimple_simplify_196 (res_code, res_ops, seq, valueize, type, captures, EQ_EXPR)) return true; } break; } default:; } break; } default:; } } } break; } case MAX_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { if (tree_swap_operands_p (o20, o21)) std::swap (o20, o21); switch (TREE_CODE (o21)) { case INTEGER_CST: { switch (TREE_CODE (op1)) { case INTEGER_CST: { { /* #line 1475 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 }; if (gimple_simplify_171 (res_code, res_ops, seq, valueize, type, captures, EQ_EXPR)) return true; } break; } default:; } break; } default:; } } } break; } case BIT_AND_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { if (tree_swap_operands_p (o20, o21)) std::swap (o20, o21); switch (TREE_CODE (o20)) { case SSA_NAME: if (do_valueize (valueize, o20) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (o20); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case LSHIFT_EXPR: { tree o30 = gimple_assign_rhs1 (def); if ((o30 = do_valueize (valueize, o30))) { tree o31 = gimple_assign_rhs2 (def); if ((o31 = do_valueize (valueize, o31))) { if (integer_onep (o30)) { if (integer_onep (o21)) { if (integer_zerop (op1)) { { /* #line 1581 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o31 }; if (gimple_simplify_23 (res_code, res_ops, seq, valueize, type, captures, EQ_EXPR, NE_EXPR)) return true; } } } } } } break; } default:; } } break; default:; } } } break; } case LSHIFT_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { switch (TREE_CODE (o20)) { case INTEGER_CST: { switch (TREE_CODE (op1)) { case INTEGER_CST: { { /* #line 1589 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 }; if (gimple_simplify_117 (res_code, res_ops, seq, valueize, type, captures, EQ_EXPR)) return true; } break; } default:; } break; } default:; } } } break; } case MINUS_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { if (integer_zerop (op1)) { { /* #line 2321 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, o21 }; if (gimple_simplify_218 (res_code, res_ops, seq, valueize, type, captures, EQ_EXPR)) return true; } } } } break; } case MULT_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { if (tree_swap_operands_p (o20, o21)) std::swap (o20, o21); switch (TREE_CODE (o21)) { case INTEGER_CST: { if (integer_zerop (op1)) { { /* #line 2333 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o21, op1 }; if (gimple_simplify_36 (res_code, res_ops, seq, valueize, type, captures, EQ_EXPR, EQ_EXPR)) return true; } } break; } default:; } } } break; } default:; } } break; default:; } if (op1 == op0 || (operand_equal_p (op1, op0, 0) && types_match (op1, op0))) { { /* #line 2348 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { op0 }; if (gimple_simplify_91 (res_code, res_ops, seq, valueize, type, captures, EQ_EXPR)) return true; } } switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case BIT_NOT_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case BIT_NOT_EXPR: { tree o40 = gimple_assign_rhs1 (def); if ((o40 = do_valueize (valueize, o40))) { { /* #line 2377 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, op1, o40 }; if (gimple_simplify_210 (res_code, res_ops, seq, valueize, type, captures, EQ_EXPR)) return true; } } break; } default:; } } break; default:; } if (CONSTANT_CLASS_P (op1)) { { /* #line 2385 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, op1 }; if (gimple_simplify_113 (res_code, res_ops, seq, valueize, type, captures, EQ_EXPR, EQ_EXPR)) return true; } } } break; } CASE_CONVERT: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { CASE_CONVERT: { tree o40 = gimple_assign_rhs1 (def); if ((o40 = do_valueize (valueize, o40))) { { /* #line 2393 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, o40 }; if (gimple_simplify_212 (res_code, res_ops, seq, valueize, type, captures, EQ_EXPR)) return true; } } break; } default:; } } break; default:; } { /* #line 2393 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, op1 }; if (gimple_simplify_212 (res_code, res_ops, seq, valueize, type, captures, EQ_EXPR)) return true; } } break; } default:; } } break; default:; } switch (TREE_CODE (op1)) { case REAL_CST: { { /* #line 2423 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 }; if (gimple_simplify_190 (res_code, res_ops, seq, valueize, type, captures, EQ_EXPR)) return true; } break; } default:; } switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case PLUS_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { if (tree_swap_operands_p (o20, o21)) std::swap (o20, o21); switch (TREE_CODE (o21)) { case REAL_CST: { switch (TREE_CODE (op1)) { case REAL_CST: { { /* #line 2480 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 }; if (gimple_simplify_100 (res_code, res_ops, seq, valueize, type, captures, PLUS_EXPR, EQ_EXPR)) return true; } break; } default:; } break; } default:; } } } break; } case MINUS_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { switch (TREE_CODE (o21)) { case REAL_CST: { switch (TREE_CODE (op1)) { case REAL_CST: { { /* #line 2480 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 }; if (gimple_simplify_100 (res_code, res_ops, seq, valueize, type, captures, MINUS_EXPR, EQ_EXPR)) return true; } break; } default:; } break; } default:; } switch (TREE_CODE (o20)) { case REAL_CST: { switch (TREE_CODE (op1)) { case REAL_CST: { { /* #line 2496 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 }; if (gimple_simplify_102 (res_code, res_ops, seq, valueize, type, captures, EQ_EXPR)) return true; } break; } default:; } break; } default:; } } } break; } case EXACT_DIV_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { switch (TREE_CODE (op1)) { case INTEGER_CST: { { /* #line 2595 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 }; if (gimple_simplify_151 (res_code, res_ops, seq, valueize, type, captures, EQ_EXPR)) return true; } break; } default:; } } } break; } case NEGATE_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case NEGATE_EXPR: { tree o40 = gimple_assign_rhs1 (def); if ((o40 = do_valueize (valueize, o40))) { { /* #line 2660 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, o40 }; if (gimple_simplify_169 (res_code, res_ops, seq, valueize, type, captures, EQ_EXPR, EQ_EXPR)) return true; } } break; } default:; } } break; default:; } if (CONSTANT_CLASS_P (op1)) { { /* #line 2666 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 }; if (gimple_simplify_134 (res_code, res_ops, seq, valueize, type, captures, EQ_EXPR, EQ_EXPR)) return true; } } } break; } case ABS_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { if (zerop (op1)) { { /* #line 2677 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 }; if (gimple_simplify_62 (res_code, res_ops, seq, valueize, type, captures, EQ_EXPR)) return true; } } } break; } CASE_CONVERT: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { CASE_CONVERT: { tree o40 = gimple_assign_rhs1 (def); if ((o40 = do_valueize (valueize, o40))) { { /* #line 2683 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, op1, o40 }; if (gimple_simplify_115 (res_code, res_ops, seq, valueize, type, captures, EQ_EXPR)) return true; } } break; } default:; } } break; default:; } { /* #line 2683 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, op1, op1 }; if (gimple_simplify_26 (res_code, res_ops, seq, valueize, type, captures, EQ_EXPR)) return true; } switch (TREE_CODE (o20)) { case SSA_NAME: if (do_valueize (valueize, o20) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (o20); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case BIT_IOR_EXPR: { tree o30 = gimple_assign_rhs1 (def); if ((o30 = do_valueize (valueize, o30))) { tree o31 = gimple_assign_rhs2 (def); if ((o31 = do_valueize (valueize, o31))) { if (tree_swap_operands_p (o30, o31)) std::swap (o30, o31); switch (TREE_CODE (o31)) { case INTEGER_CST: { switch (TREE_CODE (op1)) { case INTEGER_CST: { { /* #line 2760 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { op0, o30, o31, op1 }; if (gimple_simplify_219 (res_code, res_ops, seq, valueize, type, captures, EQ_EXPR)) return true; } break; } default:; } break; } default:; } } } break; } default:; } } break; default:; } } break; } case BIT_IOR_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { if (tree_swap_operands_p (o20, o21)) std::swap (o20, o21); switch (TREE_CODE (o21)) { case INTEGER_CST: { switch (TREE_CODE (op1)) { case INTEGER_CST: { { /* #line 2760 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o21, op1 }; if (gimple_simplify_219 (res_code, res_ops, seq, valueize, type, captures, EQ_EXPR)) return true; } break; } default:; } break; } default:; } } } break; } case BIT_XOR_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { if (tree_swap_operands_p (o20, o21)) std::swap (o20, o21); if (integer_zerop (op1)) { { /* #line 2767 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 }; if (gimple_simplify_105 (res_code, res_ops, seq, valueize, type, captures, EQ_EXPR)) return true; } } if (op1 == o20 || (operand_equal_p (op1, o20, 0) && types_match (op1, o20))) { { /* #line 2773 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 }; if (gimple_simplify_106 (res_code, res_ops, seq, valueize, type, captures, EQ_EXPR)) return true; } } if (op1 == o21 || (operand_equal_p (op1, o21, 0) && types_match (op1, o21))) { { /* #line 2773 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o21, o20 }; if (gimple_simplify_106 (res_code, res_ops, seq, valueize, type, captures, EQ_EXPR)) return true; } } } } break; } default:; } else if (gcall *def = dyn_cast (def_stmt)) switch (gimple_call_combined_fn (def)) { case CFN_BUILT_IN_SQRTF: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { switch (TREE_CODE (op1)) { case REAL_CST: { { /* #line 2504 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 }; if (gimple_simplify_205 (res_code, res_ops, seq, valueize, type, captures, CFN_BUILT_IN_SQRTF, EQ_EXPR)) return true; } break; } default:; } } break; } case CFN_BUILT_IN_SQRT: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { switch (TREE_CODE (op1)) { case REAL_CST: { { /* #line 2504 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 }; if (gimple_simplify_205 (res_code, res_ops, seq, valueize, type, captures, CFN_BUILT_IN_SQRT, EQ_EXPR)) return true; } break; } default:; } } break; } case CFN_BUILT_IN_SQRTL: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { switch (TREE_CODE (op1)) { case REAL_CST: { { /* #line 2504 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 }; if (gimple_simplify_205 (res_code, res_ops, seq, valueize, type, captures, CFN_BUILT_IN_SQRTL, EQ_EXPR)) return true; } break; } default:; } } break; } case CFN_SQRT: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { switch (TREE_CODE (op1)) { case REAL_CST: { { /* #line 2504 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 }; if (gimple_simplify_205 (res_code, res_ops, seq, valueize, type, captures, CFN_SQRT, EQ_EXPR)) return true; } break; } default:; } } break; } default:; } } break; case ADDR_EXPR: { switch (TREE_CODE (op1)) { case SSA_NAME: { { /* #line 2744 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 }; if (gimple_simplify_217 (res_code, res_ops, seq, valueize, type, captures, EQ_EXPR)) return true; } break; } default:; } break; } default:; } switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case BIT_XOR_EXPR: { tree o30 = gimple_assign_rhs1 (def); if ((o30 = do_valueize (valueize, o30))) { tree o31 = gimple_assign_rhs2 (def); if ((o31 = do_valueize (valueize, o31))) { if (tree_swap_operands_p (o30, o31)) std::swap (o30, o31); if (o30 == op0 || (operand_equal_p (o30, op0, 0) && types_match (o30, op0))) { { /* #line 2773 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { op0, o31 }; if (gimple_simplify_106 (res_code, res_ops, seq, valueize, type, captures, EQ_EXPR)) return true; } } if (o31 == op0 || (operand_equal_p (o31, op0, 0) && types_match (o31, op0))) { { /* #line 2773 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { op0, o30 }; if (gimple_simplify_106 (res_code, res_ops, seq, valueize, type, captures, EQ_EXPR)) return true; } } } } break; } default:; } } break; default:; } switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { CASE_CONVERT: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { switch (TREE_CODE (o20)) { case SSA_NAME: if (do_valueize (valueize, o20) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (o20); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case BIT_XOR_EXPR: { tree o30 = gimple_assign_rhs1 (def); if ((o30 = do_valueize (valueize, o30))) { tree o31 = gimple_assign_rhs2 (def); if ((o31 = do_valueize (valueize, o31))) { if (tree_swap_operands_p (o30, o31)) std::swap (o30, o31); switch (TREE_CODE (o31)) { case INTEGER_CST: { switch (TREE_CODE (op1)) { case INTEGER_CST: { { /* #line 2778 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { op0, o30, o31, op1 }; if (gimple_simplify_158 (res_code, res_ops, seq, valueize, type, captures, EQ_EXPR)) return true; } break; } default:; } break; } default:; } } } break; } default:; } } break; case ADDR_EXPR: { switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { CASE_CONVERT: { tree o40 = gimple_assign_rhs1 (def); if ((o40 = do_valueize (valueize, o40))) { switch (TREE_CODE (o40)) { case ADDR_EXPR: { { /* #line 2851 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, o40 }; if (gimple_simplify_135 (res_code, res_ops, seq, valueize, type, captures, EQ_EXPR)) return true; } break; } default:; } } break; } default:; } } break; case ADDR_EXPR: { { /* #line 2851 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, op1 }; if (gimple_simplify_135 (res_code, res_ops, seq, valueize, type, captures, EQ_EXPR)) return true; } break; } default:; } if (integer_zerop (op1)) { { /* #line 2783 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; if (gimple_simplify_107 (res_code, res_ops, seq, valueize, type, captures, EQ_EXPR)) return true; } } break; } default:; } } break; } case BIT_XOR_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { if (tree_swap_operands_p (o20, o21)) std::swap (o20, o21); switch (TREE_CODE (o21)) { case INTEGER_CST: { switch (TREE_CODE (op1)) { case INTEGER_CST: { { /* #line 2778 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o21, op1 }; if (gimple_simplify_158 (res_code, res_ops, seq, valueize, type, captures, EQ_EXPR)) return true; } break; } default:; } break; } default:; } } } break; } case BIT_AND_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { if (tree_swap_operands_p (o20, o21)) std::swap (o20, o21); if (integer_pow2p (o21)) { if (op1 == o21 || (operand_equal_p (op1, o21, 0) && types_match (op1, o21))) { { /* #line 2792 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, o21 }; if (gimple_simplify_204 (res_code, res_ops, seq, valueize, type, captures, EQ_EXPR, NE_EXPR)) return true; } } } switch (TREE_CODE (o20)) { case SSA_NAME: if (do_valueize (valueize, o20) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (o20); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { CASE_CONVERT: { tree o30 = gimple_assign_rhs1 (def); if ((o30 = do_valueize (valueize, o30))) { if (integer_pow2p (o21)) { if (integer_zerop (op1)) { { /* #line 2817 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o20, o30, o21 }; if (gimple_simplify_139 (res_code, res_ops, seq, valueize, type, captures, EQ_EXPR, GE_EXPR)) return true; } } } } break; } default:; } } break; default:; } if (integer_pow2p (o21)) { if (integer_zerop (op1)) { { /* #line 2817 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o20, o20, o21 }; if (gimple_simplify_172 (res_code, res_ops, seq, valueize, type, captures, EQ_EXPR, GE_EXPR)) return true; } } } } } break; } default:; } } break; case ADDR_EXPR: { switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { CASE_CONVERT: { tree o30 = gimple_assign_rhs1 (def); if ((o30 = do_valueize (valueize, o30))) { switch (TREE_CODE (o30)) { case ADDR_EXPR: { { /* #line 2851 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { op0, op0, o30 }; if (gimple_simplify_103 (res_code, res_ops, seq, valueize, type, captures, EQ_EXPR)) return true; } break; } default:; } } break; } default:; } } break; case ADDR_EXPR: { { /* #line 2851 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { op0, op0, op1 }; if (gimple_simplify_103 (res_code, res_ops, seq, valueize, type, captures, EQ_EXPR)) return true; } break; } default:; } if (integer_zerop (op1)) { { /* #line 2783 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { op0 }; if (gimple_simplify_107 (res_code, res_ops, seq, valueize, type, captures, EQ_EXPR)) return true; } } break; } default:; } { /* #line 2926 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 }; if (gimple_simplify_99 (res_code, res_ops, seq, valueize, type, captures, EQ_EXPR)) return true; } switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { CASE_CONVERT: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { switch (TREE_CODE (op1)) { case INTEGER_CST: { { /* #line 2939 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 }; if (gimple_simplify_49 (res_code, res_ops, seq, valueize, type, captures, EQ_EXPR)) return true; } break; } default:; } } break; } default:; } } break; default:; } if (integer_onep (op1)) { { /* #line 3032 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { op0 }; /* #line 3032 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (TREE_CODE (TREE_TYPE (captures[0])) == BOOLEAN_TYPE && types_match (type, TREE_TYPE (captures[0]))) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3034, %s:%d\n", __FILE__, __LINE__); res_ops[0] = captures[0]; *res_code = TREE_CODE (res_ops[0]); return true; } } } switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case PLUS_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { if (tree_swap_operands_p (o20, o21)) std::swap (o20, o21); switch (TREE_CODE (o21)) { case INTEGER_CST: { switch (TREE_CODE (op1)) { case INTEGER_CST: { { /* #line 3712 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o21, op1 }; if (gimple_simplify_178 (res_code, res_ops, seq, valueize, type, captures, PLUS_EXPR, MINUS_EXPR, EQ_EXPR)) return true; } break; } default:; } break; } default:; } } } break; } case MINUS_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { switch (TREE_CODE (o21)) { case INTEGER_CST: { switch (TREE_CODE (op1)) { case INTEGER_CST: { { /* #line 3712 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o21, op1 }; if (gimple_simplify_178 (res_code, res_ops, seq, valueize, type, captures, MINUS_EXPR, PLUS_EXPR, EQ_EXPR)) return true; } break; } default:; } break; } default:; } } } break; } default:; } } break; default:; } return false; } static bool gimple_simplify_NE_EXPR (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree op0, tree op1) { switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case MULT_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { if (tree_swap_operands_p (o20, o21)) std::swap (o20, o21); switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case MULT_EXPR: { tree o50 = gimple_assign_rhs1 (def); if ((o50 = do_valueize (valueize, o50))) { tree o51 = gimple_assign_rhs2 (def); if ((o51 = do_valueize (valueize, o51))) { if (tree_swap_operands_p (o50, o51)) std::swap (o50, o51); if (o51 == o21 || (operand_equal_p (o51, o21, 0) && types_match (o51, o21))) { { /* #line 1018 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, o50 }; if (gimple_simplify_160 (res_code, res_ops, seq, valueize, type, captures, NE_EXPR)) return true; } } if (o50 == o21 || (operand_equal_p (o50, o21, 0) && types_match (o50, o21))) { { /* #line 1018 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, o51 }; if (gimple_simplify_160 (res_code, res_ops, seq, valueize, type, captures, NE_EXPR)) return true; } } if (o51 == o20 || (operand_equal_p (o51, o20, 0) && types_match (o51, o20))) { { /* #line 1018 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o21, o20, o50 }; if (gimple_simplify_160 (res_code, res_ops, seq, valueize, type, captures, NE_EXPR)) return true; } } if (o50 == o20 || (operand_equal_p (o50, o20, 0) && types_match (o50, o20))) { { /* #line 1018 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o21, o20, o51 }; if (gimple_simplify_160 (res_code, res_ops, seq, valueize, type, captures, NE_EXPR)) return true; } } } } break; } default:; } } break; default:; } } } break; } case MIN_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { if (tree_swap_operands_p (o20, o21)) std::swap (o20, o21); if (op1 == o20 || (operand_equal_p (op1, o20, 0) && types_match (op1, o20))) { { /* #line 1461 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 }; if (gimple_simplify_110 (res_code, res_ops, seq, valueize, type, captures, MIN_EXPR, NE_EXPR, GT_EXPR)) return true; } } if (op1 == o21 || (operand_equal_p (op1, o21, 0) && types_match (op1, o21))) { { /* #line 1461 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o21, o20 }; if (gimple_simplify_110 (res_code, res_ops, seq, valueize, type, captures, MIN_EXPR, NE_EXPR, GT_EXPR)) return true; } } } } break; } case MAX_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { if (tree_swap_operands_p (o20, o21)) std::swap (o20, o21); if (op1 == o20 || (operand_equal_p (op1, o20, 0) && types_match (op1, o20))) { { /* #line 1461 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 }; if (gimple_simplify_110 (res_code, res_ops, seq, valueize, type, captures, MAX_EXPR, NE_EXPR, LT_EXPR)) return true; } } if (op1 == o21 || (operand_equal_p (op1, o21, 0) && types_match (op1, o21))) { { /* #line 1461 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o21, o20 }; if (gimple_simplify_110 (res_code, res_ops, seq, valueize, type, captures, MAX_EXPR, NE_EXPR, LT_EXPR)) return true; } } } } break; } default:; } } break; default:; } tree op0_pops[1]; if (gimple_logical_inverted_value (op0, op0_pops, valueize)) { tree o20 = op0_pops[0]; if (op1 == o20 || (operand_equal_p (op1, o20, 0) && types_match (op1, o20))) { if (gimple_truth_valued_p (op1, valueize)) { { /* #line 965 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; if (gimple_simplify_226 (res_code, res_ops, seq, valueize, type, captures, NE_EXPR)) return true; } } } } if (gimple_truth_valued_p (op0, valueize)) { tree op1_pops[1]; if (gimple_logical_inverted_value (op1, op1_pops, valueize)) { tree o30 = op1_pops[0]; if (o30 == op0 || (operand_equal_p (o30, op0, 0) && types_match (o30, op0))) { { /* #line 965 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { op0 }; if (gimple_simplify_226 (res_code, res_ops, seq, valueize, type, captures, NE_EXPR)) return true; } } } } switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case MIN_EXPR: { tree o30 = gimple_assign_rhs1 (def); if ((o30 = do_valueize (valueize, o30))) { tree o31 = gimple_assign_rhs2 (def); if ((o31 = do_valueize (valueize, o31))) { if (tree_swap_operands_p (o30, o31)) std::swap (o30, o31); if (o30 == op0 || (operand_equal_p (o30, op0, 0) && types_match (o30, op0))) { { /* #line 1461 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { op0, o31 }; if (gimple_simplify_110 (res_code, res_ops, seq, valueize, type, captures, MIN_EXPR, NE_EXPR, GT_EXPR)) return true; } } if (o31 == op0 || (operand_equal_p (o31, op0, 0) && types_match (o31, op0))) { { /* #line 1461 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { op0, o30 }; if (gimple_simplify_110 (res_code, res_ops, seq, valueize, type, captures, MIN_EXPR, NE_EXPR, GT_EXPR)) return true; } } } } break; } case MAX_EXPR: { tree o30 = gimple_assign_rhs1 (def); if ((o30 = do_valueize (valueize, o30))) { tree o31 = gimple_assign_rhs2 (def); if ((o31 = do_valueize (valueize, o31))) { if (tree_swap_operands_p (o30, o31)) std::swap (o30, o31); if (o30 == op0 || (operand_equal_p (o30, op0, 0) && types_match (o30, op0))) { { /* #line 1461 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { op0, o31 }; if (gimple_simplify_110 (res_code, res_ops, seq, valueize, type, captures, MAX_EXPR, NE_EXPR, LT_EXPR)) return true; } } if (o31 == op0 || (operand_equal_p (o31, op0, 0) && types_match (o31, op0))) { { /* #line 1461 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { op0, o30 }; if (gimple_simplify_110 (res_code, res_ops, seq, valueize, type, captures, MAX_EXPR, NE_EXPR, LT_EXPR)) return true; } } } } break; } default:; } } break; default:; } switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case MIN_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { if (tree_swap_operands_p (o20, o21)) std::swap (o20, o21); switch (TREE_CODE (o21)) { case INTEGER_CST: { switch (TREE_CODE (op1)) { case INTEGER_CST: { { /* #line 1468 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 }; if (gimple_simplify_196 (res_code, res_ops, seq, valueize, type, captures, NE_EXPR)) return true; } break; } default:; } break; } default:; } } } break; } case MAX_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { if (tree_swap_operands_p (o20, o21)) std::swap (o20, o21); switch (TREE_CODE (o21)) { case INTEGER_CST: { switch (TREE_CODE (op1)) { case INTEGER_CST: { { /* #line 1475 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 }; if (gimple_simplify_171 (res_code, res_ops, seq, valueize, type, captures, NE_EXPR)) return true; } break; } default:; } break; } default:; } } } break; } case BIT_AND_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { if (tree_swap_operands_p (o20, o21)) std::swap (o20, o21); switch (TREE_CODE (o20)) { case SSA_NAME: if (do_valueize (valueize, o20) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (o20); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case LSHIFT_EXPR: { tree o30 = gimple_assign_rhs1 (def); if ((o30 = do_valueize (valueize, o30))) { tree o31 = gimple_assign_rhs2 (def); if ((o31 = do_valueize (valueize, o31))) { if (integer_onep (o30)) { if (integer_onep (o21)) { if (integer_zerop (op1)) { { /* #line 1581 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o31 }; if (gimple_simplify_23 (res_code, res_ops, seq, valueize, type, captures, NE_EXPR, EQ_EXPR)) return true; } } } } } } break; } default:; } } break; default:; } } } break; } case LSHIFT_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { switch (TREE_CODE (o20)) { case INTEGER_CST: { switch (TREE_CODE (op1)) { case INTEGER_CST: { { /* #line 1589 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 }; if (gimple_simplify_117 (res_code, res_ops, seq, valueize, type, captures, NE_EXPR)) return true; } break; } default:; } break; } default:; } } } break; } case MINUS_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { if (integer_zerop (op1)) { { /* #line 2321 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, o21 }; if (gimple_simplify_218 (res_code, res_ops, seq, valueize, type, captures, NE_EXPR)) return true; } } } } break; } case MULT_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { if (tree_swap_operands_p (o20, o21)) std::swap (o20, o21); switch (TREE_CODE (o21)) { case INTEGER_CST: { if (integer_zerop (op1)) { { /* #line 2333 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o21, op1 }; if (gimple_simplify_36 (res_code, res_ops, seq, valueize, type, captures, NE_EXPR, NE_EXPR)) return true; } } break; } default:; } } } break; } default:; } } break; default:; } if (op1 == op0 || (operand_equal_p (op1, op0, 0) && types_match (op1, op0))) { { /* #line 2356 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { op0 }; if (gimple_simplify_150 (res_code, res_ops, seq, valueize, type, captures, NE_EXPR)) return true; } } switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case BIT_NOT_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case BIT_NOT_EXPR: { tree o40 = gimple_assign_rhs1 (def); if ((o40 = do_valueize (valueize, o40))) { { /* #line 2377 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, op1, o40 }; if (gimple_simplify_210 (res_code, res_ops, seq, valueize, type, captures, NE_EXPR)) return true; } } break; } default:; } } break; default:; } if (CONSTANT_CLASS_P (op1)) { { /* #line 2385 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, op1 }; if (gimple_simplify_113 (res_code, res_ops, seq, valueize, type, captures, NE_EXPR, NE_EXPR)) return true; } } } break; } CASE_CONVERT: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { CASE_CONVERT: { tree o40 = gimple_assign_rhs1 (def); if ((o40 = do_valueize (valueize, o40))) { { /* #line 2393 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, o40 }; if (gimple_simplify_212 (res_code, res_ops, seq, valueize, type, captures, NE_EXPR)) return true; } } break; } default:; } } break; default:; } { /* #line 2393 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, op1 }; if (gimple_simplify_212 (res_code, res_ops, seq, valueize, type, captures, NE_EXPR)) return true; } } break; } default:; } } break; default:; } switch (TREE_CODE (op1)) { case REAL_CST: { { /* #line 2423 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 }; if (gimple_simplify_190 (res_code, res_ops, seq, valueize, type, captures, NE_EXPR)) return true; } break; } default:; } switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case PLUS_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { if (tree_swap_operands_p (o20, o21)) std::swap (o20, o21); switch (TREE_CODE (o21)) { case REAL_CST: { switch (TREE_CODE (op1)) { case REAL_CST: { { /* #line 2480 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 }; if (gimple_simplify_100 (res_code, res_ops, seq, valueize, type, captures, PLUS_EXPR, NE_EXPR)) return true; } break; } default:; } break; } default:; } } } break; } case MINUS_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { switch (TREE_CODE (o21)) { case REAL_CST: { switch (TREE_CODE (op1)) { case REAL_CST: { { /* #line 2480 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 }; if (gimple_simplify_100 (res_code, res_ops, seq, valueize, type, captures, MINUS_EXPR, NE_EXPR)) return true; } break; } default:; } break; } default:; } switch (TREE_CODE (o20)) { case REAL_CST: { switch (TREE_CODE (op1)) { case REAL_CST: { { /* #line 2496 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 }; if (gimple_simplify_102 (res_code, res_ops, seq, valueize, type, captures, NE_EXPR)) return true; } break; } default:; } break; } default:; } } } break; } case EXACT_DIV_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { switch (TREE_CODE (op1)) { case INTEGER_CST: { { /* #line 2595 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 }; if (gimple_simplify_151 (res_code, res_ops, seq, valueize, type, captures, NE_EXPR)) return true; } break; } default:; } } } break; } case NEGATE_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case NEGATE_EXPR: { tree o40 = gimple_assign_rhs1 (def); if ((o40 = do_valueize (valueize, o40))) { { /* #line 2660 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, o40 }; if (gimple_simplify_169 (res_code, res_ops, seq, valueize, type, captures, NE_EXPR, NE_EXPR)) return true; } } break; } default:; } } break; default:; } if (CONSTANT_CLASS_P (op1)) { { /* #line 2666 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 }; if (gimple_simplify_134 (res_code, res_ops, seq, valueize, type, captures, NE_EXPR, NE_EXPR)) return true; } } } break; } case ABS_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { if (zerop (op1)) { { /* #line 2677 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 }; if (gimple_simplify_62 (res_code, res_ops, seq, valueize, type, captures, NE_EXPR)) return true; } } } break; } CASE_CONVERT: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { CASE_CONVERT: { tree o40 = gimple_assign_rhs1 (def); if ((o40 = do_valueize (valueize, o40))) { { /* #line 2683 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, op1, o40 }; if (gimple_simplify_115 (res_code, res_ops, seq, valueize, type, captures, NE_EXPR)) return true; } } break; } default:; } } break; default:; } { /* #line 2683 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, op1, op1 }; if (gimple_simplify_26 (res_code, res_ops, seq, valueize, type, captures, NE_EXPR)) return true; } switch (TREE_CODE (o20)) { case SSA_NAME: if (do_valueize (valueize, o20) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (o20); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case BIT_IOR_EXPR: { tree o30 = gimple_assign_rhs1 (def); if ((o30 = do_valueize (valueize, o30))) { tree o31 = gimple_assign_rhs2 (def); if ((o31 = do_valueize (valueize, o31))) { if (tree_swap_operands_p (o30, o31)) std::swap (o30, o31); switch (TREE_CODE (o31)) { case INTEGER_CST: { switch (TREE_CODE (op1)) { case INTEGER_CST: { { /* #line 2760 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { op0, o30, o31, op1 }; if (gimple_simplify_219 (res_code, res_ops, seq, valueize, type, captures, NE_EXPR)) return true; } break; } default:; } break; } default:; } } } break; } default:; } } break; default:; } } break; } case BIT_IOR_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { if (tree_swap_operands_p (o20, o21)) std::swap (o20, o21); switch (TREE_CODE (o21)) { case INTEGER_CST: { switch (TREE_CODE (op1)) { case INTEGER_CST: { { /* #line 2760 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o21, op1 }; if (gimple_simplify_219 (res_code, res_ops, seq, valueize, type, captures, NE_EXPR)) return true; } break; } default:; } break; } default:; } } } break; } case BIT_XOR_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { if (tree_swap_operands_p (o20, o21)) std::swap (o20, o21); if (integer_zerop (op1)) { { /* #line 2767 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 }; if (gimple_simplify_105 (res_code, res_ops, seq, valueize, type, captures, NE_EXPR)) return true; } } if (op1 == o20 || (operand_equal_p (op1, o20, 0) && types_match (op1, o20))) { { /* #line 2773 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 }; if (gimple_simplify_106 (res_code, res_ops, seq, valueize, type, captures, NE_EXPR)) return true; } } if (op1 == o21 || (operand_equal_p (op1, o21, 0) && types_match (op1, o21))) { { /* #line 2773 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o21, o20 }; if (gimple_simplify_106 (res_code, res_ops, seq, valueize, type, captures, NE_EXPR)) return true; } } } } break; } default:; } else if (gcall *def = dyn_cast (def_stmt)) switch (gimple_call_combined_fn (def)) { case CFN_BUILT_IN_SQRTF: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { switch (TREE_CODE (op1)) { case REAL_CST: { { /* #line 2504 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 }; if (gimple_simplify_205 (res_code, res_ops, seq, valueize, type, captures, CFN_BUILT_IN_SQRTF, NE_EXPR)) return true; } break; } default:; } } break; } case CFN_BUILT_IN_SQRT: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { switch (TREE_CODE (op1)) { case REAL_CST: { { /* #line 2504 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 }; if (gimple_simplify_205 (res_code, res_ops, seq, valueize, type, captures, CFN_BUILT_IN_SQRT, NE_EXPR)) return true; } break; } default:; } } break; } case CFN_BUILT_IN_SQRTL: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { switch (TREE_CODE (op1)) { case REAL_CST: { { /* #line 2504 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 }; if (gimple_simplify_205 (res_code, res_ops, seq, valueize, type, captures, CFN_BUILT_IN_SQRTL, NE_EXPR)) return true; } break; } default:; } } break; } case CFN_SQRT: { tree o20 = gimple_call_arg (def, 0); if ((o20 = do_valueize (valueize, o20))) { switch (TREE_CODE (op1)) { case REAL_CST: { { /* #line 2504 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 }; if (gimple_simplify_205 (res_code, res_ops, seq, valueize, type, captures, CFN_SQRT, NE_EXPR)) return true; } break; } default:; } } break; } default:; } } break; case ADDR_EXPR: { switch (TREE_CODE (op1)) { case SSA_NAME: { { /* #line 2744 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 }; if (gimple_simplify_217 (res_code, res_ops, seq, valueize, type, captures, NE_EXPR)) return true; } break; } default:; } break; } default:; } switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case BIT_XOR_EXPR: { tree o30 = gimple_assign_rhs1 (def); if ((o30 = do_valueize (valueize, o30))) { tree o31 = gimple_assign_rhs2 (def); if ((o31 = do_valueize (valueize, o31))) { if (tree_swap_operands_p (o30, o31)) std::swap (o30, o31); if (o30 == op0 || (operand_equal_p (o30, op0, 0) && types_match (o30, op0))) { { /* #line 2773 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { op0, o31 }; if (gimple_simplify_106 (res_code, res_ops, seq, valueize, type, captures, NE_EXPR)) return true; } } if (o31 == op0 || (operand_equal_p (o31, op0, 0) && types_match (o31, op0))) { { /* #line 2773 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { op0, o30 }; if (gimple_simplify_106 (res_code, res_ops, seq, valueize, type, captures, NE_EXPR)) return true; } } } } break; } default:; } } break; default:; } switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { CASE_CONVERT: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { switch (TREE_CODE (o20)) { case SSA_NAME: if (do_valueize (valueize, o20) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (o20); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case BIT_XOR_EXPR: { tree o30 = gimple_assign_rhs1 (def); if ((o30 = do_valueize (valueize, o30))) { tree o31 = gimple_assign_rhs2 (def); if ((o31 = do_valueize (valueize, o31))) { if (tree_swap_operands_p (o30, o31)) std::swap (o30, o31); switch (TREE_CODE (o31)) { case INTEGER_CST: { switch (TREE_CODE (op1)) { case INTEGER_CST: { { /* #line 2778 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { op0, o30, o31, op1 }; if (gimple_simplify_158 (res_code, res_ops, seq, valueize, type, captures, NE_EXPR)) return true; } break; } default:; } break; } default:; } } } break; } default:; } } break; case ADDR_EXPR: { switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { CASE_CONVERT: { tree o40 = gimple_assign_rhs1 (def); if ((o40 = do_valueize (valueize, o40))) { switch (TREE_CODE (o40)) { case ADDR_EXPR: { { /* #line 2851 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, o40 }; if (gimple_simplify_135 (res_code, res_ops, seq, valueize, type, captures, NE_EXPR)) return true; } break; } default:; } } break; } default:; } } break; case ADDR_EXPR: { { /* #line 2851 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, op1 }; if (gimple_simplify_135 (res_code, res_ops, seq, valueize, type, captures, NE_EXPR)) return true; } break; } default:; } if (integer_zerop (op1)) { { /* #line 2783 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; if (gimple_simplify_107 (res_code, res_ops, seq, valueize, type, captures, NE_EXPR)) return true; } } break; } default:; } } break; } case BIT_XOR_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { if (tree_swap_operands_p (o20, o21)) std::swap (o20, o21); switch (TREE_CODE (o21)) { case INTEGER_CST: { switch (TREE_CODE (op1)) { case INTEGER_CST: { { /* #line 2778 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o21, op1 }; if (gimple_simplify_158 (res_code, res_ops, seq, valueize, type, captures, NE_EXPR)) return true; } break; } default:; } break; } default:; } } } break; } case BIT_AND_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { if (tree_swap_operands_p (o20, o21)) std::swap (o20, o21); if (integer_pow2p (o21)) { if (op1 == o21 || (operand_equal_p (op1, o21, 0) && types_match (op1, o21))) { { /* #line 2792 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, o21 }; if (gimple_simplify_204 (res_code, res_ops, seq, valueize, type, captures, NE_EXPR, EQ_EXPR)) return true; } } } switch (TREE_CODE (o20)) { case SSA_NAME: if (do_valueize (valueize, o20) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (o20); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { CASE_CONVERT: { tree o30 = gimple_assign_rhs1 (def); if ((o30 = do_valueize (valueize, o30))) { if (integer_pow2p (o21)) { if (integer_zerop (op1)) { { /* #line 2817 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o20, o30, o21 }; if (gimple_simplify_139 (res_code, res_ops, seq, valueize, type, captures, NE_EXPR, LT_EXPR)) return true; } } } } break; } default:; } } break; default:; } if (integer_pow2p (o21)) { if (integer_zerop (op1)) { { /* #line 2817 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o20, o20, o21 }; if (gimple_simplify_172 (res_code, res_ops, seq, valueize, type, captures, NE_EXPR, LT_EXPR)) return true; } } } } } break; } default:; } } break; case ADDR_EXPR: { switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { CASE_CONVERT: { tree o30 = gimple_assign_rhs1 (def); if ((o30 = do_valueize (valueize, o30))) { switch (TREE_CODE (o30)) { case ADDR_EXPR: { { /* #line 2851 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { op0, op0, o30 }; if (gimple_simplify_103 (res_code, res_ops, seq, valueize, type, captures, NE_EXPR)) return true; } break; } default:; } } break; } default:; } } break; case ADDR_EXPR: { { /* #line 2851 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { op0, op0, op1 }; if (gimple_simplify_103 (res_code, res_ops, seq, valueize, type, captures, NE_EXPR)) return true; } break; } default:; } if (integer_zerop (op1)) { { /* #line 2783 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { op0 }; if (gimple_simplify_107 (res_code, res_ops, seq, valueize, type, captures, NE_EXPR)) return true; } } break; } default:; } { /* #line 2926 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 }; if (gimple_simplify_99 (res_code, res_ops, seq, valueize, type, captures, NE_EXPR)) return true; } switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { CASE_CONVERT: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { switch (TREE_CODE (op1)) { case INTEGER_CST: { { /* #line 2939 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 }; if (gimple_simplify_49 (res_code, res_ops, seq, valueize, type, captures, NE_EXPR)) return true; } break; } default:; } } break; } default:; } } break; default:; } if (integer_zerop (op1)) { { /* #line 3026 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { op0 }; /* #line 3026 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (TREE_CODE (TREE_TYPE (captures[0])) == BOOLEAN_TYPE && types_match (type, TREE_TYPE (captures[0]))) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3028, %s:%d\n", __FILE__, __LINE__); res_ops[0] = captures[0]; *res_code = TREE_CODE (res_ops[0]); return true; } } } switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case PLUS_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { if (tree_swap_operands_p (o20, o21)) std::swap (o20, o21); switch (TREE_CODE (o21)) { case INTEGER_CST: { switch (TREE_CODE (op1)) { case INTEGER_CST: { { /* #line 3712 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o21, op1 }; if (gimple_simplify_178 (res_code, res_ops, seq, valueize, type, captures, PLUS_EXPR, MINUS_EXPR, NE_EXPR)) return true; } break; } default:; } break; } default:; } } } break; } case MINUS_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { switch (TREE_CODE (o21)) { case INTEGER_CST: { switch (TREE_CODE (op1)) { case INTEGER_CST: { { /* #line 3712 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o21, op1 }; if (gimple_simplify_178 (res_code, res_ops, seq, valueize, type, captures, MINUS_EXPR, PLUS_EXPR, NE_EXPR)) return true; } break; } default:; } break; } default:; } } } break; } default:; } } break; default:; } return false; } static bool gimple_simplify_MIN_EXPR (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree op0, tree op1) { if (op1 == op0 || (operand_equal_p (op1, op0, 0) && types_match (op1, op0))) { { /* #line 1343 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { op0 }; if (gimple_simplify_225 (res_code, res_ops, seq, valueize, type, captures)) return true; } } switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case MAX_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { if (tree_swap_operands_p (o20, o21)) std::swap (o20, o21); if (op1 == o21 || (operand_equal_p (op1, o21, 0) && types_match (op1, o21))) { { /* #line 1347 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 }; if (gimple_simplify_65 (res_code, res_ops, seq, valueize, type, captures)) return true; } } if (op1 == o20 || (operand_equal_p (op1, o20, 0) && types_match (op1, o20))) { { /* #line 1347 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o21, o20 }; if (gimple_simplify_65 (res_code, res_ops, seq, valueize, type, captures)) return true; } } } } break; } default:; } } break; default:; } switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case MAX_EXPR: { tree o30 = gimple_assign_rhs1 (def); if ((o30 = do_valueize (valueize, o30))) { tree o31 = gimple_assign_rhs2 (def); if ((o31 = do_valueize (valueize, o31))) { if (tree_swap_operands_p (o30, o31)) std::swap (o30, o31); if (o31 == op0 || (operand_equal_p (o31, op0, 0) && types_match (o31, op0))) { { /* #line 1347 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o30, op0 }; if (gimple_simplify_65 (res_code, res_ops, seq, valueize, type, captures)) return true; } } if (o30 == op0 || (operand_equal_p (o30, op0, 0) && types_match (o30, op0))) { { /* #line 1347 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o31, op0 }; if (gimple_simplify_65 (res_code, res_ops, seq, valueize, type, captures)) return true; } } } } break; } case NEGATE_EXPR: { tree o30 = gimple_assign_rhs1 (def); if ((o30 = do_valueize (valueize, o30))) { if (o30 == op0 || (operand_equal_p (o30, op0, 0) && types_match (o30, op0))) { { /* #line 1362 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { op0 }; if (gimple_simplify_52 (res_code, res_ops, seq, valueize, type, captures)) return true; } } } break; } default:; } } break; default:; } switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case NEGATE_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { if (op1 == o20 || (operand_equal_p (op1, o20, 0) && types_match (op1, o20))) { { /* #line 1362 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; if (gimple_simplify_52 (res_code, res_ops, seq, valueize, type, captures)) return true; } } } break; } default:; } } break; default:; } { /* #line 1369 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 }; /* #line 1369 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (INTEGRAL_TYPE_P (type) && TYPE_MIN_VALUE (type) && operand_equal_p (captures[1], TYPE_MIN_VALUE (type), OEP_ONLY_CONST)) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1372, %s:%d\n", __FILE__, __LINE__); res_ops[0] = captures[1]; *res_code = TREE_CODE (res_ops[0]); return true; } else { /* #line 1373 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (INTEGRAL_TYPE_P (type) && TYPE_MAX_VALUE (type) && operand_equal_p (captures[1], TYPE_MAX_VALUE (type), OEP_ONLY_CONST)) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1376, %s:%d\n", __FILE__, __LINE__); res_ops[0] = captures[0]; *res_code = TREE_CODE (res_ops[0]); return true; } } } switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case PLUS_EXPR: { tree o30 = gimple_assign_rhs1 (def); if ((o30 = do_valueize (valueize, o30))) { tree o31 = gimple_assign_rhs2 (def); if ((o31 = do_valueize (valueize, o31))) { if (tree_swap_operands_p (o30, o31)) std::swap (o30, o31); if (o30 == op0 || (operand_equal_p (o30, op0, 0) && types_match (o30, op0))) { switch (TREE_CODE (o31)) { case INTEGER_CST: { { /* #line 1402 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { op0, op1, o31 }; /* #line 1402 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[0]))) { /* #line 1403 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (tree_int_cst_sgn (captures[2]) > 0) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1404, %s:%d\n", __FILE__, __LINE__); res_ops[0] = captures[0]; *res_code = TREE_CODE (res_ops[0]); return true; } else { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1405, %s:%d\n", __FILE__, __LINE__); res_ops[0] = captures[1]; *res_code = TREE_CODE (res_ops[0]); return true; } } } break; } default:; } } } } break; } default:; } } break; default:; } switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case PLUS_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { if (tree_swap_operands_p (o20, o21)) std::swap (o20, o21); switch (TREE_CODE (o21)) { case INTEGER_CST: { if (op1 == o20 || (operand_equal_p (op1, o20, 0) && types_match (op1, o20))) { { /* #line 1402 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o20, op0, o21 }; /* #line 1402 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[0]))) { /* #line 1403 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (tree_int_cst_sgn (captures[2]) > 0) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1404, %s:%d\n", __FILE__, __LINE__); res_ops[0] = captures[0]; *res_code = TREE_CODE (res_ops[0]); return true; } else { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1405, %s:%d\n", __FILE__, __LINE__); res_ops[0] = captures[1]; *res_code = TREE_CODE (res_ops[0]); return true; } } } } break; } default:; } } } break; } case NEGATE_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case NEGATE_EXPR: { tree o40 = gimple_assign_rhs1 (def); if ((o40 = do_valueize (valueize, o40))) { { /* #line 1443 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, op1, o40 }; /* #line 1443 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (FLOAT_TYPE_P (TREE_TYPE (captures[1])) || (ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[1])) && TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[1])))) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[2]))) lseq = NULL; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1446, %s:%d\n", __FILE__, __LINE__); *res_code = NEGATE_EXPR; { tree ops1[2], res; ops1[0] = captures[1]; ops1[1] = captures[3]; code_helper tem_code = MAX_EXPR; tree tem_ops[3] = { ops1[0], ops1[1] }; gimple_resimplify2 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[0] = res; } gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } } break; } default:; } } break; default:; } } break; } case BIT_NOT_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case BIT_NOT_EXPR: { tree o40 = gimple_assign_rhs1 (def); if ((o40 = do_valueize (valueize, o40))) { { /* #line 1453 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, op1, o40 }; if (gimple_simplify_221 (res_code, res_ops, seq, valueize, type, captures, MIN_EXPR, MAX_EXPR)) return true; } } break; } default:; } } break; default:; } } break; } default:; } } break; default:; } return false; } static bool gimple_simplify_MAX_EXPR (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree op0, tree op1) { if (op1 == op0 || (operand_equal_p (op1, op0, 0) && types_match (op1, op0))) { { /* #line 1343 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { op0 }; if (gimple_simplify_225 (res_code, res_ops, seq, valueize, type, captures)) return true; } } switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case MIN_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { if (tree_swap_operands_p (o20, o21)) std::swap (o20, o21); if (op1 == o21 || (operand_equal_p (op1, o21, 0) && types_match (op1, o21))) { { /* #line 1351 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 }; if (gimple_simplify_19 (res_code, res_ops, seq, valueize, type, captures)) return true; } } if (op1 == o20 || (operand_equal_p (op1, o20, 0) && types_match (op1, o20))) { { /* #line 1351 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o21, o20 }; if (gimple_simplify_19 (res_code, res_ops, seq, valueize, type, captures)) return true; } } } } break; } default:; } } break; default:; } switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case MIN_EXPR: { tree o30 = gimple_assign_rhs1 (def); if ((o30 = do_valueize (valueize, o30))) { tree o31 = gimple_assign_rhs2 (def); if ((o31 = do_valueize (valueize, o31))) { if (tree_swap_operands_p (o30, o31)) std::swap (o30, o31); if (o31 == op0 || (operand_equal_p (o31, op0, 0) && types_match (o31, op0))) { { /* #line 1351 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o30, op0 }; if (gimple_simplify_19 (res_code, res_ops, seq, valueize, type, captures)) return true; } } if (o30 == op0 || (operand_equal_p (o30, op0, 0) && types_match (o30, op0))) { { /* #line 1351 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o31, op0 }; if (gimple_simplify_19 (res_code, res_ops, seq, valueize, type, captures)) return true; } } } } break; } case NEGATE_EXPR: { tree o30 = gimple_assign_rhs1 (def); if ((o30 = do_valueize (valueize, o30))) { if (o30 == op0 || (operand_equal_p (o30, op0, 0) && types_match (o30, op0))) { { /* #line 1355 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { op0 }; if (gimple_simplify_181 (res_code, res_ops, seq, valueize, type, captures)) return true; } } } break; } default:; } } break; default:; } switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case NEGATE_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { if (op1 == o20 || (operand_equal_p (op1, o20, 0) && types_match (op1, o20))) { { /* #line 1355 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; if (gimple_simplify_181 (res_code, res_ops, seq, valueize, type, captures)) return true; } } } break; } default:; } } break; default:; } { /* #line 1380 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 }; /* #line 1380 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (INTEGRAL_TYPE_P (type) && TYPE_MAX_VALUE (type) && operand_equal_p (captures[1], TYPE_MAX_VALUE (type), OEP_ONLY_CONST)) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1383, %s:%d\n", __FILE__, __LINE__); res_ops[0] = captures[1]; *res_code = TREE_CODE (res_ops[0]); return true; } else { /* #line 1384 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (INTEGRAL_TYPE_P (type) && TYPE_MIN_VALUE (type) && operand_equal_p (captures[1], TYPE_MIN_VALUE (type), OEP_ONLY_CONST)) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1387, %s:%d\n", __FILE__, __LINE__); res_ops[0] = captures[0]; *res_code = TREE_CODE (res_ops[0]); return true; } } } switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case PLUS_EXPR: { tree o30 = gimple_assign_rhs1 (def); if ((o30 = do_valueize (valueize, o30))) { tree o31 = gimple_assign_rhs2 (def); if ((o31 = do_valueize (valueize, o31))) { if (tree_swap_operands_p (o30, o31)) std::swap (o30, o31); if (o30 == op0 || (operand_equal_p (o30, op0, 0) && types_match (o30, op0))) { switch (TREE_CODE (o31)) { case INTEGER_CST: { { /* #line 1393 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { op0, op1, o31 }; /* #line 1393 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[0]))) { /* #line 1394 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (tree_int_cst_sgn (captures[2]) > 0) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1395, %s:%d\n", __FILE__, __LINE__); res_ops[0] = captures[1]; *res_code = TREE_CODE (res_ops[0]); return true; } else { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1396, %s:%d\n", __FILE__, __LINE__); res_ops[0] = captures[0]; *res_code = TREE_CODE (res_ops[0]); return true; } } } break; } default:; } } } } break; } default:; } } break; default:; } switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case PLUS_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { if (tree_swap_operands_p (o20, o21)) std::swap (o20, o21); switch (TREE_CODE (o21)) { case INTEGER_CST: { if (op1 == o20 || (operand_equal_p (op1, o20, 0) && types_match (op1, o20))) { { /* #line 1393 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o20, op0, o21 }; /* #line 1393 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[0]))) { /* #line 1394 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (tree_int_cst_sgn (captures[2]) > 0) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1395, %s:%d\n", __FILE__, __LINE__); res_ops[0] = captures[1]; *res_code = TREE_CODE (res_ops[0]); return true; } else { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1396, %s:%d\n", __FILE__, __LINE__); res_ops[0] = captures[0]; *res_code = TREE_CODE (res_ops[0]); return true; } } } } break; } default:; } } } break; } case NEGATE_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case NEGATE_EXPR: { tree o40 = gimple_assign_rhs1 (def); if ((o40 = do_valueize (valueize, o40))) { { /* #line 1443 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, op1, o40 }; /* #line 1443 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (FLOAT_TYPE_P (TREE_TYPE (captures[1])) || (ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[1])) && TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[1])))) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[2]))) lseq = NULL; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1446, %s:%d\n", __FILE__, __LINE__); *res_code = NEGATE_EXPR; { tree ops1[2], res; ops1[0] = captures[1]; ops1[1] = captures[3]; code_helper tem_code = MIN_EXPR; tree tem_ops[3] = { ops1[0], ops1[1] }; gimple_resimplify2 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[0] = res; } gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } } break; } default:; } } break; default:; } } break; } case BIT_NOT_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case BIT_NOT_EXPR: { tree o40 = gimple_assign_rhs1 (def); if ((o40 = do_valueize (valueize, o40))) { { /* #line 1453 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, op1, o40 }; if (gimple_simplify_221 (res_code, res_ops, seq, valueize, type, captures, MAX_EXPR, MIN_EXPR)) return true; } } break; } default:; } } break; default:; } } break; } default:; } } break; default:; } return false; } static bool gimple_simplify_CFN_BUILT_IN_FMINF (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree op0, tree op1) { if (op1 == op0 || (operand_equal_p (op1, op0, 0) && types_match (op1, op0))) { { /* #line 1343 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { op0 }; if (gimple_simplify_225 (res_code, res_ops, seq, valueize, type, captures)) return true; } } switch (TREE_CODE (op1)) { case REAL_CST: { { /* #line 1423 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 }; if (gimple_simplify_1 (res_code, res_ops, seq, valueize, type, captures, CFN_BUILT_IN_FMINF)) return true; } break; } default:; } switch (TREE_CODE (op0)) { case REAL_CST: { { /* #line 1423 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { op1, op0 }; if (gimple_simplify_1 (res_code, res_ops, seq, valueize, type, captures, CFN_BUILT_IN_FMINF)) return true; } break; } default:; } { /* #line 1431 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 }; if (gimple_simplify_136 (res_code, res_ops, seq, valueize, type, captures, CFN_BUILT_IN_FMINF)) return true; } switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case NEGATE_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case NEGATE_EXPR: { tree o40 = gimple_assign_rhs1 (def); if ((o40 = do_valueize (valueize, o40))) { { /* #line 1443 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, op1, o40 }; /* #line 1443 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (FLOAT_TYPE_P (TREE_TYPE (captures[1])) || (ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[1])) && TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[1])))) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[2]))) lseq = NULL; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1446, %s:%d\n", __FILE__, __LINE__); *res_code = NEGATE_EXPR; { tree ops1[2], res; ops1[0] = captures[1]; ops1[1] = captures[3]; code_helper tem_code = CFN_BUILT_IN_FMAXF; tree tem_ops[3] = { ops1[0], ops1[1] }; gimple_resimplify2 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[0] = res; } gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } } break; } default:; } } break; default:; } } break; } default:; } } break; default:; } return false; } static bool gimple_simplify_CFN_BUILT_IN_FMIN (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree op0, tree op1) { if (op1 == op0 || (operand_equal_p (op1, op0, 0) && types_match (op1, op0))) { { /* #line 1343 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { op0 }; if (gimple_simplify_225 (res_code, res_ops, seq, valueize, type, captures)) return true; } } switch (TREE_CODE (op1)) { case REAL_CST: { { /* #line 1423 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 }; if (gimple_simplify_1 (res_code, res_ops, seq, valueize, type, captures, CFN_BUILT_IN_FMIN)) return true; } break; } default:; } switch (TREE_CODE (op0)) { case REAL_CST: { { /* #line 1423 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { op1, op0 }; if (gimple_simplify_1 (res_code, res_ops, seq, valueize, type, captures, CFN_BUILT_IN_FMIN)) return true; } break; } default:; } { /* #line 1431 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 }; if (gimple_simplify_136 (res_code, res_ops, seq, valueize, type, captures, CFN_BUILT_IN_FMIN)) return true; } switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case NEGATE_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case NEGATE_EXPR: { tree o40 = gimple_assign_rhs1 (def); if ((o40 = do_valueize (valueize, o40))) { { /* #line 1443 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, op1, o40 }; /* #line 1443 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (FLOAT_TYPE_P (TREE_TYPE (captures[1])) || (ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[1])) && TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[1])))) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[2]))) lseq = NULL; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1446, %s:%d\n", __FILE__, __LINE__); *res_code = NEGATE_EXPR; { tree ops1[2], res; ops1[0] = captures[1]; ops1[1] = captures[3]; code_helper tem_code = CFN_BUILT_IN_FMAX; tree tem_ops[3] = { ops1[0], ops1[1] }; gimple_resimplify2 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[0] = res; } gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } } break; } default:; } } break; default:; } } break; } default:; } } break; default:; } return false; } static bool gimple_simplify_CFN_BUILT_IN_FMINL (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree op0, tree op1) { if (op1 == op0 || (operand_equal_p (op1, op0, 0) && types_match (op1, op0))) { { /* #line 1343 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { op0 }; if (gimple_simplify_225 (res_code, res_ops, seq, valueize, type, captures)) return true; } } switch (TREE_CODE (op1)) { case REAL_CST: { { /* #line 1423 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 }; if (gimple_simplify_1 (res_code, res_ops, seq, valueize, type, captures, CFN_BUILT_IN_FMINL)) return true; } break; } default:; } switch (TREE_CODE (op0)) { case REAL_CST: { { /* #line 1423 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { op1, op0 }; if (gimple_simplify_1 (res_code, res_ops, seq, valueize, type, captures, CFN_BUILT_IN_FMINL)) return true; } break; } default:; } { /* #line 1431 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 }; if (gimple_simplify_136 (res_code, res_ops, seq, valueize, type, captures, CFN_BUILT_IN_FMINL)) return true; } switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case NEGATE_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case NEGATE_EXPR: { tree o40 = gimple_assign_rhs1 (def); if ((o40 = do_valueize (valueize, o40))) { { /* #line 1443 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, op1, o40 }; /* #line 1443 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (FLOAT_TYPE_P (TREE_TYPE (captures[1])) || (ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[1])) && TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[1])))) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[2]))) lseq = NULL; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1446, %s:%d\n", __FILE__, __LINE__); *res_code = NEGATE_EXPR; { tree ops1[2], res; ops1[0] = captures[1]; ops1[1] = captures[3]; code_helper tem_code = CFN_BUILT_IN_FMAXL; tree tem_ops[3] = { ops1[0], ops1[1] }; gimple_resimplify2 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[0] = res; } gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } } break; } default:; } } break; default:; } } break; } default:; } } break; default:; } return false; } static bool gimple_simplify_CFN_FMIN (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree op0, tree op1) { if (op1 == op0 || (operand_equal_p (op1, op0, 0) && types_match (op1, op0))) { { /* #line 1343 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { op0 }; if (gimple_simplify_225 (res_code, res_ops, seq, valueize, type, captures)) return true; } } switch (TREE_CODE (op1)) { case REAL_CST: { { /* #line 1423 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 }; if (gimple_simplify_1 (res_code, res_ops, seq, valueize, type, captures, CFN_FMIN)) return true; } break; } default:; } switch (TREE_CODE (op0)) { case REAL_CST: { { /* #line 1423 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { op1, op0 }; if (gimple_simplify_1 (res_code, res_ops, seq, valueize, type, captures, CFN_FMIN)) return true; } break; } default:; } { /* #line 1431 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 }; if (gimple_simplify_136 (res_code, res_ops, seq, valueize, type, captures, CFN_FMIN)) return true; } switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case NEGATE_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case NEGATE_EXPR: { tree o40 = gimple_assign_rhs1 (def); if ((o40 = do_valueize (valueize, o40))) { { /* #line 1443 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, op1, o40 }; /* #line 1443 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (FLOAT_TYPE_P (TREE_TYPE (captures[1])) || (ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[1])) && TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[1])))) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[2]))) lseq = NULL; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1446, %s:%d\n", __FILE__, __LINE__); *res_code = NEGATE_EXPR; { tree ops1[2], res; ops1[0] = captures[1]; ops1[1] = captures[3]; code_helper tem_code = CFN_FMAX; tree tem_ops[3] = { ops1[0], ops1[1] }; gimple_resimplify2 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[0] = res; } gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } } break; } default:; } } break; default:; } } break; } default:; } } break; default:; } return false; } static bool gimple_simplify_CFN_BUILT_IN_FMAXF (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree op0, tree op1) { if (op1 == op0 || (operand_equal_p (op1, op0, 0) && types_match (op1, op0))) { { /* #line 1343 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { op0 }; if (gimple_simplify_225 (res_code, res_ops, seq, valueize, type, captures)) return true; } } switch (TREE_CODE (op1)) { case REAL_CST: { { /* #line 1423 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 }; if (gimple_simplify_1 (res_code, res_ops, seq, valueize, type, captures, CFN_BUILT_IN_FMAXF)) return true; } break; } default:; } switch (TREE_CODE (op0)) { case REAL_CST: { { /* #line 1423 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { op1, op0 }; if (gimple_simplify_1 (res_code, res_ops, seq, valueize, type, captures, CFN_BUILT_IN_FMAXF)) return true; } break; } default:; } { /* #line 1431 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 }; if (gimple_simplify_184 (res_code, res_ops, seq, valueize, type, captures, CFN_BUILT_IN_FMAXF)) return true; } switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case NEGATE_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case NEGATE_EXPR: { tree o40 = gimple_assign_rhs1 (def); if ((o40 = do_valueize (valueize, o40))) { { /* #line 1443 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, op1, o40 }; /* #line 1443 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (FLOAT_TYPE_P (TREE_TYPE (captures[1])) || (ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[1])) && TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[1])))) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[2]))) lseq = NULL; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1446, %s:%d\n", __FILE__, __LINE__); *res_code = NEGATE_EXPR; { tree ops1[2], res; ops1[0] = captures[1]; ops1[1] = captures[3]; code_helper tem_code = CFN_BUILT_IN_FMINF; tree tem_ops[3] = { ops1[0], ops1[1] }; gimple_resimplify2 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[0] = res; } gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } } break; } default:; } } break; default:; } } break; } default:; } } break; default:; } return false; } static bool gimple_simplify_CFN_BUILT_IN_FMAX (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree op0, tree op1) { if (op1 == op0 || (operand_equal_p (op1, op0, 0) && types_match (op1, op0))) { { /* #line 1343 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { op0 }; if (gimple_simplify_225 (res_code, res_ops, seq, valueize, type, captures)) return true; } } switch (TREE_CODE (op1)) { case REAL_CST: { { /* #line 1423 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 }; if (gimple_simplify_1 (res_code, res_ops, seq, valueize, type, captures, CFN_BUILT_IN_FMAX)) return true; } break; } default:; } switch (TREE_CODE (op0)) { case REAL_CST: { { /* #line 1423 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { op1, op0 }; if (gimple_simplify_1 (res_code, res_ops, seq, valueize, type, captures, CFN_BUILT_IN_FMAX)) return true; } break; } default:; } { /* #line 1431 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 }; if (gimple_simplify_184 (res_code, res_ops, seq, valueize, type, captures, CFN_BUILT_IN_FMAX)) return true; } switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case NEGATE_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case NEGATE_EXPR: { tree o40 = gimple_assign_rhs1 (def); if ((o40 = do_valueize (valueize, o40))) { { /* #line 1443 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, op1, o40 }; /* #line 1443 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (FLOAT_TYPE_P (TREE_TYPE (captures[1])) || (ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[1])) && TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[1])))) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[2]))) lseq = NULL; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1446, %s:%d\n", __FILE__, __LINE__); *res_code = NEGATE_EXPR; { tree ops1[2], res; ops1[0] = captures[1]; ops1[1] = captures[3]; code_helper tem_code = CFN_BUILT_IN_FMIN; tree tem_ops[3] = { ops1[0], ops1[1] }; gimple_resimplify2 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[0] = res; } gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } } break; } default:; } } break; default:; } } break; } default:; } } break; default:; } return false; } static bool gimple_simplify_CFN_BUILT_IN_FMAXL (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree op0, tree op1) { if (op1 == op0 || (operand_equal_p (op1, op0, 0) && types_match (op1, op0))) { { /* #line 1343 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { op0 }; if (gimple_simplify_225 (res_code, res_ops, seq, valueize, type, captures)) return true; } } switch (TREE_CODE (op1)) { case REAL_CST: { { /* #line 1423 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 }; if (gimple_simplify_1 (res_code, res_ops, seq, valueize, type, captures, CFN_BUILT_IN_FMAXL)) return true; } break; } default:; } switch (TREE_CODE (op0)) { case REAL_CST: { { /* #line 1423 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { op1, op0 }; if (gimple_simplify_1 (res_code, res_ops, seq, valueize, type, captures, CFN_BUILT_IN_FMAXL)) return true; } break; } default:; } { /* #line 1431 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 }; if (gimple_simplify_184 (res_code, res_ops, seq, valueize, type, captures, CFN_BUILT_IN_FMAXL)) return true; } switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case NEGATE_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case NEGATE_EXPR: { tree o40 = gimple_assign_rhs1 (def); if ((o40 = do_valueize (valueize, o40))) { { /* #line 1443 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, op1, o40 }; /* #line 1443 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (FLOAT_TYPE_P (TREE_TYPE (captures[1])) || (ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[1])) && TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[1])))) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[2]))) lseq = NULL; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1446, %s:%d\n", __FILE__, __LINE__); *res_code = NEGATE_EXPR; { tree ops1[2], res; ops1[0] = captures[1]; ops1[1] = captures[3]; code_helper tem_code = CFN_BUILT_IN_FMINL; tree tem_ops[3] = { ops1[0], ops1[1] }; gimple_resimplify2 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[0] = res; } gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } } break; } default:; } } break; default:; } } break; } default:; } } break; default:; } return false; } static bool gimple_simplify_CFN_FMAX (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree op0, tree op1) { if (op1 == op0 || (operand_equal_p (op1, op0, 0) && types_match (op1, op0))) { { /* #line 1343 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { op0 }; if (gimple_simplify_225 (res_code, res_ops, seq, valueize, type, captures)) return true; } } switch (TREE_CODE (op1)) { case REAL_CST: { { /* #line 1423 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 }; if (gimple_simplify_1 (res_code, res_ops, seq, valueize, type, captures, CFN_FMAX)) return true; } break; } default:; } switch (TREE_CODE (op0)) { case REAL_CST: { { /* #line 1423 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { op1, op0 }; if (gimple_simplify_1 (res_code, res_ops, seq, valueize, type, captures, CFN_FMAX)) return true; } break; } default:; } { /* #line 1431 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 }; if (gimple_simplify_184 (res_code, res_ops, seq, valueize, type, captures, CFN_FMAX)) return true; } switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case NEGATE_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case NEGATE_EXPR: { tree o40 = gimple_assign_rhs1 (def); if ((o40 = do_valueize (valueize, o40))) { { /* #line 1443 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, op1, o40 }; /* #line 1443 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (FLOAT_TYPE_P (TREE_TYPE (captures[1])) || (ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[1])) && TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[1])))) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[2]))) lseq = NULL; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1446, %s:%d\n", __FILE__, __LINE__); *res_code = NEGATE_EXPR; { tree ops1[2], res; ops1[0] = captures[1]; ops1[1] = captures[3]; code_helper tem_code = CFN_FMIN; tree tem_ops[3] = { ops1[0], ops1[1] }; gimple_resimplify2 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[0] = res; } gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } } break; } default:; } } break; default:; } } break; } default:; } } break; default:; } return false; } static bool gimple_simplify_LROTATE_EXPR (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree op0, tree op1) { if (integer_all_onesp (op0)) { { /* #line 1492 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 }; if (gimple_simplify_93 (res_code, res_ops, seq, valueize, type, captures, LROTATE_EXPR)) return true; } } if (integer_zerop (op1)) { { /* #line 1518 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { op0 }; if (gimple_simplify_6 (res_code, res_ops, seq, valueize, type, captures, LROTATE_EXPR)) return true; } } if (integer_zerop (op0)) { { /* #line 1521 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 }; if (gimple_simplify_122 (res_code, res_ops, seq, valueize, type, captures, LROTATE_EXPR)) return true; } } switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case CONSTRUCTOR: { { /* #line 1527 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 }; if (gimple_simplify_201 (res_code, res_ops, seq, valueize, type, captures, LROTATE_EXPR)) return true; } break; } default:; } } break; case VECTOR_CST: { { /* #line 1527 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 }; if (gimple_simplify_57 (res_code, res_ops, seq, valueize, type, captures, LROTATE_EXPR)) return true; } break; } case INTEGER_CST: { { /* #line 1550 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 }; gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1550, %s:%d\n", __FILE__, __LINE__); *res_code = RROTATE_EXPR; res_ops[0] = captures[0]; res_ops[1] = const_binop (MINUS_EXPR, TREE_TYPE (captures[1]), build_int_cst (TREE_TYPE (captures[1]), element_precision (type)), captures[1]); gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } break; } default:; } switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case LROTATE_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { switch (TREE_CODE (o21)) { case INTEGER_CST: { switch (TREE_CODE (op1)) { case INTEGER_CST: { { /* #line 1558 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 }; if (gimple_simplify_21 (res_code, res_ops, seq, valueize, type, captures, LROTATE_EXPR)) return true; } break; } default:; } break; } default:; } } } break; } default:; } } break; default:; } return false; } static bool gimple_simplify_RROTATE_EXPR (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree op0, tree op1) { if (integer_all_onesp (op0)) { { /* #line 1492 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 }; if (gimple_simplify_93 (res_code, res_ops, seq, valueize, type, captures, RROTATE_EXPR)) return true; } } if (integer_zerop (op1)) { { /* #line 1518 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { op0 }; if (gimple_simplify_6 (res_code, res_ops, seq, valueize, type, captures, RROTATE_EXPR)) return true; } } if (integer_zerop (op0)) { { /* #line 1521 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 }; if (gimple_simplify_122 (res_code, res_ops, seq, valueize, type, captures, RROTATE_EXPR)) return true; } } switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case CONSTRUCTOR: { { /* #line 1527 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 }; if (gimple_simplify_201 (res_code, res_ops, seq, valueize, type, captures, RROTATE_EXPR)) return true; } break; } default:; } } break; case VECTOR_CST: { { /* #line 1527 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 }; if (gimple_simplify_57 (res_code, res_ops, seq, valueize, type, captures, RROTATE_EXPR)) return true; } break; } default:; } switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case RROTATE_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { switch (TREE_CODE (o21)) { case INTEGER_CST: { switch (TREE_CODE (op1)) { case INTEGER_CST: { { /* #line 1558 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 }; if (gimple_simplify_21 (res_code, res_ops, seq, valueize, type, captures, RROTATE_EXPR)) return true; } break; } default:; } break; } default:; } } } break; } default:; } } break; default:; } return false; } static bool gimple_simplify_RSHIFT_EXPR (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree op0, tree op1) { switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case LSHIFT_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { switch (TREE_CODE (o21)) { case INTEGER_CST: { if (op1 == o21 || (operand_equal_p (op1, o21, 0) && types_match (op1, o21))) { { /* #line 1511 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 }; /* #line 1511 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (TYPE_UNSIGNED (type) && (wi::ltu_p (captures[1], element_precision (type)))) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1513, %s:%d\n", __FILE__, __LINE__); *res_code = BIT_AND_EXPR; res_ops[0] = captures[0]; { tree ops1[2], res; ops1[0] = build_minus_one_cst (type); ops1[1] = captures[1]; code_helper tem_code = RSHIFT_EXPR; tree tem_ops[3] = { ops1[0], ops1[1] }; gimple_resimplify2 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[1] = res; } gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } } break; } default:; } } } break; } default:; } } break; default:; } if (integer_all_onesp (op0)) { { /* #line 1497 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 }; /* #line 1497 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (!TYPE_UNSIGNED (type) && tree_expr_nonnegative_p (captures[1])) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1499, %s:%d\n", __FILE__, __LINE__); res_ops[0] = captures[0]; *res_code = TREE_CODE (res_ops[0]); return true; } } } if (integer_zerop (op1)) { { /* #line 1518 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { op0 }; if (gimple_simplify_6 (res_code, res_ops, seq, valueize, type, captures, RSHIFT_EXPR)) return true; } } if (integer_zerop (op0)) { { /* #line 1521 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 }; if (gimple_simplify_122 (res_code, res_ops, seq, valueize, type, captures, RSHIFT_EXPR)) return true; } } switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case CONSTRUCTOR: { { /* #line 1527 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 }; if (gimple_simplify_201 (res_code, res_ops, seq, valueize, type, captures, RSHIFT_EXPR)) return true; } break; } default:; } } { { /* #line 1537 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 }; if (gimple_simplify_46 (res_code, res_ops, seq, valueize, type, captures, RSHIFT_EXPR)) return true; } } break; case VECTOR_CST: { { /* #line 1527 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 }; if (gimple_simplify_57 (res_code, res_ops, seq, valueize, type, captures, RSHIFT_EXPR)) return true; } break; } default:; } switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case RSHIFT_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { switch (TREE_CODE (o21)) { case INTEGER_CST: { switch (TREE_CODE (op1)) { case INTEGER_CST: { { /* #line 1558 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 }; if (gimple_simplify_21 (res_code, res_ops, seq, valueize, type, captures, RSHIFT_EXPR)) return true; } break; } default:; } break; } default:; } } } break; } CASE_CONVERT: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { switch (TREE_CODE (o20)) { case SSA_NAME: if (do_valueize (valueize, o20) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (o20); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case BIT_AND_EXPR: { tree o30 = gimple_assign_rhs1 (def); if ((o30 = do_valueize (valueize, o30))) { tree o31 = gimple_assign_rhs2 (def); if ((o31 = do_valueize (valueize, o31))) { if (tree_swap_operands_p (o30, o31)) std::swap (o30, o31); switch (TREE_CODE (o31)) { case INTEGER_CST: { switch (TREE_CODE (op1)) { case INTEGER_CST: { { /* #line 1694 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { op0, o20, o30, o31, op1 }; if (gimple_simplify_51 (res_code, res_ops, seq, valueize, type, captures, BIT_AND_EXPR, RSHIFT_EXPR)) return true; } break; } default:; } break; } default:; } } } break; } case BIT_XOR_EXPR: { tree o30 = gimple_assign_rhs1 (def); if ((o30 = do_valueize (valueize, o30))) { tree o31 = gimple_assign_rhs2 (def); if ((o31 = do_valueize (valueize, o31))) { if (tree_swap_operands_p (o30, o31)) std::swap (o30, o31); switch (TREE_CODE (o31)) { case INTEGER_CST: { switch (TREE_CODE (op1)) { case INTEGER_CST: { { /* #line 1694 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { op0, o20, o30, o31, op1 }; if (gimple_simplify_51 (res_code, res_ops, seq, valueize, type, captures, BIT_XOR_EXPR, RSHIFT_EXPR)) return true; } break; } default:; } break; } default:; } } } break; } case BIT_IOR_EXPR: { tree o30 = gimple_assign_rhs1 (def); if ((o30 = do_valueize (valueize, o30))) { tree o31 = gimple_assign_rhs2 (def); if ((o31 = do_valueize (valueize, o31))) { if (tree_swap_operands_p (o30, o31)) std::swap (o30, o31); switch (TREE_CODE (o31)) { case INTEGER_CST: { switch (TREE_CODE (op1)) { case INTEGER_CST: { { /* #line 1694 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { op0, o20, o30, o31, op1 }; if (gimple_simplify_51 (res_code, res_ops, seq, valueize, type, captures, BIT_IOR_EXPR, RSHIFT_EXPR)) return true; } break; } default:; } break; } default:; } } } break; } default:; } } break; default:; } } break; } case BIT_AND_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { if (tree_swap_operands_p (o20, o21)) std::swap (o20, o21); switch (TREE_CODE (o21)) { case INTEGER_CST: { switch (TREE_CODE (op1)) { case INTEGER_CST: { { /* #line 1694 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { op0, op0, o20, o21, op1 }; if (gimple_simplify_4 (res_code, res_ops, seq, valueize, type, captures, BIT_AND_EXPR, RSHIFT_EXPR)) return true; } break; } default:; } break; } default:; } } } break; } case BIT_XOR_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { if (tree_swap_operands_p (o20, o21)) std::swap (o20, o21); switch (TREE_CODE (o21)) { case INTEGER_CST: { switch (TREE_CODE (op1)) { case INTEGER_CST: { { /* #line 1694 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { op0, op0, o20, o21, op1 }; if (gimple_simplify_4 (res_code, res_ops, seq, valueize, type, captures, BIT_XOR_EXPR, RSHIFT_EXPR)) return true; } break; } default:; } break; } default:; } } } break; } case BIT_IOR_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { if (tree_swap_operands_p (o20, o21)) std::swap (o20, o21); switch (TREE_CODE (o21)) { case INTEGER_CST: { switch (TREE_CODE (op1)) { case INTEGER_CST: { { /* #line 1694 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { op0, op0, o20, o21, op1 }; if (gimple_simplify_4 (res_code, res_ops, seq, valueize, type, captures, BIT_IOR_EXPR, RSHIFT_EXPR)) return true; } break; } default:; } break; } default:; } } } break; } default:; } } break; default:; } return false; } static bool gimple_simplify_LSHIFT_EXPR (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree op0, tree op1) { switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case RSHIFT_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { switch (TREE_CODE (o21)) { case INTEGER_CST: { if (op1 == o21 || (operand_equal_p (op1, o21, 0) && types_match (op1, o21))) { { /* #line 1504 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 }; /* #line 1504 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (wi::ltu_p (captures[1], element_precision (type))) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1505, %s:%d\n", __FILE__, __LINE__); *res_code = BIT_AND_EXPR; res_ops[0] = captures[0]; { tree ops1[2], res; ops1[0] = build_minus_one_cst (type); ops1[1] = captures[1]; code_helper tem_code = LSHIFT_EXPR; tree tem_ops[3] = { ops1[0], ops1[1] }; gimple_resimplify2 (lseq, &tem_code, TREE_TYPE (ops1[0]), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (ops1[0]), tem_ops, lseq); if (!res) return false; res_ops[1] = res; } gimple_resimplify2 (lseq, res_code, type, res_ops, valueize); return true; } } } break; } default:; } } } break; } default:; } } break; default:; } if (integer_zerop (op1)) { { /* #line 1518 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { op0 }; if (gimple_simplify_6 (res_code, res_ops, seq, valueize, type, captures, LSHIFT_EXPR)) return true; } } if (integer_zerop (op0)) { { /* #line 1521 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 }; if (gimple_simplify_122 (res_code, res_ops, seq, valueize, type, captures, LSHIFT_EXPR)) return true; } } switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case CONSTRUCTOR: { { /* #line 1527 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 }; if (gimple_simplify_201 (res_code, res_ops, seq, valueize, type, captures, LSHIFT_EXPR)) return true; } break; } default:; } } { { /* #line 1537 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 }; if (gimple_simplify_46 (res_code, res_ops, seq, valueize, type, captures, LSHIFT_EXPR)) return true; } } break; case VECTOR_CST: { { /* #line 1527 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 }; if (gimple_simplify_57 (res_code, res_ops, seq, valueize, type, captures, LSHIFT_EXPR)) return true; } break; } default:; } switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case LSHIFT_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { switch (TREE_CODE (o21)) { case INTEGER_CST: { switch (TREE_CODE (op1)) { case INTEGER_CST: { { /* #line 1558 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 }; if (gimple_simplify_21 (res_code, res_ops, seq, valueize, type, captures, LSHIFT_EXPR)) return true; } break; } default:; } break; } default:; } } } break; } CASE_CONVERT: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { switch (TREE_CODE (o20)) { case SSA_NAME: if (do_valueize (valueize, o20) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (o20); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case BIT_AND_EXPR: { tree o30 = gimple_assign_rhs1 (def); if ((o30 = do_valueize (valueize, o30))) { tree o31 = gimple_assign_rhs2 (def); if ((o31 = do_valueize (valueize, o31))) { if (tree_swap_operands_p (o30, o31)) std::swap (o30, o31); switch (TREE_CODE (o31)) { case INTEGER_CST: { switch (TREE_CODE (op1)) { case INTEGER_CST: { { /* #line 1694 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { op0, o20, o30, o31, op1 }; if (gimple_simplify_51 (res_code, res_ops, seq, valueize, type, captures, BIT_AND_EXPR, LSHIFT_EXPR)) return true; } break; } default:; } break; } default:; } } } break; } case BIT_XOR_EXPR: { tree o30 = gimple_assign_rhs1 (def); if ((o30 = do_valueize (valueize, o30))) { tree o31 = gimple_assign_rhs2 (def); if ((o31 = do_valueize (valueize, o31))) { if (tree_swap_operands_p (o30, o31)) std::swap (o30, o31); switch (TREE_CODE (o31)) { case INTEGER_CST: { switch (TREE_CODE (op1)) { case INTEGER_CST: { { /* #line 1694 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { op0, o20, o30, o31, op1 }; if (gimple_simplify_51 (res_code, res_ops, seq, valueize, type, captures, BIT_XOR_EXPR, LSHIFT_EXPR)) return true; } break; } default:; } break; } default:; } } } break; } case BIT_IOR_EXPR: { tree o30 = gimple_assign_rhs1 (def); if ((o30 = do_valueize (valueize, o30))) { tree o31 = gimple_assign_rhs2 (def); if ((o31 = do_valueize (valueize, o31))) { if (tree_swap_operands_p (o30, o31)) std::swap (o30, o31); switch (TREE_CODE (o31)) { case INTEGER_CST: { switch (TREE_CODE (op1)) { case INTEGER_CST: { { /* #line 1694 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { op0, o20, o30, o31, op1 }; if (gimple_simplify_51 (res_code, res_ops, seq, valueize, type, captures, BIT_IOR_EXPR, LSHIFT_EXPR)) return true; } break; } default:; } break; } default:; } } } break; } default:; } } break; default:; } } break; } case BIT_AND_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { if (tree_swap_operands_p (o20, o21)) std::swap (o20, o21); switch (TREE_CODE (o21)) { case INTEGER_CST: { switch (TREE_CODE (op1)) { case INTEGER_CST: { { /* #line 1694 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { op0, op0, o20, o21, op1 }; if (gimple_simplify_4 (res_code, res_ops, seq, valueize, type, captures, BIT_AND_EXPR, LSHIFT_EXPR)) return true; } break; } default:; } break; } default:; } } } break; } case BIT_XOR_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { if (tree_swap_operands_p (o20, o21)) std::swap (o20, o21); switch (TREE_CODE (o21)) { case INTEGER_CST: { switch (TREE_CODE (op1)) { case INTEGER_CST: { { /* #line 1694 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { op0, op0, o20, o21, op1 }; if (gimple_simplify_4 (res_code, res_ops, seq, valueize, type, captures, BIT_XOR_EXPR, LSHIFT_EXPR)) return true; } break; } default:; } break; } default:; } } } break; } case BIT_IOR_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { if (tree_swap_operands_p (o20, o21)) std::swap (o20, o21); switch (TREE_CODE (o21)) { case INTEGER_CST: { switch (TREE_CODE (op1)) { case INTEGER_CST: { { /* #line 1694 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { op0, op0, o20, o21, op1 }; if (gimple_simplify_4 (res_code, res_ops, seq, valueize, type, captures, BIT_IOR_EXPR, LSHIFT_EXPR)) return true; } break; } default:; } break; } default:; } } } break; } default:; } } break; default:; } return false; } static bool gimple_simplify_COMPLEX_EXPR (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree op0, tree op1) { switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case REALPART_EXPR: { tree o20 = TREE_OPERAND (gimple_assign_rhs1 (def), 0); if ((TREE_CODE (o20) == SSA_NAME || is_gimple_min_invariant (o20)) && (o20 = do_valueize (valueize, o20))) { switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case IMAGPART_EXPR: { tree o40 = TREE_OPERAND (gimple_assign_rhs1 (def), 0); if ((TREE_CODE (o40) == SSA_NAME || is_gimple_min_invariant (o40)) && (o40 = do_valueize (valueize, o40))) { if (o40 == o20 || (operand_equal_p (o40, o20, 0) && types_match (o40, o20))) { { /* #line 1939 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { o20 }; gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:1939, %s:%d\n", __FILE__, __LINE__); res_ops[0] = captures[0]; *res_code = TREE_CODE (res_ops[0]); return true; } } } break; } default:; } } break; default:; } } break; } default:; } } break; default:; } return false; } static bool gimple_simplify_UNLE_EXPR (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree op0, tree op1) { if (op1 == op0 || (operand_equal_p (op1, op0, 0) && types_match (op1, op0))) { { /* #line 2363 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { op0 }; if (gimple_simplify_2 (res_code, res_ops, seq, valueize, type, captures, UNLE_EXPR)) return true; } } switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case NEGATE_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case NEGATE_EXPR: { tree o40 = gimple_assign_rhs1 (def); if ((o40 = do_valueize (valueize, o40))) { { /* #line 2660 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, o40 }; if (gimple_simplify_169 (res_code, res_ops, seq, valueize, type, captures, UNLE_EXPR, UNGE_EXPR)) return true; } } break; } default:; } } break; default:; } if (CONSTANT_CLASS_P (op1)) { { /* #line 2666 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 }; if (gimple_simplify_134 (res_code, res_ops, seq, valueize, type, captures, UNLE_EXPR, UNGE_EXPR)) return true; } } } break; } default:; } } break; default:; } switch (TREE_CODE (op1)) { case REAL_CST: { { /* #line 3018 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 }; if (gimple_simplify_37 (res_code, res_ops, seq, valueize, type, captures, UNLE_EXPR)) return true; } break; } default:; } return false; } static bool gimple_simplify_UNGE_EXPR (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree op0, tree op1) { if (op1 == op0 || (operand_equal_p (op1, op0, 0) && types_match (op1, op0))) { { /* #line 2363 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { op0 }; if (gimple_simplify_2 (res_code, res_ops, seq, valueize, type, captures, UNGE_EXPR)) return true; } } switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case NEGATE_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case NEGATE_EXPR: { tree o40 = gimple_assign_rhs1 (def); if ((o40 = do_valueize (valueize, o40))) { { /* #line 2660 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, o40 }; if (gimple_simplify_169 (res_code, res_ops, seq, valueize, type, captures, UNGE_EXPR, UNLE_EXPR)) return true; } } break; } default:; } } break; default:; } if (CONSTANT_CLASS_P (op1)) { { /* #line 2666 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 }; if (gimple_simplify_134 (res_code, res_ops, seq, valueize, type, captures, UNGE_EXPR, UNLE_EXPR)) return true; } } } break; } default:; } } break; default:; } switch (TREE_CODE (op1)) { case REAL_CST: { { /* #line 3018 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 }; if (gimple_simplify_37 (res_code, res_ops, seq, valueize, type, captures, UNGE_EXPR)) return true; } break; } default:; } return false; } static bool gimple_simplify_UNEQ_EXPR (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree op0, tree op1) { if (op1 == op0 || (operand_equal_p (op1, op0, 0) && types_match (op1, op0))) { { /* #line 2363 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { op0 }; if (gimple_simplify_2 (res_code, res_ops, seq, valueize, type, captures, UNEQ_EXPR)) return true; } } switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case NEGATE_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case NEGATE_EXPR: { tree o40 = gimple_assign_rhs1 (def); if ((o40 = do_valueize (valueize, o40))) { { /* #line 2660 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, o40 }; if (gimple_simplify_169 (res_code, res_ops, seq, valueize, type, captures, UNEQ_EXPR, UNEQ_EXPR)) return true; } } break; } default:; } } break; default:; } if (CONSTANT_CLASS_P (op1)) { { /* #line 2666 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 }; if (gimple_simplify_134 (res_code, res_ops, seq, valueize, type, captures, UNEQ_EXPR, UNEQ_EXPR)) return true; } } } break; } default:; } } break; default:; } switch (TREE_CODE (op1)) { case REAL_CST: { { /* #line 3018 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 }; if (gimple_simplify_37 (res_code, res_ops, seq, valueize, type, captures, UNEQ_EXPR)) return true; } break; } default:; } return false; } static bool gimple_simplify_UNLT_EXPR (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree op0, tree op1) { if (op1 == op0 || (operand_equal_p (op1, op0, 0) && types_match (op1, op0))) { { /* #line 2367 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { op0 }; if (gimple_simplify_206 (res_code, res_ops, seq, valueize, type, captures, UNLT_EXPR)) return true; } } switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case NEGATE_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case NEGATE_EXPR: { tree o40 = gimple_assign_rhs1 (def); if ((o40 = do_valueize (valueize, o40))) { { /* #line 2660 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, o40 }; if (gimple_simplify_169 (res_code, res_ops, seq, valueize, type, captures, UNLT_EXPR, UNGT_EXPR)) return true; } } break; } default:; } } break; default:; } if (CONSTANT_CLASS_P (op1)) { { /* #line 2666 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 }; if (gimple_simplify_134 (res_code, res_ops, seq, valueize, type, captures, UNLT_EXPR, UNGT_EXPR)) return true; } } } break; } default:; } } break; default:; } switch (TREE_CODE (op1)) { case REAL_CST: { { /* #line 3018 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 }; if (gimple_simplify_37 (res_code, res_ops, seq, valueize, type, captures, UNLT_EXPR)) return true; } break; } default:; } return false; } static bool gimple_simplify_UNGT_EXPR (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree op0, tree op1) { if (op1 == op0 || (operand_equal_p (op1, op0, 0) && types_match (op1, op0))) { { /* #line 2367 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { op0 }; if (gimple_simplify_206 (res_code, res_ops, seq, valueize, type, captures, UNGT_EXPR)) return true; } } switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case NEGATE_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case NEGATE_EXPR: { tree o40 = gimple_assign_rhs1 (def); if ((o40 = do_valueize (valueize, o40))) { { /* #line 2660 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, o40 }; if (gimple_simplify_169 (res_code, res_ops, seq, valueize, type, captures, UNGT_EXPR, UNLT_EXPR)) return true; } } break; } default:; } } break; default:; } if (CONSTANT_CLASS_P (op1)) { { /* #line 2666 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 }; if (gimple_simplify_134 (res_code, res_ops, seq, valueize, type, captures, UNGT_EXPR, UNLT_EXPR)) return true; } } } break; } default:; } } break; default:; } switch (TREE_CODE (op1)) { case REAL_CST: { { /* #line 3018 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 }; if (gimple_simplify_37 (res_code, res_ops, seq, valueize, type, captures, UNGT_EXPR)) return true; } break; } default:; } return false; } static bool gimple_simplify_LTGT_EXPR (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree op0, tree op1) { if (op1 == op0 || (operand_equal_p (op1, op0, 0) && types_match (op1, op0))) { { /* #line 2370 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { op0 }; /* #line 2370 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (!flag_trapping_math) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2371, %s:%d\n", __FILE__, __LINE__); res_ops[0] = constant_boolean_node (false, type); *res_code = TREE_CODE (res_ops[0]); return true; } } } switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case NEGATE_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case NEGATE_EXPR: { tree o40 = gimple_assign_rhs1 (def); if ((o40 = do_valueize (valueize, o40))) { { /* #line 2660 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, o40 }; if (gimple_simplify_169 (res_code, res_ops, seq, valueize, type, captures, LTGT_EXPR, LTGT_EXPR)) return true; } } break; } default:; } } break; default:; } if (CONSTANT_CLASS_P (op1)) { { /* #line 2666 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 }; if (gimple_simplify_134 (res_code, res_ops, seq, valueize, type, captures, LTGT_EXPR, LTGT_EXPR)) return true; } } } break; } default:; } } break; default:; } switch (TREE_CODE (op1)) { case REAL_CST: { { /* #line 3018 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 }; if (gimple_simplify_37 (res_code, res_ops, seq, valueize, type, captures, LTGT_EXPR)) return true; } break; } default:; } return false; } static bool gimple_simplify_UNORDERED_EXPR (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree op0, tree op1) { switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case NEGATE_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case NEGATE_EXPR: { tree o40 = gimple_assign_rhs1 (def); if ((o40 = do_valueize (valueize, o40))) { { /* #line 2660 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, o40 }; if (gimple_simplify_169 (res_code, res_ops, seq, valueize, type, captures, UNORDERED_EXPR, UNORDERED_EXPR)) return true; } } break; } default:; } } break; default:; } if (CONSTANT_CLASS_P (op1)) { { /* #line 2666 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 }; if (gimple_simplify_134 (res_code, res_ops, seq, valueize, type, captures, UNORDERED_EXPR, UNORDERED_EXPR)) return true; } } } break; } default:; } } break; default:; } switch (TREE_CODE (op1)) { case REAL_CST: { { /* #line 3018 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 }; if (gimple_simplify_37 (res_code, res_ops, seq, valueize, type, captures, UNORDERED_EXPR)) return true; } break; } default:; } return false; } static bool gimple_simplify_ORDERED_EXPR (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree op0, tree op1) { switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case NEGATE_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case NEGATE_EXPR: { tree o40 = gimple_assign_rhs1 (def); if ((o40 = do_valueize (valueize, o40))) { { /* #line 2660 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, o40 }; if (gimple_simplify_169 (res_code, res_ops, seq, valueize, type, captures, ORDERED_EXPR, ORDERED_EXPR)) return true; } } break; } default:; } } break; default:; } if (CONSTANT_CLASS_P (op1)) { { /* #line 2666 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 }; if (gimple_simplify_134 (res_code, res_ops, seq, valueize, type, captures, ORDERED_EXPR, ORDERED_EXPR)) return true; } } } break; } default:; } } break; default:; } switch (TREE_CODE (op1)) { case REAL_CST: { { /* #line 3018 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 }; if (gimple_simplify_37 (res_code, res_ops, seq, valueize, type, captures, ORDERED_EXPR)) return true; } break; } default:; } return false; } static bool gimple_simplify_CFN_BUILT_IN_LDEXPF (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree op0, tree op1) { if (real_zerop (op0)) { { /* #line 3289 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 }; if (gimple_simplify_44 (res_code, res_ops, seq, valueize, type, captures)) return true; } } if (integer_zerop (op1)) { { /* #line 3293 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 }; if (gimple_simplify_114 (res_code, res_ops, seq, valueize, type, captures)) return true; } } switch (TREE_CODE (op0)) { case REAL_CST: { { /* #line 3297 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 }; /* #line 3297 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (!real_isfinite (TREE_REAL_CST_PTR (captures[0]))) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3298, %s:%d\n", __FILE__, __LINE__); res_ops[0] = captures[0]; *res_code = TREE_CODE (res_ops[0]); return true; } } break; } default:; } return false; } static bool gimple_simplify_CFN_BUILT_IN_LDEXP (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree op0, tree op1) { if (real_zerop (op0)) { { /* #line 3289 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 }; if (gimple_simplify_44 (res_code, res_ops, seq, valueize, type, captures)) return true; } } if (integer_zerop (op1)) { { /* #line 3293 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 }; if (gimple_simplify_114 (res_code, res_ops, seq, valueize, type, captures)) return true; } } switch (TREE_CODE (op0)) { case REAL_CST: { { /* #line 3297 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 }; /* #line 3297 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (!real_isfinite (TREE_REAL_CST_PTR (captures[0]))) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3298, %s:%d\n", __FILE__, __LINE__); res_ops[0] = captures[0]; *res_code = TREE_CODE (res_ops[0]); return true; } } break; } default:; } return false; } static bool gimple_simplify_CFN_BUILT_IN_LDEXPL (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree op0, tree op1) { if (real_zerop (op0)) { { /* #line 3289 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 }; if (gimple_simplify_44 (res_code, res_ops, seq, valueize, type, captures)) return true; } } if (integer_zerop (op1)) { { /* #line 3293 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 }; if (gimple_simplify_114 (res_code, res_ops, seq, valueize, type, captures)) return true; } } switch (TREE_CODE (op0)) { case REAL_CST: { { /* #line 3297 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 }; /* #line 3297 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (!real_isfinite (TREE_REAL_CST_PTR (captures[0]))) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3298, %s:%d\n", __FILE__, __LINE__); res_ops[0] = captures[0]; *res_code = TREE_CODE (res_ops[0]); return true; } } break; } default:; } return false; } static bool gimple_simplify_CFN_LDEXP (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree op0, tree op1) { if (real_zerop (op0)) { { /* #line 3289 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 }; if (gimple_simplify_44 (res_code, res_ops, seq, valueize, type, captures)) return true; } } if (integer_zerop (op1)) { { /* #line 3293 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 }; if (gimple_simplify_114 (res_code, res_ops, seq, valueize, type, captures)) return true; } } switch (TREE_CODE (op0)) { case REAL_CST: { { /* #line 3297 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 }; /* #line 3297 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (!real_isfinite (TREE_REAL_CST_PTR (captures[0]))) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3298, %s:%d\n", __FILE__, __LINE__); res_ops[0] = captures[0]; *res_code = TREE_CODE (res_ops[0]); return true; } } break; } default:; } return false; } static bool gimple_simplify_CFN_BUILT_IN_SCALBNF (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree op0, tree op1) { if (real_zerop (op0)) { { /* #line 3289 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 }; if (gimple_simplify_44 (res_code, res_ops, seq, valueize, type, captures)) return true; } } if (integer_zerop (op1)) { { /* #line 3293 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 }; if (gimple_simplify_114 (res_code, res_ops, seq, valueize, type, captures)) return true; } } switch (TREE_CODE (op0)) { case REAL_CST: { { /* #line 3297 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 }; /* #line 3297 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (!real_isfinite (TREE_REAL_CST_PTR (captures[0]))) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3298, %s:%d\n", __FILE__, __LINE__); res_ops[0] = captures[0]; *res_code = TREE_CODE (res_ops[0]); return true; } } break; } default:; } return false; } static bool gimple_simplify_CFN_BUILT_IN_SCALBN (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree op0, tree op1) { if (real_zerop (op0)) { { /* #line 3289 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 }; if (gimple_simplify_44 (res_code, res_ops, seq, valueize, type, captures)) return true; } } if (integer_zerop (op1)) { { /* #line 3293 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 }; if (gimple_simplify_114 (res_code, res_ops, seq, valueize, type, captures)) return true; } } switch (TREE_CODE (op0)) { case REAL_CST: { { /* #line 3297 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 }; /* #line 3297 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (!real_isfinite (TREE_REAL_CST_PTR (captures[0]))) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3298, %s:%d\n", __FILE__, __LINE__); res_ops[0] = captures[0]; *res_code = TREE_CODE (res_ops[0]); return true; } } break; } default:; } return false; } static bool gimple_simplify_CFN_BUILT_IN_SCALBNL (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree op0, tree op1) { if (real_zerop (op0)) { { /* #line 3289 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 }; if (gimple_simplify_44 (res_code, res_ops, seq, valueize, type, captures)) return true; } } if (integer_zerop (op1)) { { /* #line 3293 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 }; if (gimple_simplify_114 (res_code, res_ops, seq, valueize, type, captures)) return true; } } switch (TREE_CODE (op0)) { case REAL_CST: { { /* #line 3297 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 }; /* #line 3297 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (!real_isfinite (TREE_REAL_CST_PTR (captures[0]))) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3298, %s:%d\n", __FILE__, __LINE__); res_ops[0] = captures[0]; *res_code = TREE_CODE (res_ops[0]); return true; } } break; } default:; } return false; } static bool gimple_simplify_CFN_BUILT_IN_SCALBLNF (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree op0, tree op1) { if (real_zerop (op0)) { { /* #line 3289 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 }; if (gimple_simplify_44 (res_code, res_ops, seq, valueize, type, captures)) return true; } } if (integer_zerop (op1)) { { /* #line 3293 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 }; if (gimple_simplify_114 (res_code, res_ops, seq, valueize, type, captures)) return true; } } switch (TREE_CODE (op0)) { case REAL_CST: { { /* #line 3297 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 }; /* #line 3297 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (!real_isfinite (TREE_REAL_CST_PTR (captures[0]))) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3298, %s:%d\n", __FILE__, __LINE__); res_ops[0] = captures[0]; *res_code = TREE_CODE (res_ops[0]); return true; } } break; } default:; } return false; } static bool gimple_simplify_CFN_BUILT_IN_SCALBLN (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree op0, tree op1) { if (real_zerop (op0)) { { /* #line 3289 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 }; if (gimple_simplify_44 (res_code, res_ops, seq, valueize, type, captures)) return true; } } if (integer_zerop (op1)) { { /* #line 3293 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 }; if (gimple_simplify_114 (res_code, res_ops, seq, valueize, type, captures)) return true; } } switch (TREE_CODE (op0)) { case REAL_CST: { { /* #line 3297 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 }; /* #line 3297 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (!real_isfinite (TREE_REAL_CST_PTR (captures[0]))) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3298, %s:%d\n", __FILE__, __LINE__); res_ops[0] = captures[0]; *res_code = TREE_CODE (res_ops[0]); return true; } } break; } default:; } return false; } static bool gimple_simplify_CFN_BUILT_IN_SCALBLNL (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree op0, tree op1) { if (real_zerop (op0)) { { /* #line 3289 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 }; if (gimple_simplify_44 (res_code, res_ops, seq, valueize, type, captures)) return true; } } if (integer_zerop (op1)) { { /* #line 3293 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 }; if (gimple_simplify_114 (res_code, res_ops, seq, valueize, type, captures)) return true; } } switch (TREE_CODE (op0)) { case REAL_CST: { { /* #line 3297 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 }; /* #line 3297 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (!real_isfinite (TREE_REAL_CST_PTR (captures[0]))) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3298, %s:%d\n", __FILE__, __LINE__); res_ops[0] = captures[0]; *res_code = TREE_CODE (res_ops[0]); return true; } } break; } default:; } return false; } static bool gimple_simplify (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree), code_helper code, tree type, tree op0, tree op1) { switch (code.get_rep()) { case PLUS_EXPR: return gimple_simplify_PLUS_EXPR (res_code, res_ops, seq, valueize, code, type, op0, op1); case POINTER_PLUS_EXPR: return gimple_simplify_POINTER_PLUS_EXPR (res_code, res_ops, seq, valueize, code, type, op0, op1); case MINUS_EXPR: return gimple_simplify_MINUS_EXPR (res_code, res_ops, seq, valueize, code, type, op0, op1); case BIT_IOR_EXPR: return gimple_simplify_BIT_IOR_EXPR (res_code, res_ops, seq, valueize, code, type, op0, op1); case BIT_XOR_EXPR: return gimple_simplify_BIT_XOR_EXPR (res_code, res_ops, seq, valueize, code, type, op0, op1); case MULT_EXPR: return gimple_simplify_MULT_EXPR (res_code, res_ops, seq, valueize, code, type, op0, op1); case TRUNC_DIV_EXPR: return gimple_simplify_TRUNC_DIV_EXPR (res_code, res_ops, seq, valueize, code, type, op0, op1); case CEIL_DIV_EXPR: return gimple_simplify_CEIL_DIV_EXPR (res_code, res_ops, seq, valueize, code, type, op0, op1); case FLOOR_DIV_EXPR: return gimple_simplify_FLOOR_DIV_EXPR (res_code, res_ops, seq, valueize, code, type, op0, op1); case ROUND_DIV_EXPR: return gimple_simplify_ROUND_DIV_EXPR (res_code, res_ops, seq, valueize, code, type, op0, op1); case EXACT_DIV_EXPR: return gimple_simplify_EXACT_DIV_EXPR (res_code, res_ops, seq, valueize, code, type, op0, op1); case RDIV_EXPR: return gimple_simplify_RDIV_EXPR (res_code, res_ops, seq, valueize, code, type, op0, op1); case CEIL_MOD_EXPR: return gimple_simplify_CEIL_MOD_EXPR (res_code, res_ops, seq, valueize, code, type, op0, op1); case FLOOR_MOD_EXPR: return gimple_simplify_FLOOR_MOD_EXPR (res_code, res_ops, seq, valueize, code, type, op0, op1); case ROUND_MOD_EXPR: return gimple_simplify_ROUND_MOD_EXPR (res_code, res_ops, seq, valueize, code, type, op0, op1); case TRUNC_MOD_EXPR: return gimple_simplify_TRUNC_MOD_EXPR (res_code, res_ops, seq, valueize, code, type, op0, op1); case -CFN_BUILT_IN_POWF: return gimple_simplify_CFN_BUILT_IN_POWF (res_code, res_ops, seq, valueize, code, type, op0, op1); case -CFN_BUILT_IN_POW: return gimple_simplify_CFN_BUILT_IN_POW (res_code, res_ops, seq, valueize, code, type, op0, op1); case -CFN_BUILT_IN_POWL: return gimple_simplify_CFN_BUILT_IN_POWL (res_code, res_ops, seq, valueize, code, type, op0, op1); case -CFN_POW: return gimple_simplify_CFN_POW (res_code, res_ops, seq, valueize, code, type, op0, op1); case -CFN_BUILT_IN_POWIF: return gimple_simplify_CFN_BUILT_IN_POWIF (res_code, res_ops, seq, valueize, code, type, op0, op1); case -CFN_BUILT_IN_POWI: return gimple_simplify_CFN_BUILT_IN_POWI (res_code, res_ops, seq, valueize, code, type, op0, op1); case -CFN_BUILT_IN_POWIL: return gimple_simplify_CFN_BUILT_IN_POWIL (res_code, res_ops, seq, valueize, code, type, op0, op1); case -CFN_BUILT_IN_HYPOTF: return gimple_simplify_CFN_BUILT_IN_HYPOTF (res_code, res_ops, seq, valueize, code, type, op0, op1); case -CFN_BUILT_IN_HYPOT: return gimple_simplify_CFN_BUILT_IN_HYPOT (res_code, res_ops, seq, valueize, code, type, op0, op1); case -CFN_BUILT_IN_HYPOTL: return gimple_simplify_CFN_BUILT_IN_HYPOTL (res_code, res_ops, seq, valueize, code, type, op0, op1); case -CFN_BUILT_IN_COPYSIGNF: return gimple_simplify_CFN_BUILT_IN_COPYSIGNF (res_code, res_ops, seq, valueize, code, type, op0, op1); case -CFN_BUILT_IN_COPYSIGN: return gimple_simplify_CFN_BUILT_IN_COPYSIGN (res_code, res_ops, seq, valueize, code, type, op0, op1); case -CFN_BUILT_IN_COPYSIGNL: return gimple_simplify_CFN_BUILT_IN_COPYSIGNL (res_code, res_ops, seq, valueize, code, type, op0, op1); case -CFN_COPYSIGN: return gimple_simplify_CFN_COPYSIGN (res_code, res_ops, seq, valueize, code, type, op0, op1); case BIT_AND_EXPR: return gimple_simplify_BIT_AND_EXPR (res_code, res_ops, seq, valueize, code, type, op0, op1); case LT_EXPR: return gimple_simplify_LT_EXPR (res_code, res_ops, seq, valueize, code, type, op0, op1); case GE_EXPR: return gimple_simplify_GE_EXPR (res_code, res_ops, seq, valueize, code, type, op0, op1); case GT_EXPR: return gimple_simplify_GT_EXPR (res_code, res_ops, seq, valueize, code, type, op0, op1); case LE_EXPR: return gimple_simplify_LE_EXPR (res_code, res_ops, seq, valueize, code, type, op0, op1); case EQ_EXPR: return gimple_simplify_EQ_EXPR (res_code, res_ops, seq, valueize, code, type, op0, op1); case NE_EXPR: return gimple_simplify_NE_EXPR (res_code, res_ops, seq, valueize, code, type, op0, op1); case MIN_EXPR: return gimple_simplify_MIN_EXPR (res_code, res_ops, seq, valueize, code, type, op0, op1); case MAX_EXPR: return gimple_simplify_MAX_EXPR (res_code, res_ops, seq, valueize, code, type, op0, op1); case -CFN_BUILT_IN_FMINF: return gimple_simplify_CFN_BUILT_IN_FMINF (res_code, res_ops, seq, valueize, code, type, op0, op1); case -CFN_BUILT_IN_FMIN: return gimple_simplify_CFN_BUILT_IN_FMIN (res_code, res_ops, seq, valueize, code, type, op0, op1); case -CFN_BUILT_IN_FMINL: return gimple_simplify_CFN_BUILT_IN_FMINL (res_code, res_ops, seq, valueize, code, type, op0, op1); case -CFN_FMIN: return gimple_simplify_CFN_FMIN (res_code, res_ops, seq, valueize, code, type, op0, op1); case -CFN_BUILT_IN_FMAXF: return gimple_simplify_CFN_BUILT_IN_FMAXF (res_code, res_ops, seq, valueize, code, type, op0, op1); case -CFN_BUILT_IN_FMAX: return gimple_simplify_CFN_BUILT_IN_FMAX (res_code, res_ops, seq, valueize, code, type, op0, op1); case -CFN_BUILT_IN_FMAXL: return gimple_simplify_CFN_BUILT_IN_FMAXL (res_code, res_ops, seq, valueize, code, type, op0, op1); case -CFN_FMAX: return gimple_simplify_CFN_FMAX (res_code, res_ops, seq, valueize, code, type, op0, op1); case LROTATE_EXPR: return gimple_simplify_LROTATE_EXPR (res_code, res_ops, seq, valueize, code, type, op0, op1); case RROTATE_EXPR: return gimple_simplify_RROTATE_EXPR (res_code, res_ops, seq, valueize, code, type, op0, op1); case RSHIFT_EXPR: return gimple_simplify_RSHIFT_EXPR (res_code, res_ops, seq, valueize, code, type, op0, op1); case LSHIFT_EXPR: return gimple_simplify_LSHIFT_EXPR (res_code, res_ops, seq, valueize, code, type, op0, op1); case COMPLEX_EXPR: return gimple_simplify_COMPLEX_EXPR (res_code, res_ops, seq, valueize, code, type, op0, op1); case UNLE_EXPR: return gimple_simplify_UNLE_EXPR (res_code, res_ops, seq, valueize, code, type, op0, op1); case UNGE_EXPR: return gimple_simplify_UNGE_EXPR (res_code, res_ops, seq, valueize, code, type, op0, op1); case UNEQ_EXPR: return gimple_simplify_UNEQ_EXPR (res_code, res_ops, seq, valueize, code, type, op0, op1); case UNLT_EXPR: return gimple_simplify_UNLT_EXPR (res_code, res_ops, seq, valueize, code, type, op0, op1); case UNGT_EXPR: return gimple_simplify_UNGT_EXPR (res_code, res_ops, seq, valueize, code, type, op0, op1); case LTGT_EXPR: return gimple_simplify_LTGT_EXPR (res_code, res_ops, seq, valueize, code, type, op0, op1); case UNORDERED_EXPR: return gimple_simplify_UNORDERED_EXPR (res_code, res_ops, seq, valueize, code, type, op0, op1); case ORDERED_EXPR: return gimple_simplify_ORDERED_EXPR (res_code, res_ops, seq, valueize, code, type, op0, op1); case -CFN_BUILT_IN_LDEXPF: return gimple_simplify_CFN_BUILT_IN_LDEXPF (res_code, res_ops, seq, valueize, code, type, op0, op1); case -CFN_BUILT_IN_LDEXP: return gimple_simplify_CFN_BUILT_IN_LDEXP (res_code, res_ops, seq, valueize, code, type, op0, op1); case -CFN_BUILT_IN_LDEXPL: return gimple_simplify_CFN_BUILT_IN_LDEXPL (res_code, res_ops, seq, valueize, code, type, op0, op1); case -CFN_LDEXP: return gimple_simplify_CFN_LDEXP (res_code, res_ops, seq, valueize, code, type, op0, op1); case -CFN_BUILT_IN_SCALBNF: return gimple_simplify_CFN_BUILT_IN_SCALBNF (res_code, res_ops, seq, valueize, code, type, op0, op1); case -CFN_BUILT_IN_SCALBN: return gimple_simplify_CFN_BUILT_IN_SCALBN (res_code, res_ops, seq, valueize, code, type, op0, op1); case -CFN_BUILT_IN_SCALBNL: return gimple_simplify_CFN_BUILT_IN_SCALBNL (res_code, res_ops, seq, valueize, code, type, op0, op1); case -CFN_BUILT_IN_SCALBLNF: return gimple_simplify_CFN_BUILT_IN_SCALBLNF (res_code, res_ops, seq, valueize, code, type, op0, op1); case -CFN_BUILT_IN_SCALBLN: return gimple_simplify_CFN_BUILT_IN_SCALBLN (res_code, res_ops, seq, valueize, code, type, op0, op1); case -CFN_BUILT_IN_SCALBLNL: return gimple_simplify_CFN_BUILT_IN_SCALBLNL (res_code, res_ops, seq, valueize, code, type, op0, op1); default:; } return false; } static bool gimple_simplify_COND_EXPR (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree op0, tree op1, tree op2) { switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case LT_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { switch (TREE_CODE (o20)) { case SSA_NAME: if (do_valueize (valueize, o20) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (o20); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { CASE_CONVERT: { tree o30 = gimple_assign_rhs1 (def); if ((o30 = do_valueize (valueize, o30))) { switch (TREE_CODE (o21)) { case INTEGER_CST: { switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { CASE_CONVERT: { tree o60 = gimple_assign_rhs1 (def); if ((o60 = do_valueize (valueize, o60))) { if (o60 == o30 || (operand_equal_p (o60, o30, 0) && types_match (o60, o30))) { switch (TREE_CODE (op2)) { case INTEGER_CST: { { /* #line 2036 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o30, o21, op2 }; if (gimple_simplify_131 (res_code, res_ops, seq, valueize, type, captures, LT_EXPR)) return true; } break; } default:; } } } break; } default:; } } break; default:; } if (op1 == o30 || (operand_equal_p (op1, o30, 0) && types_match (op1, o30))) { switch (TREE_CODE (op2)) { case INTEGER_CST: { { /* #line 2036 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o30, o21, op2 }; if (gimple_simplify_131 (res_code, res_ops, seq, valueize, type, captures, LT_EXPR)) return true; } break; } default:; } } break; } default:; } } break; } default:; } } break; default:; } switch (TREE_CODE (o21)) { case INTEGER_CST: { switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { CASE_CONVERT: { tree o50 = gimple_assign_rhs1 (def); if ((o50 = do_valueize (valueize, o50))) { if (o50 == o20 || (operand_equal_p (o50, o20, 0) && types_match (o50, o20))) { switch (TREE_CODE (op2)) { case INTEGER_CST: { { /* #line 2036 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op2 }; if (gimple_simplify_131 (res_code, res_ops, seq, valueize, type, captures, LT_EXPR)) return true; } break; } default:; } } } break; } default:; } } break; default:; } if (op1 == o20 || (operand_equal_p (op1, o20, 0) && types_match (op1, o20))) { switch (TREE_CODE (op2)) { case INTEGER_CST: { { /* #line 2036 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op2 }; if (gimple_simplify_131 (res_code, res_ops, seq, valueize, type, captures, LT_EXPR)) return true; } break; } default:; } } break; } default:; } switch (TREE_CODE (o20)) { case SSA_NAME: if (do_valueize (valueize, o20) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (o20); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { CASE_CONVERT: { tree o30 = gimple_assign_rhs1 (def); if ((o30 = do_valueize (valueize, o30))) { switch (TREE_CODE (o21)) { case INTEGER_CST: { switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case PLUS_EXPR: { tree o60 = gimple_assign_rhs1 (def); if ((o60 = do_valueize (valueize, o60))) { tree o61 = gimple_assign_rhs2 (def); if ((o61 = do_valueize (valueize, o61))) { if (tree_swap_operands_p (o60, o61)) std::swap (o60, o61); if (o60 == o30 || (operand_equal_p (o60, o30, 0) && types_match (o60, o30))) { switch (TREE_CODE (o61)) { case INTEGER_CST: { switch (TREE_CODE (op2)) { case INTEGER_CST: { { /* #line 2119 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { o30, o21, o61, op2 }; if (gimple_simplify_176 (res_code, res_ops, seq, valueize, type, captures, LT_EXPR, PLUS_EXPR)) return true; } break; } default:; } break; } default:; } } } } break; } case MINUS_EXPR: { tree o60 = gimple_assign_rhs1 (def); if ((o60 = do_valueize (valueize, o60))) { tree o61 = gimple_assign_rhs2 (def); if ((o61 = do_valueize (valueize, o61))) { if (o60 == o30 || (operand_equal_p (o60, o30, 0) && types_match (o60, o30))) { switch (TREE_CODE (o61)) { case INTEGER_CST: { switch (TREE_CODE (op2)) { case INTEGER_CST: { { /* #line 2119 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { o30, o21, o61, op2 }; if (gimple_simplify_176 (res_code, res_ops, seq, valueize, type, captures, LT_EXPR, MINUS_EXPR)) return true; } break; } default:; } break; } default:; } } } } break; } default:; } } break; default:; } break; } default:; } } break; } default:; } } break; default:; } switch (TREE_CODE (o21)) { case INTEGER_CST: { switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case PLUS_EXPR: { tree o50 = gimple_assign_rhs1 (def); if ((o50 = do_valueize (valueize, o50))) { tree o51 = gimple_assign_rhs2 (def); if ((o51 = do_valueize (valueize, o51))) { if (tree_swap_operands_p (o50, o51)) std::swap (o50, o51); if (o50 == o20 || (operand_equal_p (o50, o20, 0) && types_match (o50, o20))) { switch (TREE_CODE (o51)) { case INTEGER_CST: { switch (TREE_CODE (op2)) { case INTEGER_CST: { { /* #line 2119 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { o20, o21, o51, op2 }; if (gimple_simplify_176 (res_code, res_ops, seq, valueize, type, captures, LT_EXPR, PLUS_EXPR)) return true; } break; } default:; } break; } default:; } } } } break; } case MINUS_EXPR: { tree o50 = gimple_assign_rhs1 (def); if ((o50 = do_valueize (valueize, o50))) { tree o51 = gimple_assign_rhs2 (def); if ((o51 = do_valueize (valueize, o51))) { if (o50 == o20 || (operand_equal_p (o50, o20, 0) && types_match (o50, o20))) { switch (TREE_CODE (o51)) { case INTEGER_CST: { switch (TREE_CODE (op2)) { case INTEGER_CST: { { /* #line 2119 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { o20, o21, o51, op2 }; if (gimple_simplify_176 (res_code, res_ops, seq, valueize, type, captures, LT_EXPR, MINUS_EXPR)) return true; } break; } default:; } break; } default:; } } } } break; } default:; } } break; default:; } break; } default:; } } } break; } case LE_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { switch (TREE_CODE (o20)) { case SSA_NAME: if (do_valueize (valueize, o20) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (o20); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { CASE_CONVERT: { tree o30 = gimple_assign_rhs1 (def); if ((o30 = do_valueize (valueize, o30))) { switch (TREE_CODE (o21)) { case INTEGER_CST: { switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { CASE_CONVERT: { tree o60 = gimple_assign_rhs1 (def); if ((o60 = do_valueize (valueize, o60))) { if (o60 == o30 || (operand_equal_p (o60, o30, 0) && types_match (o60, o30))) { switch (TREE_CODE (op2)) { case INTEGER_CST: { { /* #line 2036 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o30, o21, op2 }; if (gimple_simplify_131 (res_code, res_ops, seq, valueize, type, captures, LE_EXPR)) return true; } break; } default:; } } } break; } default:; } } break; default:; } if (op1 == o30 || (operand_equal_p (op1, o30, 0) && types_match (op1, o30))) { switch (TREE_CODE (op2)) { case INTEGER_CST: { { /* #line 2036 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o30, o21, op2 }; if (gimple_simplify_131 (res_code, res_ops, seq, valueize, type, captures, LE_EXPR)) return true; } break; } default:; } } break; } default:; } } break; } default:; } } break; default:; } switch (TREE_CODE (o21)) { case INTEGER_CST: { switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { CASE_CONVERT: { tree o50 = gimple_assign_rhs1 (def); if ((o50 = do_valueize (valueize, o50))) { if (o50 == o20 || (operand_equal_p (o50, o20, 0) && types_match (o50, o20))) { switch (TREE_CODE (op2)) { case INTEGER_CST: { { /* #line 2036 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op2 }; if (gimple_simplify_131 (res_code, res_ops, seq, valueize, type, captures, LE_EXPR)) return true; } break; } default:; } } } break; } default:; } } break; default:; } if (op1 == o20 || (operand_equal_p (op1, o20, 0) && types_match (op1, o20))) { switch (TREE_CODE (op2)) { case INTEGER_CST: { { /* #line 2036 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op2 }; if (gimple_simplify_131 (res_code, res_ops, seq, valueize, type, captures, LE_EXPR)) return true; } break; } default:; } } break; } default:; } switch (TREE_CODE (o20)) { case SSA_NAME: if (do_valueize (valueize, o20) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (o20); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { CASE_CONVERT: { tree o30 = gimple_assign_rhs1 (def); if ((o30 = do_valueize (valueize, o30))) { switch (TREE_CODE (o21)) { case INTEGER_CST: { switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case PLUS_EXPR: { tree o60 = gimple_assign_rhs1 (def); if ((o60 = do_valueize (valueize, o60))) { tree o61 = gimple_assign_rhs2 (def); if ((o61 = do_valueize (valueize, o61))) { if (tree_swap_operands_p (o60, o61)) std::swap (o60, o61); if (o60 == o30 || (operand_equal_p (o60, o30, 0) && types_match (o60, o30))) { switch (TREE_CODE (o61)) { case INTEGER_CST: { switch (TREE_CODE (op2)) { case INTEGER_CST: { { /* #line 2119 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { o30, o21, o61, op2 }; if (gimple_simplify_176 (res_code, res_ops, seq, valueize, type, captures, LE_EXPR, PLUS_EXPR)) return true; } break; } default:; } break; } default:; } } } } break; } case MINUS_EXPR: { tree o60 = gimple_assign_rhs1 (def); if ((o60 = do_valueize (valueize, o60))) { tree o61 = gimple_assign_rhs2 (def); if ((o61 = do_valueize (valueize, o61))) { if (o60 == o30 || (operand_equal_p (o60, o30, 0) && types_match (o60, o30))) { switch (TREE_CODE (o61)) { case INTEGER_CST: { switch (TREE_CODE (op2)) { case INTEGER_CST: { { /* #line 2119 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { o30, o21, o61, op2 }; if (gimple_simplify_176 (res_code, res_ops, seq, valueize, type, captures, LE_EXPR, MINUS_EXPR)) return true; } break; } default:; } break; } default:; } } } } break; } default:; } } break; default:; } break; } default:; } } break; } default:; } } break; default:; } switch (TREE_CODE (o21)) { case INTEGER_CST: { switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case PLUS_EXPR: { tree o50 = gimple_assign_rhs1 (def); if ((o50 = do_valueize (valueize, o50))) { tree o51 = gimple_assign_rhs2 (def); if ((o51 = do_valueize (valueize, o51))) { if (tree_swap_operands_p (o50, o51)) std::swap (o50, o51); if (o50 == o20 || (operand_equal_p (o50, o20, 0) && types_match (o50, o20))) { switch (TREE_CODE (o51)) { case INTEGER_CST: { switch (TREE_CODE (op2)) { case INTEGER_CST: { { /* #line 2119 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { o20, o21, o51, op2 }; if (gimple_simplify_176 (res_code, res_ops, seq, valueize, type, captures, LE_EXPR, PLUS_EXPR)) return true; } break; } default:; } break; } default:; } } } } break; } case MINUS_EXPR: { tree o50 = gimple_assign_rhs1 (def); if ((o50 = do_valueize (valueize, o50))) { tree o51 = gimple_assign_rhs2 (def); if ((o51 = do_valueize (valueize, o51))) { if (o50 == o20 || (operand_equal_p (o50, o20, 0) && types_match (o50, o20))) { switch (TREE_CODE (o51)) { case INTEGER_CST: { switch (TREE_CODE (op2)) { case INTEGER_CST: { { /* #line 2119 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { o20, o21, o51, op2 }; if (gimple_simplify_176 (res_code, res_ops, 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 o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { switch (TREE_CODE (o20)) { case SSA_NAME: if (do_valueize (valueize, o20) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (o20); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { CASE_CONVERT: { tree o30 = gimple_assign_rhs1 (def); if ((o30 = do_valueize (valueize, o30))) { switch (TREE_CODE (o21)) { case INTEGER_CST: { switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { CASE_CONVERT: { tree o60 = gimple_assign_rhs1 (def); if ((o60 = do_valueize (valueize, o60))) { if (o60 == o30 || (operand_equal_p (o60, o30, 0) && types_match (o60, o30))) { switch (TREE_CODE (op2)) { case INTEGER_CST: { { /* #line 2036 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o30, o21, op2 }; if (gimple_simplify_131 (res_code, res_ops, seq, valueize, type, captures, GT_EXPR)) return true; } break; } default:; } } } break; } default:; } } break; default:; } if (op1 == o30 || (operand_equal_p (op1, o30, 0) && types_match (op1, o30))) { switch (TREE_CODE (op2)) { case INTEGER_CST: { { /* #line 2036 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o30, o21, op2 }; if (gimple_simplify_131 (res_code, res_ops, seq, valueize, type, captures, GT_EXPR)) return true; } break; } default:; } } break; } default:; } } break; } default:; } } break; default:; } switch (TREE_CODE (o21)) { case INTEGER_CST: { switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { CASE_CONVERT: { tree o50 = gimple_assign_rhs1 (def); if ((o50 = do_valueize (valueize, o50))) { if (o50 == o20 || (operand_equal_p (o50, o20, 0) && types_match (o50, o20))) { switch (TREE_CODE (op2)) { case INTEGER_CST: { { /* #line 2036 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op2 }; if (gimple_simplify_131 (res_code, res_ops, seq, valueize, type, captures, GT_EXPR)) return true; } break; } default:; } } } break; } default:; } } break; default:; } if (op1 == o20 || (operand_equal_p (op1, o20, 0) && types_match (op1, o20))) { switch (TREE_CODE (op2)) { case INTEGER_CST: { { /* #line 2036 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op2 }; if (gimple_simplify_131 (res_code, res_ops, seq, valueize, type, captures, GT_EXPR)) return true; } break; } default:; } } break; } default:; } switch (TREE_CODE (o20)) { case SSA_NAME: if (do_valueize (valueize, o20) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (o20); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { CASE_CONVERT: { tree o30 = gimple_assign_rhs1 (def); if ((o30 = do_valueize (valueize, o30))) { switch (TREE_CODE (o21)) { case INTEGER_CST: { switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case PLUS_EXPR: { tree o60 = gimple_assign_rhs1 (def); if ((o60 = do_valueize (valueize, o60))) { tree o61 = gimple_assign_rhs2 (def); if ((o61 = do_valueize (valueize, o61))) { if (tree_swap_operands_p (o60, o61)) std::swap (o60, o61); if (o60 == o30 || (operand_equal_p (o60, o30, 0) && types_match (o60, o30))) { switch (TREE_CODE (o61)) { case INTEGER_CST: { switch (TREE_CODE (op2)) { case INTEGER_CST: { { /* #line 2119 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { o30, o21, o61, op2 }; if (gimple_simplify_176 (res_code, res_ops, seq, valueize, type, captures, GT_EXPR, PLUS_EXPR)) return true; } break; } default:; } break; } default:; } } } } break; } case MINUS_EXPR: { tree o60 = gimple_assign_rhs1 (def); if ((o60 = do_valueize (valueize, o60))) { tree o61 = gimple_assign_rhs2 (def); if ((o61 = do_valueize (valueize, o61))) { if (o60 == o30 || (operand_equal_p (o60, o30, 0) && types_match (o60, o30))) { switch (TREE_CODE (o61)) { case INTEGER_CST: { switch (TREE_CODE (op2)) { case INTEGER_CST: { { /* #line 2119 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { o30, o21, o61, op2 }; if (gimple_simplify_176 (res_code, res_ops, seq, valueize, type, captures, GT_EXPR, MINUS_EXPR)) return true; } break; } default:; } break; } default:; } } } } break; } default:; } } break; default:; } break; } default:; } } break; } default:; } } break; default:; } switch (TREE_CODE (o21)) { case INTEGER_CST: { switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case PLUS_EXPR: { tree o50 = gimple_assign_rhs1 (def); if ((o50 = do_valueize (valueize, o50))) { tree o51 = gimple_assign_rhs2 (def); if ((o51 = do_valueize (valueize, o51))) { if (tree_swap_operands_p (o50, o51)) std::swap (o50, o51); if (o50 == o20 || (operand_equal_p (o50, o20, 0) && types_match (o50, o20))) { switch (TREE_CODE (o51)) { case INTEGER_CST: { switch (TREE_CODE (op2)) { case INTEGER_CST: { { /* #line 2119 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { o20, o21, o51, op2 }; if (gimple_simplify_176 (res_code, res_ops, seq, valueize, type, captures, GT_EXPR, PLUS_EXPR)) return true; } break; } default:; } break; } default:; } } } } break; } case MINUS_EXPR: { tree o50 = gimple_assign_rhs1 (def); if ((o50 = do_valueize (valueize, o50))) { tree o51 = gimple_assign_rhs2 (def); if ((o51 = do_valueize (valueize, o51))) { if (o50 == o20 || (operand_equal_p (o50, o20, 0) && types_match (o50, o20))) { switch (TREE_CODE (o51)) { case INTEGER_CST: { switch (TREE_CODE (op2)) { case INTEGER_CST: { { /* #line 2119 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { o20, o21, o51, op2 }; if (gimple_simplify_176 (res_code, res_ops, seq, valueize, type, captures, GT_EXPR, MINUS_EXPR)) return true; } break; } default:; } break; } default:; } } } } break; } default:; } } break; default:; } break; } default:; } } } break; } case GE_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { switch (TREE_CODE (o20)) { case SSA_NAME: if (do_valueize (valueize, o20) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (o20); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { CASE_CONVERT: { tree o30 = gimple_assign_rhs1 (def); if ((o30 = do_valueize (valueize, o30))) { switch (TREE_CODE (o21)) { case INTEGER_CST: { switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { CASE_CONVERT: { tree o60 = gimple_assign_rhs1 (def); if ((o60 = do_valueize (valueize, o60))) { if (o60 == o30 || (operand_equal_p (o60, o30, 0) && types_match (o60, o30))) { switch (TREE_CODE (op2)) { case INTEGER_CST: { { /* #line 2036 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o30, o21, op2 }; if (gimple_simplify_131 (res_code, res_ops, seq, valueize, type, captures, GE_EXPR)) return true; } break; } default:; } } } break; } default:; } } break; default:; } if (op1 == o30 || (operand_equal_p (op1, o30, 0) && types_match (op1, o30))) { switch (TREE_CODE (op2)) { case INTEGER_CST: { { /* #line 2036 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o30, o21, op2 }; if (gimple_simplify_131 (res_code, res_ops, seq, valueize, type, captures, GE_EXPR)) return true; } break; } default:; } } break; } default:; } } break; } default:; } } break; default:; } switch (TREE_CODE (o21)) { case INTEGER_CST: { switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { CASE_CONVERT: { tree o50 = gimple_assign_rhs1 (def); if ((o50 = do_valueize (valueize, o50))) { if (o50 == o20 || (operand_equal_p (o50, o20, 0) && types_match (o50, o20))) { switch (TREE_CODE (op2)) { case INTEGER_CST: { { /* #line 2036 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op2 }; if (gimple_simplify_131 (res_code, res_ops, seq, valueize, type, captures, GE_EXPR)) return true; } break; } default:; } } } break; } default:; } } break; default:; } if (op1 == o20 || (operand_equal_p (op1, o20, 0) && types_match (op1, o20))) { switch (TREE_CODE (op2)) { case INTEGER_CST: { { /* #line 2036 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op2 }; if (gimple_simplify_131 (res_code, res_ops, seq, valueize, type, captures, GE_EXPR)) return true; } break; } default:; } } break; } default:; } switch (TREE_CODE (o20)) { case SSA_NAME: if (do_valueize (valueize, o20) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (o20); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { CASE_CONVERT: { tree o30 = gimple_assign_rhs1 (def); if ((o30 = do_valueize (valueize, o30))) { switch (TREE_CODE (o21)) { case INTEGER_CST: { switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case PLUS_EXPR: { tree o60 = gimple_assign_rhs1 (def); if ((o60 = do_valueize (valueize, o60))) { tree o61 = gimple_assign_rhs2 (def); if ((o61 = do_valueize (valueize, o61))) { if (tree_swap_operands_p (o60, o61)) std::swap (o60, o61); if (o60 == o30 || (operand_equal_p (o60, o30, 0) && types_match (o60, o30))) { switch (TREE_CODE (o61)) { case INTEGER_CST: { switch (TREE_CODE (op2)) { case INTEGER_CST: { { /* #line 2119 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { o30, o21, o61, op2 }; if (gimple_simplify_176 (res_code, res_ops, seq, valueize, type, captures, GE_EXPR, PLUS_EXPR)) return true; } break; } default:; } break; } default:; } } } } break; } case MINUS_EXPR: { tree o60 = gimple_assign_rhs1 (def); if ((o60 = do_valueize (valueize, o60))) { tree o61 = gimple_assign_rhs2 (def); if ((o61 = do_valueize (valueize, o61))) { if (o60 == o30 || (operand_equal_p (o60, o30, 0) && types_match (o60, o30))) { switch (TREE_CODE (o61)) { case INTEGER_CST: { switch (TREE_CODE (op2)) { case INTEGER_CST: { { /* #line 2119 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { o30, o21, o61, op2 }; if (gimple_simplify_176 (res_code, res_ops, seq, valueize, type, captures, GE_EXPR, MINUS_EXPR)) return true; } break; } default:; } break; } default:; } } } } break; } default:; } } break; default:; } break; } default:; } } break; } default:; } } break; default:; } switch (TREE_CODE (o21)) { case INTEGER_CST: { switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case PLUS_EXPR: { tree o50 = gimple_assign_rhs1 (def); if ((o50 = do_valueize (valueize, o50))) { tree o51 = gimple_assign_rhs2 (def); if ((o51 = do_valueize (valueize, o51))) { if (tree_swap_operands_p (o50, o51)) std::swap (o50, o51); if (o50 == o20 || (operand_equal_p (o50, o20, 0) && types_match (o50, o20))) { switch (TREE_CODE (o51)) { case INTEGER_CST: { switch (TREE_CODE (op2)) { case INTEGER_CST: { { /* #line 2119 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { o20, o21, o51, op2 }; if (gimple_simplify_176 (res_code, res_ops, seq, valueize, type, captures, GE_EXPR, PLUS_EXPR)) return true; } break; } default:; } break; } default:; } } } } break; } case MINUS_EXPR: { tree o50 = gimple_assign_rhs1 (def); if ((o50 = do_valueize (valueize, o50))) { tree o51 = gimple_assign_rhs2 (def); if ((o51 = do_valueize (valueize, o51))) { if (o50 == o20 || (operand_equal_p (o50, o20, 0) && types_match (o50, o20))) { switch (TREE_CODE (o51)) { case INTEGER_CST: { switch (TREE_CODE (op2)) { case INTEGER_CST: { { /* #line 2119 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { o20, o21, o51, op2 }; if (gimple_simplify_176 (res_code, res_ops, 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 o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { if (tree_swap_operands_p (o20, o21)) std::swap (o20, o21); switch (TREE_CODE (o20)) { case SSA_NAME: if (do_valueize (valueize, o20) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (o20); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { CASE_CONVERT: { tree o30 = gimple_assign_rhs1 (def); if ((o30 = do_valueize (valueize, o30))) { switch (TREE_CODE (o21)) { case INTEGER_CST: { switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { CASE_CONVERT: { tree o60 = gimple_assign_rhs1 (def); if ((o60 = do_valueize (valueize, o60))) { if (o60 == o30 || (operand_equal_p (o60, o30, 0) && types_match (o60, o30))) { switch (TREE_CODE (op2)) { case INTEGER_CST: { { /* #line 2036 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o30, o21, op2 }; if (gimple_simplify_131 (res_code, res_ops, seq, valueize, type, captures, EQ_EXPR)) return true; } break; } default:; } } } break; } default:; } } break; default:; } if (op1 == o30 || (operand_equal_p (op1, o30, 0) && types_match (op1, o30))) { switch (TREE_CODE (op2)) { case INTEGER_CST: { { /* #line 2036 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o30, o21, op2 }; if (gimple_simplify_131 (res_code, res_ops, seq, valueize, type, captures, EQ_EXPR)) return true; } break; } default:; } } break; } default:; } } break; } default:; } } break; default:; } switch (TREE_CODE (o21)) { case INTEGER_CST: { switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { CASE_CONVERT: { tree o50 = gimple_assign_rhs1 (def); if ((o50 = do_valueize (valueize, o50))) { if (o50 == o20 || (operand_equal_p (o50, o20, 0) && types_match (o50, o20))) { switch (TREE_CODE (op2)) { case INTEGER_CST: { { /* #line 2036 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op2 }; if (gimple_simplify_131 (res_code, res_ops, seq, valueize, type, captures, EQ_EXPR)) return true; } break; } default:; } } } break; } default:; } } break; default:; } if (op1 == o20 || (operand_equal_p (op1, o20, 0) && types_match (op1, o20))) { switch (TREE_CODE (op2)) { case INTEGER_CST: { { /* #line 2036 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op2 }; if (gimple_simplify_131 (res_code, res_ops, seq, valueize, type, captures, EQ_EXPR)) return true; } break; } default:; } } break; } default:; } } } break; } default:; } } break; case INTEGER_CST: { { /* #line 2005 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { op0, op1, op2 }; /* #line 2005 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (integer_zerop (captures[0])) { /* #line 2006 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (!VOID_TYPE_P (TREE_TYPE (captures[2])) || VOID_TYPE_P (type)) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2007, %s:%d\n", __FILE__, __LINE__); res_ops[0] = captures[2]; *res_code = TREE_CODE (res_ops[0]); return true; } } else { /* #line 2008 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (!VOID_TYPE_P (TREE_TYPE (captures[1])) || VOID_TYPE_P (type)) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2009, %s:%d\n", __FILE__, __LINE__); res_ops[0] = captures[1]; *res_code = TREE_CODE (res_ops[0]); return true; } } } break; } case LT_EXPR: { tree o20 = TREE_OPERAND (op0, 0); if ((TREE_CODE (o20) == SSA_NAME || is_gimple_min_invariant (o20)) && (o20 = do_valueize (valueize, o20))) { tree o21 = TREE_OPERAND (op0, 1); if ((TREE_CODE (o21) == SSA_NAME || is_gimple_min_invariant (o21)) && (o21 = do_valueize (valueize, o21))) { switch (TREE_CODE (o20)) { case SSA_NAME: if (do_valueize (valueize, o20) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (o20); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { CASE_CONVERT: { tree o30 = gimple_assign_rhs1 (def); if ((o30 = do_valueize (valueize, o30))) { switch (TREE_CODE (o21)) { case INTEGER_CST: { switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { CASE_CONVERT: { tree o60 = gimple_assign_rhs1 (def); if ((o60 = do_valueize (valueize, o60))) { if (o60 == o30 || (operand_equal_p (o60, o30, 0) && types_match (o60, o30))) { switch (TREE_CODE (op2)) { case INTEGER_CST: { { /* #line 2036 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o30, o21, op2 }; if (gimple_simplify_131 (res_code, res_ops, seq, valueize, type, captures, LT_EXPR)) return true; } break; } default:; } } } break; } default:; } } break; default:; } if (op1 == o30 || (operand_equal_p (op1, o30, 0) && types_match (op1, o30))) { switch (TREE_CODE (op2)) { case INTEGER_CST: { { /* #line 2036 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o30, o21, op2 }; if (gimple_simplify_131 (res_code, res_ops, seq, valueize, type, captures, LT_EXPR)) return true; } break; } default:; } } break; } default:; } } break; } default:; } } break; default:; } switch (TREE_CODE (o21)) { case INTEGER_CST: { switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { CASE_CONVERT: { tree o50 = gimple_assign_rhs1 (def); if ((o50 = do_valueize (valueize, o50))) { if (o50 == o20 || (operand_equal_p (o50, o20, 0) && types_match (o50, o20))) { switch (TREE_CODE (op2)) { case INTEGER_CST: { { /* #line 2036 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op2 }; if (gimple_simplify_131 (res_code, res_ops, seq, valueize, type, captures, LT_EXPR)) return true; } break; } default:; } } } break; } default:; } } break; default:; } if (op1 == o20 || (operand_equal_p (op1, o20, 0) && types_match (op1, o20))) { switch (TREE_CODE (op2)) { case INTEGER_CST: { { /* #line 2036 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op2 }; if (gimple_simplify_131 (res_code, res_ops, seq, valueize, type, captures, LT_EXPR)) return true; } break; } default:; } } break; } default:; } switch (TREE_CODE (o20)) { case SSA_NAME: if (do_valueize (valueize, o20) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (o20); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { CASE_CONVERT: { tree o30 = gimple_assign_rhs1 (def); if ((o30 = do_valueize (valueize, o30))) { switch (TREE_CODE (o21)) { case INTEGER_CST: { switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case PLUS_EXPR: { tree o60 = gimple_assign_rhs1 (def); if ((o60 = do_valueize (valueize, o60))) { tree o61 = gimple_assign_rhs2 (def); if ((o61 = do_valueize (valueize, o61))) { if (tree_swap_operands_p (o60, o61)) std::swap (o60, o61); if (o60 == o30 || (operand_equal_p (o60, o30, 0) && types_match (o60, o30))) { switch (TREE_CODE (o61)) { case INTEGER_CST: { switch (TREE_CODE (op2)) { case INTEGER_CST: { { /* #line 2119 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { o30, o21, o61, op2 }; if (gimple_simplify_176 (res_code, res_ops, seq, valueize, type, captures, LT_EXPR, PLUS_EXPR)) return true; } break; } default:; } break; } default:; } } } } break; } case MINUS_EXPR: { tree o60 = gimple_assign_rhs1 (def); if ((o60 = do_valueize (valueize, o60))) { tree o61 = gimple_assign_rhs2 (def); if ((o61 = do_valueize (valueize, o61))) { if (o60 == o30 || (operand_equal_p (o60, o30, 0) && types_match (o60, o30))) { switch (TREE_CODE (o61)) { case INTEGER_CST: { switch (TREE_CODE (op2)) { case INTEGER_CST: { { /* #line 2119 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { o30, o21, o61, op2 }; if (gimple_simplify_176 (res_code, res_ops, seq, valueize, type, captures, LT_EXPR, MINUS_EXPR)) return true; } break; } default:; } break; } default:; } } } } break; } default:; } } break; default:; } break; } default:; } } break; } default:; } } break; default:; } switch (TREE_CODE (o21)) { case INTEGER_CST: { switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case PLUS_EXPR: { tree o50 = gimple_assign_rhs1 (def); if ((o50 = do_valueize (valueize, o50))) { tree o51 = gimple_assign_rhs2 (def); if ((o51 = do_valueize (valueize, o51))) { if (tree_swap_operands_p (o50, o51)) std::swap (o50, o51); if (o50 == o20 || (operand_equal_p (o50, o20, 0) && types_match (o50, o20))) { switch (TREE_CODE (o51)) { case INTEGER_CST: { switch (TREE_CODE (op2)) { case INTEGER_CST: { { /* #line 2119 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { o20, o21, o51, op2 }; if (gimple_simplify_176 (res_code, res_ops, seq, valueize, type, captures, LT_EXPR, PLUS_EXPR)) return true; } break; } default:; } break; } default:; } } } } break; } case MINUS_EXPR: { tree o50 = gimple_assign_rhs1 (def); if ((o50 = do_valueize (valueize, o50))) { tree o51 = gimple_assign_rhs2 (def); if ((o51 = do_valueize (valueize, o51))) { if (o50 == o20 || (operand_equal_p (o50, o20, 0) && types_match (o50, o20))) { switch (TREE_CODE (o51)) { case INTEGER_CST: { switch (TREE_CODE (op2)) { case INTEGER_CST: { { /* #line 2119 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { o20, o21, o51, op2 }; if (gimple_simplify_176 (res_code, res_ops, seq, valueize, type, captures, LT_EXPR, MINUS_EXPR)) return true; } break; } default:; } break; } default:; } } } } break; } default:; } } break; default:; } break; } default:; } } } break; } case LE_EXPR: { tree o20 = TREE_OPERAND (op0, 0); if ((TREE_CODE (o20) == SSA_NAME || is_gimple_min_invariant (o20)) && (o20 = do_valueize (valueize, o20))) { tree o21 = TREE_OPERAND (op0, 1); if ((TREE_CODE (o21) == SSA_NAME || is_gimple_min_invariant (o21)) && (o21 = do_valueize (valueize, o21))) { switch (TREE_CODE (o20)) { case SSA_NAME: if (do_valueize (valueize, o20) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (o20); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { CASE_CONVERT: { tree o30 = gimple_assign_rhs1 (def); if ((o30 = do_valueize (valueize, o30))) { switch (TREE_CODE (o21)) { case INTEGER_CST: { switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { CASE_CONVERT: { tree o60 = gimple_assign_rhs1 (def); if ((o60 = do_valueize (valueize, o60))) { if (o60 == o30 || (operand_equal_p (o60, o30, 0) && types_match (o60, o30))) { switch (TREE_CODE (op2)) { case INTEGER_CST: { { /* #line 2036 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o30, o21, op2 }; if (gimple_simplify_131 (res_code, res_ops, seq, valueize, type, captures, LE_EXPR)) return true; } break; } default:; } } } break; } default:; } } break; default:; } if (op1 == o30 || (operand_equal_p (op1, o30, 0) && types_match (op1, o30))) { switch (TREE_CODE (op2)) { case INTEGER_CST: { { /* #line 2036 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o30, o21, op2 }; if (gimple_simplify_131 (res_code, res_ops, seq, valueize, type, captures, LE_EXPR)) return true; } break; } default:; } } break; } default:; } } break; } default:; } } break; default:; } switch (TREE_CODE (o21)) { case INTEGER_CST: { switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { CASE_CONVERT: { tree o50 = gimple_assign_rhs1 (def); if ((o50 = do_valueize (valueize, o50))) { if (o50 == o20 || (operand_equal_p (o50, o20, 0) && types_match (o50, o20))) { switch (TREE_CODE (op2)) { case INTEGER_CST: { { /* #line 2036 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op2 }; if (gimple_simplify_131 (res_code, res_ops, seq, valueize, type, captures, LE_EXPR)) return true; } break; } default:; } } } break; } default:; } } break; default:; } if (op1 == o20 || (operand_equal_p (op1, o20, 0) && types_match (op1, o20))) { switch (TREE_CODE (op2)) { case INTEGER_CST: { { /* #line 2036 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op2 }; if (gimple_simplify_131 (res_code, res_ops, seq, valueize, type, captures, LE_EXPR)) return true; } break; } default:; } } break; } default:; } switch (TREE_CODE (o20)) { case SSA_NAME: if (do_valueize (valueize, o20) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (o20); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { CASE_CONVERT: { tree o30 = gimple_assign_rhs1 (def); if ((o30 = do_valueize (valueize, o30))) { switch (TREE_CODE (o21)) { case INTEGER_CST: { switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case PLUS_EXPR: { tree o60 = gimple_assign_rhs1 (def); if ((o60 = do_valueize (valueize, o60))) { tree o61 = gimple_assign_rhs2 (def); if ((o61 = do_valueize (valueize, o61))) { if (tree_swap_operands_p (o60, o61)) std::swap (o60, o61); if (o60 == o30 || (operand_equal_p (o60, o30, 0) && types_match (o60, o30))) { switch (TREE_CODE (o61)) { case INTEGER_CST: { switch (TREE_CODE (op2)) { case INTEGER_CST: { { /* #line 2119 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { o30, o21, o61, op2 }; if (gimple_simplify_176 (res_code, res_ops, seq, valueize, type, captures, LE_EXPR, PLUS_EXPR)) return true; } break; } default:; } break; } default:; } } } } break; } case MINUS_EXPR: { tree o60 = gimple_assign_rhs1 (def); if ((o60 = do_valueize (valueize, o60))) { tree o61 = gimple_assign_rhs2 (def); if ((o61 = do_valueize (valueize, o61))) { if (o60 == o30 || (operand_equal_p (o60, o30, 0) && types_match (o60, o30))) { switch (TREE_CODE (o61)) { case INTEGER_CST: { switch (TREE_CODE (op2)) { case INTEGER_CST: { { /* #line 2119 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { o30, o21, o61, op2 }; if (gimple_simplify_176 (res_code, res_ops, seq, valueize, type, captures, LE_EXPR, MINUS_EXPR)) return true; } break; } default:; } break; } default:; } } } } break; } default:; } } break; default:; } break; } default:; } } break; } default:; } } break; default:; } switch (TREE_CODE (o21)) { case INTEGER_CST: { switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case PLUS_EXPR: { tree o50 = gimple_assign_rhs1 (def); if ((o50 = do_valueize (valueize, o50))) { tree o51 = gimple_assign_rhs2 (def); if ((o51 = do_valueize (valueize, o51))) { if (tree_swap_operands_p (o50, o51)) std::swap (o50, o51); if (o50 == o20 || (operand_equal_p (o50, o20, 0) && types_match (o50, o20))) { switch (TREE_CODE (o51)) { case INTEGER_CST: { switch (TREE_CODE (op2)) { case INTEGER_CST: { { /* #line 2119 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { o20, o21, o51, op2 }; if (gimple_simplify_176 (res_code, res_ops, seq, valueize, type, captures, LE_EXPR, PLUS_EXPR)) return true; } break; } default:; } break; } default:; } } } } break; } case MINUS_EXPR: { tree o50 = gimple_assign_rhs1 (def); if ((o50 = do_valueize (valueize, o50))) { tree o51 = gimple_assign_rhs2 (def); if ((o51 = do_valueize (valueize, o51))) { if (o50 == o20 || (operand_equal_p (o50, o20, 0) && types_match (o50, o20))) { switch (TREE_CODE (o51)) { case INTEGER_CST: { switch (TREE_CODE (op2)) { case INTEGER_CST: { { /* #line 2119 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { o20, o21, o51, op2 }; if (gimple_simplify_176 (res_code, res_ops, 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 o20 = TREE_OPERAND (op0, 0); if ((TREE_CODE (o20) == SSA_NAME || is_gimple_min_invariant (o20)) && (o20 = do_valueize (valueize, o20))) { tree o21 = TREE_OPERAND (op0, 1); if ((TREE_CODE (o21) == SSA_NAME || is_gimple_min_invariant (o21)) && (o21 = do_valueize (valueize, o21))) { switch (TREE_CODE (o20)) { case SSA_NAME: if (do_valueize (valueize, o20) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (o20); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { CASE_CONVERT: { tree o30 = gimple_assign_rhs1 (def); if ((o30 = do_valueize (valueize, o30))) { switch (TREE_CODE (o21)) { case INTEGER_CST: { switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { CASE_CONVERT: { tree o60 = gimple_assign_rhs1 (def); if ((o60 = do_valueize (valueize, o60))) { if (o60 == o30 || (operand_equal_p (o60, o30, 0) && types_match (o60, o30))) { switch (TREE_CODE (op2)) { case INTEGER_CST: { { /* #line 2036 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o30, o21, op2 }; if (gimple_simplify_131 (res_code, res_ops, seq, valueize, type, captures, GT_EXPR)) return true; } break; } default:; } } } break; } default:; } } break; default:; } if (op1 == o30 || (operand_equal_p (op1, o30, 0) && types_match (op1, o30))) { switch (TREE_CODE (op2)) { case INTEGER_CST: { { /* #line 2036 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o30, o21, op2 }; if (gimple_simplify_131 (res_code, res_ops, seq, valueize, type, captures, GT_EXPR)) return true; } break; } default:; } } break; } default:; } } break; } default:; } } break; default:; } switch (TREE_CODE (o21)) { case INTEGER_CST: { switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { CASE_CONVERT: { tree o50 = gimple_assign_rhs1 (def); if ((o50 = do_valueize (valueize, o50))) { if (o50 == o20 || (operand_equal_p (o50, o20, 0) && types_match (o50, o20))) { switch (TREE_CODE (op2)) { case INTEGER_CST: { { /* #line 2036 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op2 }; if (gimple_simplify_131 (res_code, res_ops, seq, valueize, type, captures, GT_EXPR)) return true; } break; } default:; } } } break; } default:; } } break; default:; } if (op1 == o20 || (operand_equal_p (op1, o20, 0) && types_match (op1, o20))) { switch (TREE_CODE (op2)) { case INTEGER_CST: { { /* #line 2036 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op2 }; if (gimple_simplify_131 (res_code, res_ops, seq, valueize, type, captures, GT_EXPR)) return true; } break; } default:; } } break; } default:; } switch (TREE_CODE (o20)) { case SSA_NAME: if (do_valueize (valueize, o20) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (o20); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { CASE_CONVERT: { tree o30 = gimple_assign_rhs1 (def); if ((o30 = do_valueize (valueize, o30))) { switch (TREE_CODE (o21)) { case INTEGER_CST: { switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case PLUS_EXPR: { tree o60 = gimple_assign_rhs1 (def); if ((o60 = do_valueize (valueize, o60))) { tree o61 = gimple_assign_rhs2 (def); if ((o61 = do_valueize (valueize, o61))) { if (tree_swap_operands_p (o60, o61)) std::swap (o60, o61); if (o60 == o30 || (operand_equal_p (o60, o30, 0) && types_match (o60, o30))) { switch (TREE_CODE (o61)) { case INTEGER_CST: { switch (TREE_CODE (op2)) { case INTEGER_CST: { { /* #line 2119 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { o30, o21, o61, op2 }; if (gimple_simplify_176 (res_code, res_ops, seq, valueize, type, captures, GT_EXPR, PLUS_EXPR)) return true; } break; } default:; } break; } default:; } } } } break; } case MINUS_EXPR: { tree o60 = gimple_assign_rhs1 (def); if ((o60 = do_valueize (valueize, o60))) { tree o61 = gimple_assign_rhs2 (def); if ((o61 = do_valueize (valueize, o61))) { if (o60 == o30 || (operand_equal_p (o60, o30, 0) && types_match (o60, o30))) { switch (TREE_CODE (o61)) { case INTEGER_CST: { switch (TREE_CODE (op2)) { case INTEGER_CST: { { /* #line 2119 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { o30, o21, o61, op2 }; if (gimple_simplify_176 (res_code, res_ops, seq, valueize, type, captures, GT_EXPR, MINUS_EXPR)) return true; } break; } default:; } break; } default:; } } } } break; } default:; } } break; default:; } break; } default:; } } break; } default:; } } break; default:; } switch (TREE_CODE (o21)) { case INTEGER_CST: { switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case PLUS_EXPR: { tree o50 = gimple_assign_rhs1 (def); if ((o50 = do_valueize (valueize, o50))) { tree o51 = gimple_assign_rhs2 (def); if ((o51 = do_valueize (valueize, o51))) { if (tree_swap_operands_p (o50, o51)) std::swap (o50, o51); if (o50 == o20 || (operand_equal_p (o50, o20, 0) && types_match (o50, o20))) { switch (TREE_CODE (o51)) { case INTEGER_CST: { switch (TREE_CODE (op2)) { case INTEGER_CST: { { /* #line 2119 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { o20, o21, o51, op2 }; if (gimple_simplify_176 (res_code, res_ops, seq, valueize, type, captures, GT_EXPR, PLUS_EXPR)) return true; } break; } default:; } break; } default:; } } } } break; } case MINUS_EXPR: { tree o50 = gimple_assign_rhs1 (def); if ((o50 = do_valueize (valueize, o50))) { tree o51 = gimple_assign_rhs2 (def); if ((o51 = do_valueize (valueize, o51))) { if (o50 == o20 || (operand_equal_p (o50, o20, 0) && types_match (o50, o20))) { switch (TREE_CODE (o51)) { case INTEGER_CST: { switch (TREE_CODE (op2)) { case INTEGER_CST: { { /* #line 2119 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { o20, o21, o51, op2 }; if (gimple_simplify_176 (res_code, res_ops, seq, valueize, type, captures, GT_EXPR, MINUS_EXPR)) return true; } break; } default:; } break; } default:; } } } } break; } default:; } } break; default:; } break; } default:; } } } break; } case GE_EXPR: { tree o20 = TREE_OPERAND (op0, 0); if ((TREE_CODE (o20) == SSA_NAME || is_gimple_min_invariant (o20)) && (o20 = do_valueize (valueize, o20))) { tree o21 = TREE_OPERAND (op0, 1); if ((TREE_CODE (o21) == SSA_NAME || is_gimple_min_invariant (o21)) && (o21 = do_valueize (valueize, o21))) { switch (TREE_CODE (o20)) { case SSA_NAME: if (do_valueize (valueize, o20) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (o20); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { CASE_CONVERT: { tree o30 = gimple_assign_rhs1 (def); if ((o30 = do_valueize (valueize, o30))) { switch (TREE_CODE (o21)) { case INTEGER_CST: { switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { CASE_CONVERT: { tree o60 = gimple_assign_rhs1 (def); if ((o60 = do_valueize (valueize, o60))) { if (o60 == o30 || (operand_equal_p (o60, o30, 0) && types_match (o60, o30))) { switch (TREE_CODE (op2)) { case INTEGER_CST: { { /* #line 2036 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o30, o21, op2 }; if (gimple_simplify_131 (res_code, res_ops, seq, valueize, type, captures, GE_EXPR)) return true; } break; } default:; } } } break; } default:; } } break; default:; } if (op1 == o30 || (operand_equal_p (op1, o30, 0) && types_match (op1, o30))) { switch (TREE_CODE (op2)) { case INTEGER_CST: { { /* #line 2036 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o30, o21, op2 }; if (gimple_simplify_131 (res_code, res_ops, seq, valueize, type, captures, GE_EXPR)) return true; } break; } default:; } } break; } default:; } } break; } default:; } } break; default:; } switch (TREE_CODE (o21)) { case INTEGER_CST: { switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { CASE_CONVERT: { tree o50 = gimple_assign_rhs1 (def); if ((o50 = do_valueize (valueize, o50))) { if (o50 == o20 || (operand_equal_p (o50, o20, 0) && types_match (o50, o20))) { switch (TREE_CODE (op2)) { case INTEGER_CST: { { /* #line 2036 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op2 }; if (gimple_simplify_131 (res_code, res_ops, seq, valueize, type, captures, GE_EXPR)) return true; } break; } default:; } } } break; } default:; } } break; default:; } if (op1 == o20 || (operand_equal_p (op1, o20, 0) && types_match (op1, o20))) { switch (TREE_CODE (op2)) { case INTEGER_CST: { { /* #line 2036 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op2 }; if (gimple_simplify_131 (res_code, res_ops, seq, valueize, type, captures, GE_EXPR)) return true; } break; } default:; } } break; } default:; } switch (TREE_CODE (o20)) { case SSA_NAME: if (do_valueize (valueize, o20) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (o20); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { CASE_CONVERT: { tree o30 = gimple_assign_rhs1 (def); if ((o30 = do_valueize (valueize, o30))) { switch (TREE_CODE (o21)) { case INTEGER_CST: { switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case PLUS_EXPR: { tree o60 = gimple_assign_rhs1 (def); if ((o60 = do_valueize (valueize, o60))) { tree o61 = gimple_assign_rhs2 (def); if ((o61 = do_valueize (valueize, o61))) { if (tree_swap_operands_p (o60, o61)) std::swap (o60, o61); if (o60 == o30 || (operand_equal_p (o60, o30, 0) && types_match (o60, o30))) { switch (TREE_CODE (o61)) { case INTEGER_CST: { switch (TREE_CODE (op2)) { case INTEGER_CST: { { /* #line 2119 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { o30, o21, o61, op2 }; if (gimple_simplify_176 (res_code, res_ops, seq, valueize, type, captures, GE_EXPR, PLUS_EXPR)) return true; } break; } default:; } break; } default:; } } } } break; } case MINUS_EXPR: { tree o60 = gimple_assign_rhs1 (def); if ((o60 = do_valueize (valueize, o60))) { tree o61 = gimple_assign_rhs2 (def); if ((o61 = do_valueize (valueize, o61))) { if (o60 == o30 || (operand_equal_p (o60, o30, 0) && types_match (o60, o30))) { switch (TREE_CODE (o61)) { case INTEGER_CST: { switch (TREE_CODE (op2)) { case INTEGER_CST: { { /* #line 2119 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { o30, o21, o61, op2 }; if (gimple_simplify_176 (res_code, res_ops, seq, valueize, type, captures, GE_EXPR, MINUS_EXPR)) return true; } break; } default:; } break; } default:; } } } } break; } default:; } } break; default:; } break; } default:; } } break; } default:; } } break; default:; } switch (TREE_CODE (o21)) { case INTEGER_CST: { switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case PLUS_EXPR: { tree o50 = gimple_assign_rhs1 (def); if ((o50 = do_valueize (valueize, o50))) { tree o51 = gimple_assign_rhs2 (def); if ((o51 = do_valueize (valueize, o51))) { if (tree_swap_operands_p (o50, o51)) std::swap (o50, o51); if (o50 == o20 || (operand_equal_p (o50, o20, 0) && types_match (o50, o20))) { switch (TREE_CODE (o51)) { case INTEGER_CST: { switch (TREE_CODE (op2)) { case INTEGER_CST: { { /* #line 2119 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { o20, o21, o51, op2 }; if (gimple_simplify_176 (res_code, res_ops, seq, valueize, type, captures, GE_EXPR, PLUS_EXPR)) return true; } break; } default:; } break; } default:; } } } } break; } case MINUS_EXPR: { tree o50 = gimple_assign_rhs1 (def); if ((o50 = do_valueize (valueize, o50))) { tree o51 = gimple_assign_rhs2 (def); if ((o51 = do_valueize (valueize, o51))) { if (o50 == o20 || (operand_equal_p (o50, o20, 0) && types_match (o50, o20))) { switch (TREE_CODE (o51)) { case INTEGER_CST: { switch (TREE_CODE (op2)) { case INTEGER_CST: { { /* #line 2119 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { o20, o21, o51, op2 }; if (gimple_simplify_176 (res_code, res_ops, 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 o20 = TREE_OPERAND (op0, 0); if ((TREE_CODE (o20) == SSA_NAME || is_gimple_min_invariant (o20)) && (o20 = do_valueize (valueize, o20))) { tree o21 = TREE_OPERAND (op0, 1); if ((TREE_CODE (o21) == SSA_NAME || is_gimple_min_invariant (o21)) && (o21 = do_valueize (valueize, o21))) { if (tree_swap_operands_p (o20, o21)) std::swap (o20, o21); switch (TREE_CODE (o20)) { case SSA_NAME: if (do_valueize (valueize, o20) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (o20); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { CASE_CONVERT: { tree o30 = gimple_assign_rhs1 (def); if ((o30 = do_valueize (valueize, o30))) { switch (TREE_CODE (o21)) { case INTEGER_CST: { switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { CASE_CONVERT: { tree o60 = gimple_assign_rhs1 (def); if ((o60 = do_valueize (valueize, o60))) { if (o60 == o30 || (operand_equal_p (o60, o30, 0) && types_match (o60, o30))) { switch (TREE_CODE (op2)) { case INTEGER_CST: { { /* #line 2036 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o30, o21, op2 }; if (gimple_simplify_131 (res_code, res_ops, seq, valueize, type, captures, EQ_EXPR)) return true; } break; } default:; } } } break; } default:; } } break; default:; } if (op1 == o30 || (operand_equal_p (op1, o30, 0) && types_match (op1, o30))) { switch (TREE_CODE (op2)) { case INTEGER_CST: { { /* #line 2036 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o30, o21, op2 }; if (gimple_simplify_131 (res_code, res_ops, seq, valueize, type, captures, EQ_EXPR)) return true; } break; } default:; } } break; } default:; } } break; } default:; } } break; default:; } switch (TREE_CODE (o21)) { case INTEGER_CST: { switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { CASE_CONVERT: { tree o50 = gimple_assign_rhs1 (def); if ((o50 = do_valueize (valueize, o50))) { if (o50 == o20 || (operand_equal_p (o50, o20, 0) && types_match (o50, o20))) { switch (TREE_CODE (op2)) { case INTEGER_CST: { { /* #line 2036 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op2 }; if (gimple_simplify_131 (res_code, res_ops, seq, valueize, type, captures, EQ_EXPR)) return true; } break; } default:; } } } break; } default:; } } break; default:; } if (op1 == o20 || (operand_equal_p (op1, o20, 0) && types_match (op1, o20))) { switch (TREE_CODE (op2)) { case INTEGER_CST: { { /* #line 2036 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op2 }; if (gimple_simplify_131 (res_code, res_ops, seq, valueize, type, captures, EQ_EXPR)) return true; } break; } default:; } } break; } default:; } } } break; } default:; } switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case COND_EXPR: { tree o30 = gimple_assign_rhs1 (def); if ((o30 = do_valueize (valueize, o30))) { tree o31 = gimple_assign_rhs2 (def); if ((o31 = do_valueize (valueize, o31))) { tree o32 = gimple_assign_rhs3 (def); if ((o32 = do_valueize (valueize, o32))) { if (o30 == op0 || (operand_equal_p (o30, op0, 0) && types_match (o30, op0))) { { /* #line 2199 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { op0, o31, o32, op2 }; gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2199, %s:%d\n", __FILE__, __LINE__); *res_code = COND_EXPR; res_ops[0] = captures[0]; res_ops[0] = unshare_expr (res_ops[0]); res_ops[1] = captures[1]; res_ops[2] = captures[3]; gimple_resimplify3 (lseq, res_code, type, res_ops, valueize); return true; } } } } } break; } default:; } } break; default:; } switch (TREE_CODE (op2)) { case SSA_NAME: if (do_valueize (valueize, op2) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op2); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case COND_EXPR: { tree o40 = gimple_assign_rhs1 (def); if ((o40 = do_valueize (valueize, o40))) { tree o41 = gimple_assign_rhs2 (def); if ((o41 = do_valueize (valueize, o41))) { tree o42 = gimple_assign_rhs3 (def); if ((o42 = do_valueize (valueize, o42))) { if (o40 == op0 || (operand_equal_p (o40, op0, 0) && types_match (o40, op0))) { { /* #line 2202 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { op0, op1, o41, o42 }; gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2202, %s:%d\n", __FILE__, __LINE__); *res_code = COND_EXPR; res_ops[0] = captures[0]; res_ops[0] = unshare_expr (res_ops[0]); res_ops[1] = captures[1]; res_ops[2] = captures[3]; gimple_resimplify3 (lseq, res_code, type, res_ops, valueize); return true; } } { /* #line 2210 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { op0, op1, o40, o41, o42 }; /* #line 2210 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (COMPARISON_CLASS_P (captures[0]) && COMPARISON_CLASS_P (captures[2]) && invert_tree_comparison (TREE_CODE (captures[0]), HONOR_NANS (TREE_OPERAND (captures[0], 0))) == TREE_CODE (captures[2]) && operand_equal_p (TREE_OPERAND (captures[0], 0), TREE_OPERAND (captures[2], 0), 0) && operand_equal_p (TREE_OPERAND (captures[0], 1), TREE_OPERAND (captures[2], 1), 0)) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2216, %s:%d\n", __FILE__, __LINE__); *res_code = COND_EXPR; res_ops[0] = captures[0]; res_ops[0] = unshare_expr (res_ops[0]); res_ops[1] = captures[1]; res_ops[2] = captures[3]; gimple_resimplify3 (lseq, res_code, type, res_ops, valueize); return true; } } } } } break; } default:; } } break; default:; } switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case COND_EXPR: { tree o30 = gimple_assign_rhs1 (def); if ((o30 = do_valueize (valueize, o30))) { tree o31 = gimple_assign_rhs2 (def); if ((o31 = do_valueize (valueize, o31))) { tree o32 = gimple_assign_rhs3 (def); if ((o32 = do_valueize (valueize, o32))) { { /* #line 2219 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { op0, o30, o31, o32, op2 }; /* #line 2219 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (COMPARISON_CLASS_P (captures[0]) && COMPARISON_CLASS_P (captures[1]) && invert_tree_comparison (TREE_CODE (captures[0]), HONOR_NANS (TREE_OPERAND (captures[0], 0))) == TREE_CODE (captures[1]) && operand_equal_p (TREE_OPERAND (captures[0], 0), TREE_OPERAND (captures[1], 0), 0) && operand_equal_p (TREE_OPERAND (captures[0], 1), TREE_OPERAND (captures[1], 1), 0)) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2225, %s:%d\n", __FILE__, __LINE__); *res_code = COND_EXPR; res_ops[0] = captures[0]; res_ops[0] = unshare_expr (res_ops[0]); res_ops[1] = captures[3]; res_ops[2] = captures[4]; gimple_resimplify3 (lseq, res_code, type, res_ops, valueize); return true; } } } } } break; } default:; } } break; default:; } if (op2 == op1 || (operand_equal_p (op2, op1, 0) && types_match (op2, op1))) { { /* #line 2230 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 }; gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2230, %s:%d\n", __FILE__, __LINE__); res_ops[0] = captures[1]; *res_code = TREE_CODE (res_ops[0]); return true; } } switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case NE_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { if (tree_swap_operands_p (o20, o21)) std::swap (o20, o21); switch (TREE_CODE (o20)) { case SSA_NAME: if (do_valueize (valueize, o20) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (o20); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case BIT_AND_EXPR: { tree o30 = gimple_assign_rhs1 (def); if ((o30 = do_valueize (valueize, o30))) { tree o31 = gimple_assign_rhs2 (def); if ((o31 = do_valueize (valueize, o31))) { if (tree_swap_operands_p (o30, o31)) std::swap (o30, o31); if (integer_pow2p (o31)) { if (integer_zerop (o21)) { switch (TREE_CODE (op1)) { case INTEGER_CST: { if (integer_zerop (op2)) { { /* #line 2800 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o30, o31, op1 }; if (gimple_simplify_24 (res_code, res_ops, seq, valueize, type, captures)) return true; } } break; } default:; } } } } } break; } default:; } } break; default:; } } } break; } case LT_EXPR: { tree o20 = gimple_assign_rhs1 (def); if ((o20 = do_valueize (valueize, o20))) { tree o21 = gimple_assign_rhs2 (def); if ((o21 = do_valueize (valueize, o21))) { if (integer_zerop (o21)) { switch (TREE_CODE (op1)) { case INTEGER_CST: { if (integer_zerop (op2)) { { /* #line 2831 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 }; if (gimple_simplify_111 (res_code, res_ops, seq, valueize, type, captures)) return true; } } break; } default:; } } } } break; } default:; } } break; case NE_EXPR: { tree o20 = TREE_OPERAND (op0, 0); if ((TREE_CODE (o20) == SSA_NAME || is_gimple_min_invariant (o20)) && (o20 = do_valueize (valueize, o20))) { tree o21 = TREE_OPERAND (op0, 1); if ((TREE_CODE (o21) == SSA_NAME || is_gimple_min_invariant (o21)) && (o21 = do_valueize (valueize, o21))) { if (tree_swap_operands_p (o20, o21)) std::swap (o20, o21); switch (TREE_CODE (o20)) { case SSA_NAME: if (do_valueize (valueize, o20) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (o20); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case BIT_AND_EXPR: { tree o30 = gimple_assign_rhs1 (def); if ((o30 = do_valueize (valueize, o30))) { tree o31 = gimple_assign_rhs2 (def); if ((o31 = do_valueize (valueize, o31))) { if (tree_swap_operands_p (o30, o31)) std::swap (o30, o31); if (integer_pow2p (o31)) { if (integer_zerop (o21)) { switch (TREE_CODE (op1)) { case INTEGER_CST: { if (integer_zerop (op2)) { { /* #line 2800 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o30, o31, op1 }; if (gimple_simplify_24 (res_code, res_ops, seq, valueize, type, captures)) return true; } } break; } default:; } } } } } break; } default:; } } break; default:; } } } break; } case LT_EXPR: { tree o20 = TREE_OPERAND (op0, 0); if ((TREE_CODE (o20) == SSA_NAME || is_gimple_min_invariant (o20)) && (o20 = do_valueize (valueize, o20))) { tree o21 = TREE_OPERAND (op0, 1); if ((TREE_CODE (o21) == SSA_NAME || is_gimple_min_invariant (o21)) && (o21 = do_valueize (valueize, o21))) { if (integer_zerop (o21)) { switch (TREE_CODE (op1)) { case INTEGER_CST: { if (integer_zerop (op2)) { { /* #line 2831 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 }; if (gimple_simplify_111 (res_code, res_ops, seq, valueize, type, captures)) return true; } } break; } default:; } } } } break; } default:; } tree op0_pops[1]; if (gimple_logical_inverted_value (op0, op0_pops, valueize)) { tree o20 = op0_pops[0]; if (gimple_truth_valued_p (o20, valueize)) { { /* #line 2235 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o20, op1, op2 }; gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2235, %s:%d\n", __FILE__, __LINE__); *res_code = COND_EXPR; res_ops[0] = captures[0]; res_ops[1] = captures[2]; res_ops[2] = captures[1]; gimple_resimplify3 (lseq, res_code, type, res_ops, valueize); return true; } } } return false; } static bool gimple_simplify_VEC_COND_EXPR (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree op0, tree op1, tree op2) { switch (TREE_CODE (op0)) { case VECTOR_CST: { { /* #line 2012 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { op0, op1, op2 }; /* #line 2012 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (integer_all_onesp (captures[0])) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2013, %s:%d\n", __FILE__, __LINE__); res_ops[0] = captures[1]; *res_code = TREE_CODE (res_ops[0]); return true; } else { /* #line 2014 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (integer_zerop (captures[0])) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2015, %s:%d\n", __FILE__, __LINE__); res_ops[0] = captures[2]; *res_code = TREE_CODE (res_ops[0]); return true; } } } break; } default:; } switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case VEC_COND_EXPR: { tree o30 = gimple_assign_rhs1 (def); if ((o30 = do_valueize (valueize, o30))) { tree o31 = gimple_assign_rhs2 (def); if ((o31 = do_valueize (valueize, o31))) { tree o32 = gimple_assign_rhs3 (def); if ((o32 = do_valueize (valueize, o32))) { if (o30 == op0 || (operand_equal_p (o30, op0, 0) && types_match (o30, op0))) { { /* #line 2199 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { op0, o31, o32, op2 }; gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2199, %s:%d\n", __FILE__, __LINE__); *res_code = VEC_COND_EXPR; res_ops[0] = captures[0]; res_ops[0] = unshare_expr (res_ops[0]); res_ops[1] = captures[1]; res_ops[2] = captures[3]; gimple_resimplify3 (lseq, res_code, type, res_ops, valueize); return true; } } } } } break; } default:; } } break; default:; } switch (TREE_CODE (op2)) { case SSA_NAME: if (do_valueize (valueize, op2) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op2); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case VEC_COND_EXPR: { tree o40 = gimple_assign_rhs1 (def); if ((o40 = do_valueize (valueize, o40))) { tree o41 = gimple_assign_rhs2 (def); if ((o41 = do_valueize (valueize, o41))) { tree o42 = gimple_assign_rhs3 (def); if ((o42 = do_valueize (valueize, o42))) { if (o40 == op0 || (operand_equal_p (o40, op0, 0) && types_match (o40, op0))) { { /* #line 2202 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { op0, op1, o41, o42 }; gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2202, %s:%d\n", __FILE__, __LINE__); *res_code = VEC_COND_EXPR; res_ops[0] = captures[0]; res_ops[0] = unshare_expr (res_ops[0]); res_ops[1] = captures[1]; res_ops[2] = captures[3]; gimple_resimplify3 (lseq, res_code, type, res_ops, valueize); return true; } } { /* #line 2210 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { op0, op1, o40, o41, o42 }; /* #line 2210 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (COMPARISON_CLASS_P (captures[0]) && COMPARISON_CLASS_P (captures[2]) && invert_tree_comparison (TREE_CODE (captures[0]), HONOR_NANS (TREE_OPERAND (captures[0], 0))) == TREE_CODE (captures[2]) && operand_equal_p (TREE_OPERAND (captures[0], 0), TREE_OPERAND (captures[2], 0), 0) && operand_equal_p (TREE_OPERAND (captures[0], 1), TREE_OPERAND (captures[2], 1), 0)) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2216, %s:%d\n", __FILE__, __LINE__); *res_code = VEC_COND_EXPR; res_ops[0] = captures[0]; res_ops[0] = unshare_expr (res_ops[0]); res_ops[1] = captures[1]; res_ops[2] = captures[3]; gimple_resimplify3 (lseq, res_code, type, res_ops, valueize); return true; } } } } } break; } default:; } } break; default:; } switch (TREE_CODE (op1)) { case SSA_NAME: if (do_valueize (valueize, op1) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op1); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case VEC_COND_EXPR: { tree o30 = gimple_assign_rhs1 (def); if ((o30 = do_valueize (valueize, o30))) { tree o31 = gimple_assign_rhs2 (def); if ((o31 = do_valueize (valueize, o31))) { tree o32 = gimple_assign_rhs3 (def); if ((o32 = do_valueize (valueize, o32))) { { /* #line 2219 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { op0, o30, o31, o32, op2 }; /* #line 2219 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (COMPARISON_CLASS_P (captures[0]) && COMPARISON_CLASS_P (captures[1]) && invert_tree_comparison (TREE_CODE (captures[0]), HONOR_NANS (TREE_OPERAND (captures[0], 0))) == TREE_CODE (captures[1]) && operand_equal_p (TREE_OPERAND (captures[0], 0), TREE_OPERAND (captures[1], 0), 0) && operand_equal_p (TREE_OPERAND (captures[0], 1), TREE_OPERAND (captures[1], 1), 0)) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2225, %s:%d\n", __FILE__, __LINE__); *res_code = VEC_COND_EXPR; res_ops[0] = captures[0]; res_ops[0] = unshare_expr (res_ops[0]); res_ops[1] = captures[3]; res_ops[2] = captures[4]; gimple_resimplify3 (lseq, res_code, type, res_ops, valueize); return true; } } } } } break; } default:; } } break; default:; } if (op2 == op1 || (operand_equal_p (op2, op1, 0) && types_match (op2, op1))) { { /* #line 2230 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 }; gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2230, %s:%d\n", __FILE__, __LINE__); res_ops[0] = captures[1]; *res_code = TREE_CODE (res_ops[0]); return true; } } tree op0_pops[1]; if (gimple_logical_inverted_value (op0, op0_pops, valueize)) { tree o20 = op0_pops[0]; if (gimple_truth_valued_p (o20, valueize)) { { /* #line 2235 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { o20, op1, op2 }; gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:2235, %s:%d\n", __FILE__, __LINE__); *res_code = VEC_COND_EXPR; res_ops[0] = captures[0]; res_ops[1] = captures[2]; res_ops[2] = captures[1]; gimple_resimplify3 (lseq, res_code, type, res_ops, valueize); return true; } } } return false; } static bool gimple_simplify_BIT_FIELD_REF (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree op0, tree op1, tree op2) { { /* #line 3756 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { op0, op1, op2 }; /* #line 3756 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (TREE_CODE (TREE_TYPE (captures[0])) == COMPLEX_TYPE && tree_int_cst_equal (captures[1], TYPE_SIZE (TREE_TYPE (TREE_TYPE (captures[0]))))) { /* #line 3759 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (integer_zerop (captures[2])) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3760, %s:%d\n", __FILE__, __LINE__); *res_code = VIEW_CONVERT_EXPR; { tree ops1[1], res; ops1[0] = captures[0]; code_helper tem_code = REALPART_EXPR; tree tem_ops[3] = { ops1[0] }; gimple_resimplify1 (lseq, &tem_code, TREE_TYPE (TREE_TYPE (ops1[0])), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (TREE_TYPE (ops1[0])), tem_ops, lseq); if (!res) return false; res_ops[0] = res; } gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } else { /* #line 3761 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (tree_int_cst_equal (captures[2], TYPE_SIZE (TREE_TYPE (TREE_TYPE (captures[0]))))) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3762, %s:%d\n", __FILE__, __LINE__); *res_code = VIEW_CONVERT_EXPR; { tree ops1[1], res; ops1[0] = captures[0]; code_helper tem_code = IMAGPART_EXPR; tree tem_ops[3] = { ops1[0] }; gimple_resimplify1 (lseq, &tem_code, TREE_TYPE (TREE_TYPE (ops1[0])), tem_ops, valueize); res = maybe_push_res_to_seq (tem_code, TREE_TYPE (TREE_TYPE (ops1[0])), tem_ops, lseq); if (!res) return false; res_ops[0] = res; } gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } } else { /* #line 3763 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0])) && INTEGRAL_TYPE_P (type) && (!1 || is_gimple_reg (captures[0])) && ((compare_tree_int (captures[1], TYPE_PRECISION (TREE_TYPE (captures[0]))) == 0 && integer_zerop (captures[2])) || (BYTES_BIG_ENDIAN == WORDS_BIG_ENDIAN && TYPE_PRECISION (TREE_TYPE (captures[0])) % BITS_PER_UNIT == 0 && TYPE_PRECISION (type) % BITS_PER_UNIT == 0 && compare_tree_int (captures[2], (BYTES_BIG_ENDIAN ? (TYPE_PRECISION (TREE_TYPE (captures[0])) - TYPE_PRECISION (type)) : 0)) == 0))) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3780, %s:%d\n", __FILE__, __LINE__); *res_code = NOP_EXPR; res_ops[0] = captures[0]; gimple_resimplify1 (lseq, res_code, type, res_ops, valueize); return true; } } } switch (TREE_CODE (op0)) { case SSA_NAME: if (do_valueize (valueize, op0) != NULL_TREE) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0); if (gassign *def = dyn_cast (def_stmt)) switch (gimple_assign_rhs_code (def)) { case CONSTRUCTOR: { { /* #line 3786 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { op0, op1, op2 }; /* #line 3786 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (VECTOR_TYPE_P (TREE_TYPE (captures[0])) && (types_match (type, TREE_TYPE (TREE_TYPE (captures[0]))) || (VECTOR_TYPE_P (type) && types_match (TREE_TYPE (type), TREE_TYPE (TREE_TYPE (captures[0])))))) { { /* #line 3790 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ tree ctor = (TREE_CODE (captures[0]) == SSA_NAME ? gimple_assign_rhs1 (SSA_NAME_DEF_STMT (captures[0])) : captures[0]); tree eltype = TREE_TYPE (TREE_TYPE (ctor)); unsigned HOST_WIDE_INT width = tree_to_uhwi (TYPE_SIZE (eltype)); unsigned HOST_WIDE_INT n = tree_to_uhwi (captures[1]); unsigned HOST_WIDE_INT idx = tree_to_uhwi (captures[2]); /* #line 3799 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (n != 0 && (idx % width) == 0 && (n % width) == 0 && ((idx + n) / width) <= TYPE_VECTOR_SUBPARTS (TREE_TYPE (ctor))) { { /* #line 3803 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ idx = idx / width; n = n / width; unsigned HOST_WIDE_INT 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); }/* #line 3818 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if ((idx % k) == 0 && (n % k) == 0) { /* #line 3819 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (CONSTRUCTOR_NELTS (ctor) == 0) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3820, %s:%d\n", __FILE__, __LINE__); res_ops[0] = build_constructor (type, NULL); *res_code = TREE_CODE (res_ops[0]); return true; } else { { /* #line 3821 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ idx /= k; n /= k; /* #line 3826 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (n == 1) { /* #line 3827 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (idx < CONSTRUCTOR_NELTS (ctor)) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3828, %s:%d\n", __FILE__, __LINE__); res_ops[0] = CONSTRUCTOR_ELT (ctor, idx)->value; *res_code = TREE_CODE (res_ops[0]); return true; } else { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3829, %s:%d\n", __FILE__, __LINE__); res_ops[0] = build_zero_cst (type); *res_code = TREE_CODE (res_ops[0]); return true; } } else { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3830, %s:%d\n", __FILE__, __LINE__); vec *vals; vec_alloc (vals, n); for (unsigned i = 0; i < n && idx + i < CONSTRUCTOR_NELTS (ctor); ++i) CONSTRUCTOR_APPEND_ELT (vals, NULL_TREE, CONSTRUCTOR_ELT (ctor, idx + i)->value); res_ops[0] = build_constructor (type, vals); *res_code = TREE_CODE (res_ops[0]); return true; } } } } else { /* #line 3840 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (idx + n <= (idx / k + 1) * k) { /* #line 3842 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (CONSTRUCTOR_NELTS (ctor) <= idx / k) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3843, %s:%d\n", __FILE__, __LINE__); res_ops[0] = build_zero_cst (type); *res_code = TREE_CODE (res_ops[0]); return true; } else { /* #line 3844 "/home/user/librerouteros-C50/build_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/gcc-7.5.0/gcc/match.pd" */ if (n == k) { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3845, %s:%d\n", __FILE__, __LINE__); res_ops[0] = CONSTRUCTOR_ELT (ctor, idx / k)->value; *res_code = TREE_CODE (res_ops[0]); return true; } else { gimple_seq *lseq = seq; if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Applying pattern match.pd:3846, %s:%d\n", __FILE__, __LINE__); *res_code = BIT_FIELD_REF; res_ops[0] = CONSTRUCTOR_ELT (ctor, idx / k)->value; res_ops[1] = captures[1]; res_ops[2] = bitsize_int ((idx % k) * width); gimple_resimplify3 (lseq, res_code, type, res_ops, valueize); return true; } } } } } } } } } break; } default:; } } break; default:; } return false; } static bool gimple_simplify (code_helper *res_code, tree *res_ops, gimple_seq *seq, tree (*valueize)(tree), code_helper code, tree type, tree op0, tree op1, tree op2) { switch (code.get_rep()) { case COND_EXPR: return gimple_simplify_COND_EXPR (res_code, res_ops, seq, valueize, code, type, op0, op1, op2); case VEC_COND_EXPR: return gimple_simplify_VEC_COND_EXPR (res_code, res_ops, seq, valueize, code, type, op0, op1, op2); case BIT_FIELD_REF: return gimple_simplify_BIT_FIELD_REF (res_code, res_ops, seq, valueize, code, type, op0, op1, op2); default:; } return false; }