§
    ‚Ûg»; ã                   óÖ  — d dl Z d dlZd dl mZmZmZ d dlmZ d dlZd dlZd dl	Z	d dl
Z
d dlZd dlZd dlZd dlZd dlmZ d dlmZ d dlmZ d dlmZ d dlmZ d d	lmZ  e
j        ¦   «         d
k    r ej        d¦  «         d„ ZdZdZdZ dZ!dZ"dZ# e
j$        ¦   «         dk    re# %                    dd¦  «        Z#dZ&dZ'dZ(dZ)dZ*dZ+dZ,dZ-dZ.dZ/d Z0d!Z1d"Z2g d#¢Z3g d$¢Z4g d%¢Z5d&Z6d'Z7d(Z8d)Z9 G d*„ d+e¦  «        Z: G d,„ d-e:¦  «        Z; G d.„ d/e:¦  «        Z< G d0„ d1e:¦  «        Z= G d2„ d3e:¦  «        Z> G d4„ d5e?¦  «        Z@ G d6„ d7e@¦  «        ZA G d8„ d9e:eA¦  «        ZB ejC         e
j        ¦   «          D                    d:¦  «        d;¦  «         G d<„ d=e:¦  «        ¦   «         ZE G d>„ d?e:¦  «        ZF G d@„ dAe:¦  «        ZG G dB„ dCe:¦  «        ZH G dD„ dEe:¦  «        ZI G dF„ dGe:¦  «        ZJ G dH„ dIe?¦  «        ZK G dJ„ dKe:eK¦  «        ZL G dL„ dMe:eK¦  «        ZM G dN„ dOe:eK¦  «        ZN G dP„ dQe:¦  «        ZO G dR„ dSe:¦  «        ZP G dT„ dUe:¦  «        ZQ G dV„ dWeB¦  «        ZR G dX„ dYe:¦  «        ZS ejC         e
j        ¦   «          D                    d:¦  «        dZ¦  «         G d[„ d\e:¦  «        ¦   «         ZT G d]„ d^e:¦  «        ZU G d_„ d`e:¦  «        ZV G da„ dbe:¦  «        ZWeXdck    r ejY        ¦   «          dS dS )dé    N)Ú	CFUNCTYPEÚc_intÚc_int32)Úfind_library)Úcontextmanager)Úmkstemp)Úir)Úbinding)Úffi)ÚTestCaseÚarmv7lzlibgcc_s.so.1c                  ót  — t          j        t           j        ¦  «        } 	 t          j        t           j        d¦  «         	 t          j        t           j        | ¦  «         dS # t           j        $ r# Y t          j        t           j        | ¦  «         dS w xY w# t          j        t           j        | ¦  «         w xY w)NÚde_DEFT)ÚlocaleÚ	setlocaleÚLC_ALLÚError)Úcurs    úQ/granary/edev/quantum/lib/python3.11/site-packages/llvmlite/tests/test_binding.pyÚno_de_localer      s«   € Ý
Ô
�6œ=Ñ
)Ô
)€Cð-ÝÔ�œ¨Ñ0Ô0Ð0ð åÔ�œ¨Ñ,Ô,Ð,Ð,Ð,øõ Œ<ð ð ð Øõ 	Ô�œ¨Ñ,Ô,Ð,Ð,Ð,ðøøøøõ
 	Ô�œ¨Ñ,Ô,Ð,Ð,øøøs#    A! Á!BÁ0B ÂBÂB Â!B7a±  
    ; ModuleID = '<string>'
    source_filename = "asm_sum.c"
    target triple = "{triple}"
    %struct.glob_type = type {{ i64, [2 x i64]}}

    @glob = global i32 0
    @glob_b = global i8 0
    @glob_f = global float 1.5
    @glob_struct = global %struct.glob_type {{i64 0, [2 x i64] [i64 0, i64 0]}}

    define i32 @sum(i32 %.1, i32 %.2) {{
      %.3 = add i32 %.1, %.2
      %.4 = add i32 0, %.3
      ret i32 %.4
    }}
    z 
    ; ModuleID = '<string>'
    target triple = "{triple}"

    define i32 @sum(i32 %.1, i32 %.2) {{
      %.3 = add i32 %.1, %.2
      ret i32 %.3
    }}
    z×
    ; ModuleID = '<string>'
    target triple = "{triple}"

    define i64 @sum(i64 %.1, i64 %.2) {{
      %.3 = add i64 %.1, %.2
      %.4 = add i64 5, %.3
      %.5 = add i64 -5, %.4
      ret i64 %.5
    }}
    z½
    ; ModuleID = '<string>'
    target triple = "{triple}"
    @mul_glob = global i32 0

    define i32 @mul(i32 %.1, i32 %.2) {{
      %.3 = mul i32 %.1, %.2
      ret i32 %.3
    }}
    a  
    ; ModuleID = '<string>'
    target triple = "{triple}"
    @mul_glob = global i32 0

    declare i32 @sum(i32, i32)
    define i32 @square_sum(i32 %.1, i32 %.2) {{
      %.3 = call i32 @sum(i32 %.1, i32 %.2)
      %.4 = mul i32 %.3, %.3
      ret i32 %.4
    }}
    zÏ
    ; ModuleID = '<string>'
    target triple = "{triple}"

    declare i8* @Py_GetVersion()

    define void @getversion(i32 %.1, i32 %.2) {{
      %1 = call i8* @Py_GetVersion()
      ret void
    }}
    ÚPyPyÚPy_GetVersionÚPyPy_GetVersionz¡
    ; ModuleID = '<string>'
    target triple = "{triple}"

    define i32 @sum(i32 %.1, i32 %.2) {{
      %.3 = fadd i32 %.1, %.2
      ret i32 %.3
    }}
    z�
    ; ModuleID = '<string>'
    target triple = "{triple}"

    define void @sum() {{
      %.bug = add i32 1, %.bug
      ret void
    }}
    zh
    ; ModuleID = '<string>'
    target triple = "{triple}"

    declare i32 @sum(i32 %.1, i32 %.2)
    zÔ
    ; ModuleID = '<string>'
    target triple = "{triple}"

    define void @foo() {{
      %const = fadd fp128 0xLF3CB1CCF26FBC178452FB4EC7F91DEAD, 0xL00000000000000000000000000000001
      ret void
    }}
    z–
    ; ModuleID = '<string>'
    target triple = "{triple}"

    define void @foo() {{
      %const = fadd double 0.0, 3.14
      ret void
    }}
    zœ
    ; ModuleID = '<string>'
    target triple = "{triple}"

    define void @foo() {{
      call void asm sideeffect "nop", ""()
      ret void
    }}
    a�  
    ; ModuleID = '<string>'
    target triple = "{triple}"

    define void @inlineme() {{
        ret void
    }}

    define i32 @caller(i32 %.1, i32 %.2) {{
    entry:
      %stack = alloca i32
      store i32 %.1, i32* %stack
      br label %main
    main:
      %loaded = load i32, i32* %stack
      %.3 = add i32 %loaded, %.2
      %.4 = add i32 0, %.3
      call void @inlineme()
      ret i32 %.4
    }}
aÉ  
; ModuleID = 'test.c'
source_filename = "test.c"
target triple = "{triple}"

; Function Attrs: noinline nounwind optnone ssp uwtable
define void @inlineme() noinline !dbg !15 {{
  ret void, !dbg !18
}}

; Function Attrs: noinline nounwind optnone ssp uwtable
define i32 @foo(i32 %0, i32 %1) !dbg !19 {{
  %3 = alloca i32, align 4
  %4 = alloca i32, align 4
  store i32 %0, i32* %3, align 4
  call void @llvm.dbg.declare(metadata i32* %3, metadata !23, metadata !DIExpression()), !dbg !24
  store i32 %1, i32* %4, align 4
  call void @llvm.dbg.declare(metadata i32* %4, metadata !25, metadata !DIExpression()), !dbg !26
  call void @inlineme(), !dbg !27
  %5 = load i32, i32* %3, align 4, !dbg !28
  %6 = load i32, i32* %4, align 4, !dbg !29
  %7 = add nsw i32 %5, %6, !dbg !30
  ret i32 %7, !dbg !31
}}

; Function Attrs: nofree nosync nounwind readnone speculatable willreturn
declare void @llvm.dbg.declare(metadata, metadata, metadata) #1

attributes #1 = {{ nofree nosync nounwind readnone speculatable willreturn }}

!llvm.module.flags = !{{!1, !2, !3, !4, !5, !6, !7, !8, !9, !10}}
!llvm.dbg.cu = !{{!11}}
!llvm.ident = !{{!14}}

!0 = !{{i32 2, !"SDK Version", [2 x i32] [i32 12, i32 3]}}
!1 = !{{i32 7, !"Dwarf Version", i32 4}}
!2 = !{{i32 2, !"Debug Info Version", i32 3}}
!3 = !{{i32 1, !"wchar_size", i32 4}}
!4 = !{{i32 1, !"branch-target-enforcement", i32 0}}
!5 = !{{i32 1, !"sign-return-address", i32 0}}
!6 = !{{i32 1, !"sign-return-address-all", i32 0}}
!7 = !{{i32 1, !"sign-return-address-with-bkey", i32 0}}
!8 = !{{i32 7, !"PIC Level", i32 2}}
!9 = !{{i32 7, !"uwtable", i32 1}}
!10 = !{{i32 7, !"frame-pointer", i32 1}}
!11 = distinct !DICompileUnit(language: DW_LANG_C99, file: !12, producer: "Apple clang version 13.1.6 (clang-1316.0.21.2.3)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !13, splitDebugInlining: false, nameTableKind: None, sysroot: "/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk", sdk: "MacOSX.sdk")
!12 = !DIFile(filename: "test.c", directory: "/")
!13 = !{{}}
!14 = !{{!"Apple clang version 13.1.6 (clang-1316.0.21.2.3)"}}
!15 = distinct !DISubprogram(name: "inlineme", scope: !12, file: !12, line: 1, type: !16, scopeLine: 1, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition, unit: !11, retainedNodes: !13)
!16 = !DISubroutineType(types: !17)
!17 = !{{null}}
!18 = !DILocation(line: 1, column: 22, scope: !15)
!19 = distinct !DISubprogram(name: "foo", scope: !12, file: !12, line: 3, type: !20, scopeLine: 3, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition, unit: !11, retainedNodes: !13)
!20 = !DISubroutineType(types: !21)
!21 = !{{!22, !22, !22}}
!22 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed)
!23 = !DILocalVariable(name: "a", arg: 1, scope: !19, file: !12, line: 3, type: !22)
!24 = !DILocation(line: 3, column: 13, scope: !19)
!25 = !DILocalVariable(name: "b", arg: 2, scope: !19, file: !12, line: 3, type: !22)
!26 = !DILocation(line: 3, column: 20, scope: !19)
!27 = !DILocation(line: 4, column: 5, scope: !19)
!28 = !DILocation(line: 5, column: 12, scope: !19)
!29 = !DILocation(line: 5, column: 16, scope: !19)
!30 = !DILocation(line: 5, column: 14, scope: !19)
!31 = !DILocation(line: 5, column: 5, scope: !19)
aN  
; ModuleID = "<string>"
target triple = "{triple}"

define double @licm(i32 %0) {{
  %2 = alloca i32, align 4
  %3 = alloca double, align 8
  %4 = alloca i32, align 4
  %5 = alloca double, align 8
  store i32 %0, i32* %2, align 4
  store double 0.000000e+00, double* %3, align 8
  store i32 0, i32* %4, align 4
  br label %6

6:                                                ; preds = %14, %1
  %7 = load i32, i32* %4, align 4
  %8 = load i32, i32* %2, align 4
  %9 = icmp slt i32 %7, %8
  br i1 %9, label %10, label %17

10:                                               ; preds = %6
  store double 7.000000e+00, double* %5, align 8
  %11 = load double, double* %5, align 8
  %12 = load double, double* %3, align 8
  %13 = fadd double %12, %11
  store double %13, double* %3, align 8
  br label %14

14:                                               ; preds = %10
  %15 = load i32, i32* %4, align 4
  %16 = add nsw i32 %15, 1
  store i32 %16, i32* %4, align 4
  br label %6

17:                                               ; preds = %6
  %18 = load double, double* %3, align 8
  ret double %18
}}
a€  
    ; ModuleID = "<string>"
    target triple = "{triple}"

    @A = global i32 undef

    define void @ctor_A()
    {{
      store i32 10, i32* @A
      ret void
    }}

    define void @dtor_A()
    {{
      store i32 20, i32* @A
      ret void
    }}

    define i32 @foo()
    {{
      %.2 = load i32, i32* @A
      %.3 = add i32 %.2, 2
      ret i32 %.3
    }}

    @llvm.global_ctors = appending global [1 x {{i32, void ()*, i8*}}] [{{i32, void ()*, i8*}} {{i32 0, void ()* @ctor_A, i8* null}}]
    @llvm.global_dtors = appending global [1 x {{i32, void ()*, i8*}}] [{{i32, void ()*, i8*}} {{i32 0, void ()* @dtor_A, i8* null}}]
    aƒ  
    ; ModuleID = "<string>"
    target triple = "{triple}"

    @A = external global i32

    define void @ctor_A()
    {{
      store i32 10, i32* @A
      ret void
    }}

    define void @dtor_A()
    {{
      store i32 20, i32* @A
      ret void
    }}

    define i32 @foo()
    {{
      %.2 = load i32, i32* @A
      %.3 = add i32 %.2, 2
      ret i32 %.3
    }}

    @llvm.global_ctors = appending global [1 x {{i32, void ()*, i8*}}] [{{i32, void ()*, i8*}} {{i32 0, void ()* @ctor_A, i8* null}}]
    @llvm.global_dtors = appending global [1 x {{i32, void ()*, i8*}}] [{{i32, void ()*, i8*}} {{i32 0, void ()* @dtor_A, i8* null}}]
    z…; ModuleID = ""
target triple = "unknown-unknown-unknown"
target datalayout = ""

define i32 @"foo"()
{
"<>!*''#":
  ret i32 12345
}
zÆ
    ; ModuleID = '<string>'
    target triple = "{triple}"

    define void @foo(i64* %.1) {{
      ret void
    }}

    define void @bar() {{
      call void @foo(i64* null)
      ret void
    }}
)úaddi	sp, sp, -16zsw	a1, 8(sp)zsw	a2, 12(sp)úfld	ft0, 8(sp)zfmv.w.x	ft1, a0zfcvt.d.s	ft1, ft1úfadd.d	ft0, ft1, ft0úfsd	ft0, 8(sp)úlw	a0, 8(sp)úlw	a1, 12(sp)úaddi	sp, sp, 16Úret)r   zsw	a0, 8(sp)zsw	a1, 12(sp)r   zfcvt.d.s	ft1, fa0r   r   r   r   r    r!   )zfcvt.d.s	ft0, fa0zfadd.d	fa0, ft0, fa1r!   zc
declare void @a_readonly_func(i8 *) readonly

declare i8* @a_arg0_return_func(i8* returned, i32*)
Á@  7f454c4602010100000000000000000001003e000100000000000000000000000000000000000000e0000000000000000000000040000000000040000500010048c1e2204809c24889d048c1c03d4831d048b90120000480001070480fafc8000000000000000000000000000000000000000000000000002f0000000400f1ff00000000000000000000000000000000070000001200020000000000000000001f00000000000000002e74657874005f5f617279626f002e6e6f74652e474e552d737461636b002e737472746162002e73796d746162003c737472696e673e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001f0000000300000000000000000000000000000000000000a800000000000000380000000000000000000000000000000100000000000000000000000000000001000000010000000600000000000000000000000000000040000000000000001f000000000000000000000000000000100000000000000000000000000000000f00000001000000000000000000000000000000000000005f00000000000000000000000000000000000000000000000100000000000000000000000000000027000000020000000000000000000000000000000000000060000000000000004800000000000000010000000200000008000000000000001800000000000000Ú>48c1e2204809c24889d048c1c03d4831d048b90120000480001070480fafc8ay  
; ModuleID = '<lambda>'
source_filename = "<string>"
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128"
target triple = "x86_64-pc-windows-msvc"

declare float @llvm.exp2.f32(float %casted)

define float @foo(i16 %arg) {
entry:
  %casted = sitofp i16 %arg to float
  %ret = call float @llvm.exp2.f32(float %casted)
  ret float %ret
}
c                   ó4   — e Zd Zd„ Zd„ Zedfd„Zdd„Zd„ ZdS )	ÚBaseTestc                 óò   — t          j        ¦   «          t          j        ¦   «          t          j        ¦   «          t	          j        ¦   «          t          j        d d …         | _        g t          j        d d …<   d S ©N)ÚllvmÚ
initializeÚinitialize_native_targetÚinitialize_native_asmprinterÚgcÚcollectÚgarbageÚold_garbage©Úselfs    r   ÚsetUpzBaseTest.setUpô  s^   € ÝŒÑÔÐÝÔ%Ñ'Ô'Ð'ÝÔ)Ñ+Ô+Ð+Ý
Œ
‰ŒˆÝœ: a a aœ=ˆÔØ�Œ
�1�1�1‰ˆˆó    c                 óp   — t          j        ¦   «          |                      t           j        g ¦  «         | `d S r'   )r,   r-   ÚassertEqualr.   r/   r0   s    r   ÚtearDownzBaseTest.tearDownü  s3   € õ 	Œ
‰ŒˆØ×Ò�œ RÑ(Ô(Ð(àÐÐÐr3   Nc                 ó~   — |                      t          j        ¦   «         ¬¦  «        }t          j        ||¦  «        }|S )N©Útriple)Úformatr(   Úget_default_tripleÚparse_assembly)r1   ÚasmÚcontextÚmods       r   ÚmodulezBaseTest.module  s5   € Ø�jŠj¥Ô 7Ñ 9Ô 9ˆjÑ:Ô:ˆÝÔ! # wÑ/Ô/ˆØˆ
r3   Úglobc                 óX   — |€|                       ¦   «         }|                     |¦  «        S r'   )r@   Úget_global_variable)r1   Únamer?   s      r   rA   zBaseTest.glob
  s(   € Øˆ;Ø—+’+‘-”-ˆCØ×&Ò& tÑ,Ô,Ð,r3   c                ój   — t           j                             ¦   «         }|                     |¬¦  «        S )N©Újit)r(   ÚTargetÚfrom_default_tripleÚcreate_target_machine)r1   rG   Útargets      r   Útarget_machinezBaseTest.target_machine  s,   € Ý”×0Ò0Ñ2Ô2ˆØ×+Ò+°Ð+Ñ4Ô4Ð4r3   )rA   N)	Ú__name__Ú
__module__Ú__qualname__r2   r6   Úasm_sumr@   rA   rL   © r3   r   r%   r%   ò  sp   € € € € € ðð ð ðð ð ð !¨$ð ð ð ð ð
-ð -ð -ð -ð
5ð 5ð 5ð 5ð 5r3   r%   c                   óÔ   — e Zd ZdZ ej        ej                             d¦  «        d¦  «         ej        e	j
                             d¦  «        d¦  «        d„ ¦   «         ¦   «         ZdS )ÚTestDependencieszB
    Test DLL dependencies are within a certain expected set.
    ÚlinuxzLinux-specific testÚLLVMLITE_DIST_TESTzDistribution-specific testc                 ó  — t           j        j        }t          j                             ¦   «         }d|d<   t          j        dd|gt          j        |¬¦  «        }| 	                    ¦   «         \  }}|  
                    d|j        ¦  «         t          j        d¦  «        }t          ¦   «         }|                     ¦   «                              ¦   «         D ]–}|                     ¦   «         }	|	r~|	d         dk    rr|	d	         }
|                     |
¦  «        }t'          |	¦  «        d
k    s|s|                      d|›�¦  «         |                     |                     d	¦  «        ¦  «         Œ—d|vsd|vr|                      d|›�¦  «         t          g d¢¦  «        }t/          j        ¦   «         dk    r|                     d¦  «         |D ]6}
|
                     d¦  «        s|
|vr|                      d|
›d|›�¦  «         Œ7d S )NÚCÚLANGÚobjdumpz-p)ÚstdoutÚenvr   z$^([-_a-zA-Z0-9]+)\.so(?:\.\d+){0,3}$ÚNEEDEDé   é   zinvalid NEEDED line: ÚlibcÚ
libpthreadz!failed parsing dependencies? got )	ÚlibrtÚlibdlr`   ÚlibzÚlibmÚlibgcc_sr_   zld-linuxÚld64r   Úlibtinfoz	ld-linux-zunexpected dependency z in )r   ÚlibÚ_nameÚosÚenvironÚcopyÚ
subprocessÚPopenÚPIPEÚcommunicater5   Ú
returncodeÚreÚcompileÚsetÚdecodeÚ
splitlinesÚsplitÚmatchÚlenÚfailÚaddÚgroupÚplatformÚpython_implementationÚ
startswith)r1   Úlib_pathr[   ÚpÚoutÚ_Úlib_patÚdepsÚlineÚpartsÚdepÚmÚalloweds                r   Ú
test_linuxzTestDependencies.test_linux  s	  € õ
 ”7”=ˆÝŒj�oŠoÑÔˆØˆˆF‰ÝÔ˜i¨¨xÐ8Ý$.¤O¸ð>ñ >ô >ˆà—’‘”‰ˆˆQØ×Ò˜˜AœLÑ)Ô)Ð)å”*ÐDÑEÔEˆÝ‰uŒuˆØ—J’J‘L”L×+Ò+Ñ-Ô-ð 	%ð 	%ˆDØ—J’J‘L”LˆEØð %˜˜qœ XÒ-Ð-Ø˜A”h�Ø—M’M #Ñ&Ô&�Ý�u‘:”: ’?�?¨!�?Ø—I’I�I¸4¸4ÐAÑBÔBÐBØ—’˜Ÿš ™œÑ$Ô$Ð$øà˜ÐÐ °TÐ!9Ð!9Ø�IŠIˆI¸t¸tÐEÑFÔFÐFåð ?ð ?ð ?ñ @ô @ˆåÔ)Ñ+Ô+¨vÒ5Ð5Ø�KŠK˜
Ñ#Ô#Ð#àð 	Jð 	JˆCØ—>’> +Ñ.Ô.ð J°3¸gÐ3EÐ3EØ—	’	�	¸c¸c¸cÀ4À4ÐHÑIÔIÐIøð	Jð 	Jr3   N)rM   rN   rO   Ú__doc__ÚunittestÚ
skipUnlessÚsysr}   r   rj   rk   Úgetr‹   rQ   r3   r   rS   rS     s•   € € € € € ðð ð €XÔ˜œ×0Ò0°Ñ9Ô9Ø.ñ0ô 0à€XÔ˜œŸšÐ(<Ñ=Ô=Ø5ñ7ô 7ðJð Jñ7ô 7ñ0ô 0ðJð Jð Jr3   rS   c                   óP   ‡ — e Zd ZdZdZˆ fd„Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zd
„ Zˆ xZS )ÚTestRISCVABIz`
    Test calling convention of floating point arguments of RISC-V
    using different ABI.
    zriscv32-unknown-linuxc                 ó”   •— t          ¦   «                              ¦   «          t          j        ¦   «          t          j        ¦   «          d S r'   )Úsuperr2   r(   Úinitialize_all_targetsÚinitialize_all_asmprinters)r1   Ú	__class__s    €r   r2   zTestRISCVABI.setUpE  s8   ø€ Ý‰Œ�Š‰ŒˆÝÔ#Ñ%Ô%Ð%ÝÔ'Ñ)Ô)Ð)Ð)Ð)r3   c                 óÒ   — 	 t           j                             | j        ¦  «         d S # t          $ r4}dt          |¦  «        v r|                      d¦  «         n|‚Y d }~d S d }~ww xY w)Nz/No available targets are compatible with triplez(RISCV target unsupported by linked LLVM.)r(   rH   Úfrom_tripler9   ÚRuntimeErrorÚstrÚskipTest)r1   Úes     r   Úcheck_riscv_targetzTestRISCVABI.check_riscv_targetJ  s…   € ð	ÝŒK×#Ò# D¤KÑ0Ô0Ð0Ð0Ð0øÝð 	ð 	ð 	Ø@ÅCÈÁFÄFÐJÐJØ—’ÐHÑIÔIÐIÐIà�ð JÐIÐIÐIÐIÐIøøøøð	øøøs   ‚$( ¨
A&²)A!Á!A&c                 ód   — t           j                             | j        ¦  «        } |j        di |¤ŽS )NrQ   )r(   rH   r™   r9   rJ   )r1   ÚkwargÚlltargets      r   Úriscv_target_machinez!TestRISCVABI.riscv_target_machineS  s2   € Ý”;×*Ò*¨4¬;Ñ7Ô7ˆØ-ˆxÔ-Ð6Ð6°Ð6Ð6Ð6r3   c                 ó$  — t          j        ¦   «         }t          j        ¦   «         }t          j        |||f¦  «        }t          j        ¦   «         }t          j        ||d¬¦  «        }|                     ¦   «         }t          j        |¦  «        }|j        \  }}	| 	                    ||¦  «        }
| 
                    |
|	¦  «        }|                     |¦  «         t          j        t          |¦  «        ¦  «        }|                     ¦   «          |S )NÚfpadd©rD   )r	   Ú
DoubleTypeÚ	FloatTypeÚFunctionTypeÚModuleÚFunctionÚappend_basic_blockÚ	IRBuilderÚargsÚfpextÚfaddr!   r(   r<   r›   Úverify)r1   Úf64Úf32Úfntyr@   ÚfuncÚblockÚbuilderÚaÚbÚarg0ÚresultÚllmods                r   Úfpadd_ll_modulezTestRISCVABI.fpadd_ll_moduleW  sÙ   € ÝŒm‰oŒoˆÝŒl‰nŒnˆÝŒ˜s S¨# JÑ/Ô/ˆÝ”‘”ˆÝŒ{˜6 4¨gÐ6Ñ6Ô6ˆØ×'Ò'Ñ)Ô)ˆÝ”,˜uÑ%Ô%ˆØŒy‰ˆˆ1Ø�}Š}˜Q Ñ$Ô$ˆØ—’˜d AÑ&Ô&ˆØ�Š�FÑÔÐåÔ#¥C¨¡K¤KÑ0Ô0ˆØ�Š‰ŒˆØˆr3   c                 óê   — g }|                      ¦   «         D ][}|                     ¦   «         }|                     d¦  «        s0|                     d¦  «        s|dk    s|                     |¦  «         Œ\|S )Nú.r¤   Ú )rv   Ústripr   Úappend)r1   r=   Úasm_listr†   Ús_lines        r   Úbreak_up_asmzTestRISCVABI.break_up_asmh  sy   € ØˆØ—N’NÑ$Ô$ð 	(ð 	(ˆDØ—Z’Z‘\”\ˆFØ×%Ò% cÑ*Ô*ð (¨f×.?Ò.?ÀÑ.HÔ.Hð (Ø ’|�|Ø—’ Ñ'Ô'Ð'øØˆr3   c                 ó  — |                       ¦   «          |                      ¦   «         }|                      d¬¦  «        }|                      |                      |                     |¦  «        ¦  «        t          ¦  «         d S )Nú+f,+d)Úfeatures)rž   r¼   r¢   r5   rÄ   Úemit_assemblyÚriscv_asm_ilp32©r1   r»   rK   s      r   Útest_rv32d_ilp32zTestRISCVABI.test_rv32d_ilp32q  s~   € Ø×ÒÑ!Ô!Ð!Ø×$Ò$Ñ&Ô&ˆØ×*Ò*°GÐ*Ñ<Ô<ˆØ×Ò˜×*Ò*¨6×+?Ò+?ÀÑ+FÔ+FÑGÔGÝ(ñ	*ô 	*ð 	*ð 	*ð 	*r3   c                 ó  — |                       ¦   «          |                      ¦   «         }|                      dd¬¦  «        }|                      |                      |                     |¦  «        ¦  «        t          ¦  «         d S )NrÆ   Úilp32f©rÇ   Úabiname)rž   r¼   r¢   r5   rÄ   rÈ   Úriscv_asm_ilp32frÊ   s      r   Útest_rv32d_ilp32fzTestRISCVABI.test_rv32d_ilp32fx  ó€   € Ø×ÒÑ!Ô!Ð!Ø×$Ò$Ñ&Ô&ˆØ×*Ò*°GÀXÐ*ÑNÔNˆØ×Ò˜×*Ò*¨6×+?Ò+?ÀÑ+FÔ+FÑGÔGÝ)ñ	+ô 	+ð 	+ð 	+ð 	+r3   c                 ó  — |                       ¦   «          |                      ¦   «         }|                      dd¬¦  «        }|                      |                      |                     |¦  «        ¦  «        t          ¦  «         d S )NrÆ   Úilp32drÎ   )rž   r¼   r¢   r5   rÄ   rÈ   Úriscv_asm_ilp32drÊ   s      r   Útest_rv32d_ilp32dzTestRISCVABI.test_rv32d_ilp32d  rÒ   r3   )rM   rN   rO   rŒ   r9   r2   rž   r¢   r¼   rÄ   rË   rÑ   rÖ   Ú__classcell__)r—   s   @r   r’   r’   >  s²   ø€ € € € € ðð ð %€Fð*ð *ð *ð *ð *ð
ð ð ð7ð 7ð 7ðð ð ð"ð ð ð*ð *ð *ð+ð +ð +ð+ð +ð +ð +ð +ð +ð +r3   r’   c                   óª   — e Zd ZdZd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zd
„ Zd„ Zd„ Zd„ Zd„ Z ej         e¦   «         d¦  «        d„ ¦   «         Zd„ ZdS )ÚTestMiscz7
    Test miscellaneous functions in llvm.binding.
    c                 ó:   — |                       t          ¦  «         d S r'   )r@   rP   r0   s    r   Útest_parse_assemblyzTestMisc.test_parse_assemblyŒ  s   € Ø�Š•GÑÔÐÐÐr3   c                 ó  — |                       t          ¦  «        5 }|                      t          ¦  «         d d d ¦  «         n# 1 swxY w Y   t	          |j        ¦  «        }|                      d|¦  «         |                      d|¦  «         d S )Nzparsing errorzinvalid operand type)ÚassertRaisesrš   r@   Úasm_parse_errorr›   Ú	exceptionÚassertIn)r1   ÚcmÚss      r   Útest_parse_assembly_errorz"TestMisc.test_parse_assembly_error�  s¸   € Ø×Ò�|Ñ,Ô,ð 	)°Ø�KŠK�Ñ(Ô(Ð(ð	)ð 	)ð 	)ñ 	)ô 	)ð 	)ð 	)ð 	)ð 	)ð 	)ð 	)øøøð 	)ð 	)ð 	)ð 	)å�”ÑÔˆØ�Š�o qÑ)Ô)Ð)Ø�ŠÐ,¨aÑ0Ô0Ð0Ð0Ð0s   ›AÁAÁ	Ac                 ó¾  — t          j        ¦   «         }t          j        t          j        d¦  «        g ¦  «        }t          j        ||d¦  «        }t          j        |                     d¬¦  «        ¦  «        }|                     t          j        t          j        d¦  «        d¦  «        ¦  «         t          |¦  «        }|  
                    |t          ¦  «         d S )Né    Úfooz<>!*''#r¥   i90  )r	   r©   r¨   ÚIntTyperª   r¬   r«   r!   ÚConstantr›   r5   Úasm_nonalphanum_blocklabel)r1   r?   ÚftÚfnÚbdr=   s         r   Útest_nonalphanum_block_namez$TestMisc.test_nonalphanum_block_name–  s§   € ÝŒi‰kŒkˆÝŒ_�RœZ¨™^œ^¨RÑ0Ô0ˆÝŒ[˜˜b %Ñ(Ô(ˆÝŒ\˜"×/Ò/°YÐ/Ñ?Ô?Ñ@Ô@ˆØ
�Š�rŒ{�2œ: b™>œ>¨5Ñ1Ô1Ñ2Ô2Ð2Ý�#‰hŒhˆØ×Ò˜Õ8Ñ9Ô9Ð9Ð9Ð9r3   c                 óŽ   — t           j                             ¦   «         }t           j                             ¦   «         }||k    sJ ‚d S r'   )r(   r>   Úget_global_context)r1   Ú	gcontext1Ú	gcontext2s      r   Útest_global_contextzTestMisc.test_global_contextŸ  s?   € Ý”L×3Ò3Ñ5Ô5ˆ	Ý”L×3Ò3Ñ5Ô5ˆ	Ø˜IÒ%Ð%Ð%Ð%Ð%Ð%r3   c                 ó  — t          j        dd¦  «         t          j        dd¦  «         t          j        d¦  «        }|                      |d¦  «         t          j        d¦  «        }|                      |d ¦  «         d S )NÚ__xyzzyéÒ  i.  Ú__foobar)r(   Ú
add_symbolÚaddress_of_symbolr5   ÚassertIs)r1   Úaddrs     r   Útest_dylib_symbolszTestMisc.test_dylib_symbols¤  sv   € ÝŒ˜	 4Ñ(Ô(Ð(ÝŒ˜	 4Ñ(Ô(Ð(ÝÔ% iÑ0Ô0ˆØ×Ò˜˜tÑ$Ô$Ð$ÝÔ% jÑ1Ô1ˆØ�Š�d˜DÑ!Ô!Ð!Ð!Ð!r3   c                 óŒ   — t          j        ¦   «         }|                      |t          ¦  «         |                      |¦  «         d S r'   )r(   r;   ÚassertIsInstancer›   Ú
assertTrue)r1   r9   s     r   Útest_get_default_triplez TestMisc.test_get_default_triple¬  s>   € ÝÔ(Ñ*Ô*ˆØ×Ò˜f¥cÑ*Ô*Ð*Ø�Š˜ÑÔÐÐÐr3   c                 ót  — d„ }t          j        ¦   «         }t          j        ¦   «         }|                      |t          ¦  «         |                      |¦  «          ||                     d¦  «        d         ¦  «        } ||                     d¦  «        d         ¦  «        }|                      ||¦  «         d S )Nc                 ó   — | dk    rdS | S )NÚpowerpc64leÚppc64lerQ   )Úarchs    r   Únormalize_ppcz7TestMisc.test_get_process_triple.<locals>.normalize_ppc³  s   € Ø�}Ò$Ð$Ø �yà�r3   ú-r   )r(   Úget_process_tripler;   rý   r›   rþ   rw   r5   )r1   r  r9   ÚdefaultÚdefault_archÚtriple_archs         r   Útest_get_process_triplez TestMisc.test_get_process_triple±  s³   € ð	ð 	ð 	õ Ô(Ñ*Ô*ˆÝÔ)Ñ+Ô+ˆØ×Ò˜f¥cÑ*Ô*Ð*Ø�Š˜ÑÔÐà$�} W§]¢]°3Ñ%7Ô%7¸Ô%:Ñ;Ô;ˆØ#�m F§L¢L°Ñ$5Ô$5°aÔ$8Ñ9Ô9ˆà×Ò˜ {Ñ3Ô3Ð3Ð3Ð3r3   c                 óÒ  — t          j        ¦   «         }|                      |t          ¦  «         |                      |t           j        ¦  «         |                     ¦   «         D ]P\  }}|                      |t          ¦  «         |                      |¦  «         |                      |t          ¦  «         ŒQ|                      | 	                    ¦   «         t          ¦  «         d}d 
                    |¦  «        }|                      t          j        |d¦  «        ¦  «         |                      t          j        |d¦  «        ¦  «         |                      t          j        |d¦  «        ¦  «         t          |¦  «        dk    r*|                      | 	                    ¦   «         d¦  «         d S |                      t          j        || 	                    ¦   «         ¦  «        ¦  «         d S )Nz[+\-][a-zA-Z0-9\._-]+z^({0}|{0}(,{0})*)?$r¿   z+aaz+a,-bbr   )r(   Úget_host_cpu_featuresrý   ÚdictÚ
FeatureMapÚitemsr›   rþ   ÚboolÚflattenr:   ÚassertIsNotNonerr   rx   ry   r5   )r1   rÇ   ÚkÚvÚre_termÚregexs         r   Útest_get_host_cpu_featuresz#TestMisc.test_get_host_cpu_featuresÃ  s¡  € ÝÔ-Ñ/Ô/ˆà×Ò˜h­Ñ-Ô-Ð-Ø×Ò˜h­¬Ñ8Ô8Ð8Ø—N’NÑ$Ô$ð 	+ð 	+‰DˆAˆqØ×!Ò! !¥SÑ)Ô)Ð)Ø�OŠO˜AÑÔÐØ×!Ò! !¥TÑ*Ô*Ð*Ð*Ø×Ò˜h×.Ò.Ñ0Ô0µ#Ñ6Ô6Ð6à*ˆØ&×-Ò-¨gÑ6Ô6ˆà×Ò�RœX e¨RÑ0Ô0Ñ1Ô1Ð1Ø×Ò�RœX e¨UÑ3Ô3Ñ4Ô4Ð4Ø×Ò�RœX e¨XÑ6Ô6Ñ7Ô7Ð7åˆx‰=Œ=˜AÒÐØ×Ò˜X×-Ò-Ñ/Ô/°Ñ4Ô4Ð4Ð4Ð4à× Ò ¥¤¨%°×1AÒ1AÑ1CÔ1CÑ!DÔ!DÑEÔEÐEÐEÐEr3   c                 óŒ   — t          j        ¦   «         }|                      |t          ¦  «         |                      |¦  «         d S r'   )r(   Úget_host_cpu_namerý   r›   rþ   )r1   Úcpus     r   Útest_get_host_cpu_namezTestMisc.test_get_host_cpu_nameÚ  s>   € ÝÔ$Ñ&Ô&ˆØ×Ò˜c¥3Ñ'Ô'Ð'Ø�Š˜ÑÔÐÐÐr3   c                 óL   — d}t          j        t          j        d|g¦  «         d S )Na2  if 1:
            from llvmlite import binding as llvm

            llvm.initialize()
            llvm.initialize_native_target()
            llvm.initialize_native_asmprinter()
            llvm.initialize_all_targets()
            llvm.initialize_all_asmprinters()
            llvm.shutdown()
            ú-c©rm   Ú
check_callr�   Ú
executable©r1   Úcodes     r   Útest_initfinizTestMisc.test_initfiniß  s+   € ð	ˆõ 	Ô�sœ~¨t°TÐ:Ñ;Ô;Ð;Ð;Ð;r3   c                 óL   — d}t          j        t          j        d|g¦  «         d S )Nz„if 1:
            from llvmlite import binding as llvm

            llvm.set_option("progname", "-debug-pass=Disabled")
            r  r  r"  s     r   Útest_set_optionzTestMisc.test_set_optionì  s+   € ðˆõ
 	Ô�sœ~¨t°TÐ:Ñ;Ô;Ð;Ð;Ð;r3   c                 ó    — t           j        \  }}}dg}|                      |f|¦  «         |                      |t          d¦  «        ¦  «         d S )N)é   é
   )r(   Úllvm_version_inforà   Úrange)r1   ÚmajorÚminorÚpatchÚvalids        r   Útest_versionzTestMisc.test_versionö  sN   € Ý"Ô4Ñˆˆu�eà�ˆØ�Š�u�h Ñ&Ô&Ð&Ø�Š�e�U 2™YœYÑ'Ô'Ð'Ð'Ð'r3   c                 ó,   — t          j        ¦   «          d S r'   )r(   Úcheck_jit_executionr0   s    r   Útest_check_jit_executionz!TestMisc.test_check_jit_executioný  s   € ÝÔ Ñ"Ô"Ð"Ð"Ð"r3   zLocale not availablec                 óà   — |                       t          ¦  «        }t          |¦  «        }t          j        t          j        d¦  «         t          |¦  «        }|                      ||¦  «         d S )Nr   )r@   Úasm_double_localer›   r   r   r   r5   )r1   r‰   ÚexpectÚgots       r   Útest_print_double_localez!TestMisc.test_print_double_locale   s]   € à�KŠKÕ)Ñ*Ô*ˆÝ�Q‘”ˆõ 	Ô�œ¨Ñ0Ô0Ð0å�!‰fŒfˆà×Ò˜ Ñ%Ô%Ð%Ð%Ð%r3   c                 óV   — d}d}t           j        |d|g}t          j        |¦  «         d S )Nzfrom llvmlite import bindingz-Werrorr  )r�   r!  rm   r   )r1   r#  ÚflagsÚcmdargss       r   Útest_no_accidental_warningsz$TestMisc.test_no_accidental_warnings  s3   € Ø-ˆØˆÝ”> 5¨$°Ð5ˆÝÔ˜gÑ&Ô&Ð&Ð&Ð&r3   N)rM   rN   rO   rŒ   rÛ   rã   rí   rò   rû   rÿ   r  r  r  r$  r&  r0  r3  r�   ÚskipIfr   r8  r<  rQ   r3   r   rÙ   rÙ   ‡  s$  € € € € € ðð ðð ð ð1ð 1ð 1ð:ð :ð :ð&ð &ð &ð
"ð "ð "ð ð  ð  ð
4ð 4ð 4ð$Fð Fð Fð.ð ð ð
<ð <ð <ð<ð <ð <ð(ð (ð (ð#ð #ð #ð €X„_�\�\‘^”^Ð%;Ñ<Ô<ð	&ð 	&ñ =Ô<ð	&ð'ð 'ð 'ð 'ð 'r3   rÙ   c                   óŒ   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zd
„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ ZdS )ÚTestModuleRefc                 óÂ   — |                       ¦   «         }t          |¦  «                             ¦   «         }|                      |                     d¦  «        |¦  «         d S )Nz; ModuleID =)r@   r›   rÀ   rþ   r   ©r1   r?   râ   s      r   Útest_strzTestModuleRef.test_str  sJ   € Ø�kŠk‰mŒmˆÝ�‰HŒH�NŠNÑÔˆØ�Š˜Ÿš ^Ñ4Ô4°aÑ8Ô8Ð8Ð8Ð8r3   c                 ó(  — |                       ¦   «         }t          |¦  «         |                     ¦   «          |                      t          j        ¦  «        5  t          |¦  «         d d d ¦  «         n# 1 swxY w Y   |                     ¦   «          d S r'   )r@   r›   ÚcloserÝ   ÚctypesÚArgumentError©r1   r?   s     r   Ú
test_closezTestModuleRef.test_close  s¯   € Ø�kŠk‰mŒmˆÝˆC‰ŒˆØ�	Š	‰ŒˆØ×Ò�vÔ3Ñ4Ô4ð 	ð 	Ý�‰HŒHˆHð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	à�	Š	‰Œˆˆˆs   ÁA3Á3A7Á:A7c                 óÆ  — |                       ¦   «         }t          |¦  «         |5  t          |¦  «         d d d ¦  «         n# 1 swxY w Y   |                      t          j        ¦  «        5  t          |¦  «         d d d ¦  «         n# 1 swxY w Y   |                      t
          ¦  «        5  |5  	 d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         d S # 1 swxY w Y   d S r'   )r@   r›   rÝ   rE  rF  rš   rG  s     r   Ú	test_withzTestModuleRef.test_with"  sÍ  € Ø�kŠk‰mŒmˆÝˆC‰ŒˆØð 	ð 	Ý�‰HŒHˆHð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	à×Ò�vÔ3Ñ4Ô4ð 	ð 	Ý�‰HŒHˆHð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	à×Ò�|Ñ,Ô,ð 	ð 	Øð ð Øðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð ð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	ð 	sY   ¦AÁAÁ	AÁ,BÂBÂBÂ-CÂ0B>Â2CÂ>C	ÃCÃC	ÃCÃCÃCc                 ó¶   — |                       ¦   «         }d|_        |                      |j        d¦  «         d|_        |                      |j        d¦  «         d S )Nræ   Úbar)r@   rD   r5   rG  s     r   Ú	test_namezTestModuleRef.test_name-  sS   € Ø�kŠk‰mŒmˆØˆŒØ×Ò˜œ 5Ñ)Ô)Ð)ØˆŒØ×Ò˜œ 5Ñ)Ô)Ð)Ð)Ð)r3   c                 ód   — |                       ¦   «         }|                      |j        d¦  «         d S )Nz	asm_sum.c)r@   r5   Úsource_filerG  s     r   Útest_source_filezTestModuleRef.test_source_file4  s-   € Ø�kŠk‰mŒmˆØ×Ò˜œ¨+Ñ6Ô6Ð6Ð6Ð6r3   c                 ó¶   — |                       ¦   «         }|j        }|                      |t          ¦  «         ||_        |                      ||j        ¦  «         d S r'   )r@   Údata_layoutrý   r›   r5   rA  s      r   Útest_data_layoutzTestModuleRef.test_data_layout8  sQ   € Ø�kŠk‰mŒmˆØŒOˆØ×Ò˜a¥Ñ%Ô%Ð%ØˆŒØ×Ò˜˜CœOÑ,Ô,Ð,Ð,Ð,r3   c                 óÎ   — |                       ¦   «         }|j        }|                      |t          j        ¦   «         ¦  «         d|_        |                      |j        d¦  «         d S )Nr¿   )r@   r9   r5   r(   r;   rA  s      r   Útest_triplezTestModuleRef.test_triple?  sZ   € Ø�kŠk‰mŒmˆØŒJˆØ×Ò˜�DÔ3Ñ5Ô5Ñ6Ô6Ð6ØˆŒ
Ø×Ò˜œ RÑ(Ô(Ð(Ð(Ð(r3   c                 ó’  — |                       ¦   «         }|                      |                     ¦   «         d ¦  «         |                       t          ¦  «        }|                      t
          ¦  «        5 }|                     ¦   «          d d d ¦  «         n# 1 swxY w Y   t          |j        ¦  «        }|                      d|¦  «         d S )Nz%.bug = add i32 1, %.bug)	r@   rù   r°   Úasm_verification_failrÝ   rš   r›   rß   rà   )r1   r?   rá   râ   s       r   Útest_verifyzTestModuleRef.test_verifyF  sÚ   € à�kŠk‰mŒmˆØ�Š�c—j’j‘l”l DÑ)Ô)Ð)à�kŠkÕ/Ñ0Ô0ˆØ×Ò�|Ñ,Ô,ð 	°Ø�JŠJ‰LŒLˆLð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	å�”ÑÔˆØ�ŠÐ0°!Ñ4Ô4Ð4Ð4Ð4s   Á1BÂBÂBc                 ó†  — |                       ¦   «         }|                     d¦  «        }|                      |t          j        ¦  «         |                      |j        d¦  «         |                      t          ¦  «        5  |                     d¦  «         d d d ¦  «         n# 1 swxY w Y   ~t          |j         ¦  «         d S )NÚsumræ   )
r@   Úget_functionrý   r(   ÚValueRefr5   rD   rÝ   Ú	NameErrorr›   ©r1   r?   rë   s      r   Útest_get_functionzTestModuleRef.test_get_functionQ  så   € Ø�kŠk‰mŒmˆØ×Ò˜eÑ$Ô$ˆØ×Ò˜b¥$¤-Ñ0Ô0Ð0Ø×Ò˜œ %Ñ(Ô(Ð(à×Ò�yÑ)Ô)ð 	$ð 	$Ø×Ò˜UÑ#Ô#Ð#ð	$ð 	$ð 	$ñ 	$ô 	$ð 	$ð 	$ð 	$ð 	$ð 	$ð 	$øøøð 	$ð 	$ð 	$ð 	$ð ÝˆBŒI‰Œˆˆˆó   Á?B!Â!B%Â(B%c                 óˆ  — |                       ¦   «         }|                     d¦  «        }|                      |j        d¦  «         |                      t          j        dt          |¦  «        ¦  «        ¦  «         |                      t          ¦  «        5  |                     d¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nzstruct.glob_typeú8%struct\.glob_type(\.[\d]+)? = type { i64, \[2 x i64\] }zstruct.doesnt_exist)
r@   Úget_struct_typer5   rD   r  rr   rx   r›   rÝ   r]  )r1   r?   Úst_tys      r   Útest_get_struct_typez"TestModuleRef.test_get_struct_type^  sý   € Ø�kŠk‰mŒmˆØ×#Ò#Ð$6Ñ7Ô7ˆØ×Ò˜œÐ%7Ñ8Ô8Ð8à×Ò�RœXØGÝ�‰JŒJñô ñ 	ô 	ð 	ð ×Ò�yÑ)Ô)ð 	7ð 	7Ø×ÒÐ 5Ñ6Ô6Ð6ð	7ð 	7ð 	7ñ 	7ô 	7ð 	7ð 	7ð 	7ð 	7ð 	7ð 	7ð 	7øøøð 	7ð 	7ð 	7ð 	7ð 	7ð 	7s   ÂB7Â7B;Â>B;c                 ó†  — |                       ¦   «         }|                     d¦  «        }|                      |t          j        ¦  «         |                      |j        d¦  «         |                      t          ¦  «        5  |                     d¦  «         d d d ¦  «         n# 1 swxY w Y   ~t          |j         ¦  «         d S )NrA   rL  )
r@   rC   rý   r(   r\  r5   rD   rÝ   r]  r›   )r1   r?   Úgvs      r   Útest_get_global_variablez&TestModuleRef.test_get_global_variablej  så   € Ø�kŠk‰mŒmˆØ×$Ò$ VÑ,Ô,ˆØ×Ò˜b¥$¤-Ñ0Ô0Ð0Ø×Ò˜œ &Ñ)Ô)Ð)à×Ò�yÑ)Ô)ð 	+ð 	+Ø×#Ò# EÑ*Ô*Ð*ð	+ð 	+ð 	+ñ 	+ô 	+ð 	+ð 	+ð 	+ð 	+ð 	+ð 	+øøøð 	+ð 	+ð 	+ð 	+ð ÝˆBŒI‰Œˆˆˆr`  c                 óì   — |                       ¦   «         }|j        }~t          |d„ ¬¦  «        }|                      t	          |¦  «        d¦  «         |                      d„ |D ¦   «         g d¢¦  «         d S )Nc                 ó   — | j         S r'   r¥   )Úvalues    r   ú<lambda>z5TestModuleRef.test_global_variables.<locals>.<lambda>{  s   € ¨U¬Z€ r3   )Úkeyé   c                 ó   — g | ]	}|j         ‘Œ
S rQ   r¥   )Ú.0Úgs     r   ú
<listcomp>z7TestModuleRef.test_global_variables.<locals>.<listcomp>}  s   € Ð0Ð0Ð0 Q˜!œ&Ð0Ð0Ð0r3   )rA   Úglob_bÚglob_fÚglob_struct)r@   Úglobal_variablesÚsortedr5   ry   )r1   r?   ÚitÚglobss       r   Útest_global_variablesz#TestModuleRef.test_global_variablesw  s�   € Ø�kŠk‰mŒmˆØÔ!ˆØÝ�rÐ7Ð7Ð8Ñ8Ô8ˆØ×Ò�˜U™œ QÑ'Ô'Ð'Ø×ÒÐ0Ð0¨%Ð0Ñ0Ô0ØDÐDÐDñ	Fô 	Fð 	Fð 	Fð 	Fr3   c                 óä   — |                       ¦   «         }|j        }~t          |¦  «        }|                      t	          |¦  «        d¦  «         |                      |d         j        d¦  «         d S ©Nr]   r   rZ  )r@   Ú	functionsÚlistr5   ry   rD   )r1   r?   rx  Úfuncss       r   Útest_functionszTestModuleRef.test_functions€  sb   € Ø�kŠk‰mŒmˆØŒ]ˆØÝ�R‘”ˆØ×Ò�˜U™œ QÑ'Ô'Ð'Ø×Ò˜˜qœœ¨Ñ.Ô.Ð.Ð.Ð.r3   c           	      ó~  — |                       ¦   «         }|j        }~t          |¦  «        }|                      t	          |¦  «        d¦  «         |                      t          j        d|d         j        ¦  «        ¦  «         |                      t          j        dt          |d         ¦  «        ¦  «        ¦  «         d S )Nr]   ústruct\.glob_type(\.[\d]+)?r   rb  )
r@   Ústruct_typesr~  r5   ry   r  rr   rx   rD   r›   )r1   r?   rx  Ústructss       r   Útest_structszTestModuleRef.test_structsˆ  s³   € Ø�kŠk‰mŒmˆØÔˆØÝ�r‘(”(ˆØ×Ò�˜W™œ qÑ)Ô)Ð)Ø×Ò�RœXÐ&DØ&-¨a¤j¤oñ7ô 7ñ 	8ô 	8ð 	8à×Ò�RœXØGÝ�˜”
‰OŒOñô ñ 	ô 	ð 	ð 	ð 	r3   c                 óà  — |                       ¦   «         }|                       t          ¦  «        }|                     |¦  «         |                      t	          d„ |j        D ¦   «         ¦  «        ddg¦  «         |                     d¦  «         |                     ¦   «          |                      t          j
        ¦  «        5  |                     d¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nc              3   ó$   K  — | ]}|j         V — Œd S r'   r¥   ©rp  Úfs     r   ú	<genexpr>z-TestModuleRef.test_link_in.<locals>.<genexpr>™  ó$   è è € Ð2Ð2˜a�1”6Ð2Ð2Ð2Ð2Ð2Ð2r3   ÚmulrZ  )r@   Úasm_mulÚlink_inr5   rw  r}  r[  rD  rÝ   rE  rF  )r1   ÚdestÚsrcs      r   Útest_link_inzTestModuleRef.test_link_in”  s  € Ø�{Š{‰}Œ}ˆØ�kŠk�'Ñ"Ô"ˆØ�Š�SÑÔÐØ×ÒÝÐ2Ð2 4¤>Ð2Ñ2Ô2Ñ2Ô2°U¸E°Nñ	Dô 	Dð 	Dà×Ò˜%Ñ Ô Ð Ø�
Š
‰ŒˆØ×Ò�vÔ3Ñ4Ô4ð 	$ð 	$Ø×Ò˜UÑ#Ô#Ð#ð	$ð 	$ð 	$ñ 	$ô 	$ð 	$ð 	$ð 	$ð 	$ð 	$ð 	$ð 	$øøøð 	$ð 	$ð 	$ð 	$ð 	$ð 	$s   Ã C#Ã#C'Ã*C'c                 ó°  — |                       ¦   «         }|                       t          ¦  «        }|                     |d¬¦  «         |                      t	          d„ |j        D ¦   «         ¦  «        ddg¦  «         |                     ¦   «          |                      t	          d„ |j        D ¦   «         ¦  «        dg¦  «         |                     d¦  «         d S )NT)Úpreservec              3   ó$   K  — | ]}|j         V — Œd S r'   r¥   rˆ  s     r   rŠ  z6TestModuleRef.test_link_in_preserve.<locals>.<genexpr>¤  r‹  r3   rŒ  rZ  c              3   ó$   K  — | ]}|j         V — Œd S r'   r¥   rˆ  s     r   rŠ  z6TestModuleRef.test_link_in_preserve.<locals>.<genexpr>¦  s$   è è € Ð?Ð?¨1 ¤Ð?Ð?Ð?Ð?Ð?Ð?r3   )r@   r�  rŽ  r5   rw  r}  rD  r[  )r1   r�  Úsrc2s      r   Útest_link_in_preservez#TestModuleRef.test_link_in_preserveŸ  sË   € Ø�{Š{‰}Œ}ˆØ�{Š{�7Ñ#Ô#ˆØ�Š�T DˆÑ)Ô)Ð)Ø×ÒÝÐ2Ð2 4¤>Ð2Ñ2Ô2Ñ2Ô2°U¸E°Nñ	Dô 	Dð 	Dà�
Š
‰ŒˆØ×Ò�Ð?Ð?°´Ð?Ñ?Ô?Ñ?Ô?À%ÀÑIÔIÐIØ×Ò˜%Ñ Ô Ð Ð Ð r3   c                 ó@  — |                       ¦   «         }|                       t          ¦  «        }|                      t          ¦  «        5 }|                     |¦  «         d d d ¦  «         n# 1 swxY w Y   |                      dt          |j        ¦  «        ¦  «         d S )Nzsymbol multiply defined)r@   Úasm_sum2rÝ   rš   rŽ  rà   r›   rß   )r1   r�  r�  rá   s       r   Útest_link_in_errorz TestModuleRef.test_link_in_error©  s¿   € ð �{Š{‰}Œ}ˆØ�kŠk�(Ñ#Ô#ˆØ×Ò�|Ñ,Ô,ð 	°Ø�LŠL˜ÑÔÐð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	à�ŠÐ/µ°R´\Ñ1BÔ1BÑCÔCÐCÐCÐCs   Á	A+Á+A/Á2A/c                 óØ   — |                       ¦   «         }|                     ¦   «         }d}d}|                      |                     |¦  «        p|                     |¦  «        ¦  «         d S )Ns   ÞÀs   BC)r@   Ú
as_bitcoderþ   r   )r1   r?   ÚbcÚbitcode_wrapper_magicÚbitcode_magics        r   Útest_as_bitcodezTestModuleRef.test_as_bitcode²  sn   € Ø�kŠk‰mŒmˆØ�^Š^ÑÔˆð !4ÐØˆØ�Š˜Ÿš mÑ4Ô4ð =ØŸšÐ&;Ñ<Ô<ñ	>ô 	>ð 	>ð 	>ð 	>r3   c                 ó²  — |                       t          ¦  «        5 }t          j        d¦  «         d d d ¦  «         n# 1 swxY w Y   |                      dt          |j        ¦  «        ¦  «         t          j        d         dk     r*|                      dt          |j        ¦  «        ¦  «         d S |                      dt          |j        ¦  «        ¦  «         d S )Nr3   zLLVM bitcode parsing errorr   é	   zInvalid bitcode signaturez(file too small to contain bitcode header)rÝ   rš   r(   Úparse_bitcoderà   r›   rß   r*  )r1   rá   s     r   Útest_parse_bitcode_errorz&TestModuleRef.test_parse_bitcode_error¼  sÿ   € Ø×Ò�|Ñ,Ô,ð 	$°ÝÔ˜sÑ#Ô#Ð#ð	$ð 	$ð 	$ñ 	$ô 	$ð 	$ð 	$ð 	$ð 	$ð 	$ð 	$øøøð 	$ð 	$ð 	$ð 	$à�ŠÐ2µC¸¼Ñ4EÔ4EÑFÔFÐFåÔ! !Ô$ qÒ(Ð(Ø�MŠMÐ5µs¸2¼<Ñ7HÔ7HÑIÔIÐIÐIÐIà�MŠMØ:½CÀÄÑ<MÔ<Mñô ð ð ð s   ›<¼A ÁA c                 óp  — t          j        ¦   «         }|                      |¬¦  «                             ¦   «         }t          j        ¦   «         }t          j        ||¦  «        }|                      |                     ¦   «         |¦  «         |                     d¦  «         |                     d¦  «         d S )N)r>   rZ  rA   )r(   Úcreate_contextr@   rœ  r£  r5   r[  rC   )r1   Úcontext1r�  Úcontext2r?   s        r   Útest_bitcode_roundtripz$TestModuleRef.test_bitcode_roundtripÈ  s�   € åÔ&Ñ(Ô(ˆØ�[Š[ ˆ[Ñ*Ô*×5Ò5Ñ7Ô7ˆÝÔ&Ñ(Ô(ˆÝÔ   XÑ.Ô.ˆØ×Ò˜ŸšÑ)Ô)¨2Ñ.Ô.Ð.à×Ò˜ÑÔÐØ×Ò Ñ'Ô'Ð'Ð'Ð'r3   c                 óö   — |                       ¦   «         }|                     ¦   «         }|                      ||¦  «         |                      |                     ¦   «         |                     ¦   «         ¦  «         d S r'   )r@   ÚcloneÚassertIsNotr5   rœ  )r1   r‰   Úcloneds      r   Útest_cloningzTestModuleRef.test_cloningÓ  sb   € Ø�KŠK‰MŒMˆØ—’‘”ˆØ×Ò˜ Ñ#Ô#Ð#Ø×Ò˜×*Ò*Ñ,Ô,¨a¯lªl©n¬nÑ=Ô=Ð=Ð=Ð=r3   N)rM   rN   rO   rB  rH  rJ  rM  rP  rS  rU  rX  r_  re  rh  rz  r€  r…  r‘  r—  rš  r   r¤  r©  r®  rQ   r3   r   r?  r?    sU  € € € € € ð9ð 9ð 9ð
ð ð ð	ð 	ð 	ð*ð *ð *ð7ð 7ð 7ð-ð -ð -ð)ð )ð )ð	5ð 	5ð 	5ðð ð ð
7ð 
7ð 
7ðð ð ðFð Fð Fð/ð /ð /ð
ð 
ð 
ð	$ð 	$ð 	$ð!ð !ð !ðDð Dð Dð>ð >ð >ð
ð 
ð 
ð	(ð 	(ð 	(ð>ð >ð >ð >ð >r3   r?  c                   óh   — e Zd ZdZdd„Zd„ Zd„ Zd„ Zd„ Zd„ Z	d	„ Z
d
„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ ZdS )ÚJITTestMixinz*
    Mixin for ExecutionEngine tests.
    rZ  c                 óÐ   — |                      ¦   «          |                     |¦  «        }|                      |¦  «          t          t          t          t          ¦  «        |¦  «        S r'   )Úfinalize_objectÚget_function_addressrþ   r   r   )r1   ÚeeÚ	func_nameÚcfptrs       r   Úget_sumzJITTestMixin.get_sumß  sU   € Ø
×ÒÑÔÐØ×'Ò'¨	Ñ2Ô2ˆØ�Š˜ÑÔÐØ-�y�¥¥uÑ-Ô-¨eÑ4Ô4Ð4r3   c                 óø   — |                       ¦   «         }|                      |¦  «        5 }|                      |¦  «        } |dd¦  «        }|                      d|¦  «         d d d ¦  «         d S # 1 swxY w Y   d S ©Nr^   éûÿÿÿéýÿÿÿ)r@   rG   r·  r5   )r1   r?   r´  ÚcfuncÚress        r   Útest_run_codezJITTestMixin.test_run_codeå  s¶   € Ø�kŠk‰mŒmˆØ�XŠX�c‰]Œ]ð 	&˜bØ—L’L Ñ$Ô$ˆEØ�%˜˜2‘,”,ˆCØ×Ò˜R Ñ%Ô%Ð%ð	&ð 	&ð 	&ñ 	&ô 	&ð 	&ð 	&ð 	&ð 	&ð 	&ð 	&ð 	&øøøð 	&ð 	&ð 	&ð 	&ð 	&ð 	&s   ª8A/Á/A3Á6A3c                 ó<  — |                       |                      ¦   «         ¦  «        }|                     ¦   «          |                     ¦   «          |                      t          j        ¦  «        5  |                     ¦   «          d d d ¦  «         d S # 1 swxY w Y   d S r'   )rG   r@   rD  rÝ   rE  rF  r²  ©r1   r´  s     r   rH  zJITTestMixin.test_closeì  sÂ   € Ø�XŠX�d—k’k‘m”mÑ$Ô$ˆØ
�Š‰
Œ
ˆ
Ø
�Š‰
Œ
ˆ
Ø×Ò�vÔ3Ñ4Ô4ð 	!ð 	!Ø×ÒÑ Ô Ð ð	!ð 	!ð 	!ñ 	!ô 	!ð 	!ð 	!ð 	!ð 	!ð 	!ð 	!ð 	!øøøð 	!ð 	!ð 	!ð 	!ð 	!ð 	!s   Á/BÂBÂBc                 ó¼  — |                       |                      ¦   «         ¦  «        }|5  	 d d d ¦  «         n# 1 swxY w Y   |                      t          ¦  «        5  |5  	 d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         n# 1 swxY w Y   |                      t          j        ¦  «        5  |                     ¦   «          d d d ¦  «         d S # 1 swxY w Y   d S r'   )rG   r@   rÝ   rš   rE  rF  r²  rÀ  s     r   rJ  zJITTestMixin.test_withó  sÏ  € Ø�XŠX�d—k’k‘m”mÑ$Ô$ˆØð 	ð 	Øð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	à×Ò�|Ñ,Ô,ð 	ð 	Øð ð Øðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð ð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð ×Ò�vÔ3Ñ4Ô4ð 	!ð 	!Ø×ÒÑ Ô Ð ð	!ð 	!ð 	!ñ 	!ô 	!ð 	!ð 	!ð 	!ð 	!ð 	!ð 	!ð 	!øøøð 	!ð 	!ð 	!ð 	!ð 	!ð 	!sT   ª8¸<¿<ÁBÁ A.Á"BÁ.A2	Á2BÁ5A2	Á6BÂB	ÂB	Â/CÃCÃCc                 ó¨   — |                       ¦   «         }|                      |¦  «        }|                     ¦   «          |                     ¦   «          d S r'   ©r@   rG   rD  ©r1   r?   r´  s      r   Útest_module_lifetimez!JITTestMixin.test_module_lifetimeý  s<   € Ø�kŠk‰mŒmˆØ�XŠX�c‰]Œ]ˆØ
�Š‰
Œ
ˆ
Ø�	Š	‰Œˆˆˆr3   c                 ó¨   — |                       ¦   «         }|                      |¦  «        }|                     ¦   «          |                     ¦   «          d S r'   rÃ  rÄ  s      r   Útest_module_lifetime2z"JITTestMixin.test_module_lifetime2  s<   € Ø�kŠk‰mŒmˆØ�XŠX�c‰]Œ]ˆØ�	Š	‰ŒˆØ
�Š‰
Œ
ˆ
ˆ
ˆ
r3   c                 óÐ  — |                       |                      ¦   «         ¦  «        }|                      t          ¦  «        }|                     |¦  «         |                      t
          ¦  «        5  |                     |¦  «         d d d ¦  «         n# 1 swxY w Y   |                      |j        ¦  «         |                     ¦   «          |  	                    |j        ¦  «         d S r'   )
rG   r@   r�  Ú
add_modulerÝ   ÚKeyErrorÚassertFalseÚclosedrD  rþ   ©r1   r´  r?   s      r   Útest_add_modulezJITTestMixin.test_add_module	  sö   € Ø�XŠX�d—k’k‘m”mÑ$Ô$ˆØ�kŠk�'Ñ"Ô"ˆØ
�Š�cÑÔÐØ×Ò�xÑ(Ô(ð 	ð 	Ø�MŠM˜#ÑÔÐð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	à×Ò˜œÑ$Ô$Ð$Ø
�Š‰
Œ
ˆ
Ø�Š˜œ
Ñ#Ô#Ð#Ð#Ð#s   Á1BÂBÂBc                 ó  — |                       |                      ¦   «         ¦  «        }|                      t          ¦  «        }|                     |¦  «         |                     ¦   «          |                     ¦   «          d S r'   ©rG   r@   r�  rÉ  rD  rÍ  s      r   Útest_add_module_lifetimez%JITTestMixin.test_add_module_lifetime  s\   € Ø�XŠX�d—k’k‘m”mÑ$Ô$ˆØ�kŠk�'Ñ"Ô"ˆØ
�Š�cÑÔÐØ�	Š	‰ŒˆØ
�Š‰
Œ
ˆ
ˆ
ˆ
r3   c                 ó  — |                       |                      ¦   «         ¦  «        }|                      t          ¦  «        }|                     |¦  «         |                     ¦   «          |                     ¦   «          d S r'   rÐ  rÍ  s      r   Útest_add_module_lifetime2z&JITTestMixin.test_add_module_lifetime2  s\   € Ø�XŠX�d—k’k‘m”mÑ$Ô$ˆØ�kŠk�'Ñ"Ô"ˆØ
�Š�cÑÔÐØ
�Š‰
Œ
ˆ
Ø�	Š	‰Œˆˆˆr3   c                 óú  — |                       |                      ¦   «         ¦  «        }|                      t          ¦  «        }|                     |¦  «         |                     |¦  «         |                      t          ¦  «        5  |                     |¦  «         d d d ¦  «         n# 1 swxY w Y   |                      |j        ¦  «         | 	                    ¦   «          |                      |j        ¦  «         d S r'   )
rG   r@   r�  rÉ  Úremove_modulerÝ   rÊ  rË  rÌ  rD  rÍ  s      r   Útest_remove_modulezJITTestMixin.test_remove_module!  s  € Ø�XŠX�d—k’k‘m”mÑ$Ô$ˆØ�kŠk�'Ñ"Ô"ˆØ
�Š�cÑÔÐØ
×Ò˜ÑÔÐØ×Ò�xÑ(Ô(ð 	"ð 	"Ø×Ò˜SÑ!Ô!Ð!ð	"ð 	"ð 	"ñ 	"ô 	"ð 	"ð 	"ð 	"ð 	"ð 	"ð 	"øøøð 	"ð 	"ð 	"ð 	"à×Ò˜œÑ$Ô$Ð$Ø
�Š‰
Œ
ˆ
Ø×Ò˜œÑ$Ô$Ð$Ð$Ð$s   ÂB(Â(B,Â/B,c                 óÜ   — |                       ¦   «         }|                      |¦  «        }|j        }|                      |j        |¦  «         t	          |¦  «         ~~t	          |¦  «         d S r'   )r@   rG   Útarget_datarù   r›   )r1   r?   r´  Útds       r   Útest_target_datazJITTestMixin.test_target_data,  sZ   € Ø�kŠk‰mŒmˆØ�XŠX�c‰]Œ]ˆØŒ^ˆà�Š�b”n bÑ)Ô)Ð)ÝˆB‰ŒˆØ�ÝˆB‰Œˆˆˆr3   c                 ó   — |                       ¦   «         }|                      |¦  «        }|j        }|                     d¦  «        }|                     d¦  «        }|                     d¦  «        }t          j        dk     rdnd}|||fD ]0}|                      |                     |j        ¦  «        |¦  «         Œ1|                      | 	                    |j        ¦  «        d¦  «         |                      | 
                    |j        ¦  «        d¦  «         |                      | 	                    |j        ¦  «        d¦  «         |                      | 
                    |j        ¦  «        d¦  «         |                      | 	                    |j        ¦  «        d	¦  «         |                      | 
                    |j        ¦  «        d
¦  «         d S )NrA   rs  ru  ì        rn  é   r]   )r]   r^   rn  é   )rn  rÝ  )r@   rG   rØ  rC   r�   Úmaxsizer5   Úget_abi_sizeÚtypeÚget_pointee_abi_sizeÚget_pointee_abi_alignmentrà   )	r1   r?   r´  rÙ  Úgv_i32Úgv_i8Ú	gv_structÚpointer_sizerq  s	            r   Útest_target_data_abi_enquiriesz+JITTestMixin.test_target_data_abi_enquiries6  s˜  € Ø�kŠk‰mŒmˆØ�XŠX�c‰]Œ]ˆØŒ^ˆØ×(Ò(¨Ñ0Ô0ˆØ×'Ò'¨Ñ1Ô1ˆØ×+Ò+¨MÑ:Ô:ˆ	åœK¨'Ò1Ð1�q�q°qˆØ˜% Ð+ð 	Dð 	DˆAØ×Ò˜RŸ_š_¨Q¬VÑ4Ô4°lÑCÔCÐCÐCà×Ò˜×0Ò0°´Ñ=Ô=¸qÑAÔAÐAØ×Ò˜×5Ò5°f´kÑBÔBÀAÑFÔFÐFà×Ò˜×0Ò0°´Ñ<Ô<¸aÑ@Ô@Ð@Ø�Š�b×2Ò2°5´:Ñ>Ô>À	ÑJÔJÐJà×Ò˜×0Ò0°´Ñ@Ô@À"ÑEÔEÐEØ�Š�b×2Ò2°9´>ÑBÔBÀFÑKÔKÐKÐKÐKr3   c                 ób  ‡— g Šˆfd„}|                       ¦   «         }|                      |¦  «        }|                     |¦  «         |                      t	          ‰¦  «        d¦  «         |                      |¦  «        } |dd¦  «         |                      t	          ‰¦  «        d¦  «         |                      ‰d         d         |¦  «         |                      ‰d         d         t          ¦  «         g ‰d d …<   |                       t          ¦  «        }| 
                    |¦  «         |                      |d¦  «        }|                      t	          ‰¦  «        d¦  «         |                      ‰d         d         |¦  «         |                      ‰d         d         t          ¦  «         d S )Nc                 ó6   •— ‰                      | |f¦  «         d S r'   ©rÁ   ©r?   ÚbufÚnotifiess     €r   Únotifyz5JITTestMixin.test_object_cache_notify.<locals>.notifyN  ó   ø€ Ø�OŠO˜S #˜JÑ'Ô'Ð'Ð'Ð'r3   r   r^   rº  r]   rŒ  )r@   rG   Úset_object_cacher5   ry   r·  rù   rý   Úbytesr�  rÉ  )r1   rï  r?   r´  r¼  Úmod2rî  s         @r   Útest_object_cache_notifyz%JITTestMixin.test_object_cache_notifyK  s„  ø€ Øˆð	(ð 	(ð 	(ð 	(ð 	(ð �kŠk‰mŒmˆØ�XŠX�c‰]Œ]ˆØ
×Ò˜FÑ#Ô#Ð#à×Ò�˜X™œ¨Ñ*Ô*Ð*Ø—’˜RÑ Ô ˆØˆˆa�‰ŒˆØ×Ò�˜X™œ¨Ñ*Ô*Ð*à�Š�h˜q”k !”n cÑ*Ô*Ð*Ø×Ò˜h qœk¨!œn­eÑ4Ô4Ð4àˆ���‰Ø�{Š{�7Ñ#Ô#ˆØ
�Š�dÑÔÐØ—’˜R Ñ'Ô'ˆØ×Ò�˜X™œ¨Ñ*Ô*Ð*à�Š�h˜q”k !”n dÑ+Ô+Ð+Ø×Ò˜h qœk¨!œn­eÑ4Ô4Ð4Ð4Ð4r3   c                 óp  ‡‡‡	— g Šg Šˆfd„}ˆfd„}|                       ¦   «         }|                      |¦  «        }|                     ||¦  «         |                      t	          ‰¦  «        d¦  «         |                      t	          ‰¦  «        d¦  «         |                      |¦  «        }|                      t	          ‰¦  «        d¦  «         |                      t	          ‰¦  «        d¦  «         |                      ‰d         |¦  «         ‰d         d         Š	ˆˆ	fd„}g ‰d d …<   g ‰d d …<   |                       t          ¦  «        }|                      |¦  «        }|                     ||¦  «         |                      t	          ‰¦  «        d¦  «         |                      t	          ‰¦  «        d¦  «         |                      |¦  «        }|                       |dd¦  «        d¦  «         |                      t	          ‰¦  «        d¦  «         |                      t	          ‰¦  «        d¦  «         d S )	Nc                 ó6   •— ‰                      | |f¦  «         d S r'   rë  rì  s     €r   rï  z8JITTestMixin.test_object_cache_getbuffer.<locals>.notifyj  rð  r3   c                 ó2   •— ‰                      | ¦  «         d S r'   rë  )r?   Ú
getbufferss    €r   Ú	getbufferz;JITTestMixin.test_object_cache_getbuffer.<locals>.getbufferm  s   ø€ Ø×Ò˜cÑ"Ô"Ð"Ð"Ð"r3   r   r]   c                 ó2   •— ‰                      | ¦  «         ‰S r'   rë  )r?   rø  Ú
sum_buffers    €€r   Úgetbuffer_successfulzFJITTestMixin.test_object_cache_getbuffer.<locals>.getbuffer_successful€  s   ø€ Ø×Ò˜cÑ"Ô"Ð"ØÐr3   r^   rº  r»  )r@   rG   rñ  r5   ry   r·  rù   r�  )
r1   rï  rù  r?   r´  r¼  rü  rø  rî  rû  s
          @@@r   Útest_object_cache_getbufferz(JITTestMixin.test_object_cache_getbufferf  s5  øøø€ ØˆØˆ
ð	(ð 	(ð 	(ð 	(ð 	(ð	#ð 	#ð 	#ð 	#ð 	#ð �kŠk‰mŒmˆØ�XŠX�c‰]Œ]ˆØ
×Ò˜F IÑ.Ô.Ð.ð 	×Ò�˜X™œ¨Ñ*Ô*Ð*Ø×Ò�˜Z™œ¨!Ñ,Ô,Ð,Ø—’˜RÑ Ô ˆØ×Ò�˜X™œ¨Ñ*Ô*Ð*Ø×Ò�˜Z™œ¨!Ñ,Ô,Ð,Ø�Š�j ”m SÑ)Ô)Ð)Ø˜a”[ ”^ˆ
ð
	ð 	ð 	ð 	ð 	ð 	ð ˆ���‰Øˆ
�1�1�1‰à�kŠk�'Ñ"Ô"ˆØ�XŠX�c‰]Œ]ˆØ
×Ò˜FÐ$8Ñ9Ô9Ð9à×Ò�˜X™œ¨Ñ*Ô*Ð*Ø×Ò�˜Z™œ¨!Ñ,Ô,Ð,Ø—’˜RÑ Ô ˆØ×Ò˜˜˜q "™œ rÑ*Ô*Ð*Ø×Ò�˜X™œ¨Ñ*Ô*Ð*Ø×Ò�˜Z™œ¨!Ñ,Ô,Ð,Ð,Ð,r3   N)rZ  )rM   rN   rO   rŒ   r·  r¾  rH  rJ  rÅ  rÇ  rÎ  rÑ  rÓ  rÖ  rÚ  rè  rô  rý  rQ   r3   r   r°  r°  Ú  sø   € € € € € ðð ð5ð 5ð 5ð 5ð&ð &ð &ð!ð !ð !ð!ð !ð !ðð ð ðð ð ð$ð $ð $ðð ð ðð ð ð	%ð 	%ð 	%ðð ð ðLð Lð Lð*5ð 5ð 5ð6*-ð *-ð *-ð *-ð *-r3   r°  c                   ó   — e Zd Zd„ Zd„ ZdS )ÚJITWithTMTestMixinc                 óˆ  — |                       d¬¦  «        }|                      ¦   «         }|                      ||¦  «        }|                     |¦  «        }|                      d|¦  «         |                     d¦  «         |                     |¦  «        }|                      d|¦  «         |                      ||¦  «         dS )z%Test TargetMachineRef.emit_assembly()TrF   rZ  N)rL   r@   rG   rÈ   rà   Úset_asm_verbosityÚassertNotEqual)r1   rL   r?   r´  Úraw_asmÚraw_asm_verboses         r   Útest_emit_assemblyz%JITWithTMTestMixin.test_emit_assembly•  s¶   € à×,Ò,°Ð,Ñ6Ô6ˆØ�kŠk‰mŒmˆØ�XŠX�c˜>Ñ*Ô*ˆØ ×.Ò.¨sÑ3Ô3ˆØ�Š�e˜WÑ%Ô%Ð%Ø×(Ò(¨Ñ.Ô.Ð.Ø(×6Ò6°sÑ;Ô;ˆØ�Š�e˜WÑ%Ô%Ð%Ø×Ò˜G _Ñ5Ô5Ð5Ð5Ð5r3   c                 ód  — |                       d¬¦  «        }|                      ¦   «         }|                      ||¦  «        }|                     |¦  «        }|                      |t
          ¦  «         t          j                             d¦  «        r |  	                    d|dd…         ¦  «         dS dS )z#Test TargetMachineRef.emit_object()TrF   rT   s   ELFNr)  )
rL   r@   rG   Úemit_objectrý   rò  r�   r}   r   rà   )r1   rL   r?   r´  Úcode_objects        r   Útest_emit_objectz#JITWithTMTestMixin.test_emit_object¡  s¦   € à×,Ò,°Ð,Ñ6Ô6ˆØ�kŠk‰mŒmˆØ�XŠX�c˜>Ñ*Ô*ˆØ$×0Ò0°Ñ5Ô5ˆØ×Ò˜k­5Ñ1Ô1Ð1ÝŒ<×"Ò" 7Ñ+Ô+ð 	4à�MŠM˜& +¨c¨r¨cÔ"2Ñ3Ô3Ð3Ð3Ð3ð	4ð 	4r3   N)rM   rN   rO   r  r	  rQ   r3   r   rÿ  rÿ  “  s2   € € € € € ð
6ð 
6ð 
6ð	4ð 	4ð 	4ð 	4ð 	4r3   rÿ  c                   ó   — e Zd ZdZdd„ZdS )Ú	TestMCJitz@
    Test JIT engines created with create_mcjit_compiler().
    Nc                 ó\   — |€|                       d¬¦  «        }t          j        ||¦  «        S )NTrF   )rL   r(   Úcreate_mcjit_compiler)r1   r?   rL   s      r   rG   zTestMCJit.jit²  s1   € ØÐ!Ø!×0Ò0°TÐ0Ñ:Ô:ˆNÝÔ)¨#¨~Ñ>Ô>Ð>r3   r'   )rM   rN   rO   rŒ   rG   rQ   r3   r   r  r  ­  s2   € € € € € ðð ð?ð ?ð ?ð ?ð ?ð ?r3   r  Úx86úx86 onlyc            	       ó˜   — e Zd Zeddd eeee¦  «        dfd„Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zd
„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ ZdS )ÚTestOrcLLJITrZ  NFc                 óÐ  — t          j        |d|¬¦  «        }t          j        ¦   «         }|r|                     ¦   «          |                     |                     t          j        ¦   «         ¬¦  «        ¦  «                             |¦  «                             ||¦  «        }	|	|         }
|  	                    |
¦  «         |  
                    ||	j        ¦  «         ||	 ||
¦  «        fS )NF)Úuse_jit_linkÚsuppress_errorsr8   )r(   Úcreate_lljit_compilerÚJITLibraryBuilderÚadd_current_processÚadd_irr:   r;   Úexport_symbolÚlinkrþ   r5   rD   )r1   r=   rµ  rL   Úadd_processÚ	func_typer  Úlljitr¶   Úrtr¶  s              r   rG   zTestOrcLLJIT.jit¿  sä   € õ Ô*¨>Ø8=Ø;JðLñ Lô Lˆõ Ô(Ñ*Ô*ˆØð 	*Ø×'Ò'Ñ)Ô)Ð)ØßŠV�C—J’J¥dÔ&=Ñ&?Ô&?�JÑ@Ô@ÑAÔAßŠ]˜9Ñ%Ô%ßŠT�%˜Ñ#Ô#ð 	ð �9”ˆØ�Š˜ÑÔÐØ×Ò˜ B¤GÑ,Ô,Ð,Ø�b˜)˜) EÑ*Ô*Ð*Ð*r3   c                 ó   — t          j        ¦   «         }t          j        ¦   «                              dd¦  «                             d¦  «                             |d¦  «        }|                      |d         d¦  «         d S )Nrô   rõ   ræ   )r(   r  r  Úimport_symbolr  r  r5   ©r1   r  r  s      r   Útest_define_symbolzTestOrcLLJIT.test_define_symbolÒ  sl   € ÝÔ*Ñ,Ô,ˆÝÔ#Ñ%Ô%×3Ò3°I¸tÑDÔDßŠ]˜9Ñ%Ô%§d¢d¨5°%Ñ&8Ô&8ð 	à×Ò˜˜Iœ¨Ñ-Ô-Ð-Ð-Ð-r3   c                 ó&  — t          j        ¦   «         }|                      t          d¦  «        5  |                     dd¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        ¦   «                              dd¦  «                             d¦  «                             |d¦  «        }|  	                    |d         d¦  «         |                      t          d¦  «        5  |                     dd¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )NzNo such libraryræ   rö   rô   rõ   r   zSymbols not found.*__foobar)
r(   r  ÚassertRaisesRegexrš   Úlookupr  r   r  r  r  r!  s      r   Ú"test_lookup_undefined_symbol_failsz/TestOrcLLJIT.test_lookup_undefined_symbol_failsØ  s{  € ÝÔ*Ñ,Ô,ˆØ×#Ò#¥LÐ2CÑDÔDð 	,ð 	,Ø�LŠL˜ 
Ñ+Ô+Ð+ð	,ð 	,ð 	,ñ 	,ô 	,ð 	,ð 	,ð 	,ð 	,ð 	,ð 	,øøøð 	,ð 	,ð 	,ð 	,åÔ#Ñ%Ô%×3Ò3°I¸tÑDÔDßŠ]˜9Ñ%Ô%§d¢d¨5°%Ñ&8Ô&8ð 	à×Ò˜B˜yœM¨1Ñ-Ô-Ð-Ø×#Ò#¥LØ$AñCô Cð 	,ð 	,à�LŠL˜ 
Ñ+Ô+Ð+ð	,ð 	,ð 	,ñ 	,ô 	,ð 	,ð 	,ð 	,ð 	,ð 	,ð 	,ð 	,øøøð 	,ð 	,ð 	,ð 	,ð 	,ð 	,s#   ¯AÁAÁAÃ"DÄD
ÄD
c                 ó  — t           j        dk    rK|                      t          d¦  «        5  t	          j        d¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S |                      t	          j        d¬¦  «        ¦  «         d S )NÚwin32zJITLink .* WindowsT)r  )r�   r}   r$  rš   r(   r  r  r0   s    r   Útest_jit_linkzTestOrcLLJIT.test_jit_linkã  sÌ   € ÝŒ<˜7Ò"Ð"Ø×'Ò'­Ø(<ñ>ô >ð >ð >åÔ*¸Ð=Ñ=Ô=Ð=ð>ð >ð >ñ >ô >ð >ð >ð >ð >ð >ð >ð >øøøð >ð >ð >ð >ð >ð >ð × Ò ¥Ô!;ÈÐ!NÑ!NÔ!NÑOÔOÐOÐOÐOs   ¬AÁAÁAc                 ó°   — |                       ¦   «         \  }}}|5   |dd¦  «        }|                      d|¦  «         d d d ¦  «         d S # 1 swxY w Y   d S r¹  )rG   r5   )r1   r  r  r¼  r½  s        r   r¾  zTestOrcLLJIT.test_run_codeë  s¥   € Ø!ŸXšX™ZœZÑˆ��EØð 	&ð 	&Ø�%˜˜2‘,”,ˆCØ×Ò˜R Ñ%Ô%Ð%ð	&ð 	&ð 	&ñ 	&ô 	&ð 	&ð 	&ð 	&ð 	&ð 	&ð 	&ð 	&øøøð 	&ð 	&ð 	&ð 	&ð 	&ð 	&s   ›#AÁAÁAc                 ó  — |                       ¦   «         \  }}}|                     ¦   «          |                     ¦   «          |                      t          ¦  «        5  |                     dd¦  «         d d d ¦  «         d S # 1 swxY w Y   d S ©Nræ   rë   )rG   rD  rÝ   ÚAssertionErrorr%  ©r1   r  r  r¼  s       r   rH  zTestOrcLLJIT.test_closeñ  s¼   € Ø!ŸXšX™ZœZÑˆ��EØ�Š‰ŒˆØ�Š‰ŒˆØ×Ò�~Ñ.Ô.ð 	&ð 	&Ø�LŠL˜ Ñ%Ô%Ð%ð	&ð 	&ð 	&ñ 	&ô 	&ð 	&ð 	&ð 	&ð 	&ð 	&ð 	&ð 	&øøøð 	&ð 	&ð 	&ð 	&ð 	&ð 	&s   ÁA?Á?BÂBc                 ó˜  — |                       ¦   «         \  }}}|5  	 d d d ¦  «         n# 1 swxY w Y   |                      t          ¦  «        5  |5  	 d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         n# 1 swxY w Y   |                      t          ¦  «        5  |                     dd¦  «         d d d ¦  «         d S # 1 swxY w Y   d S r,  )rG   rÝ   rš   r-  r%  r.  s       r   rJ  zTestOrcLLJIT.test_withø  sÉ  € Ø!ŸXšX™ZœZÑˆ��EØð 	ð 	Øð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	à×Ò�|Ñ,Ô,ð 	ð 	Øð ð Øðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð ð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð ×Ò�~Ñ.Ô.ð 	&ð 	&Ø�LŠL˜ Ñ%Ô%Ð%ð	&ð 	&ð 	&ñ 	&ô 	&ð 	&ð 	&ð 	&ð 	&ð 	&ð 	&ð 	&øøøð 	&ð 	&ð 	&ð 	&ð 	&ð 	&sT   ›)©-°-ÁA6ÁAÁA6ÁA#	Á#A6Á&A#	Á'A6Á6A:Á=A:ÂB?Â?CÃCc                 ó¤  — |                       ¦   «         \  }}}t          j        ¦   «                              t                               t          j        ¦   «         ¬¦  «        ¦  «                             d¦  «                             |d¦  «        }  t          t          t          t          ¦  «        |d         ¦  «        dd¦  «        }|                      d|¦  «         |                      |                     dd¦  «        d         d¦  «         |                      |                     dd¦  «        d         d¦  «         |                      t          ¦  «        5  |                     dd¦  «         d d d ¦  «         n# 1 swxY w Y   |                      t          ¦  «        5  |                     dd¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nr8   rŒ  r^   rº  iöÿÿÿrZ  r   )rG   r(   r  r  r�  r:   r;   r  r  r   r   r5   r  r%  rÝ   rš   ©r1   r  Úrt_sumÚ	cfunc_sumÚrt_mulr½  s         r   Útest_add_ir_modulezTestOrcLLJIT.test_add_ir_module  s  € Ø%)§X¢X¡Z¤ZÑ"ˆ�˜	ÝÔ'Ñ)Ô)ßŠV•G—N’N­$Ô*AÑ*CÔ*C�NÑDÔDÑEÔEßŠ]˜5Ñ!Ô!ßŠT�%˜ÑÔð 	ð <Ð,�i��u¥eÑ,Ô,¨V°E¬]Ñ;Ô;¸A¸rÑBÔBˆØ×Ò˜˜cÑ"Ô"Ð"Ø×Ò˜EŸLšL¨°Ñ6Ô6°uÔ=¸qÑAÔAÐAØ×Ò˜EŸLšL¨°Ñ6Ô6°uÔ=¸qÑAÔAÐAØ×Ò�|Ñ,Ô,ð 	'ð 	'Ø�LŠL˜ Ñ&Ô&Ð&ð	'ð 	'ð 	'ñ 	'ô 	'ð 	'ð 	'ð 	'ð 	'ð 	'ð 	'øøøð 	'ð 	'ð 	'ð 	'à×Ò�|Ñ,Ô,ð 	'ð 	'Ø�LŠL˜ Ñ&Ô&Ð&ð	'ð 	'ð 	'ñ 	'ô 	'ð 	'ð 	'ð 	'ð 	'ð 	'ð 	'ð 	'øøøð 	'ð 	'ð 	'ð 	'ð 	'ð 	's$   ÅE<Å<F ÆF Æ!GÇG	ÇG	c                 ó  — |                       ¦   «         \  }}}~t          j        ¦   «          |                      t          ¦  «        5  |                     dd¦  «         d d d ¦  «         n# 1 swxY w Y   |                     ¦   «          d S ©NrZ  )rG   r,   r-   rÝ   rš   r%  rD  )r1   r  r2  rƒ   s       r   rÖ  zTestOrcLLJIT.test_remove_module  s²   € Ø!ŸXšX™ZœZÑˆ�˜ØÝ
Œ
‰ŒˆØ×Ò�|Ñ,Ô,ð 	'ð 	'Ø�LŠL˜ Ñ&Ô&Ð&ð	'ð 	'ð 	'ñ 	'ô 	'ð 	'ð 	'ð 	'ð 	'ð 	'ð 	'øøøð 	'ð 	'ð 	'ð 	'à�Š‰Œˆˆˆs   ÁA*Á*A.Á1A.c                 óè  — |                       ¦   «         \  }}}t          j        ¦   «                              t                               t          j        ¦   «         ¬¦  «        ¦  «                             d¦  «                             d¦  «         	                    |d¦  «        }  t          t          t          t          ¦  «        |d         ¦  «        dd¦  «        }|                      d|¦  «         d S )Nr8   Ú
square_sumrZ  r^   rº  r¢  )rG   r(   r  r  Úasm_square_sumr:   r;   r  Úadd_jit_libraryr  r   r   r5   r1  s         r   Útest_lib_dependszTestOrcLLJIT.test_lib_depends  sÃ   € Ø%)§X¢X¡Z¤ZÑ"ˆ�˜	ÝÔ'Ñ)Ô)ßŠV•N×)Ò)µÔ1HÑ1JÔ1JÐ)ÑKÔKÑLÔLßŠ]˜<Ñ(Ô(ßŠ_˜UÑ#Ô#ßŠT�%˜Ñ&Ô&ð	 	ð
 CÐ,�i��u¥eÑ,Ô,¨V°LÔ-AÑBÔBÀ1ÀbÑIÔIˆØ×Ò˜˜CÑ Ô Ð Ð Ð r3   c                 ó¸   — |                       ¦   «         \  }}}|j        }|                      |j        |¦  «         t          |¦  «         ~t          |¦  «         d S r'   )rG   rØ  rù   r›   )r1   r  r  rƒ   rÙ  s        r   rÚ  zTestOrcLLJIT.test_target_data#  sQ   € ØŸš™œ‰ˆ��AØÔˆà�Š�eÔ'¨Ñ,Ô,Ð,ÝˆB‰ŒˆØÝˆB‰Œˆˆˆr3   c                 ól  — t          d¦  «        }t          j        ¦   «         }t          j        ¦   «         }|                     t
                               t          j        ¦   «         ¬¦  «        ¦  «                             dt          j
        |¦  «        ¦  «                             d¦  «                             |d¦  «        }|d         }|                      |¦  «         |                        t          t           ¦  «        |¦  «        ¦   «         d¦  «         ~|                      |j        d¦  «         d S )Nr   r8   ÚAræ   é   é   )r   r(   r  r  r  Úasm_ext_ctorsr:   r;   r   rE  Ú	addressofr  r  rþ   r5   r   r   r  rk  )r1   Úshared_valuer  r¶   r  ræ   s         r   Útest_global_ctors_dtorsz$TestOrcLLJIT.test_global_ctors_dtors,  s  € õ ˜q‘z”zˆÝÔ*Ñ,Ô,ˆÝÔ(Ñ*Ô*ˆØßŠV•M×(Ò(µÔ0GÑ0IÔ0IÐ(ÑJÔJÑKÔKßŠ]˜3¥Ô 0°Ñ >Ô >Ñ?Ô?ßŠ]˜5Ñ!Ô!ßŠT�%˜ÑÔð	 	ð
 �ŒiˆØ�Š˜ÑÔÐØ×ÒÐ.Ð)�¥5Ñ)Ô)¨#Ñ.Ô.Ñ0Ô0°"Ñ5Ô5Ð5ØØ×Ò˜LÔ.°Ñ3Ô3Ð3Ð3Ð3r3   c                 ó¬   — d}|                       t          |¦  «        5  |                      t          dd¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nz*Failed to materialize symbols:.*getversionÚ
getversionT)r  )r$  rš   rG   Úasm_getversion)r1   Úmsgs     r   Ú(test_lookup_current_process_symbol_failsz5TestOrcLLJIT.test_lookup_current_process_symbol_fails=  s¯   € ð ;ˆØ×#Ò#¥L°#Ñ6Ô6ð 	Ið 	IØ�HŠH•^ \À4ˆHÑHÔHÐHð	Ið 	Ið 	Iñ 	Iô 	Ið 	Ið 	Ið 	Ið 	Ið 	Ið 	Ið 	Iøøøð 	Ið 	Ið 	Ið 	Ið 	Ið 	Is   žA	Á	AÁAc                 ó@   — |                       t          dd d¦  «         d S )NrG  T)rG   rH  r0   s    r   Ú"test_lookup_current_process_symbolz/TestOrcLLJIT.test_lookup_current_process_symbolE  s    € Ø�Š• ¨t°TÑ:Ô:Ð:Ð:Ð:r3   c                 óR  ‡‡‡— t          j        ¦   «         Št                               t          j        ¦   «         ¬¦  «        Šˆˆfd„Šˆfd„t          t          j        ¦   «         ¦  «        D ¦   «         }|D ]}|                     ¦   «          Œ|D ]}| 	                    ¦   «          Œd S )Nr8   c                 ó   •‡ — ˆ ˆˆfd„}|S )Nc            
      óü   •— g } t          d¦  «        D ]h}|                      t          j        ¦   «                              ‰¦  «                             d¦  «                             ‰d‰› d|› �¦  «        ¦  «         Œid S )Né2   rZ  Úsum_rƒ   )r+  rÁ   r(   r  r  r  r  )ÚtrackingÚcÚir  Úllvm_irs     €€€r   Údo_workzDTestOrcLLJIT.test_thread_safe.<locals>.compile_many.<locals>.do_workM  sˆ   ø€ Ø�Ý˜r™œð Bð B�AØ—O’O¥DÔ$:Ñ$<Ô$<ß%+¢V¨G¡_¤_ß%2¢]°5Ñ%9Ô%9ß%)¢T¨%°¸°°¸A°°Ñ%@Ô%@ñBô Bð Bð BðBð Br3   rQ   )rT  rV  r  rU  s   ` €€r   Úcompile_manyz3TestOrcLLJIT.test_thread_safe.<locals>.compile_manyL  s5   øø€ ðBð Bð Bð Bð Bð Bð Bð ˆNr3   c                 óL   •— g | ] }t          j         ‰|¦  «        ¬ ¦  «        ‘Œ!S ))rK   )Ú	threadingÚThread)rp  rT  rW  s     €r   rr  z1TestOrcLLJIT.test_thread_safe.<locals>.<listcomp>W  s?   ø€ ð /ð /ð /Øõ Ô | |°A¡¤Ð7Ñ7Ô7ð /ð /ð /r3   )
r(   r  rP   r:   r;   r+  rj   Ú	cpu_countÚstartÚjoin)r1   ÚthsÚthrW  r  rU  s      @@@r   Útest_thread_safezTestOrcLLJIT.test_thread_safeH  sÉ   øøø€ ÝÔ*Ñ,Ô,ˆÝ—.’.­Ô(?Ñ(AÔ(A�.ÑBÔBˆð		ð 		ð 		ð 		ð 		ð 		ð/ð /ð /ð /Ý�bœl™nœnÑ-Ô-ð/ñ /ô /ˆàð 	ð 	ˆBØ�HŠH‰JŒJˆJˆJØð 	ð 	ˆBØ�GŠG‰IŒIˆIˆIð	ð 	r3   c                 óà  — |                       d¬¦  «        }|                      ¦   «         }t          j        |¦  «        }t          j        ¦   «                              |                     |¦  «        ¦  «                             d¦  «                             |d¦  «        } t          t          t          t          ¦  «        |d         ¦  «        }|                       |dd¦  «        d¦  «         d S )NFrF   rZ  r^   é   é   )rL   r@   r(   r  r  Úadd_object_imgr  r  r  r   r   r5   )r1   rL   r?   r  r  rZ  s         r   Útest_add_object_filez!TestOrcLLJIT.test_add_object_file^  sÄ   € Ø×,Ò,°Ð,Ñ7Ô7ˆØ�kŠk‰mŒmˆÝÔ*¨>Ñ:Ô:ˆÝÔ#Ñ%Ô%ßŠ^˜N×6Ò6°sÑ;Ô;Ñ<Ô<ßŠ]˜5Ñ!Ô!ßŠT�%˜ÑÔð 	ð -�i��u¥eÑ,Ô,¨R°¬YÑ7Ô7ˆØ×Ò˜˜˜Q ™œ AÑ&Ô&Ð&Ð&Ð&r3   c                 óæ  — |                       d¬¦  «        }|                      ¦   «         }|                     |¦  «        }t          ¦   «         \  }}	 t	          j        |d¦  «        5 }|                     |¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        |¦  «        }t          j	        ¦   «          
                    |¦  «                             d¦  «                             |d¦  «        } t          t          t          t          ¦  «        |d         ¦  «        }	|                       |	dd¦  «        d¦  «         t	          j        |¦  «         d S # t	          j        |¦  «         w xY w)NFrF   ÚwbrZ  r^   rb  rc  )rL   r@   r  r   rj   ÚfdopenÚwriter(   r  r  Úadd_object_filer  r  r   r   r5   Úunlink)
r1   rL   r?   Úobj_binÚ	temp_descÚ	temp_pathr‰  r  r  rZ  s
             r   Ú$test_add_object_file_from_filesystemz1TestOrcLLJIT.test_add_object_file_from_filesystemi  sx  € Ø×,Ò,°Ð,Ñ7Ô7ˆØ�kŠk‰mŒmˆØ ×,Ò,¨SÑ1Ô1ˆÝ&™yœyÑˆ	�9ð	!Ý”˜9 dÑ+Ô+ð !¨qØ—’˜Ñ Ô Ð ð!ð !ð !ñ !ô !ð !ð !ð !ð !ð !ð !øøøð !ð !ð !ð !åÔ.¨~Ñ>Ô>ˆEÝÔ'Ñ)Ô)ß ’ Ñ+Ô+ß’˜uÑ%Ô%ß’�e˜UÑ#Ô#ð ð 1•)�E¥5­%Ñ0Ô0°°E´Ñ;Ô;ˆCØ×Ò˜S˜S  A™YœY¨Ñ*Ô*Ð*åŒI�iÑ Ô Ð Ð Ð ø�BŒI�iÑ Ô Ð Ð øøøs1   ÁE Á'B	Á=E Â	BÂE ÂBÂB3E ÅE0)rM   rN   rO   rP   r   r   rG   r"  r&  r)  r¾  rH  rJ  r5  rÖ  r<  rÚ  rE  rJ  rL  r`  re  ro  rQ   r3   r   r  r  ¼  s=  € € € € € ð ¨¸tØ¨¨°5¸%ÀÑ)GÔ)GØ!ð+ð +ð +ð +ð&.ð .ð .ð	,ð 	,ð 	,ðPð Pð Pð&ð &ð &ð&ð &ð &ð&ð &ð &ð'ð 'ð 'ðð ð ð!ð !ð !ðð ð ð4ð 4ð 4ð"Ið Ið Ið;ð ;ð ;ðð ð ð,	'ð 	'ð 	'ð!ð !ð !ð !ð !r3   r  c                   óª   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zd
„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ ZdS )ÚTestValueRefc                 óž   — |                       ¦   «         }|                     d¦  «        }|                      t          |¦  «        d¦  «         d S )NrA   z@glob = global i32 0)r@   rC   r5   r›   ©r1   r?   rA   s      r   rB  zTestValueRef.test_str  sE   € Ø�kŠk‰mŒmˆØ×&Ò& vÑ.Ô.ˆØ×Ò�˜T™œÐ$:Ñ;Ô;Ð;Ð;Ð;r3   c                 óÒ   — |                       ¦   «         }|                     d¦  «        }|                      |j        d¦  «         d|_        |                      |j        d¦  «         d S )NrA   Úfoobar)r@   rC   r5   rD   rs  s      r   rM  zTestValueRef.test_name„  s_   € Ø�kŠk‰mŒmˆØ×&Ò& vÑ.Ô.ˆØ×Ò˜œ FÑ+Ô+Ð+ØˆŒ	Ø×Ò˜œ HÑ-Ô-Ð-Ð-Ð-r3   c                 ó–  — |                       ¦   «         }|                     d¦  «        }|j        }|                      |j        t          j        ¦  «         ||_        |                      |j        |¦  «         dD ]N}||_        |                      |j        t          j        ¦  «         |                      |j        j        |¦  «         ŒOd S )NrA   )ÚinternalÚexternal)r@   rC   Úlinkagerý   r(   ÚLinkager5   rD   )r1   r?   rA   ry  s       r   Útest_linkagezTestValueRef.test_linkage‹  sº   € Ø�kŠk‰mŒmˆØ×&Ò& vÑ.Ô.ˆØ”,ˆØ×Ò˜dœl­D¬LÑ9Ô9Ð9ØˆŒØ×Ò˜œ wÑ/Ô/Ð/Ø/ð 	9ð 	9ˆGØ"ˆDŒLØ×!Ò! $¤,µ´Ñ=Ô=Ð=Ø×Ò˜Tœ\Ô.°Ñ8Ô8Ð8Ð8ð	9ð 	9r3   c                 ó–  — |                       ¦   «         }|                     d¦  «        }|j        }|                      |j        t          j        ¦  «         ||_        |                      |j        |¦  «         dD ]N}||_        |                      |j        t          j        ¦  «         |                      |j        j        |¦  «         ŒOd S )NrA   )ÚhiddenÚ	protectedr  )r@   rC   Ú
visibilityrý   r(   Ú
Visibilityr5   rD   )r1   r?   rA   r  s       r   Útest_visibilityzTestValueRef.test_visibility—  sº   € Ø�kŠk‰mŒmˆØ×&Ò& vÑ.Ô.ˆØ”_ˆ
Ø×Ò˜dœo­t¬Ñ?Ô?Ð?Ø$ˆŒØ×Ò˜œ¨*Ñ5Ô5Ð5Ø<ð 	?ð 	?ˆJØ(ˆDŒOØ×!Ò! $¤/µ4´?ÑCÔCÐCØ×Ò˜Tœ_Ô1°:Ñ>Ô>Ð>Ð>ð	?ð 	?r3   c                 ó–  — |                       ¦   «         }|                     d¦  «        }|j        }|                      |j        t          j        ¦  «         ||_        |                      |j        |¦  «         dD ]N}||_        |                      |j        t          j        ¦  «         |                      |j        j        |¦  «         ŒOd S )NrA   )Ú	dllimportÚ	dllexportr  )r@   rC   Ústorage_classrý   r(   ÚStorageClassr5   rD   )r1   r?   rA   r…  s       r   Útest_storage_classzTestValueRef.test_storage_class£  sÇ   € Ø�kŠk‰mŒmˆØ×&Ò& vÑ.Ô.ˆØÔ*ˆØ×Ò˜dÔ0µ$Ô2CÑDÔDÐDØ*ˆÔØ×Ò˜Ô+¨]Ñ;Ô;Ð;ØBð 	Eð 	EˆMØ!.ˆDÔØ×!Ò! $Ô"4µdÔ6GÑHÔHÐHØ×Ò˜TÔ/Ô4°mÑDÔDÐDÐDð	Eð 	Er3   c                 ó`  — |                       ¦   «         }|                     d¦  «        }|                     d¦  «         |                      t          ¦  «        5 }|                     d¦  «         d d d ¦  «         n# 1 swxY w Y   |                      t          |j        ¦  «        d¦  «         d S )NrZ  Ú	nocaptureÚzextzno such attribute 'zext')r@   r[  Úadd_function_attributerÝ   Ú
ValueErrorr5   r›   rß   )r1   r?   rë   Úraisess       r   Útest_add_function_attributez(TestValueRef.test_add_function_attribute¯  sØ   € Ø�kŠk‰mŒmˆØ×Ò˜eÑ$Ô$ˆØ
×!Ò! +Ñ.Ô.Ð.Ø×Ò�zÑ*Ô*ð 	.¨fØ×%Ò% fÑ-Ô-Ð-ð	.ð 	.ð 	.ñ 	.ô 	.ð 	.ð 	.ð 	.ð 	.ð 	.ð 	.øøøð 	.ð 	.ð 	.ð 	.à×Ò�˜VÔ-Ñ.Ô.Ð0JÑKÔKÐKÐKÐKs   ÁA;Á;A?ÂA?c                 óŽ   — |                       ¦   «         }|                     d¦  «        }|                      |j         |¦  «         d S ©NrA   )r@   rC   rù   rs  s      r   Útest_modulezTestValueRef.test_module·  s>   € Ø�kŠk‰mŒmˆØ×&Ò& vÑ.Ô.ˆØ�Š�d”k 3Ñ'Ô'Ð'Ð'Ð'r3   c                 ó¦   — |                       ¦   «         }|                     d¦  «        }|j        }|                      |t          j        ¦  «         d S r�  )r@   rC   rá  rý   r(   ÚTypeRef©r1   r?   rA   Útps       r   Ú	test_typezTestValueRef.test_type¼  sG   € Ø�kŠk‰mŒmˆØ×&Ò& vÑ.Ô.ˆØŒYˆØ×Ò˜b¥$¤,Ñ/Ô/Ð/Ð/Ð/r3   c                 ó4  — |                       ¦   «         }|                     d¦  «        }|j        }|                      |j        d¦  «         |                     d¦  «        }|                      t          j        d|j        j        j        ¦  «        ¦  «         d S )NrA   r¿   ru  r‚  )	r@   rC   rá  r5   rD   r  rr   rx   Úelement_type)r1   r?   rA   r•  Ústs        r   Útest_type_namezTestValueRef.test_type_nameÂ  s™   € Ø�kŠk‰mŒmˆØ×&Ò& vÑ.Ô.ˆØŒYˆØ×Ò˜œ "Ñ%Ô%Ð%Ø×$Ò$ ]Ñ3Ô3ˆØ×Ò�RœXÐ&DØ&(¤gÔ&:Ô&?ñAô Añ 	Bô 	Bð 	Bð 	Bð 	Br3   c                 ó¬   — |                       ¦   «         }|                     d¦  «        }|j        }|                      t	          |¦  «        d¦  «         d S )NrA   zi32*)r@   rC   rá  r5   r›   r”  s       r   Útest_type_printing_variablez(TestValueRef.test_type_printing_variableË  sK   € Ø�kŠk‰mŒmˆØ×&Ò& vÑ.Ô.ˆØŒYˆØ×Ò�˜R™œ &Ñ)Ô)Ð)Ð)Ð)r3   c                 ó¨   — |                       ¦   «         }|                     d¦  «        }|                      t          |j        ¦  «        d¦  «         d S )NrZ  zi32 (i32, i32)*)r@   r[  r5   r›   rá  r^  s      r   Útest_type_printing_functionz(TestValueRef.test_type_printing_functionÑ  sG   € Ø�kŠk‰mŒmˆØ×Ò˜eÑ$Ô$ˆØ×Ò�˜RœW™œÐ'8Ñ9Ô9Ð9Ð9Ð9r3   c                 óˆ  — |                       ¦   «         }|                     d¦  «        }|                      |j        j        ¦  «         |                      t          j        dt          |j        ¦  «        ¦  «        ¦  «         |                      t          j        dt          |j        j	        ¦  «        ¦  «        ¦  «         d S )Nru  z%struct\.glob_type(\.[\d]+)?\*rb  )
r@   rC   rþ   rá  Ú
is_pointerr  rr   rx   r›   r˜  )r1   r?   r™  s      r   Útest_type_printing_structz&TestValueRef.test_type_printing_structÖ  s°   € Ø�kŠk‰mŒmˆØ×$Ò$ ]Ñ3Ô3ˆØ�Š˜œÔ*Ñ+Ô+Ð+Ø×Ò�RœXÐ&GÝ&)¨"¬'¡l¤lñ4ô 4ñ 	5ô 	5ð 	5à×Ò�RœXØGÝ�”Ô$Ñ%Ô%ñ'ô 'ñ 	(ô 	(ð 	(ð 	(ð 	(r3   c                 ó~   — |                       ¦   «         }|                     ¦   «          |                     ¦   «          d S r'   )rA   rD  )r1   rA   s     r   rH  zTestValueRef.test_closeà  s-   € Ø�yŠy‰{Œ{ˆØ�
Š
‰ŒˆØ�
Š
‰Œˆˆˆr3   c                 ó  — |                       ¦   «                              d¦  «        }|                       t          ¦  «                             d¦  «        }|                      |j        ¦  «         |                      |j        ¦  «         d S r7  )r@   r[  Úasm_sum_declarerË  Úis_declarationrþ   )r1   ÚdefinedÚdeclareds      r   Útest_is_declarationz TestValueRef.test_is_declarationå  sn   € Ø—+’+‘-”-×,Ò,¨UÑ3Ô3ˆØ—;’;�Ñ/Ô/×<Ò<¸UÑCÔCˆØ×Ò˜Ô/Ñ0Ô0Ð0Ø�Š˜Ô/Ñ0Ô0Ð0Ð0Ð0r3   c                 óæ   — |                       t          ¦  «        }t          |j        ¦  «        }|                      t          |¦  «        d¦  «         |D ]}|                      |j        ¦  «         Œd S ©Nrn  )r@   rP   r~  rv  r5   ry   rþ   Ú	is_global)r1   r?   Úgvarsr  s       r   Útest_module_global_variablesz)TestValueRef.test_module_global_variablesë  so   € Ø�kŠk�'Ñ"Ô"ˆÝ�SÔ)Ñ*Ô*ˆØ×Ò�˜U™œ QÑ'Ô'Ð'Øð 	)ð 	)ˆAØ�OŠO˜AœKÑ(Ô(Ð(Ð(ð	)ð 	)r3   c                 ón  — |                       ¦   «         }t          |j        ¦  «        }|                      t	          |¦  «        d¦  «         |d         }|                      |j        ¦  «         |                      |j        d¦  «         |                      t          ¦  «        5  |j
         d d d ¦  «         n# 1 swxY w Y   |                      t          ¦  «        5  |j         d d d ¦  «         n# 1 swxY w Y   |                      t          ¦  «        5  |j         d d d ¦  «         d S # 1 swxY w Y   d S r|  )r@   r~  r}  r5   ry   rþ   Úis_functionrD   rÝ   rŒ  ÚinstructionsÚoperandsÚopcode)r1   r?   r  r´   s       r   Útest_module_functionsz"TestValueRef.test_module_functionsò  sÑ  € Ø�kŠk‰mŒmˆÝ�S”]Ñ#Ô#ˆØ×Ò�˜U™œ QÑ'Ô'Ð'Ø�QŒxˆØ�Š˜Ô(Ñ)Ô)Ð)Ø×Ò˜œ EÑ*Ô*Ð*à×Ò�zÑ*Ô*ð 	ð 	ØÔÐð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	à×Ò�zÑ*Ô*ð 	ð 	ØŒMˆMð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	à×Ò�zÑ*Ô*ð 	ð 	ØŒKˆKð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	ð 	s6   Â#B7Â7B;Â>B;ÃC0Ã0C4Ã7C4ÄD*Ä*D.Ä1D.c                 ó´  — |                       ¦   «         }|                     d¦  «        }|                      |j        ¦  «         t	          |j        ¦  «        }|                      t          |¦  «        d¦  «         |                      |d         j        ¦  «         |                      |d         j        ¦  «         |                      |d         j	        d¦  «         |                      t          |d         j        ¦  «        d¦  «         |                      |d         j	        d¦  «         |                      t          |d         j        ¦  «        d¦  «         |                      t          ¦  «        5  |d         j         d d d ¦  «         n# 1 swxY w Y   |                      t          ¦  «        5  |d         j         d d d ¦  «         d S # 1 swxY w Y   d S )NrZ  r^   r   r]   ú.1Úi32ú.2)r@   r[  rþ   r¯  r~  Ú	argumentsr5   ry   Úis_argumentrD   r›   rá  rÝ   rŒ  Úblocks)r1   r?   r´   r­   s       r   Útest_function_argumentsz$TestValueRef.test_function_arguments  s  € Ø�kŠk‰mŒmˆØ×Ò Ñ&Ô&ˆØ�Š˜Ô(Ñ)Ô)Ð)Ý�D”NÑ#Ô#ˆØ×Ò�˜T™œ AÑ&Ô&Ð&Ø�Š˜˜QœÔ+Ñ,Ô,Ð,Ø�Š˜˜QœÔ+Ñ,Ô,Ð,Ø×Ò˜˜aœœ tÑ,Ô,Ð,Ø×Ò�˜T !œWœ\Ñ*Ô*¨EÑ2Ô2Ð2Ø×Ò˜˜aœœ tÑ,Ô,Ð,Ø×Ò�˜T !œWœ\Ñ*Ô*¨EÑ2Ô2Ð2à×Ò�zÑ*Ô*ð 	ð 	Ø�ŒGŒNˆNð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	à×Ò�zÑ*Ô*ð 	ð 	Ø�ŒGÔÐð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	ð 	s$   Å3FÆFÆFÆ2GÇGÇGc                 ó  — |                       ¦   «                              d¦  «        }t          |j        ¦  «        }|                      t          |¦  «        d¦  «         |d         }|                      |j        ¦  «         d S )NrZ  r]   r   )r@   r[  r~  rº  r5   ry   rþ   Úis_block)r1   r´   rº  rµ   s       r   Útest_function_blocksz!TestValueRef.test_function_blocks  sk   € Ø�{Š{‰}Œ}×)Ò)¨%Ñ0Ô0ˆÝ�d”kÑ"Ô"ˆØ×Ò�˜V™œ aÑ(Ô(Ð(Ø�q”	ˆØ�Š˜œÑ'Ô'Ð'Ð'Ð'r3   c                 óx  — |                       ¦   «                              d¦  «        }t          t          |j        ¦  «        d         j        ¦  «        }|                      t          |¦  «        d¦  «         |                      |d         j        ¦  «         |                      |d         j        ¦  «         |                      |d         j        ¦  «         |                      |d         j	        d¦  «         |                      |d         j	        d¦  «         |                      |d         j	        d¦  «         d S )NrZ  r   rb  r]   r^   r{   r!   )
r@   r[  r~  rº  r°  r5   ry   rþ   Úis_instructionr²  )r1   r´   Úinstss      r   Útest_block_instructionsz$TestValueRef.test_block_instructions  sý   € Ø�{Š{‰}Œ}×)Ò)¨%Ñ0Ô0ˆÝ•T˜$œ+Ñ&Ô& qÔ)Ô6Ñ7Ô7ˆØ×Ò�˜U™œ QÑ'Ô'Ð'Ø�Š˜˜aœÔ/Ñ0Ô0Ð0Ø�Š˜˜aœÔ/Ñ0Ô0Ð0Ø�Š˜˜aœÔ/Ñ0Ô0Ð0Ø×Ò˜˜qœœ¨%Ñ0Ô0Ð0Ø×Ò˜˜qœœ¨%Ñ0Ô0Ð0Ø×Ò˜˜qœœ¨%Ñ0Ô0Ð0Ð0Ð0r3   c                 ó  — |                       ¦   «                              d¦  «        }t          t          |j        ¦  «        d         j        ¦  «        d         }|                      |j        d¦  «         t          |j        ¦  «        }|                      t          |¦  «        d¦  «         |  	                    |d         j
        ¦  «         |  	                    |d         j
        ¦  «         |                      |d         j        d¦  «         |                      t          |d         j        ¦  «        d¦  «         |                      |d         j        d¦  «         |                      t          |d         j        ¦  «        d¦  «         d S )	NrZ  r   r{   r^   r]   rµ  r¶  r·  )r@   r[  r~  rº  r°  r5   r²  r±  ry   rþ   Ú
is_operandrD   r›   rá  )r1   r´   r{   r±  s       r   Útest_instruction_operandsz&TestValueRef.test_instruction_operands%  s@  € Ø�{Š{‰}Œ}×)Ò)¨%Ñ0Ô0ˆÝ•4˜œÑ$Ô$ QÔ'Ô4Ñ5Ô5°aÔ8ˆØ×Ò˜œ UÑ+Ô+Ð+Ý˜œÑ%Ô%ˆØ×Ò�˜X™œ¨Ñ*Ô*Ð*Ø�Š˜ œÔ.Ñ/Ô/Ð/Ø�Š˜ œÔ.Ñ/Ô/Ð/Ø×Ò˜ !œÔ)¨4Ñ0Ô0Ð0Ø×Ò�˜X aœ[Ô-Ñ.Ô.°Ñ6Ô6Ð6Ø×Ò˜ !œÔ)¨4Ñ0Ô0Ð0Ø×Ò�˜X aœ[Ô-Ñ.Ô.°Ñ6Ô6Ð6Ð6Ð6r3   c                 óà  — |                       t          ¦  «        }|j        D ]Ë}t          |j        ¦  «        }|j        dk    r|                      |dg¦  «         Œ9|j        dk    r‡|                      |g ¦  «         t          |j        ¦  «        }|                      t          |d         j        ¦  «        dg¦  «         |                      t          |d         j        ¦  «        g ¦  «         ŒÌd S )NÚa_readonly_funcs   readonlyÚa_arg0_return_funcr   s   returnedr]   )r@   Úasm_attributesr}  r~  Ú
attributesrD   r5   r¸  )r1   r?   r´   Úattrsr­   s        r   Útest_function_attributesz%TestValueRef.test_function_attributes2  sæ   € Ø�kŠk�.Ñ)Ô)ˆØ”Mð 	?ð 	?ˆDÝ˜œÑ)Ô)ˆEØŒyÐ-Ò-Ð-Ø× Ò  ¨¨Ñ6Ô6Ð6Ð6Ø”Ð2Ò2Ð2Ø× Ò  ¨Ñ+Ô+Ð+Ý˜DœNÑ+Ô+�Ø× Ò ¥ d¨1¤gÔ&8Ñ!9Ô!9¸K¸=ÑIÔIÐIØ× Ò ¥ d¨1¤gÔ&8Ñ!9Ô!9¸2Ñ>Ô>Ð>øð	?ð 	?r3   c                 ó€  — |                       ¦   «         }|                      |                     d¦  «        j        t          j        j        ¦  «         |                     d¦  «        }|                      |j        t          j        j        ¦  «         t          |j
        ¦  «        d         }|                      |j        t          j        j        ¦  «         t          |j        ¦  «        d         }|                      |j        t          j        j        ¦  «         |                      t          |j        ¦  «        d         j        t          j        j        ¦  «         |                      t          |j        ¦  «        d         j        t          j        j        ¦  «         |                       t           ¦  «                             d¦  «        }t          t          |j
        ¦  «        d         j        ¦  «        d         }|                      t          |j        ¦  «        d         j        t          j        j        ¦  «         d S )NrA   rZ  r   r]   ræ   )r@   r5   rC   Ú
value_kindr(   Ú	ValueKindÚglobal_variabler[  Úfunctionr~  rº  Úbasic_blockr°  Úinstructionr±  Úconstant_intÚasm_inlineasmÚ
inline_asm)r1   r?   r´   rµ   ÚinstÚ	iasm_funcÚ	iasm_insts          r   Útest_value_kindzTestValueRef.test_value_kind>  sÃ  € Ø�kŠk‰mŒmˆØ×Ò˜×0Ò0°Ñ8Ô8ÔCÝœÔ7ñ	9ô 	9ð 	9à×Ò Ñ&Ô&ˆØ×Ò˜œ­$¬.Ô*AÑBÔBÐBÝ�T”[Ñ!Ô! !Ô$ˆØ×Ò˜Ô)­4¬>Ô+EÑFÔFÐFÝ�EÔ&Ñ'Ô'¨Ô*ˆØ×Ò˜œ­$¬.Ô*DÑEÔEÐEØ×Ò�˜dœmÑ,Ô,¨QÔ/Ô:ÝœÔ4ñ	6ô 	6ð 	6à×Ò�˜dœmÑ,Ô,¨QÔ/Ô:ÝœÔ3ñ	5ô 	5ð 	5ð —K’K¥Ñ.Ô.×;Ò;¸EÑBÔBˆ	Ý�˜iÔ.Ñ/Ô/°Ô2Ô?Ñ@Ô@ÀÔCˆ	Ø×Ò�˜iÔ0Ñ1Ô1°!Ô4Ô?ÝœÔ2ñ	4ô 	4ð 	4ð 	4ð 	4r3   c                 ó¼  — |                       ¦   «         }|                      |                     d¦  «        j        ¦  «         d}|j        D ]z}|                      |j        ¦  «         |j        D ]V}|                      |j        ¦  «         |j        D ]2}|                      |j        ¦  «         |j        D ]}|j        r|dz  }ŒŒ3ŒWŒ{|  	                    |d¦  «         d S )NrA   r   r]   )
r@   rþ   rC   Úis_constantr}  rº  rË  r°  r±  r5   )r1   r?   Úconstant_operandsr´   rµ   r×  Úops          r   Útest_is_constantzTestValueRef.test_is_constantR  s  € Ø�kŠk‰mŒmˆØ�Š˜×/Ò/°Ñ7Ô7ÔCÑDÔDÐDØÐØ”Mð 	3ð 	3ˆDØ�OŠO˜DÔ,Ñ-Ô-Ð-Øœð 3ð 3�Ø× Ò  Ô!2Ñ3Ô3Ð3Ø!Ô.ð 3ð 3�DØ×$Ò$ TÔ%5Ñ6Ô6Ð6Ø"œmð 3ð 3˜Øœ>ð 3Ø-°Ñ2Ð-øð3ð3ð3ð 	×ÒÐ*¨AÑ.Ô.Ð.Ð.Ð.r3   c                 ó.  — |                       ¦   «         }|                     d¦  «        }t          t          |j        ¦  «        d         j        ¦  «        }|                      |d         j        d¦  «         t          |d         j        ¦  «        }|                      |d         j	        ¦  «         |  
                    |d         j	        ¦  «         |                      |d                              ¦   «         d¦  «         |                      t          ¦  «        5  |d                              ¦   «          d d d ¦  «         n# 1 swxY w Y   |                       t          ¦  «        }|                     d¦  «        }t          t          |j        ¦  «        d         j        ¦  «        }t          |d         j        ¦  «        d         }t          |d         j        ¦  «        d         }|                      |                     ¦   «         d¦  «         |                      |                     d¬¦  «        d	¦  «         |                     d
¬¦  «        }t                               |                     dd¦  «        dd¬¦  «        }|                      |d	¦  «         d S )NrZ  r   r]   r{   r^   rc  T)Ú
signed_intrº  FrÝ  Úlittle)Úsigned)r@   r[  r~  rº  r°  r5   r²  r±  rþ   rÜ  rË  Úget_constant_valuerÝ   rŒ  Úasm_sum3ÚintÚ
from_bytesÚto_bytes)	r1   r?   r´   rÁ  r±  Úposint64Únegint64Úas_u64Úas_i64s	            r   Útest_constant_intzTestValueRef.test_constant_intb  sk  € Ø�kŠk‰mŒmˆØ×Ò Ñ&Ô&ˆÝ•T˜$œ+Ñ&Ô& qÔ)Ô6Ñ7Ô7ˆØ×Ò˜˜qœœ¨%Ñ0Ô0Ð0Ý˜˜aœÔ)Ñ*Ô*ˆØ�Š˜ œÔ/Ñ0Ô0Ð0Ø×Ò˜ !œÔ0Ñ1Ô1Ð1Ø×Ò˜ !œ×7Ò7Ñ9Ô9¸1Ñ=Ô=Ð=Ø×Ò�zÑ*Ô*ð 	-ð 	-Ø�QŒK×*Ò*Ñ,Ô,Ð,ð	-ð 	-ð 	-ñ 	-ô 	-ð 	-ð 	-ð 	-ð 	-ð 	-ð 	-øøøð 	-ð 	-ð 	-ð 	-ð �kŠk�(Ñ#Ô#ˆØ×Ò Ñ&Ô&ˆÝ•T˜$œ+Ñ&Ô& qÔ)Ô6Ñ7Ô7ˆÝ˜˜aœÔ)Ñ*Ô*¨1Ô-ˆÝ˜˜aœÔ)Ñ*Ô*¨1Ô-ˆØ×Ò˜×4Ò4Ñ6Ô6¸Ñ:Ô:Ð:Ø×Ò˜×4Ò4ÀÐ4ÑEÔEÀrÑJÔJÐJð ×,Ò,¸Ð,Ñ>Ô>ˆÝ—’ §¢°°8Ñ <Ô <¸hØ'+ð  ñ -ô -ˆà×Ò˜ Ñ$Ô$Ð$Ð$Ð$s   ÄE Å EÅEc                 ó’  — |                       t          ¦  «        }|                     d¦  «        }t          t          |j        ¦  «        d         j        ¦  «        }|                      t          |¦  «        d¦  «         |                      |d         j        d¦  «         t          |d         j	        ¦  «        }|  
                    |d         j        ¦  «         |                      |d                              ¦   «         d¦  «         |  
                    |d         j        ¦  «         |                      |d                              ¦   «         d¦  «         |                       t          ¦  «        }|                     d¦  «        }t          t          |j        ¦  «        d         j        ¦  «        d         }t          |j	        ¦  «        }|                      t           ¦  «        5  |d                              ¦   «          d d d ¦  «         n# 1 swxY w Y   |                      |d                              d¬	¦  «        d¦  «         d S )
Nræ   r   r^   r¯   g        r]   g…ëQ¸	@T)Úround_fp)r@   r5  r[  r~  rº  r°  r5   ry   r²  r±  rþ   rÜ  ÚassertAlmostEqualrä  Úasm_double_inaccuraterÝ   rŒ  )r1   r?   r´   rÁ  r±  r×  s         r   Útest_constant_fpzTestValueRef.test_constant_fp|  s  € Ø�kŠkÕ+Ñ,Ô,ˆØ×Ò Ñ&Ô&ˆÝ•T˜$œ+Ñ&Ô& qÔ)Ô6Ñ7Ô7ˆØ×Ò�˜U™œ QÑ'Ô'Ð'Ø×Ò˜˜qœœ¨&Ñ1Ô1Ð1Ý˜˜aœÔ)Ñ*Ô*ˆØ�Š˜ œÔ/Ñ0Ô0Ð0Ø×Ò˜x¨œ{×=Ò=Ñ?Ô?ÀÑEÔEÐEØ�Š˜ œÔ/Ñ0Ô0Ð0Ø×Ò˜x¨œ{×=Ò=Ñ?Ô?ÀÑFÔFÐFà�kŠkÕ/Ñ0Ô0ˆØ×Ò Ñ&Ô&ˆÝ•D˜œÑ%Ô% aÔ(Ô5Ñ6Ô6°qÔ9ˆÝ˜œÑ&Ô&ˆØ×Ò�zÑ*Ô*ð 	-ð 	-Ø�QŒK×*Ò*Ñ,Ô,Ð,ð	-ð 	-ð 	-ñ 	-ô 	-ð 	-ð 	-ð 	-ð 	-ð 	-ð 	-øøøð 	-ð 	-ð 	-ð 	-à×Ò˜x¨œ{×=Ò=ÀtÐ=ÑLÔLÈaÑPÔPÐPÐPÐPs   Ç%HÈHÈHc                 ó€  — |                       t          ¦  «        }|                     d¦  «        }t          t          |j        ¦  «        d         j        ¦  «        d         }t          |j        ¦  «        d         }|                      |j        ¦  «         |  	                    | 
                    ¦   «         d¦  «         d S )NrL  r   z	i64* null)r@   Úasm_null_constantr[  r~  rº  r°  r±  rþ   rÜ  r5   rä  )r1   r?   r´   r×  Úargs        r   Útest_constant_as_stringz$TestValueRef.test_constant_as_string�  s›   € Ø�kŠkÕ+Ñ,Ô,ˆØ×Ò Ñ&Ô&ˆÝ•D˜œÑ%Ô% aÔ(Ô5Ñ6Ô6°qÔ9ˆÝ�4”=Ñ!Ô! !Ô$ˆØ�Š˜œÑ(Ô(Ð(Ø×Ò˜×/Ò/Ñ1Ô1°;Ñ?Ô?Ð?Ð?Ð?r3   N)rM   rN   rO   rB  rM  r{  r�  r‡  rŽ  r‘  r–  rš  rœ  rž  r¡  rH  r¨  r­  r³  r»  r¾  rÂ  rÅ  rÌ  rÚ  rß  rí  rò  rö  rQ   r3   r   rq  rq  }  s«  € € € € € ð<ð <ð <ð
.ð .ð .ð
9ð 
9ð 
9ð
?ð 
?ð 
?ð
Eð 
Eð 
EðLð Lð Lð(ð (ð (ð
0ð 0ð 0ðBð Bð Bð*ð *ð *ð:ð :ð :ð
(ð (ð (ðð ð ð
1ð 1ð 1ð)ð )ð )ðð ð ðð ð ð$(ð (ð (ð	1ð 	1ð 	1ð7ð 7ð 7ð
?ð 
?ð 
?ð4ð 4ð 4ð(/ð /ð /ð %ð %ð %ð4Qð Qð Qð(@ð @ð @ð @ð @r3   rq  c                   ó,   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ ZdS )Ú
TestTargetc                 óŒ  — t           j        j        }|                      t          ¦  «        5 } |d¦  «         d d d ¦  «         n# 1 swxY w Y   |                      dt          |j        ¦  «        ¦  «         t          j        ¦   «         } ||¦  «        }|  	                    |j
        |¦  «         |                     ¦   «          d S )Nru  z(No available targets are compatible with)r(   rH   r™   rÝ   rš   rà   r›   rß   r;   r5   r9   rD  )r1   r‰  rá   r9   rK   s        r   Útest_from_triplezTestTarget.test_from_triple›  sé   € ÝŒKÔ#ˆØ×Ò�|Ñ,Ô,ð 	°ØˆAˆh‰KŒKˆKð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	à�ŠÐ@Ý˜"œ,Ñ'Ô'ñ	)ô 	)ð 	)åÔ(Ñ*Ô*ˆØ��6‘”ˆØ×Ò˜œ¨Ñ/Ô/Ð/Ø�Š‰Œˆˆˆs   ¬AÁAÁAc                 óð   — t           j                             t          j        ¦   «         ¦  «        }|                     ddddd¦  «         t          j        ¦   «         }|                     |dddd¦  «         d S )Nr¿   r]   r  )r(   rH   r™   r;   rJ   r  )r1   rK   r  s      r   Útest_create_target_machinez%TestTarget.test_create_target_machine¦  sl   € Ý”×(Ò(­Ô)@Ñ)BÔ)BÑCÔCˆà×$Ò$ R¨¨Q°	¸9ÑEÔEÐEåÔ$Ñ&Ô&ˆØ×$Ò$ S¨"¨a°¸IÑFÔFÐFÐFÐFr3   c                 ó"  — t           j                             t          j        ¦   «         ¦  «        }t           j                             ¦   «         }|                      |j        t          ¦  «         |                      |j        |j        ¦  «         d S r'   )	r(   rH   r™   r;   rI   rý   rD   r›   r5   ©r1   ÚtÚus      r   rM  zTestTarget.test_name®  sk   € ÝŒK×#Ò#¥DÔ$;Ñ$=Ô$=Ñ>Ô>ˆÝŒK×+Ò+Ñ-Ô-ˆØ×Ò˜aœf¥cÑ*Ô*Ð*Ø×Ò˜œ ¤Ñ(Ô(Ð(Ð(Ð(r3   c                 ó"  — t           j                             t          j        ¦   «         ¦  «        }t           j                             ¦   «         }|                      |j        t          ¦  «         |                      |j        |j        ¦  «         d S r'   )	r(   rH   r™   r;   rI   rý   Údescriptionr›   r5   rþ  s      r   Útest_descriptionzTestTarget.test_description´  sk   € ÝŒK×#Ò#¥DÔ$;Ñ$=Ô$=Ñ>Ô>ˆÝŒK×+Ò+Ñ-Ô-ˆØ×Ò˜aœm­SÑ1Ô1Ð1Ø×Ò˜œ¨¬Ñ6Ô6Ð6Ð6Ð6r3   c                 óð   — t           j                             t          j        ¦   «         ¦  «        }t	          |¦  «        }|                      |j        |¦  «         |                      |j        |¦  «         d S r'   )r(   rH   r™   r;   r›   rà   rD   r  )r1   rK   râ   s      r   rB  zTestTarget.test_strº  s^   € Ý”×(Ò(­Ô)@Ñ)BÔ)BÑCÔCˆÝ�‰KŒKˆØ�Š�f”k 1Ñ%Ô%Ð%Ø�Š�fÔ(¨!Ñ,Ô,Ð,Ð,Ð,r3   N)rM   rN   rO   rú  rü  rM  r  rB  rQ   r3   r   rø  rø  ™  sb   € € € € € ð	ð 	ð 	ðGð Gð Gð)ð )ð )ð7ð 7ð 7ð-ð -ð -ð -ð -r3   rø  c                   ó&   — e Zd Zd„ Zd„ Zd„ Zd„ ZdS )ÚTestTargetDatac                 ó*   — t          j        d¦  «        S )Nz%e-m:e-i64:64-f80:128-n8:16:32:64-S128)r(   Úcreate_target_datar0   s    r   rØ  zTestTargetData.target_dataÃ  s   € ÝÔ&Ð'NÑOÔOÐOr3   c                 ó²   — |                       ¦   «         }|                      ¦   «         }|                      |                     |j        ¦  «        d¦  «         d S )NrÝ  )rØ  rA   r5   rà  rá  ©r1   rÙ  rA   s      r   Útest_get_abi_sizez TestTargetData.test_get_abi_sizeÆ  sJ   € Ø×ÒÑÔˆØ�yŠy‰{Œ{ˆØ×Ò˜Ÿš¨¬Ñ3Ô3°QÑ7Ô7Ð7Ð7Ð7r3   c                 ó8  — |                       ¦   «         }|                      ¦   «         }|                      |                     |j        ¦  «        d¦  «         |                      d¦  «        }|                      |                     |j        ¦  «        d¦  «         d S )Nrn  ru  rÞ  )rØ  rA   r5   râ  rá  r
  s      r   Útest_get_pointee_abi_sizez(TestTargetData.test_get_pointee_abi_sizeË  sƒ   € Ø×ÒÑÔˆà�yŠy‰{Œ{ˆØ×Ò˜×0Ò0°´Ñ;Ô;¸QÑ?Ô?Ð?à�yŠy˜Ñ'Ô'ˆØ×Ò˜×0Ò0°´Ñ;Ô;¸RÑ@Ô@Ð@Ð@Ð@r3   c                 ó²  — |                       ¦   «         }|                      d¦  «        }|                      t          ¦  «        5  |                     |j        d¦  «         d d d ¦  «         n# 1 swxY w Y   |j        j        }|                      |                     |d¦  «        d¦  «         |                      |                     |d¦  «        d¦  «         d S )Nru  r   r]   rÝ  )rØ  rA   rÝ   rŒ  Úget_element_offsetrá  r˜  r5   )r1   rÙ  rA   Ústruct_types       r   Útest_get_struct_element_offsetz-TestTargetData.test_get_struct_element_offsetÔ  s  € Ø×ÒÑÔˆØ�yŠy˜Ñ'Ô'ˆà×Ò�zÑ*Ô*ð 	0ð 	0Ø×!Ò! $¤)¨QÑ/Ô/Ð/ð	0ð 	0ð 	0ñ 	0ô 	0ð 	0ð 	0ð 	0ð 	0ð 	0ð 	0øøøð 	0ð 	0ð 	0ð 	0ð ”iÔ,ˆØ×Ò˜×.Ò.¨{¸AÑ>Ô>ÀÑBÔBÐBØ×Ò˜×.Ò.¨{¸AÑ>Ô>ÀÑBÔBÐBÐBÐBs   ÁA,Á,A0Á3A0N)rM   rN   rO   rØ  r  r  r  rQ   r3   r   r  r  Á  s[   € € € € € ðPð Pð Pð8ð 8ð 8ð
Að Að Að	Cð 	Cð 	Cð 	Cð 	Cr3   r  c                   ó   — e Zd Zd„ Zd„ ZdS )ÚTestTargetMachinec                 ó‚   — |                       d¬¦  «        }t          j        ¦   «         }|                     |¦  «         d S )NFrF   )rL   r(   Úcreate_module_pass_managerÚadd_analysis_passes)r1   ÚtmÚpms      r   Útest_add_analysis_passesz*TestTargetMachine.test_add_analysis_passesâ  s@   € Ø× Ò  UÐ Ñ+Ô+ˆÝÔ,Ñ.Ô.ˆØ
×Ò˜rÑ"Ô"Ð"Ð"Ð"r3   c                 ó  — |                       d¬¦  «        }|j        }|                      ¦   «         }|                     d¦  «        }t          j        dk     rdnd}|                      |                     |j        ¦  «        |¦  «         d S )NFrF   rA   rÜ  rn  rÝ  )	rL   rØ  r@   rC   r�   rß  r5   rà  rá  )r1   r  rÙ  r?   rä  rç  s         r   Útest_target_data_from_tmz*TestTargetMachine.test_target_data_from_tmç  s~   € Ø× Ò  UÐ Ñ+Ô+ˆØŒ^ˆØ�kŠk‰mŒmˆØ×(Ò(¨Ñ0Ô0ˆåœK¨'Ò1Ð1�q�q°qˆØ×Ò˜Ÿš¨¬Ñ5Ô5°|ÑDÔDÐDÐDÐDr3   N)rM   rN   rO   r  r  rQ   r3   r   r  r  à  s7   € € € € € ð#ð #ð #ð
Eð Eð Eð Eð Er3   r  c                   óP   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zd
„ Zd„ ZdS )ÚTestPassManagerBuilderc                 ó(   — t          j        ¦   «         S r'   )r(   ÚPassManagerBuilderr0   s    r   ÚpmbzTestPassManagerBuilder.pmbó  s   € ÝÔ&Ñ(Ô(Ð(r3   c                 óH   — t          j        ¦   «         }d|_        d|_        d S )Nr^   rb  )r(   Úcreate_pass_manager_builderÚinlining_thresholdÚ	opt_level©r1   r   s     r   Útest_old_apiz#TestPassManagerBuilder.test_old_apiö  s#   € åÔ.Ñ0Ô0ˆØ!"ˆÔØˆŒˆˆr3   c                 ó~   — |                       ¦   «         }|                     ¦   «          |                     ¦   «          d S r'   )r   rD  r%  s     r   rH  z!TestPassManagerBuilder.test_closeü  s-   € Ø�hŠh‰jŒjˆØ�	Š	‰ŒˆØ�	Š	‰Œˆˆˆr3   c                 óÖ   — |                       ¦   «         }|                      |j        t          ¦  «         t	          d¦  «        D ]$}||_        |                      |j        |¦  «         Œ%d S rª  )r   rý   r$  ræ  r+  r5   ©r1   r   rT  s      r   Útest_opt_levelz%TestPassManagerBuilder.test_opt_level  sh   € Ø�hŠh‰jŒjˆØ×Ò˜cœm­SÑ1Ô1Ð1Ý�q‘”ð 	/ð 	/ˆAØˆCŒMØ×Ò˜Sœ]¨AÑ.Ô.Ð.Ð.ð	/ð 	/r3   c                 óÖ   — |                       ¦   «         }|                      |j        t          ¦  «         t	          d¦  «        D ]$}||_        |                      |j        |¦  «         Œ%d S rª  )r   rý   Ú
size_levelræ  r+  r5   r)  s      r   Útest_size_levelz&TestPassManagerBuilder.test_size_level  sh   € Ø�hŠh‰jŒjˆØ×Ò˜cœn­cÑ2Ô2Ð2Ý�q‘”ð 	0ð 	0ˆAØˆCŒNØ×Ò˜Sœ^¨QÑ/Ô/Ð/Ð/ð	0ð 	0r3   c                 ó¸   — |                       ¦   «         }|                      t          ¦  «        5  |j         d d d ¦  «         n# 1 swxY w Y   dD ]	}||_        Œ
d S )N)é   éP   i^  )r   rÝ   ÚNotImplementedErrorr#  r)  s      r   Útest_inlining_thresholdz.TestPassManagerBuilder.test_inlining_threshold  s¦   € Ø�hŠh‰jŒjˆØ×ÒÕ2Ñ3Ô3ð 	#ð 	#ØÔ"Ð"ð	#ð 	#ð 	#ñ 	#ô 	#ð 	#ð 	#ð 	#ð 	#ð 	#ð 	#øøøð 	#ð 	#ð 	#ð 	#àð 	'ð 	'ˆAØ%&ˆCÔ"Ð"ð	'ð 	's   ¯AÁAÁ
Ac                 ó¼   — |                       ¦   «         }|                      |j        t          ¦  «         dD ]$}||_        |                      |j        |¦  «         Œ%d S ©N)TF)r   rý   Údisable_unroll_loopsr  r5   ©r1   r   r¸   s      r   Útest_disable_unroll_loopsz0TestPassManagerBuilder.test_disable_unroll_loops  se   € Ø�hŠh‰jŒjˆØ×Ò˜cÔ6½Ñ=Ô=Ð=Øð 	:ð 	:ˆAØ'(ˆCÔ$Ø×Ò˜SÔ5°qÑ9Ô9Ð9Ð9ð	:ð 	:r3   c                 ó¼   — |                       ¦   «         }|                      |j        t          ¦  «         dD ]$}||_        |                      |j        |¦  «         Œ%d S r4  )r   rý   Úloop_vectorizer  r5   r6  s      r   Útest_loop_vectorizez*TestPassManagerBuilder.test_loop_vectorize  se   € Ø�hŠh‰jŒjˆØ×Ò˜cÔ0µ$Ñ7Ô7Ð7Øð 	4ð 	4ˆAØ!"ˆCÔØ×Ò˜SÔ/°Ñ3Ô3Ð3Ð3ð	4ð 	4r3   c                 ó¼   — |                       ¦   «         }|                      |j        t          ¦  «         dD ]$}||_        |                      |j        |¦  «         Œ%d S r4  )r   rý   Úslp_vectorizer  r5   r6  s      r   Útest_slp_vectorizez)TestPassManagerBuilder.test_slp_vectorize$  se   € Ø�hŠh‰jŒjˆØ×Ò˜cÔ/µÑ6Ô6Ð6Øð 	3ð 	3ˆAØ !ˆCÔØ×Ò˜SÔ.°Ñ2Ô2Ð2Ð2ð	3ð 	3r3   c                 óÎ   — |                       ¦   «         }t          j        ¦   «         }|                     |¦  «         |                     ¦   «          |                     ¦   «          d S r'   )r   r(   r  ÚpopulaterD  )r1   r   r  s      r   Ú!test_populate_module_pass_managerz8TestPassManagerBuilder.test_populate_module_pass_manager+  sM   € Ø�hŠh‰jŒjˆÝÔ,Ñ.Ô.ˆØ�Š�RÑÔÐØ�	Š	‰ŒˆØ
�Š‰
Œ
ˆ
ˆ
ˆ
r3   c                 óø   — |                       ¦   «         }|                      ¦   «         }t          j        |¦  «        }|                     |¦  «         |                     ¦   «          |                     ¦   «          d S r'   )r@   r   r(   Úcreate_function_pass_managerr?  rD  )r1   r?   r   r  s       r   Ú#test_populate_function_pass_managerz:TestPassManagerBuilder.test_populate_function_pass_manager2  s\   € Ø�kŠk‰mŒmˆØ�hŠh‰jŒjˆÝÔ.¨sÑ3Ô3ˆØ�Š�RÑÔÐØ�	Š	‰ŒˆØ
�Š‰
Œ
ˆ
ˆ
ˆ
r3   N)rM   rN   rO   r   r&  rH  r*  r-  r2  r7  r:  r=  r@  rC  rQ   r3   r   r  r  ñ  s¹   € € € € € ð)ð )ð )ðð ð ðð ð ð
/ð /ð /ð0ð 0ð 0ð'ð 'ð 'ð:ð :ð :ð4ð 4ð 4ð3ð 3ð 3ðð ð ðð ð ð ð r3   r  c                   ó   — e Zd Zd„ Zd„ ZdS )ÚPassManagerTestMixinc                 óH   — t          j        ¦   «         }d|_        d|_        |S )Nr^   i,  )r(   r"  r$  r#  r%  s     r   r   zPassManagerTestMixin.pmb=  s$   € ÝÔ.Ñ0Ô0ˆØˆŒØ!$ˆÔØˆ
r3   c                 ó~   — |                       ¦   «         }|                     ¦   «          |                     ¦   «          d S r'   )r  rD  ©r1   r  s     r   rH  zPassManagerTestMixin.test_closeC  s-   € Ø�WŠW‰YŒYˆØ
�Š‰
Œ
ˆ
Ø
�Š‰
Œ
ˆ
ˆ
ˆ
r3   N)rM   rN   rO   r   rH  rQ   r3   r   rE  rE  ;  s2   € € € € € ðð ð ðð ð ð ð r3   rE  c                   ó2   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ ZdS )ÚTestModulePassManagerc                 ó(   — t          j        ¦   «         S r'   ©r(   r  r0   s    r   r  zTestModulePassManager.pmK  ó   € ÝÔ.Ñ0Ô0Ð0r3   c                 óŽ  — |                       ¦   «         }|                      ¦   «                              |¦  «         |                      ¦   «         }t	          |¦  «        }|                     |¦  «         t	          |¦  «        }|                     ¦   «         }t          |¦  «        D ]‘\  }}|                     ¦   «          	                    d¦  «        reddh}|D ]}	|	|v r nŒ	t          d¦  «        ‚||	hz                       ¦   «         }
|                      d|¦  «         |                      |
|¦  «          d S Œ’t          d¦  «        ‚)Nzret i32z%.3ú%.4zexpected tokens not foundzexpected IR not found)r  r   r?  r@   r›   Úrunrv   Ú	enumeraterÀ   r   rš   Úpoprà   ÚassertNotIn)r1   r  r?   Úorig_asmÚopt_asmÚopt_asm_splitÚidxÚlÚtoksrÿ  Ú
othertokens              r   Útest_runzTestModulePassManager.test_runN  sE  € Ø�WŠW‰YŒYˆØ�Š‰
Œ
×Ò˜BÑÔÐØ�kŠk‰mŒmˆÝ�s‘8”8ˆØ
�Šˆs‰ŒˆÝ�c‘(”(ˆð  ×*Ò*Ñ,Ô,ˆÝ Ñ.Ô.ð 	8ð 	8‰FˆC�Ø�wŠw‰yŒy×#Ò# IÑ.Ô.ð Ø˜u�~�Øð Dð D�AØ˜A�v�vØ˜ð õ 'Ð'BÑCÔCÐCØ" a S™j×-Ò-Ñ/Ô/�
à—’˜e XÑ.Ô.Ð.Ø× Ò  ¨WÑ5Ô5Ð5Ø��ðõ Ð6Ñ7Ô7Ð7r3   c                 óŒ  — |                       ¦   «         }|                     d¦  «         |                      ¦   «                              |¦  «         |                      t
          ¦  «        }|                     |¦  «        \  }}|                      |¦  «         |                      d|¦  «         |                      d|¦  «         d S )NéF   ÚPassedÚinlineme©	r  Úadd_function_inlining_passr   r?  r@   Úasm_inlineasm2Úrun_with_remarksrþ   rà   ©r1   r  r?   ÚstatusÚremarkss        r   Ú'test_run_with_remarks_successful_inlinez=TestModulePassManager.test_run_with_remarks_successful_inlinel  s¨   € Ø�WŠW‰YŒYˆØ
×%Ò% bÑ)Ô)Ð)Ø�Š‰
Œ
×Ò˜BÑÔÐØ�kŠk�.Ñ)Ô)ˆØ×/Ò/°Ñ4Ô4Ñˆ�Ø�Š˜ÑÔÐà�Š�h Ñ(Ô(Ð(Ø�Š�j 'Ñ*Ô*Ð*Ð*Ð*r3   c                 ó¸  — |                       ¦   «         }|                     d¦  «         |                      ¦   «                              |¦  «         |                      t
          ¦  «        }|                     |¦  «        \  }}|                      |¦  «         |                      d|¦  «         |                      d|¦  «         |                      d|¦  «         d S )Nr   ÚMissedr_  znoinline function attribute)	r  ra  r   r?  r@   Úasm_inlineasm3rc  rþ   rà   rd  s        r   Ú#test_run_with_remarks_failed_inlinez9TestModulePassManager.test_run_with_remarks_failed_inlinew  s¿   € Ø�WŠW‰YŒYˆØ
×%Ò% aÑ(Ô(Ð(Ø�Š‰
Œ
×Ò˜BÑÔÐØ�kŠk�.Ñ)Ô)ˆØ×/Ò/°Ñ4Ô4Ñˆ�Ø�Š˜ÑÔÐð 	�Š�h Ñ(Ô(Ð(Ø�Š�j 'Ñ*Ô*Ð*Ø�ŠÐ3°WÑ=Ô=Ð=Ð=Ð=r3   c                 ód  — |                       ¦   «         }|                     d¦  «         |                      ¦   «                              |¦  «         |                      t
          ¦  «        }|                     |d¬¦  «        \  }}|                      |¦  «         |                      d|¦  «         d S )Nr]  Únothing©Úremarks_filterr¿   )	r  ra  r   r?  r@   rb  rc  rþ   r5   rd  s        r   Ú'test_run_with_remarks_inline_filter_outz=TestModulePassManager.test_run_with_remarks_inline_filter_out„  s›   € Ø�WŠW‰YŒYˆØ
×%Ò% bÑ)Ô)Ð)Ø�Š‰
Œ
×Ò˜BÑÔÐØ�kŠk�.Ñ)Ô)ˆØ×/Ò/°ÀIÐ/ÑNÔNÑˆ�Ø�Š˜ÑÔÐØ×Ò˜˜WÑ%Ô%Ð%Ð%Ð%r3   c                 ó�  — |                       ¦   «         }|                     d¦  «         |                      ¦   «                              |¦  «         |                      t
          ¦  «        }|                     |d¬¦  «        \  }}|                      |¦  «         |                      d|¦  «         |                      d|¦  «         d S )Nr]  zinlin.*rn  r^  r_  r`  rd  s        r   Ú&test_run_with_remarks_inline_filter_inz<TestModulePassManager.test_run_with_remarks_inline_filter_in�  s­   € Ø�WŠW‰YŒYˆØ
×%Ò% bÑ)Ô)Ð)Ø�Š‰
Œ
×Ò˜BÑÔÐØ�kŠk�.Ñ)Ô)ˆØ×/Ò/°ÀIÐ/ÑNÔNÑˆ�Ø�Š˜ÑÔÐØ�Š�h Ñ(Ô(Ð(Ø�Š�j 'Ñ*Ô*Ð*Ð*Ð*r3   N)	rM   rN   rO   r  r[  rg  rk  rp  rr  rQ   r3   r   rJ  rJ  I  sn   € € € € € ð1ð 1ð 1ð8ð 8ð 8ð<	+ð 	+ð 	+ð>ð >ð >ð&ð &ð &ð+ð +ð +ð +ð +r3   rJ  c                   ó4   — e Zd Zdd„Zd„ Zd„ Zd„ Zd„ Zd„ ZdS )	ÚTestFunctionPassManagerNc                 óV   — |p|                       ¦   «         }t          j        |¦  «        S r'   )r@   r(   rB  rG  s     r   r  zTestFunctionPassManager.pmš  s%   € ØÐ"�T—[’[‘]”]ˆÝÔ0°Ñ5Ô5Ð5r3   c                 ó~   — |                       ¦   «         }|                     ¦   «          |                     ¦   «          d S r'   )r  r)   ÚfinalizerH  s     r   r$  z%TestFunctionPassManager.test_initfiniž  s-   € Ø�WŠW‰YŒYˆØ
�Š‰ŒˆØ
�Š‰Œˆˆˆr3   c                 ó  — |                       ¦   «         }|                     d¦  «        }|                      |¦  «        }|                      ¦   «                              |¦  «         |                     ¦   «          t          |¦  «        }|                     ¦   «          |                     |¦  «         | 	                    ¦   «          t          |¦  «        }|  
                    d|¦  «         |                      d|¦  «         d S )NrZ  rO  )r@   r[  r  r   r?  rD  r›   r)   rP  rw  rà   rS  )r1   r?   rë   r  rT  rU  s         r   r[  z TestFunctionPassManager.test_run£  sÉ   € Ø�kŠk‰mŒmˆØ×Ò˜eÑ$Ô$ˆØ�WŠW�S‰\Œ\ˆØ�Š‰
Œ
×Ò˜BÑÔÐØ�	Š	‰ŒˆÝ�r‘7”7ˆØ
�Š‰ŒˆØ
�Šˆr‰
Œ
ˆ
Ø
�Š‰ŒˆÝ�b‘'”'ˆà�Š�e˜XÑ&Ô&Ð&Ø×Ò˜ Ñ(Ô(Ð(Ð(Ð(r3   c                 ó.  — |                       t          ¦  «        }|                     d¦  «        }|                      |¦  «        }|                     ¦   «          |                      ¦   «                              |¦  «         |                     ¦   «          |                     ¦   «          | 	                    |¦  «        \  }}| 
                    ¦   «          |                      |¦  «         |                      d|¦  «         |                      d|¦  «         d S )NÚlicmr^  ©r@   Úlicm_asmr[  r  Úadd_licm_passr   r?  rD  r)   rc  rw  rþ   rà   ©r1   r?   rë   r  Úokrf  s         r   Útest_run_with_remarksz-TestFunctionPassManager.test_run_with_remarks²  sá   € Ø�kŠk�(Ñ#Ô#ˆØ×Ò˜fÑ%Ô%ˆØ�WŠW�S‰\Œ\ˆØ
×ÒÑÔÐØ�Š‰
Œ
×Ò˜BÑÔÐØ�	Š	‰Œˆà
�Š‰ŒˆØ×+Ò+¨BÑ/Ô/‰ˆˆWØ
�Š‰ŒˆØ�Š˜ÑÔÐØ�Š�h Ñ(Ô(Ð(Ø�Š�f˜gÑ&Ô&Ð&Ð&Ð&r3   c                 ó  — |                       t          ¦  «        }|                     d¦  «        }|                      |¦  «        }|                     ¦   «          |                      ¦   «                              |¦  «         |                     ¦   «          |                     ¦   «          | 	                    |d¬¦  «        \  }}| 
                    ¦   «          |                      |¦  «         |                      d|¦  «         d S )Nrz  rm  rn  r¿   )r@   r|  r[  r  r}  r   r?  rD  r)   rc  rw  rþ   r5   r~  s         r   Ú test_run_with_remarks_filter_outz8TestFunctionPassManager.test_run_with_remarks_filter_outÁ  sÔ   € Ø�kŠk�(Ñ#Ô#ˆØ×Ò˜fÑ%Ô%ˆØ�WŠW�S‰\Œ\ˆØ
×ÒÑÔÐØ�Š‰
Œ
×Ò˜BÑÔÐØ�	Š	‰Œˆà
�Š‰ŒˆØ×+Ò+¨B¸yÐ+ÑIÔI‰ˆˆWØ
�Š‰ŒˆØ�Š˜ÑÔÐØ×Ò˜˜WÑ%Ô%Ð%Ð%Ð%r3   c                 ó2  — |                       t          ¦  «        }|                     d¦  «        }|                      |¦  «        }|                     ¦   «          |                      ¦   «                              |¦  «         |                     ¦   «          |                     ¦   «          | 	                    |d¬¦  «        \  }}| 
                    ¦   «          |                      |¦  «         |                      d|¦  «         |                      d|¦  «         d S )Nrz  rn  r^  r{  r~  s         r   Útest_run_with_remarks_filter_inz7TestFunctionPassManager.test_run_with_remarks_filter_inÏ  sæ   € Ø�kŠk�(Ñ#Ô#ˆØ×Ò˜fÑ%Ô%ˆØ�WŠW�S‰\Œ\ˆØ
×ÒÑÔÐØ�Š‰
Œ
×Ò˜BÑÔÐØ�	Š	‰Œˆà
�Š‰ŒˆØ×+Ò+¨B¸vÐ+ÑFÔF‰ˆˆWØ
�Š‰ŒˆØ�Š˜ÑÔÐØ�Š�h Ñ(Ô(Ð(Ø�Š�f˜gÑ&Ô&Ð&Ð&Ð&r3   r'   )	rM   rN   rO   r  r$  r[  r€  r‚  r„  rQ   r3   r   rt  rt  ˜  ss   € € € € € ð6ð 6ð 6ð 6ðð ð ð
)ð )ð )ð'ð 'ð 'ð&ð &ð &ð'ð 'ð 'ð 'ð 'r3   rt  c                   óŽ   — e Zd Zd„ Zd„ Z ej         ej        ¦   «          	                    d¦  «        d¦  «        d„ ¦   «         Z
dS )Ú
TestPassesc                 ó(   — t          j        ¦   «         S r'   rL  r0   s    r   r  zTestPasses.pmá  rM  r3   c                 óÖ
  — |                       ¦   «         }|                     d¦  «         |                     ¦   «          |                     ¦   «          |                     ¦   «          |                     d¦  «         |                     ¦   «          |                     ¦   «          |                     ¦   «          | 	                    ¦   «          | 
                    ¦   «          |                     ¦   «          |                     ¦   «          |                     ¦   «          |                     ¦   «          |                     ¦   «          |                     ¦   «          |                     ¦   «          |                     ¦   «          |                     ¦   «          |                     ¦   «          |                     ¦   «          |                     ¦   «          |                     ¦   «          |                     d¦  «         |                     ¦   «          |                     ¦   «          |                     ¦   «          |                     ¦   «          |                     ¦   «          |                     d¦  «         |                     ¦   «          |                      ¦   «          | !                    ¦   «          | "                    ¦   «          | #                    ¦   «          | $                    ¦   «          | %                    ¦   «          | &                    ¦   «          | '                    ¦   «          | (                    ¦   «          | )                    ¦   «          | *                    ¦   «          | +                    ¦   «          | ,                    ¦   «          | -                    ¦   «          | .                    ¦   «          | /                    ¦   «          | 0                    ¦   «          | 1                    ¦   «          | 2                    ¦   «          | 3                    ¦   «          | 4                    ¦   «          | 5                    ¦   «          | 6                    ¦   «          | 7                    ¦   «          | 8                    ¦   «          | 9                    ¦   «          | :                    ¦   «          | ;                    ¦   «          | <                    ¦   «          | =                    ¦   «          | >                    ¦   «          | ?                    ¦   «          | @                    ¦   «          | A                    ¦   «          | B                    ¦   «          | C                    ¦   «          | D                    ¦   «          d S )Nr¿   éá   é*   é   )Er  Úadd_target_library_infoÚadd_constant_merge_passÚadd_dead_arg_elimination_passÚadd_function_attrs_passra  Úadd_global_dce_passÚadd_global_optimizer_passÚadd_ipsccp_passÚadd_dead_code_elimination_passÚadd_cfg_simplification_passÚadd_gvn_passÚadd_instruction_combining_passr}  Úadd_sccp_passÚadd_sroa_passÚ"add_type_based_alias_analysis_passÚadd_basic_alias_analysis_passÚadd_loop_rotate_passÚadd_region_info_passÚadd_scalar_evolution_aa_passÚ)add_aggressive_dead_code_elimination_passÚadd_aa_eval_passÚadd_always_inliner_passÚadd_arg_promotion_passÚadd_break_critical_edges_passÚadd_dead_store_elimination_passÚ*add_reverse_post_order_function_attrs_passÚ)add_aggressive_instruction_combining_passÚadd_internalize_passÚadd_jump_threading_passÚadd_lcssa_passÚadd_loop_deletion_passÚadd_loop_extractor_passÚadd_single_loop_extractor_passÚadd_loop_strength_reduce_passÚadd_loop_simplification_passÚadd_loop_unroll_passÚadd_loop_unroll_and_jam_passÚadd_loop_unswitch_passÚadd_lower_atomic_passÚadd_lower_invoke_passÚadd_lower_switch_passÚadd_memcpy_optimization_passÚadd_merge_functions_passÚadd_merge_returns_passÚadd_partial_inlining_passÚ!add_prune_exception_handling_passÚ add_reassociate_expressions_passÚ"add_demote_register_to_memory_passÚadd_sink_passÚadd_strip_symbols_passÚadd_strip_dead_debug_info_passÚadd_strip_dead_prototypes_passÚadd_strip_debug_declare_passÚadd_strip_nondebug_symbols_passÚadd_tail_call_elimination_passÚadd_basic_aa_passÚadd_dependence_analysis_passÚadd_dot_call_graph_passÚadd_dot_cfg_printer_passÚadd_dot_dom_printer_passÚadd_dot_postdom_printer_passÚadd_globals_mod_ref_aa_passÚadd_iv_users_passÚadd_lazy_value_info_passÚadd_lint_passÚadd_module_debug_info_passÚadd_refprune_passrH  s     r   Útest_populatezTestPasses.test_populateä  sã  € Ø�WŠW‰YŒYˆØ
×"Ò" 2Ñ&Ô&Ð&Ø
×"Ò"Ñ$Ô$Ð$Ø
×(Ò(Ñ*Ô*Ð*Ø
×"Ò"Ñ$Ô$Ð$Ø
×%Ò% cÑ*Ô*Ð*Ø
×ÒÑ Ô Ð Ø
×$Ò$Ñ&Ô&Ð&Ø
×ÒÑÔÐØ
×)Ò)Ñ+Ô+Ð+Ø
×&Ò&Ñ(Ô(Ð(Ø
�ŠÑÔÐØ
×)Ò)Ñ+Ô+Ð+Ø
×ÒÑÔÐØ
×ÒÑÔÐØ
×ÒÑÔÐØ
×-Ò-Ñ/Ô/Ð/Ø
×(Ò(Ñ*Ô*Ð*Ø
×ÒÑ!Ô!Ð!Ø
×ÒÑ!Ô!Ð!Ø
×'Ò'Ñ)Ô)Ð)Ø
×4Ò4Ñ6Ô6Ð6Ø
×ÒÑÔÐØ
×"Ò"Ñ$Ô$Ð$Ø
×!Ò! "Ñ%Ô%Ð%Ø
×(Ò(Ñ*Ô*Ð*Ø
×*Ò*Ñ,Ô,Ð,Ø
×5Ò5Ñ7Ô7Ð7Ø
×4Ò4Ñ6Ô6Ð6Ø
×ÒÑ!Ô!Ð!Ø
×"Ò" 1Ñ%Ô%Ð%Ø
×ÒÑÔÐØ
×!Ò!Ñ#Ô#Ð#Ø
×"Ò"Ñ$Ô$Ð$Ø
×)Ò)Ñ+Ô+Ð+Ø
×(Ò(Ñ*Ô*Ð*Ø
×'Ò'Ñ)Ô)Ð)Ø
×ÒÑ!Ô!Ð!Ø
×'Ò'Ñ)Ô)Ð)Ø
×!Ò!Ñ#Ô#Ð#Ø
× Ò Ñ"Ô"Ð"Ø
× Ò Ñ"Ô"Ð"Ø
× Ò Ñ"Ô"Ð"Ø
×'Ò'Ñ)Ô)Ð)Ø
×#Ò#Ñ%Ô%Ð%Ø
×!Ò!Ñ#Ô#Ð#Ø
×$Ò$Ñ&Ô&Ð&Ø
×,Ò,Ñ.Ô.Ð.Ø
×+Ò+Ñ-Ô-Ð-Ø
×-Ò-Ñ/Ô/Ð/Ø
×ÒÑÔÐØ
×!Ò!Ñ#Ô#Ð#Ø
×)Ò)Ñ+Ô+Ð+Ø
×)Ò)Ñ+Ô+Ð+Ø
×'Ò'Ñ)Ô)Ð)Ø
×*Ò*Ñ,Ô,Ð,Ø
×)Ò)Ñ+Ô+Ð+Ø
×ÒÑÔÐØ
×'Ò'Ñ)Ô)Ð)Ø
×"Ò"Ñ$Ô$Ð$Ø
×#Ò#Ñ%Ô%Ð%Ø
×#Ò#Ñ%Ô%Ð%Ø
×'Ò'Ñ)Ô)Ð)Ø
×&Ò&Ñ(Ô(Ð(Ø
×ÒÑÔÐØ
×#Ò#Ñ%Ô%Ð%Ø
×ÒÑÔÐØ
×%Ò%Ñ'Ô'Ð'Ø
×ÒÑÔÐÐÐr3   r  r  c                 ó  — d„ } |d¬¦  «        }|                       dt          |¦  «        ¦  «          |d¬¦  «        }|                      dt          |¦  «        ¦  «         |                       dt          |¦  «        ¦  «         dS )zŠTest a specific situation that demonstrate TLI is affecting
        optimization. See https://github.com/numba/numba/issues/8898.
        c                 ó‚  — t          j        t          ¦  «        }t           j                             |j        ¦  «        }|                     ¦   «         }t          j        ¦   «         }|                     |¦  «         | r| 	                    |j        ¦  «         | 
                    ¦   «          |                     |¦  «         |S r'   )r(   r<   Úasm_tli_exp2rH   r™   r9   rJ   ÚModulePassManagerr  rŒ  r–  rP  )Úuse_tlir?   rK   r  r  s        r   rP  z9TestPasses.test_target_library_info_behavior.<locals>.run0  s    € ÝÔ%¥lÑ3Ô3ˆCÝ”[×,Ò,¨S¬ZÑ8Ô8ˆFØ×-Ò-Ñ/Ô/ˆBÝÔ'Ñ)Ô)ˆBØ×"Ò" 2Ñ&Ô&Ð&Øð 7Ø×*Ò*¨3¬:Ñ6Ô6Ð6Ø×-Ò-Ñ/Ô/Ð/Ø�FŠF�3‰KŒKˆKØˆJr3   T)rÓ  zcall float @llvm.exp2.f32Fzcall float @ldexpfN)rà   r›   rS  )r1   rP  r?   s      r   Ú!test_target_library_info_behaviorz,TestPasses.test_target_library_info_behavior+  s’   € ð

	ð 
	ð 
	ð ˆc˜$ÐÑÔˆØ�ŠÐ1µ3°s±8´8Ñ<Ô<Ð<ð ˆc˜%Ð Ñ Ô ˆØ×ÒÐ4µc¸#±h´hÑ?Ô?Ð?Ø�ŠÐ*­C°©H¬HÑ5Ô5Ð5Ð5Ð5r3   N)rM   rN   rO   r  rÎ  r�   rŽ   r}   Úmachiner   rÔ  rQ   r3   r   r†  r†  ß  s|   € € € € € ð1ð 1ð 1ðEð Eð EðN €XÔÐ)˜Ô)Ñ+Ô+×6Ò6°uÑ=Ô=¸zÑJÔJð6ð 6ñ KÔJð6ð 6ð 6r3   r†  c                   óf   — e Zd Zd„ Z ej         ej        ¦   «         dv d¦  «        d„ ¦   «         ZdS )Ú	TestDylibc                 ó”   — |                       t          ¦  «        5  t          j        d¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nzzzzasdkf;jasd;l)rÝ   rš   r(   Úload_library_permanentlyr0   s    r   Útest_bad_libraryzTestDylib.test_bad_libraryH  sŒ   € Ø×Ò�|Ñ,Ô,ð 	=ð 	=ÝÔ)Ð*;Ñ<Ô<Ð<ð	=ð 	=ð 	=ñ 	=ô 	=ð 	=ð 	=ð 	=ð 	=ð 	=ð 	=ð 	=øøøð 	=ð 	=ð 	=ð 	=ð 	=ð 	=s   ›=½AÁA)ÚLinuxztest only works on Linuxc                 óL   — t          d¦  «        }t          j        |¦  «         d S )Nr‰   )r   r(   rÙ  )r1   rd   s     r   Ú	test_libmzTestDylib.test_libmL  s(   € õ ˜CÑ Ô ˆÝÔ% dÑ+Ô+Ð+Ð+Ð+r3   N)	rM   rN   rO   rÚ  r�   rŽ   r}   ÚsystemrÝ  rQ   r3   r   r×  r×  F  sd   € € € € € ð=ð =ð =ð €XÔ˜˜œÑ*Ô*¨iÐ7Ø3ñ5ô 5ð,ð ,ñ5ô 5ð,ð ,ð ,r3   r×  c                   ó    — e Zd Zd„ Zd„ Zd„ ZdS )ÚTestAnalysisc                 ó¨  — t          j        ¦   «         }t          j        t          j        d¦  «        t          j        d¦  «        t          j        d¦  «        g¦  «        }t          j        ||d¦  «        }t          j        |                     ¦   «         ¦  «        }|j        \  }}|                     ||¦  «        }| 	                    |¦  «         |S )Nrå   ræ   )
r	   r©   r¨   rç   rª   r¬   r«   r­   r{   r!   )r1   r‰   rê   rë   rì   ÚxÚyÚzs           r   Úbuild_ir_modulezTestAnalysis.build_ir_moduleT  s™   € ÝŒI‰KŒKˆÝŒ_�RœZ¨™^œ^­b¬j¸©n¬n½b¼jÈ¹n¼nÐ-MÑNÔNˆÝŒ[˜˜B Ñ&Ô&ˆÝŒ\˜"×/Ò/Ñ1Ô1Ñ2Ô2ˆØŒw‰ˆˆ1Ø�FŠF�1�a‰LŒLˆØ
�Šˆq‰	Œ	ˆ	Øˆr3   c                 ó  — |                       ¦   «         }|                     d¦  «        }t          j        |¦  «        }t          j        |d¬¦  «        }d}|                      ||¦  «         |                      ||¦  «         d S )Nræ   F©Ú	show_instz%.5 = add i32 %.1, %.2)rå  Ú
get_globalr(   Úget_function_cfgrà   rS  )r1   r?   ræ   Údot_showing_instÚdot_without_instr×  s         r   Útest_get_function_cfg_on_irz(TestAnalysis.test_get_function_cfg_on_ir^  s‚   € Ø×"Ò"Ñ$Ô$ˆØ�nŠn˜UÑ#Ô#ˆÝÔ0°Ñ5Ô5ÐÝÔ0°ÀÐFÑFÔFÐØ'ˆØ�Š�dÐ,Ñ-Ô-Ð-Ø×Ò˜Ð/Ñ0Ô0Ð0Ð0Ð0r3   c                 óÀ  — |                       ¦   «                              d¦  «        }t          j        |d¬¦  «        }t          j        |d¬¦  «        }d}|                      ||¦  «         |                      ||¦  «         d}|                      ||¦  «         |                      ||¦  «         d}|                      ||¦  «         |                      ||¦  «         d S )NrZ  Trç  FÚdigraphzCFG for 'sum' functionz%.3 = add i32 %.1, %.2)r@   r[  r(   rê  rà   rS  )r1   r¦  rë  rì  ÚprefixÚfnamer×  s          r   Útest_function_cfg_on_llvm_valuez,TestAnalysis.test_function_cfg_on_llvm_valueg  sÞ   € Ø—+’+‘-”-×,Ò,¨UÑ3Ô3ˆÝÔ0°ÀDÐIÑIÔIÐÝÔ0°ÀEÐJÑJÔJÐàˆØ�Š�fÐ.Ñ/Ô/Ð/Ø�Š�fÐ.Ñ/Ô/Ð/à(ˆØ�Š�eÐ-Ñ.Ô.Ð.Ø�Š�eÐ-Ñ.Ô.Ð.à'ˆØ�Š�dÐ,Ñ-Ô-Ð-Ø×Ò˜Ð/Ñ0Ô0Ð0Ð0Ð0r3   N)rM   rN   rO   rå  rí  rò  rQ   r3   r   rà  rà  S  sA   € € € € € ðð ð ð1ð 1ð 1ð1ð 1ð 1ð 1ð 1r3   rà  c                   ó*   — e Zd Zed„ ¦   «         Zd„ ZdS )ÚTestTypeParsingc              #   ó~   K  — t          j        ¦   «         }|V — t          |¦  «        }t          j        |¦  «         d S r'   )r	   r©   r›   r(   r<   )r1   r?   r=   s      r   Úcheck_parsingzTestTypeParsing.check_parsingz  s>   è è € åŒi‰kŒkˆð ˆ	ˆ	ˆ	å�#‰hŒhˆÝÔ˜CÑ Ô Ð Ð Ð r3   c                 ó  — |                       ¦   «         5 }t          j        t          j        d¦  «        g¦  «        }t          j        ||d¦  «        }t          j        |dg¦  «        |_        d d d ¦  «         n# 1 swxY w Y   |                       ¦   «         5 }t          j        t          j        d¦  «        gd¬¦  «        }t          j        ||d¦  «        }t          j        |dg¦  «        |_        d d d ¦  «         d S # 1 swxY w Y   d S )Nrå   ræ   r]   T)Úpacked)rö  r	   ÚLiteralStructTyperç   ÚGlobalVariablerè   Úinitializer)r1   r?   Útyprg  s       r   Útest_literal_structz#TestTypeParsing.test_literal_struct„  so  € à×ÒÑ!Ô!ð 	3 SÝÔ&­¬
°2©¬Ð'7Ñ8Ô8ˆCÝÔ" 3¨¨UÑ3Ô3ˆBåœ[¨¨q¨cÑ2Ô2ˆBŒNð		3ð 	3ð 	3ñ 	3ô 	3ð 	3ð 	3ð 	3ð 	3ð 	3ð 	3øøøð 	3ð 	3ð 	3ð 	3ð ×ÒÑ!Ô!ð 	3 SÝÔ&­¬
°2©¬Ð'7Ø.2ð4ñ 4ô 4ˆCåÔ" 3¨¨UÑ3Ô3ˆBåœ[¨¨q¨cÑ2Ô2ˆBŒNð	3ð 	3ð 	3ñ 	3ô 	3ð 	3ð 	3ð 	3ð 	3ð 	3ð 	3ð 	3øøøð 	3ð 	3ð 	3ð 	3ð 	3ð 	3s%   •AA:Á:A>ÂA>ÂADÄDÄDN)rM   rN   rO   r   rö  rý  rQ   r3   r   rô  rô  y  s<   € € € € € Øð!ð !ñ „^ð!ð3ð 3ð 3ð 3ð 3r3   rô  c                   ó   — e Zd Zd„ ZdS )ÚTestGlobalConstructorsc                 ó   — |                       t          ¦  «        }|                      |¦  «        }|                     ¦   «          |                     ¦   «          |                     d¦  «        }t          j        t          j        ¦  «        }t          j	        ||¦  «        }|  
                    |j        j        d¦  «         |                     d¦  «        } t          j        t          j        ¦  «        |¦  «        }|  
                     |¦   «         d¦  «         |                     ¦   «          |  
                    |j        j        d¦  «         d S )Nr?  r)  ræ   r@  rA  )r@   Úasm_global_ctorsrG   r²  Úrun_static_constructorsÚget_global_value_addressrE  ÚPOINTERr   Úcastr5   Úcontentsrk  r³  r   Úrun_static_destructors)r1   r?   r´  Úptr_addrÚptr_tÚptrÚfoo_addrræ   s           r   rE  z.TestGlobalConstructors.test_global_ctors_dtors–  s  € ð �kŠkÕ*Ñ+Ô+ˆØ�XŠX�c‰]Œ]ˆØ
×ÒÑÔÐà
×"Ò"Ñ$Ô$Ð$ð ×.Ò.¨sÑ3Ô3ˆÝ”�vœ~Ñ.Ô.ˆÝŒk˜( EÑ*Ô*ˆØ×Ò˜œÔ+¨RÑ0Ô0Ð0à×*Ò*¨5Ñ1Ô1ˆØ.�fÔ�vœ~Ñ.Ô.¨xÑ8Ô8ˆØ×Ò˜˜™œ Ñ#Ô#Ð#à
×!Ò!Ñ#Ô#Ð#ð 	×Ò˜œÔ+¨RÑ0Ô0Ð0Ð0Ð0r3   N)rM   rN   rO   rE  rQ   r3   r   rÿ  rÿ  •  s#   € € € € € ð1ð 1ð 1ð 1ð 1r3   rÿ  c                   óX   — e Zd Zdd„Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d	„ Z
d
„ Zd„ Zd„ Zd„ ZdS )ÚTestGlobalVariablesTc                 ó4  — t          j        ¦   «         }t          j        d¦  «        }t          j        ||d¦  «        }||_        t          |¦  «        }|r|                      d|¦  «         n|                      d|¦  «         |                      |¦  «         d S )Nrå   ræ   Úundef)	r	   r©   rç   rú  ry  r›   rà   rS  r@   )r1   ry  Ú	has_undefr?   rü  rg  r=   s          r   Úcheck_global_variable_linkagez1TestGlobalVariables.check_global_variable_linkage°  s�   € õ Œi‰kŒkˆÝŒj˜‰nŒnˆÝÔ˜s C¨Ñ/Ô/ˆØˆŒ
Ý�#‰hŒhˆàð 	+Ø�MŠM˜' 3Ñ'Ô'Ð'Ð'à×Ò˜W cÑ*Ô*Ð*à�Š�CÑÔÐÐÐr3   c                 ó0   — |                       d¦  «         d S )Nrw  ©r  r0   s    r   Útest_internal_linkagez)TestGlobalVariables.test_internal_linkageÄ  ó   € Ø×*Ò*¨:Ñ6Ô6Ð6Ð6Ð6r3   c                 ó0   — |                       d¦  «         d S )NÚcommonr  r0   s    r   Útest_common_linkagez'TestGlobalVariables.test_common_linkageÇ  s   € Ø×*Ò*¨8Ñ4Ô4Ð4Ð4Ð4r3   c                 ó4   — |                       dd¬¦  «         d S )Nrx  F©r  r  r0   s    r   Útest_external_linkagez)TestGlobalVariables.test_external_linkageÊ  s!   € Ø×*Ò*¨:ÀÐ*ÑGÔGÐGÐGÐGr3   c                 ó0   — |                       d¦  «         d S )NÚavailable_externallyr  r0   s    r   Ú!test_available_externally_linkagez5TestGlobalVariables.test_available_externally_linkageÍ  s   € Ø×*Ò*Ð+AÑBÔBÐBÐBÐBr3   c                 ó0   — |                       d¦  «         d S )NÚprivater  r0   s    r   Útest_private_linkagez(TestGlobalVariables.test_private_linkageÐ  s   € Ø×*Ò*¨9Ñ5Ô5Ð5Ð5Ð5r3   c                 ó0   — |                       d¦  «         d S )NÚlinkoncer  r0   s    r   Útest_linkonce_linkagez)TestGlobalVariables.test_linkonce_linkageÓ  r  r3   c                 ó0   — |                       d¦  «         d S )NÚweakr  r0   s    r   Útest_weak_linkagez%TestGlobalVariables.test_weak_linkageÖ  s   € Ø×*Ò*¨6Ñ2Ô2Ð2Ð2Ð2r3   c                 ó0   — |                       d¦  «         d S )NÚ	appendingr  r0   s    r   Útest_appending_linkagez*TestGlobalVariables.test_appending_linkageÙ  s   € Ø×*Ò*¨;Ñ7Ô7Ð7Ð7Ð7r3   c                 ó4   — |                       dd¬¦  «         d S )NÚextern_weakFr  r  r0   s    r   Útest_extern_weak_linkagez,TestGlobalVariables.test_extern_weak_linkageÜ  s!   € Ø×*Ò*¨=ÀEÐ*ÑJÔJÐJÐJÐJr3   c                 ó0   — |                       d¦  «         d S )NÚlinkonce_odrr  r0   s    r   Útest_linkonce_odr_linkagez-TestGlobalVariables.test_linkonce_odr_linkageß  s   € Ø×*Ò*¨>Ñ:Ô:Ð:Ð:Ð:r3   c                 ó0   — |                       d¦  «         d S )NÚweak_odrr  r0   s    r   Útest_weak_odr_linkagez)TestGlobalVariables.test_weak_odr_linkageâ  r  r3   N)T)rM   rN   rO   r  r  r  r  r  r!  r$  r'  r*  r-  r0  r3  rQ   r3   r   r  r  ¯  sÖ   € € € € € ðð ð ð ð(7ð 7ð 7ð5ð 5ð 5ðHð Hð HðCð Cð Cð6ð 6ð 6ð7ð 7ð 7ð3ð 3ð 3ð8ð 8ð 8ðKð Kð Kð;ð ;ð ;ð7ð 7ð 7ð 7ð 7r3   r  zonly on x86c                   ó   — e Zd Zd„ ZdS )ÚTestInlineAsmc                 óä   — t          j        ¦   «          |                      t          ¬¦  «        }|                      d¬¦  «        }|                     |¦  «        }|                      d|¦  «         d S )N)r=   FrF   Únop)r(   Úinitialize_native_asmparserr@   rÕ  rL   rÈ   rà   )r1   r‰   r  r=   s       r   Útest_inlineasmzTestInlineAsm.test_inlineasmè  sg   € ÝÔ(Ñ*Ô*Ð*Ø�KŠK�MˆKÑ*Ô*ˆØ× Ò  UÐ Ñ+Ô+ˆØ×Ò˜qÑ!Ô!ˆØ�Š�e˜SÑ!Ô!Ð!Ð!Ð!r3   N)rM   rN   rO   r9  rQ   r3   r   r5  r5  æ  s#   € € € € € ð"ð "ð "ð "ð "r3   r5  c                   ó*   — e Zd ZdZd„ Zd„ Zd„ Zd„ ZdS )ÚTestObjectFilea,  
        ;ModuleID = <string>
        target triple = "{triple}"

        declare i32 @sum(i32 %.1, i32 %.2)

        define i32 @sum_twice(i32 %.1, i32 %.2) {{
            %.3 = call i32 @sum(i32 %.1, i32 %.2)
            %.4 = call i32 @sum(i32 %.3, i32 %.3)
            ret i32 %.4
        }}
    c                 ó6  — |                       d¬¦  «        }|                      ¦   «         }|                     |¦  «        }t          j                             |¦  «        }d}d}|                     ¦   «         D �]}|                     ¦   «         rôd}|                      | 	                    ¦   «         ¦  «         |  
                    |                     ¦   «         dk    ¦  «         |  
                    t          |                     ¦   «         ¦  «        dk    ¦  «         |                      |                     ¦   «         ¦  «         |  
                    ||                     ¦   «         k     ¦  «         |                     ¦   «         } n�Œ|  
                    |¦  «         d S )NFrF   éÿÿÿÿTr   )rL   r@   r  r(   ÚObjectFileRefÚ	from_dataÚsectionsÚis_textr  rD   rþ   Úsizery   ÚdataÚaddress)r1   rL   r?   rl  ÚobjÚhas_textÚlast_addressrâ   s           r   Útest_object_filezTestObjectFile.test_object_fileÿ  sO  € Ø×,Ò,°Ð,Ñ7Ô7ˆØ�kŠk‰mŒmˆØ ×,Ò,¨SÑ1Ô1ˆÝÔ ×*Ò*¨7Ñ3Ô3ˆàˆØˆØ—’‘”ð 		ñ 		ˆAØ�yŠy‰{Œ{ð Ø�Ø×$Ò$ Q§V¢V¡X¤XÑ.Ô.Ð.Ø—’ §¢¡¤¨1¢Ñ-Ô-Ð-Ø—’¥ A§F¢F¡H¤H¡¤°Ò 1Ñ2Ô2Ð2Ø×$Ò$ Q§Y¢Y¡[¤[Ñ1Ô1Ð1Ø—’ ¨q¯yªy©{¬{Ò :Ñ;Ô;Ð;Ø Ÿyšy™{œ{�Ø�ñð 	�Š˜Ñ!Ô!Ð!Ð!Ð!r3   c                 óþ  — |                       d¬¦  «        }|                      ¦   «         }|                     |¦  «        }t          j                             |¦  «        }t          j        |                      | j        ¦  «        |¦  «        }|                     |¦  «          t          t          t          t          ¦  «        |                     d¦  «        ¦  «        }|                       |dd¦  «        d¦  «         d S )NFrF   Ú	sum_twicer^   rb  r)  )rL   r@   r  r(   r>  r?  r  Úmod_asmrj  r   r   r³  r5   )r1   rL   r?   rl  rE  rG   rJ  s          r   re  z#TestObjectFile.test_add_object_file	  sß   € Ø×,Ò,°Ð,Ñ7Ô7ˆØ�kŠk‰mŒmˆØ ×,Ò,¨SÑ1Ô1ˆÝÔ ×*Ò*¨7Ñ3Ô3ˆåÔ(¨¯ª°T´\Ñ)BÔ)BØ)7ñ9ô 9ˆð 	×Ò˜CÑ Ô Ð à2•I�e¥U­EÑ2Ô2Ø×$Ò$ [Ñ1Ô1ñ3ô 3ˆ	ð 	×Ò˜˜ 1 a™œ¨"Ñ-Ô-Ð-Ð-Ð-r3   c                 ó  — |                       d¬¦  «        }|                      ¦   «         }|                     |¦  «        }t          ¦   «         \  }}	 	 t	          j        |d¦  «        }|                     |¦  «         |                     ¦   «          |                     ¦   «          n# |                     ¦   «          w xY wt          j
        |                      | j        ¦  «        |¦  «        }|                     |¦  «         t	          j        |¦  «         n# t	          j        |¦  «         w xY w t          t          t          t          ¦  «        |                     d¦  «        ¦  «        }|                       |dd¦  «        d¦  «         d S )NFrF   rg  rJ  r^   rb  r)  )rL   r@   r  r   rj   rh  ri  ÚflushrD  r(   r  rK  rj  rk  r   r   r³  r5   )	r1   rL   r?   rl  rm  rn  r‰  rG   rJ  s	            r   ro  z3TestObjectFile.test_add_object_file_from_filesystem#	  s[  € Ø×,Ò,°Ð,Ñ7Ô7ˆØ�kŠk‰mŒmˆØ ×,Ò,¨SÑ1Ô1ˆÝ&™yœyÑˆ	�9ð	!ðÝ”I˜i¨Ñ.Ô.�Ø—’˜Ñ Ô Ð Ø—’‘	”	�	à—’‘	”	�	�	ø�—’‘	”	�	�	øøøåÔ,¨T¯[ª[¸¼Ñ-FÔ-FØ-;ñ=ô =ˆCð ×Ò 	Ñ*Ô*Ð*åŒI�iÑ Ô Ð Ð ø�BŒI�iÑ Ô Ð Ð øøøà2•I�e¥U­EÑ2Ô2Ø×$Ò$ [Ñ1Ô1ñ3ô 3ˆ	ð 	×Ò˜˜ 1 a™œ¨"Ñ-Ô-Ð-Ð-Ð-s   Á>B& ÂD Â&B<Â<AD ÄD,c                 óÀ  — t                                t          ¦  «        }t          j                             |¦  «        }|                     ¦   «         D ]Š}|                     ¦   «         rt|                      t          | 
                    ¦   «         ¦  «        d¦  «         |                      | 
                    ¦   «                              ¦   «         t          ¦  «         Œ‹d S )Né   )rò  ÚfromhexÚissue_632_elfr(   r>  r?  r@  rA  r5   ry   rC  ÚhexÚissue_632_text)r1   ÚelfrE  râ   s       r   Útest_get_section_contentz'TestObjectFile.test_get_section_content=	  s¬   € õ �mŠm�MÑ*Ô*ˆÝÔ ×*Ò*¨3Ñ/Ô/ˆØ—’‘”ð 	Að 	AˆAØ�yŠy‰{Œ{ð AØ× Ò ¥ Q§V¢V¡X¤X¡¤°Ñ3Ô3Ð3Ø× Ò  §¢¡¤§¢¡¤µÑ@Ô@Ð@øð	Að 	Ar3   N)rM   rN   rO   rK  rH  re  ro  rU  rQ   r3   r   r;  r;  ð  s\   € € € € € ð€Gð"ð "ð "ð(.ð .ð .ð .ð .ð .ð4Að Að Að Að Ar3   r;  c                   ó   — e Zd Zd„ Zd„ ZdS )ÚTestTimePassesc                 óÎ  — t          j        ¦   «         }t          j        ¦   «         }d|_        |                     |¦  «         	 t          j        d¦  «         |                     |                      ¦   «         ¦  «         |                     |                      ¦   «         ¦  «         |                     |                      ¦   «         ¦  «         t          j        ¦   «         }t          j        d¦  «         n,# t          j        ¦   «         }t          j        d¦  «         w xY w|  	                    |t          ¦  «         |                      |                     d¦  «        d¦  «         d S )Nrb  TFzPass execution timing reportr]   )r(   r  r"  r$  r?  Úset_time_passesrP  r@   Úreport_and_reset_timingsrý   r›   r5   Úcount)r1   Úmpr   Úreports       r   Útest_reportingzTestTimePasses.test_reportingI	  s$  € ÝÔ,Ñ.Ô.ˆåÔ.Ñ0Ô0ˆØˆŒØ�Š�RÑÔÐð	(ÝÔ  Ñ&Ô&Ð&Ø�FŠF�4—;’;‘=”=Ñ!Ô!Ð!Ø�FŠF�4—;’;‘=”=Ñ!Ô!Ð!Ø�FŠF�4—;’;‘=”=Ñ!Ô!Ð!åÔ2Ñ4Ô4ˆFÝÔ  Ñ'Ô'Ð'Ð'øõ Ô2Ñ4Ô4ˆFÝÔ  Ñ'Ô'Ð'Ð'øøøà×Ò˜f¥cÑ*Ô*Ð*Ø×Ò˜ŸšÐ&DÑEÔEÀqÑIÔIÐIÐIÐIs   ÁB	C5 Ã5)Dc                 óR   — |                       t          j        ¦   «         ¦  «         d S r'   )rË  r(   rZ  r0   s    r   Útest_empty_reportz TestTimePasses.test_empty_report\	  s%   € à×Ò�Ô6Ñ8Ô8Ñ9Ô9Ð9Ð9Ð9r3   N)rM   rN   rO   r^  r`  rQ   r3   r   rW  rW  H	  s5   € € € € € ðJð Jð Jð&:ð :ð :ð :ð :r3   rW  c                   ó   — e Zd Zd„ ZdS )ÚTestLLVMLockCallbacksc                 óî  ‡— g Šˆfd„}ˆfd„}t           j                             ||¦  «         |                      ‰¦  «         t          j        ¦   «          |                      d‰¦  «         |                      d‰¦  «         t           j                             ||¦  «         |                      t          ¦  «        5  t           j                             ||¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nc                  ó2   •— ‰                       d¦  «         d S )NÚacqrë  ©Úeventss   €r   re  z6TestLLVMLockCallbacks.test_lock_callbacks.<locals>.acqe	  ó   ø€ Ø�MŠM˜%Ñ Ô Ð Ð Ð r3   c                  ó2   •— ‰                       d¦  «         d S )NÚrelrë  rf  s   €r   rj  z6TestLLVMLockCallbacks.test_lock_callbacks.<locals>.relh	  rh  r3   re  rj  )	r(   r   Úregister_lock_callbackrË  r  rà   Úunregister_lock_callbackrÝ   rŒ  )r1   re  rj  rg  s      @r   Útest_lock_callbacksz)TestLLVMLockCallbacks.test_lock_callbacksb	  sM  ø€ Øˆð	!ð 	!ð 	!ð 	!ð 	!ð	!ð 	!ð 	!ð 	!ð 	!õ 	Œ×'Ò'¨¨SÑ1Ô1Ð1ð 	×Ò˜Ñ Ô Ð åÔ'Ñ)Ô)Ð)à�Š�e˜VÑ$Ô$Ð$Ø�Š�e˜VÑ$Ô$Ð$õ 	Œ×)Ò)¨#¨sÑ3Ô3Ð3ð ×Ò�zÑ*Ô*ð 	8ð 	8ÝŒH×-Ò-¨c°3Ñ7Ô7Ð7ð	8ð 	8ð 	8ñ 	8ô 	8ð 	8ð 	8ð 	8ð 	8ð 	8ð 	8ð 	8øøøð 	8ð 	8ð 	8ð 	8ð 	8ð 	8s   Â<!C*Ã*C.Ã1C.N)rM   rN   rO   rm  rQ   r3   r   rb  rb  a	  s#   € € € € € ð8ð 8ð 8ð 8ð 8r3   rb  Ú__main__)ZrE  rY  r   r   r   Úctypes.utilr   r,   r   rj   r}   rr   rm   r�   r�   Ú
contextlibr   Útempfiler   Úllvmliter	   r
   r(   Úllvmlite.bindingr   Úllvmlite.testsr   rÕ  rÙ  r   rP   r™  rå  r�  r:  rH  r~   ÚreplacerÞ   rW  r¤  rñ  r5  rÕ  rb  rj  r|  r  rB  ré   rô  rÉ   rÐ   rÕ   rÉ  rQ  rS  rÑ  r%   rS   r’   rÙ   r?  Úobjectr°  rÿ  r  rŽ   r   r  rq  rø  r  r  r  rE  rJ  rt  r†  r×  rà  rô  rÿ  r  r5  r;  rW  rb  rM   ÚmainrQ   r3   r   ú<module>rx     sí  ðØ €€€Ø Ð Ð Ð Ø ,Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,Ø $Ð $Ð $Ð $Ð $Ð $Ø 	€	€	€	Ø €€€Ø 	€	€	€	Ø €€€Ø 	€	€	€	Ø Ð Ð Ð Ø 
€
€
€
Ø €€€Ø %Ð %Ð %Ð %Ð %Ð %Ø Ð Ð Ð Ð Ð à Ð Ð Ð Ð Ð Ø $Ð $Ð $Ð $Ð $Ð $Ø  Ð  Ð  Ð  Ð  Ð  Ø #Ð #Ð #Ð #Ð #Ð #ð €8ÔÑÔ˜Ò!Ð!Ø!€DÔ! /Ñ2Ô2Ð2ð	-ð 	-ð 	-ð€ð$€ð
€ð	€ð€ð
€ð "€8Ô!Ñ#Ô# vÒ-Ð-Ø#×+Ò+¨OÐ=NÑOÔO€Nð€ðÐ ð€ðÐ ðÐ ð€ð€ð,B€ðH&€ðPÐ ð:€ð<	Ð ðÐ ðð ð €ð ð ð Ð ðð ð Ð ð€ð6-ð ð( Eð ð€ð"5ð 5ð 5ð 5ð 5ˆxñ 5ô 5ð 5ðD'Jð 'Jð 'Jð 'Jð 'J�xñ 'Jô 'Jð 'JðTF+ð F+ð F+ð F+ð F+�8ñ F+ô F+ð F+ðRI'ð I'ð I'ð I'ð I'ˆxñ I'ô I'ð I'ðXD>ð D>ð D>ð D>ð D>�Hñ D>ô D>ð D>ðNv-ð v-ð v-ð v-ð v-�6ñ v-ô v-ð v-ðr4ð 4ð 4ð 4ð 4˜ñ 4ô 4ð 4ð4?ð ?ð ?ð ?ð ?�Ð,ñ ?ô ?ð ?ð €ÔÐ%�XÔ%Ñ'Ô'×2Ò2°5Ñ9Ô9¸:ÑFÔFð}!ð }!ð }!ð }!ð }!�8ñ }!ô }!ñ GÔFð}!ð@Y@ð Y@ð Y@ð Y@ð Y@�8ñ Y@ô Y@ð Y@ðx%-ð %-ð %-ð %-ð %-�ñ %-ô %-ð %-ðPCð Cð Cð Cð C�Xñ Cô Cð Cð>Eð Eð Eð Eð E˜ñ Eô Eð Eð"Gð Gð Gð Gð G˜Xñ Gô Gð GðTð ð ð ð ˜6ñ ô ð ðL+ð L+ð L+ð L+ð L+˜HÐ&:ñ L+ô L+ð L+ð^D'ð D'ð D'ð D'ð D'˜hÐ(<ñ D'ô D'ð D'ðNd6ð d6ð d6ð d6ð d6�Ð/ñ d6ô d6ð d6ðN
,ð 
,ð 
,ð 
,ð 
,�ñ 
,ô 
,ð 
,ð#1ð #1ð #1ð #1ð #1�8ñ #1ô #1ð #1ðL3ð 3ð 3ð 3ð 3�hñ 3ô 3ð 3ð81ð 1ð 1ð 1ð 1˜Yñ 1ô 1ð 1ð447ð 47ð 47ð 47ð 47˜(ñ 47ô 47ð 47ðn €ÔÐ%�XÔ%Ñ'Ô'×2Ò2°5Ñ9Ô9¸=ÑIÔIð"ð "ð "ð "ð "�Hñ "ô "ñ JÔIð"ðUAð UAð UAð UAð UA�Xñ UAô UAð UAðp:ð :ð :ð :ð :�Xñ :ô :ð :ð28ð 8ð 8ð 8ð 8˜Hñ 8ô 8ð 8ð: ˆzÒÐØ€H„M�O„O€O€O€Oð Ðr3   