§
    ƒÛgK  ã                   óÈ   — d dl Zd dlmZ d dlmZmZ d dlmZm	Z	m
Z
 d dlmZmZ d dlZd„ Z ed¦  «         G d„ d	e¦  «        ¦   «         Zed
k    r ej        ¦   «          dS dS )é    N)Ú	PYVERSION)Úskip_on_cudasimÚCUDATestCase)Úoverride_configÚcaptured_stderrÚcaptured_stdout)ÚcudaÚfloat64c                 óJ   — t          j        d¦  «        }| |         dz   ||<   d S )Né   ç      ø?)r	   Úgrid)ÚAÚBÚis      úX/granary/edev/quantum/lib/python3.11/site-packages/numba/cuda/tests/cudapy/test_debug.pyÚsimple_cudar      s$   € ÝŒ	�!‰Œ€AØˆQŒ4�#‰:€A€a�D€D€Dó    z&Simulator does not produce debug dumpsc                   ó\   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zd
„ Zd„ Zd„ Zd„ ZdS )ÚTestDebugOutputc           	      ó”  — t          ¦   «         5 }t          ¦   «         5 } t          j        t          d d …         t          d d …         f¦  «        t
          ¦  «        }t          j        ddd¦  «                             t          j        ¦  «        }t          j	        |¦  «        } |d         ||¦  «         |  
                    t          j        |dz   |¦  «        ¦  «         d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         n# 1 swxY w Y   |                      |                     ¦   «         ¦  «         |                     ¦   «         S )Nr   r   é
   )r   r   r   )r   r   r	   Újitr
   r   ÚnpÚlinspaceÚastypeÚ
zeros_likeÚ
assertTrueÚallcloseÚassertFalseÚgetvalue)ÚselfÚerrÚoutÚcfuncr   r   s         r   Úcompile_simple_cudaz#TestDebugOutput.compile_simple_cuda   s„  € ÝÑÔð 	9 #Ý Ñ"Ô"ð 9 cØ:�œ¥'¨!¨!¨!¤*­g°a°a°a¬jÐ!9Ñ:Ô:½;ÑGÔG�õ ”K  1 bÑ)Ô)×0Ò0µ´Ñ<Ô<�Ý”M !Ñ$Ô$�Ø��e”˜Q Ñ"Ô"Ð"Ø—’¥¤¨A°©G°QÑ 7Ô 7Ñ8Ô8Ð8ð9ð 9ð 9ñ 9ô 9ð 9ð 9ð 9ð 9ð 9ð 9øøøð 9ð 9ð 9ð 9ð	9ð 	9ð 	9ñ 	9ô 	9ð 	9ð 	9ð 	9ð 	9ð 	9ð 	9øøøð 	9ð 	9ð 	9ð 	9ð 	×Ò˜Ÿš™œÑ(Ô(Ð(Ø�|Š|‰~Œ~Ðs5   �DžCC-Ã!DÃ-C1	Ã1DÃ4C1	Ã5DÄDÄDc                 ó2   —  | j         t          g|¢R i |¤Ž d S )N)ÚassertRaisesÚAssertionError)r"   ÚargsÚkwargss      r   Úassert_failszTestDebugOutput.assert_fails!   s+   € ØˆÔ�.Ð:¨4Ð:Ð:Ð:°6Ð:Ð:Ð:Ð:Ð:r   c                 ó(  — t                                g d¢d¦  «        }|D ]}||v sJ ‚d||<   Œt          |                     ¦   «         ¦  «        D ]B\  }}t	          | d|z  ¦  «        }|r ||¦  «         Œ&|                      t          ||¦  «         ŒCd S )N)ÚbytecodeÚcfgÚirÚllvmÚassemblyFTz_check_dump_%s)ÚdictÚfromkeysÚsortedÚitemsÚgetattrr(   r)   )r"   r$   Úenabled_dumpsÚ	all_dumpsÚnameÚenabledÚ
check_meths          r   Úcheck_debug_outputz"TestDebugOutput.check_debug_output$   sÏ   € Ý—M’Mð #/ð #/ð #/à"'ñ)ô )ˆ	ð "ð 	#ð 	#ˆDØ˜9Ð$Ð$Ð$Ð$Ø"ˆI�d‰OˆOÝ# I§O¢OÑ$5Ô$5Ñ6Ô6ð 	Cð 	C‰MˆD�'Ý  Ð'7¸$Ñ'>Ñ?Ô?ˆJØð CØ�
˜3‘”��à×!Ò!¥.°*¸cÑBÔBÐBÐBð	Cð 	Cr   c                 óx   — t           dk    r|                      d|¦  «         d S |                      d|¦  «         d S )N)é   é   zBINARY_OP(arg=0Ú
BINARY_ADD)r   ÚassertIn©r"   r$   s     r   Ú_check_dump_bytecodez$TestDebugOutput._check_dump_bytecode2   sB   € Ý˜ÒÐà�MŠMÐ+¨SÑ1Ô1Ð1Ð1Ð1à�MŠM˜,¨Ñ,Ô,Ð,Ð,Ð,r   c                 ó2   — |                       d|¦  «         d S )NzCFG dominators©rB   rC   s     r   Ú_check_dump_cfgzTestDebugOutput._check_dump_cfg9   s   € Ø�ŠÐ&¨Ñ,Ô,Ð,Ð,Ð,r   c                 ó^   — |                       d|¦  «         |                       d|¦  «         d S )Nz--IR DUMP: simple_cuda--zconst(float, 1.5)rF   rC   s     r   Ú_check_dump_irzTestDebugOutput._check_dump_ir<   s2   € Ø�ŠÐ0°#Ñ6Ô6Ð6Ø�ŠÐ)¨3Ñ/Ô/Ð/Ð/Ð/r   c                 ó2   — |                       d|¦  «         d S )Nz--LLVM DUMPrF   rC   s     r   Ú_check_dump_llvmz TestDebugOutput._check_dump_llvm@   s   € Ø�Š�m SÑ)Ô)Ð)Ð)Ð)r   c                 ó^   — |                       d|¦  «         |                       d|¦  «         d S )Nz--ASSEMBLY simple_cudaz!Generated by NVIDIA NVVM CompilerrF   rC   s     r   Ú_check_dump_assemblyz$TestDebugOutput._check_dump_assemblyC   s2   € Ø�ŠÐ.°Ñ4Ô4Ð4Ø�ŠÐ9¸3Ñ?Ô?Ð?Ð?Ð?r   c                 ó¬   — t          dd¦  «        5  |                      ¦   «         }d d d ¦  «         n# 1 swxY w Y   |                      |dg¦  «         d S )NÚDUMP_BYTECODETr.   ©r   r&   r=   rC   s     r   Útest_dump_bytecodez"TestDebugOutput.test_dump_bytecodeG   ó–   € Ý˜_¨dÑ3Ô3ð 	-ð 	-Ø×*Ò*Ñ,Ô,ˆCð	-ð 	-ð 	-ñ 	-ô 	-ð 	-ð 	-ð 	-ð 	-ð 	-ð 	-øøøð 	-ð 	-ð 	-ð 	-à×Ò  j \Ñ2Ô2Ð2Ð2Ð2ó   ‘2²6¹6c                 ó¬   — t          dd¦  «        5  |                      ¦   «         }d d d ¦  «         n# 1 swxY w Y   |                      |dg¦  «         d S )NÚDUMP_IRTr0   rP   rC   s     r   Útest_dump_irzTestDebugOutput.test_dump_irL   s–   € Ý˜Y¨Ñ-Ô-ð 	-ð 	-Ø×*Ò*Ñ,Ô,ˆCð	-ð 	-ð 	-ñ 	-ô 	-ð 	-ð 	-ð 	-ð 	-ð 	-ð 	-øøøð 	-ð 	-ð 	-ð 	-à×Ò  d VÑ,Ô,Ð,Ð,Ð,rS   c                 ó¬   — t          dd¦  «        5  |                      ¦   «         }d d d ¦  «         n# 1 swxY w Y   |                      |dg¦  «         d S )NÚDUMP_CFGTr/   rP   rC   s     r   Útest_dump_cfgzTestDebugOutput.test_dump_cfgQ   s–   € Ý˜Z¨Ñ.Ô.ð 	-ð 	-Ø×*Ò*Ñ,Ô,ˆCð	-ð 	-ð 	-ñ 	-ô 	-ð 	-ð 	-ð 	-ð 	-ð 	-ð 	-øøøð 	-ð 	-ð 	-ð 	-à×Ò  e WÑ-Ô-Ð-Ð-Ð-rS   c                 ó¬   — t          dd¦  «        5  |                      ¦   «         }d d d ¦  «         n# 1 swxY w Y   |                      |dg¦  «         d S )NÚ	DUMP_LLVMTr1   rP   rC   s     r   Útest_dump_llvmzTestDebugOutput.test_dump_llvmV   s–   € Ý˜[¨$Ñ/Ô/ð 	-ð 	-Ø×*Ò*Ñ,Ô,ˆCð	-ð 	-ð 	-ñ 	-ô 	-ð 	-ð 	-ð 	-ð 	-ð 	-ð 	-øøøð 	-ð 	-ð 	-ð 	-à×Ò  f XÑ.Ô.Ð.Ð.Ð.rS   c                 ó¬   — t          dd¦  «        5  |                      ¦   «         }d d d ¦  «         n# 1 swxY w Y   |                      |dg¦  «         d S )NÚDUMP_ASSEMBLYTr2   rP   rC   s     r   Útest_dump_assemblyz"TestDebugOutput.test_dump_assembly[   rR   rS   N)Ú__name__Ú
__module__Ú__qualname__r&   r,   r=   rD   rG   rI   rK   rM   rQ   rV   rY   r\   r_   © r   r   r   r      sÝ   € € € € € ðð ð ð;ð ;ð ;ðCð Cð Cð-ð -ð -ð-ð -ð -ð0ð 0ð 0ð*ð *ð *ð@ð @ð @ð3ð 3ð 3ð
-ð -ð -ð
.ð .ð .ð
/ð /ð /ð
3ð 3ð 3ð 3ð 3r   r   Ú__main__)Únumpyr   Únumba.core.utilsr   Únumba.cuda.testingr   r   Únumba.tests.supportr   r   r   Únumbar	   r
   Úunittestr   r   r`   Úmainrc   r   r   ú<module>rl      s  ðØ Ð Ð Ð à &Ð &Ð &Ð &Ð &Ð &Ø <Ð <Ð <Ð <Ð <Ð <Ð <Ð <ð2ð 2ð 2ð 2ð 2ð 2ð 2ð 2ð 2ð 2à Ð Ð Ð Ð Ð Ð Ð Ø €€€ðð ð ð
 €Ð9Ñ:Ô:ðM3ð M3ð M3ð M3ð M3�lñ M3ô M3ñ ;Ô:ðM3ð` ˆzÒÐØ€H„M�O„O€O€O€Oð Ðr   