#include <ATen/core/OpsAlreadyMovedToC10.h>
#include <ATen/core/EnableNamedTensor.h>

#include <string>
#include <cstring>
#include <utility>
#include <unordered_set>
#include <ATen/core/operator_name.h>

// @generated by aten/src/ATen/gen.py

// TODO Once all ATen ops are moved to c10, this file should be removed

namespace at {

namespace {
struct OpNameEquals final {
  bool operator()(const std::pair<const char*, const char*>& lhs, const std::pair<const char*, const char*>& rhs) const {
      return 0 == strcmp(lhs.first, rhs.first) && 0 == strcmp(lhs.second, rhs.second);
  }
};

struct OpNameHash final {
  size_t operator()(const std::pair<const char*, const char*>& p) const {
      // use std::hash<std::string> because std::hash<const char*> would hash pointers and not pointed-to strings
      return std::hash<std::string>()(p.first) ^ (~ std::hash<std::string>()(p.second));
  }
};
}

bool aten_op_is_already_moved_to_c10(const c10::OperatorName& opName) {
  static std::unordered_set<std::pair<const char*, const char*>, OpNameHash, OpNameEquals> ops {
        {"aten::_cast_Byte", ""},
        {"aten::_cast_Char", ""},
        {"aten::_cast_Double", ""},
        {"aten::_cast_Float", ""},
        {"aten::_cast_Int", ""},
        {"aten::_cast_Long", ""},
        {"aten::_cast_Short", ""},
        {"aten::_cast_Half", ""},
        {"aten::data", ""},
    #ifdef BUILD_NAMEDTENSOR
        {"aten::align_as", ""},
    #endif
    #ifdef BUILD_NAMEDTENSOR
        {"aten::align_tensors", ""},
    #endif
        {"aten::_cudnn_ctc_loss", ""},
        {"aten::_cudnn_rnn_flatten_weight", ""},
        {"aten::_debug_has_internal_overlap", ""},
        {"aten::_fused_dropout", ""},
        {"aten::_masked_scale", ""},
        {"aten::_sobol_engine_ff_", ""},
        {"aten::_sobol_engine_scramble_", ""},
        {"aten::_sobol_engine_initialize_state_", ""},
        {"aten::_reshape_from_tensor", ""},
        {"aten::_shape_as_tensor", ""},
        {"aten::dropout", ""},
        {"aten::dropout_", ""},
        {"aten::feature_dropout", ""},
        {"aten::feature_dropout_", ""},
        {"aten::alpha_dropout", ""},
        {"aten::alpha_dropout_", ""},
        {"aten::feature_alpha_dropout", ""},
        {"aten::feature_alpha_dropout_", ""},
        {"aten::abs", ""},
        {"aten::abs_", ""},
        {"aten::acos", ""},
        {"aten::acos_", ""},
        {"aten::avg_pool1d", ""},
        {"aten::adaptive_avg_pool1d", ""},
        {"aten::adaptive_max_pool1d", ""},
        {"aten::add", "Tensor"},
        {"aten::add_", "Tensor"},
        {"aten::add", "Scalar"},
        {"aten::add_", "Scalar"},
        {"aten::addmv", ""},
        {"aten::addmv_", ""},
        {"aten::addr", ""},
        {"aten::addr_", ""},
        {"aten::affine_grid_generator", ""},
        {"aten::affine_grid_generator_backward", ""},
        {"aten::all", "dim"},
        {"aten::allclose", ""},
        {"aten::any", "dim"},
        {"aten::_dim_arange", ""},
        {"aten::argmax", ""},
        {"aten::argmin", ""},
        {"aten::as_strided", ""},
        {"aten::as_strided_", ""},
        {"aten::asin", ""},
        {"aten::asin_", ""},
        {"aten::atan", ""},
        {"aten::atan_", ""},
        {"aten::baddbmm", ""},
        {"aten::baddbmm_", ""},
        {"aten::_baddbmm_mkl_", ""},
        {"aten::bernoulli", ""},
        {"aten::bernoulli_", "Tensor"},
        {"aten::bernoulli_", "float"},
        {"aten::bernoulli", "p"},
        {"aten::bitwise_not", ""},
        {"aten::bitwise_not_", ""},
        {"aten::logical_not", ""},
        {"aten::logical_not_", ""},
        {"aten::logical_xor", ""},
        {"aten::logical_xor_", ""},
        {"aten::bmm", ""},
        {"aten::broadcast_tensors", ""},
        {"aten::cat", ""},
        {"aten::ceil", ""},
        {"aten::ceil_", ""},
        {"aten::chain_matmul", ""},
        {"aten::chunk", ""},
        {"aten::clamp", ""},
        {"aten::clamp_", ""},
        {"aten::clamp_max", ""},
        {"aten::clamp_max_", ""},
        {"aten::clamp_min", ""},
        {"aten::clamp_min_", ""},
        {"aten::cudnn_is_acceptable", ""},
        {"aten::constant_pad_nd", ""},
        {"aten::conv_tbc", ""},
        {"aten::conv_tbc_backward", ""},
        {"aten::copy_", ""},
        {"aten::_copy_from", ""},
        {"aten::cos", ""},
        {"aten::cos_", ""},
        {"aten::cosh", ""},
        {"aten::cosh_", ""},
        {"aten::cosine_embedding_loss", ""},
        {"aten::cudnn_affine_grid_generator", ""},
        {"aten::cudnn_affine_grid_generator_backward", ""},
        {"aten::cudnn_convolution_backward_input", ""},
        {"aten::cudnn_convolution_backward", ""},
        {"aten::cudnn_convolution_backward_bias", ""},
        {"aten::cudnn_convolution_backward_weight", ""},
        {"aten::cudnn_convolution_transpose_backward", ""},
        {"aten::cudnn_convolution_transpose_backward_bias", ""},
        {"aten::cudnn_convolution_transpose_backward_input", ""},
        {"aten::cudnn_convolution_transpose_backward_weight", ""},
        {"aten::cudnn_grid_sampler", ""},
        {"aten::cudnn_grid_sampler_backward", ""},
        {"aten::ctc_loss", "IntList"},
        {"aten::ctc_loss", "Tensor"},
        {"aten::_ctc_loss", ""},
        {"aten::_ctc_loss_backward", ""},
        {"aten::det", ""},
        {"aten::diag_embed", ""},
        {"aten::diagflat", ""},
        {"aten::diagonal", ""},
        {"aten::fill_diagonal_", ""},
        {"aten::div", "Tensor"},
        {"aten::div_", "Tensor"},
        {"aten::div", "Scalar"},
        {"aten::div_", "Scalar"},
        {"aten::dot", ""},
        {"aten::einsum", ""},
        {"aten::embedding", ""},
        {"aten::embedding_backward", ""},
        {"aten::embedding_dense_backward", ""},
        {"aten::embedding_renorm_", ""},
        {"aten::embedding_sparse_backward", ""},
        {"aten::_embedding_bag_per_sample_weights_backward", ""},
        {"aten::resize_", ""},
        {"aten::empty_like", ""},
        {"aten::erf", ""},
        {"aten::erf_", ""},
        {"aten::erfc", ""},
        {"aten::erfc_", ""},
        {"aten::exp", ""},
        {"aten::exp_", ""},
        {"aten::expm1", ""},
        {"aten::expm1_", ""},
        {"aten::expand", ""},
        {"aten::expand_as", ""},
        {"aten::flatten", "using_ints"},
        {"aten::fill_", "Scalar"},
        {"aten::fill_", "Tensor"},
        {"aten::floor", ""},
        {"aten::floor_", ""},
        {"aten::frac", ""},
        {"aten::frac_", ""},
        {"aten::full_like", ""},
        {"aten::grid_sampler", ""},
        {"aten::grid_sampler_2d", ""},
        {"aten::grid_sampler_2d_backward", ""},
        {"aten::grid_sampler_3d", ""},
        {"aten::grid_sampler_3d_backward", ""},
        {"aten::hinge_embedding_loss", ""},
        {"aten::ger", ""},
        {"aten::fft", ""},
        {"aten::ifft", ""},
        {"aten::rfft", ""},
        {"aten::irfft", ""},
        {"aten::_fft_with_size", ""},
        {"aten::_cufft_get_plan_cache_size", ""},
        {"aten::_cufft_get_plan_cache_max_size", ""},
        {"aten::index_copy_", ""},
        {"aten::index_copy", ""},
        {"aten::inverse", ""},
        {"aten::_inverse_helper", ""},
        {"aten::isclose", ""},
        {"aten::isnan", ""},
        {"aten::is_distributed", ""},
        {"aten::is_floating_point", ""},
        {"aten::is_complex", ""},
        {"aten::is_nonzero", ""},
        {"aten::is_same_size", ""},
        {"aten::is_signed", ""},
        {"aten::kl_div", ""},
        {"aten::kl_div_backward", ""},
        {"aten::kthvalue", ""},
        {"aten::fbgemm_linear_int8_weight_fp32_activation", ""},
        {"aten::fbgemm_linear_int8_weight", ""},
        {"aten::fbgemm_linear_quantize_weight", ""},
        {"aten::fbgemm_pack_gemm_matrix_fp16", ""},
        {"aten::fbgemm_linear_fp16_weight_fp32_activation", ""},
        {"aten::fbgemm_linear_fp16_weight", ""},
        {"aten::fbgemm_pack_quantized_matrix", ""},
        {"aten::fbgemm_pack_quantized_matrix", "KN"},
        {"aten::log", ""},
        {"aten::log_", ""},
        {"aten::log10", ""},
        {"aten::log10_", ""},
        {"aten::log1p", ""},
        {"aten::log1p_", ""},
        {"aten::log2", ""},
        {"aten::log2_", ""},
        {"aten::logdet", ""},
        {"aten::_log_softmax", ""},
        {"aten::_log_softmax_backward_data", ""},
        {"aten::logsumexp", ""},
        {"aten::margin_ranking_loss", ""},
        {"aten::matmul", ""},
        {"aten::matrix_rank", "tol"},
        {"aten::matrix_rank", ""},
        {"aten::matrix_power", ""},
        {"aten::max", "dim"},
        {"aten::max_values", ""},
        {"aten::max_pool1d_with_indices", ""},
        {"aten::max_pool1d", ""},
        {"aten::max_pool2d", ""},
        {"aten::mkldnn_max_pool2d", ""},
        {"aten::quantized_max_pool2d", ""},
        {"aten::max_pool3d", ""},
        {"aten::median", "dim"},
        {"aten::min", "dim"},
        {"aten::min_values", ""},
        {"aten::mkldnn_convolution_backward_input", ""},
        {"aten::mkldnn_convolution_backward_weights", ""},
        {"aten::mkldnn_convolution_backward", ""},
        {"aten::miopen_convolution_backward_input", ""},
        {"aten::miopen_convolution_backward", ""},
        {"aten::miopen_convolution_backward_bias", ""},
        {"aten::miopen_convolution_backward_weight", ""},
        {"aten::miopen_convolution_transpose_backward", ""},
        {"aten::miopen_convolution_transpose_backward_input", ""},
        {"aten::miopen_convolution_transpose_backward_weight", ""},
        {"aten::miopen_depthwise_convolution_backward_input", ""},
        {"aten::miopen_depthwise_convolution_backward", ""},
        {"aten::miopen_depthwise_convolution_backward_weight", ""},
        {"aten::mm", ""},
        {"aten::_sparse_mm", ""},
        {"aten::mode", ""},
        {"aten::mul", "Tensor"},
        {"aten::mul_", "Tensor"},
        {"aten::mul", "Scalar"},
        {"aten::mul_", "Scalar"},
        {"aten::mv", ""},
        {"aten::mvlgamma", ""},
        {"aten::mvlgamma_", ""},
        {"aten::narrow_copy", ""},
        {"aten::narrow", ""},
        {"aten::batch_norm_stats", ""},
        {"aten::_nnpack_available", ""},
        {"aten::_nnpack_spatial_convolution_backward", ""},
        {"aten::_nnpack_spatial_convolution_backward_input", ""},
        {"aten::_nnpack_spatial_convolution_backward_weight", ""},
        {"aten::ones_like", ""},
        {"aten::pairwise_distance", ""},
        {"aten::cdist", ""},
        {"aten::_cdist_backward", ""},
        {"aten::pdist", ""},
        {"aten::_pdist_forward", ""},
        {"aten::_pdist_backward", ""},
        {"aten::cosine_similarity", ""},
        {"aten::permute", ""},
        {"aten::numpy_T", ""},
        {"aten::pixel_shuffle", ""},
        {"aten::is_pinned", ""},
        {"aten::pin_memory", ""},
        {"aten::pinverse", ""},
        {"aten::poisson_nll_loss", ""},
        {"aten::rand_like", ""},
        {"aten::randint_like", ""},
        {"aten::randint_like", "low"},
        {"aten::randn_like", ""},
        {"aten::reciprocal", ""},
        {"aten::reciprocal_", ""},
        {"aten::neg", ""},
        {"aten::neg_", ""},
        {"aten::repeat", ""},
        {"aten::repeat_interleave", "Tensor"},
        {"aten::repeat_interleave", "self_Tensor"},
        {"aten::repeat_interleave", "self_int"},
        {"aten::reshape", ""},
        {"aten::_mkldnn_reshape", ""},
        {"aten::reshape_as", ""},
        {"aten::round", ""},
        {"aten::round_", ""},
        {"aten::rrelu", ""},
        {"aten::rrelu_", ""},
        {"aten::relu", ""},
        {"aten::relu_", ""},
        {"aten::prelu", ""},
        {"aten::prelu_backward", ""},
        {"aten::gelu", ""},
        {"aten::gelu_backward", ""},
        {"aten::hardshrink", ""},
        {"aten::hardshrink_backward", ""},
        {"aten::rsqrt", ""},
        {"aten::rsqrt_", ""},
        {"aten::select", "int"},
        {"aten::selu", ""},
        {"aten::selu_", ""},
        {"aten::celu", ""},
        {"aten::celu_", ""},
        {"aten::sigmoid", ""},
        {"aten::sigmoid_", ""},
        {"aten::sin", ""},
        {"aten::sin_", ""},
        {"aten::sinh", ""},
        {"aten::sinh_", ""},
        {"aten::detach", ""},
        {"aten::detach_", ""},
        {"aten::size", "int"},
        {"aten::slice", "Tensor"},
        {"aten::slogdet", ""},
        {"aten::smm", ""},
        {"aten::_softmax", ""},
        {"aten::_softmax_backward_data", ""},
        {"aten::split", "Tensor"},
        {"aten::split_with_sizes", ""},
        {"aten::squeeze", ""},
        {"aten::squeeze", "dim"},
        {"aten::squeeze_", ""},
        {"aten::squeeze_", "dim"},
        {"aten::sspaddmm", ""},
        {"aten::stack", ""},
        {"aten::stride", "int"},
        {"aten::sum_to_size", ""},
        {"aten::sqrt", ""},
        {"aten::sqrt_", ""},
        {"aten::std", ""},
        {"aten::std", "dim"},
        {"aten::std_mean", ""},
        {"aten::std_mean", "dim"},
        {"aten::t", ""},
        {"aten::t_", ""},
        {"aten::tan", ""},
        {"aten::tan_", ""},
        {"aten::tanh", ""},
        {"aten::tanh_", ""},
        {"aten::tensordot", ""},
        {"aten::threshold", ""},
        {"aten::threshold_", ""},
        {"aten::threshold_backward", ""},
        {"aten::transpose", "int"},
        {"aten::_mkldnn_transpose", ""},
        {"aten::transpose_", ""},
        {"aten::_mkldnn_transpose_", ""},
        {"aten::one_hot", ""},
        {"aten::flip", ""},
        {"aten::roll", ""},
        {"aten::rot90", ""},
        {"aten::trapz", "x"},
        {"aten::trapz", "dx"},
        {"aten::_trilinear", ""},
        {"aten::triplet_margin_loss", ""},
        {"aten::trunc", ""},
        {"aten::trunc_", ""},
        {"aten::type_as", ""},
        {"aten::_has_compatible_shallow_copy_type", ""},
        {"aten::_unique", ""},
        {"aten::unique_dim", ""},
        {"aten::unique_consecutive", ""},
        {"aten::unique_dim_consecutive", ""},
        {"aten::_unique2", ""},
        {"aten::_unsafe_view", ""},
        {"aten::unsqueeze", ""},
        {"aten::unsqueeze_", ""},
        {"aten::var", ""},
        {"aten::var", "dim"},
        {"aten::var_mean", ""},
        {"aten::var_mean", "dim"},
        {"aten::view_as", ""},
        {"aten::where", "self"},
        {"aten::where", ""},
        {"aten::_s_where", ""},
        {"aten::norm_except_dim", ""},
        {"aten::_weight_norm", ""},
        {"aten::_weight_norm_cuda_interface", ""},
        {"aten::_weight_norm_cuda_interface_backward", ""},
        {"aten::_weight_norm_differentiable_backward", ""},
        {"aten::zeros_like", ""},
        {"aten::_standard_gamma_grad", ""},
        {"aten::_standard_gamma", ""},
        {"aten::_dirichlet_grad", ""},
        {"aten::_sample_dirichlet", ""},
        {"aten::poisson", ""},
        {"aten::native_norm", ""},
        {"aten::_sparse_sum", ""},
        {"aten::_sparse_sum", "dim"},
        {"aten::_sparse_sum_backward", ""},
        {"aten::norm", "Scalar"},
        {"aten::norm", "ScalarOpt_dim"},
        {"aten::frobenius_norm", ""},
        {"aten::frobenius_norm", "dim"},
        {"aten::nuclear_norm", ""},
        {"aten::nuclear_norm", "dim"},
        {"aten::clone", ""},
        {"aten::resize_as_", ""},
        {"aten::pow", "Tensor_Scalar"},
        {"aten::zero_", ""},
        {"aten::sub", "Tensor"},
        {"aten::sub_", "Tensor"},
        {"aten::sub", "Scalar"},
        {"aten::sub_", "Scalar"},
        {"aten::rsub", "Tensor"},
        {"aten::rsub", "Scalar"},
        {"aten::_sparse_addmm", ""},
        {"aten::addmm", ""},
        {"aten::addmm_", ""},
        {"aten::sparse_resize_", ""},
        {"aten::sparse_resize_and_clear_", ""},
        {"aten::sparse_mask", ""},
        {"aten::to_dense", ""},
        {"aten::to_dense_backward", ""},
        {"aten::sparse_dim", ""},
        {"aten::_dimI", ""},
        {"aten::dense_dim", ""},
        {"aten::_dimV", ""},
        {"aten::_nnz", ""},
        {"aten::coalesce", ""},
        {"aten::is_coalesced", ""},
        {"aten::_indices", ""},
        {"aten::_values", ""},
        {"aten::_coalesced_", ""},
        {"aten::indices", ""},
        {"aten::values", ""},
        {"aten::hspmm", ""},
        {"aten::copy_sparse_to_sparse_", ""},
        {"aten::numel", ""},
        {"aten::unbind", "int"},
        {"aten::to_sparse", "sparse_dim"},
        {"aten::to_sparse", ""},
        {"aten::to_mkldnn", ""},
        {"aten::mkldnn_reorder_conv2d_weight", ""},
        {"aten::to_mkldnn_backward", ""},
        {"aten::dequantize", ""},
        {"aten::q_scale", ""},
        {"aten::q_zero_point", ""},
        {"aten::q_per_channel_scales", ""},
        {"aten::q_per_channel_zero_points", ""},
        {"aten::int_repr", ""},
        {"aten::_make_per_tensor_quantized_tensor", ""},
        {"aten::_make_per_channel_quantized_tensor", ""},
        {"aten::fake_quantize_per_tensor_affine", ""},
        {"aten::fake_quantize_per_tensor_affine_backward", ""},
        {"aten::to", "other"},
        {"aten::meshgrid", ""},
        {"aten::cartesian_prod", ""},
        {"aten::combinations", ""},
        {"aten::item", ""},
        {"aten::_local_scalar_dense", ""},
        {"aten::_thnn_fused_gru_cell_backward", ""},
        {"aten::lstm", "input"},
        {"aten::lstm", "data"},
        {"aten::gru", "input"},
        {"aten::gru", "data"},
        {"aten::rnn_tanh", "input"},
        {"aten::rnn_tanh", "data"},
        {"aten::rnn_relu", "input"},
        {"aten::rnn_relu", "data"},
        {"aten::quantized_gru", "input"},
        {"aten::quantized_gru", "data"},
        {"aten::quantized_lstm_cell", ""},
        {"aten::quantized_gru_cell", ""},
        {"aten::quantized_rnn_relu_cell", ""},
        {"aten::quantized_rnn_tanh_cell", ""},
        {"aten::_pack_padded_sequence", ""},
        {"aten::_pack_padded_sequence_backward", ""},
        {"aten::_pad_packed_sequence", ""},
        {"aten::set_", "source_Tensor"},
        {"aten::set_", ""},
        {"aten::is_set_to", ""},
        {"aten::masked_fill_", "Scalar"},
        {"aten::masked_fill", "Scalar"},
        {"aten::masked_fill_", "Tensor"},
        {"aten::masked_fill", "Tensor"},
        {"aten::masked_scatter_", ""},
        {"aten::masked_scatter", ""},
        {"aten::view", ""},
        {"aten::put_", ""},
        {"aten::index_add_", ""},
        {"aten::index_add", ""},
        {"aten::index_fill_", "Scalar"},
        {"aten::index_fill", "Scalar"},
        {"aten::index_fill_", "Tensor"},
        {"aten::index_fill", "Tensor"},
        {"aten::scatter_", "src"},
        {"aten::scatter", "src"},
        {"aten::scatter_", "value"},
        {"aten::scatter", "value"},
        {"aten::scatter_add_", ""},
        {"aten::scatter_add", ""},
        {"aten::lt_", "Scalar"},
        {"aten::lt_", "Tensor"},
        {"aten::gt_", "Scalar"},
        {"aten::gt_", "Tensor"},
        {"aten::le_", "Scalar"},
        {"aten::le_", "Tensor"},
        {"aten::ge_", "Scalar"},
        {"aten::ge_", "Tensor"},
        {"aten::eq_", "Scalar"},
        {"aten::eq_", "Tensor"},
        {"aten::ne_", "Scalar"},
        {"aten::ne_", "Tensor"},
        {"aten::__and__", "Scalar"},
        {"aten::__and__", "Tensor"},
        {"aten::__iand__", "Scalar"},
        {"aten::__iand__", "Tensor"},
        {"aten::__or__", "Scalar"},
        {"aten::__or__", "Tensor"},
        {"aten::__ior__", "Scalar"},
        {"aten::__ior__", "Tensor"},
        {"aten::__xor__", "Scalar"},
        {"aten::__xor__", "Tensor"},
        {"aten::__ixor__", "Scalar"},
        {"aten::__ixor__", "Tensor"},
        {"aten::__lshift__", "Scalar"},
        {"aten::__lshift__", "Tensor"},
        {"aten::__ilshift__", "Scalar"},
        {"aten::__ilshift__", "Tensor"},
        {"aten::__rshift__", "Scalar"},
        {"aten::__rshift__", "Tensor"},
        {"aten::__irshift__", "Scalar"},
        {"aten::__irshift__", "Tensor"},
        {"aten::lgamma_", ""},
        {"aten::atan2_", ""},
        {"aten::tril_", ""},
        {"aten::triu_", ""},
        {"aten::digamma_", ""},
        {"aten::polygamma_", ""},
        {"aten::renorm_", ""},
        {"aten::pow_", "Scalar"},
        {"aten::pow_", "Tensor"},
        {"aten::lerp_", "Scalar"},
        {"aten::lerp_", "Tensor"},
        {"aten::fmod_", "Scalar"},
        {"aten::fmod_", "Tensor"},
        {"aten::remainder_", "Scalar"},
        {"aten::remainder_", "Tensor"},
        {"aten::addbmm_", ""},
        {"aten::addbmm", ""},
        {"aten::addcdiv_", ""},
        {"aten::random_", "from"},
        {"aten::random_", "to"},
        {"aten::random_", ""},
        {"aten::uniform_", ""},
        {"aten::normal_", ""},
        {"aten::cauchy_", ""},
        {"aten::log_normal_", ""},
        {"aten::exponential_", ""},
        {"aten::geometric_", ""},
        {"aten::diag", ""},
        {"aten::cross", ""},
        {"aten::triu", ""},
        {"aten::tril", ""},
        {"aten::trace", ""},
        {"aten::ne", "Scalar"},
        {"aten::ne", "Tensor"},
        {"aten::eq", "Scalar"},
        {"aten::eq", "Tensor"},
        {"aten::ge", "Scalar"},
        {"aten::ge", "Tensor"},
        {"aten::le", "Scalar"},
        {"aten::le", "Tensor"},
        {"aten::gt", "Scalar"},
        {"aten::gt", "Tensor"},
        {"aten::lt", "Scalar"},
        {"aten::lt", "Tensor"},
        {"aten::take", ""},
        {"aten::index_select", ""},
        {"aten::masked_select", ""},
        {"aten::nonzero", ""},
        {"aten::nonzero_numpy", ""},
        {"aten::gather", ""},
        {"aten::_gather_sparse_backward", ""},
        {"aten::addcmul", ""},
        {"aten::addcmul_", ""},
        {"aten::addcdiv", ""},
        {"aten::lstsq", ""},
        {"aten::triangular_solve", ""},
        {"aten::_triangular_solve_helper", ""},
        {"aten::symeig", ""},
        {"aten::_symeig_helper", ""},
        {"aten::eig", ""},
        {"aten::svd", ""},
        {"aten::_svd_helper", ""},
        {"aten::cholesky", ""},
        {"aten::_cholesky_helper", ""},
        {"aten::cholesky_solve", ""},
        {"aten::_cholesky_solve_helper", ""},
        {"aten::solve", ""},
        {"aten::_solve_helper", ""},
        {"aten::cholesky_inverse", ""},
        {"aten::qr", ""},
        {"aten::_qr_helper", ""},
        {"aten::geqrf", ""},
        {"aten::orgqr", ""},
        {"aten::ormqr", ""},
        {"aten::_lu_with_info", ""},
        {"aten::lu_solve", ""},
        {"aten::_lu_solve_helper", ""},
        {"aten::multinomial", ""},
        {"aten::_multinomial_alias_setup", ""},
        {"aten::_multinomial_alias_draw", ""},
        {"aten::lgamma", ""},
        {"aten::digamma", ""},
        {"aten::polygamma", ""},
        {"aten::erfinv", ""},
        {"aten::erfinv_", ""},
        {"aten::sign", ""},
        {"aten::sign_", ""},
        {"aten::dist", ""},
        {"aten::atan2", ""},
        {"aten::lerp", "Scalar"},
        {"aten::lerp", "Tensor"},
        {"aten::histc", ""},
        {"aten::fmod", "Scalar"},
        {"aten::fmod", "Tensor"},
        {"aten::remainder", "Scalar"},
        {"aten::remainder", "Tensor"},
        {"aten::min", "other"},
        {"aten::min", ""},
        {"aten::max", "other"},
        {"aten::max", ""},
        {"aten::median", ""},
        {"aten::sort", ""},
        {"aten::argsort", ""},
        {"aten::topk", ""},
        {"aten::all", ""},
        {"aten::any", ""},
        {"aten::renorm", ""},
        {"aten::unfold", ""},
        {"aten::equal", ""},
        {"aten::pow", "Tensor_Tensor"},
        {"aten::pow", "Scalar"},
        {"aten::normal", "Tensor_float"},
        {"aten::normal", "float_Tensor"},
        {"aten::normal", "Tensor_Tensor"},
        {"aten::alias", ""},
        {"aten::_addr", ""},
        {"aten::_addr_", ""},
        {"aten::_index_copy_", ""},
        {"aten::_cumsum", ""},
        {"aten::_cumprod", ""},
        {"aten::_var", ""},
        {"aten::_std", ""},
        {"aten::_cat", ""},
        {"aten::_mode", ""},
        {"aten::_max", ""},
        {"aten::_min", ""},
        {"aten::mse_loss", ""},
        {"aten::mse_loss_backward", ""},
        {"aten::l1_loss", ""},
        {"aten::l1_loss_backward", ""},
        {"aten::multilabel_margin_loss", ""},
        {"aten::multilabel_margin_loss_forward", ""},
        {"aten::multilabel_margin_loss_backward", ""},
        {"aten::smooth_l1_loss", ""},
        {"aten::smooth_l1_loss_backward", ""},
        {"aten::soft_margin_loss", ""},
        {"aten::soft_margin_loss_backward", ""},
        {"aten::elu", ""},
        {"aten::elu_backward", ""},
        {"aten::elu_", ""},
        {"aten::glu", ""},
        {"aten::glu_backward", ""},
        {"aten::hardtanh", ""},
        {"aten::hardtanh_backward", ""},
        {"aten::hardtanh_", ""},
        {"aten::leaky_relu", ""},
        {"aten::leaky_relu_backward", ""},
        {"aten::leaky_relu_", ""},
        {"aten::log_sigmoid", ""},
        {"aten::log_sigmoid_forward", ""},
        {"aten::log_sigmoid_backward", ""},
        {"aten::rrelu_with_noise", ""},
        {"aten::rrelu_with_noise_backward", ""},
        {"aten::rrelu_with_noise_", ""},
        {"aten::softplus", ""},
        {"aten::softplus_backward", ""},
        {"aten::softshrink", ""},
        {"aten::softshrink_backward", ""},
        {"aten::adaptive_avg_pool2d", ""},
        {"aten::mkldnn_adaptive_avg_pool2d", ""},
        {"aten::_adaptive_avg_pool2d", ""},
        {"aten::_adaptive_avg_pool2d_backward", ""},
        {"aten::adaptive_avg_pool3d", ""},
        {"aten::adaptive_avg_pool3d_backward", ""},
        {"aten::adaptive_max_pool2d", ""},
        {"aten::adaptive_max_pool2d_backward", ""},
        {"aten::adaptive_max_pool3d", ""},
        {"aten::adaptive_max_pool3d_backward", ""},
        {"aten::avg_pool2d", ""},
        {"aten::avg_pool2d_backward", ""},
        {"aten::avg_pool3d", ""},
        {"aten::avg_pool3d_backward", ""},
        {"aten::fractional_max_pool2d", ""},
        {"aten::fractional_max_pool2d_backward", ""},
        {"aten::fractional_max_pool3d", ""},
        {"aten::fractional_max_pool3d_backward", ""},
        {"aten::max_pool2d_with_indices", ""},
        {"aten::max_pool2d_with_indices_backward", ""},
        {"aten::max_pool3d_with_indices", ""},
        {"aten::max_pool3d_with_indices_backward", ""},
        {"aten::max_unpool2d", ""},
        {"aten::max_unpool2d_backward", ""},
        {"aten::max_unpool3d", ""},
        {"aten::max_unpool3d_backward", ""},
        {"aten::reflection_pad1d", ""},
        {"aten::reflection_pad1d_backward", ""},
        {"aten::reflection_pad2d", ""},
        {"aten::reflection_pad2d_backward", ""},
        {"aten::replication_pad1d", ""},
        {"aten::replication_pad1d_backward", ""},
        {"aten::replication_pad2d", ""},
        {"aten::replication_pad2d_backward", ""},
        {"aten::replication_pad3d", ""},
        {"aten::replication_pad3d_backward", ""},
        {"aten::upsample_linear1d", ""},
        {"aten::upsample_linear1d_backward", ""},
        {"aten::upsample_bilinear2d", ""},
        {"aten::upsample_bilinear2d_backward", ""},
        {"aten::upsample_bicubic2d", ""},
        {"aten::upsample_bicubic2d_backward", ""},
        {"aten::upsample_trilinear3d", ""},
        {"aten::upsample_trilinear3d_backward", ""},
        {"aten::upsample_nearest1d", ""},
        {"aten::upsample_nearest1d_backward", ""},
        {"aten::upsample_nearest2d", ""},
        {"aten::upsample_nearest2d_backward", ""},
        {"aten::upsample_nearest3d", ""},
        {"aten::upsample_nearest3d_backward", ""},
        {"aten::sigmoid_backward", ""},
        {"aten::tanh_backward", ""},
        {"aten::slow_conv_transpose2d_backward", "output_mask"},
        {"aten::slow_conv_transpose3d_backward", "output_mask"},
        {"aten::thnn_conv2d_backward", "output_mask"},
        {"aten::thnn_conv_depthwise2d_backward", "output_mask"},
        {"aten::thnn_conv3d_backward", "output_mask"},
        {"aten::slow_conv_dilated2d_backward", ""},
        {"aten::slow_conv_dilated3d_backward", ""},
        {"aten::col2im", ""},
        {"aten::col2im_backward", ""},
        {"aten::im2col", ""},
        {"aten::im2col_backward", ""},
    {"", ""}
  };
  return ops.count(std::make_pair(opName.name.c_str(), opName.overload_name.c_str())) != 0;
}

bool aten_op_is_not_moved_to_c10_yet(const c10::OperatorName& opName) {
  static std::unordered_set<std::pair<const char*, const char*>, OpNameHash, OpNameEquals> ops {
        {"aten::backward", ""},
        {"aten::set_data", ""},
        {"aten::is_leaf", ""},
        {"aten::output_nr", ""},
        {"aten::_version", ""},
    #ifdef BUILD_NAMEDTENSOR
        {"aten::rename_", ""},
    #endif
    #ifdef BUILD_NAMEDTENSOR
        {"aten::rename", ""},
    #endif
    #ifdef BUILD_NAMEDTENSOR
        {"aten::align_to", ""},
    #endif
    #ifdef BUILD_NAMEDTENSOR
        {"aten::refine_names", ""},
    #endif
    #ifdef BUILD_NAMEDTENSOR
        {"aten::unflatten", ""},
    #endif
    #ifdef BUILD_NAMEDTENSOR
        {"aten::unflatten", ""},
    #endif
        {"aten::_cudnn_rnn", ""},
        {"aten::_cudnn_rnn_backward", ""},
        {"aten::_cudnn_init_dropout_state", ""},
        {"aten::_sobol_engine_draw", ""},
        {"aten::abs", "out"},
        {"aten::acos", "out"},
        {"aten::add", "out"},
        {"aten::addmv", "out"},
        {"aten::addr", "out"},
        {"aten::all", "out"},
    #ifdef BUILD_NAMEDTENSOR
        {"aten::all", "dimname"},
    #endif
    #ifdef BUILD_NAMEDTENSOR
        {"aten::all", "dimname_out"},
    #endif
        {"aten::any", "out"},
    #ifdef BUILD_NAMEDTENSOR
        {"aten::any", "dimname"},
    #endif
    #ifdef BUILD_NAMEDTENSOR
        {"aten::any", "dimname_out"},
    #endif
        {"aten::arange", ""},
        {"aten::arange", "start"},
        {"aten::arange", "start_step"},
        {"aten::arange", "out"},
        {"aten::arange", "start_out"},
        {"aten::asin", "out"},
        {"aten::atan", "out"},
        {"aten::baddbmm", "out"},
        {"aten::bartlett_window", ""},
        {"aten::bartlett_window", "periodic"},
        {"aten::batch_norm", ""},
        {"aten::_batch_norm_impl_index", ""},
        {"aten::_batch_norm_impl_index_backward", ""},
        {"aten::bernoulli", "out"},
        {"aten::bilinear", ""},
        {"aten::binary_cross_entropy_with_logits", ""},
        {"aten::binary_cross_entropy_with_logits_backward", ""},
        {"aten::bincount", ""},
        {"aten::bitwise_not", "out"},
        {"aten::logical_not", "out"},
        {"aten::logical_xor", "out"},
        {"aten::blackman_window", ""},
        {"aten::blackman_window", "periodic"},
        {"aten::bmm", "out"},
        {"aten::cat", "out"},
    #ifdef BUILD_NAMEDTENSOR
        {"aten::cat", "names"},
    #endif
    #ifdef BUILD_NAMEDTENSOR
        {"aten::cat", "names_out"},
    #endif
        {"aten::ceil", "out"},
        {"aten::clamp", "out"},
        {"aten::clamp_max", "out"},
        {"aten::clamp_min", "out"},
        {"aten::contiguous", ""},
        {"aten::convolution", ""},
        {"aten::convolution_overrideable", ""},
        {"aten::convolution_backward_overrideable", ""},
        {"aten::_convolution", ""},
        {"aten::_convolution_nogroup", ""},
        {"aten::_convolution_double_backward", ""},
        {"aten::conv1d", ""},
        {"aten::conv2d", ""},
        {"aten::conv3d", ""},
        {"aten::conv_transpose1d", ""},
        {"aten::conv_transpose2d", "input"},
        {"aten::conv_transpose3d", "input"},
        {"aten::cos", "out"},
        {"aten::cosh", "out"},
        {"aten::cudnn_batch_norm", ""},
        {"aten::cudnn_batch_norm_backward", ""},
        {"aten::cudnn_convolution", ""},
        {"aten::cudnn_convolution_transpose", ""},
        {"aten::cumsum", ""},
        {"aten::cumsum", "out"},
    #ifdef BUILD_NAMEDTENSOR
        {"aten::cumsum", "dimname"},
    #endif
    #ifdef BUILD_NAMEDTENSOR
        {"aten::cumsum", "dimname_out"},
    #endif
        {"aten::cumprod", ""},
        {"aten::cumprod", "out"},
    #ifdef BUILD_NAMEDTENSOR
        {"aten::cumprod", "dimname"},
    #endif
    #ifdef BUILD_NAMEDTENSOR
        {"aten::cumprod", "dimname_out"},
    #endif
        {"aten::div", "out"},
        {"aten::dot", "out"},
        {"aten::embedding_bag", ""},
        {"aten::_embedding_bag", ""},
        {"aten::_embedding_bag_backward", ""},
        {"aten::_embedding_bag_sparse_backward", ""},
        {"aten::_embedding_bag_dense_backward", ""},
    #ifdef BUILD_NAMEDTENSOR
        {"aten::empty", "names"},
    #endif
        {"aten::empty", "memory_format"},
        {"aten::new_empty", ""},
        {"aten::new_full", ""},
        {"aten::_empty_affine_quantized", ""},
        {"aten::_empty_per_channel_affine_quantized", ""},
        {"aten::empty", "out"},
        {"aten::empty_like", "dtype"},
        {"aten::empty_strided", ""},
        {"aten::erf", "out"},
        {"aten::erfc", "out"},
        {"aten::exp", "out"},
        {"aten::expm1", "out"},
        {"aten::eye", ""},
        {"aten::eye", "m"},
        {"aten::eye", "out"},
        {"aten::eye", "m_out"},
    #ifdef BUILD_NAMEDTENSOR
        {"aten::flatten", "named_out_dim"},
    #endif
    #ifdef BUILD_NAMEDTENSOR
        {"aten::flatten", "using_names"},
    #endif
    #ifdef BUILD_NAMEDTENSOR
        {"aten::flatten", "DimnameList"},
    #endif
        {"aten::floor", "out"},
        {"aten::frac", "out"},
    #ifdef BUILD_NAMEDTENSOR
        {"aten::full", "names"},
    #endif
        {"aten::full", ""},
        {"aten::full", "out"},
        {"aten::full_like", "dtype"},
        {"aten::from_file", ""},
        {"aten::hann_window", ""},
        {"aten::hann_window", "periodic"},
        {"aten::hamming_window", ""},
        {"aten::hamming_window", "periodic"},
        {"aten::hamming_window", "periodic_alpha"},
        {"aten::hamming_window", "periodic_alpha_beta"},
        {"aten::ger", "out"},
        {"aten::group_norm", ""},
        {"aten::_cufft_set_plan_cache_max_size", ""},
        {"aten::_cufft_clear_plan_cache", ""},
        {"aten::index", "Tensor"},
    #ifdef BUILD_NAMEDTENSOR
        {"aten::index_copy_", "dimname"},
    #endif
    #ifdef BUILD_NAMEDTENSOR
        {"aten::index_copy", "dimname"},
    #endif
        {"aten::index_put_", ""},
        {"aten::index_put", ""},
        {"aten::_index_put_impl_", ""},
        {"aten::instance_norm", ""},
        {"aten::inverse", "out"},
        {"aten::kthvalue", "values"},
    #ifdef BUILD_NAMEDTENSOR
        {"aten::kthvalue", "dimname"},
    #endif
    #ifdef BUILD_NAMEDTENSOR
        {"aten::kthvalue", "dimname_out"},
    #endif
        {"aten::layer_norm", ""},
        {"aten::native_layer_norm", ""},
        {"aten::native_layer_norm_backward", ""},
        {"aten::native_layer_norm_double_backward", ""},
        {"aten::linear", ""},
        {"aten::mkldnn_linear", ""},
        {"aten::linspace", ""},
        {"aten::linspace", "out"},
        {"aten::log", "out"},
        {"aten::log10", "out"},
        {"aten::log1p", "out"},
        {"aten::log2", "out"},
        {"aten::logspace", ""},
        {"aten::logspace", "out"},
        {"aten::log_softmax", ""},
    #ifdef BUILD_NAMEDTENSOR
        {"aten::log_softmax", ""},
    #endif
        {"aten::logsumexp", "out"},
    #ifdef BUILD_NAMEDTENSOR
        {"aten::logsumexp", "names"},
    #endif
    #ifdef BUILD_NAMEDTENSOR
        {"aten::logsumexp", "names_out"},
    #endif
        {"aten::matmul", "out"},
        {"aten::max", "dim_max"},
    #ifdef BUILD_NAMEDTENSOR
        {"aten::max", "names_dim"},
    #endif
    #ifdef BUILD_NAMEDTENSOR
        {"aten::max", "names_dim_max"},
    #endif
    #ifdef BUILD_NAMEDTENSOR
        {"aten::max_values", "names"},
    #endif
        {"aten::mean", ""},
        {"aten::mean", "dim"},
        {"aten::mean", "out"},
    #ifdef BUILD_NAMEDTENSOR
        {"aten::mean", "names_dim"},
    #endif
    #ifdef BUILD_NAMEDTENSOR
        {"aten::mean", "names_out"},
    #endif
        {"aten::median", "dim_values"},
    #ifdef BUILD_NAMEDTENSOR
        {"aten::median", "names_dim"},
    #endif
    #ifdef BUILD_NAMEDTENSOR
        {"aten::median", "names_dim_values"},
    #endif
        {"aten::min", "dim_min"},
    #ifdef BUILD_NAMEDTENSOR
        {"aten::min", "names_dim"},
    #endif
    #ifdef BUILD_NAMEDTENSOR
        {"aten::min", "names_dim_min"},
    #endif
    #ifdef BUILD_NAMEDTENSOR
        {"aten::min_values", "names"},
    #endif
        {"aten::mkldnn_convolution", ""},
        {"aten::miopen_batch_norm", ""},
        {"aten::miopen_batch_norm_backward", ""},
        {"aten::miopen_convolution", ""},
        {"aten::miopen_convolution_transpose", ""},
        {"aten::miopen_depthwise_convolution", ""},
        {"aten::miopen_rnn", ""},
        {"aten::miopen_rnn_backward", ""},
        {"aten::mm", "out"},
        {"aten::mode", "values"},
    #ifdef BUILD_NAMEDTENSOR
        {"aten::mode", "dimname"},
    #endif
    #ifdef BUILD_NAMEDTENSOR
        {"aten::mode", "dimname_out"},
    #endif
        {"aten::mul", "out"},
        {"aten::mv", "out"},
        {"aten::native_batch_norm", ""},
        {"aten::batch_norm_elemt", ""},
        {"aten::batch_norm_gather_stats", ""},
        {"aten::batch_norm_gather_stats_with_counts", ""},
        {"aten::native_batch_norm_backward", ""},
        {"aten::batch_norm_backward_reduce", ""},
        {"aten::batch_norm_backward_elemt", ""},
        {"aten::batch_norm_update_stats", ""},
        {"aten::_nnpack_spatial_convolution", ""},
    #ifdef BUILD_NAMEDTENSOR
        {"aten::ones", "names"},
    #endif
        {"aten::ones", ""},
        {"aten::ones", "out"},
        {"aten::ones_like", "dtype"},
        {"aten::scalar_tensor", ""},
    #ifdef BUILD_NAMEDTENSOR
        {"aten::rand", "names"},
    #endif
    #ifdef BUILD_NAMEDTENSOR
        {"aten::rand", "generator_with_names"},
    #endif
        {"aten::rand", ""},
        {"aten::rand", "generator"},
        {"aten::rand", "out"},
        {"aten::rand", "generator_out"},
        {"aten::rand_like", "dtype"},
        {"aten::randint", ""},
        {"aten::randint", "generator"},
        {"aten::randint", "low"},
        {"aten::randint", "low_generator"},
        {"aten::randint", "out"},
        {"aten::randint", "generator_out"},
        {"aten::randint", "low_out"},
        {"aten::randint", "low_generator_out"},
        {"aten::randint_like", "dtype"},
        {"aten::randint_like", "low_dtype"},
        {"aten::randn", ""},
        {"aten::randn", "generator"},
    #ifdef BUILD_NAMEDTENSOR
        {"aten::randn", "names"},
    #endif
    #ifdef BUILD_NAMEDTENSOR
        {"aten::randn", "generator_with_names"},
    #endif
        {"aten::randn", "out"},
        {"aten::randn", "generator_out"},
        {"aten::randn_like", "dtype"},
        {"aten::randperm", ""},
        {"aten::randperm", "generator"},
        {"aten::randperm", "out"},
        {"aten::randperm", "generator_out"},
        {"aten::range", "step"},
        {"aten::range", ""},
        {"aten::range", "out"},
        {"aten::reciprocal", "out"},
        {"aten::neg", "out"},
        {"aten::round", "out"},
        {"aten::rsqrt", "out"},
    #ifdef BUILD_NAMEDTENSOR
        {"aten::select", "Dimname"},
    #endif
        {"aten::sigmoid", "out"},
        {"aten::sin", "out"},
        {"aten::sinh", "out"},
    #ifdef BUILD_NAMEDTENSOR
        {"aten::size", "Dimname"},
    #endif
        {"aten::softmax", ""},
    #ifdef BUILD_NAMEDTENSOR
        {"aten::softmax", ""},
    #endif
    #ifdef BUILD_NAMEDTENSOR
        {"aten::squeeze", "dimname"},
    #endif
    #ifdef BUILD_NAMEDTENSOR
        {"aten::squeeze_", "dimname"},
    #endif
        {"aten::sspaddmm", "out"},
        {"aten::stack", "out"},
        {"aten::stft", ""},
    #ifdef BUILD_NAMEDTENSOR
        {"aten::stride", "Dimname"},
    #endif
        {"aten::sum", ""},
        {"aten::sum", "dim_IntList"},
    #ifdef BUILD_NAMEDTENSOR
        {"aten::sum", "dim_DimnameList"},
    #endif
        {"aten::sum", "IntList_out"},
    #ifdef BUILD_NAMEDTENSOR
        {"aten::sum", "DimnameList_out"},
    #endif
        {"aten::sqrt", "out"},
    #ifdef BUILD_NAMEDTENSOR
        {"aten::std_mean", "names_dim"},
    #endif
        {"aten::std", "out"},
    #ifdef BUILD_NAMEDTENSOR
        {"aten::std", "names_dim"},
    #endif
    #ifdef BUILD_NAMEDTENSOR
        {"aten::std", "names_out"},
    #endif
        {"aten::prod", ""},
        {"aten::prod", "dim_int"},
        {"aten::prod", "int_out"},
    #ifdef BUILD_NAMEDTENSOR
        {"aten::prod", "dim_Dimname"},
    #endif
    #ifdef BUILD_NAMEDTENSOR
        {"aten::prod", "Dimname_out"},
    #endif
        {"aten::tan", "out"},
        {"aten::tanh", "out"},
        {"aten::threshold", "out"},
    #ifdef BUILD_NAMEDTENSOR
        {"aten::transpose", "Dimname"},
    #endif
        {"aten::trunc", "out"},
        {"aten::var", "out"},
    #ifdef BUILD_NAMEDTENSOR
        {"aten::var", "names_dim"},
    #endif
    #ifdef BUILD_NAMEDTENSOR
        {"aten::var", "names_out"},
    #endif
    #ifdef BUILD_NAMEDTENSOR
        {"aten::var_mean", "names_dim"},
    #endif
    #ifdef BUILD_NAMEDTENSOR
        {"aten::zeros", "names"},
    #endif
        {"aten::zeros", ""},
        {"aten::zeros", "out"},
        {"aten::zeros_like", "dtype"},
        {"aten::_sparse_sum", "dtype"},
        {"aten::_sparse_sum", "dim_dtype"},
        {"aten::norm", "ScalarOpt_dtype"},
        {"aten::norm", "ScalarOpt_dim_dtype"},
        {"aten::norm", "dtype_out"},
        {"aten::norm", "out"},
    #ifdef BUILD_NAMEDTENSOR
        {"aten::norm", "names_ScalarOpt_dim_dtype"},
    #endif
    #ifdef BUILD_NAMEDTENSOR
        {"aten::norm", "names_ScalarOpt_dim"},
    #endif
    #ifdef BUILD_NAMEDTENSOR
        {"aten::norm", "names_dtype_out"},
    #endif
    #ifdef BUILD_NAMEDTENSOR
        {"aten::norm", "names_out"},
    #endif
        {"aten::frobenius_norm", "out"},
        {"aten::nuclear_norm", "out"},
        {"aten::nuclear_norm", "dim_out"},
        {"aten::pow", "Tensor_Scalar_out"},
        {"aten::sub", "out"},
        {"aten::addmm", "out"},
        {"aten::sparse_coo_tensor", "size"},
        {"aten::sparse_coo_tensor", "indices"},
        {"aten::sparse_coo_tensor", "indices_size"},
        {"aten::_sparse_coo_tensor_unsafe", ""},
        {"aten::_sparse_coo_tensor_with_dims", ""},
        {"aten::_sparse_coo_tensor_with_dims_and_tensors", ""},
        {"aten::hspmm", "out"},
    #ifdef BUILD_NAMEDTENSOR
        {"aten::unbind", "Dimname"},
    #endif
        {"aten::quantize_per_tensor", ""},
        {"aten::quantize_per_channel", ""},
        {"aten::q_per_channel_axis", ""},
        {"aten::qscheme", ""},
        {"aten::to", "dtype_layout"},
        {"aten::to", "device"},
        {"aten::to", "dtype"},
        {"aten::result_type", "Tensor"},
        {"aten::result_type", "Scalar"},
        {"aten::result_type", "Scalar_Tensor"},
        {"aten::result_type", "Scalar_Scalar"},
        {"aten::can_cast", ""},
        {"aten::promote_types", ""},
        {"aten::_thnn_fused_lstm_cell", ""},
        {"aten::_thnn_fused_lstm_cell_backward", ""},
        {"aten::_thnn_differentiable_lstm_cell_backward", ""},
        {"aten::_thnn_fused_gru_cell", ""},
        {"aten::_thnn_differentiable_gru_cell_backward", ""},
        {"aten::lstm_cell", ""},
        {"aten::gru_cell", ""},
        {"aten::rnn_tanh_cell", ""},
        {"aten::rnn_relu_cell", ""},
        {"aten::quantized_lstm", ""},
        {"aten::set_", "source_Storage"},
        {"aten::set_", "source_Storage_storage_offset"},
        {"aten::set_quantizer_", ""},
    #ifdef BUILD_NAMEDTENSOR
        {"aten::index_add", "dimname"},
    #endif
    #ifdef BUILD_NAMEDTENSOR
        {"aten::index_fill_", "dimname_Scalar"},
    #endif
    #ifdef BUILD_NAMEDTENSOR
        {"aten::index_fill_", "dimname_Scalar"},
    #endif
    #ifdef BUILD_NAMEDTENSOR
        {"aten::index_fill", "dimname_Scalar"},
    #endif
    #ifdef BUILD_NAMEDTENSOR
        {"aten::index_fill", "dimname_Tensor"},
    #endif
    #ifdef BUILD_NAMEDTENSOR
        {"aten::scatter", "dimname_src"},
    #endif
    #ifdef BUILD_NAMEDTENSOR
        {"aten::scatter", "dimname_value"},
    #endif
    #ifdef BUILD_NAMEDTENSOR
        {"aten::scatter_add", "dimname"},
    #endif
        {"aten::addbmm", "out"},
        {"aten::diag", "out"},
        {"aten::cross", "out"},
        {"aten::triu", "out"},
        {"aten::tril", "out"},
        {"aten::tril_indices", ""},
        {"aten::triu_indices", ""},
        {"aten::ne", "Scalar_out"},
        {"aten::ne", "Tensor_out"},
        {"aten::eq", "Scalar_out"},
        {"aten::eq", "Tensor_out"},
        {"aten::ge", "Scalar_out"},
        {"aten::ge", "Tensor_out"},
        {"aten::le", "Scalar_out"},
        {"aten::le", "Tensor_out"},
        {"aten::gt", "Scalar_out"},
        {"aten::gt", "Tensor_out"},
        {"aten::lt", "Scalar_out"},
        {"aten::lt", "Tensor_out"},
        {"aten::take", "out"},
        {"aten::index_select", "out"},
    #ifdef BUILD_NAMEDTENSOR
        {"aten::index_select", "dimname_out"},
    #endif
    #ifdef BUILD_NAMEDTENSOR
        {"aten::index_select", "dimname"},
    #endif
        {"aten::masked_select", "out"},
        {"aten::nonzero", "out"},
        {"aten::gather", "out"},
    #ifdef BUILD_NAMEDTENSOR
        {"aten::gather", "dimname_out"},
    #endif
    #ifdef BUILD_NAMEDTENSOR
        {"aten::gather", "dimname"},
    #endif
        {"aten::addcmul", "out"},
        {"aten::addcdiv", "out"},
        {"aten::lstsq", "X"},
        {"aten::triangular_solve", "X"},
        {"aten::symeig", "e"},
        {"aten::eig", "e"},
        {"aten::svd", "U"},
        {"aten::cholesky", "out"},
        {"aten::cholesky_solve", "out"},
        {"aten::solve", "solution"},
        {"aten::cholesky_inverse", "out"},
        {"aten::qr", "Q"},
        {"aten::geqrf", "a"},
        {"aten::orgqr", "out"},
        {"aten::ormqr", "out"},
        {"aten::lu_solve", "out"},
        {"aten::multinomial", "out"},
        {"aten::lgamma", "out"},
        {"aten::digamma", "out"},
        {"aten::polygamma", "out"},
        {"aten::erfinv", "out"},
        {"aten::sign", "out"},
        {"aten::atan2", "out"},
        {"aten::lerp", "Scalar_out"},
        {"aten::lerp", "Tensor_out"},
        {"aten::histc", "out"},
        {"aten::fmod", "Scalar_out"},
        {"aten::fmod", "Tensor_out"},
        {"aten::remainder", "Scalar_out"},
        {"aten::remainder", "Tensor_out"},
        {"aten::min", "out"},
        {"aten::max", "out"},
        {"aten::sort", "values"},
    #ifdef BUILD_NAMEDTENSOR
        {"aten::sort", "dimname_values"},
    #endif
    #ifdef BUILD_NAMEDTENSOR
        {"aten::sort", "dimname"},
    #endif
    #ifdef BUILD_NAMEDTENSOR
        {"aten::argsort", "dimname"},
    #endif
        {"aten::topk", "values"},
        {"aten::renorm", "out"},
        {"aten::pow", "Tensor_Tensor_out"},
        {"aten::pow", "Scalar_out"},
        {"aten::normal", "Tensor_float_out"},
        {"aten::normal", "float_Tensor_out"},
        {"aten::normal", "Tensor_Tensor_out"},
        {"aten::normal", "float_float"},
        {"aten::normal", "float_float_out"},
        {"aten::_addr", "out"},
        {"aten::_cumsum", "out"},
        {"aten::_cumprod", "out"},
        {"aten::_cat", "out"},
        {"aten::_mode", "values"},
        {"aten::_max", "max"},
        {"aten::_min", "min"},
        {"aten::binary_cross_entropy", "out"},
        {"aten::binary_cross_entropy", ""},
        {"aten::binary_cross_entropy_backward", "grad_input"},
        {"aten::binary_cross_entropy_backward", ""},
        {"aten::mse_loss", "out"},
        {"aten::mse_loss_backward", "grad_input"},
        {"aten::l1_loss", "out"},
        {"aten::l1_loss_backward", "grad_input"},
        {"aten::multi_margin_loss", "out"},
        {"aten::multi_margin_loss", ""},
        {"aten::multi_margin_loss_backward", "grad_input"},
        {"aten::multi_margin_loss_backward", ""},
        {"aten::multilabel_margin_loss", "out"},
        {"aten::multilabel_margin_loss_forward", "output"},
        {"aten::multilabel_margin_loss_backward", "grad_input"},
        {"aten::nll_loss", "out"},
        {"aten::nll_loss", ""},
        {"aten::nll_loss_forward", "output"},
        {"aten::nll_loss_forward", ""},
        {"aten::nll_loss_backward", "grad_input"},
        {"aten::nll_loss_backward", ""},
        {"aten::nll_loss2d", "out"},
        {"aten::nll_loss2d", ""},
        {"aten::nll_loss2d_forward", "output"},
        {"aten::nll_loss2d_forward", ""},
        {"aten::nll_loss2d_backward", "grad_input"},
        {"aten::nll_loss2d_backward", ""},
        {"aten::smooth_l1_loss", "out"},
        {"aten::smooth_l1_loss_backward", "grad_input"},
        {"aten::soft_margin_loss", "out"},
        {"aten::soft_margin_loss_backward", "grad_input"},
        {"aten::elu", "out"},
        {"aten::elu_backward", "grad_input"},
        {"aten::glu", "out"},
        {"aten::glu_backward", "grad_input"},
        {"aten::hardtanh", "out"},
        {"aten::hardtanh_backward", "grad_input"},
        {"aten::leaky_relu", "out"},
        {"aten::leaky_relu_backward", "grad_input"},
        {"aten::log_sigmoid", "out"},
        {"aten::log_sigmoid_forward", "output"},
        {"aten::log_sigmoid_backward", "grad_input"},
        {"aten::rrelu_with_noise", "out"},
        {"aten::rrelu_with_noise_backward", "grad_input"},
        {"aten::softplus", "out"},
        {"aten::softplus_backward", "grad_input"},
        {"aten::softshrink", "out"},
        {"aten::softshrink_backward", "grad_input"},
        {"aten::adaptive_avg_pool2d", "out"},
        {"aten::adaptive_avg_pool3d", "out"},
        {"aten::adaptive_avg_pool3d_backward", "grad_input"},
        {"aten::adaptive_max_pool2d", "out"},
        {"aten::adaptive_max_pool2d_backward", "grad_input"},
        {"aten::adaptive_max_pool3d", "out"},
        {"aten::adaptive_max_pool3d_backward", "grad_input"},
        {"aten::avg_pool2d", "out"},
        {"aten::avg_pool2d_backward", "grad_input"},
        {"aten::avg_pool3d", "out"},
        {"aten::avg_pool3d_backward", "grad_input"},
        {"aten::fractional_max_pool2d", "output"},
        {"aten::fractional_max_pool2d_backward", "grad_input"},
        {"aten::fractional_max_pool3d", "output"},
        {"aten::fractional_max_pool3d_backward", "grad_input"},
        {"aten::max_pool2d_with_indices", "out"},
        {"aten::max_pool2d_with_indices_backward", "grad_input"},
        {"aten::max_pool3d_with_indices", "out"},
        {"aten::max_pool3d_with_indices_backward", "grad_input"},
        {"aten::max_unpool2d", "out"},
        {"aten::max_unpool2d_backward", "grad_input"},
        {"aten::max_unpool3d", "out"},
        {"aten::max_unpool3d_backward", "grad_input"},
        {"aten::reflection_pad1d", "out"},
        {"aten::reflection_pad1d_backward", "grad_input"},
        {"aten::reflection_pad2d", "out"},
        {"aten::reflection_pad2d_backward", "grad_input"},
        {"aten::replication_pad1d", "out"},
        {"aten::replication_pad1d_backward", "grad_input"},
        {"aten::replication_pad2d", "out"},
        {"aten::replication_pad2d_backward", "grad_input"},
        {"aten::replication_pad3d", "out"},
        {"aten::replication_pad3d_backward", "grad_input"},
        {"aten::upsample_linear1d", "out"},
        {"aten::upsample_linear1d_backward", "grad_input"},
        {"aten::upsample_bilinear2d", "out"},
        {"aten::upsample_bilinear2d_backward", "grad_input"},
        {"aten::upsample_bicubic2d", "out"},
        {"aten::upsample_bicubic2d_backward", "grad_input"},
        {"aten::upsample_trilinear3d", "out"},
        {"aten::upsample_trilinear3d_backward", "grad_input"},
        {"aten::upsample_nearest1d", "out"},
        {"aten::upsample_nearest1d_backward", "grad_input"},
        {"aten::upsample_nearest2d", "out"},
        {"aten::upsample_nearest2d_backward", "grad_input"},
        {"aten::upsample_nearest3d", "out"},
        {"aten::upsample_nearest3d_backward", "grad_input"},
        {"aten::sigmoid_backward", "grad_input"},
        {"aten::tanh_backward", "grad_input"},
        {"aten::slow_conv_transpose2d", "out"},
        {"aten::slow_conv_transpose2d", ""},
        {"aten::slow_conv_transpose2d_backward", "grad_output"},
        {"aten::slow_conv_transpose3d", "out"},
        {"aten::slow_conv_transpose3d", ""},
        {"aten::slow_conv_transpose3d_backward", "grad_output"},
        {"aten::thnn_conv2d", "out"},
        {"aten::thnn_conv2d", ""},
        {"aten::thnn_conv2d_forward", "output"},
        {"aten::thnn_conv2d_forward", ""},
        {"aten::thnn_conv2d_backward", "grad_input"},
        {"aten::thnn_conv_depthwise2d", "out"},
        {"aten::thnn_conv_depthwise2d", ""},
        {"aten::thnn_conv_depthwise2d_forward", "out"},
        {"aten::thnn_conv_depthwise2d_forward", ""},
        {"aten::thnn_conv_depthwise2d_backward", "grad_input"},
        {"aten::thnn_conv3d", "out"},
        {"aten::thnn_conv3d", ""},
        {"aten::thnn_conv3d_forward", "output"},
        {"aten::thnn_conv3d_forward", ""},
        {"aten::thnn_conv3d_backward", "grad_input"},
        {"aten::slow_conv_dilated2d", ""},
        {"aten::slow_conv_dilated3d", ""},
        {"aten::col2im", "out"},
        {"aten::col2im_backward", "grad_input"},
        {"aten::im2col", "out"},
        {"aten::im2col_backward", "grad_input"},
    {"", ""}
  };
  return ops.count(std::make_pair(opName.name.c_str(), opName.overload_name.c_str())) != 0;
}

}
