§
    1@ÄjJ  ã                   óÈ   — 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      úSC:\Projects\Historical\venv\Lib\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                 ó®   — t           dv r|                      d|¦  «         d S t           dv r|                      d|¦  «         d S t          t           ¦  «        ‚)N))é   é   )r?   é   )r?   é   zBINARY_OP(arg=0))r?   r   Ú
BINARY_ADD)r   ÚassertInÚNotImplementedError©r"   r$   s     r   Ú_check_dump_bytecodez$TestDebugOutput._check_dump_bytecode2   s\   € ÝÐ3Ð3Ð3à�MŠMÐ+¨SÑ1Ô1Ð1Ð1Ð1Ý˜*Ð$Ð$Ø�MŠM˜,¨Ñ,Ô,Ð,Ð,Ð,å%¥iÑ0Ô0Ð0r   c                 ó2   — |                       d|¦  «         d S )NzCFG dominators©rD   rF   s     r   Ú_check_dump_cfgzTestDebugOutput._check_dump_cfg;   s   € Ø�ŠÐ&¨Ñ,Ô,Ð,Ð,Ð,r   c                 ó^   — |                       d|¦  «         |                       d|¦  «         d S )Nz--IR DUMP: simple_cuda--zconst(float, 1.5)rI   rF   s     r   Ú_check_dump_irzTestDebugOutput._check_dump_ir>   s2   € Ø�ŠÐ0°#Ñ6Ô6Ð6Ø�ŠÐ)¨3Ñ/Ô/Ð/Ð/Ð/r   c                 ó^   — |                       d|¦  «         |                       d|¦  «         d S )Nz--LLVM DUMPz!"kernel", i32 1rI   rF   s     r   Ú_check_dump_llvmz TestDebugOutput._check_dump_llvmB   s1   € Ø�Š�m SÑ)Ô)Ð)Ø�ŠÐ(¨#Ñ.Ô.Ð.Ð.Ð.r   c                 ó^   — |                       d|¦  «         |                       d|¦  «         d S )Nz--ASSEMBLY simple_cudaz!Generated by NVIDIA NVVM CompilerrI   rF   s     r   Ú_check_dump_assemblyz$TestDebugOutput._check_dump_assemblyF   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=   rF   s     r   Útest_dump_bytecodez"TestDebugOutput.test_dump_bytecodeJ   ó–   € Ý˜_¨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   rS   rF   s     r   Útest_dump_irzTestDebugOutput.test_dump_irO   s–   € Ý˜Y¨Ñ-Ô-ð 	-ð 	-Ø×*Ò*Ñ,Ô,ˆCð	-ð 	-ð 	-ñ 	-ô 	-ð 	-ð 	-ð 	-ð 	-ð 	-ð 	-øøøð 	-ð 	-ð 	-ð 	-à×Ò  d VÑ,Ô,Ð,Ð,Ð,rV   c                 ó¬   — t          dd¦  «        5  |                      ¦   «         }d d d ¦  «         n# 1 swxY w Y   |                      |dg¦  «         d S )NÚDUMP_CFGTr/   rS   rF   s     r   Útest_dump_cfgzTestDebugOutput.test_dump_cfgT   s–   € Ý˜Z¨Ñ.Ô.ð 	-ð 	-Ø×*Ò*Ñ,Ô,ˆCð	-ð 	-ð 	-ñ 	-ô 	-ð 	-ð 	-ð 	-ð 	-ð 	-ð 	-øøøð 	-ð 	-ð 	-ð 	-à×Ò  e WÑ-Ô-Ð-Ð-Ð-rV   c                 ó¬   — t          dd¦  «        5  |                      ¦   «         }d d d ¦  «         n# 1 swxY w Y   |                      |dg¦  «         d S )NÚ	DUMP_LLVMTr1   rS   rF   s     r   Útest_dump_llvmzTestDebugOutput.test_dump_llvmY   s–   € Ý˜[¨$Ñ/Ô/ð 	-ð 	-Ø×*Ò*Ñ,Ô,ˆCð	-ð 	-ð 	-ñ 	-ô 	-ð 	-ð 	-ð 	-ð 	-ð 	-ð 	-øøøð 	-ð 	-ð 	-ð 	-à×Ò  f XÑ.Ô.Ð.Ð.Ð.rV   c                 ó¬   — t          dd¦  «        5  |                      ¦   «         }d d d ¦  «         n# 1 swxY w Y   |                      |dg¦  «         d S )NÚDUMP_ASSEMBLYTr2   rS   rF   s     r   Útest_dump_assemblyz"TestDebugOutput.test_dump_assembly^   rU   rV   N)Ú__name__Ú
__module__Ú__qualname__r&   r,   r=   rG   rJ   rL   rN   rP   rT   rY   r\   r_   rb   © r   r   r   r      sÝ   € € € € € ðð ð ð;ð ;ð ;ðCð Cð Cð1ð 1ð 1ð-ð -ð -ð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   rc   Úmainrf   r   r   ú<module>ro      s  ðØ Ð Ð Ð à &Ð &Ð &Ð &Ð &Ð &Ø <Ð <Ð <Ð <Ð <Ð <Ð <Ð <ð2ð 2ð 2ð 2ð 2ð 2ð 2ð 2ð 2ð 2à Ð Ð Ð Ð Ð Ð Ð Ø €€€ðð ð ð
 €Ð9Ñ:Ô:ðP3ð P3ð P3ð P3ð P3�lñ P3ô P3ñ ;Ô:ðP3ðf ˆzÒÐØ€H„M�O„O€O€O€Oð Ðr   