§
    `Štjjp  ã            
       ó@  — d dl Z d dlZd dlZd dlmZmZ d dlmZ edk    oedu Z	e	rpd dl
Z
d dlZd dlZd dlZej                              ej         ej         ej        e¦  «        d¦  «        ¦  «        ¦  «         d dlmZ ej        d„ ¦   «         Zdd	„Znd dlmZ d d
lmZmZ  edddddddd¬¦  «        Z G d„ de¦  «        Z G d„ d¦  «        Zd„ Z	 e                     ¦   «         D ]\  Z Z!e!D ]Z" e# ee e"¦  «        ¦  «         ŒŒ e	r e
j$        ¦   «          dS dS )é    N)ÚsysÚpath)ÚDistutilsErrorÚ__main__z..)ÚCCompilerOptc               /   ó�   K  — t          j        | i |¤Ž}	 |V — t          j        |¦  «         d S # t          j        |¦  «         w xY w©N)ÚtempfileÚmkdtempÚshutilÚrmtree)ÚargsÚkwargsÚtmpdirs      úf/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/numpy/distutils/tests/test_ccompiler_opt.pyÚtempdirr      sU   è è € åÔ! 4Ð2¨6Ð2Ð2ˆð	"ØˆLˆLˆLåŒM˜&Ñ!Ô!Ð!Ð!Ð!ø�FŒM˜&Ñ!Ô!Ð!Ð!øøøs	   •/ ¯AÚ c                 ó(   — | st          |¦  «        ‚d S r	   )ÚAssertionError)ÚexprÚmsgs     r   Úassert_r      s"   € Øð 	&Ý  Ñ%Ô%Ð%ð	&ð 	&ó    )r   r   )ÚgccÚclangÚiccÚiccwÚmsvc)r   r   )r   r   Úfcc)r   )Úx86Úx64Úppc64Úppc64leÚarmhfÚaarch64Ús390xÚnoarchc                   óH   — e Zd ZdZd
d„Zd„ Zd„ Zd„ Zeddœd„¦   «         Z	d	S )ÚFakeCCompilerOptr   c                 óH   — || _         || _        t          j        | d fi |¤Ž d S r	   )Úfake_trap_filesÚfake_trap_flagsr   Ú__init__)ÚselfÚ
trap_filesÚ
trap_flagsr   r   s        r   r-   zFakeCCompilerOpt.__init__)   s3   € Ø)ˆÔØ)ˆÔÝÔ˜d DÐ3Ð3¨FÐ3Ð3Ð3Ð3Ð3r   c                 óŒ   — t          j        d¦  «                             | j        | j        |                      ¦   «         ¦  «        S )NzŠ            <<<<
            march    : {}
            compiler : {}
            ----------------
            {}
            >>>>
        )ÚtextwrapÚdedentÚformatÚcc_marchÚcc_nameÚreport©r.   s    r   Ú__repr__zFakeCCompilerOpt.__repr__.   s;   € ÝŒð  ñ ô ÷ ŠV�D”M 4¤<°·²±´Ñ?Ô?ð	@r   c                 ó²  — t          |t          ¦  «        sJ ‚t          |t          ¦  «        sJ ‚| j        r4|D ]1}t          j        | j        |¦  «        r|                      d¦  «         Œ2| j        r4|D ]1}t          j        | j        |¦  «        r|                      d¦  «         Œ2t          |d                     |¦  «        gt          |¦  «        z  ¦  «        S )Nz%source is trapped by a fake interfacez#flag is trapped by a fake interfaceú )
Ú
isinstanceÚlistr+   ÚreÚmatchÚ
dist_errorr,   ÚzipÚjoinÚlen)r.   ÚsourcesÚflagsr   ÚsrcÚfs         r   Údist_compilezFakeCCompilerOpt.dist_compile8   sè   € Ý˜'¥4Ñ(Ô(Ð)Ð)Ð(Ý˜%¥Ñ&Ô&Ð'Ð'Ð&ØÔð 	MØð Mð M�Ý”8˜DÔ0°#Ñ6Ô6ð MØ—O’OÐ$KÑLÔLÐLøØÔð 	KØð Kð K�Ý”8˜DÔ0°!Ñ4Ô4ð KØ—O’OÐ$IÑJÔJÐJøå�7˜SŸXšX e™_œ_Ð-µ°G±´Ñ<Ñ=Ô=Ð=r   c                 ó   — t           j        S r	   )r)   Ú	fake_infor8   s    r   Ú	dist_infozFakeCCompilerOpt.dist_infoF   s   € ÝÔ)Ð)r   F)Ústderrc                 ó   — d S r	   © )rL   r   s     r   Údist_logzFakeCCompilerOpt.dist_logI   s   € àˆr   N)r   r   )
Ú__name__Ú
__module__Ú__qualname__rJ   r-   r9   rH   rK   ÚstaticmethodrO   rN   r   r   r)   r)   '   s…   € € € € € Ø€Ið4ð 4ð 4ð 4ð
@ð @ð @ð>ð >ð >ð*ð *ð *ð Ø$ð ð ð ð ñ „\ðð ð r   r)   c                   óº   — e Zd ZdZdZd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d„ Zdd
„Zdd„Zdd„Zi fd„Zi fd„Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ ZdS )Ú_Test_CCompilerOptNc                 ó,   — dt           _        d | _        d S )NT)r)   Úconf_nocacheÚ_optr8   s    r   Úsetup_classz_Test_CCompilerOpt.setup_classQ   s   € Ø(,ÕÔ%ØˆŒ	ˆ	ˆ	r   c                 óL   — | j         | j        dft          _        t          |i |¤ŽS ©Nr   )ÚarchÚccr)   rJ   )r.   r   r   s      r   Únoptz_Test_CCompilerOpt.noptU   s)   € Ø&*¤i°´¸"Ð%=ÕÔ"Ý Ð0¨Ð0Ð0Ð0r   c                 óP   — | j         s|                      ¦   «         | _         | j         S r	   )rX   r^   r8   s    r   Úoptz_Test_CCompilerOpt.optY   s#   € ØŒyð 	$ØŸ	š	™œˆDŒIØŒyÐr   c                 ó4   — |                       ¦   «         j        S r	   )r`   r5   r8   s    r   Úmarchz_Test_CCompilerOpt.march^   s   € Ø�xŠx‰zŒzÔ"Ð"r   c                 ó4   — |                       ¦   «         j        S r	   )r`   r6   r8   s    r   r6   z_Test_CCompilerOpt.cc_namea   s   € Ø�xŠx‰zŒzÔ!Ð!r   c           	      óŒ  ‡— |t           _        |                      |                     dd¦  «        |                     dd¦  «        |                     dd¦  «        |                     dd¦  «        ¬¦  «        }t	          ¦   «         5 }t
          j                             |d	¦  «        }t          |d
¦  «        5 }| 	                    |¦  «         d d d ¦  «         n# 1 swxY w Y   g Ši }| 
                    |g¦  «        }	|	D ]´\  }
}t          j        |
¦  «                             d¦  «        dd…         }t          |¦  «        }|dk    rd}nN|dk    r|d                              ¦   «         }n-dd                     |¦  «        z   dz                        ¦   «         }‰                     |¦  «         |||<   Œµ	 d d d ¦  «         n# 1 swxY w Y   |j        |         \  }}|r|dgz   n|}d„ |D ¦   «         }t          |¦  «        t          ‰¦  «        k    st#          ˆfd„|D ¦   «         ¦  «        st%          d|›d‰›�¦  «        ‚||fS )NÚbaselineÚminÚdispatchÚmaxr/   r   r0   ©Úcpu_baselineÚcpu_dispatchr/   r0   ztest_targets.cÚwú.é   éÿÿÿÿr   ú(r;   ú)c                 ór   — g | ]4}t          |t          ¦  «        rd d                     |¦  «        z   dz   n|‘Œ5S )rp   r;   rq   )r<   ÚtuplerB   )Ú.0Útars     r   ú
<listcomp>z2_Test_CCompilerOpt.get_targets.<locals>.<listcomp>„   sP   € ð 
ð 
ð 
àõ &0°µUÑ%;Ô%;ÐDˆC�—’˜‘”Ñ˜cÑ!Ð!Àð
ð 
ð 
r   c              3   ó    •K  — | ]}|‰v V — Œ	d S r	   rN   )rt   ÚtÚgtargetss     €r   ú	<genexpr>z1_Test_CCompilerOpt.get_targets.<locals>.<genexpr>ˆ   s'   øè è € Ð3SÐ3SÀa°A¸°MÐ3SÐ3SÐ3SÐ3SÐ3SÐ3Sr   zE'sources_status' returns different targets than the compiled targets
z != )r)   Úconf_target_groupsr^   Úgetr   Úosr   rB   ÚopenÚwriteÚtry_dispatchÚbasenameÚsplitrC   ÚupperÚappendÚsources_statusÚallr   )r.   ÚtargetsÚgroupsr   r`   r   ÚfilerG   ÚgflagsÚfake_objectsÚsourcerE   ÚgtarÚglenÚhas_baselinery   s                  @r   Úget_targetsz_Test_CCompilerOpt.get_targetsd   sÙ  ø€ Ø.4ÕÔ+Ø�iŠiØŸš J°Ñ6Ô6ØŸš J°Ñ6Ô6Ø—z’z ,°Ñ3Ô3Ø—z’z ,°Ñ3Ô3ð	 ñ 
ô 
ˆõ ‰YŒYð 	%˜&Ý”7—<’< Ð(8Ñ9Ô9ˆDÝ�d˜C‘”ð ! AØ—’˜Ñ Ô Ð ð!ð !ð !ñ !ô !ð !ð !ð !ð !ð !ð !øøøð !ð !ð !ð !àˆHØˆFØ×+Ò+¨T¨FÑ3Ô3ˆLØ!-ð %ð %‘�˜Ý”} VÑ,Ô,×2Ò2°3Ñ7Ô7¸¸"¸Ô=�Ý˜4‘y”y�Ø˜1’9�9Ø%�D�DØ˜Q’Y�YØ œ7Ÿ=š=™?œ?�D�Dð   §¢¨¡¤Ñ.¨sÑ2×9Ò9Ñ;Ô;�DØ—’ Ñ%Ô%Ð%Ø$��t‘�ð%ð	%ð 	%ð 	%ñ 	%ô 	%ð 	%ð 	%ð 	%ð 	%ð 	%ð 	%øøøð 	%ð 	%ð 	%ð 	%ð* !$Ô 2°4Ô 8Ñˆ�gØ,8ÐE�'˜Z˜LÑ(Ð(¸gˆð
ð 
àð
ñ 
ô 
ˆõ ˆw‰<Œ<�3˜x™=œ=Ò(Ð(µÐ3SÐ3SÐ3SÐ3SÈ7Ð3SÑ3SÔ3SÑ0SÔ0SÐ(Ý �.à%˜g˜g x xð1ñô ð ð
 ˜ˆÐs7   Â1GÂ6CÃGÃC	ÃGÃC	Ã CGÇGÇGc           	      ó.  — t          dddd¬¦  «        }|                      ¦   «         }|                      ¦   «         }|                     ||¦  «        }|                     ||¦  «        }|||||dz   |z   |dz   |z   |dz   |z   |dz   |z   fD ]}|                     |d ¦  «        }|� nŒ|rlt          |t           ¦  «        r/|                     ¦   «         D ]\  }	}
|
dd …         dvr|
d	z   ||	<   Œn(t          |t          ¦  «        sJ ‚|dd …         dvr|d	z  }|S )
Nr    r"   r$   r   )r!   r#   r%   r   Ú_ro   z)}$?\.+*ú$)Údictrb   r6   r|   Úpopr<   ÚitemsÚstr)r.   r   Ú
map2originrb   r6   Ú	map_marchÚmap_ccÚkeyÚregexÚkÚvs              r   Ú	arg_regexz_Test_CCompilerOpt.arg_regex�   sf  € ÝØØØØð	
ñ 
ô 
ˆ
ð —
’
‘”ˆ¨¯ª©¬˜gØ—N’N 5¨%Ñ0Ô0ˆ	Ø—’ ¨Ñ1Ô1ˆà�7˜I vØ�C‰K˜'Ñ!Ø˜‰O˜gÑ%Ø�C‰K˜&Ñ Ø˜‰O˜fÑ$ð
ð 		ð 		ˆCð —J’J˜s DÑ)Ô)ˆEØÐ Ø�ð !àð 	!Ý˜%¥Ñ&Ô&ð !Ø!ŸKšK™MœMð +ð +‘D�A�qØ˜˜˜”v [Ð0Ð0Ø#$ s¡7˜˜a™øð+õ " %­Ñ-Ô-Ð.Ð.Ð-Ø˜˜˜”: [Ð0Ð0Ø˜S‘L�EØˆr   r   c           	      ó¶  —  | j         di |¤Ž}|€d S |                      |||                     dd¦  «        |                     dd¦  «        ¬¦  «        }d                     |                     ¦   «         ¦  «        }|s't          |¦  «        dk    rt          d|z  ¦  «        ‚d S t          j        ||t          j	        ¦  «        st          d|›d	|›d
�¦  «        ‚d S )Nr/   r   r0   ri   r;   r   ú!expected empty features, not "%s"zdispatch features "ú" not match "ú"rN   )
rŸ   r^   r|   rB   Úcpu_dispatch_namesrC   r   r>   r?   Ú
IGNORECASE)r.   rg   re   r   r?   r`   Úfeaturess          r   Úexpectz_Test_CCompilerOpt.expect¯   ó  € Ø�”Ð(Ð( Ð(Ð(ˆØˆ=ØˆFØ�iŠiØ!°Ø—z’z ,°Ñ3Ô3Ø—z’z ,°Ñ3Ô3ð ñ 
ô 
ˆð
 —8’8˜C×2Ò2Ñ4Ô4Ñ5Ô5ˆØð 	Ý�8‰}Œ} Ò!Ð!Ý$Ø7¸(ÑBñô ð ð ˆFÝŒx˜˜x­¬Ñ7Ô7ð 	Ý �.Ø;C¸8¸8ÀUÀUÀUÐKñô ð ð	ð 	r   c           	      ó¶  —  | j         di |¤Ž}|€d S |                      |||                     dd¦  «        |                     dd¦  «        ¬¦  «        }d                     |                     ¦   «         ¦  «        }|s't          |¦  «        dk    rt          d|z  ¦  «        ‚d S t          j        ||t          j	        ¦  «        st          d|›d	|›d
�¦  «        ‚d S )Nr/   r   r0   ri   r;   r   r¡   zbaseline features "r¢   r£   rN   )
rŸ   r^   r|   rB   Úcpu_baseline_namesrC   r   r>   r?   r¥   )r.   re   rg   r   r?   r`   r¦   s          r   Úexpect_baselinez"_Test_CCompilerOpt.expect_baselineÄ   r¨   r   c           	      ó   —  | j         di |¤Ž}|€d S |                      |||                     dd¦  «        |                     dd¦  «        ¬¦  «        }d                     |                     ¦   «         ¦  «        }|s't          |¦  «        dk    rt          d|z  ¦  «        ‚d S t          j        ||¦  «        st          d|›d	|›d
�¦  «        ‚d S )Nr/   r   r0   ri   r;   r   zexpected empty flags not "%s"zflags "r¢   r£   rN   )	rŸ   r^   r|   rB   Úcpu_baseline_flagsrC   r   r>   r?   )r.   re   rg   r   r?   r`   rE   s          r   Úexpect_flagsz_Test_CCompilerOpt.expect_flagsÙ   sû   € Ø�”Ð(Ð( Ð(Ð(ˆØˆ=ØˆFØ�iŠiØ!°Ø—z’z ,°Ñ3Ô3Ø—z’z ,°Ñ3Ô3ð ñ 
ô 
ˆð
 —’˜×/Ò/Ñ1Ô1Ñ2Ô2ˆØð 	Ý�5‰zŒz˜QŠˆÝ$Ø3°eÑ;ñô ð ð ˆFÝŒx˜˜uÑ%Ô%ð 	Ý �.Ø/4¨u¨u°e°e°eÐ<ñô ð ð	ð 	r   c                 ó6  —  | j         di |¤Ž}|€d S  | j        d||dœ|¤Ž\  }}d                     |¦  «        }|s't          |¦  «        dk    rt	          d|z  ¦  «        ‚d S t          j        ||t
          j        ¦  «        st	          d|›d|›d�¦  «        ‚d S )	N©r‡   rˆ   r;   r   z expected empty targets, not "%s"z	targets "r¢   r£   rN   )rŸ   r�   rB   rC   r   r>   r?   r¥   )r.   r‡   rˆ   r   r?   r’   s         r   Úexpect_targetsz!_Test_CCompilerOpt.expect_targetsî   s×   € Ø�”Ð(Ð( Ð(Ð(ˆØˆ=ØˆFØ%�TÔ%ÐO¨g¸fÐOÐOÈÐOÐO‰
ˆ�Ø—(’(˜7Ñ#Ô#ˆØð 	Ý�7‰|Œ|˜qÒ Ð Ý$Ø6¸Ñ@ñô ð ð ˆFÝŒx˜˜w­¬Ñ6Ô6ð 	Ý �.Ø18°°¸%¸%¸%Ð@ñô ð ð	ð 	r   c           
      ó¤  —  | j         di |¤Ž}|€d S t          |t          ¦  «        sJ ‚|                      ||¬¦  «        \  }}|                     ¦   «         D ]x\  }}||vrt          d|z  ¦  «        ‚||         }	|s%t          |	¦  «        dk    rt          d|z  ¦  «        ‚t          j        ||	¦  «        st          d|›d|	›d|›d�¦  «        ‚Œyd S )	Nr°   zexpected to find target "%s"r   z+expected to find empty flags in target "%s"r£   z	" flags "r¢   rN   )	rŸ   r<   r”   r�   r–   r   rC   r>   r?   )
r.   r‡   rˆ   r   Ú
match_dictr’   Ú	tar_flagsÚ	match_tarÚmatch_flagsrE   s
             r   Úexpect_target_flagsz&_Test_CCompilerOpt.expect_target_flagsÿ   s'  € Ø#�T”^Ð-Ð- fÐ-Ð-ˆ
ØÐØˆFÝ˜*¥dÑ+Ô+Ð,Ð,Ð+Ø×'Ò'°ÀÐ'ÑGÔG‰ˆˆ9à&0×&6Ò&6Ñ&8Ô&8ð 	ð 	Ñ"ˆI�{Ø 	Ð)Ð)Ý$Ø2°YÑ>ñô ð ð ˜iÔ(ˆEØð Ý�u‘:”: ’?�?Ý(ØEÈ	ÑQñô ð õ ”8˜K¨Ñ/Ô/ð Ý$�nØ8A¸	¸	À5À5À5È+È+È+ÐVñô ð ðð	ð 	r   c                 ó‚  — | j         dk    rdnd}| j        dk    rdnd}|                      ¦   «         }t          t	          |d| j         z   ¦  «        ¦  «         t          t	          |d|z   ¦  «         ¦  «         t          t	          |d| j        z   ¦  «        ¦  «         t          t	          |d|z   ¦  «         ¦  «         d S )Nr"   r    r   r   Úcc_on_Úcc_is_)r\   r]   r`   r   Úgetattr)r.   Ú
wrong_archÚwrong_ccr`   s       r   Útest_interfacez!_Test_CCompilerOpt.test_interface  s½   € Ø $¤	¨WÒ 4Ð 4�W�W¸%ˆ
Ø $¤¨WÒ 4Ð 4�W�W¸%ˆØ�hŠh‰jŒjˆÝ•˜˜X¨¬	Ñ1Ñ2Ô2Ñ3Ô3Ð3Ý•G˜C ¨JÑ!6Ñ7Ô7Ð7Ñ8Ô8Ð8Ý•˜˜X¨¬Ñ/Ñ0Ô0Ñ1Ô1Ð1Ý•G˜C ¨HÑ!4Ñ5Ô5Ð5Ñ6Ô6Ð6Ð6Ð6r   c                 óà   — dD ]j\  }}|                       ||¬¦  «        }t          |                     ¦   «         ¦  «        dk    sJ ‚t          |                     ¦   «         ¦  «        dk    sJ ‚Œkd S )N))r   Únoner[   )z
none +noneznone - none)z	none -maxz	min - max)z+vsx2 -VSX2zvsx avx2 avx512f -max)z#max -vsx - avx + avx512f neon -MAX z+min -min + max -max -vsx + avx2 -avx2 +NONE©rj   rk   r   )r^   rC   rª   r¤   )r.   re   rg   r`   s       r   Útest_args_emptyz"_Test_CCompilerOpt.test_args_empty  s†   € ð#
ð 	7ð 	7ÑˆH�hð —)’)¨À�)ÑIÔIˆCÝ�s×-Ò-Ñ/Ô/Ñ0Ô0°AÒ5Ð5Ð5Ð5Ý�s×-Ò-Ñ/Ô/Ñ0Ô0°AÒ5Ð5Ð5Ð5Ð5ð	7ð 	7r   c                 ó¶   — |                       ¦   «         dk    rd S dD ];\  }}	 |                      ||¬¦  «         t          d¦  «        ‚# t          $ r Y Œ8w xY wd S )NÚunknown))zunkown_feature - max +minzunknown max min)z#avx2z$vsxrÁ   z+excepted an exception for invalid arguments)rb   r^   r   r   )r.   re   rg   s      r   Útest_args_validationz'_Test_CCompilerOpt.test_args_validation-  s„   € Ø�:Š:‰<Œ<˜9Ò$Ð$ØˆFð#
ð 	ð 	ÑˆH�hðØ—	’	 x¸h�	ÑGÔGÐGÝ$Ð%RÑSÔSÐSøÝ!ð ð ð Ø�ðøøøð	ð 	s   £&A	Á	
AÁAc                 óÖ   — |                       ddddd¬¦  «         |                       ddd	d
d¬¦  «         |                       ddddd¬¦  «         |                       ddddd¬¦  «         d S )Nzsse vsx neonÚsseÚvsxÚneonr   )r    r"   r$   rÄ   z)sse41 avx avx2 vsx2 vsx3 neon_vfpv4 asimdzsse41 avx avx2ú	vsx2 vsx3zneon_vfpv4 asimdzsse neon vsx)re   r    r"   r$   zavx2 vsx3 asimdhp)r§   r8   s    r   Ú	test_skipz_Test_CCompilerOpt.test_skip;  s´   € ð 	�ŠØØ˜U¨&¸"ð 	ñ 	
ô 	
ð 	
ð 	�ŠØ7Ø$ØØ&Øð 	ñ 	
ô 	
ð 	
ð 	�ŠØ ^Ø˜" Bð 	ñ 	
ô 	
ð 	
ð 	�ŠØÐ*=Ø˜" Bð 	ñ 	
ô 	
ð 	
ð 	
ð 	
r   c           	      ó   — |                       dddd¬¦  «         	 dD ]F\  }}d|›d|›d	�}|                       |d
|z  ||¬¦  «         |                       |d|z  ||¬¦  «         ŒGdD ]4}|D ]/}|                       |dd                     |¦  «        z  ¬¦  «         Œ0Œ5|                       dd¬¦  «         dD ]}|                       |d¬¦  «         Œd S )Nzfma3 avx2 asimd vsx3zsse .* sse41 .* fma3.*avx2zvsx vsx2 vsx3zneon neon_fp16 neon_vfpv4 asimd)r    r"   r$   )©Úfma3Úavx2)Úavx512fÚavx512cdz.* sse42 .* z .*r“   z.* sse42 .* %s$)Úx86_gccÚx86_iccÚx86_iccwz.* avx .* %s$)rÍ   )rÐ   rÑ   Ú
avx512_skxz.*%sr;   )Úx86_msvcrÈ   úvsx vsx2)r#   )rÉ   Ú	neon_fp16Ú
neon_vfpv4Úasimd)r%   )r«   rB   )r.   Úf0Úf1ÚdiffrG   Úffs         r   Útest_impliesz_Test_CCompilerOpt.test_impliesS  sm  € ð 	×ÒØ"à0Ø#Ø5ð 	ñ 	
ô 	
ð 	
ð	ð

ð 	ð 	‰FˆB��ð .0¨R¨R°°°Ð4ˆDØ× Ò  Ø)¨BÑ.Ø tð !ñ ô ð ð × Ò  Ø'¨"Ñ,Ø tð !ñ ô ð ð ð
 Kð 	ð 	ˆAØð ð �Ø×$Ò$ RØ# c§h¢h¨q¡k¤kÑ1ð %ñ ô ð ð ðð 	×Ò˜U¨JÐÑ7Ô7Ð7à=ð 	Oð 	OˆAØ× Ò  Ð,MÐ ÑNÔNÐNÐNð	Oð 	Or   c                 ó¼  — dD ]‘}|dk    r|                       ¦   «         dk    rŒ!|                      |ddddd¬¦  «         |                      |ddd	d
ddd¬¦  «         |                      |ddddd¬¦  «         |                      |ddddddd¬¦  «         Œ’|                      dddddddd¬¦  «         |                      dddd¬¦  «         	 |                      ddd d d d d ¬!¦  «         |                      ¦   «         d"k    r$t          d#|                      ¦   «         z  ¦  «        ‚d S # t          $ r+ |                      ¦   «         d"k    rt          d$¦  «        ‚Y d S w xY w)%N)rh   Únativerá   r   z.*cpu_(sse|vsx|neon|vx).cr   )r/   r    r"   r$   r&   z".*cpu_(sse3|vsx2|neon_vfpv4|vxe).czsse sse2rÈ   zneon neon_fp16Úvx)r/   r    r"   r$   r%   r#   r&   z.*cpu_(popcnt|vsx3).czsse .* sse41r×   zneon 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 .*zvsx vsx2 vsx3 vsx4.*zvx vxe vxe2.*)rÒ   rÓ   rÔ   rÖ   r$   r"   r&   rf   zsse sse2 sse3zneon neon_fp16 .* asimd)r    r!   r$   r%   r"   r#   r&   z.*cpu_(sse2|vsx2).c)r/   r    r#   z..*(-march=native|-xHost|/QxHost|-mcpu=a64fx).*ú.*)r0   r    r"   r$   r&   r%   rÄ   úexcepted an exception for %súexcepted no exceptions)r6   r§   rb   r   r   )r.   Úos     r   Útest_args_optionsz$_Test_CCompilerOpt.test_args_options|  s  € à"ð 	ð 	ˆAØ�HŠ}ˆ} §¢¡¤°6Ò!9Ð!9ØØ�KŠK˜Ø6Ø˜b¨°"ð ñ ô ð ð �KŠK˜Ø?Ø eÐ3CØ B¨dð ñ ô ð ð
 �KŠK˜Ø2Ø"¨*Ø2Ø#ð	 ñ ô ð ð �KŠK˜ØWàKØLàBØ3Ø,Ø%ð ñ 
ô 
ð 
ð 
ð 	�Š�EØ ØÐ7Ø˜j°ð 	ñ 	
ô 	
ð 	
ð
 	�ŠØÐ3Ø˜Bð 	ñ 	
ô 	
ð 	
ð	?Ø�KŠK˜ØKØ ¨D¸Àdð ñ ô ð ð �zŠz‰|Œ|˜yÒ(Ð(Ý$Ø2°T·Z²Z±\´\ÑAñô ð ð )Ð(øõ ð 	?ð 	?ð 	?Ø�zŠz‰|Œ|˜yÒ(Ð(Ý$Ð%=Ñ>Ô>Ð>ð )Ð(Ð(ð	?øøøs   ÃAD& Ä&1EÅEc                 ó�  — |                       dddd|                      ¦   «         dk    rdndddddd¬	¦
  «
         |                       d
dd¬¦  «         |                       ddd¬¦  «         |                       dd¬¦  «         |                       dd¬¦  «         |                       dd¬¦  «         |                       dd¬¦  «         d S )Nz'sse sse2 vsx vsx2 neon neon_fp16 vx vxez-msse -msse2z
/arch:SSE2r    r   z-mcpu=power8z"-mfpu=neon-fp16 -mfp16-format=ieeez-mzvector -march=arch12)	rÒ   rÓ   rÔ   rÖ   Ú	ppc64_gccÚppc64_clangÚ	armhf_gccr%   r&   rÚ   z;-mfp16-format=ieee -mfpu=neon-fp-armv8 -march=armv8-a\+simd)r%   rì   Úasimdhpz-march=armv8.2-a\+fp16z=-mfp16-format=ieee -mfpu=neon-fp-armv8 -march=armv8.2-a\+fp16)Úaarch64_gccrì   Úasimddpz-march=armv8.2-a\+dotprod)rî   Úasimdfhmz-march=armv8.2-a\+fp16\+fp16fmlzasimddp asimdhp asimdfhmz(-march=armv8.2-a\+dotprod\+fp16\+fp16fmlrã   z-mzvector -march=arch13)r&   )r®   rb   r8   s    r   Ú
test_flagsz_Test_CCompilerOpt.test_flags´  s@  € Ø×ÒØ5Ø"¨NØ!Ø%)§Z¢Z¡\¤\°UÒ%:Ð%:�\�\ÀØ%Ø&Ø:ØØ+ð 	ñ 
	
ô 
	
ð 
	
ð 	×ÒØØØTð 	ñ 	
ô 	
ð 	
ð
 	×ÒØØ1ØVð 	ñ 	
ô 	
ð 	
ð
 	×ÒØÐ#?ð 	ñ 	
ô 	
ð 	
ð 	×ÒàÐ$Fð 	ñ 	
ô 	
ð 	
ð 	×ÒØ&ØCð 	ñ 	
ô 	
ð 	
ð 	×ÒØØ,ð 	ñ 	
ô 	
ð 	
ð 	
ð 	
r   c                 ó,  — dD ]�}	 |                       |dddd¬¦  «         |                      ¦   «         dk    r$t          d|                      ¦   «         z  ¦  «        ‚ŒZ# t          $ r* |                      ¦   «         dk    rt          d¦  «        ‚Y Œ�w xY wd S )N)zbla 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   )r    r$   r"   r&   rÄ   rå   ræ   )r±   rb   r   r   ©r.   r‡   s     r   Útest_targets_exceptionsz*_Test_CCompilerOpt.test_targets_exceptionsÛ  s×   € ð
ð 	Cð 	CˆGð CØ×#Ò#ØØ "¨B°bð $ñ ô ð ð —:’:‘<”< 9Ò,Ð,Ý(Ø6¸¿º¹¼ÑEñô ð ð -øõ "ð Cð Cð CØ—:’:‘<”< 9Ò,Ð,Ý(Ð)AÑBÔBÐBð -Ð,ðCøøøð3	Cð 	Cs   †AAÁ1BÂBc           	      óF   — dD ]}|                       |ddddd¬¦  «         Œd S )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   )r    r"   r$   r&   rÄ   ©r±   ró   s     r   Útest_targets_syntaxz&_Test_CCompilerOpt.test_targets_syntaxù  sN   € ð
ð !	ð !	ˆGð> ×Ò Ø ¨f¸DÈ"ð  ñ ô ð ð ð?!	ð !	r   c                 óê   — |                       dddddd¬¦  «         |                       dd	d
dddd¬¦  «         |                       dd	ddddd¬¦  «         |                       dd	dddddddd¬¦
  «
         d S )NzÑ
            /*@targets
                sse sse2 sse41 avx avx2 avx512f
                vsx vsx2 vsx3 vsx4
                neon neon_fp16 asimdhp asimddp
                vx vxe vxe2
            */
            zavx vsx2 asimd vx vxeúavx512f avx2zasimddp asimdhpz	vsx4 vsx3Úvxe2)re   r    r$   r"   r&   z»
            /*@targets
                sse41 avx avx2 avx512f
                vsx2 vsx3 vsx4
                asimd asimdhp asimddp
                vx vxe vxe2
            */
            r   z"sse41 avx2 vsx2 asimd asimddp vxe2z
avx2 sse41úasimddp asimdÚvsx2)re   rg   r    r$   r"   r&   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 neonzvxe vx)re   r/   r    r"   r$   r&   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 sse2zavx512cd avx2 avx sse2zvsx3 vsx2 vsxú	vsx3 vsx2z8asimdfhm asimddp asimdhp asimd neon_vfpv4 neon_fp16 neonzasimdfhm asimddp asimdhp asimd)	re   rÒ   rÖ   rÓ   rÔ   r"   r#   r$   r%   rö   r8   s    r   Útest_targetsz_Test_CCompilerOpt.test_targets  sê   € à×Òðð -ØÐ&7¸{Øð 	ñ 	
ô 	
ð 	
ð 	×Òðð Ð"FØ O¸6Èð 	ñ 	
ô 	
ð 	
ð 	×Òðð ØBØ F°.Øð 	ñ 	
ô 	
ð 	
ð 	×Òðð Ø9Ø-Ø,Ø-Ø!ØØLØ4ð# 	ñ 	
ô 	
ð 	
ð 	
ð 	
r   c           
      ó†  — |                       ddddddd¬¦  «         |                       d	d
dddd¬¦  «         |                       dddd|                      ¦   «         dk    rdndddd¬¦  «         dD ]*}|                      d|z  ddiddiddiddiddi¬¦  «         Œ+|                      dddiddidd idd!iddi¬¦  «         d S )"NzÞ
            /*@targets
                $keep_baseline
                sse2 sse42 avx2 avx512f
                vsx2 vsx3
                neon neon_vfpv4 asimd asimddp
                vx vxe vxe2
            */
            zsse41 avx2 vsx2 asimd vsx3 vxezavx512f avx2 sse42 sse2rý   zasimddp asimd neon_vfpv4 neonrû   zvxe2 vxe vx)re   r    r"   r$   r%   r&   zæ
            /*@targets
                $keep_baseline $keep_sort
                avx512f sse42 avx2 sse2
                vsx2 vsx3
                asimd neon neon_vfpv4 asimddp
                vxe vxe2
            */
            zavx512f sse42 avx2 sse2rÊ   zasimd neon neon_vfpv4 asimddpzasimd asimddpzvxe vxe2)r    r"   r$   r%   r&   zÜ
            /*@targets
                $keep_baseline $keep_sort $autovec
                avx512f avx2 sse42 sse41 sse2
                vsx3 vsx2
                asimddp asimd neon_vfpv4 neon
            */
            zavx512f avx2 sse42 sse41 sse2r    zavx512f avx2 sse2rù   )rÒ   rÓ   rÔ   rÖ   r"   r$   r%   )z$maxoptz$autovecz/*@targets baseline %s */re   z.*-O3.*z.*/O3.*z.*/O2.*rä   )r   r   r   r   rÄ   z/*@targets baseline $werror */z.*-Werror.*z.*/Werror.*z.*/WX.*)r±   rb   r·   )r.   Úpolicys     r   Útest_targets_policiesz(_Test_CCompilerOpt.test_targets_policies]  sv  € à×Òðð 6Ø)ØØ1à#Øð! 	ñ 	
ô 	
ð 	
ð& 	×Òðð *ØØ1à#Øð 	ñ 	
ô 	
ð 	
ð& 	×Òðð 4Ø3Ø4àŸ
š
™œ¨Ò-Ð-ð )Ð(Ø3AØØ1à#ð# 	ñ 	
ô 	
ð 	
ð& .ð 	ð 	ˆFà×$Ò$Ø+¨fÑ4Ø 	Ð*°¸IÐ0FØ  Ð+°:¸iÐ2HØ# DÐ)ð	 %ñ ô ð ð ð 	× Ò Ø,Ø˜MÐ*°¸MÐ0JØ˜]Ð+°:¸iÐ2HØ Ð%ð	 	!ñ 	
ô 	
ð 	
ð 	
ð 	
r   c           	      ó¬   — |                       dt          d¬¦  «        ddd¬¦  «         |                       dt          d	d
¬¦  «        ddddd¬¦  «         d S )NzK
            /*@targets $keep_baseline baseline #test_group */
            zˆ
                    $keep_baseline
                    asimddp sse2 vsx2 avx2 vsx3
                    avx512f asimdhp
                )Ú
test_groupzavx512f avx2 sse2 baselinezvsx3 vsx2 baselinezasimddp asimdhp baseline)rˆ   r    r"   r$   zÂ
            /*@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
                )Útest_group_1Útest_group_2zavx512f avx2 avx sse42 sse41rý   Úvsx3zasimdfhm asimddp asimdzasimdfhm asimddp)rˆ   r    r"   r#   r$   r%   )r±   r”   r8   s    r   Útest_targets_groupsz&_Test_CCompilerOpt.test_targets_groups©  s¥   € Ø×Òðõ ððñ ô ð -Ø&Ø,ð 	ñ 	
ô 	
ð 	
ð  	×Òðõ ððð	ñ ô ð /ØàØ*à&ð1 	ñ 	
ô 	
ð 	
ð 	
ð 	
r   c                 óÒ   — |                       ddd¬¦  «         |                       ddddd¬	¦  «         |                       d
dddd¬¦  «         |                       ddddd¬¦  «         d S )Nzm
            /*@targets
                (avx512_clx avx512_cnl) (asimdhp asimddp)
            */
            z\(avx512_clx avx512_cnl\)z\(asimdhp asimddp\))r    r$   zË
            /*@targets
                f16c (sse41 avx sse42) (sse3 avx2 avx512f)
                vsx2 (vsx vsx3 vsx2)
                (neon neon_vfpv4 asimd asimdhp asimddp)
            */
            zavx512f f16c avxrý   r  )r    r"   r#   r$   zê
            /*@targets $keep_sort
                (sse41 avx sse42) (sse3 avx2 avx512f)
                (vsx vsx3 vsx2)
                (asimddp neon neon_vfpv4 asimd asimdhp)
                (vx vxe vxe2)
            */
            zavx avx512frú   )r    r"   r$   r&   zz
            /*@targets $keep_sort
                fma3 avx2 (fma3 avx2) (avx2 fma3) avx2 fma3
            */
            zfma3 avx2 \(fma3 avx2\)rÏ   )rÒ   rÓ   rÔ   rÖ   rö   r8   s    r   Útest_targets_multiz%_Test_CCompilerOpt.test_targets_multiÕ  sË   € Ø×Òðð
 -Ø(ð 	ñ 	
ô 	
ð 	
ð 	×Òðð #ØØØ(ð 	ñ 	
ô 	
ð 	
ð 	×Òðð ØØ(Øð 	ñ 	
ô 	
ð 	
ð 	×Òðð
 /Ø VØð 	ñ 		
ô 		
ð 		
ð 		
ð 		
r   ©r   )rP   rQ   rR   r\   r]   rY   r^   r`   rb   r6   r�   rŸ   r§   r«   r®   r±   r·   r¾   rÂ   rÅ   rË   rß   rè   rñ   rô   r÷   rþ   r  r  r	  rN   r   r   rU   rU   M   sÉ  € € € € € Ø€DØ€Bðð ð ð1ð 1ð 1ðð ð ð
#ð #ð #ð"ð "ð "ð*ð *ð *ðXð ð ð>ð ð ð ð*ð ð ð ð*ð ð ð ð* .0ð ð ð ð ð" 35ð ð ð ð ð.7ð 7ð 7ð7ð 7ð 7ðð ð ð
ð 
ð 
ð0'Oð 'Oð 'OðR6?ð 6?ð 6?ðp%
ð %
ð %
ðNCð Cð Cð<"ð "ð "ðH>
ð >
ð >
ð@J
ð J
ð J
ðX*
ð *
ð *
ðX1
ð 1
ð 1
ð 1
ð 1
r   rU   c                 óÐ   — t           r0t          j        d¦  «                             | dz   |z   | |¬¦  «        S t          j        d¦  «                             | dz   |z   | |¬¦  «        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()
    r’   )Ú
class_namer\   r]   zo    class TestCCompilerOpt_{class_name}(_Test_CCompilerOpt):
        arch = '{arch}'
        cc   = '{cc}'
    )Úis_standaloner2   r3   r4   )r\   r]   s     r   Únew_testr    s‡   € Ýð 	�Xœ_ð .ñ 	ô 	÷ 
ŠØ˜#‘: ‘?¨°"ð 
ñ 
ô 
ð	õ Œ?ð ñ 	ô 	÷ 
ŠØ˜#‘: ‘?¨°"ð 
ñ 
ô 
ð	r   r
  )%r>   r2   r}   r   r   Údistutils.errorsr   rP   Ú__package__r  ÚunittestÚ
contextlibr
   r   r„   ÚabspathrB   ÚdirnameÚ__file__Úccompiler_optr   Úcontextmanagerr   r   Únumpy.distutils.ccompiler_optÚnumpy.testingr”   Úarch_compilersr)   rU   r  r–   r\   Ú	compilersr]   ÚexecÚmainrN   r   r   ú<module>r     sh  ðØ Ð Ð Ð Ð Ð Ð Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ð Ð Ø +Ð +Ð +Ð +Ð +Ð +à˜JÒ&Ð>¨;¸$Ð+>€Øð /Ø1Ð1Ð1Ð1Ð1Ð1Ð1Ð1Ð1Ð1Ð1Ð1Ð1Ð1Ð1Ð1Ø„H‡O‚O�L�D”L  ¤¨<¨4¬<¸Ñ+AÔ+AÀ4Ñ!HÔ!HÑIÔIÑJÔJÐJØ*Ð*Ð*Ð*Ð*Ð*ð Ôð"ð "ñ Ôð"ð&ð &ð &ð &ð &ð ;Ð:Ð:Ð:Ð:Ð:Ø.Ð.Ð.Ð.Ð.Ð.Ð.Ð.ð �Ø
1Ø
1ØØØØ%ØØð	ñ 	ô 	€ð$ð $ð $ð $ð $�|ñ $ô $ð $ðLy

ð y

ð y

ð y

ð y

ñ y

ô y

ð y

ðvð ð ð$ð &×+Ò+Ñ-Ô-ð !ð !�O€Dˆ)Øð !ð !ˆØˆˆXˆX�d˜BÑÔÑ Ô Ð Ð ð!ð ð Ø€H„M�O„O€O€O€Oðð r   