§
    2@ÄjË  ã                   ó(  — 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        úOC:\Projects\Historical\venv\Lib\site-packages\numba/tests/test_vectorization.pyÚgen_irzTestVectorization.gen_ir   sd   € Ø×Ò�œÐ*:Ñ;Ô;Ð;Ø×Ò�Ô,¨bÑ1Ô1Ð1à4•�j¨8Ð4Ñ4Ô4°TÑ:Ô:ˆØ×"Ò" :Ñ.Ô.Ð.ó    )Ú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Ý”Y˜q‘\”\ð  ð  �Ø�q—v’v‘x”x‘��ØˆJr   é   Tr   úvector.bodyúllvm.loop.isvectorized)r   r   Úfloat64ÚassertIn)r   r&   Úllvm_irs      r   Útest_nditer_loopz"TestVectorization.test_nditer_loop"   si   € ð	ð 	ð 	ð —+’+˜f¥u¤}°S°S°q°SÔ'9Ð&;Àd�+ÑKÔKˆØ�Š�m WÑ-Ô-Ð-Ø�ŠÐ.°Ñ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™‘>ˆAˆa‰DØ˜˜b™‘>ˆAˆa‰DØ˜˜b™‘>ˆAˆa‰DØ˜˜b™‘>ˆAˆa‰DˆDˆDr   é   r'   Tr   z
2 x double)r   r*   r   r+   )r   r:   Útyr,   s       r   Útest_slpzTestVectorization.test_slp1   sb   € ð	"ð 	"ð 	"õ Œ]ˆØ—+’+˜c R E¨A¡I°°C°C°a°C´°
Ñ$:Àd�+ÑKÔKˆØ�Š�l GÑ,Ô,Ð,Ð,Ð,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Øð %ð %�Ø•r”w˜t‘}”}Ñ$��ØˆJr   Tr   r(   r)   )r   r   ÚListTyper*   r+   )r   rB   r,   s      r   Útest_instcombine_effectz)TestVectorization.test_instcombine_effectB   sp   € ð	ð 	ð 	ð —+’+˜m­e¬n½U¼]Ñ.KÔ.KÐ-MØ'+ð ñ -ô -ˆà�Š�m WÑ-Ô-Ð-Ø�ŠÐ.°Ñ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Ø(Ð(Ð(Ð(Ð(Ð(à€D„O�BÐ5Ñ6Ô6Ð6ð 'Øðð €ð €„Ð!�Ô!Ñ#Ô# xÒ/Ð1CÑDÔDð<9ð <9ð <9ð <9ð <9˜ñ <9ô <9ñ EÔDð<9ð~ ˆzÒÐØ€H„M�O„O€O€O€Oð Ðr   