static bool gimple_match_and_simplify (code_helper code, tree type, tree op0, tree op1, tree op2, code_helper * res_code, tree * res_ops, gimple_seq * seq, tree (*valueize) (tree)) { if (code == MINUS_EXPR) { { tree o1 = op0; if (TREE_CODE (o1) == SSA_NAME) { gimple def_stmt1 = SSA_NAME_DEF_STMT (o1); if (is_gimple_assign (def_stmt1) && gimple_assign_rhs_code (def_stmt1) == PLUS_EXPR) { { tree o2 = gimple_assign_rhs1 (def_stmt1); if ((o2 = do_valueize (valueize, o2)) != 0) { { tree o3 = gimple_assign_rhs2 (def_stmt1); if ((o3 = do_valueize (valueize, o3)) != 0) { { tree o4 = op1; if (o4 == o3) { /* simplify 0 */ { tree captures[4] = { }; captures[0] = o2; captures[1] = o3; res_ops[0] = captures[0]; *res_code = TREE_CODE (res_ops[0]); return true; } } } } } } } } } } } return false; }