ó
    IC˜j!\  ã                   ó®	  • S SK r S SKrS SKJr  S SKJr  S SKJr  S SK	J
r
JrJr  S SKJr  S SKJr  S SKJrJrJr  S S	KJrJr  S S
KJr  S SKJrJr  S SKJr  S rS rS r S r!S r"S r#/ SQr$\RJ                  RM                  SS\RN                  RP                  S9  \RJ                  RS                  SS5      S 5       r*\RJ                  RS                  SS5      S 5       r+\RJ                  RS                  SS5      S 5       r,\RJ                  R[                  S5      S 5       r.S r/S r0S  r1S! r2S" r3\S# 5       r4S$ r5S% r6S& r7S' r8S( r9S) r:S* r;S+ r<S, r=S- r>S. r?S/ r@S0 rAS1 rBS2 rCS3 rD\" 5       rES4 rFS5 rGS6 rHS7 rIS8 rJS9 rK\" S:S;\D\C\" \R˜                  \Rš                  5      S<S<S<S<S<S<S<S=9\" S>S;\5\3\" \R˜                  \Rš                  5      S<S<S<S<S<S?S<S=9\" S@S;\ \\" \R˜                  \Rš                  5      S<S<S<S<S<SA9
\" S@SB\!\\" \R˜                  \Rš                  5      S<S<S<S<S<SA9
\" S@SC\"\\" \R˜                  \Rš                  5      S<S<S<S<S<SA9
\" SDS;\0\/\" \R˜                  \Rš                  5      S<S<S<S<S<S?S<S=9\" SES;\2\1\" \R˜                  \Rš                  5      S<S<S<S<S<S<SF9\" SGS;\F\3\" \R˜                  \Rš                  5      S<S<S<S<S<S?S<S=9\" SHS;\G\3\" \R˜                  \Rš                  5      S<S<S<S<S<S?S<S=9\" SIS;\?\>\" \R˜                  \Rš                  5      S<S<S<S<S<S<SF9\" SJS;\@\>\" \R˜                  \Rš                  5      S<S<S<S<S<S<SF9\" SKS;\7\6\" \R˜                  \Rš                  5      S<S<S<S<S<S<SF9\" SXSLS;\\8SM.\#" \Rœ                  \Rž                  5      DS<S<S<S<S<SN.D6\" SXSOS;\;\9SM.\#" \Rœ                  \Rž                  5      DS<S<S<S<S<S<S<SP.D6\" SXSOSQ\;\:SM.\#" \Rœ                  \Rž                  5      DS<S<S<S<S<S<S<SP.D6\" SRS;\=\<\" \Rž                  5      S<S<S<S<S<S<S<S=9\" SXSSS;\B\ASM.\R                   R£                  5       (       a  \#" \Rœ                  \Rž                  5      OST\" 5       0DS<S<S<S<S<SN.D6\" SUS;\I\H\" \R˜                  \Rš                  5      S<S<S<S<S<S<SF9\" SXSVS;\K\JSM.\#" \Rž                  5      DS<S<S<S<S<S<SW.D6/rRg)Yé    N©Úmap)Úflex_attention)Ú	flex_gemm)Ú_create_empty_block_maskÚcreate_block_maskr   )Úmake_tensor)Úinline_asm_elementwise)Úall_types_andÚcustom_typesÚempty_types)ÚOpInfoÚSampleInput)Úmark_compile_region)ÚInvokeQuantÚinvoke_quant_packed©Úregister_hook_opc              +   ó˜   #   • [         R                  " [        XUS9n[        U" SSSSSS9U" SSSSSS9/U" SSSS9U" SSSS94S9v •  g 7f)N©ÚdeviceÚdtypeÚrequires_gradé   çš™™™™™¹?©ÚlowÚhighé   ©Úargs©Ú	functoolsÚpartialr	   r   ©Úopinfor   r   r   ÚkwargsÚmake_args         Ú¬C:\Users\johnn\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.13_qbz5n2kfra8p0\LocalCache\local-packages\Python313\site-packages\torch/testing/_internal/hop_db.pyÚsample_inputs_mapr*      sg   é € Ü× Ò Ü˜F¸}ñ€Hô Ù	�!�Q˜˜s¨Ñ	+©X°a¸¸AÀ3ÈQÑ-OÐPÙ�q˜c¨Ñ*©H°Q¸CÀaÑ,HÐIñó ùs   ‚AA
c                 óÔ   • U S   R                  5       R                  S5      U-  U S   UR                  5       -   R                  5       R	                  U S   R                  5       5      /$ )Nr   ç      ð?r   )ÚcosÚadd_ÚsinÚcos_ÚviewÚsize©ÚxÚy0Úy1s      r)   Úinner_fr7   #   sQ   € Øˆa‰D�H‰H‹J�O‰O˜CÓ  2Ñ%¨¨!©¨r¯v©v«x©×'=Ñ'=Ó'?×'DÑ'DÀQÀqÁTÇYÁYÃ[Ó'QÐRÐRó    c                 ó    • S n[        X0X5      $ )Nc                 ó   • [        XU5      $ ©N©r7   r3   s      r)   ÚfÚsimple_map.<locals>.f(   s   € Ü�q˜bÓ!Ð!r8   r   )Úxsr5   r6   r=   s       r)   Ú
simple_mapr@   '   s   € ò"ô ˆq�bÓÐr8   c                 ó    • S n[        X0X5      $ )Nc                 ó    • S n[        X0X5      $ )Nc                 ó   • [        XU5      $ r;   r<   r3   s      r)   Úf2Ú"nested_map.<locals>.f1.<locals>.f20   s   € Ü˜1 "Ó%Ð%r8   r   ©Úxxr5   r6   rD   s       r)   Úf1Únested_map.<locals>.f1/   s   € ò	&ô �2˜2Ó"Ð"r8   r   ©r?   r5   r6   rH   s       r)   Ú
nested_maprK   .   s   € ò#ô ˆr�rÓÐr8   c                 ó    • S n[        X0X5      $ )Nc                 ó    • S n[        X0X5      $ )Nc                 ó    • S n[        X0X5      $ )Nc                 ó   • [        XU5      $ r;   r<   r3   s      r)   rD   Ú5triple_nested_map.<locals>.f0.<locals>.f1.<locals>.f2;   s   € Ü˜q bÓ)Ð)r8   r   rF   s       r)   rH   Ú)triple_nested_map.<locals>.f0.<locals>.f1:   s   € ò*ô �r˜rÓ&Ð&r8   r   rJ   s       r)   Úf0Útriple_nested_map.<locals>.f09   s   € ò	'ô �2˜2Ó"Ð"r8   r   )r?   r5   r6   rR   s       r)   Útriple_nested_maprT   8   s   € ò#ô ˆr�rÓÐr8   c                  ó:   • [        5       [        U 6 [        5       S.$ )N)ÚdtypesÚdtypesIfCUDAÚdtypesIfXPU)r   r   )rV   s    r)   Úcuda_only_dtypesrY   E   s   € ä“-Ü$ fÐ-Ü"“}ñð r8   )#Úcustom_function_callÚautograd_function_applyÚrun_and_save_rng_stateÚrun_with_rng_stateÚrun_dtensor_rng_opÚgraphsafe_run_with_rng_stateÚ	out_dtypeÚtrace_wrappedÚtag_activation_checkpointÚexecutorch_call_delegateÚwrapÚwrap_with_set_grad_enabledÚauto_functionalized_v2Úassociative_scanÚ
flat_applyÚwrap_with_autocastÚwrap_activation_checkpointÚrun_const_graphÚauto_functionalizedr   Úmap_implÚwith_effectsÚstrict_modeÚ_export_tracepointÚcall_torchbindÚtriton_kernel_wrapper_mutationÚ triton_kernel_wrapper_functionalÚhints_wrapperÚdynamo_bypassing_wrapperÚforeach_mapÚaoti_call_delegateÚprintÚinductor_compiled_codeÚinvoke_leaf_functionÚcontrol_depsztestlib::mutating_custom_opz8(Tensor(a!) x, Tensor(b!) z) -> (Tensor, Tensor, Tensor))ÚtagsÚcpuc                 óŒ   • U R                  S5        UR                  S5        U R                  5       UR                  5       X-   4$ ©Né   ©r.   Úclone©r4   Úzs     r)   Úfoo_impl_cpur…   ˆ   ó3   € à‡F�Fˆ1„IØ‡F�Fˆ1„IØ�7‰7‹9�a—g‘g“i ¡Ð&Ð&r8   Úcudac                 óŒ   • U R                  S5        UR                  S5        U R                  5       UR                  5       X-   4$ r   r�   rƒ   s     r)   Úfoo_impl_cudar‰   �   r†   r8   Úxpuc                 óŒ   • U R                  S5        UR                  S5        U R                  5       UR                  5       X-   4$ r   r�   rƒ   s     r)   Úfoo_impl_xpurŒ   –   r†   r8   c                 óH   • U R                  5       UR                  5       X-   4$ r;   ©r‚   rƒ   s     r)   Úfoo_impl_abstractr�   �   s   € à�7‰7‹9�a—g‘g“i ¡Ð&Ð&r8   c           
   +   ój   #   • [         R                  " [        XUS9n[        U" SSSSSS95      v •  g 7f©Nr   r   r   r   r"   r%   s         r)   Úsample_inputs_condr’   ¢   ó6   é € Ü× Ò Ü˜F¸}ñ€Hô ‘h˜q ! Q¨C°aÑ8Ó
9Ó9ùó   ‚13c                 ó\   • [         R                  " U R                  5       S:„  S S U /5      $ )Nr   c                 ó$   • U R                  5       4$ r;   ©r-   ©r4   s    r)   Ú<lambda>Úsimple_cond.<locals>.<lambda>ª   s   € ¨a¯e©e«g©Zr8   c                 ó$   • U R                  5       4$ r;   ©r/   r˜   s    r)   r™   rš   ª   s   € ÀAÇEÁEÃGÁ:r8   )ÚtorchÚcondÚsumr˜   s    r)   Úsimple_condr    ©   s&   € Ü�:Š:�a—e‘e“g ‘kÑ#7Ñ9MÐPQÈsÓSÐSr8   c           
   +   ój   #   • [         R                  " [        XUS9n[        U" SSSSSS95      v •  g 7fr‘   r"   r%   s         r)   Úsample_inputs_switchr¢   ­   r“   r”   c                 ór   • SSK Jn  U R                  5       S:„  R                  5       nU" US S S 4U /5      $ )Nr   )Úswitchr   c                 ó$   • U R                  5       4$ r;   r—   r˜   s    r)   r™   Úsimple_switch.<locals>.<lambda>¼   s   € �A—E‘E“G‘:r8   c                 ó$   • U R                  5       4$ r;   rœ   r˜   s    r)   r™   r¦   ¼   s   € ¨!¯%©%«'©r8   c                 ó$   • U R                  5       4$ r;   )Úabsr˜   s    r)   r™   r¦   ¼   s   € ÀÇÁÃ¹zr8   )Útorch._higher_order_ops.switchr¤   rŸ   Úlong)r4   r¤   Úidxs      r)   Úsimple_switchr­   ´   s@   € õ 6à�5‰5‹7�Q‰;×
Ñ
Ó
€CÙØÙ	Ñ3Ñ5IÐJØ	
ˆóð r8   c           
   +   ój   #   • [         R                  " [        XUS9n[        U" SSSSSS95      v •  g 7fr‘   r"   r%   s         r)   Úsample_inputs_invoke_subgraphr¯   Á   r“   r”   c                 ó.   • [         R                  " U 5      $ r;   ©r�   r/   r˜   s    r)   Úfn_for_invoke_subgraphr²   È   s   € ä�9Š9�Q‹<Ðr8   c                 ó   • [        U 5      $ r;   )r²   r˜   s    r)   Úsimple_invoke_subgraphr´   Í   s   € Ü! !Ó$Ð$r8   c              +   ó|   #   • [         R                  " [        XSS9n[        U" SSSSSS9U" SSSSSS95      v •  g 7f)NFr   r   r   r   r"   r%   s         r)   Ú sample_inputs_auto_functionalizer¶   Ñ   sJ   é € Ü× Ò Ü˜F¸uñ€Hô Ù��A�q˜c¨Ñ*©H°Q¸¸1À#ÈAÑ,Nóó ùó   ‚:<c                 óT   • [         R                  R                  R                  X5      $ r;   )r�   ÚopsÚtestlibÚmutating_custom_oprƒ   s     r)   Úsimple_auto_functionalizer¼   Ú   s   € Ü�9‰9×Ñ×/Ñ/°Ó5Ð5r8   c              +   ó¬   ^
#   • [         R                  " [        XUS9m
S nU
4S j[        S5       5       u  pgn[	        Xg5      n	[        XgX…U	5      v •  g 7f)Nr   c                 ó
   • X-   $ r;   © ©ÚscoreÚbÚhÚmÚns        r)   Ú	score_modÚ/sample_inputs_flex_attention.<locals>.score_modã   s
   € Ø‰yÐr8   c           
   3   ó:   >#   • U  H  nT" S S SSSS S9v •  M     g7f)r   é€   é   r   r   Nr¿   ©Ú.0Ú_r(   s     €r)   Ú	<genexpr>Ú/sample_inputs_flex_attention.<locals>.<genexpr>æ   s    øé € ÐIÂ¸1‰x˜˜1˜c 1¨#°AÖ6Âùó   ƒé   )r#   r$   r	   Úranger   r   )r&   r   r   r   r'   rÆ   ÚqÚkÚvÚ
block_maskr(   s             @r)   Úsample_inputs_flex_attentionr×   Þ   sP   øé € Ü× Ò Ü˜F¸}ñ€Hòô JÄÀaÄÓI�G€Aˆ!Ü)¨!Ó/€JÜ
�a˜A¨*Ó
5Ó5ùs   ƒAAc              +   ó´  ^#   • [         R                  " [        XSS9mS nS nU4S j[        S5       5       u  pxn	[	        USSSSUS	9n
S
UR                  S5      S-  -  n[        XxX•U
R                  5       U0 5      u  pÍn[        UX‰UR                  5       UR                  5       [        R                  " U5      S US U
R                  5       U0 SS4S9v •  g 7f)NFr   c                 ó   • U $ r;   r¿   rÀ   s        r)   rÆ   Ú8sample_inputs_flex_attention_backward.<locals>.score_modò   ó   € Øˆr8   c                 ó
   • X#:¬  $ r;   r¿   )rÂ   rÃ   rÄ   rÅ   s       r)   Úmask_modÚ7sample_inputs_flex_attention_backward.<locals>.mask_modõ   s	   € Ø‰vˆr8   c           
   3   ó:   >#   • U  H  nT" S S SSSS S9v •  M     g7f©r   rÉ   é   r   r   Nr¿   rË   s     €r)   rÎ   Ú8sample_inputs_flex_attention_backward.<locals>.<genexpr>ø   ó    øé € ÐJÂ¸A‰x˜˜1˜c 2¨3°QÖ7ÂùrÐ   rÑ   r   rÉ   ©ÚBÚHÚQ_LENÚKV_LENr   r,   éÿÿÿÿç      à?r¿   r    )r#   r$   r	   rÒ   r   r2   Úflex_attention_hopÚas_tupler   Údetachr�   Ú	rand_like)r&   r   r   r   r'   rÆ   rÝ   rÓ   rÔ   rÕ   rÖ   ÚscaleÚoutÚ	logsumexprÍ   r(   s                  @r)   Ú%sample_inputs_flex_attention_backwardrò   ë   sà   øé € ô × Ò Ü˜F¸uñ€Hòòô KÄÀqÄÓJ�G€Aˆ!Ü" 8¨q°A¸SÈÐU[Ñ\€JØ�!—&‘&˜“* Ñ#Ñ#€EÜ*Ø	ˆa˜J×/Ñ/Ó1°5¸"óÑ€C�Aô Ø	à�#—*‘*“, 	× 0Ñ 0Ó 2´E·O²OÀCÓ4HÈ$Ø�t˜Z×0Ñ0Ó2Ø�2�r˜2ð
ñó ùs   ƒCCc              +   ó  ^^#   • [         R                  " [        XSS9m[        R                  " SSU[        R
                  S9mS nU4S jnU4S j[        S	5       5       u  pxn	[        US
S
SSUS9n
SUR                  S5      S-  -  n[        XxX•U
R                  5       U0 5      u  pÍn[        UX‰UR                  5       UR                  5       [        R                  " U5      S US U
R                  5       U0 SS4S9v •  g 7f)NFr   r¿   rÉ   )r   r   c                 ó   • U $ r;   r¿   rÀ   s        r)   rÆ   ÚIsample_inputs_flex_attention_backward_explicit_buffers.<locals>.score_mod  rÛ   r8   c                 ó   >• UT-   U:¬  $ r;   r¿   )rÂ   rÃ   rÄ   rÅ   Úmask_offsets       €r)   rÝ   ÚHsample_inputs_flex_attention_backward_explicit_buffers.<locals>.mask_mod  s   ø€ Ø�;‰ !Ñ#Ð#r8   c           
   3   ó:   >#   • U  H  nT" S S SSSS S9v •  M     g7frà   r¿   rË   s     €r)   rÎ   ÚIsample_inputs_flex_attention_backward_explicit_buffers.<locals>.<genexpr>  rã   rÐ   rÑ   r   rä   r,   ré   rê   r    )r#   r$   r	   r�   ÚfullÚint32rÒ   r   r2   rë   rì   r   rí   rî   )r&   r   r   r   r'   rÆ   rÝ   rÓ   rÔ   rÕ   rÖ   rï   rð   rñ   rÍ   r(   r÷   s                  @@r)   Ú6sample_inputs_flex_attention_backward_explicit_buffersrý     sú   ùé € ô × Ò Ü˜F¸uñ€Hô —*’*˜R ¨V¼5¿;¹;ÑG€Kòõ$ô KÄÀqÄÓJ�G€Aˆ!Ü" 8¨q°A¸SÈÐU[Ñ\€JØ�!—&‘&˜“* Ñ#Ñ#€EÜ*Ø	ˆa˜J×/Ñ/Ó1°5¸"óÑ€C�Aô Ø	à�#—*‘*“, 	× 0Ñ 0Ó 2´E·O²OÀCÓ4HÈ$Ø�t˜Z×0Ñ0Ó2Ø�2�r˜2ð
ñó ùs   „C=Dc                 ón   • [         R                  R                  R                  U UUUUUUUUU	U
UUU5      $ r;   )r�   r¹   Úhigher_orderÚflex_attention_backward)ÚqueryÚkeyÚvaluerð   rñ   Úgrad_outÚgrad_logsumexpÚfw_graphÚjoint_graphrÖ   rï   Úkernel_optionsÚscore_mod_other_buffersÚmask_mod_other_bufferss                 r)   Úsimple_flex_attention_backwardr  &  sK   € ô  �9‰9×!Ñ!×9Ñ9ØØØØØØØØØØØØØØóð r8   c           
   +   óx   #   • [         R                  " [        XSS9n[        U" SSSSS9U" SSSSS95      v •  g 7f)NFr   r   rÑ   r   r   é   r"   r%   s         r)   Úsample_inputs_flex_gemmr  H  sB   é € Ü× Ò Ü˜F¸uñ€Hô ‘h˜q !¨°1Ñ5±xÀÀ1È#ÐTUÑ7VÓ
WÓWùs   ‚8:c                 ó@   • S n[        [        R                  X4U5      $ )Nc                 ó(   • U S-   R                  5       $ ©Nr   )Úrelu)Úaccs    r)   Úepilogue_fnÚ%simple_flex_gemm.<locals>.epilogue_fnP  s   € Ø�a‘�~‰~ÓÐr8   )r   r�   Úmm)ÚarÂ   r  s      r)   Úsimple_flex_gemmr  O  s   € ò ô ”U—X‘X ˜v {Ó3Ð3r8   c              +   ó”   #   • [         R                  " [        XSS9n[        [        R
                  " S5      U" SSSSSS95      v •  g 7f)NFr   rÑ   r   r  r   r   )r#   r$   r	   r   r�   Útensorr%   s         r)   Úsample_inputs_while_loopr  V  sF   é € Ü× Ò Ü˜F¸uñ€Hô Ü�Š�Q‹Ù��A�q˜c¨Ñ*óó ùs   ‚AAc                 óP   • S nS n[         R                  R                  X#X45      $ )Nc                 ó   • U S:„  $ ©Nr   r¿   ©Úiter_tr4   s     r)   Úcond_fnÚ"simple_while_loop.<locals>.cond_fna  ó   € Ø˜‰zÐr8   c                 ó,   • U S-
  UR                  5       4$ r  r—   r  s     r)   Úbody_fnÚ"simple_while_loop.<locals>.body_fnd  ó   € Ø˜‰z˜1Ÿ5™5›7Ð"Ð"r8   )r�   Ú_higher_order_opsÚ
while_loop©r   r4   r!  r%  s       r)   Úsimple_while_loopr+  `  s)   € òò#ô ×"Ñ"×-Ñ-¨gÀÀÓLÐLr8   c                 ób   • S nS n[         R                  R                  X#X4[        5       5      $ )Nc                 ó   • U S:„  $ r  r¿   r  s     r)   r!  Ú/simple_while_loop_stack_output.<locals>.cond_fnk  r#  r8   c                 ó,   • U S-
  UR                  5       4$ r  r—   r  s     r)   r%  Ú/simple_while_loop_stack_output.<locals>.body_fnn  r'  r8   )r�   r(  Úwhile_loop_stack_outputÚtupler*  s       r)   Úsimple_while_loop_stack_outputr3  j  s2   € òò#ô ×"Ñ"×:Ñ:Ø˜6˜+¤u£wóð r8   c              +   ó|   #   • [         R                  " [        XSS9n[        U" SSSSSS9U" SSSSSS95      v •  g 7f)NFr   r   rÑ   r  r   r   r"   r%   s         r)   Úsample_inputs_local_map_hopr5  v  sK   é € ä× Ò Ü˜F¸uñ€Hô Ù��A�q˜c¨Ñ*Ù��A�q˜c¨Ñ*óó ùr·   c                 ó\  • S n[         R                  R                  U5      n[         R                  R	                  5       (       d  [        S5      eSSKJn  U" 5       U" 5       U" 5       4U" 5       U" 5       U" 5       44S.UR                  S'   [         R                  R                  X0U5      $ )Nc                 óD   • U R                  5       UR                  5       -   $ r;   )r-   r/   )Úinp1Úinp2s     r)   Úbody_gmÚ%simple_local_map_hop.<locals>.body_gm‚  s   € Ø�x‰x‹z˜DŸH™H›JÑ&Ð&r8   z*Expected torch.distributed to be availabler   )Ú	Replicate)Úin_placementsÚout_placementsÚlocal_map_kwargs)r�   ÚfxÚsymbolic_traceÚdistributedÚis_availableÚAssertionErrorÚ(torch.distributed.tensor.placement_typesr<  Úmetar(  Úlocal_map_hop)r8  r9  r:  Úgmr<  s        r)   Úsimple_local_map_hoprI  �  s’   € ò'ô 
�‰×	 Ñ	  Ó	)€Bä×Ñ×)Ñ)×+Ñ+ÜÐIÓJÐJÝBñ $›+¡y£{±I³KÐ@Ù%›K©«±i³kÐBÐDñ#€B‡G�GÐÑô ×"Ñ"×0Ñ0°¸4Ó@Ð@r8   c              +   óz   #   • [         R                  " [        XUS9n[        U" SSSSS9U" SSSSSS95      v •  g 7fr‘   r"   r%   s         r)   Úsample_inputs_scanrK  ”  sI   é € Ü× Ò Ü˜F¸}ñ€Hô Ù��A˜3 QÑ'Ù��A�q˜c¨Ñ*óó ùs   ‚9;c                 óH   • S n[         R                  R                  X U5      $ )Nc                 ó2   • X-  U-   nX R                  5       4$ r;   rŽ   )Úcarryr4   Úresults      r)   Ú
combine_fnÚsimple_scan.<locals>.combine_fnŸ  s   € Ø‘˜Q‘ˆØ—{‘{“}Ð$Ð$r8   )r�   r(  Úscan)Úinitr?   rP  s      r)   Úsimple_scanrT  ž  s"   € ò%ô ×"Ñ"×'Ñ'¨
¸"Ó=Ð=r8   c                 ó,   • S n[        XU 5      S   S-  $ )Nc                 ó6   • [         R                  " U 5      U-  4$ r;   r±   )r4   Úys     r)   ÚfnÚsimple_invoke_quant.<locals>.fnª  s   € Ü—	’	˜!“˜qÑ Ð"Ð"r8   r   ç       @)Úquant_tracer©r4   rX  s     r)   Úsimple_invoke_quantr]  ©  s    € ò#ô ˜˜qÓ! !Ñ$ sÑ*Ð*r8   c                 ó*   • S n[        X5      S   S-  $ )Nc                 ó0   • [         R                  " U 5      4$ r;   r±   r˜   s    r)   rX  Ú&simple_invoke_quant_packed.<locals>.fn±  s   € Ü—	’	˜!“ˆÐr8   r   rZ  )r   r\  s     r)   Úsimple_invoke_quant_packedra  °  s   € òô ˜rÓ% aÑ(¨3Ñ.Ð.r8   c           
   +   ój   #   • [         R                  " [        XSS9n[        U" SSSSSS95      v •  g 7f)NTr   r   r   r   r"   r%   s         r)   Úsample_inputs_register_hookrc  ·  s6   é € Ü× Ò Ü˜F¸tñ€Hô ‘h˜q ! Q¨C°aÑ8Ó
9Ó9ùr”   c                 ó   • S n[        X5      $ )Nc                 ó   • U S-  $ )Nr   r¿   )Úgrads    r)   ÚhookÚ"simple_register_hook.<locals>.hook¿  s   € Ø�a‰xˆr8   r   )r4   rg  s     r)   Úsimple_register_hookri  ¾  s   € òô ˜AÓ$Ð$r8   c           
   +   ój   #   • [         R                  " [        XUS9n[        U" SSSSSS95      v •  g 7fr‘   r"   r%   s         r)   Úsample_inputs_inline_asmrk  Å  r“   r”   c                 ó¨   • [         R                  R                  (       a  [        U SS[         R                  S9$ [        U SS[         R                  S9$ )Nzv_mov_b32_e32 $0, $1z=v, v)Úasm_strÚconstraintsr   zmov.f32 $0, $1;z=f,f)r�   ÚversionÚhipr
   Úfloat32r˜   s    r)   Úsimple_inline_asmrr  Ì  sI   € Ü‡}�}××Ü%ØØ*ØÜ—-‘-ñ	
ð 	
ô "Ø	Ð$°&ÄÇÁñð r8   rR  ÚsimpleF)ÚnameÚvariant_test_nameÚopÚsample_inputs_funcrV   Úsupports_outÚcheck_batched_gradÚcheck_batched_gradgradÚcheck_batched_forward_gradÚ"check_inplace_batched_forward_gradÚsupports_autogradÚsupports_gradgradÚinvoke_subgraphTr   )
rt  ru  rv  rw  rV   rx  ry  rz  r{  r|  ÚnestedÚtriple_nestedrž   r¤   )rt  ru  rv  rw  rV   rx  ry  rz  r{  r|  r}  Úinvoke_quantr   r)  r1  Úauto_functionalizer   )rt  ru  rv  rw  )rx  ry  rz  r{  r|  r   )rx  ry  rz  r{  r|  r}  r~  Úexplicit_buffersr   rG  rV   Úregister_hookr
   )rx  ry  rz  r{  r|  r}  r¿   )Sr#   r�   Ú#functorch.experimental.control_flowr   Ú&torch._higher_order_ops.flex_attentionr   rë   Ú!torch._higher_order_ops.flex_gemmr   Ú!torch.nn.attention.flex_attentionr   r   Útorch.testingr	   Ú.torch._higher_order_ops.inline_asm_elementwiser
   Ú$torch.testing._internal.common_dtyper   r   r   Ú#torch.testing._internal.opinfo.corer   r   Ú'torch._higher_order_ops.invoke_subgraphr   Útorch._higher_order_opsr   r   Ú%torch._higher_order_ops.register_hookr   r*   r7   r@   rK   rT   rY   Ú0FIXME_hop_that_doesnt_have_opinfo_test_allowlistÚlibraryÚdefineÚTagÚpt2_compliant_tagÚimplr…   r‰   rŒ   Úregister_faker�   r’   r    r¢   r­   r¯   r²   r´   r¶   r¼   r×   rò   rý   r  r  r  r  r+  r3  r5  rI  rK  rT  r[  r]  ra  rc  ri  rk  rr  ÚboolÚhalfÚfloat16rq  rB  rC  Úhop_dbr¿   r8   r)   Ú<module>rœ     s§  ðó ã Ý 3õõ 8÷ñ õ
 &Ý Qß YÑ Yß CÝ Gß DÝ BòòSòòò
òò,$4Ð 0ðL ‡�× Ñ Ø!Ø>Ø	�‰×	$Ñ	$ð ñ ð ‡�×ÑÐ1°5Ó9ñ'ó :ð'ð ‡�×ÑÐ1°6Ó:ñ'ó ;ð'ð ‡�×ÑÐ1°5Ó9ñ'ó :ð'ð ‡�×ÑÐ:Ó;ñ'ó <ð'ò:òTò:ò
ò:ð ñó ðò%òò6ò
6òò:ò<òDXò4òòMò	òòAò&ò>ñ ‹}€ò+ò/ò:ò%ò:òñ ØØ"ØØ-Ù˜UŸZ™Z¨¯©Ó4ØØ Ø$Ø#(Ø+0Øàññ ØØ"Ø!Ø8Ù˜UŸZ™Z¨¯©Ó4ØØ Ø$Ø#(Ø+0Øàññ ØØ"ØØ,Ù˜UŸZ™Z¨¯©Ó4ØØ Ø$Ø#(Ø+0ññ ØØ"ØØ,Ù˜UŸZ™Z¨¯©Ó4ØØ Ø$Ø#(Ø+0ññ ØØ)ØØ,Ù˜UŸZ™Z¨¯©Ó4ØØ Ø$Ø#(Ø+0ññ ØØ"ØØ-Ù˜UŸZ™Z¨¯©Ó4ØØ Ø$Ø#(Ø+0Øàññ ØØ"ØØ/Ù˜UŸZ™Z¨¯©Ó4ØØ Ø$Ø#(Ø+0ð  ññ  ØØ"ØØ8Ù˜UŸZ™Z¨¯©Ó4ØØ Ø$Ø#(Ø+0Øàññ Ø"Ø"Ø%Ø8Ù˜UŸZ™Z¨¯©Ó4ØØ Ø$Ø#(Ø+0Øàññ ØØ"ØØ3Ù˜UŸZ™Z¨¯©Ó4ØØ Ø$Ø#(Ø+0Øññ Ø&Ø"Ø)Ø3Ù˜UŸZ™Z¨¯©Ó4ØØ Ø$Ø#(Ø+0Øññ Ø!Ø"Ø$Ø;Ù˜UŸZ™Z¨¯©Ó4ØØ Ø$Ø#(Ø+0Øññ ð ØØ"ØØ7ñ	ñ
 ˜5Ÿ=™=¨%¯-©-Ó
8ðð Ø Ø$Ø#(Ø+0óñ ð Ø&Ø"Ø)Ø@ñ	ñ
 ˜5Ÿ=™=¨%¯-©-Ó
8ðð Ø Ø$Ø#(Ø+0ØØóñ ð Ø&Ø,Ø)ØQñ	ñ
 ˜5Ÿ=™=¨%¯-©-Ó
8ðð Ø Ø$Ø#(Ø+0ØØóñ ØØ"ØØ2Ù˜EŸM™MÓ*ØØ Ø$Ø#(Ø+0ØØññ ð ØØ"ØØ6ñ	ð × Ñ ×-Ñ-×/Ñ/ñ ˜UŸ]™]¨E¯M©MÔ:à™K›MÐ*ðð Ø Ø$Ø#(Ø+0óñ  ØØ"ØØ6Ù˜UŸZ™Z¨¯©Ó4ØØ Ø$Ø#(Ø+0Øññ ð Ø%Ø"ØØ3ñ	ñ
 ˜5Ÿ=™=Ó
)ðð Ø Ø$Ø#(Ø+0ØóðuG
�r8   