def METHOD_NAME(context, builder, sig, actual_args):
    # A list of elements to assign from
    source_list = []
    # Convert the list of argument types to a list of load IRs.
    for argidx, fml_arg in enumerate(fml_arg_list):
        if isinstance(fml_arg, VectorType):
            pxy = cgutils.create_struct_proxy(fml_arg)(
                context, builder, actual_args[argidx]
            )
            source_list += [
                getattr(pxy, attr) for attr in fml_arg.attr_names
            ]
        else:
            # assumed primitive type
            source_list.append(actual_args[argidx])
    if len(source_list) != vector_type.num_elements:
        raise CudaLoweringError(
            f"Unmatched number of source elements ({len(source_list)}) "
            "and target elements ({vector_type.num_elements})."
        )
    out = cgutils.create_struct_proxy(vector_type)(context, builder)
    for attr_name, source in zip(vector_type.attr_names, source_list):
        setattr(out, attr_name, source)
    return out._getvalue()