def gen_function_call(func_attrs, backend_spec, indent="  ", bias_add=False):
    """Function call generation

    Parameters
    ----------
    func_attrs : Dict[str, Any]
        It describes the operation attributes
    indent : str, optional
        Indent for template, by default "  "

    Returns
    -------
    str
        Rendered function call
    """
    x = func_attrs["inputs"][0]
    xshape = x._attrs["shape"]
    y = func_attrs["outputs"][0]
    yshape = y._attrs["shape"]
    if bias_add:
        r = func_attrs["inputs"][1]
        return FUNC_CALL_TEMPLATE.render(
            func_name=func_attrs["name"],
            index_type=backend_spec.index_type,
            in_ptr=x._attrs["name"],
            res_ptr=r._attrs["name"],
            out_ptr=y._attrs["name"],
            p_batch="&" + xshape[0]._attrs["name"],
            p_in_ch="&" + xshape[3]._attrs["name"],
            p_in_h="&" + xshape[1]._attrs["name"],
            p_in_w="&" + xshape[2]._attrs["name"],
            p_out_batch="&" + yshape[0]._attrs["name"],
            p_out_h="&" + yshape[1]._attrs["name"],
            p_out_w="&" + yshape[2]._attrs["name"],
            indent=indent,
            bias_add=bias_add,
        )
    else:
        return FUNC_CALL_TEMPLATE.render(
            func_name=func_attrs["name"],
            index_type=backend_spec.index_type,
            in_ptr=x._attrs["name"],
            out_ptr=y._attrs["name"],
            p_batch="&" + xshape[0]._attrs["name"],
            p_in_ch="&" + xshape[3]._attrs["name"],
            p_in_h="&" + xshape[1]._attrs["name"],
            p_in_w="&" + xshape[2]._attrs["name"],
            p_out_batch="&" + yshape[0]._attrs["name"],
            p_out_h="&" + yshape[1]._attrs["name"],
            p_out_w="&" + yshape[2]._attrs["name"],
            indent=indent,
            bias_add=bias_add,
        )
Function call generation

    Parameters
    ----------
    func_attrs : Dict[str, Any]
        It describes the operation attributes
    indent : str, optional
        Indent for template, by default "  "

    Returns
    -------
    str
        Rendered function call
    
python/aitemplate/backend/common/upsampling2d_common.py