%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /lib64/python3.9/site-packages/numpy/distutils/tests/__pycache__/
Upload File :
Create Path :
Current File : //lib64/python3.9/site-packages/numpy/distutils/tests/__pycache__/test_ccompiler_opt.cpython-39.pyc

a

z[yc[p�
@sHddlZddlZddlZddlmZmZddlmZedkoBeduZ	e	r�ddl
Z
ddlZddlZddl
Z
ej�e�e�e�e�d���ddlmZejdd��Zdd
d�ZnddlmZddlmZmZed
d
ddddddd�ZGdd�de�ZGdd�d�Zdd�Ze��D]$\Z Z!e!D]Z"e#ee e"���q�qe	�rDe
�$�dS)�N)�sys�path)�DistutilsError�__main__z..)�CCompilerOptc	os6tj|i|��}z|VWt�|�nt�|�0dS�N)�tempfileZmkdtemp�shutil�rmtree)�args�kwargs�tmpdir�r�N/usr/lib64/python3.9/site-packages/numpy/distutils/tests/test_ccompiler_opt.py�tempdirsr�cCs|st|��dSr)�AssertionError)�expr�msgrrr�assert_sr)rr)�gcc�clang�icc�iccw�msvc)rr)r)�x86�x64�ppc64�ppc64le�armhf�aarch64�s390xZnoarchc@sDeZdZdZddd�Zdd�Zdd�Zdd	�Zed
d�dd
��Z	dS)�FakeCCompilerOptrcOs$||_||_tj|dfi|��dSr)�fake_trap_files�fake_trap_flagsr�__init__)�self�
trap_files�
trap_flagsrrrrrr%)szFakeCCompilerOpt.__init__cCst�d��|j|j|���S)Nz�            <<<<
            march    : {}
            compiler : {}
            ----------------
            {}
            >>>>
        )�textwrap�dedent�format�cc_march�cc_name�report�r&rrr�__repr__.s
�zFakeCCompilerOpt.__repr__cKs�t|t�sJ�t|t�sJ�|jrD|D]}t�|j|�r&|�d�q&|jrl|D]}t�|j|�rN|�d�qNt|d�|�gt	|��S)Nz%source is trapped by a fake interfacez#flag is trapped by a fake interface� )
�
isinstance�listr#�re�matchZ
dist_errorr$�zip�join�len)r&Zsources�flagsr�src�frrr�dist_compile8szFakeCCompilerOpt.dist_compilecCstjSr)r"�	fake_infor/rrr�	dist_infoFszFakeCCompilerOpt.dist_infoF)�stderrcGsdSrr)r?rrrr�dist_logIszFakeCCompilerOpt.dist_logN)rr)
�__name__�
__module__�__qualname__r=r%r0r<r>�staticmethodr@rrrrr"'s

r"c@s�eZdZdZdZdd�Zdd�Zdd�Zdd	�Zd
d�Z	dd
�Z
dd�Zd5dd�Zd6dd�Z
d7dd�Zifdd�Zifdd�Zdd�Zdd�Zdd �Zd!d"�Zd#d$�Zd%d&�Zd'd(�Zd)d*�Zd+d,�Zd-d.�Zd/d0�Zd1d2�Zd3d4�ZdS)8�_Test_CCompilerOptNcCsdt_d|_dS)NT)r"Zconf_nocache�_optr/rrr�setup_classQsz_Test_CCompilerOpt.setup_classcOs|j|jdft_t|i|��S�Nr)�arch�ccr"r=)r&rrrrr�noptUsz_Test_CCompilerOpt.noptcCs|js|��|_|jSr)rFrKr/rrr�optYs
z_Test_CCompilerOpt.optcCs
|��jSr)rLr,r/rrr�march^sz_Test_CCompilerOpt.marchcCs
|��jSr)rLr-r/rrrr-asz_Test_CCompilerOpt.cc_namec	s�|t_|j|�dd�|�dd�|�dd�|�dd�d�}t���}tj�|d	�}t|d
��}|�	|�Wd�n1sx0Yg�i}|�
|g�}	|	D]t\}
}t�|
��d�dd
�}t
|�}
|
dkr�d}n,|
dkr�|d��}ndd�|�d��}��|�|||<q�Wd�n1�s&0Y|j|\}}|�rN|dgn|}dd�|D�}t
|�t
��k�s�t�fdd�|D���s�td|�f��||fS)N�baseline�min�dispatch�maxr'rr(��cpu_baseline�cpu_dispatchr'r(ztest_targets.c�w�.����r�(r1�)cSs,g|]$}t|t�r$dd�|�dn|�qS)rYr1rZ)r2�tupler7)�.0�tarrrr�
<listcomp>�s�z2_Test_CCompilerOpt.get_targets.<locals>.<listcomp>c3s|]}|�vVqdSrr)r\�t�Zgtargetsrr�	<genexpr>��z1_Test_CCompilerOpt.get_targets.<locals>.<genexpr>zM'sources_status' returns different targets than the compiled targets
%s != %s)r"Zconf_target_groupsrK�getr�osrr7�open�writeZtry_dispatch�basename�splitr8�upper�appendZsources_status�allr)r&�targets�groupsrrLr
�filer;ZgflagsZfake_objects�sourcer9ZgtarZglenZhas_baselinerr`r�get_targetsdsH



�(
*�*��z_Test_CCompilerOpt.get_targetsc	Ks�tddddd�}|��}|��}|�||�}|�||�}|||||d||d||d||d|fD]}|�|d�}|durlq�ql|r�t|t�r�|��D]$\}	}
|
dd�dvr�|
d	||	<q�n&t|t�s�J�|dd�dvr�|d	7}|S)
Nrrrr)rrr r�_rXz)}$?\.+*�$)�dictrMr-rc�popr2�items�str)r&rZ
map2originrMr-Z	map_marchZmap_cc�keyZregex�k�vrrr�	arg_regex�s6�



�
z_Test_CCompilerOpt.arg_regexrcKs�|jfi|��}|durdS|j|||�dd�|�dd�d�}d�|���}|slt|�dkrhtd|��dSt�||tj	�s�td||f��dS)	Nr'rr(rRr1r�!expected empty features, not "%s"z%dispatch features "%s" not match "%s")
rzrKrcr7�cpu_dispatch_namesr8rr4r5�
IGNORECASE)r&rPrNrr5rL�featuresrrr�expect�s&

��
�z_Test_CCompilerOpt.expectcKs�|jfi|��}|durdS|j|||�dd�|�dd�d�}d�|���}|slt|�dkrhtd|��dSt�||tj	�s�td||f��dS)	Nr'rr(rRr1rr{z%baseline features "%s" not match "%s")
rzrKrcr7�cpu_baseline_namesr8rr4r5r})r&rNrPrr5rLr~rrr�expect_baseline�s&

��
�z"_Test_CCompilerOpt.expect_baselinecKs�|jfi|��}|durdS|j|||�dd�|�dd�d�}d�|���}|slt|�dkrhtd|��dSt�||�s�td||f��dS)	Nr'rr(rRr1rzexpected empty flags not "%s"zflags "%s" not match "%s")	rzrKrcr7Zcpu_baseline_flagsr8rr4r5)r&rNrPrr5rLr9rrr�expect_flags�s&

��
�z_Test_CCompilerOpt.expect_flagscKs�|jfi|��}|durdS|jf||d�|��\}}d�|�}|s`t|�dkr\td|��dSt�||tj�s�td||f��dS)N�rlrmr1rz expected empty targets, not "%s"ztargets "%s" not match "%s")rzrpr7r8rr4r5r})r&rlrmrr5rqrrr�expect_targets�s
�
�z!_Test_CCompilerOpt.expect_targetsc
Ks�|jfi|��}|durdSt|t�s*J�|j||d�\}}|��D]^\}}||vr`td|��||}	|s�t|	�dkr�td|��t�||	�sDtd||	|f��qDdS)Nr�zexpected to find target "%s"rz+expected to find empty flags in target "%s"z"%s" flags "%s" not match "%s")	rzr2rsrprurr8r4r5)
r&rlrmrZ
match_dictrqZ	tar_flagsZ	match_tarZmatch_flagsr9rrr�expect_target_flags�s(���z&_Test_CCompilerOpt.expect_target_flagscCs�|jdkrdnd}|jdkr dnd}|��}tt|d|j��tt|d|��tt|d|j��tt|d|��dS)NrrrrZcc_on_Zcc_is_)rIrJrLr�getattr)r&Z
wrong_archZwrong_ccrLrrr�test_interfacesz!_Test_CCompilerOpt.test_interfacecCsHdD]>\}}|j||d�}t|���dks.J�t|���dksJ�qdS)N))rZnonerH)z
none +noneznone - none)z	none -maxz	min - max)z+vsx2 -VSX2zvsx avx2 avx512f -max)z#max -vsx - avx + avx512f neon -MAX z+min -min + max -max -vsx + avx2 -avx2 +NONE�rSrTr)rKr8r�r|)r&rNrPrLrrr�test_args_emptys	z"_Test_CCompilerOpt.test_args_emptyc	CsP|��dkrdSdD]6\}}z|j||d�td��WqtyHYq0qdS)N�unknown))zunkown_feature - max +minzunknown max min)z#avx2z$vsxr�z+excepted an exception for invalid arguments)rMrKrr)r&rNrPrrr�test_args_validation-sz'_Test_CCompilerOpt.test_args_validationcCsT|jdddddd�|jddd	d
dd�|jdddddd�|jd
d
dddd�dS)Nzsse vsx neon�sse�vsx�neonr)rrrr�z)sse41 avx avx2 vsx2 vsx3 neon_vfpv4 asimdzsse41 avx avx2�	vsx2 vsx3zneon_vfpv4 asimdzsse neon vsx)rNrrrzavx2 vsx3 asimdhp)rr/rrr�	test_skip;s&����z_Test_CCompilerOpt.test_skipcCs�|jddddd�dD]@\}}d||f}|j|d|||d	�|j|d
|||d	�qdD]&}|D]}|j|dd
�|�d�qdq\|jddd�dD]}|j|dd�q�dS)Nzfma3 avx2 asimd vsx3zsse .* sse41 .* fma3.*avx2z
vsx vsx2 vsx3zneon neon_fp16 neon_vfpv4 asimd)rrr)�Zfma3�avx2)�avx512f�avx512cdz.* sse42 .* %s .*%s$z.* sse42 .* %s$)�x86_gcc�x86_icc�x86_iccwz
.* avx .* %s$)r�)r�r�Z
avx512_skxz.*%sr1)�x86_msvcr��vsx vsx2)r)r�Z	neon_fp16Z
neon_vfpv4�asimd)r )r�r7)r&Zf0�f1�diffr;Zffrrr�test_impliesSs0����
z_Test_CCompilerOpt.test_impliescCsdD]z}|dkr|��dkrq|j|dddddd�|j|ddd	d
dddd�|j|d
ddddd�|j|dddddddd�q|jddddddddd�|jddddd�z6|jddd d d d d!�|��d"kr�td#|����Wn*t�y|��d"k�rtd$��Yn0dS)%N)rQ�nativer�rz.*cpu_(sse|vsx|neon|vx).cr)r'rrrr!z".*cpu_(sse3|vsx2|neon_vfpv4|vxe).czsse sse2r�zneon neon_fp16�vx)r'rrrr rr!z.*cpu_(popcnt|vsx3).czsse .* sse41r�zneon neon_fp16 .* asimd .*�vx vxe vxe2z=.* xop fma4 .* avx512f .* avx512_knl avx512_knm avx512_skx .*z1.* avx512f .* avx512_knl avx512_knm avx512_skx .*z'.* xop fma4 .* avx512f .* avx512_skx .*z.* asimd asimdhp asimddp .*zvsx vsx2 vsx3 vsx4.*z
vx vxe vxe2.*)r�r�r�r�rrr!rOz
sse sse2 sse3zneon neon_fp16 .* asimd)rrrr rrr!z.*cpu_(sse2|vsx2).c)r'rrz".*(-march=native|-xHost|/QxHost).*�.*)r(rrrr!r��excepted an exception for %s�excepted no exceptions)r-rrMrr)r&�orrr�test_args_options|s`�������
�z$_Test_CCompilerOpt.test_args_optionscCs�|jdddd|��dkrdndddddd	d
�
|jdddd
�|jdddd�|jddd�|jddd�|jddd�|jddd�dS)Nz'sse sse2 vsx vsx2 neon neon_fp16 vx vxez-msse -msse2z
/arch:SSE2rrz-mcpu=power8z-maltivec -mvsx -mpower8-vectorz"-mfpu=neon-fp16 -mfp16-format=ieeez-mzvector -march=arch12)	r�r�r�r�Z	ppc64_gccZppc64_clang�	armhf_gccr r!r�z;-mfp16-format=ieee -mfpu=neon-fp-armv8 -march=armv8-a\+simd)r r�Zasimdhpz-march=armv8.2-a\+fp16z=-mfp16-format=ieee -mfpu=neon-fp-armv8 -march=armv8.2-a\+fp16)�aarch64_gccr�Zasimddpz-march=armv8.2-a\+dotprod)r�Zasimdfhmz-march=armv8.2-a\+fp16\+fp16fmlzasimddp asimdhp asimdfhmz(-march=armv8.2-a\+dotprod\+fp16\+fp16fmlr�z-mzvector -march=arch13)r!)r�rMr/rrr�
test_flags�sF�������z_Test_CCompilerOpt.test_flagsc	CsjdD]`}z4|j|ddddd�|��dkr:td|����Wqtyb|��dkr^td��Yq0qdS)N)zbla blaz
/*@targetsz
/*@targets */z/*@targets unknown */z"/*@targets $unknown_policy avx2 */z!/*@targets #unknown_group avx2 */z/*@targets $ */z/*@targets # vsx */z/*@targets #$ vsx */z/*@targets vsx avx2 ) */z/*@targets vsx avx2 (avx2 */z/*@targets vsx avx2 () */z!/*@targets vsx avx2 ($autovec) */z/*@targets vsx avx2 (xxx) */z!/*@targets vsx avx2 (baseline) */r)rrrr!r�r�r�)r�rMrr�r&rlrrr�test_targets_exceptions�s�
�z*_Test_CCompilerOpt.test_targets_exceptionsc	Cs$dD]}|j|dddddd�qdS)N)z+/*@targets $keep_baseline sse vsx neon vx*/z+/*@targets,$keep_baseline,sse,vsx,neon vx*/z+/*@targets*$keep_baseline*sse*vsx*neon*vx*/zs
            /*
            ** @targets
            ** $keep_baseline, sse vsx,neon, vx
            */
            z�
            /*
            ************@targets****************
            ** $keep_baseline, sse vsx, neon, vx
            ************************************
            */
            z�
            /*
            /////////////@targets/////////////////
            //$keep_baseline//sse//vsx//neon//vx
            /////////////////////////////////////
            */
            zj
            /*
            @targets
            $keep_baseline
            SSE VSX NEON VX*/
            r�r�r�r�r)rrrr!r��r�r�rrr�test_targets_syntax�s
�z&_Test_CCompilerOpt.test_targets_syntaxcCsh|jddddddd�|jdd	d
ddd
dd�|jdd	ddd
ddd�|jdd	ddddddddd�
dS)Nz�
            /*@targets
                sse sse2 sse41 avx avx2 avx512f
                vsx vsx2 vsx3 vsx4
                neon neon_fp16 asimdhp asimddp
                vx vxe vxe2
            */
            zavx vsx2 asimd vx vxe�avx512f avx2zasimddp asimdhpz	vsx4 vsx3�vxe2)rNrrrr!z�
            /*@targets
                sse41 avx avx2 avx512f
                vsx2 vsx3 vsx4
                asimd asimdhp asimddp
                vx vxe vxe2
            */
            rz"sse41 avx2 vsx2 asimd asimddp vxe2z
avx2 sse41�
asimddp asimdZvsx2)rNrPrrrr!z�
            /*@targets
                sse2 sse41 avx2 avx512f
                vsx2 vsx3 vsx4
                neon asimdhp asimddp
                vx vxe vxe2
            */
            z).*(avx2|avx512f|vsx3|vsx4|asimddp|vxe2).cz
sse41 sse2zasimdhp neonzvxe vx)rNr'rrrr!z�
            /*@targets
                sse sse2 avx fma3 avx2 avx512f avx512cd
                vsx vsx2 vsx3
                neon neon_vfpv4 neon_fp16 neon_fp16 asimd asimdhp
                asimddp asimdfhm
            */
            z#avx512cd avx512f avx2 fma3 avx sse2zavx512cd avx2 avx sse2z
vsx3 vsx2 vsx�	vsx3 vsx2z8asimdfhm asimddp asimdhp asimd neon_vfpv4 neon_fp16 neonzasimdfhm asimddp asimdhp asimd)	rNr�r�r�r�rrrr r�r/rrr�test_targetss<��
��z_Test_CCompilerOpt.test_targetsc
Cs�|jdddddddd�|jd	d
ddd
dd�|jdddd|��dkrJdnddddd�dD]2}|jd|ddiddiddiddiddid�q\|jdddiddidd idd!iddid�dS)"Nz�
            /*@targets
                $keep_baseline
                sse2 sse42 avx2 avx512f
                vsx2 vsx3
                neon neon_vfpv4 asimd asimddp
                vx vxe vxe2
            */
            zsse41 avx2 vsx2 asimd vsx3 vxezavx512f avx2 sse42 sse2r�zasimddp asimd neon_vfpv4 neonr�zvxe2 vxe vx)rNrrrr r!z�
            /*@targets
                $keep_baseline $keep_sort
                avx512f sse42 avx2 sse2
                vsx2 vsx3
                asimd neon neon_vfpv4 asimddp
                vxe vxe2
            */
            zavx512f sse42 avx2 sse2r�zasimd neon neon_vfpv4 asimddpz
asimd asimddpzvxe vxe2)rrrr r!z�
            /*@targets
                $keep_baseline $keep_sort $autovec
                avx512f avx2 sse42 sse41 sse2
                vsx3 vsx2
                asimddp asimd neon_vfpv4 neon
            */
            zavx512f avx2 sse42 sse41 sse2rzavx512f avx2 sse2r�)r�r�r�r�rrr )z$maxoptz$autovecz/*@targets baseline %s */rNz.*-O3.*z.*/O3.*z.*/O2.*r�)rrrrr�z/*@targets baseline $werror */z.*-Werror.*z.*/Werror.*z.*/WX.*)r�rMr�)r&Zpolicyrrr�test_targets_policies]sT	�	�
����z(_Test_CCompilerOpt.test_targets_policiesc	Cs>|jdtdd�dddd�|jdtd	d
d�dd
dddd�dS)NzK
            /*@targets $keep_baseline baseline #test_group */
            z�
                    $keep_baseline
                    asimddp sse2 vsx2 avx2 vsx3
                    avx512f asimdhp
                )Z
test_groupzavx512f avx2 sse2 baselinezvsx3 vsx2 baselinezasimddp asimdhp baseline)rmrrrz�
            /*@targets
             * sse42 avx avx512f
             * #test_group_1
             * vsx2
             * #test_group_2
             * asimddp asimdfhm
            */
            z@
                    VSX2 vsx3 asimd avx2 SSE41
                z@
                    vsx2 vsx3 asImd aVx2 sse41
                )Ztest_group_1Ztest_group_2zavx512f avx2 avx sse42 sse41r��vsx3zasimdfhm asimddp asimdzasimdfhm asimddp)rmrrrrr )r�rsr/rrr�test_targets_groups�s*��	��z&_Test_CCompilerOpt.test_targets_groupscCsP|jdddd�|jdddddd	�|jd
ddddd
�|jdddddd�dS)Nzm
            /*@targets
                (avx512_clx avx512_cnl) (asimdhp asimddp)
            */
            z\(avx512_clx avx512_cnl\)z\(asimdhp asimddp\))rrz�
            /*@targets
                f16c (sse41 avx sse42) (sse3 avx2 avx512f)
                vsx2 (vsx vsx3 vsx2)
                (neon neon_vfpv4 asimd asimdhp asimddp)
            */
            zavx512f f16c avxr�r�)rrrrz�
            /*@targets $keep_sort
                (sse41 avx sse42) (sse3 avx2 avx512f)
                (vsx vsx3 vsx2)
                (asimddp neon neon_vfpv4 asimd asimdhp)
                (vx vxe vxe2)
            */
            zavx avx512fr�)rrrr!zz
            /*@targets $keep_sort
                fma3 avx2 (fma3 avx2) (avx2 fma3) avx2 fma3
            */
            zfma3 avx2 \(fma3 avx2\)r�)r�r�r�r�r�r/rrr�test_targets_multi�s2�
���z%_Test_CCompilerOpt.test_targets_multi)r)r)r)rArBrCrIrJrGrKrLrMr-rprzrr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rrrrrEMs6,


	)8'$@L,rEcCs@tr"t�d�j|d|||d�St�d�j|d|||d�S)Na    class TestCCompilerOpt_{class_name}(_Test_CCompilerOpt, unittest.TestCase):
        arch = '{arch}'
        cc   = '{cc}'
        def __init__(self, methodName="runTest"):
            unittest.TestCase.__init__(self, methodName)
            self.setup_class()
    rq)�
class_namerIrJzo    class TestCCompilerOpt_{class_name}(_Test_CCompilerOpt):
        arch = '{arch}'
        cc   = '{cc}'
    )�
is_standaloner)r*r+)rIrJrrr�new_tests�

�r�)r)%r4r)rdrrZdistutils.errorsrrA�__package__r�Zunittest�
contextlibrr	rj�abspathr7�dirname�__file__Z
ccompiler_optr�contextmanagerrrZnumpy.distutils.ccompiler_optZ
numpy.testingrsZarch_compilersr"rEr�rurIZ	compilersrJ�exec�mainrrrr�<module>sF  
�&@

Zerion Mini Shell 1.0