ó
    ýZhg   ã                   óü   • S SK r S SKJr  S SKJrJr  SSKJr  S rS r	S r
S	 rS
 rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rSSSSS S!S"S#S$S%S&S'S(S)S*.rS+ r " S, S-\ 5      r!S. r"g)/é    N)Úir)ÚcgutilsÚtargetconfigé   )Únvvmc                 óN  • S[        U5      -   S-   n[        R                  " [        R                  " U5      [        R                  " [        R                  " U5      5      [        R                  " U5      [        R                  " U5      45      n[
        R                  " XU5      $ )NÚ___numba_atomic_iÚ	_cas_hack)Ústrr   ÚFunctionTypeÚIntTypeÚPointerTyper   Úget_or_insert_function)ÚlmodÚisizeÚfnameÚfntys       Úc/home/gothic/public_html/Fooocus/fooocus_env/lib64/python3.13/site-packages/numba/cuda/nvvmutils.pyÚdeclare_atomic_cas_intr      su   € Ø¤# e£*Ñ,¨{Ñ:€EÜ�?Š?œ2Ÿ:š: eÓ,ÜŸNšN¬2¯:ª:°eÓ+<Ó=ÜŸJšJ uÓ-ÜŸJšJ uÓ-ð/ó0€Dô ×)Ò)¨$°eÓ<Ð<ó    c                 óN   • U R                  X4USS5      nU R                  US5      $ )NÚ	monotonicr   )ÚcmpxchgÚextract_value)Úbuilderr   r   ÚptrÚcmpÚvalÚouts          r   Úatomic_cmpxchgr       s)   € Ø
�/‰/˜# C¨°kÓ
B€CØ× Ñ   aÓ(Ð(r   c                 ó  • Sn[         R                  " [         R                  " 5       [         R                  " [         R                  " 5       S5      [         R                  " 5       45      n[        R
                  " XU5      $ )Nz#llvm.nvvm.atomic.load.add.f32.p0f32r   ©r   r   Ú	FloatTyper   r   r   ©r   r   r   s      r   Údeclare_atomic_add_float32r%      sP   € Ø1€EÜ�?Š?œ2Ÿ<š<›>ÜŸNšN¬2¯<ª<«>¸1Ó=¼r¿|º|»~ÐNóP€Dä×)Ò)¨$°eÓ<Ð<r   c                 ól  • [         R                  " 5       R                  5       nUR                  S:¼  a  SnOSn[        R
                  " [        R                  " 5       [        R                  " [        R                  " 5       5      [        R                  " 5       45      n[        R                  " XU5      $ )N)é   r   z#llvm.nvvm.atomic.load.add.f64.p0f64Ú___numba_atomic_double_add)
r   ÚConfigStackÚtopÚcompute_capabilityr   r   Ú
DoubleTyper   r   r   )r   Úflagsr   r   s       r   Údeclare_atomic_add_float64r.      sx   € Ü×$Ò$Ó&×*Ñ*Ó,€EØ×Ñ 6Ó)Ø5‰à,ˆÜ�?Š?œ2Ÿ=š=›?ÜŸNšN¬2¯=ª=«?Ó;¼R¿]º]»_ÐMóO€Dä×)Ò)¨$°eÓ<Ð<r   c                 ó   • Sn[         R                  " [         R                  " 5       [         R                  " [         R                  " 5       5      [         R                  " 5       45      n[        R
                  " XU5      $ )NÚ___numba_atomic_float_subr"   r$   s      r   Údeclare_atomic_sub_float32r1   '   óN   € Ø'€EÜ�?Š?œ2Ÿ<š<›>ÜŸNšN¬2¯<ª<«>Ó:¼B¿LºL»NÐKóM€Dä×)Ò)¨$°eÓ<Ð<r   c                 ó   • Sn[         R                  " [         R                  " 5       [         R                  " [         R                  " 5       5      [         R                  " 5       45      n[        R
                  " XU5      $ )NÚ___numba_atomic_double_sub©r   r   r,   r   r   r   r$   s      r   Údeclare_atomic_sub_float64r6   .   óN   € Ø(€EÜ�?Š?œ2Ÿ=š=›?ÜŸNšN¬2¯=ª=«?Ó;¼R¿]º]»_ÐMóO€Dä×)Ò)¨$°eÓ<Ð<r   c                 ó  • Sn[         R                  " [         R                  " S5      [         R                  " [         R                  " S5      5      [         R                  " S5      45      n[        R
                  " XU5      $ )Nz"llvm.nvvm.atomic.load.inc.32.p0i32é    ©r   r   r   r   r   r   r$   s      r   Údeclare_atomic_inc_int32r;   5   óT   € Ø0€EÜ�?Š?œ2Ÿ:š: b›>ÜŸNšN¬2¯:ª:°b«>Ó:¼B¿JºJÀr»NÐKóM€Dä×)Ò)¨$°eÓ<Ð<r   c                 ó  • Sn[         R                  " [         R                  " S5      [         R                  " [         R                  " S5      5      [         R                  " S5      45      n[        R
                  " XU5      $ )NÚ___numba_atomic_u64_incé@   r:   r$   s      r   Údeclare_atomic_inc_int64r@   <   óT   € Ø%€EÜ�?Š?œ2Ÿ:š: b›>ÜŸNšN¬2¯:ª:°b«>Ó:¼B¿JºJÀr»NÐKóM€Dä×)Ò)¨$°eÓ<Ð<r   c                 ó  • Sn[         R                  " [         R                  " S5      [         R                  " [         R                  " S5      5      [         R                  " S5      45      n[        R
                  " XU5      $ )Nz"llvm.nvvm.atomic.load.dec.32.p0i32r9   r:   r$   s      r   Údeclare_atomic_dec_int32rC   C   r<   r   c                 ó  • Sn[         R                  " [         R                  " S5      [         R                  " [         R                  " S5      5      [         R                  " S5      45      n[        R
                  " XU5      $ )NÚ___numba_atomic_u64_decr?   r:   r$   s      r   Údeclare_atomic_dec_int64rF   J   rA   r   c                 ó   • Sn[         R                  " [         R                  " 5       [         R                  " [         R                  " 5       5      [         R                  " 5       45      n[        R
                  " XU5      $ )NÚ___numba_atomic_float_maxr"   r$   s      r   Údeclare_atomic_max_float32rI   Q   r2   r   c                 ó   • Sn[         R                  " [         R                  " 5       [         R                  " [         R                  " 5       5      [         R                  " 5       45      n[        R
                  " XU5      $ )NÚ___numba_atomic_double_maxr5   r$   s      r   Údeclare_atomic_max_float64rL   X   r7   r   c                 ó   • Sn[         R                  " [         R                  " 5       [         R                  " [         R                  " 5       5      [         R                  " 5       45      n[        R
                  " XU5      $ )NÚ___numba_atomic_float_minr"   r$   s      r   Údeclare_atomic_min_float32rO   _   r2   r   c                 ó   • Sn[         R                  " [         R                  " 5       [         R                  " [         R                  " 5       5      [         R                  " 5       45      n[        R
                  " XU5      $ )NÚ___numba_atomic_double_minr5   r$   s      r   Údeclare_atomic_min_float64rR   f   r7   r   c                 ó   • Sn[         R                  " [         R                  " 5       [         R                  " [         R                  " 5       5      [         R                  " 5       45      n[        R
                  " XU5      $ )NÚ___numba_atomic_float_nanmaxr"   r$   s      r   Údeclare_atomic_nanmax_float32rU   m   óN   € Ø*€EÜ�?Š?œ2Ÿ<š<›>ÜŸNšN¬2¯<ª<«>Ó:¼B¿LºL»NÐKóM€Dä×)Ò)¨$°eÓ<Ð<r   c                 ó   • Sn[         R                  " [         R                  " 5       [         R                  " [         R                  " 5       5      [         R                  " 5       45      n[        R
                  " XU5      $ )NÚ___numba_atomic_double_nanmaxr5   r$   s      r   Údeclare_atomic_nanmax_float64rY   t   óN   € Ø+€EÜ�?Š?œ2Ÿ=š=›?ÜŸNšN¬2¯=ª=«?Ó;¼R¿]º]»_ÐMóO€Dä×)Ò)¨$°eÓ<Ð<r   c                 ó   • Sn[         R                  " [         R                  " 5       [         R                  " [         R                  " 5       5      [         R                  " 5       45      n[        R
                  " XU5      $ )NÚ___numba_atomic_float_nanminr"   r$   s      r   Údeclare_atomic_nanmin_float32r]   {   rV   r   c                 ó   • Sn[         R                  " [         R                  " 5       [         R                  " [         R                  " 5       5      [         R                  " 5       45      n[        R
                  " XU5      $ )NÚ___numba_atomic_double_nanminr5   r$   s      r   Údeclare_atomic_nanmin_float64r`   ‚   rZ   r   c                 ó´   • Sn[         R                  " [         R                  " S5      [         R                  " S5      45      n[        R                  " XU5      $ )NÚcudaCGGetIntrinsicHandler?   r9   ©r   r   r   r   r   r$   s      r   Ú declare_cudaCGGetIntrinsicHandlerd   ‰   s@   € Ø&€EÜ�?Š?œ2Ÿ:š: b›>ÜŸJšJ r›NÐ,ó.€Dä×)Ò)¨$°eÓ<Ð<r   c                 óÞ   • Sn[         R                  " [         R                  " S5      [         R                  " S5      [         R                  " S5      45      n[        R                  " XU5      $ )NÚcudaCGSynchronizer9   r?   rc   r$   s      r   Údeclare_cudaCGSynchronizerg   �   sJ   € Ø€EÜ�?Š?œ2Ÿ:š: b›>ÜŸJšJ r›N¬B¯JªJ°r«NÐ;ó=€Dä×)Ò)¨$°eÓ<Ð<r   c                 óŒ  • U R                   R                  R                  n[        R                  " UR                  S5      S-   5      n[        R                  " X#R                  S[        R                  S9nSUl
        SUl        X4l        U R                  U[        R                  " [        R                   " S5      5      S5      $ )	Nzutf-8ó    Ú_str)ÚnameÚ	addrspaceÚinternalTé   Úgeneric)Úbasic_blockÚfunctionÚmoduler   Úmake_bytearrayÚencodeÚadd_global_variableÚtyper   ÚADDRSPACE_CONSTANTÚlinkageÚglobal_constantÚinitializerÚaddrspacecastr   r   r   )r   Úvaluer   ÚcvalÚgls        r   Údeclare_stringr   —   s“   € Ø×Ñ×'Ñ'×.Ñ.€DÜ×!Ò! %§,¡,¨wÓ"7¸'Ñ"AÓB€DÜ	×	$Ò	$ T¯9©9¸6Ü/3×/FÑ/Fñ
H€Bà€B„JØ€BÔØ„Nà× Ñ  ¤R§^¢^´B·J²J¸q³MÓ%BÀIÓNÐNr   c                 óà   • [         R                  " [         R                  " S5      5      n[         R                  " [         R                  " S5      X/5      n[        R
                  " XS5      nU$ )Nrn   r9   Úvprintf)r   r   r   r   r   r   )r   Ú	voidptrtyÚ	vprintftyr�   s       r   Údeclare_vprintr„   £   sL   € Ü—’œrŸzšz¨!›}Ó-€Iô —’¤§
¢
¨2£°Ð0FÓG€IÜ×,Ò,¨T¸iÓH€GØ€Nr   zllvm.nvvm.read.ptx.sreg.tid.xzllvm.nvvm.read.ptx.sreg.tid.yzllvm.nvvm.read.ptx.sreg.tid.zzllvm.nvvm.read.ptx.sreg.ntid.xzllvm.nvvm.read.ptx.sreg.ntid.yzllvm.nvvm.read.ptx.sreg.ntid.zzllvm.nvvm.read.ptx.sreg.ctaid.xzllvm.nvvm.read.ptx.sreg.ctaid.yzllvm.nvvm.read.ptx.sreg.ctaid.zz llvm.nvvm.read.ptx.sreg.nctaid.xz llvm.nvvm.read.ptx.sreg.nctaid.yz llvm.nvvm.read.ptx.sreg.nctaid.zz llvm.nvvm.read.ptx.sreg.warpsizezllvm.nvvm.read.ptx.sreg.laneid)ztid.xztid.yztid.zzntid.xzntid.yzntid.zzctaid.xzctaid.yzctaid.zznctaid.xznctaid.yznctaid.zÚwarpsizeÚlaneidc                 óÐ   • U R                   n[        R                  " [        R                  " S5      S5      n[        R
                  " X#[        U   5      nU R                  US5      $ )Nr9   © )rr   r   r   r   r   r   ÚSREG_MAPPINGÚcall)r   rk   rr   r   Úfns        r   Ú	call_sregrŒ   Ä   sK   € Ø�^‰^€FÜ�?Š?œ2Ÿ:š: b›>¨2Ó.€DÜ	×	'Ò	'¨´lÀ4Ñ6HÓ	I€BØ�<‰<˜˜BÓÐr   c                   ó8   • \ rS rSrS rS rS rS rS rS r	Sr
g	)
ÚSRegBuilderéË   c                 ó   • Xl         g ©N©r   )Úselfr   s     r   Ú__init__ÚSRegBuilder.__init__Ì   s   € Ø�r   c                 ó4   • [        U R                  SU-  5      $ )Nztid.%s©rŒ   r   ©r“   Úxyzs     r   ÚtidÚSRegBuilder.tidÏ   s   € Ü˜Ÿ™ x°#¡~Ó6Ð6r   c                 ó4   • [        U R                  SU-  5      $ )Nzctaid.%sr—   r˜   s     r   ÚctaidÚSRegBuilder.ctaidÒ   s   € Ü˜Ÿ™ z°CÑ'7Ó8Ð8r   c                 ó4   • [        U R                  SU-  5      $ )Nzntid.%sr—   r˜   s     r   ÚntidÚSRegBuilder.ntidÕ   s   € Ü˜Ÿ™ y°3¡Ó7Ð7r   c                 ó4   • [        U R                  SU-  5      $ )Nz	nctaid.%sr—   r˜   s     r   ÚnctaidÚSRegBuilder.nctaidØ   s   € Ü˜Ÿ™ {°SÑ'8Ó9Ð9r   c                 óž  • [         R                  " S5      nU R                  R                  U R	                  U5      U5      nU R                  R                  U R                  U5      U5      nU R                  R                  U R                  U5      U5      nU R                  R                  U R                  R                  XE5      U5      nU$ )Nr?   )	r   r   r   Úsextrš   r    r�   ÚaddÚmul)r“   r™   Úi64rš   r    r£   Úress          r   ÚgetdimÚSRegBuilder.getdimÛ   s“   € Ü�jŠj˜‹nˆØ�l‰l×Ñ §¡¨£¨sÓ3ˆØ�|‰|× Ñ  §¡¨3£°Ó5ˆØ—‘×"Ñ" 4§:¡:¨c£?°CÓ8ˆØ�l‰l×Ñ˜tŸ|™|×/Ñ/°Ó=¸sÓCˆØˆ
r   r’   N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r”   rš   r�   r    r£   r«   Ú__static_attributes__rˆ   r   r   rŽ   rŽ   Ë   s    † òò7ò9ò8ò:õr   rŽ   c                 óŽ   ^• [        U 5      mU4S jS 5       n[        [        R                  " US U5      5      nUS:X  a  US   $ U$ )Nc              3   óF   >#   • U  H  nTR                  U5      v •  M     g 7fr‘   )r«   )Ú.0r™   Úsregs     €r   Ú	<genexpr>Ú get_global_id.<locals>.<genexpr>æ   s   øé € Ð	,¢e˜sˆ$�+‰+�c×
Ð
¢eùs   ƒ!r™   r   r   )rŽ   ÚlistÚ	itertoolsÚislice)r   ÚdimÚitÚseqrµ   s       @r   Úget_global_idr¾   ä   sE   ø€ Ü�wÓ€DÜ	,¡eÓ	,€BÜ
Œy×Ò  D¨#Ó.Ó
/€CØ
ˆaƒxØ�1‰vˆàˆ
r   )#r¹   Úllvmliter   Ú
numba.corer   r   Úcudadrvr   r   r    r%   r.   r1   r6   r;   r@   rC   rF   rI   rL   rO   rR   rU   rY   r]   r`   rd   rg   r   r„   r‰   rŒ   ÚobjectrŽ   r¾   rˆ   r   r   Ú<module>rÃ      sÉ   ðÛ Ý ß ,Ý ò=ò)ò
=ò=ò=ò=ò=ò=ò=ò=ò=ò=ò=ò=ò=ò=ò=ò=ò=ò=ò	Oòð -Ø,Ø,à.Ø.Ø.à0Ø0Ø0à2Ø2Ø2à2Ø.ñ%€ò, ô�&ô ó2r   