def METHOD_NAME(op, node, **kwargs):
    mode = op.mode
    if mode != "reduced":
        warnings.warn(
            (
                "Numba will use object mode to allow the "
                "`mode` argument to `numpy.linalg.qr`."
            ),
            UserWarning,
        )
        if len(node.outputs) > 1:
            ret_sig = numba.types.Tuple(
                [get_numba_type(o.type, o) for o in node.outputs]
            )
        else:
            ret_sig = get_numba_type(node.outputs[0].type, node.outputs[0])
        @numba_basic.numba_njit
        def qr_full(x):
            with numba.objmode(ret=ret_sig):
                ret = np.linalg.qr(x, mode=mode)
            return ret
    else:
        out_dtype = node.outputs[0].type.numpy_dtype
        inputs_cast = int_to_float_fn(node.inputs, out_dtype)
        @numba_basic.numba_njit(inline="always")
        def qr_full(x):
            return np.linalg.qr(inputs_cast(x))
    return qr_full