§
    .@ÄjÐÕ ã                   ó  — 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¦  «          ej        ej        dk    dej        › �¦  «        Z ej        ej        dk    dej        › �¦  «        Z dZ!	 d dl"Z"dZ!n# e#$ r Y nw xY w ej        e!d¦  «        Z$d„ Z%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Z0d Z1d!Z2d"Z3d#Z4d$Z5d%Z6d&Z7d'Z8d(Z9d)Z:d*Z;d+Z<g d,¢Z=g d-¢Z>g d.¢Z?d/Z@d0ZAd1ZBd2ZCd3ZDd4ZEd5ZFd6ZGd7ZHd8ZI G d9„ d:e¦  «        ZJ G d;„ d<eJ¦  «        ZK G d=„ d>eJ¦  «        ZL G d?„ d@eJ¦  «        ZM G dA„ dBeJ¦  «        ZN G dC„ dDeO¦  «        ZP G dE„ dFeP¦  «        ZQ G dG„ dHeJeQ¦  «        ZR ejS        dI¦  «         G dJ„ dKeJ¦  «        ¦   «         ZT G dL„ dMeJ¦  «        ZU G dN„ dOeJ¦  «        ZV G dP„ dQeJ¦  «        ZW G dR„ dSeJ¦  «        ZX G dT„ dUeJ¦  «        ZY G dV„ dWeJ¦  «        ZZ G dX„ dYeJ¦  «        Z[ G dZ„ d[eJ¦  «        Z\ G d\„ d]eR¦  «        Z] G d^„ d_eJ¦  «        Z^ ej         e
j        ¦   «          _                    d`¦  «        da¦  «         G db„ dceJ¦  «        ¦   «         Z` G dd„ deeJ¦  «        Za G df„ dgeJ¦  «        Zb G dh„ dieJ¦  «        Zc G dj„ dkeO¦  «        Zd G dl„ dmeJed¦  «        Ze G dn„ doeJed¦  «        Zf G dp„ dqeJed¦  «        Zg ej        e	jh         i                    dr¦  «        ds¦  «        e$ G dt„ due¦  «        ¦   «         ¦   «         Zjekdvk    r ejl        ¦   «          dS dS )wé    N)Ú	CFUNCTYPEÚc_intÚc_int32)Úfind_library)Úcontextmanager)Úmkstemp)Úir)Úbinding)Úffi)ÚTestCaseÚarmv7lzlibgcc_s.so.1Úcondazconda package test only, have Úwheelzwheel package test only, have FTztest needs py-lief packagec                  ó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    úLC:\Projects\Historical\venv\Lib\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]}}
    %struct.glob_type_vec = 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}"

    define i32 @sum(i32 %.1, i32 %.2) {{
        %.3 = add i32 %.1, %.2
        ret i32 0
    }}
    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)
    zg
    ; ModuleID = '<string>'
    target triple = "{triple}"

    declare i32 @vararg(i32 %.1, ...)
    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	fa5, 8(sp)zfmv.w.x	fa4, a0zfcvt.d.s	fa4, fa4úfadd.d	fa5, fa4, fa5úfsd	fa5, 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	fa4, fa0r   r   r    r!   r"   r#   )zfcvt.d.s	fa5, fa0zfadd.d	fa0, fa5, fa1r#   zc
declare void @a_readonly_func(i8 *) readonly

declare i8* @a_arg0_return_func(i8* returned, i32*)
a*  
define double @foo(i32 %i, double %j) optnone noinline {
    %I = alloca i32		; <i32*> [#uses=4]
    %J = alloca double		; <double*> [#uses=2]
    store i32 %i, i32* %I
    store double %j, double* %J
    %t1 = load i32, i32* %I		; <i32> [#uses=1]
    %t2 = add i32 %t1, 1		; <i32> [#uses=1]
    store i32 %t2, i32* %I
    %t3 = load i32, i32* %I		; <i32> [#uses=1]
    %t4 = sitofp i32 %t3 to double		; <double> [#uses=1]
    %t5 = load double, double* %J		; <double> [#uses=1]
    %t6 = fmul double %t4, %t5		; <double> [#uses=1]
    ret double %t6
}
a  
    ; ModuleID = '<string>'

    define void @stride1(ptr noalias %B, i32 %BStride) {{
    entry:
        br label %for.body

    for.body:
        %iv = phi i32 [ %iv.next, %for.body ], [ 0, %entry ]
        %mulB = mul nsw i32 %iv, %BStride
        %gepOfB = getelementptr inbounds i16, ptr %B, i32 %mulB
        store i16 42, ptr %gepOfB, align 4
        %iv.next = add nuw nsw i32 %iv, 1
        %exitcond = icmp eq i32 %iv.next, 1025
        br i1 %exitcond, label %for.end, label %for.body

    for.end:
        ret void
    }}
    z#
declare void @test_declare(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
}
aª  
; ModuleID = '<string>'
target triple = "{triple}"

define void @foo(i32 %N) {{
  ; unnamed block for testing
  %cmp4 = icmp sgt i32 %N, 0
  br i1 %cmp4, label %for.body, label %for.cond.cleanup

for.cond.cleanup:
  ret void

for.body:
  %i.05 = phi i32 [ %inc, %for.body ], [ 0, %0 ]
  %inc = add nuw nsw i32 %i.05, 1
  %exitcond.not = icmp eq i32 %inc, %N
  br i1 %exitcond.not, label %for.cond.cleanup, label %for.body
}}
aw  
; Source C++
;-----------------------------------------
; class MyClass;
;
; class MyClassDefined{
;     MyClass *member;
;     MyClass *m2;
;     MyClass *m3;
; };
;
; void foo(MyClass *c, MyClassDefined){ }
;-----------------------------------------
; LLVM-IR by: clang -arch arm64 -S -emit-llvm file.cpp
; ModuleID = 'file.cpp'
source_filename = "class.cpp"
target datalayout = "e-m:o-i64:64-i128:128-n32:64-S128"
target triple = "arm64-apple-macosx13.3.0"

%class.MyClass = type opaque
%class.MyClassDefined = type { %class.MyClass*, %class.MyClass*, %class.MyClass* }

; Function Attrs: noinline nounwind optnone ssp uwtable(sync)
define void @_Z3fooP7MyClass14MyClassDefined(%class.MyClass* noundef %0, %class.MyClassDefined* noundef %1) {
  %3 = alloca %class.MyClass*, align 8
  store %class.MyClass* %0, %class.MyClass** %3, align 8
  ret void
}

!llvm.module.flags = !{!0, !1, !2, !3, !4, !5, !6, !7, !8}
!llvm.ident = !{!9}

!0 = !{i32 2, !"SDK Version", [2 x i32] [i32 13, i32 3]}
!1 = !{i32 1, !"wchar_size", i32 4}
!2 = !{i32 8, !"branch-target-enforcement", i32 0}
!3 = !{i32 8, !"sign-return-address", i32 0}
!4 = !{i32 8, !"sign-return-address-all", i32 0}
!5 = !{i32 8, !"sign-return-address-with-bkey", i32 0}
!6 = !{i32 7, !"PIC Level", i32 2}
!7 = !{i32 7, !"uwtable", i32 1}
!8 = !{i32 7, !"frame-pointer", i32 1}
!9 = !{!"Apple clang version 14.0.3 (clang-1403.0.22.14.1)"}

a  ; Source C++
;-----------------------------------------

; struct Vector2D{
;     float x, y;
; };
;
; void foo(Vector2D vec, Vector2D *out) {
;     *out = vec;
; }
;-----------------------------------------
; LLVM-IR by: clang -arch x86_64 -S -emit-llvm file.cpp
; ModuleID = 'file.cpp'
source_filename = "class.cpp"
target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128"
target triple = "x86_64-apple-macosx13.3.0"

%struct.Vector2D = type { float, float }

; Function Attrs: noinline nounwind optnone ssp uwtable
define void @_Z3foo8Vector2DPS_(<2 x float> %0, %struct.Vector2D* noundef %1) #0 {
  %3 = alloca %struct.Vector2D, align 4
  %4 = alloca %struct.Vector2D*, align 8
  %5 = bitcast %struct.Vector2D* %3 to <2 x float>*
  store <2 x float> %0, <2 x float>* %5, align 4
  store %struct.Vector2D* %1, %struct.Vector2D** %4, align 8
  %6 = load %struct.Vector2D*, %struct.Vector2D** %4, align 8
  %7 = bitcast %struct.Vector2D* %6 to i8*
  %8 = bitcast %struct.Vector2D* %3 to i8*
  call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %7, i8* align 4 %8, i64 8, i1 false)
  ret void
}

; Function Attrs: argmemonly nofree nounwind willreturn
declare void @llvm.memcpy.p0i8.p0i8.i64(i8* noalias nocapture writeonly, i8* noalias nocapture readonly, i64, i1 immarg) #1

attributes #0 = { noinline nounwind optnone ssp uwtable "darwin-stkchk-strong-link" "frame-pointer"="all" "min-legal-vector-width"="64" "no-trapping-math"="true" "probe-stack"="___chkstk_darwin" "stack-protector-buffer-size"="8" "target-cpu"="penryn" "target-features"="+cx16,+cx8,+fxsr,+mmx,+sahf,+sse,+sse2,+sse3,+sse4.1,+ssse3,+x87" "tune-cpu"="generic" }
attributes #1 = { argmemonly nofree nounwind willreturn }

!llvm.module.flags = !{!0, !1, !2, !3, !4}
!llvm.ident = !{!5}

!0 = !{i32 2, !"SDK Version", [2 x i32] [i32 13, i32 3]}
!1 = !{i32 1, !"wchar_size", i32 4}
!2 = !{i32 7, !"PIC Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{i32 7, !"frame-pointer", i32 2}
!5 = !{!"Apple clang version 14.0.3 (clang-1403.0.22.14.1)"}

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        d d …         | _        g t          j        d d …<   d S ©N)ÚllvmÚinitialize_native_targetÚinitialize_native_asmprinterÚgcÚcollectÚgarbageÚold_garbage©Úselfs    r   ÚsetUpzBaseTest.setUp¶  sP   € ÝÔ%Ñ'Ô'Ð'ÝÔ)Ñ+Ô+Ð+Ý
Œ
‰ŒˆÝœ: a a aœ=ˆÔØ�Œ
�1�1�1‰ˆˆó    c                 óp   — t          j        ¦   «          |                      t           j        g ¦  «         | `d S r)   )r-   r.   ÚassertEqualr/   r0   r1   s    r   ÚtearDownzBaseTest.tearDown½  s3   € õ 	Œ
‰ŒˆØ×Ò�œ RÑ(Ô(Ð(àÐÐÐr4   Nc                 ó~   — |                      t          j        ¦   «         ¬¦  «        }t          j        ||¦  «        }|S )N©Útriple)Úformatr*   Úget_default_tripleÚparse_assembly)r2   ÚasmÚcontextÚmods       r   ÚmodulezBaseTest.moduleÆ  s5   € Ø�jŠj¥Ô 7Ñ 9Ô 9ˆjÑ:Ô:ˆÝÔ! # wÑ/Ô/ˆØˆ
r4   Úglobc                 óX   — |€|                       ¦   «         }|                     |¦  «        S r)   )rA   Úget_global_variable)r2   Únamer@   s      r   rB   zBaseTest.globË  s(   € Øˆ;Ø—+’+‘-”-ˆCØ×&Ò& tÑ,Ô,Ð,r4   c                ój   — t           j                             ¦   «         }|                     |¬¦  «        S )N©Újit)r*   ÚTargetÚfrom_default_tripleÚcreate_target_machine)r2   rH   Útargets      r   Útarget_machinezBaseTest.target_machineÐ  s,   € Ý”×0Ò0Ñ2Ô2ˆØ×+Ò+°Ð+Ñ4Ô4Ð4r4   )rB   N)	Ú__name__Ú
__module__Ú__qualname__r3   r7   Úasm_sumrA   rB   rM   © r4   r   r'   r'   ´  sp   € € € € € ðð ð ðð ð ð !¨$ð ð ð ð ð
-ð -ð -ð -ð
5ð 5ð 5ð 5ð 5r4   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_TESTú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¦  «         g }|D ]0}
|
                     d¦  «        s|
|vr|                     |
¦  «         Œ1t'          |¦  «        d	k    r#|                      d|d         ›d|›�¦  «         d S t'          |¦  «        d	k    r|                      d|›d|›�¦  «         d S d 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Úlibdlrb   ÚlibzÚlibmÚlibgcc_sra   zld-linuxÚld64Úlibzstdz	libstdc++r   Úlibtinfoz	ld-linux-zunexpected dependency z in zunexpected dependencies )r   ÚlibÚ_nameÚosÚenvironÚcopyÚ
subprocessÚPopenÚPIPEÚcommunicater6   Ú
returncodeÚreÚcompileÚsetÚdecodeÚ
splitlinesÚsplitÚmatchÚlenÚfailÚaddÚgroupÚplatformÚpython_implementationÚ
startswithÚappend)r2   Úlib_pathr]   ÚpÚoutÚ_Úlib_patÚdepsÚlineÚpartsÚdepÚmÚallowedÚfailss                 r   Ú
test_linuxzTestDependencies.test_linuxÚ  sc  € õ
 ”7”=ˆÝŒj�oŠoÑÔˆØˆˆF‰ÝÔ˜i¨¨xÐ8Ý$.¤O¸ð>ñ >ô >ˆà—’‘”‰ˆˆQØ×Ò˜˜AœLÑ)Ô)Ð)å”*ÐEÑFÔFˆÝ‰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˜
Ñ#Ô#Ð#àˆØð 	"ð 	"ˆCØ—>’> +Ñ.Ô.ð "°3¸gÐ3EÐ3EØ—’˜SÑ!Ô!Ð!øÝˆu‰:Œ:˜Š?ˆ?Ø�IŠIˆI¸%À¼(¸(¸(ÀDÀDÐIÑJÔJÐJÐJÐJÝ�‰ZŒZ˜!Š^ˆ^Ø�IŠIˆI¸E¸E¸EÀ4À4ÐHÑIÔIÐIÐIÐIàˆDr4   N)rN   rO   rP   Ú__doc__ÚunittestÚ
skipUnlessÚsysr€   r‚   rm   rn   Úgetr�   rR   r4   r   rT   rT   Õ  s�   € € € € € ðð ð €XÔ˜œ×0Ò0°Ñ9Ô9Ø.ñ0ô 0à€XÔ˜œŸšÐ(<Ñ=Ô=Ø5ñ7ô 7ð&ð &ñ7ô 7ñ0ô 0ð&ð &ð &r4   rT   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)   )Úsuperr3   r*   Úinitialize_all_targetsÚinitialize_all_asmprinters)r2   Ú	__class__s    €r   r3   zTestRISCVABI.setUp  s8   ø€ Ý‰Œ�Š‰ŒˆÝÔ#Ñ%Ô%Ð%ÝÔ'Ñ)Ô)Ð)Ð)Ð)r4   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*   rI   Úfrom_tripler:   ÚRuntimeErrorÚstrÚskipTest)r2   Úes     r   Úcheck_riscv_targetzTestRISCVABI.check_riscv_target  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 )NrR   )r*   rI   rž   r:   rK   )r2   ÚkwargÚlltargets      r   Úriscv_target_machinez!TestRISCVABI.riscv_target_machine  s2   € Ý”;×*Ò*¨4¬;Ñ7Ô7ˆØ-ˆxÔ-Ð6Ð6°Ð6Ð6Ð6r4   c                 ó$  — t          j        ¦   «         }t          j        ¦   «         }t          j        |||f¦  «        }t          j        ¦   «         }t          j        ||d¬¦  «        }|                     ¦   «         }t          j        |¦  «        }|j        \  }}	| 	                    ||¦  «        }
| 
                    |
|	¦  «        }|                     |¦  «         t          j        t          |¦  «        ¦  «        }|                     ¦   «          |S )NÚfpadd©rE   )r	   Ú
DoubleTypeÚ	FloatTypeÚFunctionTypeÚModuleÚFunctionÚappend_basic_blockÚ	IRBuilderÚargsÚfpextÚfaddr#   r*   r=   r    Úverify)r2   Úf64Úf32ÚfntyrA   ÚfuncÚblockÚbuilderÚaÚbÚarg0ÚresultÚllmods                r   Úfpadd_ll_modulezTestRISCVABI.fpadd_ll_module   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ˆØ�Š‰ŒˆØˆr4   c                 óê   — g }|                      ¦   «         D ][}|                     ¦   «         }|                     d¦  «        s0|                     d¦  «        s|dk    s|                     |¦  «         Œ\|S )Nú.r©   Ú )ry   Ústripr‚   rƒ   )r2   r>   Úasm_listrŠ   Ús_lines        r   Úbreak_up_asmzTestRISCVABI.break_up_asm1  sy   € ØˆØ—N’NÑ$Ô$ð 	(ð 	(ˆDØ—Z’Z‘\”\ˆFØ×%Ò% cÑ*Ô*ð (¨f×.?Ò.?ÀÑ.HÔ.Hð (Ø ’|�|Ø—’ Ñ'Ô'Ð'øØˆr4   c                 ó  — |                       ¦   «          |                      ¦   «         }|                      dd¬¦  «        }|                      |                      |                     |¦  «        ¦  «        t          ¦  «         d S )Nú+f,+dÚilp32©ÚfeaturesÚabiname)r£   rÁ   r§   r6   rÈ   Úemit_assemblyÚriscv_asm_ilp32©r2   rÀ   rL   s      r   Útest_rv32d_ilp32zTestRISCVABI.test_rv32d_ilp32:  s€   € Ø×ÒÑ!Ô!Ð!Ø×$Ò$Ñ&Ô&ˆØ×*Ò*°GÀWÐ*ÑMÔMˆØ×Ò˜×*Ò*¨6×+?Ò+?ÀÑ+FÔ+FÑGÔGÝ(ñ	*ô 	*ð 	*ð 	*ð 	*r4   c                 ó  — |                       ¦   «          |                      ¦   «         }|                      dd¬¦  «        }|                      |                      |                     |¦  «        ¦  «        t          ¦  «         d S )NrÊ   Úilp32frÌ   )r£   rÁ   r§   r6   rÈ   rÏ   Úriscv_asm_ilp32frÑ   s      r   Útest_rv32d_ilp32fzTestRISCVABI.test_rv32d_ilp32fA  ó€   € Ø×ÒÑ!Ô!Ð!Ø×$Ò$Ñ&Ô&ˆØ×*Ò*°GÀXÐ*ÑNÔNˆØ×Ò˜×*Ò*¨6×+?Ò+?ÀÑ+FÔ+FÑGÔGÝ)ñ	+ô 	+ð 	+ð 	+ð 	+r4   c                 ó  — |                       ¦   «          |                      ¦   «         }|                      dd¬¦  «        }|                      |                      |                     |¦  «        ¦  «        t          ¦  «         d S )NrÊ   Úilp32drÌ   )r£   rÁ   r§   r6   rÈ   rÏ   Úriscv_asm_ilp32drÑ   s      r   Útest_rv32d_ilp32dzTestRISCVABI.test_rv32d_ilp32dH  r×   r4   )rN   rO   rP   r‘   r:   r3   r£   r§   rÁ   rÈ   rÒ   rÖ   rÛ   Ú__classcell__)rœ   s   @r   r—   r—     s²   ø€ € € € € ðð ð %€Fð*ð *ð *ð *ð *ð
ð ð ð7ð 7ð 7ðð ð ð"ð ð ð*ð *ð *ð+ð +ð +ð+ð +ð +ð +ð +ð +ð +r4   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 ej         e¦   «         d¦  «        d„ ¦   «         Zd„ ZdS )ÚTestMiscz7
    Test miscellaneous functions in llvm.binding.
    c                 ó:   — |                       t          ¦  «         d S r)   )rA   rQ   r1   s    r   Útest_parse_assemblyzTestMisc.test_parse_assemblyU  s   € Ø�Š•GÑÔÐÐÐr4   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Ÿ   rA   Úasm_parse_errorr    Ú	exceptionÚassertIn)r2   ÚcmÚss      r   Útest_parse_assembly_errorz"TestMisc.test_parse_assembly_errorX  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    r6   Úasm_nonalphanum_blocklabel)r2   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Ð9r4   c                 óŽ   — t           j                             ¦   «         }t           j                             ¦   «         }||k    sJ ‚d S r)   )r*   r?   Úget_global_context)r2   Ú	gcontext1Ú	gcontext2s      r   Útest_global_contextzTestMisc.test_global_contexth  s?   € Ý”L×3Ò3Ñ5Ô5ˆ	Ý”L×3Ò3Ñ5Ô5ˆ	Ø˜IÒ%Ð%Ð%Ð%Ð%Ð%r4   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_symbolr6   ÚassertIs)r2   Úaddrs     r   Útest_dylib_symbolszTestMisc.test_dylib_symbolsm  sv   € ÝŒ˜	 4Ñ(Ô(Ð(ÝŒ˜	 4Ñ(Ô(Ð(ÝÔ% iÑ0Ô0ˆØ×Ò˜˜tÑ$Ô$Ð$ÝÔ% jÑ1Ô1ˆØ�Š�d˜DÑ!Ô!Ð!Ð!Ð!r4   c                 óŒ   — t          j        ¦   «         }|                      |t          ¦  «         |                      |¦  «         d S r)   )r*   r<   ÚassertIsInstancer    Ú
assertTrue)r2   r:   s     r   Útest_get_default_triplez TestMisc.test_get_default_tripleu  s>   € ÝÔ(Ñ*Ô*ˆØ×Ò˜f¥cÑ*Ô*Ð*Ø�Š˜ÑÔÐÐÐr4   c                 ót  — d„ }t          j        ¦   «         }t          j        ¦   «         }|                      |t          ¦  «         |                      |¦  «          ||                     d¦  «        d         ¦  «        } ||                     d¦  «        d         ¦  «        }|                      ||¦  «         d S )Nc                 ó   — | dk    rdS | S )NÚpowerpc64leÚppc64lerR   )Úarchs    r   Únormalize_ppcz7TestMisc.test_get_process_triple.<locals>.normalize_ppc|  s   € Ø�}Ò$Ð$Ø �yà�r4   ú-r   )r*   Úget_process_tripler<   r  r    r  rz   r6   )r2   r
  r:   ÚdefaultÚdefault_archÚtriple_archs         r   Útest_get_process_triplez TestMisc.test_get_process_triplez  s³   € ð	ð 	ð 	õ Ô(Ñ*Ô*ˆÝÔ)Ñ+Ô+ˆØ×Ò˜f¥cÑ*Ô*Ð*Ø�Š˜ÑÔÐà$�} W§]¢]°3Ñ%7Ô%7¸Ô%:Ñ;Ô;ˆØ#�m F§L¢L°Ñ$5Ô$5°aÔ$8Ñ9Ô9ˆà×Ò˜ {Ñ3Ô3Ð3Ð3Ð3r4   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;   ÚassertIsNotNoneru   r{   r|   r6   )r2   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ÐEr4   c                 óŒ   — t          j        ¦   «         }|                      |t          ¦  «         |                      |¦  «         d S r)   )r*   Úget_host_cpu_namer  r    r  )r2   Úcpus     r   Útest_get_host_cpu_namezTestMisc.test_get_host_cpu_name£  s>   € ÝÔ$Ñ&Ô&ˆØ×Ò˜c¥3Ñ'Ô'Ð'Ø�Š˜ÑÔÐÐÐr4   c                 óL   — d}t          j        t          j        d|g¦  «         d S )Na  if 1:
            from llvmlite import binding as llvm

            llvm.initialize_native_target()
            llvm.initialize_native_asmprinter()
            llvm.initialize_all_targets()
            llvm.initialize_all_asmprinters()
            llvm.shutdown()
            ú-c©rp   Ú
check_callr”   Ú
executable©r2   Úcodes     r   Útest_initfinizTestMisc.test_initfini¨  s+   € ðˆõ 	Ô�sœ~¨t°TÐ:Ñ;Ô;Ð;Ð;Ð;r4   c                 óš   — d}|                       t          |¬¦  «        5  t          j        ¦   «          d d d ¦  «         d S # 1 swxY w Y   d S )Nz-llvmlite.binding.initialize\(\) is deprecated)Úexpected_regex)ÚassertRaisesRegexrŸ   r*   Ú
initialize)r2   r  s     r   Útest_deprecated_initzTestMisc.test_deprecated_init´  s’   € Ø@ˆØ×#Ò#¥LÀÐ#ÑGÔGð 	ð 	ÝŒOÑÔÐð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	ð 	s   ŸA Á AÁA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Ð:Ñ;Ô;Ð;Ð;Ð;r4   c                 óœ   — t           j        \  }}}d}|                      ||¦  «         |                      |t          d¦  «        ¦  «         d S )N)é   é	   )r*   Úllvm_version_inforå   Úrange)r2   ÚmajorÚminorÚpatchÚvalids        r   Útest_versionzTestMisc.test_versionÃ  sJ   € Ý"Ô4Ñˆˆu�eàˆØ�Š�e˜UÑ#Ô#Ð#Ø�Š�e�U 1™XœXÑ&Ô&Ð&Ð&Ð&r4   c                 ó,   — t          j        ¦   «          d S r)   )r*   Úcheck_jit_executionr1   s    r   Útest_check_jit_executionz!TestMisc.test_check_jit_executionÊ  s   € ÝÔ Ñ"Ô"Ð"Ð"Ð"r4   zLocale not availablec                 óà   — |                       t          ¦  «        }t          |¦  «        }t          j        t          j        d¦  «         t          |¦  «        }|                      ||¦  «         d S )Nr   )rA   Úasm_double_localer    r   r   r   r6   )r2   r�   ÚexpectÚgots       r   Útest_print_double_localez!TestMisc.test_print_double_localeÍ  s]   € à�KŠKÕ)Ñ*Ô*ˆÝ�Q‘”ˆõ 	Ô�œ¨Ñ0Ô0Ð0å�!‰fŒfˆà×Ò˜ Ñ%Ô%Ð%Ð%Ð%r4   c                 óV   — d}d}t           j        |d|g}t          j        |¦  «         d S )Nzfrom llvmlite import bindingz-Werrorr#  )r”   r&  rp   r%  )r2   r(  ÚflagsÚcmdargss       r   Útest_no_accidental_warningsz$TestMisc.test_no_accidental_warningsÙ  s3   € Ø-ˆØˆÝ”> 5¨$°Ð5ˆÝÔ˜gÑ&Ô&Ð&Ð&Ð&r4   N)rN   rO   rP   r‘   rà   rè   rò   r÷   r   r  r  r  r!  r)  r.  r0  r:  r=  r’   ÚskipIfr   rB  rF  rR   r4   r   rÞ   rÞ   P  s3  € € € € € ðð ðð ð ð1ð 1ð 1ð:ð :ð :ð&ð &ð &ð
"ð "ð "ð ð  ð  ð
4ð 4ð 4ð$Fð Fð Fð.ð ð ð

<ð 
<ð 
<ðð ð ð
<ð <ð <ð'ð 'ð 'ð#ð #ð #ð €X„_�\�\‘^”^Ð%;Ñ<Ô<ð	&ð 	&ñ =Ô<ð	&ð'ð 'ð 'ð 'ð 'r4   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 =)rA   r    rÅ   r  r‚   ©r2   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Ð8r4   c                 ó(  — |                       ¦   «         }t          |¦  «         |                     ¦   «          |                      t          j        ¦  «        5  t          |¦  «         d d d ¦  «         n# 1 swxY w Y   |                     ¦   «          d S r)   )rA   r    Úcloserâ   ÚctypesÚArgumentError©r2   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)   )rA   r    râ   rO  rP  rŸ   rQ  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)rA   rE   r6   rQ  s     r   Ú	test_namezTestModuleRef.test_nameú  sS   € Ø�kŠk‰mŒmˆØˆŒØ×Ò˜œ 5Ñ)Ô)Ð)ØˆŒØ×Ò˜œ 5Ñ)Ô)Ð)Ð)Ð)r4   c                 ód   — |                       ¦   «         }|                      |j        d¦  «         d S )Nz	asm_sum.c)rA   r6   Úsource_filerQ  s     r   Útest_source_filezTestModuleRef.test_source_file  s-   € Ø�kŠk‰mŒmˆØ×Ò˜œ¨+Ñ6Ô6Ð6Ð6Ð6r4   c                 ó¶   — |                       ¦   «         }|j        }|                      |t          ¦  «         ||_        |                      ||j        ¦  «         d S r)   )rA   Údata_layoutr  r    r6   rK  s      r   Útest_data_layoutzTestModuleRef.test_data_layout  sQ   € Ø�kŠk‰mŒmˆØŒOˆØ×Ò˜a¥Ñ%Ô%Ð%ØˆŒØ×Ò˜˜CœOÑ,Ô,Ð,Ð,Ð,r4   c                 óÎ   — |                       ¦   «         }|j        }|                      |t          j        ¦   «         ¦  «         d|_        |                      |j        d¦  «         d S )NrÄ   )rA   r:   r6   r*   r<   rK  s      r   Útest_triplezTestModuleRef.test_triple  sZ   € Ø�kŠk‰mŒmˆØŒJˆØ×Ò˜�DÔ3Ñ5Ô5Ñ6Ô6Ð6ØˆŒ
Ø×Ò˜œ RÑ(Ô(Ð(Ð(Ð(r4   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)	rA   rþ   rµ   Úasm_verification_failrâ   rŸ   r    rä   rå   )r2   r@   ræ   rç   s       r   Útest_verifyzTestModuleRef.test_verify  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ë   )
rA   Úget_functionr  r*   ÚValueRefr6   rE   râ   Ú	NameErrorr    ©r2   r@   rð   s      r   Útest_get_functionzTestModuleRef.test_get_function  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 )Nústruct.glob_typeú8%struct\.glob_type(\.[\d]+)? = type { i64, \[2 x i64\] }zstruct.doesnt_exist)
rA   Úget_struct_typer6   rE   r  ru   r{   r    râ   rg  )r2   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 )NrB   rV  )
rA   rD   r  r*   rf  r6   rE   râ   rg  r    )r2   r@   Úgvs      r   Útest_get_global_variablez&TestModuleRef.test_get_global_variable7  så   € Ø�kŠk‰mŒmˆØ×$Ò$ VÑ,Ô,ˆØ×Ò˜b¥$¤-Ñ0Ô0Ð0Ø×Ò˜œ &Ñ)Ô)Ð)à×Ò�yÑ)Ô)ð 	+ð 	+Ø×#Ò# EÑ*Ô*Ð*ð	+ð 	+ð 	+ñ 	+ô 	+ð 	+ð 	+ð 	+ð 	+ð 	+ð 	+øøøð 	+ð 	+ð 	+ð 	+ð ÝˆBŒI‰Œˆˆˆrj  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>H  s   € ¨U¬Z€ r4   )Úkeyé   c                 ó   — g | ]	}|j         ‘Œ
S rR   rª   )Ú.0Úgs     r   ú
<listcomp>z7TestModuleRef.test_global_variables.<locals>.<listcomp>J  s   € Ð0Ð0Ð0 Q˜!œ&Ð0Ð0Ð0r4   )rB   Úglob_bÚglob_fÚglob_struct)rA   Úglobal_variablesÚsortedr6   r|   )r2   r@   ÚitÚglobss       r   Útest_global_variablesz#TestModuleRef.test_global_variablesD  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r4   c                 óä   — |                       ¦   «         }|j        }~t          |¦  «        }|                      t	          |¦  «        d¦  «         |                      |d         j        d¦  «         d S ©Nr_   r   rd  )rA   Ú	functionsÚlistr6   r|   rE   )r2   r@   rƒ  Úfuncss       r   Útest_functionszTestModuleRef.test_functionsM  sb   € Ø�kŠk‰mŒmˆØŒ]ˆØÝ�R‘”ˆØ×Ò�˜U™œ QÑ'Ô'Ð'Ø×Ò˜˜qœœ¨Ñ.Ô.Ð.Ð.Ð.r4   c           	      ó~  — |                       ¦   «         }|j        }~t          |¦  «        }|                      t	          |¦  «        d¦  «         |                      t          j        d|d         j        ¦  «        ¦  «         |                      t          j        dt          |d         ¦  «        ¦  «        ¦  «         d S )Nr_   ústruct\.glob_type(\.[\d]+)?r   rm  )
rA   Ústruct_typesr‰  r6   r|   r  ru   r{   rE   r    )r2   r@   rƒ  Ústructss       r   Útest_structszTestModuleRef.test_structsU  s³   € Ø�kŠk‰mŒmˆØÔˆØÝ�r‘(”(ˆØ×Ò�˜W™œ qÑ)Ô)Ð)Ø×Ò�RœXÐ&DØ&-¨a¤j¤oñ7ô 7ñ 	8ô 	8ð 	8à×Ò�RœXØGÝ�˜”
‰OŒOñô ñ 	ô 	ð 	ð 	ð 	r4   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ª   ©r{  Úfs     r   ú	<genexpr>z-TestModuleRef.test_link_in.<locals>.<genexpr>f  ó$   è è € Ð2Ð2˜a�1”6Ð2Ð2Ð2Ð2Ð2Ð2r4   Úmulrd  )rA   Úasm_mulÚlink_inr6   r‚  rˆ  re  rN  râ   rO  rP  )r2   ÚdestÚsrcs      r   Útest_link_inzTestModuleRef.test_link_ina  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>q  r–  r4   r—  rd  c              3   ó$   K  — | ]}|j         V — Œd S r)   rª   r“  s     r   r•  z6TestModuleRef.test_link_in_preserve.<locals>.<genexpr>s  s$   è è € Ð?Ð?¨1 ¤Ð?Ð?Ð?Ð?Ð?Ð?r4   )rA   r˜  r™  r6   r‚  rˆ  rN  re  )r2   rš  Úsrc2s      r   Útest_link_in_preservez#TestModuleRef.test_link_in_preservel  sË   € Ø�{Š{‰}Œ}ˆØ�{Š{�7Ñ#Ô#ˆØ�Š�T DˆÑ)Ô)Ð)Ø×ÒÝÐ2Ð2 4¤>Ð2Ñ2Ô2Ñ2Ô2°U¸E°Nñ	Dô 	Dð 	Dà�
Š
‰ŒˆØ×Ò�Ð?Ð?°´Ð?Ñ?Ô?Ñ?Ô?À%ÀÑIÔIÐIØ×Ò˜%Ñ Ô Ð Ð Ð r4   c                 ó@  — |                       ¦   «         }|                       t          ¦  «        }|                      t          ¦  «        5 }|                     |¦  «         d d d ¦  «         n# 1 swxY w Y   |                      dt          |j        ¦  «        ¦  «         d S )Nzsymbol multiply defined)rA   Úasm_sum2râ   rŸ   r™  rå   r    rä   )r2   rš  r›  ræ   s       r   Útest_link_in_errorz TestModuleRef.test_link_in_errorv  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)rA   Ú
as_bitcoder  r‚   )r2   r@   ÚbcÚbitcode_wrapper_magicÚbitcode_magics        r   Útest_as_bitcodezTestModuleRef.test_as_bitcode  sn   € Ø�kŠk‰mŒmˆØ�^Š^ÑÔˆð !4ÐØˆØ�Š˜Ÿš mÑ4Ô4ð =ØŸšÐ&;Ñ<Ô<ñ	>ô 	>ð 	>ð 	>ð 	>r4   c                 ó2  — |                       t          ¦  «        5 }t          j        d¦  «         d d d ¦  «         n# 1 swxY w Y   |                      dt          |j        ¦  «        ¦  «         |                      dt          |j        ¦  «        ¦  «         d S )Nr4   zLLVM bitcode parsing errorz(file too small to contain bitcode header)râ   rŸ   r*   Úparse_bitcoderå   r    rä   )r2   ræ   s     r   Útest_parse_bitcode_errorz&TestModuleRef.test_parse_bitcode_error‰  sÇ   € Ø×Ò�|Ñ,Ô,ð 	$°ÝÔ˜sÑ#Ô#Ð#ð	$ð 	$ð 	$ñ 	$ô 	$ð 	$ð 	$ð 	$ð 	$ð 	$ð 	$øøøð 	$ð 	$ð 	$ð 	$à�ŠÐ2µC¸¼Ñ4EÔ4EÑFÔFÐFØ�ŠØ6½¸B¼LÑ8IÔ8Iñ	
ô 	
ð 	
ð 	
ð 	
s   ›<¼A ÁA c                 óp  — t          j        ¦   «         }|                      |¬¦  «                             ¦   «         }t          j        ¦   «         }t          j        ||¦  «        }|                      |                     ¦   «         |¦  «         |                     d¦  «         |                     d¦  «         d S )N©r?   rd  rB   )r*   Úcreate_contextrA   r¨  r®  r6   re  rD   )r2   Úcontext1r©  Úcontext2r@   s        r   Útest_bitcode_roundtripz$TestModuleRef.test_bitcode_roundtrip‘  s�   € åÔ&Ñ(Ô(ˆØ�[Š[ ˆ[Ñ*Ô*×5Ò5Ñ7Ô7ˆÝÔ&Ñ(Ô(ˆÝÔ   XÑ.Ô.ˆØ×Ò˜ŸšÑ)Ô)¨2Ñ.Ô.Ð.à×Ò˜ÑÔÐØ×Ò Ñ'Ô'Ð'Ð'Ð'r4   c                 óö   — |                       ¦   «         }|                     ¦   «         }|                      ||¦  «         |                      |                     ¦   «         |                     ¦   «         ¦  «         d S r)   )rA   ÚcloneÚassertIsNotr6   r¨  )r2   r�   Úcloneds      r   Útest_cloningzTestModuleRef.test_cloningœ  sb   € Ø�KŠK‰MŒMˆØ—’‘”ˆØ×Ò˜ Ñ#Ô#Ð#Ø×Ò˜×*Ò*Ñ,Ô,¨a¯lªl©n¬nÑ=Ô=Ð=Ð=Ð=r4   N)rN   rO   rP   rL  rR  rT  rW  rZ  r]  r_  rb  ri  rp  rs  r…  r‹  r�  rœ  r£  r¦  r¬  r¯  rµ  rº  rR   r4   r   rI  rI  à  sU  € € € € € ð9ð 9ð 9ð
ð ð ð	ð 	ð 	ð*ð *ð *ð7ð 7ð 7ð-ð -ð -ð)ð )ð )ð	5ð 	5ð 	5ðð ð ð
7ð 
7ð 
7ðð ð ðFð Fð Fð/ð /ð /ð
ð 
ð 
ð	$ð 	$ð 	$ð!ð !ð !ðDð Dð Dð>ð >ð >ð
ð 
ð 
ð	(ð 	(ð 	(ð>ð >ð >ð >ð >r4   rI  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.
    rd  c                 óÐ   — |                      ¦   «          |                     |¦  «        }|                      |¦  «          t          t          t          t          ¦  «        |¦  «        S r)   )Úfinalize_objectÚget_function_addressr  r   r   )r2   ÚeeÚ	func_nameÚcfptrs       r   Úget_sumzJITTestMixin.get_sum¨  sU   € Ø
×ÒÑÔÐØ×'Ò'¨	Ñ2Ô2ˆØ�Š˜ÑÔÐØ-�y�¥¥uÑ-Ô-¨eÑ4Ô4Ð4r4   c                 óø   — |                       ¦   «         }|                      |¦  «        5 }|                      |¦  «        } |dd¦  «        }|                      d|¦  «         d d d ¦  «         d S # 1 swxY w Y   d S ©Nr`   éûÿÿÿéýÿÿÿ)rA   rH   rÃ  r6   )r2   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)   )rH   rA   rN  râ   rO  rP  r¾  ©r2   rÀ  s     r   rR  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)   )rH   rA   râ   rŸ   rO  rP  r¾  rÌ  s     r   rT  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)   ©rA   rH   rN  ©r2   r@   rÀ  s      r   Útest_module_lifetimez!JITTestMixin.test_module_lifetimeÆ  s<   € Ø�kŠk‰mŒmˆØ�XŠX�c‰]Œ]ˆØ
�Š‰
Œ
ˆ
Ø�	Š	‰Œˆˆˆr4   c                 ó¨   — |                       ¦   «         }|                      |¦  «        }|                     ¦   «          |                     ¦   «          d S r)   rÏ  rÐ  s      r   Útest_module_lifetime2z"JITTestMixin.test_module_lifetime2Ì  s<   € Ø�kŠk‰mŒmˆØ�XŠX�c‰]Œ]ˆØ�	Š	‰ŒˆØ
�Š‰
Œ
ˆ
ˆ
ˆ
r4   c                 óÐ  — |                       |                      ¦   «         ¦  «        }|                      t          ¦  «        }|                     |¦  «         |                      t
          ¦  «        5  |                     |¦  «         d d d ¦  «         n# 1 swxY w Y   |                      |j        ¦  «         |                     ¦   «          |  	                    |j        ¦  «         d S r)   )
rH   rA   r˜  Ú
add_modulerâ   ÚKeyErrorÚassertFalseÚclosedrN  r  ©r2   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)   ©rH   rA   r˜  rÕ  rN  rÙ  s      r   Útest_add_module_lifetimez%JITTestMixin.test_add_module_lifetimeÜ  s\   € Ø�XŠX�d—k’k‘m”mÑ$Ô$ˆØ�kŠk�'Ñ"Ô"ˆØ
�Š�cÑÔÐØ�	Š	‰ŒˆØ
�Š‰
Œ
ˆ
ˆ
ˆ
r4   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ÑÔÐØ
�Š‰
Œ
ˆ
Ø�	Š	‰Œˆˆˆr4   c                 óú  — |                       |                      ¦   «         ¦  «        }|                      t          ¦  «        }|                     |¦  «         |                     |¦  «         |                      t          ¦  «        5  |                     |¦  «         d d d ¦  «         n# 1 swxY w Y   |                      |j        ¦  «         | 	                    ¦   «          |                      |j        ¦  «         d S r)   )
rH   rA   r˜  rÕ  Úremove_modulerâ   rÖ  r×  rØ  rN  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)   )rA   rH   Útarget_datarþ   r    )r2   r@   rÀ  Útds       r   Útest_target_datazJITTestMixin.test_target_dataõ  sZ   € Ø�kŠk‰mŒmˆØ�XŠX�c‰]Œ]ˆØŒ^ˆà�Š�b”n bÑ)Ô)Ð)ÝˆB‰ŒˆØ�ÝˆB‰Œˆˆˆr4   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 )NrB   r~  r€  ì        ry  é   r_   )r_   r`   ry  é   )ry  ré  )rA   rH   rä  rD   r”   Úmaxsizer6   Úget_abi_sizeÚtypeÚglobal_value_typeÚget_abi_alignmentrå   )	r2   r@   rÀ  rå  Úgv_i32Úgv_i8Ú	gv_structÚpointer_sizer|  s	            r   Útest_target_data_abi_enquiriesz+JITTestMixin.test_target_data_abi_enquiriesÿ  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à×Ò˜Ÿš¨Ô)AÑBÔBÀAÑFÔFÐFØ×Ò˜×-Ò-¨fÔ.FÑGÔGÈÑKÔKÐKà×Ò˜Ÿš¨Ô)@ÑAÔAÀ1ÑEÔEÐEØ�Š�b×*Ò*¨5Ô+BÑCÔCÀYÑOÔOÐOà×Ò˜Ÿš¨Ô)DÑEÔEÀrÑJÔJÐJØ�Š�b×*Ò*¨9Ô+FÑGÔGÈÑPÔPÐPÐPÐPr4   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>.notify  ó   ø€ Ø�OŠO˜S #˜JÑ'Ô'Ð'Ð'Ð'r4   r   r`   rÆ  r_   r—  )rA   rH   Úset_object_cacher6   r|   rÃ  rþ   r  Úbytesr˜  rÕ  )r2   rû  r@   rÀ  rÈ  Úmod2rú  s         @r   Útest_object_cache_notifyz%JITTestMixin.test_object_cache_notify  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Ð4r4   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>.notify3  rü  r4   c                 ó2   •— ‰                      | ¦  «         d S r)   r÷  )r@   Ú
getbufferss    €r   Ú	getbufferz;JITTestMixin.test_object_cache_getbuffer.<locals>.getbuffer6  s   ø€ Ø×Ò˜cÑ"Ô"Ð"Ð"Ð"r4   r   r_   c                 ó2   •— ‰                      | ¦  «         ‰S r)   r÷  )r@   r  Ú
sum_buffers    €€r   Úgetbuffer_successfulzFJITTestMixin.test_object_cache_getbuffer.<locals>.getbuffer_successfulI  s   ø€ Ø×Ò˜cÑ"Ô"Ð"ØÐr4   r`   rÆ  rÇ  )rA   rH   rý  r6   r|   rÃ  rþ   r˜  )
r2   rû  r  r@   rÀ  rÈ  r  r  rú  r  s
          @@@r   Útest_object_cache_getbufferz(JITTestMixin.test_object_cache_getbuffer/  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™œ¨!Ñ,Ô,Ð,Ð,Ð,r4   N)rd  )rN   rO   rP   r‘   rÃ  rÊ  rR  rT  rÑ  rÓ  rÚ  rÝ  rß  râ  ræ  rô  r   r	  rR   r4   r   r¼  r¼  £  sø   € € € € € ðð ð5ð 5ð 5ð 5ð&ð &ð &ð!ð !ð !ð!ð !ð !ðð ð ðð ð ð$ð $ð $ðð ð ðð ð ð	%ð 	%ð 	%ðð ð ðQð Qð Qð*5ð 5ð 5ð6*-ð *-ð *-ð *-ð *-r4   r¼  c                   ó   — e Zd Zd„ Zd„ ZdS )ÚJITWithTMTestMixinc                 óˆ  — |                       d¬¦  «        }|                      ¦   «         }|                      ||¦  «        }|                     |¦  «        }|                      d|¦  «         |                     d¦  «         |                     |¦  «        }|                      d|¦  «         |                      ||¦  «         dS )z%Test TargetMachineRef.emit_assembly()TrG   rd  N)rM   rA   rH   rÏ   rå   Úset_asm_verbosityÚassertNotEqual)r2   rM   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Ð5r4   c                 ód  — |                       d¬¦  «        }|                      ¦   «         }|                      ||¦  «        }|                     |¦  «        }|                      |t
          ¦  «         t          j                             d¦  «        r |  	                    d|dd…         ¦  «         dS dS )z#Test TargetMachineRef.emit_object()TrG   rU   s   ELFNé
   )
rM   rA   rH   Úemit_objectr  rþ  r”   r€   r‚   rå   )r2   rM   r@   rÀ  Úcode_objects        r   Útest_emit_objectz#JITWithTMTestMixin.test_emit_objectj  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ð 	4r4   N)rN   rO   rP   r  r  rR   r4   r   r  r  \  s2   € € € € € ð
6ð 
6ð 
6ð	4ð 	4ð 	4ð 	4ð 	4r4   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 )NTrG   )rM   r*   Úcreate_mcjit_compiler)r2   r@   rM   s      r   rH   zTestMCJit.jit{  s1   € ØÐ!Ø!×0Ò0°TÐ0Ñ:Ô:ˆNÝÔ)¨#¨~Ñ>Ô>Ð>r4   r)   )rN   rO   rP   r‘   rH   rR   r4   r   r  r  v  s2   € € € € € ðð ð?ð ?ð ?ð ?ð ?ð ?r4   r  zOrcJIT support is experimentalc            	       ó˜   — 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 )ÚTestOrcLLJITrd  NFc                 óÐ  — t          j        |d|¬¦  «        }t          j        ¦   «         }|r|                     ¦   «          |                     |                     t          j        ¦   «         ¬¦  «        ¦  «                             |¦  «                             ||¦  «        }	|	|         }
|  	                    |
¦  «         |  
                    ||	j        ¦  «         ||	 ||
¦  «        fS )NF)Úuse_jit_linkÚsuppress_errorsr9   )r*   Úcreate_lljit_compilerÚJITLibraryBuilderÚadd_current_processÚadd_irr;   r<   Úexport_symbolÚlinkr  r6   rE   )r2   r>   rÁ  rM   Úadd_processÚ	func_typer  Úlljitr»   ÚrtrÂ  s              r   rH   zTestOrcLLJIT.jit‹  sä   € õ Ô*¨>Ø8=Ø;JðLñ Lô Lˆõ Ô(Ñ*Ô*ˆØð 	*Ø×'Ò'Ñ)Ô)Ð)ØßŠV�C—J’J¥dÔ&=Ñ&?Ô&?�JÑ@Ô@ÑAÔAßŠ]˜9Ñ%Ô%ßŠT�%˜Ñ#Ô#ð 	ð �9”ˆØ�Š˜ÑÔÐØ×Ò˜ B¤GÑ,Ô,Ð,Ø�b˜)˜) EÑ*Ô*Ð*Ð*r4   c                 ó   — t          j        ¦   «         }t          j        ¦   «                              dd¦  «                             d¦  «                             |d¦  «        }|                      |d         d¦  «         d S )Nrù   rú   rë   )r*   r   r!  Úimport_symbolr$  r%  r6   ©r2   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œ¨Ñ-Ô-Ð-Ð-Ð-r4   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   r,  rŸ   Ú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  r1   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Å  )rH   r6   )r2   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ð   )rH   rN  râ   ÚAssertionErrorr/  ©r2   r(  r)  rÈ  s       r   rR  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 r6  )rH   râ   rŸ   r7  r/  r8  s       r   rT  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 )Nr9   r—  r`   rÆ  iöÿÿÿrd  r   )rH   r*   r!  r#  r˜  r;   r<   r$  r%  r   r   r6   r  r/  râ   rŸ   ©r2   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 ©Nrd  )rH   r-   r.   râ   rŸ   r/  rN  )r2   r(  r<  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 )Nr9   Ú
square_sumrd  r`   rÆ  r3  )rH   r*   r!  r#  Úasm_square_sumr;   r<   r$  Úadd_jit_libraryr%  r   r   r6   r;  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Ñ Ô Ð Ð Ð r4   c                 ó¸   — |                       ¦   «         \  }}}|j        }|                      |j        |¦  «         t          |¦  «         ~t          |¦  «         d S r)   )rH   rä  rþ   r    )r2   r(  r)  r‡   rå  s        r   ræ  zTestOrcLLJIT.test_target_dataï  sQ   € ØŸš™œ‰ˆ��AØÔˆà�Š�eÔ'¨Ñ,Ô,Ð,ÝˆB‰ŒˆØÝˆB‰Œˆˆˆr4   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   r9   ÚArë   é   é   )r   r*   r   r!  r#  Úasm_ext_ctorsr;   r<   r+  rO  Ú	addressofr$  r%  r  r6   r   r   r  rv  )r2   Ú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Ð3r4   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Ÿ   rH   Úasm_getversion)r2   Ú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 )NrQ  T)rH   rR  r1   s    r   Ú"test_lookup_current_process_symbolz/TestOrcLLJIT.test_lookup_current_process_symbol  s    € Ø�Š• ¨t°TÑ:Ô:Ð:Ð:Ð:r4   c                 óR  ‡‡‡— t          j        ¦   «         Št                               t          j        ¦   «         ¬¦  «        Šˆˆfd„Šˆfd„t          t          j        ¦   «         ¦  «        D ¦   «         }|D ]}|                     ¦   «          Œ|D ]}| 	                    ¦   «          Œd S )Nr9   c                 ó   •‡ — ˆ ˆˆfd„}|S )Nc            
      óü   •— g } t          d¦  «        D ]h}|                      t          j        ¦   «                              ‰¦  «                             d¦  «                             ‰d‰› d|› �¦  «        ¦  «         Œid S )Né2   rd  Úsum_r‡   )r5  rƒ   r*   r!  r#  r$  r%  )ÚtrackingÚcÚir(  Úllvm_irs     €€€r   Údo_workzDTestOrcLLJIT.test_thread_safe.<locals>.compile_many.<locals>.do_work  sˆ   ø€ Ø�Ý˜r™œð Bð B�AØ—O’O¥DÔ$:Ñ$<Ô$<ß%+¢V¨G¡_¤_ß%2¢]°5Ñ%9Ô%9ß%)¢T¨%°¸°°¸A°°Ñ%@Ô%@ñBô Bð Bð BðBð Br4   rR   )r^  r`  r(  r_  s   ` €€r   Úcompile_manyz3TestOrcLLJIT.test_thread_safe.<locals>.compile_many  s5   øø€ ðBð Bð Bð Bð Bð Bð Bð ˆNr4   c                 óL   •— g | ] }t          j         ‰|¦  «        ¬ ¦  «        ‘Œ!S ))rL   )Ú	threadingÚThread)r{  r^  ra  s     €r   r}  z1TestOrcLLJIT.test_thread_safe.<locals>.<listcomp>#  s?   ø€ ð /ð /ð /Øõ Ô | |°A¡¤Ð7Ñ7Ô7ð /ð /ð /r4   )
r*   r   rQ   r;   r<   r5  rm   Ú	cpu_countÚstartÚjoin)r2   ÚthsÚthra  r(  r_  s      @@@r   Útest_thread_safezTestOrcLLJIT.test_thread_safe  sÉ   øøø€ ÝÔ*Ñ,Ô,ˆÝ—.’.­Ô(?Ñ(AÔ(A�.ÑBÔBˆð		ð 		ð 		ð 		ð 		ð 		ð/ð /ð /ð /Ý�bœl™nœnÑ-Ô-ð/ñ /ô /ˆàð 	ð 	ˆBØ�HŠH‰JŒJˆJˆJØð 	ð 	ˆBØ�GŠG‰IŒIˆIˆIð	ð 	r4   c                 óà  — |                       d¬¦  «        }|                      ¦   «         }t          j        |¦  «        }t          j        ¦   «                              |                     |¦  «        ¦  «                             d¦  «                             |d¦  «        } t          t          t          t          ¦  «        |d         ¦  «        }|                       |dd¦  «        d¦  «         d S )NFrG   rd  r`   é   é   )rM   rA   r*   r   r!  Úadd_object_imgr  r$  r%  r   r   r6   )r2   rM   r@   r(  r)  rd  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Ñ&Ô&Ð&Ð&Ð&r4   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)NFrG   Úwbrd  r`   rl  rm  )rM   rA   r  r   rm   ÚfdopenÚwriter*   r   r!  Úadd_object_filer$  r%  r   r   r6   Úunlink)
r2   rM   r@   Úobj_binÚ	temp_descÚ	temp_pathr”  r(  r)  rd  s
             r   Ú$test_add_object_file_from_filesystemz1TestOrcLLJIT.test_add_object_file_from_filesystem5  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)rN   rO   rP   rQ   r   r   rH   r-  r0  r3  rÊ  rR  rT  r?  râ  rF  ræ  rO  rT  rV  rj  ro  ry  rR   r4   r   r  r  ˆ  s=  € € € € € ð ¨¸tØ¨¨°5¸%ÀÑ)GÔ)GØ!ð+ð +ð +ð +ð&.ð .ð .ð	,ð 	,ð 	,ðPð Pð Pð&ð &ð &ð&ð &ð &ð&ð &ð &ð'ð 'ð 'ðð ð ð!ð !ð !ðð ð ð4ð 4ð 4ð"Ið Ið Ið;ð ;ð ;ðð ð ð,	'ð 	'ð 	'ð!ð !ð !ð !ð !r4   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„ Zd„ Zd„ ZdS )ÚTestValueRefc                 óž   — |                       ¦   «         }|                     d¦  «        }|                      t          |¦  «        d¦  «         d S )NrB   z@glob = global i32 0)rA   rD   r6   r    ©r2   r@   rB   s      r   rL  zTestValueRef.test_strK  sE   € Ø�kŠk‰mŒmˆØ×&Ò& vÑ.Ô.ˆØ×Ò�˜T™œÐ$:Ñ;Ô;Ð;Ð;Ð;r4   c                 óÒ   — |                       ¦   «         }|                     d¦  «        }|                      |j        d¦  «         d|_        |                      |j        d¦  «         d S )NrB   Úfoobar)rA   rD   r6   rE   r}  s      r   rW  zTestValueRef.test_nameP  s_   € Ø�kŠk‰mŒmˆØ×&Ò& vÑ.Ô.ˆØ×Ò˜œ FÑ+Ô+Ð+ØˆŒ	Ø×Ò˜œ HÑ-Ô-Ð-Ð-Ð-r4   c                 ó–  — |                       ¦   «         }|                     d¦  «        }|j        }|                      |j        t          j        ¦  «         ||_        |                      |j        |¦  «         dD ]N}||_        |                      |j        t          j        ¦  «         |                      |j        j        |¦  «         ŒOd S )NrB   )ÚinternalÚexternal)rA   rD   Úlinkager  r*   ÚLinkager6   rE   )r2   r@   rB   rƒ  s       r   Útest_linkagezTestValueRef.test_linkageW  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ð 	9r4   c                 ó–  — |                       ¦   «         }|                     d¦  «        }|j        }|                      |j        t          j        ¦  «         ||_        |                      |j        |¦  «         dD ]N}||_        |                      |j        t          j        ¦  «         |                      |j        j        |¦  «         ŒOd S )NrB   )ÚhiddenÚ	protectedr  )rA   rD   Ú
visibilityr  r*   Ú
Visibilityr6   rE   )r2   r@   rB   r‰  s       r   Útest_visibilityzTestValueRef.test_visibilityc  sº   € Ø�kŠk‰mŒmˆØ×&Ò& vÑ.Ô.ˆØ”_ˆ
Ø×Ò˜dœo­t¬Ñ?Ô?Ð?Ø$ˆŒØ×Ò˜œ¨*Ñ5Ô5Ð5Ø<ð 	?ð 	?ˆJØ(ˆDŒOØ×!Ò! $¤/µ4´?ÑCÔCÐCØ×Ò˜Tœ_Ô1°:Ñ>Ô>Ð>Ð>ð	?ð 	?r4   c                 ó–  — |                       ¦   «         }|                     d¦  «        }|j        }|                      |j        t          j        ¦  «         ||_        |                      |j        |¦  «         dD ]N}||_        |                      |j        t          j        ¦  «         |                      |j        j        |¦  «         ŒOd S )NrB   )Ú	dllimportÚ	dllexportr  )rA   rD   Ústorage_classr  r*   ÚStorageClassr6   rE   )r2   r@   rB   r�  s       r   Útest_storage_classzTestValueRef.test_storage_classo  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r4   c                 ó`  — |                       ¦   «         }|                     d¦  «        }|                     d¦  «         |                      t          ¦  «        5 }|                     d¦  «         d d d ¦  «         n# 1 swxY w Y   |                      t          |j        ¦  «        d¦  «         d S )Nrd  ÚnoinlineÚzextzno such attribute 'zext')rA   re  Úadd_function_attributerâ   Ú
ValueErrorr6   r    rä   )r2   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¦  «        }|                     d¦  «         |                      dt	          |j        ¦  «        ¦  «         d S )Nrd  Úoptsizeó   optsize©rA   re  r•  rå   r‰  Ú
attributesrh  s      r   Ú#test_add_function_attribute_optsizez0TestValueRef.test_add_function_attribute_optsizeƒ  óZ   € Ø�kŠk‰mŒmˆØ×Ò˜eÑ$Ô$ˆØ
×!Ò! )Ñ,Ô,Ð,Ø�Š�j¥$ r¤}Ñ"5Ô"5Ñ6Ô6Ð6Ð6Ð6r4   c                 óÒ   — |                       ¦   «         }|                     d¦  «        }|                     d¦  «         |                      dt	          |j        ¦  «        ¦  «         d S )Nrd  Úminsizeó   minsizerœ  rh  s      r   Ú#test_add_function_attribute_minsizez0TestValueRef.test_add_function_attribute_minsize‰  rŸ  r4   c                 óŽ   — |                       ¦   «         }|                     d¦  «        }|                      |j         |¦  «         d S ©NrB   )rA   rD   rþ   r}  s      r   Útest_modulezTestValueRef.test_module�  s>   € Ø�kŠk‰mŒmˆØ×&Ò& vÑ.Ô.ˆØ�Š�d”k 3Ñ'Ô'Ð'Ð'Ð'r4   c                 ó¦   — |                       ¦   «         }|                     d¦  «        }|j        }|                      |t          j        ¦  «         d S r¥  )rA   rD   rí  r  r*   ÚTypeRef©r2   r@   rB   Útps       r   Ú	test_typezTestValueRef.test_type”  sG   € Ø�kŠk‰mŒmˆØ×&Ò& vÑ.Ô.ˆØŒYˆØ×Ò˜b¥$¤,Ñ/Ô/Ð/Ð/Ð/r4   c                 ó*  — |                       ¦   «         }|                     d¦  «        }|j        }|                      |j        d¦  «         |                     d¦  «        }|                      t          j        d|j        j        ¦  «        ¦  «         d S )NrB   rÄ   r€  r�  )	rA   rD   rí  r6   rE   r  ru   r{   rî  )r2   r@   rB   rª  Ústs        r   Útest_type_namezTestValueRef.test_type_nameš  s—   € Ø�kŠk‰mŒmˆØ×&Ò& vÑ.Ô.ˆØŒYˆØ×Ò˜œ "Ñ%Ô%Ð%Ø×$Ò$ ]Ñ3Ô3ˆØ×Ò�RœXÐ&DØ&(Ô&:Ô&?ñAô Añ 	Bô 	Bð 	Bð 	Bð 	Br4   c                 ó¬   — |                       ¦   «         }|                     d¦  «        }|j        }|                      t	          |¦  «        d¦  «         d S )NrB   Úi32)rA   rD   rî  r6   r    r©  s       r   Útest_type_printing_variablez(TestValueRef.test_type_printing_variable£  sL   € Ø�kŠk‰mŒmˆØ×&Ò& vÑ.Ô.ˆØÔ#ˆØ×Ò�˜R™œ %Ñ(Ô(Ð(Ð(Ð(r4   c                 ó¨   — |                       ¦   «         }|                     d¦  «        }|                      t          |j        ¦  «        d¦  «         d S )Nrd  zi32 (i32, i32))rA   re  r6   r    rî  rh  s      r   Útest_type_printing_functionz(TestValueRef.test_type_printing_function©  sJ   € Ø�kŠk‰mŒmˆØ×Ò˜eÑ$Ô$ˆØ×Ò�˜RÔ1Ñ2Ô2Ð4DÑEÔEÐEÐEÐEr4   c                 ó~  — |                       ¦   «         }|                     d¦  «        }|                      |j        j        ¦  «         |                      t          j        dt          |j        ¦  «        ¦  «        ¦  «         |                      t          j        dt          |j	        ¦  «        ¦  «        ¦  «         d S )Nr€  Úptrrm  )
rA   rD   r  rí  Ú
is_pointerr  ru   r{   r    rî  )r2   r@   r­  s      r   Útest_type_printing_structz&TestValueRef.test_type_printing_struct®  s¢   € Ø�kŠk‰mŒmˆØ×$Ò$ ]Ñ3Ô3ˆØ�Š˜œÔ*Ñ+Ô+Ð+Ø×Ò�RœX f­c°"´'©l¬lÑ;Ô;Ñ<Ô<Ð<Ø×Ò�RœXØGÝ�Ô$Ñ%Ô%ñ'ô 'ñ 	(ô 	(ð 	(ð 	(ð 	(r4   c                 ó~   — |                       ¦   «         }|                     ¦   «          |                     ¦   «          d S r)   )rB   rN  )r2   rB   s     r   rR  zTestValueRef.test_close·  s-   € Ø�yŠy‰{Œ{ˆØ�
Š
‰ŒˆØ�
Š
‰Œˆˆˆr4   c                 ó  — |                       ¦   «                              d¦  «        }|                       t          ¦  «                             d¦  «        }|                      |j        ¦  «         |                      |j        ¦  «         d S rA  )rA   re  Úasm_sum_declarer×  Úis_declarationr  )r2   ÚdefinedÚdeclareds      r   Útest_is_declarationz TestValueRef.test_is_declaration¼  sn   € Ø—+’+‘-”-×,Ò,¨UÑ3Ô3ˆØ—;’;�Ñ/Ô/×<Ò<¸UÑCÔCˆØ×Ò˜Ô/Ñ0Ô0Ð0Ø�Š˜Ô/Ñ0Ô0Ð0Ð0Ð0r4   c                 óæ   — |                       t          ¦  «        }t          |j        ¦  «        }|                      t          |¦  «        d¦  «         |D ]}|                      |j        ¦  «         Œd S ©Nry  )rA   rQ   r‰  r�  r6   r|   r  Ú	is_global)r2   r@   Úgvarsr  s       r   Útest_module_global_variablesz)TestValueRef.test_module_global_variablesÂ  so   € Ø�kŠk�'Ñ"Ô"ˆÝ�SÔ)Ñ*Ô*ˆØ×Ò�˜U™œ QÑ'Ô'Ð'Øð 	)ð 	)ˆAØ�OŠO˜AœKÑ(Ô(Ð(Ð(ð	)ð 	)r4   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‡  )rA   r‰  rˆ  r6   r|   r  Úis_functionrE   râ   r–  ÚinstructionsÚoperandsÚopcode)r2   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 )Nrd  r`   r   r_   ú.1r°  ú.2)rA   re  r  rÅ  r‰  Ú	argumentsr6   r|   Úis_argumentrE   r    rí  râ   r–  Úblocks)r2   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 )Nrd  r_   r   )rA   re  r‰  rÏ  r6   r|   r  Úis_block)r2   r¹   rÏ  rº   s       r   Útest_function_blocksz!TestValueRef.test_function_blocksê  sk   € Ø�{Š{‰}Œ}×)Ò)¨%Ñ0Ô0ˆÝ�d”kÑ"Ô"ˆØ×Ò�˜V™œ aÑ(Ô(Ð(Ø�q”	ˆØ�Š˜œÑ'Ô'Ð'Ð'Ð'r4   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 )Nrd  r   rl  r_   r`   r~   r#   )
rA   re  r‰  rÏ  rÆ  r6   r|   r  Úis_instructionrÈ  )r2   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Ð0r4   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 )	Nrd  r   r~   r`   r_   rË  r°  rÌ  )rA   re  r‰  rÏ  rÆ  r6   rÈ  rÇ  r|   r  Ú
is_operandrE   r    rí  )r2   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Ð6r4   c                 ó  — t           j        d         }|dk    rdndg}|                      t          ¦  «        }|j        D ]Ê}t          |j        ¦  «        }|j        dk    r|                      ||¦  «         Œ8|j        dk    r‡|                      |g ¦  «         t          |j	        ¦  «        }|                      t          |d         j        ¦  «        dg¦  «         |                      t          |d         j        ¦  «        g ¦  «         ŒËd S )	Nr   é   s   memory(read)s   readonlyÚa_readonly_funcÚa_arg0_return_funcs   returnedr_   )
r*   r4  rA   Úasm_attributesrˆ  r‰  r�  rE   r6   rÍ  )r2   ÚverÚreadonly_attrsr@   r¹   Úattrsr²   s          r   Útest_function_attributesz%TestValueRef.test_function_attributes	  s  € ÝÔ$ QÔ'ˆØ-0°2ªX¨X˜/˜/¸;ÐGˆØ�kŠk�.Ñ)Ô)ˆØ”Mð 	?ð 	?ˆDÝ˜œÑ)Ô)ˆEØŒyÐ-Ò-Ð-Ø× Ò  ¨Ñ7Ô7Ð7Ð7Ø”Ð2Ò2Ð2Ø× Ò  ¨Ñ+Ô+Ð+Ý˜DœNÑ+Ô+�Ø× Ò ¥ d¨1¤gÔ&8Ñ!9Ô!9¸K¸=ÑIÔIÐIØ× Ò ¥ d¨1¤gÔ&8Ñ!9Ô!9¸2Ñ>Ô>Ð>øð	?ð 	?r4   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 )NrB   rd  r   r_   rë   )rA   r6   rD   Ú
value_kindr*   Ú	ValueKindÚglobal_variablere  Úfunctionr‰  rÏ  Úbasic_blockrÆ  ÚinstructionrÇ  Úconstant_intÚasm_inlineasmÚ
inline_asm)r2   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ð 	4r4   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 )NrB   r   r_   )
rA   r  rD   Úis_constantrˆ  rÏ  r×  rÆ  rÇ  r6   )r2   r@   Úconstant_operandsr¹   rº   rî  Úops          r   Útest_is_constantzTestValueRef.test_is_constant+  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Ñ.Ô.Ð.Ð.Ð.r4   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 )Nrd  r   r_   r~   r`   rm  T)Ú
signed_intrÆ  Fré  Úlittle)Úsigned)rA   re  r‰  rÏ  rÆ  r6   rÈ  rÇ  r  ró  r×  Úget_constant_valuerâ   r–  Úasm_sum3ÚintÚ
from_bytesÚto_bytes)	r2   r@   r¹   rÖ  rÇ  Úposint64Únegint64Úas_u64Úas_i64s	            r   Útest_constant_intzTestValueRef.test_constant_int;  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)rA   r?  re  r‰  rÏ  rÆ  r6   r|   rÈ  rÇ  r  ró  ÚassertAlmostEqualrû  Úasm_double_inaccuraterâ   r–  )r2   r@   r¹   rÖ  rÇ  rî  s         r   Útest_constant_fpzTestValueRef.test_constant_fpU  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 )NrV  r   zptr null)rA   Úasm_null_constantre  r‰  rÏ  rÆ  rÇ  r  ró  r6   rû  )r2   r@   r¹   rî  Úargs        r   Útest_constant_as_stringz$TestValueRef.test_constant_as_stringi  s›   € Ø�kŠkÕ+Ñ,Ô,ˆØ×Ò Ñ&Ô&ˆÝ•D˜œÑ%Ô% aÔ(Ô5Ñ6Ô6°qÔ9ˆÝ�4”=Ñ!Ô! !Ô$ˆØ�Š˜œÑ(Ô(Ð(Ø×Ò˜×/Ò/Ñ1Ô1°:Ñ>Ô>Ð>Ð>Ð>r4   c                 ó†  — |                       t          ¦  «        }|                     d¦  «        }t          |j        ¦  «        }t          |d         j        ¦  «        }|                      |d         j        ¦  «         |                      |d         j	        d¦  «         t          |d         j
        ¦  «        }|                      t          |¦  «        d¦  «         |                      |d         j        ¦  «         |                      |d         j        ¦  «         |                      |d         |d         ¦  «         |                      |d         |d         ¦  «         |                      |d         j	        d¦  «         |                      t          ¦  «        5  |d         j
         d d d ¦  «         d S # 1 swxY w Y   d S )Nrë   éÿÿÿÿr   Úphir`   r_   )rA   Úasm_phi_blocksre  r‰  rÏ  rÆ  r  rÕ  r6   rÈ  Úincoming_blocksr|   rÒ  r  râ   r–  )r2   r@   r¹   rÏ  rÆ  r  s         r   Útest_incoming_phi_blocksz%TestValueRef.test_incoming_phi_blocksq  sÇ  € Ø�kŠk�.Ñ)Ô)ˆØ×Ò Ñ&Ô&ˆÝ�d”kÑ"Ô"ˆÝ˜F 2œJÔ3Ñ4Ô4ˆØ�Š˜ QœÔ6Ñ7Ô7Ð7Ø×Ò˜ aœÔ/°Ñ7Ô7Ð7å˜|¨AœÔ>Ñ?Ô?ˆØ×Ò�˜_Ñ-Ô-¨qÑ1Ô1Ð1Ø�Š˜¨Ô*Ô3Ñ4Ô4Ð4Ø�Š˜¨Ô*Ô3Ñ4Ô4Ð4à×Ò˜¨Ô+¨V°B¬ZÑ8Ô8Ð8Ø×Ò˜¨Ô+¨V°A¬YÑ7Ô7Ð7ð 	×Ò˜L¨œOÔ2°EÑ:Ô:Ð:Ø×Ò�zÑ*Ô*ð 	,ð 	,Ø˜ŒOÔ+Ð+ð	,ð 	,ð 	,ñ 	,ô 	,ð 	,ð 	,ð 	,ð 	,ð 	,ð 	,ð 	,øøøð 	,ð 	,ð 	,ð 	,ð 	,ð 	,s   ÆF6Æ6F:Æ=F:N) rN   rO   rP   rL  rW  r…  r‹  r‘  r˜  rž  r£  r¦  r«  r®  r±  r³  r·  rR  r¾  rÃ  rÉ  rÐ  rÓ  r×  rÚ  rã  rñ  rö  r  r	  r  r  rR   r4   r   r{  r{  I  sÖ  € € € € € ð<ð <ð <ð
.ð .ð .ð
9ð 
9ð 
9ð
?ð 
?ð 
?ð
Eð 
Eð 
EðLð Lð Lð7ð 7ð 7ð7ð 7ð 7ð(ð (ð (ð
0ð 0ð 0ðBð Bð Bð)ð )ð )ðFð Fð Fð
(ð (ð (ðð ð ð
1ð 1ð 1ð)ð )ð )ðð ð ðð ð ð$(ð (ð (ð	1ð 	1ð 	1ð7ð 7ð 7ð?ð ?ð ?ð4ð 4ð 4ð(/ð /ð /ð %ð %ð %ð4Qð Qð Qð(?ð ?ð ?ð,ð ,ð ,ð ,ð ,r4   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 )ÚTestTypeRefc                 ó*  — |                       ¦   «         }|                     d¦  «        }|                      t          |j        ¦  «        d¦  «         |                     d¦  «        }|                      t          |¦  «        d¦  «         t          |j        ¦  «        }|                      t          |¦  «        d¦  «         |                      t          |d         ¦  «        d¦  «         |                      t          |d         ¦  «        d	¦  «         d S )
NrB   r°  rl  z+%struct.glob_type = type { i64, [2 x i64] }r`   r   Úi64r_   z	[2 x i64])	rA   rD   r6   r    rî  rn  r‰  Úelementsr|   )r2   r@   rB   Úglob_struct_typer  s        r   rL  zTestTypeRef.test_str‰  sú   € Ø�kŠk‰mŒmˆØ×&Ò& vÑ.Ô.ˆØ×Ò�˜TÔ3Ñ4Ô4°eÑ<Ô<Ð<Ø×.Ò.Ð/AÑBÔBÐØ×Ò�Ð-Ñ.Ô.ØFñ	Hô 	Hð 	Hõ Ð(Ô1Ñ2Ô2ˆØ×Ò�˜X™œ¨Ñ*Ô*Ð*Ø×Ò�˜X aœ[Ñ)Ô)¨5Ñ1Ô1Ð1Ø×Ò�˜X aœ[Ñ)Ô)¨;Ñ7Ô7Ð7Ð7Ð7r4   c                 ó  — |                       ¦   «         }|                     d¦  «        }|                      |j        j        t
          j        j        ¦  «         |                      |j        j	        ¦  «         |                     d¦  «        }|                      |j        j        t
          j        j        ¦  «         |                      |j        j	        ¦  «         |j
        }|                      |j        t
          j        j        ¦  «         |                      |j        ¦  «         |j        \  }}|                      |j        t
          j        j        ¦  «         |                      |j        t
          j        j        ¦  «         |                      |j        ¦  «         |                     d¦  «        }|j        \  }}	|                      |	j        t
          j        j        ¦  «         |                      |	j        ¦  «         |                     d¦  «        j        }
|                      |
j        t
          j        j        ¦  «         |                     d¦  «        j
        }|                      |j        t
          j        j        ¦  «         d S )NrB   r€  ústruct.glob_type_vecrd  )rA   rD   r6   rí  Ú	type_kindr*   ÚTypeKindÚpointerr  r¶  rî  ÚstructÚ	is_structr  ÚintegerÚarrayÚis_arrayrn  ÚvectorÚ	is_vectorre  rè  )r2   r@   rB   r€  ÚstypeÚstype_aÚstype_bÚglob_vec_struct_typer‡   Úvector_typeÚfuncptrÚfunctypes               r   Útest_type_kindzTestTypeRef.test_type_kind–  sý  € Ø�kŠk‰mŒmˆØ×&Ò& vÑ.Ô.ˆØ×Ò˜œÔ,­d¬mÔ.CÑDÔDÐDØ�Š˜œ	Ô,Ñ-Ô-Ð-à×-Ò-¨mÑ<Ô<ˆØ×Ò˜Ô)Ô3µT´]Ô5JÑKÔKÐKØ�Š˜Ô(Ô3Ñ4Ô4Ð4àÔ-ˆØ×Ò˜œ­$¬-Ô*>Ñ?Ô?Ð?Ø�Š˜œÑ(Ô(Ð(à œ>Ñˆ�Ø×Ò˜Ô*­D¬MÔ,AÑBÔBÐBØ×Ò˜Ô*­D¬MÔ,?Ñ@Ô@Ð@Ø�Š˜Ô(Ñ)Ô)Ð)à"×2Ò2Ð3IÑJÔJÐØ-Ô6‰ˆˆ;Ø×Ò˜Ô.µ´Ô0DÑEÔEÐEØ�Š˜Ô-Ñ.Ô.Ð.à×"Ò" 5Ñ)Ô)Ô.ˆØ×Ò˜Ô*­D¬MÔ,AÑBÔBÐBØ×#Ò# EÑ*Ô*Ô<ˆØ×Ò˜Ô+­T¬]Ô-CÑDÔDÐDÐDÐDr4   c                 ó  — |                       ¦   «         }|                     d¦  «        }|j        \  }}|                      |j        d¦  «         |                      t          ¦  «        5  |j         d d d ¦  «         d S # 1 swxY w Y   d S )Nrl  r`   )rA   rn  r  r6   Úelement_countrâ   r–  )r2   r@   r  r‡   Ú
array_types        r   Útest_element_countzTestTypeRef.test_element_count³  sÊ   € Ø�kŠk‰mŒmˆØ×.Ò.Ð/AÑBÔBÐØ(Ô1‰ˆˆ:Ø×Ò˜Ô1°1Ñ5Ô5Ð5Ø×Ò�zÑ*Ô*ð 	+ð 	+ØÔ*Ð*ð	+ð 	+ð 	+ñ 	+ô 	+ð 	+ð 	+ð 	+ð 	+ð 	+ð 	+ð 	+øøøð 	+ð 	+ð 	+ð 	+ð 	+ð 	+s   Á)A>Á>BÂBc                 ó‚  — |                       ¦   «         }|                     d¦  «        }|                     d¦  «        }|j        \  }}|j        \  }}|                      |j        d¦  «         |                      |j        d¦  «         |                      |j        d¦  «         |                      |j        d¦  «         d S )Nrl  r  é@   é€   r   )rA   rn  r  r6   Ú
type_width)r2   r@   r  r)  Úinteger_typer0  r‡   r*  s           r   Útest_type_widthzTestTypeRef.test_type_width»  s¿   € Ø�kŠk‰mŒmˆØ×.Ò.Ð/AÑBÔBÐØ"×2Ò2Ð3IÑJÔJÐØ#3Ô#<Ñ ˆ�jØ-Ô6‰ˆˆ;Ø×Ò˜Ô0°"Ñ5Ô5Ð5Ø×Ò˜Ô/°Ñ8Ô8Ð8ð 	×ÒÐ)Ô4°aÑ8Ô8Ð8Ø×Ò˜Ô.°Ñ2Ô2Ð2Ð2Ð2r4   c                 óP  — |                       t          ¦  «        }|                     d¦  «        }|j        }|                      |j        ¦  «         |                       t          ¦  «        }|                     d¦  «        }|j        }|                      |j        ¦  «         |                      |j        j	        ¦  «         |  
                    t          ¦  «        5 }|j        j         d d d ¦  «         n# 1 swxY w Y   |                      dt          |j        ¦  «        ¦  «         d S )NÚvarargrd  zType ptr is not a function)rA   Úasm_vararg_declarere  rî  r  Úis_function_varargrº  r×  rí  r¶  râ   r–  rå   r    rä   )r2   r@   r¹   Údecltyper—  s        r   Útest_vararg_functionz TestTypeRef.test_vararg_functionÈ  s7  € à�kŠkÕ,Ñ-Ô-ˆØ×Ò Ñ)Ô)ˆØÔ)ˆØ�Š˜Ô3Ñ4Ô4Ð4à�kŠk�/Ñ*Ô*ˆØ×Ò Ñ&Ô&ˆØÔ)ˆØ×Ò˜Ô4Ñ5Ô5Ð5ð 	�Š˜œ	Ô,Ñ-Ô-Ð-Ø×Ò�zÑ*Ô*ð 	)¨fØŒIÔ(Ð(ð	)ð 	)ð 	)ñ 	)ô 	)ð 	)ð 	)ð 	)ð 	)ð 	)ð 	)øøøð 	)ð 	)ð 	)ð 	)à�ŠÐ2µC¸Ô8HÑ4IÔ4IÑJÔJÐJÐJÐJs   ÃC3Ã3C7Ã:C7c                 óæ  — |                       ¦   «         }t          |j        ¦  «        \  }|                      |j        j        t          j        j        ¦  «         |  	                    |j        j
        ¦  «         |j        }|                      |j        t          j        j        ¦  «         |                      |j
        ¦  «         |                     t          j        ¦  «        }|                      |t          j        ¦  «         |                      |j        t          j        d¦  «        t          j        d¦  «        f¦  «         |                      |j        t          j        d¦  «        ¦  «         d S ©Nrê   )rA   r‰  rˆ  r6   rí  r  r*   r  r  r×  rÅ  rî  rè  r  Úas_irr	   Úglobal_contextr  r­   r²   rì   Úreturn_type)r2   r@   rð   r¸   Útyirs        r   Útest_function_typeref_as_irz'TestTypeRef.test_function_typeref_as_irÚ  s  € Ø�kŠk‰mŒmˆå�C”MÑ"Ô"‰ˆà×Ò˜œÔ*­D¬MÔ,AÑBÔBÐBØ×Ò˜œÔ,Ñ-Ô-Ð-àÔ#ˆØ×Ò˜œ­¬Ô)?Ñ@Ô@Ð@Ø�Š˜Ô(Ñ)Ô)Ð)à�zŠz�"Ô+Ñ,Ô,ˆØ×Ò˜d¥B¤OÑ4Ô4Ð4Ø×Ò˜œ¥R¤Z°¡^¤^µR´ZÀ±^´^Ð$DÑEÔEÐEØ×Ò˜Ô)­2¬:°b©>¬>Ñ:Ô:Ð:Ð:Ð:r4   c                 óš  — t          j        t          j        ¦   «         d¦  «        }t          j        ¦   «         }t          j        ||d¦  «        }|                      t          |¦  «        ¦  «        }|                     d¦  «        }|j        }|  	                    |j
        |                     t           j        ¦  «        j
        ¦  «         d S )NrR   rë   )r	   r­   ÚVoidTyper®   r¯   rA   r    re  rî  r6   rB  r@  rA  )r2   r¸   Úirmodrð   r@   Úgvtys         r   Útest_void_typeref_as_irz#TestTypeRef.test_void_typeref_as_irë  sª   € åŒ�rœ{™}œ}¨bÑ1Ô1ˆÝ”	‘”ˆÝŒ[˜  eÑ,Ô,ˆØ�kŠk�#˜e™*œ*Ñ%Ô%ˆØ×Ò˜eÑ$Ô$ˆØÔ#ˆØ×Ò˜Ô)ØŸš¥BÔ$5Ñ6Ô6ÔBñ	Dô 	Dð 	Dð 	Dð 	Dr4   c                 óæ  ‡— ddl m} t          j        ¦   «         Šddh}i }d„ }||d<   d„ }||d<   d	„ }||d
<   d„ }||d<   ˆfd„}||d<   d„ }	|	|d<   d„ }
|
|d<   d„ }||d<   |                      d„ |                     ¦   «         D ¦   «         t          |                     ¦   «         ¦  «        t          |¦  «        z  ¦  «         |                     ¦   «         D �]\  }}|j        |v rŒ ||j                 ¦   «         D ]ñ}|  	                    |›d|› �¦  «        5  t          j
        ‰¬¦  «        }t          j        ||d¬¦  «         t          |¦  «        }t          j        |¦  «        }|                     d¦  «        }|j        }|                     t          j        ¦   «         ¦  «        }|                      ||¦  «         |                      ||¦  «         d d d ¦  «         n# 1 swxY w Y   Œò�Œd S )Nr   )Ú_TypeKindToIRTyperè  Úvoidc               3   ó4   K  — t          j        ¦   «         V — d S r)   )r	   ÚHalfTyperR   r4   r   Ú
maker_halfz9TestTypeRef.test_global_typeref_as_ir.<locals>.maker_half  s   è è € Ý”+‘-”-ÐÐÐÐÐr4   Úhalfc               3   ó4   K  — t          j        ¦   «         V — d S r)   )r	   r¬   rR   r4   r   Úmaker_floatz:TestTypeRef.test_global_typeref_as_ir.<locals>.maker_float  s   è è € Ý”,‘.”.Ð Ð Ð Ð Ð r4   Úfloatc               3   ó4   K  — t          j        ¦   «         V — d S r)   )r	   r«   rR   r4   r   Úmaker_doublez;TestTypeRef.test_global_typeref_as_ir.<locals>.maker_double  s   è è € Ý”-‘/”/Ð!Ð!Ð!Ð!Ð!r4   Údoublec               3   ó6   K  — t          j        d¦  «        V — d S r?  )r	   rì   rR   r4   r   Úmaker_integerz<TestTypeRef.test_global_typeref_as_ir.<locals>.maker_integer  s    è è € Ý”*˜R‘.”.Ð Ð Ð Ð Ð r4   r!  c               3   óR  •K  — t          j        t          j        d¦  «        ¦  «        V — ‰                     d¦  «                             ¦   «         V — ‰                     d¦  «        } |                      t          j        d¦  «        ¦  «         |                      ¦   «         V — d S )Nré  ÚmyclassÚmyclass2)r	   ÚPointerTyperì   Úget_identified_typeÚ
as_pointerÚset_body)r[  Úctxs    €r   Úmaker_pointerz<TestTypeRef.test_global_typeref_as_ir.<locals>.maker_pointer  s˜   øè è € Ý”.¥¤¨A¡¤Ñ/Ô/Ð/Ð/Ð/à×)Ò)¨)Ñ4Ô4×?Ò?ÑAÔAÐAÐAÐAà×.Ò.¨zÑ:Ô:ˆHØ×Ò�bœj¨™mœmÑ,Ô,Ð,Ø×%Ò%Ñ'Ô'Ð'Ð'Ð'Ð'Ð'r4   r  c               3   ó\   K  — t          j        t          j        d¦  «        d¦  «        V — d S )Nré  é{   )r	   Ú	ArrayTyperì   rR   r4   r   Úmaker_arrayz:TestTypeRef.test_global_typeref_as_ir.<locals>.maker_array   s,   è è € Ý”,�rœz¨!™}œ}¨cÑ2Ô2Ð2Ð2Ð2Ð2Ð2r4   r"  c               3   óZ   K  — t          j        t          j        ¦   «         d¦  «        V — d S )Nr`   )r	   Ú
VectorTyper¬   rR   r4   r   Úmaker_vectorz;TestTypeRef.test_global_typeref_as_ir.<locals>.maker_vector%  s*   è è € Ý”-¥¤¡¤°Ñ2Ô2Ð2Ð2Ð2Ð2Ð2r4   r$  c               3   óú   K  — t          j        t          j        ¦   «         t          j        d¦  «        g¦  «        V — t          j        t          j        ¦   «         t          j        d¦  «        gd¬¦  «        V — d S )Nr3  T©Úpacked)r	   ÚLiteralStructTyper¬   rì   rR   r4   r   Úmaker_structz;TestTypeRef.test_global_typeref_as_ir.<locals>.maker_struct*  sv   è è € ÝÔ&­¬©¬½¼
À2¹¼Ð'GÑHÔHÐHÐHÐHÝÔ&­¬©¬½¼
À2¹¼Ð'GØ.2ð4ñ 4ô 4ð 4ð 4ð 4ð 4ð 4r4   r  c                 ó   — h | ]	}|j         ’Œ
S rR   rª   )r{  Úxs     r   ú	<setcomp>z8TestTypeRef.test_global_typeref_as_ir.<locals>.<setcomp>2  s   € ÐCÐCÐC Q˜!œ&ÐCÐCÐCr4   z -> r±  rr  rª   )Úllvmlite.binding.typerefrK  r	   ÚContextr6   Úkeysrw   r  rE   ÚsubTestr®   ÚGlobalVariabler    r*   r=   rD   rî  r@  r  )r2   rK  ÚskippedÚmakersrO  rR  rU  rX  ra  re  rh  rm  r  ÚirtypeÚtyrG  r>   r@   rr  rH  rA  r`  s                        @r   Útest_global_typeref_as_irz%TestTypeRef.test_global_typeref_as_irö  sã  ø€ Ø>Ð>Ð>Ð>Ð>Ð>ÝŒj‰lŒlˆð Øð
ˆð
 ˆð	 ð 	 ð 	 ð $ˆˆv‰ð	!ð 	!ð 	!ð &ˆˆw‰ð	"ð 	"ð 	"ð (ˆˆxÑð	!ð 	!ð 	!ð *ˆˆyÑð	(ð 	(ð 	(ð 	(ð 	(ð *ˆˆyÑð	3ð 	3ð 	3ð &ˆˆw‰ð	3ð 	3ð 	3ð (ˆˆxÑð	4ð 	4ð 	4ð
 (ˆˆxÑð 	×ÒÐCÐCÐ*;×*@Ò*@Ñ*BÔ*BÐCÑCÔCÝ˜VŸ[š[™]œ]Ñ+Ô+­c°'©l¬lÑ:ñ	<ô 	<ð 	<ð "3×!8Ò!8Ñ!:Ô!:ð 	7ñ 	7ÑˆI�vØŒ~ Ð(Ð(ØØ,�f˜Yœ^Ô,Ñ.Ô.ð 
7ð 
7�Ø—\’\ YÐ":Ð":°bÐ":Ð":Ñ;Ô;ð 	7ð 	7ÝœI¨cÐ2Ñ2Ô2�EÝÔ% e¨R°dÐ;Ñ;Ô;Ð;Ý˜e™*œ*�CÝÔ-¨cÑ2Ô2�CØ×0Ò0°Ñ6Ô6�BØÔ/�DØŸ*š*¥R¤Z¡\¤\Ñ2Ô2�CØ×$Ò$ S¨"Ñ-Ô-Ð-Ø×)Ò)¨#¨vÑ6Ô6Ð6ð	7ð 	7ð 	7ñ 	7ô 	7ð 	7ð 	7ð 	7ð 	7ð 	7ð 	7øøøð 	7ð 	7ð 	7ð 	7øñ
7ð	7ð 	7s   ÄB>G#Ç#G'Ç*G'c                 óˆ  — t          j        |¦  «        }|                     |¦  «        }|j        }t	          j        ¦   «         }|                     |¬¦  «        }t	          j        |¬¦  «        }t	          j        |||j	        ¬¦  «        }	t	          j        ||d¬¦  «        }
t	          j
        |
                     ¦   «         ¦  «        }|                     |	|
j        ¦  «         |                     ¦   «          t          j        t          |¦  «        ¦  «        }|                      |                     |	j	        ¦  «        j        d¬¦  «         |                     |d¬¦  «         |                      t)          t+          |j        ¦  «        ¦  «        t)          t+          |j        ¦  «        ¦  «        d	z   d
¬¦  «         |                      |                     |	j	        ¦  «        j        d¬¦  «         |                      |                     |	j	        ¦  «        j        |                     |
j	        ¦  «        j        d¬¦  «         d S )N)Úir_ctxr±  rª   Úwrapperzdeclfn must not have a body)rS  Trž  r_   z$the only new function is the wrapperzdeclfn must have a body nowz.declfn and wrapfn must have the same llvm Type)r*   r=   re  rî  r	   rr  r@  r®   r¯   rE   r±   r°   Úcallr²   Úret_voidr    r  r»  r™  r6   r|   r‰  rˆ  r×  )r2   r>   Útarget_symbolr@   ÚcppfnÚ	cppfntypeÚ
my_contextry  Úwrapper_modÚdeclfnÚwrapfnr»   Únew_mods                r   Ú!_check_typeref_as_ir_for_wrappersz-TestTypeRef._check_typeref_as_ir_for_wrappersE  s  € åÔ! #Ñ&Ô&ˆØ× Ò  Ñ/Ô/ˆØÔ+ˆ	õ ”Z‘\”\ˆ
Ø�_Š_ Jˆ_Ñ/Ô/ˆõ ”i¨
Ð3Ñ3Ô3ˆå”˜[¨"°5´:Ð>Ñ>Ô>ˆå”˜[¨"°9Ð=Ñ=Ô=ˆÝ”,˜v×8Ò8Ñ:Ô:Ñ;Ô;ˆà�Š�V˜Vœ[Ñ)Ô)Ð)Ø×ÒÑÔÐåÔ%¥c¨+Ñ&6Ô&6Ñ7Ô7ˆØ�Š˜×,Ò,¨V¬[Ñ9Ô9ÔHØ9ð 	ñ 	;ô 	;ð 	;ð 	�Š˜ dˆÑ+Ô+Ð+Ø×Ò��T 'Ô"3Ñ4Ô4Ñ5Ô5Ý�T #¤-Ñ0Ô0Ñ1Ô1°AÑ5ØCð 	ñ 	Eô 	Eð 	Eð 	×Ò˜×-Ò-¨f¬kÑ:Ô:ÔIØ:ð 	ñ 	<ô 	<ð 	<à×Ò˜×-Ò-¨f¬kÑ:Ô:ÔLØ ×-Ò-¨f¬kÑ:Ô:ÔLØMð 	ñ 	Oô 	Oð 	Oð 	Oð 	Or4   c                 ó<   — |                       t          d¦  «         dS )ztExercise extracting C++ defined class types.
        Contains both opaque and non-opaque class definitions.
        Ú_Z3fooP7MyClass14MyClassDefinedN)rˆ  Úasm_cpp_classr1   s    r   Ú,test_typeref_as_ir_for_wrappers_of_cpp_classz8TestTypeRef.test_typeref_as_ir_for_wrappers_of_cpp_classh  s,   € ð 	×.Ò.ÝØ-ñ	
ô 	
ð 	
ð 	
ð 	
r4   c                 ó<   — |                       t          d¦  «         dS )z¨Exercise extracting C++ struct types that are passed as vectors.

        IA64 ABI on x86_64 will put struct with two floats as
        a vector of two floats.
        Ú_Z3foo8Vector2DPS_N)rˆ  Úasm_cpp_vectorr1   s    r   Ú4test_typeref_as_ir_for_wrappers_of_cpp_vector_structz@TestTypeRef.test_typeref_as_ir_for_wrappers_of_cpp_vector_structq  s,   € ð 	×.Ò.ÝØ ñ	
ô 	
ð 	
ð 	
ð 	
r4   N)rN   rO   rP   rL  r-  r1  r7  r=  rD  rI  rz  rˆ  rŒ  r�  rR   r4   r   r  r  ‡  sÊ   € € € € € ð8ð 8ð 8ðEð Eð Eð:+ð +ð +ð3ð 3ð 3ðKð Kð Kð$;ð ;ð ;ð"	Dð 	Dð 	DðM7ð M7ð M7ð^!Oð !Oð !OðF
ð 
ð 
ð	
ð 	
ð 	
ð 	
ð 	
r4   r  c                   ó2   — e Zd 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 )Nr  z(No available targets are compatible with)r*   rI   rž   râ   rŸ   rå   r    rä   r<   r6   r:   rN  )r2   r”  ræ   r:   rL   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*   rI   rž   r<   rK   r  )r2   rL   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ÐFr4   c                 ó"  — t           j                             t          j        ¦   «         ¦  «        }t           j                             ¦   «         }|                      |j        t          ¦  «         |                      |j        |j        ¦  «         d S r)   )	r*   rI   rž   r<   rJ   r  rE   r    r6   ©r2   ÚtÚus      r   rW  zTestTarget.test_name’  sk   € ÝŒK×#Ò#¥DÔ$;Ñ$=Ô$=Ñ>Ô>ˆÝŒK×+Ò+Ñ-Ô-ˆØ×Ò˜aœf¥cÑ*Ô*Ð*Ø×Ò˜œ ¤Ñ(Ô(Ð(Ð(Ð(r4   c                 ó"  — t           j                             t          j        ¦   «         ¦  «        }t           j                             ¦   «         }|                      |j        t          ¦  «         |                      |j        |j        ¦  «         d S r)   )	r*   rI   rž   r<   rJ   r  Údescriptionr    r6   r˜  s      r   Útest_descriptionzTestTarget.test_description˜  sk   € ÝŒK×#Ò#¥DÔ$;Ñ$=Ô$=Ñ>Ô>ˆÝŒK×+Ò+Ñ-Ô-ˆØ×Ò˜aœm­SÑ1Ô1Ð1Ø×Ò˜œ¨¬Ñ6Ô6Ð6Ð6Ð6r4   c                 óð   — t           j                             t          j        ¦   «         ¦  «        }t	          |¦  «        }|                      |j        |¦  «         |                      |j        |¦  «         d S r)   )r*   rI   rž   r<   r    rå   rE   rœ  )r2   rL   rç   s      r   rL  zTestTarget.test_strž  s^   € Ý”×(Ò(­Ô)@Ñ)BÔ)BÑCÔCˆÝ�‰KŒKˆØ�Š�f”k 1Ñ%Ô%Ð%Ø�Š�fÔ(¨!Ñ,Ô,Ð,Ð,Ð,r4   c                 ó¶  — dt           j                             dddddd¬¦  «        fd	t           j                             dddddd¬¦  «        fd
t           j                             dddddd¬¦  «        fdt           j                             dddddd¬¦  «        fdt           j                             dddddd¬¦  «        fdt           j                             dddddd¬¦  «        fdt           j                             dddddd¬¦  «        fdt           j                             dddddd¬¦  «        fdt           j                             d dd!d"dd#¬¦  «        fd$t           j                             d%ddd&dd'¬¦  «        fd(t           j                             d)dd*ddd¬¦  «        fg}|D ]1}|\  }}t          j        |¦  «        }|                      ||¦  «         Œ2d S )+Nzx86_64-scei-ps4Úx86_64rÄ   ÚsceiÚps4ÚunknownÚELF)ÚArchÚSubArchÚVendorÚOSÚEnvÚObjectFormatzx86_64-sie-ps4zpowerpc-dunno-notsureÚpowerpczpowerpcspe-unknown-freebsdÚspeÚfreebsdzarmv6hl-none-linux-gnueabiÚarmÚv6hlrU   Úgnueabizi686-unknown-linux-gnuÚi386Úgnuzi686-apple-macosxÚappleÚmacosxÚMachOzi686-dunno-win32ÚwindowsÚmsvcÚCOFFzs390x-ibm-zosÚs390xÚibmÚzosÚGOFFzwasm64-wasiÚwasm64ÚwasiÚWasmzaarch64-pc-windows-msvcÚaarch64Úpc)r*   ÚtargetsÚTripleÚget_triple_partsr6   )r2   ÚcasesÚcaseÚ
triple_strÚ
triple_objrÉ  s         r   Útest_get_parts_from_triplez%TestTarget.test_get_parts_from_triple¤  s   € ð ÝŒ\× Ò  h¸Ø(.°5Ø%.¸Uð !ñ Dô DðEð ÝŒ\× Ò  h¸Ø(.°5Ø%.¸Uð !ñ Dô DðEð %ÝŒ\× Ò  i¸Ø(1°iØ%.¸Uð !ñ Dô DðEð *ÝŒ\× Ò  i¸Ø(1°iØ%.¸Uð !ñ Dô DðEð *ÝŒ\× Ò  e°VØ(1°gØ%.¸Uð !ñ Dô DðEð &ÝŒ\× Ò  f°bØ(1°gØ%*¸ð !ñ @ô @ðAð !ÝŒ\× Ò  f°bØ(/°HØ%.¸Wð !ñ Fô FðGð  ÝŒ\× Ò  f°bØ(1°iØ%+¸&ð !ñ Bô BðCð ÝŒ\× Ò  g°rØ(-°%Ø%.¸Vð !ñ Eô EðFð ÝŒ\× Ò  h¸Ø(1°fØ%.¸Vð !ñ Eô EðFð 'ÝŒ\× Ò  i¸Ø(,°Ø%+¸&ð !ñ Bô BðCðS-
ˆð^ ð 	.ð 	.ˆDØ%)Ñ"ˆJ˜
ÝÔ'¨
Ñ3Ô3ˆCà×Ò˜S *Ñ-Ô-Ð-Ð-ð		.ð 	.r4   N)	rN   rO   rP   r”  r–  rW  r�  rL  rÉ  rR   r4   r   r’  r’  }  sq   € € € € € ð	ð 	ð 	ðGð Gð Gð)ð )ð )ð7ð 7ð 7ð-ð -ð -ð5.ð 5.ð 5.ð 5.ð 5.r4   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_datar1   s    r   rä  zTestTargetData.target_dataÞ  s   € ÝÔ&Ð'NÑOÔOÐOr4   c                 ó²   — |                       ¦   «         }|                      ¦   «         }|                      |                     |j        ¦  «        d¦  «         d S )Nré  )rä  rB   r6   rì  rí  ©r2   rå  rB   s      r   Útest_get_abi_sizez TestTargetData.test_get_abi_sizeá  sJ   € Ø×ÒÑÔˆØ�yŠy‰{Œ{ˆØ×Ò˜Ÿš¨¬Ñ3Ô3°QÑ7Ô7Ð7Ð7Ð7r4   c                 ó8  — |                       ¦   «         }|                      ¦   «         }|                      |                     |j        ¦  «        d¦  «         |                      d¦  «        }|                      |                     |j        ¦  «        d¦  «         d S )Nry  r€  rê  )rä  rB   r6   rì  rî  rÏ  s      r   Útest_get_pointee_abi_sizez(TestTargetData.test_get_pointee_abi_sizeæ  s�   € Ø×ÒÑÔˆà�yŠy‰{Œ{ˆØ×Ò˜Ÿš¨Ô)?Ñ@Ô@À!ÑDÔDÐDà�yŠy˜Ñ'Ô'ˆØ×Ò˜Ÿš¨Ô)?Ñ@Ô@À"ÑEÔEÐEÐEÐEr4   c                 ó¨  — |                       ¦   «         }|                      d¦  «        }|                      t          ¦  «        5  |                     |j        d¦  «         d d d ¦  «         n# 1 swxY w Y   |j        }|                      |                     |d¦  «        d¦  «         |                      |                     |d¦  «        d¦  «         d S )Nr€  r   r_   ré  )rä  rB   râ   r–  Úget_element_offsetrí  rî  r6   )r2   rå  rB   Ú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ð Ô,ˆØ×Ò˜×.Ò.¨{¸AÑ>Ô>ÀÑBÔBÐBØ×Ò˜×.Ò.¨{¸AÑ>Ô>ÀÑBÔBÐBÐBÐBs   ÁA,Á,A0Á3A0N)rN   rO   rP   rä  rÐ  rÒ  rÖ  rR   r4   r   rË  rË  Ü  s[   € € € € € ðPð Pð Pð8ð 8ð 8ð
Fð Fð Fð	Cð 	Cð 	Cð 	Cð 	Cr4   rË  c                   ó   — e Zd Zd„ ZdS )ÚTestTargetMachinec                 ó  — |                       d¬¦  «        }|j        }|                      ¦   «         }|                     d¦  «        }t          j        dk     rdnd}|                      |                     |j        ¦  «        |¦  «         d S )NFrG   rB   rè  ry  ré  )	rM   rä  rA   rD   r”   rë  r6   rì  rí  )r2   Útmrå  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ÐDr4   N)rN   rO   rP   rÛ  rR   r4   r   rØ  rØ  û  s(   € € € € € ðEð Eð Eð Eð Er4   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_permanentlyr1   s    r   Útest_bad_libraryzTestDylib.test_bad_library		  sŒ   € Ø×Ò�|Ñ,Ô,ð 	=ð 	=ÝÔ)Ð*;Ñ<Ô<Ð<ð	=ð 	=ð 	=ñ 	=ô 	=ð 	=ð 	=ð 	=ð 	=ð 	=ð 	=ð 	=øøøð 	=ð 	=ð 	=ð 	=ð 	=ð 	=s   ›=½AÁA)ÚLinuxztest only works on Linuxc                 óL   — t          d¦  «        }t          j        |¦  «         d S )Nr�   )r   r*   rß  )r2   rf   s     r   Ú	test_libmzTestDylib.test_libm	  s(   € õ ˜CÑ Ô ˆÝÔ% dÑ+Ô+Ð+Ð+Ð+r4   N)	rN   rO   rP   rà  r’   r“   r€   Úsystemrã  rR   r4   r   rÝ  rÝ  	  sd   € € € € € ð=ð =ð =ð €XÔ˜˜œÑ*Ô*¨iÐ7Ø3ñ5ô 5ð,ð ,ñ5ô 5ð,ð ,ð ,r4   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#   )r2   r�   rï   rð   rñ   ro  ÚyÚzs           r   Úbuild_ir_modulezTestAnalysis.build_ir_module	  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‰	Œ	ˆ	Øˆr4   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å   ÚassertNotIn)r2   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Ð0r4   c                 óÀ  — |                       ¦   «                              d¦  «        }t          j        |d¬¦  «        }t          j        |d¬¦  «        }d}|                      ||¦  «         |                      ||¦  «         d}|                      ||¦  «         |                      ||¦  «         d}|                      ||¦  «         |                      ||¦  «         d S )Nrd  Trì  FÚdigraphzCFG for 'sum' functionz%.3 = add i32 %.1, %.2)rA   re  r*   rï  rå   rð  )r2   r¼  rñ  rò  ÚprefixÚfnamerî  s          r   Útest_function_cfg_on_llvm_valuez,TestAnalysis.test_function_cfg_on_llvm_value(	  sÞ   € Ø—+’+‘-”-×,Ò,¨UÑ3Ô3ˆÝÔ0°ÀDÐIÑIÔIÐÝÔ0°ÀEÐJÑJÔJÐàˆØ�Š�fÐ.Ñ/Ô/Ð/Ø�Š�fÐ.Ñ/Ô/Ð/à(ˆØ�Š�eÐ-Ñ.Ô.Ð.Ø�Š�eÐ-Ñ.Ô.Ð.à'ˆØ�Š�dÐ,Ñ-Ô-Ð-Ø×Ò˜Ð/Ñ0Ô0Ð0Ð0Ð0r4   N)rN   rO   rP   rê  ró  rø  rR   r4   r   ræ  ræ  	  sA   € € € € € ðð ð ð1ð 1ð 1ð1ð 1ð 1ð 1ð 1r4   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=   )r2   r@   r>   s      r   Úcheck_parsingzTestTypeParsing.check_parsing;	  s>   è è € åŒi‰kŒkˆð ˆ	ˆ	ˆ	å�#‰hŒhˆÝÔ˜CÑ Ô Ð Ð Ð r4   c                 ój  — |                       ¦   «         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 ¦  «         n# 1 swxY w Y   |                       ¦   «         5 }t          j                              t          j        d¦  «        d¦  «         t          j        d¦  «        d¦  «        gd¬¦  «        }t          j        ||j        d¦  «        }||_        d d d ¦  «         d S # 1 swxY w Y   d S )Nrê   rë   r_   Trj  r`   )	rü  r	   rl  rì   ru  rí   ÚinitializerÚliteral_structrí  )r2   r@   Útyprr  Úconsts        r   Útest_literal_structz#TestTypeParsing.test_literal_structE	  sB  € à×ÒÑ!Ô!ð 	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ð ×ÒÑ!Ô!ð 	# SÝ”K×.Ò.°µ´
¸2±´¸qÑ0AÔ0AØ0>µ´
¸2±´¸qÑ0AÔ0Að0Cà6:ð /ñ <ô <ˆEõ Ô" 3¨¬
°EÑ:Ô:ˆBØ"ˆBŒNð	#ð 	#ð 	#ñ 	#ô 	#ð 	#ð 	#ð 	#ð 	#ð 	#ð 	#ð 	#øøøð 	#ð 	#ð 	#ð 	#ð 	#ð 	#s8   •AA:Á:A>ÂA>ÂAD Ä DÄDÄA<F(Æ(F,Æ/F,N)rN   rO   rP   r   rü  r  rR   r4   r   rú  rú  :	  s<   € € € € € Øð!ð !ñ „^ð!ð#ð #ð #ð #ð #r4   rú  c                   ód   — e Zd Z ej         ej        ¦   «         dk    d¦  «        d„ ¦   «         ZdS )ÚTestGlobalConstructorsÚDarwinz&__cxa_atexit is broken on OSX in MCJITc                 ó   — |                       t          ¦  «        }|                      |¦  «        }|                     ¦   «          |                     ¦   «          |                     d¦  «        }t          j        t          j        ¦  «        }t          j	        ||¦  «        }|  
                    |j        j        d¦  «         |                     d¦  «        } t          j        t          j        ¦  «        |¦  «        }|  
                     |¦   «         d¦  «         |                     ¦   «          |  
                    |j        j        d¦  «         d S )NrI  r  rë   rJ  rK  )rA   Úasm_global_ctorsrH   r¾  Úrun_static_constructorsÚget_global_value_addressrO  ÚPOINTERr   Úcastr6   Úcontentsrv  r¿  r   Úrun_static_destructors)r2   r@   rÀ  Úptr_addrÚptr_trµ  Úfoo_addrrë   s           r   rO  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Ð0r4   N)rN   rO   rP   r’   rG  r€   rä  rO  rR   r4   r   r  r  ^	  sR   € € € € € Ø€X„_�_�X”_Ñ&Ô&¨(Ò2Ø=ñ?ô ?ð1ð 1ñ?ô ?ð1ð 1ð 1r4   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ì   ru  rƒ  r    rå   rð  rA   )r2   rƒ  Ú	has_undefr@   r   rr  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ÑÔÐÐÐr4   c                 ó0   — |                       d¦  «         d S )Nr�  ©r  r1   s    r   Útest_internal_linkagez)TestGlobalVariables.test_internal_linkage�	  ó   € Ø×*Ò*¨:Ñ6Ô6Ð6Ð6Ð6r4   c                 ó0   — |                       d¦  «         d S )NÚcommonr  r1   s    r   Útest_common_linkagez'TestGlobalVariables.test_common_linkage’	  s   € Ø×*Ò*¨8Ñ4Ô4Ð4Ð4Ð4r4   c                 ó4   — |                       dd¬¦  «         d S )Nr‚  F©r  r  r1   s    r   Útest_external_linkagez)TestGlobalVariables.test_external_linkage•	  s!   € Ø×*Ò*¨:ÀÐ*ÑGÔGÐGÐGÐGr4   c                 ó0   — |                       d¦  «         d S )NÚavailable_externallyr  r1   s    r   Ú!test_available_externally_linkagez5TestGlobalVariables.test_available_externally_linkage˜	  s   € Ø×*Ò*Ð+AÑBÔBÐBÐBÐBr4   c                 ó0   — |                       d¦  «         d S )NÚprivater  r1   s    r   Útest_private_linkagez(TestGlobalVariables.test_private_linkage›	  s   € Ø×*Ò*¨9Ñ5Ô5Ð5Ð5Ð5r4   c                 ó0   — |                       d¦  «         d S )NÚlinkoncer  r1   s    r   Útest_linkonce_linkagez)TestGlobalVariables.test_linkonce_linkagež	  r  r4   c                 ó0   — |                       d¦  «         d S )NÚweakr  r1   s    r   Útest_weak_linkagez%TestGlobalVariables.test_weak_linkage¡	  s   € Ø×*Ò*¨6Ñ2Ô2Ð2Ð2Ð2r4   c                 ó0   — |                       d¦  «         d S )NÚ	appendingr  r1   s    r   Útest_appending_linkagez*TestGlobalVariables.test_appending_linkage¤	  s   € Ø×*Ò*¨;Ñ7Ô7Ð7Ð7Ð7r4   c                 ó4   — |                       dd¬¦  «         d S )NÚextern_weakFr  r  r1   s    r   Útest_extern_weak_linkagez,TestGlobalVariables.test_extern_weak_linkage§	  s!   € Ø×*Ò*¨=ÀEÐ*ÑJÔJÐJÐJÐJr4   c                 ó0   — |                       d¦  «         d S )NÚlinkonce_odrr  r1   s    r   Útest_linkonce_odr_linkagez-TestGlobalVariables.test_linkonce_odr_linkageª	  s   € Ø×*Ò*¨>Ñ:Ô:Ð:Ð:Ð:r4   c                 ó0   — |                       d¦  «         d S )NÚweak_odrr  r1   s    r   Útest_weak_odr_linkagez)TestGlobalVariables.test_weak_odr_linkage­	  r  r4   N)T)rN   rO   rP   r  r  r  r   r#  r&  r)  r,  r/  r2  r5  r8  rR   r4   r   r  r  z	  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ð 7r4   r  Úx86zonly on x86c                   ó   — e Zd Zd„ ZdS )ÚTestInlineAsmc                 óä   — t          j        ¦   «          |                      t          ¬¦  «        }|                      d¬¦  «        }|                     |¦  «        }|                      d|¦  «         d S )N)r>   FrG   Únop)r*   Úinitialize_native_asmparserrA   rì  rM   rÏ   rå   )r2   r�   rÚ  r>   s       r   Útest_inlineasmzTestInlineAsm.test_inlineasm³	  sg   € ÝÔ(Ñ*Ô*Ð*Ø�KŠK�MˆKÑ*Ô*ˆØ× Ò  UÐ Ñ+Ô+ˆØ×Ò˜qÑ!Ô!ˆØ�Š�e˜SÑ!Ô!Ð!Ð!Ð!r4   N)rN   rO   rP   r?  rR   r4   r   r;  r;  ±	  s#   € € € € € ð"ð "ð "ð "ð "r4   r;  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                 ó  — |                       d¬¦  «        }|                      ¦   «         }|                     |¦  «        }t          j                             |¦  «        }d}d}|                     ¦   «         D ]}|                     ¦   «         rit          | 	                    ¦   «         ¦  «        dk    rD| 
                    ¦   «         �0|| 
                    ¦   «         k     rd}| 
                    ¦   «         } nŒ€|                      |¦  «         d S )NFrG   r  r   T)rM   rA   r  r*   ÚObjectFileRefÚ	from_dataÚsectionsÚis_textr|   ÚdataÚaddressr  )r2   rM   r@   rv  ÚobjÚhas_text_and_dataÚlast_addressrç   s           r   Útest_object_filezTestObjectFile.test_object_fileÊ	  sì   € Ø×,Ò,°Ð,Ñ7Ô7ˆØ�kŠk‰mŒmˆØ ×,Ò,¨SÑ1Ô1ˆÝÔ ×*Ò*¨7Ñ3Ô3ˆà!ÐØˆØ—’‘”ð 		ð 		ˆAà—	’	‘”ðå˜Ÿš™œ‘M”M AÒ%Ð%Ø—I’I‘K”KÐ+Ø  1§9¢9¡;¤;Ò.Ð.à$(Ð!Ø Ÿyšy™{œ{�Ø�øØ�ŠÐ)Ñ*Ô*Ð*Ð*Ð*r4   c                 óþ  — |                       d¬¦  «        }|                      ¦   «         }|                     |¦  «        }t          j                             |¦  «        }t          j        |                      | j        ¦  «        |¦  «        }|                     |¦  «          t          t          t          t          ¦  «        |                     d¦  «        ¦  «        }|                       |dd¦  «        d¦  «         d S )NFrG   Ú	sum_twicer`   rl  r  )rM   rA   r  r*   rC  rD  r  Úmod_asmrt  r   r   r¿  r6   )r2   rM   r@   rv  rI  rH   rN  s          r   ro  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™œ¨"Ñ-Ô-Ð-Ð-Ð-r4   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 )NFrG   rq  rN  r`   rl  r  )rM   rA   r  r   rm   rr  rs  ÚflushrN  r*   r  rO  rt  ru  r   r   r¿  r6   )	r2   rM   r@   rv  rw  rx  r”  rH   rN  s	            r   ry  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*   rC  rD  rE  rF  r6   r|   rG  ÚhexÚissue_632_text)r2   ÚelfrI  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r4   N)rN   rO   rP   rO  rL  ro  ry  rY  rR   r4   r   rA  rA  »	  s\   € € € € € ð€Gð+ð +ð +ð(.ð .ð .ð .ð .ð .ð4Að Að Að Að Ar4   rA  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   r^  z6TestLLVMLockCallbacks.test_lock_callbacks.<locals>.acq
  ó   ø€ Ø�MŠM˜%Ñ Ô Ð Ð Ð r4   c                  ó2   •— ‰                       d¦  «         d S )NÚrelr÷  r_  s   €r   rc  z6TestLLVMLockCallbacks.test_lock_callbacks.<locals>.rel
  ra  r4   r^  rc  )	r*   r   Úregister_lock_callbackr×  Úcreate_new_module_pass_managerrå   Úunregister_lock_callbackrâ   r–  )r2   r^  rc  r`  s      @r   Útest_lock_callbacksz)TestLLVMLockCallbacks.test_lock_callbacks
  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)rN   rO   rP   rg  rR   r4   r   r[  r[  
  s#   € € € € € ð8ð 8ð 8ð 8ð 8r4   r[  c                   óD   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zd
S )ÚTestPipelineTuningOptionsc                 ó(   — t          j        ¦   «         S r)   )r*   Úcreate_pipeline_tuning_optionsr1   s    r   ÚptozTestPipelineTuningOptions.pto2
  ó   € ÝÔ2Ñ4Ô4Ð4r4   c                 óV   — |                       ¦   «         }|                     ¦   «          d S r)   )rl  rN  ©r2   rl  s     r   rR  z$TestPipelineTuningOptions.test_close5
  s    € Ø�hŠh‰jŒjˆØ�	Š	‰Œˆˆˆr4   c                 óÖ   — |                       ¦   «         }|                      |j        t          ¦  «         t	          d¦  «        D ]$}||_        |                      |j        |¦  «         Œ%d S rÀ  )rl  r  Úspeed_levelrý  r5  r6   ©r2   rl  r^  s      r   Útest_speed_levelz*TestPipelineTuningOptions.test_speed_level9
  sh   € Ø�hŠh‰jŒjˆØ×Ò˜cœo­sÑ3Ô3Ð3Ý�q‘”ð 	1ð 	1ˆAØˆCŒOØ×Ò˜Sœ_¨aÑ0Ô0Ð0Ð0ð	1ð 	1r4   c                 ó†   — |                       ¦   «         }|                      |j        t          ¦  «         dD ]	}||_        Œ
d S )N)é   éP   i^  )rl  r  Úinlining_thresholdrý  rr  s      r   Útest_inlining_thresholdz1TestPipelineTuningOptions.test_inlining_threshold@
  sL   € Ø�hŠh‰jŒjˆØ×Ò˜cÔ4µcÑ:Ô:Ð:Øð 	'ð 	'ˆAØ%&ˆCÔ"Ð"ð	'ð 	'r4   c                 ó¼   — |                       ¦   «         }|                      |j        t          ¦  «         dD ]$}||_        |                      |j        |¦  «         Œ%d S ©N)TF)rl  r  Úloop_interleavingr  r6   ©r2   rl  r½   s      r   Útest_loop_interleavingz0TestPipelineTuningOptions.test_loop_interleavingF
  óe   € Ø�hŠh‰jŒjˆØ×Ò˜cÔ3µTÑ:Ô:Ð:Øð 	7ð 	7ˆAØ$%ˆCÔ!Ø×Ò˜SÔ2°AÑ6Ô6Ð6Ð6ð	7ð 	7r4   c                 ó¼   — |                       ¦   «         }|                      |j        t          ¦  «         dD ]$}||_        |                      |j        |¦  «         Œ%d S rz  )rl  r  Úloop_vectorizationr  r6   r|  s      r   Útest_loop_vectorizationz1TestPipelineTuningOptions.test_loop_vectorizationM
  se   € Ø�hŠh‰jŒjˆØ×Ò˜cÔ4µdÑ;Ô;Ð;Øð 	8ð 	8ˆAØ%&ˆCÔ"Ø×Ò˜SÔ3°QÑ7Ô7Ð7Ð7ð	8ð 	8r4   c                 ó¼   — |                       ¦   «         }|                      |j        t          ¦  «         dD ]$}||_        |                      |j        |¦  «         Œ%d S rz  )rl  r  Úslp_vectorizationr  r6   r|  s      r   Útest_slp_vectorizationz0TestPipelineTuningOptions.test_slp_vectorizationT
  r~  r4   c                 ó¼   — |                       ¦   «         }|                      |j        t          ¦  «         dD ]$}||_        |                      |j        |¦  «         Œ%d S rz  )rl  r  Úloop_unrollingr  r6   r|  s      r   Útest_loop_unrollingz-TestPipelineTuningOptions.test_loop_unrolling[
  se   € Ø�hŠh‰jŒjˆØ×Ò˜cÔ0µ$Ñ7Ô7Ð7Øð 	4ð 	4ˆAØ!"ˆCÔØ×Ò˜SÔ/°Ñ3Ô3Ð3Ð3ð	4ð 	4r4   c                 ó  — |                       ¦   «         }|                      t          ¦  «        5  d|_        d d d ¦  «         n# 1 swxY w Y   |                      t          ¦  «        5  d|_        d d d ¦  «         d S # 1 swxY w Y   d S )Nry  r  )rl  râ   r–  rq  ro  s     r   Útest_speed_level_constraintsz6TestPipelineTuningOptions.test_speed_level_constraintsb
  sþ   € Ø�hŠh‰jŒjˆØ×Ò�zÑ*Ô*ð 	 ð 	 ØˆCŒOð	 ð 	 ð 	 ñ 	 ô 	 ð 	 ð 	 ð 	 ð 	 ð 	 ð 	 øøøð 	 ð 	 ð 	 ð 	 à×Ò�zÑ*Ô*ð 	!ð 	!Ø ˆCŒOð	!ð 	!ð 	!ñ 	!ô 	!ð 	!ð 	!ð 	!ð 	!ð 	!ð 	!ð 	!øøøð 	!ð 	!ð 	!ð 	!ð 	!ð 	!s#   ¯AÁAÁ
AÁ(A=Á=BÂBN)rN   rO   rP   rl  rR  rs  rx  r}  r�  r„  r‡  r‰  rR   r4   r   ri  ri  0
  s›   € € € € € ð5ð 5ð 5ðð ð ð1ð 1ð 1ð'ð 'ð 'ð7ð 7ð 7ð8ð 8ð 8ð7ð 7ð 7ð4ð 4ð 4ð!ð !ð !ð !ð !r4   ri  c                   ó   — e Zd Zdd„ZdS )ÚNewPassManagerMixinr   c                 ó„   — |                       d¬¦  «        }t          j        |¦  «        }t          j        ||¦  «        }|S )NFrG   )rM   r*   rk  Úcreate_pass_builder)r2   rq  rÚ  rl  Úpbs        r   rŽ  zNewPassManagerMixin.pbl
  s?   € Ø× Ò  UÐ Ñ+Ô+ˆÝÔ1°+Ñ>Ô>ˆÝÔ% b¨#Ñ.Ô.ˆØˆ	r4   N)r   )rN   rO   rP   rŽ  rR   r4   r   r‹  r‹  j
  s(   € € € € € ðð ð ð ð ð r4   r‹  c                   ó>   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	S )
ÚTestPassBuilderc                 óV   — |                       ¦   «         }|                     ¦   «          d S r)   )rŽ  rN  )r2   rŽ  s     r   rR  zTestPassBuilder.test_closeu
  s    € Ø�WŠW‰YŒYˆØ
�Š‰
Œ
ˆ
ˆ
ˆ
r4   c                 óò   — |                       d¬¦  «        }t          j        d¦  «        }d|_        d|_        d|_        d|_        d|_        t          j        ||¦  «        }| 	                    ¦   «          d S )NFrG   rl  r`   T)
rM   r*   rk  rw  r{  r€  rƒ  r†  r�  rN  )r2   rÚ  rl  rŽ  s       r   Útest_ptozTestPassBuilder.test_ptoy
  ss   € Ø× Ò  UÐ Ñ+Ô+ˆÝÔ1°!Ñ4Ô4ˆØ!"ˆÔØ $ˆÔØ!%ˆÔØ $ˆÔØ"ˆÔÝÔ% b¨#Ñ.Ô.ˆØ
�Š‰
Œ
ˆ
ˆ
ˆ
r4   c                 óÎ   — |                       ¦   «         }|                     ¦   «         }|                     |                      ¦   «         |¦  «         |                     ¦   «          d S r)   )rŽ  ÚgetModulePassManagerÚrunrA   rN  )r2   rŽ  Úmpms      r   Útest_get_module_pass_managerz,TestPassBuilder.test_get_module_pass_manager„
  sM   € Ø�WŠW‰YŒYˆØ×%Ò%Ñ'Ô'ˆØ�Š�—’‘”˜rÑ"Ô"Ð"Ø
�Š‰
Œ
ˆ
ˆ
ˆ
r4   c                 óô   — |                       ¦   «         }|                     ¦   «         }|                     |                      ¦   «                              d¦  «        |¦  «         |                     ¦   «          d S rA  )rŽ  ÚgetFunctionPassManagerr–  rA   re  rN  )r2   rŽ  Úfpms      r   Útest_get_function_pass_managerz.TestPassBuilder.test_get_function_pass_managerŠ
  s[   € Ø�WŠW‰YŒYˆØ×'Ò'Ñ)Ô)ˆØ�Š�—’‘”×*Ò*¨5Ñ1Ô1°2Ñ6Ô6Ð6Ø
�Š‰
Œ
ˆ
ˆ
ˆ
r4   c                 óN  ‡ — ˆ fd„} |d¦  «        } |d¦  «        }‰                       |t          ¦  «         ‰                       |t          ¦  «         ‰                      |                     d¦  «        d¦  «         ‰                      |                     d¦  «        d¦  «         dS )z:Test pass timing reports for O3 and O0 optimization levelsc                 ó(  •— ‰                      ¦   «         }‰                     | ¬¦  «        }|                     ¦   «          |                     ¦   «         }|                     ||¦  «         |                     ¦   «         }|                     ¦   «          |S ©N©rq  )rA   rŽ  Ústart_pass_timingr•  r–  Úfinish_pass_timingrN  )rq  r@   rŽ  r—  Úreportr2   s        €r   Úrun_with_timingz9TestPassBuilder.test_time_passes.<locals>.run_with_timing’
  s}   ø€ Ø—+’+‘-”-ˆCØ—’ [�Ñ1Ô1ˆBØ× Ò Ñ"Ô"Ð"Ø×)Ò)Ñ+Ô+ˆCØ�GŠG�C˜ÑÔÐØ×*Ò*Ñ,Ô,ˆFØ�HŠH‰JŒJˆJØˆMr4   rl  r   zPass execution timing reportr_   N)r  r    r6   Úcount)r2   r¤  Ú	report_O3Ú	report_O0s   `   r   Útest_time_passesz TestPassBuilder.test_time_passes�
  s´   ø€ ð	ð 	ð 	ð 	ð 	ð $�O AÑ&Ô&ˆ	Ø#�O AÑ&Ô&ˆ	à×Ò˜i­Ñ-Ô-Ð-Ø×Ò˜i­Ñ-Ô-Ð-Ø×Ò˜ŸšÐ)GÑHÔHÈ!ÑLÔLÐLØ×Ò˜ŸšÐ)GÑHÔHÈ!ÑLÔLÐLÐLÐLr4   c                 óL  — |                       ¦   «         }|                      ¦   «         }|                     ¦   «         }|                     ||¦  «         |                     ¦   «          |                     ¦   «         }|                     ¦   «          |                      |¦  «         d S r)   )rA   rŽ  r•  r–  r¡  r¢  rN  r×  )r2   r@   rŽ  r—  r£  s        r   Útest_empty_reportz!TestPassBuilder.test_empty_report¤
  s‹   € Ø�kŠk‰mŒmˆØ�WŠW‰YŒYˆØ×%Ò%Ñ'Ô'ˆØ�Š��RÑÔÐØ
×ÒÑÔÐØ×&Ò&Ñ(Ô(ˆØ
�Š‰
Œ
ˆ
Ø×Ò˜Ñ Ô Ð Ð Ð r4   c                 ó°  — |                       ¦   «         }|                      ¦   «         }|                     ¦   «          |                     ¦   «         }|                     ||¦  «         |                     ¦   «          |                      t          d¦  «        5  |                     ¦   «          d d d ¦  «         n# 1 swxY w Y   |                     ¦   «          d S )Nzonly be done once)	rA   rŽ  r¡  r•  r–  r¢  r,  rŸ   rN  ©r2   r@   rŽ  r—  s       r   Útest_multiple_timers_errorz*TestPassBuilder.test_multiple_timers_error®
  sô   € Ø�kŠk‰mŒmˆØ�WŠW‰YŒYˆØ
×ÒÑÔÐØ×%Ò%Ñ'Ô'ˆØ�Š��RÑÔÐØ
×ÒÑÔÐØ×#Ò#¥LÐ2EÑFÔFð 	#ð 	#Ø× Ò Ñ"Ô"Ð"ð	#ð 	#ð 	#ñ 	#ô 	#ð 	#ð 	#ð 	#ð 	#ð 	#ð 	#øøøð 	#ð 	#ð 	#ð 	#à
�Š‰
Œ
ˆ
ˆ
ˆ
s   ÂB7Â7B;Â>B;c                 ó`  — |                       ¦   «         }|                      ¦   «         }|                     ¦   «         }|                     ||¦  «         |                      t
          d¦  «        5  |                     ¦   «          d d d ¦  «         n# 1 swxY w Y   |                     ¦   «          d S )Nznot enabled)rA   rŽ  r•  r–  r,  rŸ   r¢  rN  r¬  s       r   Útest_empty_report_errorz'TestPassBuilder.test_empty_report_error¹
  sÏ   € Ø�kŠk‰mŒmˆØ�WŠW‰YŒYˆØ×%Ò%Ñ'Ô'ˆØ�Š��RÑÔÐØ×#Ò#¥L°-Ñ@Ô@ð 	$ð 	$Ø×!Ò!Ñ#Ô#Ð#ð	$ð 	$ð 	$ñ 	$ô 	$ð 	$ð 	$ð 	$ð 	$ð 	$ð 	$øøøð 	$ð 	$ð 	$ð 	$à
�Š‰
Œ
ˆ
ˆ
ˆ
s   Á.BÂBÂBN)rN   rO   rP   rR  r“  r˜  rœ  r¨  rª  r­  r¯  rR   r4   r   r�  r�  s
  s�   € € € € € ðð ð ð	ð 	ð 	ðð ð ðð ð ðMð Mð Mð(!ð !ð !ð	ð 	ð 	ðð ð ð ð r4   r�  c                   óD   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zd
S )ÚTestNewModulePassManagerc                 ó(   — t          j        ¦   «         S r)   )r*   re  r1   s    r   ÚpmzTestNewModulePassManager.pmÄ
  rm  r4   c                 óî   — |                       ¦   «         }t          |¦  «        }|                      |¬¦  «        }|                     ¦   «         }|                     ||¦  «         t          |¦  «        }||fS rŸ  )rA   r    rŽ  r•  r–  )r2   Úlevelr@   Úorig_asmrŽ  r—  Úoptimized_asms          r   Úrun_o_nz TestNewModulePassManager.run_o_nÇ
  sh   € Ø�kŠk‰mŒmˆÝ�s‘8”8ˆØ�WŠW ˆWÑ'Ô'ˆØ×%Ò%Ñ'Ô'ˆØ�Š��RÑÔÐÝ˜C™œˆØ˜Ð&Ð&r4   c                 óV   — |                       ¦   «         }|                     ¦   «          d S r)   ©r³  rN  ©r2   r—  s     r   rR  z#TestNewModulePassManager.test_closeÐ
  ó    € Ø�gŠg‰iŒiˆØ�	Š	‰Œˆˆˆr4   c                 óŽ   — |                       d¦  «        \  }}|                      d|¦  «         |                      d|¦  «         d S ©Nrl  ú%.4©r¸  rå   rð  ©r2   r¶  r·  s      r   Útest_run_o3z$TestNewModulePassManager.test_run_o3Ô
  óF   € Ø"&§,¢,¨q¡/¤/Ñˆ�-Ø�Š�e˜XÑ&Ô&Ð&Ø×Ò˜ Ñ.Ô.Ð.Ð.Ð.r4   c                 óŽ   — |                       d¦  «        \  }}|                      d|¦  «         |                      d|¦  «         d S ©Nr   r¿  ©r¸  rå   rÁ  s      r   Útest_run_o0z$TestNewModulePassManager.test_run_o0Ù
  óD   € Ø"&§,¢,¨q¡/¤/Ñˆ�-Ø�Š�e˜XÑ&Ô&Ð&Ø�Š�e˜]Ñ+Ô+Ð+Ð+Ð+r4   c                 ór  — |                       ¦   «         }|                      ¦   «         }|                     ¦   «          |                      t          ¦  «        }t          |¦  «        }|                     ||¦  «         t          |¦  «        }|                      d|¦  «         |                      d|¦  «         d S )Nú%.3)	rŽ  r³  Úadd_instruction_combine_passrA   Úasm_sum4r    r–  rå   rð  )r2   rŽ  r—  r@   r¶  r·  s         r   Útest_instcombinez)TestNewModulePassManager.test_instcombineÞ
  s™   € Ø�WŠW‰YŒYˆØ�gŠg‰iŒiˆØ×(Ò(Ñ*Ô*Ð*Ø�kŠk�(Ñ#Ô#ˆÝ�s‘8”8ˆØ�Š��RÑÔÐÝ˜C™œˆØ�Š�e˜XÑ&Ô&Ð&Ø×Ò˜ Ñ.Ô.Ð.Ð.Ð.r4   c                 óŽ  — |                       d¬¦  «        }t          t                               dd¦  «        ¦  «        }t	          j        |¦  «        }|                     ¦   «         }|                     ||¦  «         t          |¦  «        }|                      d|¦  «         |  	                    d|¦  «         t          t          ¦  «        }|                     ¦   «         }t	          j        |¦  «        }|                     ||¦  «         t          |¦  «        }|                      d|¦  «         |                      d|¦  «         d S )Nrl  r   úoptnone rÄ   Úalloca)
rŽ  r    Úasm_alloca_optnoneÚreplacer*   r=   r•  r–  rå   rð  )r2   rŽ  r¶  r@   r—  r·  Úorig_asm_optnoneÚoptimized_asm_optnones           r   Útest_optnonez%TestNewModulePassManager.test_optnoneé
  s   € Ø�WŠW ˆWÑ#Ô#ˆÝÕ)×1Ò1°*¸bÑAÔAÑBÔBˆÝÔ! (Ñ+Ô+ˆØ×%Ò%Ñ'Ô'ˆØ�Š��RÑÔÐÝ˜C™œˆØ�Š�h Ñ)Ô)Ð)Ø×Ò˜ =Ñ1Ô1Ð1õ Õ1Ñ2Ô2ÐØ×%Ò%Ñ'Ô'ˆÝÔ!Ð"2Ñ3Ô3ˆØ�Š��RÑÔÐÝ # C¡¤ÐØ�Š�hÐ 0Ñ1Ô1Ð1Ø�Š�hÐ 5Ñ6Ô6Ð6Ð6Ð6r4   c                 óH  — |                       d¬¦  «        }|                      t          ¦  «        }|                     ¦   «         }|                     ||¦  «         t          |¦  «        }|                      d|¦  «         |                      t          ¦  «        }|                     d¦  «        }|                     d¦  «         |                      dt          |j
        ¦  «        ¦  «         |                     ¦   «         }|                     ||¦  «         t          |¦  «        }|                      d|¦  «         |                      d|¦  «         |                      t          ¦  «        }	|	                     d¦  «        }|                     d¦  «         |                      dt          |j
        ¦  «        ¦  «         |                     ¦   «         }
|
                     |	|¦  «         t          |	¦  «        }|                      d|¦  «         |                      d|¦  «         d S )	Nrl  r   zvector.bodyÚstride1rš  r›  r¡  r¢  )rŽ  rA   Úasm_vectorizer•  r–  r    rå   re  r•  r‰  r�  rð  )r2   rŽ  r@   r—  Ú	optimizedÚmod_optsizerð   Úmpm2Úoptimized_optsizeÚmod_minsizeÚmpm3Úoptimized_minsizes               r   Útest_optsize_minsizez-TestNewModulePassManager.test_optsize_minsizeü
  sà  € Ø�WŠW ˆWÑ#Ô#ˆð �kŠk�-Ñ(Ô(ˆØ×%Ò%Ñ'Ô'ˆØ�Š��RÑÔÐÝ˜‘H”Hˆ	Ø�Š�m YÑ/Ô/Ð/ð —k’k¥-Ñ0Ô0ˆØ×%Ò% iÑ0Ô0ˆØ
×!Ò! )Ñ,Ô,Ð,Ø�Š�j¥$ r¤}Ñ"5Ô"5Ñ6Ô6Ð6Ø×&Ò&Ñ(Ô(ˆØ�Š�˜bÑ!Ô!Ð!Ý Ñ,Ô,ÐØ�Š�iÐ!2Ñ3Ô3Ð3Ø×Ò˜Ð(9Ñ:Ô:Ð:ð —k’k¥-Ñ0Ô0ˆØ×%Ò% iÑ0Ô0ˆØ
×!Ò! )Ñ,Ô,Ð,Ø�Š�j¥$ r¤}Ñ"5Ô"5Ñ6Ô6Ð6Ø×&Ò&Ñ(Ô(ˆØ�Š�˜bÑ!Ô!Ð!Ý Ñ,Ô,ÐØ�Š�iÐ!2Ñ3Ô3Ð3Ø×Ò˜Ð(9Ñ:Ô:Ð:Ð:Ð:r4   c                 óŽ	  — |                       ¦   «         }|                     ¦   «          |                     ¦   «          |                     ¦   «          |                     ¦   «          |                     ¦   «          |                     ¦   «          |                     ¦   «          |                     ¦   «          | 	                    ¦   «          | 
                    ¦   «          |                     ¦   «          |                     ¦   «          |                     ¦   «          |                     ¦   «          |                     ¦   «          |                     ¦   «          |                     ¦   «          |                     ¦   «          |                     ¦   «          |                     ¦   «          |                     ¦   «          |                     ¦   «          |                     ¦   «          |                     ¦   «          |                     ¦   «          |                     ¦   «          |                     ¦   «          |                     ¦   «          |                     ¦   «          |                     ¦   «          |                     ¦   «          |                      ¦   «          |                     ¦   «          | !                    ¦   «          | "                    ¦   «          | #                    ¦   «          | $                    ¦   «          | %                    ¦   «          | &                    ¦   «          | '                    ¦   «          | (                    ¦   «          | )                    ¦   «          | *                    ¦   «          | +                    ¦   «          | ,                    ¦   «          | -                    ¦   «          | .                    ¦   «          | /                    ¦   «          | 0                    ¦   «          | 1                    ¦   «          | 2                    ¦   «          | 3                    ¦   «          | 4                    ¦   «          | 5                    ¦   «          | 6                    ¦   «          | 7                    ¦   «          | 8                    ¦   «          | 9                    ¦   «          | :                    ¦   «          | ;                    ¦   «          d S r)   )<r³  Úadd_argument_promotion_passÚ'add_post_order_function_attributes_passÚadd_verifierÚadd_constant_merge_passÚadd_dead_arg_elimination_passÚadd_dot_call_graph_printer_passÚadd_always_inliner_passÚadd_rpo_function_attrs_passÚ#add_global_dead_code_eliminate_passÚadd_global_opt_passÚadd_ipsccp_passÚadd_internalize_passÚadd_loop_extract_passÚadd_merge_functions_passÚadd_partial_inliner_passÚadd_strip_symbols_passÚadd_strip_dead_debug_info_passÚadd_strip_dead_prototype_passÚadd_strip_debug_declare_passÚ add_strip_non_debug_symbols_passÚadd_aa_eval_passÚadd_simplify_cfg_passÚadd_loop_unroll_passrË  Úadd_jump_threading_passÚadd_cfg_printer_passÚadd_cfg_only_printer_passÚadd_dom_printer_passÚadd_dom_only_printer_passÚadd_post_dom_printer_passÚadd_post_dom_only_printer_passÚadd_dom_viewer_passÚadd_post_dom_viewer_passÚadd_post_dom_only_viewer_passÚadd_aggressive_dce_passÚadd_break_critical_edges_passÚadd_dead_store_elimination_passÚadd_dead_code_elimination_passÚadd_aggressive_instcombine_passÚadd_lcssa_passÚadd_new_gvn_passÚadd_loop_simplify_passÚadd_loop_unroll_and_jam_passÚadd_sccp_passÚadd_lower_atomic_passÚadd_lower_invoke_passÚadd_lower_switch_passÚadd_mem_copy_opt_passÚ"add_unify_function_exit_nodes_passÚadd_reassociate_passÚadd_register_to_memory_passÚadd_sroa_passÚadd_sinking_passÚadd_tail_call_elimination_passÚadd_instruction_namer_passÚadd_loop_deletion_passÚadd_loop_strength_reduce_passÚadd_loop_rotate_passÚadd_refprune_passr»  s     r   Útest_add_passesz(TestNewModulePassManager.test_add_passes  sM  € Ø�gŠg‰iŒiˆØ×'Ò'Ñ)Ô)Ð)Ø×3Ò3Ñ5Ô5Ð5Ø×ÒÑÔÐØ×#Ò#Ñ%Ô%Ð%Ø×)Ò)Ñ+Ô+Ð+Ø×+Ò+Ñ-Ô-Ð-Ø×#Ò#Ñ%Ô%Ð%Ø×'Ò'Ñ)Ô)Ð)Ø×/Ò/Ñ1Ô1Ð1Ø×ÒÑ!Ô!Ð!Ø×ÒÑÔÐØ× Ò Ñ"Ô"Ð"Ø×!Ò!Ñ#Ô#Ð#Ø×$Ò$Ñ&Ô&Ð&Ø×$Ò$Ñ&Ô&Ð&Ø×"Ò"Ñ$Ô$Ð$Ø×*Ò*Ñ,Ô,Ð,Ø×)Ò)Ñ+Ô+Ð+Ø×(Ò(Ñ*Ô*Ð*Ø×,Ò,Ñ.Ô.Ð.Ø×ÒÑÔÐØ×!Ò!Ñ#Ô#Ð#Ø× Ò Ñ"Ô"Ð"Ø×(Ò(Ñ*Ô*Ð*Ø×#Ò#Ñ%Ô%Ð%Ø× Ò Ñ"Ô"Ð"Ø×%Ò%Ñ'Ô'Ð'Ø× Ò Ñ"Ô"Ð"Ø×%Ò%Ñ'Ô'Ð'Ø×%Ò%Ñ'Ô'Ð'Ø×*Ò*Ñ,Ô,Ð,Ø×ÒÑ!Ô!Ð!Ø×%Ò%Ñ'Ô'Ð'Ø×$Ò$Ñ&Ô&Ð&Ø×)Ò)Ñ+Ô+Ð+Ø×#Ò#Ñ%Ô%Ð%Ø×)Ò)Ñ+Ô+Ð+Ø×+Ò+Ñ-Ô-Ð-Ø×*Ò*Ñ,Ô,Ð,Ø×+Ò+Ñ-Ô-Ð-Ø×ÒÑÔÐØ×ÒÑÔÐØ×"Ò"Ñ$Ô$Ð$Ø×(Ò(Ñ*Ô*Ð*Ø×ÒÑÔÐØ×!Ò!Ñ#Ô#Ð#Ø×!Ò!Ñ#Ô#Ð#Ø×!Ò!Ñ#Ô#Ð#Ø×!Ò!Ñ#Ô#Ð#Ø×.Ò.Ñ0Ô0Ð0Ø× Ò Ñ"Ô"Ð"Ø×'Ò'Ñ)Ô)Ð)Ø×ÒÑÔÐØ×ÒÑÔÐØ×*Ò*Ñ,Ô,Ð,Ø×&Ò&Ñ(Ô(Ð(Ø×"Ò"Ñ$Ô$Ð$Ø×)Ò)Ñ+Ô+Ð+Ø× Ò Ñ"Ô"Ð"Ø×ÒÑÔÐÐÐr4   N)rN   rO   rP   r³  r¸  rR  rÂ  rÇ  rÍ  rÕ  rà  r  rR   r4   r   r±  r±  Ã
  sœ   € € € € € ð5ð 5ð 5ð'ð 'ð 'ðð ð ð/ð /ð /ð
,ð ,ð ,ð
	/ð 	/ð 	/ð7ð 7ð 7ð&;ð ;ð ;ð@= ð = ð = ð = ð = r4   r±  c                   óD   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zd
S )ÚTestNewFunctionPassManagerc                 ó(   — t          j        ¦   «         S r)   )r*   Ú create_new_function_pass_managerr1   s    r   r³  zTestNewFunctionPassManager.pm]  s   € ÝÔ4Ñ6Ô6Ð6r4   c                 óV   — |                       ¦   «         }|                     ¦   «          d S r)   rº  ©r2   r›  s     r   rR  z%TestNewFunctionPassManager.test_close`  r¼  r4   c                 ó  — |                       ¦   «         }|                     d¦  «        }t          |¦  «        }|                      |¬¦  «        }|                     ¦   «         }|                     ||¦  «         t          |¦  «        }||fS )Nrd  r   )rA   re  r    rŽ  rš  r–  )r2   rµ  r@   Úfunr¶  rŽ  r›  r·  s           r   r¸  z"TestNewFunctionPassManager.run_o_nd  s{   € Ø�kŠk‰mŒmˆØ×Ò˜uÑ%Ô%ˆÝ�s‘8”8ˆØ�WŠW ˆWÑ'Ô'ˆØ×'Ò'Ñ)Ô)ˆØ�Š��RÑÔÐÝ˜C™œˆØ˜Ð&Ð&r4   c                 óŽ   — |                       d¦  «        \  }}|                      d|¦  «         |                      d|¦  «         d S r¾  rÀ  rÁ  s      r   rÂ  z&TestNewFunctionPassManager.test_run_o3n  rÃ  r4   c                 óŽ   — |                       d¦  «        \  }}|                      d|¦  «         |                      d|¦  «         d S rÅ  rÆ  rÁ  s      r   rÇ  z&TestNewFunctionPassManager.test_run_o0s  rÈ  r4   c                 óÚ  — |                       d¬¦  «        }t          t                               dd¦  «        ¦  «        }t	          j        |¦  «                             d¦  «        }|                     ¦   «         }|                     ||¦  «         t          |¦  «        }|  	                    d|¦  «         |  
                    d|¦  «         t          t          ¦  «        }t	          j        |¦  «                             d¦  «        }|                     ¦   «         }|                     ||¦  «         t          |¦  «        }|  	                    d|¦  «         |  	                    d|¦  «         d S )Nrl  r   rÏ  rÄ   rë   rÐ  )rŽ  r    rÑ  rÒ  r*   r=   re  rš  r–  rå   rð  )r2   rŽ  r¶  r$  r›  r·  rÓ  rÔ  s           r   rÕ  z'TestNewFunctionPassManager.test_optnonex  s<  € Ø�WŠW ˆWÑ#Ô#ˆÝÕ)×1Ò1°*¸bÑAÔAÑBÔBˆÝÔ! (Ñ+Ô+×8Ò8¸Ñ?Ô?ˆØ×'Ò'Ñ)Ô)ˆØ�Š��RÑÔÐÝ˜C™œˆØ�Š�h Ñ)Ô)Ð)Ø×Ò˜ =Ñ1Ô1Ð1õ Õ1Ñ2Ô2ÐÝÔ!Ð"2Ñ3Ô3×@Ò@ÀÑGÔGˆØ×'Ò'Ñ)Ô)ˆØ�Š��RÑÔÐÝ # C¡¤ÐØ�Š�hÐ 0Ñ1Ô1Ð1Ø�Š�hÐ 5Ñ6Ô6Ð6Ð6Ð6r4   c                 ó˜  — |                       ¦   «         }|                      ¦   «         }|                      t          ¦  «                             d¦  «        }|                     ¦   «          t          |¦  «        }|                     ||¦  «         t          |¦  «        }|                      d|¦  «         |  	                    d|¦  «         d S )Nrd  rÊ  )
rŽ  r³  rA   rÌ  re  rË  r    r–  rå   rð  )r2   rŽ  r›  r$  r¶  r·  s         r   rÍ  z+TestNewFunctionPassManager.test_instcombine‹  s§   € Ø�WŠW‰YŒYˆØ�gŠg‰iŒiˆØ�kŠk�(Ñ#Ô#×0Ò0°Ñ7Ô7ˆØ×(Ò(Ñ*Ô*Ð*Ý�s‘8”8ˆØ�Š��RÑÔÐÝ˜C™œˆØ�Š�e˜XÑ&Ô&Ð&Ø×Ò˜ Ñ.Ô.Ð.Ð.Ð.r4   c                 óÆ   — |                       d¦  «        }|                     ¦   «         }t          j        t          ¦  «        j        D ]}|                     ||¦  «         Œd S )Nrl  )rŽ  rš  r*   r=   Úasm_declarationrˆ  r–  )r2   rŽ  r›  r$  s       r   Útest_declarationsz,TestNewFunctionPassManager.test_declarations—  s`   € Ø�WŠW�Q‰ZŒZˆØ×'Ò'Ñ)Ô)ˆÝÔ&¥Ñ7Ô7ÔAð 	ð 	ˆCØ�GŠG�C˜ÑÔÐÐð	ð 	r4   c                 ón  — |                       ¦   «         }|                     ¦   «          |                     ¦   «          |                     ¦   «          |                     ¦   «          |                     ¦   «          |                     ¦   «          |                     ¦   «          |                     ¦   «          | 	                    ¦   «          | 
                    ¦   «          |                     ¦   «          |                     ¦   «          | 	                    ¦   «          |                     ¦   «          |                     ¦   «          |                     ¦   «          |                     ¦   «          |                     ¦   «          |                     ¦   «          |                     ¦   «          |                     ¦   «          |                     ¦   «          |                     ¦   «          |                     ¦   «          |                     ¦   «          |                     ¦   «          |                     ¦   «          |                     ¦   «          |                     ¦   «          |                     ¦   «          |                     ¦   «          |                     ¦   «          |                      ¦   «          | !                    ¦   «          | "                    ¦   «          | #                    ¦   «          | $                    ¦   «          | %                    ¦   «          | &                    ¦   «          | '                    ¦   «          d S r)   )(r³  rö  r÷  rø  rË  rù  rú  rû  rü  rý  rþ  rÿ  r   r  r  r  r  r  r  r  r  r	  r
  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r"  s     r   r  z*TestNewFunctionPassManager.test_add_passes�  så  € Ø�gŠg‰iŒiˆØ×ÒÑÔÐØ×!Ò!Ñ#Ô#Ð#Ø× Ò Ñ"Ô"Ð"Ø×(Ò(Ñ*Ô*Ð*Ø×#Ò#Ñ%Ô%Ð%Ø× Ò Ñ"Ô"Ð"Ø×%Ò%Ñ'Ô'Ð'Ø× Ò Ñ"Ô"Ð"Ø×%Ò%Ñ'Ô'Ð'Ø×%Ò%Ñ'Ô'Ð'Ø×*Ò*Ñ,Ô,Ð,Ø×ÒÑ!Ô!Ð!Ø×%Ò%Ñ'Ô'Ð'Ø×$Ò$Ñ&Ô&Ð&Ø×)Ò)Ñ+Ô+Ð+Ø×#Ò#Ñ%Ô%Ð%Ø×)Ò)Ñ+Ô+Ð+Ø×+Ò+Ñ-Ô-Ð-Ø×*Ò*Ñ,Ô,Ð,Ø×+Ò+Ñ-Ô-Ð-Ø×ÒÑÔÐØ×ÒÑÔÐØ×"Ò"Ñ$Ô$Ð$Ø×(Ò(Ñ*Ô*Ð*Ø×ÒÑÔÐØ×!Ò!Ñ#Ô#Ð#Ø×!Ò!Ñ#Ô#Ð#Ø×!Ò!Ñ#Ô#Ð#Ø×!Ò!Ñ#Ô#Ð#Ø×.Ò.Ñ0Ô0Ð0Ø× Ò Ñ"Ô"Ð"Ø×'Ò'Ñ)Ô)Ð)Ø×ÒÑÔÐØ×ÒÑÔÐØ×*Ò*Ñ,Ô,Ð,Ø×&Ò&Ñ(Ô(Ð(Ø×"Ò"Ñ$Ô$Ð$Ø×)Ò)Ñ+Ô+Ð+Ø× Ò Ñ"Ô"Ð"Ø×ÒÑÔÐÐÐr4   N)rN   rO   rP   r³  rR  r¸  rÂ  rÇ  rÕ  rÍ  r+  r  rR   r4   r   r  r  \  s›   € € € € € ð7ð 7ð 7ðð ð ð'ð 'ð 'ð/ð /ð /ð
,ð ,ð ,ð
7ð 7ð 7ð&	/ð 	/ð 	/ðð ð ð) ð ) ð ) ð ) ð ) r4   r  rV   rW   c                   ó„  — e Zd Z eg d¢¦  «         eg d¢¦  «        dœ eg d¢¦  «         eg d¢¦  «        dœ eg d¢¦  «         eg d¢¦  «        d	œd
œZ eg d¢¦  «         eg d¢¦  «        dœ eg d¢¦  «         eg d¢¦  «        dœ eg d¢¦  «         eg d¢¦  «        d	œd
œZd„ Zed„ ¦   «         Ze	d„ ¦   «         Z
dS )Ú	TestBuild)	Úpthreadré  Údlr�   Úgcc_sr]  r)  ústdc++úld-linux-x86-64)r/  ré  r0  r�   r1  r]  r)  r2  )r   rÀ  )Úadvapi32Úkernel32ÚntdllÚmsvcp140Úvcruntime140Úvcruntime140_1úapi-ms-win-crt-convert-l1-1-0ú!api-ms-win-crt-environment-l1-1-0úapi-ms-win-crt-heap-l1-1-0úapi-ms-win-crt-locale-l1-1-0úapi-ms-win-crt-math-l1-1-0úapi-ms-win-crt-runtime-l1-1-0úapi-ms-win-crt-stdio-l1-1-0úapi-ms-win-crt-string-l1-1-0úapi-ms-win-crt-time-l1-1-0úapi-ms-win-crt-utility-l1-1-0Úshell32Úole32)r4  r5  r6  r7  r8  r:  r;  r<  r=  r>  r?  r@  rA  rB  rC  rD  rE  )Úamd64Úarm64)Úllvmliterä  ré  Úcorefoundationúc++)rH  rä  ré  rJ  )r   rG  )rU   r¶  Údarwin)r/  ré  Úzstdr0  r�   r1  r]  r3  )r/  ré  rL  r0  r�   r1  r]  zld-linux-aarch64)ré  rL  r4  r5  r6  r7  r8  r9  r:  r;  r<  r=  r>  r?  r@  rA  rB  rC  rD  rE  )ré  rL  r4  r5  r6  r7  r8  r:  r;  r<  r=  r>  r?  r@  rA  rB  rC  rD  rE  )rH  rä  ré  rL  rI  rJ  )rH  rä  ré  rL  rJ  c                 óÈ  — t          j        ¦   «                              ¦   «         }t          j        ¦   «                              ¦   «         }|dk    r| j        |         |         }n,|dk    r| j        |         |         }nt          d|› �¦  «        ‚t          |d         ¦  «        }d„ |D ¦   «         }	 |                      ||¦  «         d S # t          $ rŒ}dt          |¦  «        › dt          |¦  «        › dt                               ||¦  «        › d	t                               ||¦  «        › d
t                               ||¦  «        › d�}t          |¦  «        |‚d }~ww xY w)Nr   r   zUnexpected package type: Úcanonicalised_linked_librariesc                 ó@   — h | ]}|                      d ¦  «        rd n|’ŒS )r7  )r‚   )r{  rk   s     r   rp  z*TestBuild.check_linkage.<locals>.<setcomp>ˆ  s=   € ð 
ð 
ð 
àð Ÿ>š>¨*Ñ5Ô5Ð>ˆZˆZ¸3ð
ð 
ð 
r4   z:Unexpected linkage encountered for libllvmlite:
Expected: z
     Got: z

Difference: z
Only in Expected: z
Only in Got: ú
)r€   ÚmachineÚlowerrä  Úwheel_expectedÚconda_expectedr–  rw   r6   r7  r‚  Úsymmetric_differenceÚ
difference)	r2   ÚinfoÚpackage_typerQ  Úos_nameÚexpectedrA  r¢   rS  s	            r   Úcheck_linkagezTestBuild.check_linkage{  s¦  € ÝÔ"Ñ$Ô$×*Ò*Ñ,Ô,ˆÝ”/Ñ#Ô#×)Ò)Ñ+Ô+ˆà˜7Ò"Ð"ØÔ*¨7Ô3°GÔ<ˆHˆHØ˜WÒ$Ð$ØÔ*¨7Ô3°GÔ<ˆHˆHåÐG¸ÐGÐGÑHÔHÐHå�$Ð7Ô8Ñ9Ô9ˆð
ð 
àð
ñ 
ô 
ˆð
		-Ø×Ò˜X sÑ+Ô+Ð+Ð+Ð+øÝð 	-ð 	-ð 	-ðEÝ & xÑ 0Ô 0ðEð Eå & s¡¤ðEð Eõ #&×":Ò":¸8ÀSÑ"IÔ"IðEð Eõ ),¯ª°xÀÑ(EÔ(Eð	Eð Eõ
 $'§>¢>°#°xÑ#@Ô#@ðEð Eð EˆCõ ! Ñ%Ô%¨1Ð,øøøøð	-øøøs   Â3C Ã
E!ÃBEÅE!c                 óÞ   — t           j                             ¦   «         }|                      |d         d¦  «         |                      |d         d¦  «         |                      |d¦  «         d S )NÚllvm_linkage_typeÚstaticÚllvm_assertions_stateÚonr   )r*   ÚconfigÚget_sysinfor6   r[  ©r2   rW  s     r   Útest_wheel_buildzTestBuild.test_wheel_build˜  si   € åŒ{×&Ò&Ñ(Ô(ˆØ×Ò˜Ð1Ô2°HÑ=Ô=Ð=Ø×Ò˜Ð5Ô6¸Ñ=Ô=Ð=Ø×Ò˜4 Ñ)Ô)Ð)Ð)Ð)r4   c                 ól  — t           j                             ¦   «         }|                      |d         d¦  «         |                      |d         d¦  «         |                      |d¦  «         t          j        ¦   «                              ¦   «         dk    r|                      |d         d¦  «         d S d S )Nr]  r^  r_  r`  r   rU   Úlibstdcxx_linkage_type)r*   ra  rb  r6   r[  r€   rä  rR  rc  s     r   Útest_conda_buildzTestBuild.test_conda_buildŸ  s¬   € åŒ{×&Ò&Ñ(Ô(ˆØ×Ò˜Ð1Ô2°HÑ=Ô=Ð=Ø×Ò˜Ð5Ô6¸Ñ=Ô=Ð=à×Ò˜4 Ñ)Ô)Ð)ÝŒ?ÑÔ×"Ò"Ñ$Ô$¨Ò/Ð/Ø×Ò˜TÐ":Ô;¸XÑFÔFÐFÐFÐFð 0Ð/r4   N)rN   rO   rP   rw   rS  rT  r[  Úis_wheel_packagerd  Úis_conda_packagerg  rR   r4   r   r.  r.  É  sN  € € € € € ðB +.¨#ð /Cð /Cð /Cñ +Dô +Dð -0¨Cð 1<ð 1<ð 1<ñ -=ô -=ð "ð  "ð* ,/¨3ð 0:ð 0:ð 0:ñ ,;ô ,;ð$ ,/¨3ð 0:ð 0:ð 0:ñ ,;ô ,;ð%#"$ð #"$ðH ,/¨3ð 08ð 08ð 08ñ ,9ô ,9ð
 +.¨#ð /7ð /7ð /7ñ +8ô +8ð	!#ð 	!#ðsCð C€NðJ +.¨#ð /Cð /Cð /Cñ +Dô +Dð -0¨Cð 1Fð 1Fð 1Fñ -Gô -Gð "ð  "ð, ,/¨3ð 0:ð 0:ð 0:ñ ,;ô ,;ð( ,/¨3ð 0:ð 0:ð 0:ñ ,;ô ,;ð)'"$ð '"$ðP ,/¨3ð 08ð 08ð 08ñ ,9ô ,9ð +.¨#ð /7ð /7ð /7ñ +8ô +8ð!#ð !#ð}Jð J€NðX-ð -ð -ð: ð*ð *ñ Ôð*ð ðGð Gñ ÔðGð Gð Gr4   r.  Ú__main__)mrO  rc  r   r   r   Úctypes.utilr   r-   r   rm   r€   ru   rp   r”   r’   Ú
contextlibr   Útempfiler   rH  r	   r
   r*   Úllvmlite.bindingr   Úllvmlite.testsr   rQ  rß  r“   Úpackage_formatri  rh  Ú
_HAVE_LIEFÚliefÚImportErrorÚ
needs_liefr   rQ   r¥  rü  rÌ  r˜  rD  rR  r�   rÒ  rã   ra  rº  r:  r  r?  rì  Úasm_inlineasm2Úasm_inlineasm3Úlicm_asmr  rL  rî   r  rÐ   rÕ   rÚ   rß  rÑ  rØ  r*  rU  rW  Úasm_tli_exp2r  r‹  r�  r'   rT   r—   rÞ   rI  Úobjectr¼  r  r  Úskipr  r{  r  r’  rË  rØ  rÝ  ræ  rú  r  r  r‚   r;  rA  r[  ri  r‹  r�  r±  r  rn   r•   r.  rN   ÚmainrR   r4   r   ú<module>r|     sF	  ðØ €€€Ø Ð Ð Ð Ø ,Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,Ø $Ð $Ð $Ð $Ð $Ð $Ø 	€	€	€	Ø €€€Ø 	€	€	€	Ø €€€Ø 	€	€	€	Ø Ð Ð Ð Ø 
€
€
€
Ø €€€Ø %Ð %Ð %Ð %Ð %Ð %Ø Ð Ð Ð Ð Ð à Ð Ð Ð Ð Ð Ø $Ð $Ð $Ð $Ð $Ð $Ø  Ð  Ð  Ð  Ð  Ð  Ø #Ð #Ð #Ð #Ð #Ð #ð €8ÔÑÔ˜Ò!Ð!Ø!€DÔ! /Ñ2Ô2Ð2ð '�8Ô& tÔ':¸gÒ'Eð)AØ+/Ô+>ð)Að )AñCô CÐ ð '�8Ô& tÔ':¸gÒ'Eð)AØ+/Ô+>ð)Að )AñCô CÐ ð €
ð	Ø€K€K€KØ€J€JøØð 	ð 	ð 	Ø€Dð	øøøð !ˆXÔ  Ð-IÑJÔJ€
ð	-ð 	-ð 	-ð€ð&€ð
€ð€ð	€ð€ð
€ð "€8Ô!Ñ#Ô# vÒ-Ð-Ø#×+Ò+¨OÐ=NÑOÔO€Nð€ðÐ ð€ðÐ ðÐ ðÐ ð€ð€ð,B€ðH&€ðPÐ ð:€ð<	Ð ðÐ ðð ð €ð ð ð Ð ðð ð Ð ð€ðÐ ð&€ð*€ð0-ð ð( Eð ð€ð €ð(+€ðZ1€ðh5ð 5ð 5ð 5ð 5ˆxñ 5ô 5ð 5ðB/ð /ð /ð /ð /�xñ /ô /ð /ðdF+ð F+ð F+ð F+ð F+�8ñ F+ô F+ð F+ðRM'ð M'ð M'ð M'ð M'ˆxñ M'ô M'ð M'ð`@>ð @>ð @>ð @>ð @>�Hñ @>ô @>ð @>ðFv-ð v-ð v-ð v-ð v-�6ñ v-ô v-ð v-ðr4ð 4ð 4ð 4ð 4˜ñ 4ô 4ð 4ð4?ð ?ð ?ð ?ð ?�Ð,ñ ?ô ?ð ?ð$ €„Ð/Ñ0Ô0ð}!ð }!ð }!ð }!ð }!�8ñ }!ô }!ñ 1Ô0ð}!ð@{,ð {,ð {,ð {,ð {,�8ñ {,ô {,ð {,ð|	s
ð s
ð s
ð s
ð s
�(ñ s
ô s
ð s
ðl\.ð \.ð \.ð \.ð \.�ñ \.ô \.ð \.ð~Cð Cð Cð Cð C�Xñ Cô Cð Cð>	Eð 	Eð 	Eð 	Eð 	E˜ñ 	Eô 	Eð 	Eð
,ð 
,ð 
,ð 
,ð 
,�ñ 
,ô 
,ð 
,ð#1ð #1ð #1ð #1ð #1�8ñ #1ô #1ð #1ðL!#ð !#ð !#ð !#ð !#�hñ !#ô !#ð !#ðH1ð 1ð 1ð 1ð 1˜Yñ 1ô 1ð 1ð84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8ð 8ð 8ð 8ð 8˜Hñ 8ô 8ð 8ð:7!ð 7!ð 7!ð 7!ð 7! ñ 7!ô 7!ð 7!ðtð ð ð ð ˜&ñ ô ð ðMð Mð Mð Mð M�hÐ 3ñ Mô Mð Mð`V ð V ð V ð V ð V ˜xÐ)<ñ V ô V ð V ðrj ð j ð j ð j ð j  Ð+>ñ j ô j ð j ðZ €Ô�R”Z—^’^Ð$8Ñ9Ô9Ø1ñ3ô 3àð[Gð [Gð [Gð [Gð [G�ñ [Gô [Gñ „ñ3ô 3ð[Gð| ˆzÒÐØ€H„M�O„O€O€O€Oð Ðs   ÃC ÃCÃC