
    Upf             
          d dl mZ d dl mZmZmZm	Z
mZmZ ej        Zd dlZd dlmZmZ ej         G d dej                              Z ej        e           G d dej                              Zddd	d
ej        fdZ ej        e           G d dej                              Zddddddd
ej         fdZ! ej        e           G d dej                              Z"ddd	d
ej         fdZ# ej        e           G d dej                              Z$ddd	d
ej        fdZ% ej        e           G d dej                              Z&ddd	d
ej        fdZ' ej        e           G d dej                              Z(ddd	d
ej         fdZ) ej        e           G d dej                              Z*ddd	d
ej        fdZ+ ej        e           G d d ej                              Z,dddd!d
ej        fd"Z- ej        e           G d# d$ej                              Z.ddd	d
ej        fd%Z/ ej        e           G d& d'ej                              Z0ddd	d
ej        fd(Z1 ej        e           G d) d*ej                              Z2ddd	d
ej        fd+Z3 ej        e           G d, d-ej                              Z4ddd	d
ej        fd.Z5 ej        e           G d/ d0ej                              Z6ddddd1d
ej        fd2Z7 ej        e           G d3 d4ej                              Z8ddd	d
ej        fd5Z9 ej        e           G d6 d7ej                              Z:ddd	d
ej        fd8Z; ej        e           G d9 d:ej                              Z<ddddd;d
ej        fd<Z= ej        e           G d= d>ej                              Z>ddd	d
ej         fd?Z? ej        e           G d@ dAej                              Z@ddd	d
ej        fdBZA ej        e           G dC dDej                              ZBddddEd
ej        fdFZC ej        e           G dG dHej                              ZDddd	d
ej        fdIZE ej        e           G dJ dKej                              ZFddd	d
ej        fdLZG ej        e           G dM dNej                              ZHddd	d
ej        fdOZI ej        e           G dP dQej                              ZJddd	d
ej        fdRZK ej        e           G dS dTej                              ZLddd	d
ej        fdUZM ej        e           G dV dWej                              ZNddddddddddX	d
ej        fdYZO ej        e           G dZ d[ej                              ZPddd	d
ej        fd\ZQ ej        e           G d] d^ej                              ZRddd	d
ej        fd_ZS ej        e           G d` daej                              ZTddd	d
ej        fdbZU ej        e           G dc ddej                              ZVddd	d
ej        fdeZW ej        e           G df dgej                              ZXddd	d
ej        fdhZY ej        e           G di djej                              ZZddd	d
ej         fdkZ[ ej        e           G dl dmej                              Z\ddd	d
ej        fdnZ] ej        e           G do dpej                              Z^ddd	d
ej        fdqZ_ ej        e           G dr dsej                              Z`ddd	d
ej         fdtZa ej        e           G du dvej                              Zbddddwd
ej        fdxZc ej        e           G dy dzej                              Zdddd	d
ej        fd{Ze ej        e           G d| d}ej                              Zfddd	d
ej         fd~Zg ej        e           G d dej                              Zhddd	d
ej        fdZi ej        e           G d dej                              Zjddd	d
eej                 fdZk ej        e           G d dej                              Zldddddddd
ej         fdZm ej        e           G d dej                              Znddd	d
ej        fdZodS )    )_cext)equally_sized_accessorget_default_loc_contextget_op_result_or_op_resultsget_op_result_or_valueget_op_results_or_valuessegmented_accessorN)SequenceUnionc                       e Zd ZdZdS )_DialectttN)__name__
__module____qualname__DIALECT_NAMESPACE     ]/var/www/html/nettyfy-visnx/env/lib/python3.11/site-packages/jaxlib/triton/_triton_ops_gen.pyr   r      s        r   r   c                        e Zd ZdZdZddd fd
Zej        d             Zej        d             Z	e	j
        d             Z	 xZS )	CallOpztt.callr   TNlocipc                   g }g }i }d }	|                     t          |                     t          |          }
t          |t          j                  st          j                            d          s|n(t	          j                            d          ||
          |d<   |                     |           d }t                      
                    |                     |||||	||                     d S )NFlatSymbolRefAttrcontextcallee
attributesresultsoperands
successorsregionsr   r   extend_get_op_results_or_values_ods_get_default_loc_context
isinstance_ods_ir	AttributeAttrBuildercontainsgetsuper__init__build_generic)selfresultr    	operands_r   r   r$   r#   r"   r&   _ods_context_ods_successors	__class__s               r   r2   zCallOp.__init__   s   HGJGOO-i88999/44Lvw())Q$$%899QFF 1226<PPP x NN6O	GGT'':wYan}  HO  UX  ]_'  `  `  a  a  a  a  ar   c                 n    t          | j        j                  dz
  dz   }| j        j        dd|z            S N   r   len	operationr$   r4   _ods_variadic_group_lengths     r   r6   zCallOp.operands_-   :    !$T^%<!=!=!AA!E>"1Q)C%C#CDDr   c                 &    | j         j        d         S )Nr    r?   r"   r4   s    r   r    zCallOp.callee2       >$X..r   c                 F    |t          d          || j        j        d<   d S )N4'None' not allowed as value for mandatory attributesr    
ValueErrorr?   r"   r4   values     r   r    zCallOp.callee6   +    }MNNN*/DNh'''r   )r   r   r   OPERATION_NAME_ODS_REGIONSr2   builtinspropertyr6   r    setter__classcell__r9   s   @r   r   r      s        .,7; a a a a a a a E E E / / / 
=0 0 =0 0 0 0 0r   r   r   returnc          	      D    t          t          | ||||                    S )Nr5   r    r6   r   r   )_get_op_result_or_op_resultsr   rW   s        r   callrY   <   s&    	%fF6U^dgln&o&o&o	p	ppr   c                       e Zd ZdZdZdddddd fd
Zej        d             Zej	        d             Zej        d             Z
e
j	        d	             Z
ej        d
             Zej	        d             Zej        d             Zej        d             Zej	        d             Zej        d             Zej        d             Zej	        d             Zej        d             Zej        d             Z xZS )FuncOpztt.funcr<   TNsym_visibility	arg_attrs	res_attrsr   r   c                   g }g }	i }
d }t          |          }t          |t          j                  st          j                            d          s|n(t          j                            d          ||          |
d<   t          |t          j                  st          j                            d          s|n(t          j                            d          ||          |
d<   |gt          |t          j                  st          j                            d          s|n(t          j                            d          ||          |
d<   |gt          |t          j                  st          j                            d          s|n(t          j                            d          ||          |
d	<   |gt          |t          j                  st          j                            d          s|n(t          j                            d          ||          |
d
<   d }t                                          | 	                    |
|	|||||                     d S )NSymbolNameAttrr   sym_nameanonymous_622function_typeStrAttrr^   DictArrayAttrr_   r`   r!   
r*   r+   r,   r-   r.   r/   r0   r1   r2   r3   )r4   rc   re   r^   r_   r`   r   r   r$   r#   r"   r&   r7   r8   r9   s                 r   r2   zFuncOp.__init__E   s   HGJG/44Lx*++P$$%566Phh .//,OOO z
 }g/00$T$$_55$T== o..}lSSS  !>7#455DS((33DS>> 

!
!)
,
,^\
R
R
R $..>#? 9g/00:T((99:T 

!
!/
2
29l
S
S
S )5 9g/00:T((99:T 

!
!/
2
29l
S
S
S )5 O	GGT'':wYan}  HO  UX  ]_'  `  `  a  a  a  a  ar   c                 &    | j         j        d         S )Nrc   rD   rE   s    r   rc   zFuncOp.sym_nameb   s    >$Z00r   c                 F    |t          d          || j        j        d<   d S )NrH   rc   rI   rK   s     r   rc   zFuncOp.sym_namef   s+    }MNNN,1DNj)))r   c                 &    | j         j        d         S )Nre   rD   rE   s    r   re   zFuncOp.function_typel       >$_55r   c                 F    |t          d          || j        j        d<   d S )NrH   re   rI   rK   s     r   re   zFuncOp.function_typep   +    }MNNN16DNo...r   c                 F    d| j         j        vrd S | j         j        d         S Nr^   rD   rE   s    r   r^   zFuncOp.sym_visibilityv   s(    t~888T>$%566r   c                 f    ||| j         j        d<   d S d| j         j        v r| j         j        d= d S d S rp   rD   rK   s     r   r^   zFuncOp.sym_visibility|   sJ    49dn 0111	T^6	6	6
.
#$4
5
5
5 
7	6r   c                      | j         j        d= d S rp   rD   rE   s    r   r^   zFuncOp.sym_visibility   s    !"2333r   c                 F    d| j         j        vrd S | j         j        d         S Nr_   rD   rE   s    r   r_   zFuncOp.arg_attrs   '    $.333T>$[11r   c                 f    ||| j         j        d<   d S d| j         j        v r| j         j        d= d S d S rt   rD   rK   s     r   r_   zFuncOp.arg_attrs   H    /4dn,,,	1	1	1
.
#K
0
0
0 
2	1r   c                      | j         j        d= d S rt   rD   rE   s    r   r_   zFuncOp.arg_attrs       !+...r   c                 F    d| j         j        vrd S | j         j        d         S Nr`   rD   rE   s    r   r`   zFuncOp.res_attrs   ru   r   c                 f    ||| j         j        d<   d S d| j         j        v r| j         j        d= d S d S r{   rD   rK   s     r   r`   zFuncOp.res_attrs   rw   r   c                      | j         j        d= d S r{   rD   rE   s    r   r`   zFuncOp.res_attrs   ry   r   c                     | j         d         S Nr   r&   rE   s    r   bodyzFuncOp.body       <?r   )r   r   r   rN   rO   r2   rP   rQ   rc   rR   re   r^   deleterr_   r`   r   rS   rT   s   @r   r[   r[   ?   s       .,@DPT`djnsw a a a a a a a: 1 1 1 ?2 2 ?2
 6 6 6 7 7 7
 7 7 7
 6 6 6 4 4 4 2 2 2
 1 1 1 / / / 2 2 2
 1 1 1 / / /       r   r[   r]   c                H    t          t          | ||||||                    S )Nrc   re   r^   r_   r`   r   r   )rX   r[   r   s          r   funcr      sN    	%fhmlz  GP  \e  kn  su  'v  'v  'v  
w  
w  wr   c                   N     e Zd ZdZdZddd fd
Zej        d             Z xZ	S )ReturnOpz	tt.returnr   Nr   c                    g }g }i }d }|                     t          |                     t          |          }d }	t                                          |                     ||||	|||                     d S Nr!   r(   r)   r*   r1   r2   r3   )r4   srcsr   r   r$   r#   r"   r&   r7   r8   r9   s             r   r2   zReturnOp.__init__   s    HGJGOO-d33444/44LO	GGT'':wYan}  HO  UX  ]_'  `  `  a  a  a  a  ar   c                 n    t          | j        j                  dz
  dz   }| j        j        dd|z            S r;   r=   r@   s     r   r   zReturnOp.srcs   rB   r   )
r   r   r   rN   rO   r2   rP   rQ   r   rS   rT   s   @r   r   r      s~        .,"&4 a a a a a a a E E E E E E Er   r   c                @    t          t          | ||                    S )Nr   r   r   )rX   r   r   s      r   return_r      s    	%hDcb&I&I&I	J	JJr   c                        e Zd ZdZdZddd fd
Zej        d             Zej        d             Z	ej        d             Z
 xZS )	AddPtrOpz	tt.addptrr   Nr   c                b   g }g }i }d }	|                     t          |                     |                     t          |                     t          |          }
|                     |           d }t                                          |                     |||||	||                     d S r   append_get_op_result_or_valuer*   r1   r2   r3   )r4   r5   ptroffsetr   r   r$   r#   r"   r&   r7   r8   r9   s               r   r2   zAddPtrOp.__init__   s    HGJGOO+C00111OO+F33444/44LNN6O	GGT'':wYan}  HO  UX  ]_'  `  `  a  a  a  a  ar   c                 &    | j         j        d         S r   r?   r$   rE   s    r   r   zAddPtrOp.ptr       >"1%%r   c                 &    | j         j        d         S Nr<   r   rE   s    r   r   zAddPtrOp.offset   r   r   c                 &    | j         j        d         S r   r?   r#   rE   s    r   r5   zAddPtrOp.result       >!!$$r   )r   r   r   rN   rO   r2   rP   rQ   r   r   r5   rS   rT   s   @r   r   r      s        .,15$ 
a 
a 
a 
a 
a 
a 
a & & & & & & % % % % % % %r   r   c          	      D    t          t          | ||||                    S )Nr5   r   r   r   r   )rX   r   r   s        r   addptrr      s%    	%hf#fZ]bd&e&e&e	f	ffr   c                        e Zd ZdZdZddd fd
Zej        d             Zej        d             Z	ej        d             Z
 xZS )		AdvanceOpz
tt.advancer   Nr   c                b   g }g }i }d }	|                     t          |                     |                    t          |                     t	          |          }
|                     |           d }t                                          |                     |||||	||                     d S r   r   r   r(   r)   r*   r1   r2   r3   )r4   r5   r   offsetsr   r   r$   r#   r"   r&   r7   r8   r9   s               r   r2   zAdvanceOp.__init__   s    HGJGOO+C00111OO-g66777/44LNN6O	GGT'':wYan}  HO  UX  ]_'  `  `  a  a  a  a  ar   c                 &    | j         j        d         S r   r   rE   s    r   r   zAdvanceOp.ptr   r   r   c                 n    t          | j        j                  dz
  dz   }| j        j        dd|z            S N   r<   r=   r@   s     r   r   zAdvanceOp.offsets   rB   r   c                 &    | j         j        d         S r   r   rE   s    r   r5   zAdvanceOp.result  r   r   )r   r   r   rN   rO   r2   rP   rQ   r   r   r5   rS   rT   s   @r   r   r      s        .,264 
a 
a 
a 
a 
a 
a 
a & & & E E E % % % % % % %r   r   c          	      D    t          t          | ||||                    S )Nr5   r   r   r   r   )rX   r   r   s        r   advancer     s&    	%iv3PW]`eg&h&h&h	i	iir   c                   N    e Zd ZdZdZddd fd
Zej        d             Zej        d             Z	e	j
        d             Z	ej        d	             Zej
        d
             Zej        d             Zej
        d             Zej        d             Zej
        d             Z xZS )AssertOpz	tt.assertr   Nr   c                ,   g }g }	i }
d }|                     t          |                     t          |          }t          |t          j                  st          j                            d          s|n(t	          j                            d          ||          |
d<   t          |t          j                  st          j                            d          s|n(t	          j                            d          ||          |
d<   t          |t          j                  st          j                            d          s|n(t	          j                            d          ||          |
d<   t          |t          j                  st          j                            d          s|n(t	          j                            d          ||          |
d<   d }t                      
                    |                     |
|	|||||                     d S )	Nrf   r   messagefiler   I32Attrliner!   r   r   r*   r+   r,   r-   r.   r/   r0   r1   r2   r3   )r4   	conditionr   r   r   r   r   r   r$   r#   r"   r&   r7   r8   r9   s                 r   r2   zAssertOp.__init__  s1   HGJGOO+I66777/44Lw)**H$$Y//HWW i((,GGG y
 tW&''E$$Y//E$$ i((|DDD v
 tW&''E$$Y//E$$ i((|DDD v
 tW&''E$$Y//E$$ i((|DDD v O	GGT'':wYan}  HO  UX  ]_'  `  `  a  a  a  a  ar   c                 &    | j         j        d         S r   r   rE   s    r   r   zAssertOp.condition+  r   r   c                 &    | j         j        d         S )Nr   rD   rE   s    r   r   zAssertOp.message/      >$Y//r   c                 F    |t          d          || j        j        d<   d S )NrH   r   rI   rK   s     r   r   zAssertOp.message3  +    }MNNN+0DNi(((r   c                 &    | j         j        d         S )Nr   rD   rE   s    r   r   zAssertOp.file9      >$V,,r   c                 F    |t          d          || j        j        d<   d S )NrH   r   rI   rK   s     r   r   zAssertOp.file=  +    }MNNN(-DNf%%%r   c                 &    | j         j        d         S )Nr   rD   rE   s    r   r   zAssertOp.funcC  r   r   c                 F    |t          d          || j        j        d<   d S )NrH   r   rI   rK   s     r   r   zAssertOp.funcG  r   r   c                 &    | j         j        d         S )Nr   rD   rE   s    r   r   zAssertOp.lineM  r   r   c                 F    |t          d          || j        j        d<   d S )NrH   r   rI   rK   s     r   r   zAssertOp.lineQ  r   r   )r   r   r   rN   rO   r2   rP   rQ   r   r   rR   r   r   r   rS   rT   s   @r   r   r     sg       .,BF4 a a a a a a a4 & & & 0 0 0 >1 1 >1
 - - - ;. . ;.
 - - - ;. . ;.
 - - - ;. . ;. . . . .r   r   c                H    t          t          | ||||||                    S )Nr   r   r   r   r   r   r   )rX   r   r   s          r   assert_r   W  sB    	%hGZ^eiptz}  CE  'F  'F  'F  
G  
G  Gr   c                   .    e Zd ZdZdZddd fd
Zej        d             Zej        d             Z	ej        d             Z
ej        d	             Zej        d
             Zej        d             Zej        d             Zej        d             Z xZS )AtomicCASOpztt.atomic_casr   Nr   c                B   g }	g }
i }d }|	                     t          |                     |	                     t          |                     |	                     t          |                     t          |          }t          |t          j                  st          j                            d          s|n(t	          j                            d          ||          |d<   t          |t          j                  st          j                            d          s|n(t	          j                            d          ||          |d<   |
                     |           d }t                      
                    |                     ||
|	||||                     d S )NTT_MemSemanticAttrr   semTT_MemSyncScopeAttrscoper!   r   )r4   r5   r   cmpvalr   r   r   r   r$   r#   r"   r&   r7   r8   r9   s                  r   r2   zAtomicCASOp.__init__`  s   HGJGOO+C00111OO+C00111OO+C00111/44LsG%&&O$$%9::O 233CNNN u
 ug'((R$$%:;;R55 344ULQQQ w NN6O	GGT'':wYan}  HO  UX  ]_'  `  `  a  a  a  a  ar   c                 &    | j         j        d         S r   r   rE   s    r   r   zAtomicCASOp.ptru  r   r   c                 &    | j         j        d         S r   r   rE   s    r   r   zAtomicCASOp.cmpy  r   r   c                 &    | j         j        d         S Nr   r   rE   s    r   r   zAtomicCASOp.val}  r   r   c                 &    | j         j        d         S Nr   rD   rE   s    r   r   zAtomicCASOp.sem      >$U++r   c                 F    |t          d          || j        j        d<   d S NrH   r   rI   rK   s     r   r   zAtomicCASOp.sem  +    }MNNN',DNe$$$r   c                 &    | j         j        d         S Nr   rD   rE   s    r   r   zAtomicCASOp.scope      >$W--r   c                 F    |t          d          || j        j        d<   d S NrH   r   rI   rK   s     r   r   zAtomicCASOp.scope  +    }MNNN).DNg&&&r   c                 &    | j         j        d         S r   r   rE   s    r   r5   zAtomicCASOp.result  r   r   )r   r   r   rN   rO   r2   rP   rQ   r   r   r   r   rR   r   r5   rS   rT   s   @r   r   r   Z  sL       ".,?C a a a a a a a* & & & & & & & & & , , , :- - :-
 . . . 	</ / </
 % % % % % % %r   r   c                J    t          t          | |||||||                    S )Nr5   r   r   r   r   r   r   r   )rX   r   r   s           r   
atomic_casr     sD    	%kScWZ`ckpvy  A  'B  'B  'B  
C  
C  Cr   c                   p    e Zd ZdZdZdddd fd
Zej        d             Zej        d             Z	ej        d             Z
ej        d	             Zej        d
             Zej        d             Zej        d             Zej        d             Zej        d             Zej        d             Z xZS )AtomicRMWOpztt.atomic_rmwr   Nmaskr   r   c                   g }
g }i }d }|
                     t          |                     |
                     t          |                     |"|
                     t          |                     t          |          }t          |t          j                  st          j                            d          s|n(t	          j                            d          ||          |d<   t          |t          j                  st          j                            d          s|n(t	          j                            d          ||          |d<   t          |t          j                  st          j                            d          s|n(t	          j                            d          ||          |d<   |                     |           d }t                      
                    |                     |||
||||	                     d S )	NTT_AtomicRMWAttrr   atomic_rmw_opr   r   r   r   r!   r   )r4   r5   r   r   r   r   r   r   r   r   r$   r#   r"   r&   r7   r8   r9   s                   r   r2   zAtomicRMWOp.__init__  s!   HGJGOO+C00111OO+C00111)@)F)FGGG/44L}g/00$W$$%788$W== 011-VVV 
 sG%&&O$$%9::O 233CNNN u
 ug'((R$$%:;;R55 344ULQQQ w NN6O	GGT'':wYan}  HO  UX  ]_'  `  `  a  a  a  a  ar   c                 &    | j         j        d         S r   r   rE   s    r   r   zAtomicRMWOp.ptr  r   r   c                 &    | j         j        d         S r   r   rE   s    r   r   zAtomicRMWOp.val  r   r   c                 d    t          | j        j                  dk     rd n| j        j        d         S N   r   r=   rE   s    r   r   zAtomicRMWOp.mask  .    t~.//!33449PQR9SSr   c                 &    | j         j        d         S )Nr   rD   rE   s    r   r   zAtomicRMWOp.atomic_rmw_op  rl   r   c                 F    |t          d          || j        j        d<   d S )NrH   r   rI   rK   s     r   r   zAtomicRMWOp.atomic_rmw_op  rn   r   c                 &    | j         j        d         S r   rD   rE   s    r   r   zAtomicRMWOp.sem  r   r   c                 F    |t          d          || j        j        d<   d S r   rI   rK   s     r   r   zAtomicRMWOp.sem  r   r   c                 &    | j         j        d         S r   rD   rE   s    r   r   zAtomicRMWOp.scope  r   r   c                 F    |t          d          || j        j        d<   d S r   rI   rK   s     r   r   zAtomicRMWOp.scope  r   r   c                 &    | j         j        d         S r   r   rE   s    r   r5   zAtomicRMWOp.result  r   r   )r   r   r   rN   rO   r2   rP   rQ   r   r   r   r   rR   r   r   r5   rS   rT   s   @r   r   r     s       ".,JNTX]a a a a a a a a2 & & & & & & T T T 6 6 6 7 7 7
 , , , :- - :-
 . . . 	</ / </
 % % % % % % %r   r   r   c                L    t          t          | ||||||||	  	                  S )N	r5   r   r   r   r   r   r   r   r   )rX   r   r   s	            r   
atomic_rmwr     sT    	%k}bekntw  @E  LP  VY  ^`  'a  'a  'a  
b  
b  br   c                   n     e Zd ZdZdZddd fd
Zej        d             Zej        d             Z	 xZ
S )	BitcastOpz
tt.bitcastr   Nr   c                   g }g }i }d }|                     t          |                     t          |          }	|                     |           d }
t                                          |                     ||||
|||                     d S r   r   r4   r5   srcr   r   r$   r#   r"   r&   r7   r8   r9   s              r   r2   zBitcastOp.__init__      HGJGOO+C00111/44LNN6O	GGT'':wYan}  HO  UX  ]_'  `  `  a  a  a  a  ar   c                 &    | j         j        d         S r   r   rE   s    r   r  zBitcastOp.src  r   r   c                 &    | j         j        d         S r   r   rE   s    r   r5   zBitcastOp.result  r   r   r   r   r   rN   rO   r2   rP   rQ   r  r5   rS   rT   s   @r   r   r     s        .,)-$ 	a 	a 	a 	a 	a 	a 	a & & & % % % % % % %r   r   c                B    t          t          | |||                    S Nr5   r  r   r   )rX   r   r	  s       r   bitcastr
    s"    	%iv3CTV&W&W&W	X	XXr   c                   n     e Zd ZdZdZddd fd
Zej        d             Zej        d             Z	 xZ
S )BroadcastOpztt.broadcastr   Nr   c                   g }g }i }d }|                     t          |                     t          |          }	|                     |           d }
t                                          |                     ||||
|||                     d S r   r   r  s              r   r2   zBroadcastOp.__init__  r  r   c                 &    | j         j        d         S r   r   rE   s    r   r  zBroadcastOp.src  r   r   c                 &    | j         j        d         S r   r   rE   s    r   r5   zBroadcastOp.result  r   r   r  rT   s   @r   r  r            !.,)-$ 	a 	a 	a 	a 	a 	a 	a & & & % % % % % % %r   r  c                B    t          t          | |||                    S r  )rX   r  r	  s       r   	broadcastr  !  "    	%kScVX&Y&Y&Y	Z	ZZr   c                        e Zd ZdZdZddd fd
Zej        d             Zej        d             Z	ej        d             Z
 xZS )	CatOpztt.catr   Nr   c                b   g }g }i }d }	|                     t          |                     |                     t          |                     t          |          }
|                     |           d }t                                          |                     |||||	||                     d S r   r   )r4   r5   lhsrhsr   r   r$   r#   r"   r&   r7   r8   r9   s               r   r2   zCatOp.__init__*  s    HGJGOO+C00111OO+C00111/44LNN6O	GGT'':wYan}  HO  UX  ]_'  `  `  a  a  a  a  ar   c                 &    | j         j        d         S r   r   rE   s    r   r  z	CatOp.lhs6  r   r   c                 &    | j         j        d         S r   r   rE   s    r   r  z	CatOp.rhs:  r   r   c                 &    | j         j        d         S r   r   rE   s    r   r5   zCatOp.result>  r   r   r   r   r   rN   rO   r2   rP   rQ   r  r  r5   rS   rT   s   @r   r  r  $  s        .,.2t 
a 
a 
a 
a 
a 
a 
a & & & & & & % % % % % % %r   r  c          	      D    t          t          | ||||                    S )Nr5   r  r  r   r   )rX   r  r  s        r   catr  B  s%    	%e6sQTY[&\&\&\	]	]]r   c                        e Zd ZdZdZddd fd
Zej        d             Zej        d             Z	ej        d             Z
ej        d	             Zej        d
             Zej        d             Z xZS )ClampFOpz	tt.clampfr   Nr   c          
         g }g }i }	d }
|                     t          |                     |                     t          |                     |                     t          |                     t          |          }t          |t          j                  st          j                            d          s|n(t	          j                            d          ||          |	d<   |	                    |d         j
        gdz             d }t                                          |                     |	|||
||                     d S )NTT_PropagateNanAttrr   propagateNanr   r<   r"   r$   r%   r&   r   r   )r   r   r*   r+   r,   r-   r.   r/   r0   r(   typer1   r2   r3   )r4   xminmaxr$  r   r   r$   r#   r"   r&   r7   r8   r9   s                r   r2   zClampFOp.__init__K  sZ   HGJGOO+A..///OO+C00111OO+C00111/44L|W.//#Y$$%:;;#Y,, 344\<XXX ~ NNHQK$%)***O	GGT'':]lv}  DG  LN'  O  O  P  P  P  P  Pr   c                 &    | j         j        d         S r   r   rE   s    r   r'  z
ClampFOp.x\  r   r   c                 &    | j         j        d         S r   r   rE   s    r   r(  zClampFOp.min`  r   r   c                 &    | j         j        d         S r   r   rE   s    r   r)  zClampFOp.maxd  r   r   c                 &    | j         j        d         S )Nr$  rD   rE   s    r   r$  zClampFOp.propagateNanh  s    >$^44r   c                 F    |t          d          || j        j        d<   d S )NrH   r$  rI   rK   s     r   r$  zClampFOp.propagateNanl  s+    }MNNN05DNn---r   c                 &    | j         j        d         S r   r   rE   s    r   r5   zClampFOp.resultr  r   r   )r   r   r   rN   rO   r2   rP   rQ   r'  r(  r)  r$  rR   r5   rS   rT   s   @r   r!  r!  E  s       .,7; P P P P P P P" & & & & & & & & & 5 5 5 6 6 6
 % % % % % % %r   r!  c          
      F    t          t          | |||||                    S )N)r'  r(  r)  r$  r   r   )rX   r!  )r'  r(  r)  propagate_nanr   r   s         r   clampfr2  v  s(    	%hS`finp&q&q&q	r	rrr   c                   2    e Zd ZdZdZddddd fd
Zej        d             Zej        d             Z	ej        d             Z
ej        d	             Zej        d
             Zej        d             Zej        d             Zej        d             Z xZS )DotOpztt.dotr   N)inputPrecisionmaxNumImpreciseAccr   r   c          
         g }g }	i }
d }|                     t          |                     |                     t          |                     |                     t          |                     t          |          }|gt          |t          j                  st          j                            d          s|n(t	          j                            d          ||          |
d<   |gt          |t          j                  st          j                            d          s|n(t	          j                            d          ||          |
d<   d }t                      
                    |                     |
|||||                     d S )NTT_InputPrecisionAttrr   r5  r   r6  r%  r   )r4   abcr5  r6  r   r   r$   r#   r"   r&   r7   r8   r9   s                 r   r2   zDotOp.__init__  s   HGJGOO+A..///OO+A..///OO+A..////44L!>7#455Da(()@AADa>> 

!
!"9
:
:>S_
`
`
` $..>#? %%w'899LW((33LWK]K] 

!
!)
,
,-?
V
V
V (22F'G O	GGT'':]lv}  DG  LN'  O  O  P  P  P  P  Pr   c                 &    | j         j        d         S r   r   rE   s    r   r9  zDotOp.a  r   r   c                 &    | j         j        d         S r   r   rE   s    r   r:  zDotOp.b  r   r   c                 &    | j         j        d         S r   r   rE   s    r   r;  zDotOp.c  r   r   c                 &    | j         j        d         S )Nr5  rD   rE   s    r   r5  zDotOp.inputPrecision      >$%566r   c                 F    |t          d          || j        j        d<   d S )NrH   r5  rI   rK   s     r   r5  zDotOp.inputPrecision  ,    }MNNN27DN.///r   c                 &    | j         j        d         S )Nr6  rD   rE   s    r   r6  zDotOp.maxNumImpreciseAcc  s    >$%9::r   c                 F    |t          d          || j        j        d<   d S )NrH   r6  rI   rK   s     r   r6  zDotOp.maxNumImpreciseAcc  s,    }MNNN6;DN2333r   c                 &    | j         j        d         S r   r   rE   s    r   dzDotOp.d  r   r   )r   r   r   rN   rO   r2   rP   rQ   r9  r:  r;  r5  rR   r6  rF  rS   rT   s   @r   r4  r4  y  sV       .,04SW\` P P P P P P P( & & & & & & & & & 7 7 7 8 8 8
 ; ; ; < < <
 % % % % % % %r   r4  )input_precisionmax_num_imprecise_accr   r   c                H    t          t          | ||||||                    S )N)r9  r:  r;  r5  r6  r   r   )rX   r4  )r9  r:  r;  rG  rH  r   r   s          r   dotrJ    sH    	%ea1/  oD  JM  RT  'U  'U  'U  
V  
V  Vr   c                   n    e Zd ZdZdZddd fd
Zej        d             Zej        d             Z	e	j
        d             Z	ej        d	             Zej
        d
             Zej        d             Zej
        d             Zej        d             Zej
        d             Zej        d             Z xZS )ElementwiseInlineAsmOpztt.elementwise_inline_asmr   Nr   c                V   g }	g }
i }d }|	                     t          |                     t          |          }t          |t          j                  st          j                            d          s|n(t	          j                            d          ||          |d<   t          |t          j                  st          j                            d          s|n(t	          j                            d          ||          |d<   t          |t          j                  st          j                            d          s|n(t	          j                            d          ||          |d<   t          |t          j                  st          j                            d          s|n(t	          j                            d          ||          |d<   |
                     |           d }t                      
                    |                     ||
|	||||	                     d S )
Nrf   r   
asm_stringconstraintsBoolAttrpurer   packed_elementr!   r'   )r4   r5   rN  rO  rQ  rR  argsr   r   r$   r#   r"   r&   r7   r8   r9   s                  r   r2   zElementwiseInlineAsmOp.__init__  sD   HGJGOO-d33444/44Lz7,--!K$$Y//!K

 i((\JJJ |
 {G-.."L$$Y//"L i((lKKK }
 tW&''F$$Z00F$$ j))$EEE v
 ~w011%O$$Y//%ONN i((NNN   NN6O	GGT'':wYan}  HO  UX  ]_'  `  `  a  a  a  a  ar   c                 n    t          | j        j                  dz
  dz   }| j        j        dd|z            S r;   r=   r@   s     r   rS  zElementwiseInlineAsmOp.args  rB   r   c                 &    | j         j        d         S )NrN  rD   rE   s    r   rN  z!ElementwiseInlineAsmOp.asm_string      >$\22r   c                 F    |t          d          || j        j        d<   d S )NrH   rN  rI   rK   s     r   rN  z!ElementwiseInlineAsmOp.asm_string  +    }MNNN.3DNl+++r   c                 &    | j         j        d         S )NrO  rD   rE   s    r   rO  z"ElementwiseInlineAsmOp.constraints  s    >$]33r   c                 F    |t          d          || j        j        d<   d S )NrH   rO  rI   rK   s     r   rO  z"ElementwiseInlineAsmOp.constraints  s+    }MNNN/4DNm,,,r   c                 &    | j         j        d         S NrQ  rD   rE   s    r   rQ  zElementwiseInlineAsmOp.pure  r   r   c                 F    |t          d          || j        j        d<   d S NrH   rQ  rI   rK   s     r   rQ  zElementwiseInlineAsmOp.pure  r   r   c                 &    | j         j        d         S )NrR  rD   rE   s    r   rR  z%ElementwiseInlineAsmOp.packed_element  r@  r   c                 F    |t          d          || j        j        d<   d S )NrH   rR  rI   rK   s     r   rR  z%ElementwiseInlineAsmOp.packed_element  rB  r   c                 n    t          | j        j                  dz
  dz   }| j        j        dd|z            S r;   r>   r?   r#   r@   s     r   r5   zElementwiseInlineAsmOp.result  :    !$T^%;!<!<q!@1!D>!!A(B$B"BCCr   )r   r   r   rN   rO   r2   rP   rQ   rS  rN  rR   rO  rQ  rR  r5   rS   rT   s   @r   rL  rL    s       ..,Y]bf a a a a a a a6 E E E 3 3 3 4 4 4
 4 4 4 5 5 5
 - - - ;. . ;.
 7 7 7 8 8 8
 D D D D D D Dr   rL  c                J    t          t          | |||||||                    S )Nr5   rN  rO  rQ  rR  rS  r   r   )rX   rL  re  s           r   elementwise_inline_asmrf    sW    	%&<FWaoz  BF  We  lp  vy  ~@  'A  'A  'A  
B  
B  Br   c                        e Zd ZdZdZddd fd
Zej        d             Zej        d             Z	e	j
        d             Z	ej        d	             Z xZS )
ExpandDimsOpztt.expand_dimsr   Nr   c          
         g }g }i }d }|                     t          |                     t          |          }	t          |t          j                  st          j                            d          s|n(t	          j                            d          ||	          |d<   d }
t                      
                    |                     |||
|||                     d S )Nr   r   axisr%  r   )r4   r  rj  r   r   r$   r#   r"   r&   r7   r8   r9   s              r   r2   zExpandDimsOp.__init__  s   HGJGOO+C00111/44LtW&''E$$Y//E$$ i((|DDD v O	GGT'':]lv}  DG  LN'  O  O  P  P  P  P  Pr   c                 &    | j         j        d         S r   r   rE   s    r   r  zExpandDimsOp.src$  r   r   c                 &    | j         j        d         S Nrj  rD   rE   s    r   rj  zExpandDimsOp.axis(  r   r   c                 F    |t          d          || j        j        d<   d S NrH   rj  rI   rK   s     r   rj  zExpandDimsOp.axis,  r   r   c                 &    | j         j        d         S r   r   rE   s    r   r5   zExpandDimsOp.result2  r   r   )r   r   r   rN   rO   r2   rP   rQ   r  rj  rR   r5   rS   rT   s   @r   rh  rh    s        #.,'+ P P P P P P P & & & - - - ;. . ;.
 % % % % % % %r   rh  c                B    t          t          | |||                    S )Nr  rj  r   r   )rX   rh  rr  s       r   expand_dimsrs  6  s"    	%ls3SU&V&V&V	W	WWr   c                       e Zd ZdZdZddddd fd
Zej        d             Zej        d             Z	ej        d             Z
e
j        d	             Z
ej        d
             Zej        d             Zej        d             Z xZS )ExperimentalDescriptorLoadOpztt.experimental_descriptor_loadr   Ncacheevictr   r   c                   g }g }	i }
d }|                     t          |                     |                    t          |                     t	          |          }|gt          |t          j                  st          j        	                    d          s|n(t          j        
                    d          ||          |
d<   |gt          |t          j                  st          j        	                    d          s|n(t          j        
                    d          ||          |
d<   |	                     |           d }t                                          |                     |
|	|||||                     d S )NTT_CacheModifierAttrr   rw  TT_EvictionPolicyAttrrx  r!   r   r   r(   r)   r*   r+   r,   r-   r.   r/   r0   r1   r2   r3   )r4   r5   desc_ptrindicesrw  rx  r   r   r$   r#   r"   r&   r7   r8   r9   s                 r   r2   z%ExperimentalDescriptorLoadOp.__init__?  s   HGJGOO+H55666OO-g66777/44L5'+,,2W(()?@@2W 

!
!"8
9
9%
V
V
V %W- 5'+,,2X(()@AA2X 

!
!"9
:
:5,
W
W
W %W- NN6O	GGT'':wYan}  HO  UX  ]_'  `  `  a  a  a  a  ar   c                 &    | j         j        d         S r   r   rE   s    r   r}  z%ExperimentalDescriptorLoadOp.desc_ptrS  r   r   c                 n    t          | j        j                  dz
  dz   }| j        j        dd|z            S r   r=   r@   s     r   r~  z$ExperimentalDescriptorLoadOp.indicesW  rB   r   c                 &    | j         j        d         S Nrw  rD   rE   s    r   rw  z"ExperimentalDescriptorLoadOp.cache\  r   r   c                 F    |t          d          || j        j        d<   d S NrH   rw  rI   rK   s     r   rw  z"ExperimentalDescriptorLoadOp.cache`  r   r   c                 &    | j         j        d         S Nrx  rD   rE   s    r   rx  z"ExperimentalDescriptorLoadOp.evictf  r   r   c                 F    |t          d          || j        j        d<   d S NrH   rx  rI   rK   s     r   rx  z"ExperimentalDescriptorLoadOp.evictj  r   r   c                 &    | j         j        d         S r   r   rE   s    r   r5   z#ExperimentalDescriptorLoadOp.resultp  r   r   )r   r   r   rN   rO   r2   rP   rQ   r}  r~  rw  rR   rx  r5   rS   rT   s   @r   ru  ru  9  s5       4.,9=TtX\ a a a a a a a( & & & E E E . . . 	</ / </
 . . . 	</ / </
 % % % % % % %r   ru  rv  c                H    t          t          | ||||||                    S )Nr5   r}  r~  rw  rx  r   r   )rX   ru  r  s          r   experimental_descriptor_loadr  t  sP    	%&B&[cmt  }B  JO  UX  ]_  '`  '`  '`  
a  
a  ar   c                        e Zd ZdZdZddd fd
Zej        d             Zej        d             Z	ej        d             Z
 xZS )	ExperimentalDescriptorStoreOpz tt.experimental_descriptor_storer   Nr   c                |   g }g }i }d }	|                     t          |                     |                     t          |                     |                    t          |                     t	          |          }
d }t                                          |                     |||||	||                     d S r   r   )r4   r}  r  r~  r   r   r$   r#   r"   r&   r7   r8   r9   s               r   r2   z&ExperimentalDescriptorStoreOp.__init__}  s    HGJGOO+H55666OO+C00111OO-g66777/44LO	GGT'':wYan}  HO  UX  ]_'  `  `  a  a  a  a  ar   c                 &    | j         j        d         S r   r   rE   s    r   r}  z&ExperimentalDescriptorStoreOp.desc_ptr  r   r   c                 &    | j         j        d         S r   r   rE   s    r   r  z!ExperimentalDescriptorStoreOp.src  r   r   c                 n    t          | j        j                  dz
  dz   }| j        j        dd|z            S Nr   r<   r   r=   r@   s     r   r~  z%ExperimentalDescriptorStoreOp.indices  rB   r   )r   r   r   rN   rO   r2   rP   rQ   r}  r  r~  rS   rT   s   @r   r  r  w  s        5.,48T 
a 
a 
a 
a 
a 
a 
a & & & & & & E E E E E E Er   r  c          	      D    t          t          | ||||                    S )Nr}  r  r~  r   r   )rX   r  r  s        r   experimental_descriptor_storer    s:    	%&CX[^houx}  'A  'A  'A  
B  
B  Br   c                   n    e Zd ZdZdZddd fd
Zej        d             Zej        d             Z	e	j
        d             Z	ej        d	             Zej
        d
             Zej        d             Zej
        d             Zej        d             Zej
        d             Zej        d             Z xZS )ExternElementwiseOpztt.extern_elementwiser   Nr   c                V   g }	g }
i }d }|	                     t          |                     t          |          }t          |t          j                  st          j                            d          s|n(t	          j                            d          ||          |d<   t          |t          j                  st          j                            d          s|n(t	          j                            d          ||          |d<   t          |t          j                  st          j                            d          s|n(t	          j                            d          ||          |d<   t          |t          j                  st          j                            d          s|n(t	          j                            d          ||          |d<   |
	                    |           d }t                                          |                     ||
|	||||                     d S )	Nrf   r   libnamelibpathsymbolrP  rQ  r!   )r(   r)   r*   r+   r,   r-   r.   r/   r0   r   r1   r2   r3   )r4   r5   r   r  r  r  rQ  r   r   r$   r#   r"   r&   r7   r8   r9   s                  r   r2   zExternElementwiseOp.__init__  sC   HGJGOO-d33444/44Lw)**H$$Y//HWW i((,GGG y
 w)**H$$Y//HWW i((,GGG y
 vw())G$$Y//GFF i((FFF x
 tW&''F$$Z00F$$ j))$EEE v NN6O	GGT'':wYan}  HO  UX  ]_'  `  `  a  a  a  a  ar   c                 n    t          | j        j                  dz
  dz   }| j        j        dd|z            S r;   r=   r@   s     r   r   zExternElementwiseOp.srcs  rB   r   c                 &    | j         j        d         S )Nr  rD   rE   s    r   r  zExternElementwiseOp.libname  r   r   c                 F    |t          d          || j        j        d<   d S )NrH   r  rI   rK   s     r   r  zExternElementwiseOp.libname  r   r   c                 &    | j         j        d         S )Nr  rD   rE   s    r   r  zExternElementwiseOp.libpath  r   r   c                 F    |t          d          || j        j        d<   d S )NrH   r  rI   rK   s     r   r  zExternElementwiseOp.libpath  r   r   c                 &    | j         j        d         S )Nr  rD   rE   s    r   r  zExternElementwiseOp.symbol  rF   r   c                 F    |t          d          || j        j        d<   d S )NrH   r  rI   rK   s     r   r  zExternElementwiseOp.symbol  rM   r   c                 &    | j         j        d         S r\  rD   rE   s    r   rQ  zExternElementwiseOp.pure  r   r   c                 F    |t          d          || j        j        d<   d S r^  rI   rK   s     r   rQ  zExternElementwiseOp.pure  r   r   c                 &    | j         j        d         S r   r   rE   s    r   r5   zExternElementwiseOp.result  r   r   )r   r   r   rN   rO   r2   rP   rQ   r   r  rR   r  r  rQ  r5   rS   rT   s   @r   r  r    s       *.,JNSW a a a a a a a6 E E E 0 0 0 >1 1 >1
 0 0 0 >1 1 >1
 / / / 
=0 0 =0
 - - - ;. . ;.
 % % % % % % %r   r  c                J    t          t          | |||||||                    S )Nr5   r   r  r  r  rQ  r   r   )rX   r  r  s           r   extern_elementwiser    sR    	%&9d\cmt  ~D  KO  UX  ]_  '`  '`  '`  
a  
a  ar   c                        e Zd ZdZdZdddd fd
Zej        d             Zej        d             Z	e	j
        d             Z	e	j        d	             Z	ej        d
             Z xZS )FpToFpOpztt.fp_to_fpr   Nroundingr   r   c                   g }g }i }d }	|                     t          |                     t          |          }
|gt          |t          j                  st          j                            d          s|n(t	          j                            d          ||
          |d<   |                     |           d }t                      
                    |                     |||||	||                     d S )NTT_RoundingModeAttrr   r  r!   r   )r4   r5   r  r  r   r   r$   r#   r"   r&   r7   r8   r9   s               r   r2   zFpToFpOp.__init__  s"   HGJGOO+C00111/44L8W.//8Y(()>??8Yxx 

!
!"7
8
8<
X
X
X (
3 NN6O	GGT'':wYan}  HO  UX  ]_'  `  `  a  a  a  a  ar   c                 &    | j         j        d         S r   r   rE   s    r   r  zFpToFpOp.src  r   r   c                 F    d| j         j        vrd S | j         j        d         S Nr  rD   rE   s    r   r  zFpToFpOp.rounding  s'    222T>$Z00r   c                 f    ||| j         j        d<   d S d| j         j        v r| j         j        d= d S d S r  rD   rK   s     r   r  zFpToFpOp.rounding  sH    .3dn
+++	t~0	0	0
.
#J
/
/
/ 
1	0r   c                      | j         j        d= d S r  rD   rE   s    r   r  zFpToFpOp.rounding  s    !*---r   c                 &    | j         j        d         S r   r   rE   s    r   r5   zFpToFpOp.result  r   r   )r   r   r   rN   rO   r2   rP   rQ   r  r  rR   r   r5   rS   rT   s   @r   r  r    s         .,.2 a a a a a a a & & & 1 1 1
 ?0 0 ?0 . . . % % % % % % %r   r  r  c          	      D    t          t          | ||||                    S )Nr5   r  r  r   r   )rX   r  r  s        r   fp_to_fpr    s&    	%hf#PX^afh&i&i&i	j	jjr   c                        e Zd ZdZdZddd fd
Zej        d             Zej	        d             Zej        d             Z
 xZS )	GetNumProgramsOpztt.get_num_programsr   Nr   c          
      |   g }g }i }d }t          |          }t          |t          j                  st          j                            d          s|n(t          j                            d          ||          |d<   d }	t                                          | 	                    |||	|||                     d S NTT_ProgramDimr   rj  r%  rh   r4   rj  r   r   r$   r#   r"   r&   r7   r8   r9   s             r   r2   zGetNumProgramsOp.__init__%      HGJG/44LtW&''K$$_55K$$ o..t\JJJ v O	GGT'':]lv}  DG  LN'  O  O  P  P  P  P  Pr   c                 &    | j         j        d         S rm  rD   rE   s    r   rj  zGetNumProgramsOp.axis2  r   r   c                 F    |t          d          || j        j        d<   d S ro  rI   rK   s     r   rj  zGetNumProgramsOp.axis6  r   r   c                 &    | j         j        d         S r   r   rE   s    r   r5   zGetNumProgramsOp.result<  r   r   r   r   r   rN   rO   r2   rP   rQ   rj  rR   r5   rS   rT   s   @r   r  r    s        (.,"&4 P P P P P P P - - - ;. . ;.
 % % % % % % %r   r  c                @    t          t          | ||                    S Nrj  r   r   )rX   r  r  s      r   get_num_programsr  @  s     	%&6Dcb&Q&Q&Q	R	RRr   c                        e Zd ZdZdZddd fd
Zej        d             Zej	        d             Zej        d             Z
 xZS )	GetProgramIdOpztt.get_program_idr   Nr   c          
      |   g }g }i }d }t          |          }t          |t          j                  st          j                            d          s|n(t          j                            d          ||          |d<   d }	t                                          | 	                    |||	|||                     d S r  rh   r  s             r   r2   zGetProgramIdOp.__init__I  r  r   c                 &    | j         j        d         S rm  rD   rE   s    r   rj  zGetProgramIdOp.axisV  r   r   c                 F    |t          d          || j        j        d<   d S ro  rI   rK   s     r   rj  zGetProgramIdOp.axisZ  r   r   c                 &    | j         j        d         S r   r   rE   s    r   r5   zGetProgramIdOp.result`  r   r   r  rT   s   @r   r  r  C  s        &.,"&4 P P P P P P P - - - ;. . ;.
 % % % % % % %r   r  c                @    t          t          | ||                    S r  )rX   r  r  s      r   get_program_idr  d  s    	%n$CB&O&O&O	P	PPr   c                   n     e Zd ZdZdZddd fd
Zej        d             Zej        d             Z	 xZ
S )HistogramOpztt.histogramr   Nr   c                   g }g }i }d }|                     t          |                     t          |          }	|                     |           d }
t                                          |                     ||||
|||                     d S r   r   r  s              r   r2   zHistogramOp.__init__m  r  r   c                 &    | j         j        d         S r   r   rE   s    r   r  zHistogramOp.srcx  r   r   c                 &    | j         j        d         S r   r   rE   s    r   r5   zHistogramOp.result|  r   r   r  rT   s   @r   r  r  g  r  r   r  c                B    t          t          | |||                    S r  )rX   r  r	  s       r   	histogramr    r  r   c                   n     e Zd ZdZdZddd fd
Zej        d             Zej        d             Z	 xZ
S )
IntToPtrOpztt.int_to_ptrr   Nr   c                   g }g }i }d }|                     t          |                     t          |          }	|                     |           d }
t                                          |                     ||||
|||                     d S r   r   r  s              r   r2   zIntToPtrOp.__init__  r  r   c                 &    | j         j        d         S r   r   rE   s    r   r  zIntToPtrOp.src  r   r   c                 &    | j         j        d         S r   r   rE   s    r   r5   zIntToPtrOp.result  r   r   r  rT   s   @r   r  r            ".,)-$ 	a 	a 	a 	a 	a 	a 	a & & & % % % % % % %r   r  c                B    t          t          | |||                    S r  )rX   r  r	  s       r   
int_to_ptrr    "    	%jCSUW&X&X&X	Y	YYr   c                        e Zd ZdZdZddd fd
Zej        d             Zej        d             Z	ej        d             Z
 xZS )	JoinOpztt.joinr   Nr   c          
      6   g }g }i }d }|                     t          |                     |                     t          |                     t          |          }	d }
t                                          |                     |||
|||                     d S Nr%  r   )r4   r  r  r   r   r$   r#   r"   r&   r7   r8   r9   s              r   r2   zJoinOp.__init__  s    HGJGOO+C00111OO+C00111/44LO	GGT'':]lv}  DG  LN'  O  O  P  P  P  P  Pr   c                 &    | j         j        d         S r   r   rE   s    r   r  z
JoinOp.lhs  r   r   c                 &    | j         j        d         S r   r   rE   s    r   r  z
JoinOp.rhs  r   r   c                 &    | j         j        d         S r   r   rE   s    r   r5   zJoinOp.result  r   r   r  rT   s   @r   r  r    s        .,&*t 	P 	P 	P 	P 	P 	P 	P & & & & & & % % % % % % %r   r  c                B    t          t          | |||                    S )Nr  r  r   r   )rX   r  r  s       r   joinr    s!    	%f#32&N&N&N	O	OOr   c            
       $    e Zd ZdZg dZdZdddddddddd	 fd
Zej        d             Z	ej        d             Z
ej        d	             Zej        d
             Zej        d             Zej        d             Zej        d             Zej        d             Zej        d             Zej        d             Zej        d             Zej        d             Zej        d             Zej        d             Zej        d             Z xZS )LoadOpztt.load)r<   r   r   r   N)	r   otherboundaryCheckpaddingrw  rx  
isVolatiler   r   c       	   
         g }g }i }d }|                     t          |                     |                     |t          |          nd            |                     |t          |          nd            t          |	          }|gt          |t          j                  st          j                            d          s|n(t	          j                            d          ||          |d<   |gt          |t          j                  st          j                            d          s|n(t	          j                            d          ||          |d<   |gt          |t          j                  st          j                            d          s|n(t	          j                            d          ||          |d<   |gt          |t          j                  st          j                            d          s|n(t	          j                            d          ||          |d	<   |gt          |t          j                  st          j                            d
          s|n(t	          j                            d
          ||          |d<   d }t                      
                    |                     |||||	|
                     d S )NDenseI32ArrayAttrr   r  TT_PaddingOptionAttrr  rz  rw  r{  rx  rP  r  r%  r   )r4   r   r   r  r  r  rw  rx  r  r   r   r$   r#   r"   r&   r7   r8   r9   s                    r   r2   zLoadOp.__init__  s   HGJGOO+C00111OOT5E+D1114PPPOOe6G+E222TRRR/44L ='"344B\(()<==B\ 

!
!"5
6
6}l
[
[
[ #-_"= 7G-..6Y(()?@@6YWW 

!
!"8
9
9'<
X
X
X 'y1 5'+,,2W(()?@@2W 

!
!"8
9
9%
V
V
V %W- 5'+,,2X(()@AA2X 

!
!"9
:
:5,
W
W
W %W- :w011<P((44<P:: 

!
!*
-
-j,
O
O
O  *,7 O	GGT'':]lv}  DG  LN'  O  O  P  P  P  P  Pr   c                 h    t          | j        j        | j        j        d         d          }|d         S )NoperandSegmentSizesr   )_ods_segmented_accessorr?   r$   r"   r4   operand_ranges     r   r   z
LoadOp.ptr  s6    +		 		"#8	91> >M r   c                     t          | j        j        | j        j        d         d          }t	          |          dk    r|d         nd S )Nr  r<   r   r  r?   r$   r"   r>   r  s     r   r   zLoadOp.mask  M    +		 		"#8	91> >M  #=11A55=4?r   c                     t          | j        j        | j        j        d         d          }t	          |          dk    r|d         nd S )Nr  r   r   r  r  s     r   r  zLoadOp.other  r  r   c                 &    | j         j        d         S Nr  rD   rE   s    r   r  zLoadOp.boundaryCheck  rl   r   c                 F    |t          d          || j        j        d<   d S NrH   r  rI   rK   s     r   r  zLoadOp.boundaryCheck   rn   r   c                 F    d| j         j        vrd S | j         j        d         S Nr  rD   rE   s    r   r  zLoadOp.padding  s'    111T>$Y//r   c                 f    ||| j         j        d<   d S d| j         j        v r| j         j        d= d S d S r  rD   rK   s     r   r  zLoadOp.padding  sH    -2dn	***	dn/	/	/
.
#I
.
.
. 
0	/r   c                      | j         j        d= d S r  rD   rE   s    r   r  zLoadOp.padding  s    !),,,r   c                 &    | j         j        d         S r  rD   rE   s    r   rw  zLoadOp.cache  r   r   c                 F    |t          d          || j        j        d<   d S r  rI   rK   s     r   rw  zLoadOp.cache  r   r   c                 &    | j         j        d         S r  rD   rE   s    r   rx  zLoadOp.evict!  r   r   c                 F    |t          d          || j        j        d<   d S r  rI   rK   s     r   rx  zLoadOp.evict%  r   r   c                 &    | j         j        d         S )Nr  rD   rE   s    r   r  zLoadOp.isVolatile+  rV  r   c                 F    |t          d          || j        j        d<   d S )NrH   r  rI   rK   s     r   r  zLoadOp.isVolatile/  rX  r   c                 &    | j         j        d         S r   r   rE   s    r   r5   zLoadOp.result5  r   r   )r   r   r   rN   _ODS_OPERAND_SEGMENTSrO   r2   rP   rQ   r   r   r  r  rR   r  r   rw  rx  r  r5   rS   rT   s   @r   r  r    sN       ."((,"&d$PT\`hly}  DH  MQ P P P P P P P@    @ @ @ @ @ @ 6 6 6 7 7 7
 0 0 0
 >/ / >/ ?- - ?- . . . 	</ / </
 . . . 	</ / </
 3 3 3 4 4 4
 % % % % % % %r   r  )	r   r  boundary_checkr  rw  rx  is_volatiler   r   c       	         N    t          t          | |||||||||	
  
                  S )N)
r   r   r  r  r  rw  rx  r  r   r   )rX   r  )
r   r   r  r  r  rw  rx  r  r   r   s
             r   loadr  9  sZ    	%f4u\jt{  DI  QV  cn  tw  |~  '  '  '  
@  
@  @r   c                        e Zd ZdZdZddd fd
Zej        d             Zej	        d             Zej        d             Z
e
j	        d	             Z
ej        d
             Z xZS )MakeRangeOpztt.make_ranger   Nr   c                v   g }g }i }d }	t          |          }
t          |t          j                  st          j                            d          s|n(t          j                            d          ||
          |d<   t          |t          j                  st          j                            d          s|n(t          j                            d          ||
          |d<   |                    |           d }t                      	                    | 
                    |||||	||                     d S )Nr   r   startendr!   )r*   r+   r,   r-   r.   r/   r0   r   r1   r2   r3   )r4   r5   r  r  r   r   r$   r#   r"   r&   r7   r8   r9   s               r   r2   zMakeRangeOp.__init__B  sb   HGJG/44Lug'((F$$Y//F55 i((EEE w
 sG%&&D$$Y//D i((lCCC u NN6O	GGT'':wYan}  HO  UX  ]_'  `  `  a  a  a  a  ar   c                 &    | j         j        d         S )Nr  rD   rE   s    r   r  zMakeRangeOp.startT  r   r   c                 F    |t          d          || j        j        d<   d S )NrH   r  rI   rK   s     r   r  zMakeRangeOp.startX  r   r   c                 &    | j         j        d         S )Nr  rD   rE   s    r   r  zMakeRangeOp.end^  r   r   c                 F    |t          d          || j        j        d<   d S )NrH   r  rI   rK   s     r   r  zMakeRangeOp.endb  r   r   c                 &    | j         j        d         S r   r   rE   s    r   r5   zMakeRangeOp.resulth  r   r   )r   r   r   rN   rO   r2   rP   rQ   r  rR   r  r5   rS   rT   s   @r   r  r  <  s        ".,04 a a a a a a a$ . . . 	</ / </
 , , , :- - :-
 % % % % % % %r   r  c          	      D    t          t          | ||||                    S )Nr5   r  r  r   r   )rX   r  r  s        r   
make_ranger  l  s&    	%kuRU[^ce&f&f&f	g	ggr   c                       e Zd ZdZdZddd fd
Zej        d             Zej        d             Z	ej        d             Z
ej        d	             Zej        d
             Zej        d             Zej        d             Z xZS )MakeTensorPtrOpztt.make_tensor_ptrr   Nr   c                   g }	g }
i }d }|	                     t          |                     |	                    t          |                     |	                    t          |                     |	                    t          |                     t	          |          }t          |t          j                  st          j        	                    d          s|n(t          j        
                    d          ||          |d<   |
                     |           d }t                                          |                     ||
|	||||                     d S )Nr  r   orderr!   r|  )r4   r5   baseshapestridesr   r   r   r   r$   r#   r"   r&   r7   r8   r9   s                  r   r2   zMakeTensorPtrOp.__init__u  sm   HGJGOO+D11222OO-e44555OO-g66777OO-g66777/44Lug'((P$$%899P55 1225,OOO w NN6O	GGT'':wYan}  HO  UX  ]_'  `  `  a  a  a  a  ar   c                 d    t          t          j        ddd          \  }}| j        j        |         S )Nr   r   _ods_equally_sized_accessorr?   r$   r4   r  pgs      r   r!  zMakeTensorPtrOp.base  s,    +I,>1aHHIE2>"5))r   c                 n    t          t          j        ddd          \  }}| j        j        |||z            S )Nr   r<   r   r%  r'  s      r   r"  zMakeTensorPtrOp.shape  5    +I,>1aHHIE2>"5#344r   c                 n    t          t          j        ddd          \  }}| j        j        |||z            S )Nr   r<   r%  r'  s      r   r#  zMakeTensorPtrOp.strides  r*  r   c                 n    t          t          j        ddd          \  }}| j        j        |||z            S r  r%  r'  s      r   r   zMakeTensorPtrOp.offsets  r*  r   c                 &    | j         j        d         S Nr   rD   rE   s    r   r   zMakeTensorPtrOp.order  r   r   c                 F    |t          d          || j        j        d<   d S NrH   r   rI   rK   s     r   r   zMakeTensorPtrOp.order  r   r   c                 &    | j         j        d         S r   r   rE   s    r   r5   zMakeTensorPtrOp.result  r   r   )r   r   r   rN   rO   r2   rP   rQ   r!  r"  r#  r   r   rR   r5   rS   rT   s   @r   r  r  o  s0       '.,JNSW a a a a a a a$ * * * 5 5 5 5 5 5 5 5 5 . . . 	</ / </
 % % % % % % %r   r  c                J    t          t          | |||||||                    S )Nr5   r!  r"  r#  r   r   r   r   )rX   r  r3  s           r   make_tensor_ptrr4    sM    	%oV$V[elv}  FK  QT  Y[  '\  '\  '\  
]  
]  ]r   c                        e Zd ZdZdZddd fd
Zej        d             Zej        d             Z	ej        d             Z
 xZS )		MulhiUIOpz
tt.mulhiuir   Nr   c          
      ~   g }g }i }d }|                     t          |                     |                     t          |                     t          |          }	|                    |d         j        gdz             d }
t                                          |                     |||
|||                     d S Nr   r<   r%  r   r   r*   r(   r&  r1   r2   r3   r4   r'  yr   r   r$   r#   r"   r&   r7   r8   r9   s              r   r2   zMulhiUIOp.__init__      HGJGOO+A..///OO+A..////44LNNHQK$%)***O	GGT'':]lv}  DG  LN'  O  O  P  P  P  P  Pr   c                 &    | j         j        d         S r   r   rE   s    r   r'  zMulhiUIOp.x  r   r   c                 &    | j         j        d         S r   r   rE   s    r   r;  zMulhiUIOp.y  r   r   c                 &    | j         j        d         S r   r   rE   s    r   r5   zMulhiUIOp.result  r   r   r   r   r   rN   rO   r2   rP   rQ   r'  r;  r5   rS   rT   s   @r   r6  r6    s        .,"&4 
P 
P 
P 
P 
P 
P 
P & & & & & & % % % % % % %r   r6  c                B    t          t          | |||                    S Nr'  r;  r   r   )rX   r6  rC  s       r   mulhiuirD    s!    	%i!qcb&I&I&I	J	JJr   c                        e Zd ZdZdZddd fd
Zej        d             Zej        d             Z	ej        d             Z
 xZS )	PreciseDivFOpztt.precise_divfr   Nr   c          
      ~   g }g }i }d }|                     t          |                     |                     t          |                     t          |          }	|                    |d         j        gdz             d }
t                                          |                     |||
|||                     d S r8  r9  r:  s              r   r2   zPreciseDivFOp.__init__  r<  r   c                 &    | j         j        d         S r   r   rE   s    r   r'  zPreciseDivFOp.x  r   r   c                 &    | j         j        d         S r   r   rE   s    r   r;  zPreciseDivFOp.y  r   r   c                 &    | j         j        d         S r   r   rE   s    r   r5   zPreciseDivFOp.result  r   r   r@  rT   s   @r   rF  rF    s        $.,"&4 
P 
P 
P 
P 
P 
P 
P & & & & & & % % % % % % %r   rF  c                B    t          t          | |||                    S rB  )rX   rF  rC  s       r   precise_divfrL    s!    	%ma1#"&M&M&M	N	NNr   c                   n     e Zd ZdZdZddd fd
Zej        d             Zej        d             Z	 xZ
S )PreciseSqrtOpztt.precise_sqrtr   Nr   c          
      :   g }g }i }d }|                     t          |                     t          |          }|                    |d         j        gdz             d }	t                                          |                     |||	|||                     d S r8  r9  )r4   r'  r   r   r$   r#   r"   r&   r7   r8   r9   s             r   r2   zPreciseSqrtOp.__init__  s    HGJGOO+A..////44LNNHQK$%)***O	GGT'':]lv}  DG  LN'  O  O  P  P  P  P  Pr   c                 &    | j         j        d         S r   r   rE   s    r   r'  zPreciseSqrtOp.x  r   r   c                 &    | j         j        d         S r   r   rE   s    r   r5   zPreciseSqrtOp.result  r   r   )r   r   r   rN   rO   r2   rP   rQ   r'  r5   rS   rT   s   @r   rN  rN    s        $.,# 	P 	P 	P 	P 	P 	P 	P & & & % % % % % % %r   rN  c                @    t          t          | ||                    S )Nr'  r   r   )rX   rN  rS  s      r   precise_sqrtrT    s    	%maSR&H&H&H	I	IIr   c                        e Zd ZdZdZddd fd
Zej        d             Zej        d             Z	e	j
        d             Z	ej        d	             Zej
        d
             Z xZS )PrintOpztt.printr   Nr   c                   g }g }i }d }	|                     t          |                     t          |          }
t          |t          j                  st          j                            d          s|n(t	          j                            d          ||
          |d<   t          |t          j                  st          j                            d          s|n(t	          j                            d          ||
          |d<   d }t                      
                    |                     |||||	||                     d S )Nrf   r   prefixrP  hexr!   r'   )r4   rX  rY  rS  r   r   r$   r#   r"   r&   r7   r8   r9   s               r   r2   zPrintOp.__init__  sk   HGJGOO-d33444/44Lvw())G$$Y//GFF i((FFF x
 sG%&&E$$Z00E j))#|DDD u O	GGT'':wYan}  HO  UX  ]_'  `  `  a  a  a  a  ar   c                 n    t          | j        j                  dz
  dz   }| j        j        dd|z            S r;   r=   r@   s     r   rS  zPrintOp.args"  rB   r   c                 &    | j         j        d         S )NrX  rD   rE   s    r   rX  zPrintOp.prefix'  rF   r   c                 F    |t          d          || j        j        d<   d S )NrH   rX  rI   rK   s     r   rX  zPrintOp.prefix+  rM   r   c                 &    | j         j        d         S )NrY  rD   rE   s    r   rY  zPrintOp.hex1  r   r   c                 F    |t          d          || j        j        d<   d S )NrH   rY  rI   rK   s     r   rY  zPrintOp.hex5  r   r   )r   r   r   rN   rO   r2   rP   rQ   rS  rX  rR   rY  rS   rT   s   @r   rV  rV  
  s        .,/3 a a a a a a a$ E E E / / / 
=0 0 =0
 , , , :- - :- - - - -r   rV  c          	      D    t          t          | ||||                    S )NrX  rY  rS  r   r   )rX   rV  r`  s        r   print_ra  ;  s%    	%gV4UX]_&`&`&`	a	aar   c                   n     e Zd ZdZdZddd fd
Zej        d             Zej        d             Z	 xZ
S )
PtrToIntOpztt.ptr_to_intr   Nr   c                   g }g }i }d }|                     t          |                     t          |          }	|                     |           d }
t                                          |                     ||||
|||                     d S r   r   r  s              r   r2   zPtrToIntOp.__init__D  r  r   c                 &    | j         j        d         S r   r   rE   s    r   r  zPtrToIntOp.srcO  r   r   c                 &    | j         j        d         S r   r   rE   s    r   r5   zPtrToIntOp.resultS  r   r   r  rT   s   @r   rc  rc  >  r  r   rc  c                B    t          t          | |||                    S r  )rX   rc  r	  s       r   
ptr_to_intrh  W  r  r   c                        e Zd ZdZdZddd fd
Zej        d             Zej        d             Z	e	j
        d             Z	ej        d	             Zej        d
             Z xZS )ReduceOpz	tt.reducer\   Nr   c                   g }g }i }d }	|                     t          |                     t          |          }
t          |t          j                  st          j                            d          s|n(t	          j                            d          ||
          |d<   |                     |           d }t                      
                    |                     |||||	||                     d S )Nr   r   rj  r!   r'   )r4   r5   r   rj  r   r   r$   r#   r"   r&   r7   r8   r9   s               r   r2   zReduceOp.__init__`  s   HGJGOO-d33444/44LtW&''E$$Y//E$$ i((|DDD v NN6O	GGT'':wYan}  HO  UX  ]_'  `  `  a  a  a  a  ar   c                 n    t          | j        j                  dz
  dz   }| j        j        dd|z            S r;   r=   r@   s     r   r   zReduceOp.srcso  rB   r   c                 &    | j         j        d         S rm  rD   rE   s    r   rj  zReduceOp.axist  r   r   c                 F    |t          d          || j        j        d<   d S ro  rI   rK   s     r   rj  zReduceOp.axisx  r   r   c                 n    t          | j        j                  dz
  dz   }| j        j        dd|z            S r;   rb  r@   s     r   r5   zReduceOp.result~  rc  r   c                     | j         d         S r   r   rE   s    r   	combineOpzReduceOp.combineOp  r   r   )r   r   r   rN   rO   r2   rP   rQ   r   rj  rR   r5   rq  rS   rT   s   @r   rj  rj  Z  s        .,04 a a a a a a a E E E - - - ;. . ;.
 D D D       r   rj  c          	      D    t          t          | ||||                    S )Nr5   r   rj  r   r   )rX   rj  rs  s        r   reducert    s%    	%hf4dX[`b&c&c&c	d	ddr   c                   N     e Zd ZdZdZddd fd
Zej        d             Z xZ	S )ReduceReturnOpztt.reduce.returnr   Nr   c                    g }g }i }d }|                     t          |                     t          |          }d }	t                                          |                     ||||	|||                     d S r   r   r4   r5   r   r   r$   r#   r"   r&   r7   r8   r9   s             r   r2   zReduceReturnOp.__init__      HGJGOO-f55666/44LO	GGT'':wYan}  HO  UX  ]_'  `  `  a  a  a  a  ar   c                 n    t          | j        j                  dz
  dz   }| j        j        dd|z            S r;   r=   r@   s     r   r5   zReduceReturnOp.result  rB   r   
r   r   r   rN   rO   r2   rP   rQ   r5   rS   rT   s   @r   rv  rv    s~        %.,$(T a a a a a a a E E E E E E Er   rv  c                @    t          t          | ||                    S Nr5   r   r   )rX   rv  r~  s      r   reduce_returnr    s     	%nFPR&S&S&S	T	TTr   c                       e Zd ZdZdZdddd fd
Zej        d             Zej        d             Z	e	j
        d             Z	ej        d	             Zej
        d
             Zej        d             Zej        d             Z xZS )	ReshapeOpz
tt.reshaper   Nefficient_layoutr   r   c                h   g }g }i }	d }
|                     t          |                     t          |          }t          |t          j                  st          j                            d          s|n(t	          j                            d          ||          |	d<   t          |          r/t          j
                            t          |                    |	d<   |                     |           d }t                                          |                     |	||||
||                     d S )NrP  r   allow_reorderr  r!   )r   r   r*   r+   r,   r-   r.   r/   r0   boolUnitAttrr1   r2   r3   )r4   r5   r  r  r  r   r   r$   r#   r"   r&   r7   r8   r9   s                r   r2   zReshapeOp.__init__  sU   HGJGOO+C00111/44L}g/00$O$$Z00$O== j))-NNN   )@P@T@T"3''A) A)z*<=NN6O	GGT'':wYan}  HO  UX  ]_'  `  `  a  a  a  a  ar   c                 &    | j         j        d         S r   r   rE   s    r   r  zReshapeOp.src  r   r   c                 &    | j         j        d         S )Nr  rD   rE   s    r   r  zReshapeOp.allow_reorder  rl   r   c                 F    |t          d          || j        j        d<   d S )NrH   r  rI   rK   s     r   r  zReshapeOp.allow_reorder  rn   r   c                     d| j         j        v S Nr  rD   rE   s    r   r  zReshapeOp.efficient_layout  s    !:::r   c                     t          |          r-t          j                                        | j        j        d<   d S d| j        j        v r| j        j        d= d S d S r  )r  r,   r  r0   r?   r"   rK   s     r   r  zReshapeOp.efficient_layout  sa    E{{ 86=6F6J6J6L6Ldn 2333	t~8	8	8
.
#$6
7
7
7 
9	8r   c                      | j         j        d= d S r  rD   rE   s    r   r  zReshapeOp.efficient_layout  s    !"4555r   c                 &    | j         j        d         S r   r   rE   s    r   r5   zReshapeOp.result  r   r   )r   r   r   rN   rO   r2   rP   rQ   r  r  rR   r  r   r5   rS   rT   s   @r   r  r    s4       .,EItX\ a a a a a a a" & & & 6 6 6 7 7 7
 ; ; ; 8 8 8 6 6 6 % % % % % % %r   r  r  c          
      F    t          t          | |||||                    S )Nr5   r  r  r  r   r   )rX   r  r  s         r   reshaper    sG    	%iv3Vc  wG  MP  UW  'X  'X  'X  
Y  
Y  Yr   c                       e Zd ZdZdZddd fd
Zej        d             Zej        d             Z	e	j
        d             Z	ej        d	             Zej
        d
             Zej        d             Zej        d             Z xZS )ScanOpztt.scanr\   Nr   c                   g }g }i }	d }
|                     t          |                     t          |          }t          |t          j                  st          j                            d          s|n(t	          j                            d          ||          |	d<   t          |t          j                  st          j                            d          s|n(t	          j                            d          ||          |	d<   |                     |           d }t                      
                    |                     |	||||
||                     d S )Nr   r   rj  rP  reverser!   r'   )r4   r5   r   rj  r  r   r   r$   r#   r"   r&   r7   r8   r9   s                r   r2   zScanOp.__init__  s}   HGJGOO-d33444/44LtW&''E$$Y//E$$ i((|DDD v
 w)**I$$Z00IWW j))'<HHH y NN6O	GGT'':wYan}  HO  UX  ]_'  `  `  a  a  a  a  ar   c                 n    t          | j        j                  dz
  dz   }| j        j        dd|z            S r;   r=   r@   s     r   r   zScanOp.srcs  rB   r   c                 &    | j         j        d         S rm  rD   rE   s    r   rj  zScanOp.axis  r   r   c                 F    |t          d          || j        j        d<   d S ro  rI   rK   s     r   rj  zScanOp.axis  r   r   c                 &    | j         j        d         S )Nr  rD   rE   s    r   r  zScanOp.reverse  r   r   c                 F    |t          d          || j        j        d<   d S )NrH   r  rI   rK   s     r   r  zScanOp.reverse	  r   r   c                 n    t          | j        j                  dz
  dz   }| j        j        dd|z            S r;   rb  r@   s     r   r5   zScanOp.result  rc  r   c                     | j         d         S r   r   rE   s    r   rq  zScanOp.combineOp  r   r   )r   r   r   rN   rO   r2   rP   rQ   r   rj  rR   r  r5   rq  rS   rT   s   @r   r  r    s3       .,9=$ a a a a a a a& E E E - - - ;. . ;.
 0 0 0 >1 1 >1
 D D D       r   r  c          
      F    t          t          | |||||                    S )Nr5   r   rj  r  r   r   )rX   r  r  s         r   scanr    s(    	%fFDZagjoq&r&r&r	s	ssr   c                   N     e Zd ZdZdZddd fd
Zej        d             Z xZ	S )ScanReturnOpztt.scan.returnr   Nr   c                    g }g }i }d }|                     t          |                     t          |          }d }	t                                          |                     ||||	|||                     d S r   r   rx  s             r   r2   zScanReturnOp.__init__!  ry  r   c                 n    t          | j        j                  dz
  dz   }| j        j        dd|z            S r;   r=   r@   s     r   r5   zScanReturnOp.result+  rB   r   r{  rT   s   @r   r  r    s~        #.,$(T a a a a a a a E E E E E E Er   r  c                @    t          t          | ||                    S r}  )rX   r  r~  s      r   scan_returnr  0  s    	%l&cb&Q&Q&Q	R	RRr   c                   n     e Zd ZdZdZddd fd
Zej        d             Zej        d             Z	 xZ
S )SplatOpztt.splatr   Nr   c                   g }g }i }d }|                     t          |                     t          |          }	|                     |           d }
t                                          |                     ||||
|||                     d S r   r   r  s              r   r2   zSplatOp.__init__9  r  r   c                 &    | j         j        d         S r   r   rE   s    r   r  zSplatOp.srcD  r   r   c                 &    | j         j        d         S r   r   rE   s    r   r5   zSplatOp.resultH  r   r   r  rT   s   @r   r  r  3  s        .,)-$ 	a 	a 	a 	a 	a 	a 	a & & & % % % % % % %r   r  c                B    t          t          | |||                    S r  )rX   r  r	  s       r   splatr  L  s"    	%gV#RT&U&U&U	V	VVr   c                        e Zd ZdZdZddd fd
Zej        d             Zej        d             Z	ej        d             Z
 xZS )	SplitOpztt.splitr   Nr   c          
          g }g }i }d }|                     t          |                     t          |          }d }	t                                          |                     |||	|||                     d S r  r   )r4   r  r   r   r$   r#   r"   r&   r7   r8   r9   s             r   r2   zSplitOp.__init__U  s    HGJGOO+C00111/44LO	GGT'':]lv}  DG  LN'  O  O  P  P  P  P  Pr   c                 &    | j         j        d         S r   r   rE   s    r   r  zSplitOp.src_  r   r   c                 &    | j         j        d         S r   r   rE   s    r   outLHSzSplitOp.outLHSc  r   r   c                 &    | j         j        d         S r   r   rE   s    r   outRHSzSplitOp.outRHSg  r   r   )r   r   r   rN   rO   r2   rP   rQ   r  r  r  rS   rT   s   @r   r  r  O  s        .,!%$ P P P P P P P & & & % % % % % % % % % %r   r  c                @    t          t          | ||                    S )Nr  r   r   )rX   r  r  s      r   splitr  k  s    	%g#32&F&F&F	G	GGr   c                   V    e Zd ZdZdZddddddd fd
Zej        d             Zej        d             Z	ej        d             Z
ej        d	             Zej        d
             Zej        d             Zej        d             Zej        d             Zej        d             Z xZS )StoreOpztt.storer   N)r   r  rw  rx  r   r   c                   g }	g }
i }d }|	                     t          |                     |	                     t          |                     |"|	                     t          |                     t          |          }|gt          |t          j                  st          j                            d          s|n(t	          j                            d          ||          |d<   |gt          |t          j                  st          j                            d          s|n(t	          j                            d          ||          |d<   |gt          |t          j                  st          j                            d          s|n(t	          j                            d          ||          |d<   d }t                      
                    |                     ||
|	||||                     d S )	Nr  r   r  rz  rw  r{  rx  r!   r   )r4   r   rL   r   r  rw  rx  r   r   r$   r#   r"   r&   r7   r8   r9   s                  r   r2   zStoreOp.__init__t  s#   HGJGOO+C00111OO+E22333)@)F)FGGG/44L ='"344B\(()<==B\ 

!
!"5
6
6}l
[
[
[ #-_"= 5'+,,2W(()?@@2W 

!
!"8
9
9%
V
V
V %W- 5'+,,2X(()@AA2X 

!
!"9
:
:5,
W
W
W %W- O	GGT'':wYan}  HO  UX  ]_'  `  `  a  a  a  a  ar   c                 &    | j         j        d         S r   r   rE   s    r   r   zStoreOp.ptr  r   r   c                 &    | j         j        d         S r   r   rE   s    r   rL   zStoreOp.value  r   r   c                 d    t          | j        j                  dk     rd n| j        j        d         S r   r=   rE   s    r   r   zStoreOp.mask  r   r   c                 &    | j         j        d         S r  rD   rE   s    r   r  zStoreOp.boundaryCheck  rl   r   c                 F    |t          d          || j        j        d<   d S r  rI   rK   s     r   r  zStoreOp.boundaryCheck  rn   r   c                 &    | j         j        d         S r  rD   rE   s    r   rw  zStoreOp.cache  r   r   c                 F    |t          d          || j        j        d<   d S r  rI   rK   s     r   rw  zStoreOp.cache  r   r   c                 &    | j         j        d         S r  rD   rE   s    r   rx  zStoreOp.evict  r   r   c                 F    |t          d          || j        j        d<   d S r  rI   rK   s     r   rx  zStoreOp.evict  r   r   )r   r   r   rN   rO   r2   rP   rQ   r   rL   r   r  rR   rw  rx  rS   rT   s   @r   r  r  n  sy       .,)-TUY_chl a a a a a a a0 & & & & & & T T T 6 6 6 7 7 7
 . . . 	</ / </
 . . . 	</ / </ / / / /r   r  )r   r  rw  rx  r   r   c                J    t          t          | |||||||                    S )N)r   rL   r   r  rw  rx  r   r   )rX   r  )r   rL   r   r  rw  rx  r   r   s           r   storer    sL    	%g#U]ksx  AF  LO  TV  'W  'W  'W  
X  
X  Xr   c                        e Zd ZdZdZddd fd
Zej        d             Zej        d             Z	e	j
        d             Z	ej        d	             Z xZS )
TransOpztt.transr   Nr   c          
         g }g }i }d }|                     t          |                     t          |          }	t          |t          j                  st          j                            d          s|n(t	          j                            d          ||	          |d<   d }
t                      
                    |                     |||
|||                     d S )Nr  r   r   r%  r   )r4   r  r   r   r   r$   r#   r"   r&   r7   r8   r9   s              r   r2   zTransOp.__init__  s   HGJGOO+C00111/44Lug'((P$$%899P55 1225,OOO w O	GGT'':]lv}  DG  LN'  O  O  P  P  P  P  Pr   c                 &    | j         j        d         S r   r   rE   s    r   r  zTransOp.src  r   r   c                 &    | j         j        d         S r.  rD   rE   s    r   r   zTransOp.order  r   r   c                 F    |t          d          || j        j        d<   d S r0  rI   rK   s     r   r   zTransOp.order  r   r   c                 &    | j         j        d         S r   r   rE   s    r   r5   zTransOp.result  r   r   )r   r   r   rN   rO   r2   rP   rQ   r  r   rR   r5   rS   rT   s   @r   r  r    s        .,(, P P P P P P P & & & . . . 	</ / </
 % % % % % % %r   r  c                B    t          t          | |||                    S )Nr  r   r   r   )rX   r  r  s       r   transr    s"    	%g#UPR&S&S&S	T	TTr   )p jaxlib.mlir.dialects._ods_commonr   	_ods_cextr   r&  r   r*   r   rX   r   r   r   r)   r	   r  irr,   rP   typingr
   	_Sequencer   _Unionregister_dialectDialectr   register_operationOpViewr   ValuerY   r[   	Operationr   r   r   r   r   r   r   r   r   r   r   r   r   r   r
  r  r  r  r  r!  r2  r4  rJ  rL  rf  rh  rs  ru  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r4  r6  rD  rF  rL  rN  rT  rV  ra  rc  rh  rj  rt  rv  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r   r   <module>r     s  
 @ ? ? ? ? ?                ,  9 9 9 9 9 9 9 9     w    h''!0 !0 !0 !0 !0W^ !0 !0 ('!0F ,0D q q qW] q q q q h''k k k k kW^ k k ('kZ 59DTX^bgk w w wpw  qB w w w w h''E E E E Ew~ E E ('E( $ K K K7+< K K K K h''% % % % %w~ % % ('%: (, g g g g g g g h''% % % % % % % ('%< *.$ j j j7= j j j j h''I. I. I. I. I.w~ I. I. ('I.V :>$ G G G7K\ G G G G h''<% <% <% <% <%'. <% <% ('<%| :>$ C C C7= C C C C h''J% J% J% J% J%'. J% J% ('J%X EIdW[ b b b`g`m b b b b h''% % % % % % % ('%0 !% Y Y Y'- Y Y Y Y h''% % % % %'. % % ('%0 #'4 [ [ [GM [ [ [ [ h''% % % % %GN % % ('%: "&$ ^ ^ ^7= ^ ^ ^ ^ h''.% .% .% .% .%w~ .% .% ('.%` /3t s s s s s s s h'';% ;% ;% ;% ;%GN ;% ;% (';%z %)$SW V V V\c\i V V V V h''PD PD PD PD PDW^ PD PD ('PDd `dhl B B Bqxq~ B B B B h''#% #% #% #% #%7> #% #% ('#%J #'4 X X XGM X X X X h''8% 8% 8% 8% 8%7> 8% 8% ('8%t FJQU[_dh a a amtmz a a a a h''E E E E EGN E E ('E< BF$ B B BSZSd B B B B h''O% O% O% O% O%'. O% O% ('O%b MQUY a a a^e^k a a a a h''+% +% +% +% +%w~ +% +% ('+%Z '+ k k k'- k k k k h''% % % % %w~ % % ('%@ #'4 S S SGM S S S S h''% % % % %W^ % % ('%@ !% Q Q Q'- Q Q Q Q h''% % % % %'. % % ('%0 #'4 [ [ [GM [ [ [ [ h''% % % % % % % ('%0 $(D Z Z ZW] Z Z Z Z h''% % % % %W^ % % ('%8 4 P P PGM P P P P h''w% w% w% w% w%W^ w% w% ('w%r $tTQU]aosy}  CG @ @ @  LS  LY @ @ @ @ h''-% -% -% -% -%'. -% -% ('-%^ +/4 h h hGM h h h h h''7% 7% 7% 7% 7%gn 7% 7% ('7%r JNRV ] ] ][b[h ] ] ] ] h''% % % % % % % ('%: $ K K K7= K K K K h''% % % % %GN % % ('%: #t O O O O O O O h''% % % % %GN % % ('%0  D J J JW] J J J J h''.- .- .- .- .-gn .- .- ('.-` &*d b b bw7H b b b b h''% % % % % % % ('%0 $(D Z Z ZW] Z Z Z Z h''* * * * *w~ * * ('*X '+t e e e e e e e h''E E E E EW^ E E ('E( "&$ U U U73D U U U U h''5% 5% 5% 5% 5% 5% 5% ('5%n =Adt Y Y YX_Xe Y Y Y Y h''8 8 8 8 8W^ 8 8 ('8t .2d t t tw} t t t t h''E E E E E7> E E ('E(  $ S S S1B S S S S h''% % % % %gn % % ('%0 #t W W W W W W W h''% % % % %gn % % ('%6 t H H H	'-(@ H H H H h''E/ E/ E/ E/ E/gn E/ E/ ('E/N #4t4UY^b X X Xgngx X X X X h''#% #% #% #% #%gn #% #% ('#%J "d U U Uw} U U U U U Ur   