o
    ۾iW
                     @   st   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r8e  dS dS )    N)skip_on_cudasimCUDATestCase)cudafloat64c                 C   s   d| d< d S )N   r    )xr   r   ]/home/ubuntu/.local/lib/python3.10/site-packages/numba/cuda/tests/cudapy/test_optimization.pykernel_func      r
   c                 C   s   | | | S )Nr   )r   yzr   r   r	   device_func   r   r   )__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   sp   t d d d f}t|t}| }tD ] }| j|d | |||  W d    n1 s0w   Y  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   st   t d d d f}tj|ddt}| }tD ] }| j|d | |||  W d    n1 s2w   Y  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   s   t t}tjdtjd}|d | tt| 	 d }t
D ]}| j|d | || W d    n1 s:w   Y  q!d S )Nr   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   s   t jddt}tjdtjd}|d | tt| 	 d }t
D ]}| j|d | || W d    n1 s=w   Y  q$d 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,   r0   r1   r   r   r   r	   r      s    

r   __main__)numpyr%   numba.cuda.testingr   r   numbar   r   unittestr
   r   r   r   r2   mainr   r   r   r	   <module>   s    ?