§
    ƒÛgL  ã                   óÆ   — d dl Zd dlmZ d dlmZmZmZmZm	Z	 d dl
mZmZ d dl
mZmZmZ  ed¦  «         G d„ de¦  «        ¦   «         Zed	k    r ej        ¦   «          dS dS )
é    N)ÚStringIO)ÚcudaÚfloat32Úfloat64Úint32Úintp)ÚunittestÚCUDATestCase)Úskip_on_cudasimÚskip_with_nvdisasmÚskip_without_nvdisasmz0Simulator does not generate code to be inspectedc                   óÖ   — e Zd Zed„ ¦   «         Zd„ Zd„ Zd„ Z ed¦  «        d„ ¦   «         Z	 ed¦  «        d„ ¦   «         Z
 ed¦  «        d	„ ¦   «         Z ed
¦  «        d„ ¦   «         ZdS )ÚTestInspectc                 ó<   — t          j        ¦   «         j        j        S ©N)r   Úcurrent_contextÚdeviceÚcompute_capability)Úselfs    úZ/granary/edev/quantum/lib/python3.11/site-packages/numba/cuda/tests/cudapy/test_inspect.pyÚcczTestInspect.cc   s   € åÔ#Ñ%Ô%Ô,Ô?Ð?ó    c                 ó|  — t           t          f}t          j        |¦  «        d„ ¦   «         }t	          ¦   «         }|                     |¬¦  «         |                     ¦   «         }|                      d|¦  «         |                      d|¦  «         |                     ¦   «          | 	                    |¦  «        }|                      d|¦  «         |                      d|¦  «         |                      d|¦  «         | 
                    |¦  «        }|                      d|¦  «         |                      d|¦  «         d S )Nc                 ó   — d S r   © ©ÚxÚys     r   Úfooz'TestInspect.test_monotyped.<locals>.foo   ó   € àˆDr   ©Úfiler   z(float32, int32)úcuda.kernel.wrapperúdefine linkonce_odr i32z!Generated by NVIDIA NVVM Compiler)r   r   r   Újitr   Úinspect_typesÚgetvalueÚassertInÚcloseÚinspect_llvmÚinspect_asm)r   Úsigr   r"   ÚtypeannoÚllvmÚasms          r   Útest_monotypedzTestInspect.test_monotyped   s)  € Ý�Ðˆå	Œ�#‰Œð	ð 	ñ 
Œð	õ ‰zŒzˆØ×Ò˜tÐÑ$Ô$Ð$Ø—=’=‘?”?ˆà�Š�e˜XÑ&Ô&Ð&à�ŠÐ(¨(Ñ3Ô3Ð3Ø�
Š
‰Œˆà×Ò Ñ$Ô$ˆØ�Š�e˜TÑ"Ô"Ð"ð 	�ŠÐ+¨TÑ2Ô2Ð2ð 	�ŠÐ/°Ñ6Ô6Ð6à�oŠo˜cÑ"Ô"ˆð 	�Š�e˜SÑ!Ô!Ð!à�ŠÐ9¸3Ñ?Ô?Ð?Ð?Ð?r   c                 ó  — t           j        d„ ¦   «         } |d         dd¦  «          |d         dd¦  «         t          ¦   «         }|                     |¬¦  «         |                     ¦   «         }|                     ¦   «          |                      d                     t          ¦  «        |¦  «         |                      d|¦  «         | 	                    ¦   «         }|  
                    d	t          |¦  «        ¦  «         |                      t          t          f|¦  «         |                      t          t          f|¦  «         |                      d
|t          t          f         ¦  «         |                      d
|t          t          f         ¦  «         |                      d|t          t          f         ¦  «         |                      d|t          t          f         ¦  «         |                      d|t          t          f         ¦  «         |                      d|t          t          f         ¦  «         |                     ¦   «         }|  
                    d	t          |¦  «        ¦  «         |                      t          t          f|¦  «         |                      t          t          f|¦  «         |                      d
|t          t          f         ¦  «         |                      d
|t          t          f         ¦  «         d S )Nc                 ó   — d S r   r   r   s     r   r   z'TestInspect.test_polytyped.<locals>.foo1   r    r   )é   r3   r3   g333333ó?g333333@r!   z
({0}, {0})z(float64, float64)é   r   r#   r$   )r   r%   r   r&   r'   r)   r(   Úformatr   r*   ÚassertEqualÚlenr   r+   )r   r   r"   r-   ÚllvmirsÚasmdicts         r   Útest_polytypedzTestInspect.test_polytyped0   su  € Ý	Œð	ð 	ñ 
Œð	ð 	ˆˆDŒ	�!�Q‰ŒˆØˆˆDŒ	�#�sÑÔÐå‰zŒzˆØ×Ò˜tÐÑ$Ô$Ð$Ø—=’=‘?”?ˆØ�
Š
‰Œˆà�Š�l×)Ò)­$Ñ/Ô/°Ñ:Ô:Ð:Ø�ŠÐ*¨HÑ5Ô5Ð5ð ×"Ò"Ñ$Ô$ˆØ×Ò˜�C ™LœLÑ+Ô+Ð+Ø�Š•t�T�l GÑ,Ô,Ð,Ø�Š•w¥Ð(¨'Ñ2Ô2Ð2ð 	�Š�e˜W¥T­4 ZÔ0Ñ1Ô1Ð1Ø�Š�e˜W¥W­gÐ%5Ô6Ñ7Ô7Ð7ð 	�ŠÐ+¨WµT½4°ZÔ-@ÑAÔAÐAØ�ŠÐ+¨WµW½gÐ5EÔ-FÑGÔGÐGð 	�ŠÐ/°½½t¸Ô1DÑEÔEÐEØ�ŠÐ/°½Å'Ð9IÔ1JÑKÔKÐKà—/’/Ñ#Ô#ˆð 	×Ò˜�C ™LœLÑ+Ô+Ð+Ø�Š•t�T�l GÑ,Ô,Ð,Ø�Š•w¥Ð(¨'Ñ2Ô2Ð2ð 	�Š�e˜W¥T­4 ZÔ0Ñ1Ô1Ð1Ø�Š�e˜W¥W­gÐ%5Ô6Ñ7Ô7Ð7Ð7Ð7r   c                 ó&  — d}|                      ¦   «         D ]}d|v r||v rd}Œ|                      |¦  «         |                      |d¦  «         |                      d|¦  «         |                      d|¦  «         |                      d|¦  «         d S )NFz.textTz*//## File ".*/test_inspect.py", line [0-9]ÚS2RÚBRAÚEXIT)ÚsplitÚ
assertTrueÚassertRegexr(   )r   ÚkernelÚnameÚsassÚseen_functionÚlines         r   Ú_test_inspect_sasszTestInspect._test_inspect_sass]   s¢   € àˆØ—J’J‘L”Lð 	%ð 	%ˆDØ˜$ˆˆ 4¨4 < <Ø $�øØ�Š˜Ñ&Ô&Ð&à×Ò˜ÐLÑMÔMÐMð 	�Š�e˜TÑ"Ô"Ð"Ø�Š�e˜TÑ"Ô"Ð"Ø�Š�f˜dÑ#Ô#Ð#Ð#Ð#r   z"nvdisasm needed for inspect_sass()c                 óØ   — t           d d d…         t          d d d…         f}t          j        |d¬¦  «        d„ ¦   «         }|                      |d|                     |¦  «        ¦  «         d S )Nr3   T©Úlineinfoc                 ó„   — t          j        d¦  «        }|t          | ¦  «        k     r| |xx         ||         z  cc<   d S d S ©Nr3   ©r   Úgridr7   ©r   r   Úis      r   Úaddz0TestInspect.test_inspect_sass_eager.<locals>.addq   óB   € å”	˜!‘”ˆAØ•3�q‘6”6ŠzˆzØ�!��”˜˜!œ‘��‘��ð ˆzr   rQ   )r   r   r   r%   rG   Úinspect_sass©r   r,   rQ   s      r   Útest_inspect_sass_eagerz#TestInspect.test_inspect_sass_eagerm   sw   € å�s�s˜�sŒ|�U 3 3 Q 3œZÐ(ˆå	Œ�# Ð	%Ñ	%Ô	%ð	ð 	ñ 
&Ô	%ð	ð
 	×Ò  U¨C×,<Ò,<¸SÑ,AÔ,AÑBÔBÐBÐBÐBr   c                 ó¾  — t          j        d¬¦  «        d„ ¦   «         }t          j        d¦  «                             t          j        ¦  «        }t          j        d¦  «                             t          j        ¦  «        } |d         ||¦  «         t
          d d d…         t          d d d…         f}|                      |d|                     |¦  «        ¦  «         d S )NTrI   c                 ó„   — t          j        d¦  «        }|t          | ¦  «        k     r| |xx         ||         z  cc<   d S d S rL   rM   rO   s      r   rQ   z/TestInspect.test_inspect_sass_lazy.<locals>.add{   rR   r   é
   )r3   rX   r3   rQ   )	r   r%   ÚnpÚarangeÚastyper   r   rG   rS   )r   rQ   r   r   Ú	signatures        r   Útest_inspect_sass_lazyz"TestInspect.test_inspect_sass_lazyy   sÅ   € å	Œ˜4Ð	 Ñ	 Ô	 ð	ð 	ñ 
!Ô	 ð	õ
 ŒI�b‰MŒM× Ò ¥¤Ñ*Ô*ˆÝŒI�b‰MŒM× Ò ¥¤Ñ,Ô,ˆØˆˆEŒ
�1�aÑÔÐå˜3˜3˜Q˜3”Z¥¨¨¨1¨¤Ð.ˆ	Ø×Ò  U¨C×,<Ò,<¸YÑ,GÔ,GÑHÔHÐHÐHÐHr   z@Missing nvdisasm exception only generated when it is not presentc                 ó:  — t          j        t          d d d…         f¦  «        d„ ¦   «         }|                      t          ¦  «        5 }|                     ¦   «          d d d ¦  «         n# 1 swxY w Y   |                      dt          |j        ¦  «        ¦  «         d S )Nr3   c                 ó   — d| d<   d S )Nr   r   )r   s    r   Úfz9TestInspect.test_inspect_sass_nvdisasm_missing.<locals>.f‹   s   € àˆAˆa‰DˆDˆDr   znvdisasm has not been found)	r   r%   r   ÚassertRaisesÚRuntimeErrorrS   r(   ÚstrÚ	exception)r   r`   Úraisess      r   Ú"test_inspect_sass_nvdisasm_missingz.TestInspect.test_inspect_sass_nvdisasm_missingˆ   sÔ   € õ 
Œ•7˜3˜3˜Q˜3”<�/Ñ	"Ô	"ð	ð 	ñ 
#Ô	"ð	ð ×Ò�|Ñ,Ô,ð 	°Ø�NŠNÑÔÐð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	�ŠÐ3µS¸Ô9IÑ5JÔ5JÑKÔKÐKÐKÐKs   ÁA(Á(A,Á/A,z&nvdisasm needed for inspect_sass_cfg()c                 óÔ   — t           d d d…         t          d d d…         f}t          j        |¦  «        d„ ¦   «         }|                      |                     |¬¦  «        d¦  «         d S )Nr3   c                 ó„   — t          j        d¦  «        }|t          | ¦  «        k     r| |xx         ||         z  cc<   d S d S rL   rM   rO   s      r   rQ   z.TestInspect.test_inspect_sass_cfg.<locals>.add˜   rR   r   )r\   zdigraph\s*\w\s*{(.|\n)*\n})r   r   r   r%   rA   Úinspect_sass_cfgrT   s      r   Útest_inspect_sass_cfgz!TestInspect.test_inspect_sass_cfg”   s|   € å�s�s˜�sŒ|�U 3 3 Q 3œZÐ(ˆå	Œ�#‰Œð	ð 	ñ 
Œð	ð
 	×ÒØ× Ò ¨3Ð Ñ/Ô/Ø)ñ	
ô 	
ð 	
ð 	
ð 	
r   N)Ú__name__Ú
__module__Ú__qualname__Úpropertyr   r0   r:   rG   r   rU   r]   r   rf   rj   r   r   r   r   r   
   s  € € € € € àð@ð @ñ „Xð@ð@ð @ð @ð@+8ð +8ð +8ðZ$ð $ð $ð  ÐÐ?Ñ@Ô@ð	Cð 	Cñ AÔ@ð	Cð ÐÐ?Ñ@Ô@ðIð Iñ AÔ@ðIð Ðð &ñ 'ô 'ðLð Lñ'ô 'ðLð ÐÐCÑDÔDð
ð 
ñ EÔDð
ð 
ð 
r   r   Ú__main__)ÚnumpyrY   Úior   Únumbar   r   r   r   r   Únumba.cuda.testingr	   r
   r   r   r   r   rk   Úmainr   r   r   ú<module>ru      s	  ðØ Ð Ð Ð à Ð Ð Ð Ð Ð Ø 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ø 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5ð7ð 7ð 7ð 7ð 7ð 7ð 7ð 7ð 7ð 7ð €ÐCÑDÔDðV
ð V
ð V
ð V
ð V
�,ñ V
ô V
ñ EÔDðV
ðr ˆzÒÐØ€H„M�O„O€O€O€Oð Ðr   