
    J/Ph                         d dl Z d dlmZmZ d dlmZ d dlmZ d dlm	Z
  G d de          Zedk    r e j                     dS dS )    N)TestCaseoverride_config)njit)typesc                       e Zd ZdZd Zd ZdS )TestPassManagerOptimizationzT Tests that pass manager is not overriding the intended
    optimization level.
    c                     t          dd          5  |                    |           |                    |          cd d d            S # 1 swxY w Y   d S )NOPTr   )r   compileinspect_llvm)selffnsigs      g/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/numba/tests/test_optimisation_pipelines.py_get_llvmirz'TestPassManagerOptimization._get_llvmir   s    UA&& 	( 	(JJsOOO??3''	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	(s   *AAAc                    t          dd          d             }t          j        f}|                     ||          }t	          j        |          }|j        |j        d                  j        j	        fd|j
        D             }|                     t          |          d           |d         }d	 |j        D             }|                     t          |          d           |d         }d
 |j        D             }	h d}
d}|	D ]0}|j        |
v r|
                    |j                   |sd}*|
r|r n1|                     t          |
          dd           d S )NTnumpy)debugerror_modelc                 B    | dz   }|dz  }||z  }t          |           |S )NgGz?gQ@)print)abcds       r   fooz=TestPassManagerOptimization.test_override_config.<locals>.foo   s-    DADAAA!HHHH    )r   r   c                 *    g | ]}|j         k    |S  )name).0xr    s     r   
<listcomp>zDTestPassManagerOptimization.test_override_config.<locals>.<listcomp>"   s     ???q$r      c                     g | ]}|S r   r   r!   r"   s     r   r#   zDTestPassManagerOptimization.test_override_config.<locals>.<listcomp>%   s    )))!)))r   c                 (    g | ]}|j         d k    |S )call)opcoder&   s     r   r#   zDTestPassManagerOptimization.test_override_config.<locals>.<listcomp>*   s$    FFF18v3E3E!3E3E3Er   >   faddfdivfmulFz#Function was optimized unexpectedly)r   r   float64r   llvmparse_assembly	overloads
signaturesfndescmangled_name	functionsassertEquallenblocksassertGreaterinstructionsr)   remove)r   r   r   full_irmodulefuncsfuncr7   blockinstrs	op_expectstartedr"   r    s                @r   test_override_configz0TestPassManagerOptimization.test_override_config   s   	Dg	.	.	.	 	 
/	.	 }""3C"00$W--}S^A./6C????F,???UQ'''Qx))T[)))3v;;***q	 GFU/FFF,,,	 	 	Ax9$$  *** #"G w 3y>>1@	B 	B 	B 	B 	Br   N)__name__
__module____qualname____doc__r   rC   r   r   r   r   r   	   sA         ( ( (
#B #B #B #B #Br   r   __main__)unittestnumba.tests.supportr   r   numbar   
numba.corer   llvmlite.bindingbindingr.   r   rD   mainr   r   r   <module>rP      s     ; ; ; ; ; ; ; ;                  -B -B -B -B -B( -B -B -B` zHMOOOOO r   