Ë
    pPêjF)  ã            	      ó"  — d Z ddlmZ ddl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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 dD ]8  Z eeed¬«        eeeged	e¬
«        eeegede¬
«        eeeegede¬
«       Œ: dD ]   Z eeegeded¬«      Z  eeegeded¬«       Œ"  eegede¬«      Z!eef	 	 	 	 	 	 	 	 	 dcd„Z" e"dde¬«      Z# e"dde¬«      Z$ e"dde¬«      Z% e"dde¬«      Z& e"dd e¬«      Z' e"d!d"e¬«      Z(eef	 	 	 	 	 	 	 	 	 ddd#„Z) e)d$d%«        e)d&d'«        e)d(d)«        e)d*d+«        e)d,d-«        e)d.d/«        e)d0d1e¬2«        e)d3d4e¬2«        e)d5d6e¬2«        e)d7d8e¬2«        e)d9d:ee¬;«        e)d<d%«        e)d=d'«        e)d>d)«        e)d?d+«        e)d@d-«        e)dAd/«        e)dBd1e¬2«        e)dCd4e¬2«        e)dDd6e¬2«        e)dEd8e¬2«       dedF„Z* e*d&dG«      Z+ e*dHdI«      Z, eeegedJedK¬L«      Z- eeegedMedK¬L«      Z. eeegedNe¬«      Z/ eeegedOe¬«      Z0 eeegedPe¬«      Z1 eeegedQe¬«      Z2 eeegedRe¬«      Z3 eeegedSe¬«      Z4 eegedTe¬«      Z5 eegedUe¬«      Z6 eegedVe¬«      Z7 eegedWe¬«      Z8 eg edXe¬«      Z9 eg edYe¬«      Z: eg edZe¬«      Z; ed[eged\e¬
«      Z< eeeeged]e¬«      Z= eeeeged^e¬«      Z> eeeeeged_e¬«      Z? ed`egedae¬
«       yb)fa<  Arbitrary-precision integer primitive ops.

These mostly operate on (usually) unboxed integers that use a tagged pointer
representation (CPyTagged) and correspond to the Python 'int' type.

See also the documentation for mypyc.rtypes.int_rprimitive.

Use mypyc.ir.ops.IntOp for operations on fixed-width/C integers.
é    )Úannotations)Ú
ERR_ALWAYSÚ	ERR_MAGICÚERR_MAGIC_OVERLAPPINGÚ	ERR_NEVERÚPrimitiveDescription)ÚRTypeÚbit_rprimitiveÚbool_rprimitiveÚbytes_rprimitiveÚc_pyssize_t_rprimitiveÚfloat_rprimitiveÚint16_rprimitiveÚint32_rprimitiveÚint64_rprimitiveÚint_rprimitiveÚobject_rprimitiveÚstr_rprimitiveÚ
void_rtype)Ú	binary_opÚ	custom_opÚfunction_opÚload_address_opÚ	method_opÚunary_op)zbuiltins.intzmypy_extensions.i64zmypy_extensions.i32zmypy_extensions.i16zmypy_extensions.u8ÚPyLong_Type)ÚnameÚtypeÚsrcÚCPyTagged_FromFloat©r   Ú	arg_typesÚreturn_typeÚc_function_nameÚ
error_kindÚCPyLong_FromStrÚCPyLong_FromStrWithBase)zbuiltins.strzbuiltins.reprÚCPyTagged_Stré   )r   r"   r#   r$   r%   ÚpriorityÚCPyBool_Stré   ÚCPyTagged_AsciiBytes)r"   r#   r$   r%   c                ó6   — t        | t        t        g|||¬«      S )N)r   r"   r#   Úprimitive_namer%   ©r   r   )Úopr/   r#   r%   s       ú]/home/oem/CyberBrain26-unified/.venv/lib/python3.12/site-packages/mypyc/primitives/int_ops.pyÚint_binary_primitiver3   t   s%   € ô ØÜ!¤>Ð2ØØ%Øôð ó    z==Úint_eq)r1   r/   r#   z!=Úint_neú<Úint_ltz<=Úint_leú>Úint_gtz>=Úint_gec                ó8   — t        | t        t        g|||¬«       y )Nr!   r0   )r   r$   r#   r%   s       r2   Úint_binary_opr>   ˆ   s    € ô ØÜ!¤>Ð2ØØ'Øör4   ú+ÚCPyTagged_Addú-ÚCPyTagged_SubtractÚ*ÚCPyTagged_Multiplyú&ÚCPyTagged_Andú|ÚCPyTagged_Orú^ÚCPyTagged_Xorz//ÚCPyTagged_FloorDivide)r%   ú%ÚCPyTagged_Remainderz>>ÚCPyTagged_Rshiftz<<ÚCPyTagged_Lshiftú/ÚCPyTagged_TrueDivide)r#   r%   z+=z-=z*=z&=z|=z^=z//=z%=z>>=z<<=c                ó:   — t        | t        t        |t        ¬«      S )N)r   Úarg_typer#   r$   r%   )r   r   r   )r   r$   s     r2   Úint_unary_oprT   »   s   € ÜØÜÜ"Ø'Üôð r4   ÚCPyTagged_Negateú~ÚCPyTagged_InvertÚCPyTagged_IsEq_T)r"   r#   r$   r%   Úis_pureÚCPyTagged_IsLt_ÚCPyInt64_DivideÚCPyInt64_RemainderÚCPyInt32_DivideÚCPyInt32_RemainderÚCPyInt16_DivideÚCPyInt16_RemainderÚCPyLong_AsInt64ÚCPyTagged_FromSsize_tÚCPyTagged_FromInt64ÚCPyLong_AsInt32ÚCPyInt32_OverflowÚCPyInt16_OverflowÚCPyUInt8_Overflowzbuiltints.isinstanceÚPyLong_CheckÚCPyTagged_ToBigEndianBytesÚCPyTagged_ToLittleEndianBytesÚCPyTagged_ToBytesÚ
bit_lengthÚCPyTagged_BitLengthN)
r1   Ústrr/   rn   r#   r	   r%   ÚintÚreturnr   )
r   rn   r$   rn   r#   r	   r%   ro   rp   ÚNone)r   rn   r$   rn   rp   r   )@Ú__doc__Ú
__future__r   Úmypyc.ir.opsr   r   r   r   r   Úmypyc.ir.rtypesr	   r
   r   r   r   r   r   r   r   r   r   r   r   Úmypyc.primitives.registryr   r   r   r   r   r   Úint_namer   Úint_to_str_opÚint_to_ascii_opr3   r5   r6   r8   r9   r;   r<   r>   rT   Ú
int_neg_opÚint_invert_opÚ
int_equal_Úint_less_than_Úint64_divide_opÚint64_mod_opÚint32_divide_opÚint32_mod_opÚint16_divide_opÚint16_mod_opÚint_to_int64_opÚssize_t_to_int_opÚint64_to_int_opÚint_to_int32_opÚint32_overflowÚint16_overflowÚuint8_overflowÚisinstance_intÚint_to_big_endian_opÚint_to_little_endian_opÚint_to_bytes_op© r4   r2   ú<module>r�      sF  ðñõ #÷õ ÷÷ ÷ õ ÷÷ ðò (€Hñ ˜Ð(9¸}ÕMñ ØØ#Ð$Ø"Ø-Øõñ ØØ!Ð"Ø%Ø)Øõñ ØØ! >Ð2Ø%Ø1ØöðE(ðT .ò €DáØØ!Ð"Ø"Ø'ØØô€Mñ ØØ"Ð#Ø"Ø%ØØöðñ( ØÐØ Ø*Øô	€ð 8FÐYbð	Øð	Ø ð	Ø/4ð	ØSVð	àó	ñ 
 °hÈNÔ	[€Ù	 °hÈNÔ	[€Ù	 °XÈ>Ô	Z€Ù	 °hÈNÔ	[€Ù	 °XÈ>Ô	Z€Ù	 °hÈNÔ	[€ð (Øð	Ø
ðàðð ðð ð	ð
 
óñ$ ˆc�?Ô #Ù ˆcÐ'Ô (Ù ˆcÐ'Ô (Ù ˆc�?Ô #Ù ˆc�>Ô "Ù ˆc�?Ô #ñ ˆdÐ+¸	Õ BÙ ˆcÐ(°YÕ ?á ˆdÐ&°9Õ =Ù ˆdÐ&°9Õ =á ØÐ	Ð-=ÐJ_õñ ˆd�OÔ $Ù ˆdÐ(Ô )Ù ˆdÐ(Ô )Ù ˆd�OÔ $Ù ˆd�NÔ #Ù ˆd�OÔ $Ù ˆeÐ,¸Õ CÙ ˆdÐ)°iÕ @Ù ˆeÐ'°IÕ >Ù ˆeÐ'°IÕ >óñ ˜#Ð1Ó2€
Ù˜SÐ"4Ó5€ñ Ø˜~Ð.ØØ%ØØô€
ñ Ø˜~Ð.ØØ%ØØô€ñ ØÐ!1Ð2Ø Ø%Ø$ô	€ñ ØÐ!1Ð2Ø Ø(Ø$ô	€ñ ØÐ!1Ð2Ø Ø%Ø$ô	€ñ ØÐ!1Ð2Ø Ø(Ø$ô	€ñ ØÐ!1Ð2Ø Ø%Ø$ô	€ñ ØÐ!1Ð2Ø Ø(Ø$ô	€ñ Ø Ð!Ø Ø%Ø$ô	€ñ Ø%Ð&ØØ+Øô	Ð ñ ØÐ ØØ)Øô	€ñ Ø Ð!Ø Ø%Ø$ô	€ñ ØØØ'Øô	€ñ ØØØ'Øô	€ñ ØØØ'Øô	€ñ Ø	Ø Ð!ØØ"Øô€ñ !ØÐ5°ÐGØ Ø0Øô	Ð ñ $ØÐ5°ÐGØ Ø3Øô	Ð ñ ØÐ5°~ÀÐWØ Ø'Øô	€ñ 
Ø	ØÐØØ)Øör4   