Ë
    pPêj©  ã                  óX  — U d 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 ddlmZmZ ddlmZ ddlmZ ddlmZmZ dd	lmZ  G d
„ de«      Z ee	j2                  edd«       ee	j4                  edd«       ee	j6                  edd«       ee	j8                  edd«       ee	j:                  edd«       ee	j<                  edd«      dœZde d<   dd„Z! ed«      d d„«       Z" ed«      d d„«       Z# ed«      d d„«       Z$ ed«      d d„«       Z% ed«      d d„«       Z& ed«      d d„«       Z'y)!z4Convert tagged int primitive ops to lower-level ops.é    )Úannotations)Ú
NamedTuple)ÚAssignÚ
BasicBlockÚBranchÚComparisonOpÚRegisterÚValue)Úbool_rprimitiveÚis_short_int_rprimitive)ÚLowLevelIRBuilder)Úlower_primitive_op)Ú
int_equal_Úint_less_than_)ÚCFunctionDescriptionc                  ó6   — e Zd ZU ded<   ded<   ded<   ded<   y)	ÚIntComparisonOpDescriptionÚintÚbinary_op_variantr   Úc_func_descriptionÚboolÚc_func_negatedÚc_func_swap_operandsN)Ú__name__Ú
__module__Ú__qualname__Ú__annotations__© ó    úX/home/oem/CyberBrain26-unified/.venv/lib/python3.12/site-packages/mypyc/lower/int_ops.pyr   r      s   … ØÓØ,Ó,ØÓØÔr   r   FT)ú==ú!=ú<ú<=ú>ú>=z%dict[str, IntComparisonOpDescription]Úint_comparison_op_mappingc                ó”  — t        |j                  «      st        |j                  «      r|dv rd}n,t        |j                  «      xr t        |j                  «      }|r| j                  ||t        |   d   |«      S t        |   \  }}}}	t	        t
        «      }
t        «       t        «       t        «       }}}| j                  ||d¬«      }|dv r,| j                  t        |||t        j                  «      «       n…t        «       }| j                  t        |||t        j                  «      «       | j                  |«       | j                  ||d¬«      }| j                  t        |||t        j                  «      «       | j                  |«       |	r||g}n||g}| j                  |||«      }|r| j                  |d|«      }n|}| j                  t        |
||«      «       | j                  |«       | j                  |«       | j                  ||||«      }| j                  t        |
||«      «       | j!                  |«       |
S )zACompare two tagged integers using given operator (value context).)r!   r"   Tr   )ÚnegatedÚnot)r   ÚtypeÚcomparison_opr'   r	   r   r   Úcheck_tagged_short_intÚaddr   ÚBOOLÚactivate_blockÚcall_cÚunary_opr   ÚgotoÚgoto_and_activate)ÚselfÚlhsÚrhsÚopÚlineÚquickÚop_typeÚc_func_descÚnegate_resultÚswap_opÚresultÚshort_int_blockÚ	int_blockÚoutÚ	check_lhsÚ	short_lhsÚ	check_rhsÚargsÚcallÚcall_resultÚeqs                        r    Úcompare_taggedrJ   )   sý  € ô 	  §¡Ô)Ô-DÀSÇXÁXÔ-NÐTVð [ñ Uð ‰ä'¨¯©Ó1ÒWÔ6MÈcÏhÉhÓ6WˆÙØ×!Ñ! # sÔ,EÀbÑ,IÈ!Ñ,LÈdÓSÐSÜ3LÈRÑ3PÑ0€Gˆ[˜-¨Ü”oÓ&€FÜ&0£l´J³LÄ*Ã, �Y€OØ×+Ñ+¨C°¸tÐ+ÓD€IØ	ˆ\ÑØ�‰”˜	 9¨o¼v¿{¹{ÓKÕLô “Lˆ	Ø�‰”˜	 9¨i¼¿¹ÓEÔFØ×Ñ˜IÔ&Ø×/Ñ/°°TÀ4Ð/ÓHˆ	Ø�‰”˜	 9¨o¼v¿{¹{ÓKÔLØ×Ñ˜	Ô"ÙØ�Sˆz‰à�SˆzˆØ�;‰;�{ D¨$Ó/€DÙà—m‘m D¨%°Ó6‰àˆØ‡H�HŒV�F˜K¨Ó.Ô/Ø‡I�Iˆc„NØ×Ñ˜Ô(Ø	×	Ñ	˜C  g¨tÓ	4€BØ‡H�HŒV�F˜B Ó%Ô&Ø×Ñ˜3ÔØ€Mr   Úint_eqc                ó,   — t        | |d   |d   d|«      S )Nr   é   r!   ©rJ   ©ÚbuilderrF   r9   s      r    Úlower_int_eqrQ   V   ó   € ä˜' 4¨¡7¨D°©G°T¸4Ó@Ð@r   Úint_nec                ó,   — t        | |d   |d   d|«      S )Nr   rM   r"   rN   rO   s      r    Úlower_int_nerU   [   rR   r   Úint_ltc                ó,   — t        | |d   |d   d|«      S )Nr   rM   r#   rN   rO   s      r    Úlower_int_ltrX   `   ó   € ä˜' 4¨¡7¨D°©G°S¸$Ó?Ð?r   Úint_lec                ó,   — t        | |d   |d   d|«      S )Nr   rM   r$   rN   rO   s      r    Úlower_int_ler\   e   rR   r   Úint_gtc                ó,   — t        | |d   |d   d|«      S )Nr   rM   r%   rN   rO   s      r    Úlower_int_gtr_   j   rY   r   Úint_gec                ó,   — t        | |d   |d   d|«      S )Nr   rM   r&   rN   rO   s      r    Úlower_int_gerb   o   rR   r   N)r5   r   r6   r
   r7   r
   r8   Ústrr9   r   Úreturnr
   )rP   r   rF   zlist[Value]r9   r   rd   r
   )(Ú__doc__Ú
__future__r   Útypingr   Úmypyc.ir.opsr   r   r   r   r	   r
   Úmypyc.ir.rtypesr   r   Úmypyc.irbuild.ll_builderr   Úmypyc.lower.registryr   Úmypyc.primitives.int_opsr   r   Úmypyc.primitives.registryr   r   ÚEQÚNEQÚSLTÚSLEÚSGTÚSGEr'   r   rJ   rQ   rU   rX   r\   r_   rb   r   r   r    ú<module>rt      s`  ðÚ :å "å ç R× Rß DÝ 6Ý 3ß ?Ý :ô ô ñ % \§_¡_°jÀ%ÈÓ
OÙ
$ \×%5Ñ%5°zÀ4ÈÓ
OÙ	# L×$4Ñ$4°nÀeÈUÓ	SÙ
$ \×%5Ñ%5°~ÀtÈTÓ
RÙ	# L×$4Ñ$4°nÀeÈTÓ	RÙ
$ \×%5Ñ%5°~ÀtÈUÓ
SñDÐ Ð@ó ó*ñZ �HÓòAó ðAñ �HÓòAó ðAñ �HÓò@ó ð@ñ �HÓòAó ðAñ �HÓò@ó ð@ñ �HÓòAó ñAr   