U
    ?hW
                     @   sp   d dl Zd dlmZmZ d dlmZmZ d dlZdd Z	dd Z
dZed	G d
d deZedkrle  dS )    N)skip_on_cudasimCUDATestCase)cudafloat64c                 C   s   d| d< d S )N   r    )xr   r   [/var/www/html/venv/lib/python3.8/site-packages/numba/cuda/tests/cudapy/test_optimization.pykernel_func   s    r
   c                 C   s   | | | S )Nr   )r   yzr   r   r	   device_func   s    r   )Z__local_depot0zcall.unizst.param.b64z Simulator does not optimize codec                   @   s<   e Zd Zdd Zdd Zdd Zdd Zd	d
 Zdd ZdS )TestOptimizationc              
   C   s\   t d d d f}t|t}| }tD ],}| j|d | |||  W 5 Q R X q*d S )Nr   fragment)r   r   jitr
   inspect_asmremoved_by_optsubTestassertNotInselfsigkernelptxr   r   r   r	   test_eager_opt   s    zTestOptimization.test_eager_optc              
   C   s`   t d d d f}tj|ddt}| }tD ],}| j|d | |||  W 5 Q R X q.d S )Nr   Foptr   )r   r   r   r
   r   r   r   assertInr   r   r   r	   test_eager_noopt!   s    z!TestOptimization.test_eager_nooptc              
   C   sp   t t}tjdtjd}|d | tt| 	 d }t
D ](}| j|d | || W 5 Q R X qBd S )Nr   Zdtyper   r   r   )r   r   r
   npzerosr   nextiterr   itemsr   r   r   r   r   r   r   r   r   r   r	   test_lazy_opt+   s    
zTestOptimization.test_lazy_optc              
   C   sv   t jddt}tjdtjd}|d | tt| 	 d }t
D ](}| j|d | || W 5 Q R X qHd S )NFr   r   r    r!   r   )r   r   r
   r"   r#   r   r$   r%   r   r&   r   r   r   r'   r   r   r	   test_lazy_noopt8   s    z TestOptimization.test_lazy_nooptc                 C   s6   t t t f}tj|ddt}||}| d| d S )NT)device
fma.rn.f64)r   r   r   r   r   r   r   r   r*   r   r   r   r	   test_device_optE   s    

z TestOptimization.test_device_optc                 C   s8   t t t f}tj|dddt}||}| d| d S )NTF)r*   r   r+   )r   r   r   r   r   r   r,   r   r   r	   test_device_nooptL   s    

z"TestOptimization.test_device_nooptN)	__name__
__module____qualname__r   r   r(   r)   r-   r.   r   r   r   r	   r      s   

r   __main__)numpyr"   Znumba.cuda.testingr   r   Znumbar   r   Zunittestr
   r   r   r   r/   mainr   r   r   r	   <module>   s   ?