+
    -i\                        ^ RI t ^ RIt^ RIHtHtHt RRRRRRR	R
RRRR/t]P                  3R lt]P                  3R lt	]P                  3R lt
]P                  3R ltR tR tR tR t]P                   3R ltR t ! R R]4      tR# )    N)instructionstypesvalues>gt<lt==eq!=nez>=gez<=lec                    a a VV 3R  lpV# )c                 L   < \         P                  ! V 4      RVV3R ll4       pV# ) c                 l   < S! V P                   VP                  SV.W#4      pV P                  V4       V# Nblocktype_insert)selfargnameflagsinstrclsopnames   &&&& Q/var/www/html/photoedit/myenv/lib/python3.14/site-packages/llvmlite/ir/builder.pywrapped$_unop.<locals>.wrap.<locals>.wrapped   s0    

CHHfseTIELLL    r    	functoolswrapsfnr!   r   r   s   & r    wrap_unop.<locals>.wrap   %    			 
	
 r#   r%   r   r   r+   s   ff r    _unopr/           Kr#   c                    a a VV 3R  lpV# )c                 L   < \         P                  ! V 4      RVV3R ll4       pV# )r   c                    < VP                   VP                   8w  d)   \        R VP                   : RVP                   : R24      hS! V P                  VP                   SW3W44      pV P                  V4       V# )%Operands must be the same type, got (, ))r   
ValueErrorr   r   )r   lhsrhsr   r   r   r   r   s   &&&&& r    r!   %_binop.<locals>.wrap.<locals>.wrapped   s_    xx388# $'HHchh"8 9 9

CHHfsj$NELLLr#   r$   r&   r)   s   & r    r+   _binop.<locals>.wrap   s%    			 
	 r#   r%   r.   s   ff r    _binopr<      s    
 Kr#   c                    a  V 3R  lpV# )c                 J   < \         P                  ! V 4      RV3R ll4       pV# )r   c                   < VP                   VP                   8w  d)   \        R VP                   : RVP                   : R24      hVP                   p\        V\        P                  4      '       g   \        RV: 24      h\        P                  ! ^4      pV P                  p\        P                  ! \        P                  ! WE.4      WD.4      pVP                  RS
: R2V.V4      pV P                  WV.VR7      p	V	# )r4   r5   r6   zexpected an integer type, got zllvm.z.with.overflowr   )r   r7   
isinstancer   IntType	TypeErrormoduleFunctionTypeLiteralStructTypedeclare_intrinsiccall)r   r8   r9   r   tybool_tymodfntyr*   retr   s   &&&&      r    r!   3_binop_with_overflow.<locals>.wrap.<locals>.wrapped/   s    xx388# $'HHchh"8 9 9Bb%--00b JKKmmA&G++C%%e&=&=rm&L')h0D&&&'J(*tT3B))Bc
)6CJr#   r   r&   r*   r!   r   s   & r    r+   "_binop_with_overflow.<locals>.wrap.   s%    			 
	" r#   r%   r.   s   f& r    _binop_with_overflowrR   -   s    * Kr#   c                    a a VV 3R  lpV# )c                 L   < \         P                  ! V 4      RVV3R ll4       pV# )r   c                 l   < S! V P                   VP                  SV.V4      pV P                  V4       V# r   r   )r   operandr   r   r   r   s   &&& r    r!   %_uniop.<locals>.wrap.<locals>.wrappedH   s0    

GLL&7)TJELLLr#   rO   r&   r)   s   & r    r+   _uniop.<locals>.wrapG   r-   r#   r%   r.   s   ff r    _unioprY   F   r0   r#   c                    a  V 3R  lpV# )c                 J   < \         P                  ! V 4      RV3R ll4       pV# )r   c                   < \        VP                  \        P                  4      '       g   \	        R VP                  ,          4      hV P
                  P                  SVP                  .4      pV P                  W1.V4      # ) expected an integer type, got %s)rA   r   r   rB   rC   rD   rG   rH   r   rV   r   r*   r   s   &&& r    r!   3_uniop_intrinsic_int.<locals>.wrap.<locals>.wrappedU   se    gllEMM::6LL!" " ..v~FB99RD11r#   rO   r&   rP   s   & r    r+   "_uniop_intrinsic_int.<locals>.wrapT   s%    			2 
	2 r#   r%   r   r+   s   f r    _uniop_intrinsic_intrb   S   s    
 Kr#   c                    a  V 3R  lpV# )c                 J   < \         P                  ! V 4      RV3R ll4       pV# )r   c                 $  < \        VP                  \        P                  \        P                  34      '       g   \        R VP                  ,          4      hV P                  P                  SVP                  .4      pV P                  W1.V4      # )expected a float type, got %s)	rA   r   r   	FloatType
DoubleTyperC   rD   rG   rH   r^   s   &&& r    r!   5_uniop_intrinsic_float.<locals>.wrap.<locals>.wrappede   sn    LL5??E4D4D"EG G ?',, NOO..v~FB99RD11r#   rO   r&   rP   s   & r    r+   $_uniop_intrinsic_float.<locals>.wrapd   s%    			2 
	2 r#   r%   ra   s   f r    _uniop_intrinsic_floatrk   c   s    	 Kr#   c                    a  V 3R  lpV# )c                 J   < \         P                  ! V 4      RV3R ll4       pV# )r   c                   < \        VP                  \        P                  4      '       g   \	        R VP                  ,          4      h\        VP                  \        P                  4      '       d   VP                  P
                  ^8X  g   \	        RVP                  ,          4      hV P                  P                  SVP                  VP                  .4      pV P                  WAV.V4      # )r]   zexpected an i1 type, got %s)	rA   r   r   rB   rC   widthrD   rG   rH   )r   rV   flagr   r*   r   s   &&&& r    r!   9_uniop_intrinsic_with_flag.<locals>.wrap.<locals>.wrappedt   s    gllEMM::6LL!" " tyy%--88IIOOq( =		 IJJ..tyy13B99R4$77r#   rO   r&   rP   s   & r    r+   (_uniop_intrinsic_with_flag.<locals>.wraps   s%    		
	8 

	8 r#   r%   ra   s   f r    _uniop_intrinsic_with_flagrs   r   s      Kr#   c                    a  V 3R  lpV# )c                 J   < \         P                  ! V 4      RV3R ll4       pV# )r   c                 F  < VP                   VP                   8w  g   VP                   VP                   8w  d6   \        R VP                   : RVP                   : RVP                   : 24      h\        VP                   \        P                  \        P
                  \        P                  34      '       g   \        RVP                   ,          4      hV P                  P                  SVP                   VP                   VP                   .4      pV P                  WQW#.V4      # )z#expected types to be the same, got r5   z'expected an floating point type, got %s)
r   rC   rA   r   HalfTyperg   rh   rD   rG   rH   )r   abcr   r*   r   s   &&&&& r    r!   /_triop_intrinsic.<locals>.wrap.<locals>.wrapped   s    vv166QVV#3 ! !
  FF^^U__e6F6FGI I  =FF  ..v7OPB99RQD11r#   rO   r&   rP   s   & r    r+   _triop_intrinsic.<locals>.wrap   s%    			2 
	2  r#   r%   ra   s   f r    _triop_intrinsicr}      s    ( Kr#   c                    a a VV 3R  lpV# )c                 L   < \         P                  ! V 4      RVV3R ll4       pV# )r   c                 z   < VP                   V8X  d   V# S! V P                  SWV4      pV P                  V4       V# r   )r   r   r   )r   valtypr   r   r   r   s   &&&& r    r!   &_castop.<locals>.wrap.<locals>.wrapped   s8    xx3


FCd;ELLLr#   rO   r&   r)   s   & r    r+   _castop.<locals>.wrap   s%    			 
	 r#   r%   r.   s   ff r    _castopr      s    	 Kr#   c                d    \        V 4      ^28  d   ^pRP                  V RV RV.4      # W,           # )zReturns (label + suffix) or a truncated version if it's too long.
Parameters
----------
label : str
    Label name
suffix : str
    Label suffix
r   Nz..)lenjoin)labelsuffixnheads   && r    _label_suffixr      s8     5zBwwfutV455~r#   c                   2  a  ] tR t^t o RR lt]R 4       t]t]R 4       t]R 4       t	R t
R tR tR	 tRR
 ltR t]P"                  R 4       t]P"                  R 4       t]P"                  R 4       t]P"                  RR l4       t]P"                  RR l4       tR tR t]! R4      RR l4       t]! R4      RR l4       t]! R4      RR l4       t]! R4      RR l4       t]! R4      RR l4       t]! R4      RR l4       t]! R4      RR  l4       t ]! R!4      RR" l4       t!]! R#4      RR$ l4       t"]! R%4      RR& l4       t#]! R'4      RR( l4       t$]! R)4      RR* l4       t%]! R+4      RR, l4       t&]! R-4      RR. l4       t']! R/4      RR0 l4       t(]! R14      RR2 l4       t)]! R34      RR4 l4       t*]! R54      RR6 l4       t+],! R74      RR8 l4       t-],! R94      RR: l4       t.],! R;4      RR< l4       t/],! R=4      RR> l4       t0],! R?4      RR@ l4       t1],! RA4      RRB l4       t2RRC lt3RRD lt4]5! RE4      RRF l4       t6RG t7RRH lt8RRI lt9RRJ lt:RRK lt;RRL lt<]=! RM4      RRN l4       t>]=! RO4      RRP l4       t?]=! RQ4      RRR l4       t@]=! RS4      RRT l4       tA]=! RU4      RRV l4       tB]=! RW4      RRX l4       tC]=! RY4      RRZ l4       tD]=! R[4      RR\ l4       tE]=! R]4      RR^ l4       tF]=! R_4      RR` l4       tG]=! Ra4      RRb l4       tH]=! Rc4      RRd l4       tI]=! Re4      RRf l4       tJRRg ltKRRh ltLRRi ltMRRj ltNRk tORl tPRm tQRn tRRo tSRp tTRq tURr tVRRs ltWRRt ltXRRu ltYRRv ltZRRw lt[RRx lt\RRy lt]RRz lt^RR{ lt_RR| lt`RR} ltaRR~ ltbR tcRR ltdRR lteRR ltfR tgRR lthR ti]j! R4      R 4       tk]j! R4      R 4       tl]j! R4      R 4       tm]n! R4      R 4       to]n! R4      R 4       tp]q! R4      R 4       trRR lts]t! R4      R 4       tuRtvV twR# )	IRBuilderNc                h    Wn         V'       d   \        VP                  4      M^ V n        RV n        R# )r   N)_blockr   r   _anchordebug_metadatar   r   s   &&r    __init__IRBuilder.__init__   s%    27s5--.Q"r#   c                    V P                   # )z
The current basic block.
)r   r   s   &r    r   IRBuilder.block   s    
 {{r#   c                .    V P                   P                  # )z
The current function.
)r   parentr   s   &r    functionIRBuilder.function   s    
 zz   r#   c                B    V P                   P                  P                  # )z
The current module.
)r   r   rD   r   s   &r    rD   IRBuilder.module   s    
 zz  '''r#   c                |    VP                   V n        V P                  P                  P                  V4      V n        R# )zy
Position immediately before the given instruction.  The current block
is also changed to the instruction's basic block.
Nr   r   r   indexr   r   r   s   &&r    position_beforeIRBuilder.position_before   s+    
 ll{{//55e<r#   c                    VP                   V n        V P                  P                  P                  V4      ^,           V n        R# )zx
Position immediately after the given instruction.  The current block
is also changed to the instruction's basic block.
Nr   r   s   &&r    position_afterIRBuilder.position_after   s0    
 ll{{//55e<q@r#   c                     Wn         ^ V n        R# )z-
Position at the start of the basic *block*.
N)r   r   r   s   &&r    position_at_startIRBuilder.position_at_start   s     r#   c                F    Wn         \        VP                  4      V n        R# )z+
Position at the end of the basic *block*.
N)r   r   r   r   r   s   &&r    position_at_endIRBuilder.position_at_end   s     5--.r#   c                8    V P                   P                  V4      # )z
Append a basic block, with the given optional *name*, to the current
function.  The current block is not changed.  The new block is returned.
)r   append_basic_block)r   r   s   &&r    r   IRBuilder.append_basic_block   s    
 }}//55r#   c                .   V P                   P                  P                  V4      pV P                   P                  V V P                   P                  V8X  d   RV P                   n        V P                  V8  d   V ;P                  ^,          un        R# R# )zRemove the given instruction.N)r   r   r   
terminatorr   )r   r   idxs   && r    removeIRBuilder.remove   sk    kk&&,,U3KK$$S);;!!U*%)DKK"<<#LLAL r#   c              #     "   V P                   pVP                  pVe   V P                  V4       MV P                  V4        Rx  V P                  V4       R#   T P                  T4       i ; i5i)zw
A context manager which temporarily positions the builder at the end
of basic block *bb* (but before any terminator).
N)basic_blockr   r   r   )r   r   	old_blockterms   &&  r    
goto_blockIRBuilder.goto_block  sc      $$	  &  '	,  +D  +s   A A0A A0A--A0c              #     "   V P                  V P                  P                  4      ;_uu_ 4        Rx  RRR4       R#   + '       g   i     R# ; i5i)ze
A context manager which temporarily positions the builder at the
end of the function's entry block.
N)r   r   entry_basic_blockr   s   &r    goto_entry_blockIRBuilder.goto_entry_block  s1      __T]]<<== >===s   .A?
AA	
	Ac              #     "   V P                  V4       Vx  V P                  P                  f   V P                  V4       R # R # 5ir   )r   r   r   branch)r   bbenterbbexits   &&&r    _branch_helperIRBuilder._branch_helper"  s;     W%&&.KK /s   AAc              #    "   V P                   pV P                  \        VP                  R4      R7      pV P                  \        VP                  R4      R7      pV P	                  WV4      pVe    TP                  V'       d   ^c^.M^^c.4       V P                  WE4      ;_uu_ 4        Vx  RRR4       V P                  V4       R#   + '       g   i     L#; i5i)ao  
A context manager which sets up a conditional basic block based
on the given predicate (a i1 value).  If the conditional block
is not explicitly terminated, a branch will be added to the next
block.
If *likely* is given, its boolean value indicates whether the
predicate is likely to be true or not, and metadata is issued
for LLVM's optimizers to account for that.
.ifr@   .endifNr   r   r   r   cbranchset_weightsr   r   )r   predlikelybbbbifbbendbrs   &&&    r    if_thenIRBuilder.if_then)  s      &&M"''5,I&J'']277H-M'N\\$e,NNfB71b':  --K . 	U# .-s$   BC%C)C	.C	C	Cc              #    "   V P                   pV P                  \        VP                  R4      R7      pV P                  \        VP                  R4      R7      pV P                  \        VP                  R4      R7      pV P	                  WV4      pVe    TP                  V'       d   ^c^.M^^c.4       V P                  WF4      pV P                  WV4      p	W3x  V P                  V4       R# 5i)a  
A context manager which sets up two conditional basic blocks based
on the given predicate (a i1 value).
A tuple of context managers is yield'ed.  Each context manager
acts as a if_then() block.
*likely* has the same meaning as in if_then().

Typical use::
    with builder.if_else(pred) as (then, otherwise):
        with then:
            # emit instructions for when the predicate is true
        with otherwise:
            # emit instructions for when the predicate is false
r   r@   z.elser   Nr   )
r   r   r   r   r   bbelser   r   then	otherwises
   &&&       r    if_elseIRBuilder.if_else@  s       &&M"''5,I&J((mBGGW.M(N'']277H-M'N\\$f-NNfB71b':""4/''6	oU#s   B'C0*AC0c                   V P                   e+   RVP                  9  d   V P                   VP                  R&   V P                  P                  P	                  V P
                  V4       V ;P
                  ^,          un        R # )Ndbg)r   metadatar   r   insertr   r   s   &&r    r   IRBuilder._insert_  sY    *uENN/J$($7$7ENN5!  ''e<r#   c                    V P                   P                  '       d   Q hV P                  V4       WP                   n        V# r   )r   is_terminatedr   r   )r   r   s   &&r    _set_terminatorIRBuilder._set_terminatore  s3    ::+++++T $

r#   shlc                    R# )z+
Left integer shift:
    name = lhs << rhs
Nr%   r   r8   r9   r   s   &&&&r    r   IRBuilder.shlo      r#   lshrc                    R# )z?
Logical (unsigned) right integer shift:
    name = lhs >> rhs
Nr%   r   s   &&&&r    r   IRBuilder.lshrv  r   r#   ashrc                    R# )z@
Arithmetic (signed) right integer shift:
    name = lhs >> rhs
Nr%   r   s   &&&&r    r   IRBuilder.ashr}  r   r#   addc                    R# )z(
Integer addition:
    name = lhs + rhs
Nr%   r   s   &&&&r    r   IRBuilder.add  r   r#   faddc                    R# )z/
Floating-point addition:
    name = lhs + rhs
Nr%   r   s   &&&&r    r   IRBuilder.fadd  r   r#   subc                    R# )z+
Integer subtraction:
    name = lhs - rhs
Nr%   r   s   &&&&r    r   IRBuilder.sub  r   r#   fsubc                    R# )z2
Floating-point subtraction:
    name = lhs - rhs
Nr%   r   s   &&&&r    r   IRBuilder.fsub  r   r#   mulc                    R# )z.
Integer multiplication:
    name = lhs * rhs
Nr%   r   s   &&&&r    r   IRBuilder.mul  r   r#   fmulc                    R# )z5
Floating-point multiplication:
    name = lhs * rhs
Nr%   r   s   &&&&r    r   IRBuilder.fmul  r   r#   udivc                    R# )z1
Unsigned integer division:
    name = lhs / rhs
Nr%   r   s   &&&&r    r   IRBuilder.udiv  r   r#   sdivc                    R# )z/
Signed integer division:
    name = lhs / rhs
Nr%   r   s   &&&&r    r  IRBuilder.sdiv  r   r#   fdivc                    R# )z/
Floating-point division:
    name = lhs / rhs
Nr%   r   s   &&&&r    r  IRBuilder.fdiv  r   r#   uremc                    R# )z2
Unsigned integer remainder:
    name = lhs % rhs
Nr%   r   s   &&&&r    r	  IRBuilder.urem  r   r#   sremc                    R# )z0
Signed integer remainder:
    name = lhs % rhs
Nr%   r   s   &&&&r    r  IRBuilder.srem  r   r#   fremc                    R# )z0
Floating-point remainder:
    name = lhs % rhs
Nr%   r   s   &&&&r    r  IRBuilder.frem  r   r#   orc                    R# )z*
Bitwise integer OR:
    name = lhs | rhs
Nr%   r   s   &&&&r    or_IRBuilder.or_  r   r#   andc                    R# )z+
Bitwise integer AND:
    name = lhs & rhs
Nr%   r   s   &&&&r    and_IRBuilder.and_  r   r#   xorc                    R# )z+
Bitwise integer XOR:
    name = lhs ^ rhs
Nr%   r   s   &&&&r    r  IRBuilder.xor  r   r#   saddc                    R# )zV
Signed integer addition with overflow:
    name = {result, overflow bit} = lhs + rhs
Nr%   r   s   &&&&r    sadd_with_overflowIRBuilder.sadd_with_overflow  r   r#   smulc                    R# )z\
Signed integer multiplication with overflow:
    name = {result, overflow bit} = lhs * rhs
Nr%   r   s   &&&&r    smul_with_overflowIRBuilder.smul_with_overflow  r   r#   ssubc                    R# )zY
Signed integer subtraction with overflow:
    name = {result, overflow bit} = lhs - rhs
Nr%   r   s   &&&&r    ssub_with_overflowIRBuilder.ssub_with_overflow  r   r#   uaddc                    R# )zX
Unsigned integer addition with overflow:
    name = {result, overflow bit} = lhs + rhs
Nr%   r   s   &&&&r    uadd_with_overflowIRBuilder.uadd_with_overflow  r   r#   umulc                    R# )z^
Unsigned integer multiplication with overflow:
    name = {result, overflow bit} = lhs * rhs
Nr%   r   s   &&&&r    umul_with_overflowIRBuilder.umul_with_overflow	  r   r#   usubc                    R# )z[
Unsigned integer subtraction with overflow:
    name = {result, overflow bit} = lhs - rhs
Nr%   r   s   &&&&r    usub_with_overflowIRBuilder.usub_with_overflow  r   r#   c                8   \        VP                  \        P                  4      '       d>   \        P
                  ! VP                  RVP                  P                  ,          4      pM!\        P
                  ! VP                  R4      pV P                  WVR7      # )z/
Bitwise integer complement:
    name = ~value
r@   )r6  )rA   r   r   
VectorTyper   Constantcountr  )r   valuer   r9   s   &&& r    not_IRBuilder.not_  se    
 ejj%"2"233//%**eejj6F6F.FGC//%**b1Cxxx..r#   c                f    V P                  \        P                  ! VP                  ^ 4      WR7      # )z%
Integer negative:
    name = -value
r@   )r   r   r8  r   )r   r:  r   s   &&&r    negIRBuilder.neg&  s&    
 xx

A6xIIr#   fnegc                    R# )z*
Floating-point negative:
    name = -arg
Nr%   )r   r   r   r   s   &&&&r    r@  IRBuilder.fneg-  r   r#   c                     \         V,          pTR9  d	   Y,           p\        P                  ! T P
                  YcYER7      pT P                  T4       T#   \         d    \        R T: R24      hi ; i)zinvalid comparison z	 for icmpr@   )r
   r   )_CMP_MAPKeyErrorr7   r   	ICMPInstrr   r   )r   prefixcmpopr8   r9   r   opr   s   &&&&&&  r    _icmpIRBuilder._icmp8  sl    	J%B $B&&tzz2CKU  	JHII	Js   A A0c                (    V P                  RWW44      # )zl
Signed integer comparison:
    name = lhs <cmpop> rhs

where cmpop can be '==', '!=', '<', '<=', '>', '>='
srJ  r   rH  r8   r9   r   s   &&&&&r    icmp_signedIRBuilder.icmp_signedC       zz#u355r#   c                (    V P                  RWW44      # )z{
Unsigned integer (or pointer) comparison:
    name = lhs <cmpop> rhs

where cmpop can be '==', '!=', '<', '<=', '>', '>='
urN  rO  s   &&&&&r    icmp_unsignedIRBuilder.icmp_unsignedL  rR  r#   c           	         V\         9   d   R\         V,          ,           pMTp\        P                  ! V P                  WbW4VR7      pV P	                  V4       V# )z
Floating-point ordered comparison:
    name = lhs <cmpop> rhs

where cmpop can be '==', '!=', '<', '<=', '>', '>=', 'ord', 'uno'
or   r   rD  r   	FCMPInstrr   r   r   rH  r8   r9   r   r   rI  r   s   &&&&&&  r    fcmp_orderedIRBuilder.fcmp_orderedU  M     Hx&BB&&JJu>Ur#   c           	         V\         9   d   R\         V,          ,           pMTp\        P                  ! V P                  WbW4VR7      pV P	                  V4       V# )z
Floating-point unordered comparison:
    name = lhs <cmpop> rhs

where cmpop can be '==', '!=', '<', '<=', '>', '>=', 'ord', 'uno'
rT  rY  rZ  r\  s   &&&&&&  r    fcmp_unorderedIRBuilder.fcmp_unorderede  r_  r#   c           	     p    \         P                  ! V P                  WW4VR7      pV P                  V4       V# )z6
Ternary select operator:
    name = cond ? lhs : rhs
rY  )r   SelectInstrr   r   )r   condr8   r9   r   r   r   s   &&&&&& r    selectIRBuilder.selectu  s2    
 ((T/46Ur#   truncc                    R# )zG
Truncating integer downcast to a smaller type:
    name = (typ) value
Nr%   r   r:  r   r   s   &&&&r    rh  IRBuilder.trunc  r   r#   zextc                    R# )zH
Zero-extending integer upcast to a larger type:
    name = (typ) value
Nr%   rj  s   &&&&r    rl  IRBuilder.zext  r   r#   sextc                    R# )zH
Sign-extending integer upcast to a larger type:
    name = (typ) value
Nr%   rj  s   &&&&r    ro  IRBuilder.sext  r   r#   fptruncc                    R# )zH
Floating-point downcast to a less precise type:
    name = (typ) value
Nr%   rj  s   &&&&r    rr  IRBuilder.fptrunc  r   r#   fpextc                    R# )zF
Floating-point upcast to a more precise type:
    name = (typ) value
Nr%   rj  s   &&&&r    ru  IRBuilder.fpext  r   r#   bitcastc                    R# )zB
Pointer cast to a different pointer type:
    name = (typ) value
Nr%   rj  s   &&&&r    rx  IRBuilder.bitcast  r   r#   addrspacecastc                    R# )zC
Pointer cast to a different address space:
    name = (typ) value
Nr%   rj  s   &&&&r    r{  IRBuilder.addrspacecast  r   r#   fptouic                    R# )zD
Convert floating-point to unsigned integer:
    name = (typ) value
Nr%   rj  s   &&&&r    r~  IRBuilder.fptoui  r   r#   uitofpc                    R# )zD
Convert unsigned integer to floating-point:
    name = (typ) value
Nr%   rj  s   &&&&r    r  IRBuilder.uitofp  r   r#   fptosic                    R# )zB
Convert floating-point to signed integer:
    name = (typ) value
Nr%   rj  s   &&&&r    r  IRBuilder.fptosi  r   r#   sitofpc                    R# )zB
Convert signed integer to floating-point:
    name = (typ) value
Nr%   rj  s   &&&&r    r  IRBuilder.sitofp  r   r#   ptrtointc                    R# )z1
Cast pointer to integer:
    name = (typ) value
Nr%   rj  s   &&&&r    r  IRBuilder.ptrtoint  r   r#   inttoptrc                    R# )z1
Cast integer to pointer:
    name = (typ) value
Nr%   rj  s   &&&&r    r  IRBuilder.inttoptr  r   r#   c                   Vf   M\        V\        P                  \        P                  34      '       d.   \        VP                  \
        P                  4      '       g   Q hM+\        P                  ! \
        P                  ! ^ 4      V4      p\        P                  ! V P                  WV4      pV P                  V4       V# )zT
Stack-allocate a slot for *size* elements of the given type.
(default one element)
)rA   r   Valuer8  r   r   rB   r   AllocaInstrr   r   )r   r   sizer   als   &&&& r    allocaIRBuilder.alloca  s    
 <v||V__=>>dii7777 ??5==#4d;D%%djj#TBR	r#   c                   \        VP                  \        P                  4      '       g)   Rp\	        WQP                  \        V4      3,          4      h\        P                  ! V P                  WVR7      pW6n	        V P                  V4       V# zN
Load value from pointer, with optional guaranteed alignment:
    name = *ptr
z5cannot load from value of type %s (%r): not a pointer)r   )rA   r   r   PointerTyperC   strr   	LoadInstrr   alignr   )r   ptrr   r  r   msglds   &&&&&  r    loadIRBuilder.load  si    
 #((E$5$566ICC88SX"6677##DJJsCR	r#   c                   \        VP                  \        P                  4      '       g)   Rp\	        WBP                  \        V4      3,          4      hVP                  P                  '       gN   VP                  P                  VP                  8w  d)   \	        RVP                  : RVP                  : R24      h\        P                  ! V P                  W4      pW5n        V P                  V4       V# zM
Store value to pointer, with optional guaranteed alignment:
    *ptr = name
z4cannot store to value of type %s (%r): not a pointerzcannot store z to z: mismatching types)rA   r   r   r  rC   r  	is_opaquepointeer   
StoreInstrr   r  r   )r   r:  r  r  r  sts   &&&&  r    storeIRBuilder.store  s    
 #((E$5$566HCC88SX"6677xx!!!chh&6&6%**&D$zz3885 6 6$$TZZ<R	r#   c           	        \        VP                  \        P                  4      '       g)   Rp\	        WaP                  \        V4      3,          4      h\        P                  ! V P                  WW4VR7      pV P                  V4       V# r  )
rA   r   r   r  rC   r  r   LoadAtomicInstrr   r   )r   r  orderingr  r   r   r  r  s   &&&&&&  r    load_atomicIRBuilder.load_atomic  si    
 #((E$5$566ICC88SX"6677))JJu=R	r#   c                   \        VP                  \        P                  4      '       g)   Rp\	        WRP                  \        V4      3,          4      hVP                  P                  VP                  8w  d)   \	        RVP                  : RVP                  : R24      h\        P                  ! V P                  WW44      pV P                  V4       V# r  )rA   r   r   r  rC   r  r  r   StoreAtomicInstrr   r   )r   r:  r  r  r  r  r  s   &&&&&  r    store_atomicIRBuilder.store_atomic  s    
 #((E$5$566HCC88SX"667788uzz)$zz3885 6 6**JJH5R	r#   c                l    \         P                  ! V P                  RW4      pV P                  V4       V# )z6
Create a switch-case with a single *default* target.
switch)r   SwitchInstrr   r   )r   r:  defaultswts   &&& r    r  IRBuilder.switch2  s/     &&tzz8ULS!
r#   c                n    \         P                  ! V P                  RV.4      pV P                  V4       V# )z#
Unconditional branch to *target*.
r   r   Branchr   r   )r   targetr   s   && r    r   IRBuilder.branch:  s1       TF8<R 	r#   c                p    \         P                  ! V P                  RWV.4      pV P                  V4       V# )zF
Conditional branch to *truebr* if *cond* is true, else to *falsebr*.
r   )r   ConditionalBranchr   r   )r   re  truebrfalsebrr   s   &&&& r    r   IRBuilder.cbranchB  s8     ++DJJ-17,CER 	r#   c                l    \         P                  ! V P                  RV4      pV P                  V4       V# )z#
Indirect branch to target *addr*.

indirectbr)r   IndirectBranchr   r   )r   addrr   s   && r    branch_indirectIRBuilder.branch_indirectK  s/     ((\4HR 	r#   c                b    V P                  \        P                  ! V P                  R4      4      # )z'
Return from function without a value.
zret voidr   r   Retr   r   s   &r    ret_voidIRBuilder.ret_voidS  s+     ##TZZ46 	6r#   c                d    V P                  \        P                  ! V P                  RV4      4      # )z.
Return from function with the given *value*.
rM   r  )r   r:  s   &&r    rM   IRBuilder.retZ  s-     ##TZZ68 	8r#   c                n    \         P                  ! V P                  RV.4      pV P                  V4       V# )z 
Resume an in-flight exception.
resumer  )r   
landingpadr   s   && r    r  IRBuilder.resumea  s1       X
|DR 	r#   c	                t    \         P                  ! V P                  WVWEVWxR7	      p	V P                  V	4       V	# )z8
Call function *fn* with *args*:
    name = fn(args...)
)r   cconvtailfastmathattrs	arg_attrs)r   	CallInstrr   r   )
r   r*   argsr   r  r  r  r  r  insts
   &&&&&&&&& r    rH   IRBuilder.callk  s:     %%djj",1x,1H 	Tr#   c                T    \         P                  ! WW54      pV P                  W$V4      # )z
Inline assembler.
)r   	InlineAsmrH   )r   ftypeasm
constraintr  side_effectr   s   &&&&&&&r    r  IRBuilder.asmw  s'     $$UIyyD))r#   c                j    \         P                  ! V. 4      pV P                  VRRV,          . RV4      # )zW
Load a register value into an LLVM value.
  Example: v = load_reg(IntType(32), "eax")
r   z={%s}F)r   rE   r  )r   reg_typereg_namer   r  s   &&&& r    load_regIRBuilder.load_reg~  s4    
 ""8R0xxr7X#5r5$GGr#   c                    \         P                  ! \         P                  ! 4       V.4      pV P                  VRRV,          V.RV4      # )zs
Store an LLVM value inside a register
Example:
  store_reg(Constant(IntType(32), 0xAAAAAAAA), IntType(32), "eax")
r   z{%s}T)r   rE   VoidTyper  )r   r:  r  r  r   r  s   &&&&& r    	store_regIRBuilder.store_reg  s?     ""5>>#3hZ@xxr6H#4ugtTJJr#   c
                v    \         P                  ! V P                  WVWEVWxV	R 7
      p
V P                  V
4       V
# ))r   r  r  r  r  )r   InvokeInstrr   r   )r   r*   r  	normal_to	unwind_tor   r  r  r  r  r  s   &&&&&&&&&& r    invokeIRBuilder.invoke  s<    ''

Bi(1E192;= 	T"r#   c           	     p    \         P                  ! V P                  WW4VR7      pV P                  V4       V# )zW
Compute effective address (getelementptr):
    name = getelementptr ptr, <indices...>
)inboundsr   source_etype)r   GEPInstrr   r   )r   r  indicesr  r   r  r   s   &&&&&& r    gepIRBuilder.gep  s6    
 %%djj#/73?A 	Ur#   c                n    \         P                  ! V P                  WVR7      pV P                  V4       V# )z$
Returns the value at position idx.
r@   )r   ExtractElementr   r   )r   vectorr   r   r   s   &&&& r    extract_elementIRBuilder.extract_element  s-     ++DJJ$OUr#   c                p    \         P                  ! V P                  WVVR7      pV P                  V4       V# )z}
Returns vector with vector[idx] replaced by value.
The result is undefined if the idx is larger or equal the vector length.
r@   )r   InsertElementr   r   )r   r  r:  r   r   r   s   &&&&& r    insert_elementIRBuilder.insert_element  s2    
 **4::vc046Ur#   c                p    \         P                  ! V P                  WVVR7      pV P                  V4       V# )z
Constructs a permutation of elements from *vector1* and *vector2*.
Returns a new vector in the same length of *mask*.

* *vector1* and *vector2* must have the same element type.
* *mask* must be a constant vector of integer types.
r@   )r   ShuffleVectorr   r   )r   vector1vector2maskr   r   s   &&&&& r    shuffle_vectorIRBuilder.shuffle_vector  s2     **4::w046Ur#   c                    \        V\        \        34      '       g   V.p\        P                  ! V P
                  WVR7      pV P                  V4       V# )z-
Extract member number *idx* from aggregate.
r@   )rA   tuplelistr   ExtractValuer   r   )r   aggr   r   r   s   &&&& r    extract_valueIRBuilder.extract_value  sE     #t}--%C))$**cTJUr#   c                    \        V\        \        34      '       g   V.p\        P                  ! V P
                  WW4R7      pV P                  V4       V# )z9
Insert *value* into member number *idx* from aggregate.
r@   )rA   r  r  r   InsertValuer   r   )r   r  r:  r   r   r   s   &&&&& r    insert_valueIRBuilder.insert_value  sE     #t}--%C((SPUr#   c                n    \         P                  ! V P                  WVR 7      pV P                  V4       V# )rY  )r   PhiInstrr   r   )r   r   r   r   r  s   &&&& r    phiIRBuilder.phi  s+    $$TZZuMTr#   c                h    \         P                  ! V P                  4      pV P                  V4       V# r   )r   Unreachabler   r   )r   r  s   & r    unreachableIRBuilder.unreachable  s)    ''

3T"r#   c           	     p    \         P                  ! V P                  WW4VR 7      pV P                  V4       V# )r@   )r   	AtomicRMWr   r   )r   rI  r  r   r  r   r  s   &&&&&& r    
atomic_rmwIRBuilder.atomic_rmw  s0    %%JJT;Tr#   c           
         Vf   TMTp\         P                  ! V P                  WW4WVR7      pV P                  V4       V# )z
Atomic compared-and-set:
    atomic {
        old = *ptr
        success = (old == cmp)
        if (success)
            *ptr = val
        }
    name = { old, success }

If failordering is `None`, the value of `ordering` is used.
r@   )r   CmpXchgr   r   )r   r  cmpr   r  failorderingr   r  s   &&&&&&& r    cmpxchgIRBuilder.cmpxchg  s>     $0#7x\##DJJ#$0=Tr#   c                l    \         P                  ! V P                  WV4      pV P                  V4       V# r   )r   LandingPadInstrr   r   )r   r   r   cleanupr  s   &&&& r    r  IRBuilder.landingpad  s+    ++DJJ7KTr#   c                \    V P                   P                  R4      pV P                  W!.4      # )z/
Optimizer hint: assume *cond* is always true.
zllvm.assume)rD   rG   rH   )r   re  r*   s   && r    assumeIRBuilder.assume  s)     [[**=9yyV$$r#   c                n    \         P                  ! V P                  WVR7      pV P                  V4       V# )z
Add a memory barrier, preventing certain reorderings of load and/or
store accesses with
respect to other processors and devices.
r@   )r   Fencer   r   )r   r  targetscoper   r  s   &&&& r    fenceIRBuilder.fence  s-     !!$**h$OTr#   c                j    \         P                  ! V P                  V4      pV P                  V4       V# )z
Puts a single-line comment into the generated IR. This will be ignored
by LLVM, but can be useful for debugging the output of a compiler. Adds
a comment to the source file.

* *text* is a string that does not contain new line characters.
)r   Commentr   r   )r   textr  s   && r    commentIRBuilder.comment  s+     ##DJJ5Tr#   z
llvm.bswapc                    R# )z^
Used to byte swap integer values with an even number of bytes (positive
multiple of 16 bits)
Nr%   r   re  s   &&r    bswapIRBuilder.bswap%  r   r#   zllvm.bitreversec                    R# )zX
Reverse the bitpattern of an integer value; for example 0b10110110
becomes 0b01101101.
Nr%   r:  s   &&r    
bitreverseIRBuilder.bitreverse,  r   r#   z
llvm.ctpopc                    R# )z+
Counts the number of bits set in a value.
Nr%   r:  s   &&r    ctpopIRBuilder.ctpop3  r   r#   z	llvm.ctlzc                    R# )zh
Counts leading zero bits in *value*. Boolean *flag* indicates whether
the result is defined for ``0``.
Nr%   r   re  rp   s   &&&r    ctlzIRBuilder.ctlz9  r   r#   z	llvm.cttzc                    R# )zi
Counts trailing zero bits in *value*. Boolean *flag* indicates whether
the result is defined for ``0``.
Nr%   rD  s   &&&r    cttzIRBuilder.cttz@  r   r#   zllvm.fmac                    R# )z+
Perform the fused multiply-add operation.
Nr%   )r   rx   ry   rz   s   &&&&r    fmaIRBuilder.fmaG  r   r#   c                   V'       g   \        R4      h\        V\        P                  \        P                  34      '       g   \        RV,          4      h\        VP
                  \        P                  4      '       d   VP
                  P                  ^8X  g   \        RVP
                  ,          4      hRpV P                  P                  WB.4      pV P                  WQ.V4      # )z*
Convert from an i16 to the given FP type
zexpected a float return typerf   zexpected an i16 type, got %szllvm.convert.from.fp16)rC   rA   r   rg   rh   r   rB   ro   rD   rG   rH   )r   rx   tor   r   r*   s   &&&&  r    convert_from_fp16IRBuilder.convert_from_fp16M  s     :;;"u0@0@ABB;b@AA1665==11affllb6H:QVVCDD)[[**648yyS$''r#   zllvm.convert.to.fp16c                    R# )z'
Convert the given FP number to an i16
Nr%   )r   rx   s   &&r    convert_to_fp16IRBuilder.convert_to_fp16\  r   r#   )r   r   r   r   rO   r$   )Nr   )r   NN)r   N)r   NFr%   r%   N)r   Nr%   r%   N)Fr   N)r   F)x__name__
__module____qualname____firstlineno__r   propertyr   r   r   rD   r   r   r   r   r   r   
contextlibcontextmanagerr   r   r   r   r   r   r   r<   r   r   r   r   r   r   r   r   r   r   r  r  r	  r  r  r  r  r  rR   r  r#  r'  r+  r/  r3  r;  r>  r/   r@  rJ  rP  rU  r]  ra  rf  r   rh  rl  ro  rr  ru  rx  r{  r~  r  r  r  r  r  r  r  r  r  r  r  r   r   r  r  rM   r  rH   r  r  r  r  r  r  r  r	  r  r  r  r  r   r&  r  r-  r2  r7  rb   r;  r>  rA  rs   rE  rH  r}   rK  rO  rk   rR  __static_attributes____classdictcell__)__classdict__s   @r    r   r      s    #
   K! ! ( (=A/6 , ,        $ $, $ $< E]  F^  F^  E]  F^  E]  F^  E]  F^  F^  F^  F^  F^  F^  F^  D\  E]  E]  &! " &! " &! " &! " &! " &! "	/J 6] 	66   W  V_  V_  Y  W  Y  _  X  X  X  X  Z  Z $ (68
*HK	
&
%
 ,' ( +, - ,' (
  , -  , - j! "
( 23 4r#   r   )rY  r'   llvmlite.irr   r   r   rD  Instructionr/   r<   rR   rY   rb   rk   rs   r}   	CastInstrr   r   objectr   r%   r#   r    <module>rb     s      3 3 $$$$ #.. 
 $//   &2%=%= 2 $// 
 (0 %..  c cr#   