
    J/Pht                     (   d dl Z d dlZd dlmZ d dlZd dlmZ d dlmZ d dl	m
Z
 dZerd dlmZ  ej        dd	           d
ddZ ej         e j                    dk    d           G d de
                      Zedk    r ej                     dS dS )    N)types)njit)config)TestCaseF)binding z--debug-only=loop-vectorizeskylake-avx512)NUMBA_CPU_NAMENUMBA_CPU_FEATURESx86_64zx86_64 only testc                       e Zd ZdZddZ ej        e          d             Z ej        ddie          d             Z	 ej        e          d	             Z
d
S )TestVectorizationzP
    Tests to assert that code which should vectorize does indeed vectorize
    Fc                     |                      t          j        d           |                      t          j        d            t	          ||          |          }|                    |          S )Nr	   r   fastmath)assertEqualr   CPU_NAMECPU_FEATURESr   inspect_llvm)selffunc
args_tupler   jitteds        ^/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/numba/tests/test_vectorization.pygen_irzTestVectorization.gen_ir   sd    *:;;;,b1114j8444T::"":...    )envvarsc                     d }|                      |t          j        d d d         fd          }|                     d|           |                     d|           d S )Nc                 f    d}t          j        |           D ]}||                                z  }|S )Nr   )npnditeritem)xaccvs      r   do_sumz2TestVectorization.test_nditer_loop.<locals>.do_sum%   s6    CYq\\    qvvxxJr      Tr   vector.bodyllvm.loop.isvectorized)r   r   float64assertIn)r   r&   llvm_irs      r   test_nditer_loopz"TestVectorization.test_nditer_loop"   si    	 	 	 ++fu}SSqS'9&;d+KKmW---.88888r   NUMBA_SLP_VECTORIZE1c                     d }t           j        }|                     ||fdz  |d d d         fz   d          }|                     d|           d S )Nc                 ^    | | |z   z  |d<   |||z   z  |d<   | | |z   z  |d<   |||z   z  |d<   d S )Nr   r'          )a1a2b1b2As        r   fooz'TestVectorization.test_slp.<locals>.foo8   sJ    b>AaDb>AaDb>AaDb>AaDDDr      r'   Tr   z
2 x double)r   r*   r   r+   )r   r:   tyr,   s       r   test_slpzTestVectorization.test_slp1   sb    	" 	" 	" ]++cREAICCaC
$:d+KKlG,,,,,r   c                     d }|                      |t          j        t          j                  fd          }|                     d|           |                     d|           d S )Nc                 B    d}| D ]}|t          j        |          z  }|S )Ng        )r    sqrt)lstr$   r"   s      r   sum_sqrt_listz@TestVectorization.test_instcombine_effect.<locals>.sum_sqrt_listJ   s/    C % %rwt}}$Jr   Tr   r(   r)   )r   r   ListTyper*   r+   )r   rB   r,   s      r   test_instcombine_effectz)TestVectorization.test_instcombine_effectB   sp    	 	 	 ++menU].K.K-M'+  - -mW---.88888r   N)F)__name__
__module____qualname____doc__r   r   run_test_in_subprocess_skylake_envr-   r=   rD   r4   r   r   r   r      s         / / / / %X$\:::
9 
9 ;:
9 %X$&<|<  - - - %X$\:::9 9 ;:9 9 9r   r   __main__)platformnumpyr    numbar   unittestr   
numba.corer   numba.tests.supportr   _DEBUGllvmliter   llvm
set_optionrJ   skipIfmachiner   rE   mainr4   r   r   <module>rY      s2                           ( ( ( ( ( (		 7((((((DOB5666 '  !!##x/1CDD<9 <9 <9 <9 <9 <9 <9 ED<9~ zHMOOOOO r   