
    ajgs                       U d dl mZ d dlZd dlZd dlZd dlmZ d dlmc m	Z	 d dl
mZ d dlmZmZmZmZmZmZmZmZmZmZmZ d dlmZ erd dlmZ  ej                    Zded	<   d@dZ e d          Z!dAdZ"dBdZ# e d          Z$ e d          Z%dCdZ&dCdZ' e d          Z( e d          Z)dDd Z*d!Z+ ej,        e+          Z-d"ed#<   dEd$Z.dFd&Z/dGd)Z0dGd*Z1ej2        d+ej3        dej4        d,ej5        dej6        dej7        dej8        diZ9dHd.Z:dId/Z;dJd3Z<dJd4Z=dJd5Z>dKd7Z?dJd8Z@ e d9          ZAdLd:ZBdMd;ZC G d< d=          ZD G d> d?          ZEdS )N    )annotationsN)TYPE_CHECKING)native_function_manager)ArgumentBackendIndexBaseTyBaseTypeFunctionSchemaNativeFunctionsGroupNativeFunctionsViewGroupOptionalTypeSelfArgumentTensorOptionsArgumentsType)config)Sequencezlogging.Loggerlogger	arguments:Sequence[Argument | SelfArgument | TensorOptionsArguments]returnboolc                d    | D ],}t          |dd           }|st          |dd          }|r dS -dS )N
annotation	alias_set TF)getattr)r   argr   r   s       f/home/longshao/multi-rider-rag/.venv/lib/python3.11/site-packages/torchgen/static_runtime/generator.py	has_aliasr   !   sY       S,55
 	JR88	 	44	5    )sparse_sampled_addmmhspmmlinalg_svdvalssspaddmmcoalesce_indicesindices_valuesvaluescrow_indicescol_indicesfloor_dividegerconj_physicalbinary_cross_entropyarccoshcholeskylu_solvelinalg_choleskylinalg_householder_productlinalg_ldl_solve_compute_linear_combination
_make_dual
_fw_primal_index_reduce!_new_zeros_with_same_feature_meta_conj_physical binary_cross_entropy_with_logitsbincountconv_tbccopy
_copy_from_copy_from_and_resizecount_nonzerocudnn_affine_grid_generator$cudnn_affine_grid_generator_backwardcudnn_grid_sampler
diag_embed	embeddingembedding_dense_backward_embedding_bag_dense_backward*_embedding_bag_per_sample_weights_backwardgrid_sampler_2d_grid_sampler_2d_cpu_fallbackgrid_sampler_3disnanmkldnn_linearmedian	nanmedian_sparse_sparse_matmulbatch_norm_backward_elemt_euclidean_distpixel_shufflepixel_unshufflechannel_shuffle_reshape_nested_backwardrelupreluceluslice_scatterselect_scatterdiagonal_scattersum_mkldnn_transpose_nested_tensor_from_mask_nested_from_padded_nested_tensor_size&_nested_from_padded_and_nested_example_standard_gamma_grad_dirichlet_gradnative_norm_sparse_softmax_sparse_softmax_backward_data_sparse_log_softmax!_sparse_log_softmax_backward_datazero_sparse_addmmsparse_mask_sparse_mask_projection	_to_dense	_coalesce
_coalescedcopy_sparse_to_sparse	to_sparseto_sparse_csrto_sparse_csc	to_mkldnnquantize_per_tensor_dynamicquantize_per_channelq_per_channel_scalesq_per_channel_zero_pointsint_repr"_make_per_channel_quantized_tensorsetlift
lift_freshlift_fresh_copymasked_scatter_masked_softmax_masked_softmax_backwardputindex_reducetrace_cholesky_solve_helperdistmax_torch_cuda_cu_linker_symbol_opglu_jvpglu_backward_jvphardswish_backwardrrelu_with_noise_backward#mkldnn_adaptive_avg_pool2d_backward_adaptive_avg_pool2d_backward_adaptive_avg_pool3d_backwardisinflinalg_lu_solvelinalg_vecdotlinalg_matrix_explinalg_eigvalsh_test_warn_in_autograd%_test_autograd_multiple_dispatch_view*_test_autograd_multiple_dispatch_view_copy_segment_reduce_segment_reduce_backward_fw_primal_copy_make_dual_copyview_as_real_copyview_as_complex_copy
_conj_copy_neg_view_copydiagonal_copydetach_copysqueeze_copyt_copyunsqueeze_copy_indices_copy_values_copyindices_copyvalues_copycrow_indices_copycol_indices_copyccol_indicesccol_indices_copyrow_indicesrow_indices_copyunfold_copy
alias_copy_triton_multi_head_attentionspecial_airy_aispecial_bessel_j0special_bessel_j1special_bessel_y0special_bessel_y1special_chebyshev_polynomial_tspecial_chebyshev_polynomial_uspecial_chebyshev_polynomial_vspecial_chebyshev_polynomial_wspecial_hermite_polynomial_hspecial_hermite_polynomial_hespecial_laguerre_polynomial_lspecial_legendre_polynomial_pspecial_modified_bessel_i0special_modified_bessel_i1special_modified_bessel_k0special_modified_bessel_k1!special_scaled_modified_bessel_k0!special_scaled_modified_bessel_k1&special_shifted_chebyshev_polynomial_t&special_shifted_chebyshev_polynomial_u&special_shifted_chebyshev_polynomial_v&special_shifted_chebyshev_polynomial_wspecial_spherical_bessel_j0_foobar_nested_tensor_strides_nested_tensor_storage_offsets_nested_get_values_nested_get_values_copy_nested_view_from_jagged_nested_view_from_jagged_copy_nested_view_from_buffer_nested_view_from_buffer_copy_int_mm_to_sparse_csc_to_sparse_csrsegment_reduceg/NativeFunctionsGroup | NativeFunctionsViewGroupc                j   d}d }t          | t                    r| j        j        }| j        j        }n'| j        j        j        j        j        }| j        j        }t          j	        |           rt                              d|           dS |t          v rt                              d|           dS |                                D ]6}t          |j                  }|st                              d|            dS 7t          | t                    r]dt!          j        |j        d                                          k    r*t                              dt)          |                     dS d	S | j        j                                        D ]@}t          |j                  }|s(t                              d| j        j                    dS A| j        s[t/          | d
          rIt)          |                              d          r't)          |j                                      d          sdS dt!          j        |j        d                                          k    rt                              d|           dS t3          |j        j                  rt                              d|           dS d	S )N zHAND WRITTEN: %sFzBLOCKED: %sz!NOT SUPPORTED TYPE CONVERTING: %sz
at::Tensor)symintzNON-TENSOR RET TYPE: %sToutzTensor(a!) out) -> Tensor(a!)z.outzat::Tensor &zNON_TENSOR RET TYPE: %szINPUTS ALIAS: %s)
isinstancer   view	root_namefuncr   namebaser   is_hand_writtenr   infoBLOCKED_OPSschema_order_argumentsivalue_type_conversion_methodtypecppreturns_typereturnscpp_typestr
functional
structuredhasattrendswithr   r   non_out)r   base_op_namer   r   maybe_methods        r   is_supportedr      s   LD!-.. v'v{uz+0uza   &555u{""M<000u**,,  4SX>> 	KK;TBBB55	
 !-..  3+DLGGGPPRRRRKK13t99===5t | 7799  4SX>> 	KK;Q\=NOOO55	
 < 	
 5!!	t99%%&EFF	 ty>>**622	
 5)$,uEEENNPPPP-t444u'(( &555u4r    arg_typeBaseType | OptionalType | Typetuple[bool, str] | Nonec                   t           j        dt           j        dt           j        dt           j        dt           j        dt           j        di}d}t          | t                    r| j	        }n@t          | t                    r)t          | j        t                    sdS | j        j	        }ndS ||vrdS ||         }t          | t                    r|d         S |d	         S )
aD  
    Return the method call expression of `c10::ivalue' to convert its contained value to
    the expected value of `arg_type` type. For example, for `arg_type` == BaseTy.Tensor,
    this function returns ".toTensor()", so that it can be appended to the ivalue's
    variable name to get the value of the expected type.
    ))Tz
toTensor())FztoOptional<at::Tensor>()))FztoInt())FztoOptional<int64_t>()))FztoBool())FztoOptional<bool>()))Fz
toScalar())FztoOptional<at::Scalar>()))FztoScalarType())FztoOptional<at::ScalarType>()))FztoStringView())FztoOptional<c10::string_view>())Fz toOptional<::std::string_view>()Nr      )r   Tensorintr   Scalar
ScalarTyper   r   r	   r   r   elem)r   type_conversion_methodsbase_ty_objectmethodss       r   r   r   2  s     	R
JIS 
 	
 
  N(H%% !	Hl	+	+ (-22 	4!+t444t%n5G(H%% qz1:r    )bitwise_notbitwise_and
bitwise_orbitwise_xorbitwise_left_shiftbitwise_right_shiftgcdlcmscattergather _convert_indices_from_coo_to_csr _convert_indices_from_csr_to_coo)view_as_realimag_conjop_namer   c                    | t           v S N)should_use_int_tensor_ops_r  s    r   should_use_int_tensorr  q  s    000r    c                    | t           v S r  )should_use_complex_tensor_ops_r  s    r   should_use_complex_tensorr  u  s    444r    )	addmv	index_addr  r  nll_loss_backwarddotvdotouterr-   )addmmmmnuclear_normdiag_addmm_activationmatrix_Htr   c                2    | t           v rdS | t          v rdS dS )Nr         )test_tensor_dim_ops_1_test_tensor_dim_ops_2_r  s    r   test_tensor_dimr0    s)    (((q(((q1r    z{"view_as_complex": "{2, 2}"}zdict[str, str]test_tensor_shape_jsonc                2    | t           v rt           |          S dS )Nr   )r1  r  s    r   test_tensor_shaper3    s    (((%g..rr    indexc                :   t          |          }|dk    rr|dk    rdnd}t          |          }t          j        |t	          |          z            }||dz  z  }d                    d                    | g|z                      }t          |          rd| d	}nt          |          rd
| d}nd| d}t          j
        |t          j        dt          j        dt          j        dt          j        dt          j        di}d }	t!          | t"                    r| j        }	nZt!          | t&                    rt!          | j        t"                    st+          dt-          |                      | j        j        }	|	|vrt+          d|	           ||	         }
|
S )Nr   r      @   r,  z{{{}}},zat::randint(1, 100, z, at::kInt)z
at::randn(z, at::kComplexFloat)z	at::rand()1false2zat::ScalarType::Floatz"floor"z.Expected OptionalType with BaseType elem, got zUnexpected type: )r3  r0  mathceilfloatformatjoinr  r  r   r   r   r   r   r  r   r   r	   r   r   r  AssertionErrorr   )r   r4  r  tensor_size_exnum_tensorsnum_dimsize_per_dimtensor_expressionvalue_expressionsr  value_expressions              r   test_value_expressionrJ    s    'w//N!QJJbbB!'**yuW~~!=>>q((!l3D2E2O)P)PQQW%% :N>NNN	"7	+	+ :MMMM9999 	(
CWs2
I N(H%% 	,! x..	3=hmX3V3V	 !QhQQ   "+...AAABBB(8r    schemar
   c                   |                                  rt          d|            | j        j        j        }i }|                                 D ]"}t          |j        ||          }|||j        <   #t          j        |||           g }|	                                D ]"\  }}|
                    d| | d|            #d                    |          dz   S )NExpected non-out function, got zauto z = ;
    ;)	is_out_fnrB  r   r   r   rJ  r   r   override_test_valuesitemsappendrA  )	rK  r4  schema_namearg_mapr   test_value_exparg_populationsarg_name	arg_values	            r   generate_test_value_definitionsrZ    s     IGvGGHHH+"'KG,,.. + +.sxLL*
e<<<O&}} H H)FxFFF9FFGGGG>>/**S00r    c                    |                                  rt          d|            d                    fd|                                 D                       S )NrM  r8  c              3  .   K   | ]}|j           V  d S r  r   ).0r   r4  s     r   	<genexpr>z,generate_test_value_names.<locals>.<genexpr>  s0      TTSsx(((TTTTTTr    )rP  rB  rA  r   )rK  r4  s    `r   generate_test_value_namesr`    sb     IGvGGHHH88TTTTF4Q4Q4S4STTTTTTr    r   r?  list[tuple[str, str | None]]c                L    ddfd|                                  D             S )Nr   r   r   tuple[str, str | None]c                &   | j         }d}t          |t                    r	|j        }d}t          |t                    st          dt          |                     d }|j        t          v rt          |j                 }|r|r| d}d| j        z   |fS )NFTzExpected BaseType, got ?%)r   r   r   r  r	   rB  r   /generate_test_ir_arguments_base_ty_to_type_str_)r   r*  add_optionaltype_strs       r   ir_argumentz/generate_test_ir_arguments.<locals>.ir_argument  s    Ha&& 	 AL!X&& 	F !D477!D!DEEE6DDDFqvNH 	& 	&"~~~Hch))r    c                &    g | ]} |          S r   r   )r^  r   rj  s     r   
<listcomp>z.generate_test_ir_arguments.<locals>.<listcomp>  s#    HHHKKHHHr    )r   r   r   rc  )r   )rK  rj  s    @r   generate_test_ir_argumentsrm    s@    * * * * IHHH(E(E(G(GHHHHr    c                P   g }t          |                                           D ]k\  }}t          |j                  }|st	          d|j         d|j                   |\  }}|rdnd}|                    d| d|j         d| d|            ld	                    |          d
z   S )NzNo type conversion method for : &r   z
const auto z = p_node->Input(z).rN  rO  )	enumerater   r   r   rB  r   rS  rA  )rK  rW  ir   r   is_referencetype_conversion_method	references           r   generate_arg_extractionrw    s    OF99;;<< 

 

34SX>> 	 GGGSXGG   0<,,'/CCR	]]]SX]]]]E[]]	
 	
 	
 	
 >>/**S00r    r   backend_indexr   c                    |                     | j                  }| j        s|t          j        | j        j                  S |j        S r  )
get_kernelr   r   r   r   r   kernelr   rx  r{  s      r   get_kernel_namer}    sB    %%al33F| +v~x)***=r    c                    |                     | j                  }| j        s|t          j        | j        j                  S |j        S r  )rz  r   r   r   r   r   r{  r|  s      r   get_out_kernel_namer    sA    %%ae,,F| $v~x
###=r    c                   | j         j        }|                                rt          d|           t	          | |          }d |                                D             }| j        rdnd}d| d| dd                    |           d	S )
NrM  c              3  $   K   | ]}|j         V  d S r  r]  r^  r   s     r   r_  z0generate_non_out_variant_call.<locals>.<genexpr>#  $      EEcEEEEEEr    cpunativeat::::(r8  r9  )r   r   rP  rB  r}  r   r   rA  )r   rx  rK  kernel_name	arg_namesnamespace_names         r   generate_non_out_variant_callr    s     \F IGvGGHHH!!]33KEEV%B%B%D%DEEEIl8UUNH.HHKHH#((92E2EHHHHr    r   c                   | j         j        }t          j        |          }|                    | j                   }|r|j        }d |                                D             }d}d| d| dd                    |           dS )Nc              3  $   K   | ]}|j         V  d S r  r]  r  s     r   r_  z,generate_call_to_view_ops.<locals>.<genexpr>0  r  r    r  r  r  r  r8  r9  )r   r   r   r   rz  r{  r   rA  )r   rx  rK  r  r{  r  r  s          r   generate_call_to_view_opsr  (  s     V[F(6""K%%af--F $mEEV%B%B%D%DEEEINH.HHKHH#((92E2EHHHHr    c                4   | j         j        }|                                st          d|           g }t	          | |          }| j        rd |j        j         D             }ng }|j        j        D ]}t          |t                    r |
                    |j        j                   7t          |t                    st          dt          |                     |
                    |j                   | j        spt          |j        j                   dk    r)t          dt          |j        j                              |
                    |j        j         d         j                   d                    |          }| j        rdnd	}d
| d| d| dS )NzExpected out function, got c                    g | ]	}|j         
S r   r]  )r^  out_args     r   rl  z-generate_out_variant_call.<locals>.<listcomp>?  s    FFFgW\FFFr    zExpected Argument, got r   Expected 1 out argument, got r   r8  r  r  r  r  r  r9  )r   r   rP  rB  r  r   r   r   r   r   rS  argumentr   r   r   lenrA  )r   rx  rK  r  r  r   cpp_arg_namesr  s           r   generate_out_variant_callr  5  s    UZF EC6CCDDDI%a77K| FF1A1EFFF			' ' 'c<(( 	'S\.////c8,, L$%JtCyy%J%JKKKSX&&&&< 7v#$$)) KF4D4H0I0IKK   	)-a05666HHY''Ml8UUNB.BBKBB-BBBBr    )zisin.Scalar_Tensorr  r!  r"  r&  histcl1_lossmulti_margin_lossmultilabel_margin_lossnll_loss
nll_loss2dprodc                l    t          |           }|d |                    d                   }|t          vS )Nr  )r   findno_memory_resize_ops)rK  
schema_strtype_variant_op_names      r   should_check_resizer  f  s6    VJ%&<
(<(<&<=';;;r    c                8    | j         j        j        j        j        S r  )r   r   r   r   )r   s    r   op_name_from_groupr  l  s    <!&++r    c                  .    e Zd ZddZdd	ZddZddZdS )GenOpDispatchergroupsSequence[NativeFunctionsGroup]rx  r   r   r   c                   |sdS g }|D ]}t          |          5  t          |          st          d|           t          |t                    st          dt          |                     |                     ||          }|                    |           d d d            n# 1 swxY w Y   t          |d                   }d	                    |          }d| d| d| d	}|S )
Nr   Unsupported function group: #Expected NativeFunctionsGroup, got r   
z&
REGISTER_OPERATOR_FUNCTOR(
    aten::,
    aten_(,
    [](Node* n) -> SROperator {
      z9
      LogAndDumpSchema(n);
      return nullptr;
    })
)
r   r   rB  r   r   r   out_variant_op_generatorrS  r  rA  	selfr  rx  generated_type_variantsr   generated_type_variantr  body	generateds	            r   out_variantzGenOpDispatcher.out_variantq  s     	2"$ 		G 		GA(++ G G#A M()K)K)KLLL!!%9:: (Gd1ggGG   *.)F)Fq-)X)X&'../EFFFG G G G G G G G G G G G G G G %VAY//yy011		 	 	 	
 	 	 		    BB''B+	.B+	"Sequence[NativeFunctionsViewGroup]c                   |sdS g }|D ]}t          |          5  t          |          st          d|           t          |t                    st          dt          |                     |                     ||          }|                    |           d d d            n# 1 swxY w Y   t          j	        |d                   }d
                    |          }d| d| d| d	}|S )
Nr   Unsupported view group: 'Expected NativeFunctionsViewGroup, got r   r  z-
REGISTER_NATIVE_OPERATOR_FUNCTOR(
    aten::r  r  z:
      LogAndDumpSchema(n);
      return nullptr;
    });
)r   r   rB  r   r   r   view_op_generatorrS  r   func_name_base_strrA  r  s	            r   r   zGenOpDispatcher.view  s     	2"$ 		G 		GA(++ G G#A I()GA)G)GHHH!!%=>> (K$q''KK   *.)?)?=)Q)Q&'../EFFFG G G G G G G G G G G G G G G +F1I66yy011		 	 	 	
 	 	 		 r  r   r   c                   |j         }t          |j                  }t          |j         j                  }t	          ||          }t          |j        j        j        j                  dk    r3t          dt          |j        j        j        j                             t          |j        j        j        j        d         j	                  }t          ||          }d| d| d| d| d| d	| d
}	|	S )Nr   r  r   +
      if (n->matches(torch::schema("aten::<"))) {
        return [](ProcessedNode* p_node) {
          zM
          if (p_node->Output(0).isNone()) {
            p_node->Output(0) = z2;
            return;
          }
          auto& z< = p_node->Output(0).toTensor();
          fastResizeToZero(z);
          ;
        };
      })r   r   r   rw  r  r  r   r   rB  r   r  )
r  r   rx  r   rK  populated_argumentfunctional_variant_callout_variable_nameout_variant_callr  s
             r   r  z(GenOpDispatcher.out_variant_op_generator  s'    \
Z_%%4Q\5FGG"?="Q"Qquz#'((A-- OAEJ4H4L0M0MOO    
 4 8 ; @AA4QFF+1   
 "9  #  .    	 r    r   c                    t          |j        j                  }t          |j        j                  }t	          ||          }d| d| d| d}|S )Nr  r  z!
            p_node->Output(0) = r  )r   r   r   rw  r  )r  r   rx  rK  r  r  r  s          r   r  z!GenOpDispatcher.view_op_generator  sv     QV[!!4QV[AA";A}"M"M+1    "9	  	 r    N)r  r  rx  r   r   r   )r  r  rx  r   r   r   r   r   rx  r   r   r   r   r   rx  r   r   r   )__name__
__module____qualname__r  r   r  r  r   r    r   r  r  p  sd           <   <   8     r    r  c                  .    e Zd ZddZddZdd
ZddZdS )GenOpTestCaser  r  r   r   c                   |sdS g }|D ]}t          |          5  t          |          st          d|           t          |t                    st          dt          |                     |                     |          }|                    |           d d d            n# 1 swxY w Y   d                    |          S )Nr   r  r  r  )	r   r   rB  r   r   r   "out_variant_op_test_case_generatorrS  rA  r  r  r  r   r  s        r   r  zGenOpTestCase.out_variant  s8    	2"$ 		G 		GA(++ G G#A M()K)K)KLLL!!%9:: (Gd1ggGG   *.)P)PQR)S)S&'../EFFFG G G G G G G G G G G G G G G yy0111   B B&&B*	-B*	r  c                   |sdS g }|D ]}t          |          5  t          |          st          d|           t          |t                    st          dt          |                     |                     |          }|                    |           d d d            n# 1 swxY w Y   d                    |          S )Nr   r  r  r  )	r   r   rB  r   r   r   view_op_test_case_generatorrS  rA  r  s        r   r   zGenOpTestCase.view  s7    	2"$ 		G 		GA(++ G G#A I()GA)G)GHHH!!%=>> (K$q''KK   *.)I)I!)L)L&'../EFFFG G G G G G G G G G G G G G G yy0111r  r   r   c                   |j         j        }t          |          }|                    d          dk    rt	          d|           |d |                    d                                       dd          }t          |          }|                    |          st	          d| d|           t          |          }d	                    d	 |D                       }d	                    d
 |D                       }t          |j                  dk    rHt          |j        d         j        t                    r#|j        d         j        j        t           j        u st	          d|j                   t%          |d          }	t'          |d          }
t%          |d          }t'          |d          }t)          |          rdnd}d| d| d| d| d|	 d|
 d| d| d| d| d}|S )Nr  r   Invalid schema string: ._Type variant op name  doesn't start with , c              3  2   K   | ]\  }}||n| d| V  d S Nro  r   r^  rX  r   s      r   r_  zCGenOpTestCase.out_variant_op_test_case_generator.<locals>.<genexpr>  Q        &Hh %,X2K2K2K2K     r    c              3      K   | ]	\  }}|V  
d S r  r   r^  rX  r  s      r   r_  zCGenOpTestCase.out_variant_op_test_case_generator.<locals>.<genexpr>  &      EEKHaxEEEEEEr    r   #Expected single Tensor return, got truer;  
TEST(StaticRuntime, autogen_1) {
  const std::string script = R"IR(
    graph(?):
        %bias: None = prim::Constant()
        %ret = aten::Q)
        %cloned = aten::clone(%ret, %bias)
        return (%cloned)
  )IR";

  
  std::vector<IValue> args{zj};
  testStaticRuntime(script, args, {}, /*use_allclose=*/false, /*use_equalnan=*/false, /*check_resize=*/z);

  z
  std::vector<IValue> args2{zm};
  testStaticRuntime(script, args, args2, /*use_allclose=*/false, /*use_equalnan=*/false, /*check_resize=*/z);

}
)r   r   r   r  rB  replacer  
startswithrm  rA  r  r   r   r   r	   r   r   r   rZ  r`  r  )r  r   rK  r  r  r  	arg_typesarg_declarationsr  test_value_definitionstest_value_namestest_value_definitions2test_value_names2check_resizer  s                  r   r  z0GenOpTestCase.out_variant_op_test_case_generator  s   "[[
??31$$ !G:!G!GHHH)*@JOOC,@,@*@AII#sSS$Q''#..w77 	 [(<[[RY[[   /v66	99 *3  
 
 IIEE9EEEFF	1$$6>!,18<< %q!&+v}<< !Wv~!W!WXXX!@!K!K4VQ??"A&!"L"L5fa@@!4V!<!<Ivv'1   
  
 !*    .  kw    0   lx!  	( r    r   c                R   |j         j        }t          |          }|                    d          dk    rt	          d|           |d |                    d                                       dd          }|j         j        }|                    |          st	          d| d|           t          |          }d	                    d	 |D                       }d	                    d
 |D                       }t          |j                  dk    rHt          |j        d         j        t                    r#|j        d         j        j        t           j        u st	          d|j                   t%          |d          }	t'          |d          }
d| d| d| d| d|	 d|
 d}|S )Nr  r   r  r  r  r  r  r  c              3  2   K   | ]\  }}||n| d| V  d S r  r   r  s      r   r_  z<GenOpTestCase.view_op_test_case_generator.<locals>.<genexpr>=  r  r    c              3      K   | ]	\  }}|V  
d S r  r   r  s      r   r_  z<GenOpTestCase.view_op_test_case_generator.<locals>.<genexpr>B  r  r    r   r  r  r  r  r  r  z(};
  testStaticRuntime(script, args);
}
)r   r   r   r  rB  r  r   r  rm  rA  r  r   r   r   r	   r   r   r   rZ  r`  )r  r   rK  r  r  r  r  r  r  r  r  r  s               r   r  z)GenOpTestCase.view_op_test_case_generator/  s	   [[
??31$$ !G:!G!GHHH)*@JOOC,@,@*@AII#sSS&"#..w77 	 [(<[[RY[[   /v66	99 *3  
 
 IIEE9EEEFF	1$$6>!,18<< %q!&+v}<< !Wv~!W!WXXX!@!K!K4VQ??1   
  
 !*    .  	  r    N)r  r  r   r   )r  r  r   r   r   r   r   r   )r   r   r   r   )r  r  r  r  r   r  r  r   r    r   r  r    se        2 2 2 2 2 2 2 2 3 3 3 3j, , , , , ,r    r  )r   r   r   r   )r   r   r   r   )r   r   r   r   )r  r   r   r   )r  r   r   r   )r  r   r   r   )r   r   r4  r   r  r   r   r   )rK  r
   r4  r   r   r   )rK  r
   r   ra  )rK  r
   r   r   r  r  )rK  r
   r   r   r  )F
__future__r   jsonloggingr=  typingr   torchgen.api.cppapir   torchgen.contextr   torchgen.modelr   r   r   r	   r
   r   r   r   r   r   r   torchgen.static_runtimer   collections.abcr   	getLoggerr   __annotations__r   	frozensetr   r   r   r  r  r  r  r.  r/  r0  test_tensor_shapes_stringloadsr1  r3  rJ  rZ  r`  r   r   r?  r   r   r  r   rg  rm  rw  r}  r  r  r  r  r  r  r  r  r  r   r    r   <module>r     s8   " " " " " " "                         4 4 4 4 4 4                          + * * * * *  )(((((( +*,, , , , ,
 
 
 
 iCE EP9 9 9 9x) ) ) )X 'Y    "++L!M!M 1 1 1 15 5 5 5 #
   #Q  
    < )34M)N)N  N N N N   ( ( ( (V1 1 1 1U U U U M8
J
L'
J
M5
u
K3 /I I I I*1 1 1 1       	I 	I 	I 	I
I 
I 
I 
IC C C C> !y  $< < < <, , , ,f f f f f f f fRB B B B B B B B B Br    