def METHOD_NAME(op, graph, sc_path, shortcut_start_op):
    """
       op /```````````````````\\ add
          \\____op1___op2__..._/
    """
    inps = op.all_inputs()
    pre_ops = graph.pre_ops(op)
    for p_op in pre_ops:
        if _is_identity_op(p_op):
            p_op = graph.pre_ops(p_op)[0]
        n_ops = graph.next_ops(p_op)
        if len(n_ops) == 1:
            continue
        ### note: only support one branch donnot have op or has one scale op
        has_sc = False
        for n_op in n_ops:
            if _is_identity_op(n_op):
                n_op = graph.next_ops(n_op)[0]
            if n_op.idx() == op.idx():
                shortcut_start_op.append(p_op)
                has_sc = True
        if has_sc:
            for n_op in n_ops:
                if n_op.idx() != op.idx():
                    sc_path.append(p_op.type())
                    sc_path.append(n_op.type())
                    return _find_next_target_op(n_op, graph, op.idx(),
                                                sc_path), op.idx()
    return False, -1