
    J/Ph                         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      b/var/www/html/test/jupyter/venv/lib/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                     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MM+S11111*$$MM,,,,,,%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    mS)))(#.....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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=   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	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	-dV,,,,,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	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	-eW-----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	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	-fX.....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3l P3 P3 ;:P3f zHMOOOOO r   