+
    -i                        R t ^ RIHt ^ RIHtHtHtHtHtH	t	H
t
HtHtHt ^ RIHt  ! R R]]4      t ! R R]4      t]! . RUO4      t ! R R	]4      t ! R
 R]4      t ! R R]4      t ! R R]4      t ! R R]4      t ! R R]4      t ! R R]4      t ! R R]]4      t ! R R]]4      t ! R R]]4      t ! R R]4      t ! R R]4      t ! R  R!]4      t  ! R" R#] 4      t! ! R$ R%] 4      t" ! R& R']4      t# ! R( R)]4      t$ ! R* R+]4      t% ! R, R-]4      t& ! R. R/]4      t' ! R0 R1]4      t( ! R2 R3]4      t) ! R4 R5]4      t* ! R6 R7]4      t+ ! R8 R9]4      t, ! R: R;]4      t- ! R< R=]4      t. ! R> R?]4      t/ ! R@ RA]4      t0 ! RB RC]14      t2 ! RD RE]4      t3 ! RF RG]4      t4 ! RH RI]14      t5 ! RJ RK]54      t6 ! RL RM]54      t7 ! RN RO]4      t8 ! RP RQ]4      t9 ! RR RS]4      t:RT# )Vz)
Implementation of LLVM IR instructions.
)types)
BlockFunctionValue
NamedValueConstantMetaDataArgumentMetaDataStringAttributeSet	UndefinedArgumentAttributes)_HasMetadatac                   h   a a ] tR t^t oRV 3R llt]R 4       t]R 4       tR tR t	R t
RtVtV ;t# )	Instructionc                   < \         \        V `  WVR 7       \        V\        4      '       g   Q h\        V\
        \        34      '       g   Q hW0n        W@n        \        V4      V n	        / V n
        R# nameN)superr   __init__
isinstancer   tuplelistopnameoperandsflagsmetadata)selfparenttypr   r   r   r   	__class__s   &&&&&&&V/var/www/html/photoedit/myenv/lib/python3.14/site-packages/llvmlite/ir/instructions.pyr   Instruction.__init__   s]    k4)&D)A&%((((%%//// %[
    c                .    V P                   P                  # N)r   functionr   s   &r!   r&   Instruction.function   s    {{###r#   c                B    V P                   P                  P                  # r%   )r   r&   moduler'   s   &r!   r*   Instruction.module   s    {{##***r#   c                   V P                   pV P                  '       d$   R P                  V.V P                  ,           4      pRP                  V P                   Uu. uF  q3P	                  4       NK  	  up4      pV P
                  pV P                  RR7      pVP                  RP                  W%WF4      4       R# u upi ) , Tleading_comma{0} {1} {2}{3}
N)	r   r   joinr   get_referencetype_stringify_metadataappendformat)r   bufr   opr   r   r   s   &&     r!   descrInstruction.descr   s    :::XXvh34F994==I=R..0=IJii++$+?

%F6;	= Js   B;c                    WP                   9   dP   . pV P                    F  pTP                  WAJ d   TMT4       K  	  \        V4      V n         V P                  4        R # R # r%   )r   r6   r   _clear_string_cache)r   oldnewopsr9   s   &&&  r!   replace_usageInstruction.replace_usage(   sM    --Cmm

")34 $!#JDM$$&  r#   c                    R V P                   P                  : RV P                  : RV P                  : RV P                  : RV P
                  : R2# )z<ir.r-   z
 of type 'z
', opname z, operands >)r    __name__r   r4   r   r   r'   s   &r!   __repr__Instruction.__repr__0   s2    NN##TYY		KK( 	(r#   )r   r   r   r     )rE   
__module____qualname____firstlineno__r   propertyr&   r*   r:   rA   rF   __static_attributes____classdictcell____classcell__r    __classdict__s   @@r!   r   r      sF      $ $ + +='( (r#   r   c                   *    ] tR t^6t]! . RO4      tRtR# )CallInstrAttributesrJ   N)
convergentnoreturnnounwindreadonlyreadnonenoinlinealwaysinlinerE   rK   rL   rM   	frozenset_knownrO   rJ   r#   r!   rU   rU   6   s     @ AFr#   rU   c                   *    ] tR t^>t]! . RO4      tRtR# )FastMathFlagsrJ   N)fastnnanninfnszarcpcontractafnreassocr]   rJ   r#   r!   ra   ra   >   s     * +Fr#   ra   c                      a a ] tR t^Ct oR
V 3R llt]R 4       t]P                  R 4       t]R 4       tR t	]R 4       t
R tR tR	tVtV ;t# )	CallInstrc
           	     (  < Vf#   \        V\        4      '       d   VP                  MTV n        \        V\        4      '       d   V\
        9   d   MV'       d   RpMRpW`n        \        V4      V n        \        V4      V n
        / V n        V	'       df   V	P                  4        FQ  w  r^ T
u;8:  d   \        V4      8  g   M \        RP                  V
4      4      h\!        V4      V P                  V
&   KS  	  \#        V4      p\%        \        VP&                  P(                  4      4       F  pW;,          pVP&                  P(                  V,          p\        V\*        P,                  4      '       d   VP.                  V8w  d   \1        V4      pVP.                  V8w  d/   RP                  ^V,           WP.                  4      p\3        V4      hWV&   K  	  \4        \6        V `s  WP&                  P:                  RV.\#        V4      ,           VR7       R # )NtailrI   zInvalid argument index {}z%Type of #{0} arg mismatch: {1} != {2}callr   )r   r   calling_conventioncconvstrTailMarkerOptionsrm   ra   fastmathrU   
attributesarg_attributesitemslen
ValueErrorr7   r   r   rangefunction_typeargsr   MetaDataTyper4   r   	TypeErrorr   rk   r   return_type)r   r   funcr{   r   rp   rm   rs   attrs	arg_attrsidxiargexpected_typemsgr    s   &&&&&&&&&&     r!   r   CallInstr.__init__D   s    :dH+E+E --  	
 dC  T->%>DD	%h/-e4 'oo/
S,3t9,$%@&,fSk3 3+=e+D##C(	 0 Dzs4--2234A'C ..33A6M=%*<*<==HH-&s+xx=(>q1umXX> n$G 5 	i'0B0B0N0N(.d0C$ 	( 	Pr#   c                (    V P                   ^ ,          #     r   r'   s   &r!   calleeCallInstr.calleeo       }}Qr#   c                "    WP                   ^ &   R# r   Nr   )r   	newcallees   &&r!   r   r   s   s    $ar#   c                (    V P                   R ,          # ):   NNr   r'   s   &r!   r{   CallInstr.argsw   s    }}R  r#   c                r    VP                   V P                  P                   8w  d   \        R 4      hWn        R# )z"New function has incompatible typeN)rz   r   r}   )r   newfuncs   &&r!   replace_calleeCallInstr.replace_callee{   s+      DKK$=$==@AAr#   c                    V P                   # )zThe callee function)r   r'   s   &r!   called_functionCallInstr.called_function   s     {{r#   c                  a  V 3R  lpRP                  \        S P                  4       UUu. uF  w  rEV! WE4      NK  	  upp4      pS P                  P                  pVP
                  '       d   TpMVP                  pRP                  VS P                  P                  4       4      p	S P                  '       d   RP                  S P                  V	4      p	Rp
S P                  '       d   RP                  S P                  4      p
S P                  '       d<   RRP                  S P                  P                  VP                  4      4      ,           MRpS P                  '       d<   RRP                  S P                  P                  VP                  4      4      ,           MRpTP                  RP                  T
S P                  T	TTTV'       d   S P!                  RR7      MRR	7      4       R
# u uppi )c                   < V SP                   9   dD   R P                  SP                   V ,          P                  VP                  4      4      R ,           pMRpRP	                  VP                  W!P                  4       4      # )r-   rI   
{0} {1}{2})ru   r2   _to_listr4   r7   r3   )r   ar   r   s   && r!   	descr_arg#CallInstr._descr.<locals>.descr_arg   sa    D'''!4!4Q!7!@!@!HICO&&qvvuoo6GHHr#   r.   {0} {1}rI   z{0} r-   z2{tail}{op}{fastmath} {callee}({args}){attr}{meta}
Tr/   )rm   r9   r   rs   r{   attrmetaN)r2   	enumerater{   r   rz   var_argr~   r7   r3   rp   rm   rt   r   rs   r6   r   r5   )r   r8   add_metadatar   r   r   r{   fntyty
callee_reftail_markerfn_attrsfm_attrss   f&&          r!   _descrCallInstr._descr   s   	I yyi		6JK6Jda)A/6JKL{{((<<<B !!B%%b$++*C*C*EF
:::"))$**jAJ999 --		2K  $//":":4;K;K"LMM$& 	 }}} $--"8"89I9I"JKK"$ 	 	

HOO{{! ***>') P 	
 		1 Ls   G/
c                ,    V P                  VR R7       R# )Tr   N)r   r   r8   s   &&r!   r:   CallInstr.descr   s    Cd+r#   )ru   rt   r   rp   rs   rm   )rI   NNrJ   rJ   N)rE   rK   rL   rM   r   rN   r   setterr{   r   r   r   r:   rO   rP   rQ   rR   s   @@r!   rk   rk   C   su     )PV     ]]% % ! !
  (T, ,r#   rk   c                   B   a a ] tR t^t oRV 3R lltV 3R ltRtVtV ;t# )InvokeInstrc                   < \        V\        4      '       g   Q h\        V\        4      '       g   Q h\        \        V `  WW6VR VWR7	       RV n        W@n        WPn        R# )F)rm   rs   r   r   invokeN)r   r   r   r   r   r   	normal_to	unwind_to)r   r   r   r{   r   r   r   rp   rs   r   r   r    s   &&&&&&&&&&&r!   r   InvokeInstr.__init__   s_    )U++++)U++++k4)&E/4x05 	* 	L ""r#   c           
        < \         \        V `  VR R7       VP                  RP	                  V P
                  P                  4       V P                  P                  4       V P                  RR7      R7      4       R# )Fr   z.      to label {0} unwind label {1}{metadata}
Tr/   )r   N)	r   r   r   r6   r7   r   r3   r   r5   )r   r8   r    s   &&r!   r:   InvokeInstr.descr   sh    k4'%'@

DKKNN((*NN((*--D-A L 
 	r#   )r   r   r   )rI   NrJ   rJ   N	rE   rK   rL   rM   r   r:   rO   rP   rQ   rR   s   @@r!   r   r      s     	# r#   r   c                   8   a a ] tR t^t oV 3R ltR tRtVtV ;t# )
Terminatorc                Z   < \         \        V `  V\        P                  ! 4       VV4       R # r%   )r   r   r   r   VoidType)r   r   r   r   r    s   &&&&r!   r   Terminator.__init__   s"    j$(1A6)1	3r#   c           
     4   V P                   pR P                  V P                   Uu. uF-  pRP                  VP                  VP                  4       4      NK/  	  up4      pV P                  RR7      pVP                  RP                  W$V4      4       R# u upi )r.   r   Tr/   r   N)r   r2   r   r7   r4   r3   r5   r6   )r   r8   r   r9   r   r   s   &&    r!   r:   Terminator.descr   s    99(,7(5" (..rww8H8H8JK(57 8++$+?

<&&vBC7s   3BrJ   r   rR   s   @@r!   r   r      s     3D Dr#   r   c                   &   a  ] tR t^t o R tRtV tR# )PredictableInstrc                "   \        V P                  R 4      .pV FD  pV^ 8  d   \        R4      hVP                  \	        \
        P                  ! ^ 4      V4      4       KF  	  V P                  P                  V4      pV P                  RV4       R# )branch_weightsz(branch weight must be a positive integerprofN)	r	   r*   rx   r6   r   r   IntTyper   set_metadata)r   weightsr   wmds   &&   r!   set_weightsPredictableInstr.set_weights   su    "4;;0@ABA1u !KLLOOHU]]2%6:;  [[%%h/&"%r#   rJ   N)rE   rK   rL   rM   r   rO   rP   rS   s   @r!   r   r      s     & &r#   r   c                   L   a a ] tR t^t oRV 3R llt]R 4       tR tRtVt	V ;t
# )Retc                B   < Ve   V.M. p\         \        V `  WV4       R # r%   )r   r   r   )r   r   r   return_valuer   r    s   &&&& r!   r   Ret.__init__   s"    %1%=L>2c4!&(;r#   c                P    V P                   '       d   V P                   ^ ,          # R# r   r   r'   s   &r!   r   Ret.return_value   s    =====##r#   c                .   V P                   pV P                  R R7      pVeH   VP                  RP                  V P                  VP
                  VP                  4       V4      4       R# VP                  RP                  V P                  V4      4       R# )Tr/   Nr1   z{0}{1}
)r   r5   r6   r7   r   r4   r3   )r   r8   r   r   s   &&  r!   r:   	Ret.descr   s{    ((++$+?#JJ)t{{L,=,=+99;')*
 JJz((h?@r#   rJ   r%   )rE   rK   rL   rM   r   rN   r   r:   rO   rP   rQ   rR   s   @@r!   r   r      s*     <  	A 	Ar#   r   c                       ] tR t^tRtR# )BranchrJ   NrE   rK   rL   rM   rO   rJ   r#   r!   r   r          r#   r   c                       ] tR t^tRtR# )ConditionalBranchrJ   Nr   rJ   r#   r!   r   r      r   r#   r   c                   N   a a ] tR tRt oV 3R lt]R 4       tR tR tRt	Vt
V ;t# )IndirectBranchi  c                @   < \         \        V `  WV.4       . V n        R # r%   )r   r   r   destinations)r   r   r   addrr    s   &&&&r!   r   IndirectBranch.__init__  s    nd,VdVDr#   c                (    V P                   ^ ,          # r   r   r'   s   &r!   addressIndirectBranch.address  r   r#   c                l    \        V\        4      '       g   Q hV P                  P                  V4       R # r%   )r   r   r   r6   )r   blocks   &&r!   add_destinationIndirectBranch.add_destination
  s)    %''''  'r#   c                \   V P                    Uu. uF"  pR P                  VP                  4       4      NK$  	  ppVP                  RP                  V P                  P
                  V P                  P                  4       RP                  V4      V P                  RR7      4      4       R# u upi )z	label {0}zindirectbr {0} {1}, [{2}]  {3}
r.   Tr/   N)r   r7   r3   r6   r   r4   r2   r5   )r   r8   blkr   s   &&  r!   r:   IndirectBranch.descr  s    #'#4#46#4C $**3+<+<+>?#4 	 6

5<<LLLL&&(IIl#$$4$8	
 	6s   (B))r   )rE   rK   rL   rM   r   rN   r   r   r:   rO   rP   rQ   rR   s   @@r!   r   r     s-         ( r#   r   c                   N   a a ] tR tRt oV 3R lt]R 4       tR tR tRt	Vt
V ;t# )SwitchInstri  c                L   < \         \        V `  WV.4       W@n        . V n        R # r%   )r   r   r   defaultcases)r   r   r   valr   r    s   &&&&&r!   r   SwitchInstr.__init__  s"    k4)&3%@
r#   c                (    V P                   ^ ,          # r   r   r'   s   &r!   valueSwitchInstr.value   r   r#   c                    \        V\        4      '       g   Q h\        V\        4      '       g!   \        V P                  P
                  V4      pV P                  P                  W34       R # r%   )r   r   r   r   r   r4   r   r6   )r   r   r   s   &&&r!   add_caseSwitchInstr.add_case$  sJ    %''''#u%%4::??C0C

3,'r#   c                   V P                    UUu. uF>  w  r#R P                  VP                  VP                  4       VP                  4       4      NK@  	  pppVP	                  RP                  V P
                  P                  V P
                  P                  4       V P                  P                  4       RP                  V4      V P                  RR7      4      4       R# u uppi )z{0} {1}, label {2}z%switch {0} {1}, label {2} [{3}]  {4}
r-   Tr/   N)	r   r7   r4   r3   r6   r   r   r2   r5   )r   r8   r   r   r   s   &&   r!   r:   SwitchInstr.descr*  s     "&-!+XS &,,SXXs7H7H7J-0->->-@B!+ 	 - 	

;BBJJOOJJ$$&LL&&(HHUO$$4$8
 	-s   AC )r   r   )rE   rK   rL   rM   r   rN   r   r   r:   rO   rP   rQ   rR   s   @@r!   r   r     s-     
    (
 
r#   r   c                       ] tR tRtRtR# )Resumei7  rJ   Nr   rJ   r#   r!   r  r  7  r   r#   r  c                   l   a a ] tR tRt oRV 3R llt]R 4       t]R 4       t]R 4       tR t	Rt
VtV ;t# )	SelectInstri;  c           	        < VP                   VP                   8X  g   Q h\        \        V `  WP                   R W#V.VVR7       R# )selectr   r   N)r4   r   r  r   )r   r   condlhsrhsr   r   r    s   &&&&&&&r!   r   SelectInstr.__init__<  sB    xx388###k4)&((H+/c*:05 	* 	7r#   c                (    V P                   ^ ,          # r   r   r'   s   &r!   r	  SelectInstr.condB  r   r#   c                (    V P                   ^,          # )r   r   r'   s   &r!   r
  SelectInstr.lhsF  r   r#   c                (    V P                   ^,          # )   r   r'   s   &r!   r  SelectInstr.rhsJ  r   r#   c                   VP                  R P                  RP                  V P                  4      V P                  P
                  V P                  P                  4       V P                  P
                  V P                  P                  4       V P                  P
                  V P                  P                  4       V P                  RR7      4      4       R# )z)select {0} {1} {2}, {3} {4}, {5} {6} {7}
r-   Tr/   N)
r6   r7   r2   r   r	  r4   r3   r
  r  r5   r   s   &&r!   r:   SelectInstr.descrN  s    

?FFHHTZZ IINNDII335HHMM488113HHMM488113$$4$8
 	r#   rJ   rH   )rE   rK   rL   rM   r   rN   r	  r
  r  r:   rO   rP   rQ   rR   s   @@r!   r  r  ;  sP     7             r#   r  c                   H   a a ] tR tRt oRt/ tR. 3V 3R lltR tRtVt	V ;t
# )CompareInstriX  zinvalid-comparerI   c           	     $  < W P                   9  d   \        R V: RV P                  : 24      hV F0  pWpP                  9  g   K  \        RV: RV P                  : 24      h	  V P                  p\	        VP
                  \        P                  4      '       dA   \        P                  ! \        P                  ! ^4      VP
                  P                  4      p	M\        P                  ! ^4      p	\        \        V `3  WWV.VVR7       W n        R# )zinvalid comparison z for zinvalid flag )r   r   N)VALID_OPrx   OPNAME
VALID_FLAGr   r4   r   
VectorTyper   countr   r  r   r9   )r   r   r9   r
  r  r   r   flagr   r   r    s   &&&&&&&   r!   r   CompareInstr.__init__]  s    ]]"r4;;OPPD??* T4;;!OPP  chh 0 011""5==#3SXX^^DC--"ClD*6+1:U04 	+ 	6 r#   c                   VP                  R P                  V P                  RP                  R V P                   4       4      V P
                  V P                  ^ ,          P                  V P                  ^ ,          P                  4       V P                  ^,          P                  4       V P                  RR7      R7      4       R# )z.{opname}{flags} {op} {ty} {lhs}, {rhs} {meta}
rI   c              3   4   "   T F  pR V,           x  K  	  R# 5i)r-   NrJ   ).0its   & r!   	<genexpr>%CompareInstr.descr.<locals>.<genexpr>p  s     8Zr#((Zs   Tr/   )r   r   r9   r   r
  r  r   N)
r6   r7   r   r2   r   r9   r   r4   r3   r5   r   s   &&r!   r:   CompareInstr.descrm  s    

DKK;;''8TZZ88ww}}Q$$a ..0a ..0)))= L 
 	r#   )r9   )rE   rK   rL   rM   r  r  r   r:   rO   rP   rQ   rR   s   @@r!   r  r  X  s#     FH24B  	 	r#   r  c                   T    ] tR tRtRtRRRRRRR	R
RRRRRRRRRRRR/
t]! 4       tRtR# )	ICMPInstriy  icmpeqequalnez	not equalugtzunsigned greater thanugezunsigned greater or equalultzunsigned less thanulezunsigned less or equalsgtzsigned greater thansgezsigned greater or equalsltzsigned less thanslezsigned less or equalrJ   N)	rE   rK   rL   rM   r  r  setr  rO   rJ   r#   r!   r(  r(  y  sQ    Fgk&*#'$(!%H Jr#   r(  c                       ] tR tRtRt/ RRbRRbRRbR	R
bRRbRRbRRbRRbRRbRRbRRbRRbRRbRRbRR bR!R"bt0 R%mtR#tR$# )&	FCMPInstri  fcmpfalsez#no comparison, always returns falseoeqzordered and equalogtzordered and greater thanogez!ordered and greater than or equaloltzordered and less thanolezordered and less than or equalonezordered and not equalordzordered (no nans)ueqzunordered or equalr-  zunordered or greater thanr.  z"unordered or greater than or equalr/  zunordered or less thanr0  zunordered or less than or equalunezunordered or not equalunozunordered (either nans)truez"no comparison, always returns truerJ   N>   rh   re   rf   rb   rd   rc   ri   rg   )rE   rK   rL   rM   r  r  r  rO   rJ   r#   r!   r7  r7    s    F6" 	) 	2	
 	& 	/ 	& 	" 	# 	* 	3 	' 	0 	' 	(  	4!H$Jr#   r7  c                   <   a a ] tR tRt oRV 3R lltR tRtVtV ;t# )	CastInstri  c                6   < \         \        V `  WW#.VR 7       R# r   )r   rF  r   )r   r   r9   r   r   r   r    s   &&&&&&r!   r   CastInstr.__init__  s    i'RT'Jr#   c                
   VP                  R P                  V P                  V P                  ^ ,          P                  V P                  ^ ,          P                  4       V P                  V P                  RR7      4      4       R# )z{0} {1} {2} to {3} {4}
Tr/   N)r6   r7   r   r   r4   r3   r5   r   s   &&r!   r:   CastInstr.descr  sb    

-44KKMM!!!MM!**,II$$4$8
 	r#   rJ   rI   r   rR   s   @@r!   rF  rF    s     K r#   rF  c                   <   a a ] tR tRt oRV 3R lltR tRtVtV ;t# )	LoadInstri  c                  < Vfb   \        V\        4      '       d   VP                  pM>VP                  P                  '       g   VP                  P
                  pM\        R4      h\        \        V `'  WRV.VR7       R V n
        R # )NzLoad lacks type.loadr   )r   AllocaInstrallocated_typer4   	is_opaquepointeerx   r   rM  r   align)r   r   ptrr   r   r    s   &&&&&r!   r   LoadInstr.__init__  sn    ;#{++(( XX'''hh&& !344i'VcU'N
r#   c                   V P                   w  pV P                  e   RV P                  ,          pMRpVP                  RP                  V P                  VP                  VP                  4       VV P                  RR7      4      4       R # )N
, align %drI   zload {0}, {1} {2}{3}{4}
Tr/   r   rT  r6   r7   r4   r3   r5   )r   r8   r   rT  s   &&  r!   r:   LoadInstr.descr  sr    ::! DJJ/EE

.55IIHH$$4$8
 	r#   )rT  rI   Nr   rR   s   @@r!   rM  rM    s      r#   rM  c                   8   a a ] tR tRt oV 3R ltR tRtVtV ;t# )
StoreInstri  c                \   < \         \        V `  V\        P                  ! 4       R W#.4       R# )storeN)r   r]  r   r   r   )r   r   r   rU  r    s   &&&&r!   r   StoreInstr.__init__  s$    j$(1A7*-	5r#   c                4   V P                   w  r#V P                  e   RV P                  ,          pMRpVP                  RP                  VP                  VP                  4       VP                  VP                  4       VV P                  RR7      4      4       R # )NrX  rI   zstore {0} {1}, {2} {3}{4}{5}
Tr/   rY  )r   r8   r   rU  rT  s   &&   r!   r:   StoreInstr.descr  s~    ==::! DJJ/EE

3::HHHH$$4$8
 	r#   rJ   r   rR   s   @@r!   r]  r]    s     5 r#   r]  c                   <   a a ] tR tRt oRV 3R lltR tRtVtV ;t# )LoadAtomicInstri  c                  < Vfb   \        V\        4      '       d   VP                  pM>VP                  P                  '       g   VP                  P
                  pM\        R4      h\        \        V `'  WRV.VR7       W0n
        W@n        R # )NzLoad atomic lacks type.zload atomicr   )r   rP  rQ  r4   rR  rS  rx   r   rd  r   orderingrT  )r   r   rU  rf  rT  r   r   r    s   &&&&&&&r!   r   LoadAtomicInstr.__init__  sw    ;#{++(( XX'''hh&& !:;;ot-f=/2e$ 	. 	@ 
r#   c                    V P                   w  pVP                  R P                  V P                  VP                  VP	                  4       V P
                  V P                  V P                  RR7      4      4       R# )z+load atomic {0}, {1} {2} {3}, align {4}{5}
Tr/   Nr   r6   r7   r4   r3   rf  rT  r5   )r   r8   r   s   && r!   r:   LoadAtomicInstr.descr  s`    

AHHIIHHMMJJ$$4$8
 	r#   rT  rf  r[  r   rR   s   @@r!   rd  rd    s     	 	r#   rd  c                   8   a a ] tR tRt oV 3R ltR tRtVtV ;t# )StoreAtomicInstri  c                t   < \         \        V `  V\        P                  ! 4       R W#.4       W@n        WPn        R# )zstore atomicN)r   rm  r   r   r   rf  rT  )r   r   r   rU  rf  rT  r    s   &&&&&&r!   r   StoreAtomicInstr.__init__   s0    .vu~~7G/=z	K 
r#   c                   V P                   w  r#VP                  R P                  VP                  VP	                  4       VP                  VP	                  4       V P
                  V P                  V P                  RR7      4      4       R# )z0store atomic {0} {1}, {2} {3} {4}, align {5}{6}
Tr/   Nri  )r   r8   r   rU  s   &&  r!   r:   StoreAtomicInstr.descr  sl    ==

FMMHHHHMMJJ$$4$8
 	r#   rk  r   rR   s   @@r!   rm  rm    s     
 
r#   rm  c                   8   a a ] tR tRt oV 3R ltR tRtVtV ;t# )rP  i  c                   < V'       d   V.MRp\         \        V `  WP                  4       R WT4       W n        RV n        R# )allocaNrJ   )r   rP  r   
as_pointerrQ  rT  )r   r   r   r  r   r   r    s   &&&&& r!   r   AllocaInstr.__init__  s8    #E7k4)&..2BH*2	:!
r#   c                   VP                  R P                  V P                  V P                  4      4       V P                  '       dH   V P                  w  pVP                  RP                  VP
                  VP                  4       4      4       V P                  e+   VP                  RP                  V P                  4      4       V P                  '       d$   VP                  V P                  RR7      4       R# R# )r   z	, {0} {1}Nz, align {0}Tr/   )
r6   r7   r   rQ  r   r4   r3   rT  r   r5   )r   r8   r9   s   && r!   r:   AllocaInstr.descr  s    

9##DKK1D1DEF===--CBJJ{))"''23C3C3EFG::!JJ}++DJJ78===JJt//d/CD r#   )rT  rQ  r   rR   s   @@r!   rP  rP    s     E Er#   rP  c                   <   a a ] tR tRt oRV 3R lltR tRtVtV ;t# )GEPInstri&  c           	       < Ve   VP                   pW`n        MVP                   P                  '       g   VP                   pR p^ p	V FB  p
YwP                  V
4      rx\	        V\
        P                  4      '       g   K6  VP                  p	KD  	  \	        V\
        P                  4      '       g$   \	        V\
        P                  4      '       d   TpMVP                  V	4      pVP                   P                  V n        M\        R4      h\        \        V `7  WRV.\        V4      ,           VR7       W n        W0n        W@n        R # )NzGEP lacks type.getelementptrr   )r4   source_etyperR  gepr   r   PointerType	addrspaceru  rS  rx   r   rz  r   r   pointerindicesinbounds)r   r   rU  r  r  r   r}  r   lasttyplastaddrspacer   r    s   &&&&&&&    r!   r   GEPInstr.__init__'  s   #((C , ###((CGM"GGAJgu'8'899$+$5$5M	  sE$5$566w(9(9::nn]3 # 0 0D.//h&vO(+utG}'<4 	' 	I r#   c                   V P                    Uu. uF-  pR P                  VP                  VP                  4       4      NK/  	  ppV P                  '       d   RMRpVP                  RP                  VV P                  V P                  P                  V P                  P                  4       RP                  V4      V P                  RR7      4      4       R# u upi )r   zgetelementptr inboundsr|  z{0} {1}, {2} {3}, {4} {5}
r.   Tr/   N)
r  r7   r4   r3   r  r6   r}  r  r2   r5   )r   r8   r   r  r9   s   &&   r!   r:   GEPInstr.descrF  s     LL*(q ##AFFAOO,=>( 	 *)-%O

077$$<<$$<<--/99W%++$+? 	*s   3C)r  r  r  r}  r%   r   rR   s   @@r!   rz  rz  &  s     !> r#   rz  c                   H   a a ] tR tRt oRV 3R lltR tR tR tRtVt	V ;t
# )PhiInstriT  c           	     F   < \         \        V `  WR RVVR7       . V n        R# )phir  NrJ   )r   r  r   	incomings)r   r   r   r   r   r    s   &&&&&r!   r   PhiInstr.__init__U  s)    h&vE2D-2 	' 	4r#   c                    R P                  R V P                   4       4      pVP                  RP                  RP                  V P                  4      V P
                  VV P                  RR7      4      4       R# )r.   c              3      "   T F5  w  rR P                  VP                  4       VP                  4       4      x  K7  	  R# 5i)z
[{0}, {1}]N)r7   r3   )r"  vbs   &  r!   r$  !PhiInstr.descr.<locals>.<genexpr>[  s>      5%3TQ &,,Q__->-.__->@ @%3s   =?zphi {0} {1} {2} {3}
r-   Tr/   N)r2   r  r6   r7   r   r4   r5   )r   r8   incss   && r!   r:   PhiInstr.descrZ  sh    yy 5%)^^5 5 	

*1188DJJ'99++$+?	 	r#   c                n    \        V\        4      '       g   Q hV P                  P                  W34       R # r%   )r   r   r  r6   )r   r   r   s   &&&r!   add_incomingPhiInstr.add_incominge  s)    %''''un-r#   c                n    V P                    UUu. uF  w  r4W1J d   TMTV3NK  	  uppV n         R # u uppi r%   r  )r   r>   r?   r   r   s   &&&  r!   rA   PhiInstr.replace_usagei  s7    ,0NN<,:js $':C3=,:< <s   1r  )rJ   )rE   rK   rL   rM   r   r:   r  rA   rO   rP   rQ   rR   s   @@r!   r  r  T  s     
	.< <r#   r  c                   <   a a ] tR tRt oRV 3R lltR tRtVtV ;t# )ExtractElementin  c                8  < \        VP                  \        P                  4      '       g   \	        R 4      h\        VP                  \        P
                  4      '       g   \	        R4      hVP                  P                  p\        \        V `'  WRW#.VR7       R# )!vector needs to be of VectorType.index needs to be of IntType.extractelementr   N)
r   r4   r   r  r}   r   elementr   r  r   )r   r   vectorindexr   r   r    s   &&&&& r!   r   ExtractElement.__init__o  sw    &++u'7'788?@@%**emm44;<<kk!!nd,V:J.4_4 	- 	Ir#   c                    R P                  R V P                   4       4      pVP                  RP                  V P                  VR7      4       R# )r.   c              3   v   "   T F/  pR P                  VP                  VP                  4       4      x  K1  	  R# 5ir   Nr7   r4   r3   r"  r9   s   & r!   r$  'ExtractElement.descr.<locals>.<genexpr>y  :      I:GB '--77B,,.0 0:G   79{opname} {operands}
r   r   Nr2   r   r6   r7   r   r   r8   r   s   && r!   r:   ExtractElement.descrx  L    99 I:>--I I

*11++ 2 : 	;r#   rJ   rK  r   rR   s   @@r!   r  r  n  s     I; ;r#   r  c                   <   a a ] tR tRt oRV 3R lltR tRtVtV ;t# )InsertElementi  c                  < \        VP                  \        P                  4      '       g   \	        R 4      hVP                  VP                  P
                  8X  g:   \	        RP                  VP                  P
                  VP                  4      4      h\        VP                  \        P                  4      '       g   \	        R4      hVP                  p\        \        V `+  WRW#V.VR7       R# )r  z$value needs to be of type {} not {}.r  insertelementr   N)r   r4   r   r  r}   r  r7   r   r   r  r   )r   r   r  r   r  r   r   r    s   &&&&&& r!   r   InsertElement.__init__  s    &++u'7'788?@@zzV[[0006==KK''56 6 %**emm44;<<kkmT+F-3E,B 	, 	Or#   c                    R P                  R V P                   4       4      pVP                  RP                  V P                  VR7      4       R# )r.   c              3   v   "   T F/  pR P                  VP                  VP                  4       4      x  K1  	  R# 5ir  r  r  s   & r!   r$  &InsertElement.descr.<locals>.<genexpr>  r  r  r  r  Nr  r  s   && r!   r:   InsertElement.descr  r  r#   rJ   rK  r   rR   s   @@r!   r  r    s     O; ;r#   r  c                   <   a a ] tR tRt oRV 3R lltR tRtVtV ;t# )ShuffleVectori  c                8  <a \        VP                  \        P                  4      '       g   \	        R 4      hV\
        8w  d'   VP                  VP                  8w  d   \	        R	4      h\        V\        4      '       d   \        VP                  \        P                  4      '       dZ   \        VP                  P                  \        P                  4      '       d&   VP                  P                  P                  ^ 8X  g   \	        R4      h\        P                  ! VP                  P                  VP                  P                  4      p\        V\
        8X  d   VP                  P                  M^VP                  P                  ,          4      o\        ;QJ d)    V3R lVP                   4       F  '       d   K   RM	  RM! V3R lVP                   4       4      '       g   \        RP                  S4      4      h\         \"        V `K  WRW#V.VR7       R# )
z"vector1 needs to be of VectorType.z'mask needs to be a constant i32 vector.c              3   @   <"   T F  qP                   S9   x  K  	  R # 5ir%   )constant)r"  iiindex_ranges   & r!   r$  )ShuffleVector.__init__.<locals>.<genexpr>  s     F";;+-s   FTzmask values need to be in {0}shufflevectorr   Nz=vector2 needs to be Undefined or of the same type as vector1.)r   r4   r   r  r}   r   r   r  r   widthr  ry   allr  
IndexErrorr7   r   r  r   )	r   r   vector1vector2maskr   r   r  r    s	   &&&&&& @r!   r   ShuffleVector.__init__  sx   ',,(8(899@AAi||w||+ !L M M4**499e&6&677DII--u}}==""((B.EFFw||33TYY__E&)3 $LL..!"W\\%7%7!79 sFFsssFFFF/66{C  	mT+F-4t,D4 	, 	Qr#   c           	         VP                  R P                  RP                  R V P                   4       4      V P	                  RR7      4      4       R# )zshufflevector {0} {1}
r.   c              3   v   "   T F/  pR P                  VP                  VP                  4       4      x  K1  	  R# 5ir  r  r  s   & r!   r$  &ShuffleVector.descr.<locals>.<genexpr>  s4      6'4 '--bggr7G7G7IJJ'4r  Tr/   N)r6   r7   r2   r   r5   r   s   &&r!   r:   ShuffleVector.descr  sJ    

,3399 6'+}}6 6++$+? 	r#   rJ   rK  r   rR   s   @@r!   r  r    s     Q. r#   r  c                   <   a a ] tR tRt oRV 3R lltR tRtVtV ;t# )ExtractValuei  c                  < VP                   p V F  pVP                  V,          pK  	  \        \        T `#  YRT.TR7       Y n	        Y0n
        R#   \        \        3 d(    \	        R \        T4      : RTP                   : 24      hi ; i)Can't index at  in extractvaluer   N)r4   elementsAttributeErrorr  r}   r   r   r  r   	aggregater  )r   r   aggr  r   r   r   r    s   &&&&&  r!   r   ExtractValue.__init__  s    hh	9ll1o  	lD*6,/5t 	+ 	=  
+ 	9#G}chh8 9 9	9s   A 8B	c                4   V P                    Uu. uF  p\        V4      NK  	  ppVP                  R P                  V P                  P
                  V P                  P                  4       RP                  V4      V P                  RR7      4      4       R# u upi )zextractvalue {0} {1}, {2} {3}
r.   Tr/   N)	r  rq   r6   r7   r  r4   r3   r2   r5   r   r8   r   r  s   &&  r!   r:   ExtractValue.descr  sw    #'<<0<a3q6<0

4;;>>&&>>//199W%++$+?	 	 1s   B)r  r  rK  r   rR   s   @@r!   r  r    s      r#   r  c                   <   a a ] tR tRt oRV 3R lltR tRtVtV ;t# )InsertValuei  c           
       < VP                   p V F  pVP                  V,          pK  	  TP                   T8w  d9   \	        RT: R\        T4      : RTP                   : RTP                   : 24      h\        \        T `#  YP                   RY#.TR7       Y n	        Y0n
        Y@n        R#   \        \        3 d(    \	        R \        T4      : RTP                   : 24      hi ; i)r  r  zCan only insert z at z: got insertvaluer   N)r4   r  r  r  r}   r   r   r  r   r  r   r  )	r   r   r  elemr  r   r   r   r    s	   &&&&&&  r!   r   InsertValue.__init__  s    hh	9ll1o 
 99"DM388TYYH I Ik4)&((M+.+D 	* 	B 
 
+ 	9#G}chh8 9 9	9s   B* *8C"c                   V P                    Uu. uF  p\        V4      NK  	  ppVP                  R P                  V P                  P
                  V P                  P                  4       V P                  P
                  V P                  P                  4       RP                  V4      V P                  RR7      4      4       R# u upi )z&insertvalue {0} {1}, {2} {3}, {4} {5}
r.   Tr/   N)
r  rq   r6   r7   r  r4   r3   r   r2   r5   r  s   &&  r!   r:   InsertValue.descr  s    #'<<0<a3q6<0

<CC>>&&(D(D(F::??DJJ$<$<$>99W%++$+?	 	 1s   C)r  r  r   rK  r   rR   s   @@r!   r  r    s     $ r#   r  c                   8   a a ] tR tRt oV 3R ltR tRtVtV ;t# )Unreachablei  c                ^   < \         \        V `  V\        P                  ! 4       R RRR7       R# )unreachablerI   r   NrJ   )r   r  r   r   r   )r   r   r    s   &&r!   r   Unreachable.__init__  s*    k4)&%..2B*7" 	* 	Fr#   c                .    WP                   R 3,          pR# )
N)r   r   s   &&r!   r:   Unreachable.descr  s    T""r#   rJ   r   rR   s   @@r!   r  r    s     F# #r#   r  c                   <   a  ] tR tRt o RR ltR tR tR tRtV t	R# )		InlineAsmi  c                X    VP                   V n        Wn        W n        W0n        W@n        R # r%   )r~   r4   rz   asm
constraintside_effect)r   ftyper  r  r  s   &&&&&r!   r   InlineAsm.__init__  s%    %%	"$&r#   c                    V P                   '       d   R MRpRpVP                  VP                  W P                  V P                  R7      4       R# )
sideeffectrI   z(asm {sideeffect} "{asm}", "{constraint}")r  r  r  N)r  r6   r7   r  r  )r   r8   r  fmts   &&  r!   r:   InlineAsm.descr  sB    %)%5%5%5\2
8

3::)-  : 	;r#   c                J    . pV P                  V4       R P                  V4      # rK  )r:   r2   r   s   & r!   r3   InlineAsm.get_reference  s     

3wws|r#   c                V    R P                  V P                  V P                  4       4      # )r   r  r'   s   &r!   __str__InlineAsm.__str__	  s"    		4+=+=+?@@r#   )r  r  rz   r  r4   N)F)
rE   rK   rL   rM   r   r:   r3   r  rO   rP   r   s   @r!   r  r    s      ';
A Ar#   r  c                   8   a a ] tR tRt oV 3R ltR tRtVtV ;t# )	AtomicRMWi  c                d   < \         \        V `  WP                  R W43VR7       W n        WPn        R# )	atomicrmwr   N)r   r  r   r4   	operationrf  )r   r   r9   rU  r   rf  r   r    s   &&&&&&&r!   r   AtomicRMW.__init__  s0    i'+),
 	( 	? r#   c                   V P                   w  r#R pVP                  VP                  V P                  VP                  VP                  4       VP                  VP                  4       V P                  V P                  RR7      R7      4       R# )zBatomicrmw {op} {ptrty} {ptr}, {valty} {val} {ordering} {metadata}
Tr/   )r9   ptrtyrU  valtyr   rf  r   N)r   r6   r7   r  r4   r3   rf  r5   )r   r8   rU  r   r  s   &&   r!   r:   AtomicRMW.descr  sz    ==

3::$'HH"%"3"3"5$'HH"%"3"3"5'+}}'+'?'?04 (@ (6    	!r#   )r  rf  r   rR   s   @@r!   r  r    s     !! !r#   r  c                   <   a a ] tR tRt oRtV 3R ltR tRtVtV ;t	# )CmpXchgi#  z\This instruction has changed since llvm3.5.  It is not compatible with
older llvm versions.
c                   < \         P                  ! VP                  \         P                  ! ^4      .4      p\        \
        V `  WRW#V3VR7       WPn        W`n        R# )r   cmpxchgr   N)	r   LiteralStructTyper4   r   r   r  r   rf  failordering)
r   r   rU  cmpr   rf  r  r   outtyper    s
   &&&&&&&& r!   r   CmpXchg.__init__(  sR    ))388U]]15E*FGgt%fy'*oD 	& 	B (r#   c                <   V P                   w  r#pR pVP                  VP                  VP                  VP	                  4       VP                  VP	                  4       VP	                  4       V P
                  V P                  V P                  RR7      R7      4       R# )zScmpxchg {ptrty} {ptr}, {ty} {cmp}, {ty} {val} {ordering} {failordering} {metadata}
Tr/   )r  rU  r   r  r   rf  r  r   N)r   r6   r7   r4   r3   rf  r  r5   )r   r8   rU  cmpvalr   r  s   &&    r!   r:   CmpXchg.descr/  s    ==S,

3::CHH"%"3"3"5!'"("6"6"8"%"3"3"5'+}}+/+<+<'+'?'?04 (@ (6  	  		!r#   )r  rf  
rE   rK   rL   rM   __doc__r   r:   rO   rP   rQ   rR   s   @@r!   r  r  #  s     )! !r#   r  c                   ,   a  ] tR tRt o R tR tRtV tR# )_LandingPadClausei?  c                    Wn         R # r%   r   )r   r   s   &&r!   r   _LandingPadClause.__init__@  s    
r#   c                    R P                  V P                  V P                  P                  V P                  P	                  4       R7      # )z{kind} {type} {value})kindr4   r   )r7   r  r   r4   r3   r'   s   &r!   r  _LandingPadClause.__str__C  s<    &--****, . . 	.r#   r  N)rE   rK   rL   rM   r   r  rO   rP   r   s   @r!   r  r  ?  s     . .r#   r  c                       ] tR tRtRtRtR# )CatchClauseiJ  catchrJ   N)rE   rK   rL   rM   r  rO   rJ   r#   r!   r!  r!  J  s    Dr#   r!  c                   6   a a ] tR tRt oRtV 3R ltRtVtV ;t# )FilterClauseiN  filterc                   < \        V\        4      '       g   Q h\        VP                  \        P                  4      '       g   Q h\
        \        V `  V4       R # r%   )r   r   r4   r   	ArrayTyper   r$  r   )r   r   r    s   &&r!   r   FilterClause.__init__Q  s@    %****%**eoo6666lD*51r#   rJ   )	rE   rK   rL   rM   r  r   rO   rP   rQ   rR   s   @@r!   r$  r$  N  s     D2 2r#   r$  c                   B   a a ] tR tRt oRV 3R lltR tR tRtVtV ;t	# )LandingPadInstriW  c                P   < \         \        V `  WR . VR7       W@n        . V n        R# )
landingpadr   N)r   r*  r   cleanupclauses)r   r   r   r   r-  r    s   &&&&&r!   r   LandingPadInstr.__init__X  s,    ot-f<37 	. 	9r#   c                l    \        V\        4      '       g   Q hV P                  P                  V4       R # r%   )r   r  r.  r6   )r   clauses   &&r!   
add_clauseLandingPadInstr.add_clause^  s(    &"34444F#r#   c                   R pTP                  TP                  V P                  V P                  '       d   RMRRP	                  V P
                   Uu. uF  pRP                  V4      NK  	  up4      R7      4       R# u upi )z$landingpad {type}{cleanup}{clauses}
z cleanuprI   z

      {0})r4   r-  r.  N)r6   r7   r4   r-  r2   r.  )r   r8   r  r1  s   &&  r!   r:   LandingPadInstr.descrb  su    5

3::49948LLLjb&(gg=A\\/K=I6 0=/C/CF/K=I/K 'L    	!/Ks   A>)r.  r-  )rI   F)
rE   rK   rL   rM   r   r2  r:   rO   rP   rQ   rR   s   @@r!   r*  r*  W  s     $! !r#   r*  c                   H   a a ] tR tRt oRt0 RmtRV 3R lltR tRtVt	V ;t
# )Fenceik  zl
The `fence` instruction.

As of LLVM 5.0.1:

fence [syncscope("<target-scope>")] <ordering>  ; yields void
c                  < \         \        V `  V\        P                  ! 4       R RVR7       W P
                  9  d7   Rp\        VP                  VRP                  V P
                  4      4      4      hW n	        W0n
        R# )fencer   z3Invalid fence ordering "{0}"! Should be one of {1}.r.   NrJ   )r   r7  r   r   r   VALID_FENCE_ORDERINGSrx   r7   r2   rf  targetscope)r   r   rf  r;  r   r   r    s   &&&&& r!   r   Fence.__init__v  st    eT#FENN,<gr)- 	$ 	/555ICS[[)-43M3M)NP Q Q &r#   c                    V P                   f   RpMRP                  V P                   4      pRpVP                  VP                  VV P                  R7      4       R # )NrI   zsyncscope("{0}") zfence {syncscope}{ordering}
)	syncscoperf  )r;  r7   r6   rf  )r   r8   r>  r  s   &&  r!   r:   Fence.descr  sS    #I+2243C3CDI-

3::	'+}}    	!r#   )rf  r;  >   acq_relacquirereleaseseq_cst)NrI   )rE   rK   rL   rM   r  r:  r   r:   rO   rP   rQ   rR   s   @@r!   r7  r7  k  s"      I'	! 	!r#   r7  c                   <   a a ] tR tRt oRtV 3R ltR tRtVtV ;t	# )Commenti  z
A line comment.
c                   < \         \        V `  V\        P                  ! 4       R RRR7       RV9  g   Q R4       hW n        R# );rI   r   r  zComment cannot contain new lineNrJ   )r   rE  r   r   r   text)r   r   rH  r    s   &&&r!   r   Comment.__init__  sB    gt%fenn.>R+- 	& 	/4B!BB	r#   c                B    VP                  R V P                   24       R# )z; N)r6   rH  r   s   &&r!   r:   Comment.descr  s    

R		{#$r#   )rH  r  rR   s   @@r!   rE  rE    s     % %r#   rE  N)rm   musttailnotail);r  llvmlite.irr   llvmlite.ir.valuesr   r   r   r   r   r   r	   r
   r   r   llvmlite.ir._utilsr   r   rU   r^   rr   ra   rk   r   r   r   r   r   r   r   r   r  r  r  r(  r7  rF  rM  r]  rd  rm  rP  rz  r  r  r  r  r  r  r  objectr  r  r  r  r!  r$  r*  r7  rE  rJ   r#   r!   <module>rR     s0   ? ? ? ,'(*l '(TA, A
 <= +L +
m, m,`) *
D 
D	&{ 	&A* A0	Z 		(* 	%z 0"J <	Z 	+ :; B " 0  < *k 8{ (E+ E&+{ +\<{ <4;[ ;";K ;*K @; 6+ <#+ #A A.! !,!k !8. .# 2$ 2!k !(!K !B%k %r#   