§
    “X¼hJ  ã                   óD  — d dl mZ ej        dd„¦   «         Zej        dd„¦   «         Zej        dd„¦   «         Zej        dd„¦   «         Zej        dd„¦   «         Zej        dd„¦   «         Z	ej        dd	„¦   «         Z
ej        dd
„¦   «         Zej        dd„¦   «         ZdS )é    )ÚcoreNc           	      óL   — t          j        ddg t           j        dd| ¬¦  «        S )Nzmov.u64 $0, %globaltimer;z=lFé   ©ÚdtypeÚis_pureÚpackÚ	_semantic)r   Úinline_asm_elementwiseÚint64©r
   s    úr/var/www/tools.fuzzalab.pt/emblema-extractor/venv/lib/python3.11/site-packages/triton/language/extra/cuda/utils.pyÚglobaltimerr      s2   € åÔ&Ð'BÀDÈ"ÕTXÔT^ÐhmÐtuØ1:ð<ñ <ô <ð <ó    c           	      óL   — t          j        ddg t           j        dd| ¬¦  «        S )Nzmov.u32 $0, %smid;z=rTr   r   )r   r   Úint32r   s    r   Úsmidr   
   s0   € åÔ&Ð';¸TÀ2ÍTÌZÐaeÐlmØ1:ð<ñ <ô <ð <r   c                 óN   — t          j        | j        j        j        dz  ¦  «        S )Né    ©r   Ú	constexprÚbuilderÚoptionsÚ	num_warpsr   s    r   Únum_threadsr      s    € åŒ>˜)Ô+Ô3Ô=ÀÑBÑCÔCÐCr   c                 óH   — t          j        | j        j        j        ¦  «        S ©Nr   r   s    r   r   r      s   € åŒ>˜)Ô+Ô3Ô=Ñ>Ô>Ð>r   c           	      óN   — t          j        dd| gt           j        dd|¬¦  «        S )Na¸  {                                      
.reg .b32 a<2>, b<2>;                  
prmt.b32 a0, 0, $2, 0x5746;            
and.b32 b0, a0, 0x7f007f00;            
and.b32 b1, a0, 0x00ff00ff;            
and.b32 a1, a0, 0x00800080;            
shr.b32  b0, b0, 1;                    
add.u32 b1, b1, a1;                    
lop3.b32 $0, b0, 0x80008000, a0, 0xf8; 
shl.b32 $1, b1, 7;                     
}                                      
z=r,=r,rTé   r   )r   r   Úfloat16)Úargr
   s     r   Úconvert_fp8e4b15_to_float16r"   !   s7   € åÔ&ð
	4ð 6?ÀÀÍTÌ\ÐcgÐnoØðñ ô ð r   c           	      óv   — d}|r|dz  }n|dz  }|dz  }t          j        |d| gt           j        dd|¬¦  «        S )	NaN  {
            .reg .pred p<4>;
            .reg .b32 a<2>, b<2>;
            .reg .b16 c<4>;
            .reg .b16 max_val_f16;
            .reg .b32 max_val_f16x2;
            mov.b16 max_val_f16,   0x3F00;
            mov.b32 max_val_f16x2, 0x3F003F00;
            and.b32 a0, $1, 0x7fff7fff;
            and.b32 a1, $2, 0x7fff7fff;zSmin.f16x2 a0, a0, max_val_f16x2;
                  min.f16x2 a1, a1, max_val_f16x2;a×  setp.lt.f16x2  p0|p1, a0, max_val_f16x2;
                  setp.lt.f16x2  p2|p3, a1, max_val_f16x2;
                  mov.b32 {c0, c1}, a0;
                  mov.b32 {c2, c3}, a1;
                  selp.b16  c0, c0, max_val_f16, p0;
                  selp.b16  c1, c1, max_val_f16, p1;
                  selp.b16  c2, c2, max_val_f16, p2;
                  selp.b16  c3, c3, max_val_f16, p3;
                  mov.b32 a0, {c0, c1};
                  mov.b32 a1, {c2, c3};zömad.lo.u32 a0, a0, 2, 0x00800080;
              mad.lo.u32 a1, a1, 2, 0x00800080;
              lop3.b32 b0, $1, 0x80008000, a0, 0xea;
              lop3.b32 b1, $2, 0x80008000, a1, 0xea;
              prmt.b32 $0, b0, b1, 0x7531;
              }z=r,r,rTr   r   )r   r   Úfloat8e4b15)r!   Ú	has_minx2r
   Úasms       r   Úconvert_float16_to_fp8e4b15r'   2   sx   € ð	+€Cð ð +Øð 6ñ 	6ˆˆð 	ð 	+ñ 		+ˆð ð ñ €Cõ Ô& s¨H°s°eÅ4ÔCSÐ]aÐhiØ1:ð<ñ <ô <ð <r   c                 ó   — | j         j                             ¦   «         rMt          | |¬¦  «        }|j                             ¦   «         r!|                     t          j        |¬¦  «        }|S | j         j                             ¦   «         s | j         j                             ¦   «         sJ ‚| }| j         j                             ¦   «         r"|                     t          j	        d|¬¦  «        }t          |||¬¦  «        }|S )Nr   Úrtz)Úfp_downcast_roundingr
   ©r%   r
   )ÚtypeÚscalarÚis_fp8e4b15r"   Úis_fp32Útor   Úfloat32Úis_fp16r    r'   )r!   Údst_tyr*   r%   r
   Ú
upcast_valÚdowncast_vals          r   Úconvert_custom_float8r6   V   sä   € à
„x„×"Ò"Ñ$Ô$ð Ý0°À	ÐJÑJÔJˆ
ØŒ=× Ò Ñ"Ô"ð 	JØ#Ÿš¥t¤|¸y˜ÑIÔIˆJØÐàŒ8Œ?×"Ò"Ñ$Ô$ÐA¨¬¬×(?Ò(?Ñ(AÔ(AÐAÐAÐAØ€LØ
„x„×ÒÑ Ô ð fØ#—’¥t¤|È%Ð[dÑeÔeˆÝ.¨|ÀyÐ\eÐfÑfÔf€LØÐr   c                 ó*   — t          | ||d|¬¦  «        S )NTr+   ©r6   ©r!   r3   r*   r
   s       r   Úconvert_custom_float8_sm80r:   f   s   € å   fÐ.BÈdÐ^gÐhÑhÔhÐhr   c                 ó*   — t          | ||d|¬¦  «        S )NFr+   r8   r9   s       r   Úconvert_custom_float8_sm70r<   k   s   € å   fÐ.BÈeÐ_hÐiÑiÔiÐir   r   )NN)Útriton.languager   Úexternr   r   Úbuiltinr   r   r"   r'   r6   r:   r<   © r   r   ú<module>rA      sb  ðØ  Ð  Ð  Ð  Ð  Ð  ð „ð<ð <ð <ñ „ð<ð
 „ð<ð <ð <ñ „ð<ð
 „ðDð Dð Dñ „ðDð „ð?ð ?ð ?ñ „ð?ð „ðð ð ñ „ðð  „ð <ð  <ð  <ñ „ð <ðF „ðð ð ñ „ðð „ðið ið iñ „ðið „ðjð jð jñ „ðjð jð jr   