§
    ƒÛgü(  ã                   óº  — d dl Z d dlZ d dlmZmZ d dlmZmZ d dlmZm	Z	m
Z
mZmZ d dlmZ d dlmZ d dlmZmZmZmZmZmZmZ d dlmZ d d	lmZmZmZ d d
lm Z m!Z!m"Z"m#Z#m$Z$m%Z%m&Z&m'Z'm(Z(m)Z) d dlm*Z*m+Z+m,Z,m-Z-m.Z.m/Z/m0Z0m1Z1m2Z2m0Z0 d dl3Z4d dl5m6Z6m7Z7 d dl8Z8d„ Z9d„ Z:e j;        d„ ¦   «         Z<d„ Z=d„ Z> G d„ de8j?        ¦  «        Z@eAdk    r e8jB        ¦   «          dS dS )é    N)Úir_utilsÚcpu)Úcompile_isolatedÚFlags)ÚtypesÚtypingÚirÚconfigÚcompiler)Ú
cpu_target)Útype_annotations)Úcopy_propagateÚapply_copy_propagateÚget_name_var_tableÚremove_delsÚremove_deadÚremove_call_handlersÚalias_func_extensions)Útype_inference_stage)ÚFunctionPassÚregister_passÚPassManager)
ÚExtractByteCodeÚTranslateByteCodeÚ	FixupArgsÚIRProcessingÚDeadBranchPruneÚRewriteSemanticConstantsÚGenericRewritesÚWithLiftingÚ
PreserveIRÚInlineClosureLikes)
ÚNopythonTypeInferenceÚAnnotateTypesÚNopythonRewritesÚPreParforPassÚ
ParforPassÚDumpParforDiagnosticsÚNativeLoweringÚIRLegalizationÚNoPythonBackendr)   )Úskip_parfors_unsupportedÚ
needs_blasc                 ó<   — d}|}| dk    r||z   }nd}d|z  }|| k     S )Né   r   é   © )ÚbÚzÚwÚx1ÚxÚyÚas          úR/granary/edev/quantum/lib/python3.11/site-packages/numba/tests/test_remove_dead.pyÚtest_will_propagater:       s7   € Ø	
€BØ
€AØˆ1‚u€uØ�‰EˆˆàˆØ	ˆA‰€AØˆqŠ5€Ló    c                 ó   — d S ©Nr1   )r8   r2   ÚcÚds       r9   Ú	null_funcr@   *   s   € Ø	€Er;   c                 ó   — | S r=   r1   )ÚAs    r9   Údummy_aliased_funcrC   -   s   € à€Hr;   c                 óJ   — t          j        | |d         j        ||¦  «         d S )Nr   )r   Ú
_add_aliasÚname)Úlhs_nameÚargsÚ	alias_mapÚarg_aliasess       r9   Úalias_ext_dummy_funcrK   1   s%   € ÝÔ˜ $ q¤'¤,°	¸;ÑGÔGÐGÐGÐGr;   c                 óÔ   — | j                              ¦   «         D ]M\  }}t          |j        ¦  «        D ]3\  }}t	          |t
          j        ¦  «        r|j        j        |k    r  dS Œ4ŒNdS )NTF)	ÚblocksÚitemsÚ	enumerateÚbodyÚ
isinstancer	   ÚAssignÚtargetrF   )Úfunc_irÚvarÚlabelÚblockÚiÚinsts         r9   ÚfindLhsAssignrZ   4   sy   € Øœ×,Ò,Ñ.Ô.ð ð ‰ˆˆuÝ  ¤Ñ,Ô,ð 	ð 	‰GˆAˆtÝ˜$¥¤	Ñ*Ô*ð ¨t¬{Ô/?ÀÒ/DÐ/DØ�t�t�tøð	ð ˆ5r;   c                   óœ   — e Zd ZdZd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zd
„ Zeed„ ¦   «         ¦   «         Zd„ Zd„ Zd„ Zd„ Zed„ ¦   «         ZdS )ÚTestRemoveDeadFc                 ó¾   — t          ¦   «         }t          j        d¦  «        |_        d|_        t          j        d¦  «        |_        t          |||¬¦  «        j        S )NT)Úflags)	r   r   ÚParallelOptionsÚauto_parallelÚnrtÚFastMathOptionsÚfastmathr   Úentry_point)ÚselfÚfuncÚ	arg_typesÚfast_pflagss       r9   Úcompile_parallelzTestRemoveDead.compile_parallel@   sP   € Ý‘g”gˆÝ$'Ô$7¸Ñ$=Ô$=ˆÔ!ØˆŒÝ"Ô2°4Ñ8Ô8ˆÔÝ  i°{ÐCÑCÔCÔOÐOr;   c                 óÐ  — t          j        ¦   «         }t          j        |¦  «        }t	          j        t          ¦  «        }t          j        ||¦  «        5  | 	                    ¦   «          | 	                    ¦   «          t          j        t          j        t          j        f}t          ||||d ¦  «        \  }}}}t          |j        ¦  «         t          |j        |¦  «        \  }}	t!          |j        |t#          |j        ¦  «        ||¦  «         t%          |j        |j        |¦  «         |                      t+          |d¦  «        ¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nr6   )r   ÚContextr   Ú
CPUContextr   Úrun_frontendr:   r   Únested_contextÚrefreshr   Úint64r   r   rM   r   r   r   r   Ú	arg_namesÚassertFalserZ   )
re   Ú	typingctxÚ	targetctxÚtest_irrH   ÚtypemapÚ_Ú	calltypesÚin_cpsÚout_cpss
             r9   Útest1zTestRemoveDead.test1G   s|  € Ý”NÑ$Ô$ˆ	Ý”N 9Ñ-Ô-ˆ	ÝÔ'Õ(;Ñ<Ô<ˆÝÔ& y°)Ñ<Ô<ð 
	:ð 
	:Ø×ÒÑÔÐØ×ÒÑÔÐÝ”K¥¤­e¬kÐ:ˆDÝ';¸IÀyÐRYÐ[_ÐaeÑ'fÔ'fÑ$ˆG�Q˜	 1Ý˜œÑ'Ô'Ð'Ý,¨W¬^¸WÑEÔE‰OˆF�GÝ  ¤°Õ9KÈGÌNÑ9[Ô9[Ð]dÐfoÑpÔpÐpå˜œ¨Ô(9¸7ÑCÔCÐCØ×Ò�]¨7°CÑ8Ô8Ñ9Ô9Ð9ð
	:ð 
	:ð 
	:ñ 
	:ô 
	:ð 
	:ð 
	:ð 
	:ð 
	:ð 
	:ð 
	:ð 
	:øøøð 
	:ð 
	:ð 
	:ð 
	:ð 
	:ð 
	:s   ÁC8EÅEÅ"Ec                 ó¬   — d„ }d„ }t          j        |¦  «        }t          |j        |j        |¦  «         |                       ||¦  «        ¦  «         d S )Nc                  óD   — t           j                             d¦  «         d S )Nr0   )ÚnpÚrandomÚseedr1   r;   r9   Úcall_np_random_seedz1TestRemoveDead.test2.<locals>.call_np_random_seedX   s   € ÝŒI�NŠN˜1ÑÔÐÐÐr;   c                 ó  — | j         d         j        D ]v}t          |t          j        ¦  «        rZt          |j        t          j        ¦  «        r;|j        j        dk    r+|                      |j        j	        ¦  «        j
        dk    r dS ŒwdS )Nr   Úcallr€   TF)rM   rP   rQ   r	   rR   ÚvalueÚExprÚopÚget_definitionrf   Úattr)rT   rY   s     r9   Úseed_call_existsz.TestRemoveDead.test2.<locals>.seed_call_exists[   s�   € Øœ qÔ)Ô.ð  ð  �Ý˜t¥R¤YÑ/Ô/ð  Ý˜tœz­2¬7Ñ3Ô3ð à”J”M VÒ+Ð+Ø×*Ò*¨4¬:¬?Ñ;Ô;Ô@ÀFÒJÐJØ˜4˜4øØ�5r;   )r   rm   r   rM   rq   Ú
assertTrue)re   r�   r‰   ru   s       r9   Útest2zTestRemoveDead.test2W   sn   € ð	ð 	ð 	ð	ð 	ð 	õ Ô'Ð(;Ñ<Ô<ˆÝ�G”N GÔ$5°wÑ?Ô?Ð?Ø�ŠÐ(Ð(¨Ñ1Ô1Ñ2Ô2Ð2Ð2Ð2r;   c                 ój  — t          j        d¦  «                             dd¦  «        }|                     ¦   «         }d}|                      |t          j        |¦  «        t          j        |¦  «        f¦  «        } |||¦  «          |||¦  «         t           j                             ||¦  «         d S )Né   r0   r/   r   )	r~   ÚarangeÚreshapeÚcopyri   ÚnumbaÚtypeofÚtestingÚassert_array_equal)re   rf   ÚA1ÚA2rX   Úpfuncs         r9   Úrun_array_index_testz#TestRemoveDead.run_array_index_testh   s™   € ÝŒY�q‰\Œ\×!Ò! ! AÑ&Ô&ˆØ�WŠW‰YŒYˆØˆØ×%Ò% d­U¬\¸"Ñ-=Ô-=½u¼|ÈA¹¼Ð,OÑPÔPˆàˆˆR�‰ŒˆØˆˆb�!‰ŒˆÝ
Œ
×%Ò% b¨"Ñ-Ô-Ð-Ð-Ð-r;   c                 ó6   — d„ }|                       |¦  «         d S )Nc                 ó8   — |                       ¦   «         }d||<   d S ©Nr/   )Úravel©rB   rX   ÚBs      r9   rf   z-TestRemoveDead.test_alias_ravel.<locals>.funcs   s   € Ø—’‘	”	ˆAØˆAˆa‰DˆDˆDr;   ©r˜   ©re   rf   s     r9   Útest_alias_ravelzTestRemoveDead.test_alias_ravelr   ó-   € ð	ð 	ð 	ð 	×!Ò! $Ñ'Ô'Ð'Ð'Ð'r;   c                 ó6   — d„ }|                       |¦  «         d S )Nc                 ó   — | j         }d||<   d S r›   )Úflatr�   s      r9   rf   z,TestRemoveDead.test_alias_flat.<locals>.funcz   s   € Ø”ˆAØˆAˆa‰DˆDˆDr;   rŸ   r    s     r9   Útest_alias_flatzTestRemoveDead.test_alias_flaty   r¢   r;   c                 ó6   — d„ }|                       |¦  «         d S )Nc                 ó"   — | j         }d||df<   d S ©Nr/   r   )ÚTr�   s      r9   rf   z2TestRemoveDead.test_alias_transpose1.<locals>.func�   s   € Ø”ˆAØˆAˆa�ˆc‰FˆFˆFr;   rŸ   r    s     r9   Útest_alias_transpose1z$TestRemoveDead.test_alias_transpose1€   ó-   € ð	ð 	ð 	ð 	×!Ò! $Ñ'Ô'Ð'Ð'Ð'r;   c                 ó6   — d„ }|                       |¦  «         d S )Nc                 ó<   — |                       ¦   «         }d||df<   d S r©   )Ú	transposer�   s      r9   rf   z2TestRemoveDead.test_alias_transpose2.<locals>.funcˆ   s    € Ø—’‘”ˆAØˆAˆa�ˆc‰FˆFˆFr;   rŸ   r    s     r9   Útest_alias_transpose2z$TestRemoveDead.test_alias_transpose2‡   r¬   r;   c                 ó6   — d„ }|                       |¦  «         d S )Nc                 ó<   — t          j        | ¦  «        }d||df<   d S r©   )r~   r¯   r�   s      r9   rf   z2TestRemoveDead.test_alias_transpose3.<locals>.func�   s    € Ý”˜Q‘”ˆAØˆAˆa�ˆc‰FˆFˆFr;   rŸ   r    s     r9   Útest_alias_transpose3z$TestRemoveDead.test_alias_transpose3Ž   r¬   r;   c                 ó0  ‡— ddl m}  |¦   «                              t          j        ¦  «        Šˆfd„}t
          d d …         }t          j        |¦  «         ˆfd„}t          j        d¦  «        }| 	                    ¦   «         }	 |  
                    |t          j        |¦  «        f¦  «        } t          j        |¦  «        |¦  «          ||¦  «         |t
          d d …<   n# |t
          d d …<   w xY w|                      |d         |d         ¦  «         d S )Nr   )Ú_BLASc                 ó>   •— |‰gk    r| j         d         j        |vS dS )Né   F)rH   rF   )ÚrhsÚlivesÚ	call_listÚxxnrm2s      €r9   Úremove_dead_xxnrm2z<TestRemoveDead.test_alias_ctypes.<locals>.remove_dead_xxnrm2œ   s)   ø€ Ø˜V˜HÒ$Ð$Ø”x ”{Ô'¨uÐ4Ð4Ø�5r;   c                 ób   •— t          j        d¦  «        } ‰dd|j        d| j        ¦  «         d S )Nr·   éd   é   )r~   ÚonesÚctypes)Úretr8   r»   s     €r9   rf   z.TestRemoveDead.test_alias_ctypes.<locals>.func¦   s2   ø€ Ý”˜‘
”
ˆAØˆF�3˜˜1œ8 Q¨¬
Ñ3Ô3Ð3Ð3Ð3r;   r¿   )Únumba.np.linalgrµ   Únumba_xxnrm2r   Úfloat64r   Úappendr~   Úzerosr�   ri   r‘   r’   ÚnjitÚassertEqual)	re   rµ   r¼   Úold_remove_handlersrf   r•   r–   r—   r»   s	           @r9   Útest_alias_ctypesz TestRemoveDead.test_alias_ctypes•   sE  ø€ ð 	*Ð)Ð)Ð)Ð)Ð)Ø�‘”×%Ò%¥e¤mÑ4Ô4ˆð	ð 	ð 	ð 	ð 	õ 3°1°1°1Ô5ÐÝÔ#Ð$6Ñ7Ô7Ð7ð	4ð 	4ð 	4ð 	4ð 	4õ ŒX�a‰[Œ[ˆØ�WŠW‰YŒYˆð	:Ø×)Ò)¨$µ´¸bÑ1AÔ1AÐ0CÑDÔDˆEØ�EŒJ�tÑÔ˜RÑ Ô Ð ØˆE�"‰IŒIˆIð ':Õ    Ñ#Ð#øÐ&9Õ    Ñ#Ð9Ð9Ð9Ð9à×Ò˜˜Aœ  1¤Ñ&Ô&Ð&Ð&Ð&s   ÂAC# Ã#C1c                 ó6   — d„ }|                       |¦  «         d S )Nc                 ó>   — t          j        | d¦  «        }d||df<   d S )N)r/   r0   r/   r   )r~   r�   r�   s      r9   rf   z0TestRemoveDead.test_alias_reshape1.<locals>.func¸   s$   € Ý”
˜1˜eÑ$Ô$ˆAØˆAˆa�ˆc‰FˆFˆFr;   rŸ   r    s     r9   Útest_alias_reshape1z"TestRemoveDead.test_alias_reshape1·   r¬   r;   c                 ó6   — d„ }|                       |¦  «         d S )Nc                 ó@   — |                       dd¦  «        }d||df<   d S )Nr/   r0   r   )r�   r�   s      r9   rf   z0TestRemoveDead.test_alias_reshape2.<locals>.func¿   s$   € Ø—	’	˜!˜A‘”ˆAØˆAˆa�ˆc‰FˆFˆFr;   rŸ   r    s     r9   Útest_alias_reshape2z"TestRemoveDead.test_alias_reshape2¾   r¬   r;   c                 ó¶   — d„ }t          j        ¦   «         }	 t          t           d<   |                      |¦  «         |t          _         d S # |t          _         w xY w)Nc                 ó2   — t          | ¦  «        }d||df<   d S r©   )rC   r�   s      r9   rf   z0TestRemoveDead.test_alias_func_ext.<locals>.funcÆ   s    € Ý" 1Ñ%Ô%ˆAØˆAˆa�ˆd‰GˆGˆGr;   )rC   znumba.tests.test_remove_dead)r   r�   rK   r˜   r   )re   rf   Úold_ext_handlerss      r9   Útest_alias_func_extz"TestRemoveDead.test_alias_func_extÅ   sr   € ð	ð 	ð 	õ
 1Ô5Ñ7Ô7Ðð	>å3Gõ "ð #0ñ 1à×%Ò% dÑ+Ô+Ð+ð .>�HÔ*Ð*Ð*øÐ-=�HÔ*Ð=Ð=Ð=Ð=s   ˜$A
 Á
Ac                 ó|   — d„ }|                        |¦   «          t          j        |¦  «        ¦   «         ¦  «         dS )zimake sure lhs variable of assignment is considered live if used in
        rhs (test for #6715).
        c                  ój   — t          d¦  «        D ]"}  d„ | ¦  «        }t          j        |¦  «        }Œ#|S )Nr/   c                 ó   — | S r=   r1   )Újs    r9   ú<lambda>zDTestRemoveDead.test_rm_dead_rhs_vars.<locals>.func.<locals>.<lambda>Ú   s   € ˜q€ r;   )Úranger~   Úarray)rX   r8   s     r9   rf   z2TestRemoveDead.test_rm_dead_rhs_vars.<locals>.funcØ   s<   € Ý˜1‘X”Xð  ð  �Ø �[�[ !Ñ$Ô$�Ý”H˜Q‘K”K��ØˆHr;   N)rÉ   r‘   rÈ   r    s     r9   Útest_rm_dead_rhs_varsz$TestRemoveDead.test_rm_dead_rhs_varsÔ   sH   € ð	ð 	ð 	ð 	×Ò˜˜™œÐ!1¥¤¨DÑ!1Ô!1Ñ!3Ô!3Ñ4Ô4Ð4Ð4Ð4r;   c                 ó0  — d„ }t          dd¬¦  «         G d„ dt          ¦  «        ¦   «         } G d„ dt          j        ¦  «        }  t	          j        |¬	¦  «        |¦  «        ¦   «         } |¦   «         }t          j                             ||¦  «         d
S )zWMake sure aliases are considered in remove dead extension for
        parfors.
        c                  ó´   — d} t           j        j                             ¦   «          t	          j        | ¦  «        }|}t          j        | ¦  «        D ]}|||<   Œ|S )Né   )r‘   ÚparforsÚparforÚinit_pranger~   ÚemptyÚprange)ÚnrB   rž   rX   s       r9   rf   z8TestRemoveDead.test_alias_parfor_extension.<locals>.funcå   sW   € ØˆAÝŒMÔ ×,Ò,Ñ.Ô.Ð.Ý”˜‘”ˆAØˆAÝ”\ !‘_”_ð ð �Ø��!‘�àˆHr;   FT)Úanalysis_onlyÚmutates_CFGc                   ó   — e Zd ZdZd„ Zd„ ZdS )úATestRemoveDead.test_alias_parfor_extension.<locals>.LimitedParforÚlimited_parforc                 ó.   — t          j        | ¦  «         d S r=   )r   Ú__init__)re   s    r9   rí   zJTestRemoveDead.test_alias_parfor_extension.<locals>.LimitedParfor.__init__ó   s   € ÝÔ% dÑ+Ô+Ð+Ð+Ð+r;   c                 óX  — t           j        j                             |j        |j        |j        |j        |j        |j	        j
        |j	        |j        |j        ¦	  «	        }t          |j        j        ¦  «         |j                             |j        j        ¦  «         |                     |j        j        ¦  «         t%          |j        j        |j        j        |j        |j        ¦  «         t           j        j                             |j        j        |j        j        |j        ¦  «         dS )NT)r‘   rá   râ   r'   rT   rv   rx   Úreturn_typers   r^   r`   ÚmetadataÚparfor_diagnosticsr   rM   Úarray_analysisÚrunÚ_convert_loopr   rq   Úget_parfor_paramsÚoptionsÚfusionÚnested_fusion_info)re   ÚstateÚparfor_passs      r9   Úrun_passzJTestRemoveDead.test_alias_parfor_extension.<locals>.LimitedParfor.run_passö   s  € Ý#œmÔ2×=Ò=Ø”MØ”MØ”OØÔ%Ø”OØ”KÔ-Ø”KØ”NØÔ,ñ
ô 
�õ ˜EœMÔ0Ñ1Ô1Ð1ØÔ*×.Ò.¨u¬}Ô/CÑDÔDÐDØ×)Ò)¨%¬-Ô*>Ñ?Ô?Ð?Ý˜EœMÔ0Ø!œMÔ3Ø!œMØ!œMñ+ô +ð +õ ”Ô$×6Ò6°u´}Ô7KØ0;Ô0CÔ0JØ0;Ô0NñPô Pð Pð �tr;   N)Ú__name__Ú
__module__Ú__qualname__Ú_namerí   rû   r1   r;   r9   ÚLimitedParforrê   ï   s7   € € € € € à$ˆEð,ð ,ð ,ðð ð ð ð r;   r   c                   ó   — e Zd ZdZd„ ZdS )ú@TestRemoveDead.test_alias_parfor_extension.<locals>.TestPipelinezÀTest pipeline that just converts prange() to parfor and calls
            remove_dead(). Copy propagation can replace B in the example code
            which this pipeline avoids.
            c                 óÆ  — d}t          |¦  «        }|                     t          d¦  «         |                     t          d¦  «         |                     t          d¦  «         |                     t
          d¦  «         | j        j        j        sQ|                     t          d¦  «         |                     t          d¦  «         |                     t          d¦  «         |                     t          d	¦  «         |                     t          d
¦  «         |                     t          d¦  «         |                     t          d¦  «         |                     ¦   «          |gS )Nztest parfor aliasingzanalyzing bytecodezfix up argszprocessing IRzHandle with contextsznopython rewriteszrewrite semantic constantszdead branch pruningz(inline calls to locally defined closuresznopython frontendznative loweringznopython mode backend)r   Úadd_passr   r   r   r    rù   r^   Úno_rewritesr   r   r   r"   r#   r)   r+   Úfinalize)re   rF   Úpms      r9   Údefine_pipelineszQTestRemoveDead.test_alias_parfor_extension.<locals>.TestPipeline.define_pipelines  s/  € Ø-�Ý  Ñ&Ô&�Ø—’Õ-Ð/CÑDÔDÐDØ—’�I }Ñ5Ô5Ð5Ø—’�L¨/Ñ:Ô:Ð:Ø—’�KÐ)?Ñ@Ô@Ð@à”zÔ'Ô3ð HØ—K’K¥Ð1DÑEÔEÐEØ—K’KÕ 8Ð:VÑWÔWÐWØ—K’K¥Ð1FÑGÔGÐGØ—’Õ.ØFñHô Hð Hð —’Õ1Ð3FÑGÔGÐGð —’�NÐ,=Ñ>Ô>Ð>Ø—’�OÐ-DÑEÔEÐEØ—’‘”�Ø�t�r;   N)rü   rý   rþ   Ú__doc__r  r1   r;   r9   ÚTestPipeliner    s-   € € € € € ðð ðð ð ð ð r;   r
  )Úpipeline_classN)	r   r   r   ÚCompilerr‘   Újitr~   r“   r”   )re   rf   r   r
  Útest_resÚpy_ress         r9   Útest_alias_parfor_extensionz*TestRemoveDead.test_alias_parfor_extensionà   sÓ   € ð
	ð 	ð 	õ 
 U¸Ð	=Ñ	=Ô	=ð	ð 	ð 	ð 	ð 	�Lñ 	ô 	ñ 
>Ô	=ð	ð<	ð 	ð 	ð 	ð 	�8Ô,ñ 	ô 	ð 	ð8 @Ð9•5”9¨LÐ9Ñ9Ô9¸$Ñ?Ô?ÑAÔAˆØ�‘”ˆÝ
Œ
×%Ò% h°Ñ7Ô7Ð7Ð7Ð7r;   N)rü   rý   rþ   Ú_numba_parallel_test_ri   r{   r‹   r˜   r¡   r¦   r«   r°   r³   r,   r-   rË   rÎ   rÑ   rÕ   rÝ   r  r1   r;   r9   r\   r\   <   s(  € € € € € à!ÐðPð Pð Pð:ð :ð :ð 3ð 3ð 3ð".ð .ð .ð(ð (ð (ð(ð (ð (ð(ð (ð (ð(ð (ð (ð(ð (ð (ð Øð'ð 'ñ „Zñ Ôð'ð@(ð (ð (ð(ð (ð (ð>ð >ð >ð
5ð 
5ð 
5ð ðK8ð K8ñ ÔðK8ð K8ð K8r;   r\   Ú__main__)Cr‘   Únumba.parfors.parforÚ
numba.corer   r   Únumba.core.compilerr   r   r   r   r	   r
   r   Únumba.core.registryr   Únumba.core.annotationsr   Únumba.core.ir_utilsr   r   r   r   r   r   r   Únumba.core.typed_passesr   Únumba.core.compiler_machineryr   r   r   Únumba.core.untyped_passesr   r   r   r   r   r   r   r    r!   r"   r#   r$   r%   r&   r'   r(   r)   r*   r+   Únumpyr~   Únumba.tests.supportr,   r-   Úunittestr:   r@   rÈ   rC   rK   rZ   ÚTestCaser\   rü   Úmainr1   r;   r9   ú<module>r!     s?  ðð €€€Ø Ð Ð Ð Ø $Ð $Ð $Ð $Ð $Ð $Ð $Ð $Ø 7Ð 7Ð 7Ð 7Ð 7Ð 7Ð 7Ð 7Ø :Ð :Ð :Ð :Ð :Ð :Ð :Ð :Ð :Ð :Ð :Ð :Ð :Ð :Ø *Ð *Ð *Ð *Ð *Ð *Ø 3Ð 3Ð 3Ð 3Ð 3Ð 3ðIð Ið Ið Ið Ið Ið Ið Ið Ið Ið Ið Ið Ið Ið Ið Ið Ið Ið 9Ð 8Ð 8Ð 8Ð 8Ð 8Ø RÐ RÐ RÐ RÐ RÐ RÐ RÐ RÐ RÐ RðJð Jð Jð Jð Jð Jð Jð Jð Jð Jð Jð Jð Jð Jð Jð Jð Jð Jð Jð Jð Jð Jð Jð Jð
Lð Lð Lð Lð Lð Lð Lð Lð Lð Lð Lð Lð Lð Lð Lð Lð Lð Lð Lð Lð Lð Lð Lð Lð Ð Ð Ð Ø DÐ DÐ DÐ DÐ DÐ DÐ DÐ DØ €€€ðð ð ð
ð 
ð 
ð „ðð ñ „ððHð Hð Hðð ð ðp8ð p8ð p8ð p8ð p8�XÔ&ñ p8ô p8ð p8ðf ˆzÒÐØ€H„M�O„O€O€O€Oð Ðr;   