From ef3619350d717adc13905a6c2ca7286f7a2fbb1c Mon Sep 17 00:00:00 2001 From: visualfc Date: Tue, 25 Jun 2024 12:11:51 +0800 Subject: [PATCH] ssa: fix abiType & abiNamedOf --- cl/_testgo/errors/out.ll | 254 +- cl/_testgo/interface/out.ll | 658 +++-- cl/_testgo/invoke/out.ll | 681 ++--- cl/_testgo/reader/out.ll | 827 +++++- cl/_testgo/struczero/out.ll | 443 ++-- cl/_testrt/abinamed/in.go | 56 + cl/_testrt/abinamed/out.ll | 4992 +++++++++++++++++++++++++++++++++++ cl/_testrt/any/out.ll | 53 +- ssa/abitype.go | 32 +- ssa/package.go | 4 +- 10 files changed, 7115 insertions(+), 885 deletions(-) create mode 100644 cl/_testrt/abinamed/in.go create mode 100644 cl/_testrt/abinamed/out.ll diff --git a/cl/_testgo/errors/out.ll b/cl/_testgo/errors/out.ll index 983dc589..22a76ce9 100644 --- a/cl/_testgo/errors/out.ll +++ b/cl/_testgo/errors/out.ll @@ -4,19 +4,25 @@ source_filename = "main" %"github.com/goplus/llgo/internal/runtime.iface" = type { ptr, ptr } %"github.com/goplus/llgo/internal/runtime.String" = type { ptr, i64 } %main.errorString = type { %"github.com/goplus/llgo/internal/runtime.String" } +%"github.com/goplus/llgo/internal/abi.StructField" = type { %"github.com/goplus/llgo/internal/runtime.String", ptr, i64, %"github.com/goplus/llgo/internal/runtime.String", i1 } %"github.com/goplus/llgo/internal/runtime.Slice" = type { ptr, i64, i64 } +%"github.com/goplus/llgo/internal/abi.Method" = type { %"github.com/goplus/llgo/internal/runtime.String", ptr, ptr, ptr } %"github.com/goplus/llgo/internal/abi.Imethod" = type { %"github.com/goplus/llgo/internal/runtime.String", ptr } @"main.init$guard" = global i1 false, align 1 +@_llgo_main.errorString = global ptr null, align 8 +@"main.struct$QTufDJA9wEDzuzgkA-ZSrLqW-B6lWN8O25mTSglAoLQ" = global ptr null, align 8 +@_llgo_string = linkonce global ptr null, align 8 +@0 = private unnamed_addr constant [1 x i8] c"s", align 1 +@1 = private unnamed_addr constant [4 x i8] c"main", align 1 +@2 = private unnamed_addr constant [5 x i8] c"Error", align 1 +@"_llgo_func$zNDVRsWTIpUPKouNUS805RGX--IV9qVK8B31IZbg5to" = linkonce global ptr null, align 8 +@3 = private unnamed_addr constant [11 x i8] c"errorString", align 1 @"*_llgo_main.errorString" = global ptr null, align 8 @"_llgo_iface$Fh8eUJ-Gw4e6TYuajcFIOSCuqSPKAt5nS4ow7xeGXEU" = linkonce global ptr null, align 8 -@"_llgo_func$zNDVRsWTIpUPKouNUS805RGX--IV9qVK8B31IZbg5to" = linkonce global ptr null, align 8 -@_llgo_string = linkonce global ptr null, align 8 -@0 = private unnamed_addr constant [5 x i8] c"Error", align 1 -@1 = private unnamed_addr constant [4 x i8] c"main", align 1 @__llgo_argc = global i32 0, align 4 @__llgo_argv = global ptr null, align 8 -@2 = private unnamed_addr constant [8 x i8] c"an error", align 1 +@4 = private unnamed_addr constant [8 x i8] c"an error", align 1 define %"github.com/goplus/llgo/internal/runtime.iface" @main.New(%"github.com/goplus/llgo/internal/runtime.String" %0) { _llgo_0: @@ -64,7 +70,7 @@ _llgo_0: call void @main.init() %2 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 %3 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2, i32 0, i32 0 - store ptr @2, ptr %3, align 8 + store ptr @4, ptr %3, align 8 %4 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2, i32 0, i32 1 store i64 8, ptr %4, align 4 %5 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %2, align 8 @@ -94,108 +100,190 @@ declare ptr @"github.com/goplus/llgo/internal/runtime.AllocZ"(i64) define void @"main.init$after"() { _llgo_0: %0 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(i64 25, i64 0, i64 1) - %1 = call ptr @"github.com/goplus/llgo/internal/runtime.PointerTo"(ptr %0) - store ptr %1, ptr @"*_llgo_main.errorString", align 8 - %2 = load ptr, ptr @_llgo_string, align 8 - %3 = icmp eq ptr %2, null - br i1 %3, label %_llgo_1, label %_llgo_2 + store ptr %0, ptr @_llgo_main.errorString, align 8 + %1 = load ptr, ptr @_llgo_string, align 8 + %2 = icmp eq ptr %1, null + br i1 %2, label %_llgo_1, label %_llgo_2 _llgo_1: ; preds = %_llgo_0 - %4 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 24) - store ptr %4, ptr @_llgo_string, align 8 + %3 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 24) + store ptr %3, ptr @_llgo_string, align 8 br label %_llgo_2 _llgo_2: ; preds = %_llgo_1, %_llgo_0 - %5 = load ptr, ptr @_llgo_string, align 8 - %6 = load ptr, ptr @"_llgo_func$zNDVRsWTIpUPKouNUS805RGX--IV9qVK8B31IZbg5to", align 8 - %7 = icmp eq ptr %6, null - br i1 %7, label %_llgo_3, label %_llgo_4 + %4 = load ptr, ptr @_llgo_string, align 8 + %5 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %6 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %5, i32 0, i32 0 + store ptr @0, ptr %6, align 8 + %7 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %5, i32 0, i32 1 + store i64 1, ptr %7, align 4 + %8 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %5, align 8 + %9 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %10 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %9, i32 0, i32 0 + store ptr null, ptr %10, align 8 + %11 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %9, i32 0, i32 1 + store i64 0, ptr %11, align 4 + %12 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %9, align 8 + %13 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %8, ptr %4, i64 0, %"github.com/goplus/llgo/internal/runtime.String" %12, i1 false) + %14 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %15 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %14, i32 0, i32 0 + store ptr @1, ptr %15, align 8 + %16 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %14, i32 0, i32 1 + store i64 4, ptr %16, align 4 + %17 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %14, align 8 + %18 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 56) + %19 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %18, i64 0 + store %"github.com/goplus/llgo/internal/abi.StructField" %13, ptr %19, align 8 + %20 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %21 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %20, i32 0, i32 0 + store ptr %18, ptr %21, align 8 + %22 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %20, i32 0, i32 1 + store i64 1, ptr %22, align 4 + %23 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %20, i32 0, i32 2 + store i64 1, ptr %23, align 4 + %24 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %20, align 8 + %25 = call ptr @"github.com/goplus/llgo/internal/runtime.Struct"(%"github.com/goplus/llgo/internal/runtime.String" %17, i64 16, %"github.com/goplus/llgo/internal/runtime.Slice" %24) + store ptr %25, ptr @"main.struct$QTufDJA9wEDzuzgkA-ZSrLqW-B6lWN8O25mTSglAoLQ", align 8 + %26 = load ptr, ptr @"main.struct$QTufDJA9wEDzuzgkA-ZSrLqW-B6lWN8O25mTSglAoLQ", align 8 + %27 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %28 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %27, i32 0, i32 0 + store ptr @2, ptr %28, align 8 + %29 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %27, i32 0, i32 1 + store i64 5, ptr %29, align 4 + %30 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %27, align 8 + %31 = load ptr, ptr @_llgo_string, align 8 + %32 = load ptr, ptr @"_llgo_func$zNDVRsWTIpUPKouNUS805RGX--IV9qVK8B31IZbg5to", align 8 + %33 = icmp eq ptr %32, null + br i1 %33, label %_llgo_3, label %_llgo_4 _llgo_3: ; preds = %_llgo_2 - %8 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 0) - %9 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %10 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %9, i32 0, i32 0 - store ptr %8, ptr %10, align 8 - %11 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %9, i32 0, i32 1 - store i64 0, ptr %11, align 4 - %12 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %9, i32 0, i32 2 - store i64 0, ptr %12, align 4 - %13 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %9, align 8 - %14 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 8) - %15 = getelementptr ptr, ptr %14, i64 0 - store ptr %5, ptr %15, align 8 - %16 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %17 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %16, i32 0, i32 0 - store ptr %14, ptr %17, align 8 - %18 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %16, i32 0, i32 1 - store i64 1, ptr %18, align 4 - %19 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %16, i32 0, i32 2 - store i64 1, ptr %19, align 4 - %20 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %16, align 8 - %21 = call ptr @"github.com/goplus/llgo/internal/runtime.Func"(%"github.com/goplus/llgo/internal/runtime.Slice" %13, %"github.com/goplus/llgo/internal/runtime.Slice" %20, i1 false) - store ptr %21, ptr @"_llgo_func$zNDVRsWTIpUPKouNUS805RGX--IV9qVK8B31IZbg5to", align 8 + %34 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 0) + %35 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %36 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %35, i32 0, i32 0 + store ptr %34, ptr %36, align 8 + %37 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %35, i32 0, i32 1 + store i64 0, ptr %37, align 4 + %38 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %35, i32 0, i32 2 + store i64 0, ptr %38, align 4 + %39 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %35, align 8 + %40 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 8) + %41 = getelementptr ptr, ptr %40, i64 0 + store ptr %31, ptr %41, align 8 + %42 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %43 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %42, i32 0, i32 0 + store ptr %40, ptr %43, align 8 + %44 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %42, i32 0, i32 1 + store i64 1, ptr %44, align 4 + %45 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %42, i32 0, i32 2 + store i64 1, ptr %45, align 4 + %46 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %42, align 8 + %47 = call ptr @"github.com/goplus/llgo/internal/runtime.Func"(%"github.com/goplus/llgo/internal/runtime.Slice" %39, %"github.com/goplus/llgo/internal/runtime.Slice" %46, i1 false) + store ptr %47, ptr @"_llgo_func$zNDVRsWTIpUPKouNUS805RGX--IV9qVK8B31IZbg5to", align 8 br label %_llgo_4 _llgo_4: ; preds = %_llgo_3, %_llgo_2 - %22 = load ptr, ptr @"_llgo_func$zNDVRsWTIpUPKouNUS805RGX--IV9qVK8B31IZbg5to", align 8 - %23 = load ptr, ptr @"_llgo_iface$Fh8eUJ-Gw4e6TYuajcFIOSCuqSPKAt5nS4ow7xeGXEU", align 8 - %24 = icmp eq ptr %23, null - br i1 %24, label %_llgo_5, label %_llgo_6 + %48 = load ptr, ptr @"_llgo_func$zNDVRsWTIpUPKouNUS805RGX--IV9qVK8B31IZbg5to", align 8 + %49 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %50 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %49, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %30, ptr %50, align 8 + %51 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %49, i32 0, i32 1 + store ptr %48, ptr %51, align 8 + %52 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %49, i32 0, i32 2 + store ptr @"main.(*errorString).Error", ptr %52, align 8 + %53 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %49, i32 0, i32 3 + store ptr @"main.(*errorString).Error", ptr %53, align 8 + %54 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %49, align 8 + %55 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 40) + %56 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %55, i64 0 + store %"github.com/goplus/llgo/internal/abi.Method" %54, ptr %56, align 8 + %57 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %58 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %57, i32 0, i32 0 + store ptr %55, ptr %58, align 8 + %59 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %57, i32 0, i32 1 + store i64 1, ptr %59, align 4 + %60 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %57, i32 0, i32 2 + store i64 1, ptr %60, align 4 + %61 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %57, align 8 + %62 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %63 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %62, i32 0, i32 0 + store ptr @1, ptr %63, align 8 + %64 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %62, i32 0, i32 1 + store i64 4, ptr %64, align 4 + %65 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %62, align 8 + %66 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %67 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %66, i32 0, i32 0 + store ptr @3, ptr %67, align 8 + %68 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %66, i32 0, i32 1 + store i64 11, ptr %68, align 4 + %69 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %66, align 8 + call void @"github.com/goplus/llgo/internal/runtime.InitNamed"(ptr %0, %"github.com/goplus/llgo/internal/runtime.String" %65, %"github.com/goplus/llgo/internal/runtime.String" %69, ptr %26, { ptr, i64, i64 } zeroinitializer, %"github.com/goplus/llgo/internal/runtime.Slice" %61) + %70 = call ptr @"github.com/goplus/llgo/internal/runtime.PointerTo"(ptr %0) + store ptr %70, ptr @"*_llgo_main.errorString", align 8 + %71 = load ptr, ptr @"_llgo_func$zNDVRsWTIpUPKouNUS805RGX--IV9qVK8B31IZbg5to", align 8 + %72 = load ptr, ptr @"_llgo_iface$Fh8eUJ-Gw4e6TYuajcFIOSCuqSPKAt5nS4ow7xeGXEU", align 8 + %73 = icmp eq ptr %72, null + br i1 %73, label %_llgo_5, label %_llgo_6 _llgo_5: ; preds = %_llgo_4 - %25 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %26 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %25, i32 0, i32 0 - store ptr @0, ptr %26, align 8 - %27 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %25, i32 0, i32 1 - store i64 5, ptr %27, align 4 - %28 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %25, align 8 - %29 = alloca %"github.com/goplus/llgo/internal/abi.Imethod", align 8 - %30 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Imethod", ptr %29, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %28, ptr %30, align 8 - %31 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Imethod", ptr %29, i32 0, i32 1 - store ptr %22, ptr %31, align 8 - %32 = load %"github.com/goplus/llgo/internal/abi.Imethod", ptr %29, align 8 - %33 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 24) - %34 = getelementptr %"github.com/goplus/llgo/internal/abi.Imethod", ptr %33, i64 0 - store %"github.com/goplus/llgo/internal/abi.Imethod" %32, ptr %34, align 8 - %35 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %36 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %35, i32 0, i32 0 - store ptr %33, ptr %36, align 8 - %37 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %35, i32 0, i32 1 - store i64 1, ptr %37, align 4 - %38 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %35, i32 0, i32 2 - store i64 1, ptr %38, align 4 - %39 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %35, align 8 - %40 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %41 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %40, i32 0, i32 0 - store ptr @1, ptr %41, align 8 - %42 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %40, i32 0, i32 1 - store i64 4, ptr %42, align 4 - %43 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %40, align 8 - %44 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %45 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %44, i32 0, i32 0 - store ptr null, ptr %45, align 8 - %46 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %44, i32 0, i32 1 - store i64 0, ptr %46, align 4 - %47 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %44, align 8 - %48 = call ptr @"github.com/goplus/llgo/internal/runtime.Interface"(%"github.com/goplus/llgo/internal/runtime.String" %43, %"github.com/goplus/llgo/internal/runtime.String" %47, %"github.com/goplus/llgo/internal/runtime.Slice" %39) - store ptr %48, ptr @"_llgo_iface$Fh8eUJ-Gw4e6TYuajcFIOSCuqSPKAt5nS4ow7xeGXEU", align 8 + %74 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %75 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %74, i32 0, i32 0 + store ptr @2, ptr %75, align 8 + %76 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %74, i32 0, i32 1 + store i64 5, ptr %76, align 4 + %77 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %74, align 8 + %78 = alloca %"github.com/goplus/llgo/internal/abi.Imethod", align 8 + %79 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Imethod", ptr %78, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %77, ptr %79, align 8 + %80 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Imethod", ptr %78, i32 0, i32 1 + store ptr %71, ptr %80, align 8 + %81 = load %"github.com/goplus/llgo/internal/abi.Imethod", ptr %78, align 8 + %82 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 24) + %83 = getelementptr %"github.com/goplus/llgo/internal/abi.Imethod", ptr %82, i64 0 + store %"github.com/goplus/llgo/internal/abi.Imethod" %81, ptr %83, align 8 + %84 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %85 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %84, i32 0, i32 0 + store ptr %82, ptr %85, align 8 + %86 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %84, i32 0, i32 1 + store i64 1, ptr %86, align 4 + %87 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %84, i32 0, i32 2 + store i64 1, ptr %87, align 4 + %88 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %84, align 8 + %89 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %90 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %89, i32 0, i32 0 + store ptr @1, ptr %90, align 8 + %91 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %89, i32 0, i32 1 + store i64 4, ptr %91, align 4 + %92 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %89, align 8 + %93 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %94 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %93, i32 0, i32 0 + store ptr null, ptr %94, align 8 + %95 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %93, i32 0, i32 1 + store i64 0, ptr %95, align 4 + %96 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %93, align 8 + %97 = call ptr @"github.com/goplus/llgo/internal/runtime.Interface"(%"github.com/goplus/llgo/internal/runtime.String" %92, %"github.com/goplus/llgo/internal/runtime.String" %96, %"github.com/goplus/llgo/internal/runtime.Slice" %88) + store ptr %97, ptr @"_llgo_iface$Fh8eUJ-Gw4e6TYuajcFIOSCuqSPKAt5nS4ow7xeGXEU", align 8 br label %_llgo_6 _llgo_6: ; preds = %_llgo_5, %_llgo_4 ret void } -declare ptr @"github.com/goplus/llgo/internal/runtime.PointerTo"(ptr) - declare ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(i64, i64, i64) declare ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64) -declare ptr @"github.com/goplus/llgo/internal/runtime.Func"(%"github.com/goplus/llgo/internal/runtime.Slice", %"github.com/goplus/llgo/internal/runtime.Slice", i1) +declare ptr @"github.com/goplus/llgo/internal/runtime.Struct"(%"github.com/goplus/llgo/internal/runtime.String", i64, %"github.com/goplus/llgo/internal/runtime.Slice") + +declare %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String", ptr, i64, %"github.com/goplus/llgo/internal/runtime.String", i1) declare ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64) +declare void @"github.com/goplus/llgo/internal/runtime.InitNamed"(ptr, %"github.com/goplus/llgo/internal/runtime.String", %"github.com/goplus/llgo/internal/runtime.String", ptr, %"github.com/goplus/llgo/internal/runtime.Slice", %"github.com/goplus/llgo/internal/runtime.Slice") + +declare ptr @"github.com/goplus/llgo/internal/runtime.Func"(%"github.com/goplus/llgo/internal/runtime.Slice", %"github.com/goplus/llgo/internal/runtime.Slice", i1) + +declare ptr @"github.com/goplus/llgo/internal/runtime.PointerTo"(ptr) + declare ptr @"github.com/goplus/llgo/internal/runtime.Interface"(%"github.com/goplus/llgo/internal/runtime.String", %"github.com/goplus/llgo/internal/runtime.String", %"github.com/goplus/llgo/internal/runtime.Slice") declare ptr @"github.com/goplus/llgo/internal/runtime.NewItab"(ptr, ptr) diff --git a/cl/_testgo/interface/out.ll b/cl/_testgo/interface/out.ll index 2a13548f..9a0f360b 100644 --- a/cl/_testgo/interface/out.ll +++ b/cl/_testgo/interface/out.ll @@ -6,23 +6,36 @@ source_filename = "main" %"github.com/goplus/llgo/internal/runtime.iface" = type { ptr, ptr } %"github.com/goplus/llgo/internal/runtime.String" = type { ptr, i64 } %"github.com/goplus/llgo/internal/runtime.Slice" = type { ptr, i64, i64 } +%"github.com/goplus/llgo/internal/abi.Method" = type { %"github.com/goplus/llgo/internal/runtime.String", ptr, ptr, ptr } +%"github.com/goplus/llgo/internal/abi.StructField" = type { %"github.com/goplus/llgo/internal/runtime.String", ptr, i64, %"github.com/goplus/llgo/internal/runtime.String", i1 } %"github.com/goplus/llgo/internal/abi.Imethod" = type { %"github.com/goplus/llgo/internal/runtime.String", ptr } @"main.init$guard" = global i1 false, align 1 @__llgo_argc = global i32 0, align 4 @__llgo_argv = global ptr null, align 8 +@_llgo_main.Game1 = linkonce global ptr null, align 8 +@"_llgo_struct$cJmCzeVn0orHWafCrTGAnbbAF46F2A4Fms4bJBm8ITI" = linkonce global ptr null, align 8 +@"_llgo_github.com/goplus/llgo/cl/internal/foo.Game" = linkonce global ptr null, align 8 +@"_llgo_struct$n1H8J_3prDN3firMwPxBLVTkE5hJ9Di-AqNvaC9jczw" = linkonce global ptr null, align 8 +@0 = private unnamed_addr constant [4 x i8] c"main", align 1 +@1 = private unnamed_addr constant [4 x i8] c"Load", align 1 +@"_llgo_func$2_iS07vIlF2_rZqWB5eU0IvP_9HviM4MYZNkXZDvbac" = linkonce global ptr null, align 8 +@2 = private unnamed_addr constant [8 x i8] c"initGame", align 1 +@3 = private unnamed_addr constant [47 x i8] c"github.com/goplus/llgo/cl/internal/foo.initGame", align 1 +@4 = private unnamed_addr constant [38 x i8] c"github.com/goplus/llgo/cl/internal/foo", align 1 +@5 = private unnamed_addr constant [4 x i8] c"Game", align 1 +@"*_llgo_github.com/goplus/llgo/cl/internal/foo.Game" = linkonce global ptr null, align 8 +@6 = private unnamed_addr constant [5 x i8] c"Game1", align 1 @"*_llgo_main.Game1" = linkonce global ptr null, align 8 +@_llgo_main.Game2 = linkonce global ptr null, align 8 +@7 = private unnamed_addr constant [13 x i8] c"main.initGame", align 1 +@8 = private unnamed_addr constant [5 x i8] c"Game2", align 1 @"*_llgo_main.Game2" = linkonce global ptr null, align 8 @"_llgo_github.com/goplus/llgo/cl/internal/foo.Gamer" = linkonce global ptr null, align 8 -@"_llgo_func$2_iS07vIlF2_rZqWB5eU0IvP_9HviM4MYZNkXZDvbac" = linkonce global ptr null, align 8 -@0 = private unnamed_addr constant [4 x i8] c"Load", align 1 -@1 = private unnamed_addr constant [47 x i8] c"github.com/goplus/llgo/cl/internal/foo.initGame", align 1 -@2 = private unnamed_addr constant [38 x i8] c"github.com/goplus/llgo/cl/internal/foo", align 1 -@3 = private unnamed_addr constant [44 x i8] c"github.com/goplus/llgo/cl/internal/foo.Gamer", align 1 +@9 = private unnamed_addr constant [44 x i8] c"github.com/goplus/llgo/cl/internal/foo.Gamer", align 1 @"main.iface$sO8a1LvuUsjXwiwaC6sR9-L4DiYgiOnZi7iosyShJXg" = global ptr null, align 8 -@4 = private unnamed_addr constant [4 x i8] c"main", align 1 -@5 = private unnamed_addr constant [2 x i8] c"OK", align 1 -@6 = private unnamed_addr constant [4 x i8] c"FAIL", align 1 +@10 = private unnamed_addr constant [2 x i8] c"OK", align 1 +@11 = private unnamed_addr constant [4 x i8] c"FAIL", align 1 define void @main.Game1.Load(%main.Game1 %0) { _llgo_0: @@ -167,7 +180,7 @@ _llgo_5: ; preds = %_llgo_4, %_llgo_3 %49 = extractvalue { %"github.com/goplus/llgo/internal/runtime.iface", i1 } %47, 1 %50 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 %51 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %50, i32 0, i32 0 - store ptr @5, ptr %51, align 8 + store ptr @10, ptr %51, align 8 %52 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %50, i32 0, i32 1 store i64 2, ptr %52, align 4 %53 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %50, align 8 @@ -212,7 +225,7 @@ _llgo_8: ; preds = %_llgo_7, %_llgo_6 %71 = extractvalue { %"github.com/goplus/llgo/internal/runtime.iface", i1 } %69, 1 %72 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 %73 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %72, i32 0, i32 0 - store ptr @6, ptr %73, align 8 + store ptr @11, ptr %73, align 8 %74 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %72, i32 0, i32 1 store i64 4, ptr %74, align 4 %75 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %72, align 8 @@ -239,180 +252,515 @@ declare ptr @"github.com/goplus/llgo/internal/runtime.AllocZ"(i64) define void @"main.init$after"() { _llgo_0: - %0 = load ptr, ptr @"*_llgo_main.Game1", align 8 + %0 = load ptr, ptr @_llgo_main.Game1, align 8 %1 = icmp eq ptr %0, null br i1 %1, label %_llgo_1, label %_llgo_2 _llgo_1: ; preds = %_llgo_0 %2 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(i64 25, i64 2, i64 2) - %3 = call ptr @"github.com/goplus/llgo/internal/runtime.PointerTo"(ptr %2) - store ptr %3, ptr @"*_llgo_main.Game1", align 8 + call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %2) + store ptr %2, ptr @_llgo_main.Game1, align 8 br label %_llgo_2 _llgo_2: ; preds = %_llgo_1, %_llgo_0 - %4 = load ptr, ptr @"*_llgo_main.Game2", align 8 - %5 = icmp eq ptr %4, null - br i1 %5, label %_llgo_3, label %_llgo_4 + %3 = load ptr, ptr @"_llgo_github.com/goplus/llgo/cl/internal/foo.Game", align 8 + %4 = icmp eq ptr %3, null + br i1 %4, label %_llgo_3, label %_llgo_4 _llgo_3: ; preds = %_llgo_2 - %6 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(i64 25, i64 0, i64 1) - %7 = call ptr @"github.com/goplus/llgo/internal/runtime.PointerTo"(ptr %6) - store ptr %7, ptr @"*_llgo_main.Game2", align 8 + %5 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(i64 25, i64 0, i64 2) + store ptr %5, ptr @"_llgo_github.com/goplus/llgo/cl/internal/foo.Game", align 8 br label %_llgo_4 _llgo_4: ; preds = %_llgo_3, %_llgo_2 - %8 = load ptr, ptr @"_llgo_func$2_iS07vIlF2_rZqWB5eU0IvP_9HviM4MYZNkXZDvbac", align 8 - %9 = icmp eq ptr %8, null - br i1 %9, label %_llgo_5, label %_llgo_6 + %6 = load ptr, ptr @"_llgo_struct$n1H8J_3prDN3firMwPxBLVTkE5hJ9Di-AqNvaC9jczw", align 8 + %7 = icmp eq ptr %6, null + br i1 %7, label %_llgo_5, label %_llgo_6 _llgo_5: ; preds = %_llgo_4 - %10 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 0) - %11 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %12 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %11, i32 0, i32 0 - store ptr %10, ptr %12, align 8 - %13 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %11, i32 0, i32 1 - store i64 0, ptr %13, align 4 - %14 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %11, i32 0, i32 2 - store i64 0, ptr %14, align 4 - %15 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %11, align 8 - %16 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 0) - %17 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %18 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %17, i32 0, i32 0 - store ptr %16, ptr %18, align 8 - %19 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %17, i32 0, i32 1 - store i64 0, ptr %19, align 4 - %20 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %17, i32 0, i32 2 - store i64 0, ptr %20, align 4 - %21 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %17, align 8 - %22 = call ptr @"github.com/goplus/llgo/internal/runtime.Func"(%"github.com/goplus/llgo/internal/runtime.Slice" %15, %"github.com/goplus/llgo/internal/runtime.Slice" %21, i1 false) - store ptr %22, ptr @"_llgo_func$2_iS07vIlF2_rZqWB5eU0IvP_9HviM4MYZNkXZDvbac", align 8 + %8 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %9 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %8, i32 0, i32 0 + store ptr @0, ptr %9, align 8 + %10 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %8, i32 0, i32 1 + store i64 4, ptr %10, align 4 + %11 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %8, align 8 + %12 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 0) + %13 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %14 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %13, i32 0, i32 0 + store ptr %12, ptr %14, align 8 + %15 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %13, i32 0, i32 1 + store i64 0, ptr %15, align 4 + %16 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %13, i32 0, i32 2 + store i64 0, ptr %16, align 4 + %17 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %13, align 8 + %18 = call ptr @"github.com/goplus/llgo/internal/runtime.Struct"(%"github.com/goplus/llgo/internal/runtime.String" %11, i64 0, %"github.com/goplus/llgo/internal/runtime.Slice" %17) + store ptr %18, ptr @"_llgo_struct$n1H8J_3prDN3firMwPxBLVTkE5hJ9Di-AqNvaC9jczw", align 8 br label %_llgo_6 _llgo_6: ; preds = %_llgo_5, %_llgo_4 - %23 = load ptr, ptr @"_llgo_func$2_iS07vIlF2_rZqWB5eU0IvP_9HviM4MYZNkXZDvbac", align 8 - %24 = load ptr, ptr @"_llgo_func$2_iS07vIlF2_rZqWB5eU0IvP_9HviM4MYZNkXZDvbac", align 8 - %25 = load ptr, ptr @"_llgo_github.com/goplus/llgo/cl/internal/foo.Gamer", align 8 - %26 = icmp eq ptr %25, null - br i1 %26, label %_llgo_7, label %_llgo_8 + %19 = load ptr, ptr @"_llgo_struct$n1H8J_3prDN3firMwPxBLVTkE5hJ9Di-AqNvaC9jczw", align 8 + br i1 %4, label %_llgo_7, label %_llgo_8 _llgo_7: ; preds = %_llgo_6 - %27 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %28 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %27, i32 0, i32 0 - store ptr @0, ptr %28, align 8 - %29 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %27, i32 0, i32 1 - store i64 4, ptr %29, align 4 - %30 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %27, align 8 - %31 = alloca %"github.com/goplus/llgo/internal/abi.Imethod", align 8 - %32 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Imethod", ptr %31, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %30, ptr %32, align 8 - %33 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Imethod", ptr %31, i32 0, i32 1 - store ptr %23, ptr %33, align 8 - %34 = load %"github.com/goplus/llgo/internal/abi.Imethod", ptr %31, align 8 - %35 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %36 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %35, i32 0, i32 0 - store ptr @1, ptr %36, align 8 - %37 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %35, i32 0, i32 1 - store i64 47, ptr %37, align 4 - %38 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %35, align 8 - %39 = alloca %"github.com/goplus/llgo/internal/abi.Imethod", align 8 - %40 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Imethod", ptr %39, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %38, ptr %40, align 8 - %41 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Imethod", ptr %39, i32 0, i32 1 - store ptr %24, ptr %41, align 8 - %42 = load %"github.com/goplus/llgo/internal/abi.Imethod", ptr %39, align 8 - %43 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 48) - %44 = getelementptr %"github.com/goplus/llgo/internal/abi.Imethod", ptr %43, i64 0 - store %"github.com/goplus/llgo/internal/abi.Imethod" %34, ptr %44, align 8 - %45 = getelementptr %"github.com/goplus/llgo/internal/abi.Imethod", ptr %43, i64 1 - store %"github.com/goplus/llgo/internal/abi.Imethod" %42, ptr %45, align 8 - %46 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %47 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %46, i32 0, i32 0 - store ptr %43, ptr %47, align 8 - %48 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %46, i32 0, i32 1 - store i64 2, ptr %48, align 4 - %49 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %46, i32 0, i32 2 - store i64 2, ptr %49, align 4 - %50 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %46, align 8 - %51 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %52 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %51, i32 0, i32 0 - store ptr @2, ptr %52, align 8 - %53 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %51, i32 0, i32 1 - store i64 38, ptr %53, align 4 - %54 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %51, align 8 - %55 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %56 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %55, i32 0, i32 0 - store ptr @3, ptr %56, align 8 - %57 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %55, i32 0, i32 1 - store i64 44, ptr %57, align 4 - %58 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %55, align 8 - %59 = call ptr @"github.com/goplus/llgo/internal/runtime.Interface"(%"github.com/goplus/llgo/internal/runtime.String" %54, %"github.com/goplus/llgo/internal/runtime.String" %58, %"github.com/goplus/llgo/internal/runtime.Slice" %50) - store ptr %59, ptr @"_llgo_github.com/goplus/llgo/cl/internal/foo.Gamer", align 8 + %20 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %21 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %20, i32 0, i32 0 + store ptr @1, ptr %21, align 8 + %22 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %20, i32 0, i32 1 + store i64 4, ptr %22, align 4 + %23 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %20, align 8 + %24 = load ptr, ptr @"_llgo_func$2_iS07vIlF2_rZqWB5eU0IvP_9HviM4MYZNkXZDvbac", align 8 + %25 = icmp eq ptr %24, null + br i1 %25, label %_llgo_9, label %_llgo_10 + +_llgo_8: ; preds = %_llgo_10, %_llgo_6 + %26 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/cl/internal/foo.Game", align 8 + %27 = icmp eq ptr %26, null + br i1 %27, label %_llgo_11, label %_llgo_12 + +_llgo_9: ; preds = %_llgo_7 + %28 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 0) + %29 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %30 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %29, i32 0, i32 0 + store ptr %28, ptr %30, align 8 + %31 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %29, i32 0, i32 1 + store i64 0, ptr %31, align 4 + %32 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %29, i32 0, i32 2 + store i64 0, ptr %32, align 4 + %33 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %29, align 8 + %34 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 0) + %35 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %36 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %35, i32 0, i32 0 + store ptr %34, ptr %36, align 8 + %37 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %35, i32 0, i32 1 + store i64 0, ptr %37, align 4 + %38 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %35, i32 0, i32 2 + store i64 0, ptr %38, align 4 + %39 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %35, align 8 + %40 = call ptr @"github.com/goplus/llgo/internal/runtime.Func"(%"github.com/goplus/llgo/internal/runtime.Slice" %33, %"github.com/goplus/llgo/internal/runtime.Slice" %39, i1 false) + store ptr %40, ptr @"_llgo_func$2_iS07vIlF2_rZqWB5eU0IvP_9HviM4MYZNkXZDvbac", align 8 + br label %_llgo_10 + +_llgo_10: ; preds = %_llgo_9, %_llgo_7 + %41 = load ptr, ptr @"_llgo_func$2_iS07vIlF2_rZqWB5eU0IvP_9HviM4MYZNkXZDvbac", align 8 + %42 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %43 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %42, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %23, ptr %43, align 8 + %44 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %42, i32 0, i32 1 + store ptr %41, ptr %44, align 8 + %45 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %42, i32 0, i32 2 + store ptr @"github.com/goplus/llgo/cl/internal/foo.(*Game).Load", ptr %45, align 8 + %46 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %42, i32 0, i32 3 + store ptr @"github.com/goplus/llgo/cl/internal/foo.(*Game).Load", ptr %46, align 8 + %47 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %42, align 8 + %48 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %49 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %48, i32 0, i32 0 + store ptr @2, ptr %49, align 8 + %50 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %48, i32 0, i32 1 + store i64 8, ptr %50, align 4 + %51 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %48, align 8 + %52 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %53 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %52, i32 0, i32 0 + store ptr @3, ptr %53, align 8 + %54 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %52, i32 0, i32 1 + store i64 47, ptr %54, align 4 + %55 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %52, align 8 + %56 = load ptr, ptr @"_llgo_func$2_iS07vIlF2_rZqWB5eU0IvP_9HviM4MYZNkXZDvbac", align 8 + %57 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %58 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %57, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %55, ptr %58, align 8 + %59 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %57, i32 0, i32 1 + store ptr %56, ptr %59, align 8 + %60 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %57, i32 0, i32 2 + store ptr @"github.com/goplus/llgo/cl/internal/foo.(*Game).initGame", ptr %60, align 8 + %61 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %57, i32 0, i32 3 + store ptr @"github.com/goplus/llgo/cl/internal/foo.(*Game).initGame", ptr %61, align 8 + %62 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %57, align 8 + %63 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 80) + %64 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %63, i64 0 + store %"github.com/goplus/llgo/internal/abi.Method" %47, ptr %64, align 8 + %65 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %63, i64 1 + store %"github.com/goplus/llgo/internal/abi.Method" %62, ptr %65, align 8 + %66 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %67 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %66, i32 0, i32 0 + store ptr %63, ptr %67, align 8 + %68 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %66, i32 0, i32 1 + store i64 2, ptr %68, align 4 + %69 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %66, i32 0, i32 2 + store i64 2, ptr %69, align 4 + %70 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %66, align 8 + %71 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %72 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %71, i32 0, i32 0 + store ptr @4, ptr %72, align 8 + %73 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %71, i32 0, i32 1 + store i64 38, ptr %73, align 4 + %74 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %71, align 8 + %75 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %76 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %75, i32 0, i32 0 + store ptr @5, ptr %76, align 8 + %77 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %75, i32 0, i32 1 + store i64 4, ptr %77, align 4 + %78 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %75, align 8 + call void @"github.com/goplus/llgo/internal/runtime.InitNamed"(ptr %5, %"github.com/goplus/llgo/internal/runtime.String" %74, %"github.com/goplus/llgo/internal/runtime.String" %78, ptr %19, { ptr, i64, i64 } zeroinitializer, %"github.com/goplus/llgo/internal/runtime.Slice" %70) br label %_llgo_8 -_llgo_8: ; preds = %_llgo_7, %_llgo_6 - %60 = load ptr, ptr @"_llgo_func$2_iS07vIlF2_rZqWB5eU0IvP_9HviM4MYZNkXZDvbac", align 8 - %61 = load ptr, ptr @"_llgo_func$2_iS07vIlF2_rZqWB5eU0IvP_9HviM4MYZNkXZDvbac", align 8 - %62 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %63 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %62, i32 0, i32 0 - store ptr @0, ptr %63, align 8 - %64 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %62, i32 0, i32 1 - store i64 4, ptr %64, align 4 - %65 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %62, align 8 - %66 = alloca %"github.com/goplus/llgo/internal/abi.Imethod", align 8 - %67 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Imethod", ptr %66, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %65, ptr %67, align 8 - %68 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Imethod", ptr %66, i32 0, i32 1 - store ptr %60, ptr %68, align 8 - %69 = load %"github.com/goplus/llgo/internal/abi.Imethod", ptr %66, align 8 - %70 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %71 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %70, i32 0, i32 0 - store ptr @1, ptr %71, align 8 - %72 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %70, i32 0, i32 1 - store i64 47, ptr %72, align 4 - %73 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %70, align 8 - %74 = alloca %"github.com/goplus/llgo/internal/abi.Imethod", align 8 - %75 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Imethod", ptr %74, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %73, ptr %75, align 8 - %76 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Imethod", ptr %74, i32 0, i32 1 - store ptr %61, ptr %76, align 8 - %77 = load %"github.com/goplus/llgo/internal/abi.Imethod", ptr %74, align 8 - %78 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 48) - %79 = getelementptr %"github.com/goplus/llgo/internal/abi.Imethod", ptr %78, i64 0 - store %"github.com/goplus/llgo/internal/abi.Imethod" %69, ptr %79, align 8 - %80 = getelementptr %"github.com/goplus/llgo/internal/abi.Imethod", ptr %78, i64 1 - store %"github.com/goplus/llgo/internal/abi.Imethod" %77, ptr %80, align 8 - %81 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %82 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %81, i32 0, i32 0 - store ptr %78, ptr %82, align 8 - %83 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %81, i32 0, i32 1 - store i64 2, ptr %83, align 4 - %84 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %81, i32 0, i32 2 - store i64 2, ptr %84, align 4 - %85 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %81, align 8 - %86 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %87 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %86, i32 0, i32 0 - store ptr @4, ptr %87, align 8 - %88 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %86, i32 0, i32 1 - store i64 4, ptr %88, align 4 - %89 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %86, align 8 - %90 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %91 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %90, i32 0, i32 0 - store ptr null, ptr %91, align 8 - %92 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %90, i32 0, i32 1 - store i64 0, ptr %92, align 4 - %93 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %90, align 8 - %94 = call ptr @"github.com/goplus/llgo/internal/runtime.Interface"(%"github.com/goplus/llgo/internal/runtime.String" %89, %"github.com/goplus/llgo/internal/runtime.String" %93, %"github.com/goplus/llgo/internal/runtime.Slice" %85) - store ptr %94, ptr @"main.iface$sO8a1LvuUsjXwiwaC6sR9-L4DiYgiOnZi7iosyShJXg", align 8 +_llgo_11: ; preds = %_llgo_8 + %79 = call ptr @"github.com/goplus/llgo/internal/runtime.PointerTo"(ptr %5) + store ptr %79, ptr @"*_llgo_github.com/goplus/llgo/cl/internal/foo.Game", align 8 + br label %_llgo_12 + +_llgo_12: ; preds = %_llgo_11, %_llgo_8 + %80 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/cl/internal/foo.Game", align 8 + %81 = load ptr, ptr @"_llgo_struct$cJmCzeVn0orHWafCrTGAnbbAF46F2A4Fms4bJBm8ITI", align 8 + %82 = icmp eq ptr %81, null + br i1 %82, label %_llgo_13, label %_llgo_14 + +_llgo_13: ; preds = %_llgo_12 + %83 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %84 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %83, i32 0, i32 0 + store ptr @5, ptr %84, align 8 + %85 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %83, i32 0, i32 1 + store i64 4, ptr %85, align 4 + %86 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %83, align 8 + %87 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %88 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %87, i32 0, i32 0 + store ptr null, ptr %88, align 8 + %89 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %87, i32 0, i32 1 + store i64 0, ptr %89, align 4 + %90 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %87, align 8 + %91 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %86, ptr %80, i64 0, %"github.com/goplus/llgo/internal/runtime.String" %90, i1 true) + %92 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %93 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %92, i32 0, i32 0 + store ptr @0, ptr %93, align 8 + %94 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %92, i32 0, i32 1 + store i64 4, ptr %94, align 4 + %95 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %92, align 8 + %96 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 56) + %97 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %96, i64 0 + store %"github.com/goplus/llgo/internal/abi.StructField" %91, ptr %97, align 8 + %98 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %99 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %98, i32 0, i32 0 + store ptr %96, ptr %99, align 8 + %100 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %98, i32 0, i32 1 + store i64 1, ptr %100, align 4 + %101 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %98, i32 0, i32 2 + store i64 1, ptr %101, align 4 + %102 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %98, align 8 + %103 = call ptr @"github.com/goplus/llgo/internal/runtime.Struct"(%"github.com/goplus/llgo/internal/runtime.String" %95, i64 8, %"github.com/goplus/llgo/internal/runtime.Slice" %102) + call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %103) + store ptr %103, ptr @"_llgo_struct$cJmCzeVn0orHWafCrTGAnbbAF46F2A4Fms4bJBm8ITI", align 8 + br label %_llgo_14 + +_llgo_14: ; preds = %_llgo_13, %_llgo_12 + %104 = load ptr, ptr @"_llgo_struct$cJmCzeVn0orHWafCrTGAnbbAF46F2A4Fms4bJBm8ITI", align 8 + br i1 %1, label %_llgo_15, label %_llgo_16 + +_llgo_15: ; preds = %_llgo_14 + %105 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %106 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %105, i32 0, i32 0 + store ptr @1, ptr %106, align 8 + %107 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %105, i32 0, i32 1 + store i64 4, ptr %107, align 4 + %108 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %105, align 8 + %109 = load ptr, ptr @"_llgo_func$2_iS07vIlF2_rZqWB5eU0IvP_9HviM4MYZNkXZDvbac", align 8 + %110 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %111 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %110, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %108, ptr %111, align 8 + %112 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %110, i32 0, i32 1 + store ptr %109, ptr %112, align 8 + %113 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %110, i32 0, i32 2 + store ptr @"main.(*Game1).Load", ptr %113, align 8 + %114 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %110, i32 0, i32 3 + store ptr @"main.(*Game1).Load", ptr %114, align 8 + %115 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %110, align 8 + %116 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %117 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %116, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %108, ptr %117, align 8 + %118 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %116, i32 0, i32 1 + store ptr %109, ptr %118, align 8 + %119 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %116, i32 0, i32 2 + store ptr @"main.(*Game1).Load", ptr %119, align 8 + %120 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %116, i32 0, i32 3 + store ptr @main.Game1.Load, ptr %120, align 8 + %121 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %116, align 8 + %122 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %123 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %122, i32 0, i32 0 + store ptr @2, ptr %123, align 8 + %124 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %122, i32 0, i32 1 + store i64 8, ptr %124, align 4 + %125 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %122, align 8 + %126 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %127 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %126, i32 0, i32 0 + store ptr @3, ptr %127, align 8 + %128 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %126, i32 0, i32 1 + store i64 47, ptr %128, align 4 + %129 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %126, align 8 + %130 = load ptr, ptr @"_llgo_func$2_iS07vIlF2_rZqWB5eU0IvP_9HviM4MYZNkXZDvbac", align 8 + %131 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %132 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %131, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %129, ptr %132, align 8 + %133 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %131, i32 0, i32 1 + store ptr %130, ptr %133, align 8 + %134 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %131, i32 0, i32 2 + store ptr @"github.com/goplus/llgo/cl/internal/foo.(*Game).initGame", ptr %134, align 8 + %135 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %131, i32 0, i32 3 + store ptr @"github.com/goplus/llgo/cl/internal/foo.(*Game).initGame", ptr %135, align 8 + %136 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %131, align 8 + %137 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 40) + %138 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %137, i64 0 + store %"github.com/goplus/llgo/internal/abi.Method" %121, ptr %138, align 8 + %139 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %140 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %139, i32 0, i32 0 + store ptr %137, ptr %140, align 8 + %141 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %139, i32 0, i32 1 + store i64 1, ptr %141, align 4 + %142 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %139, i32 0, i32 2 + store i64 1, ptr %142, align 4 + %143 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %139, align 8 + %144 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 80) + %145 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %144, i64 0 + store %"github.com/goplus/llgo/internal/abi.Method" %115, ptr %145, align 8 + %146 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %144, i64 1 + store %"github.com/goplus/llgo/internal/abi.Method" %136, ptr %146, align 8 + %147 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %148 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %147, i32 0, i32 0 + store ptr %144, ptr %148, align 8 + %149 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %147, i32 0, i32 1 + store i64 2, ptr %149, align 4 + %150 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %147, i32 0, i32 2 + store i64 2, ptr %150, align 4 + %151 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %147, align 8 + %152 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %153 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %152, i32 0, i32 0 + store ptr @0, ptr %153, align 8 + %154 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %152, i32 0, i32 1 + store i64 4, ptr %154, align 4 + %155 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %152, align 8 + %156 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %157 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %156, i32 0, i32 0 + store ptr @6, ptr %157, align 8 + %158 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %156, i32 0, i32 1 + store i64 5, ptr %158, align 4 + %159 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %156, align 8 + call void @"github.com/goplus/llgo/internal/runtime.InitNamed"(ptr %2, %"github.com/goplus/llgo/internal/runtime.String" %155, %"github.com/goplus/llgo/internal/runtime.String" %159, ptr %104, %"github.com/goplus/llgo/internal/runtime.Slice" %143, %"github.com/goplus/llgo/internal/runtime.Slice" %151) + br label %_llgo_16 + +_llgo_16: ; preds = %_llgo_15, %_llgo_14 + %160 = load ptr, ptr @"*_llgo_main.Game1", align 8 + %161 = icmp eq ptr %160, null + br i1 %161, label %_llgo_17, label %_llgo_18 + +_llgo_17: ; preds = %_llgo_16 + %162 = call ptr @"github.com/goplus/llgo/internal/runtime.PointerTo"(ptr %2) + store ptr %162, ptr @"*_llgo_main.Game1", align 8 + br label %_llgo_18 + +_llgo_18: ; preds = %_llgo_17, %_llgo_16 + %163 = load ptr, ptr @_llgo_main.Game2, align 8 + %164 = icmp eq ptr %163, null + br i1 %164, label %_llgo_19, label %_llgo_20 + +_llgo_19: ; preds = %_llgo_18 + %165 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(i64 25, i64 0, i64 1) + store ptr %165, ptr @_llgo_main.Game2, align 8 + br label %_llgo_20 + +_llgo_20: ; preds = %_llgo_19, %_llgo_18 + %166 = load ptr, ptr @"_llgo_struct$n1H8J_3prDN3firMwPxBLVTkE5hJ9Di-AqNvaC9jczw", align 8 + br i1 %164, label %_llgo_21, label %_llgo_22 + +_llgo_21: ; preds = %_llgo_20 + %167 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %168 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %167, i32 0, i32 0 + store ptr @2, ptr %168, align 8 + %169 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %167, i32 0, i32 1 + store i64 8, ptr %169, align 4 + %170 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %167, align 8 + %171 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %172 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %171, i32 0, i32 0 + store ptr @7, ptr %172, align 8 + %173 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %171, i32 0, i32 1 + store i64 13, ptr %173, align 4 + %174 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %171, align 8 + %175 = load ptr, ptr @"_llgo_func$2_iS07vIlF2_rZqWB5eU0IvP_9HviM4MYZNkXZDvbac", align 8 + %176 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %177 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %176, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %174, ptr %177, align 8 + %178 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %176, i32 0, i32 1 + store ptr %175, ptr %178, align 8 + %179 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %176, i32 0, i32 2 + store ptr @"main.(*Game2).initGame", ptr %179, align 8 + %180 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %176, i32 0, i32 3 + store ptr @"main.(*Game2).initGame", ptr %180, align 8 + %181 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %176, align 8 + %182 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 40) + %183 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %182, i64 0 + store %"github.com/goplus/llgo/internal/abi.Method" %181, ptr %183, align 8 + %184 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %185 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %184, i32 0, i32 0 + store ptr %182, ptr %185, align 8 + %186 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %184, i32 0, i32 1 + store i64 1, ptr %186, align 4 + %187 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %184, i32 0, i32 2 + store i64 1, ptr %187, align 4 + %188 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %184, align 8 + %189 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %190 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %189, i32 0, i32 0 + store ptr @0, ptr %190, align 8 + %191 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %189, i32 0, i32 1 + store i64 4, ptr %191, align 4 + %192 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %189, align 8 + %193 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %194 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %193, i32 0, i32 0 + store ptr @8, ptr %194, align 8 + %195 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %193, i32 0, i32 1 + store i64 5, ptr %195, align 4 + %196 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %193, align 8 + call void @"github.com/goplus/llgo/internal/runtime.InitNamed"(ptr %165, %"github.com/goplus/llgo/internal/runtime.String" %192, %"github.com/goplus/llgo/internal/runtime.String" %196, ptr %166, { ptr, i64, i64 } zeroinitializer, %"github.com/goplus/llgo/internal/runtime.Slice" %188) + br label %_llgo_22 + +_llgo_22: ; preds = %_llgo_21, %_llgo_20 + %197 = load ptr, ptr @"*_llgo_main.Game2", align 8 + %198 = icmp eq ptr %197, null + br i1 %198, label %_llgo_23, label %_llgo_24 + +_llgo_23: ; preds = %_llgo_22 + %199 = call ptr @"github.com/goplus/llgo/internal/runtime.PointerTo"(ptr %165) + store ptr %199, ptr @"*_llgo_main.Game2", align 8 + br label %_llgo_24 + +_llgo_24: ; preds = %_llgo_23, %_llgo_22 + %200 = load ptr, ptr @"_llgo_func$2_iS07vIlF2_rZqWB5eU0IvP_9HviM4MYZNkXZDvbac", align 8 + %201 = load ptr, ptr @"_llgo_func$2_iS07vIlF2_rZqWB5eU0IvP_9HviM4MYZNkXZDvbac", align 8 + %202 = load ptr, ptr @"_llgo_github.com/goplus/llgo/cl/internal/foo.Gamer", align 8 + %203 = icmp eq ptr %202, null + br i1 %203, label %_llgo_25, label %_llgo_26 + +_llgo_25: ; preds = %_llgo_24 + %204 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %205 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %204, i32 0, i32 0 + store ptr @1, ptr %205, align 8 + %206 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %204, i32 0, i32 1 + store i64 4, ptr %206, align 4 + %207 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %204, align 8 + %208 = alloca %"github.com/goplus/llgo/internal/abi.Imethod", align 8 + %209 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Imethod", ptr %208, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %207, ptr %209, align 8 + %210 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Imethod", ptr %208, i32 0, i32 1 + store ptr %200, ptr %210, align 8 + %211 = load %"github.com/goplus/llgo/internal/abi.Imethod", ptr %208, align 8 + %212 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %213 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %212, i32 0, i32 0 + store ptr @3, ptr %213, align 8 + %214 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %212, i32 0, i32 1 + store i64 47, ptr %214, align 4 + %215 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %212, align 8 + %216 = alloca %"github.com/goplus/llgo/internal/abi.Imethod", align 8 + %217 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Imethod", ptr %216, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %215, ptr %217, align 8 + %218 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Imethod", ptr %216, i32 0, i32 1 + store ptr %201, ptr %218, align 8 + %219 = load %"github.com/goplus/llgo/internal/abi.Imethod", ptr %216, align 8 + %220 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 48) + %221 = getelementptr %"github.com/goplus/llgo/internal/abi.Imethod", ptr %220, i64 0 + store %"github.com/goplus/llgo/internal/abi.Imethod" %211, ptr %221, align 8 + %222 = getelementptr %"github.com/goplus/llgo/internal/abi.Imethod", ptr %220, i64 1 + store %"github.com/goplus/llgo/internal/abi.Imethod" %219, ptr %222, align 8 + %223 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %224 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %223, i32 0, i32 0 + store ptr %220, ptr %224, align 8 + %225 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %223, i32 0, i32 1 + store i64 2, ptr %225, align 4 + %226 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %223, i32 0, i32 2 + store i64 2, ptr %226, align 4 + %227 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %223, align 8 + %228 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %229 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %228, i32 0, i32 0 + store ptr @4, ptr %229, align 8 + %230 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %228, i32 0, i32 1 + store i64 38, ptr %230, align 4 + %231 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %228, align 8 + %232 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %233 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %232, i32 0, i32 0 + store ptr @9, ptr %233, align 8 + %234 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %232, i32 0, i32 1 + store i64 44, ptr %234, align 4 + %235 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %232, align 8 + %236 = call ptr @"github.com/goplus/llgo/internal/runtime.Interface"(%"github.com/goplus/llgo/internal/runtime.String" %231, %"github.com/goplus/llgo/internal/runtime.String" %235, %"github.com/goplus/llgo/internal/runtime.Slice" %227) + store ptr %236, ptr @"_llgo_github.com/goplus/llgo/cl/internal/foo.Gamer", align 8 + br label %_llgo_26 + +_llgo_26: ; preds = %_llgo_25, %_llgo_24 + %237 = load ptr, ptr @"_llgo_func$2_iS07vIlF2_rZqWB5eU0IvP_9HviM4MYZNkXZDvbac", align 8 + %238 = load ptr, ptr @"_llgo_func$2_iS07vIlF2_rZqWB5eU0IvP_9HviM4MYZNkXZDvbac", align 8 + %239 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %240 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %239, i32 0, i32 0 + store ptr @1, ptr %240, align 8 + %241 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %239, i32 0, i32 1 + store i64 4, ptr %241, align 4 + %242 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %239, align 8 + %243 = alloca %"github.com/goplus/llgo/internal/abi.Imethod", align 8 + %244 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Imethod", ptr %243, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %242, ptr %244, align 8 + %245 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Imethod", ptr %243, i32 0, i32 1 + store ptr %237, ptr %245, align 8 + %246 = load %"github.com/goplus/llgo/internal/abi.Imethod", ptr %243, align 8 + %247 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %248 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %247, i32 0, i32 0 + store ptr @3, ptr %248, align 8 + %249 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %247, i32 0, i32 1 + store i64 47, ptr %249, align 4 + %250 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %247, align 8 + %251 = alloca %"github.com/goplus/llgo/internal/abi.Imethod", align 8 + %252 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Imethod", ptr %251, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %250, ptr %252, align 8 + %253 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Imethod", ptr %251, i32 0, i32 1 + store ptr %238, ptr %253, align 8 + %254 = load %"github.com/goplus/llgo/internal/abi.Imethod", ptr %251, align 8 + %255 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 48) + %256 = getelementptr %"github.com/goplus/llgo/internal/abi.Imethod", ptr %255, i64 0 + store %"github.com/goplus/llgo/internal/abi.Imethod" %246, ptr %256, align 8 + %257 = getelementptr %"github.com/goplus/llgo/internal/abi.Imethod", ptr %255, i64 1 + store %"github.com/goplus/llgo/internal/abi.Imethod" %254, ptr %257, align 8 + %258 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %259 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %258, i32 0, i32 0 + store ptr %255, ptr %259, align 8 + %260 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %258, i32 0, i32 1 + store i64 2, ptr %260, align 4 + %261 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %258, i32 0, i32 2 + store i64 2, ptr %261, align 4 + %262 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %258, align 8 + %263 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %264 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %263, i32 0, i32 0 + store ptr @0, ptr %264, align 8 + %265 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %263, i32 0, i32 1 + store i64 4, ptr %265, align 4 + %266 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %263, align 8 + %267 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %268 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %267, i32 0, i32 0 + store ptr null, ptr %268, align 8 + %269 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %267, i32 0, i32 1 + store i64 0, ptr %269, align 4 + %270 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %267, align 8 + %271 = call ptr @"github.com/goplus/llgo/internal/runtime.Interface"(%"github.com/goplus/llgo/internal/runtime.String" %266, %"github.com/goplus/llgo/internal/runtime.String" %270, %"github.com/goplus/llgo/internal/runtime.Slice" %262) + store ptr %271, ptr @"main.iface$sO8a1LvuUsjXwiwaC6sR9-L4DiYgiOnZi7iosyShJXg", align 8 ret void } -declare ptr @"github.com/goplus/llgo/internal/runtime.PointerTo"(ptr) - declare ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(i64, i64, i64) +declare void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr) + +declare ptr @"github.com/goplus/llgo/internal/runtime.Struct"(%"github.com/goplus/llgo/internal/runtime.String", i64, %"github.com/goplus/llgo/internal/runtime.Slice") + +declare %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String", ptr, i64, %"github.com/goplus/llgo/internal/runtime.String", i1) + +declare ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64) + +declare void @"github.com/goplus/llgo/internal/runtime.InitNamed"(ptr, %"github.com/goplus/llgo/internal/runtime.String", %"github.com/goplus/llgo/internal/runtime.String", ptr, %"github.com/goplus/llgo/internal/runtime.Slice", %"github.com/goplus/llgo/internal/runtime.Slice") + declare ptr @"github.com/goplus/llgo/internal/runtime.Func"(%"github.com/goplus/llgo/internal/runtime.Slice", %"github.com/goplus/llgo/internal/runtime.Slice", i1) -declare ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64) +declare ptr @"github.com/goplus/llgo/internal/runtime.PointerTo"(ptr) declare ptr @"github.com/goplus/llgo/internal/runtime.Interface"(%"github.com/goplus/llgo/internal/runtime.String", %"github.com/goplus/llgo/internal/runtime.String", %"github.com/goplus/llgo/internal/runtime.Slice") diff --git a/cl/_testgo/invoke/out.ll b/cl/_testgo/invoke/out.ll index 02104679..f295b7e9 100644 --- a/cl/_testgo/invoke/out.ll +++ b/cl/_testgo/invoke/out.ll @@ -39,12 +39,15 @@ source_filename = "main" @_llgo_float64 = linkonce global ptr null, align 8 @11 = private unnamed_addr constant [2 x i8] c"T2", align 1 @"*_llgo_main.T2" = linkonce global ptr null, align 8 +@_llgo_main.T3 = linkonce global ptr null, align 8 +@_llgo_int8 = linkonce global ptr null, align 8 +@12 = private unnamed_addr constant [2 x i8] c"T3", align 1 @"*_llgo_main.T3" = linkonce global ptr null, align 8 @"_llgo_iface$jwmSdgh1zvY_TDIgLzCkvkbiyrdwl9N806DH0JGcyMI" = linkonce global ptr null, align 8 -@12 = private unnamed_addr constant [5 x i8] c"world", align 1 +@13 = private unnamed_addr constant [5 x i8] c"world", align 1 @_llgo_main.I = linkonce global ptr null, align 8 -@13 = private unnamed_addr constant [6 x i8] c"main.I", align 1 -@14 = private unnamed_addr constant [21 x i8] c"type assertion failed", align 1 +@14 = private unnamed_addr constant [6 x i8] c"main.I", align 1 +@15 = private unnamed_addr constant [21 x i8] c"type assertion failed", align 1 @_llgo_any = linkonce global ptr null, align 8 define i64 @main.T.Invoke(%main.T %0) { @@ -311,7 +314,7 @@ _llgo_0: %91 = getelementptr inbounds %main.T, ptr %90, i32 0, i32 0 %92 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 %93 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %92, i32 0, i32 0 - store ptr @12, ptr %93, align 8 + store ptr @13, ptr %93, align 8 %94 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %92, i32 0, i32 1 store i64 5, ptr %94, align 4 %95 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %92, align 8 @@ -350,7 +353,7 @@ _llgo_1: ; preds = %_llgo_0 _llgo_2: ; preds = %_llgo_0 %116 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 %117 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %116, i32 0, i32 0 - store ptr @14, ptr %117, align 8 + store ptr @15, ptr %117, align 8 %118 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %116, i32 0, i32 1 store i64 21, ptr %118, align 4 %119 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %116, align 8 @@ -382,7 +385,7 @@ _llgo_3: ; preds = %_llgo_1 _llgo_4: ; preds = %_llgo_1 %134 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 %135 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %134, i32 0, i32 0 - store ptr @14, ptr %135, align 8 + store ptr @15, ptr %135, align 8 %136 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %134, i32 0, i32 1 store i64 21, ptr %136, align 4 %137 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %134, align 8 @@ -415,7 +418,7 @@ _llgo_5: ; preds = %_llgo_3 _llgo_6: ; preds = %_llgo_3 %151 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 %152 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %151, i32 0, i32 0 - store ptr @14, ptr %152, align 8 + store ptr @15, ptr %152, align 8 %153 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %151, i32 0, i32 1 store i64 21, ptr %153, align 4 %154 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %151, align 8 @@ -715,363 +718,435 @@ _llgo_14: ; preds = %_llgo_13, %_llgo_6 br i1 %146, label %_llgo_15, label %_llgo_16 _llgo_15: ; preds = %_llgo_14 - %147 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(i64 25, i64 1, i64 2) - %148 = call ptr @"github.com/goplus/llgo/internal/runtime.PointerTo"(ptr %147) - store ptr %148, ptr @"*_llgo_main.T", align 8 + %147 = call ptr @"github.com/goplus/llgo/internal/runtime.PointerTo"(ptr %2) + store ptr %147, ptr @"*_llgo_main.T", align 8 br label %_llgo_16 _llgo_16: ; preds = %_llgo_15, %_llgo_14 - %149 = load ptr, ptr @_llgo_main.T1, align 8 - %150 = icmp eq ptr %149, null - br i1 %150, label %_llgo_17, label %_llgo_18 + %148 = load ptr, ptr @_llgo_main.T1, align 8 + %149 = icmp eq ptr %148, null + br i1 %149, label %_llgo_17, label %_llgo_18 _llgo_17: ; preds = %_llgo_16 - %151 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(i64 2, i64 1, i64 1) - %152 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Type", ptr %151, i32 0, i32 6 - %153 = load i8, ptr %152, align 1 - %154 = or i8 %153, 32 - store i8 %154, ptr %152, align 1 - store ptr %151, ptr @_llgo_main.T1, align 8 + %150 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(i64 2, i64 1, i64 1) + %151 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Type", ptr %150, i32 0, i32 6 + %152 = load i8, ptr %151, align 1 + %153 = or i8 %152, 32 + store i8 %153, ptr %151, align 1 + store ptr %150, ptr @_llgo_main.T1, align 8 br label %_llgo_18 _llgo_18: ; preds = %_llgo_17, %_llgo_16 - %155 = load ptr, ptr @_llgo_int, align 8 - br i1 %150, label %_llgo_19, label %_llgo_20 + %154 = load ptr, ptr @_llgo_int, align 8 + br i1 %149, label %_llgo_19, label %_llgo_20 _llgo_19: ; preds = %_llgo_18 - %156 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %157 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %156, i32 0, i32 0 - store ptr @7, ptr %157, align 8 - %158 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %156, i32 0, i32 1 - store i64 6, ptr %158, align 4 - %159 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %156, align 8 - %160 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 - %161 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 - %162 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %161, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %159, ptr %162, align 8 - %163 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %161, i32 0, i32 1 - store ptr %160, ptr %163, align 8 - %164 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %161, i32 0, i32 2 + %155 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %156 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %155, i32 0, i32 0 + store ptr @7, ptr %156, align 8 + %157 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %155, i32 0, i32 1 + store i64 6, ptr %157, align 4 + %158 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %155, align 8 + %159 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 + %160 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %161 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %160, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %158, ptr %161, align 8 + %162 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %160, i32 0, i32 1 + store ptr %159, ptr %162, align 8 + %163 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %160, i32 0, i32 2 + store ptr @"main.(*T1).Invoke", ptr %163, align 8 + %164 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %160, i32 0, i32 3 store ptr @"main.(*T1).Invoke", ptr %164, align 8 - %165 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %161, i32 0, i32 3 - store ptr @"main.(*T1).Invoke", ptr %165, align 8 - %166 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %161, align 8 - %167 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 - %168 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %167, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %159, ptr %168, align 8 - %169 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %167, i32 0, i32 1 - store ptr %160, ptr %169, align 8 - %170 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %167, i32 0, i32 2 - store ptr @"main.(*T1).Invoke", ptr %170, align 8 - %171 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %167, i32 0, i32 3 - store ptr @main.T1.Invoke, ptr %171, align 8 - %172 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %167, align 8 - %173 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 40) - %174 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %173, i64 0 - store %"github.com/goplus/llgo/internal/abi.Method" %172, ptr %174, align 8 - %175 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %176 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %175, i32 0, i32 0 - store ptr %173, ptr %176, align 8 - %177 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %175, i32 0, i32 1 + %165 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %160, align 8 + %166 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %167 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %166, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %158, ptr %167, align 8 + %168 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %166, i32 0, i32 1 + store ptr %159, ptr %168, align 8 + %169 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %166, i32 0, i32 2 + store ptr @"main.(*T1).Invoke", ptr %169, align 8 + %170 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %166, i32 0, i32 3 + store ptr @main.T1.Invoke, ptr %170, align 8 + %171 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %166, align 8 + %172 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 40) + %173 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %172, i64 0 + store %"github.com/goplus/llgo/internal/abi.Method" %171, ptr %173, align 8 + %174 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %175 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %174, i32 0, i32 0 + store ptr %172, ptr %175, align 8 + %176 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %174, i32 0, i32 1 + store i64 1, ptr %176, align 4 + %177 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %174, i32 0, i32 2 store i64 1, ptr %177, align 4 - %178 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %175, i32 0, i32 2 - store i64 1, ptr %178, align 4 - %179 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %175, align 8 - %180 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 40) - %181 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %180, i64 0 - store %"github.com/goplus/llgo/internal/abi.Method" %166, ptr %181, align 8 - %182 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %183 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %182, i32 0, i32 0 - store ptr %180, ptr %183, align 8 - %184 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %182, i32 0, i32 1 + %178 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %174, align 8 + %179 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 40) + %180 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %179, i64 0 + store %"github.com/goplus/llgo/internal/abi.Method" %165, ptr %180, align 8 + %181 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %182 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %181, i32 0, i32 0 + store ptr %179, ptr %182, align 8 + %183 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %181, i32 0, i32 1 + store i64 1, ptr %183, align 4 + %184 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %181, i32 0, i32 2 store i64 1, ptr %184, align 4 - %185 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %182, i32 0, i32 2 - store i64 1, ptr %185, align 4 - %186 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %182, align 8 - %187 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %188 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %187, i32 0, i32 0 - store ptr @6, ptr %188, align 8 - %189 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %187, i32 0, i32 1 - store i64 4, ptr %189, align 4 - %190 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %187, align 8 - %191 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %192 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %191, i32 0, i32 0 - store ptr @10, ptr %192, align 8 - %193 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %191, i32 0, i32 1 - store i64 2, ptr %193, align 4 - %194 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %191, align 8 - call void @"github.com/goplus/llgo/internal/runtime.InitNamed"(ptr %151, %"github.com/goplus/llgo/internal/runtime.String" %190, %"github.com/goplus/llgo/internal/runtime.String" %194, ptr %155, %"github.com/goplus/llgo/internal/runtime.Slice" %179, %"github.com/goplus/llgo/internal/runtime.Slice" %186) + %185 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %181, align 8 + %186 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %187 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %186, i32 0, i32 0 + store ptr @6, ptr %187, align 8 + %188 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %186, i32 0, i32 1 + store i64 4, ptr %188, align 4 + %189 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %186, align 8 + %190 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %191 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %190, i32 0, i32 0 + store ptr @10, ptr %191, align 8 + %192 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %190, i32 0, i32 1 + store i64 2, ptr %192, align 4 + %193 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %190, align 8 + call void @"github.com/goplus/llgo/internal/runtime.InitNamed"(ptr %150, %"github.com/goplus/llgo/internal/runtime.String" %189, %"github.com/goplus/llgo/internal/runtime.String" %193, ptr %154, %"github.com/goplus/llgo/internal/runtime.Slice" %178, %"github.com/goplus/llgo/internal/runtime.Slice" %185) br label %_llgo_20 _llgo_20: ; preds = %_llgo_19, %_llgo_18 - %195 = load ptr, ptr @"*_llgo_main.T1", align 8 - %196 = icmp eq ptr %195, null - br i1 %196, label %_llgo_21, label %_llgo_22 + %194 = load ptr, ptr @"*_llgo_main.T1", align 8 + %195 = icmp eq ptr %194, null + br i1 %195, label %_llgo_21, label %_llgo_22 _llgo_21: ; preds = %_llgo_20 - %197 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(i64 2, i64 1, i64 1) - %198 = call ptr @"github.com/goplus/llgo/internal/runtime.PointerTo"(ptr %197) - store ptr %198, ptr @"*_llgo_main.T1", align 8 + %196 = call ptr @"github.com/goplus/llgo/internal/runtime.PointerTo"(ptr %150) + store ptr %196, ptr @"*_llgo_main.T1", align 8 br label %_llgo_22 _llgo_22: ; preds = %_llgo_21, %_llgo_20 - %199 = load ptr, ptr @_llgo_main.T2, align 8 - %200 = icmp eq ptr %199, null - br i1 %200, label %_llgo_23, label %_llgo_24 + %197 = load ptr, ptr @_llgo_main.T2, align 8 + %198 = icmp eq ptr %197, null + br i1 %198, label %_llgo_23, label %_llgo_24 _llgo_23: ; preds = %_llgo_22 - %201 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(i64 14, i64 1, i64 1) - %202 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Type", ptr %201, i32 0, i32 6 - %203 = load i8, ptr %202, align 1 - %204 = or i8 %203, 32 - store i8 %204, ptr %202, align 1 - store ptr %201, ptr @_llgo_main.T2, align 8 + %199 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(i64 14, i64 1, i64 1) + %200 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Type", ptr %199, i32 0, i32 6 + %201 = load i8, ptr %200, align 1 + %202 = or i8 %201, 32 + store i8 %202, ptr %200, align 1 + store ptr %199, ptr @_llgo_main.T2, align 8 br label %_llgo_24 _llgo_24: ; preds = %_llgo_23, %_llgo_22 - %205 = load ptr, ptr @_llgo_float64, align 8 - %206 = icmp eq ptr %205, null - br i1 %206, label %_llgo_25, label %_llgo_26 + %203 = load ptr, ptr @_llgo_float64, align 8 + %204 = icmp eq ptr %203, null + br i1 %204, label %_llgo_25, label %_llgo_26 _llgo_25: ; preds = %_llgo_24 - %207 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 14) - %208 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Type", ptr %207, i32 0, i32 6 - %209 = load i8, ptr %208, align 1 - %210 = or i8 %209, 32 - store i8 %210, ptr %208, align 1 - store ptr %207, ptr @_llgo_float64, align 8 + %205 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 14) + %206 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Type", ptr %205, i32 0, i32 6 + %207 = load i8, ptr %206, align 1 + %208 = or i8 %207, 32 + store i8 %208, ptr %206, align 1 + store ptr %205, ptr @_llgo_float64, align 8 br label %_llgo_26 _llgo_26: ; preds = %_llgo_25, %_llgo_24 - %211 = load ptr, ptr @_llgo_float64, align 8 - br i1 %200, label %_llgo_27, label %_llgo_28 + %209 = load ptr, ptr @_llgo_float64, align 8 + br i1 %198, label %_llgo_27, label %_llgo_28 _llgo_27: ; preds = %_llgo_26 - %212 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %213 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %212, i32 0, i32 0 - store ptr @7, ptr %213, align 8 - %214 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %212, i32 0, i32 1 - store i64 6, ptr %214, align 4 - %215 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %212, align 8 - %216 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 - %217 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 - %218 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %217, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %215, ptr %218, align 8 - %219 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %217, i32 0, i32 1 - store ptr %216, ptr %219, align 8 - %220 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %217, i32 0, i32 2 - store ptr @"main.(*T2).Invoke", ptr %220, align 8 - %221 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %217, i32 0, i32 3 - store ptr @"main.(*T2).Invoke", ptr %221, align 8 - %222 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %217, align 8 - %223 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 - %224 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %223, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %215, ptr %224, align 8 - %225 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %223, i32 0, i32 1 - store ptr %216, ptr %225, align 8 - %226 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %223, i32 0, i32 2 - store ptr @"main.(*T2).Invoke", ptr %226, align 8 - %227 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %223, i32 0, i32 3 - store ptr @main.T2.Invoke, ptr %227, align 8 - %228 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %223, align 8 - %229 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 40) - %230 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %229, i64 0 - store %"github.com/goplus/llgo/internal/abi.Method" %228, ptr %230, align 8 - %231 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %232 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %231, i32 0, i32 0 - store ptr %229, ptr %232, align 8 - %233 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %231, i32 0, i32 1 - store i64 1, ptr %233, align 4 - %234 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %231, i32 0, i32 2 - store i64 1, ptr %234, align 4 - %235 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %231, align 8 - %236 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 40) - %237 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %236, i64 0 - store %"github.com/goplus/llgo/internal/abi.Method" %222, ptr %237, align 8 - %238 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %239 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %238, i32 0, i32 0 - store ptr %236, ptr %239, align 8 - %240 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %238, i32 0, i32 1 - store i64 1, ptr %240, align 4 - %241 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %238, i32 0, i32 2 - store i64 1, ptr %241, align 4 - %242 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %238, align 8 - %243 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %244 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %243, i32 0, i32 0 - store ptr @6, ptr %244, align 8 - %245 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %243, i32 0, i32 1 - store i64 4, ptr %245, align 4 - %246 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %243, align 8 - %247 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %248 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %247, i32 0, i32 0 - store ptr @11, ptr %248, align 8 - %249 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %247, i32 0, i32 1 - store i64 2, ptr %249, align 4 - %250 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %247, align 8 - call void @"github.com/goplus/llgo/internal/runtime.InitNamed"(ptr %201, %"github.com/goplus/llgo/internal/runtime.String" %246, %"github.com/goplus/llgo/internal/runtime.String" %250, ptr %211, %"github.com/goplus/llgo/internal/runtime.Slice" %235, %"github.com/goplus/llgo/internal/runtime.Slice" %242) + %210 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %211 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %210, i32 0, i32 0 + store ptr @7, ptr %211, align 8 + %212 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %210, i32 0, i32 1 + store i64 6, ptr %212, align 4 + %213 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %210, align 8 + %214 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 + %215 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %216 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %215, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %213, ptr %216, align 8 + %217 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %215, i32 0, i32 1 + store ptr %214, ptr %217, align 8 + %218 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %215, i32 0, i32 2 + store ptr @"main.(*T2).Invoke", ptr %218, align 8 + %219 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %215, i32 0, i32 3 + store ptr @"main.(*T2).Invoke", ptr %219, align 8 + %220 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %215, align 8 + %221 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %222 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %221, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %213, ptr %222, align 8 + %223 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %221, i32 0, i32 1 + store ptr %214, ptr %223, align 8 + %224 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %221, i32 0, i32 2 + store ptr @"main.(*T2).Invoke", ptr %224, align 8 + %225 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %221, i32 0, i32 3 + store ptr @main.T2.Invoke, ptr %225, align 8 + %226 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %221, align 8 + %227 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 40) + %228 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %227, i64 0 + store %"github.com/goplus/llgo/internal/abi.Method" %226, ptr %228, align 8 + %229 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %230 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %229, i32 0, i32 0 + store ptr %227, ptr %230, align 8 + %231 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %229, i32 0, i32 1 + store i64 1, ptr %231, align 4 + %232 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %229, i32 0, i32 2 + store i64 1, ptr %232, align 4 + %233 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %229, align 8 + %234 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 40) + %235 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %234, i64 0 + store %"github.com/goplus/llgo/internal/abi.Method" %220, ptr %235, align 8 + %236 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %237 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %236, i32 0, i32 0 + store ptr %234, ptr %237, align 8 + %238 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %236, i32 0, i32 1 + store i64 1, ptr %238, align 4 + %239 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %236, i32 0, i32 2 + store i64 1, ptr %239, align 4 + %240 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %236, align 8 + %241 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %242 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %241, i32 0, i32 0 + store ptr @6, ptr %242, align 8 + %243 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %241, i32 0, i32 1 + store i64 4, ptr %243, align 4 + %244 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %241, align 8 + %245 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %246 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %245, i32 0, i32 0 + store ptr @11, ptr %246, align 8 + %247 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %245, i32 0, i32 1 + store i64 2, ptr %247, align 4 + %248 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %245, align 8 + call void @"github.com/goplus/llgo/internal/runtime.InitNamed"(ptr %199, %"github.com/goplus/llgo/internal/runtime.String" %244, %"github.com/goplus/llgo/internal/runtime.String" %248, ptr %209, %"github.com/goplus/llgo/internal/runtime.Slice" %233, %"github.com/goplus/llgo/internal/runtime.Slice" %240) br label %_llgo_28 _llgo_28: ; preds = %_llgo_27, %_llgo_26 - %251 = load ptr, ptr @"*_llgo_main.T2", align 8 - %252 = icmp eq ptr %251, null - br i1 %252, label %_llgo_29, label %_llgo_30 + %249 = load ptr, ptr @"*_llgo_main.T2", align 8 + %250 = icmp eq ptr %249, null + br i1 %250, label %_llgo_29, label %_llgo_30 _llgo_29: ; preds = %_llgo_28 - %253 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(i64 14, i64 1, i64 1) - %254 = call ptr @"github.com/goplus/llgo/internal/runtime.PointerTo"(ptr %253) - store ptr %254, ptr @"*_llgo_main.T2", align 8 + %251 = call ptr @"github.com/goplus/llgo/internal/runtime.PointerTo"(ptr %199) + store ptr %251, ptr @"*_llgo_main.T2", align 8 br label %_llgo_30 _llgo_30: ; preds = %_llgo_29, %_llgo_28 - %255 = load ptr, ptr @"*_llgo_main.T3", align 8 - %256 = icmp eq ptr %255, null - br i1 %256, label %_llgo_31, label %_llgo_32 + %252 = load ptr, ptr @_llgo_main.T3, align 8 + %253 = icmp eq ptr %252, null + br i1 %253, label %_llgo_31, label %_llgo_32 _llgo_31: ; preds = %_llgo_30 - %257 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(i64 3, i64 0, i64 1) - %258 = call ptr @"github.com/goplus/llgo/internal/runtime.PointerTo"(ptr %257) - store ptr %258, ptr @"*_llgo_main.T3", align 8 + %254 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(i64 3, i64 0, i64 1) + %255 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Type", ptr %254, i32 0, i32 6 + %256 = load i8, ptr %255, align 1 + %257 = or i8 %256, 32 + store i8 %257, ptr %255, align 1 + store ptr %254, ptr @_llgo_main.T3, align 8 br label %_llgo_32 _llgo_32: ; preds = %_llgo_31, %_llgo_30 - %259 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 - %260 = load ptr, ptr @"_llgo_func$2_iS07vIlF2_rZqWB5eU0IvP_9HviM4MYZNkXZDvbac", align 8 - %261 = load ptr, ptr @"_llgo_iface$jwmSdgh1zvY_TDIgLzCkvkbiyrdwl9N806DH0JGcyMI", align 8 - %262 = icmp eq ptr %261, null - br i1 %262, label %_llgo_33, label %_llgo_34 + %258 = load ptr, ptr @_llgo_int8, align 8 + %259 = icmp eq ptr %258, null + br i1 %259, label %_llgo_33, label %_llgo_34 _llgo_33: ; preds = %_llgo_32 - %263 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %264 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %263, i32 0, i32 0 - store ptr @7, ptr %264, align 8 - %265 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %263, i32 0, i32 1 - store i64 6, ptr %265, align 4 - %266 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %263, align 8 - %267 = alloca %"github.com/goplus/llgo/internal/abi.Imethod", align 8 - %268 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Imethod", ptr %267, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %266, ptr %268, align 8 - %269 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Imethod", ptr %267, i32 0, i32 1 - store ptr %259, ptr %269, align 8 - %270 = load %"github.com/goplus/llgo/internal/abi.Imethod", ptr %267, align 8 - %271 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %272 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %271, i32 0, i32 0 - store ptr @8, ptr %272, align 8 - %273 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %271, i32 0, i32 1 - store i64 6, ptr %273, align 4 - %274 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %271, align 8 - %275 = alloca %"github.com/goplus/llgo/internal/abi.Imethod", align 8 - %276 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Imethod", ptr %275, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %274, ptr %276, align 8 - %277 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Imethod", ptr %275, i32 0, i32 1 - store ptr %260, ptr %277, align 8 - %278 = load %"github.com/goplus/llgo/internal/abi.Imethod", ptr %275, align 8 - %279 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 48) - %280 = getelementptr %"github.com/goplus/llgo/internal/abi.Imethod", ptr %279, i64 0 - store %"github.com/goplus/llgo/internal/abi.Imethod" %270, ptr %280, align 8 - %281 = getelementptr %"github.com/goplus/llgo/internal/abi.Imethod", ptr %279, i64 1 - store %"github.com/goplus/llgo/internal/abi.Imethod" %278, ptr %281, align 8 - %282 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %283 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %282, i32 0, i32 0 - store ptr %279, ptr %283, align 8 - %284 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %282, i32 0, i32 1 - store i64 2, ptr %284, align 4 - %285 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %282, i32 0, i32 2 - store i64 2, ptr %285, align 4 - %286 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %282, align 8 - %287 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %288 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %287, i32 0, i32 0 - store ptr @6, ptr %288, align 8 - %289 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %287, i32 0, i32 1 - store i64 4, ptr %289, align 4 - %290 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %287, align 8 - %291 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %292 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %291, i32 0, i32 0 - store ptr null, ptr %292, align 8 - %293 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %291, i32 0, i32 1 - store i64 0, ptr %293, align 4 - %294 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %291, align 8 - %295 = call ptr @"github.com/goplus/llgo/internal/runtime.Interface"(%"github.com/goplus/llgo/internal/runtime.String" %290, %"github.com/goplus/llgo/internal/runtime.String" %294, %"github.com/goplus/llgo/internal/runtime.Slice" %286) - store ptr %295, ptr @"_llgo_iface$jwmSdgh1zvY_TDIgLzCkvkbiyrdwl9N806DH0JGcyMI", align 8 + %260 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 3) + %261 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Type", ptr %260, i32 0, i32 6 + %262 = load i8, ptr %261, align 1 + %263 = or i8 %262, 32 + store i8 %263, ptr %261, align 1 + store ptr %260, ptr @_llgo_int8, align 8 br label %_llgo_34 _llgo_34: ; preds = %_llgo_33, %_llgo_32 - %296 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 - %297 = load ptr, ptr @_llgo_main.I, align 8 - %298 = icmp eq ptr %297, null - br i1 %298, label %_llgo_35, label %_llgo_36 + %264 = load ptr, ptr @_llgo_int8, align 8 + br i1 %253, label %_llgo_35, label %_llgo_36 _llgo_35: ; preds = %_llgo_34 - %299 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %300 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %299, i32 0, i32 0 - store ptr @7, ptr %300, align 8 - %301 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %299, i32 0, i32 1 - store i64 6, ptr %301, align 4 - %302 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %299, align 8 - %303 = alloca %"github.com/goplus/llgo/internal/abi.Imethod", align 8 - %304 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Imethod", ptr %303, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %302, ptr %304, align 8 - %305 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Imethod", ptr %303, i32 0, i32 1 - store ptr %296, ptr %305, align 8 - %306 = load %"github.com/goplus/llgo/internal/abi.Imethod", ptr %303, align 8 - %307 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 24) - %308 = getelementptr %"github.com/goplus/llgo/internal/abi.Imethod", ptr %307, i64 0 - store %"github.com/goplus/llgo/internal/abi.Imethod" %306, ptr %308, align 8 - %309 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %310 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %309, i32 0, i32 0 - store ptr %307, ptr %310, align 8 - %311 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %309, i32 0, i32 1 - store i64 1, ptr %311, align 4 - %312 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %309, i32 0, i32 2 - store i64 1, ptr %312, align 4 - %313 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %309, align 8 - %314 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %315 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %314, i32 0, i32 0 - store ptr @6, ptr %315, align 8 - %316 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %314, i32 0, i32 1 - store i64 4, ptr %316, align 4 - %317 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %314, align 8 - %318 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %319 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %318, i32 0, i32 0 - store ptr @13, ptr %319, align 8 - %320 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %318, i32 0, i32 1 - store i64 6, ptr %320, align 4 - %321 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %318, align 8 - %322 = call ptr @"github.com/goplus/llgo/internal/runtime.Interface"(%"github.com/goplus/llgo/internal/runtime.String" %317, %"github.com/goplus/llgo/internal/runtime.String" %321, %"github.com/goplus/llgo/internal/runtime.Slice" %313) - store ptr %322, ptr @_llgo_main.I, align 8 + %265 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %266 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %265, i32 0, i32 0 + store ptr @7, ptr %266, align 8 + %267 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %265, i32 0, i32 1 + store i64 6, ptr %267, align 4 + %268 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %265, align 8 + %269 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 + %270 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %271 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %270, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %268, ptr %271, align 8 + %272 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %270, i32 0, i32 1 + store ptr %269, ptr %272, align 8 + %273 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %270, i32 0, i32 2 + store ptr @"main.(*T3).Invoke", ptr %273, align 8 + %274 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %270, i32 0, i32 3 + store ptr @"main.(*T3).Invoke", ptr %274, align 8 + %275 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %270, align 8 + %276 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 40) + %277 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %276, i64 0 + store %"github.com/goplus/llgo/internal/abi.Method" %275, ptr %277, align 8 + %278 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %279 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %278, i32 0, i32 0 + store ptr %276, ptr %279, align 8 + %280 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %278, i32 0, i32 1 + store i64 1, ptr %280, align 4 + %281 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %278, i32 0, i32 2 + store i64 1, ptr %281, align 4 + %282 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %278, align 8 + %283 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %284 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %283, i32 0, i32 0 + store ptr @6, ptr %284, align 8 + %285 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %283, i32 0, i32 1 + store i64 4, ptr %285, align 4 + %286 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %283, align 8 + %287 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %288 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %287, i32 0, i32 0 + store ptr @12, ptr %288, align 8 + %289 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %287, i32 0, i32 1 + store i64 2, ptr %289, align 4 + %290 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %287, align 8 + call void @"github.com/goplus/llgo/internal/runtime.InitNamed"(ptr %254, %"github.com/goplus/llgo/internal/runtime.String" %286, %"github.com/goplus/llgo/internal/runtime.String" %290, ptr %264, { ptr, i64, i64 } zeroinitializer, %"github.com/goplus/llgo/internal/runtime.Slice" %282) br label %_llgo_36 _llgo_36: ; preds = %_llgo_35, %_llgo_34 - %323 = load ptr, ptr @_llgo_any, align 8 - %324 = icmp eq ptr %323, null - br i1 %324, label %_llgo_37, label %_llgo_38 + %291 = load ptr, ptr @"*_llgo_main.T3", align 8 + %292 = icmp eq ptr %291, null + br i1 %292, label %_llgo_37, label %_llgo_38 _llgo_37: ; preds = %_llgo_36 - %325 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 0) - %326 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %327 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %326, i32 0, i32 0 - store ptr %325, ptr %327, align 8 - %328 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %326, i32 0, i32 1 - store i64 0, ptr %328, align 4 - %329 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %326, i32 0, i32 2 - store i64 0, ptr %329, align 4 - %330 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %326, align 8 - %331 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %332 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %331, i32 0, i32 0 - store ptr @6, ptr %332, align 8 - %333 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %331, i32 0, i32 1 - store i64 4, ptr %333, align 4 - %334 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %331, align 8 - %335 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %336 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %335, i32 0, i32 0 - store ptr null, ptr %336, align 8 - %337 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %335, i32 0, i32 1 - store i64 0, ptr %337, align 4 - %338 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %335, align 8 - %339 = call ptr @"github.com/goplus/llgo/internal/runtime.Interface"(%"github.com/goplus/llgo/internal/runtime.String" %334, %"github.com/goplus/llgo/internal/runtime.String" %338, %"github.com/goplus/llgo/internal/runtime.Slice" %330) - store ptr %339, ptr @_llgo_any, align 8 + %293 = call ptr @"github.com/goplus/llgo/internal/runtime.PointerTo"(ptr %254) + store ptr %293, ptr @"*_llgo_main.T3", align 8 br label %_llgo_38 _llgo_38: ; preds = %_llgo_37, %_llgo_36 + %294 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 + %295 = load ptr, ptr @"_llgo_func$2_iS07vIlF2_rZqWB5eU0IvP_9HviM4MYZNkXZDvbac", align 8 + %296 = load ptr, ptr @"_llgo_iface$jwmSdgh1zvY_TDIgLzCkvkbiyrdwl9N806DH0JGcyMI", align 8 + %297 = icmp eq ptr %296, null + br i1 %297, label %_llgo_39, label %_llgo_40 + +_llgo_39: ; preds = %_llgo_38 + %298 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %299 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %298, i32 0, i32 0 + store ptr @7, ptr %299, align 8 + %300 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %298, i32 0, i32 1 + store i64 6, ptr %300, align 4 + %301 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %298, align 8 + %302 = alloca %"github.com/goplus/llgo/internal/abi.Imethod", align 8 + %303 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Imethod", ptr %302, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %301, ptr %303, align 8 + %304 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Imethod", ptr %302, i32 0, i32 1 + store ptr %294, ptr %304, align 8 + %305 = load %"github.com/goplus/llgo/internal/abi.Imethod", ptr %302, align 8 + %306 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %307 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %306, i32 0, i32 0 + store ptr @8, ptr %307, align 8 + %308 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %306, i32 0, i32 1 + store i64 6, ptr %308, align 4 + %309 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %306, align 8 + %310 = alloca %"github.com/goplus/llgo/internal/abi.Imethod", align 8 + %311 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Imethod", ptr %310, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %309, ptr %311, align 8 + %312 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Imethod", ptr %310, i32 0, i32 1 + store ptr %295, ptr %312, align 8 + %313 = load %"github.com/goplus/llgo/internal/abi.Imethod", ptr %310, align 8 + %314 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 48) + %315 = getelementptr %"github.com/goplus/llgo/internal/abi.Imethod", ptr %314, i64 0 + store %"github.com/goplus/llgo/internal/abi.Imethod" %305, ptr %315, align 8 + %316 = getelementptr %"github.com/goplus/llgo/internal/abi.Imethod", ptr %314, i64 1 + store %"github.com/goplus/llgo/internal/abi.Imethod" %313, ptr %316, align 8 + %317 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %318 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %317, i32 0, i32 0 + store ptr %314, ptr %318, align 8 + %319 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %317, i32 0, i32 1 + store i64 2, ptr %319, align 4 + %320 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %317, i32 0, i32 2 + store i64 2, ptr %320, align 4 + %321 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %317, align 8 + %322 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %323 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %322, i32 0, i32 0 + store ptr @6, ptr %323, align 8 + %324 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %322, i32 0, i32 1 + store i64 4, ptr %324, align 4 + %325 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %322, align 8 + %326 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %327 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %326, i32 0, i32 0 + store ptr null, ptr %327, align 8 + %328 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %326, i32 0, i32 1 + store i64 0, ptr %328, align 4 + %329 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %326, align 8 + %330 = call ptr @"github.com/goplus/llgo/internal/runtime.Interface"(%"github.com/goplus/llgo/internal/runtime.String" %325, %"github.com/goplus/llgo/internal/runtime.String" %329, %"github.com/goplus/llgo/internal/runtime.Slice" %321) + store ptr %330, ptr @"_llgo_iface$jwmSdgh1zvY_TDIgLzCkvkbiyrdwl9N806DH0JGcyMI", align 8 + br label %_llgo_40 + +_llgo_40: ; preds = %_llgo_39, %_llgo_38 + %331 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 + %332 = load ptr, ptr @_llgo_main.I, align 8 + %333 = icmp eq ptr %332, null + br i1 %333, label %_llgo_41, label %_llgo_42 + +_llgo_41: ; preds = %_llgo_40 + %334 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %335 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %334, i32 0, i32 0 + store ptr @7, ptr %335, align 8 + %336 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %334, i32 0, i32 1 + store i64 6, ptr %336, align 4 + %337 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %334, align 8 + %338 = alloca %"github.com/goplus/llgo/internal/abi.Imethod", align 8 + %339 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Imethod", ptr %338, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %337, ptr %339, align 8 + %340 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Imethod", ptr %338, i32 0, i32 1 + store ptr %331, ptr %340, align 8 + %341 = load %"github.com/goplus/llgo/internal/abi.Imethod", ptr %338, align 8 + %342 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 24) + %343 = getelementptr %"github.com/goplus/llgo/internal/abi.Imethod", ptr %342, i64 0 + store %"github.com/goplus/llgo/internal/abi.Imethod" %341, ptr %343, align 8 + %344 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %345 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %344, i32 0, i32 0 + store ptr %342, ptr %345, align 8 + %346 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %344, i32 0, i32 1 + store i64 1, ptr %346, align 4 + %347 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %344, i32 0, i32 2 + store i64 1, ptr %347, align 4 + %348 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %344, align 8 + %349 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %350 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %349, i32 0, i32 0 + store ptr @6, ptr %350, align 8 + %351 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %349, i32 0, i32 1 + store i64 4, ptr %351, align 4 + %352 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %349, align 8 + %353 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %354 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %353, i32 0, i32 0 + store ptr @14, ptr %354, align 8 + %355 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %353, i32 0, i32 1 + store i64 6, ptr %355, align 4 + %356 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %353, align 8 + %357 = call ptr @"github.com/goplus/llgo/internal/runtime.Interface"(%"github.com/goplus/llgo/internal/runtime.String" %352, %"github.com/goplus/llgo/internal/runtime.String" %356, %"github.com/goplus/llgo/internal/runtime.Slice" %348) + store ptr %357, ptr @_llgo_main.I, align 8 + br label %_llgo_42 + +_llgo_42: ; preds = %_llgo_41, %_llgo_40 + %358 = load ptr, ptr @_llgo_any, align 8 + %359 = icmp eq ptr %358, null + br i1 %359, label %_llgo_43, label %_llgo_44 + +_llgo_43: ; preds = %_llgo_42 + %360 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 0) + %361 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %362 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %361, i32 0, i32 0 + store ptr %360, ptr %362, align 8 + %363 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %361, i32 0, i32 1 + store i64 0, ptr %363, align 4 + %364 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %361, i32 0, i32 2 + store i64 0, ptr %364, align 4 + %365 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %361, align 8 + %366 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %367 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %366, i32 0, i32 0 + store ptr @6, ptr %367, align 8 + %368 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %366, i32 0, i32 1 + store i64 4, ptr %368, align 4 + %369 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %366, align 8 + %370 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %371 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %370, i32 0, i32 0 + store ptr null, ptr %371, align 8 + %372 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %370, i32 0, i32 1 + store i64 0, ptr %372, align 4 + %373 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %370, align 8 + %374 = call ptr @"github.com/goplus/llgo/internal/runtime.Interface"(%"github.com/goplus/llgo/internal/runtime.String" %369, %"github.com/goplus/llgo/internal/runtime.String" %373, %"github.com/goplus/llgo/internal/runtime.Slice" %365) + store ptr %374, ptr @_llgo_any, align 8 + br label %_llgo_44 + +_llgo_44: ; preds = %_llgo_43, %_llgo_42 ret void } diff --git a/cl/_testgo/reader/out.ll b/cl/_testgo/reader/out.ll index 5ed32eb1..f8a3684c 100644 --- a/cl/_testgo/reader/out.ll +++ b/cl/_testgo/reader/out.ll @@ -57,18 +57,43 @@ source_filename = "main" @__llgo_argc = global i32 0, align 4 @__llgo_argv = global ptr null, align 8 @17 = private unnamed_addr constant [11 x i8] c"hello world", align 1 +@_llgo_main.stringReader = global ptr null, align 8 +@"main.struct$Mdt84yjYYwxF9D2i4cRmpEPiWaO6tsjtrbGUjyESypk" = global ptr null, align 8 +@18 = private unnamed_addr constant [1 x i8] c"s", align 1 +@19 = private unnamed_addr constant [1 x i8] c"i", align 1 +@20 = private unnamed_addr constant [8 x i8] c"prevRune", align 1 +@21 = private unnamed_addr constant [3 x i8] c"Len", align 1 +@"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA" = linkonce global ptr null, align 8 +@22 = private unnamed_addr constant [6 x i8] c"ReadAt", align 1 +@"_llgo_func$TY5Etv7VBKM_-2um1BDEeQEE2lP06Pt6G54EuKiNC3c" = linkonce global ptr null, align 8 +@23 = private unnamed_addr constant [8 x i8] c"ReadByte", align 1 +@"_llgo_func$6bvVpCcGPUc3z_EmsQTHB0AVT1hP5-NNLVRgm43teCM" = linkonce global ptr null, align 8 +@_llgo_byte = linkonce global ptr null, align 8 +@24 = private unnamed_addr constant [8 x i8] c"ReadRune", align 1 +@"_llgo_func$CB0CO6hV_feSzhi4pz1P4omza2fKNK930wvOR1T33fU" = linkonce global ptr null, align 8 +@_llgo_rune = linkonce global ptr null, align 8 +@25 = private unnamed_addr constant [4 x i8] c"Seek", align 1 +@"_llgo_func$HE7H49xPa1uXmrkMDpqB3RCRGf3qzhLGrxKCEXOYjms" = linkonce global ptr null, align 8 +@26 = private unnamed_addr constant [4 x i8] c"Size", align 1 +@"_llgo_func$Eoig9xhJM5GShHH5aNPxTZZXp1IZxprRl4zPuv2hkug" = linkonce global ptr null, align 8 +@27 = private unnamed_addr constant [10 x i8] c"UnreadByte", align 1 +@28 = private unnamed_addr constant [10 x i8] c"UnreadRune", align 1 +@29 = private unnamed_addr constant [12 x i8] c"stringReader", align 1 @"*_llgo_main.stringReader" = global ptr null, align 8 @"_llgo_iface$OFO8Us9n8ajWCabGedeuoJ-Za2zAMk4Jh0FunAcUCFE" = linkonce global ptr null, align 8 +@_llgo_main.errorString = global ptr null, align 8 +@"main.struct$QTufDJA9wEDzuzgkA-ZSrLqW-B6lWN8O25mTSglAoLQ" = global ptr null, align 8 +@30 = private unnamed_addr constant [11 x i8] c"errorString", align 1 @"*_llgo_main.errorString" = global ptr null, align 8 @"_llgo_iface$Fh8eUJ-Gw4e6TYuajcFIOSCuqSPKAt5nS4ow7xeGXEU" = linkonce global ptr null, align 8 -@18 = private unnamed_addr constant [21 x i8] c"type assertion failed", align 1 -@19 = private unnamed_addr constant [37 x i8] c"stringsReader.ReadAt: negative offset", align 1 -@20 = private unnamed_addr constant [34 x i8] c"stringsReader.Seek: invalid whence", align 1 -@21 = private unnamed_addr constant [37 x i8] c"stringsReader.Seek: negative position", align 1 -@22 = private unnamed_addr constant [48 x i8] c"stringsReader.UnreadByte: at beginning of string", align 1 -@23 = private unnamed_addr constant [49 x i8] c"strings.Reader.UnreadRune: at beginning of string", align 1 -@24 = private unnamed_addr constant [62 x i8] c"strings.Reader.UnreadRune: previous operation was not ReadRune", align 1 -@25 = private unnamed_addr constant [48 x i8] c"stringsReader.WriteTo: invalid WriteString count", align 1 +@31 = private unnamed_addr constant [21 x i8] c"type assertion failed", align 1 +@32 = private unnamed_addr constant [37 x i8] c"stringsReader.ReadAt: negative offset", align 1 +@33 = private unnamed_addr constant [34 x i8] c"stringsReader.Seek: invalid whence", align 1 +@34 = private unnamed_addr constant [37 x i8] c"stringsReader.Seek: negative position", align 1 +@35 = private unnamed_addr constant [48 x i8] c"stringsReader.UnreadByte: at beginning of string", align 1 +@36 = private unnamed_addr constant [49 x i8] c"strings.Reader.UnreadRune: at beginning of string", align 1 +@37 = private unnamed_addr constant [62 x i8] c"strings.Reader.UnreadRune: previous operation was not ReadRune", align 1 +@38 = private unnamed_addr constant [48 x i8] c"stringsReader.WriteTo: invalid WriteString count", align 1 define %"github.com/goplus/llgo/internal/runtime.iface" @main.NopCloser(%"github.com/goplus/llgo/internal/runtime.iface" %0) { _llgo_0: @@ -570,7 +595,7 @@ _llgo_1: ; preds = %_llgo_0 _llgo_2: ; preds = %_llgo_0 %29 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 %30 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %29, i32 0, i32 0 - store ptr @18, ptr %30, align 8 + store ptr @31, ptr %30, align 8 %31 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %29, i32 0, i32 1 store i64 21, ptr %31, align 4 %32 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %29, align 8 @@ -697,7 +722,7 @@ _llgo_0: _llgo_1: ; preds = %_llgo_0 %4 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 %5 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %4, i32 0, i32 0 - store ptr @19, ptr %5, align 8 + store ptr @32, ptr %5, align 8 %6 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %4, i32 0, i32 1 store i64 37, ptr %6, align 4 %7 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %4, align 8 @@ -889,7 +914,7 @@ _llgo_6: ; preds = %_llgo_4 _llgo_7: ; preds = %_llgo_6 %16 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 %17 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %16, i32 0, i32 0 - store ptr @20, ptr %17, align 8 + store ptr @33, ptr %17, align 8 %18 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %16, i32 0, i32 1 store i64 34, ptr %18, align 4 %19 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %16, align 8 @@ -900,7 +925,7 @@ _llgo_7: ; preds = %_llgo_6 _llgo_8: ; preds = %_llgo_1 %21 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 %22 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %21, i32 0, i32 0 - store ptr @21, ptr %22, align 8 + store ptr @34, ptr %22, align 8 %23 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %21, i32 0, i32 1 store i64 37, ptr %23, align 4 %24 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %21, align 8 @@ -934,7 +959,7 @@ _llgo_0: _llgo_1: ; preds = %_llgo_0 %4 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 %5 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %4, i32 0, i32 0 - store ptr @22, ptr %5, align 8 + store ptr @35, ptr %5, align 8 %6 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %4, i32 0, i32 1 store i64 48, ptr %6, align 4 %7 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %4, align 8 @@ -962,7 +987,7 @@ _llgo_0: _llgo_1: ; preds = %_llgo_0 %4 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 %5 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %4, i32 0, i32 0 - store ptr @23, ptr %5, align 8 + store ptr @36, ptr %5, align 8 %6 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %4, i32 0, i32 1 store i64 49, ptr %6, align 4 %7 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %4, align 8 @@ -978,7 +1003,7 @@ _llgo_2: ; preds = %_llgo_0 _llgo_3: ; preds = %_llgo_2 %12 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 %13 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %12, i32 0, i32 0 - store ptr @24, ptr %13, align 8 + store ptr @37, ptr %13, align 8 %14 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %12, i32 0, i32 1 store i64 62, ptr %14, align 4 %15 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %12, align 8 @@ -1027,7 +1052,7 @@ _llgo_2: ; preds = %_llgo_0 _llgo_3: ; preds = %_llgo_2 %20 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 %21 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %20, i32 0, i32 0 - store ptr @25, ptr %21, align 8 + store ptr @38, ptr %21, align 8 %22 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %20, i32 0, i32 1 store i64 48, ptr %22, align 4 %23 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %20, align 8 @@ -1957,103 +1982,699 @@ _llgo_35: ; preds = %_llgo_34 _llgo_36: ; preds = %_llgo_35, %_llgo_34 %505 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(i64 25, i64 0, i64 10) - %506 = call ptr @"github.com/goplus/llgo/internal/runtime.PointerTo"(ptr %505) - store ptr %506, ptr @"*_llgo_main.stringReader", align 8 - %507 = load ptr, ptr @"_llgo_func$06yPPin-fnDnxFKkLLcJ1GEUhIobjPimde7T_Id_hmY", align 8 - %508 = load ptr, ptr @"_llgo_iface$OFO8Us9n8ajWCabGedeuoJ-Za2zAMk4Jh0FunAcUCFE", align 8 - %509 = icmp eq ptr %508, null - br i1 %509, label %_llgo_37, label %_llgo_38 + store ptr %505, ptr @_llgo_main.stringReader, align 8 + %506 = load ptr, ptr @_llgo_string, align 8 + %507 = load ptr, ptr @_llgo_int64, align 8 + %508 = load ptr, ptr @_llgo_int, align 8 + %509 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %510 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %509, i32 0, i32 0 + store ptr @18, ptr %510, align 8 + %511 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %509, i32 0, i32 1 + store i64 1, ptr %511, align 4 + %512 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %509, align 8 + %513 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %514 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %513, i32 0, i32 0 + store ptr null, ptr %514, align 8 + %515 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %513, i32 0, i32 1 + store i64 0, ptr %515, align 4 + %516 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %513, align 8 + %517 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %512, ptr %506, i64 0, %"github.com/goplus/llgo/internal/runtime.String" %516, i1 false) + %518 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %519 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %518, i32 0, i32 0 + store ptr @19, ptr %519, align 8 + %520 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %518, i32 0, i32 1 + store i64 1, ptr %520, align 4 + %521 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %518, align 8 + %522 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %523 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %522, i32 0, i32 0 + store ptr null, ptr %523, align 8 + %524 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %522, i32 0, i32 1 + store i64 0, ptr %524, align 4 + %525 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %522, align 8 + %526 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %521, ptr %507, i64 16, %"github.com/goplus/llgo/internal/runtime.String" %525, i1 false) + %527 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %528 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %527, i32 0, i32 0 + store ptr @20, ptr %528, align 8 + %529 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %527, i32 0, i32 1 + store i64 8, ptr %529, align 4 + %530 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %527, align 8 + %531 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %532 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %531, i32 0, i32 0 + store ptr null, ptr %532, align 8 + %533 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %531, i32 0, i32 1 + store i64 0, ptr %533, align 4 + %534 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %531, align 8 + %535 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %530, ptr %508, i64 24, %"github.com/goplus/llgo/internal/runtime.String" %534, i1 false) + %536 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %537 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %536, i32 0, i32 0 + store ptr @1, ptr %537, align 8 + %538 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %536, i32 0, i32 1 + store i64 4, ptr %538, align 4 + %539 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %536, align 8 + %540 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 168) + %541 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %540, i64 0 + store %"github.com/goplus/llgo/internal/abi.StructField" %517, ptr %541, align 8 + %542 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %540, i64 1 + store %"github.com/goplus/llgo/internal/abi.StructField" %526, ptr %542, align 8 + %543 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %540, i64 2 + store %"github.com/goplus/llgo/internal/abi.StructField" %535, ptr %543, align 8 + %544 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %545 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %544, i32 0, i32 0 + store ptr %540, ptr %545, align 8 + %546 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %544, i32 0, i32 1 + store i64 3, ptr %546, align 4 + %547 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %544, i32 0, i32 2 + store i64 3, ptr %547, align 4 + %548 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %544, align 8 + %549 = call ptr @"github.com/goplus/llgo/internal/runtime.Struct"(%"github.com/goplus/llgo/internal/runtime.String" %539, i64 32, %"github.com/goplus/llgo/internal/runtime.Slice" %548) + store ptr %549, ptr @"main.struct$Mdt84yjYYwxF9D2i4cRmpEPiWaO6tsjtrbGUjyESypk", align 8 + %550 = load ptr, ptr @"main.struct$Mdt84yjYYwxF9D2i4cRmpEPiWaO6tsjtrbGUjyESypk", align 8 + %551 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %552 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %551, i32 0, i32 0 + store ptr @21, ptr %552, align 8 + %553 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %551, i32 0, i32 1 + store i64 3, ptr %553, align 4 + %554 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %551, align 8 + %555 = load ptr, ptr @_llgo_int, align 8 + %556 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 + %557 = icmp eq ptr %556, null + br i1 %557, label %_llgo_37, label %_llgo_38 _llgo_37: ; preds = %_llgo_36 - %510 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %511 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %510, i32 0, i32 0 - store ptr @7, ptr %511, align 8 - %512 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %510, i32 0, i32 1 - store i64 4, ptr %512, align 4 - %513 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %510, align 8 - %514 = alloca %"github.com/goplus/llgo/internal/abi.Imethod", align 8 - %515 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Imethod", ptr %514, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %513, ptr %515, align 8 - %516 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Imethod", ptr %514, i32 0, i32 1 - store ptr %507, ptr %516, align 8 - %517 = load %"github.com/goplus/llgo/internal/abi.Imethod", ptr %514, align 8 - %518 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 24) - %519 = getelementptr %"github.com/goplus/llgo/internal/abi.Imethod", ptr %518, i64 0 - store %"github.com/goplus/llgo/internal/abi.Imethod" %517, ptr %519, align 8 - %520 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %521 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %520, i32 0, i32 0 - store ptr %518, ptr %521, align 8 - %522 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %520, i32 0, i32 1 - store i64 1, ptr %522, align 4 - %523 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %520, i32 0, i32 2 - store i64 1, ptr %523, align 4 - %524 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %520, align 8 - %525 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %526 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %525, i32 0, i32 0 - store ptr @1, ptr %526, align 8 - %527 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %525, i32 0, i32 1 - store i64 4, ptr %527, align 4 - %528 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %525, align 8 - %529 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %530 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %529, i32 0, i32 0 - store ptr null, ptr %530, align 8 - %531 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %529, i32 0, i32 1 - store i64 0, ptr %531, align 4 - %532 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %529, align 8 - %533 = call ptr @"github.com/goplus/llgo/internal/runtime.Interface"(%"github.com/goplus/llgo/internal/runtime.String" %528, %"github.com/goplus/llgo/internal/runtime.String" %532, %"github.com/goplus/llgo/internal/runtime.Slice" %524) - store ptr %533, ptr @"_llgo_iface$OFO8Us9n8ajWCabGedeuoJ-Za2zAMk4Jh0FunAcUCFE", align 8 + %558 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 0) + %559 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %560 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %559, i32 0, i32 0 + store ptr %558, ptr %560, align 8 + %561 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %559, i32 0, i32 1 + store i64 0, ptr %561, align 4 + %562 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %559, i32 0, i32 2 + store i64 0, ptr %562, align 4 + %563 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %559, align 8 + %564 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 8) + %565 = getelementptr ptr, ptr %564, i64 0 + store ptr %555, ptr %565, align 8 + %566 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %567 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %566, i32 0, i32 0 + store ptr %564, ptr %567, align 8 + %568 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %566, i32 0, i32 1 + store i64 1, ptr %568, align 4 + %569 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %566, i32 0, i32 2 + store i64 1, ptr %569, align 4 + %570 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %566, align 8 + %571 = call ptr @"github.com/goplus/llgo/internal/runtime.Func"(%"github.com/goplus/llgo/internal/runtime.Slice" %563, %"github.com/goplus/llgo/internal/runtime.Slice" %570, i1 false) + store ptr %571, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 br label %_llgo_38 _llgo_38: ; preds = %_llgo_37, %_llgo_36 - %534 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(i64 25, i64 0, i64 1) - %535 = call ptr @"github.com/goplus/llgo/internal/runtime.PointerTo"(ptr %534) - store ptr %535, ptr @"*_llgo_main.errorString", align 8 - %536 = load ptr, ptr @"_llgo_func$zNDVRsWTIpUPKouNUS805RGX--IV9qVK8B31IZbg5to", align 8 - %537 = load ptr, ptr @"_llgo_iface$Fh8eUJ-Gw4e6TYuajcFIOSCuqSPKAt5nS4ow7xeGXEU", align 8 - %538 = icmp eq ptr %537, null - br i1 %538, label %_llgo_39, label %_llgo_40 + %572 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 + %573 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %574 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %573, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %554, ptr %574, align 8 + %575 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %573, i32 0, i32 1 + store ptr %572, ptr %575, align 8 + %576 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %573, i32 0, i32 2 + store ptr @"main.(*stringReader).Len", ptr %576, align 8 + %577 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %573, i32 0, i32 3 + store ptr @"main.(*stringReader).Len", ptr %577, align 8 + %578 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %573, align 8 + %579 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %580 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %579, i32 0, i32 0 + store ptr @7, ptr %580, align 8 + %581 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %579, i32 0, i32 1 + store i64 4, ptr %581, align 4 + %582 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %579, align 8 + %583 = load ptr, ptr @"_llgo_func$06yPPin-fnDnxFKkLLcJ1GEUhIobjPimde7T_Id_hmY", align 8 + %584 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %585 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %584, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %582, ptr %585, align 8 + %586 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %584, i32 0, i32 1 + store ptr %583, ptr %586, align 8 + %587 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %584, i32 0, i32 2 + store ptr @"main.(*stringReader).Read", ptr %587, align 8 + %588 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %584, i32 0, i32 3 + store ptr @"main.(*stringReader).Read", ptr %588, align 8 + %589 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %584, align 8 + %590 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %591 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %590, i32 0, i32 0 + store ptr @22, ptr %591, align 8 + %592 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %590, i32 0, i32 1 + store i64 6, ptr %592, align 4 + %593 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %590, align 8 + %594 = load ptr, ptr @"[]_llgo_byte", align 8 + %595 = load ptr, ptr @_llgo_int64, align 8 + %596 = load ptr, ptr @_llgo_int, align 8 + %597 = load ptr, ptr @_llgo_error, align 8 + %598 = load ptr, ptr @"_llgo_func$TY5Etv7VBKM_-2um1BDEeQEE2lP06Pt6G54EuKiNC3c", align 8 + %599 = icmp eq ptr %598, null + br i1 %599, label %_llgo_39, label %_llgo_40 _llgo_39: ; preds = %_llgo_38 - %539 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %540 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %539, i32 0, i32 0 - store ptr @0, ptr %540, align 8 - %541 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %539, i32 0, i32 1 - store i64 5, ptr %541, align 4 - %542 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %539, align 8 - %543 = alloca %"github.com/goplus/llgo/internal/abi.Imethod", align 8 - %544 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Imethod", ptr %543, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %542, ptr %544, align 8 - %545 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Imethod", ptr %543, i32 0, i32 1 - store ptr %536, ptr %545, align 8 - %546 = load %"github.com/goplus/llgo/internal/abi.Imethod", ptr %543, align 8 - %547 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 24) - %548 = getelementptr %"github.com/goplus/llgo/internal/abi.Imethod", ptr %547, i64 0 - store %"github.com/goplus/llgo/internal/abi.Imethod" %546, ptr %548, align 8 - %549 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %550 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %549, i32 0, i32 0 - store ptr %547, ptr %550, align 8 - %551 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %549, i32 0, i32 1 - store i64 1, ptr %551, align 4 - %552 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %549, i32 0, i32 2 - store i64 1, ptr %552, align 4 - %553 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %549, align 8 - %554 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %555 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %554, i32 0, i32 0 - store ptr @1, ptr %555, align 8 - %556 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %554, i32 0, i32 1 - store i64 4, ptr %556, align 4 - %557 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %554, align 8 - %558 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %559 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %558, i32 0, i32 0 - store ptr null, ptr %559, align 8 - %560 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %558, i32 0, i32 1 - store i64 0, ptr %560, align 4 - %561 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %558, align 8 - %562 = call ptr @"github.com/goplus/llgo/internal/runtime.Interface"(%"github.com/goplus/llgo/internal/runtime.String" %557, %"github.com/goplus/llgo/internal/runtime.String" %561, %"github.com/goplus/llgo/internal/runtime.Slice" %553) - store ptr %562, ptr @"_llgo_iface$Fh8eUJ-Gw4e6TYuajcFIOSCuqSPKAt5nS4ow7xeGXEU", align 8 + %600 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 16) + %601 = getelementptr ptr, ptr %600, i64 0 + store ptr %594, ptr %601, align 8 + %602 = getelementptr ptr, ptr %600, i64 1 + store ptr %595, ptr %602, align 8 + %603 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %604 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %603, i32 0, i32 0 + store ptr %600, ptr %604, align 8 + %605 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %603, i32 0, i32 1 + store i64 2, ptr %605, align 4 + %606 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %603, i32 0, i32 2 + store i64 2, ptr %606, align 4 + %607 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %603, align 8 + %608 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 16) + %609 = getelementptr ptr, ptr %608, i64 0 + store ptr %596, ptr %609, align 8 + %610 = getelementptr ptr, ptr %608, i64 1 + store ptr %597, ptr %610, align 8 + %611 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %612 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %611, i32 0, i32 0 + store ptr %608, ptr %612, align 8 + %613 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %611, i32 0, i32 1 + store i64 2, ptr %613, align 4 + %614 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %611, i32 0, i32 2 + store i64 2, ptr %614, align 4 + %615 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %611, align 8 + %616 = call ptr @"github.com/goplus/llgo/internal/runtime.Func"(%"github.com/goplus/llgo/internal/runtime.Slice" %607, %"github.com/goplus/llgo/internal/runtime.Slice" %615, i1 false) + store ptr %616, ptr @"_llgo_func$TY5Etv7VBKM_-2um1BDEeQEE2lP06Pt6G54EuKiNC3c", align 8 br label %_llgo_40 _llgo_40: ; preds = %_llgo_39, %_llgo_38 + %617 = load ptr, ptr @"_llgo_func$TY5Etv7VBKM_-2um1BDEeQEE2lP06Pt6G54EuKiNC3c", align 8 + %618 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %619 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %618, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %593, ptr %619, align 8 + %620 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %618, i32 0, i32 1 + store ptr %617, ptr %620, align 8 + %621 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %618, i32 0, i32 2 + store ptr @"main.(*stringReader).ReadAt", ptr %621, align 8 + %622 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %618, i32 0, i32 3 + store ptr @"main.(*stringReader).ReadAt", ptr %622, align 8 + %623 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %618, align 8 + %624 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %625 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %624, i32 0, i32 0 + store ptr @23, ptr %625, align 8 + %626 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %624, i32 0, i32 1 + store i64 8, ptr %626, align 4 + %627 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %624, align 8 + %628 = load ptr, ptr @_llgo_byte, align 8 + %629 = icmp eq ptr %628, null + br i1 %629, label %_llgo_41, label %_llgo_42 + +_llgo_41: ; preds = %_llgo_40 + %630 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 8) + %631 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Type", ptr %630, i32 0, i32 6 + %632 = load i8, ptr %631, align 1 + %633 = or i8 %632, 32 + store i8 %633, ptr %631, align 1 + store ptr %630, ptr @_llgo_byte, align 8 + br label %_llgo_42 + +_llgo_42: ; preds = %_llgo_41, %_llgo_40 + %634 = load ptr, ptr @_llgo_byte, align 8 + %635 = load ptr, ptr @_llgo_error, align 8 + %636 = load ptr, ptr @"_llgo_func$6bvVpCcGPUc3z_EmsQTHB0AVT1hP5-NNLVRgm43teCM", align 8 + %637 = icmp eq ptr %636, null + br i1 %637, label %_llgo_43, label %_llgo_44 + +_llgo_43: ; preds = %_llgo_42 + %638 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 0) + %639 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %640 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %639, i32 0, i32 0 + store ptr %638, ptr %640, align 8 + %641 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %639, i32 0, i32 1 + store i64 0, ptr %641, align 4 + %642 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %639, i32 0, i32 2 + store i64 0, ptr %642, align 4 + %643 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %639, align 8 + %644 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 16) + %645 = getelementptr ptr, ptr %644, i64 0 + store ptr %634, ptr %645, align 8 + %646 = getelementptr ptr, ptr %644, i64 1 + store ptr %635, ptr %646, align 8 + %647 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %648 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %647, i32 0, i32 0 + store ptr %644, ptr %648, align 8 + %649 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %647, i32 0, i32 1 + store i64 2, ptr %649, align 4 + %650 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %647, i32 0, i32 2 + store i64 2, ptr %650, align 4 + %651 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %647, align 8 + %652 = call ptr @"github.com/goplus/llgo/internal/runtime.Func"(%"github.com/goplus/llgo/internal/runtime.Slice" %643, %"github.com/goplus/llgo/internal/runtime.Slice" %651, i1 false) + store ptr %652, ptr @"_llgo_func$6bvVpCcGPUc3z_EmsQTHB0AVT1hP5-NNLVRgm43teCM", align 8 + br label %_llgo_44 + +_llgo_44: ; preds = %_llgo_43, %_llgo_42 + %653 = load ptr, ptr @"_llgo_func$6bvVpCcGPUc3z_EmsQTHB0AVT1hP5-NNLVRgm43teCM", align 8 + %654 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %655 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %654, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %627, ptr %655, align 8 + %656 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %654, i32 0, i32 1 + store ptr %653, ptr %656, align 8 + %657 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %654, i32 0, i32 2 + store ptr @"main.(*stringReader).ReadByte", ptr %657, align 8 + %658 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %654, i32 0, i32 3 + store ptr @"main.(*stringReader).ReadByte", ptr %658, align 8 + %659 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %654, align 8 + %660 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %661 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %660, i32 0, i32 0 + store ptr @24, ptr %661, align 8 + %662 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %660, i32 0, i32 1 + store i64 8, ptr %662, align 4 + %663 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %660, align 8 + %664 = load ptr, ptr @_llgo_rune, align 8 + %665 = icmp eq ptr %664, null + br i1 %665, label %_llgo_45, label %_llgo_46 + +_llgo_45: ; preds = %_llgo_44 + %666 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 5) + %667 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Type", ptr %666, i32 0, i32 6 + %668 = load i8, ptr %667, align 1 + %669 = or i8 %668, 32 + store i8 %669, ptr %667, align 1 + store ptr %666, ptr @_llgo_rune, align 8 + br label %_llgo_46 + +_llgo_46: ; preds = %_llgo_45, %_llgo_44 + %670 = load ptr, ptr @_llgo_rune, align 8 + %671 = load ptr, ptr @_llgo_int, align 8 + %672 = load ptr, ptr @_llgo_error, align 8 + %673 = load ptr, ptr @"_llgo_func$CB0CO6hV_feSzhi4pz1P4omza2fKNK930wvOR1T33fU", align 8 + %674 = icmp eq ptr %673, null + br i1 %674, label %_llgo_47, label %_llgo_48 + +_llgo_47: ; preds = %_llgo_46 + %675 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 0) + %676 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %677 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %676, i32 0, i32 0 + store ptr %675, ptr %677, align 8 + %678 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %676, i32 0, i32 1 + store i64 0, ptr %678, align 4 + %679 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %676, i32 0, i32 2 + store i64 0, ptr %679, align 4 + %680 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %676, align 8 + %681 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 24) + %682 = getelementptr ptr, ptr %681, i64 0 + store ptr %670, ptr %682, align 8 + %683 = getelementptr ptr, ptr %681, i64 1 + store ptr %671, ptr %683, align 8 + %684 = getelementptr ptr, ptr %681, i64 2 + store ptr %672, ptr %684, align 8 + %685 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %686 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %685, i32 0, i32 0 + store ptr %681, ptr %686, align 8 + %687 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %685, i32 0, i32 1 + store i64 3, ptr %687, align 4 + %688 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %685, i32 0, i32 2 + store i64 3, ptr %688, align 4 + %689 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %685, align 8 + %690 = call ptr @"github.com/goplus/llgo/internal/runtime.Func"(%"github.com/goplus/llgo/internal/runtime.Slice" %680, %"github.com/goplus/llgo/internal/runtime.Slice" %689, i1 false) + store ptr %690, ptr @"_llgo_func$CB0CO6hV_feSzhi4pz1P4omza2fKNK930wvOR1T33fU", align 8 + br label %_llgo_48 + +_llgo_48: ; preds = %_llgo_47, %_llgo_46 + %691 = load ptr, ptr @"_llgo_func$CB0CO6hV_feSzhi4pz1P4omza2fKNK930wvOR1T33fU", align 8 + %692 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %693 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %692, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %663, ptr %693, align 8 + %694 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %692, i32 0, i32 1 + store ptr %691, ptr %694, align 8 + %695 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %692, i32 0, i32 2 + store ptr @"main.(*stringReader).ReadRune", ptr %695, align 8 + %696 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %692, i32 0, i32 3 + store ptr @"main.(*stringReader).ReadRune", ptr %696, align 8 + %697 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %692, align 8 + %698 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %699 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %698, i32 0, i32 0 + store ptr @25, ptr %699, align 8 + %700 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %698, i32 0, i32 1 + store i64 4, ptr %700, align 4 + %701 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %698, align 8 + %702 = load ptr, ptr @_llgo_int64, align 8 + %703 = load ptr, ptr @_llgo_int, align 8 + %704 = load ptr, ptr @_llgo_int64, align 8 + %705 = load ptr, ptr @_llgo_error, align 8 + %706 = load ptr, ptr @"_llgo_func$HE7H49xPa1uXmrkMDpqB3RCRGf3qzhLGrxKCEXOYjms", align 8 + %707 = icmp eq ptr %706, null + br i1 %707, label %_llgo_49, label %_llgo_50 + +_llgo_49: ; preds = %_llgo_48 + %708 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 16) + %709 = getelementptr ptr, ptr %708, i64 0 + store ptr %702, ptr %709, align 8 + %710 = getelementptr ptr, ptr %708, i64 1 + store ptr %703, ptr %710, align 8 + %711 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %712 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %711, i32 0, i32 0 + store ptr %708, ptr %712, align 8 + %713 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %711, i32 0, i32 1 + store i64 2, ptr %713, align 4 + %714 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %711, i32 0, i32 2 + store i64 2, ptr %714, align 4 + %715 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %711, align 8 + %716 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 16) + %717 = getelementptr ptr, ptr %716, i64 0 + store ptr %704, ptr %717, align 8 + %718 = getelementptr ptr, ptr %716, i64 1 + store ptr %705, ptr %718, align 8 + %719 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %720 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %719, i32 0, i32 0 + store ptr %716, ptr %720, align 8 + %721 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %719, i32 0, i32 1 + store i64 2, ptr %721, align 4 + %722 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %719, i32 0, i32 2 + store i64 2, ptr %722, align 4 + %723 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %719, align 8 + %724 = call ptr @"github.com/goplus/llgo/internal/runtime.Func"(%"github.com/goplus/llgo/internal/runtime.Slice" %715, %"github.com/goplus/llgo/internal/runtime.Slice" %723, i1 false) + store ptr %724, ptr @"_llgo_func$HE7H49xPa1uXmrkMDpqB3RCRGf3qzhLGrxKCEXOYjms", align 8 + br label %_llgo_50 + +_llgo_50: ; preds = %_llgo_49, %_llgo_48 + %725 = load ptr, ptr @"_llgo_func$HE7H49xPa1uXmrkMDpqB3RCRGf3qzhLGrxKCEXOYjms", align 8 + %726 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %727 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %726, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %701, ptr %727, align 8 + %728 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %726, i32 0, i32 1 + store ptr %725, ptr %728, align 8 + %729 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %726, i32 0, i32 2 + store ptr @"main.(*stringReader).Seek", ptr %729, align 8 + %730 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %726, i32 0, i32 3 + store ptr @"main.(*stringReader).Seek", ptr %730, align 8 + %731 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %726, align 8 + %732 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %733 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %732, i32 0, i32 0 + store ptr @26, ptr %733, align 8 + %734 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %732, i32 0, i32 1 + store i64 4, ptr %734, align 4 + %735 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %732, align 8 + %736 = load ptr, ptr @_llgo_int64, align 8 + %737 = load ptr, ptr @"_llgo_func$Eoig9xhJM5GShHH5aNPxTZZXp1IZxprRl4zPuv2hkug", align 8 + %738 = icmp eq ptr %737, null + br i1 %738, label %_llgo_51, label %_llgo_52 + +_llgo_51: ; preds = %_llgo_50 + %739 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 0) + %740 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %741 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %740, i32 0, i32 0 + store ptr %739, ptr %741, align 8 + %742 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %740, i32 0, i32 1 + store i64 0, ptr %742, align 4 + %743 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %740, i32 0, i32 2 + store i64 0, ptr %743, align 4 + %744 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %740, align 8 + %745 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 8) + %746 = getelementptr ptr, ptr %745, i64 0 + store ptr %736, ptr %746, align 8 + %747 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %748 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %747, i32 0, i32 0 + store ptr %745, ptr %748, align 8 + %749 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %747, i32 0, i32 1 + store i64 1, ptr %749, align 4 + %750 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %747, i32 0, i32 2 + store i64 1, ptr %750, align 4 + %751 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %747, align 8 + %752 = call ptr @"github.com/goplus/llgo/internal/runtime.Func"(%"github.com/goplus/llgo/internal/runtime.Slice" %744, %"github.com/goplus/llgo/internal/runtime.Slice" %751, i1 false) + store ptr %752, ptr @"_llgo_func$Eoig9xhJM5GShHH5aNPxTZZXp1IZxprRl4zPuv2hkug", align 8 + br label %_llgo_52 + +_llgo_52: ; preds = %_llgo_51, %_llgo_50 + %753 = load ptr, ptr @"_llgo_func$Eoig9xhJM5GShHH5aNPxTZZXp1IZxprRl4zPuv2hkug", align 8 + %754 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %755 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %754, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %735, ptr %755, align 8 + %756 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %754, i32 0, i32 1 + store ptr %753, ptr %756, align 8 + %757 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %754, i32 0, i32 2 + store ptr @"main.(*stringReader).Size", ptr %757, align 8 + %758 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %754, i32 0, i32 3 + store ptr @"main.(*stringReader).Size", ptr %758, align 8 + %759 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %754, align 8 + %760 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %761 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %760, i32 0, i32 0 + store ptr @27, ptr %761, align 8 + %762 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %760, i32 0, i32 1 + store i64 10, ptr %762, align 4 + %763 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %760, align 8 + %764 = load ptr, ptr @"_llgo_func$8rsrSd_r3UHd_2DiYTyaOKR7BYkei4zw5ysG35KF38w", align 8 + %765 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %766 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %765, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %763, ptr %766, align 8 + %767 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %765, i32 0, i32 1 + store ptr %764, ptr %767, align 8 + %768 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %765, i32 0, i32 2 + store ptr @"main.(*stringReader).UnreadByte", ptr %768, align 8 + %769 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %765, i32 0, i32 3 + store ptr @"main.(*stringReader).UnreadByte", ptr %769, align 8 + %770 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %765, align 8 + %771 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %772 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %771, i32 0, i32 0 + store ptr @28, ptr %772, align 8 + %773 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %771, i32 0, i32 1 + store i64 10, ptr %773, align 4 + %774 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %771, align 8 + %775 = load ptr, ptr @"_llgo_func$8rsrSd_r3UHd_2DiYTyaOKR7BYkei4zw5ysG35KF38w", align 8 + %776 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %777 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %776, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %774, ptr %777, align 8 + %778 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %776, i32 0, i32 1 + store ptr %775, ptr %778, align 8 + %779 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %776, i32 0, i32 2 + store ptr @"main.(*stringReader).UnreadRune", ptr %779, align 8 + %780 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %776, i32 0, i32 3 + store ptr @"main.(*stringReader).UnreadRune", ptr %780, align 8 + %781 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %776, align 8 + %782 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %783 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %782, i32 0, i32 0 + store ptr @5, ptr %783, align 8 + %784 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %782, i32 0, i32 1 + store i64 7, ptr %784, align 4 + %785 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %782, align 8 + %786 = load ptr, ptr @"_llgo_func$MrYxYl10p_I07B55pBsGw9la9zbzU2vGDPLWrT714Uk", align 8 + %787 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %788 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %787, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %785, ptr %788, align 8 + %789 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %787, i32 0, i32 1 + store ptr %786, ptr %789, align 8 + %790 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %787, i32 0, i32 2 + store ptr @"main.(*stringReader).WriteTo", ptr %790, align 8 + %791 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %787, i32 0, i32 3 + store ptr @"main.(*stringReader).WriteTo", ptr %791, align 8 + %792 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %787, align 8 + %793 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 400) + %794 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %793, i64 0 + store %"github.com/goplus/llgo/internal/abi.Method" %578, ptr %794, align 8 + %795 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %793, i64 1 + store %"github.com/goplus/llgo/internal/abi.Method" %589, ptr %795, align 8 + %796 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %793, i64 2 + store %"github.com/goplus/llgo/internal/abi.Method" %623, ptr %796, align 8 + %797 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %793, i64 3 + store %"github.com/goplus/llgo/internal/abi.Method" %659, ptr %797, align 8 + %798 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %793, i64 4 + store %"github.com/goplus/llgo/internal/abi.Method" %697, ptr %798, align 8 + %799 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %793, i64 5 + store %"github.com/goplus/llgo/internal/abi.Method" %731, ptr %799, align 8 + %800 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %793, i64 6 + store %"github.com/goplus/llgo/internal/abi.Method" %759, ptr %800, align 8 + %801 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %793, i64 7 + store %"github.com/goplus/llgo/internal/abi.Method" %770, ptr %801, align 8 + %802 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %793, i64 8 + store %"github.com/goplus/llgo/internal/abi.Method" %781, ptr %802, align 8 + %803 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %793, i64 9 + store %"github.com/goplus/llgo/internal/abi.Method" %792, ptr %803, align 8 + %804 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %805 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %804, i32 0, i32 0 + store ptr %793, ptr %805, align 8 + %806 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %804, i32 0, i32 1 + store i64 10, ptr %806, align 4 + %807 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %804, i32 0, i32 2 + store i64 10, ptr %807, align 4 + %808 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %804, align 8 + %809 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %810 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %809, i32 0, i32 0 + store ptr @1, ptr %810, align 8 + %811 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %809, i32 0, i32 1 + store i64 4, ptr %811, align 4 + %812 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %809, align 8 + %813 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %814 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %813, i32 0, i32 0 + store ptr @29, ptr %814, align 8 + %815 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %813, i32 0, i32 1 + store i64 12, ptr %815, align 4 + %816 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %813, align 8 + call void @"github.com/goplus/llgo/internal/runtime.InitNamed"(ptr %505, %"github.com/goplus/llgo/internal/runtime.String" %812, %"github.com/goplus/llgo/internal/runtime.String" %816, ptr %550, { ptr, i64, i64 } zeroinitializer, %"github.com/goplus/llgo/internal/runtime.Slice" %808) + %817 = call ptr @"github.com/goplus/llgo/internal/runtime.PointerTo"(ptr %505) + store ptr %817, ptr @"*_llgo_main.stringReader", align 8 + %818 = load ptr, ptr @"_llgo_func$06yPPin-fnDnxFKkLLcJ1GEUhIobjPimde7T_Id_hmY", align 8 + %819 = load ptr, ptr @"_llgo_iface$OFO8Us9n8ajWCabGedeuoJ-Za2zAMk4Jh0FunAcUCFE", align 8 + %820 = icmp eq ptr %819, null + br i1 %820, label %_llgo_53, label %_llgo_54 + +_llgo_53: ; preds = %_llgo_52 + %821 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %822 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %821, i32 0, i32 0 + store ptr @7, ptr %822, align 8 + %823 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %821, i32 0, i32 1 + store i64 4, ptr %823, align 4 + %824 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %821, align 8 + %825 = alloca %"github.com/goplus/llgo/internal/abi.Imethod", align 8 + %826 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Imethod", ptr %825, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %824, ptr %826, align 8 + %827 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Imethod", ptr %825, i32 0, i32 1 + store ptr %818, ptr %827, align 8 + %828 = load %"github.com/goplus/llgo/internal/abi.Imethod", ptr %825, align 8 + %829 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 24) + %830 = getelementptr %"github.com/goplus/llgo/internal/abi.Imethod", ptr %829, i64 0 + store %"github.com/goplus/llgo/internal/abi.Imethod" %828, ptr %830, align 8 + %831 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %832 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %831, i32 0, i32 0 + store ptr %829, ptr %832, align 8 + %833 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %831, i32 0, i32 1 + store i64 1, ptr %833, align 4 + %834 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %831, i32 0, i32 2 + store i64 1, ptr %834, align 4 + %835 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %831, align 8 + %836 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %837 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %836, i32 0, i32 0 + store ptr @1, ptr %837, align 8 + %838 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %836, i32 0, i32 1 + store i64 4, ptr %838, align 4 + %839 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %836, align 8 + %840 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %841 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %840, i32 0, i32 0 + store ptr null, ptr %841, align 8 + %842 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %840, i32 0, i32 1 + store i64 0, ptr %842, align 4 + %843 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %840, align 8 + %844 = call ptr @"github.com/goplus/llgo/internal/runtime.Interface"(%"github.com/goplus/llgo/internal/runtime.String" %839, %"github.com/goplus/llgo/internal/runtime.String" %843, %"github.com/goplus/llgo/internal/runtime.Slice" %835) + store ptr %844, ptr @"_llgo_iface$OFO8Us9n8ajWCabGedeuoJ-Za2zAMk4Jh0FunAcUCFE", align 8 + br label %_llgo_54 + +_llgo_54: ; preds = %_llgo_53, %_llgo_52 + %845 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(i64 25, i64 0, i64 1) + store ptr %845, ptr @_llgo_main.errorString, align 8 + %846 = load ptr, ptr @_llgo_string, align 8 + %847 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %848 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %847, i32 0, i32 0 + store ptr @18, ptr %848, align 8 + %849 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %847, i32 0, i32 1 + store i64 1, ptr %849, align 4 + %850 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %847, align 8 + %851 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %852 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %851, i32 0, i32 0 + store ptr null, ptr %852, align 8 + %853 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %851, i32 0, i32 1 + store i64 0, ptr %853, align 4 + %854 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %851, align 8 + %855 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %850, ptr %846, i64 0, %"github.com/goplus/llgo/internal/runtime.String" %854, i1 false) + %856 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %857 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %856, i32 0, i32 0 + store ptr @1, ptr %857, align 8 + %858 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %856, i32 0, i32 1 + store i64 4, ptr %858, align 4 + %859 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %856, align 8 + %860 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 56) + %861 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %860, i64 0 + store %"github.com/goplus/llgo/internal/abi.StructField" %855, ptr %861, align 8 + %862 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %863 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %862, i32 0, i32 0 + store ptr %860, ptr %863, align 8 + %864 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %862, i32 0, i32 1 + store i64 1, ptr %864, align 4 + %865 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %862, i32 0, i32 2 + store i64 1, ptr %865, align 4 + %866 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %862, align 8 + %867 = call ptr @"github.com/goplus/llgo/internal/runtime.Struct"(%"github.com/goplus/llgo/internal/runtime.String" %859, i64 16, %"github.com/goplus/llgo/internal/runtime.Slice" %866) + store ptr %867, ptr @"main.struct$QTufDJA9wEDzuzgkA-ZSrLqW-B6lWN8O25mTSglAoLQ", align 8 + %868 = load ptr, ptr @"main.struct$QTufDJA9wEDzuzgkA-ZSrLqW-B6lWN8O25mTSglAoLQ", align 8 + %869 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %870 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %869, i32 0, i32 0 + store ptr @0, ptr %870, align 8 + %871 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %869, i32 0, i32 1 + store i64 5, ptr %871, align 4 + %872 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %869, align 8 + %873 = load ptr, ptr @"_llgo_func$zNDVRsWTIpUPKouNUS805RGX--IV9qVK8B31IZbg5to", align 8 + %874 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %875 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %874, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %872, ptr %875, align 8 + %876 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %874, i32 0, i32 1 + store ptr %873, ptr %876, align 8 + %877 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %874, i32 0, i32 2 + store ptr @"main.(*errorString).Error", ptr %877, align 8 + %878 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %874, i32 0, i32 3 + store ptr @"main.(*errorString).Error", ptr %878, align 8 + %879 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %874, align 8 + %880 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 40) + %881 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %880, i64 0 + store %"github.com/goplus/llgo/internal/abi.Method" %879, ptr %881, align 8 + %882 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %883 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %882, i32 0, i32 0 + store ptr %880, ptr %883, align 8 + %884 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %882, i32 0, i32 1 + store i64 1, ptr %884, align 4 + %885 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %882, i32 0, i32 2 + store i64 1, ptr %885, align 4 + %886 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %882, align 8 + %887 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %888 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %887, i32 0, i32 0 + store ptr @1, ptr %888, align 8 + %889 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %887, i32 0, i32 1 + store i64 4, ptr %889, align 4 + %890 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %887, align 8 + %891 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %892 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %891, i32 0, i32 0 + store ptr @30, ptr %892, align 8 + %893 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %891, i32 0, i32 1 + store i64 11, ptr %893, align 4 + %894 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %891, align 8 + call void @"github.com/goplus/llgo/internal/runtime.InitNamed"(ptr %845, %"github.com/goplus/llgo/internal/runtime.String" %890, %"github.com/goplus/llgo/internal/runtime.String" %894, ptr %868, { ptr, i64, i64 } zeroinitializer, %"github.com/goplus/llgo/internal/runtime.Slice" %886) + %895 = call ptr @"github.com/goplus/llgo/internal/runtime.PointerTo"(ptr %845) + store ptr %895, ptr @"*_llgo_main.errorString", align 8 + %896 = load ptr, ptr @"_llgo_func$zNDVRsWTIpUPKouNUS805RGX--IV9qVK8B31IZbg5to", align 8 + %897 = load ptr, ptr @"_llgo_iface$Fh8eUJ-Gw4e6TYuajcFIOSCuqSPKAt5nS4ow7xeGXEU", align 8 + %898 = icmp eq ptr %897, null + br i1 %898, label %_llgo_55, label %_llgo_56 + +_llgo_55: ; preds = %_llgo_54 + %899 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %900 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %899, i32 0, i32 0 + store ptr @0, ptr %900, align 8 + %901 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %899, i32 0, i32 1 + store i64 5, ptr %901, align 4 + %902 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %899, align 8 + %903 = alloca %"github.com/goplus/llgo/internal/abi.Imethod", align 8 + %904 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Imethod", ptr %903, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %902, ptr %904, align 8 + %905 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Imethod", ptr %903, i32 0, i32 1 + store ptr %896, ptr %905, align 8 + %906 = load %"github.com/goplus/llgo/internal/abi.Imethod", ptr %903, align 8 + %907 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 24) + %908 = getelementptr %"github.com/goplus/llgo/internal/abi.Imethod", ptr %907, i64 0 + store %"github.com/goplus/llgo/internal/abi.Imethod" %906, ptr %908, align 8 + %909 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %910 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %909, i32 0, i32 0 + store ptr %907, ptr %910, align 8 + %911 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %909, i32 0, i32 1 + store i64 1, ptr %911, align 4 + %912 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %909, i32 0, i32 2 + store i64 1, ptr %912, align 4 + %913 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %909, align 8 + %914 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %915 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %914, i32 0, i32 0 + store ptr @1, ptr %915, align 8 + %916 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %914, i32 0, i32 1 + store i64 4, ptr %916, align 4 + %917 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %914, align 8 + %918 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %919 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %918, i32 0, i32 0 + store ptr null, ptr %919, align 8 + %920 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %918, i32 0, i32 1 + store i64 0, ptr %920, align 4 + %921 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %918, align 8 + %922 = call ptr @"github.com/goplus/llgo/internal/runtime.Interface"(%"github.com/goplus/llgo/internal/runtime.String" %917, %"github.com/goplus/llgo/internal/runtime.String" %921, %"github.com/goplus/llgo/internal/runtime.Slice" %913) + store ptr %922, ptr @"_llgo_iface$Fh8eUJ-Gw4e6TYuajcFIOSCuqSPKAt5nS4ow7xeGXEU", align 8 + br label %_llgo_56 + +_llgo_56: ; preds = %_llgo_55, %_llgo_54 ret void } diff --git a/cl/_testgo/struczero/out.ll b/cl/_testgo/struczero/out.ll index 03daddf4..dbb47034 100644 --- a/cl/_testgo/struczero/out.ll +++ b/cl/_testgo/struczero/out.ll @@ -13,6 +13,7 @@ source_filename = "main" @"main.init$guard" = global i1 false, align 1 @"_llgo_github.com/goplus/llgo/cl/internal/foo.Foo" = linkonce global ptr null, align 8 @"main.struct$qQwZyFy_4JRalRxVVsVD8R09X5t58tWjTrtJPtHbEjs" = global ptr null, align 8 +@_llgo_byte = linkonce global ptr null, align 8 @"*_llgo_byte" = linkonce global ptr null, align 8 @_llgo_float32 = linkonce global ptr null, align 8 @0 = private unnamed_addr constant [2 x i8] c"pb", align 1 @@ -190,254 +191,268 @@ _llgo_1: ; preds = %_llgo_0 br label %_llgo_2 _llgo_2: ; preds = %_llgo_1, %_llgo_0 - %3 = load ptr, ptr @"*_llgo_byte", align 8 + %3 = load ptr, ptr @_llgo_byte, align 8 %4 = icmp eq ptr %3, null br i1 %4, label %_llgo_3, label %_llgo_4 _llgo_3: ; preds = %_llgo_2 %5 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 8) - %6 = call ptr @"github.com/goplus/llgo/internal/runtime.PointerTo"(ptr %5) - store ptr %6, ptr @"*_llgo_byte", align 8 + %6 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Type", ptr %5, i32 0, i32 6 + %7 = load i8, ptr %6, align 1 + %8 = or i8 %7, 32 + store i8 %8, ptr %6, align 1 + store ptr %5, ptr @_llgo_byte, align 8 br label %_llgo_4 _llgo_4: ; preds = %_llgo_3, %_llgo_2 - %7 = load ptr, ptr @"*_llgo_byte", align 8 - %8 = load ptr, ptr @_llgo_float32, align 8 - %9 = icmp eq ptr %8, null - br i1 %9, label %_llgo_5, label %_llgo_6 + %9 = load ptr, ptr @"*_llgo_byte", align 8 + %10 = icmp eq ptr %9, null + br i1 %10, label %_llgo_5, label %_llgo_6 _llgo_5: ; preds = %_llgo_4 - %10 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 13) - %11 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Type", ptr %10, i32 0, i32 6 - %12 = load i8, ptr %11, align 1 - %13 = or i8 %12, 32 - store i8 %13, ptr %11, align 1 - store ptr %10, ptr @_llgo_float32, align 8 + %11 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 8) + %12 = call ptr @"github.com/goplus/llgo/internal/runtime.PointerTo"(ptr %11) + store ptr %12, ptr @"*_llgo_byte", align 8 br label %_llgo_6 _llgo_6: ; preds = %_llgo_5, %_llgo_4 + %13 = load ptr, ptr @"*_llgo_byte", align 8 %14 = load ptr, ptr @_llgo_float32, align 8 - %15 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %16 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %15, i32 0, i32 0 - store ptr @0, ptr %16, align 8 - %17 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %15, i32 0, i32 1 - store i64 2, ptr %17, align 4 - %18 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %15, align 8 - %19 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %20 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %19, i32 0, i32 0 - store ptr null, ptr %20, align 8 - %21 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %19, i32 0, i32 1 - store i64 0, ptr %21, align 4 - %22 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %19, align 8 - %23 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %18, ptr %7, i64 0, %"github.com/goplus/llgo/internal/runtime.String" %22, i1 false) - %24 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %25 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %24, i32 0, i32 0 - store ptr @1, ptr %25, align 8 - %26 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %24, i32 0, i32 1 - store i64 1, ptr %26, align 4 - %27 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %24, align 8 - %28 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %29 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %28, i32 0, i32 0 - store ptr null, ptr %29, align 8 - %30 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %28, i32 0, i32 1 - store i64 0, ptr %30, align 4 - %31 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %28, align 8 - %32 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %27, ptr %14, i64 8, %"github.com/goplus/llgo/internal/runtime.String" %31, i1 false) - %33 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %34 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %33, i32 0, i32 0 - store ptr @2, ptr %34, align 8 - %35 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %33, i32 0, i32 1 - store i64 4, ptr %35, align 4 - %36 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %33, align 8 - %37 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 112) - %38 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %37, i64 0 - store %"github.com/goplus/llgo/internal/abi.StructField" %23, ptr %38, align 8 - %39 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %37, i64 1 - store %"github.com/goplus/llgo/internal/abi.StructField" %32, ptr %39, align 8 - %40 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %41 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %40, i32 0, i32 0 - store ptr %37, ptr %41, align 8 - %42 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %40, i32 0, i32 1 - store i64 2, ptr %42, align 4 - %43 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %40, i32 0, i32 2 - store i64 2, ptr %43, align 4 - %44 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %40, align 8 - %45 = call ptr @"github.com/goplus/llgo/internal/runtime.Struct"(%"github.com/goplus/llgo/internal/runtime.String" %36, i64 16, %"github.com/goplus/llgo/internal/runtime.Slice" %44) - store ptr %45, ptr @"main.struct$qQwZyFy_4JRalRxVVsVD8R09X5t58tWjTrtJPtHbEjs", align 8 - %46 = load ptr, ptr @"main.struct$qQwZyFy_4JRalRxVVsVD8R09X5t58tWjTrtJPtHbEjs", align 8 - br i1 %1, label %_llgo_7, label %_llgo_8 + %15 = icmp eq ptr %14, null + br i1 %15, label %_llgo_7, label %_llgo_8 _llgo_7: ; preds = %_llgo_6 - %47 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %48 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %47, i32 0, i32 0 - store ptr @3, ptr %48, align 8 - %49 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %47, i32 0, i32 1 - store i64 2, ptr %49, align 4 - %50 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %47, align 8 - %51 = load ptr, ptr @"*_llgo_byte", align 8 - %52 = load ptr, ptr @"_llgo_func$NfGSLZ1QiKRoFkKeqYSXE5hUU5bpeteSJKrbMNUzYRE", align 8 - %53 = icmp eq ptr %52, null - br i1 %53, label %_llgo_9, label %_llgo_10 + %16 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 13) + %17 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Type", ptr %16, i32 0, i32 6 + %18 = load i8, ptr %17, align 1 + %19 = or i8 %18, 32 + store i8 %19, ptr %17, align 1 + store ptr %16, ptr @_llgo_float32, align 8 + br label %_llgo_8 -_llgo_8: ; preds = %_llgo_10, %_llgo_6 - %54 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(i64 25, i64 0, i64 0) - store ptr %54, ptr @_llgo_main.bar, align 8 - %55 = load ptr, ptr @"*_llgo_byte", align 8 - %56 = load ptr, ptr @_llgo_float32, align 8 - %57 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %58 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %57, i32 0, i32 0 - store ptr @0, ptr %58, align 8 - %59 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %57, i32 0, i32 1 - store i64 2, ptr %59, align 4 - %60 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %57, align 8 - %61 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %62 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %61, i32 0, i32 0 - store ptr null, ptr %62, align 8 - %63 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %61, i32 0, i32 1 - store i64 0, ptr %63, align 4 - %64 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %61, align 8 - %65 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %60, ptr %55, i64 0, %"github.com/goplus/llgo/internal/runtime.String" %64, i1 false) - %66 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %67 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %66, i32 0, i32 0 - store ptr @6, ptr %67, align 8 - %68 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %66, i32 0, i32 1 - store i64 1, ptr %68, align 4 - %69 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %66, align 8 - %70 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %71 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %70, i32 0, i32 0 - store ptr null, ptr %71, align 8 - %72 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %70, i32 0, i32 1 - store i64 0, ptr %72, align 4 - %73 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %70, align 8 - %74 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %69, ptr %56, i64 8, %"github.com/goplus/llgo/internal/runtime.String" %73, i1 false) - %75 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %76 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %75, i32 0, i32 0 - store ptr @2, ptr %76, align 8 - %77 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %75, i32 0, i32 1 - store i64 4, ptr %77, align 4 - %78 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %75, align 8 - %79 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 112) - %80 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %79, i64 0 - store %"github.com/goplus/llgo/internal/abi.StructField" %65, ptr %80, align 8 - %81 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %79, i64 1 - store %"github.com/goplus/llgo/internal/abi.StructField" %74, ptr %81, align 8 - %82 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %83 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %82, i32 0, i32 0 - store ptr %79, ptr %83, align 8 - %84 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %82, i32 0, i32 1 - store i64 2, ptr %84, align 4 - %85 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %82, i32 0, i32 2 - store i64 2, ptr %85, align 4 - %86 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %82, align 8 - %87 = call ptr @"github.com/goplus/llgo/internal/runtime.Struct"(%"github.com/goplus/llgo/internal/runtime.String" %78, i64 16, %"github.com/goplus/llgo/internal/runtime.Slice" %86) - store ptr %87, ptr @"main.struct$Ci43nzKYkRLddRL_N4mkykxLXfJlqJGS5n04LKThPNo", align 8 - %88 = load ptr, ptr @"main.struct$Ci43nzKYkRLddRL_N4mkykxLXfJlqJGS5n04LKThPNo", align 8 - %89 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %90 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %89, i32 0, i32 0 - store ptr @2, ptr %90, align 8 - %91 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %89, i32 0, i32 1 - store i64 4, ptr %91, align 4 - %92 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %89, align 8 - %93 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %94 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %93, i32 0, i32 0 - store ptr @7, ptr %94, align 8 - %95 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %93, i32 0, i32 1 - store i64 3, ptr %95, align 4 - %96 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %93, align 8 - call void @"github.com/goplus/llgo/internal/runtime.InitNamed"(ptr %54, %"github.com/goplus/llgo/internal/runtime.String" %92, %"github.com/goplus/llgo/internal/runtime.String" %96, ptr %88, { ptr, i64, i64 } zeroinitializer, { ptr, i64, i64 } zeroinitializer) +_llgo_8: ; preds = %_llgo_7, %_llgo_6 + %20 = load ptr, ptr @_llgo_float32, align 8 + %21 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %22 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %21, i32 0, i32 0 + store ptr @0, ptr %22, align 8 + %23 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %21, i32 0, i32 1 + store i64 2, ptr %23, align 4 + %24 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %21, align 8 + %25 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %26 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %25, i32 0, i32 0 + store ptr null, ptr %26, align 8 + %27 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %25, i32 0, i32 1 + store i64 0, ptr %27, align 4 + %28 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %25, align 8 + %29 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %24, ptr %13, i64 0, %"github.com/goplus/llgo/internal/runtime.String" %28, i1 false) + %30 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %31 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %30, i32 0, i32 0 + store ptr @1, ptr %31, align 8 + %32 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %30, i32 0, i32 1 + store i64 1, ptr %32, align 4 + %33 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %30, align 8 + %34 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %35 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %34, i32 0, i32 0 + store ptr null, ptr %35, align 8 + %36 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %34, i32 0, i32 1 + store i64 0, ptr %36, align 4 + %37 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %34, align 8 + %38 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %33, ptr %20, i64 8, %"github.com/goplus/llgo/internal/runtime.String" %37, i1 false) + %39 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %40 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %39, i32 0, i32 0 + store ptr @2, ptr %40, align 8 + %41 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %39, i32 0, i32 1 + store i64 4, ptr %41, align 4 + %42 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %39, align 8 + %43 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 112) + %44 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %43, i64 0 + store %"github.com/goplus/llgo/internal/abi.StructField" %29, ptr %44, align 8 + %45 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %43, i64 1 + store %"github.com/goplus/llgo/internal/abi.StructField" %38, ptr %45, align 8 + %46 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %47 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %46, i32 0, i32 0 + store ptr %43, ptr %47, align 8 + %48 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %46, i32 0, i32 1 + store i64 2, ptr %48, align 4 + %49 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %46, i32 0, i32 2 + store i64 2, ptr %49, align 4 + %50 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %46, align 8 + %51 = call ptr @"github.com/goplus/llgo/internal/runtime.Struct"(%"github.com/goplus/llgo/internal/runtime.String" %42, i64 16, %"github.com/goplus/llgo/internal/runtime.Slice" %50) + store ptr %51, ptr @"main.struct$qQwZyFy_4JRalRxVVsVD8R09X5t58tWjTrtJPtHbEjs", align 8 + %52 = load ptr, ptr @"main.struct$qQwZyFy_4JRalRxVVsVD8R09X5t58tWjTrtJPtHbEjs", align 8 + br i1 %1, label %_llgo_9, label %_llgo_10 + +_llgo_9: ; preds = %_llgo_8 + %53 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %54 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %53, i32 0, i32 0 + store ptr @3, ptr %54, align 8 + %55 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %53, i32 0, i32 1 + store i64 2, ptr %55, align 4 + %56 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %53, align 8 + %57 = load ptr, ptr @"*_llgo_byte", align 8 + %58 = load ptr, ptr @"_llgo_func$NfGSLZ1QiKRoFkKeqYSXE5hUU5bpeteSJKrbMNUzYRE", align 8 + %59 = icmp eq ptr %58, null + br i1 %59, label %_llgo_11, label %_llgo_12 + +_llgo_10: ; preds = %_llgo_12, %_llgo_8 + %60 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(i64 25, i64 0, i64 0) + store ptr %60, ptr @_llgo_main.bar, align 8 + %61 = load ptr, ptr @"*_llgo_byte", align 8 + %62 = load ptr, ptr @_llgo_float32, align 8 + %63 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %64 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %63, i32 0, i32 0 + store ptr @0, ptr %64, align 8 + %65 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %63, i32 0, i32 1 + store i64 2, ptr %65, align 4 + %66 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %63, align 8 + %67 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %68 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %67, i32 0, i32 0 + store ptr null, ptr %68, align 8 + %69 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %67, i32 0, i32 1 + store i64 0, ptr %69, align 4 + %70 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %67, align 8 + %71 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %66, ptr %61, i64 0, %"github.com/goplus/llgo/internal/runtime.String" %70, i1 false) + %72 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %73 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %72, i32 0, i32 0 + store ptr @6, ptr %73, align 8 + %74 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %72, i32 0, i32 1 + store i64 1, ptr %74, align 4 + %75 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %72, align 8 + %76 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %77 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %76, i32 0, i32 0 + store ptr null, ptr %77, align 8 + %78 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %76, i32 0, i32 1 + store i64 0, ptr %78, align 4 + %79 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %76, align 8 + %80 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %75, ptr %62, i64 8, %"github.com/goplus/llgo/internal/runtime.String" %79, i1 false) + %81 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %82 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %81, i32 0, i32 0 + store ptr @2, ptr %82, align 8 + %83 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %81, i32 0, i32 1 + store i64 4, ptr %83, align 4 + %84 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %81, align 8 + %85 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 112) + %86 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %85, i64 0 + store %"github.com/goplus/llgo/internal/abi.StructField" %71, ptr %86, align 8 + %87 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %85, i64 1 + store %"github.com/goplus/llgo/internal/abi.StructField" %80, ptr %87, align 8 + %88 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %89 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %88, i32 0, i32 0 + store ptr %85, ptr %89, align 8 + %90 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %88, i32 0, i32 1 + store i64 2, ptr %90, align 4 + %91 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %88, i32 0, i32 2 + store i64 2, ptr %91, align 4 + %92 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %88, align 8 + %93 = call ptr @"github.com/goplus/llgo/internal/runtime.Struct"(%"github.com/goplus/llgo/internal/runtime.String" %84, i64 16, %"github.com/goplus/llgo/internal/runtime.Slice" %92) + store ptr %93, ptr @"main.struct$Ci43nzKYkRLddRL_N4mkykxLXfJlqJGS5n04LKThPNo", align 8 + %94 = load ptr, ptr @"main.struct$Ci43nzKYkRLddRL_N4mkykxLXfJlqJGS5n04LKThPNo", align 8 + %95 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %96 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %95, i32 0, i32 0 + store ptr @2, ptr %96, align 8 + %97 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %95, i32 0, i32 1 + store i64 4, ptr %97, align 4 + %98 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %95, align 8 + %99 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %100 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %99, i32 0, i32 0 + store ptr @7, ptr %100, align 8 + %101 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %99, i32 0, i32 1 + store i64 3, ptr %101, align 4 + %102 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %99, align 8 + call void @"github.com/goplus/llgo/internal/runtime.InitNamed"(ptr %60, %"github.com/goplus/llgo/internal/runtime.String" %98, %"github.com/goplus/llgo/internal/runtime.String" %102, ptr %94, { ptr, i64, i64 } zeroinitializer, { ptr, i64, i64 } zeroinitializer) ret void -_llgo_9: ; preds = %_llgo_7 - %97 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 0) - %98 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %99 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %98, i32 0, i32 0 - store ptr %97, ptr %99, align 8 - %100 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %98, i32 0, i32 1 - store i64 0, ptr %100, align 4 - %101 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %98, i32 0, i32 2 - store i64 0, ptr %101, align 4 - %102 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %98, align 8 - %103 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 8) - %104 = getelementptr ptr, ptr %103, i64 0 - store ptr %51, ptr %104, align 8 - %105 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %106 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %105, i32 0, i32 0 - store ptr %103, ptr %106, align 8 - %107 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %105, i32 0, i32 1 - store i64 1, ptr %107, align 4 - %108 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %105, i32 0, i32 2 - store i64 1, ptr %108, align 4 - %109 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %105, align 8 - %110 = call ptr @"github.com/goplus/llgo/internal/runtime.Func"(%"github.com/goplus/llgo/internal/runtime.Slice" %102, %"github.com/goplus/llgo/internal/runtime.Slice" %109, i1 false) - store ptr %110, ptr @"_llgo_func$NfGSLZ1QiKRoFkKeqYSXE5hUU5bpeteSJKrbMNUzYRE", align 8 - br label %_llgo_10 +_llgo_11: ; preds = %_llgo_9 + %103 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 0) + %104 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %105 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %104, i32 0, i32 0 + store ptr %103, ptr %105, align 8 + %106 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %104, i32 0, i32 1 + store i64 0, ptr %106, align 4 + %107 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %104, i32 0, i32 2 + store i64 0, ptr %107, align 4 + %108 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %104, align 8 + %109 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 8) + %110 = getelementptr ptr, ptr %109, i64 0 + store ptr %57, ptr %110, align 8 + %111 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %112 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %111, i32 0, i32 0 + store ptr %109, ptr %112, align 8 + %113 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %111, i32 0, i32 1 + store i64 1, ptr %113, align 4 + %114 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %111, i32 0, i32 2 + store i64 1, ptr %114, align 4 + %115 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %111, align 8 + %116 = call ptr @"github.com/goplus/llgo/internal/runtime.Func"(%"github.com/goplus/llgo/internal/runtime.Slice" %108, %"github.com/goplus/llgo/internal/runtime.Slice" %115, i1 false) + store ptr %116, ptr @"_llgo_func$NfGSLZ1QiKRoFkKeqYSXE5hUU5bpeteSJKrbMNUzYRE", align 8 + br label %_llgo_12 -_llgo_10: ; preds = %_llgo_9, %_llgo_7 - %111 = load ptr, ptr @"_llgo_func$NfGSLZ1QiKRoFkKeqYSXE5hUU5bpeteSJKrbMNUzYRE", align 8 - %112 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 - %113 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %112, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %50, ptr %113, align 8 - %114 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %112, i32 0, i32 1 - store ptr %111, ptr %114, align 8 - %115 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %112, i32 0, i32 2 - store ptr @"github.com/goplus/llgo/cl/internal/foo.(*Foo).Pb", ptr %115, align 8 - %116 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %112, i32 0, i32 3 - store ptr @"github.com/goplus/llgo/cl/internal/foo.(*Foo).Pb", ptr %116, align 8 - %117 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %112, align 8 +_llgo_12: ; preds = %_llgo_11, %_llgo_9 + %117 = load ptr, ptr @"_llgo_func$NfGSLZ1QiKRoFkKeqYSXE5hUU5bpeteSJKrbMNUzYRE", align 8 %118 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 %119 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %118, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %50, ptr %119, align 8 + store %"github.com/goplus/llgo/internal/runtime.String" %56, ptr %119, align 8 %120 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %118, i32 0, i32 1 - store ptr %111, ptr %120, align 8 + store ptr %117, ptr %120, align 8 %121 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %118, i32 0, i32 2 store ptr @"github.com/goplus/llgo/cl/internal/foo.(*Foo).Pb", ptr %121, align 8 %122 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %118, i32 0, i32 3 - store ptr @"github.com/goplus/llgo/cl/internal/foo.Foo.Pb", ptr %122, align 8 + store ptr @"github.com/goplus/llgo/cl/internal/foo.(*Foo).Pb", ptr %122, align 8 %123 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %118, align 8 - %124 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 40) - %125 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %124, i64 0 - store %"github.com/goplus/llgo/internal/abi.Method" %123, ptr %125, align 8 - %126 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %127 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %126, i32 0, i32 0 - store ptr %124, ptr %127, align 8 - %128 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %126, i32 0, i32 1 - store i64 1, ptr %128, align 4 - %129 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %126, i32 0, i32 2 - store i64 1, ptr %129, align 4 - %130 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %126, align 8 - %131 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 40) - %132 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %131, i64 0 - store %"github.com/goplus/llgo/internal/abi.Method" %117, ptr %132, align 8 - %133 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %134 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %133, i32 0, i32 0 - store ptr %131, ptr %134, align 8 - %135 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %133, i32 0, i32 1 + %124 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %125 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %124, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %56, ptr %125, align 8 + %126 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %124, i32 0, i32 1 + store ptr %117, ptr %126, align 8 + %127 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %124, i32 0, i32 2 + store ptr @"github.com/goplus/llgo/cl/internal/foo.(*Foo).Pb", ptr %127, align 8 + %128 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %124, i32 0, i32 3 + store ptr @"github.com/goplus/llgo/cl/internal/foo.Foo.Pb", ptr %128, align 8 + %129 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %124, align 8 + %130 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 40) + %131 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %130, i64 0 + store %"github.com/goplus/llgo/internal/abi.Method" %129, ptr %131, align 8 + %132 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %133 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %132, i32 0, i32 0 + store ptr %130, ptr %133, align 8 + %134 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %132, i32 0, i32 1 + store i64 1, ptr %134, align 4 + %135 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %132, i32 0, i32 2 store i64 1, ptr %135, align 4 - %136 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %133, i32 0, i32 2 - store i64 1, ptr %136, align 4 - %137 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %133, align 8 - %138 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %139 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %138, i32 0, i32 0 - store ptr @4, ptr %139, align 8 - %140 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %138, i32 0, i32 1 - store i64 38, ptr %140, align 4 - %141 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %138, align 8 - %142 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %143 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %142, i32 0, i32 0 - store ptr @5, ptr %143, align 8 - %144 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %142, i32 0, i32 1 - store i64 3, ptr %144, align 4 - %145 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %142, align 8 - call void @"github.com/goplus/llgo/internal/runtime.InitNamed"(ptr %2, %"github.com/goplus/llgo/internal/runtime.String" %141, %"github.com/goplus/llgo/internal/runtime.String" %145, ptr %46, %"github.com/goplus/llgo/internal/runtime.Slice" %130, %"github.com/goplus/llgo/internal/runtime.Slice" %137) - br label %_llgo_8 + %136 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %132, align 8 + %137 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 40) + %138 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %137, i64 0 + store %"github.com/goplus/llgo/internal/abi.Method" %123, ptr %138, align 8 + %139 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %140 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %139, i32 0, i32 0 + store ptr %137, ptr %140, align 8 + %141 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %139, i32 0, i32 1 + store i64 1, ptr %141, align 4 + %142 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %139, i32 0, i32 2 + store i64 1, ptr %142, align 4 + %143 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %139, align 8 + %144 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %145 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %144, i32 0, i32 0 + store ptr @4, ptr %145, align 8 + %146 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %144, i32 0, i32 1 + store i64 38, ptr %146, align 4 + %147 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %144, align 8 + %148 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %149 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %148, i32 0, i32 0 + store ptr @5, ptr %149, align 8 + %150 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %148, i32 0, i32 1 + store i64 3, ptr %150, align 4 + %151 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %148, align 8 + call void @"github.com/goplus/llgo/internal/runtime.InitNamed"(ptr %2, %"github.com/goplus/llgo/internal/runtime.String" %147, %"github.com/goplus/llgo/internal/runtime.String" %151, ptr %52, %"github.com/goplus/llgo/internal/runtime.Slice" %136, %"github.com/goplus/llgo/internal/runtime.Slice" %143) + br label %_llgo_10 } declare ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(i64, i64, i64) -declare ptr @"github.com/goplus/llgo/internal/runtime.PointerTo"(ptr) - declare ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64) +declare ptr @"github.com/goplus/llgo/internal/runtime.PointerTo"(ptr) + declare ptr @"github.com/goplus/llgo/internal/runtime.Struct"(%"github.com/goplus/llgo/internal/runtime.String", i64, %"github.com/goplus/llgo/internal/runtime.Slice") declare %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String", ptr, i64, %"github.com/goplus/llgo/internal/runtime.String", i1) diff --git a/cl/_testrt/abinamed/in.go b/cl/_testrt/abinamed/in.go new file mode 100644 index 00000000..a2c71510 --- /dev/null +++ b/cl/_testrt/abinamed/in.go @@ -0,0 +1,56 @@ +package main + +import ( + "unsafe" + + "github.com/goplus/llgo/internal/abi" +) + +type T struct { + p *T + t *abi.Type + n uintptr + a []T +} + +type eface struct { + typ *abi.Type + data unsafe.Pointer +} + +func toEface(i any) *eface { + return (*eface)(unsafe.Pointer(&i)) +} + +func main() { + e := toEface(T{}) + e2 := toEface(abi.Type{}) + + println(e.typ) + println(e.typ.PtrToThis_) + println(e2.typ) + println(e2.typ.PtrToThis_) + + f0 := e.typ.StructType().Fields[0] + if f0.Typ != e.typ.PtrToThis_ { + panic("error field 0") + } + if f0.Typ.Elem() != e.typ { + panic("error field 0 elem") + } + f1 := e.typ.StructType().Fields[1] + if f1.Typ != e2.typ.PtrToThis_ { + panic("error field 1") + } + if f1.Typ.Elem() != e2.typ { + panic("error field 1 elem") + } + f2 := e.typ.StructType().Fields[2] + if f2.Typ != e2.typ.StructType().Fields[0].Typ { + panic("error field 2") + } + f3 := e.typ.StructType().Fields[3] + if f3.Typ.Elem() != e.typ { + panic("error field 3") + } +} diff --git a/cl/_testrt/abinamed/out.ll b/cl/_testrt/abinamed/out.ll new file mode 100644 index 00000000..4f0b92c0 --- /dev/null +++ b/cl/_testrt/abinamed/out.ll @@ -0,0 +1,4992 @@ +; ModuleID = 'main' +source_filename = "main" + +%main.T = type { ptr, ptr, i64, %"github.com/goplus/llgo/internal/runtime.Slice" } +%"github.com/goplus/llgo/internal/runtime.Slice" = type { ptr, i64, i64 } +%"github.com/goplus/llgo/internal/runtime.eface" = type { ptr, ptr } +%"github.com/goplus/llgo/internal/abi.Type" = type { i64, i64, i32, i8, i8, i8, i8, { ptr, ptr }, ptr, %"github.com/goplus/llgo/internal/runtime.String", ptr } +%"github.com/goplus/llgo/internal/runtime.String" = type { ptr, i64 } +%main.eface = type { ptr, ptr } +%"github.com/goplus/llgo/internal/abi.StructField" = type { %"github.com/goplus/llgo/internal/runtime.String", ptr, i64, %"github.com/goplus/llgo/internal/runtime.String", i1 } +%"github.com/goplus/llgo/internal/abi.StructType" = type { %"github.com/goplus/llgo/internal/abi.Type", %"github.com/goplus/llgo/internal/runtime.String", %"github.com/goplus/llgo/internal/runtime.Slice" } +%"github.com/goplus/llgo/internal/abi.Method" = type { %"github.com/goplus/llgo/internal/runtime.String", ptr, ptr, ptr } + +@"main.init$guard" = global i1 false, align 1 +@__llgo_argc = global i32 0, align 4 +@__llgo_argv = global ptr null, align 8 +@_llgo_main.T = linkonce global ptr null, align 8 +@"main.struct$FYfyNCnlvkYOztpQWjt-y8D_WY3tpxyt5Qo62CJffTE" = global ptr null, align 8 +@"*_llgo_main.T" = linkonce global ptr null, align 8 +@"_llgo_github.com/goplus/llgo/internal/abi.Type" = linkonce global ptr null, align 8 +@"_llgo_struct$13P_TvKNXommvK6tKt3eRNnJqTcPEFYrHagFiHeRpb0" = linkonce global ptr null, align 8 +@_llgo_uintptr = linkonce global ptr null, align 8 +@_llgo_uint32 = linkonce global ptr null, align 8 +@"_llgo_github.com/goplus/llgo/internal/abi.TFlag" = linkonce global ptr null, align 8 +@_llgo_uint8 = linkonce global ptr null, align 8 +@0 = private unnamed_addr constant [35 x i8] c"github.com/goplus/llgo/internal/abi", align 1 +@1 = private unnamed_addr constant [5 x i8] c"TFlag", align 1 +@"main.struct$p9hq6rduefaRA0UGJ6DazYUtteEOtDFu7UHk5jhDUV4" = global ptr null, align 8 +@"_llgo_func$QUW0mAalenD4Bc6QsairPZ_HOMzGmcNs0GCyMzTNFig" = linkonce global ptr null, align 8 +@_llgo_Pointer = linkonce global ptr null, align 8 +@_llgo_bool = linkonce global ptr null, align 8 +@2 = private unnamed_addr constant [1 x i8] c"f", align 1 +@3 = private unnamed_addr constant [4 x i8] c"data", align 1 +@4 = private unnamed_addr constant [4 x i8] c"main", align 1 +@_llgo_byte = linkonce global ptr null, align 8 +@"*_llgo_byte" = linkonce global ptr null, align 8 +@_llgo_string = linkonce global ptr null, align 8 +@"*_llgo_github.com/goplus/llgo/internal/abi.Type" = linkonce global ptr null, align 8 +@5 = private unnamed_addr constant [5 x i8] c"Size_", align 1 +@6 = private unnamed_addr constant [8 x i8] c"PtrBytes", align 1 +@7 = private unnamed_addr constant [4 x i8] c"Hash", align 1 +@8 = private unnamed_addr constant [6 x i8] c"Align_", align 1 +@9 = private unnamed_addr constant [11 x i8] c"FieldAlign_", align 1 +@10 = private unnamed_addr constant [5 x i8] c"Kind_", align 1 +@11 = private unnamed_addr constant [5 x i8] c"Equal", align 1 +@12 = private unnamed_addr constant [6 x i8] c"GCData", align 1 +@13 = private unnamed_addr constant [4 x i8] c"Str_", align 1 +@14 = private unnamed_addr constant [10 x i8] c"PtrToThis_", align 1 +@15 = private unnamed_addr constant [5 x i8] c"Align", align 1 +@"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA" = linkonce global ptr null, align 8 +@_llgo_int = linkonce global ptr null, align 8 +@16 = private unnamed_addr constant [9 x i8] c"ArrayType", align 1 +@"_llgo_func$CsVqlCxhoEcIvPD5BSBukfSiD9C7Ic5_Gf32MLbCWB4" = linkonce global ptr null, align 8 +@"_llgo_github.com/goplus/llgo/internal/abi.ArrayType" = linkonce global ptr null, align 8 +@"_llgo_struct$eLreYy_0Tx9Ip-rgTmC6_uCvf27HVl_zBUTfLS0WYaY" = linkonce global ptr null, align 8 +@17 = private unnamed_addr constant [4 x i8] c"Type", align 1 +@18 = private unnamed_addr constant [4 x i8] c"Elem", align 1 +@19 = private unnamed_addr constant [5 x i8] c"Slice", align 1 +@20 = private unnamed_addr constant [3 x i8] c"Len", align 1 +@21 = private unnamed_addr constant [6 x i8] c"Common", align 1 +@"_llgo_func$4-mqItKfDlL0CgVKnUxoresYgh6zW1WSlZYZSsVzLRo" = linkonce global ptr null, align 8 +@22 = private unnamed_addr constant [10 x i8] c"FieldAlign", align 1 +@23 = private unnamed_addr constant [8 x i8] c"FuncType", align 1 +@"_llgo_func$DsoxgOnxqV7tLvokF3AA14v1gtHsHaThoC8Q_XGcQww" = linkonce global ptr null, align 8 +@"_llgo_github.com/goplus/llgo/internal/abi.FuncType" = linkonce global ptr null, align 8 +@"_llgo_struct$wRu7InfmQeSkq7akLN3soDNninnS1dQajawdYvmHbzw" = linkonce global ptr null, align 8 +@"[]*_llgo_github.com/goplus/llgo/internal/abi.Type" = linkonce global ptr null, align 8 +@24 = private unnamed_addr constant [2 x i8] c"In", align 1 +@25 = private unnamed_addr constant [3 x i8] c"Out", align 1 +@26 = private unnamed_addr constant [7 x i8] c"HasName", align 1 +@"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk" = linkonce global ptr null, align 8 +@27 = private unnamed_addr constant [10 x i8] c"IfaceIndir", align 1 +@28 = private unnamed_addr constant [13 x i8] c"InterfaceType", align 1 +@"_llgo_func$1QmforOaCy2fBAssC2y1FWCCT6fpq9RKwP2j2HIASY8" = linkonce global ptr null, align 8 +@"_llgo_github.com/goplus/llgo/internal/abi.InterfaceType" = linkonce global ptr null, align 8 +@"_llgo_struct$mWxYYevLxpL1wQyiQtAy4OszkqTlHtrmEcPpzW9Air4" = linkonce global ptr null, align 8 +@"[]_llgo_github.com/goplus/llgo/internal/abi.Imethod" = linkonce global ptr null, align 8 +@29 = private unnamed_addr constant [8 x i8] c"PkgPath_", align 1 +@30 = private unnamed_addr constant [7 x i8] c"Methods", align 1 +@31 = private unnamed_addr constant [13 x i8] c"IsDirectIface", align 1 +@32 = private unnamed_addr constant [4 x i8] c"Kind", align 1 +@"_llgo_func$ntUE0UmVAWPS2O7GpCCGszSn-XnjHJntZZ2jYtwbFXI" = linkonce global ptr null, align 8 +@"_llgo_github.com/goplus/llgo/internal/abi.Kind" = linkonce global ptr null, align 8 +@_llgo_uint = linkonce global ptr null, align 8 +@33 = private unnamed_addr constant [6 x i8] c"String", align 1 +@"_llgo_func$zNDVRsWTIpUPKouNUS805RGX--IV9qVK8B31IZbg5to" = linkonce global ptr null, align 8 +@34 = private unnamed_addr constant [7 x i8] c"MapType", align 1 +@"_llgo_func$d-NlqnjcQnaMjsBQY7qh2SWQmHb0XIigoceXdiJ8YT4" = linkonce global ptr null, align 8 +@"_llgo_github.com/goplus/llgo/internal/abi.MapType" = linkonce global ptr null, align 8 +@"_llgo_struct$Yk42tBqeO4BzIoRAwt__cbPj2UwIDCP07Kg_SR7sBZM" = linkonce global ptr null, align 8 +@"main.struct$uDDWukIj6_GRAIQyJjrj0CZt1Ru2uIDU1N9fcbR_jCg" = global ptr null, align 8 +@"_llgo_func$cAvVsWLgvZTNybpI-5Hj9CeBwW9xcw6i77GFRvp83mY" = linkonce global ptr null, align 8 +@_llgo_uint16 = linkonce global ptr null, align 8 +@35 = private unnamed_addr constant [3 x i8] c"Key", align 1 +@36 = private unnamed_addr constant [6 x i8] c"Bucket", align 1 +@37 = private unnamed_addr constant [6 x i8] c"Hasher", align 1 +@38 = private unnamed_addr constant [7 x i8] c"KeySize", align 1 +@39 = private unnamed_addr constant [9 x i8] c"ValueSize", align 1 +@40 = private unnamed_addr constant [10 x i8] c"BucketSize", align 1 +@41 = private unnamed_addr constant [5 x i8] c"Flags", align 1 +@42 = private unnamed_addr constant [14 x i8] c"HashMightPanic", align 1 +@43 = private unnamed_addr constant [12 x i8] c"IndirectElem", align 1 +@44 = private unnamed_addr constant [11 x i8] c"IndirectKey", align 1 +@45 = private unnamed_addr constant [13 x i8] c"NeedKeyUpdate", align 1 +@46 = private unnamed_addr constant [8 x i8] c"Pointers", align 1 +@47 = private unnamed_addr constant [12 x i8] c"ReflexiveKey", align 1 +@48 = private unnamed_addr constant [4 x i8] c"Size", align 1 +@"_llgo_func$1kITCsyu7hFLMxHLR7kDlvu4SOra_HtrtdFUQH9P13s" = linkonce global ptr null, align 8 +@49 = private unnamed_addr constant [10 x i8] c"StructType", align 1 +@"_llgo_func$qiNnn6Cbm3GtDp4gDI4U_DRV3h8zlz91s9jrfOXC--U" = linkonce global ptr null, align 8 +@"_llgo_github.com/goplus/llgo/internal/abi.StructType" = linkonce global ptr null, align 8 +@"_llgo_struct$K_cvuhBwc2_5r7UW089ibWfcfsGoDb4pZ7K19IcMTk0" = linkonce global ptr null, align 8 +@"[]_llgo_github.com/goplus/llgo/internal/abi.StructField" = linkonce global ptr null, align 8 +@50 = private unnamed_addr constant [6 x i8] c"Fields", align 1 +@51 = private unnamed_addr constant [8 x i8] c"Uncommon", align 1 +@"_llgo_func$DbD4nZv_bjE4tH8hh-VfAjMXMpNfIsMlLJJJPKupp34" = linkonce global ptr null, align 8 +@"_llgo_github.com/goplus/llgo/internal/abi.UncommonType" = linkonce global ptr null, align 8 +@"_llgo_struct$OKIlItfBJsawrEMnVSc2VQ7pxNxCHIgSoitcM9n4FVI" = linkonce global ptr null, align 8 +@52 = private unnamed_addr constant [6 x i8] c"Mcount", align 1 +@53 = private unnamed_addr constant [6 x i8] c"Xcount", align 1 +@54 = private unnamed_addr constant [4 x i8] c"Moff", align 1 +@55 = private unnamed_addr constant [15 x i8] c"ExportedMethods", align 1 +@"_llgo_func$r0w3aCNVheLGqjxncuxitGhNtWJagb9gZLqOSrNI7dg" = linkonce global ptr null, align 8 +@"[]_llgo_github.com/goplus/llgo/internal/abi.Method" = linkonce global ptr null, align 8 +@56 = private unnamed_addr constant [12 x i8] c"UncommonType", align 1 +@"*_llgo_github.com/goplus/llgo/internal/abi.UncommonType" = linkonce global ptr null, align 8 +@"*_llgo_github.com/goplus/llgo/internal/abi.StructType" = linkonce global ptr null, align 8 +@"*_llgo_github.com/goplus/llgo/internal/abi.MapType" = linkonce global ptr null, align 8 +@"*_llgo_github.com/goplus/llgo/internal/abi.InterfaceType" = linkonce global ptr null, align 8 +@57 = private unnamed_addr constant [8 x i8] c"Variadic", align 1 +@"*_llgo_github.com/goplus/llgo/internal/abi.FuncType" = linkonce global ptr null, align 8 +@"*_llgo_github.com/goplus/llgo/internal/abi.ArrayType" = linkonce global ptr null, align 8 +@"[]_llgo_main.T" = linkonce global ptr null, align 8 +@58 = private unnamed_addr constant [1 x i8] c"p", align 1 +@59 = private unnamed_addr constant [1 x i8] c"t", align 1 +@60 = private unnamed_addr constant [1 x i8] c"n", align 1 +@61 = private unnamed_addr constant [1 x i8] c"a", align 1 +@62 = private unnamed_addr constant [1 x i8] c"T", align 1 +@63 = private unnamed_addr constant [13 x i8] c"error field 0", align 1 +@64 = private unnamed_addr constant [18 x i8] c"error field 0 elem", align 1 +@65 = private unnamed_addr constant [13 x i8] c"error field 1", align 1 +@66 = private unnamed_addr constant [18 x i8] c"error field 1 elem", align 1 +@67 = private unnamed_addr constant [13 x i8] c"error field 2", align 1 +@68 = private unnamed_addr constant [13 x i8] c"error field 3", align 1 + +define void @main.init() { +_llgo_0: + %0 = load i1, ptr @"main.init$guard", align 1 + br i1 %0, label %_llgo_2, label %_llgo_1 + +_llgo_1: ; preds = %_llgo_0 + store i1 true, ptr @"main.init$guard", align 1 + call void @"github.com/goplus/llgo/internal/abi.init"() + call void @"main.init$after"() + br label %_llgo_2 + +_llgo_2: ; preds = %_llgo_1, %_llgo_0 + ret void +} + +define i32 @main(i32 %0, ptr %1) { +_llgo_0: + store i32 %0, ptr @__llgo_argc, align 4 + store ptr %1, ptr @__llgo_argv, align 8 + call void @"github.com/goplus/llgo/internal/runtime.init"() + call void @main.init() + %2 = load ptr, ptr @_llgo_main.T, align 8 + %3 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 48) + store %main.T zeroinitializer, ptr %3, align 8 + %4 = alloca %"github.com/goplus/llgo/internal/runtime.eface", align 8 + %5 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.eface", ptr %4, i32 0, i32 0 + store ptr %2, ptr %5, align 8 + %6 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.eface", ptr %4, i32 0, i32 1 + store ptr %3, ptr %6, align 8 + %7 = load %"github.com/goplus/llgo/internal/runtime.eface", ptr %4, align 8 + %8 = call ptr @main.toEface(%"github.com/goplus/llgo/internal/runtime.eface" %7) + %9 = load ptr, ptr @"_llgo_github.com/goplus/llgo/internal/abi.Type", align 8 + %10 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 72) + store %"github.com/goplus/llgo/internal/abi.Type" zeroinitializer, ptr %10, align 8 + %11 = alloca %"github.com/goplus/llgo/internal/runtime.eface", align 8 + %12 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.eface", ptr %11, i32 0, i32 0 + store ptr %9, ptr %12, align 8 + %13 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.eface", ptr %11, i32 0, i32 1 + store ptr %10, ptr %13, align 8 + %14 = load %"github.com/goplus/llgo/internal/runtime.eface", ptr %11, align 8 + %15 = call ptr @main.toEface(%"github.com/goplus/llgo/internal/runtime.eface" %14) + %16 = getelementptr inbounds %main.eface, ptr %8, i32 0, i32 0 + %17 = load ptr, ptr %16, align 8 + call void @"github.com/goplus/llgo/internal/runtime.PrintPointer"(ptr %17) + call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 10) + %18 = getelementptr inbounds %main.eface, ptr %8, i32 0, i32 0 + %19 = load ptr, ptr %18, align 8 + %20 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Type", ptr %19, i32 0, i32 10 + %21 = load ptr, ptr %20, align 8 + call void @"github.com/goplus/llgo/internal/runtime.PrintPointer"(ptr %21) + call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 10) + %22 = getelementptr inbounds %main.eface, ptr %15, i32 0, i32 0 + %23 = load ptr, ptr %22, align 8 + call void @"github.com/goplus/llgo/internal/runtime.PrintPointer"(ptr %23) + call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 10) + %24 = getelementptr inbounds %main.eface, ptr %15, i32 0, i32 0 + %25 = load ptr, ptr %24, align 8 + %26 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Type", ptr %25, i32 0, i32 10 + %27 = load ptr, ptr %26, align 8 + call void @"github.com/goplus/llgo/internal/runtime.PrintPointer"(ptr %27) + call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 10) + %28 = alloca %"github.com/goplus/llgo/internal/abi.StructField", align 8 + %29 = call ptr @"github.com/goplus/llgo/internal/runtime.Zeroinit"(ptr %28, i64 56) + %30 = getelementptr inbounds %main.eface, ptr %8, i32 0, i32 0 + %31 = load ptr, ptr %30, align 8 + %32 = call ptr @"github.com/goplus/llgo/internal/abi.(*Type).StructType"(ptr %31) + %33 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.StructType", ptr %32, i32 0, i32 2 + %34 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %33, align 8 + %35 = extractvalue %"github.com/goplus/llgo/internal/runtime.Slice" %34, 0 + %36 = extractvalue %"github.com/goplus/llgo/internal/runtime.Slice" %34, 1 + %37 = icmp sge i64 0, %36 + call void @"github.com/goplus/llgo/internal/runtime.AssertIndexRange"(i1 %37) + %38 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.StructField", ptr %35, i64 0 + %39 = load %"github.com/goplus/llgo/internal/abi.StructField", ptr %38, align 8 + store %"github.com/goplus/llgo/internal/abi.StructField" %39, ptr %29, align 8 + %40 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.StructField", ptr %29, i32 0, i32 1 + %41 = load ptr, ptr %40, align 8 + %42 = getelementptr inbounds %main.eface, ptr %8, i32 0, i32 0 + %43 = load ptr, ptr %42, align 8 + %44 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Type", ptr %43, i32 0, i32 10 + %45 = load ptr, ptr %44, align 8 + %46 = icmp ne ptr %41, %45 + br i1 %46, label %_llgo_1, label %_llgo_2 + +_llgo_1: ; preds = %_llgo_0 + %47 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %48 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %47, i32 0, i32 0 + store ptr @63, ptr %48, align 8 + %49 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %47, i32 0, i32 1 + store i64 13, ptr %49, align 4 + %50 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %47, align 8 + %51 = load ptr, ptr @_llgo_string, align 8 + %52 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 16) + store %"github.com/goplus/llgo/internal/runtime.String" %50, ptr %52, align 8 + %53 = alloca %"github.com/goplus/llgo/internal/runtime.eface", align 8 + %54 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.eface", ptr %53, i32 0, i32 0 + store ptr %51, ptr %54, align 8 + %55 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.eface", ptr %53, i32 0, i32 1 + store ptr %52, ptr %55, align 8 + %56 = load %"github.com/goplus/llgo/internal/runtime.eface", ptr %53, align 8 + call void @"github.com/goplus/llgo/internal/runtime.Panic"(%"github.com/goplus/llgo/internal/runtime.eface" %56) + unreachable + +_llgo_2: ; preds = %_llgo_0 + %57 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.StructField", ptr %29, i32 0, i32 1 + %58 = load ptr, ptr %57, align 8 + %59 = call ptr @"github.com/goplus/llgo/internal/abi.(*Type).Elem"(ptr %58) + %60 = getelementptr inbounds %main.eface, ptr %8, i32 0, i32 0 + %61 = load ptr, ptr %60, align 8 + %62 = icmp ne ptr %59, %61 + br i1 %62, label %_llgo_3, label %_llgo_4 + +_llgo_3: ; preds = %_llgo_2 + %63 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %64 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %63, i32 0, i32 0 + store ptr @64, ptr %64, align 8 + %65 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %63, i32 0, i32 1 + store i64 18, ptr %65, align 4 + %66 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %63, align 8 + %67 = load ptr, ptr @_llgo_string, align 8 + %68 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 16) + store %"github.com/goplus/llgo/internal/runtime.String" %66, ptr %68, align 8 + %69 = alloca %"github.com/goplus/llgo/internal/runtime.eface", align 8 + %70 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.eface", ptr %69, i32 0, i32 0 + store ptr %67, ptr %70, align 8 + %71 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.eface", ptr %69, i32 0, i32 1 + store ptr %68, ptr %71, align 8 + %72 = load %"github.com/goplus/llgo/internal/runtime.eface", ptr %69, align 8 + call void @"github.com/goplus/llgo/internal/runtime.Panic"(%"github.com/goplus/llgo/internal/runtime.eface" %72) + unreachable + +_llgo_4: ; preds = %_llgo_2 + %73 = alloca %"github.com/goplus/llgo/internal/abi.StructField", align 8 + %74 = call ptr @"github.com/goplus/llgo/internal/runtime.Zeroinit"(ptr %73, i64 56) + %75 = getelementptr inbounds %main.eface, ptr %8, i32 0, i32 0 + %76 = load ptr, ptr %75, align 8 + %77 = call ptr @"github.com/goplus/llgo/internal/abi.(*Type).StructType"(ptr %76) + %78 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.StructType", ptr %77, i32 0, i32 2 + %79 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %78, align 8 + %80 = extractvalue %"github.com/goplus/llgo/internal/runtime.Slice" %79, 0 + %81 = extractvalue %"github.com/goplus/llgo/internal/runtime.Slice" %79, 1 + %82 = icmp sge i64 1, %81 + call void @"github.com/goplus/llgo/internal/runtime.AssertIndexRange"(i1 %82) + %83 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.StructField", ptr %80, i64 1 + %84 = load %"github.com/goplus/llgo/internal/abi.StructField", ptr %83, align 8 + store %"github.com/goplus/llgo/internal/abi.StructField" %84, ptr %74, align 8 + %85 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.StructField", ptr %74, i32 0, i32 1 + %86 = load ptr, ptr %85, align 8 + %87 = getelementptr inbounds %main.eface, ptr %15, i32 0, i32 0 + %88 = load ptr, ptr %87, align 8 + %89 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Type", ptr %88, i32 0, i32 10 + %90 = load ptr, ptr %89, align 8 + %91 = icmp ne ptr %86, %90 + br i1 %91, label %_llgo_5, label %_llgo_6 + +_llgo_5: ; preds = %_llgo_4 + %92 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %93 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %92, i32 0, i32 0 + store ptr @65, ptr %93, align 8 + %94 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %92, i32 0, i32 1 + store i64 13, ptr %94, align 4 + %95 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %92, align 8 + %96 = load ptr, ptr @_llgo_string, align 8 + %97 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 16) + store %"github.com/goplus/llgo/internal/runtime.String" %95, ptr %97, align 8 + %98 = alloca %"github.com/goplus/llgo/internal/runtime.eface", align 8 + %99 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.eface", ptr %98, i32 0, i32 0 + store ptr %96, ptr %99, align 8 + %100 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.eface", ptr %98, i32 0, i32 1 + store ptr %97, ptr %100, align 8 + %101 = load %"github.com/goplus/llgo/internal/runtime.eface", ptr %98, align 8 + call void @"github.com/goplus/llgo/internal/runtime.Panic"(%"github.com/goplus/llgo/internal/runtime.eface" %101) + unreachable + +_llgo_6: ; preds = %_llgo_4 + %102 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.StructField", ptr %74, i32 0, i32 1 + %103 = load ptr, ptr %102, align 8 + %104 = call ptr @"github.com/goplus/llgo/internal/abi.(*Type).Elem"(ptr %103) + %105 = getelementptr inbounds %main.eface, ptr %15, i32 0, i32 0 + %106 = load ptr, ptr %105, align 8 + %107 = icmp ne ptr %104, %106 + br i1 %107, label %_llgo_7, label %_llgo_8 + +_llgo_7: ; preds = %_llgo_6 + %108 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %109 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %108, i32 0, i32 0 + store ptr @66, ptr %109, align 8 + %110 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %108, i32 0, i32 1 + store i64 18, ptr %110, align 4 + %111 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %108, align 8 + %112 = load ptr, ptr @_llgo_string, align 8 + %113 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 16) + store %"github.com/goplus/llgo/internal/runtime.String" %111, ptr %113, align 8 + %114 = alloca %"github.com/goplus/llgo/internal/runtime.eface", align 8 + %115 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.eface", ptr %114, i32 0, i32 0 + store ptr %112, ptr %115, align 8 + %116 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.eface", ptr %114, i32 0, i32 1 + store ptr %113, ptr %116, align 8 + %117 = load %"github.com/goplus/llgo/internal/runtime.eface", ptr %114, align 8 + call void @"github.com/goplus/llgo/internal/runtime.Panic"(%"github.com/goplus/llgo/internal/runtime.eface" %117) + unreachable + +_llgo_8: ; preds = %_llgo_6 + %118 = alloca %"github.com/goplus/llgo/internal/abi.StructField", align 8 + %119 = call ptr @"github.com/goplus/llgo/internal/runtime.Zeroinit"(ptr %118, i64 56) + %120 = getelementptr inbounds %main.eface, ptr %8, i32 0, i32 0 + %121 = load ptr, ptr %120, align 8 + %122 = call ptr @"github.com/goplus/llgo/internal/abi.(*Type).StructType"(ptr %121) + %123 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.StructType", ptr %122, i32 0, i32 2 + %124 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %123, align 8 + %125 = extractvalue %"github.com/goplus/llgo/internal/runtime.Slice" %124, 0 + %126 = extractvalue %"github.com/goplus/llgo/internal/runtime.Slice" %124, 1 + %127 = icmp sge i64 2, %126 + call void @"github.com/goplus/llgo/internal/runtime.AssertIndexRange"(i1 %127) + %128 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.StructField", ptr %125, i64 2 + %129 = load %"github.com/goplus/llgo/internal/abi.StructField", ptr %128, align 8 + store %"github.com/goplus/llgo/internal/abi.StructField" %129, ptr %119, align 8 + %130 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.StructField", ptr %119, i32 0, i32 1 + %131 = load ptr, ptr %130, align 8 + %132 = getelementptr inbounds %main.eface, ptr %15, i32 0, i32 0 + %133 = load ptr, ptr %132, align 8 + %134 = call ptr @"github.com/goplus/llgo/internal/abi.(*Type).StructType"(ptr %133) + %135 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.StructType", ptr %134, i32 0, i32 2 + %136 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %135, align 8 + %137 = extractvalue %"github.com/goplus/llgo/internal/runtime.Slice" %136, 0 + %138 = extractvalue %"github.com/goplus/llgo/internal/runtime.Slice" %136, 1 + %139 = icmp sge i64 0, %138 + call void @"github.com/goplus/llgo/internal/runtime.AssertIndexRange"(i1 %139) + %140 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.StructField", ptr %137, i64 0 + %141 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.StructField", ptr %140, i32 0, i32 1 + %142 = load ptr, ptr %141, align 8 + %143 = icmp ne ptr %131, %142 + br i1 %143, label %_llgo_9, label %_llgo_10 + +_llgo_9: ; preds = %_llgo_8 + %144 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %145 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %144, i32 0, i32 0 + store ptr @67, ptr %145, align 8 + %146 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %144, i32 0, i32 1 + store i64 13, ptr %146, align 4 + %147 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %144, align 8 + %148 = load ptr, ptr @_llgo_string, align 8 + %149 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 16) + store %"github.com/goplus/llgo/internal/runtime.String" %147, ptr %149, align 8 + %150 = alloca %"github.com/goplus/llgo/internal/runtime.eface", align 8 + %151 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.eface", ptr %150, i32 0, i32 0 + store ptr %148, ptr %151, align 8 + %152 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.eface", ptr %150, i32 0, i32 1 + store ptr %149, ptr %152, align 8 + %153 = load %"github.com/goplus/llgo/internal/runtime.eface", ptr %150, align 8 + call void @"github.com/goplus/llgo/internal/runtime.Panic"(%"github.com/goplus/llgo/internal/runtime.eface" %153) + unreachable + +_llgo_10: ; preds = %_llgo_8 + %154 = alloca %"github.com/goplus/llgo/internal/abi.StructField", align 8 + %155 = call ptr @"github.com/goplus/llgo/internal/runtime.Zeroinit"(ptr %154, i64 56) + %156 = getelementptr inbounds %main.eface, ptr %8, i32 0, i32 0 + %157 = load ptr, ptr %156, align 8 + %158 = call ptr @"github.com/goplus/llgo/internal/abi.(*Type).StructType"(ptr %157) + %159 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.StructType", ptr %158, i32 0, i32 2 + %160 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %159, align 8 + %161 = extractvalue %"github.com/goplus/llgo/internal/runtime.Slice" %160, 0 + %162 = extractvalue %"github.com/goplus/llgo/internal/runtime.Slice" %160, 1 + %163 = icmp sge i64 3, %162 + call void @"github.com/goplus/llgo/internal/runtime.AssertIndexRange"(i1 %163) + %164 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.StructField", ptr %161, i64 3 + %165 = load %"github.com/goplus/llgo/internal/abi.StructField", ptr %164, align 8 + store %"github.com/goplus/llgo/internal/abi.StructField" %165, ptr %155, align 8 + %166 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.StructField", ptr %155, i32 0, i32 1 + %167 = load ptr, ptr %166, align 8 + %168 = call ptr @"github.com/goplus/llgo/internal/abi.(*Type).Elem"(ptr %167) + %169 = getelementptr inbounds %main.eface, ptr %8, i32 0, i32 0 + %170 = load ptr, ptr %169, align 8 + %171 = icmp ne ptr %168, %170 + br i1 %171, label %_llgo_11, label %_llgo_12 + +_llgo_11: ; preds = %_llgo_10 + %172 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %173 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %172, i32 0, i32 0 + store ptr @68, ptr %173, align 8 + %174 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %172, i32 0, i32 1 + store i64 13, ptr %174, align 4 + %175 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %172, align 8 + %176 = load ptr, ptr @_llgo_string, align 8 + %177 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 16) + store %"github.com/goplus/llgo/internal/runtime.String" %175, ptr %177, align 8 + %178 = alloca %"github.com/goplus/llgo/internal/runtime.eface", align 8 + %179 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.eface", ptr %178, i32 0, i32 0 + store ptr %176, ptr %179, align 8 + %180 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.eface", ptr %178, i32 0, i32 1 + store ptr %177, ptr %180, align 8 + %181 = load %"github.com/goplus/llgo/internal/runtime.eface", ptr %178, align 8 + call void @"github.com/goplus/llgo/internal/runtime.Panic"(%"github.com/goplus/llgo/internal/runtime.eface" %181) + unreachable + +_llgo_12: ; preds = %_llgo_10 + ret i32 0 +} + +define ptr @main.toEface(%"github.com/goplus/llgo/internal/runtime.eface" %0) { +_llgo_0: + %1 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocZ"(i64 16) + store %"github.com/goplus/llgo/internal/runtime.eface" %0, ptr %1, align 8 + ret ptr %1 +} + +declare void @"github.com/goplus/llgo/internal/abi.init"() + +declare void @"github.com/goplus/llgo/internal/runtime.init"() + +define void @"main.init$after"() { +_llgo_0: + %0 = load ptr, ptr @_llgo_main.T, align 8 + %1 = icmp eq ptr %0, null + br i1 %1, label %_llgo_1, label %_llgo_2 + +_llgo_1: ; preds = %_llgo_0 + %2 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(i64 25, i64 0, i64 0) + store ptr %2, ptr @_llgo_main.T, align 8 + br label %_llgo_2 + +_llgo_2: ; preds = %_llgo_1, %_llgo_0 + %3 = load ptr, ptr @"*_llgo_main.T", align 8 + %4 = icmp eq ptr %3, null + br i1 %4, label %_llgo_3, label %_llgo_4 + +_llgo_3: ; preds = %_llgo_2 + %5 = call ptr @"github.com/goplus/llgo/internal/runtime.PointerTo"(ptr %2) + store ptr %5, ptr @"*_llgo_main.T", align 8 + br label %_llgo_4 + +_llgo_4: ; preds = %_llgo_3, %_llgo_2 + %6 = load ptr, ptr @"*_llgo_main.T", align 8 + %7 = load ptr, ptr @"_llgo_github.com/goplus/llgo/internal/abi.Type", align 8 + %8 = icmp eq ptr %7, null + br i1 %8, label %_llgo_5, label %_llgo_6 + +_llgo_5: ; preds = %_llgo_4 + %9 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(i64 25, i64 0, i64 18) + store ptr %9, ptr @"_llgo_github.com/goplus/llgo/internal/abi.Type", align 8 + br label %_llgo_6 + +_llgo_6: ; preds = %_llgo_5, %_llgo_4 + %10 = load ptr, ptr @_llgo_uintptr, align 8 + %11 = icmp eq ptr %10, null + br i1 %11, label %_llgo_7, label %_llgo_8 + +_llgo_7: ; preds = %_llgo_6 + %12 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 12) + %13 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Type", ptr %12, i32 0, i32 6 + %14 = load i8, ptr %13, align 1 + %15 = or i8 %14, 32 + store i8 %15, ptr %13, align 1 + store ptr %12, ptr @_llgo_uintptr, align 8 + br label %_llgo_8 + +_llgo_8: ; preds = %_llgo_7, %_llgo_6 + %16 = load ptr, ptr @_llgo_uintptr, align 8 + %17 = load ptr, ptr @_llgo_uintptr, align 8 + %18 = load ptr, ptr @_llgo_uint32, align 8 + %19 = icmp eq ptr %18, null + br i1 %19, label %_llgo_9, label %_llgo_10 + +_llgo_9: ; preds = %_llgo_8 + %20 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 10) + %21 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Type", ptr %20, i32 0, i32 6 + %22 = load i8, ptr %21, align 1 + %23 = or i8 %22, 32 + store i8 %23, ptr %21, align 1 + store ptr %20, ptr @_llgo_uint32, align 8 + br label %_llgo_10 + +_llgo_10: ; preds = %_llgo_9, %_llgo_8 + %24 = load ptr, ptr @_llgo_uint32, align 8 + %25 = load ptr, ptr @"_llgo_github.com/goplus/llgo/internal/abi.TFlag", align 8 + %26 = icmp eq ptr %25, null + br i1 %26, label %_llgo_11, label %_llgo_12 + +_llgo_11: ; preds = %_llgo_10 + %27 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(i64 8, i64 0, i64 0) + %28 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Type", ptr %27, i32 0, i32 6 + %29 = load i8, ptr %28, align 1 + %30 = or i8 %29, 32 + store i8 %30, ptr %28, align 1 + store ptr %27, ptr @"_llgo_github.com/goplus/llgo/internal/abi.TFlag", align 8 + br label %_llgo_12 + +_llgo_12: ; preds = %_llgo_11, %_llgo_10 + %31 = load ptr, ptr @_llgo_uint8, align 8 + %32 = icmp eq ptr %31, null + br i1 %32, label %_llgo_13, label %_llgo_14 + +_llgo_13: ; preds = %_llgo_12 + %33 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 8) + %34 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Type", ptr %33, i32 0, i32 6 + %35 = load i8, ptr %34, align 1 + %36 = or i8 %35, 32 + store i8 %36, ptr %34, align 1 + store ptr %33, ptr @_llgo_uint8, align 8 + br label %_llgo_14 + +_llgo_14: ; preds = %_llgo_13, %_llgo_12 + %37 = load ptr, ptr @_llgo_uint8, align 8 + br i1 %26, label %_llgo_15, label %_llgo_16 + +_llgo_15: ; preds = %_llgo_14 + %38 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %39 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %38, i32 0, i32 0 + store ptr @0, ptr %39, align 8 + %40 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %38, i32 0, i32 1 + store i64 35, ptr %40, align 4 + %41 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %38, align 8 + %42 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %43 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %42, i32 0, i32 0 + store ptr @1, ptr %43, align 8 + %44 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %42, i32 0, i32 1 + store i64 5, ptr %44, align 4 + %45 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %42, align 8 + call void @"github.com/goplus/llgo/internal/runtime.InitNamed"(ptr %27, %"github.com/goplus/llgo/internal/runtime.String" %41, %"github.com/goplus/llgo/internal/runtime.String" %45, ptr %37, { ptr, i64, i64 } zeroinitializer, { ptr, i64, i64 } zeroinitializer) + br label %_llgo_16 + +_llgo_16: ; preds = %_llgo_15, %_llgo_14 + %46 = load ptr, ptr @"_llgo_github.com/goplus/llgo/internal/abi.TFlag", align 8 + %47 = load ptr, ptr @_llgo_uint8, align 8 + %48 = load ptr, ptr @_llgo_uint8, align 8 + %49 = load ptr, ptr @_llgo_uint8, align 8 + %50 = load ptr, ptr @_llgo_Pointer, align 8 + %51 = icmp eq ptr %50, null + br i1 %51, label %_llgo_17, label %_llgo_18 + +_llgo_17: ; preds = %_llgo_16 + %52 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 26) + store ptr %52, ptr @_llgo_Pointer, align 8 + br label %_llgo_18 + +_llgo_18: ; preds = %_llgo_17, %_llgo_16 + %53 = load ptr, ptr @_llgo_Pointer, align 8 + %54 = load ptr, ptr @_llgo_Pointer, align 8 + %55 = load ptr, ptr @_llgo_Pointer, align 8 + %56 = load ptr, ptr @_llgo_bool, align 8 + %57 = icmp eq ptr %56, null + br i1 %57, label %_llgo_19, label %_llgo_20 + +_llgo_19: ; preds = %_llgo_18 + %58 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 1) + %59 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Type", ptr %58, i32 0, i32 6 + %60 = load i8, ptr %59, align 1 + %61 = or i8 %60, 32 + store i8 %61, ptr %59, align 1 + store ptr %58, ptr @_llgo_bool, align 8 + br label %_llgo_20 + +_llgo_20: ; preds = %_llgo_19, %_llgo_18 + %62 = load ptr, ptr @_llgo_bool, align 8 + %63 = load ptr, ptr @"_llgo_func$QUW0mAalenD4Bc6QsairPZ_HOMzGmcNs0GCyMzTNFig", align 8 + %64 = icmp eq ptr %63, null + br i1 %64, label %_llgo_21, label %_llgo_22 + +_llgo_21: ; preds = %_llgo_20 + %65 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 24) + %66 = getelementptr ptr, ptr %65, i64 0 + store ptr %53, ptr %66, align 8 + %67 = getelementptr ptr, ptr %65, i64 1 + store ptr %54, ptr %67, align 8 + %68 = getelementptr ptr, ptr %65, i64 2 + store ptr %55, ptr %68, align 8 + %69 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %70 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %69, i32 0, i32 0 + store ptr %65, ptr %70, align 8 + %71 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %69, i32 0, i32 1 + store i64 3, ptr %71, align 4 + %72 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %69, i32 0, i32 2 + store i64 3, ptr %72, align 4 + %73 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %69, align 8 + %74 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 8) + %75 = getelementptr ptr, ptr %74, i64 0 + store ptr %62, ptr %75, align 8 + %76 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %77 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %76, i32 0, i32 0 + store ptr %74, ptr %77, align 8 + %78 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %76, i32 0, i32 1 + store i64 1, ptr %78, align 4 + %79 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %76, i32 0, i32 2 + store i64 1, ptr %79, align 4 + %80 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %76, align 8 + %81 = call ptr @"github.com/goplus/llgo/internal/runtime.Func"(%"github.com/goplus/llgo/internal/runtime.Slice" %73, %"github.com/goplus/llgo/internal/runtime.Slice" %80, i1 false) + store ptr %81, ptr @"_llgo_func$QUW0mAalenD4Bc6QsairPZ_HOMzGmcNs0GCyMzTNFig", align 8 + br label %_llgo_22 + +_llgo_22: ; preds = %_llgo_21, %_llgo_20 + %82 = load ptr, ptr @"_llgo_func$QUW0mAalenD4Bc6QsairPZ_HOMzGmcNs0GCyMzTNFig", align 8 + %83 = load ptr, ptr @_llgo_Pointer, align 8 + %84 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %85 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %84, i32 0, i32 0 + store ptr @2, ptr %85, align 8 + %86 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %84, i32 0, i32 1 + store i64 1, ptr %86, align 4 + %87 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %84, align 8 + %88 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %89 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %88, i32 0, i32 0 + store ptr null, ptr %89, align 8 + %90 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %88, i32 0, i32 1 + store i64 0, ptr %90, align 4 + %91 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %88, align 8 + %92 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %87, ptr %82, i64 0, %"github.com/goplus/llgo/internal/runtime.String" %91, i1 false) + %93 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %94 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %93, i32 0, i32 0 + store ptr @3, ptr %94, align 8 + %95 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %93, i32 0, i32 1 + store i64 4, ptr %95, align 4 + %96 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %93, align 8 + %97 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %98 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %97, i32 0, i32 0 + store ptr null, ptr %98, align 8 + %99 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %97, i32 0, i32 1 + store i64 0, ptr %99, align 4 + %100 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %97, align 8 + %101 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %96, ptr %83, i64 8, %"github.com/goplus/llgo/internal/runtime.String" %100, i1 false) + %102 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %103 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %102, i32 0, i32 0 + store ptr @4, ptr %103, align 8 + %104 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %102, i32 0, i32 1 + store i64 4, ptr %104, align 4 + %105 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %102, align 8 + %106 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 112) + %107 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %106, i64 0 + store %"github.com/goplus/llgo/internal/abi.StructField" %92, ptr %107, align 8 + %108 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %106, i64 1 + store %"github.com/goplus/llgo/internal/abi.StructField" %101, ptr %108, align 8 + %109 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %110 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %109, i32 0, i32 0 + store ptr %106, ptr %110, align 8 + %111 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %109, i32 0, i32 1 + store i64 2, ptr %111, align 4 + %112 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %109, i32 0, i32 2 + store i64 2, ptr %112, align 4 + %113 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %109, align 8 + %114 = call ptr @"github.com/goplus/llgo/internal/runtime.Struct"(%"github.com/goplus/llgo/internal/runtime.String" %105, i64 16, %"github.com/goplus/llgo/internal/runtime.Slice" %113) + store ptr %114, ptr @"main.struct$p9hq6rduefaRA0UGJ6DazYUtteEOtDFu7UHk5jhDUV4", align 8 + %115 = load ptr, ptr @"main.struct$p9hq6rduefaRA0UGJ6DazYUtteEOtDFu7UHk5jhDUV4", align 8 + %116 = load ptr, ptr @_llgo_byte, align 8 + %117 = icmp eq ptr %116, null + br i1 %117, label %_llgo_23, label %_llgo_24 + +_llgo_23: ; preds = %_llgo_22 + %118 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 8) + %119 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Type", ptr %118, i32 0, i32 6 + %120 = load i8, ptr %119, align 1 + %121 = or i8 %120, 32 + store i8 %121, ptr %119, align 1 + store ptr %118, ptr @_llgo_byte, align 8 + br label %_llgo_24 + +_llgo_24: ; preds = %_llgo_23, %_llgo_22 + %122 = load ptr, ptr @"*_llgo_byte", align 8 + %123 = icmp eq ptr %122, null + br i1 %123, label %_llgo_25, label %_llgo_26 + +_llgo_25: ; preds = %_llgo_24 + %124 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 8) + %125 = call ptr @"github.com/goplus/llgo/internal/runtime.PointerTo"(ptr %124) + store ptr %125, ptr @"*_llgo_byte", align 8 + br label %_llgo_26 + +_llgo_26: ; preds = %_llgo_25, %_llgo_24 + %126 = load ptr, ptr @"*_llgo_byte", align 8 + %127 = load ptr, ptr @_llgo_string, align 8 + %128 = icmp eq ptr %127, null + br i1 %128, label %_llgo_27, label %_llgo_28 + +_llgo_27: ; preds = %_llgo_26 + %129 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 24) + store ptr %129, ptr @_llgo_string, align 8 + br label %_llgo_28 + +_llgo_28: ; preds = %_llgo_27, %_llgo_26 + %130 = load ptr, ptr @_llgo_string, align 8 + %131 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/internal/abi.Type", align 8 + %132 = icmp eq ptr %131, null + br i1 %132, label %_llgo_29, label %_llgo_30 + +_llgo_29: ; preds = %_llgo_28 + %133 = call ptr @"github.com/goplus/llgo/internal/runtime.PointerTo"(ptr %9) + store ptr %133, ptr @"*_llgo_github.com/goplus/llgo/internal/abi.Type", align 8 + br label %_llgo_30 + +_llgo_30: ; preds = %_llgo_29, %_llgo_28 + %134 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/internal/abi.Type", align 8 + %135 = load ptr, ptr @"_llgo_struct$13P_TvKNXommvK6tKt3eRNnJqTcPEFYrHagFiHeRpb0", align 8 + %136 = icmp eq ptr %135, null + br i1 %136, label %_llgo_31, label %_llgo_32 + +_llgo_31: ; preds = %_llgo_30 + %137 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %138 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %137, i32 0, i32 0 + store ptr @5, ptr %138, align 8 + %139 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %137, i32 0, i32 1 + store i64 5, ptr %139, align 4 + %140 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %137, align 8 + %141 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %142 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %141, i32 0, i32 0 + store ptr null, ptr %142, align 8 + %143 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %141, i32 0, i32 1 + store i64 0, ptr %143, align 4 + %144 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %141, align 8 + %145 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %140, ptr %16, i64 0, %"github.com/goplus/llgo/internal/runtime.String" %144, i1 false) + %146 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %147 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %146, i32 0, i32 0 + store ptr @6, ptr %147, align 8 + %148 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %146, i32 0, i32 1 + store i64 8, ptr %148, align 4 + %149 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %146, align 8 + %150 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %151 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %150, i32 0, i32 0 + store ptr null, ptr %151, align 8 + %152 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %150, i32 0, i32 1 + store i64 0, ptr %152, align 4 + %153 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %150, align 8 + %154 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %149, ptr %17, i64 8, %"github.com/goplus/llgo/internal/runtime.String" %153, i1 false) + %155 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %156 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %155, i32 0, i32 0 + store ptr @7, ptr %156, align 8 + %157 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %155, i32 0, i32 1 + store i64 4, ptr %157, align 4 + %158 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %155, align 8 + %159 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %160 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %159, i32 0, i32 0 + store ptr null, ptr %160, align 8 + %161 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %159, i32 0, i32 1 + store i64 0, ptr %161, align 4 + %162 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %159, align 8 + %163 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %158, ptr %24, i64 16, %"github.com/goplus/llgo/internal/runtime.String" %162, i1 false) + %164 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %165 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %164, i32 0, i32 0 + store ptr @1, ptr %165, align 8 + %166 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %164, i32 0, i32 1 + store i64 5, ptr %166, align 4 + %167 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %164, align 8 + %168 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %169 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %168, i32 0, i32 0 + store ptr null, ptr %169, align 8 + %170 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %168, i32 0, i32 1 + store i64 0, ptr %170, align 4 + %171 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %168, align 8 + %172 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %167, ptr %46, i64 20, %"github.com/goplus/llgo/internal/runtime.String" %171, i1 false) + %173 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %174 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %173, i32 0, i32 0 + store ptr @8, ptr %174, align 8 + %175 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %173, i32 0, i32 1 + store i64 6, ptr %175, align 4 + %176 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %173, align 8 + %177 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %178 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %177, i32 0, i32 0 + store ptr null, ptr %178, align 8 + %179 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %177, i32 0, i32 1 + store i64 0, ptr %179, align 4 + %180 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %177, align 8 + %181 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %176, ptr %47, i64 21, %"github.com/goplus/llgo/internal/runtime.String" %180, i1 false) + %182 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %183 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %182, i32 0, i32 0 + store ptr @9, ptr %183, align 8 + %184 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %182, i32 0, i32 1 + store i64 11, ptr %184, align 4 + %185 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %182, align 8 + %186 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %187 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %186, i32 0, i32 0 + store ptr null, ptr %187, align 8 + %188 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %186, i32 0, i32 1 + store i64 0, ptr %188, align 4 + %189 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %186, align 8 + %190 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %185, ptr %48, i64 22, %"github.com/goplus/llgo/internal/runtime.String" %189, i1 false) + %191 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %192 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %191, i32 0, i32 0 + store ptr @10, ptr %192, align 8 + %193 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %191, i32 0, i32 1 + store i64 5, ptr %193, align 4 + %194 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %191, align 8 + %195 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %196 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %195, i32 0, i32 0 + store ptr null, ptr %196, align 8 + %197 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %195, i32 0, i32 1 + store i64 0, ptr %197, align 4 + %198 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %195, align 8 + %199 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %194, ptr %49, i64 23, %"github.com/goplus/llgo/internal/runtime.String" %198, i1 false) + %200 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %201 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %200, i32 0, i32 0 + store ptr @11, ptr %201, align 8 + %202 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %200, i32 0, i32 1 + store i64 5, ptr %202, align 4 + %203 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %200, align 8 + %204 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %205 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %204, i32 0, i32 0 + store ptr null, ptr %205, align 8 + %206 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %204, i32 0, i32 1 + store i64 0, ptr %206, align 4 + %207 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %204, align 8 + %208 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %203, ptr %115, i64 24, %"github.com/goplus/llgo/internal/runtime.String" %207, i1 false) + %209 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %210 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %209, i32 0, i32 0 + store ptr @12, ptr %210, align 8 + %211 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %209, i32 0, i32 1 + store i64 6, ptr %211, align 4 + %212 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %209, align 8 + %213 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %214 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %213, i32 0, i32 0 + store ptr null, ptr %214, align 8 + %215 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %213, i32 0, i32 1 + store i64 0, ptr %215, align 4 + %216 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %213, align 8 + %217 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %212, ptr %126, i64 40, %"github.com/goplus/llgo/internal/runtime.String" %216, i1 false) + %218 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %219 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %218, i32 0, i32 0 + store ptr @13, ptr %219, align 8 + %220 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %218, i32 0, i32 1 + store i64 4, ptr %220, align 4 + %221 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %218, align 8 + %222 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %223 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %222, i32 0, i32 0 + store ptr null, ptr %223, align 8 + %224 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %222, i32 0, i32 1 + store i64 0, ptr %224, align 4 + %225 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %222, align 8 + %226 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %221, ptr %130, i64 48, %"github.com/goplus/llgo/internal/runtime.String" %225, i1 false) + %227 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %228 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %227, i32 0, i32 0 + store ptr @14, ptr %228, align 8 + %229 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %227, i32 0, i32 1 + store i64 10, ptr %229, align 4 + %230 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %227, align 8 + %231 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %232 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %231, i32 0, i32 0 + store ptr null, ptr %232, align 8 + %233 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %231, i32 0, i32 1 + store i64 0, ptr %233, align 4 + %234 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %231, align 8 + %235 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %230, ptr %134, i64 64, %"github.com/goplus/llgo/internal/runtime.String" %234, i1 false) + %236 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %237 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %236, i32 0, i32 0 + store ptr @4, ptr %237, align 8 + %238 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %236, i32 0, i32 1 + store i64 4, ptr %238, align 4 + %239 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %236, align 8 + %240 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 616) + %241 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %240, i64 0 + store %"github.com/goplus/llgo/internal/abi.StructField" %145, ptr %241, align 8 + %242 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %240, i64 1 + store %"github.com/goplus/llgo/internal/abi.StructField" %154, ptr %242, align 8 + %243 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %240, i64 2 + store %"github.com/goplus/llgo/internal/abi.StructField" %163, ptr %243, align 8 + %244 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %240, i64 3 + store %"github.com/goplus/llgo/internal/abi.StructField" %172, ptr %244, align 8 + %245 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %240, i64 4 + store %"github.com/goplus/llgo/internal/abi.StructField" %181, ptr %245, align 8 + %246 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %240, i64 5 + store %"github.com/goplus/llgo/internal/abi.StructField" %190, ptr %246, align 8 + %247 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %240, i64 6 + store %"github.com/goplus/llgo/internal/abi.StructField" %199, ptr %247, align 8 + %248 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %240, i64 7 + store %"github.com/goplus/llgo/internal/abi.StructField" %208, ptr %248, align 8 + %249 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %240, i64 8 + store %"github.com/goplus/llgo/internal/abi.StructField" %217, ptr %249, align 8 + %250 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %240, i64 9 + store %"github.com/goplus/llgo/internal/abi.StructField" %226, ptr %250, align 8 + %251 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %240, i64 10 + store %"github.com/goplus/llgo/internal/abi.StructField" %235, ptr %251, align 8 + %252 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %253 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %252, i32 0, i32 0 + store ptr %240, ptr %253, align 8 + %254 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %252, i32 0, i32 1 + store i64 11, ptr %254, align 4 + %255 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %252, i32 0, i32 2 + store i64 11, ptr %255, align 4 + %256 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %252, align 8 + %257 = call ptr @"github.com/goplus/llgo/internal/runtime.Struct"(%"github.com/goplus/llgo/internal/runtime.String" %239, i64 72, %"github.com/goplus/llgo/internal/runtime.Slice" %256) + store ptr %257, ptr @"_llgo_struct$13P_TvKNXommvK6tKt3eRNnJqTcPEFYrHagFiHeRpb0", align 8 + br label %_llgo_32 + +_llgo_32: ; preds = %_llgo_31, %_llgo_30 + %258 = load ptr, ptr @"_llgo_struct$13P_TvKNXommvK6tKt3eRNnJqTcPEFYrHagFiHeRpb0", align 8 + br i1 %8, label %_llgo_33, label %_llgo_34 + +_llgo_33: ; preds = %_llgo_32 + %259 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %260 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %259, i32 0, i32 0 + store ptr @15, ptr %260, align 8 + %261 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %259, i32 0, i32 1 + store i64 5, ptr %261, align 4 + %262 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %259, align 8 + %263 = load ptr, ptr @_llgo_int, align 8 + %264 = icmp eq ptr %263, null + br i1 %264, label %_llgo_35, label %_llgo_36 + +_llgo_34: ; preds = %_llgo_128, %_llgo_32 + %265 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/internal/abi.Type", align 8 + %266 = load ptr, ptr @_llgo_uintptr, align 8 + %267 = load ptr, ptr @"[]_llgo_main.T", align 8 + %268 = icmp eq ptr %267, null + br i1 %268, label %_llgo_129, label %_llgo_130 + +_llgo_35: ; preds = %_llgo_33 + %269 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 2) + %270 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Type", ptr %269, i32 0, i32 6 + %271 = load i8, ptr %270, align 1 + %272 = or i8 %271, 32 + store i8 %272, ptr %270, align 1 + store ptr %269, ptr @_llgo_int, align 8 + br label %_llgo_36 + +_llgo_36: ; preds = %_llgo_35, %_llgo_33 + %273 = load ptr, ptr @_llgo_int, align 8 + %274 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 + %275 = icmp eq ptr %274, null + br i1 %275, label %_llgo_37, label %_llgo_38 + +_llgo_37: ; preds = %_llgo_36 + %276 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 0) + %277 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %278 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %277, i32 0, i32 0 + store ptr %276, ptr %278, align 8 + %279 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %277, i32 0, i32 1 + store i64 0, ptr %279, align 4 + %280 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %277, i32 0, i32 2 + store i64 0, ptr %280, align 4 + %281 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %277, align 8 + %282 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 8) + %283 = getelementptr ptr, ptr %282, i64 0 + store ptr %273, ptr %283, align 8 + %284 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %285 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %284, i32 0, i32 0 + store ptr %282, ptr %285, align 8 + %286 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %284, i32 0, i32 1 + store i64 1, ptr %286, align 4 + %287 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %284, i32 0, i32 2 + store i64 1, ptr %287, align 4 + %288 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %284, align 8 + %289 = call ptr @"github.com/goplus/llgo/internal/runtime.Func"(%"github.com/goplus/llgo/internal/runtime.Slice" %281, %"github.com/goplus/llgo/internal/runtime.Slice" %288, i1 false) + store ptr %289, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 + br label %_llgo_38 + +_llgo_38: ; preds = %_llgo_37, %_llgo_36 + %290 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 + %291 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %292 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %291, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %262, ptr %292, align 8 + %293 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %291, i32 0, i32 1 + store ptr %290, ptr %293, align 8 + %294 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %291, i32 0, i32 2 + store ptr @"github.com/goplus/llgo/internal/abi.(*Type).Align", ptr %294, align 8 + %295 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %291, i32 0, i32 3 + store ptr @"github.com/goplus/llgo/internal/abi.(*Type).Align", ptr %295, align 8 + %296 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %291, align 8 + %297 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %298 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %297, i32 0, i32 0 + store ptr @16, ptr %298, align 8 + %299 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %297, i32 0, i32 1 + store i64 9, ptr %299, align 4 + %300 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %297, align 8 + %301 = load ptr, ptr @"_llgo_github.com/goplus/llgo/internal/abi.ArrayType", align 8 + %302 = icmp eq ptr %301, null + br i1 %302, label %_llgo_39, label %_llgo_40 + +_llgo_39: ; preds = %_llgo_38 + %303 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(i64 25, i64 0, i64 16) + store ptr %303, ptr @"_llgo_github.com/goplus/llgo/internal/abi.ArrayType", align 8 + br label %_llgo_40 + +_llgo_40: ; preds = %_llgo_39, %_llgo_38 + %304 = load ptr, ptr @"_llgo_github.com/goplus/llgo/internal/abi.Type", align 8 + %305 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/internal/abi.Type", align 8 + %306 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/internal/abi.Type", align 8 + %307 = load ptr, ptr @_llgo_uintptr, align 8 + %308 = load ptr, ptr @"_llgo_struct$eLreYy_0Tx9Ip-rgTmC6_uCvf27HVl_zBUTfLS0WYaY", align 8 + %309 = icmp eq ptr %308, null + br i1 %309, label %_llgo_41, label %_llgo_42 + +_llgo_41: ; preds = %_llgo_40 + %310 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %311 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %310, i32 0, i32 0 + store ptr @17, ptr %311, align 8 + %312 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %310, i32 0, i32 1 + store i64 4, ptr %312, align 4 + %313 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %310, align 8 + %314 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %315 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %314, i32 0, i32 0 + store ptr null, ptr %315, align 8 + %316 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %314, i32 0, i32 1 + store i64 0, ptr %316, align 4 + %317 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %314, align 8 + %318 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %313, ptr %304, i64 0, %"github.com/goplus/llgo/internal/runtime.String" %317, i1 true) + %319 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %320 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %319, i32 0, i32 0 + store ptr @18, ptr %320, align 8 + %321 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %319, i32 0, i32 1 + store i64 4, ptr %321, align 4 + %322 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %319, align 8 + %323 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %324 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %323, i32 0, i32 0 + store ptr null, ptr %324, align 8 + %325 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %323, i32 0, i32 1 + store i64 0, ptr %325, align 4 + %326 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %323, align 8 + %327 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %322, ptr %305, i64 72, %"github.com/goplus/llgo/internal/runtime.String" %326, i1 false) + %328 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %329 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %328, i32 0, i32 0 + store ptr @19, ptr %329, align 8 + %330 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %328, i32 0, i32 1 + store i64 5, ptr %330, align 4 + %331 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %328, align 8 + %332 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %333 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %332, i32 0, i32 0 + store ptr null, ptr %333, align 8 + %334 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %332, i32 0, i32 1 + store i64 0, ptr %334, align 4 + %335 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %332, align 8 + %336 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %331, ptr %306, i64 80, %"github.com/goplus/llgo/internal/runtime.String" %335, i1 false) + %337 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %338 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %337, i32 0, i32 0 + store ptr @20, ptr %338, align 8 + %339 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %337, i32 0, i32 1 + store i64 3, ptr %339, align 4 + %340 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %337, align 8 + %341 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %342 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %341, i32 0, i32 0 + store ptr null, ptr %342, align 8 + %343 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %341, i32 0, i32 1 + store i64 0, ptr %343, align 4 + %344 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %341, align 8 + %345 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %340, ptr %307, i64 88, %"github.com/goplus/llgo/internal/runtime.String" %344, i1 false) + %346 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %347 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %346, i32 0, i32 0 + store ptr @4, ptr %347, align 8 + %348 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %346, i32 0, i32 1 + store i64 4, ptr %348, align 4 + %349 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %346, align 8 + %350 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 224) + %351 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %350, i64 0 + store %"github.com/goplus/llgo/internal/abi.StructField" %318, ptr %351, align 8 + %352 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %350, i64 1 + store %"github.com/goplus/llgo/internal/abi.StructField" %327, ptr %352, align 8 + %353 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %350, i64 2 + store %"github.com/goplus/llgo/internal/abi.StructField" %336, ptr %353, align 8 + %354 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %350, i64 3 + store %"github.com/goplus/llgo/internal/abi.StructField" %345, ptr %354, align 8 + %355 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %356 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %355, i32 0, i32 0 + store ptr %350, ptr %356, align 8 + %357 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %355, i32 0, i32 1 + store i64 4, ptr %357, align 4 + %358 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %355, i32 0, i32 2 + store i64 4, ptr %358, align 4 + %359 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %355, align 8 + %360 = call ptr @"github.com/goplus/llgo/internal/runtime.Struct"(%"github.com/goplus/llgo/internal/runtime.String" %349, i64 96, %"github.com/goplus/llgo/internal/runtime.Slice" %359) + store ptr %360, ptr @"_llgo_struct$eLreYy_0Tx9Ip-rgTmC6_uCvf27HVl_zBUTfLS0WYaY", align 8 + br label %_llgo_42 + +_llgo_42: ; preds = %_llgo_41, %_llgo_40 + %361 = load ptr, ptr @"_llgo_struct$eLreYy_0Tx9Ip-rgTmC6_uCvf27HVl_zBUTfLS0WYaY", align 8 + br i1 %302, label %_llgo_43, label %_llgo_44 + +_llgo_43: ; preds = %_llgo_42 + %362 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %363 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %362, i32 0, i32 0 + store ptr @15, ptr %363, align 8 + %364 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %362, i32 0, i32 1 + store i64 5, ptr %364, align 4 + %365 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %362, align 8 + %366 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 + %367 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %368 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %367, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %365, ptr %368, align 8 + %369 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %367, i32 0, i32 1 + store ptr %366, ptr %369, align 8 + %370 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %367, i32 0, i32 2 + store ptr @"github.com/goplus/llgo/internal/abi.(*ArrayType).Align", ptr %370, align 8 + %371 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %367, i32 0, i32 3 + store ptr @"github.com/goplus/llgo/internal/abi.(*ArrayType).Align", ptr %371, align 8 + %372 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %367, align 8 + %373 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %374 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %373, i32 0, i32 0 + store ptr @16, ptr %374, align 8 + %375 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %373, i32 0, i32 1 + store i64 9, ptr %375, align 4 + %376 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %373, align 8 + %377 = load ptr, ptr @"_llgo_func$CsVqlCxhoEcIvPD5BSBukfSiD9C7Ic5_Gf32MLbCWB4", align 8 + %378 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %379 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %378, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %376, ptr %379, align 8 + %380 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %378, i32 0, i32 1 + store ptr %377, ptr %380, align 8 + %381 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %378, i32 0, i32 2 + store ptr @"github.com/goplus/llgo/internal/abi.(*ArrayType).ArrayType", ptr %381, align 8 + %382 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %378, i32 0, i32 3 + store ptr @"github.com/goplus/llgo/internal/abi.(*ArrayType).ArrayType", ptr %382, align 8 + %383 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %378, align 8 + %384 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %385 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %384, i32 0, i32 0 + store ptr @21, ptr %385, align 8 + %386 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %384, i32 0, i32 1 + store i64 6, ptr %386, align 4 + %387 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %384, align 8 + %388 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/internal/abi.Type", align 8 + %389 = load ptr, ptr @"_llgo_func$4-mqItKfDlL0CgVKnUxoresYgh6zW1WSlZYZSsVzLRo", align 8 + %390 = icmp eq ptr %389, null + br i1 %390, label %_llgo_45, label %_llgo_46 + +_llgo_44: ; preds = %_llgo_124, %_llgo_42 + %391 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/internal/abi.ArrayType", align 8 + %392 = icmp eq ptr %391, null + br i1 %392, label %_llgo_125, label %_llgo_126 + +_llgo_45: ; preds = %_llgo_43 + %393 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 0) + %394 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %395 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %394, i32 0, i32 0 + store ptr %393, ptr %395, align 8 + %396 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %394, i32 0, i32 1 + store i64 0, ptr %396, align 4 + %397 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %394, i32 0, i32 2 + store i64 0, ptr %397, align 4 + %398 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %394, align 8 + %399 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 8) + %400 = getelementptr ptr, ptr %399, i64 0 + store ptr %388, ptr %400, align 8 + %401 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %402 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %401, i32 0, i32 0 + store ptr %399, ptr %402, align 8 + %403 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %401, i32 0, i32 1 + store i64 1, ptr %403, align 4 + %404 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %401, i32 0, i32 2 + store i64 1, ptr %404, align 4 + %405 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %401, align 8 + %406 = call ptr @"github.com/goplus/llgo/internal/runtime.Func"(%"github.com/goplus/llgo/internal/runtime.Slice" %398, %"github.com/goplus/llgo/internal/runtime.Slice" %405, i1 false) + store ptr %406, ptr @"_llgo_func$4-mqItKfDlL0CgVKnUxoresYgh6zW1WSlZYZSsVzLRo", align 8 + br label %_llgo_46 + +_llgo_46: ; preds = %_llgo_45, %_llgo_43 + %407 = load ptr, ptr @"_llgo_func$4-mqItKfDlL0CgVKnUxoresYgh6zW1WSlZYZSsVzLRo", align 8 + %408 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %409 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %408, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %387, ptr %409, align 8 + %410 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %408, i32 0, i32 1 + store ptr %407, ptr %410, align 8 + %411 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %408, i32 0, i32 2 + store ptr @"github.com/goplus/llgo/internal/abi.(*ArrayType).Common", ptr %411, align 8 + %412 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %408, i32 0, i32 3 + store ptr @"github.com/goplus/llgo/internal/abi.(*ArrayType).Common", ptr %412, align 8 + %413 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %408, align 8 + %414 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %415 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %414, i32 0, i32 0 + store ptr @22, ptr %415, align 8 + %416 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %414, i32 0, i32 1 + store i64 10, ptr %416, align 4 + %417 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %414, align 8 + %418 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 + %419 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %420 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %419, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %417, ptr %420, align 8 + %421 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %419, i32 0, i32 1 + store ptr %418, ptr %421, align 8 + %422 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %419, i32 0, i32 2 + store ptr @"github.com/goplus/llgo/internal/abi.(*ArrayType).FieldAlign", ptr %422, align 8 + %423 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %419, i32 0, i32 3 + store ptr @"github.com/goplus/llgo/internal/abi.(*ArrayType).FieldAlign", ptr %423, align 8 + %424 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %419, align 8 + %425 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %426 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %425, i32 0, i32 0 + store ptr @23, ptr %426, align 8 + %427 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %425, i32 0, i32 1 + store i64 8, ptr %427, align 4 + %428 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %425, align 8 + %429 = load ptr, ptr @"_llgo_github.com/goplus/llgo/internal/abi.FuncType", align 8 + %430 = icmp eq ptr %429, null + br i1 %430, label %_llgo_47, label %_llgo_48 + +_llgo_47: ; preds = %_llgo_46 + %431 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(i64 25, i64 0, i64 19) + store ptr %431, ptr @"_llgo_github.com/goplus/llgo/internal/abi.FuncType", align 8 + br label %_llgo_48 + +_llgo_48: ; preds = %_llgo_47, %_llgo_46 + %432 = load ptr, ptr @"_llgo_github.com/goplus/llgo/internal/abi.Type", align 8 + %433 = load ptr, ptr @"[]*_llgo_github.com/goplus/llgo/internal/abi.Type", align 8 + %434 = icmp eq ptr %433, null + br i1 %434, label %_llgo_49, label %_llgo_50 + +_llgo_49: ; preds = %_llgo_48 + %435 = call ptr @"github.com/goplus/llgo/internal/runtime.PointerTo"(ptr %9) + %436 = call ptr @"github.com/goplus/llgo/internal/runtime.SliceOf"(ptr %435) + store ptr %436, ptr @"[]*_llgo_github.com/goplus/llgo/internal/abi.Type", align 8 + br label %_llgo_50 + +_llgo_50: ; preds = %_llgo_49, %_llgo_48 + %437 = load ptr, ptr @"[]*_llgo_github.com/goplus/llgo/internal/abi.Type", align 8 + %438 = load ptr, ptr @"[]*_llgo_github.com/goplus/llgo/internal/abi.Type", align 8 + %439 = load ptr, ptr @"_llgo_struct$wRu7InfmQeSkq7akLN3soDNninnS1dQajawdYvmHbzw", align 8 + %440 = icmp eq ptr %439, null + br i1 %440, label %_llgo_51, label %_llgo_52 + +_llgo_51: ; preds = %_llgo_50 + %441 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %442 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %441, i32 0, i32 0 + store ptr @17, ptr %442, align 8 + %443 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %441, i32 0, i32 1 + store i64 4, ptr %443, align 4 + %444 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %441, align 8 + %445 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %446 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %445, i32 0, i32 0 + store ptr null, ptr %446, align 8 + %447 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %445, i32 0, i32 1 + store i64 0, ptr %447, align 4 + %448 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %445, align 8 + %449 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %444, ptr %432, i64 0, %"github.com/goplus/llgo/internal/runtime.String" %448, i1 true) + %450 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %451 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %450, i32 0, i32 0 + store ptr @24, ptr %451, align 8 + %452 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %450, i32 0, i32 1 + store i64 2, ptr %452, align 4 + %453 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %450, align 8 + %454 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %455 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %454, i32 0, i32 0 + store ptr null, ptr %455, align 8 + %456 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %454, i32 0, i32 1 + store i64 0, ptr %456, align 4 + %457 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %454, align 8 + %458 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %453, ptr %437, i64 72, %"github.com/goplus/llgo/internal/runtime.String" %457, i1 false) + %459 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %460 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %459, i32 0, i32 0 + store ptr @25, ptr %460, align 8 + %461 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %459, i32 0, i32 1 + store i64 3, ptr %461, align 4 + %462 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %459, align 8 + %463 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %464 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %463, i32 0, i32 0 + store ptr null, ptr %464, align 8 + %465 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %463, i32 0, i32 1 + store i64 0, ptr %465, align 4 + %466 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %463, align 8 + %467 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %462, ptr %438, i64 96, %"github.com/goplus/llgo/internal/runtime.String" %466, i1 false) + %468 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %469 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %468, i32 0, i32 0 + store ptr @4, ptr %469, align 8 + %470 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %468, i32 0, i32 1 + store i64 4, ptr %470, align 4 + %471 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %468, align 8 + %472 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 168) + %473 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %472, i64 0 + store %"github.com/goplus/llgo/internal/abi.StructField" %449, ptr %473, align 8 + %474 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %472, i64 1 + store %"github.com/goplus/llgo/internal/abi.StructField" %458, ptr %474, align 8 + %475 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %472, i64 2 + store %"github.com/goplus/llgo/internal/abi.StructField" %467, ptr %475, align 8 + %476 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %477 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %476, i32 0, i32 0 + store ptr %472, ptr %477, align 8 + %478 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %476, i32 0, i32 1 + store i64 3, ptr %478, align 4 + %479 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %476, i32 0, i32 2 + store i64 3, ptr %479, align 4 + %480 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %476, align 8 + %481 = call ptr @"github.com/goplus/llgo/internal/runtime.Struct"(%"github.com/goplus/llgo/internal/runtime.String" %471, i64 120, %"github.com/goplus/llgo/internal/runtime.Slice" %480) + store ptr %481, ptr @"_llgo_struct$wRu7InfmQeSkq7akLN3soDNninnS1dQajawdYvmHbzw", align 8 + br label %_llgo_52 + +_llgo_52: ; preds = %_llgo_51, %_llgo_50 + %482 = load ptr, ptr @"_llgo_struct$wRu7InfmQeSkq7akLN3soDNninnS1dQajawdYvmHbzw", align 8 + br i1 %430, label %_llgo_53, label %_llgo_54 + +_llgo_53: ; preds = %_llgo_52 + %483 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %484 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %483, i32 0, i32 0 + store ptr @15, ptr %484, align 8 + %485 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %483, i32 0, i32 1 + store i64 5, ptr %485, align 4 + %486 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %483, align 8 + %487 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 + %488 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %489 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %488, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %486, ptr %489, align 8 + %490 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %488, i32 0, i32 1 + store ptr %487, ptr %490, align 8 + %491 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %488, i32 0, i32 2 + store ptr @"github.com/goplus/llgo/internal/abi.(*FuncType).Align", ptr %491, align 8 + %492 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %488, i32 0, i32 3 + store ptr @"github.com/goplus/llgo/internal/abi.(*FuncType).Align", ptr %492, align 8 + %493 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %488, align 8 + %494 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %495 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %494, i32 0, i32 0 + store ptr @16, ptr %495, align 8 + %496 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %494, i32 0, i32 1 + store i64 9, ptr %496, align 4 + %497 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %494, align 8 + %498 = load ptr, ptr @"_llgo_func$CsVqlCxhoEcIvPD5BSBukfSiD9C7Ic5_Gf32MLbCWB4", align 8 + %499 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %500 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %499, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %497, ptr %500, align 8 + %501 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %499, i32 0, i32 1 + store ptr %498, ptr %501, align 8 + %502 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %499, i32 0, i32 2 + store ptr @"github.com/goplus/llgo/internal/abi.(*FuncType).ArrayType", ptr %502, align 8 + %503 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %499, i32 0, i32 3 + store ptr @"github.com/goplus/llgo/internal/abi.(*FuncType).ArrayType", ptr %503, align 8 + %504 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %499, align 8 + %505 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %506 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %505, i32 0, i32 0 + store ptr @21, ptr %506, align 8 + %507 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %505, i32 0, i32 1 + store i64 6, ptr %507, align 4 + %508 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %505, align 8 + %509 = load ptr, ptr @"_llgo_func$4-mqItKfDlL0CgVKnUxoresYgh6zW1WSlZYZSsVzLRo", align 8 + %510 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %511 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %510, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %508, ptr %511, align 8 + %512 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %510, i32 0, i32 1 + store ptr %509, ptr %512, align 8 + %513 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %510, i32 0, i32 2 + store ptr @"github.com/goplus/llgo/internal/abi.(*FuncType).Common", ptr %513, align 8 + %514 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %510, i32 0, i32 3 + store ptr @"github.com/goplus/llgo/internal/abi.(*FuncType).Common", ptr %514, align 8 + %515 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %510, align 8 + %516 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %517 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %516, i32 0, i32 0 + store ptr @18, ptr %517, align 8 + %518 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %516, i32 0, i32 1 + store i64 4, ptr %518, align 4 + %519 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %516, align 8 + %520 = load ptr, ptr @"_llgo_func$4-mqItKfDlL0CgVKnUxoresYgh6zW1WSlZYZSsVzLRo", align 8 + %521 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %522 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %521, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %519, ptr %522, align 8 + %523 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %521, i32 0, i32 1 + store ptr %520, ptr %523, align 8 + %524 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %521, i32 0, i32 2 + store ptr @"github.com/goplus/llgo/internal/abi.(*FuncType).Elem", ptr %524, align 8 + %525 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %521, i32 0, i32 3 + store ptr @"github.com/goplus/llgo/internal/abi.(*FuncType).Elem", ptr %525, align 8 + %526 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %521, align 8 + %527 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %528 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %527, i32 0, i32 0 + store ptr @22, ptr %528, align 8 + %529 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %527, i32 0, i32 1 + store i64 10, ptr %529, align 4 + %530 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %527, align 8 + %531 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 + %532 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %533 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %532, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %530, ptr %533, align 8 + %534 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %532, i32 0, i32 1 + store ptr %531, ptr %534, align 8 + %535 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %532, i32 0, i32 2 + store ptr @"github.com/goplus/llgo/internal/abi.(*FuncType).FieldAlign", ptr %535, align 8 + %536 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %532, i32 0, i32 3 + store ptr @"github.com/goplus/llgo/internal/abi.(*FuncType).FieldAlign", ptr %536, align 8 + %537 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %532, align 8 + %538 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %539 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %538, i32 0, i32 0 + store ptr @23, ptr %539, align 8 + %540 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %538, i32 0, i32 1 + store i64 8, ptr %540, align 4 + %541 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %538, align 8 + %542 = load ptr, ptr @"_llgo_func$DsoxgOnxqV7tLvokF3AA14v1gtHsHaThoC8Q_XGcQww", align 8 + %543 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %544 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %543, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %541, ptr %544, align 8 + %545 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %543, i32 0, i32 1 + store ptr %542, ptr %545, align 8 + %546 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %543, i32 0, i32 2 + store ptr @"github.com/goplus/llgo/internal/abi.(*FuncType).FuncType", ptr %546, align 8 + %547 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %543, i32 0, i32 3 + store ptr @"github.com/goplus/llgo/internal/abi.(*FuncType).FuncType", ptr %547, align 8 + %548 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %543, align 8 + %549 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %550 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %549, i32 0, i32 0 + store ptr @26, ptr %550, align 8 + %551 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %549, i32 0, i32 1 + store i64 7, ptr %551, align 4 + %552 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %549, align 8 + %553 = load ptr, ptr @_llgo_bool, align 8 + %554 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 + %555 = icmp eq ptr %554, null + br i1 %555, label %_llgo_55, label %_llgo_56 + +_llgo_54: ; preds = %_llgo_120, %_llgo_52 + %556 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/internal/abi.FuncType", align 8 + %557 = icmp eq ptr %556, null + br i1 %557, label %_llgo_121, label %_llgo_122 + +_llgo_55: ; preds = %_llgo_53 + %558 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 0) + %559 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %560 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %559, i32 0, i32 0 + store ptr %558, ptr %560, align 8 + %561 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %559, i32 0, i32 1 + store i64 0, ptr %561, align 4 + %562 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %559, i32 0, i32 2 + store i64 0, ptr %562, align 4 + %563 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %559, align 8 + %564 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 8) + %565 = getelementptr ptr, ptr %564, i64 0 + store ptr %553, ptr %565, align 8 + %566 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %567 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %566, i32 0, i32 0 + store ptr %564, ptr %567, align 8 + %568 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %566, i32 0, i32 1 + store i64 1, ptr %568, align 4 + %569 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %566, i32 0, i32 2 + store i64 1, ptr %569, align 4 + %570 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %566, align 8 + %571 = call ptr @"github.com/goplus/llgo/internal/runtime.Func"(%"github.com/goplus/llgo/internal/runtime.Slice" %563, %"github.com/goplus/llgo/internal/runtime.Slice" %570, i1 false) + store ptr %571, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 + br label %_llgo_56 + +_llgo_56: ; preds = %_llgo_55, %_llgo_53 + %572 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 + %573 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %574 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %573, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %552, ptr %574, align 8 + %575 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %573, i32 0, i32 1 + store ptr %572, ptr %575, align 8 + %576 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %573, i32 0, i32 2 + store ptr @"github.com/goplus/llgo/internal/abi.(*FuncType).HasName", ptr %576, align 8 + %577 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %573, i32 0, i32 3 + store ptr @"github.com/goplus/llgo/internal/abi.(*FuncType).HasName", ptr %577, align 8 + %578 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %573, align 8 + %579 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %580 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %579, i32 0, i32 0 + store ptr @27, ptr %580, align 8 + %581 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %579, i32 0, i32 1 + store i64 10, ptr %581, align 4 + %582 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %579, align 8 + %583 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 + %584 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %585 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %584, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %582, ptr %585, align 8 + %586 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %584, i32 0, i32 1 + store ptr %583, ptr %586, align 8 + %587 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %584, i32 0, i32 2 + store ptr @"github.com/goplus/llgo/internal/abi.(*FuncType).IfaceIndir", ptr %587, align 8 + %588 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %584, i32 0, i32 3 + store ptr @"github.com/goplus/llgo/internal/abi.(*FuncType).IfaceIndir", ptr %588, align 8 + %589 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %584, align 8 + %590 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %591 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %590, i32 0, i32 0 + store ptr @28, ptr %591, align 8 + %592 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %590, i32 0, i32 1 + store i64 13, ptr %592, align 4 + %593 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %590, align 8 + %594 = load ptr, ptr @"_llgo_github.com/goplus/llgo/internal/abi.InterfaceType", align 8 + %595 = icmp eq ptr %594, null + br i1 %595, label %_llgo_57, label %_llgo_58 + +_llgo_57: ; preds = %_llgo_56 + %596 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(i64 25, i64 0, i64 18) + store ptr %596, ptr @"_llgo_github.com/goplus/llgo/internal/abi.InterfaceType", align 8 + br label %_llgo_58 + +_llgo_58: ; preds = %_llgo_57, %_llgo_56 + %597 = load ptr, ptr @"_llgo_github.com/goplus/llgo/internal/abi.Type", align 8 + %598 = load ptr, ptr @_llgo_string, align 8 + %599 = load ptr, ptr @"[]_llgo_github.com/goplus/llgo/internal/abi.Imethod", align 8 + %600 = icmp eq ptr %599, null + br i1 %600, label %_llgo_59, label %_llgo_60 + +_llgo_59: ; preds = %_llgo_58 + %601 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(i64 25, i64 0, i64 3) + %602 = call ptr @"github.com/goplus/llgo/internal/runtime.SliceOf"(ptr %601) + store ptr %602, ptr @"[]_llgo_github.com/goplus/llgo/internal/abi.Imethod", align 8 + br label %_llgo_60 + +_llgo_60: ; preds = %_llgo_59, %_llgo_58 + %603 = load ptr, ptr @"[]_llgo_github.com/goplus/llgo/internal/abi.Imethod", align 8 + %604 = load ptr, ptr @"_llgo_struct$mWxYYevLxpL1wQyiQtAy4OszkqTlHtrmEcPpzW9Air4", align 8 + %605 = icmp eq ptr %604, null + br i1 %605, label %_llgo_61, label %_llgo_62 + +_llgo_61: ; preds = %_llgo_60 + %606 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %607 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %606, i32 0, i32 0 + store ptr @17, ptr %607, align 8 + %608 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %606, i32 0, i32 1 + store i64 4, ptr %608, align 4 + %609 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %606, align 8 + %610 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %611 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %610, i32 0, i32 0 + store ptr null, ptr %611, align 8 + %612 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %610, i32 0, i32 1 + store i64 0, ptr %612, align 4 + %613 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %610, align 8 + %614 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %609, ptr %597, i64 0, %"github.com/goplus/llgo/internal/runtime.String" %613, i1 true) + %615 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %616 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %615, i32 0, i32 0 + store ptr @29, ptr %616, align 8 + %617 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %615, i32 0, i32 1 + store i64 8, ptr %617, align 4 + %618 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %615, align 8 + %619 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %620 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %619, i32 0, i32 0 + store ptr null, ptr %620, align 8 + %621 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %619, i32 0, i32 1 + store i64 0, ptr %621, align 4 + %622 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %619, align 8 + %623 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %618, ptr %598, i64 72, %"github.com/goplus/llgo/internal/runtime.String" %622, i1 false) + %624 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %625 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %624, i32 0, i32 0 + store ptr @30, ptr %625, align 8 + %626 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %624, i32 0, i32 1 + store i64 7, ptr %626, align 4 + %627 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %624, align 8 + %628 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %629 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %628, i32 0, i32 0 + store ptr null, ptr %629, align 8 + %630 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %628, i32 0, i32 1 + store i64 0, ptr %630, align 4 + %631 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %628, align 8 + %632 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %627, ptr %603, i64 88, %"github.com/goplus/llgo/internal/runtime.String" %631, i1 false) + %633 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %634 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %633, i32 0, i32 0 + store ptr @4, ptr %634, align 8 + %635 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %633, i32 0, i32 1 + store i64 4, ptr %635, align 4 + %636 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %633, align 8 + %637 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 168) + %638 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %637, i64 0 + store %"github.com/goplus/llgo/internal/abi.StructField" %614, ptr %638, align 8 + %639 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %637, i64 1 + store %"github.com/goplus/llgo/internal/abi.StructField" %623, ptr %639, align 8 + %640 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %637, i64 2 + store %"github.com/goplus/llgo/internal/abi.StructField" %632, ptr %640, align 8 + %641 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %642 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %641, i32 0, i32 0 + store ptr %637, ptr %642, align 8 + %643 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %641, i32 0, i32 1 + store i64 3, ptr %643, align 4 + %644 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %641, i32 0, i32 2 + store i64 3, ptr %644, align 4 + %645 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %641, align 8 + %646 = call ptr @"github.com/goplus/llgo/internal/runtime.Struct"(%"github.com/goplus/llgo/internal/runtime.String" %636, i64 112, %"github.com/goplus/llgo/internal/runtime.Slice" %645) + store ptr %646, ptr @"_llgo_struct$mWxYYevLxpL1wQyiQtAy4OszkqTlHtrmEcPpzW9Air4", align 8 + br label %_llgo_62 + +_llgo_62: ; preds = %_llgo_61, %_llgo_60 + %647 = load ptr, ptr @"_llgo_struct$mWxYYevLxpL1wQyiQtAy4OszkqTlHtrmEcPpzW9Air4", align 8 + br i1 %595, label %_llgo_63, label %_llgo_64 + +_llgo_63: ; preds = %_llgo_62 + %648 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %649 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %648, i32 0, i32 0 + store ptr @15, ptr %649, align 8 + %650 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %648, i32 0, i32 1 + store i64 5, ptr %650, align 4 + %651 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %648, align 8 + %652 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 + %653 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %654 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %653, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %651, ptr %654, align 8 + %655 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %653, i32 0, i32 1 + store ptr %652, ptr %655, align 8 + %656 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %653, i32 0, i32 2 + store ptr @"github.com/goplus/llgo/internal/abi.(*InterfaceType).Align", ptr %656, align 8 + %657 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %653, i32 0, i32 3 + store ptr @"github.com/goplus/llgo/internal/abi.(*InterfaceType).Align", ptr %657, align 8 + %658 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %653, align 8 + %659 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %660 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %659, i32 0, i32 0 + store ptr @16, ptr %660, align 8 + %661 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %659, i32 0, i32 1 + store i64 9, ptr %661, align 4 + %662 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %659, align 8 + %663 = load ptr, ptr @"_llgo_func$CsVqlCxhoEcIvPD5BSBukfSiD9C7Ic5_Gf32MLbCWB4", align 8 + %664 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %665 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %664, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %662, ptr %665, align 8 + %666 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %664, i32 0, i32 1 + store ptr %663, ptr %666, align 8 + %667 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %664, i32 0, i32 2 + store ptr @"github.com/goplus/llgo/internal/abi.(*InterfaceType).ArrayType", ptr %667, align 8 + %668 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %664, i32 0, i32 3 + store ptr @"github.com/goplus/llgo/internal/abi.(*InterfaceType).ArrayType", ptr %668, align 8 + %669 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %664, align 8 + %670 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %671 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %670, i32 0, i32 0 + store ptr @21, ptr %671, align 8 + %672 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %670, i32 0, i32 1 + store i64 6, ptr %672, align 4 + %673 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %670, align 8 + %674 = load ptr, ptr @"_llgo_func$4-mqItKfDlL0CgVKnUxoresYgh6zW1WSlZYZSsVzLRo", align 8 + %675 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %676 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %675, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %673, ptr %676, align 8 + %677 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %675, i32 0, i32 1 + store ptr %674, ptr %677, align 8 + %678 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %675, i32 0, i32 2 + store ptr @"github.com/goplus/llgo/internal/abi.(*InterfaceType).Common", ptr %678, align 8 + %679 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %675, i32 0, i32 3 + store ptr @"github.com/goplus/llgo/internal/abi.(*InterfaceType).Common", ptr %679, align 8 + %680 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %675, align 8 + %681 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %682 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %681, i32 0, i32 0 + store ptr @18, ptr %682, align 8 + %683 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %681, i32 0, i32 1 + store i64 4, ptr %683, align 4 + %684 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %681, align 8 + %685 = load ptr, ptr @"_llgo_func$4-mqItKfDlL0CgVKnUxoresYgh6zW1WSlZYZSsVzLRo", align 8 + %686 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %687 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %686, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %684, ptr %687, align 8 + %688 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %686, i32 0, i32 1 + store ptr %685, ptr %688, align 8 + %689 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %686, i32 0, i32 2 + store ptr @"github.com/goplus/llgo/internal/abi.(*InterfaceType).Elem", ptr %689, align 8 + %690 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %686, i32 0, i32 3 + store ptr @"github.com/goplus/llgo/internal/abi.(*InterfaceType).Elem", ptr %690, align 8 + %691 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %686, align 8 + %692 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %693 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %692, i32 0, i32 0 + store ptr @22, ptr %693, align 8 + %694 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %692, i32 0, i32 1 + store i64 10, ptr %694, align 4 + %695 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %692, align 8 + %696 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 + %697 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %698 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %697, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %695, ptr %698, align 8 + %699 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %697, i32 0, i32 1 + store ptr %696, ptr %699, align 8 + %700 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %697, i32 0, i32 2 + store ptr @"github.com/goplus/llgo/internal/abi.(*InterfaceType).FieldAlign", ptr %700, align 8 + %701 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %697, i32 0, i32 3 + store ptr @"github.com/goplus/llgo/internal/abi.(*InterfaceType).FieldAlign", ptr %701, align 8 + %702 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %697, align 8 + %703 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %704 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %703, i32 0, i32 0 + store ptr @23, ptr %704, align 8 + %705 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %703, i32 0, i32 1 + store i64 8, ptr %705, align 4 + %706 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %703, align 8 + %707 = load ptr, ptr @"_llgo_func$DsoxgOnxqV7tLvokF3AA14v1gtHsHaThoC8Q_XGcQww", align 8 + %708 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %709 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %708, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %706, ptr %709, align 8 + %710 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %708, i32 0, i32 1 + store ptr %707, ptr %710, align 8 + %711 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %708, i32 0, i32 2 + store ptr @"github.com/goplus/llgo/internal/abi.(*InterfaceType).FuncType", ptr %711, align 8 + %712 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %708, i32 0, i32 3 + store ptr @"github.com/goplus/llgo/internal/abi.(*InterfaceType).FuncType", ptr %712, align 8 + %713 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %708, align 8 + %714 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %715 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %714, i32 0, i32 0 + store ptr @26, ptr %715, align 8 + %716 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %714, i32 0, i32 1 + store i64 7, ptr %716, align 4 + %717 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %714, align 8 + %718 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 + %719 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %720 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %719, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %717, ptr %720, align 8 + %721 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %719, i32 0, i32 1 + store ptr %718, ptr %721, align 8 + %722 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %719, i32 0, i32 2 + store ptr @"github.com/goplus/llgo/internal/abi.(*InterfaceType).HasName", ptr %722, align 8 + %723 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %719, i32 0, i32 3 + store ptr @"github.com/goplus/llgo/internal/abi.(*InterfaceType).HasName", ptr %723, align 8 + %724 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %719, align 8 + %725 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %726 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %725, i32 0, i32 0 + store ptr @27, ptr %726, align 8 + %727 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %725, i32 0, i32 1 + store i64 10, ptr %727, align 4 + %728 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %725, align 8 + %729 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 + %730 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %731 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %730, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %728, ptr %731, align 8 + %732 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %730, i32 0, i32 1 + store ptr %729, ptr %732, align 8 + %733 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %730, i32 0, i32 2 + store ptr @"github.com/goplus/llgo/internal/abi.(*InterfaceType).IfaceIndir", ptr %733, align 8 + %734 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %730, i32 0, i32 3 + store ptr @"github.com/goplus/llgo/internal/abi.(*InterfaceType).IfaceIndir", ptr %734, align 8 + %735 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %730, align 8 + %736 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %737 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %736, i32 0, i32 0 + store ptr @28, ptr %737, align 8 + %738 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %736, i32 0, i32 1 + store i64 13, ptr %738, align 4 + %739 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %736, align 8 + %740 = load ptr, ptr @"_llgo_func$1QmforOaCy2fBAssC2y1FWCCT6fpq9RKwP2j2HIASY8", align 8 + %741 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %742 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %741, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %739, ptr %742, align 8 + %743 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %741, i32 0, i32 1 + store ptr %740, ptr %743, align 8 + %744 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %741, i32 0, i32 2 + store ptr @"github.com/goplus/llgo/internal/abi.(*InterfaceType).InterfaceType", ptr %744, align 8 + %745 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %741, i32 0, i32 3 + store ptr @"github.com/goplus/llgo/internal/abi.(*InterfaceType).InterfaceType", ptr %745, align 8 + %746 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %741, align 8 + %747 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %748 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %747, i32 0, i32 0 + store ptr @31, ptr %748, align 8 + %749 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %747, i32 0, i32 1 + store i64 13, ptr %749, align 4 + %750 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %747, align 8 + %751 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 + %752 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %753 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %752, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %750, ptr %753, align 8 + %754 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %752, i32 0, i32 1 + store ptr %751, ptr %754, align 8 + %755 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %752, i32 0, i32 2 + store ptr @"github.com/goplus/llgo/internal/abi.(*InterfaceType).IsDirectIface", ptr %755, align 8 + %756 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %752, i32 0, i32 3 + store ptr @"github.com/goplus/llgo/internal/abi.(*InterfaceType).IsDirectIface", ptr %756, align 8 + %757 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %752, align 8 + %758 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %759 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %758, i32 0, i32 0 + store ptr @32, ptr %759, align 8 + %760 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %758, i32 0, i32 1 + store i64 4, ptr %760, align 4 + %761 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %758, align 8 + %762 = load ptr, ptr @"_llgo_github.com/goplus/llgo/internal/abi.Kind", align 8 + %763 = icmp eq ptr %762, null + br i1 %763, label %_llgo_65, label %_llgo_66 + +_llgo_64: ; preds = %_llgo_116, %_llgo_62 + %764 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/internal/abi.InterfaceType", align 8 + %765 = icmp eq ptr %764, null + br i1 %765, label %_llgo_117, label %_llgo_118 + +_llgo_65: ; preds = %_llgo_63 + %766 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(i64 7, i64 1, i64 1) + %767 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Type", ptr %766, i32 0, i32 6 + %768 = load i8, ptr %767, align 1 + %769 = or i8 %768, 32 + store i8 %769, ptr %767, align 1 + store ptr %766, ptr @"_llgo_github.com/goplus/llgo/internal/abi.Kind", align 8 + br label %_llgo_66 + +_llgo_66: ; preds = %_llgo_65, %_llgo_63 + %770 = load ptr, ptr @_llgo_uint, align 8 + %771 = icmp eq ptr %770, null + br i1 %771, label %_llgo_67, label %_llgo_68 + +_llgo_67: ; preds = %_llgo_66 + %772 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 7) + %773 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Type", ptr %772, i32 0, i32 6 + %774 = load i8, ptr %773, align 1 + %775 = or i8 %774, 32 + store i8 %775, ptr %773, align 1 + store ptr %772, ptr @_llgo_uint, align 8 + br label %_llgo_68 + +_llgo_68: ; preds = %_llgo_67, %_llgo_66 + %776 = load ptr, ptr @_llgo_uint, align 8 + br i1 %763, label %_llgo_69, label %_llgo_70 + +_llgo_69: ; preds = %_llgo_68 + %777 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %778 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %777, i32 0, i32 0 + store ptr @33, ptr %778, align 8 + %779 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %777, i32 0, i32 1 + store i64 6, ptr %779, align 4 + %780 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %777, align 8 + %781 = load ptr, ptr @_llgo_string, align 8 + %782 = load ptr, ptr @"_llgo_func$zNDVRsWTIpUPKouNUS805RGX--IV9qVK8B31IZbg5to", align 8 + %783 = icmp eq ptr %782, null + br i1 %783, label %_llgo_71, label %_llgo_72 + +_llgo_70: ; preds = %_llgo_72, %_llgo_68 + %784 = load ptr, ptr @"_llgo_github.com/goplus/llgo/internal/abi.Kind", align 8 + %785 = load ptr, ptr @"_llgo_func$ntUE0UmVAWPS2O7GpCCGszSn-XnjHJntZZ2jYtwbFXI", align 8 + %786 = icmp eq ptr %785, null + br i1 %786, label %_llgo_73, label %_llgo_74 + +_llgo_71: ; preds = %_llgo_69 + %787 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 0) + %788 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %789 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %788, i32 0, i32 0 + store ptr %787, ptr %789, align 8 + %790 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %788, i32 0, i32 1 + store i64 0, ptr %790, align 4 + %791 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %788, i32 0, i32 2 + store i64 0, ptr %791, align 4 + %792 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %788, align 8 + %793 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 8) + %794 = getelementptr ptr, ptr %793, i64 0 + store ptr %781, ptr %794, align 8 + %795 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %796 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %795, i32 0, i32 0 + store ptr %793, ptr %796, align 8 + %797 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %795, i32 0, i32 1 + store i64 1, ptr %797, align 4 + %798 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %795, i32 0, i32 2 + store i64 1, ptr %798, align 4 + %799 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %795, align 8 + %800 = call ptr @"github.com/goplus/llgo/internal/runtime.Func"(%"github.com/goplus/llgo/internal/runtime.Slice" %792, %"github.com/goplus/llgo/internal/runtime.Slice" %799, i1 false) + store ptr %800, ptr @"_llgo_func$zNDVRsWTIpUPKouNUS805RGX--IV9qVK8B31IZbg5to", align 8 + br label %_llgo_72 + +_llgo_72: ; preds = %_llgo_71, %_llgo_69 + %801 = load ptr, ptr @"_llgo_func$zNDVRsWTIpUPKouNUS805RGX--IV9qVK8B31IZbg5to", align 8 + %802 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %803 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %802, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %780, ptr %803, align 8 + %804 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %802, i32 0, i32 1 + store ptr %801, ptr %804, align 8 + %805 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %802, i32 0, i32 2 + store ptr @"github.com/goplus/llgo/internal/abi.(*Kind).String", ptr %805, align 8 + %806 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %802, i32 0, i32 3 + store ptr @"github.com/goplus/llgo/internal/abi.(*Kind).String", ptr %806, align 8 + %807 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %802, align 8 + %808 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %809 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %808, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %780, ptr %809, align 8 + %810 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %808, i32 0, i32 1 + store ptr %801, ptr %810, align 8 + %811 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %808, i32 0, i32 2 + store ptr @"github.com/goplus/llgo/internal/abi.(*Kind).String", ptr %811, align 8 + %812 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %808, i32 0, i32 3 + store ptr @"github.com/goplus/llgo/internal/abi.Kind.String", ptr %812, align 8 + %813 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %808, align 8 + %814 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 40) + %815 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %814, i64 0 + store %"github.com/goplus/llgo/internal/abi.Method" %813, ptr %815, align 8 + %816 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %817 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %816, i32 0, i32 0 + store ptr %814, ptr %817, align 8 + %818 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %816, i32 0, i32 1 + store i64 1, ptr %818, align 4 + %819 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %816, i32 0, i32 2 + store i64 1, ptr %819, align 4 + %820 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %816, align 8 + %821 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 40) + %822 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %821, i64 0 + store %"github.com/goplus/llgo/internal/abi.Method" %807, ptr %822, align 8 + %823 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %824 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %823, i32 0, i32 0 + store ptr %821, ptr %824, align 8 + %825 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %823, i32 0, i32 1 + store i64 1, ptr %825, align 4 + %826 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %823, i32 0, i32 2 + store i64 1, ptr %826, align 4 + %827 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %823, align 8 + %828 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %829 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %828, i32 0, i32 0 + store ptr @0, ptr %829, align 8 + %830 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %828, i32 0, i32 1 + store i64 35, ptr %830, align 4 + %831 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %828, align 8 + %832 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %833 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %832, i32 0, i32 0 + store ptr @32, ptr %833, align 8 + %834 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %832, i32 0, i32 1 + store i64 4, ptr %834, align 4 + %835 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %832, align 8 + call void @"github.com/goplus/llgo/internal/runtime.InitNamed"(ptr %766, %"github.com/goplus/llgo/internal/runtime.String" %831, %"github.com/goplus/llgo/internal/runtime.String" %835, ptr %776, %"github.com/goplus/llgo/internal/runtime.Slice" %820, %"github.com/goplus/llgo/internal/runtime.Slice" %827) + br label %_llgo_70 + +_llgo_73: ; preds = %_llgo_70 + %836 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 0) + %837 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %838 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %837, i32 0, i32 0 + store ptr %836, ptr %838, align 8 + %839 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %837, i32 0, i32 1 + store i64 0, ptr %839, align 4 + %840 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %837, i32 0, i32 2 + store i64 0, ptr %840, align 4 + %841 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %837, align 8 + %842 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 8) + %843 = getelementptr ptr, ptr %842, i64 0 + store ptr %784, ptr %843, align 8 + %844 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %845 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %844, i32 0, i32 0 + store ptr %842, ptr %845, align 8 + %846 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %844, i32 0, i32 1 + store i64 1, ptr %846, align 4 + %847 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %844, i32 0, i32 2 + store i64 1, ptr %847, align 4 + %848 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %844, align 8 + %849 = call ptr @"github.com/goplus/llgo/internal/runtime.Func"(%"github.com/goplus/llgo/internal/runtime.Slice" %841, %"github.com/goplus/llgo/internal/runtime.Slice" %848, i1 false) + store ptr %849, ptr @"_llgo_func$ntUE0UmVAWPS2O7GpCCGszSn-XnjHJntZZ2jYtwbFXI", align 8 + br label %_llgo_74 + +_llgo_74: ; preds = %_llgo_73, %_llgo_70 + %850 = load ptr, ptr @"_llgo_func$ntUE0UmVAWPS2O7GpCCGszSn-XnjHJntZZ2jYtwbFXI", align 8 + %851 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %852 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %851, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %761, ptr %852, align 8 + %853 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %851, i32 0, i32 1 + store ptr %850, ptr %853, align 8 + %854 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %851, i32 0, i32 2 + store ptr @"github.com/goplus/llgo/internal/abi.(*InterfaceType).Kind", ptr %854, align 8 + %855 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %851, i32 0, i32 3 + store ptr @"github.com/goplus/llgo/internal/abi.(*InterfaceType).Kind", ptr %855, align 8 + %856 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %851, align 8 + %857 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %858 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %857, i32 0, i32 0 + store ptr @20, ptr %858, align 8 + %859 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %857, i32 0, i32 1 + store i64 3, ptr %859, align 4 + %860 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %857, align 8 + %861 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 + %862 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %863 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %862, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %860, ptr %863, align 8 + %864 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %862, i32 0, i32 1 + store ptr %861, ptr %864, align 8 + %865 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %862, i32 0, i32 2 + store ptr @"github.com/goplus/llgo/internal/abi.(*InterfaceType).Len", ptr %865, align 8 + %866 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %862, i32 0, i32 3 + store ptr @"github.com/goplus/llgo/internal/abi.(*InterfaceType).Len", ptr %866, align 8 + %867 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %862, align 8 + %868 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %869 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %868, i32 0, i32 0 + store ptr @34, ptr %869, align 8 + %870 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %868, i32 0, i32 1 + store i64 7, ptr %870, align 4 + %871 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %868, align 8 + %872 = load ptr, ptr @"_llgo_github.com/goplus/llgo/internal/abi.MapType", align 8 + %873 = icmp eq ptr %872, null + br i1 %873, label %_llgo_75, label %_llgo_76 + +_llgo_75: ; preds = %_llgo_74 + %874 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(i64 25, i64 0, i64 22) + store ptr %874, ptr @"_llgo_github.com/goplus/llgo/internal/abi.MapType", align 8 + br label %_llgo_76 + +_llgo_76: ; preds = %_llgo_75, %_llgo_74 + %875 = load ptr, ptr @"_llgo_github.com/goplus/llgo/internal/abi.Type", align 8 + %876 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/internal/abi.Type", align 8 + %877 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/internal/abi.Type", align 8 + %878 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/internal/abi.Type", align 8 + %879 = load ptr, ptr @_llgo_Pointer, align 8 + %880 = load ptr, ptr @_llgo_Pointer, align 8 + %881 = load ptr, ptr @_llgo_uintptr, align 8 + %882 = load ptr, ptr @_llgo_uintptr, align 8 + %883 = load ptr, ptr @"_llgo_func$cAvVsWLgvZTNybpI-5Hj9CeBwW9xcw6i77GFRvp83mY", align 8 + %884 = icmp eq ptr %883, null + br i1 %884, label %_llgo_77, label %_llgo_78 + +_llgo_77: ; preds = %_llgo_76 + %885 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 24) + %886 = getelementptr ptr, ptr %885, i64 0 + store ptr %879, ptr %886, align 8 + %887 = getelementptr ptr, ptr %885, i64 1 + store ptr %880, ptr %887, align 8 + %888 = getelementptr ptr, ptr %885, i64 2 + store ptr %881, ptr %888, align 8 + %889 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %890 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %889, i32 0, i32 0 + store ptr %885, ptr %890, align 8 + %891 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %889, i32 0, i32 1 + store i64 3, ptr %891, align 4 + %892 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %889, i32 0, i32 2 + store i64 3, ptr %892, align 4 + %893 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %889, align 8 + %894 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 8) + %895 = getelementptr ptr, ptr %894, i64 0 + store ptr %882, ptr %895, align 8 + %896 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %897 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %896, i32 0, i32 0 + store ptr %894, ptr %897, align 8 + %898 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %896, i32 0, i32 1 + store i64 1, ptr %898, align 4 + %899 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %896, i32 0, i32 2 + store i64 1, ptr %899, align 4 + %900 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %896, align 8 + %901 = call ptr @"github.com/goplus/llgo/internal/runtime.Func"(%"github.com/goplus/llgo/internal/runtime.Slice" %893, %"github.com/goplus/llgo/internal/runtime.Slice" %900, i1 false) + store ptr %901, ptr @"_llgo_func$cAvVsWLgvZTNybpI-5Hj9CeBwW9xcw6i77GFRvp83mY", align 8 + br label %_llgo_78 + +_llgo_78: ; preds = %_llgo_77, %_llgo_76 + %902 = load ptr, ptr @"_llgo_func$cAvVsWLgvZTNybpI-5Hj9CeBwW9xcw6i77GFRvp83mY", align 8 + %903 = load ptr, ptr @_llgo_Pointer, align 8 + %904 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %905 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %904, i32 0, i32 0 + store ptr @2, ptr %905, align 8 + %906 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %904, i32 0, i32 1 + store i64 1, ptr %906, align 4 + %907 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %904, align 8 + %908 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %909 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %908, i32 0, i32 0 + store ptr null, ptr %909, align 8 + %910 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %908, i32 0, i32 1 + store i64 0, ptr %910, align 4 + %911 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %908, align 8 + %912 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %907, ptr %902, i64 0, %"github.com/goplus/llgo/internal/runtime.String" %911, i1 false) + %913 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %914 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %913, i32 0, i32 0 + store ptr @3, ptr %914, align 8 + %915 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %913, i32 0, i32 1 + store i64 4, ptr %915, align 4 + %916 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %913, align 8 + %917 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %918 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %917, i32 0, i32 0 + store ptr null, ptr %918, align 8 + %919 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %917, i32 0, i32 1 + store i64 0, ptr %919, align 4 + %920 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %917, align 8 + %921 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %916, ptr %903, i64 8, %"github.com/goplus/llgo/internal/runtime.String" %920, i1 false) + %922 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %923 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %922, i32 0, i32 0 + store ptr @4, ptr %923, align 8 + %924 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %922, i32 0, i32 1 + store i64 4, ptr %924, align 4 + %925 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %922, align 8 + %926 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 112) + %927 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %926, i64 0 + store %"github.com/goplus/llgo/internal/abi.StructField" %912, ptr %927, align 8 + %928 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %926, i64 1 + store %"github.com/goplus/llgo/internal/abi.StructField" %921, ptr %928, align 8 + %929 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %930 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %929, i32 0, i32 0 + store ptr %926, ptr %930, align 8 + %931 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %929, i32 0, i32 1 + store i64 2, ptr %931, align 4 + %932 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %929, i32 0, i32 2 + store i64 2, ptr %932, align 4 + %933 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %929, align 8 + %934 = call ptr @"github.com/goplus/llgo/internal/runtime.Struct"(%"github.com/goplus/llgo/internal/runtime.String" %925, i64 16, %"github.com/goplus/llgo/internal/runtime.Slice" %933) + store ptr %934, ptr @"main.struct$uDDWukIj6_GRAIQyJjrj0CZt1Ru2uIDU1N9fcbR_jCg", align 8 + %935 = load ptr, ptr @"main.struct$uDDWukIj6_GRAIQyJjrj0CZt1Ru2uIDU1N9fcbR_jCg", align 8 + %936 = load ptr, ptr @_llgo_uint8, align 8 + %937 = load ptr, ptr @_llgo_uint8, align 8 + %938 = load ptr, ptr @_llgo_uint16, align 8 + %939 = icmp eq ptr %938, null + br i1 %939, label %_llgo_79, label %_llgo_80 + +_llgo_79: ; preds = %_llgo_78 + %940 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 9) + %941 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Type", ptr %940, i32 0, i32 6 + %942 = load i8, ptr %941, align 1 + %943 = or i8 %942, 32 + store i8 %943, ptr %941, align 1 + store ptr %940, ptr @_llgo_uint16, align 8 + br label %_llgo_80 + +_llgo_80: ; preds = %_llgo_79, %_llgo_78 + %944 = load ptr, ptr @_llgo_uint16, align 8 + %945 = load ptr, ptr @_llgo_uint32, align 8 + %946 = load ptr, ptr @"_llgo_struct$Yk42tBqeO4BzIoRAwt__cbPj2UwIDCP07Kg_SR7sBZM", align 8 + %947 = icmp eq ptr %946, null + br i1 %947, label %_llgo_81, label %_llgo_82 + +_llgo_81: ; preds = %_llgo_80 + %948 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %949 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %948, i32 0, i32 0 + store ptr @17, ptr %949, align 8 + %950 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %948, i32 0, i32 1 + store i64 4, ptr %950, align 4 + %951 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %948, align 8 + %952 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %953 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %952, i32 0, i32 0 + store ptr null, ptr %953, align 8 + %954 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %952, i32 0, i32 1 + store i64 0, ptr %954, align 4 + %955 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %952, align 8 + %956 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %951, ptr %875, i64 0, %"github.com/goplus/llgo/internal/runtime.String" %955, i1 true) + %957 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %958 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %957, i32 0, i32 0 + store ptr @35, ptr %958, align 8 + %959 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %957, i32 0, i32 1 + store i64 3, ptr %959, align 4 + %960 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %957, align 8 + %961 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %962 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %961, i32 0, i32 0 + store ptr null, ptr %962, align 8 + %963 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %961, i32 0, i32 1 + store i64 0, ptr %963, align 4 + %964 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %961, align 8 + %965 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %960, ptr %876, i64 72, %"github.com/goplus/llgo/internal/runtime.String" %964, i1 false) + %966 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %967 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %966, i32 0, i32 0 + store ptr @18, ptr %967, align 8 + %968 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %966, i32 0, i32 1 + store i64 4, ptr %968, align 4 + %969 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %966, align 8 + %970 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %971 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %970, i32 0, i32 0 + store ptr null, ptr %971, align 8 + %972 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %970, i32 0, i32 1 + store i64 0, ptr %972, align 4 + %973 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %970, align 8 + %974 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %969, ptr %877, i64 80, %"github.com/goplus/llgo/internal/runtime.String" %973, i1 false) + %975 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %976 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %975, i32 0, i32 0 + store ptr @36, ptr %976, align 8 + %977 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %975, i32 0, i32 1 + store i64 6, ptr %977, align 4 + %978 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %975, align 8 + %979 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %980 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %979, i32 0, i32 0 + store ptr null, ptr %980, align 8 + %981 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %979, i32 0, i32 1 + store i64 0, ptr %981, align 4 + %982 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %979, align 8 + %983 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %978, ptr %878, i64 88, %"github.com/goplus/llgo/internal/runtime.String" %982, i1 false) + %984 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %985 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %984, i32 0, i32 0 + store ptr @37, ptr %985, align 8 + %986 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %984, i32 0, i32 1 + store i64 6, ptr %986, align 4 + %987 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %984, align 8 + %988 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %989 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %988, i32 0, i32 0 + store ptr null, ptr %989, align 8 + %990 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %988, i32 0, i32 1 + store i64 0, ptr %990, align 4 + %991 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %988, align 8 + %992 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %987, ptr %935, i64 96, %"github.com/goplus/llgo/internal/runtime.String" %991, i1 false) + %993 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %994 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %993, i32 0, i32 0 + store ptr @38, ptr %994, align 8 + %995 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %993, i32 0, i32 1 + store i64 7, ptr %995, align 4 + %996 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %993, align 8 + %997 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %998 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %997, i32 0, i32 0 + store ptr null, ptr %998, align 8 + %999 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %997, i32 0, i32 1 + store i64 0, ptr %999, align 4 + %1000 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %997, align 8 + %1001 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %996, ptr %936, i64 112, %"github.com/goplus/llgo/internal/runtime.String" %1000, i1 false) + %1002 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %1003 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1002, i32 0, i32 0 + store ptr @39, ptr %1003, align 8 + %1004 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1002, i32 0, i32 1 + store i64 9, ptr %1004, align 4 + %1005 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1002, align 8 + %1006 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %1007 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1006, i32 0, i32 0 + store ptr null, ptr %1007, align 8 + %1008 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1006, i32 0, i32 1 + store i64 0, ptr %1008, align 4 + %1009 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1006, align 8 + %1010 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %1005, ptr %937, i64 113, %"github.com/goplus/llgo/internal/runtime.String" %1009, i1 false) + %1011 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %1012 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1011, i32 0, i32 0 + store ptr @40, ptr %1012, align 8 + %1013 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1011, i32 0, i32 1 + store i64 10, ptr %1013, align 4 + %1014 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1011, align 8 + %1015 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %1016 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1015, i32 0, i32 0 + store ptr null, ptr %1016, align 8 + %1017 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1015, i32 0, i32 1 + store i64 0, ptr %1017, align 4 + %1018 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1015, align 8 + %1019 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %1014, ptr %944, i64 114, %"github.com/goplus/llgo/internal/runtime.String" %1018, i1 false) + %1020 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %1021 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1020, i32 0, i32 0 + store ptr @41, ptr %1021, align 8 + %1022 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1020, i32 0, i32 1 + store i64 5, ptr %1022, align 4 + %1023 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1020, align 8 + %1024 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %1025 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1024, i32 0, i32 0 + store ptr null, ptr %1025, align 8 + %1026 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1024, i32 0, i32 1 + store i64 0, ptr %1026, align 4 + %1027 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1024, align 8 + %1028 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %1023, ptr %945, i64 116, %"github.com/goplus/llgo/internal/runtime.String" %1027, i1 false) + %1029 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %1030 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1029, i32 0, i32 0 + store ptr @4, ptr %1030, align 8 + %1031 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1029, i32 0, i32 1 + store i64 4, ptr %1031, align 4 + %1032 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1029, align 8 + %1033 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 504) + %1034 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %1033, i64 0 + store %"github.com/goplus/llgo/internal/abi.StructField" %956, ptr %1034, align 8 + %1035 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %1033, i64 1 + store %"github.com/goplus/llgo/internal/abi.StructField" %965, ptr %1035, align 8 + %1036 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %1033, i64 2 + store %"github.com/goplus/llgo/internal/abi.StructField" %974, ptr %1036, align 8 + %1037 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %1033, i64 3 + store %"github.com/goplus/llgo/internal/abi.StructField" %983, ptr %1037, align 8 + %1038 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %1033, i64 4 + store %"github.com/goplus/llgo/internal/abi.StructField" %992, ptr %1038, align 8 + %1039 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %1033, i64 5 + store %"github.com/goplus/llgo/internal/abi.StructField" %1001, ptr %1039, align 8 + %1040 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %1033, i64 6 + store %"github.com/goplus/llgo/internal/abi.StructField" %1010, ptr %1040, align 8 + %1041 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %1033, i64 7 + store %"github.com/goplus/llgo/internal/abi.StructField" %1019, ptr %1041, align 8 + %1042 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %1033, i64 8 + store %"github.com/goplus/llgo/internal/abi.StructField" %1028, ptr %1042, align 8 + %1043 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %1044 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1043, i32 0, i32 0 + store ptr %1033, ptr %1044, align 8 + %1045 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1043, i32 0, i32 1 + store i64 9, ptr %1045, align 4 + %1046 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1043, i32 0, i32 2 + store i64 9, ptr %1046, align 4 + %1047 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1043, align 8 + %1048 = call ptr @"github.com/goplus/llgo/internal/runtime.Struct"(%"github.com/goplus/llgo/internal/runtime.String" %1032, i64 120, %"github.com/goplus/llgo/internal/runtime.Slice" %1047) + store ptr %1048, ptr @"_llgo_struct$Yk42tBqeO4BzIoRAwt__cbPj2UwIDCP07Kg_SR7sBZM", align 8 + br label %_llgo_82 + +_llgo_82: ; preds = %_llgo_81, %_llgo_80 + %1049 = load ptr, ptr @"_llgo_struct$Yk42tBqeO4BzIoRAwt__cbPj2UwIDCP07Kg_SR7sBZM", align 8 + br i1 %873, label %_llgo_83, label %_llgo_84 + +_llgo_83: ; preds = %_llgo_82 + %1050 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %1051 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1050, i32 0, i32 0 + store ptr @15, ptr %1051, align 8 + %1052 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1050, i32 0, i32 1 + store i64 5, ptr %1052, align 4 + %1053 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1050, align 8 + %1054 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 + %1055 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %1056 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1055, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %1053, ptr %1056, align 8 + %1057 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1055, i32 0, i32 1 + store ptr %1054, ptr %1057, align 8 + %1058 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1055, i32 0, i32 2 + store ptr @"github.com/goplus/llgo/internal/abi.(*MapType).Align", ptr %1058, align 8 + %1059 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1055, i32 0, i32 3 + store ptr @"github.com/goplus/llgo/internal/abi.(*MapType).Align", ptr %1059, align 8 + %1060 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %1055, align 8 + %1061 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %1062 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1061, i32 0, i32 0 + store ptr @16, ptr %1062, align 8 + %1063 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1061, i32 0, i32 1 + store i64 9, ptr %1063, align 4 + %1064 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1061, align 8 + %1065 = load ptr, ptr @"_llgo_func$CsVqlCxhoEcIvPD5BSBukfSiD9C7Ic5_Gf32MLbCWB4", align 8 + %1066 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %1067 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1066, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %1064, ptr %1067, align 8 + %1068 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1066, i32 0, i32 1 + store ptr %1065, ptr %1068, align 8 + %1069 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1066, i32 0, i32 2 + store ptr @"github.com/goplus/llgo/internal/abi.(*MapType).ArrayType", ptr %1069, align 8 + %1070 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1066, i32 0, i32 3 + store ptr @"github.com/goplus/llgo/internal/abi.(*MapType).ArrayType", ptr %1070, align 8 + %1071 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %1066, align 8 + %1072 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %1073 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1072, i32 0, i32 0 + store ptr @21, ptr %1073, align 8 + %1074 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1072, i32 0, i32 1 + store i64 6, ptr %1074, align 4 + %1075 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1072, align 8 + %1076 = load ptr, ptr @"_llgo_func$4-mqItKfDlL0CgVKnUxoresYgh6zW1WSlZYZSsVzLRo", align 8 + %1077 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %1078 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1077, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %1075, ptr %1078, align 8 + %1079 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1077, i32 0, i32 1 + store ptr %1076, ptr %1079, align 8 + %1080 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1077, i32 0, i32 2 + store ptr @"github.com/goplus/llgo/internal/abi.(*MapType).Common", ptr %1080, align 8 + %1081 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1077, i32 0, i32 3 + store ptr @"github.com/goplus/llgo/internal/abi.(*MapType).Common", ptr %1081, align 8 + %1082 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %1077, align 8 + %1083 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %1084 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1083, i32 0, i32 0 + store ptr @22, ptr %1084, align 8 + %1085 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1083, i32 0, i32 1 + store i64 10, ptr %1085, align 4 + %1086 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1083, align 8 + %1087 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 + %1088 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %1089 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1088, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %1086, ptr %1089, align 8 + %1090 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1088, i32 0, i32 1 + store ptr %1087, ptr %1090, align 8 + %1091 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1088, i32 0, i32 2 + store ptr @"github.com/goplus/llgo/internal/abi.(*MapType).FieldAlign", ptr %1091, align 8 + %1092 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1088, i32 0, i32 3 + store ptr @"github.com/goplus/llgo/internal/abi.(*MapType).FieldAlign", ptr %1092, align 8 + %1093 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %1088, align 8 + %1094 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %1095 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1094, i32 0, i32 0 + store ptr @23, ptr %1095, align 8 + %1096 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1094, i32 0, i32 1 + store i64 8, ptr %1096, align 4 + %1097 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1094, align 8 + %1098 = load ptr, ptr @"_llgo_func$DsoxgOnxqV7tLvokF3AA14v1gtHsHaThoC8Q_XGcQww", align 8 + %1099 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %1100 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1099, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %1097, ptr %1100, align 8 + %1101 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1099, i32 0, i32 1 + store ptr %1098, ptr %1101, align 8 + %1102 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1099, i32 0, i32 2 + store ptr @"github.com/goplus/llgo/internal/abi.(*MapType).FuncType", ptr %1102, align 8 + %1103 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1099, i32 0, i32 3 + store ptr @"github.com/goplus/llgo/internal/abi.(*MapType).FuncType", ptr %1103, align 8 + %1104 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %1099, align 8 + %1105 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %1106 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1105, i32 0, i32 0 + store ptr @26, ptr %1106, align 8 + %1107 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1105, i32 0, i32 1 + store i64 7, ptr %1107, align 4 + %1108 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1105, align 8 + %1109 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 + %1110 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %1111 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1110, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %1108, ptr %1111, align 8 + %1112 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1110, i32 0, i32 1 + store ptr %1109, ptr %1112, align 8 + %1113 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1110, i32 0, i32 2 + store ptr @"github.com/goplus/llgo/internal/abi.(*MapType).HasName", ptr %1113, align 8 + %1114 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1110, i32 0, i32 3 + store ptr @"github.com/goplus/llgo/internal/abi.(*MapType).HasName", ptr %1114, align 8 + %1115 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %1110, align 8 + %1116 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %1117 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1116, i32 0, i32 0 + store ptr @42, ptr %1117, align 8 + %1118 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1116, i32 0, i32 1 + store i64 14, ptr %1118, align 4 + %1119 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1116, align 8 + %1120 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 + %1121 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %1122 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1121, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %1119, ptr %1122, align 8 + %1123 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1121, i32 0, i32 1 + store ptr %1120, ptr %1123, align 8 + %1124 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1121, i32 0, i32 2 + store ptr @"github.com/goplus/llgo/internal/abi.(*MapType).HashMightPanic", ptr %1124, align 8 + %1125 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1121, i32 0, i32 3 + store ptr @"github.com/goplus/llgo/internal/abi.(*MapType).HashMightPanic", ptr %1125, align 8 + %1126 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %1121, align 8 + %1127 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %1128 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1127, i32 0, i32 0 + store ptr @27, ptr %1128, align 8 + %1129 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1127, i32 0, i32 1 + store i64 10, ptr %1129, align 4 + %1130 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1127, align 8 + %1131 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 + %1132 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %1133 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1132, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %1130, ptr %1133, align 8 + %1134 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1132, i32 0, i32 1 + store ptr %1131, ptr %1134, align 8 + %1135 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1132, i32 0, i32 2 + store ptr @"github.com/goplus/llgo/internal/abi.(*MapType).IfaceIndir", ptr %1135, align 8 + %1136 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1132, i32 0, i32 3 + store ptr @"github.com/goplus/llgo/internal/abi.(*MapType).IfaceIndir", ptr %1136, align 8 + %1137 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %1132, align 8 + %1138 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %1139 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1138, i32 0, i32 0 + store ptr @43, ptr %1139, align 8 + %1140 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1138, i32 0, i32 1 + store i64 12, ptr %1140, align 4 + %1141 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1138, align 8 + %1142 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 + %1143 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %1144 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1143, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %1141, ptr %1144, align 8 + %1145 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1143, i32 0, i32 1 + store ptr %1142, ptr %1145, align 8 + %1146 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1143, i32 0, i32 2 + store ptr @"github.com/goplus/llgo/internal/abi.(*MapType).IndirectElem", ptr %1146, align 8 + %1147 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1143, i32 0, i32 3 + store ptr @"github.com/goplus/llgo/internal/abi.(*MapType).IndirectElem", ptr %1147, align 8 + %1148 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %1143, align 8 + %1149 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %1150 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1149, i32 0, i32 0 + store ptr @44, ptr %1150, align 8 + %1151 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1149, i32 0, i32 1 + store i64 11, ptr %1151, align 4 + %1152 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1149, align 8 + %1153 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 + %1154 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %1155 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1154, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %1152, ptr %1155, align 8 + %1156 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1154, i32 0, i32 1 + store ptr %1153, ptr %1156, align 8 + %1157 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1154, i32 0, i32 2 + store ptr @"github.com/goplus/llgo/internal/abi.(*MapType).IndirectKey", ptr %1157, align 8 + %1158 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1154, i32 0, i32 3 + store ptr @"github.com/goplus/llgo/internal/abi.(*MapType).IndirectKey", ptr %1158, align 8 + %1159 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %1154, align 8 + %1160 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %1161 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1160, i32 0, i32 0 + store ptr @28, ptr %1161, align 8 + %1162 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1160, i32 0, i32 1 + store i64 13, ptr %1162, align 4 + %1163 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1160, align 8 + %1164 = load ptr, ptr @"_llgo_func$1QmforOaCy2fBAssC2y1FWCCT6fpq9RKwP2j2HIASY8", align 8 + %1165 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %1166 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1165, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %1163, ptr %1166, align 8 + %1167 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1165, i32 0, i32 1 + store ptr %1164, ptr %1167, align 8 + %1168 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1165, i32 0, i32 2 + store ptr @"github.com/goplus/llgo/internal/abi.(*MapType).InterfaceType", ptr %1168, align 8 + %1169 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1165, i32 0, i32 3 + store ptr @"github.com/goplus/llgo/internal/abi.(*MapType).InterfaceType", ptr %1169, align 8 + %1170 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %1165, align 8 + %1171 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %1172 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1171, i32 0, i32 0 + store ptr @31, ptr %1172, align 8 + %1173 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1171, i32 0, i32 1 + store i64 13, ptr %1173, align 4 + %1174 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1171, align 8 + %1175 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 + %1176 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %1177 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1176, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %1174, ptr %1177, align 8 + %1178 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1176, i32 0, i32 1 + store ptr %1175, ptr %1178, align 8 + %1179 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1176, i32 0, i32 2 + store ptr @"github.com/goplus/llgo/internal/abi.(*MapType).IsDirectIface", ptr %1179, align 8 + %1180 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1176, i32 0, i32 3 + store ptr @"github.com/goplus/llgo/internal/abi.(*MapType).IsDirectIface", ptr %1180, align 8 + %1181 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %1176, align 8 + %1182 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %1183 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1182, i32 0, i32 0 + store ptr @32, ptr %1183, align 8 + %1184 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1182, i32 0, i32 1 + store i64 4, ptr %1184, align 4 + %1185 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1182, align 8 + %1186 = load ptr, ptr @"_llgo_func$ntUE0UmVAWPS2O7GpCCGszSn-XnjHJntZZ2jYtwbFXI", align 8 + %1187 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %1188 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1187, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %1185, ptr %1188, align 8 + %1189 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1187, i32 0, i32 1 + store ptr %1186, ptr %1189, align 8 + %1190 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1187, i32 0, i32 2 + store ptr @"github.com/goplus/llgo/internal/abi.(*MapType).Kind", ptr %1190, align 8 + %1191 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1187, i32 0, i32 3 + store ptr @"github.com/goplus/llgo/internal/abi.(*MapType).Kind", ptr %1191, align 8 + %1192 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %1187, align 8 + %1193 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %1194 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1193, i32 0, i32 0 + store ptr @20, ptr %1194, align 8 + %1195 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1193, i32 0, i32 1 + store i64 3, ptr %1195, align 4 + %1196 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1193, align 8 + %1197 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 + %1198 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %1199 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1198, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %1196, ptr %1199, align 8 + %1200 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1198, i32 0, i32 1 + store ptr %1197, ptr %1200, align 8 + %1201 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1198, i32 0, i32 2 + store ptr @"github.com/goplus/llgo/internal/abi.(*MapType).Len", ptr %1201, align 8 + %1202 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1198, i32 0, i32 3 + store ptr @"github.com/goplus/llgo/internal/abi.(*MapType).Len", ptr %1202, align 8 + %1203 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %1198, align 8 + %1204 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %1205 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1204, i32 0, i32 0 + store ptr @34, ptr %1205, align 8 + %1206 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1204, i32 0, i32 1 + store i64 7, ptr %1206, align 4 + %1207 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1204, align 8 + %1208 = load ptr, ptr @"_llgo_func$d-NlqnjcQnaMjsBQY7qh2SWQmHb0XIigoceXdiJ8YT4", align 8 + %1209 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %1210 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1209, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %1207, ptr %1210, align 8 + %1211 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1209, i32 0, i32 1 + store ptr %1208, ptr %1211, align 8 + %1212 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1209, i32 0, i32 2 + store ptr @"github.com/goplus/llgo/internal/abi.(*MapType).MapType", ptr %1212, align 8 + %1213 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1209, i32 0, i32 3 + store ptr @"github.com/goplus/llgo/internal/abi.(*MapType).MapType", ptr %1213, align 8 + %1214 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %1209, align 8 + %1215 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %1216 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1215, i32 0, i32 0 + store ptr @45, ptr %1216, align 8 + %1217 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1215, i32 0, i32 1 + store i64 13, ptr %1217, align 4 + %1218 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1215, align 8 + %1219 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 + %1220 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %1221 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1220, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %1218, ptr %1221, align 8 + %1222 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1220, i32 0, i32 1 + store ptr %1219, ptr %1222, align 8 + %1223 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1220, i32 0, i32 2 + store ptr @"github.com/goplus/llgo/internal/abi.(*MapType).NeedKeyUpdate", ptr %1223, align 8 + %1224 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1220, i32 0, i32 3 + store ptr @"github.com/goplus/llgo/internal/abi.(*MapType).NeedKeyUpdate", ptr %1224, align 8 + %1225 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %1220, align 8 + %1226 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %1227 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1226, i32 0, i32 0 + store ptr @46, ptr %1227, align 8 + %1228 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1226, i32 0, i32 1 + store i64 8, ptr %1228, align 4 + %1229 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1226, align 8 + %1230 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 + %1231 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %1232 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1231, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %1229, ptr %1232, align 8 + %1233 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1231, i32 0, i32 1 + store ptr %1230, ptr %1233, align 8 + %1234 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1231, i32 0, i32 2 + store ptr @"github.com/goplus/llgo/internal/abi.(*MapType).Pointers", ptr %1234, align 8 + %1235 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1231, i32 0, i32 3 + store ptr @"github.com/goplus/llgo/internal/abi.(*MapType).Pointers", ptr %1235, align 8 + %1236 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %1231, align 8 + %1237 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %1238 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1237, i32 0, i32 0 + store ptr @47, ptr %1238, align 8 + %1239 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1237, i32 0, i32 1 + store i64 12, ptr %1239, align 4 + %1240 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1237, align 8 + %1241 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 + %1242 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %1243 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1242, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %1240, ptr %1243, align 8 + %1244 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1242, i32 0, i32 1 + store ptr %1241, ptr %1244, align 8 + %1245 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1242, i32 0, i32 2 + store ptr @"github.com/goplus/llgo/internal/abi.(*MapType).ReflexiveKey", ptr %1245, align 8 + %1246 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1242, i32 0, i32 3 + store ptr @"github.com/goplus/llgo/internal/abi.(*MapType).ReflexiveKey", ptr %1246, align 8 + %1247 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %1242, align 8 + %1248 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %1249 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1248, i32 0, i32 0 + store ptr @48, ptr %1249, align 8 + %1250 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1248, i32 0, i32 1 + store i64 4, ptr %1250, align 4 + %1251 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1248, align 8 + %1252 = load ptr, ptr @_llgo_uintptr, align 8 + %1253 = load ptr, ptr @"_llgo_func$1kITCsyu7hFLMxHLR7kDlvu4SOra_HtrtdFUQH9P13s", align 8 + %1254 = icmp eq ptr %1253, null + br i1 %1254, label %_llgo_85, label %_llgo_86 + +_llgo_84: ; preds = %_llgo_112, %_llgo_82 + %1255 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/internal/abi.MapType", align 8 + %1256 = icmp eq ptr %1255, null + br i1 %1256, label %_llgo_113, label %_llgo_114 + +_llgo_85: ; preds = %_llgo_83 + %1257 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 0) + %1258 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %1259 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1258, i32 0, i32 0 + store ptr %1257, ptr %1259, align 8 + %1260 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1258, i32 0, i32 1 + store i64 0, ptr %1260, align 4 + %1261 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1258, i32 0, i32 2 + store i64 0, ptr %1261, align 4 + %1262 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1258, align 8 + %1263 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 8) + %1264 = getelementptr ptr, ptr %1263, i64 0 + store ptr %1252, ptr %1264, align 8 + %1265 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %1266 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1265, i32 0, i32 0 + store ptr %1263, ptr %1266, align 8 + %1267 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1265, i32 0, i32 1 + store i64 1, ptr %1267, align 4 + %1268 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1265, i32 0, i32 2 + store i64 1, ptr %1268, align 4 + %1269 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1265, align 8 + %1270 = call ptr @"github.com/goplus/llgo/internal/runtime.Func"(%"github.com/goplus/llgo/internal/runtime.Slice" %1262, %"github.com/goplus/llgo/internal/runtime.Slice" %1269, i1 false) + store ptr %1270, ptr @"_llgo_func$1kITCsyu7hFLMxHLR7kDlvu4SOra_HtrtdFUQH9P13s", align 8 + br label %_llgo_86 + +_llgo_86: ; preds = %_llgo_85, %_llgo_83 + %1271 = load ptr, ptr @"_llgo_func$1kITCsyu7hFLMxHLR7kDlvu4SOra_HtrtdFUQH9P13s", align 8 + %1272 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %1273 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1272, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %1251, ptr %1273, align 8 + %1274 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1272, i32 0, i32 1 + store ptr %1271, ptr %1274, align 8 + %1275 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1272, i32 0, i32 2 + store ptr @"github.com/goplus/llgo/internal/abi.(*MapType).Size", ptr %1275, align 8 + %1276 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1272, i32 0, i32 3 + store ptr @"github.com/goplus/llgo/internal/abi.(*MapType).Size", ptr %1276, align 8 + %1277 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %1272, align 8 + %1278 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %1279 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1278, i32 0, i32 0 + store ptr @33, ptr %1279, align 8 + %1280 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1278, i32 0, i32 1 + store i64 6, ptr %1280, align 4 + %1281 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1278, align 8 + %1282 = load ptr, ptr @"_llgo_func$zNDVRsWTIpUPKouNUS805RGX--IV9qVK8B31IZbg5to", align 8 + %1283 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %1284 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1283, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %1281, ptr %1284, align 8 + %1285 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1283, i32 0, i32 1 + store ptr %1282, ptr %1285, align 8 + %1286 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1283, i32 0, i32 2 + store ptr @"github.com/goplus/llgo/internal/abi.(*MapType).String", ptr %1286, align 8 + %1287 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1283, i32 0, i32 3 + store ptr @"github.com/goplus/llgo/internal/abi.(*MapType).String", ptr %1287, align 8 + %1288 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %1283, align 8 + %1289 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %1290 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1289, i32 0, i32 0 + store ptr @49, ptr %1290, align 8 + %1291 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1289, i32 0, i32 1 + store i64 10, ptr %1291, align 4 + %1292 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1289, align 8 + %1293 = load ptr, ptr @"_llgo_github.com/goplus/llgo/internal/abi.StructType", align 8 + %1294 = icmp eq ptr %1293, null + br i1 %1294, label %_llgo_87, label %_llgo_88 + +_llgo_87: ; preds = %_llgo_86 + %1295 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(i64 25, i64 0, i64 18) + store ptr %1295, ptr @"_llgo_github.com/goplus/llgo/internal/abi.StructType", align 8 + br label %_llgo_88 + +_llgo_88: ; preds = %_llgo_87, %_llgo_86 + %1296 = load ptr, ptr @"_llgo_github.com/goplus/llgo/internal/abi.Type", align 8 + %1297 = load ptr, ptr @_llgo_string, align 8 + %1298 = load ptr, ptr @"[]_llgo_github.com/goplus/llgo/internal/abi.StructField", align 8 + %1299 = icmp eq ptr %1298, null + br i1 %1299, label %_llgo_89, label %_llgo_90 + +_llgo_89: ; preds = %_llgo_88 + %1300 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(i64 25, i64 0, i64 2) + %1301 = call ptr @"github.com/goplus/llgo/internal/runtime.SliceOf"(ptr %1300) + store ptr %1301, ptr @"[]_llgo_github.com/goplus/llgo/internal/abi.StructField", align 8 + br label %_llgo_90 + +_llgo_90: ; preds = %_llgo_89, %_llgo_88 + %1302 = load ptr, ptr @"[]_llgo_github.com/goplus/llgo/internal/abi.StructField", align 8 + %1303 = load ptr, ptr @"_llgo_struct$K_cvuhBwc2_5r7UW089ibWfcfsGoDb4pZ7K19IcMTk0", align 8 + %1304 = icmp eq ptr %1303, null + br i1 %1304, label %_llgo_91, label %_llgo_92 + +_llgo_91: ; preds = %_llgo_90 + %1305 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %1306 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1305, i32 0, i32 0 + store ptr @17, ptr %1306, align 8 + %1307 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1305, i32 0, i32 1 + store i64 4, ptr %1307, align 4 + %1308 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1305, align 8 + %1309 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %1310 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1309, i32 0, i32 0 + store ptr null, ptr %1310, align 8 + %1311 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1309, i32 0, i32 1 + store i64 0, ptr %1311, align 4 + %1312 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1309, align 8 + %1313 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %1308, ptr %1296, i64 0, %"github.com/goplus/llgo/internal/runtime.String" %1312, i1 true) + %1314 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %1315 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1314, i32 0, i32 0 + store ptr @29, ptr %1315, align 8 + %1316 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1314, i32 0, i32 1 + store i64 8, ptr %1316, align 4 + %1317 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1314, align 8 + %1318 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %1319 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1318, i32 0, i32 0 + store ptr null, ptr %1319, align 8 + %1320 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1318, i32 0, i32 1 + store i64 0, ptr %1320, align 4 + %1321 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1318, align 8 + %1322 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %1317, ptr %1297, i64 72, %"github.com/goplus/llgo/internal/runtime.String" %1321, i1 false) + %1323 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %1324 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1323, i32 0, i32 0 + store ptr @50, ptr %1324, align 8 + %1325 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1323, i32 0, i32 1 + store i64 6, ptr %1325, align 4 + %1326 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1323, align 8 + %1327 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %1328 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1327, i32 0, i32 0 + store ptr null, ptr %1328, align 8 + %1329 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1327, i32 0, i32 1 + store i64 0, ptr %1329, align 4 + %1330 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1327, align 8 + %1331 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %1326, ptr %1302, i64 88, %"github.com/goplus/llgo/internal/runtime.String" %1330, i1 false) + %1332 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %1333 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1332, i32 0, i32 0 + store ptr @4, ptr %1333, align 8 + %1334 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1332, i32 0, i32 1 + store i64 4, ptr %1334, align 4 + %1335 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1332, align 8 + %1336 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 168) + %1337 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %1336, i64 0 + store %"github.com/goplus/llgo/internal/abi.StructField" %1313, ptr %1337, align 8 + %1338 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %1336, i64 1 + store %"github.com/goplus/llgo/internal/abi.StructField" %1322, ptr %1338, align 8 + %1339 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %1336, i64 2 + store %"github.com/goplus/llgo/internal/abi.StructField" %1331, ptr %1339, align 8 + %1340 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %1341 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1340, i32 0, i32 0 + store ptr %1336, ptr %1341, align 8 + %1342 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1340, i32 0, i32 1 + store i64 3, ptr %1342, align 4 + %1343 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1340, i32 0, i32 2 + store i64 3, ptr %1343, align 4 + %1344 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1340, align 8 + %1345 = call ptr @"github.com/goplus/llgo/internal/runtime.Struct"(%"github.com/goplus/llgo/internal/runtime.String" %1335, i64 112, %"github.com/goplus/llgo/internal/runtime.Slice" %1344) + store ptr %1345, ptr @"_llgo_struct$K_cvuhBwc2_5r7UW089ibWfcfsGoDb4pZ7K19IcMTk0", align 8 + br label %_llgo_92 + +_llgo_92: ; preds = %_llgo_91, %_llgo_90 + %1346 = load ptr, ptr @"_llgo_struct$K_cvuhBwc2_5r7UW089ibWfcfsGoDb4pZ7K19IcMTk0", align 8 + br i1 %1294, label %_llgo_93, label %_llgo_94 + +_llgo_93: ; preds = %_llgo_92 + %1347 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %1348 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1347, i32 0, i32 0 + store ptr @15, ptr %1348, align 8 + %1349 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1347, i32 0, i32 1 + store i64 5, ptr %1349, align 4 + %1350 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1347, align 8 + %1351 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 + %1352 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %1353 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1352, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %1350, ptr %1353, align 8 + %1354 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1352, i32 0, i32 1 + store ptr %1351, ptr %1354, align 8 + %1355 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1352, i32 0, i32 2 + store ptr @"github.com/goplus/llgo/internal/abi.(*StructType).Align", ptr %1355, align 8 + %1356 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1352, i32 0, i32 3 + store ptr @"github.com/goplus/llgo/internal/abi.(*StructType).Align", ptr %1356, align 8 + %1357 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %1352, align 8 + %1358 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %1359 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1358, i32 0, i32 0 + store ptr @16, ptr %1359, align 8 + %1360 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1358, i32 0, i32 1 + store i64 9, ptr %1360, align 4 + %1361 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1358, align 8 + %1362 = load ptr, ptr @"_llgo_func$CsVqlCxhoEcIvPD5BSBukfSiD9C7Ic5_Gf32MLbCWB4", align 8 + %1363 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %1364 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1363, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %1361, ptr %1364, align 8 + %1365 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1363, i32 0, i32 1 + store ptr %1362, ptr %1365, align 8 + %1366 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1363, i32 0, i32 2 + store ptr @"github.com/goplus/llgo/internal/abi.(*StructType).ArrayType", ptr %1366, align 8 + %1367 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1363, i32 0, i32 3 + store ptr @"github.com/goplus/llgo/internal/abi.(*StructType).ArrayType", ptr %1367, align 8 + %1368 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %1363, align 8 + %1369 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %1370 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1369, i32 0, i32 0 + store ptr @21, ptr %1370, align 8 + %1371 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1369, i32 0, i32 1 + store i64 6, ptr %1371, align 4 + %1372 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1369, align 8 + %1373 = load ptr, ptr @"_llgo_func$4-mqItKfDlL0CgVKnUxoresYgh6zW1WSlZYZSsVzLRo", align 8 + %1374 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %1375 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1374, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %1372, ptr %1375, align 8 + %1376 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1374, i32 0, i32 1 + store ptr %1373, ptr %1376, align 8 + %1377 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1374, i32 0, i32 2 + store ptr @"github.com/goplus/llgo/internal/abi.(*StructType).Common", ptr %1377, align 8 + %1378 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1374, i32 0, i32 3 + store ptr @"github.com/goplus/llgo/internal/abi.(*StructType).Common", ptr %1378, align 8 + %1379 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %1374, align 8 + %1380 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %1381 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1380, i32 0, i32 0 + store ptr @18, ptr %1381, align 8 + %1382 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1380, i32 0, i32 1 + store i64 4, ptr %1382, align 4 + %1383 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1380, align 8 + %1384 = load ptr, ptr @"_llgo_func$4-mqItKfDlL0CgVKnUxoresYgh6zW1WSlZYZSsVzLRo", align 8 + %1385 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %1386 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1385, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %1383, ptr %1386, align 8 + %1387 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1385, i32 0, i32 1 + store ptr %1384, ptr %1387, align 8 + %1388 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1385, i32 0, i32 2 + store ptr @"github.com/goplus/llgo/internal/abi.(*StructType).Elem", ptr %1388, align 8 + %1389 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1385, i32 0, i32 3 + store ptr @"github.com/goplus/llgo/internal/abi.(*StructType).Elem", ptr %1389, align 8 + %1390 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %1385, align 8 + %1391 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %1392 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1391, i32 0, i32 0 + store ptr @22, ptr %1392, align 8 + %1393 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1391, i32 0, i32 1 + store i64 10, ptr %1393, align 4 + %1394 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1391, align 8 + %1395 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 + %1396 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %1397 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1396, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %1394, ptr %1397, align 8 + %1398 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1396, i32 0, i32 1 + store ptr %1395, ptr %1398, align 8 + %1399 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1396, i32 0, i32 2 + store ptr @"github.com/goplus/llgo/internal/abi.(*StructType).FieldAlign", ptr %1399, align 8 + %1400 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1396, i32 0, i32 3 + store ptr @"github.com/goplus/llgo/internal/abi.(*StructType).FieldAlign", ptr %1400, align 8 + %1401 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %1396, align 8 + %1402 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %1403 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1402, i32 0, i32 0 + store ptr @23, ptr %1403, align 8 + %1404 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1402, i32 0, i32 1 + store i64 8, ptr %1404, align 4 + %1405 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1402, align 8 + %1406 = load ptr, ptr @"_llgo_func$DsoxgOnxqV7tLvokF3AA14v1gtHsHaThoC8Q_XGcQww", align 8 + %1407 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %1408 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1407, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %1405, ptr %1408, align 8 + %1409 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1407, i32 0, i32 1 + store ptr %1406, ptr %1409, align 8 + %1410 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1407, i32 0, i32 2 + store ptr @"github.com/goplus/llgo/internal/abi.(*StructType).FuncType", ptr %1410, align 8 + %1411 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1407, i32 0, i32 3 + store ptr @"github.com/goplus/llgo/internal/abi.(*StructType).FuncType", ptr %1411, align 8 + %1412 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %1407, align 8 + %1413 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %1414 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1413, i32 0, i32 0 + store ptr @26, ptr %1414, align 8 + %1415 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1413, i32 0, i32 1 + store i64 7, ptr %1415, align 4 + %1416 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1413, align 8 + %1417 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 + %1418 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %1419 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1418, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %1416, ptr %1419, align 8 + %1420 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1418, i32 0, i32 1 + store ptr %1417, ptr %1420, align 8 + %1421 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1418, i32 0, i32 2 + store ptr @"github.com/goplus/llgo/internal/abi.(*StructType).HasName", ptr %1421, align 8 + %1422 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1418, i32 0, i32 3 + store ptr @"github.com/goplus/llgo/internal/abi.(*StructType).HasName", ptr %1422, align 8 + %1423 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %1418, align 8 + %1424 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %1425 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1424, i32 0, i32 0 + store ptr @27, ptr %1425, align 8 + %1426 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1424, i32 0, i32 1 + store i64 10, ptr %1426, align 4 + %1427 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1424, align 8 + %1428 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 + %1429 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %1430 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1429, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %1427, ptr %1430, align 8 + %1431 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1429, i32 0, i32 1 + store ptr %1428, ptr %1431, align 8 + %1432 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1429, i32 0, i32 2 + store ptr @"github.com/goplus/llgo/internal/abi.(*StructType).IfaceIndir", ptr %1432, align 8 + %1433 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1429, i32 0, i32 3 + store ptr @"github.com/goplus/llgo/internal/abi.(*StructType).IfaceIndir", ptr %1433, align 8 + %1434 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %1429, align 8 + %1435 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %1436 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1435, i32 0, i32 0 + store ptr @28, ptr %1436, align 8 + %1437 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1435, i32 0, i32 1 + store i64 13, ptr %1437, align 4 + %1438 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1435, align 8 + %1439 = load ptr, ptr @"_llgo_func$1QmforOaCy2fBAssC2y1FWCCT6fpq9RKwP2j2HIASY8", align 8 + %1440 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %1441 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1440, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %1438, ptr %1441, align 8 + %1442 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1440, i32 0, i32 1 + store ptr %1439, ptr %1442, align 8 + %1443 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1440, i32 0, i32 2 + store ptr @"github.com/goplus/llgo/internal/abi.(*StructType).InterfaceType", ptr %1443, align 8 + %1444 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1440, i32 0, i32 3 + store ptr @"github.com/goplus/llgo/internal/abi.(*StructType).InterfaceType", ptr %1444, align 8 + %1445 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %1440, align 8 + %1446 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %1447 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1446, i32 0, i32 0 + store ptr @31, ptr %1447, align 8 + %1448 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1446, i32 0, i32 1 + store i64 13, ptr %1448, align 4 + %1449 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1446, align 8 + %1450 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 + %1451 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %1452 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1451, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %1449, ptr %1452, align 8 + %1453 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1451, i32 0, i32 1 + store ptr %1450, ptr %1453, align 8 + %1454 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1451, i32 0, i32 2 + store ptr @"github.com/goplus/llgo/internal/abi.(*StructType).IsDirectIface", ptr %1454, align 8 + %1455 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1451, i32 0, i32 3 + store ptr @"github.com/goplus/llgo/internal/abi.(*StructType).IsDirectIface", ptr %1455, align 8 + %1456 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %1451, align 8 + %1457 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %1458 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1457, i32 0, i32 0 + store ptr @32, ptr %1458, align 8 + %1459 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1457, i32 0, i32 1 + store i64 4, ptr %1459, align 4 + %1460 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1457, align 8 + %1461 = load ptr, ptr @"_llgo_func$ntUE0UmVAWPS2O7GpCCGszSn-XnjHJntZZ2jYtwbFXI", align 8 + %1462 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %1463 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1462, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %1460, ptr %1463, align 8 + %1464 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1462, i32 0, i32 1 + store ptr %1461, ptr %1464, align 8 + %1465 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1462, i32 0, i32 2 + store ptr @"github.com/goplus/llgo/internal/abi.(*StructType).Kind", ptr %1465, align 8 + %1466 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1462, i32 0, i32 3 + store ptr @"github.com/goplus/llgo/internal/abi.(*StructType).Kind", ptr %1466, align 8 + %1467 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %1462, align 8 + %1468 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %1469 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1468, i32 0, i32 0 + store ptr @20, ptr %1469, align 8 + %1470 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1468, i32 0, i32 1 + store i64 3, ptr %1470, align 4 + %1471 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1468, align 8 + %1472 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 + %1473 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %1474 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1473, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %1471, ptr %1474, align 8 + %1475 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1473, i32 0, i32 1 + store ptr %1472, ptr %1475, align 8 + %1476 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1473, i32 0, i32 2 + store ptr @"github.com/goplus/llgo/internal/abi.(*StructType).Len", ptr %1476, align 8 + %1477 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1473, i32 0, i32 3 + store ptr @"github.com/goplus/llgo/internal/abi.(*StructType).Len", ptr %1477, align 8 + %1478 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %1473, align 8 + %1479 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %1480 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1479, i32 0, i32 0 + store ptr @34, ptr %1480, align 8 + %1481 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1479, i32 0, i32 1 + store i64 7, ptr %1481, align 4 + %1482 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1479, align 8 + %1483 = load ptr, ptr @"_llgo_func$d-NlqnjcQnaMjsBQY7qh2SWQmHb0XIigoceXdiJ8YT4", align 8 + %1484 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %1485 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1484, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %1482, ptr %1485, align 8 + %1486 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1484, i32 0, i32 1 + store ptr %1483, ptr %1486, align 8 + %1487 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1484, i32 0, i32 2 + store ptr @"github.com/goplus/llgo/internal/abi.(*StructType).MapType", ptr %1487, align 8 + %1488 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1484, i32 0, i32 3 + store ptr @"github.com/goplus/llgo/internal/abi.(*StructType).MapType", ptr %1488, align 8 + %1489 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %1484, align 8 + %1490 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %1491 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1490, i32 0, i32 0 + store ptr @46, ptr %1491, align 8 + %1492 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1490, i32 0, i32 1 + store i64 8, ptr %1492, align 4 + %1493 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1490, align 8 + %1494 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 + %1495 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %1496 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1495, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %1493, ptr %1496, align 8 + %1497 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1495, i32 0, i32 1 + store ptr %1494, ptr %1497, align 8 + %1498 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1495, i32 0, i32 2 + store ptr @"github.com/goplus/llgo/internal/abi.(*StructType).Pointers", ptr %1498, align 8 + %1499 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1495, i32 0, i32 3 + store ptr @"github.com/goplus/llgo/internal/abi.(*StructType).Pointers", ptr %1499, align 8 + %1500 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %1495, align 8 + %1501 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %1502 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1501, i32 0, i32 0 + store ptr @48, ptr %1502, align 8 + %1503 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1501, i32 0, i32 1 + store i64 4, ptr %1503, align 4 + %1504 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1501, align 8 + %1505 = load ptr, ptr @"_llgo_func$1kITCsyu7hFLMxHLR7kDlvu4SOra_HtrtdFUQH9P13s", align 8 + %1506 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %1507 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1506, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %1504, ptr %1507, align 8 + %1508 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1506, i32 0, i32 1 + store ptr %1505, ptr %1508, align 8 + %1509 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1506, i32 0, i32 2 + store ptr @"github.com/goplus/llgo/internal/abi.(*StructType).Size", ptr %1509, align 8 + %1510 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1506, i32 0, i32 3 + store ptr @"github.com/goplus/llgo/internal/abi.(*StructType).Size", ptr %1510, align 8 + %1511 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %1506, align 8 + %1512 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %1513 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1512, i32 0, i32 0 + store ptr @33, ptr %1513, align 8 + %1514 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1512, i32 0, i32 1 + store i64 6, ptr %1514, align 4 + %1515 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1512, align 8 + %1516 = load ptr, ptr @"_llgo_func$zNDVRsWTIpUPKouNUS805RGX--IV9qVK8B31IZbg5to", align 8 + %1517 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %1518 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1517, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %1515, ptr %1518, align 8 + %1519 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1517, i32 0, i32 1 + store ptr %1516, ptr %1519, align 8 + %1520 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1517, i32 0, i32 2 + store ptr @"github.com/goplus/llgo/internal/abi.(*StructType).String", ptr %1520, align 8 + %1521 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1517, i32 0, i32 3 + store ptr @"github.com/goplus/llgo/internal/abi.(*StructType).String", ptr %1521, align 8 + %1522 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %1517, align 8 + %1523 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %1524 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1523, i32 0, i32 0 + store ptr @49, ptr %1524, align 8 + %1525 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1523, i32 0, i32 1 + store i64 10, ptr %1525, align 4 + %1526 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1523, align 8 + %1527 = load ptr, ptr @"_llgo_func$qiNnn6Cbm3GtDp4gDI4U_DRV3h8zlz91s9jrfOXC--U", align 8 + %1528 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %1529 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1528, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %1526, ptr %1529, align 8 + %1530 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1528, i32 0, i32 1 + store ptr %1527, ptr %1530, align 8 + %1531 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1528, i32 0, i32 2 + store ptr @"github.com/goplus/llgo/internal/abi.(*StructType).StructType", ptr %1531, align 8 + %1532 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1528, i32 0, i32 3 + store ptr @"github.com/goplus/llgo/internal/abi.(*StructType).StructType", ptr %1532, align 8 + %1533 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %1528, align 8 + %1534 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %1535 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1534, i32 0, i32 0 + store ptr @51, ptr %1535, align 8 + %1536 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1534, i32 0, i32 1 + store i64 8, ptr %1536, align 4 + %1537 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1534, align 8 + %1538 = load ptr, ptr @"_llgo_github.com/goplus/llgo/internal/abi.UncommonType", align 8 + %1539 = icmp eq ptr %1538, null + br i1 %1539, label %_llgo_95, label %_llgo_96 + +_llgo_94: ; preds = %_llgo_108, %_llgo_92 + %1540 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/internal/abi.StructType", align 8 + %1541 = icmp eq ptr %1540, null + br i1 %1541, label %_llgo_109, label %_llgo_110 + +_llgo_95: ; preds = %_llgo_93 + %1542 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(i64 25, i64 0, i64 2) + store ptr %1542, ptr @"_llgo_github.com/goplus/llgo/internal/abi.UncommonType", align 8 + br label %_llgo_96 + +_llgo_96: ; preds = %_llgo_95, %_llgo_93 + %1543 = load ptr, ptr @_llgo_string, align 8 + %1544 = load ptr, ptr @_llgo_uint16, align 8 + %1545 = load ptr, ptr @_llgo_uint16, align 8 + %1546 = load ptr, ptr @_llgo_uint32, align 8 + %1547 = load ptr, ptr @"_llgo_struct$OKIlItfBJsawrEMnVSc2VQ7pxNxCHIgSoitcM9n4FVI", align 8 + %1548 = icmp eq ptr %1547, null + br i1 %1548, label %_llgo_97, label %_llgo_98 + +_llgo_97: ; preds = %_llgo_96 + %1549 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %1550 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1549, i32 0, i32 0 + store ptr @29, ptr %1550, align 8 + %1551 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1549, i32 0, i32 1 + store i64 8, ptr %1551, align 4 + %1552 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1549, align 8 + %1553 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %1554 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1553, i32 0, i32 0 + store ptr null, ptr %1554, align 8 + %1555 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1553, i32 0, i32 1 + store i64 0, ptr %1555, align 4 + %1556 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1553, align 8 + %1557 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %1552, ptr %1543, i64 0, %"github.com/goplus/llgo/internal/runtime.String" %1556, i1 false) + %1558 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %1559 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1558, i32 0, i32 0 + store ptr @52, ptr %1559, align 8 + %1560 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1558, i32 0, i32 1 + store i64 6, ptr %1560, align 4 + %1561 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1558, align 8 + %1562 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %1563 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1562, i32 0, i32 0 + store ptr null, ptr %1563, align 8 + %1564 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1562, i32 0, i32 1 + store i64 0, ptr %1564, align 4 + %1565 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1562, align 8 + %1566 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %1561, ptr %1544, i64 16, %"github.com/goplus/llgo/internal/runtime.String" %1565, i1 false) + %1567 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %1568 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1567, i32 0, i32 0 + store ptr @53, ptr %1568, align 8 + %1569 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1567, i32 0, i32 1 + store i64 6, ptr %1569, align 4 + %1570 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1567, align 8 + %1571 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %1572 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1571, i32 0, i32 0 + store ptr null, ptr %1572, align 8 + %1573 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1571, i32 0, i32 1 + store i64 0, ptr %1573, align 4 + %1574 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1571, align 8 + %1575 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %1570, ptr %1545, i64 18, %"github.com/goplus/llgo/internal/runtime.String" %1574, i1 false) + %1576 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %1577 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1576, i32 0, i32 0 + store ptr @54, ptr %1577, align 8 + %1578 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1576, i32 0, i32 1 + store i64 4, ptr %1578, align 4 + %1579 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1576, align 8 + %1580 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %1581 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1580, i32 0, i32 0 + store ptr null, ptr %1581, align 8 + %1582 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1580, i32 0, i32 1 + store i64 0, ptr %1582, align 4 + %1583 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1580, align 8 + %1584 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %1579, ptr %1546, i64 20, %"github.com/goplus/llgo/internal/runtime.String" %1583, i1 false) + %1585 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %1586 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1585, i32 0, i32 0 + store ptr @4, ptr %1586, align 8 + %1587 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1585, i32 0, i32 1 + store i64 4, ptr %1587, align 4 + %1588 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1585, align 8 + %1589 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 224) + %1590 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %1589, i64 0 + store %"github.com/goplus/llgo/internal/abi.StructField" %1557, ptr %1590, align 8 + %1591 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %1589, i64 1 + store %"github.com/goplus/llgo/internal/abi.StructField" %1566, ptr %1591, align 8 + %1592 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %1589, i64 2 + store %"github.com/goplus/llgo/internal/abi.StructField" %1575, ptr %1592, align 8 + %1593 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %1589, i64 3 + store %"github.com/goplus/llgo/internal/abi.StructField" %1584, ptr %1593, align 8 + %1594 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %1595 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1594, i32 0, i32 0 + store ptr %1589, ptr %1595, align 8 + %1596 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1594, i32 0, i32 1 + store i64 4, ptr %1596, align 4 + %1597 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1594, i32 0, i32 2 + store i64 4, ptr %1597, align 4 + %1598 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1594, align 8 + %1599 = call ptr @"github.com/goplus/llgo/internal/runtime.Struct"(%"github.com/goplus/llgo/internal/runtime.String" %1588, i64 24, %"github.com/goplus/llgo/internal/runtime.Slice" %1598) + store ptr %1599, ptr @"_llgo_struct$OKIlItfBJsawrEMnVSc2VQ7pxNxCHIgSoitcM9n4FVI", align 8 + br label %_llgo_98 + +_llgo_98: ; preds = %_llgo_97, %_llgo_96 + %1600 = load ptr, ptr @"_llgo_struct$OKIlItfBJsawrEMnVSc2VQ7pxNxCHIgSoitcM9n4FVI", align 8 + br i1 %1539, label %_llgo_99, label %_llgo_100 + +_llgo_99: ; preds = %_llgo_98 + %1601 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %1602 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1601, i32 0, i32 0 + store ptr @55, ptr %1602, align 8 + %1603 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1601, i32 0, i32 1 + store i64 15, ptr %1603, align 4 + %1604 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1601, align 8 + %1605 = load ptr, ptr @"[]_llgo_github.com/goplus/llgo/internal/abi.Method", align 8 + %1606 = icmp eq ptr %1605, null + br i1 %1606, label %_llgo_101, label %_llgo_102 + +_llgo_100: ; preds = %_llgo_104, %_llgo_98 + %1607 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/internal/abi.UncommonType", align 8 + %1608 = icmp eq ptr %1607, null + br i1 %1608, label %_llgo_105, label %_llgo_106 + +_llgo_101: ; preds = %_llgo_99 + %1609 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(i64 25, i64 0, i64 3) + %1610 = call ptr @"github.com/goplus/llgo/internal/runtime.SliceOf"(ptr %1609) + store ptr %1610, ptr @"[]_llgo_github.com/goplus/llgo/internal/abi.Method", align 8 + br label %_llgo_102 + +_llgo_102: ; preds = %_llgo_101, %_llgo_99 + %1611 = load ptr, ptr @"[]_llgo_github.com/goplus/llgo/internal/abi.Method", align 8 + %1612 = load ptr, ptr @"_llgo_func$r0w3aCNVheLGqjxncuxitGhNtWJagb9gZLqOSrNI7dg", align 8 + %1613 = icmp eq ptr %1612, null + br i1 %1613, label %_llgo_103, label %_llgo_104 + +_llgo_103: ; preds = %_llgo_102 + %1614 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 0) + %1615 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %1616 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1615, i32 0, i32 0 + store ptr %1614, ptr %1616, align 8 + %1617 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1615, i32 0, i32 1 + store i64 0, ptr %1617, align 4 + %1618 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1615, i32 0, i32 2 + store i64 0, ptr %1618, align 4 + %1619 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1615, align 8 + %1620 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 8) + %1621 = getelementptr ptr, ptr %1620, i64 0 + store ptr %1611, ptr %1621, align 8 + %1622 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %1623 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1622, i32 0, i32 0 + store ptr %1620, ptr %1623, align 8 + %1624 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1622, i32 0, i32 1 + store i64 1, ptr %1624, align 4 + %1625 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1622, i32 0, i32 2 + store i64 1, ptr %1625, align 4 + %1626 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1622, align 8 + %1627 = call ptr @"github.com/goplus/llgo/internal/runtime.Func"(%"github.com/goplus/llgo/internal/runtime.Slice" %1619, %"github.com/goplus/llgo/internal/runtime.Slice" %1626, i1 false) + store ptr %1627, ptr @"_llgo_func$r0w3aCNVheLGqjxncuxitGhNtWJagb9gZLqOSrNI7dg", align 8 + br label %_llgo_104 + +_llgo_104: ; preds = %_llgo_103, %_llgo_102 + %1628 = load ptr, ptr @"_llgo_func$r0w3aCNVheLGqjxncuxitGhNtWJagb9gZLqOSrNI7dg", align 8 + %1629 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %1630 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1629, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %1604, ptr %1630, align 8 + %1631 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1629, i32 0, i32 1 + store ptr %1628, ptr %1631, align 8 + %1632 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1629, i32 0, i32 2 + store ptr @"github.com/goplus/llgo/internal/abi.(*UncommonType).ExportedMethods", ptr %1632, align 8 + %1633 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1629, i32 0, i32 3 + store ptr @"github.com/goplus/llgo/internal/abi.(*UncommonType).ExportedMethods", ptr %1633, align 8 + %1634 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %1629, align 8 + %1635 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %1636 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1635, i32 0, i32 0 + store ptr @30, ptr %1636, align 8 + %1637 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1635, i32 0, i32 1 + store i64 7, ptr %1637, align 4 + %1638 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1635, align 8 + %1639 = load ptr, ptr @"_llgo_func$r0w3aCNVheLGqjxncuxitGhNtWJagb9gZLqOSrNI7dg", align 8 + %1640 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %1641 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1640, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %1638, ptr %1641, align 8 + %1642 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1640, i32 0, i32 1 + store ptr %1639, ptr %1642, align 8 + %1643 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1640, i32 0, i32 2 + store ptr @"github.com/goplus/llgo/internal/abi.(*UncommonType).Methods", ptr %1643, align 8 + %1644 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1640, i32 0, i32 3 + store ptr @"github.com/goplus/llgo/internal/abi.(*UncommonType).Methods", ptr %1644, align 8 + %1645 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %1640, align 8 + %1646 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 80) + %1647 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1646, i64 0 + store %"github.com/goplus/llgo/internal/abi.Method" %1634, ptr %1647, align 8 + %1648 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1646, i64 1 + store %"github.com/goplus/llgo/internal/abi.Method" %1645, ptr %1648, align 8 + %1649 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %1650 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1649, i32 0, i32 0 + store ptr %1646, ptr %1650, align 8 + %1651 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1649, i32 0, i32 1 + store i64 2, ptr %1651, align 4 + %1652 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1649, i32 0, i32 2 + store i64 2, ptr %1652, align 4 + %1653 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1649, align 8 + %1654 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %1655 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1654, i32 0, i32 0 + store ptr @0, ptr %1655, align 8 + %1656 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1654, i32 0, i32 1 + store i64 35, ptr %1656, align 4 + %1657 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1654, align 8 + %1658 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %1659 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1658, i32 0, i32 0 + store ptr @56, ptr %1659, align 8 + %1660 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1658, i32 0, i32 1 + store i64 12, ptr %1660, align 4 + %1661 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1658, align 8 + call void @"github.com/goplus/llgo/internal/runtime.InitNamed"(ptr %1542, %"github.com/goplus/llgo/internal/runtime.String" %1657, %"github.com/goplus/llgo/internal/runtime.String" %1661, ptr %1600, { ptr, i64, i64 } zeroinitializer, %"github.com/goplus/llgo/internal/runtime.Slice" %1653) + br label %_llgo_100 + +_llgo_105: ; preds = %_llgo_100 + %1662 = call ptr @"github.com/goplus/llgo/internal/runtime.PointerTo"(ptr %1542) + store ptr %1662, ptr @"*_llgo_github.com/goplus/llgo/internal/abi.UncommonType", align 8 + br label %_llgo_106 + +_llgo_106: ; preds = %_llgo_105, %_llgo_100 + %1663 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/internal/abi.UncommonType", align 8 + %1664 = load ptr, ptr @"_llgo_func$DbD4nZv_bjE4tH8hh-VfAjMXMpNfIsMlLJJJPKupp34", align 8 + %1665 = icmp eq ptr %1664, null + br i1 %1665, label %_llgo_107, label %_llgo_108 + +_llgo_107: ; preds = %_llgo_106 + %1666 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 0) + %1667 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %1668 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1667, i32 0, i32 0 + store ptr %1666, ptr %1668, align 8 + %1669 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1667, i32 0, i32 1 + store i64 0, ptr %1669, align 4 + %1670 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1667, i32 0, i32 2 + store i64 0, ptr %1670, align 4 + %1671 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1667, align 8 + %1672 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 8) + %1673 = getelementptr ptr, ptr %1672, i64 0 + store ptr %1663, ptr %1673, align 8 + %1674 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %1675 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1674, i32 0, i32 0 + store ptr %1672, ptr %1675, align 8 + %1676 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1674, i32 0, i32 1 + store i64 1, ptr %1676, align 4 + %1677 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1674, i32 0, i32 2 + store i64 1, ptr %1677, align 4 + %1678 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1674, align 8 + %1679 = call ptr @"github.com/goplus/llgo/internal/runtime.Func"(%"github.com/goplus/llgo/internal/runtime.Slice" %1671, %"github.com/goplus/llgo/internal/runtime.Slice" %1678, i1 false) + store ptr %1679, ptr @"_llgo_func$DbD4nZv_bjE4tH8hh-VfAjMXMpNfIsMlLJJJPKupp34", align 8 + br label %_llgo_108 + +_llgo_108: ; preds = %_llgo_107, %_llgo_106 + %1680 = load ptr, ptr @"_llgo_func$DbD4nZv_bjE4tH8hh-VfAjMXMpNfIsMlLJJJPKupp34", align 8 + %1681 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %1682 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1681, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %1537, ptr %1682, align 8 + %1683 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1681, i32 0, i32 1 + store ptr %1680, ptr %1683, align 8 + %1684 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1681, i32 0, i32 2 + store ptr @"github.com/goplus/llgo/internal/abi.(*StructType).Uncommon", ptr %1684, align 8 + %1685 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1681, i32 0, i32 3 + store ptr @"github.com/goplus/llgo/internal/abi.(*StructType).Uncommon", ptr %1685, align 8 + %1686 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %1681, align 8 + %1687 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 720) + %1688 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1687, i64 0 + store %"github.com/goplus/llgo/internal/abi.Method" %1357, ptr %1688, align 8 + %1689 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1687, i64 1 + store %"github.com/goplus/llgo/internal/abi.Method" %1368, ptr %1689, align 8 + %1690 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1687, i64 2 + store %"github.com/goplus/llgo/internal/abi.Method" %1379, ptr %1690, align 8 + %1691 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1687, i64 3 + store %"github.com/goplus/llgo/internal/abi.Method" %1390, ptr %1691, align 8 + %1692 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1687, i64 4 + store %"github.com/goplus/llgo/internal/abi.Method" %1401, ptr %1692, align 8 + %1693 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1687, i64 5 + store %"github.com/goplus/llgo/internal/abi.Method" %1412, ptr %1693, align 8 + %1694 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1687, i64 6 + store %"github.com/goplus/llgo/internal/abi.Method" %1423, ptr %1694, align 8 + %1695 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1687, i64 7 + store %"github.com/goplus/llgo/internal/abi.Method" %1434, ptr %1695, align 8 + %1696 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1687, i64 8 + store %"github.com/goplus/llgo/internal/abi.Method" %1445, ptr %1696, align 8 + %1697 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1687, i64 9 + store %"github.com/goplus/llgo/internal/abi.Method" %1456, ptr %1697, align 8 + %1698 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1687, i64 10 + store %"github.com/goplus/llgo/internal/abi.Method" %1467, ptr %1698, align 8 + %1699 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1687, i64 11 + store %"github.com/goplus/llgo/internal/abi.Method" %1478, ptr %1699, align 8 + %1700 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1687, i64 12 + store %"github.com/goplus/llgo/internal/abi.Method" %1489, ptr %1700, align 8 + %1701 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1687, i64 13 + store %"github.com/goplus/llgo/internal/abi.Method" %1500, ptr %1701, align 8 + %1702 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1687, i64 14 + store %"github.com/goplus/llgo/internal/abi.Method" %1511, ptr %1702, align 8 + %1703 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1687, i64 15 + store %"github.com/goplus/llgo/internal/abi.Method" %1522, ptr %1703, align 8 + %1704 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1687, i64 16 + store %"github.com/goplus/llgo/internal/abi.Method" %1533, ptr %1704, align 8 + %1705 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1687, i64 17 + store %"github.com/goplus/llgo/internal/abi.Method" %1686, ptr %1705, align 8 + %1706 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %1707 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1706, i32 0, i32 0 + store ptr %1687, ptr %1707, align 8 + %1708 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1706, i32 0, i32 1 + store i64 18, ptr %1708, align 4 + %1709 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1706, i32 0, i32 2 + store i64 18, ptr %1709, align 4 + %1710 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1706, align 8 + %1711 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %1712 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1711, i32 0, i32 0 + store ptr @0, ptr %1712, align 8 + %1713 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1711, i32 0, i32 1 + store i64 35, ptr %1713, align 4 + %1714 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1711, align 8 + %1715 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %1716 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1715, i32 0, i32 0 + store ptr @49, ptr %1716, align 8 + %1717 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1715, i32 0, i32 1 + store i64 10, ptr %1717, align 4 + %1718 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1715, align 8 + call void @"github.com/goplus/llgo/internal/runtime.InitNamed"(ptr %1295, %"github.com/goplus/llgo/internal/runtime.String" %1714, %"github.com/goplus/llgo/internal/runtime.String" %1718, ptr %1346, { ptr, i64, i64 } zeroinitializer, %"github.com/goplus/llgo/internal/runtime.Slice" %1710) + br label %_llgo_94 + +_llgo_109: ; preds = %_llgo_94 + %1719 = call ptr @"github.com/goplus/llgo/internal/runtime.PointerTo"(ptr %1295) + store ptr %1719, ptr @"*_llgo_github.com/goplus/llgo/internal/abi.StructType", align 8 + br label %_llgo_110 + +_llgo_110: ; preds = %_llgo_109, %_llgo_94 + %1720 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/internal/abi.StructType", align 8 + %1721 = load ptr, ptr @"_llgo_func$qiNnn6Cbm3GtDp4gDI4U_DRV3h8zlz91s9jrfOXC--U", align 8 + %1722 = icmp eq ptr %1721, null + br i1 %1722, label %_llgo_111, label %_llgo_112 + +_llgo_111: ; preds = %_llgo_110 + %1723 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 0) + %1724 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %1725 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1724, i32 0, i32 0 + store ptr %1723, ptr %1725, align 8 + %1726 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1724, i32 0, i32 1 + store i64 0, ptr %1726, align 4 + %1727 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1724, i32 0, i32 2 + store i64 0, ptr %1727, align 4 + %1728 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1724, align 8 + %1729 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 8) + %1730 = getelementptr ptr, ptr %1729, i64 0 + store ptr %1720, ptr %1730, align 8 + %1731 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %1732 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1731, i32 0, i32 0 + store ptr %1729, ptr %1732, align 8 + %1733 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1731, i32 0, i32 1 + store i64 1, ptr %1733, align 4 + %1734 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1731, i32 0, i32 2 + store i64 1, ptr %1734, align 4 + %1735 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1731, align 8 + %1736 = call ptr @"github.com/goplus/llgo/internal/runtime.Func"(%"github.com/goplus/llgo/internal/runtime.Slice" %1728, %"github.com/goplus/llgo/internal/runtime.Slice" %1735, i1 false) + store ptr %1736, ptr @"_llgo_func$qiNnn6Cbm3GtDp4gDI4U_DRV3h8zlz91s9jrfOXC--U", align 8 + br label %_llgo_112 + +_llgo_112: ; preds = %_llgo_111, %_llgo_110 + %1737 = load ptr, ptr @"_llgo_func$qiNnn6Cbm3GtDp4gDI4U_DRV3h8zlz91s9jrfOXC--U", align 8 + %1738 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %1739 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1738, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %1292, ptr %1739, align 8 + %1740 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1738, i32 0, i32 1 + store ptr %1737, ptr %1740, align 8 + %1741 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1738, i32 0, i32 2 + store ptr @"github.com/goplus/llgo/internal/abi.(*MapType).StructType", ptr %1741, align 8 + %1742 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1738, i32 0, i32 3 + store ptr @"github.com/goplus/llgo/internal/abi.(*MapType).StructType", ptr %1742, align 8 + %1743 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %1738, align 8 + %1744 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %1745 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1744, i32 0, i32 0 + store ptr @51, ptr %1745, align 8 + %1746 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1744, i32 0, i32 1 + store i64 8, ptr %1746, align 4 + %1747 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1744, align 8 + %1748 = load ptr, ptr @"_llgo_func$DbD4nZv_bjE4tH8hh-VfAjMXMpNfIsMlLJJJPKupp34", align 8 + %1749 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %1750 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1749, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %1747, ptr %1750, align 8 + %1751 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1749, i32 0, i32 1 + store ptr %1748, ptr %1751, align 8 + %1752 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1749, i32 0, i32 2 + store ptr @"github.com/goplus/llgo/internal/abi.(*MapType).Uncommon", ptr %1752, align 8 + %1753 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1749, i32 0, i32 3 + store ptr @"github.com/goplus/llgo/internal/abi.(*MapType).Uncommon", ptr %1753, align 8 + %1754 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %1749, align 8 + %1755 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 880) + %1756 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1755, i64 0 + store %"github.com/goplus/llgo/internal/abi.Method" %1060, ptr %1756, align 8 + %1757 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1755, i64 1 + store %"github.com/goplus/llgo/internal/abi.Method" %1071, ptr %1757, align 8 + %1758 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1755, i64 2 + store %"github.com/goplus/llgo/internal/abi.Method" %1082, ptr %1758, align 8 + %1759 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1755, i64 3 + store %"github.com/goplus/llgo/internal/abi.Method" %1093, ptr %1759, align 8 + %1760 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1755, i64 4 + store %"github.com/goplus/llgo/internal/abi.Method" %1104, ptr %1760, align 8 + %1761 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1755, i64 5 + store %"github.com/goplus/llgo/internal/abi.Method" %1115, ptr %1761, align 8 + %1762 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1755, i64 6 + store %"github.com/goplus/llgo/internal/abi.Method" %1126, ptr %1762, align 8 + %1763 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1755, i64 7 + store %"github.com/goplus/llgo/internal/abi.Method" %1137, ptr %1763, align 8 + %1764 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1755, i64 8 + store %"github.com/goplus/llgo/internal/abi.Method" %1148, ptr %1764, align 8 + %1765 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1755, i64 9 + store %"github.com/goplus/llgo/internal/abi.Method" %1159, ptr %1765, align 8 + %1766 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1755, i64 10 + store %"github.com/goplus/llgo/internal/abi.Method" %1170, ptr %1766, align 8 + %1767 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1755, i64 11 + store %"github.com/goplus/llgo/internal/abi.Method" %1181, ptr %1767, align 8 + %1768 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1755, i64 12 + store %"github.com/goplus/llgo/internal/abi.Method" %1192, ptr %1768, align 8 + %1769 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1755, i64 13 + store %"github.com/goplus/llgo/internal/abi.Method" %1203, ptr %1769, align 8 + %1770 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1755, i64 14 + store %"github.com/goplus/llgo/internal/abi.Method" %1214, ptr %1770, align 8 + %1771 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1755, i64 15 + store %"github.com/goplus/llgo/internal/abi.Method" %1225, ptr %1771, align 8 + %1772 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1755, i64 16 + store %"github.com/goplus/llgo/internal/abi.Method" %1236, ptr %1772, align 8 + %1773 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1755, i64 17 + store %"github.com/goplus/llgo/internal/abi.Method" %1247, ptr %1773, align 8 + %1774 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1755, i64 18 + store %"github.com/goplus/llgo/internal/abi.Method" %1277, ptr %1774, align 8 + %1775 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1755, i64 19 + store %"github.com/goplus/llgo/internal/abi.Method" %1288, ptr %1775, align 8 + %1776 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1755, i64 20 + store %"github.com/goplus/llgo/internal/abi.Method" %1743, ptr %1776, align 8 + %1777 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1755, i64 21 + store %"github.com/goplus/llgo/internal/abi.Method" %1754, ptr %1777, align 8 + %1778 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %1779 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1778, i32 0, i32 0 + store ptr %1755, ptr %1779, align 8 + %1780 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1778, i32 0, i32 1 + store i64 22, ptr %1780, align 4 + %1781 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1778, i32 0, i32 2 + store i64 22, ptr %1781, align 4 + %1782 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1778, align 8 + %1783 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %1784 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1783, i32 0, i32 0 + store ptr @0, ptr %1784, align 8 + %1785 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1783, i32 0, i32 1 + store i64 35, ptr %1785, align 4 + %1786 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1783, align 8 + %1787 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %1788 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1787, i32 0, i32 0 + store ptr @34, ptr %1788, align 8 + %1789 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1787, i32 0, i32 1 + store i64 7, ptr %1789, align 4 + %1790 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1787, align 8 + call void @"github.com/goplus/llgo/internal/runtime.InitNamed"(ptr %874, %"github.com/goplus/llgo/internal/runtime.String" %1786, %"github.com/goplus/llgo/internal/runtime.String" %1790, ptr %1049, { ptr, i64, i64 } zeroinitializer, %"github.com/goplus/llgo/internal/runtime.Slice" %1782) + br label %_llgo_84 + +_llgo_113: ; preds = %_llgo_84 + %1791 = call ptr @"github.com/goplus/llgo/internal/runtime.PointerTo"(ptr %874) + store ptr %1791, ptr @"*_llgo_github.com/goplus/llgo/internal/abi.MapType", align 8 + br label %_llgo_114 + +_llgo_114: ; preds = %_llgo_113, %_llgo_84 + %1792 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/internal/abi.MapType", align 8 + %1793 = load ptr, ptr @"_llgo_func$d-NlqnjcQnaMjsBQY7qh2SWQmHb0XIigoceXdiJ8YT4", align 8 + %1794 = icmp eq ptr %1793, null + br i1 %1794, label %_llgo_115, label %_llgo_116 + +_llgo_115: ; preds = %_llgo_114 + %1795 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 0) + %1796 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %1797 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1796, i32 0, i32 0 + store ptr %1795, ptr %1797, align 8 + %1798 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1796, i32 0, i32 1 + store i64 0, ptr %1798, align 4 + %1799 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1796, i32 0, i32 2 + store i64 0, ptr %1799, align 4 + %1800 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1796, align 8 + %1801 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 8) + %1802 = getelementptr ptr, ptr %1801, i64 0 + store ptr %1792, ptr %1802, align 8 + %1803 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %1804 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1803, i32 0, i32 0 + store ptr %1801, ptr %1804, align 8 + %1805 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1803, i32 0, i32 1 + store i64 1, ptr %1805, align 4 + %1806 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1803, i32 0, i32 2 + store i64 1, ptr %1806, align 4 + %1807 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1803, align 8 + %1808 = call ptr @"github.com/goplus/llgo/internal/runtime.Func"(%"github.com/goplus/llgo/internal/runtime.Slice" %1800, %"github.com/goplus/llgo/internal/runtime.Slice" %1807, i1 false) + store ptr %1808, ptr @"_llgo_func$d-NlqnjcQnaMjsBQY7qh2SWQmHb0XIigoceXdiJ8YT4", align 8 + br label %_llgo_116 + +_llgo_116: ; preds = %_llgo_115, %_llgo_114 + %1809 = load ptr, ptr @"_llgo_func$d-NlqnjcQnaMjsBQY7qh2SWQmHb0XIigoceXdiJ8YT4", align 8 + %1810 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %1811 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1810, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %871, ptr %1811, align 8 + %1812 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1810, i32 0, i32 1 + store ptr %1809, ptr %1812, align 8 + %1813 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1810, i32 0, i32 2 + store ptr @"github.com/goplus/llgo/internal/abi.(*InterfaceType).MapType", ptr %1813, align 8 + %1814 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1810, i32 0, i32 3 + store ptr @"github.com/goplus/llgo/internal/abi.(*InterfaceType).MapType", ptr %1814, align 8 + %1815 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %1810, align 8 + %1816 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %1817 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1816, i32 0, i32 0 + store ptr @46, ptr %1817, align 8 + %1818 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1816, i32 0, i32 1 + store i64 8, ptr %1818, align 4 + %1819 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1816, align 8 + %1820 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 + %1821 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %1822 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1821, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %1819, ptr %1822, align 8 + %1823 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1821, i32 0, i32 1 + store ptr %1820, ptr %1823, align 8 + %1824 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1821, i32 0, i32 2 + store ptr @"github.com/goplus/llgo/internal/abi.(*InterfaceType).Pointers", ptr %1824, align 8 + %1825 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1821, i32 0, i32 3 + store ptr @"github.com/goplus/llgo/internal/abi.(*InterfaceType).Pointers", ptr %1825, align 8 + %1826 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %1821, align 8 + %1827 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %1828 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1827, i32 0, i32 0 + store ptr @48, ptr %1828, align 8 + %1829 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1827, i32 0, i32 1 + store i64 4, ptr %1829, align 4 + %1830 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1827, align 8 + %1831 = load ptr, ptr @"_llgo_func$1kITCsyu7hFLMxHLR7kDlvu4SOra_HtrtdFUQH9P13s", align 8 + %1832 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %1833 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1832, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %1830, ptr %1833, align 8 + %1834 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1832, i32 0, i32 1 + store ptr %1831, ptr %1834, align 8 + %1835 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1832, i32 0, i32 2 + store ptr @"github.com/goplus/llgo/internal/abi.(*InterfaceType).Size", ptr %1835, align 8 + %1836 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1832, i32 0, i32 3 + store ptr @"github.com/goplus/llgo/internal/abi.(*InterfaceType).Size", ptr %1836, align 8 + %1837 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %1832, align 8 + %1838 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %1839 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1838, i32 0, i32 0 + store ptr @33, ptr %1839, align 8 + %1840 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1838, i32 0, i32 1 + store i64 6, ptr %1840, align 4 + %1841 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1838, align 8 + %1842 = load ptr, ptr @"_llgo_func$zNDVRsWTIpUPKouNUS805RGX--IV9qVK8B31IZbg5to", align 8 + %1843 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %1844 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1843, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %1841, ptr %1844, align 8 + %1845 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1843, i32 0, i32 1 + store ptr %1842, ptr %1845, align 8 + %1846 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1843, i32 0, i32 2 + store ptr @"github.com/goplus/llgo/internal/abi.(*InterfaceType).String", ptr %1846, align 8 + %1847 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1843, i32 0, i32 3 + store ptr @"github.com/goplus/llgo/internal/abi.(*InterfaceType).String", ptr %1847, align 8 + %1848 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %1843, align 8 + %1849 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %1850 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1849, i32 0, i32 0 + store ptr @49, ptr %1850, align 8 + %1851 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1849, i32 0, i32 1 + store i64 10, ptr %1851, align 4 + %1852 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1849, align 8 + %1853 = load ptr, ptr @"_llgo_func$qiNnn6Cbm3GtDp4gDI4U_DRV3h8zlz91s9jrfOXC--U", align 8 + %1854 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %1855 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1854, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %1852, ptr %1855, align 8 + %1856 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1854, i32 0, i32 1 + store ptr %1853, ptr %1856, align 8 + %1857 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1854, i32 0, i32 2 + store ptr @"github.com/goplus/llgo/internal/abi.(*InterfaceType).StructType", ptr %1857, align 8 + %1858 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1854, i32 0, i32 3 + store ptr @"github.com/goplus/llgo/internal/abi.(*InterfaceType).StructType", ptr %1858, align 8 + %1859 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %1854, align 8 + %1860 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %1861 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1860, i32 0, i32 0 + store ptr @51, ptr %1861, align 8 + %1862 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1860, i32 0, i32 1 + store i64 8, ptr %1862, align 4 + %1863 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1860, align 8 + %1864 = load ptr, ptr @"_llgo_func$DbD4nZv_bjE4tH8hh-VfAjMXMpNfIsMlLJJJPKupp34", align 8 + %1865 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %1866 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1865, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %1863, ptr %1866, align 8 + %1867 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1865, i32 0, i32 1 + store ptr %1864, ptr %1867, align 8 + %1868 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1865, i32 0, i32 2 + store ptr @"github.com/goplus/llgo/internal/abi.(*InterfaceType).Uncommon", ptr %1868, align 8 + %1869 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1865, i32 0, i32 3 + store ptr @"github.com/goplus/llgo/internal/abi.(*InterfaceType).Uncommon", ptr %1869, align 8 + %1870 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %1865, align 8 + %1871 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 720) + %1872 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1871, i64 0 + store %"github.com/goplus/llgo/internal/abi.Method" %658, ptr %1872, align 8 + %1873 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1871, i64 1 + store %"github.com/goplus/llgo/internal/abi.Method" %669, ptr %1873, align 8 + %1874 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1871, i64 2 + store %"github.com/goplus/llgo/internal/abi.Method" %680, ptr %1874, align 8 + %1875 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1871, i64 3 + store %"github.com/goplus/llgo/internal/abi.Method" %691, ptr %1875, align 8 + %1876 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1871, i64 4 + store %"github.com/goplus/llgo/internal/abi.Method" %702, ptr %1876, align 8 + %1877 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1871, i64 5 + store %"github.com/goplus/llgo/internal/abi.Method" %713, ptr %1877, align 8 + %1878 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1871, i64 6 + store %"github.com/goplus/llgo/internal/abi.Method" %724, ptr %1878, align 8 + %1879 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1871, i64 7 + store %"github.com/goplus/llgo/internal/abi.Method" %735, ptr %1879, align 8 + %1880 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1871, i64 8 + store %"github.com/goplus/llgo/internal/abi.Method" %746, ptr %1880, align 8 + %1881 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1871, i64 9 + store %"github.com/goplus/llgo/internal/abi.Method" %757, ptr %1881, align 8 + %1882 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1871, i64 10 + store %"github.com/goplus/llgo/internal/abi.Method" %856, ptr %1882, align 8 + %1883 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1871, i64 11 + store %"github.com/goplus/llgo/internal/abi.Method" %867, ptr %1883, align 8 + %1884 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1871, i64 12 + store %"github.com/goplus/llgo/internal/abi.Method" %1815, ptr %1884, align 8 + %1885 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1871, i64 13 + store %"github.com/goplus/llgo/internal/abi.Method" %1826, ptr %1885, align 8 + %1886 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1871, i64 14 + store %"github.com/goplus/llgo/internal/abi.Method" %1837, ptr %1886, align 8 + %1887 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1871, i64 15 + store %"github.com/goplus/llgo/internal/abi.Method" %1848, ptr %1887, align 8 + %1888 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1871, i64 16 + store %"github.com/goplus/llgo/internal/abi.Method" %1859, ptr %1888, align 8 + %1889 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1871, i64 17 + store %"github.com/goplus/llgo/internal/abi.Method" %1870, ptr %1889, align 8 + %1890 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %1891 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1890, i32 0, i32 0 + store ptr %1871, ptr %1891, align 8 + %1892 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1890, i32 0, i32 1 + store i64 18, ptr %1892, align 4 + %1893 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1890, i32 0, i32 2 + store i64 18, ptr %1893, align 4 + %1894 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1890, align 8 + %1895 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %1896 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1895, i32 0, i32 0 + store ptr @0, ptr %1896, align 8 + %1897 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1895, i32 0, i32 1 + store i64 35, ptr %1897, align 4 + %1898 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1895, align 8 + %1899 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %1900 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1899, i32 0, i32 0 + store ptr @28, ptr %1900, align 8 + %1901 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1899, i32 0, i32 1 + store i64 13, ptr %1901, align 4 + %1902 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1899, align 8 + call void @"github.com/goplus/llgo/internal/runtime.InitNamed"(ptr %596, %"github.com/goplus/llgo/internal/runtime.String" %1898, %"github.com/goplus/llgo/internal/runtime.String" %1902, ptr %647, { ptr, i64, i64 } zeroinitializer, %"github.com/goplus/llgo/internal/runtime.Slice" %1894) + br label %_llgo_64 + +_llgo_117: ; preds = %_llgo_64 + %1903 = call ptr @"github.com/goplus/llgo/internal/runtime.PointerTo"(ptr %596) + store ptr %1903, ptr @"*_llgo_github.com/goplus/llgo/internal/abi.InterfaceType", align 8 + br label %_llgo_118 + +_llgo_118: ; preds = %_llgo_117, %_llgo_64 + %1904 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/internal/abi.InterfaceType", align 8 + %1905 = load ptr, ptr @"_llgo_func$1QmforOaCy2fBAssC2y1FWCCT6fpq9RKwP2j2HIASY8", align 8 + %1906 = icmp eq ptr %1905, null + br i1 %1906, label %_llgo_119, label %_llgo_120 + +_llgo_119: ; preds = %_llgo_118 + %1907 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 0) + %1908 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %1909 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1908, i32 0, i32 0 + store ptr %1907, ptr %1909, align 8 + %1910 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1908, i32 0, i32 1 + store i64 0, ptr %1910, align 4 + %1911 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1908, i32 0, i32 2 + store i64 0, ptr %1911, align 4 + %1912 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1908, align 8 + %1913 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 8) + %1914 = getelementptr ptr, ptr %1913, i64 0 + store ptr %1904, ptr %1914, align 8 + %1915 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %1916 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1915, i32 0, i32 0 + store ptr %1913, ptr %1916, align 8 + %1917 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1915, i32 0, i32 1 + store i64 1, ptr %1917, align 4 + %1918 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1915, i32 0, i32 2 + store i64 1, ptr %1918, align 4 + %1919 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1915, align 8 + %1920 = call ptr @"github.com/goplus/llgo/internal/runtime.Func"(%"github.com/goplus/llgo/internal/runtime.Slice" %1912, %"github.com/goplus/llgo/internal/runtime.Slice" %1919, i1 false) + store ptr %1920, ptr @"_llgo_func$1QmforOaCy2fBAssC2y1FWCCT6fpq9RKwP2j2HIASY8", align 8 + br label %_llgo_120 + +_llgo_120: ; preds = %_llgo_119, %_llgo_118 + %1921 = load ptr, ptr @"_llgo_func$1QmforOaCy2fBAssC2y1FWCCT6fpq9RKwP2j2HIASY8", align 8 + %1922 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %1923 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1922, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %593, ptr %1923, align 8 + %1924 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1922, i32 0, i32 1 + store ptr %1921, ptr %1924, align 8 + %1925 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1922, i32 0, i32 2 + store ptr @"github.com/goplus/llgo/internal/abi.(*FuncType).InterfaceType", ptr %1925, align 8 + %1926 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1922, i32 0, i32 3 + store ptr @"github.com/goplus/llgo/internal/abi.(*FuncType).InterfaceType", ptr %1926, align 8 + %1927 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %1922, align 8 + %1928 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %1929 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1928, i32 0, i32 0 + store ptr @31, ptr %1929, align 8 + %1930 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1928, i32 0, i32 1 + store i64 13, ptr %1930, align 4 + %1931 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1928, align 8 + %1932 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 + %1933 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %1934 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1933, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %1931, ptr %1934, align 8 + %1935 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1933, i32 0, i32 1 + store ptr %1932, ptr %1935, align 8 + %1936 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1933, i32 0, i32 2 + store ptr @"github.com/goplus/llgo/internal/abi.(*FuncType).IsDirectIface", ptr %1936, align 8 + %1937 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1933, i32 0, i32 3 + store ptr @"github.com/goplus/llgo/internal/abi.(*FuncType).IsDirectIface", ptr %1937, align 8 + %1938 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %1933, align 8 + %1939 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %1940 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1939, i32 0, i32 0 + store ptr @32, ptr %1940, align 8 + %1941 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1939, i32 0, i32 1 + store i64 4, ptr %1941, align 4 + %1942 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1939, align 8 + %1943 = load ptr, ptr @"_llgo_func$ntUE0UmVAWPS2O7GpCCGszSn-XnjHJntZZ2jYtwbFXI", align 8 + %1944 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %1945 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1944, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %1942, ptr %1945, align 8 + %1946 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1944, i32 0, i32 1 + store ptr %1943, ptr %1946, align 8 + %1947 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1944, i32 0, i32 2 + store ptr @"github.com/goplus/llgo/internal/abi.(*FuncType).Kind", ptr %1947, align 8 + %1948 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1944, i32 0, i32 3 + store ptr @"github.com/goplus/llgo/internal/abi.(*FuncType).Kind", ptr %1948, align 8 + %1949 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %1944, align 8 + %1950 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %1951 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1950, i32 0, i32 0 + store ptr @20, ptr %1951, align 8 + %1952 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1950, i32 0, i32 1 + store i64 3, ptr %1952, align 4 + %1953 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1950, align 8 + %1954 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 + %1955 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %1956 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1955, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %1953, ptr %1956, align 8 + %1957 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1955, i32 0, i32 1 + store ptr %1954, ptr %1957, align 8 + %1958 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1955, i32 0, i32 2 + store ptr @"github.com/goplus/llgo/internal/abi.(*FuncType).Len", ptr %1958, align 8 + %1959 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1955, i32 0, i32 3 + store ptr @"github.com/goplus/llgo/internal/abi.(*FuncType).Len", ptr %1959, align 8 + %1960 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %1955, align 8 + %1961 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %1962 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1961, i32 0, i32 0 + store ptr @34, ptr %1962, align 8 + %1963 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1961, i32 0, i32 1 + store i64 7, ptr %1963, align 4 + %1964 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1961, align 8 + %1965 = load ptr, ptr @"_llgo_func$d-NlqnjcQnaMjsBQY7qh2SWQmHb0XIigoceXdiJ8YT4", align 8 + %1966 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %1967 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1966, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %1964, ptr %1967, align 8 + %1968 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1966, i32 0, i32 1 + store ptr %1965, ptr %1968, align 8 + %1969 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1966, i32 0, i32 2 + store ptr @"github.com/goplus/llgo/internal/abi.(*FuncType).MapType", ptr %1969, align 8 + %1970 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1966, i32 0, i32 3 + store ptr @"github.com/goplus/llgo/internal/abi.(*FuncType).MapType", ptr %1970, align 8 + %1971 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %1966, align 8 + %1972 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %1973 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1972, i32 0, i32 0 + store ptr @46, ptr %1973, align 8 + %1974 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1972, i32 0, i32 1 + store i64 8, ptr %1974, align 4 + %1975 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1972, align 8 + %1976 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 + %1977 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %1978 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1977, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %1975, ptr %1978, align 8 + %1979 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1977, i32 0, i32 1 + store ptr %1976, ptr %1979, align 8 + %1980 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1977, i32 0, i32 2 + store ptr @"github.com/goplus/llgo/internal/abi.(*FuncType).Pointers", ptr %1980, align 8 + %1981 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1977, i32 0, i32 3 + store ptr @"github.com/goplus/llgo/internal/abi.(*FuncType).Pointers", ptr %1981, align 8 + %1982 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %1977, align 8 + %1983 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %1984 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1983, i32 0, i32 0 + store ptr @48, ptr %1984, align 8 + %1985 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1983, i32 0, i32 1 + store i64 4, ptr %1985, align 4 + %1986 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1983, align 8 + %1987 = load ptr, ptr @"_llgo_func$1kITCsyu7hFLMxHLR7kDlvu4SOra_HtrtdFUQH9P13s", align 8 + %1988 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %1989 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1988, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %1986, ptr %1989, align 8 + %1990 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1988, i32 0, i32 1 + store ptr %1987, ptr %1990, align 8 + %1991 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1988, i32 0, i32 2 + store ptr @"github.com/goplus/llgo/internal/abi.(*FuncType).Size", ptr %1991, align 8 + %1992 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1988, i32 0, i32 3 + store ptr @"github.com/goplus/llgo/internal/abi.(*FuncType).Size", ptr %1992, align 8 + %1993 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %1988, align 8 + %1994 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %1995 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1994, i32 0, i32 0 + store ptr @33, ptr %1995, align 8 + %1996 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1994, i32 0, i32 1 + store i64 6, ptr %1996, align 4 + %1997 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1994, align 8 + %1998 = load ptr, ptr @"_llgo_func$zNDVRsWTIpUPKouNUS805RGX--IV9qVK8B31IZbg5to", align 8 + %1999 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %2000 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1999, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %1997, ptr %2000, align 8 + %2001 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1999, i32 0, i32 1 + store ptr %1998, ptr %2001, align 8 + %2002 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1999, i32 0, i32 2 + store ptr @"github.com/goplus/llgo/internal/abi.(*FuncType).String", ptr %2002, align 8 + %2003 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1999, i32 0, i32 3 + store ptr @"github.com/goplus/llgo/internal/abi.(*FuncType).String", ptr %2003, align 8 + %2004 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %1999, align 8 + %2005 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %2006 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2005, i32 0, i32 0 + store ptr @49, ptr %2006, align 8 + %2007 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2005, i32 0, i32 1 + store i64 10, ptr %2007, align 4 + %2008 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %2005, align 8 + %2009 = load ptr, ptr @"_llgo_func$qiNnn6Cbm3GtDp4gDI4U_DRV3h8zlz91s9jrfOXC--U", align 8 + %2010 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %2011 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2010, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %2008, ptr %2011, align 8 + %2012 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2010, i32 0, i32 1 + store ptr %2009, ptr %2012, align 8 + %2013 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2010, i32 0, i32 2 + store ptr @"github.com/goplus/llgo/internal/abi.(*FuncType).StructType", ptr %2013, align 8 + %2014 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2010, i32 0, i32 3 + store ptr @"github.com/goplus/llgo/internal/abi.(*FuncType).StructType", ptr %2014, align 8 + %2015 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %2010, align 8 + %2016 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %2017 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2016, i32 0, i32 0 + store ptr @51, ptr %2017, align 8 + %2018 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2016, i32 0, i32 1 + store i64 8, ptr %2018, align 4 + %2019 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %2016, align 8 + %2020 = load ptr, ptr @"_llgo_func$DbD4nZv_bjE4tH8hh-VfAjMXMpNfIsMlLJJJPKupp34", align 8 + %2021 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %2022 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2021, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %2019, ptr %2022, align 8 + %2023 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2021, i32 0, i32 1 + store ptr %2020, ptr %2023, align 8 + %2024 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2021, i32 0, i32 2 + store ptr @"github.com/goplus/llgo/internal/abi.(*FuncType).Uncommon", ptr %2024, align 8 + %2025 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2021, i32 0, i32 3 + store ptr @"github.com/goplus/llgo/internal/abi.(*FuncType).Uncommon", ptr %2025, align 8 + %2026 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %2021, align 8 + %2027 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %2028 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2027, i32 0, i32 0 + store ptr @57, ptr %2028, align 8 + %2029 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2027, i32 0, i32 1 + store i64 8, ptr %2029, align 4 + %2030 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %2027, align 8 + %2031 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 + %2032 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %2033 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2032, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %2030, ptr %2033, align 8 + %2034 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2032, i32 0, i32 1 + store ptr %2031, ptr %2034, align 8 + %2035 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2032, i32 0, i32 2 + store ptr @"github.com/goplus/llgo/internal/abi.(*FuncType).Variadic", ptr %2035, align 8 + %2036 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2032, i32 0, i32 3 + store ptr @"github.com/goplus/llgo/internal/abi.(*FuncType).Variadic", ptr %2036, align 8 + %2037 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %2032, align 8 + %2038 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 760) + %2039 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2038, i64 0 + store %"github.com/goplus/llgo/internal/abi.Method" %493, ptr %2039, align 8 + %2040 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2038, i64 1 + store %"github.com/goplus/llgo/internal/abi.Method" %504, ptr %2040, align 8 + %2041 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2038, i64 2 + store %"github.com/goplus/llgo/internal/abi.Method" %515, ptr %2041, align 8 + %2042 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2038, i64 3 + store %"github.com/goplus/llgo/internal/abi.Method" %526, ptr %2042, align 8 + %2043 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2038, i64 4 + store %"github.com/goplus/llgo/internal/abi.Method" %537, ptr %2043, align 8 + %2044 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2038, i64 5 + store %"github.com/goplus/llgo/internal/abi.Method" %548, ptr %2044, align 8 + %2045 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2038, i64 6 + store %"github.com/goplus/llgo/internal/abi.Method" %578, ptr %2045, align 8 + %2046 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2038, i64 7 + store %"github.com/goplus/llgo/internal/abi.Method" %589, ptr %2046, align 8 + %2047 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2038, i64 8 + store %"github.com/goplus/llgo/internal/abi.Method" %1927, ptr %2047, align 8 + %2048 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2038, i64 9 + store %"github.com/goplus/llgo/internal/abi.Method" %1938, ptr %2048, align 8 + %2049 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2038, i64 10 + store %"github.com/goplus/llgo/internal/abi.Method" %1949, ptr %2049, align 8 + %2050 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2038, i64 11 + store %"github.com/goplus/llgo/internal/abi.Method" %1960, ptr %2050, align 8 + %2051 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2038, i64 12 + store %"github.com/goplus/llgo/internal/abi.Method" %1971, ptr %2051, align 8 + %2052 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2038, i64 13 + store %"github.com/goplus/llgo/internal/abi.Method" %1982, ptr %2052, align 8 + %2053 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2038, i64 14 + store %"github.com/goplus/llgo/internal/abi.Method" %1993, ptr %2053, align 8 + %2054 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2038, i64 15 + store %"github.com/goplus/llgo/internal/abi.Method" %2004, ptr %2054, align 8 + %2055 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2038, i64 16 + store %"github.com/goplus/llgo/internal/abi.Method" %2015, ptr %2055, align 8 + %2056 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2038, i64 17 + store %"github.com/goplus/llgo/internal/abi.Method" %2026, ptr %2056, align 8 + %2057 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2038, i64 18 + store %"github.com/goplus/llgo/internal/abi.Method" %2037, ptr %2057, align 8 + %2058 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %2059 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %2058, i32 0, i32 0 + store ptr %2038, ptr %2059, align 8 + %2060 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %2058, i32 0, i32 1 + store i64 19, ptr %2060, align 4 + %2061 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %2058, i32 0, i32 2 + store i64 19, ptr %2061, align 4 + %2062 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %2058, align 8 + %2063 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %2064 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2063, i32 0, i32 0 + store ptr @0, ptr %2064, align 8 + %2065 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2063, i32 0, i32 1 + store i64 35, ptr %2065, align 4 + %2066 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %2063, align 8 + %2067 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %2068 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2067, i32 0, i32 0 + store ptr @23, ptr %2068, align 8 + %2069 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2067, i32 0, i32 1 + store i64 8, ptr %2069, align 4 + %2070 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %2067, align 8 + call void @"github.com/goplus/llgo/internal/runtime.InitNamed"(ptr %431, %"github.com/goplus/llgo/internal/runtime.String" %2066, %"github.com/goplus/llgo/internal/runtime.String" %2070, ptr %482, { ptr, i64, i64 } zeroinitializer, %"github.com/goplus/llgo/internal/runtime.Slice" %2062) + br label %_llgo_54 + +_llgo_121: ; preds = %_llgo_54 + %2071 = call ptr @"github.com/goplus/llgo/internal/runtime.PointerTo"(ptr %431) + store ptr %2071, ptr @"*_llgo_github.com/goplus/llgo/internal/abi.FuncType", align 8 + br label %_llgo_122 + +_llgo_122: ; preds = %_llgo_121, %_llgo_54 + %2072 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/internal/abi.FuncType", align 8 + %2073 = load ptr, ptr @"_llgo_func$DsoxgOnxqV7tLvokF3AA14v1gtHsHaThoC8Q_XGcQww", align 8 + %2074 = icmp eq ptr %2073, null + br i1 %2074, label %_llgo_123, label %_llgo_124 + +_llgo_123: ; preds = %_llgo_122 + %2075 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 0) + %2076 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %2077 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %2076, i32 0, i32 0 + store ptr %2075, ptr %2077, align 8 + %2078 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %2076, i32 0, i32 1 + store i64 0, ptr %2078, align 4 + %2079 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %2076, i32 0, i32 2 + store i64 0, ptr %2079, align 4 + %2080 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %2076, align 8 + %2081 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 8) + %2082 = getelementptr ptr, ptr %2081, i64 0 + store ptr %2072, ptr %2082, align 8 + %2083 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %2084 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %2083, i32 0, i32 0 + store ptr %2081, ptr %2084, align 8 + %2085 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %2083, i32 0, i32 1 + store i64 1, ptr %2085, align 4 + %2086 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %2083, i32 0, i32 2 + store i64 1, ptr %2086, align 4 + %2087 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %2083, align 8 + %2088 = call ptr @"github.com/goplus/llgo/internal/runtime.Func"(%"github.com/goplus/llgo/internal/runtime.Slice" %2080, %"github.com/goplus/llgo/internal/runtime.Slice" %2087, i1 false) + store ptr %2088, ptr @"_llgo_func$DsoxgOnxqV7tLvokF3AA14v1gtHsHaThoC8Q_XGcQww", align 8 + br label %_llgo_124 + +_llgo_124: ; preds = %_llgo_123, %_llgo_122 + %2089 = load ptr, ptr @"_llgo_func$DsoxgOnxqV7tLvokF3AA14v1gtHsHaThoC8Q_XGcQww", align 8 + %2090 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %2091 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2090, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %428, ptr %2091, align 8 + %2092 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2090, i32 0, i32 1 + store ptr %2089, ptr %2092, align 8 + %2093 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2090, i32 0, i32 2 + store ptr @"github.com/goplus/llgo/internal/abi.(*ArrayType).FuncType", ptr %2093, align 8 + %2094 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2090, i32 0, i32 3 + store ptr @"github.com/goplus/llgo/internal/abi.(*ArrayType).FuncType", ptr %2094, align 8 + %2095 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %2090, align 8 + %2096 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %2097 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2096, i32 0, i32 0 + store ptr @26, ptr %2097, align 8 + %2098 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2096, i32 0, i32 1 + store i64 7, ptr %2098, align 4 + %2099 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %2096, align 8 + %2100 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 + %2101 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %2102 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2101, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %2099, ptr %2102, align 8 + %2103 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2101, i32 0, i32 1 + store ptr %2100, ptr %2103, align 8 + %2104 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2101, i32 0, i32 2 + store ptr @"github.com/goplus/llgo/internal/abi.(*ArrayType).HasName", ptr %2104, align 8 + %2105 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2101, i32 0, i32 3 + store ptr @"github.com/goplus/llgo/internal/abi.(*ArrayType).HasName", ptr %2105, align 8 + %2106 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %2101, align 8 + %2107 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %2108 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2107, i32 0, i32 0 + store ptr @27, ptr %2108, align 8 + %2109 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2107, i32 0, i32 1 + store i64 10, ptr %2109, align 4 + %2110 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %2107, align 8 + %2111 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 + %2112 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %2113 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2112, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %2110, ptr %2113, align 8 + %2114 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2112, i32 0, i32 1 + store ptr %2111, ptr %2114, align 8 + %2115 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2112, i32 0, i32 2 + store ptr @"github.com/goplus/llgo/internal/abi.(*ArrayType).IfaceIndir", ptr %2115, align 8 + %2116 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2112, i32 0, i32 3 + store ptr @"github.com/goplus/llgo/internal/abi.(*ArrayType).IfaceIndir", ptr %2116, align 8 + %2117 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %2112, align 8 + %2118 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %2119 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2118, i32 0, i32 0 + store ptr @28, ptr %2119, align 8 + %2120 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2118, i32 0, i32 1 + store i64 13, ptr %2120, align 4 + %2121 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %2118, align 8 + %2122 = load ptr, ptr @"_llgo_func$1QmforOaCy2fBAssC2y1FWCCT6fpq9RKwP2j2HIASY8", align 8 + %2123 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %2124 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2123, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %2121, ptr %2124, align 8 + %2125 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2123, i32 0, i32 1 + store ptr %2122, ptr %2125, align 8 + %2126 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2123, i32 0, i32 2 + store ptr @"github.com/goplus/llgo/internal/abi.(*ArrayType).InterfaceType", ptr %2126, align 8 + %2127 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2123, i32 0, i32 3 + store ptr @"github.com/goplus/llgo/internal/abi.(*ArrayType).InterfaceType", ptr %2127, align 8 + %2128 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %2123, align 8 + %2129 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %2130 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2129, i32 0, i32 0 + store ptr @31, ptr %2130, align 8 + %2131 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2129, i32 0, i32 1 + store i64 13, ptr %2131, align 4 + %2132 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %2129, align 8 + %2133 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 + %2134 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %2135 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2134, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %2132, ptr %2135, align 8 + %2136 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2134, i32 0, i32 1 + store ptr %2133, ptr %2136, align 8 + %2137 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2134, i32 0, i32 2 + store ptr @"github.com/goplus/llgo/internal/abi.(*ArrayType).IsDirectIface", ptr %2137, align 8 + %2138 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2134, i32 0, i32 3 + store ptr @"github.com/goplus/llgo/internal/abi.(*ArrayType).IsDirectIface", ptr %2138, align 8 + %2139 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %2134, align 8 + %2140 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %2141 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2140, i32 0, i32 0 + store ptr @32, ptr %2141, align 8 + %2142 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2140, i32 0, i32 1 + store i64 4, ptr %2142, align 4 + %2143 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %2140, align 8 + %2144 = load ptr, ptr @"_llgo_func$ntUE0UmVAWPS2O7GpCCGszSn-XnjHJntZZ2jYtwbFXI", align 8 + %2145 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %2146 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2145, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %2143, ptr %2146, align 8 + %2147 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2145, i32 0, i32 1 + store ptr %2144, ptr %2147, align 8 + %2148 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2145, i32 0, i32 2 + store ptr @"github.com/goplus/llgo/internal/abi.(*ArrayType).Kind", ptr %2148, align 8 + %2149 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2145, i32 0, i32 3 + store ptr @"github.com/goplus/llgo/internal/abi.(*ArrayType).Kind", ptr %2149, align 8 + %2150 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %2145, align 8 + %2151 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %2152 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2151, i32 0, i32 0 + store ptr @34, ptr %2152, align 8 + %2153 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2151, i32 0, i32 1 + store i64 7, ptr %2153, align 4 + %2154 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %2151, align 8 + %2155 = load ptr, ptr @"_llgo_func$d-NlqnjcQnaMjsBQY7qh2SWQmHb0XIigoceXdiJ8YT4", align 8 + %2156 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %2157 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2156, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %2154, ptr %2157, align 8 + %2158 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2156, i32 0, i32 1 + store ptr %2155, ptr %2158, align 8 + %2159 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2156, i32 0, i32 2 + store ptr @"github.com/goplus/llgo/internal/abi.(*ArrayType).MapType", ptr %2159, align 8 + %2160 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2156, i32 0, i32 3 + store ptr @"github.com/goplus/llgo/internal/abi.(*ArrayType).MapType", ptr %2160, align 8 + %2161 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %2156, align 8 + %2162 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %2163 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2162, i32 0, i32 0 + store ptr @46, ptr %2163, align 8 + %2164 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2162, i32 0, i32 1 + store i64 8, ptr %2164, align 4 + %2165 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %2162, align 8 + %2166 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 + %2167 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %2168 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2167, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %2165, ptr %2168, align 8 + %2169 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2167, i32 0, i32 1 + store ptr %2166, ptr %2169, align 8 + %2170 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2167, i32 0, i32 2 + store ptr @"github.com/goplus/llgo/internal/abi.(*ArrayType).Pointers", ptr %2170, align 8 + %2171 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2167, i32 0, i32 3 + store ptr @"github.com/goplus/llgo/internal/abi.(*ArrayType).Pointers", ptr %2171, align 8 + %2172 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %2167, align 8 + %2173 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %2174 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2173, i32 0, i32 0 + store ptr @48, ptr %2174, align 8 + %2175 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2173, i32 0, i32 1 + store i64 4, ptr %2175, align 4 + %2176 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %2173, align 8 + %2177 = load ptr, ptr @"_llgo_func$1kITCsyu7hFLMxHLR7kDlvu4SOra_HtrtdFUQH9P13s", align 8 + %2178 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %2179 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2178, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %2176, ptr %2179, align 8 + %2180 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2178, i32 0, i32 1 + store ptr %2177, ptr %2180, align 8 + %2181 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2178, i32 0, i32 2 + store ptr @"github.com/goplus/llgo/internal/abi.(*ArrayType).Size", ptr %2181, align 8 + %2182 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2178, i32 0, i32 3 + store ptr @"github.com/goplus/llgo/internal/abi.(*ArrayType).Size", ptr %2182, align 8 + %2183 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %2178, align 8 + %2184 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %2185 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2184, i32 0, i32 0 + store ptr @33, ptr %2185, align 8 + %2186 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2184, i32 0, i32 1 + store i64 6, ptr %2186, align 4 + %2187 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %2184, align 8 + %2188 = load ptr, ptr @"_llgo_func$zNDVRsWTIpUPKouNUS805RGX--IV9qVK8B31IZbg5to", align 8 + %2189 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %2190 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2189, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %2187, ptr %2190, align 8 + %2191 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2189, i32 0, i32 1 + store ptr %2188, ptr %2191, align 8 + %2192 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2189, i32 0, i32 2 + store ptr @"github.com/goplus/llgo/internal/abi.(*ArrayType).String", ptr %2192, align 8 + %2193 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2189, i32 0, i32 3 + store ptr @"github.com/goplus/llgo/internal/abi.(*ArrayType).String", ptr %2193, align 8 + %2194 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %2189, align 8 + %2195 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %2196 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2195, i32 0, i32 0 + store ptr @49, ptr %2196, align 8 + %2197 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2195, i32 0, i32 1 + store i64 10, ptr %2197, align 4 + %2198 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %2195, align 8 + %2199 = load ptr, ptr @"_llgo_func$qiNnn6Cbm3GtDp4gDI4U_DRV3h8zlz91s9jrfOXC--U", align 8 + %2200 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %2201 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2200, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %2198, ptr %2201, align 8 + %2202 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2200, i32 0, i32 1 + store ptr %2199, ptr %2202, align 8 + %2203 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2200, i32 0, i32 2 + store ptr @"github.com/goplus/llgo/internal/abi.(*ArrayType).StructType", ptr %2203, align 8 + %2204 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2200, i32 0, i32 3 + store ptr @"github.com/goplus/llgo/internal/abi.(*ArrayType).StructType", ptr %2204, align 8 + %2205 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %2200, align 8 + %2206 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %2207 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2206, i32 0, i32 0 + store ptr @51, ptr %2207, align 8 + %2208 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2206, i32 0, i32 1 + store i64 8, ptr %2208, align 4 + %2209 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %2206, align 8 + %2210 = load ptr, ptr @"_llgo_func$DbD4nZv_bjE4tH8hh-VfAjMXMpNfIsMlLJJJPKupp34", align 8 + %2211 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %2212 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2211, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %2209, ptr %2212, align 8 + %2213 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2211, i32 0, i32 1 + store ptr %2210, ptr %2213, align 8 + %2214 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2211, i32 0, i32 2 + store ptr @"github.com/goplus/llgo/internal/abi.(*ArrayType).Uncommon", ptr %2214, align 8 + %2215 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2211, i32 0, i32 3 + store ptr @"github.com/goplus/llgo/internal/abi.(*ArrayType).Uncommon", ptr %2215, align 8 + %2216 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %2211, align 8 + %2217 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 640) + %2218 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2217, i64 0 + store %"github.com/goplus/llgo/internal/abi.Method" %372, ptr %2218, align 8 + %2219 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2217, i64 1 + store %"github.com/goplus/llgo/internal/abi.Method" %383, ptr %2219, align 8 + %2220 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2217, i64 2 + store %"github.com/goplus/llgo/internal/abi.Method" %413, ptr %2220, align 8 + %2221 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2217, i64 3 + store %"github.com/goplus/llgo/internal/abi.Method" %424, ptr %2221, align 8 + %2222 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2217, i64 4 + store %"github.com/goplus/llgo/internal/abi.Method" %2095, ptr %2222, align 8 + %2223 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2217, i64 5 + store %"github.com/goplus/llgo/internal/abi.Method" %2106, ptr %2223, align 8 + %2224 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2217, i64 6 + store %"github.com/goplus/llgo/internal/abi.Method" %2117, ptr %2224, align 8 + %2225 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2217, i64 7 + store %"github.com/goplus/llgo/internal/abi.Method" %2128, ptr %2225, align 8 + %2226 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2217, i64 8 + store %"github.com/goplus/llgo/internal/abi.Method" %2139, ptr %2226, align 8 + %2227 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2217, i64 9 + store %"github.com/goplus/llgo/internal/abi.Method" %2150, ptr %2227, align 8 + %2228 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2217, i64 10 + store %"github.com/goplus/llgo/internal/abi.Method" %2161, ptr %2228, align 8 + %2229 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2217, i64 11 + store %"github.com/goplus/llgo/internal/abi.Method" %2172, ptr %2229, align 8 + %2230 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2217, i64 12 + store %"github.com/goplus/llgo/internal/abi.Method" %2183, ptr %2230, align 8 + %2231 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2217, i64 13 + store %"github.com/goplus/llgo/internal/abi.Method" %2194, ptr %2231, align 8 + %2232 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2217, i64 14 + store %"github.com/goplus/llgo/internal/abi.Method" %2205, ptr %2232, align 8 + %2233 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2217, i64 15 + store %"github.com/goplus/llgo/internal/abi.Method" %2216, ptr %2233, align 8 + %2234 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %2235 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %2234, i32 0, i32 0 + store ptr %2217, ptr %2235, align 8 + %2236 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %2234, i32 0, i32 1 + store i64 16, ptr %2236, align 4 + %2237 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %2234, i32 0, i32 2 + store i64 16, ptr %2237, align 4 + %2238 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %2234, align 8 + %2239 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %2240 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2239, i32 0, i32 0 + store ptr @0, ptr %2240, align 8 + %2241 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2239, i32 0, i32 1 + store i64 35, ptr %2241, align 4 + %2242 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %2239, align 8 + %2243 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %2244 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2243, i32 0, i32 0 + store ptr @16, ptr %2244, align 8 + %2245 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2243, i32 0, i32 1 + store i64 9, ptr %2245, align 4 + %2246 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %2243, align 8 + call void @"github.com/goplus/llgo/internal/runtime.InitNamed"(ptr %303, %"github.com/goplus/llgo/internal/runtime.String" %2242, %"github.com/goplus/llgo/internal/runtime.String" %2246, ptr %361, { ptr, i64, i64 } zeroinitializer, %"github.com/goplus/llgo/internal/runtime.Slice" %2238) + br label %_llgo_44 + +_llgo_125: ; preds = %_llgo_44 + %2247 = call ptr @"github.com/goplus/llgo/internal/runtime.PointerTo"(ptr %303) + store ptr %2247, ptr @"*_llgo_github.com/goplus/llgo/internal/abi.ArrayType", align 8 + br label %_llgo_126 + +_llgo_126: ; preds = %_llgo_125, %_llgo_44 + %2248 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/internal/abi.ArrayType", align 8 + %2249 = load ptr, ptr @"_llgo_func$CsVqlCxhoEcIvPD5BSBukfSiD9C7Ic5_Gf32MLbCWB4", align 8 + %2250 = icmp eq ptr %2249, null + br i1 %2250, label %_llgo_127, label %_llgo_128 + +_llgo_127: ; preds = %_llgo_126 + %2251 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 0) + %2252 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %2253 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %2252, i32 0, i32 0 + store ptr %2251, ptr %2253, align 8 + %2254 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %2252, i32 0, i32 1 + store i64 0, ptr %2254, align 4 + %2255 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %2252, i32 0, i32 2 + store i64 0, ptr %2255, align 4 + %2256 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %2252, align 8 + %2257 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 8) + %2258 = getelementptr ptr, ptr %2257, i64 0 + store ptr %2248, ptr %2258, align 8 + %2259 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %2260 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %2259, i32 0, i32 0 + store ptr %2257, ptr %2260, align 8 + %2261 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %2259, i32 0, i32 1 + store i64 1, ptr %2261, align 4 + %2262 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %2259, i32 0, i32 2 + store i64 1, ptr %2262, align 4 + %2263 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %2259, align 8 + %2264 = call ptr @"github.com/goplus/llgo/internal/runtime.Func"(%"github.com/goplus/llgo/internal/runtime.Slice" %2256, %"github.com/goplus/llgo/internal/runtime.Slice" %2263, i1 false) + store ptr %2264, ptr @"_llgo_func$CsVqlCxhoEcIvPD5BSBukfSiD9C7Ic5_Gf32MLbCWB4", align 8 + br label %_llgo_128 + +_llgo_128: ; preds = %_llgo_127, %_llgo_126 + %2265 = load ptr, ptr @"_llgo_func$CsVqlCxhoEcIvPD5BSBukfSiD9C7Ic5_Gf32MLbCWB4", align 8 + %2266 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %2267 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2266, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %300, ptr %2267, align 8 + %2268 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2266, i32 0, i32 1 + store ptr %2265, ptr %2268, align 8 + %2269 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2266, i32 0, i32 2 + store ptr @"github.com/goplus/llgo/internal/abi.(*Type).ArrayType", ptr %2269, align 8 + %2270 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2266, i32 0, i32 3 + store ptr @"github.com/goplus/llgo/internal/abi.(*Type).ArrayType", ptr %2270, align 8 + %2271 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %2266, align 8 + %2272 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %2273 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2272, i32 0, i32 0 + store ptr @21, ptr %2273, align 8 + %2274 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2272, i32 0, i32 1 + store i64 6, ptr %2274, align 4 + %2275 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %2272, align 8 + %2276 = load ptr, ptr @"_llgo_func$4-mqItKfDlL0CgVKnUxoresYgh6zW1WSlZYZSsVzLRo", align 8 + %2277 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %2278 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2277, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %2275, ptr %2278, align 8 + %2279 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2277, i32 0, i32 1 + store ptr %2276, ptr %2279, align 8 + %2280 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2277, i32 0, i32 2 + store ptr @"github.com/goplus/llgo/internal/abi.(*Type).Common", ptr %2280, align 8 + %2281 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2277, i32 0, i32 3 + store ptr @"github.com/goplus/llgo/internal/abi.(*Type).Common", ptr %2281, align 8 + %2282 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %2277, align 8 + %2283 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %2284 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2283, i32 0, i32 0 + store ptr @18, ptr %2284, align 8 + %2285 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2283, i32 0, i32 1 + store i64 4, ptr %2285, align 4 + %2286 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %2283, align 8 + %2287 = load ptr, ptr @"_llgo_func$4-mqItKfDlL0CgVKnUxoresYgh6zW1WSlZYZSsVzLRo", align 8 + %2288 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %2289 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2288, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %2286, ptr %2289, align 8 + %2290 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2288, i32 0, i32 1 + store ptr %2287, ptr %2290, align 8 + %2291 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2288, i32 0, i32 2 + store ptr @"github.com/goplus/llgo/internal/abi.(*Type).Elem", ptr %2291, align 8 + %2292 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2288, i32 0, i32 3 + store ptr @"github.com/goplus/llgo/internal/abi.(*Type).Elem", ptr %2292, align 8 + %2293 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %2288, align 8 + %2294 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %2295 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2294, i32 0, i32 0 + store ptr @22, ptr %2295, align 8 + %2296 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2294, i32 0, i32 1 + store i64 10, ptr %2296, align 4 + %2297 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %2294, align 8 + %2298 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 + %2299 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %2300 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2299, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %2297, ptr %2300, align 8 + %2301 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2299, i32 0, i32 1 + store ptr %2298, ptr %2301, align 8 + %2302 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2299, i32 0, i32 2 + store ptr @"github.com/goplus/llgo/internal/abi.(*Type).FieldAlign", ptr %2302, align 8 + %2303 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2299, i32 0, i32 3 + store ptr @"github.com/goplus/llgo/internal/abi.(*Type).FieldAlign", ptr %2303, align 8 + %2304 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %2299, align 8 + %2305 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %2306 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2305, i32 0, i32 0 + store ptr @23, ptr %2306, align 8 + %2307 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2305, i32 0, i32 1 + store i64 8, ptr %2307, align 4 + %2308 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %2305, align 8 + %2309 = load ptr, ptr @"_llgo_func$DsoxgOnxqV7tLvokF3AA14v1gtHsHaThoC8Q_XGcQww", align 8 + %2310 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %2311 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2310, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %2308, ptr %2311, align 8 + %2312 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2310, i32 0, i32 1 + store ptr %2309, ptr %2312, align 8 + %2313 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2310, i32 0, i32 2 + store ptr @"github.com/goplus/llgo/internal/abi.(*Type).FuncType", ptr %2313, align 8 + %2314 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2310, i32 0, i32 3 + store ptr @"github.com/goplus/llgo/internal/abi.(*Type).FuncType", ptr %2314, align 8 + %2315 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %2310, align 8 + %2316 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %2317 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2316, i32 0, i32 0 + store ptr @26, ptr %2317, align 8 + %2318 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2316, i32 0, i32 1 + store i64 7, ptr %2318, align 4 + %2319 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %2316, align 8 + %2320 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 + %2321 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %2322 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2321, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %2319, ptr %2322, align 8 + %2323 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2321, i32 0, i32 1 + store ptr %2320, ptr %2323, align 8 + %2324 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2321, i32 0, i32 2 + store ptr @"github.com/goplus/llgo/internal/abi.(*Type).HasName", ptr %2324, align 8 + %2325 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2321, i32 0, i32 3 + store ptr @"github.com/goplus/llgo/internal/abi.(*Type).HasName", ptr %2325, align 8 + %2326 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %2321, align 8 + %2327 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %2328 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2327, i32 0, i32 0 + store ptr @27, ptr %2328, align 8 + %2329 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2327, i32 0, i32 1 + store i64 10, ptr %2329, align 4 + %2330 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %2327, align 8 + %2331 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 + %2332 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %2333 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2332, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %2330, ptr %2333, align 8 + %2334 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2332, i32 0, i32 1 + store ptr %2331, ptr %2334, align 8 + %2335 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2332, i32 0, i32 2 + store ptr @"github.com/goplus/llgo/internal/abi.(*Type).IfaceIndir", ptr %2335, align 8 + %2336 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2332, i32 0, i32 3 + store ptr @"github.com/goplus/llgo/internal/abi.(*Type).IfaceIndir", ptr %2336, align 8 + %2337 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %2332, align 8 + %2338 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %2339 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2338, i32 0, i32 0 + store ptr @28, ptr %2339, align 8 + %2340 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2338, i32 0, i32 1 + store i64 13, ptr %2340, align 4 + %2341 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %2338, align 8 + %2342 = load ptr, ptr @"_llgo_func$1QmforOaCy2fBAssC2y1FWCCT6fpq9RKwP2j2HIASY8", align 8 + %2343 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %2344 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2343, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %2341, ptr %2344, align 8 + %2345 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2343, i32 0, i32 1 + store ptr %2342, ptr %2345, align 8 + %2346 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2343, i32 0, i32 2 + store ptr @"github.com/goplus/llgo/internal/abi.(*Type).InterfaceType", ptr %2346, align 8 + %2347 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2343, i32 0, i32 3 + store ptr @"github.com/goplus/llgo/internal/abi.(*Type).InterfaceType", ptr %2347, align 8 + %2348 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %2343, align 8 + %2349 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %2350 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2349, i32 0, i32 0 + store ptr @31, ptr %2350, align 8 + %2351 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2349, i32 0, i32 1 + store i64 13, ptr %2351, align 4 + %2352 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %2349, align 8 + %2353 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 + %2354 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %2355 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2354, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %2352, ptr %2355, align 8 + %2356 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2354, i32 0, i32 1 + store ptr %2353, ptr %2356, align 8 + %2357 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2354, i32 0, i32 2 + store ptr @"github.com/goplus/llgo/internal/abi.(*Type).IsDirectIface", ptr %2357, align 8 + %2358 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2354, i32 0, i32 3 + store ptr @"github.com/goplus/llgo/internal/abi.(*Type).IsDirectIface", ptr %2358, align 8 + %2359 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %2354, align 8 + %2360 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %2361 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2360, i32 0, i32 0 + store ptr @32, ptr %2361, align 8 + %2362 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2360, i32 0, i32 1 + store i64 4, ptr %2362, align 4 + %2363 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %2360, align 8 + %2364 = load ptr, ptr @"_llgo_func$ntUE0UmVAWPS2O7GpCCGszSn-XnjHJntZZ2jYtwbFXI", align 8 + %2365 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %2366 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2365, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %2363, ptr %2366, align 8 + %2367 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2365, i32 0, i32 1 + store ptr %2364, ptr %2367, align 8 + %2368 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2365, i32 0, i32 2 + store ptr @"github.com/goplus/llgo/internal/abi.(*Type).Kind", ptr %2368, align 8 + %2369 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2365, i32 0, i32 3 + store ptr @"github.com/goplus/llgo/internal/abi.(*Type).Kind", ptr %2369, align 8 + %2370 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %2365, align 8 + %2371 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %2372 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2371, i32 0, i32 0 + store ptr @20, ptr %2372, align 8 + %2373 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2371, i32 0, i32 1 + store i64 3, ptr %2373, align 4 + %2374 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %2371, align 8 + %2375 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 + %2376 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %2377 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2376, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %2374, ptr %2377, align 8 + %2378 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2376, i32 0, i32 1 + store ptr %2375, ptr %2378, align 8 + %2379 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2376, i32 0, i32 2 + store ptr @"github.com/goplus/llgo/internal/abi.(*Type).Len", ptr %2379, align 8 + %2380 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2376, i32 0, i32 3 + store ptr @"github.com/goplus/llgo/internal/abi.(*Type).Len", ptr %2380, align 8 + %2381 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %2376, align 8 + %2382 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %2383 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2382, i32 0, i32 0 + store ptr @34, ptr %2383, align 8 + %2384 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2382, i32 0, i32 1 + store i64 7, ptr %2384, align 4 + %2385 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %2382, align 8 + %2386 = load ptr, ptr @"_llgo_func$d-NlqnjcQnaMjsBQY7qh2SWQmHb0XIigoceXdiJ8YT4", align 8 + %2387 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %2388 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2387, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %2385, ptr %2388, align 8 + %2389 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2387, i32 0, i32 1 + store ptr %2386, ptr %2389, align 8 + %2390 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2387, i32 0, i32 2 + store ptr @"github.com/goplus/llgo/internal/abi.(*Type).MapType", ptr %2390, align 8 + %2391 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2387, i32 0, i32 3 + store ptr @"github.com/goplus/llgo/internal/abi.(*Type).MapType", ptr %2391, align 8 + %2392 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %2387, align 8 + %2393 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %2394 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2393, i32 0, i32 0 + store ptr @46, ptr %2394, align 8 + %2395 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2393, i32 0, i32 1 + store i64 8, ptr %2395, align 4 + %2396 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %2393, align 8 + %2397 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 + %2398 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %2399 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2398, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %2396, ptr %2399, align 8 + %2400 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2398, i32 0, i32 1 + store ptr %2397, ptr %2400, align 8 + %2401 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2398, i32 0, i32 2 + store ptr @"github.com/goplus/llgo/internal/abi.(*Type).Pointers", ptr %2401, align 8 + %2402 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2398, i32 0, i32 3 + store ptr @"github.com/goplus/llgo/internal/abi.(*Type).Pointers", ptr %2402, align 8 + %2403 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %2398, align 8 + %2404 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %2405 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2404, i32 0, i32 0 + store ptr @48, ptr %2405, align 8 + %2406 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2404, i32 0, i32 1 + store i64 4, ptr %2406, align 4 + %2407 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %2404, align 8 + %2408 = load ptr, ptr @"_llgo_func$1kITCsyu7hFLMxHLR7kDlvu4SOra_HtrtdFUQH9P13s", align 8 + %2409 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %2410 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2409, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %2407, ptr %2410, align 8 + %2411 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2409, i32 0, i32 1 + store ptr %2408, ptr %2411, align 8 + %2412 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2409, i32 0, i32 2 + store ptr @"github.com/goplus/llgo/internal/abi.(*Type).Size", ptr %2412, align 8 + %2413 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2409, i32 0, i32 3 + store ptr @"github.com/goplus/llgo/internal/abi.(*Type).Size", ptr %2413, align 8 + %2414 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %2409, align 8 + %2415 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %2416 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2415, i32 0, i32 0 + store ptr @33, ptr %2416, align 8 + %2417 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2415, i32 0, i32 1 + store i64 6, ptr %2417, align 4 + %2418 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %2415, align 8 + %2419 = load ptr, ptr @"_llgo_func$zNDVRsWTIpUPKouNUS805RGX--IV9qVK8B31IZbg5to", align 8 + %2420 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %2421 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2420, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %2418, ptr %2421, align 8 + %2422 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2420, i32 0, i32 1 + store ptr %2419, ptr %2422, align 8 + %2423 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2420, i32 0, i32 2 + store ptr @"github.com/goplus/llgo/internal/abi.(*Type).String", ptr %2423, align 8 + %2424 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2420, i32 0, i32 3 + store ptr @"github.com/goplus/llgo/internal/abi.(*Type).String", ptr %2424, align 8 + %2425 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %2420, align 8 + %2426 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %2427 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2426, i32 0, i32 0 + store ptr @49, ptr %2427, align 8 + %2428 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2426, i32 0, i32 1 + store i64 10, ptr %2428, align 4 + %2429 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %2426, align 8 + %2430 = load ptr, ptr @"_llgo_func$qiNnn6Cbm3GtDp4gDI4U_DRV3h8zlz91s9jrfOXC--U", align 8 + %2431 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %2432 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2431, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %2429, ptr %2432, align 8 + %2433 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2431, i32 0, i32 1 + store ptr %2430, ptr %2433, align 8 + %2434 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2431, i32 0, i32 2 + store ptr @"github.com/goplus/llgo/internal/abi.(*Type).StructType", ptr %2434, align 8 + %2435 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2431, i32 0, i32 3 + store ptr @"github.com/goplus/llgo/internal/abi.(*Type).StructType", ptr %2435, align 8 + %2436 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %2431, align 8 + %2437 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %2438 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2437, i32 0, i32 0 + store ptr @51, ptr %2438, align 8 + %2439 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2437, i32 0, i32 1 + store i64 8, ptr %2439, align 4 + %2440 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %2437, align 8 + %2441 = load ptr, ptr @"_llgo_func$DbD4nZv_bjE4tH8hh-VfAjMXMpNfIsMlLJJJPKupp34", align 8 + %2442 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %2443 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2442, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %2440, ptr %2443, align 8 + %2444 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2442, i32 0, i32 1 + store ptr %2441, ptr %2444, align 8 + %2445 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2442, i32 0, i32 2 + store ptr @"github.com/goplus/llgo/internal/abi.(*Type).Uncommon", ptr %2445, align 8 + %2446 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2442, i32 0, i32 3 + store ptr @"github.com/goplus/llgo/internal/abi.(*Type).Uncommon", ptr %2446, align 8 + %2447 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %2442, align 8 + %2448 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 720) + %2449 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2448, i64 0 + store %"github.com/goplus/llgo/internal/abi.Method" %296, ptr %2449, align 8 + %2450 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2448, i64 1 + store %"github.com/goplus/llgo/internal/abi.Method" %2271, ptr %2450, align 8 + %2451 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2448, i64 2 + store %"github.com/goplus/llgo/internal/abi.Method" %2282, ptr %2451, align 8 + %2452 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2448, i64 3 + store %"github.com/goplus/llgo/internal/abi.Method" %2293, ptr %2452, align 8 + %2453 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2448, i64 4 + store %"github.com/goplus/llgo/internal/abi.Method" %2304, ptr %2453, align 8 + %2454 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2448, i64 5 + store %"github.com/goplus/llgo/internal/abi.Method" %2315, ptr %2454, align 8 + %2455 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2448, i64 6 + store %"github.com/goplus/llgo/internal/abi.Method" %2326, ptr %2455, align 8 + %2456 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2448, i64 7 + store %"github.com/goplus/llgo/internal/abi.Method" %2337, ptr %2456, align 8 + %2457 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2448, i64 8 + store %"github.com/goplus/llgo/internal/abi.Method" %2348, ptr %2457, align 8 + %2458 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2448, i64 9 + store %"github.com/goplus/llgo/internal/abi.Method" %2359, ptr %2458, align 8 + %2459 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2448, i64 10 + store %"github.com/goplus/llgo/internal/abi.Method" %2370, ptr %2459, align 8 + %2460 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2448, i64 11 + store %"github.com/goplus/llgo/internal/abi.Method" %2381, ptr %2460, align 8 + %2461 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2448, i64 12 + store %"github.com/goplus/llgo/internal/abi.Method" %2392, ptr %2461, align 8 + %2462 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2448, i64 13 + store %"github.com/goplus/llgo/internal/abi.Method" %2403, ptr %2462, align 8 + %2463 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2448, i64 14 + store %"github.com/goplus/llgo/internal/abi.Method" %2414, ptr %2463, align 8 + %2464 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2448, i64 15 + store %"github.com/goplus/llgo/internal/abi.Method" %2425, ptr %2464, align 8 + %2465 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2448, i64 16 + store %"github.com/goplus/llgo/internal/abi.Method" %2436, ptr %2465, align 8 + %2466 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2448, i64 17 + store %"github.com/goplus/llgo/internal/abi.Method" %2447, ptr %2466, align 8 + %2467 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %2468 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %2467, i32 0, i32 0 + store ptr %2448, ptr %2468, align 8 + %2469 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %2467, i32 0, i32 1 + store i64 18, ptr %2469, align 4 + %2470 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %2467, i32 0, i32 2 + store i64 18, ptr %2470, align 4 + %2471 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %2467, align 8 + %2472 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %2473 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2472, i32 0, i32 0 + store ptr @0, ptr %2473, align 8 + %2474 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2472, i32 0, i32 1 + store i64 35, ptr %2474, align 4 + %2475 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %2472, align 8 + %2476 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %2477 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2476, i32 0, i32 0 + store ptr @17, ptr %2477, align 8 + %2478 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2476, i32 0, i32 1 + store i64 4, ptr %2478, align 4 + %2479 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %2476, align 8 + call void @"github.com/goplus/llgo/internal/runtime.InitNamed"(ptr %9, %"github.com/goplus/llgo/internal/runtime.String" %2475, %"github.com/goplus/llgo/internal/runtime.String" %2479, ptr %258, { ptr, i64, i64 } zeroinitializer, %"github.com/goplus/llgo/internal/runtime.Slice" %2471) + br label %_llgo_34 + +_llgo_129: ; preds = %_llgo_34 + %2480 = call ptr @"github.com/goplus/llgo/internal/runtime.SliceOf"(ptr %2) + store ptr %2480, ptr @"[]_llgo_main.T", align 8 + br label %_llgo_130 + +_llgo_130: ; preds = %_llgo_129, %_llgo_34 + %2481 = load ptr, ptr @"[]_llgo_main.T", align 8 + %2482 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %2483 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2482, i32 0, i32 0 + store ptr @58, ptr %2483, align 8 + %2484 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2482, i32 0, i32 1 + store i64 1, ptr %2484, align 4 + %2485 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %2482, align 8 + %2486 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %2487 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2486, i32 0, i32 0 + store ptr null, ptr %2487, align 8 + %2488 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2486, i32 0, i32 1 + store i64 0, ptr %2488, align 4 + %2489 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %2486, align 8 + %2490 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %2485, ptr %6, i64 0, %"github.com/goplus/llgo/internal/runtime.String" %2489, i1 false) + %2491 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %2492 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2491, i32 0, i32 0 + store ptr @59, ptr %2492, align 8 + %2493 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2491, i32 0, i32 1 + store i64 1, ptr %2493, align 4 + %2494 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %2491, align 8 + %2495 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %2496 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2495, i32 0, i32 0 + store ptr null, ptr %2496, align 8 + %2497 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2495, i32 0, i32 1 + store i64 0, ptr %2497, align 4 + %2498 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %2495, align 8 + %2499 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %2494, ptr %265, i64 8, %"github.com/goplus/llgo/internal/runtime.String" %2498, i1 false) + %2500 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %2501 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2500, i32 0, i32 0 + store ptr @60, ptr %2501, align 8 + %2502 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2500, i32 0, i32 1 + store i64 1, ptr %2502, align 4 + %2503 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %2500, align 8 + %2504 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %2505 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2504, i32 0, i32 0 + store ptr null, ptr %2505, align 8 + %2506 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2504, i32 0, i32 1 + store i64 0, ptr %2506, align 4 + %2507 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %2504, align 8 + %2508 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %2503, ptr %266, i64 16, %"github.com/goplus/llgo/internal/runtime.String" %2507, i1 false) + %2509 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %2510 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2509, i32 0, i32 0 + store ptr @61, ptr %2510, align 8 + %2511 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2509, i32 0, i32 1 + store i64 1, ptr %2511, align 4 + %2512 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %2509, align 8 + %2513 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %2514 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2513, i32 0, i32 0 + store ptr null, ptr %2514, align 8 + %2515 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2513, i32 0, i32 1 + store i64 0, ptr %2515, align 4 + %2516 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %2513, align 8 + %2517 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %2512, ptr %2481, i64 24, %"github.com/goplus/llgo/internal/runtime.String" %2516, i1 false) + %2518 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %2519 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2518, i32 0, i32 0 + store ptr @4, ptr %2519, align 8 + %2520 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2518, i32 0, i32 1 + store i64 4, ptr %2520, align 4 + %2521 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %2518, align 8 + %2522 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 224) + %2523 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %2522, i64 0 + store %"github.com/goplus/llgo/internal/abi.StructField" %2490, ptr %2523, align 8 + %2524 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %2522, i64 1 + store %"github.com/goplus/llgo/internal/abi.StructField" %2499, ptr %2524, align 8 + %2525 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %2522, i64 2 + store %"github.com/goplus/llgo/internal/abi.StructField" %2508, ptr %2525, align 8 + %2526 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %2522, i64 3 + store %"github.com/goplus/llgo/internal/abi.StructField" %2517, ptr %2526, align 8 + %2527 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %2528 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %2527, i32 0, i32 0 + store ptr %2522, ptr %2528, align 8 + %2529 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %2527, i32 0, i32 1 + store i64 4, ptr %2529, align 4 + %2530 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %2527, i32 0, i32 2 + store i64 4, ptr %2530, align 4 + %2531 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %2527, align 8 + %2532 = call ptr @"github.com/goplus/llgo/internal/runtime.Struct"(%"github.com/goplus/llgo/internal/runtime.String" %2521, i64 48, %"github.com/goplus/llgo/internal/runtime.Slice" %2531) + store ptr %2532, ptr @"main.struct$FYfyNCnlvkYOztpQWjt-y8D_WY3tpxyt5Qo62CJffTE", align 8 + %2533 = load ptr, ptr @"main.struct$FYfyNCnlvkYOztpQWjt-y8D_WY3tpxyt5Qo62CJffTE", align 8 + br i1 %1, label %_llgo_131, label %_llgo_132 + +_llgo_131: ; preds = %_llgo_130 + %2534 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %2535 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2534, i32 0, i32 0 + store ptr @4, ptr %2535, align 8 + %2536 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2534, i32 0, i32 1 + store i64 4, ptr %2536, align 4 + %2537 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %2534, align 8 + %2538 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %2539 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2538, i32 0, i32 0 + store ptr @62, ptr %2539, align 8 + %2540 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2538, i32 0, i32 1 + store i64 1, ptr %2540, align 4 + %2541 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %2538, align 8 + call void @"github.com/goplus/llgo/internal/runtime.InitNamed"(ptr %2, %"github.com/goplus/llgo/internal/runtime.String" %2537, %"github.com/goplus/llgo/internal/runtime.String" %2541, ptr %2533, { ptr, i64, i64 } zeroinitializer, { ptr, i64, i64 } zeroinitializer) + br label %_llgo_132 + +_llgo_132: ; preds = %_llgo_131, %_llgo_130 + ret void +} + +declare ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(i64, i64, i64) + +declare ptr @"github.com/goplus/llgo/internal/runtime.PointerTo"(ptr) + +declare ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64) + +declare void @"github.com/goplus/llgo/internal/runtime.InitNamed"(ptr, %"github.com/goplus/llgo/internal/runtime.String", %"github.com/goplus/llgo/internal/runtime.String", ptr, %"github.com/goplus/llgo/internal/runtime.Slice", %"github.com/goplus/llgo/internal/runtime.Slice") + +declare ptr @"github.com/goplus/llgo/internal/runtime.Func"(%"github.com/goplus/llgo/internal/runtime.Slice", %"github.com/goplus/llgo/internal/runtime.Slice", i1) + +declare ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64) + +declare ptr @"github.com/goplus/llgo/internal/runtime.Struct"(%"github.com/goplus/llgo/internal/runtime.String", i64, %"github.com/goplus/llgo/internal/runtime.Slice") + +declare %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String", ptr, i64, %"github.com/goplus/llgo/internal/runtime.String", i1) + +declare i64 @"github.com/goplus/llgo/internal/abi.(*Type).Align"(ptr) + +declare i64 @"github.com/goplus/llgo/internal/abi.(*ArrayType).Align"(ptr) + +declare ptr @"github.com/goplus/llgo/internal/abi.(*ArrayType).ArrayType"(ptr) + +declare ptr @"github.com/goplus/llgo/internal/abi.(*ArrayType).Common"(ptr) + +declare i64 @"github.com/goplus/llgo/internal/abi.(*ArrayType).FieldAlign"(ptr) + +declare ptr @"github.com/goplus/llgo/internal/runtime.SliceOf"(ptr) + +declare i64 @"github.com/goplus/llgo/internal/abi.(*FuncType).Align"(ptr) + +declare ptr @"github.com/goplus/llgo/internal/abi.(*FuncType).ArrayType"(ptr) + +declare ptr @"github.com/goplus/llgo/internal/abi.(*FuncType).Common"(ptr) + +declare ptr @"github.com/goplus/llgo/internal/abi.(*FuncType).Elem"(ptr) + +declare i64 @"github.com/goplus/llgo/internal/abi.(*FuncType).FieldAlign"(ptr) + +declare ptr @"github.com/goplus/llgo/internal/abi.(*FuncType).FuncType"(ptr) + +declare i1 @"github.com/goplus/llgo/internal/abi.(*FuncType).HasName"(ptr) + +declare i1 @"github.com/goplus/llgo/internal/abi.(*FuncType).IfaceIndir"(ptr) + +declare i64 @"github.com/goplus/llgo/internal/abi.(*InterfaceType).Align"(ptr) + +declare ptr @"github.com/goplus/llgo/internal/abi.(*InterfaceType).ArrayType"(ptr) + +declare ptr @"github.com/goplus/llgo/internal/abi.(*InterfaceType).Common"(ptr) + +declare ptr @"github.com/goplus/llgo/internal/abi.(*InterfaceType).Elem"(ptr) + +declare i64 @"github.com/goplus/llgo/internal/abi.(*InterfaceType).FieldAlign"(ptr) + +declare ptr @"github.com/goplus/llgo/internal/abi.(*InterfaceType).FuncType"(ptr) + +declare i1 @"github.com/goplus/llgo/internal/abi.(*InterfaceType).HasName"(ptr) + +declare i1 @"github.com/goplus/llgo/internal/abi.(*InterfaceType).IfaceIndir"(ptr) + +declare ptr @"github.com/goplus/llgo/internal/abi.(*InterfaceType).InterfaceType"(ptr) + +declare i1 @"github.com/goplus/llgo/internal/abi.(*InterfaceType).IsDirectIface"(ptr) + +declare %"github.com/goplus/llgo/internal/runtime.String" @"github.com/goplus/llgo/internal/abi.(*Kind).String"(ptr) + +declare %"github.com/goplus/llgo/internal/runtime.String" @"github.com/goplus/llgo/internal/abi.Kind.String"(i64) + +declare i64 @"github.com/goplus/llgo/internal/abi.(*InterfaceType).Kind"(ptr) + +declare i64 @"github.com/goplus/llgo/internal/abi.(*InterfaceType).Len"(ptr) + +declare i64 @"github.com/goplus/llgo/internal/abi.(*MapType).Align"(ptr) + +declare ptr @"github.com/goplus/llgo/internal/abi.(*MapType).ArrayType"(ptr) + +declare ptr @"github.com/goplus/llgo/internal/abi.(*MapType).Common"(ptr) + +declare i64 @"github.com/goplus/llgo/internal/abi.(*MapType).FieldAlign"(ptr) + +declare ptr @"github.com/goplus/llgo/internal/abi.(*MapType).FuncType"(ptr) + +declare i1 @"github.com/goplus/llgo/internal/abi.(*MapType).HasName"(ptr) + +declare i1 @"github.com/goplus/llgo/internal/abi.(*MapType).HashMightPanic"(ptr) + +declare i1 @"github.com/goplus/llgo/internal/abi.(*MapType).IfaceIndir"(ptr) + +declare i1 @"github.com/goplus/llgo/internal/abi.(*MapType).IndirectElem"(ptr) + +declare i1 @"github.com/goplus/llgo/internal/abi.(*MapType).IndirectKey"(ptr) + +declare ptr @"github.com/goplus/llgo/internal/abi.(*MapType).InterfaceType"(ptr) + +declare i1 @"github.com/goplus/llgo/internal/abi.(*MapType).IsDirectIface"(ptr) + +declare i64 @"github.com/goplus/llgo/internal/abi.(*MapType).Kind"(ptr) + +declare i64 @"github.com/goplus/llgo/internal/abi.(*MapType).Len"(ptr) + +declare ptr @"github.com/goplus/llgo/internal/abi.(*MapType).MapType"(ptr) + +declare i1 @"github.com/goplus/llgo/internal/abi.(*MapType).NeedKeyUpdate"(ptr) + +declare i1 @"github.com/goplus/llgo/internal/abi.(*MapType).Pointers"(ptr) + +declare i1 @"github.com/goplus/llgo/internal/abi.(*MapType).ReflexiveKey"(ptr) + +declare i64 @"github.com/goplus/llgo/internal/abi.(*MapType).Size"(ptr) + +declare %"github.com/goplus/llgo/internal/runtime.String" @"github.com/goplus/llgo/internal/abi.(*MapType).String"(ptr) + +declare i64 @"github.com/goplus/llgo/internal/abi.(*StructType).Align"(ptr) + +declare ptr @"github.com/goplus/llgo/internal/abi.(*StructType).ArrayType"(ptr) + +declare ptr @"github.com/goplus/llgo/internal/abi.(*StructType).Common"(ptr) + +declare ptr @"github.com/goplus/llgo/internal/abi.(*StructType).Elem"(ptr) + +declare i64 @"github.com/goplus/llgo/internal/abi.(*StructType).FieldAlign"(ptr) + +declare ptr @"github.com/goplus/llgo/internal/abi.(*StructType).FuncType"(ptr) + +declare i1 @"github.com/goplus/llgo/internal/abi.(*StructType).HasName"(ptr) + +declare i1 @"github.com/goplus/llgo/internal/abi.(*StructType).IfaceIndir"(ptr) + +declare ptr @"github.com/goplus/llgo/internal/abi.(*StructType).InterfaceType"(ptr) + +declare i1 @"github.com/goplus/llgo/internal/abi.(*StructType).IsDirectIface"(ptr) + +declare i64 @"github.com/goplus/llgo/internal/abi.(*StructType).Kind"(ptr) + +declare i64 @"github.com/goplus/llgo/internal/abi.(*StructType).Len"(ptr) + +declare ptr @"github.com/goplus/llgo/internal/abi.(*StructType).MapType"(ptr) + +declare i1 @"github.com/goplus/llgo/internal/abi.(*StructType).Pointers"(ptr) + +declare i64 @"github.com/goplus/llgo/internal/abi.(*StructType).Size"(ptr) + +declare %"github.com/goplus/llgo/internal/runtime.String" @"github.com/goplus/llgo/internal/abi.(*StructType).String"(ptr) + +declare ptr @"github.com/goplus/llgo/internal/abi.(*StructType).StructType"(ptr) + +declare %"github.com/goplus/llgo/internal/runtime.Slice" @"github.com/goplus/llgo/internal/abi.(*UncommonType).ExportedMethods"(ptr) + +declare %"github.com/goplus/llgo/internal/runtime.Slice" @"github.com/goplus/llgo/internal/abi.(*UncommonType).Methods"(ptr) + +declare ptr @"github.com/goplus/llgo/internal/abi.(*StructType).Uncommon"(ptr) + +declare ptr @"github.com/goplus/llgo/internal/abi.(*MapType).StructType"(ptr) + +declare ptr @"github.com/goplus/llgo/internal/abi.(*MapType).Uncommon"(ptr) + +declare ptr @"github.com/goplus/llgo/internal/abi.(*InterfaceType).MapType"(ptr) + +declare i1 @"github.com/goplus/llgo/internal/abi.(*InterfaceType).Pointers"(ptr) + +declare i64 @"github.com/goplus/llgo/internal/abi.(*InterfaceType).Size"(ptr) + +declare %"github.com/goplus/llgo/internal/runtime.String" @"github.com/goplus/llgo/internal/abi.(*InterfaceType).String"(ptr) + +declare ptr @"github.com/goplus/llgo/internal/abi.(*InterfaceType).StructType"(ptr) + +declare ptr @"github.com/goplus/llgo/internal/abi.(*InterfaceType).Uncommon"(ptr) + +declare ptr @"github.com/goplus/llgo/internal/abi.(*FuncType).InterfaceType"(ptr) + +declare i1 @"github.com/goplus/llgo/internal/abi.(*FuncType).IsDirectIface"(ptr) + +declare i64 @"github.com/goplus/llgo/internal/abi.(*FuncType).Kind"(ptr) + +declare i64 @"github.com/goplus/llgo/internal/abi.(*FuncType).Len"(ptr) + +declare ptr @"github.com/goplus/llgo/internal/abi.(*FuncType).MapType"(ptr) + +declare i1 @"github.com/goplus/llgo/internal/abi.(*FuncType).Pointers"(ptr) + +declare i64 @"github.com/goplus/llgo/internal/abi.(*FuncType).Size"(ptr) + +declare %"github.com/goplus/llgo/internal/runtime.String" @"github.com/goplus/llgo/internal/abi.(*FuncType).String"(ptr) + +declare ptr @"github.com/goplus/llgo/internal/abi.(*FuncType).StructType"(ptr) + +declare ptr @"github.com/goplus/llgo/internal/abi.(*FuncType).Uncommon"(ptr) + +declare i1 @"github.com/goplus/llgo/internal/abi.(*FuncType).Variadic"(ptr) + +declare ptr @"github.com/goplus/llgo/internal/abi.(*ArrayType).FuncType"(ptr) + +declare i1 @"github.com/goplus/llgo/internal/abi.(*ArrayType).HasName"(ptr) + +declare i1 @"github.com/goplus/llgo/internal/abi.(*ArrayType).IfaceIndir"(ptr) + +declare ptr @"github.com/goplus/llgo/internal/abi.(*ArrayType).InterfaceType"(ptr) + +declare i1 @"github.com/goplus/llgo/internal/abi.(*ArrayType).IsDirectIface"(ptr) + +declare i64 @"github.com/goplus/llgo/internal/abi.(*ArrayType).Kind"(ptr) + +declare ptr @"github.com/goplus/llgo/internal/abi.(*ArrayType).MapType"(ptr) + +declare i1 @"github.com/goplus/llgo/internal/abi.(*ArrayType).Pointers"(ptr) + +declare i64 @"github.com/goplus/llgo/internal/abi.(*ArrayType).Size"(ptr) + +declare %"github.com/goplus/llgo/internal/runtime.String" @"github.com/goplus/llgo/internal/abi.(*ArrayType).String"(ptr) + +declare ptr @"github.com/goplus/llgo/internal/abi.(*ArrayType).StructType"(ptr) + +declare ptr @"github.com/goplus/llgo/internal/abi.(*ArrayType).Uncommon"(ptr) + +declare ptr @"github.com/goplus/llgo/internal/abi.(*Type).ArrayType"(ptr) + +declare ptr @"github.com/goplus/llgo/internal/abi.(*Type).Common"(ptr) + +declare ptr @"github.com/goplus/llgo/internal/abi.(*Type).Elem"(ptr) + +declare i64 @"github.com/goplus/llgo/internal/abi.(*Type).FieldAlign"(ptr) + +declare ptr @"github.com/goplus/llgo/internal/abi.(*Type).FuncType"(ptr) + +declare i1 @"github.com/goplus/llgo/internal/abi.(*Type).HasName"(ptr) + +declare i1 @"github.com/goplus/llgo/internal/abi.(*Type).IfaceIndir"(ptr) + +declare ptr @"github.com/goplus/llgo/internal/abi.(*Type).InterfaceType"(ptr) + +declare i1 @"github.com/goplus/llgo/internal/abi.(*Type).IsDirectIface"(ptr) + +declare i64 @"github.com/goplus/llgo/internal/abi.(*Type).Kind"(ptr) + +declare i64 @"github.com/goplus/llgo/internal/abi.(*Type).Len"(ptr) + +declare ptr @"github.com/goplus/llgo/internal/abi.(*Type).MapType"(ptr) + +declare i1 @"github.com/goplus/llgo/internal/abi.(*Type).Pointers"(ptr) + +declare i64 @"github.com/goplus/llgo/internal/abi.(*Type).Size"(ptr) + +declare %"github.com/goplus/llgo/internal/runtime.String" @"github.com/goplus/llgo/internal/abi.(*Type).String"(ptr) + +declare ptr @"github.com/goplus/llgo/internal/abi.(*Type).StructType"(ptr) + +declare ptr @"github.com/goplus/llgo/internal/abi.(*Type).Uncommon"(ptr) + +declare void @"github.com/goplus/llgo/internal/runtime.PrintPointer"(ptr) + +declare void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8) + +declare ptr @"github.com/goplus/llgo/internal/runtime.Zeroinit"(ptr, i64) + +declare void @"github.com/goplus/llgo/internal/runtime.AssertIndexRange"(i1) + +declare void @"github.com/goplus/llgo/internal/runtime.Panic"(%"github.com/goplus/llgo/internal/runtime.eface") + +declare ptr @"github.com/goplus/llgo/internal/runtime.AllocZ"(i64) diff --git a/cl/_testrt/any/out.ll b/cl/_testrt/any/out.ll index e650db3f..fd857bcc 100644 --- a/cl/_testrt/any/out.ll +++ b/cl/_testrt/any/out.ll @@ -6,6 +6,7 @@ source_filename = "main" %"github.com/goplus/llgo/internal/abi.Type" = type { i64, i64, i32, i8, i8, i8, i8, { ptr, ptr }, ptr, %"github.com/goplus/llgo/internal/runtime.String", ptr } @"main.init$guard" = global i1 false, align 1 +@_llgo_int8 = linkonce global ptr null, align 8 @"*_llgo_int8" = linkonce global ptr null, align 8 @0 = private unnamed_addr constant [21 x i8] c"type assertion failed", align 1 @_llgo_string = linkonce global ptr null, align 8 @@ -121,48 +122,62 @@ _llgo_0: define void @"main.init$after"() { _llgo_0: - %0 = load ptr, ptr @"*_llgo_int8", align 8 + %0 = load ptr, ptr @_llgo_int8, align 8 %1 = icmp eq ptr %0, null br i1 %1, label %_llgo_1, label %_llgo_2 _llgo_1: ; preds = %_llgo_0 %2 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 3) - %3 = call ptr @"github.com/goplus/llgo/internal/runtime.PointerTo"(ptr %2) - store ptr %3, ptr @"*_llgo_int8", align 8 + %3 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Type", ptr %2, i32 0, i32 6 + %4 = load i8, ptr %3, align 1 + %5 = or i8 %4, 32 + store i8 %5, ptr %3, align 1 + store ptr %2, ptr @_llgo_int8, align 8 br label %_llgo_2 _llgo_2: ; preds = %_llgo_1, %_llgo_0 - %4 = load ptr, ptr @_llgo_string, align 8 - %5 = icmp eq ptr %4, null - br i1 %5, label %_llgo_3, label %_llgo_4 + %6 = load ptr, ptr @"*_llgo_int8", align 8 + %7 = icmp eq ptr %6, null + br i1 %7, label %_llgo_3, label %_llgo_4 _llgo_3: ; preds = %_llgo_2 - %6 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 24) - store ptr %6, ptr @_llgo_string, align 8 + %8 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 3) + %9 = call ptr @"github.com/goplus/llgo/internal/runtime.PointerTo"(ptr %8) + store ptr %9, ptr @"*_llgo_int8", align 8 br label %_llgo_4 _llgo_4: ; preds = %_llgo_3, %_llgo_2 - %7 = load ptr, ptr @_llgo_int, align 8 - %8 = icmp eq ptr %7, null - br i1 %8, label %_llgo_5, label %_llgo_6 + %10 = load ptr, ptr @_llgo_string, align 8 + %11 = icmp eq ptr %10, null + br i1 %11, label %_llgo_5, label %_llgo_6 _llgo_5: ; preds = %_llgo_4 - %9 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 2) - %10 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Type", ptr %9, i32 0, i32 6 - %11 = load i8, ptr %10, align 1 - %12 = or i8 %11, 32 - store i8 %12, ptr %10, align 1 - store ptr %9, ptr @_llgo_int, align 8 + %12 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 24) + store ptr %12, ptr @_llgo_string, align 8 br label %_llgo_6 _llgo_6: ; preds = %_llgo_5, %_llgo_4 + %13 = load ptr, ptr @_llgo_int, align 8 + %14 = icmp eq ptr %13, null + br i1 %14, label %_llgo_7, label %_llgo_8 + +_llgo_7: ; preds = %_llgo_6 + %15 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 2) + %16 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Type", ptr %15, i32 0, i32 6 + %17 = load i8, ptr %16, align 1 + %18 = or i8 %17, 32 + store i8 %18, ptr %16, align 1 + store ptr %15, ptr @_llgo_int, align 8 + br label %_llgo_8 + +_llgo_8: ; preds = %_llgo_7, %_llgo_6 ret void } -declare ptr @"github.com/goplus/llgo/internal/runtime.PointerTo"(ptr) - declare ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64) +declare ptr @"github.com/goplus/llgo/internal/runtime.PointerTo"(ptr) + declare ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64) declare void @"github.com/goplus/llgo/internal/runtime.Panic"(%"github.com/goplus/llgo/internal/runtime.eface") diff --git a/ssa/abitype.go b/ssa/abitype.go index 181ab1cb..b2543348 100644 --- a/ssa/abitype.go +++ b/ssa/abitype.go @@ -185,15 +185,24 @@ func (b Builder) abiInterfaceOf(pkgPath string, name string, t *types.Interface) // func NewNamed(kind abi.Kind, methods, ptrMethods int) func (b Builder) abiNamedOf(t *types.Named) func() Expr { return func() Expr { - pkg := b.Pkg - tunder := t.Underlying() - kind := int(abi.UnderlyingKind(tunder)) - numMethods, numPtrMethods := b.abiMethods(t) - newNamed := pkg.rtFunc("NewNamed") - return b.Call(newNamed, b.Prog.Val(kind), b.Prog.Val(numMethods), b.Prog.Val(numPtrMethods)) + return b.abiNamed(t) } } +func (b Builder) abiNamed(t *types.Named) Expr { + if expr, ok := b.Pkg.named[t]; ok { + return expr + } + pkg := b.Pkg + tunder := t.Underlying() + kind := int(abi.UnderlyingKind(tunder)) + numMethods, numPtrMethods := b.abiMethods(t) + newNamed := pkg.rtFunc("NewNamed") + expr := b.Call(newNamed, b.Prog.Val(kind), b.Prog.Val(numMethods), b.Prog.Val(numPtrMethods)) + b.Pkg.named[t] = expr + return expr +} + // func InitNamed(ret *Type, pkgPath, name string, underlying *Type, methods, ptrMethods []Method) func (b Builder) abiInitNamed(ret Expr, t *types.Named) func() Expr { under := b.abiType(t.Underlying()) @@ -359,6 +368,15 @@ func (p Package) abiTypeInit(g Global, t types.Type, pub bool) { // abiType returns the abi type of the specified type. func (b Builder) abiType(t types.Type) Expr { + switch t := t.(type) { + case *types.Pointer: + b.loadType(t.Elem()) + } + g := b.loadType(t) + return b.Load(g.Expr) +} + +func (b Builder) loadType(t types.Type) Global { pkg := b.Pkg name, pub := pkg.abi.TypeName(t) g := pkg.VarOf(name) @@ -371,7 +389,7 @@ func (b Builder) abiType(t types.Type) Expr { } pkg.abiTypeInit(g, t, pub) } - return b.Load(g.Expr) + return g } // ----------------------------------------------------------------------------- diff --git a/ssa/package.go b/ssa/package.go index 54f6484f..09d2d50a 100644 --- a/ssa/package.go +++ b/ssa/package.go @@ -316,12 +316,13 @@ func (p Program) NewPackage(name, pkgPath string) Package { pyobjs := make(map[string]PyObjRef) pymods := make(map[string]Global) strs := make(map[string]llvm.Value) + named := make(map[types.Type]Expr) p.NeedRuntime = false // Don't need reset p.needPyInit here // p.needPyInit = false ret := &aPackage{ mod: mod, vars: gbls, fns: fns, stubs: stubs, - pyobjs: pyobjs, pymods: pymods, strs: strs, Prog: p} + pyobjs: pyobjs, pymods: pymods, strs: strs, named: named, Prog: p} ret.abi.Init(pkgPath) return ret } @@ -565,6 +566,7 @@ type aPackage struct { pyobjs map[string]PyObjRef pymods map[string]Global strs map[string]llvm.Value + named map[types.Type]Expr afterb unsafe.Pointer iRoutine int