
    .|h                         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                          yy)    N)TestCaseoverride_config)njit)typesc                       e Zd ZdZd Zd Zy)TestPassManagerOptimizationzT Tests that pass manager is not overriding the intended
    optimization level.
    c                     t        dd      5  |j                  |       |j                  |      cd d d        S # 1 sw Y   y xY w)NOPTr   )r   compileinspect_llvm)selffnsigs      f/var/www/html/test/engine/venv/lib/python3.12/site-packages/numba/tests/test_optimisation_pipelines.py_get_llvmirz'TestPassManagerOptimization._get_llvmir   s8    UA& 	(JJsO??3'	( 	( 	(s	   "9Ac                 .   t        dd      d        }t        j                  f}| j                  ||      }t	        j
                  |      }|j                  |j                  d      j                  j                  }|j                  D cg c]  }|j                  |k(  s| }}| j                  t        |      d       |d   }|j                  D cg c]  }| }	}| j                  t        |	      d       |	d   }
|
j                   D cg c]  }|j"                  dk7  s| }}h d	}d
}|D ]8  }|j"                  |v r!|j%                  |j"                         |r/d}2|s5|s8 n | j                  t        |      dd       y c c}w c c}w c c}w )NTnumpy)debugerror_modelc                 :    | 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!HH    )r   r      call>   faddfdivfmulFz#Function was optimized unexpectedly)r   r   float64r   llvmparse_assembly	overloads
signaturesfndescmangled_name	functionsnameassertEquallenblocksassertGreaterinstructionsopcoderemove)r   r   r   full_irmoduler+   xfuncsfuncr.   blockinstrs	op_expectstarteds                 r   test_override_configz0TestPassManagerOptimization.test_override_config   s   	Dg	.	 
/	 }}""3C"0$$W-}}S^^A./66CC",,?q$??UQ'Qx![[)!))3v;*q	 #//F188v3E!FF,	 	Axx9$  *"Gw	 	3y>1@	B' @ *
 Gs   F F	FF"FN)__name__
__module____qualname____doc__r   r<    r   r   r   r   	   s    (
#Br   r   __main__)unittestnumba.tests.supportr   r   numbar   
numba.corer   llvmlite.bindingbindingr$   r   r=   mainrA   r   r   <module>rJ      s=     ;   -B( -B` zHMMO r   