def METHOD_NAME(op, node, **kwargs):
    uplo = op.UPLO
    if uplo != "L":
        warnings.warn(
            (
                "Numba will use object mode to allow the "
                "`UPLO` argument to `numpy.linalg.eigh`."
            ),
            UserWarning,
        )
        out_dtypes = tuple(o.type.numpy_dtype for o in node.outputs)
        ret_sig = numba.types.Tuple(
            [
                get_numba_type(node.outputs[0].type, node.outputs[0]),
                get_numba_type(node.outputs[1].type, node.outputs[1]),
            ]
        )
        @numba_basic.numba_njit
        def eigh(x):
            with numba.objmode(ret=ret_sig):
                out = np.linalg.eigh(x, UPLO=uplo)
                ret = (out[0].astype(out_dtypes[0]), out[1].astype(out_dtypes[1]))
            return ret
    else:
        @numba_basic.numba_njit(inline="always")
        def eigh(x):
            return np.linalg.eigh(x)
    return eigh