a
    
dK                     @   s   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d ZedG d	d
 d
eZedkre  dS )    N)	PYVERSION)skip_on_cudasimCUDATestCase)override_configcaptured_stderrcaptured_stdout)cudafloat64c                 C   s   t d}| | d ||< d S )N         ?)r   Zgrid)ABi r   k/var/www/html/stable-diffusion-webui/venv/lib/python3.9/site-packages/numba/cuda/tests/cudapy/test_debug.pysimple_cuda   s    
r   z&Simulator does not produce debug dumpsc                   @   st   e Zd Zdd Zdd Zdd Zdd Zd	d
 Zdd Zdd Z	dd Z
dd Zdd Zdd Zdd Zdd ZdS )TestDebugOutputc              	   C   s   t  }t v}ttd d  td d  ft}tdddtj}t	|}|d || | 
t|d | W d    n1 s0    Y  W d    n1 s0    Y  | |  | S )Nr   r
   
   )r
   r   r   )r   r   r   Zjitr	   r   npZlinspaceZastypeZ
zeros_like
assertTrueZallcloseZassertFalsegetvalue)selferroutZcfuncr   r   r   r   r   compile_simple_cuda   s    "
Rz#TestDebugOutput.compile_simple_cudac                 O   s   | j tg|R i | d S )N)assertRaisesAssertionError)r   argskwargsr   r   r   assert_fails!   s    zTestDebugOutput.assert_failsc                 C   sr   t g dd}|D ]}||v s$J d||< qt| D ]2\}}t| d| }|r^|| q:| t|| q:d S )N)bytecodecfgirllvmassemblyFTz_check_dump_%s)dictfromkeyssorteditemsgetattrr   r   )r   r   Zenabled_dumpsZ	all_dumpsnameZenabledZ
check_methr   r   r   check_debug_output$   s    


z"TestDebugOutput.check_debug_outputc                 C   s&   t dkr| d| n| d| d S )N)      zBINARY_OP(arg=0
BINARY_ADD)r   assertInr   r   r   r   r   _check_dump_bytecode2   s    z$TestDebugOutput._check_dump_bytecodec                 C   s   |  d| d S )NzCFG dominatorsr/   r0   r   r   r   _check_dump_cfg9   s    zTestDebugOutput._check_dump_cfgc                 C   s   |  d| |  d| d S )Nz--IR DUMP: simple_cuda--zconst(float, 1.5)r2   r0   r   r   r   _check_dump_ir<   s    zTestDebugOutput._check_dump_irc                 C   s   |  d| d S )Nz--LLVM DUMPr2   r0   r   r   r   _check_dump_llvm@   s    z TestDebugOutput._check_dump_llvmc                 C   s   |  d| |  d| d S )Nz--ASSEMBLY simple_cudaz!Generated by NVIDIA NVVM Compilerr2   r0   r   r   r   _check_dump_assemblyC   s    z$TestDebugOutput._check_dump_assemblyc                 C   sD   t dd |  }W d    n1 s(0    Y  | |dg d S )NZDUMP_BYTECODETr    r   r   r+   r0   r   r   r   test_dump_bytecodeG   s    &z"TestDebugOutput.test_dump_bytecodec                 C   sD   t dd |  }W d    n1 s(0    Y  | |dg d S )NZDUMP_IRTr"   r7   r0   r   r   r   test_dump_irL   s    &zTestDebugOutput.test_dump_irc                 C   sD   t dd |  }W d    n1 s(0    Y  | |dg d S )NZDUMP_CFGTr!   r7   r0   r   r   r   test_dump_cfgQ   s    &zTestDebugOutput.test_dump_cfgc                 C   sD   t dd |  }W d    n1 s(0    Y  | |dg d S )NZ	DUMP_LLVMTr#   r7   r0   r   r   r   test_dump_llvmV   s    &zTestDebugOutput.test_dump_llvmc                 C   sD   t dd |  }W d    n1 s(0    Y  | |dg d S )NZDUMP_ASSEMBLYTr$   r7   r0   r   r   r   test_dump_assembly[   s    &z"TestDebugOutput.test_dump_assemblyN)__name__
__module____qualname__r   r   r+   r1   r3   r4   r5   r6   r8   r9   r:   r;   r<   r   r   r   r   r      s   r   __main__)numpyr   Znumba.core.utilsr   Znumba.cuda.testingr   r   Znumba.tests.supportr   r   r   Znumbar   r	   Zunittestr   r   r=   mainr   r   r   r   <module>   s   P