
    ܙdK                         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      Blib/python3.11/site-packages/numba/cuda/tests/cudapy/test_debug.pysimple_cudar      s$    	!AQ4#:AaDDD    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# "" 9c:'!!!*gaaaj!9::;GG K1b))00<<M!$$eQ"""AGQ 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    MM #/ #/ #/"') )	 " 	# 	#D9$$$$"IdOO#IOO$5$566 	C 	CMD' '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    MM+S11111MM,,,,,,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    mS)))))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93?????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	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	-dV,,,,,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	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	-eW-----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	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	-fX.....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3l M3 M3 ;:M3` zHMOOOOO r   