
    xKg                         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$                          yy)    N)	PYVERSION)skip_on_cudasimCUDATestCase)override_configcaptured_stderrcaptured_stdout)cudafloat64c                 D    t        j                  d      }| |   dz   ||<   y )N         ?)r	   grid)ABis      f/home/alanp/www/video.onchill/myenv/lib/python3.12/site-packages/numba/cuda/tests/cudapy/test_debug.pysimple_cudar      s     		!AQ4#:AaD    z&Simulator does not produce debug dumpsc                   Z    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y)TestDebugOutputc           	      4   t               5 }t               5 } t        j                  t        d d  t        d d  f      t
              }t        j                  ddd      j                  t        j                        }t        j                  |      } |d   ||       | j                  t        j                  |dz   |             d d d        d d d        | j                  j                                j                         S # 1 sw Y   @xY w# 1 sw Y   DxY w)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    # "c:'!*gaj!9:;G KK1b)00<MM!$eQ"AGQ 78 #  	(||~ #" s#   DB-DDD	DDc                 8     | j                   t        g|i | y )N)assertRaisesAssertionError)r"   argskwargss      r   assert_failszTestDebugOutput.assert_fails!   s    .:4:6:r   c                     t         j                  g dd      }|D ]  }||v sJ d||<    t        |j                               D ]6  \  }}t	        | d|z        }|r	 ||        | j                  t        ||       8 y )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$$$"IdO " $IOO$56MD' '7$'>?J3!!.*cB 7r   c                     t         dv r| j                  d|       y t         dv r| j                  d|       y t        t               )N))      )r?      zBINARY_OP(arg=0))r?   	   )r?   r   
BINARY_ADD)r   assertInNotImplementedErrorr"   r$   s     r   _check_dump_bytecodez$TestDebugOutput._check_dump_bytecode2   s<    **MM+S1++MM,,%i00r   c                 (    | j                  d|       y )NzCFG dominatorsrD   rF   s     r   _check_dump_cfgzTestDebugOutput._check_dump_cfg;   s    &,r   c                 L    | j                  d|       | j                  d|       y )Nz--IR DUMP: simple_cuda--zconst(float, 1.5)rI   rF   s     r   _check_dump_irzTestDebugOutput._check_dump_ir>   s     0#6)3/r   c                 L    | j                  d|       | j                  d|       y )Nz--LLVM DUMPz!"kernel", i32 1rI   rF   s     r   _check_dump_llvmz TestDebugOutput._check_dump_llvmB   s    mS)(#.r   c                 L    | j                  d|       | j                  d|       y )Nz--ASSEMBLY simple_cudaz!Generated by NVIDIA NVVM CompilerrI   rF   s     r   _check_dump_assemblyz$TestDebugOutput._check_dump_assemblyF   s     .493?r   c                     t        dd      5  | j                         }d d d        | j                  dg       y # 1 sw Y   xY w)NDUMP_BYTECODETr.   r   r&   r=   rF   s     r   test_dump_bytecodez"TestDebugOutput.test_dump_bytecodeJ   :    _d3**,C 4j\2 43	   :Ac                     t        dd      5  | j                         }d d d        | j                  dg       y # 1 sw Y   xY w)NDUMP_IRTr0   rS   rF   s     r   test_dump_irzTestDebugOutput.test_dump_irO   s:    Y-**,C .dV, .-rV   c                     t        dd      5  | j                         }d d d        | j                  dg       y # 1 sw Y   xY w)NDUMP_CFGTr/   rS   rF   s     r   test_dump_cfgzTestDebugOutput.test_dump_cfgT   s:    Z.**,C /eW- /.rV   c                     t        dd      5  | j                         }d d d        | j                  dg       y # 1 sw Y   xY w)N	DUMP_LLVMTr1   rS   rF   s     r   test_dump_llvmzTestDebugOutput.test_dump_llvmY   s:    [$/**,C 0fX. 0/rV   c                     t        dd      5  | j                         }d d d        | j                  dg       y # 1 sw Y   xY w)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      sE    ;C1-0/@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      sb     & <2 2  
 9:P3l P3 ;P3f zHMMO r   