diff --git a/cl/_testgo/equal/out.ll b/cl/_testgo/equal/out.ll index 7220decbd..39686be9f 100644 --- a/cl/_testgo/equal/out.ll +++ b/cl/_testgo/equal/out.ll @@ -17,19 +17,21 @@ source_filename = "main" @"_llgo_struct$n1H8J_3prDN3firMwPxBLVTkE5hJ9Di-AqNvaC9jczw" = linkonce global ptr null, align 8 @3 = private unnamed_addr constant [4 x i8] c"main", align 1 @_llgo_main.T = linkonce global ptr null, align 8 +@4 = private unnamed_addr constant [6 x i8] c"main.T", align 1 @"_llgo_struct$5D_KhR3tDEp-wpx9caTiVZca43wS-XW6slE9Bsr8rsk" = linkonce global ptr null, align 8 -@4 = private unnamed_addr constant [1 x i8] c"X", align 1 -@5 = private unnamed_addr constant [1 x i8] c"Y", align 1 -@6 = private unnamed_addr constant [1 x i8] c"Z", align 1 -@7 = private unnamed_addr constant [1 x i8] c"V", align 1 -@8 = private unnamed_addr constant [1 x i8] c"T", align 1 +@5 = private unnamed_addr constant [1 x i8] c"X", align 1 +@6 = private unnamed_addr constant [1 x i8] c"Y", align 1 +@7 = private unnamed_addr constant [1 x i8] c"Z", align 1 +@8 = private unnamed_addr constant [1 x i8] c"V", align 1 +@9 = private unnamed_addr constant [1 x i8] c"T", align 1 @_llgo_main.N = linkonce global ptr null, align 8 -@9 = private unnamed_addr constant [1 x i8] c"N", align 1 +@10 = private unnamed_addr constant [6 x i8] c"main.N", align 1 +@11 = private unnamed_addr constant [1 x i8] c"N", align 1 @"map[_llgo_int]_llgo_string" = linkonce global ptr null, align 8 -@10 = private unnamed_addr constant [7 x i8] c"topbits", align 1 -@11 = private unnamed_addr constant [4 x i8] c"keys", align 1 -@12 = private unnamed_addr constant [5 x i8] c"elems", align 1 -@13 = private unnamed_addr constant [8 x i8] c"overflow", align 1 +@12 = private unnamed_addr constant [7 x i8] c"topbits", align 1 +@13 = private unnamed_addr constant [4 x i8] c"keys", align 1 +@14 = private unnamed_addr constant [5 x i8] c"elems", align 1 +@15 = private unnamed_addr constant [8 x i8] c"overflow", align 1 @__llgo_argc = global i32 0, align 4 @__llgo_argv = global ptr null, align 8 @@ -614,269 +616,281 @@ _llgo_5: ; preds = %_llgo_4 br label %_llgo_6 _llgo_6: ; preds = %_llgo_5, %_llgo_4 - %19 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(i64 25, i64 48, i64 0, i64 0) - %20 = load ptr, ptr @_llgo_main.T, align 8 - %21 = icmp eq ptr %20, null - br i1 %21, label %_llgo_7, label %_llgo_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 @4, ptr %20, align 8 + %21 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %19, i32 0, i32 1 + store i64 6, ptr %21, align 4 + %22 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %19, align 8 + %23 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(%"github.com/goplus/llgo/internal/runtime.String" %22, i64 25, i64 48, i64 0, i64 0) + %24 = load ptr, ptr @_llgo_main.T, align 8 + %25 = icmp eq ptr %24, null + br i1 %25, label %_llgo_7, label %_llgo_8 _llgo_7: ; preds = %_llgo_6 - store ptr %19, ptr @_llgo_main.T, align 8 + store ptr %23, ptr @_llgo_main.T, align 8 br label %_llgo_8 _llgo_8: ; preds = %_llgo_7, %_llgo_6 - %22 = load ptr, ptr @"_llgo_struct$5D_KhR3tDEp-wpx9caTiVZca43wS-XW6slE9Bsr8rsk", align 8 - %23 = icmp eq ptr %22, null - br i1 %23, label %_llgo_9, label %_llgo_10 + %26 = load ptr, ptr @"_llgo_struct$5D_KhR3tDEp-wpx9caTiVZca43wS-XW6slE9Bsr8rsk", align 8 + %27 = icmp eq ptr %26, null + br i1 %27, label %_llgo_9, label %_llgo_10 _llgo_9: ; preds = %_llgo_8 - %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 @4, 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 + store ptr @5, 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 + store i64 1, ptr %30, align 4 %31 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %28, align 8 - %32 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 34) - %33 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %27, ptr %32, i64 0, %"github.com/goplus/llgo/internal/runtime.String" %31, i1 false) - %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 @5, ptr %35, align 8 - %36 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %34, i32 0, i32 1 - store i64 1, ptr %36, align 4 - %37 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %34, align 8 + %32 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %33 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %32, i32 0, i32 0 + store ptr null, ptr %33, align 8 + %34 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %32, i32 0, i32 1 + store i64 0, ptr %34, align 4 + %35 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %32, align 8 + %36 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 34) + %37 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %31, ptr %36, i64 0, %"github.com/goplus/llgo/internal/runtime.String" %35, i1 false) %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 null, ptr %39, align 8 + store ptr @6, ptr %39, align 8 %40 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %38, i32 0, i32 1 - store i64 0, ptr %40, align 4 + store i64 1, ptr %40, align 4 %41 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %38, align 8 - %42 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 34) - %43 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %37, ptr %42, i64 8, %"github.com/goplus/llgo/internal/runtime.String" %41, i1 false) - %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 @6, ptr %45, align 8 - %46 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %44, i32 0, i32 1 - store i64 1, ptr %46, align 4 - %47 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %44, 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 null, ptr %43, align 8 + %44 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %42, i32 0, i32 1 + store i64 0, ptr %44, align 4 + %45 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %42, align 8 + %46 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 34) + %47 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %41, ptr %46, i64 8, %"github.com/goplus/llgo/internal/runtime.String" %45, i1 false) %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 null, ptr %49, align 8 + store ptr @7, ptr %49, align 8 %50 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %48, i32 0, i32 1 - store i64 0, ptr %50, align 4 + store i64 1, ptr %50, align 4 %51 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %48, align 8 - %52 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 24) - %53 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %47, ptr %52, i64 16, %"github.com/goplus/llgo/internal/runtime.String" %51, i1 false) - %54 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %55 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %54, i32 0, i32 0 - store ptr @7, ptr %55, align 8 - %56 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %54, i32 0, i32 1 - store i64 1, ptr %56, align 4 - %57 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %54, 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 null, ptr %53, align 8 + %54 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %52, i32 0, i32 1 + store i64 0, ptr %54, align 4 + %55 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %52, align 8 + %56 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 24) + %57 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %51, ptr %56, i64 16, %"github.com/goplus/llgo/internal/runtime.String" %55, i1 false) %58 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 %59 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %58, i32 0, i32 0 - store ptr null, ptr %59, align 8 + store ptr @8, ptr %59, align 8 %60 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %58, i32 0, i32 1 - store i64 0, ptr %60, align 4 + store i64 1, ptr %60, align 4 %61 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %58, align 8 - %62 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 0) - %63 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %64 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %63, i32 0, i32 0 - store ptr %62, ptr %64, align 8 - %65 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %63, i32 0, i32 1 - store i64 0, ptr %65, align 4 - %66 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %63, i32 0, i32 2 - store i64 0, ptr %66, align 4 - %67 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %63, align 8 - %68 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %69 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %68, i32 0, i32 0 - store ptr @3, ptr %69, align 8 - %70 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %68, i32 0, i32 1 - store i64 4, ptr %70, align 4 - %71 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %68, 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 null, ptr %63, align 8 + %64 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %62, i32 0, i32 1 + store i64 0, ptr %64, align 4 + %65 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %62, align 8 + %66 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 0) + %67 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %68 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %67, i32 0, i32 0 + store ptr %66, ptr %68, align 8 + %69 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %67, i32 0, i32 1 + store i64 0, ptr %69, align 4 + %70 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %67, i32 0, i32 2 + store i64 0, ptr %70, align 4 + %71 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %67, align 8 %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 null, ptr %73, align 8 + store ptr @3, ptr %73, align 8 %74 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %72, i32 0, i32 1 - store i64 0, ptr %74, align 4 + store i64 4, ptr %74, align 4 %75 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %72, align 8 - %76 = call ptr @"github.com/goplus/llgo/internal/runtime.Interface"(%"github.com/goplus/llgo/internal/runtime.String" %71, %"github.com/goplus/llgo/internal/runtime.String" %75, %"github.com/goplus/llgo/internal/runtime.Slice" %67) - %77 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %57, ptr %76, i64 32, %"github.com/goplus/llgo/internal/runtime.String" %61, i1 false) - %78 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %79 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %78, i32 0, i32 0 - store ptr @3, ptr %79, align 8 - %80 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %78, i32 0, i32 1 - store i64 4, ptr %80, align 4 - %81 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %78, align 8 - %82 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 224) - %83 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %82, i64 0 - store %"github.com/goplus/llgo/internal/abi.StructField" %33, ptr %83, align 8 - %84 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %82, i64 1 - store %"github.com/goplus/llgo/internal/abi.StructField" %43, ptr %84, align 8 - %85 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %82, i64 2 - store %"github.com/goplus/llgo/internal/abi.StructField" %53, ptr %85, align 8 - %86 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %82, i64 3 - store %"github.com/goplus/llgo/internal/abi.StructField" %77, ptr %86, align 8 - %87 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %88 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %87, i32 0, i32 0 - store ptr %82, ptr %88, align 8 - %89 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %87, i32 0, i32 1 - store i64 4, ptr %89, align 4 - %90 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %87, i32 0, i32 2 - store i64 4, ptr %90, align 4 - %91 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %87, align 8 - %92 = call ptr @"github.com/goplus/llgo/internal/runtime.Struct"(%"github.com/goplus/llgo/internal/runtime.String" %81, i64 48, %"github.com/goplus/llgo/internal/runtime.Slice" %91) - store ptr %92, ptr @"_llgo_struct$5D_KhR3tDEp-wpx9caTiVZca43wS-XW6slE9Bsr8rsk", 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 ptr @"github.com/goplus/llgo/internal/runtime.Interface"(%"github.com/goplus/llgo/internal/runtime.String" %75, %"github.com/goplus/llgo/internal/runtime.String" %79, %"github.com/goplus/llgo/internal/runtime.Slice" %71) + %81 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %61, ptr %80, i64 32, %"github.com/goplus/llgo/internal/runtime.String" %65, i1 false) + %82 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %83 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %82, i32 0, i32 0 + store ptr @3, ptr %83, align 8 + %84 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %82, i32 0, i32 1 + store i64 4, ptr %84, align 4 + %85 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %82, align 8 + %86 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 224) + %87 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %86, i64 0 + store %"github.com/goplus/llgo/internal/abi.StructField" %37, ptr %87, align 8 + %88 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %86, i64 1 + store %"github.com/goplus/llgo/internal/abi.StructField" %47, ptr %88, align 8 + %89 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %86, i64 2 + store %"github.com/goplus/llgo/internal/abi.StructField" %57, ptr %89, align 8 + %90 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %86, i64 3 + store %"github.com/goplus/llgo/internal/abi.StructField" %81, ptr %90, align 8 + %91 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %92 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %91, i32 0, i32 0 + store ptr %86, ptr %92, align 8 + %93 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %91, i32 0, i32 1 + store i64 4, ptr %93, align 4 + %94 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %91, i32 0, i32 2 + store i64 4, ptr %94, align 4 + %95 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %91, align 8 + %96 = call ptr @"github.com/goplus/llgo/internal/runtime.Struct"(%"github.com/goplus/llgo/internal/runtime.String" %85, i64 48, %"github.com/goplus/llgo/internal/runtime.Slice" %95) + store ptr %96, ptr @"_llgo_struct$5D_KhR3tDEp-wpx9caTiVZca43wS-XW6slE9Bsr8rsk", align 8 br label %_llgo_10 _llgo_10: ; preds = %_llgo_9, %_llgo_8 - %93 = load ptr, ptr @"_llgo_struct$5D_KhR3tDEp-wpx9caTiVZca43wS-XW6slE9Bsr8rsk", align 8 - br i1 %21, label %_llgo_11, label %_llgo_12 + %97 = load ptr, ptr @"_llgo_struct$5D_KhR3tDEp-wpx9caTiVZca43wS-XW6slE9Bsr8rsk", align 8 + br i1 %25, label %_llgo_11, label %_llgo_12 _llgo_11: ; preds = %_llgo_10 - %94 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %95 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %94, i32 0, i32 0 - store ptr @3, ptr %95, align 8 - %96 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %94, i32 0, i32 1 - store i64 4, ptr %96, align 4 - %97 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %94, align 8 %98 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 %99 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %98, i32 0, i32 0 - store ptr @8, ptr %99, align 8 + store ptr @3, ptr %99, align 8 %100 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %98, i32 0, i32 1 - store i64 1, ptr %100, align 4 + store i64 4, ptr %100, align 4 %101 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %98, align 8 - call void @"github.com/goplus/llgo/internal/runtime.InitNamed"(ptr %19, %"github.com/goplus/llgo/internal/runtime.String" %97, %"github.com/goplus/llgo/internal/runtime.String" %101, ptr %93, { ptr, i64, i64 } zeroinitializer, { ptr, i64, i64 } zeroinitializer) + %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 @9, ptr %103, align 8 + %104 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %102, i32 0, i32 1 + store i64 1, ptr %104, align 4 + %105 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %102, align 8 + call void @"github.com/goplus/llgo/internal/runtime.InitNamed"(ptr %23, %"github.com/goplus/llgo/internal/runtime.String" %101, %"github.com/goplus/llgo/internal/runtime.String" %105, ptr %97, { ptr, i64, i64 } zeroinitializer, { ptr, i64, i64 } zeroinitializer) br label %_llgo_12 _llgo_12: ; preds = %_llgo_11, %_llgo_10 - %102 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(i64 25, i64 0, i64 0, i64 0) - %103 = load ptr, ptr @_llgo_main.N, align 8 - %104 = icmp eq ptr %103, null - br i1 %104, label %_llgo_13, label %_llgo_14 + %106 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %107 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %106, i32 0, i32 0 + store ptr @10, ptr %107, align 8 + %108 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %106, i32 0, i32 1 + store i64 6, ptr %108, align 4 + %109 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %106, align 8 + %110 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(%"github.com/goplus/llgo/internal/runtime.String" %109, i64 25, i64 0, i64 0, i64 0) + %111 = load ptr, ptr @_llgo_main.N, align 8 + %112 = icmp eq ptr %111, null + br i1 %112, label %_llgo_13, label %_llgo_14 _llgo_13: ; preds = %_llgo_12 - store ptr %102, ptr @_llgo_main.N, align 8 + store ptr %110, ptr @_llgo_main.N, align 8 br label %_llgo_14 _llgo_14: ; preds = %_llgo_13, %_llgo_12 - %105 = load ptr, ptr @"_llgo_struct$n1H8J_3prDN3firMwPxBLVTkE5hJ9Di-AqNvaC9jczw", align 8 - br i1 %104, label %_llgo_15, label %_llgo_16 + %113 = load ptr, ptr @"_llgo_struct$n1H8J_3prDN3firMwPxBLVTkE5hJ9Di-AqNvaC9jczw", align 8 + br i1 %112, label %_llgo_15, label %_llgo_16 _llgo_15: ; preds = %_llgo_14 - %106 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %107 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %106, i32 0, i32 0 - store ptr @3, ptr %107, align 8 - %108 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %106, i32 0, i32 1 - store i64 4, ptr %108, align 4 - %109 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %106, align 8 - %110 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %111 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %110, i32 0, i32 0 - store ptr @9, ptr %111, align 8 - %112 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %110, i32 0, i32 1 - store i64 1, ptr %112, align 4 - %113 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %110, align 8 - call void @"github.com/goplus/llgo/internal/runtime.InitNamed"(ptr %102, %"github.com/goplus/llgo/internal/runtime.String" %109, %"github.com/goplus/llgo/internal/runtime.String" %113, ptr %105, { ptr, i64, i64 } zeroinitializer, { ptr, i64, i64 } zeroinitializer) + %114 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %115 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %114, i32 0, i32 0 + store ptr @3, ptr %115, align 8 + %116 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %114, i32 0, i32 1 + store i64 4, ptr %116, align 4 + %117 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %114, align 8 + %118 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %119 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %118, i32 0, i32 0 + store ptr @11, ptr %119, align 8 + %120 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %118, i32 0, i32 1 + store i64 1, ptr %120, align 4 + %121 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %118, align 8 + call void @"github.com/goplus/llgo/internal/runtime.InitNamed"(ptr %110, %"github.com/goplus/llgo/internal/runtime.String" %117, %"github.com/goplus/llgo/internal/runtime.String" %121, ptr %113, { ptr, i64, i64 } zeroinitializer, { ptr, i64, i64 } zeroinitializer) br label %_llgo_16 _llgo_16: ; preds = %_llgo_15, %_llgo_14 - %114 = load ptr, ptr @"map[_llgo_int]_llgo_string", align 8 - %115 = icmp eq ptr %114, null - br i1 %115, label %_llgo_17, label %_llgo_18 + %122 = load ptr, ptr @"map[_llgo_int]_llgo_string", align 8 + %123 = icmp eq ptr %122, null + br i1 %123, label %_llgo_17, label %_llgo_18 _llgo_17: ; preds = %_llgo_16 - %116 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 34) - %117 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 24) - %118 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %119 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %118, i32 0, i32 0 - store ptr @10, ptr %119, align 8 - %120 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %118, i32 0, i32 1 - store i64 7, ptr %120, align 4 - %121 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %118, 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 null, ptr %123, align 8 - %124 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %122, i32 0, i32 1 - store i64 0, ptr %124, align 4 - %125 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %122, align 8 - %126 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 40) - %127 = call ptr @"github.com/goplus/llgo/internal/runtime.ArrayOf"(i64 8, ptr %126) - %128 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %121, ptr %127, i64 0, %"github.com/goplus/llgo/internal/runtime.String" %125, i1 false) - %129 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %130 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %129, i32 0, i32 0 - store ptr @11, ptr %130, align 8 - %131 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %129, i32 0, i32 1 - store i64 4, ptr %131, align 4 - %132 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %129, align 8 - %133 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %134 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %133, i32 0, i32 0 - store ptr null, ptr %134, align 8 - %135 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %133, i32 0, i32 1 - store i64 0, ptr %135, align 4 - %136 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %133, align 8 - %137 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 34) - %138 = call ptr @"github.com/goplus/llgo/internal/runtime.ArrayOf"(i64 8, ptr %137) - %139 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %132, ptr %138, i64 8, %"github.com/goplus/llgo/internal/runtime.String" %136, i1 false) - %140 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %141 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %140, i32 0, i32 0 - store ptr @12, ptr %141, align 8 - %142 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %140, i32 0, i32 1 - store i64 5, ptr %142, align 4 - %143 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %140, 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 null, ptr %145, align 8 - %146 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %144, i32 0, i32 1 - store i64 0, ptr %146, align 4 - %147 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %144, align 8 - %148 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 24) - %149 = call ptr @"github.com/goplus/llgo/internal/runtime.ArrayOf"(i64 8, ptr %148) - %150 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %143, ptr %149, i64 72, %"github.com/goplus/llgo/internal/runtime.String" %147, i1 false) - %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 @13, ptr %152, align 8 - %153 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %151, i32 0, i32 1 - store i64 8, ptr %153, align 4 - %154 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %151, align 8 - %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 null, ptr %156, align 8 - %157 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %155, i32 0, i32 1 - store i64 0, ptr %157, align 4 - %158 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %155, align 8 - %159 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 58) - %160 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %154, ptr %159, i64 200, %"github.com/goplus/llgo/internal/runtime.String" %158, i1 false) - %161 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %162 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %161, i32 0, i32 0 - store ptr @3, ptr %162, align 8 - %163 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %161, i32 0, i32 1 - store i64 4, ptr %163, align 4 - %164 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %161, align 8 - %165 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 224) - %166 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %165, i64 0 - store %"github.com/goplus/llgo/internal/abi.StructField" %128, ptr %166, align 8 - %167 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %165, i64 1 - store %"github.com/goplus/llgo/internal/abi.StructField" %139, ptr %167, align 8 - %168 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %165, i64 2 - store %"github.com/goplus/llgo/internal/abi.StructField" %150, ptr %168, align 8 - %169 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %165, i64 3 - store %"github.com/goplus/llgo/internal/abi.StructField" %160, ptr %169, align 8 - %170 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %171 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %170, i32 0, i32 0 - store ptr %165, ptr %171, align 8 - %172 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %170, i32 0, i32 1 - store i64 4, ptr %172, align 4 - %173 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %170, i32 0, i32 2 - store i64 4, ptr %173, align 4 - %174 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %170, align 8 - %175 = call ptr @"github.com/goplus/llgo/internal/runtime.Struct"(%"github.com/goplus/llgo/internal/runtime.String" %164, i64 208, %"github.com/goplus/llgo/internal/runtime.Slice" %174) - %176 = call ptr @"github.com/goplus/llgo/internal/runtime.MapOf"(ptr %116, ptr %117, ptr %175, i64 4) - call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %176) - store ptr %176, ptr @"map[_llgo_int]_llgo_string", align 8 + %124 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 34) + %125 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 24) + %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 @12, ptr %127, align 8 + %128 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %126, i32 0, i32 1 + store i64 7, ptr %128, align 4 + %129 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %126, align 8 + %130 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %131 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %130, i32 0, i32 0 + store ptr null, ptr %131, align 8 + %132 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %130, i32 0, i32 1 + store i64 0, ptr %132, align 4 + %133 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %130, align 8 + %134 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 40) + %135 = call ptr @"github.com/goplus/llgo/internal/runtime.ArrayOf"(i64 8, ptr %134) + %136 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %129, ptr %135, i64 0, %"github.com/goplus/llgo/internal/runtime.String" %133, i1 false) + %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 @13, ptr %138, align 8 + %139 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %137, i32 0, i32 1 + store i64 4, 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 ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 34) + %146 = call ptr @"github.com/goplus/llgo/internal/runtime.ArrayOf"(i64 8, ptr %145) + %147 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %140, ptr %146, i64 8, %"github.com/goplus/llgo/internal/runtime.String" %144, i1 false) + %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 @14, ptr %149, align 8 + %150 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %148, i32 0, i32 1 + store i64 5, ptr %150, align 4 + %151 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %148, 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 null, ptr %153, align 8 + %154 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %152, i32 0, i32 1 + store i64 0, ptr %154, align 4 + %155 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %152, align 8 + %156 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 24) + %157 = call ptr @"github.com/goplus/llgo/internal/runtime.ArrayOf"(i64 8, ptr %156) + %158 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %151, ptr %157, i64 72, %"github.com/goplus/llgo/internal/runtime.String" %155, i1 false) + %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 @15, ptr %160, align 8 + %161 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %159, i32 0, i32 1 + store i64 8, ptr %161, align 4 + %162 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %159, align 8 + %163 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %164 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %163, i32 0, i32 0 + store ptr null, ptr %164, align 8 + %165 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %163, i32 0, i32 1 + store i64 0, ptr %165, align 4 + %166 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %163, align 8 + %167 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 58) + %168 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %162, ptr %167, i64 200, %"github.com/goplus/llgo/internal/runtime.String" %166, i1 false) + %169 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %170 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %169, i32 0, i32 0 + store ptr @3, ptr %170, align 8 + %171 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %169, i32 0, i32 1 + store i64 4, ptr %171, align 4 + %172 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %169, align 8 + %173 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 224) + %174 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %173, i64 0 + store %"github.com/goplus/llgo/internal/abi.StructField" %136, ptr %174, align 8 + %175 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %173, i64 1 + store %"github.com/goplus/llgo/internal/abi.StructField" %147, ptr %175, align 8 + %176 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %173, i64 2 + store %"github.com/goplus/llgo/internal/abi.StructField" %158, ptr %176, align 8 + %177 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %173, i64 3 + store %"github.com/goplus/llgo/internal/abi.StructField" %168, ptr %177, align 8 + %178 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %179 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %178, i32 0, i32 0 + store ptr %173, ptr %179, align 8 + %180 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %178, i32 0, i32 1 + store i64 4, ptr %180, align 4 + %181 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %178, i32 0, i32 2 + store i64 4, ptr %181, align 4 + %182 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %178, align 8 + %183 = call ptr @"github.com/goplus/llgo/internal/runtime.Struct"(%"github.com/goplus/llgo/internal/runtime.String" %172, i64 208, %"github.com/goplus/llgo/internal/runtime.Slice" %182) + %184 = call ptr @"github.com/goplus/llgo/internal/runtime.MapOf"(ptr %124, ptr %125, ptr %183, i64 4) + call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %184) + store ptr %184, ptr @"map[_llgo_int]_llgo_string", align 8 br label %_llgo_18 _llgo_18: ; preds = %_llgo_17, %_llgo_16 @@ -908,7 +922,7 @@ declare ptr @"github.com/goplus/llgo/internal/runtime.Struct"(%"github.com/goplu 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.NewNamed"(i64, i64, i64, i64) +declare ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(%"github.com/goplus/llgo/internal/runtime.String", i64, i64, i64, i64) 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/errors/out.ll b/cl/_testgo/errors/out.ll index d416bd459..29837b9ef 100644 --- a/cl/_testgo/errors/out.ll +++ b/cl/_testgo/errors/out.ll @@ -11,18 +11,19 @@ source_filename = "main" @"main.init$guard" = global i1 false, align 1 @_llgo_main.errorString = linkonce global ptr null, align 8 +@0 = private unnamed_addr constant [16 x i8] c"main.errorString", align 1 @"main.struct$QTufDJA9wEDzuzgkA-ZSrLqW-B6lWN8O25mTSglAoLQ" = 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 +@1 = private unnamed_addr constant [1 x i8] c"s", align 1 +@2 = private unnamed_addr constant [4 x i8] c"main", align 1 +@3 = private unnamed_addr constant [5 x i8] c"Error", align 1 @"_llgo_func$zNDVRsWTIpUPKouNUS805RGX--IV9qVK8B31IZbg5to" = linkonce global ptr null, align 8 @_llgo_string = linkonce global ptr null, align 8 -@3 = private unnamed_addr constant [11 x i8] c"errorString", align 1 +@4 = private unnamed_addr constant [11 x i8] c"errorString", align 1 @"*_llgo_main.errorString" = linkonce global ptr null, align 8 @"_llgo_iface$Fh8eUJ-Gw4e6TYuajcFIOSCuqSPKAt5nS4ow7xeGXEU" = linkonce global ptr null, align 8 @__llgo_argc = global i32 0, align 4 @__llgo_argv = global ptr null, align 8 -@4 = private unnamed_addr constant [8 x i8] c"an error", align 1 +@5 = 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: @@ -70,7 +71,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 @4, ptr %3, align 8 + store ptr @5, 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 @@ -99,178 +100,191 @@ 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 16, i64 0, i64 1) - store ptr %0, ptr @_llgo_main.errorString, align 8 - %1 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %2 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1, i32 0, i32 0 - store ptr @0, ptr %2, align 8 - %3 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1, i32 0, i32 1 - store i64 1, ptr %3, align 4 - %4 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1, align 8 + %0 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %1 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %0, i32 0, i32 0 + store ptr @0, ptr %1, align 8 + %2 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %0, i32 0, i32 1 + store i64 16, ptr %2, align 4 + %3 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %0, align 8 + %4 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(%"github.com/goplus/llgo/internal/runtime.String" %3, i64 25, i64 16, i64 0, i64 1) + store ptr %4, ptr @_llgo_main.errorString, 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 null, ptr %6, align 8 + store ptr @1, ptr %6, align 8 %7 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %5, i32 0, i32 1 - store i64 0, ptr %7, align 4 + store i64 1, ptr %7, align 4 %8 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %5, align 8 - %9 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 24) - %10 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %4, ptr %9, i64 0, %"github.com/goplus/llgo/internal/runtime.String" %8, i1 false) - %11 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %12 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %11, i32 0, i32 0 - store ptr @1, ptr %12, align 8 - %13 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %11, i32 0, i32 1 - store i64 4, ptr %13, align 4 - %14 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %11, align 8 - %15 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 56) - %16 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %15, i64 0 - store %"github.com/goplus/llgo/internal/abi.StructField" %10, ptr %16, align 8 - %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 %15, ptr %18, align 8 - %19 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %17, i32 0, i32 1 - store i64 1, ptr %19, align 4 - %20 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %17, i32 0, i32 2 - store i64 1, 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.Struct"(%"github.com/goplus/llgo/internal/runtime.String" %14, i64 16, %"github.com/goplus/llgo/internal/runtime.Slice" %21) - store ptr %22, ptr @"main.struct$QTufDJA9wEDzuzgkA-ZSrLqW-B6lWN8O25mTSglAoLQ", align 8 - %23 = load ptr, ptr @"main.struct$QTufDJA9wEDzuzgkA-ZSrLqW-B6lWN8O25mTSglAoLQ", align 8 - %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 @2, ptr %25, align 8 - %26 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %24, i32 0, i32 1 - store i64 5, ptr %26, align 4 - %27 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %24, align 8 - %28 = load ptr, ptr @_llgo_string, align 8 - %29 = icmp eq ptr %28, null - br i1 %29, label %_llgo_1, label %_llgo_2 + %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 ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 24) + %14 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %8, ptr %13, i64 0, %"github.com/goplus/llgo/internal/runtime.String" %12, i1 false) + %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 @2, ptr %16, align 8 + %17 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %15, i32 0, i32 1 + store i64 4, ptr %17, align 4 + %18 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %15, align 8 + %19 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 56) + %20 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %19, i64 0 + store %"github.com/goplus/llgo/internal/abi.StructField" %14, ptr %20, align 8 + %21 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %22 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %21, i32 0, i32 0 + store ptr %19, ptr %22, align 8 + %23 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %21, i32 0, i32 1 + store i64 1, ptr %23, align 4 + %24 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %21, i32 0, i32 2 + store i64 1, ptr %24, align 4 + %25 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %21, align 8 + %26 = call ptr @"github.com/goplus/llgo/internal/runtime.Struct"(%"github.com/goplus/llgo/internal/runtime.String" %18, i64 16, %"github.com/goplus/llgo/internal/runtime.Slice" %25) + store ptr %26, ptr @"main.struct$QTufDJA9wEDzuzgkA-ZSrLqW-B6lWN8O25mTSglAoLQ", align 8 + %27 = load ptr, ptr @"main.struct$QTufDJA9wEDzuzgkA-ZSrLqW-B6lWN8O25mTSglAoLQ", 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 @3, ptr %29, align 8 + %30 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %28, i32 0, i32 1 + store i64 5, ptr %30, align 4 + %31 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %28, align 8 + %32 = load ptr, ptr @_llgo_string, align 8 + %33 = icmp eq ptr %32, null + br i1 %33, label %_llgo_1, label %_llgo_2 _llgo_1: ; preds = %_llgo_0 - %30 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 24) - store ptr %30, ptr @_llgo_string, align 8 + %34 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 24) + store ptr %34, ptr @_llgo_string, align 8 br label %_llgo_2 _llgo_2: ; preds = %_llgo_1, %_llgo_0 - %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 + %35 = load ptr, ptr @_llgo_string, align 8 + %36 = load ptr, ptr @"_llgo_func$zNDVRsWTIpUPKouNUS805RGX--IV9qVK8B31IZbg5to", align 8 + %37 = icmp eq ptr %36, null + br i1 %37, label %_llgo_3, label %_llgo_4 _llgo_3: ; preds = %_llgo_2 - %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) - call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %47) - store ptr %47, ptr @"_llgo_func$zNDVRsWTIpUPKouNUS805RGX--IV9qVK8B31IZbg5to", align 8 + %38 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 0) + %39 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %40 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %39, i32 0, i32 0 + store ptr %38, ptr %40, align 8 + %41 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %39, i32 0, i32 1 + store i64 0, ptr %41, align 4 + %42 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %39, i32 0, i32 2 + store i64 0, ptr %42, align 4 + %43 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %39, align 8 + %44 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 8) + %45 = getelementptr ptr, ptr %44, i64 0 + store ptr %35, 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 %44, ptr %47, align 8 + %48 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %46, i32 0, i32 1 + store i64 1, ptr %48, align 4 + %49 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %46, i32 0, i32 2 + store i64 1, 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.Func"(%"github.com/goplus/llgo/internal/runtime.Slice" %43, %"github.com/goplus/llgo/internal/runtime.Slice" %50, i1 false) + call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %51) + store ptr %51, ptr @"_llgo_func$zNDVRsWTIpUPKouNUS805RGX--IV9qVK8B31IZbg5to", align 8 br label %_llgo_4 _llgo_4: ; preds = %_llgo_3, %_llgo_2 - %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" %27, 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 + %52 = load ptr, ptr @"_llgo_func$zNDVRsWTIpUPKouNUS805RGX--IV9qVK8B31IZbg5to", align 8 + %53 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %54 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %53, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %31, ptr %54, align 8 + %55 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %53, i32 0, i32 1 + store ptr %52, ptr %55, align 8 + %56 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %53, i32 0, i32 2 + store ptr @"main.(*errorString).Error", ptr %56, align 8 + %57 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %53, i32 0, i32 3 + store ptr @"main.(*errorString).Error", ptr %57, align 8 + %58 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %53, align 8 + %59 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 40) + %60 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %59, i64 0 + store %"github.com/goplus/llgo/internal/abi.Method" %58, ptr %60, align 8 + %61 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %62 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %61, i32 0, i32 0 + store ptr %59, ptr %62, align 8 + %63 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %61, i32 0, i32 1 + store i64 1, ptr %63, align 4 + %64 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %61, i32 0, i32 2 + store i64 1, ptr %64, align 4 + %65 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %61, 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 + store ptr @2, 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 + store i64 4, 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 %23, { ptr, i64, i64 } zeroinitializer, %"github.com/goplus/llgo/internal/runtime.Slice" %61) - %70 = call ptr @"github.com/goplus/llgo/internal/runtime.PointerTo"(ptr %0) - call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %70) - 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 + %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 @4, ptr %71, align 8 + %72 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %70, i32 0, i32 1 + store i64 11, ptr %72, align 4 + %73 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %70, align 8 + call void @"github.com/goplus/llgo/internal/runtime.InitNamed"(ptr %4, %"github.com/goplus/llgo/internal/runtime.String" %69, %"github.com/goplus/llgo/internal/runtime.String" %73, ptr %27, { ptr, i64, i64 } zeroinitializer, %"github.com/goplus/llgo/internal/runtime.Slice" %65) %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 + store ptr @0, 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 + store i64 16, 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 + %78 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(%"github.com/goplus/llgo/internal/runtime.String" %77, i64 25, i64 16, i64 0, i64 1) + %79 = call ptr @"github.com/goplus/llgo/internal/runtime.PointerTo"(ptr %78) + call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %79) + store ptr %79, ptr @"*_llgo_main.errorString", align 8 + %80 = load ptr, ptr @"_llgo_func$zNDVRsWTIpUPKouNUS805RGX--IV9qVK8B31IZbg5to", align 8 + %81 = load ptr, ptr @"_llgo_iface$Fh8eUJ-Gw4e6TYuajcFIOSCuqSPKAt5nS4ow7xeGXEU", align 8 + %82 = icmp eq ptr %81, null + br i1 %82, label %_llgo_5, label %_llgo_6 + +_llgo_5: ; preds = %_llgo_4 + %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 @3, ptr %84, align 8 + %85 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %83, i32 0, i32 1 + store i64 5, ptr %85, align 4 + %86 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %83, align 8 + %87 = alloca %"github.com/goplus/llgo/internal/abi.Imethod", align 8 + %88 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Imethod", ptr %87, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %86, ptr %88, align 8 + %89 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Imethod", ptr %87, i32 0, i32 1 + store ptr %80, ptr %89, align 8 + %90 = load %"github.com/goplus/llgo/internal/abi.Imethod", ptr %87, align 8 + %91 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 24) + %92 = getelementptr %"github.com/goplus/llgo/internal/abi.Imethod", ptr %91, i64 0 + store %"github.com/goplus/llgo/internal/abi.Imethod" %90, ptr %92, align 8 + %93 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %94 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %93, i32 0, i32 0 + store ptr %91, ptr %94, align 8 + %95 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %93, i32 0, i32 1 + store i64 1, ptr %95, align 4 + %96 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %93, i32 0, i32 2 + store i64 1, ptr %96, align 4 + %97 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %93, align 8 + %98 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %99 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %98, i32 0, i32 0 + store ptr @2, ptr %99, align 8 + %100 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %98, i32 0, i32 1 + store i64 4, ptr %100, align 4 + %101 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %98, align 8 + %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 null, ptr %103, align 8 + %104 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %102, i32 0, i32 1 + store i64 0, 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.Interface"(%"github.com/goplus/llgo/internal/runtime.String" %101, %"github.com/goplus/llgo/internal/runtime.String" %105, %"github.com/goplus/llgo/internal/runtime.Slice" %97) + store ptr %106, 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.NewNamed"(i64, i64, i64, i64) +declare ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(%"github.com/goplus/llgo/internal/runtime.String", i64, i64, i64, 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") diff --git a/cl/_testgo/ifaceconv/out.ll b/cl/_testgo/ifaceconv/out.ll index 2d0b81748..df736d4dd 100644 --- a/cl/_testgo/ifaceconv/out.ll +++ b/cl/_testgo/ifaceconv/out.ll @@ -31,21 +31,23 @@ source_filename = "main" @"main.iface$gZBF8fFlqIMZ9M6lT2VWPyc3eu5Co6j0WoKGIEgDPAw" = linkonce global ptr null, align 8 @8 = private unnamed_addr constant [21 x i8] c"nil i2.(I2) succeeded", align 1 @_llgo_main.C1 = linkonce global ptr null, align 8 +@9 = private unnamed_addr constant [7 x i8] c"main.C1", align 1 @"_llgo_struct$n1H8J_3prDN3firMwPxBLVTkE5hJ9Di-AqNvaC9jczw" = linkonce global ptr null, align 8 -@9 = private unnamed_addr constant [1 x i8] c"f", align 1 -@10 = private unnamed_addr constant [2 x i8] c"C1", align 1 -@11 = private unnamed_addr constant [17 x i8] c"C1 i1.(I0) failed", align 1 -@12 = private unnamed_addr constant [17 x i8] c"C1 i1.(I1) failed", align 1 -@13 = private unnamed_addr constant [20 x i8] c"C1 i1.(I2) succeeded", align 1 +@10 = private unnamed_addr constant [1 x i8] c"f", align 1 +@11 = private unnamed_addr constant [2 x i8] c"C1", align 1 +@12 = private unnamed_addr constant [17 x i8] c"C1 i1.(I0) failed", align 1 +@13 = private unnamed_addr constant [17 x i8] c"C1 i1.(I1) failed", align 1 +@14 = private unnamed_addr constant [20 x i8] c"C1 i1.(I2) succeeded", align 1 @_llgo_main.C2 = linkonce global ptr null, align 8 -@14 = private unnamed_addr constant [1 x i8] c"g", align 1 -@15 = private unnamed_addr constant [2 x i8] c"C2", align 1 -@16 = private unnamed_addr constant [17 x i8] c"C2 i1.(I0) failed", align 1 -@17 = private unnamed_addr constant [17 x i8] c"C2 i1.(I1) failed", align 1 -@18 = private unnamed_addr constant [17 x i8] c"C2 i1.(I2) failed", align 1 -@19 = private unnamed_addr constant [17 x i8] c"C1 I0(i1) was nil", align 1 -@20 = private unnamed_addr constant [17 x i8] c"C1 I1(i1) was nil", align 1 -@21 = private unnamed_addr constant [4 x i8] c"pass", align 1 +@15 = private unnamed_addr constant [7 x i8] c"main.C2", align 1 +@16 = private unnamed_addr constant [1 x i8] c"g", align 1 +@17 = private unnamed_addr constant [2 x i8] c"C2", align 1 +@18 = private unnamed_addr constant [17 x i8] c"C2 i1.(I0) failed", align 1 +@19 = private unnamed_addr constant [17 x i8] c"C2 i1.(I1) failed", align 1 +@20 = private unnamed_addr constant [17 x i8] c"C2 i1.(I2) failed", align 1 +@21 = private unnamed_addr constant [17 x i8] c"C1 I0(i1) was nil", align 1 +@22 = private unnamed_addr constant [17 x i8] c"C1 I1(i1) was nil", align 1 +@23 = private unnamed_addr constant [4 x i8] c"pass", align 1 define void @main.C1.f(%main.C1 %0) { _llgo_0: @@ -219,7 +221,7 @@ _llgo_6: ; preds = %_llgo_31 _llgo_7: ; preds = %_llgo_34 %68 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 %69 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %68, i32 0, i32 0 - store ptr @11, ptr %69, align 8 + store ptr @12, ptr %69, align 8 %70 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %68, i32 0, i32 1 store i64 17, ptr %70, align 4 %71 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %68, align 8 @@ -244,7 +246,7 @@ _llgo_8: ; preds = %_llgo_34 _llgo_9: ; preds = %_llgo_37 %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 @12, ptr %82, align 8 + store ptr @13, ptr %82, align 8 %83 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %81, i32 0, i32 1 store i64 17, ptr %83, align 4 %84 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %81, align 8 @@ -269,7 +271,7 @@ _llgo_10: ; preds = %_llgo_37 _llgo_11: ; preds = %_llgo_40 %94 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 %95 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %94, i32 0, i32 0 - store ptr @13, ptr %95, align 8 + store ptr @14, ptr %95, align 8 %96 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %94, i32 0, i32 1 store i64 20, ptr %96, align 4 %97 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %94, align 8 @@ -305,7 +307,7 @@ _llgo_12: ; preds = %_llgo_40 _llgo_13: ; preds = %_llgo_43 %115 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 %116 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %115, i32 0, i32 0 - store ptr @16, ptr %116, align 8 + store ptr @18, ptr %116, align 8 %117 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %115, i32 0, i32 1 store i64 17, ptr %117, align 4 %118 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %115, align 8 @@ -330,7 +332,7 @@ _llgo_14: ; preds = %_llgo_43 _llgo_15: ; preds = %_llgo_46 %128 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 %129 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %128, i32 0, i32 0 - store ptr @17, ptr %129, align 8 + store ptr @19, ptr %129, align 8 %130 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %128, i32 0, i32 1 store i64 17, ptr %130, align 4 %131 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %128, align 8 @@ -355,7 +357,7 @@ _llgo_16: ; preds = %_llgo_46 _llgo_17: ; preds = %_llgo_49 %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 @18, ptr %142, align 8 + store ptr @20, ptr %142, align 8 %143 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %141, i32 0, i32 1 store i64 17, ptr %143, align 4 %144 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %141, align 8 @@ -397,7 +399,7 @@ _llgo_18: ; preds = %_llgo_49 _llgo_19: ; preds = %_llgo_18 %166 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 %167 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %166, i32 0, i32 0 - store ptr @19, ptr %167, align 8 + store ptr @21, ptr %167, align 8 %168 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %166, i32 0, i32 1 store i64 17, ptr %168, align 4 %169 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %166, align 8 @@ -435,7 +437,7 @@ _llgo_20: ; preds = %_llgo_18 _llgo_21: ; preds = %_llgo_20 %188 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 %189 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %188, i32 0, i32 0 - store ptr @20, ptr %189, align 8 + store ptr @22, ptr %189, align 8 %190 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %188, i32 0, i32 1 store i64 17, ptr %190, align 4 %191 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %188, align 8 @@ -454,7 +456,7 @@ _llgo_21: ; preds = %_llgo_20 _llgo_22: ; preds = %_llgo_20 %198 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 %199 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %198, i32 0, i32 0 - store ptr @21, ptr %199, align 8 + store ptr @23, ptr %199, align 8 %200 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %198, i32 0, i32 1 store i64 4, ptr %200, align 4 %201 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %198, align 8 @@ -1023,214 +1025,213 @@ _llgo_10: ; preds = %_llgo_9, %_llgo_8 %157 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %154, align 8 %158 = call ptr @"github.com/goplus/llgo/internal/runtime.Interface"(%"github.com/goplus/llgo/internal/runtime.String" %153, %"github.com/goplus/llgo/internal/runtime.String" %157, %"github.com/goplus/llgo/internal/runtime.Slice" %149) store ptr %158, ptr @"main.iface$gZBF8fFlqIMZ9M6lT2VWPyc3eu5Co6j0WoKGIEgDPAw", align 8 - %159 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(i64 25, i64 0, i64 1, i64 1) - %160 = load ptr, ptr @_llgo_main.C1, align 8 - %161 = icmp eq ptr %160, null - br i1 %161, label %_llgo_11, label %_llgo_12 + %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 @9, ptr %160, align 8 + %161 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %159, i32 0, i32 1 + store i64 7, ptr %161, align 4 + %162 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %159, align 8 + %163 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(%"github.com/goplus/llgo/internal/runtime.String" %162, i64 25, i64 0, i64 1, i64 1) + %164 = load ptr, ptr @_llgo_main.C1, align 8 + %165 = icmp eq ptr %164, null + br i1 %165, label %_llgo_11, label %_llgo_12 _llgo_11: ; preds = %_llgo_10 - store ptr %159, ptr @_llgo_main.C1, align 8 + store ptr %163, ptr @_llgo_main.C1, align 8 br label %_llgo_12 _llgo_12: ; preds = %_llgo_11, %_llgo_10 - %162 = load ptr, ptr @"_llgo_struct$n1H8J_3prDN3firMwPxBLVTkE5hJ9Di-AqNvaC9jczw", align 8 - %163 = icmp eq ptr %162, null - br i1 %163, label %_llgo_13, label %_llgo_14 + %166 = load ptr, ptr @"_llgo_struct$n1H8J_3prDN3firMwPxBLVTkE5hJ9Di-AqNvaC9jczw", align 8 + %167 = icmp eq ptr %166, null + br i1 %167, label %_llgo_13, label %_llgo_14 _llgo_13: ; preds = %_llgo_12 - %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 @0, ptr %165, align 8 - %166 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %164, i32 0, i32 1 - store i64 4, ptr %166, align 4 - %167 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %164, align 8 - %168 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 0) - %169 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %170 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %169, i32 0, i32 0 - store ptr %168, ptr %170, align 8 - %171 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %169, i32 0, i32 1 - store i64 0, ptr %171, align 4 - %172 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %169, i32 0, i32 2 - store i64 0, ptr %172, align 4 - %173 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %169, align 8 - %174 = call ptr @"github.com/goplus/llgo/internal/runtime.Struct"(%"github.com/goplus/llgo/internal/runtime.String" %167, i64 0, %"github.com/goplus/llgo/internal/runtime.Slice" %173) - store ptr %174, ptr @"_llgo_struct$n1H8J_3prDN3firMwPxBLVTkE5hJ9Di-AqNvaC9jczw", 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 @0, ptr %169, align 8 + %170 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %168, i32 0, i32 1 + store i64 4, ptr %170, align 4 + %171 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %168, align 8 + %172 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 0) + %173 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %174 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %173, i32 0, i32 0 + store ptr %172, ptr %174, align 8 + %175 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %173, i32 0, i32 1 + store i64 0, ptr %175, align 4 + %176 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %173, i32 0, i32 2 + store i64 0, ptr %176, align 4 + %177 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %173, align 8 + %178 = call ptr @"github.com/goplus/llgo/internal/runtime.Struct"(%"github.com/goplus/llgo/internal/runtime.String" %171, i64 0, %"github.com/goplus/llgo/internal/runtime.Slice" %177) + store ptr %178, ptr @"_llgo_struct$n1H8J_3prDN3firMwPxBLVTkE5hJ9Di-AqNvaC9jczw", align 8 br label %_llgo_14 _llgo_14: ; preds = %_llgo_13, %_llgo_12 - %175 = load ptr, ptr @"_llgo_struct$n1H8J_3prDN3firMwPxBLVTkE5hJ9Di-AqNvaC9jczw", align 8 - br i1 %161, label %_llgo_15, label %_llgo_16 + %179 = load ptr, ptr @"_llgo_struct$n1H8J_3prDN3firMwPxBLVTkE5hJ9Di-AqNvaC9jczw", align 8 + br i1 %165, label %_llgo_15, label %_llgo_16 _llgo_15: ; preds = %_llgo_14 - %176 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %177 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %176, i32 0, i32 0 - store ptr @9, ptr %177, align 8 - %178 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %176, i32 0, i32 1 - store i64 1, ptr %178, align 4 - %179 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %176, align 8 %180 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 %181 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %180, i32 0, i32 0 - store ptr @3, ptr %181, align 8 + store ptr @10, ptr %181, align 8 %182 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %180, i32 0, i32 1 - store i64 6, ptr %182, align 4 + store i64 1, ptr %182, align 4 %183 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %180, align 8 - %184 = load ptr, ptr @"_llgo_func$2_iS07vIlF2_rZqWB5eU0IvP_9HviM4MYZNkXZDvbac", align 8 - %185 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 - %186 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %185, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %183, ptr %186, align 8 - %187 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %185, i32 0, i32 1 - store ptr %184, ptr %187, align 8 - %188 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %185, i32 0, i32 2 - store ptr @"main.(*C1).f", ptr %188, align 8 - %189 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %185, i32 0, i32 3 - store ptr @"main.(*C1).f", ptr %189, align 8 - %190 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %185, align 8 - %191 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 - %192 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %191, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %183, ptr %192, align 8 - %193 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %191, i32 0, i32 1 - store ptr %184, ptr %193, align 8 - %194 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %191, i32 0, i32 2 - store ptr @"main.(*C1).f", ptr %194, align 8 - %195 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %191, i32 0, i32 3 - store ptr @main.C1.f, ptr %195, align 8 - %196 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %191, align 8 - %197 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 40) - %198 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %197, i64 0 - store %"github.com/goplus/llgo/internal/abi.Method" %196, ptr %198, align 8 - %199 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %200 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %199, i32 0, i32 0 - store ptr %197, ptr %200, align 8 - %201 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %199, i32 0, i32 1 - store i64 1, ptr %201, align 4 - %202 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %199, i32 0, i32 2 - store i64 1, ptr %202, align 4 - %203 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %199, align 8 - %204 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 40) - %205 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %204, i64 0 - store %"github.com/goplus/llgo/internal/abi.Method" %190, ptr %205, align 8 - %206 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %207 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %206, i32 0, i32 0 - store ptr %204, ptr %207, align 8 - %208 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %206, i32 0, i32 1 - store i64 1, ptr %208, align 4 - %209 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %206, i32 0, i32 2 - store i64 1, ptr %209, align 4 - %210 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %206, align 8 - %211 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %212 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %211, i32 0, i32 0 - store ptr @0, ptr %212, align 8 - %213 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %211, i32 0, i32 1 - store i64 4, ptr %213, align 4 - %214 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %211, align 8 + %184 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %185 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %184, i32 0, i32 0 + store ptr @3, ptr %185, align 8 + %186 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %184, i32 0, i32 1 + store i64 6, ptr %186, align 4 + %187 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %184, align 8 + %188 = load ptr, ptr @"_llgo_func$2_iS07vIlF2_rZqWB5eU0IvP_9HviM4MYZNkXZDvbac", align 8 + %189 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %190 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %189, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %187, ptr %190, align 8 + %191 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %189, i32 0, i32 1 + store ptr %188, ptr %191, align 8 + %192 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %189, i32 0, i32 2 + store ptr @"main.(*C1).f", ptr %192, align 8 + %193 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %189, i32 0, i32 3 + store ptr @"main.(*C1).f", ptr %193, align 8 + %194 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %189, align 8 + %195 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %196 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %195, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %187, ptr %196, align 8 + %197 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %195, i32 0, i32 1 + store ptr %188, ptr %197, align 8 + %198 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %195, i32 0, i32 2 + store ptr @"main.(*C1).f", ptr %198, align 8 + %199 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %195, i32 0, i32 3 + store ptr @main.C1.f, ptr %199, align 8 + %200 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %195, align 8 + %201 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 40) + %202 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %201, i64 0 + store %"github.com/goplus/llgo/internal/abi.Method" %200, ptr %202, align 8 + %203 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %204 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %203, i32 0, i32 0 + store ptr %201, ptr %204, align 8 + %205 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %203, i32 0, i32 1 + store i64 1, ptr %205, align 4 + %206 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %203, i32 0, i32 2 + store i64 1, ptr %206, align 4 + %207 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %203, align 8 + %208 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 40) + %209 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %208, i64 0 + store %"github.com/goplus/llgo/internal/abi.Method" %194, ptr %209, align 8 + %210 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %211 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %210, i32 0, i32 0 + store ptr %208, ptr %211, align 8 + %212 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %210, i32 0, i32 1 + store i64 1, ptr %212, align 4 + %213 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %210, i32 0, i32 2 + store i64 1, ptr %213, align 4 + %214 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %210, align 8 %215 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 %216 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %215, i32 0, i32 0 - store ptr @10, ptr %216, align 8 + store ptr @0, ptr %216, align 8 %217 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %215, i32 0, i32 1 - store i64 2, ptr %217, align 4 + store i64 4, ptr %217, align 4 %218 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %215, align 8 - call void @"github.com/goplus/llgo/internal/runtime.InitNamed"(ptr %159, %"github.com/goplus/llgo/internal/runtime.String" %214, %"github.com/goplus/llgo/internal/runtime.String" %218, ptr %175, %"github.com/goplus/llgo/internal/runtime.Slice" %203, %"github.com/goplus/llgo/internal/runtime.Slice" %210) + %219 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %220 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %219, i32 0, i32 0 + store ptr @11, ptr %220, align 8 + %221 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %219, i32 0, i32 1 + store i64 2, ptr %221, align 4 + %222 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %219, align 8 + call void @"github.com/goplus/llgo/internal/runtime.InitNamed"(ptr %163, %"github.com/goplus/llgo/internal/runtime.String" %218, %"github.com/goplus/llgo/internal/runtime.String" %222, ptr %179, %"github.com/goplus/llgo/internal/runtime.Slice" %207, %"github.com/goplus/llgo/internal/runtime.Slice" %214) br label %_llgo_16 _llgo_16: ; preds = %_llgo_15, %_llgo_14 - %219 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(i64 25, i64 0, i64 2, i64 2) - %220 = load ptr, ptr @_llgo_main.C2, align 8 - %221 = icmp eq ptr %220, null - br i1 %221, label %_llgo_17, label %_llgo_18 + %223 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %224 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %223, i32 0, i32 0 + store ptr @15, ptr %224, align 8 + %225 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %223, i32 0, i32 1 + store i64 7, ptr %225, align 4 + %226 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %223, align 8 + %227 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(%"github.com/goplus/llgo/internal/runtime.String" %226, i64 25, i64 0, i64 2, i64 2) + %228 = load ptr, ptr @_llgo_main.C2, align 8 + %229 = icmp eq ptr %228, null + br i1 %229, label %_llgo_17, label %_llgo_18 _llgo_17: ; preds = %_llgo_16 - store ptr %219, ptr @_llgo_main.C2, align 8 + store ptr %227, ptr @_llgo_main.C2, align 8 br label %_llgo_18 _llgo_18: ; preds = %_llgo_17, %_llgo_16 - %222 = load ptr, ptr @"_llgo_struct$n1H8J_3prDN3firMwPxBLVTkE5hJ9Di-AqNvaC9jczw", align 8 - br i1 %221, label %_llgo_19, label %_llgo_20 + %230 = load ptr, ptr @"_llgo_struct$n1H8J_3prDN3firMwPxBLVTkE5hJ9Di-AqNvaC9jczw", align 8 + br i1 %229, label %_llgo_19, label %_llgo_20 _llgo_19: ; preds = %_llgo_18 - %223 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %224 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %223, i32 0, i32 0 - store ptr @9, ptr %224, align 8 - %225 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %223, i32 0, i32 1 - store i64 1, ptr %225, align 4 - %226 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %223, align 8 - %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 @3, ptr %228, align 8 - %229 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %227, i32 0, i32 1 - store i64 6, ptr %229, align 4 - %230 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %227, align 8 - %231 = load ptr, ptr @"_llgo_func$2_iS07vIlF2_rZqWB5eU0IvP_9HviM4MYZNkXZDvbac", align 8 - %232 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 - %233 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %232, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %230, ptr %233, align 8 - %234 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %232, i32 0, i32 1 - store ptr %231, ptr %234, align 8 - %235 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %232, i32 0, i32 2 - store ptr @"main.(*C2).f", ptr %235, align 8 - %236 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %232, i32 0, i32 3 - store ptr @"main.(*C2).f", ptr %236, align 8 - %237 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %232, align 8 - %238 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 - %239 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %238, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %230, ptr %239, align 8 - %240 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %238, i32 0, i32 1 - store ptr %231, ptr %240, align 8 - %241 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %238, i32 0, i32 2 - store ptr @"main.(*C2).f", ptr %241, align 8 - %242 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %238, i32 0, i32 3 - store ptr @main.C2.f, ptr %242, align 8 - %243 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %238, align 8 - %244 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %245 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %244, i32 0, i32 0 - store ptr @14, ptr %245, align 8 - %246 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %244, i32 0, i32 1 - store i64 1, ptr %246, align 4 - %247 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %244, align 8 - %248 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %249 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %248, i32 0, i32 0 - store ptr @6, ptr %249, align 8 - %250 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %248, i32 0, i32 1 - store i64 6, ptr %250, align 4 - %251 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %248, align 8 - %252 = load ptr, ptr @"_llgo_func$2_iS07vIlF2_rZqWB5eU0IvP_9HviM4MYZNkXZDvbac", align 8 - %253 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 - %254 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %253, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %251, ptr %254, align 8 - %255 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %253, i32 0, i32 1 - store ptr %252, ptr %255, align 8 - %256 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %253, i32 0, i32 2 - store ptr @"main.(*C2).g", ptr %256, align 8 - %257 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %253, i32 0, i32 3 - store ptr @"main.(*C2).g", ptr %257, align 8 - %258 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %253, align 8 - %259 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 - %260 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %259, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %251, ptr %260, align 8 - %261 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %259, i32 0, i32 1 - store ptr %252, ptr %261, align 8 - %262 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %259, i32 0, i32 2 - store ptr @"main.(*C2).g", ptr %262, align 8 - %263 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %259, i32 0, i32 3 - store ptr @main.C2.g, ptr %263, align 8 - %264 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %259, align 8 - %265 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 80) - %266 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %265, i64 0 - store %"github.com/goplus/llgo/internal/abi.Method" %243, ptr %266, align 8 - %267 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %265, i64 1 - store %"github.com/goplus/llgo/internal/abi.Method" %264, ptr %267, align 8 - %268 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %269 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %268, i32 0, i32 0 - store ptr %265, ptr %269, align 8 - %270 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %268, i32 0, i32 1 - store i64 2, ptr %270, align 4 - %271 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %268, i32 0, i32 2 - store i64 2, ptr %271, align 4 - %272 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %268, 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 @10, ptr %232, align 8 + %233 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %231, i32 0, i32 1 + store i64 1, ptr %233, align 4 + %234 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %231, align 8 + %235 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %236 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %235, i32 0, i32 0 + store ptr @3, ptr %236, align 8 + %237 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %235, i32 0, i32 1 + store i64 6, ptr %237, align 4 + %238 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %235, align 8 + %239 = load ptr, ptr @"_llgo_func$2_iS07vIlF2_rZqWB5eU0IvP_9HviM4MYZNkXZDvbac", align 8 + %240 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %241 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %240, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %238, ptr %241, align 8 + %242 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %240, i32 0, i32 1 + store ptr %239, ptr %242, align 8 + %243 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %240, i32 0, i32 2 + store ptr @"main.(*C2).f", ptr %243, align 8 + %244 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %240, i32 0, i32 3 + store ptr @"main.(*C2).f", ptr %244, align 8 + %245 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %240, align 8 + %246 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %247 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %246, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %238, ptr %247, align 8 + %248 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %246, i32 0, i32 1 + store ptr %239, ptr %248, align 8 + %249 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %246, i32 0, i32 2 + store ptr @"main.(*C2).f", ptr %249, align 8 + %250 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %246, i32 0, i32 3 + store ptr @main.C2.f, ptr %250, align 8 + %251 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %246, align 8 + %252 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %253 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %252, i32 0, i32 0 + store ptr @16, ptr %253, align 8 + %254 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %252, i32 0, i32 1 + store i64 1, ptr %254, align 4 + %255 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %252, align 8 + %256 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %257 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %256, i32 0, i32 0 + store ptr @6, ptr %257, align 8 + %258 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %256, i32 0, i32 1 + store i64 6, ptr %258, align 4 + %259 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %256, align 8 + %260 = load ptr, ptr @"_llgo_func$2_iS07vIlF2_rZqWB5eU0IvP_9HviM4MYZNkXZDvbac", align 8 + %261 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %262 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %261, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %259, ptr %262, align 8 + %263 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %261, i32 0, i32 1 + store ptr %260, ptr %263, align 8 + %264 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %261, i32 0, i32 2 + store ptr @"main.(*C2).g", ptr %264, align 8 + %265 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %261, i32 0, i32 3 + store ptr @"main.(*C2).g", ptr %265, align 8 + %266 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %261, align 8 + %267 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %268 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %267, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %259, ptr %268, align 8 + %269 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %267, i32 0, i32 1 + store ptr %260, ptr %269, align 8 + %270 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %267, i32 0, i32 2 + store ptr @"main.(*C2).g", ptr %270, align 8 + %271 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %267, i32 0, i32 3 + store ptr @main.C2.g, ptr %271, align 8 + %272 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %267, align 8 %273 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 80) %274 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %273, i64 0 - store %"github.com/goplus/llgo/internal/abi.Method" %237, ptr %274, align 8 + store %"github.com/goplus/llgo/internal/abi.Method" %251, ptr %274, align 8 %275 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %273, i64 1 - store %"github.com/goplus/llgo/internal/abi.Method" %258, ptr %275, align 8 + store %"github.com/goplus/llgo/internal/abi.Method" %272, ptr %275, align 8 %276 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 %277 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %276, i32 0, i32 0 store ptr %273, ptr %277, align 8 @@ -1239,19 +1240,32 @@ _llgo_19: ; preds = %_llgo_18 %279 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %276, i32 0, i32 2 store i64 2, ptr %279, align 4 %280 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %276, align 8 - %281 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %282 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %281, i32 0, i32 0 - store ptr @0, ptr %282, align 8 - %283 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %281, i32 0, i32 1 - store i64 4, ptr %283, align 4 - %284 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %281, align 8 - %285 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %286 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %285, i32 0, i32 0 - store ptr @15, ptr %286, align 8 - %287 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %285, i32 0, i32 1 + %281 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 80) + %282 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %281, i64 0 + store %"github.com/goplus/llgo/internal/abi.Method" %245, ptr %282, align 8 + %283 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %281, i64 1 + store %"github.com/goplus/llgo/internal/abi.Method" %266, 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 %281, ptr %285, align 8 + %286 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %284, i32 0, i32 1 + store i64 2, ptr %286, align 4 + %287 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %284, i32 0, i32 2 store i64 2, ptr %287, align 4 - %288 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %285, align 8 - call void @"github.com/goplus/llgo/internal/runtime.InitNamed"(ptr %219, %"github.com/goplus/llgo/internal/runtime.String" %284, %"github.com/goplus/llgo/internal/runtime.String" %288, ptr %222, %"github.com/goplus/llgo/internal/runtime.Slice" %272, %"github.com/goplus/llgo/internal/runtime.Slice" %280) + %288 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %284, align 8 + %289 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %290 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %289, i32 0, i32 0 + store ptr @0, ptr %290, align 8 + %291 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %289, i32 0, i32 1 + store i64 4, ptr %291, align 4 + %292 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %289, align 8 + %293 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %294 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %293, i32 0, i32 0 + store ptr @17, ptr %294, align 8 + %295 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %293, i32 0, i32 1 + store i64 2, ptr %295, align 4 + %296 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %293, align 8 + call void @"github.com/goplus/llgo/internal/runtime.InitNamed"(ptr %227, %"github.com/goplus/llgo/internal/runtime.String" %292, %"github.com/goplus/llgo/internal/runtime.String" %296, ptr %230, %"github.com/goplus/llgo/internal/runtime.Slice" %280, %"github.com/goplus/llgo/internal/runtime.Slice" %288) br label %_llgo_20 _llgo_20: ; preds = %_llgo_19, %_llgo_18 @@ -1276,7 +1290,7 @@ declare void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr) declare ptr @"github.com/goplus/llgo/internal/runtime.NewItab"(ptr, ptr) -declare ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(i64, i64, i64, i64) +declare ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(%"github.com/goplus/llgo/internal/runtime.String", i64, i64, i64, 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") diff --git a/cl/_testgo/ifaceprom/out.ll b/cl/_testgo/ifaceprom/out.ll index ad960d4df..1bc326ae3 100644 --- a/cl/_testgo/ifaceprom/out.ll +++ b/cl/_testgo/ifaceprom/out.ll @@ -16,21 +16,22 @@ source_filename = "main" @__llgo_argc = global i32 0, align 4 @__llgo_argv = global ptr null, align 8 @_llgo_main.impl = linkonce global ptr null, align 8 +@1 = private unnamed_addr constant [9 x i8] c"main.impl", align 1 @"_llgo_struct$n1H8J_3prDN3firMwPxBLVTkE5hJ9Di-AqNvaC9jczw" = linkonce global ptr null, align 8 -@1 = private unnamed_addr constant [4 x i8] c"main", align 1 -@2 = private unnamed_addr constant [3 x i8] c"one", align 1 -@3 = private unnamed_addr constant [8 x i8] c"main.one", align 1 +@2 = private unnamed_addr constant [4 x i8] c"main", align 1 +@3 = private unnamed_addr constant [3 x i8] c"one", align 1 +@4 = private unnamed_addr constant [8 x i8] c"main.one", align 1 @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA" = linkonce global ptr null, align 8 @_llgo_int = linkonce global ptr null, align 8 -@4 = private unnamed_addr constant [8 x i8] c"main.two", align 1 +@5 = private unnamed_addr constant [8 x i8] c"main.two", align 1 @"_llgo_func$zNDVRsWTIpUPKouNUS805RGX--IV9qVK8B31IZbg5to" = linkonce global ptr null, align 8 @_llgo_string = linkonce global ptr null, align 8 -@5 = private unnamed_addr constant [4 x i8] c"impl", align 1 +@6 = private unnamed_addr constant [4 x i8] c"impl", align 1 @"main.iface$zZ89tENb5h_KNjvpxf1TXPfaWFYn0IZrZwyVf42lRtA" = linkonce global ptr null, align 8 @_llgo_main.I = linkonce global ptr null, align 8 -@6 = private unnamed_addr constant [6 x i8] c"main.I", align 1 -@7 = private unnamed_addr constant [21 x i8] c"type assertion failed", align 1 -@8 = private unnamed_addr constant [4 x i8] c"pass", align 1 +@7 = private unnamed_addr constant [6 x i8] c"main.I", align 1 +@8 = private unnamed_addr constant [21 x i8] c"type assertion failed", align 1 +@9 = private unnamed_addr constant [4 x i8] c"pass", align 1 define i64 @main.S.one(%main.S %0) { _llgo_0: @@ -407,7 +408,7 @@ _llgo_15: ; preds = %_llgo_23 _llgo_16: ; preds = %_llgo_23 %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 @8, ptr %147, align 8 + store ptr @9, ptr %147, align 8 %148 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %146, i32 0, i32 1 store i64 4, ptr %148, align 4 %149 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %146, align 8 @@ -443,7 +444,7 @@ _llgo_17: ; preds = %_llgo_4 _llgo_18: ; preds = %_llgo_4 %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 @7, ptr %168, align 8 + store ptr @8, ptr %168, align 8 %169 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %167, i32 0, i32 1 store i64 21, ptr %169, align 4 %170 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %167, align 8 @@ -487,7 +488,7 @@ _llgo_19: ; preds = %_llgo_6 _llgo_20: ; preds = %_llgo_6 %194 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 %195 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %194, i32 0, i32 0 - store ptr @7, ptr %195, align 8 + store ptr @8, ptr %195, align 8 %196 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %194, i32 0, i32 1 store i64 21, ptr %196, align 4 %197 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %194, align 8 @@ -538,7 +539,7 @@ _llgo_21: ; preds = %_llgo_12 _llgo_22: ; preds = %_llgo_12 %226 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 %227 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %226, i32 0, i32 0 - store ptr @7, ptr %227, align 8 + store ptr @8, ptr %227, align 8 %228 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %226, i32 0, i32 1 store i64 21, ptr %228, align 4 %229 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %226, align 8 @@ -589,7 +590,7 @@ _llgo_23: ; preds = %_llgo_14 _llgo_24: ; preds = %_llgo_14 %258 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 %259 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %258, i32 0, i32 0 - store ptr @7, ptr %259, align 8 + store ptr @8, ptr %259, align 8 %260 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %258, i32 0, i32 1 store i64 21, ptr %260, align 4 %261 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %258, align 8 @@ -615,341 +616,347 @@ declare void @"github.com/goplus/llgo/internal/runtime.init"() define void @"main.init$after"() { _llgo_0: - %0 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(i64 25, i64 0, i64 2, i64 2) - store ptr %0, ptr @_llgo_main.impl, align 8 - %1 = load ptr, ptr @"_llgo_struct$n1H8J_3prDN3firMwPxBLVTkE5hJ9Di-AqNvaC9jczw", align 8 - %2 = icmp eq ptr %1, null - br i1 %2, label %_llgo_1, label %_llgo_2 + %0 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %1 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %0, i32 0, i32 0 + store ptr @1, ptr %1, align 8 + %2 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %0, i32 0, i32 1 + store i64 9, ptr %2, align 4 + %3 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %0, align 8 + %4 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(%"github.com/goplus/llgo/internal/runtime.String" %3, i64 25, i64 0, i64 2, i64 2) + store ptr %4, ptr @_llgo_main.impl, align 8 + %5 = load ptr, ptr @"_llgo_struct$n1H8J_3prDN3firMwPxBLVTkE5hJ9Di-AqNvaC9jczw", align 8 + %6 = icmp eq ptr %5, null + br i1 %6, label %_llgo_1, label %_llgo_2 _llgo_1: ; preds = %_llgo_0 - %3 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %4 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %3, i32 0, i32 0 - store ptr @1, ptr %4, align 8 - %5 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %3, i32 0, i32 1 - store i64 4, ptr %5, align 4 - %6 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %3, align 8 - %7 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 0) - %8 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %9 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %8, i32 0, i32 0 - store ptr %7, ptr %9, align 8 - %10 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %8, i32 0, i32 1 - store i64 0, ptr %10, align 4 - %11 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %8, i32 0, i32 2 - store i64 0, ptr %11, align 4 - %12 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %8, align 8 - %13 = call ptr @"github.com/goplus/llgo/internal/runtime.Struct"(%"github.com/goplus/llgo/internal/runtime.String" %6, i64 0, %"github.com/goplus/llgo/internal/runtime.Slice" %12) - store ptr %13, ptr @"_llgo_struct$n1H8J_3prDN3firMwPxBLVTkE5hJ9Di-AqNvaC9jczw", align 8 + %7 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %8 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %7, i32 0, i32 0 + store ptr @2, ptr %8, align 8 + %9 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %7, i32 0, i32 1 + store i64 4, ptr %9, align 4 + %10 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %7, align 8 + %11 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 0) + %12 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %13 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %12, i32 0, i32 0 + store ptr %11, ptr %13, align 8 + %14 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %12, i32 0, i32 1 + store i64 0, ptr %14, align 4 + %15 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %12, i32 0, i32 2 + store i64 0, ptr %15, align 4 + %16 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %12, align 8 + %17 = call ptr @"github.com/goplus/llgo/internal/runtime.Struct"(%"github.com/goplus/llgo/internal/runtime.String" %10, i64 0, %"github.com/goplus/llgo/internal/runtime.Slice" %16) + store ptr %17, ptr @"_llgo_struct$n1H8J_3prDN3firMwPxBLVTkE5hJ9Di-AqNvaC9jczw", align 8 br label %_llgo_2 _llgo_2: ; preds = %_llgo_1, %_llgo_0 - %14 = load ptr, ptr @"_llgo_struct$n1H8J_3prDN3firMwPxBLVTkE5hJ9Di-AqNvaC9jczw", 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 @2, ptr %16, align 8 - %17 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %15, i32 0, i32 1 - store i64 3, ptr %17, align 4 - %18 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %15, align 8 + %18 = load ptr, ptr @"_llgo_struct$n1H8J_3prDN3firMwPxBLVTkE5hJ9Di-AqNvaC9jczw", 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 @3, ptr %20, align 8 %21 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %19, i32 0, i32 1 - store i64 8, ptr %21, align 4 + store i64 3, ptr %21, align 4 %22 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %19, align 8 - %23 = load ptr, ptr @_llgo_int, align 8 - %24 = icmp eq ptr %23, null - br i1 %24, label %_llgo_3, label %_llgo_4 + %23 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %24 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %23, i32 0, i32 0 + store ptr @4, ptr %24, align 8 + %25 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %23, i32 0, i32 1 + store i64 8, ptr %25, align 4 + %26 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %23, align 8 + %27 = load ptr, ptr @_llgo_int, align 8 + %28 = icmp eq ptr %27, null + br i1 %28, label %_llgo_3, label %_llgo_4 _llgo_3: ; preds = %_llgo_2 - %25 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 34) - store ptr %25, ptr @_llgo_int, align 8 + %29 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 34) + store ptr %29, ptr @_llgo_int, align 8 br label %_llgo_4 _llgo_4: ; preds = %_llgo_3, %_llgo_2 - %26 = load ptr, ptr @_llgo_int, align 8 - %27 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 - %28 = icmp eq ptr %27, null - br i1 %28, label %_llgo_5, label %_llgo_6 + %30 = load ptr, ptr @_llgo_int, align 8 + %31 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 + %32 = icmp eq ptr %31, null + br i1 %32, label %_llgo_5, label %_llgo_6 _llgo_5: ; preds = %_llgo_4 - %29 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 0) - %30 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %31 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %30, i32 0, i32 0 - store ptr %29, ptr %31, align 8 - %32 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %30, i32 0, i32 1 - store i64 0, ptr %32, align 4 - %33 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %30, i32 0, i32 2 - store i64 0, ptr %33, align 4 - %34 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %30, align 8 - %35 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 8) - %36 = getelementptr ptr, ptr %35, i64 0 - store ptr %26, ptr %36, align 8 - %37 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %38 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %37, i32 0, i32 0 - store ptr %35, ptr %38, align 8 - %39 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %37, i32 0, i32 1 - store i64 1, ptr %39, align 4 - %40 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %37, i32 0, i32 2 - store i64 1, ptr %40, align 4 - %41 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %37, align 8 - %42 = call ptr @"github.com/goplus/llgo/internal/runtime.Func"(%"github.com/goplus/llgo/internal/runtime.Slice" %34, %"github.com/goplus/llgo/internal/runtime.Slice" %41, i1 false) - call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %42) - store ptr %42, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 + %33 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 0) + %34 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %35 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %34, i32 0, i32 0 + store ptr %33, ptr %35, align 8 + %36 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %34, i32 0, i32 1 + store i64 0, ptr %36, align 4 + %37 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %34, i32 0, i32 2 + store i64 0, ptr %37, align 4 + %38 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %34, align 8 + %39 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 8) + %40 = getelementptr ptr, ptr %39, i64 0 + store ptr %30, ptr %40, align 8 + %41 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %42 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %41, i32 0, i32 0 + store ptr %39, ptr %42, align 8 + %43 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %41, i32 0, i32 1 + store i64 1, ptr %43, align 4 + %44 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %41, i32 0, i32 2 + store i64 1, ptr %44, align 4 + %45 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %41, align 8 + %46 = call ptr @"github.com/goplus/llgo/internal/runtime.Func"(%"github.com/goplus/llgo/internal/runtime.Slice" %38, %"github.com/goplus/llgo/internal/runtime.Slice" %45, i1 false) + call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %46) + store ptr %46, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 br label %_llgo_6 _llgo_6: ; preds = %_llgo_5, %_llgo_4 - %43 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 - %44 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 - %45 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %44, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %22, ptr %45, align 8 - %46 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %44, i32 0, i32 1 - store ptr %43, ptr %46, align 8 - %47 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %44, i32 0, i32 2 - store ptr @"main.(*impl).one", ptr %47, align 8 - %48 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %44, i32 0, i32 3 - store ptr @"main.(*impl).one", ptr %48, align 8 - %49 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %44, align 8 - %50 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 - %51 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %50, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %22, ptr %51, align 8 - %52 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %50, i32 0, i32 1 - store ptr %43, ptr %52, align 8 - %53 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %50, i32 0, i32 2 - store ptr @"main.(*impl).one", ptr %53, align 8 - %54 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %50, i32 0, i32 3 - store ptr @main.impl.one, ptr %54, align 8 - %55 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %50, align 8 - %56 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %57 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %56, i32 0, i32 0 - store ptr @0, ptr %57, align 8 - %58 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %56, i32 0, i32 1 - store i64 3, ptr %58, align 4 - %59 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %56, align 8 + %47 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 + %48 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %49 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %48, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %26, ptr %49, align 8 + %50 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %48, i32 0, i32 1 + store ptr %47, ptr %50, align 8 + %51 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %48, i32 0, i32 2 + store ptr @"main.(*impl).one", ptr %51, align 8 + %52 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %48, i32 0, i32 3 + store ptr @"main.(*impl).one", ptr %52, align 8 + %53 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %48, align 8 + %54 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %55 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %54, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %26, ptr %55, align 8 + %56 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %54, i32 0, i32 1 + store ptr %47, ptr %56, align 8 + %57 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %54, i32 0, i32 2 + store ptr @"main.(*impl).one", ptr %57, align 8 + %58 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %54, i32 0, i32 3 + store ptr @main.impl.one, ptr %58, align 8 + %59 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %54, align 8 %60 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 %61 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %60, i32 0, i32 0 - store ptr @4, ptr %61, align 8 + store ptr @0, ptr %61, align 8 %62 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %60, i32 0, i32 1 - store i64 8, ptr %62, align 4 + store i64 3, ptr %62, align 4 %63 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %60, align 8 - %64 = load ptr, ptr @_llgo_string, align 8 - %65 = icmp eq ptr %64, null - br i1 %65, label %_llgo_7, label %_llgo_8 + %64 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %65 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %64, i32 0, i32 0 + store ptr @5, ptr %65, align 8 + %66 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %64, i32 0, i32 1 + store i64 8, ptr %66, align 4 + %67 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %64, align 8 + %68 = load ptr, ptr @_llgo_string, align 8 + %69 = icmp eq ptr %68, null + br i1 %69, label %_llgo_7, label %_llgo_8 _llgo_7: ; preds = %_llgo_6 - %66 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 24) - store ptr %66, ptr @_llgo_string, align 8 + %70 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 24) + store ptr %70, ptr @_llgo_string, align 8 br label %_llgo_8 _llgo_8: ; preds = %_llgo_7, %_llgo_6 - %67 = load ptr, ptr @_llgo_string, align 8 - %68 = load ptr, ptr @"_llgo_func$zNDVRsWTIpUPKouNUS805RGX--IV9qVK8B31IZbg5to", align 8 - %69 = icmp eq ptr %68, null - br i1 %69, label %_llgo_9, label %_llgo_10 + %71 = load ptr, ptr @_llgo_string, align 8 + %72 = load ptr, ptr @"_llgo_func$zNDVRsWTIpUPKouNUS805RGX--IV9qVK8B31IZbg5to", align 8 + %73 = icmp eq ptr %72, null + br i1 %73, label %_llgo_9, label %_llgo_10 _llgo_9: ; preds = %_llgo_8 - %70 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 0) - %71 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %72 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %71, i32 0, i32 0 - store ptr %70, ptr %72, align 8 - %73 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %71, i32 0, i32 1 - store i64 0, ptr %73, align 4 - %74 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %71, i32 0, i32 2 - store i64 0, ptr %74, align 4 - %75 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %71, align 8 - %76 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 8) - %77 = getelementptr ptr, ptr %76, i64 0 - store ptr %67, ptr %77, align 8 - %78 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %79 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %78, i32 0, i32 0 - store ptr %76, ptr %79, align 8 - %80 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %78, i32 0, i32 1 - store i64 1, ptr %80, align 4 - %81 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %78, i32 0, i32 2 - store i64 1, ptr %81, align 4 - %82 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %78, align 8 - %83 = call ptr @"github.com/goplus/llgo/internal/runtime.Func"(%"github.com/goplus/llgo/internal/runtime.Slice" %75, %"github.com/goplus/llgo/internal/runtime.Slice" %82, i1 false) - call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %83) - store ptr %83, ptr @"_llgo_func$zNDVRsWTIpUPKouNUS805RGX--IV9qVK8B31IZbg5to", align 8 + %74 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 0) + %75 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %76 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %75, i32 0, i32 0 + store ptr %74, ptr %76, align 8 + %77 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %75, i32 0, i32 1 + store i64 0, ptr %77, align 4 + %78 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %75, i32 0, i32 2 + store i64 0, ptr %78, align 4 + %79 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %75, align 8 + %80 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 8) + %81 = getelementptr ptr, ptr %80, i64 0 + store ptr %71, 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 %80, ptr %83, align 8 + %84 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %82, i32 0, i32 1 + store i64 1, ptr %84, align 4 + %85 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %82, i32 0, i32 2 + store i64 1, 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.Func"(%"github.com/goplus/llgo/internal/runtime.Slice" %79, %"github.com/goplus/llgo/internal/runtime.Slice" %86, i1 false) + call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %87) + store ptr %87, ptr @"_llgo_func$zNDVRsWTIpUPKouNUS805RGX--IV9qVK8B31IZbg5to", align 8 br label %_llgo_10 _llgo_10: ; preds = %_llgo_9, %_llgo_8 - %84 = load ptr, ptr @"_llgo_func$zNDVRsWTIpUPKouNUS805RGX--IV9qVK8B31IZbg5to", align 8 - %85 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 - %86 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %85, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %63, ptr %86, align 8 - %87 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %85, i32 0, i32 1 - store ptr %84, ptr %87, align 8 - %88 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %85, i32 0, i32 2 - store ptr @"main.(*impl).two", ptr %88, align 8 - %89 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %85, i32 0, i32 3 - store ptr @"main.(*impl).two", ptr %89, align 8 - %90 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %85, align 8 - %91 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 - %92 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %91, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %63, ptr %92, align 8 - %93 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %91, i32 0, i32 1 - store ptr %84, ptr %93, align 8 - %94 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %91, i32 0, i32 2 - store ptr @"main.(*impl).two", ptr %94, align 8 - %95 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %91, i32 0, i32 3 - store ptr @main.impl.two, ptr %95, align 8 - %96 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %91, align 8 - %97 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 80) - %98 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %97, i64 0 - store %"github.com/goplus/llgo/internal/abi.Method" %55, ptr %98, align 8 - %99 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %97, i64 1 - store %"github.com/goplus/llgo/internal/abi.Method" %96, ptr %99, align 8 - %100 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %101 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %100, i32 0, i32 0 - store ptr %97, ptr %101, align 8 - %102 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %100, i32 0, i32 1 - store i64 2, ptr %102, align 4 - %103 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %100, i32 0, i32 2 - store i64 2, ptr %103, align 4 - %104 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %100, align 8 - %105 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 80) - %106 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %105, i64 0 - store %"github.com/goplus/llgo/internal/abi.Method" %49, ptr %106, align 8 - %107 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %105, i64 1 - store %"github.com/goplus/llgo/internal/abi.Method" %90, ptr %107, align 8 - %108 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %109 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %108, i32 0, i32 0 - store ptr %105, ptr %109, align 8 - %110 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %108, i32 0, i32 1 - store i64 2, ptr %110, align 4 - %111 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %108, i32 0, i32 2 - store i64 2, ptr %111, align 4 - %112 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %108, align 8 - %113 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %114 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %113, i32 0, i32 0 - store ptr @1, ptr %114, align 8 - %115 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %113, i32 0, i32 1 - store i64 4, ptr %115, align 4 - %116 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %113, align 8 + %88 = load ptr, ptr @"_llgo_func$zNDVRsWTIpUPKouNUS805RGX--IV9qVK8B31IZbg5to", align 8 + %89 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %90 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %89, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %67, ptr %90, align 8 + %91 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %89, i32 0, i32 1 + store ptr %88, ptr %91, align 8 + %92 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %89, i32 0, i32 2 + store ptr @"main.(*impl).two", ptr %92, align 8 + %93 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %89, i32 0, i32 3 + store ptr @"main.(*impl).two", ptr %93, align 8 + %94 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %89, align 8 + %95 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %96 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %95, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %67, ptr %96, align 8 + %97 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %95, i32 0, i32 1 + store ptr %88, ptr %97, align 8 + %98 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %95, i32 0, i32 2 + store ptr @"main.(*impl).two", ptr %98, align 8 + %99 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %95, i32 0, i32 3 + store ptr @main.impl.two, ptr %99, align 8 + %100 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %95, align 8 + %101 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 80) + %102 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %101, i64 0 + store %"github.com/goplus/llgo/internal/abi.Method" %59, ptr %102, align 8 + %103 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %101, i64 1 + store %"github.com/goplus/llgo/internal/abi.Method" %100, ptr %103, align 8 + %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 %101, ptr %105, align 8 + %106 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %104, i32 0, i32 1 + store i64 2, ptr %106, align 4 + %107 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %104, i32 0, i32 2 + store i64 2, 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 80) + %110 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %109, i64 0 + store %"github.com/goplus/llgo/internal/abi.Method" %53, ptr %110, align 8 + %111 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %109, i64 1 + store %"github.com/goplus/llgo/internal/abi.Method" %94, ptr %111, align 8 + %112 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %113 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %112, i32 0, i32 0 + store ptr %109, ptr %113, align 8 + %114 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %112, i32 0, i32 1 + store i64 2, ptr %114, align 4 + %115 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %112, i32 0, i32 2 + store i64 2, ptr %115, align 4 + %116 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %112, align 8 %117 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 %118 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %117, i32 0, i32 0 - store ptr @5, ptr %118, align 8 + store ptr @2, ptr %118, align 8 %119 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %117, i32 0, i32 1 store i64 4, ptr %119, align 4 %120 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %117, align 8 - call void @"github.com/goplus/llgo/internal/runtime.InitNamed"(ptr %0, %"github.com/goplus/llgo/internal/runtime.String" %116, %"github.com/goplus/llgo/internal/runtime.String" %120, ptr %14, %"github.com/goplus/llgo/internal/runtime.Slice" %104, %"github.com/goplus/llgo/internal/runtime.Slice" %112) - %121 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 - %122 = load ptr, ptr @"_llgo_func$zNDVRsWTIpUPKouNUS805RGX--IV9qVK8B31IZbg5to", align 8 - %123 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %124 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %123, i32 0, i32 0 - store ptr @3, ptr %124, align 8 - %125 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %123, i32 0, i32 1 - store i64 8, ptr %125, align 4 - %126 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %123, align 8 - %127 = alloca %"github.com/goplus/llgo/internal/abi.Imethod", align 8 - %128 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Imethod", ptr %127, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %126, ptr %128, align 8 - %129 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Imethod", ptr %127, i32 0, i32 1 - store ptr %121, ptr %129, align 8 - %130 = load %"github.com/goplus/llgo/internal/abi.Imethod", ptr %127, align 8 - %131 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %132 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %131, i32 0, i32 0 - store ptr @4, ptr %132, align 8 - %133 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %131, i32 0, i32 1 - store i64 8, ptr %133, align 4 - %134 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %131, align 8 - %135 = alloca %"github.com/goplus/llgo/internal/abi.Imethod", align 8 - %136 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Imethod", ptr %135, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %134, ptr %136, align 8 - %137 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Imethod", ptr %135, i32 0, i32 1 - store ptr %122, ptr %137, align 8 - %138 = load %"github.com/goplus/llgo/internal/abi.Imethod", ptr %135, align 8 - %139 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 48) - %140 = getelementptr %"github.com/goplus/llgo/internal/abi.Imethod", ptr %139, i64 0 - store %"github.com/goplus/llgo/internal/abi.Imethod" %130, ptr %140, align 8 - %141 = getelementptr %"github.com/goplus/llgo/internal/abi.Imethod", ptr %139, i64 1 - store %"github.com/goplus/llgo/internal/abi.Imethod" %138, ptr %141, align 8 - %142 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %143 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %142, i32 0, i32 0 - store ptr %139, ptr %143, align 8 - %144 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %142, i32 0, i32 1 - store i64 2, ptr %144, align 4 - %145 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %142, i32 0, i32 2 - store i64 2, ptr %145, align 4 - %146 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %142, align 8 - %147 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %148 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %147, i32 0, i32 0 - store ptr @1, ptr %148, align 8 - %149 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %147, i32 0, i32 1 - store i64 4, ptr %149, align 4 - %150 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %147, align 8 + %121 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %122 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %121, i32 0, i32 0 + store ptr @6, ptr %122, align 8 + %123 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %121, i32 0, i32 1 + store i64 4, ptr %123, align 4 + %124 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %121, align 8 + call void @"github.com/goplus/llgo/internal/runtime.InitNamed"(ptr %4, %"github.com/goplus/llgo/internal/runtime.String" %120, %"github.com/goplus/llgo/internal/runtime.String" %124, ptr %18, %"github.com/goplus/llgo/internal/runtime.Slice" %108, %"github.com/goplus/llgo/internal/runtime.Slice" %116) + %125 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 + %126 = load ptr, ptr @"_llgo_func$zNDVRsWTIpUPKouNUS805RGX--IV9qVK8B31IZbg5to", align 8 + %127 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %128 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %127, i32 0, i32 0 + store ptr @4, ptr %128, align 8 + %129 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %127, i32 0, i32 1 + store i64 8, ptr %129, align 4 + %130 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %127, align 8 + %131 = alloca %"github.com/goplus/llgo/internal/abi.Imethod", align 8 + %132 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Imethod", ptr %131, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %130, ptr %132, align 8 + %133 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Imethod", ptr %131, i32 0, i32 1 + store ptr %125, ptr %133, align 8 + %134 = load %"github.com/goplus/llgo/internal/abi.Imethod", ptr %131, align 8 + %135 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %136 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %135, i32 0, i32 0 + store ptr @5, ptr %136, align 8 + %137 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %135, i32 0, i32 1 + store i64 8, ptr %137, align 4 + %138 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %135, align 8 + %139 = alloca %"github.com/goplus/llgo/internal/abi.Imethod", align 8 + %140 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Imethod", ptr %139, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %138, ptr %140, align 8 + %141 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Imethod", ptr %139, i32 0, i32 1 + store ptr %126, ptr %141, align 8 + %142 = load %"github.com/goplus/llgo/internal/abi.Imethod", ptr %139, align 8 + %143 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 48) + %144 = getelementptr %"github.com/goplus/llgo/internal/abi.Imethod", ptr %143, i64 0 + store %"github.com/goplus/llgo/internal/abi.Imethod" %134, ptr %144, align 8 + %145 = getelementptr %"github.com/goplus/llgo/internal/abi.Imethod", ptr %143, i64 1 + store %"github.com/goplus/llgo/internal/abi.Imethod" %142, ptr %145, align 8 + %146 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %147 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %146, i32 0, i32 0 + store ptr %143, ptr %147, align 8 + %148 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %146, i32 0, i32 1 + store i64 2, ptr %148, align 4 + %149 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %146, i32 0, i32 2 + store i64 2, ptr %149, align 4 + %150 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %146, align 8 %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 null, ptr %152, align 8 + store ptr @2, ptr %152, align 8 %153 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %151, i32 0, i32 1 - store i64 0, ptr %153, align 4 + store i64 4, ptr %153, align 4 %154 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %151, align 8 - %155 = call ptr @"github.com/goplus/llgo/internal/runtime.Interface"(%"github.com/goplus/llgo/internal/runtime.String" %150, %"github.com/goplus/llgo/internal/runtime.String" %154, %"github.com/goplus/llgo/internal/runtime.Slice" %146) - store ptr %155, ptr @"main.iface$zZ89tENb5h_KNjvpxf1TXPfaWFYn0IZrZwyVf42lRtA", align 8 - %156 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 - %157 = load ptr, ptr @"_llgo_func$zNDVRsWTIpUPKouNUS805RGX--IV9qVK8B31IZbg5to", align 8 - %158 = load ptr, ptr @_llgo_main.I, align 8 - %159 = icmp eq ptr %158, null - br i1 %159, label %_llgo_11, label %_llgo_12 + %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 null, ptr %156, align 8 + %157 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %155, i32 0, i32 1 + store i64 0, ptr %157, align 4 + %158 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %155, align 8 + %159 = call ptr @"github.com/goplus/llgo/internal/runtime.Interface"(%"github.com/goplus/llgo/internal/runtime.String" %154, %"github.com/goplus/llgo/internal/runtime.String" %158, %"github.com/goplus/llgo/internal/runtime.Slice" %150) + store ptr %159, ptr @"main.iface$zZ89tENb5h_KNjvpxf1TXPfaWFYn0IZrZwyVf42lRtA", align 8 + %160 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 + %161 = load ptr, ptr @"_llgo_func$zNDVRsWTIpUPKouNUS805RGX--IV9qVK8B31IZbg5to", align 8 + %162 = load ptr, ptr @_llgo_main.I, align 8 + %163 = icmp eq ptr %162, null + br i1 %163, label %_llgo_11, label %_llgo_12 _llgo_11: ; preds = %_llgo_10 - %160 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %161 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %160, i32 0, i32 0 - store ptr @3, ptr %161, align 8 - %162 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %160, i32 0, i32 1 - store i64 8, ptr %162, align 4 - %163 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %160, align 8 - %164 = alloca %"github.com/goplus/llgo/internal/abi.Imethod", align 8 - %165 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Imethod", ptr %164, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %163, ptr %165, align 8 - %166 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Imethod", ptr %164, i32 0, i32 1 - store ptr %156, ptr %166, align 8 - %167 = load %"github.com/goplus/llgo/internal/abi.Imethod", 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 @4, ptr %169, align 8 - %170 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %168, i32 0, i32 1 - store i64 8, ptr %170, align 4 - %171 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %168, align 8 - %172 = alloca %"github.com/goplus/llgo/internal/abi.Imethod", align 8 - %173 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Imethod", ptr %172, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %171, ptr %173, align 8 - %174 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Imethod", ptr %172, i32 0, i32 1 - store ptr %157, ptr %174, align 8 - %175 = load %"github.com/goplus/llgo/internal/abi.Imethod", ptr %172, align 8 - %176 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 48) - %177 = getelementptr %"github.com/goplus/llgo/internal/abi.Imethod", ptr %176, i64 0 - store %"github.com/goplus/llgo/internal/abi.Imethod" %167, ptr %177, align 8 - %178 = getelementptr %"github.com/goplus/llgo/internal/abi.Imethod", ptr %176, i64 1 - store %"github.com/goplus/llgo/internal/abi.Imethod" %175, ptr %178, align 8 - %179 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %180 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %179, i32 0, i32 0 - store ptr %176, ptr %180, align 8 - %181 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %179, i32 0, i32 1 - store i64 2, ptr %181, align 4 - %182 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %179, i32 0, i32 2 - store i64 2, ptr %182, align 4 - %183 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %179, align 8 - %184 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %185 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %184, i32 0, i32 0 - store ptr @1, ptr %185, align 8 - %186 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %184, i32 0, i32 1 - store i64 4, ptr %186, align 4 - %187 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %184, align 8 + %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 @4, ptr %165, align 8 + %166 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %164, i32 0, i32 1 + store i64 8, ptr %166, align 4 + %167 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %164, align 8 + %168 = alloca %"github.com/goplus/llgo/internal/abi.Imethod", align 8 + %169 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Imethod", ptr %168, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %167, ptr %169, align 8 + %170 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Imethod", ptr %168, i32 0, i32 1 + store ptr %160, ptr %170, align 8 + %171 = load %"github.com/goplus/llgo/internal/abi.Imethod", ptr %168, align 8 + %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 @5, ptr %173, align 8 + %174 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %172, i32 0, i32 1 + store i64 8, ptr %174, align 4 + %175 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %172, align 8 + %176 = alloca %"github.com/goplus/llgo/internal/abi.Imethod", align 8 + %177 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Imethod", ptr %176, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %175, ptr %177, align 8 + %178 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Imethod", ptr %176, i32 0, i32 1 + store ptr %161, ptr %178, align 8 + %179 = load %"github.com/goplus/llgo/internal/abi.Imethod", ptr %176, align 8 + %180 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 48) + %181 = getelementptr %"github.com/goplus/llgo/internal/abi.Imethod", ptr %180, i64 0 + store %"github.com/goplus/llgo/internal/abi.Imethod" %171, ptr %181, align 8 + %182 = getelementptr %"github.com/goplus/llgo/internal/abi.Imethod", ptr %180, i64 1 + store %"github.com/goplus/llgo/internal/abi.Imethod" %179, ptr %182, align 8 + %183 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %184 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %183, i32 0, i32 0 + store ptr %180, ptr %184, align 8 + %185 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %183, i32 0, i32 1 + store i64 2, ptr %185, align 4 + %186 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %183, i32 0, i32 2 + store i64 2, ptr %186, align 4 + %187 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %183, align 8 %188 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 %189 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %188, i32 0, i32 0 - store ptr @6, ptr %189, align 8 + store ptr @2, ptr %189, align 8 %190 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %188, i32 0, i32 1 - store i64 6, ptr %190, align 4 + store i64 4, ptr %190, align 4 %191 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %188, align 8 - %192 = call ptr @"github.com/goplus/llgo/internal/runtime.Interface"(%"github.com/goplus/llgo/internal/runtime.String" %187, %"github.com/goplus/llgo/internal/runtime.String" %191, %"github.com/goplus/llgo/internal/runtime.Slice" %183) - store ptr %192, ptr @_llgo_main.I, align 8 + %192 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %193 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %192, i32 0, i32 0 + store ptr @7, ptr %193, align 8 + %194 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %192, i32 0, i32 1 + store i64 6, ptr %194, align 4 + %195 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %192, align 8 + %196 = call ptr @"github.com/goplus/llgo/internal/runtime.Interface"(%"github.com/goplus/llgo/internal/runtime.String" %191, %"github.com/goplus/llgo/internal/runtime.String" %195, %"github.com/goplus/llgo/internal/runtime.Slice" %187) + store ptr %196, ptr @_llgo_main.I, align 8 br label %_llgo_12 _llgo_12: ; preds = %_llgo_11, %_llgo_10 ret void } -declare ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(i64, i64, i64, i64) +declare ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(%"github.com/goplus/llgo/internal/runtime.String", i64, i64, i64, 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") diff --git a/cl/_testgo/interface/out.ll b/cl/_testgo/interface/out.ll index 64dc09d6a..0a79b918a 100644 --- a/cl/_testgo/interface/out.ll +++ b/cl/_testgo/interface/out.ll @@ -14,26 +14,29 @@ source_filename = "main" @__llgo_argc = global i32 0, align 4 @__llgo_argv = global ptr null, align 8 @_llgo_main.Game1 = linkonce global ptr null, align 8 +@0 = private unnamed_addr constant [10 x i8] c"main.Game1", align 1 @"_llgo_struct$cJmCzeVn0orHWafCrTGAnbbAF46F2A4Fms4bJBm8ITI" = linkonce global ptr null, align 8 -@0 = private unnamed_addr constant [4 x i8] c"Game", align 1 -@1 = private unnamed_addr constant [4 x i8] c"main", align 1 -@2 = private unnamed_addr constant [4 x i8] c"Load", align 1 +@1 = private unnamed_addr constant [43 x i8] c"github.com/goplus/llgo/cl/internal/foo.Game", align 1 +@2 = private unnamed_addr constant [4 x i8] c"Game", align 1 +@3 = private unnamed_addr constant [4 x i8] c"main", align 1 +@4 = private unnamed_addr constant [4 x i8] c"Load", align 1 @"_llgo_func$2_iS07vIlF2_rZqWB5eU0IvP_9HviM4MYZNkXZDvbac" = linkonce global ptr null, align 8 -@3 = private unnamed_addr constant [8 x i8] c"initGame", align 1 -@4 = private unnamed_addr constant [47 x i8] c"github.com/goplus/llgo/cl/internal/foo.initGame", align 1 -@5 = private unnamed_addr constant [5 x i8] c"Game1", align 1 +@5 = private unnamed_addr constant [8 x i8] c"initGame", align 1 +@6 = private unnamed_addr constant [47 x i8] c"github.com/goplus/llgo/cl/internal/foo.initGame", align 1 +@7 = 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 +@8 = private unnamed_addr constant [10 x i8] c"main.Game2", align 1 @"_llgo_struct$n1H8J_3prDN3firMwPxBLVTkE5hJ9Di-AqNvaC9jczw" = linkonce global ptr null, align 8 -@6 = private unnamed_addr constant [13 x i8] c"main.initGame", align 1 -@7 = private unnamed_addr constant [5 x i8] c"Game2", align 1 +@9 = private unnamed_addr constant [13 x i8] c"main.initGame", align 1 +@10 = 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 -@8 = private unnamed_addr constant [38 x i8] c"github.com/goplus/llgo/cl/internal/foo", align 1 -@9 = private unnamed_addr constant [44 x i8] c"github.com/goplus/llgo/cl/internal/foo.Gamer", align 1 +@11 = private unnamed_addr constant [38 x i8] c"github.com/goplus/llgo/cl/internal/foo", align 1 +@12 = private unnamed_addr constant [44 x i8] c"github.com/goplus/llgo/cl/internal/foo.Gamer", align 1 @"main.iface$sO8a1LvuUsjXwiwaC6sR9-L4DiYgiOnZi7iosyShJXg" = linkonce global ptr null, align 8 -@10 = private unnamed_addr constant [2 x i8] c"OK", align 1 -@11 = private unnamed_addr constant [4 x i8] c"FAIL", align 1 +@13 = private unnamed_addr constant [2 x i8] c"OK", align 1 +@14 = private unnamed_addr constant [4 x i8] c"FAIL", align 1 define void @main.Game1.Load(%main.Game1 %0) { _llgo_0: @@ -178,7 +181,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 @10, ptr %51, align 8 + store ptr @13, 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 @@ -223,7 +226,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 @11, ptr %73, align 8 + store ptr @14, 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 @@ -251,412 +254,444 @@ 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 8, i64 2, i64 2) - %1 = load ptr, ptr @_llgo_main.Game1, align 8 - %2 = icmp eq ptr %1, null - br i1 %2, label %_llgo_1, label %_llgo_2 + %0 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %1 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %0, i32 0, i32 0 + store ptr @0, ptr %1, align 8 + %2 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %0, i32 0, i32 1 + store i64 10, ptr %2, align 4 + %3 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %0, align 8 + %4 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(%"github.com/goplus/llgo/internal/runtime.String" %3, i64 25, i64 8, i64 2, i64 2) + %5 = load ptr, ptr @_llgo_main.Game1, align 8 + %6 = icmp eq ptr %5, null + br i1 %6, label %_llgo_1, label %_llgo_2 _llgo_1: ; preds = %_llgo_0 - call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %0) - store ptr %0, ptr @_llgo_main.Game1, align 8 + call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %4) + store ptr %4, ptr @_llgo_main.Game1, align 8 br label %_llgo_2 _llgo_2: ; preds = %_llgo_1, %_llgo_0 - %3 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(i64 25, i64 0, i64 0, i64 2) - %4 = load ptr, ptr @"_llgo_struct$cJmCzeVn0orHWafCrTGAnbbAF46F2A4Fms4bJBm8ITI", align 8 - %5 = icmp eq ptr %4, null - br i1 %5, label %_llgo_3, label %_llgo_4 + %7 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %8 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %7, i32 0, i32 0 + store ptr @1, ptr %8, align 8 + %9 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %7, i32 0, i32 1 + store i64 43, ptr %9, align 4 + %10 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %7, align 8 + %11 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(%"github.com/goplus/llgo/internal/runtime.String" %10, i64 25, i64 0, i64 0, i64 2) + %12 = load ptr, ptr @"_llgo_struct$cJmCzeVn0orHWafCrTGAnbbAF46F2A4Fms4bJBm8ITI", align 8 + %13 = icmp eq ptr %12, null + br i1 %13, label %_llgo_3, label %_llgo_4 _llgo_3: ; preds = %_llgo_2 - %6 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %7 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %6, i32 0, i32 0 - store ptr @0, ptr %7, align 8 - %8 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %6, i32 0, i32 1 - store i64 4, ptr %8, align 4 - %9 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %6, align 8 - %10 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %11 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %10, i32 0, i32 0 - store ptr null, ptr %11, align 8 - %12 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %10, i32 0, i32 1 - store i64 0, ptr %12, align 4 - %13 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %10, align 8 - %14 = call ptr @"github.com/goplus/llgo/internal/runtime.PointerTo"(ptr %3) - %15 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %9, ptr %14, i64 0, %"github.com/goplus/llgo/internal/runtime.String" %13, i1 true) - %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 @1, ptr %17, align 8 - %18 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %16, i32 0, i32 1 - store i64 4, ptr %18, align 4 - %19 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %16, align 8 - %20 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 56) - %21 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %20, i64 0 - store %"github.com/goplus/llgo/internal/abi.StructField" %15, ptr %21, align 8 - %22 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %23 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %22, i32 0, i32 0 - store ptr %20, ptr %23, align 8 - %24 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %22, i32 0, i32 1 - store i64 1, ptr %24, align 4 - %25 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %22, i32 0, i32 2 - store i64 1, ptr %25, align 4 - %26 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %22, align 8 - %27 = call ptr @"github.com/goplus/llgo/internal/runtime.Struct"(%"github.com/goplus/llgo/internal/runtime.String" %19, i64 8, %"github.com/goplus/llgo/internal/runtime.Slice" %26) - call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %27) - store ptr %27, ptr @"_llgo_struct$cJmCzeVn0orHWafCrTGAnbbAF46F2A4Fms4bJBm8ITI", align 8 + %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 @2, 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 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %19 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %18, i32 0, i32 0 + store ptr null, ptr %19, align 8 + %20 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %18, i32 0, i32 1 + store i64 0, ptr %20, align 4 + %21 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %18, align 8 + %22 = call ptr @"github.com/goplus/llgo/internal/runtime.PointerTo"(ptr %11) + %23 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %17, ptr %22, i64 0, %"github.com/goplus/llgo/internal/runtime.String" %21, i1 true) + %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 @3, ptr %25, align 8 + %26 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %24, i32 0, i32 1 + store i64 4, ptr %26, align 4 + %27 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %24, align 8 + %28 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 56) + %29 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %28, i64 0 + store %"github.com/goplus/llgo/internal/abi.StructField" %23, ptr %29, align 8 + %30 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %31 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %30, i32 0, i32 0 + store ptr %28, ptr %31, align 8 + %32 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %30, i32 0, i32 1 + store i64 1, ptr %32, align 4 + %33 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %30, i32 0, i32 2 + store i64 1, ptr %33, align 4 + %34 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %30, align 8 + %35 = call ptr @"github.com/goplus/llgo/internal/runtime.Struct"(%"github.com/goplus/llgo/internal/runtime.String" %27, i64 8, %"github.com/goplus/llgo/internal/runtime.Slice" %34) + call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %35) + store ptr %35, ptr @"_llgo_struct$cJmCzeVn0orHWafCrTGAnbbAF46F2A4Fms4bJBm8ITI", align 8 br label %_llgo_4 _llgo_4: ; preds = %_llgo_3, %_llgo_2 - %28 = load ptr, ptr @"_llgo_struct$cJmCzeVn0orHWafCrTGAnbbAF46F2A4Fms4bJBm8ITI", align 8 - br i1 %2, label %_llgo_5, label %_llgo_6 + %36 = load ptr, ptr @"_llgo_struct$cJmCzeVn0orHWafCrTGAnbbAF46F2A4Fms4bJBm8ITI", align 8 + br i1 %6, label %_llgo_5, label %_llgo_6 _llgo_5: ; preds = %_llgo_4 - %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 @2, ptr %30, align 8 - %31 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %29, i32 0, i32 1 - store i64 4, ptr %31, align 4 - %32 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %29, align 8 - %33 = load ptr, ptr @"_llgo_func$2_iS07vIlF2_rZqWB5eU0IvP_9HviM4MYZNkXZDvbac", align 8 - %34 = icmp eq ptr %33, null - br i1 %34, label %_llgo_7, label %_llgo_8 + %37 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %38 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %37, i32 0, i32 0 + store ptr @4, ptr %38, align 8 + %39 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %37, i32 0, i32 1 + store i64 4, ptr %39, align 4 + %40 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %37, align 8 + %41 = load ptr, ptr @"_llgo_func$2_iS07vIlF2_rZqWB5eU0IvP_9HviM4MYZNkXZDvbac", align 8 + %42 = icmp eq ptr %41, null + br i1 %42, label %_llgo_7, label %_llgo_8 _llgo_6: ; preds = %_llgo_8, %_llgo_4 - %35 = load ptr, ptr @"*_llgo_main.Game1", align 8 - %36 = icmp eq ptr %35, null - br i1 %36, label %_llgo_9, label %_llgo_10 + %43 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %44 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %43, i32 0, i32 0 + store ptr @0, ptr %44, align 8 + %45 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %43, i32 0, i32 1 + store i64 10, ptr %45, align 4 + %46 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %43, align 8 + %47 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(%"github.com/goplus/llgo/internal/runtime.String" %46, i64 25, i64 8, i64 2, i64 2) + %48 = load ptr, ptr @"*_llgo_main.Game1", align 8 + %49 = icmp eq ptr %48, null + br i1 %49, label %_llgo_9, label %_llgo_10 _llgo_7: ; preds = %_llgo_5 - %37 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 0) - %38 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %39 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %38, i32 0, i32 0 - store ptr %37, ptr %39, align 8 - %40 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %38, i32 0, i32 1 - store i64 0, ptr %40, align 4 - %41 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %38, i32 0, i32 2 - store i64 0, ptr %41, align 4 - %42 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %38, align 8 - %43 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 0) - %44 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %45 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %44, i32 0, i32 0 - store ptr %43, ptr %45, align 8 - %46 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %44, i32 0, i32 1 - store i64 0, ptr %46, align 4 - %47 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %44, i32 0, i32 2 - store i64 0, ptr %47, align 4 - %48 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %44, align 8 - %49 = call ptr @"github.com/goplus/llgo/internal/runtime.Func"(%"github.com/goplus/llgo/internal/runtime.Slice" %42, %"github.com/goplus/llgo/internal/runtime.Slice" %48, i1 false) - call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %49) - store ptr %49, ptr @"_llgo_func$2_iS07vIlF2_rZqWB5eU0IvP_9HviM4MYZNkXZDvbac", align 8 + %50 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 0) + %51 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %52 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %51, i32 0, i32 0 + store ptr %50, ptr %52, align 8 + %53 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %51, i32 0, i32 1 + store i64 0, ptr %53, align 4 + %54 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %51, i32 0, i32 2 + store i64 0, ptr %54, align 4 + %55 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %51, align 8 + %56 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 0) + %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 %56, ptr %58, align 8 + %59 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %57, i32 0, i32 1 + store i64 0, ptr %59, align 4 + %60 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %57, i32 0, i32 2 + store i64 0, ptr %60, align 4 + %61 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %57, align 8 + %62 = call ptr @"github.com/goplus/llgo/internal/runtime.Func"(%"github.com/goplus/llgo/internal/runtime.Slice" %55, %"github.com/goplus/llgo/internal/runtime.Slice" %61, i1 false) + call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %62) + store ptr %62, ptr @"_llgo_func$2_iS07vIlF2_rZqWB5eU0IvP_9HviM4MYZNkXZDvbac", align 8 br label %_llgo_8 _llgo_8: ; preds = %_llgo_7, %_llgo_5 - %50 = load ptr, ptr @"_llgo_func$2_iS07vIlF2_rZqWB5eU0IvP_9HviM4MYZNkXZDvbac", align 8 - %51 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 - %52 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %51, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %32, ptr %52, align 8 - %53 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %51, i32 0, i32 1 - store ptr %50, ptr %53, align 8 - %54 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %51, i32 0, i32 2 - store ptr @"main.(*Game1).Load", ptr %54, align 8 - %55 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %51, i32 0, i32 3 - store ptr @"main.(*Game1).Load", ptr %55, align 8 - %56 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %51, 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" %32, ptr %58, align 8 - %59 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %57, i32 0, i32 1 - store ptr %50, ptr %59, align 8 - %60 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %57, i32 0, i32 2 - store ptr @"main.(*Game1).Load", ptr %60, align 8 - %61 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %57, i32 0, i32 3 - store ptr @main.Game1.Load, ptr %61, align 8 - %62 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %57, 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 @3, ptr %64, align 8 - %65 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %63, i32 0, i32 1 - store i64 8, 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 @4, ptr %68, align 8 - %69 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %67, i32 0, i32 1 - store i64 47, ptr %69, align 4 - %70 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %67, align 8 - %71 = load ptr, ptr @"_llgo_func$2_iS07vIlF2_rZqWB5eU0IvP_9HviM4MYZNkXZDvbac", align 8 - %72 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 - %73 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %72, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %70, ptr %73, align 8 - %74 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %72, i32 0, i32 1 - store ptr %71, ptr %74, align 8 - %75 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %72, i32 0, i32 2 - store ptr @"github.com/goplus/llgo/cl/internal/foo.(*Game).initGame", ptr %75, align 8 - %76 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %72, i32 0, i32 3 - store ptr @"github.com/goplus/llgo/cl/internal/foo.(*Game).initGame", ptr %76, align 8 - %77 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %72, align 8 - %78 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 40) - %79 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %78, i64 0 - store %"github.com/goplus/llgo/internal/abi.Method" %62, ptr %79, align 8 - %80 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %81 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %80, i32 0, i32 0 - store ptr %78, ptr %81, align 8 - %82 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %80, i32 0, i32 1 - store i64 1, ptr %82, align 4 - %83 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %80, i32 0, i32 2 - store i64 1, ptr %83, align 4 - %84 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %80, align 8 - %85 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 80) - %86 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %85, i64 0 - store %"github.com/goplus/llgo/internal/abi.Method" %56, ptr %86, align 8 - %87 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %85, i64 1 - store %"github.com/goplus/llgo/internal/abi.Method" %77, 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 = 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 @1, 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 @5, ptr %98, align 8 - %99 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %97, i32 0, i32 1 - store i64 5, ptr %99, align 4 - %100 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %97, align 8 - call void @"github.com/goplus/llgo/internal/runtime.InitNamed"(ptr %0, %"github.com/goplus/llgo/internal/runtime.String" %96, %"github.com/goplus/llgo/internal/runtime.String" %100, ptr %28, %"github.com/goplus/llgo/internal/runtime.Slice" %84, %"github.com/goplus/llgo/internal/runtime.Slice" %92) + %63 = load ptr, ptr @"_llgo_func$2_iS07vIlF2_rZqWB5eU0IvP_9HviM4MYZNkXZDvbac", align 8 + %64 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %65 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %64, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %40, ptr %65, align 8 + %66 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %64, i32 0, i32 1 + store ptr %63, ptr %66, align 8 + %67 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %64, i32 0, i32 2 + store ptr @"main.(*Game1).Load", ptr %67, align 8 + %68 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %64, i32 0, i32 3 + store ptr @"main.(*Game1).Load", ptr %68, align 8 + %69 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %64, align 8 + %70 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %71 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %70, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %40, ptr %71, align 8 + %72 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %70, i32 0, i32 1 + store ptr %63, ptr %72, align 8 + %73 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %70, i32 0, i32 2 + store ptr @"main.(*Game1).Load", ptr %73, align 8 + %74 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %70, i32 0, i32 3 + store ptr @main.Game1.Load, ptr %74, align 8 + %75 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %70, 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 @5, ptr %77, align 8 + %78 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %76, i32 0, i32 1 + store i64 8, ptr %78, align 4 + %79 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %76, align 8 + %80 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %81 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %80, i32 0, i32 0 + store ptr @6, ptr %81, align 8 + %82 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %80, i32 0, i32 1 + store i64 47, ptr %82, align 4 + %83 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %80, align 8 + %84 = load ptr, ptr @"_llgo_func$2_iS07vIlF2_rZqWB5eU0IvP_9HviM4MYZNkXZDvbac", align 8 + %85 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %86 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %85, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %83, ptr %86, align 8 + %87 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %85, i32 0, i32 1 + store ptr %84, ptr %87, align 8 + %88 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %85, i32 0, i32 2 + store ptr @"github.com/goplus/llgo/cl/internal/foo.(*Game).initGame", ptr %88, align 8 + %89 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %85, i32 0, i32 3 + store ptr @"github.com/goplus/llgo/cl/internal/foo.(*Game).initGame", ptr %89, align 8 + %90 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %85, align 8 + %91 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 40) + %92 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %91, i64 0 + store %"github.com/goplus/llgo/internal/abi.Method" %75, ptr %92, align 8 + %93 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %94 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %93, i32 0, i32 0 + store ptr %91, ptr %94, align 8 + %95 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %93, i32 0, i32 1 + store i64 1, ptr %95, align 4 + %96 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %93, i32 0, i32 2 + store i64 1, ptr %96, align 4 + %97 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %93, align 8 + %98 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 80) + %99 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %98, i64 0 + store %"github.com/goplus/llgo/internal/abi.Method" %69, ptr %99, align 8 + %100 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %98, i64 1 + store %"github.com/goplus/llgo/internal/abi.Method" %90, ptr %100, align 8 + %101 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %102 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %101, i32 0, i32 0 + store ptr %98, ptr %102, align 8 + %103 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %101, i32 0, i32 1 + store i64 2, ptr %103, align 4 + %104 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %101, i32 0, i32 2 + store i64 2, ptr %104, align 4 + %105 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %101, align 8 + %106 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %107 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %106, i32 0, i32 0 + store ptr @3, ptr %107, align 8 + %108 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %106, i32 0, i32 1 + store i64 4, ptr %108, align 4 + %109 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %106, align 8 + %110 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %111 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %110, i32 0, i32 0 + store ptr @7, ptr %111, align 8 + %112 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %110, i32 0, i32 1 + store i64 5, ptr %112, align 4 + %113 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %110, align 8 + call void @"github.com/goplus/llgo/internal/runtime.InitNamed"(ptr %4, %"github.com/goplus/llgo/internal/runtime.String" %109, %"github.com/goplus/llgo/internal/runtime.String" %113, ptr %36, %"github.com/goplus/llgo/internal/runtime.Slice" %97, %"github.com/goplus/llgo/internal/runtime.Slice" %105) br label %_llgo_6 _llgo_9: ; preds = %_llgo_6 - %101 = call ptr @"github.com/goplus/llgo/internal/runtime.PointerTo"(ptr %0) - call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %101) - store ptr %101, ptr @"*_llgo_main.Game1", align 8 + %114 = call ptr @"github.com/goplus/llgo/internal/runtime.PointerTo"(ptr %47) + call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %114) + store ptr %114, ptr @"*_llgo_main.Game1", align 8 br label %_llgo_10 _llgo_10: ; preds = %_llgo_9, %_llgo_6 - %102 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(i64 25, i64 0, i64 0, i64 1) - %103 = load ptr, ptr @_llgo_main.Game2, align 8 - %104 = icmp eq ptr %103, null - br i1 %104, label %_llgo_11, label %_llgo_12 + %115 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %116 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %115, i32 0, i32 0 + store ptr @8, ptr %116, align 8 + %117 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %115, i32 0, i32 1 + store i64 10, ptr %117, align 4 + %118 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %115, align 8 + %119 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(%"github.com/goplus/llgo/internal/runtime.String" %118, i64 25, i64 0, i64 0, i64 1) + %120 = load ptr, ptr @_llgo_main.Game2, align 8 + %121 = icmp eq ptr %120, null + br i1 %121, label %_llgo_11, label %_llgo_12 _llgo_11: ; preds = %_llgo_10 - store ptr %102, ptr @_llgo_main.Game2, align 8 + store ptr %119, ptr @_llgo_main.Game2, align 8 br label %_llgo_12 _llgo_12: ; preds = %_llgo_11, %_llgo_10 - %105 = load ptr, ptr @"_llgo_struct$n1H8J_3prDN3firMwPxBLVTkE5hJ9Di-AqNvaC9jczw", align 8 - %106 = icmp eq ptr %105, null - br i1 %106, label %_llgo_13, label %_llgo_14 + %122 = load ptr, ptr @"_llgo_struct$n1H8J_3prDN3firMwPxBLVTkE5hJ9Di-AqNvaC9jczw", align 8 + %123 = icmp eq ptr %122, null + br i1 %123, label %_llgo_13, label %_llgo_14 _llgo_13: ; preds = %_llgo_12 - %107 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %108 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %107, i32 0, i32 0 - store ptr @1, ptr %108, align 8 - %109 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %107, i32 0, i32 1 - store i64 4, ptr %109, align 4 - %110 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %107, align 8 - %111 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 0) - %112 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %113 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %112, i32 0, i32 0 - store ptr %111, ptr %113, align 8 - %114 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %112, i32 0, i32 1 - store i64 0, ptr %114, align 4 - %115 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %112, i32 0, i32 2 - store i64 0, ptr %115, align 4 - %116 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %112, align 8 - %117 = call ptr @"github.com/goplus/llgo/internal/runtime.Struct"(%"github.com/goplus/llgo/internal/runtime.String" %110, i64 0, %"github.com/goplus/llgo/internal/runtime.Slice" %116) - store ptr %117, ptr @"_llgo_struct$n1H8J_3prDN3firMwPxBLVTkE5hJ9Di-AqNvaC9jczw", align 8 + %124 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %125 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %124, i32 0, i32 0 + store ptr @3, ptr %125, align 8 + %126 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %124, i32 0, i32 1 + store i64 4, ptr %126, align 4 + %127 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %124, align 8 + %128 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 0) + %129 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %130 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %129, i32 0, i32 0 + store ptr %128, ptr %130, align 8 + %131 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %129, i32 0, i32 1 + store i64 0, ptr %131, align 4 + %132 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %129, i32 0, i32 2 + store i64 0, ptr %132, align 4 + %133 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %129, align 8 + %134 = call ptr @"github.com/goplus/llgo/internal/runtime.Struct"(%"github.com/goplus/llgo/internal/runtime.String" %127, i64 0, %"github.com/goplus/llgo/internal/runtime.Slice" %133) + store ptr %134, ptr @"_llgo_struct$n1H8J_3prDN3firMwPxBLVTkE5hJ9Di-AqNvaC9jczw", align 8 br label %_llgo_14 _llgo_14: ; preds = %_llgo_13, %_llgo_12 - %118 = load ptr, ptr @"_llgo_struct$n1H8J_3prDN3firMwPxBLVTkE5hJ9Di-AqNvaC9jczw", align 8 - br i1 %104, label %_llgo_15, label %_llgo_16 + %135 = load ptr, ptr @"_llgo_struct$n1H8J_3prDN3firMwPxBLVTkE5hJ9Di-AqNvaC9jczw", align 8 + br i1 %121, label %_llgo_15, label %_llgo_16 _llgo_15: ; preds = %_llgo_14 - %119 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %120 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %119, i32 0, i32 0 - store ptr @3, ptr %120, align 8 - %121 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %119, i32 0, i32 1 - store i64 8, ptr %121, align 4 - %122 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %119, align 8 - %123 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %124 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %123, i32 0, i32 0 - store ptr @6, ptr %124, align 8 - %125 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %123, i32 0, i32 1 - store i64 13, ptr %125, align 4 - %126 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %123, align 8 - %127 = load ptr, ptr @"_llgo_func$2_iS07vIlF2_rZqWB5eU0IvP_9HviM4MYZNkXZDvbac", align 8 - %128 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 - %129 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %128, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %126, ptr %129, align 8 - %130 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %128, i32 0, i32 1 - store ptr %127, ptr %130, align 8 - %131 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %128, i32 0, i32 2 - store ptr @"main.(*Game2).initGame", ptr %131, align 8 - %132 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %128, i32 0, i32 3 - store ptr @"main.(*Game2).initGame", ptr %132, align 8 - %133 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %128, align 8 - %134 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 40) - %135 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %134, i64 0 - store %"github.com/goplus/llgo/internal/abi.Method" %133, ptr %135, align 8 - %136 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %137 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %136, i32 0, i32 0 - store ptr %134, ptr %137, align 8 - %138 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %136, i32 0, i32 1 - store i64 1, ptr %138, align 4 - %139 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %136, i32 0, i32 2 - store i64 1, ptr %139, align 4 - %140 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %136, 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 @1, ptr %142, align 8 - %143 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %141, i32 0, i32 1 - store i64 4, ptr %143, align 4 - %144 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %141, align 8 - %145 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %146 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %145, i32 0, i32 0 - store ptr @7, ptr %146, align 8 - %147 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %145, i32 0, i32 1 - store i64 5, ptr %147, align 4 - %148 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %145, align 8 - call void @"github.com/goplus/llgo/internal/runtime.InitNamed"(ptr %102, %"github.com/goplus/llgo/internal/runtime.String" %144, %"github.com/goplus/llgo/internal/runtime.String" %148, ptr %118, { ptr, i64, i64 } zeroinitializer, %"github.com/goplus/llgo/internal/runtime.Slice" %140) + %136 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %137 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %136, i32 0, i32 0 + store ptr @5, ptr %137, align 8 + %138 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %136, i32 0, i32 1 + store i64 8, ptr %138, align 4 + %139 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %136, align 8 + %140 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %141 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %140, i32 0, i32 0 + store ptr @9, ptr %141, align 8 + %142 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %140, i32 0, i32 1 + store i64 13, ptr %142, align 4 + %143 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %140, align 8 + %144 = load ptr, ptr @"_llgo_func$2_iS07vIlF2_rZqWB5eU0IvP_9HviM4MYZNkXZDvbac", align 8 + %145 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %146 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %145, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %143, ptr %146, align 8 + %147 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %145, i32 0, i32 1 + store ptr %144, ptr %147, align 8 + %148 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %145, i32 0, i32 2 + store ptr @"main.(*Game2).initGame", ptr %148, align 8 + %149 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %145, i32 0, i32 3 + store ptr @"main.(*Game2).initGame", ptr %149, align 8 + %150 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %145, align 8 + %151 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 40) + %152 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %151, i64 0 + store %"github.com/goplus/llgo/internal/abi.Method" %150, ptr %152, align 8 + %153 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %154 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %153, i32 0, i32 0 + store ptr %151, ptr %154, align 8 + %155 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %153, i32 0, i32 1 + store i64 1, ptr %155, align 4 + %156 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %153, i32 0, i32 2 + store i64 1, ptr %156, align 4 + %157 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %153, align 8 + %158 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %159 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %158, i32 0, i32 0 + store ptr @3, ptr %159, align 8 + %160 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %158, i32 0, i32 1 + store i64 4, ptr %160, align 4 + %161 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %158, align 8 + %162 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %163 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %162, i32 0, i32 0 + store ptr @10, ptr %163, align 8 + %164 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %162, i32 0, i32 1 + store i64 5, ptr %164, align 4 + %165 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %162, align 8 + call void @"github.com/goplus/llgo/internal/runtime.InitNamed"(ptr %119, %"github.com/goplus/llgo/internal/runtime.String" %161, %"github.com/goplus/llgo/internal/runtime.String" %165, ptr %135, { ptr, i64, i64 } zeroinitializer, %"github.com/goplus/llgo/internal/runtime.Slice" %157) br label %_llgo_16 _llgo_16: ; preds = %_llgo_15, %_llgo_14 - %149 = load ptr, ptr @"*_llgo_main.Game2", align 8 - %150 = icmp eq ptr %149, null - br i1 %150, label %_llgo_17, label %_llgo_18 + %166 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %167 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %166, i32 0, i32 0 + store ptr @8, ptr %167, align 8 + %168 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %166, i32 0, i32 1 + store i64 10, ptr %168, align 4 + %169 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %166, align 8 + %170 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(%"github.com/goplus/llgo/internal/runtime.String" %169, i64 25, i64 0, i64 0, i64 1) + %171 = load ptr, ptr @"*_llgo_main.Game2", align 8 + %172 = icmp eq ptr %171, null + br i1 %172, label %_llgo_17, label %_llgo_18 _llgo_17: ; preds = %_llgo_16 - %151 = call ptr @"github.com/goplus/llgo/internal/runtime.PointerTo"(ptr %102) - call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %151) - store ptr %151, ptr @"*_llgo_main.Game2", align 8 + %173 = call ptr @"github.com/goplus/llgo/internal/runtime.PointerTo"(ptr %170) + call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %173) + store ptr %173, ptr @"*_llgo_main.Game2", align 8 br label %_llgo_18 _llgo_18: ; preds = %_llgo_17, %_llgo_16 - %152 = load ptr, ptr @"_llgo_func$2_iS07vIlF2_rZqWB5eU0IvP_9HviM4MYZNkXZDvbac", align 8 - %153 = load ptr, ptr @"_llgo_func$2_iS07vIlF2_rZqWB5eU0IvP_9HviM4MYZNkXZDvbac", align 8 - %154 = load ptr, ptr @"_llgo_github.com/goplus/llgo/cl/internal/foo.Gamer", align 8 - %155 = icmp eq ptr %154, null - br i1 %155, label %_llgo_19, label %_llgo_20 + %174 = load ptr, ptr @"_llgo_func$2_iS07vIlF2_rZqWB5eU0IvP_9HviM4MYZNkXZDvbac", align 8 + %175 = load ptr, ptr @"_llgo_func$2_iS07vIlF2_rZqWB5eU0IvP_9HviM4MYZNkXZDvbac", align 8 + %176 = load ptr, ptr @"_llgo_github.com/goplus/llgo/cl/internal/foo.Gamer", align 8 + %177 = icmp eq ptr %176, null + br i1 %177, 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 @2, ptr %157, align 8 - %158 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %156, i32 0, i32 1 - store i64 4, ptr %158, align 4 - %159 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %156, align 8 - %160 = alloca %"github.com/goplus/llgo/internal/abi.Imethod", align 8 - %161 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Imethod", ptr %160, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %159, ptr %161, align 8 - %162 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Imethod", ptr %160, i32 0, i32 1 - store ptr %152, ptr %162, align 8 - %163 = load %"github.com/goplus/llgo/internal/abi.Imethod", ptr %160, align 8 - %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 @4, ptr %165, align 8 - %166 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %164, i32 0, i32 1 - store i64 47, ptr %166, align 4 - %167 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %164, align 8 - %168 = alloca %"github.com/goplus/llgo/internal/abi.Imethod", align 8 - %169 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Imethod", ptr %168, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %167, ptr %169, align 8 - %170 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Imethod", ptr %168, i32 0, i32 1 - store ptr %153, ptr %170, align 8 - %171 = load %"github.com/goplus/llgo/internal/abi.Imethod", ptr %168, align 8 - %172 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 48) - %173 = getelementptr %"github.com/goplus/llgo/internal/abi.Imethod", ptr %172, i64 0 - store %"github.com/goplus/llgo/internal/abi.Imethod" %163, ptr %173, align 8 - %174 = getelementptr %"github.com/goplus/llgo/internal/abi.Imethod", ptr %172, i64 1 - store %"github.com/goplus/llgo/internal/abi.Imethod" %171, 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 %172, ptr %176, align 8 - %177 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %175, i32 0, i32 1 - store i64 2, ptr %177, align 4 - %178 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %175, i32 0, i32 2 - store i64 2, ptr %178, align 4 - %179 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %175, align 8 - %180 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %181 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %180, i32 0, i32 0 - store ptr @8, ptr %181, align 8 - %182 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %180, i32 0, i32 1 - store i64 38, ptr %182, align 4 - %183 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %180, align 8 - %184 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %185 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %184, i32 0, i32 0 - store ptr @9, ptr %185, align 8 - %186 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %184, i32 0, i32 1 - store i64 44, ptr %186, align 4 - %187 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %184, align 8 - %188 = call ptr @"github.com/goplus/llgo/internal/runtime.Interface"(%"github.com/goplus/llgo/internal/runtime.String" %183, %"github.com/goplus/llgo/internal/runtime.String" %187, %"github.com/goplus/llgo/internal/runtime.Slice" %179) - store ptr %188, ptr @"_llgo_github.com/goplus/llgo/cl/internal/foo.Gamer", align 8 + %178 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %179 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %178, i32 0, i32 0 + store ptr @4, ptr %179, align 8 + %180 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %178, i32 0, i32 1 + store i64 4, ptr %180, align 4 + %181 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %178, align 8 + %182 = alloca %"github.com/goplus/llgo/internal/abi.Imethod", align 8 + %183 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Imethod", ptr %182, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %181, ptr %183, align 8 + %184 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Imethod", ptr %182, i32 0, i32 1 + store ptr %174, ptr %184, align 8 + %185 = load %"github.com/goplus/llgo/internal/abi.Imethod", 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 @6, ptr %187, align 8 + %188 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %186, i32 0, i32 1 + store i64 47, ptr %188, align 4 + %189 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %186, align 8 + %190 = alloca %"github.com/goplus/llgo/internal/abi.Imethod", align 8 + %191 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Imethod", ptr %190, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %189, ptr %191, align 8 + %192 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Imethod", ptr %190, i32 0, i32 1 + store ptr %175, ptr %192, align 8 + %193 = load %"github.com/goplus/llgo/internal/abi.Imethod", ptr %190, align 8 + %194 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 48) + %195 = getelementptr %"github.com/goplus/llgo/internal/abi.Imethod", ptr %194, i64 0 + store %"github.com/goplus/llgo/internal/abi.Imethod" %185, ptr %195, align 8 + %196 = getelementptr %"github.com/goplus/llgo/internal/abi.Imethod", ptr %194, i64 1 + store %"github.com/goplus/llgo/internal/abi.Imethod" %193, ptr %196, align 8 + %197 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %198 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %197, i32 0, i32 0 + store ptr %194, ptr %198, align 8 + %199 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %197, i32 0, i32 1 + store i64 2, ptr %199, align 4 + %200 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %197, i32 0, i32 2 + store i64 2, ptr %200, align 4 + %201 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %197, align 8 + %202 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %203 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %202, i32 0, i32 0 + store ptr @11, ptr %203, align 8 + %204 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %202, i32 0, i32 1 + store i64 38, ptr %204, align 4 + %205 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %202, align 8 + %206 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %207 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %206, i32 0, i32 0 + store ptr @12, ptr %207, align 8 + %208 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %206, i32 0, i32 1 + store i64 44, ptr %208, align 4 + %209 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %206, align 8 + %210 = call ptr @"github.com/goplus/llgo/internal/runtime.Interface"(%"github.com/goplus/llgo/internal/runtime.String" %205, %"github.com/goplus/llgo/internal/runtime.String" %209, %"github.com/goplus/llgo/internal/runtime.Slice" %201) + store ptr %210, ptr @"_llgo_github.com/goplus/llgo/cl/internal/foo.Gamer", align 8 br label %_llgo_20 _llgo_20: ; preds = %_llgo_19, %_llgo_18 - %189 = load ptr, ptr @"_llgo_func$2_iS07vIlF2_rZqWB5eU0IvP_9HviM4MYZNkXZDvbac", align 8 - %190 = load ptr, ptr @"_llgo_func$2_iS07vIlF2_rZqWB5eU0IvP_9HviM4MYZNkXZDvbac", 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 @2, ptr %192, align 8 - %193 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %191, i32 0, i32 1 - store i64 4, ptr %193, align 4 - %194 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %191, align 8 - %195 = alloca %"github.com/goplus/llgo/internal/abi.Imethod", align 8 - %196 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Imethod", ptr %195, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %194, ptr %196, align 8 - %197 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Imethod", ptr %195, i32 0, i32 1 - store ptr %189, ptr %197, align 8 - %198 = load %"github.com/goplus/llgo/internal/abi.Imethod", ptr %195, align 8 - %199 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %200 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %199, i32 0, i32 0 - store ptr @4, ptr %200, align 8 - %201 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %199, i32 0, i32 1 - store i64 47, ptr %201, align 4 - %202 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %199, align 8 - %203 = alloca %"github.com/goplus/llgo/internal/abi.Imethod", align 8 - %204 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Imethod", ptr %203, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %202, ptr %204, align 8 - %205 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Imethod", ptr %203, i32 0, i32 1 - store ptr %190, ptr %205, align 8 - %206 = load %"github.com/goplus/llgo/internal/abi.Imethod", ptr %203, align 8 - %207 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 48) - %208 = getelementptr %"github.com/goplus/llgo/internal/abi.Imethod", ptr %207, i64 0 - store %"github.com/goplus/llgo/internal/abi.Imethod" %198, ptr %208, align 8 - %209 = getelementptr %"github.com/goplus/llgo/internal/abi.Imethod", ptr %207, i64 1 - store %"github.com/goplus/llgo/internal/abi.Imethod" %206, ptr %209, align 8 - %210 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %211 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %210, i32 0, i32 0 - store ptr %207, ptr %211, align 8 - %212 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %210, i32 0, i32 1 - store i64 2, ptr %212, align 4 - %213 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %210, i32 0, i32 2 - store i64 2, ptr %213, align 4 - %214 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %210, align 8 - %215 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %216 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %215, i32 0, i32 0 - store ptr @1, ptr %216, align 8 - %217 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %215, i32 0, i32 1 - store i64 4, ptr %217, align 4 - %218 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %215, align 8 - %219 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %220 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %219, i32 0, i32 0 - store ptr null, ptr %220, align 8 - %221 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %219, i32 0, i32 1 - store i64 0, ptr %221, align 4 - %222 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %219, align 8 - %223 = call ptr @"github.com/goplus/llgo/internal/runtime.Interface"(%"github.com/goplus/llgo/internal/runtime.String" %218, %"github.com/goplus/llgo/internal/runtime.String" %222, %"github.com/goplus/llgo/internal/runtime.Slice" %214) - store ptr %223, ptr @"main.iface$sO8a1LvuUsjXwiwaC6sR9-L4DiYgiOnZi7iosyShJXg", align 8 + %211 = load ptr, ptr @"_llgo_func$2_iS07vIlF2_rZqWB5eU0IvP_9HviM4MYZNkXZDvbac", align 8 + %212 = load ptr, ptr @"_llgo_func$2_iS07vIlF2_rZqWB5eU0IvP_9HviM4MYZNkXZDvbac", 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 @4, ptr %214, align 8 + %215 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %213, i32 0, i32 1 + store i64 4, ptr %215, align 4 + %216 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %213, align 8 + %217 = alloca %"github.com/goplus/llgo/internal/abi.Imethod", align 8 + %218 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Imethod", ptr %217, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %216, ptr %218, align 8 + %219 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Imethod", ptr %217, i32 0, i32 1 + store ptr %211, ptr %219, align 8 + %220 = load %"github.com/goplus/llgo/internal/abi.Imethod", ptr %217, align 8 + %221 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %222 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %221, i32 0, i32 0 + store ptr @6, ptr %222, align 8 + %223 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %221, i32 0, i32 1 + store i64 47, ptr %223, align 4 + %224 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %221, align 8 + %225 = alloca %"github.com/goplus/llgo/internal/abi.Imethod", align 8 + %226 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Imethod", ptr %225, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %224, ptr %226, align 8 + %227 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Imethod", ptr %225, i32 0, i32 1 + store ptr %212, ptr %227, align 8 + %228 = load %"github.com/goplus/llgo/internal/abi.Imethod", ptr %225, align 8 + %229 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 48) + %230 = getelementptr %"github.com/goplus/llgo/internal/abi.Imethod", ptr %229, i64 0 + store %"github.com/goplus/llgo/internal/abi.Imethod" %220, ptr %230, align 8 + %231 = getelementptr %"github.com/goplus/llgo/internal/abi.Imethod", ptr %229, i64 1 + store %"github.com/goplus/llgo/internal/abi.Imethod" %228, ptr %231, align 8 + %232 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %233 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %232, i32 0, i32 0 + store ptr %229, ptr %233, align 8 + %234 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %232, i32 0, i32 1 + store i64 2, ptr %234, align 4 + %235 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %232, i32 0, i32 2 + store i64 2, ptr %235, align 4 + %236 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %232, align 8 + %237 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %238 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %237, i32 0, i32 0 + store ptr @3, ptr %238, align 8 + %239 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %237, i32 0, i32 1 + store i64 4, ptr %239, align 4 + %240 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %237, 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 null, ptr %242, align 8 + %243 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %241, i32 0, i32 1 + store i64 0, ptr %243, align 4 + %244 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %241, align 8 + %245 = call ptr @"github.com/goplus/llgo/internal/runtime.Interface"(%"github.com/goplus/llgo/internal/runtime.String" %240, %"github.com/goplus/llgo/internal/runtime.String" %244, %"github.com/goplus/llgo/internal/runtime.Slice" %236) + store ptr %245, ptr @"main.iface$sO8a1LvuUsjXwiwaC6sR9-L4DiYgiOnZi7iosyShJXg", align 8 ret void } -declare ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(i64, i64, i64, i64) +declare ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(%"github.com/goplus/llgo/internal/runtime.String", i64, i64, i64, i64) declare void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr) diff --git a/cl/_testgo/invoke/out.ll b/cl/_testgo/invoke/out.ll index ecf9c5161..a169b2950 100644 --- a/cl/_testgo/invoke/out.ll +++ b/cl/_testgo/invoke/out.ll @@ -24,49 +24,56 @@ source_filename = "main" @__llgo_argv = global ptr null, align 8 @7 = private unnamed_addr constant [5 x i8] c"hello", align 1 @_llgo_main.T = linkonce global ptr null, align 8 +@8 = private unnamed_addr constant [6 x i8] c"main.T", align 1 @"main.struct$QTufDJA9wEDzuzgkA-ZSrLqW-B6lWN8O25mTSglAoLQ" = linkonce global ptr null, align 8 -@8 = private unnamed_addr constant [1 x i8] c"s", align 1 -@9 = private unnamed_addr constant [4 x i8] c"main", align 1 -@10 = private unnamed_addr constant [6 x i8] c"Invoke", align 1 +@9 = private unnamed_addr constant [1 x i8] c"s", align 1 +@10 = private unnamed_addr constant [4 x i8] c"main", align 1 +@11 = private unnamed_addr constant [6 x i8] c"Invoke", align 1 @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA" = linkonce global ptr null, align 8 @_llgo_int = linkonce global ptr null, align 8 -@11 = private unnamed_addr constant [6 x i8] c"Method", align 1 +@12 = private unnamed_addr constant [6 x i8] c"Method", align 1 @"_llgo_func$2_iS07vIlF2_rZqWB5eU0IvP_9HviM4MYZNkXZDvbac" = linkonce global ptr null, align 8 -@12 = private unnamed_addr constant [1 x i8] c"T", align 1 +@13 = private unnamed_addr constant [1 x i8] c"T", align 1 @"_llgo_iface$uRUteI7wmSy7y7ODhGzk0FdDaxGKMhVSSu6HZEv9aa0" = linkonce global ptr null, align 8 @"*_llgo_main.T" = linkonce global ptr null, align 8 @_llgo_main.T1 = linkonce global ptr null, align 8 -@13 = private unnamed_addr constant [2 x i8] c"T1", align 1 +@14 = private unnamed_addr constant [7 x i8] c"main.T1", align 1 +@15 = private unnamed_addr constant [2 x i8] c"T1", align 1 @"*_llgo_main.T1" = linkonce global ptr null, align 8 @_llgo_main.T2 = linkonce global ptr null, align 8 +@16 = private unnamed_addr constant [7 x i8] c"main.T2", align 1 @_llgo_float64 = linkonce global ptr null, align 8 -@14 = private unnamed_addr constant [2 x i8] c"T2", align 1 +@17 = 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 +@18 = private unnamed_addr constant [7 x i8] c"main.T3", align 1 @_llgo_int8 = linkonce global ptr null, align 8 -@15 = private unnamed_addr constant [2 x i8] c"T3", align 1 +@19 = private unnamed_addr constant [2 x i8] c"T3", align 1 @"*_llgo_main.T3" = linkonce global ptr null, align 8 @_llgo_main.T4 = linkonce global ptr null, align 8 +@20 = private unnamed_addr constant [7 x i8] c"main.T4", align 1 @"[1]_llgo_int" = linkonce global ptr null, align 8 -@16 = private unnamed_addr constant [2 x i8] c"T4", align 1 +@21 = private unnamed_addr constant [2 x i8] c"T4", align 1 @"*_llgo_main.T4" = linkonce global ptr null, align 8 @_llgo_main.T5 = linkonce global ptr null, align 8 +@22 = private unnamed_addr constant [7 x i8] c"main.T5", align 1 @"main.struct$eovYmOhZg4X0zMSsuscSshndnbbAGvB2E3cyG8E7Y4U" = linkonce global ptr null, align 8 -@17 = private unnamed_addr constant [1 x i8] c"n", align 1 -@18 = private unnamed_addr constant [2 x i8] c"T5", align 1 +@23 = private unnamed_addr constant [1 x i8] c"n", align 1 +@24 = private unnamed_addr constant [2 x i8] c"T5", align 1 @"*_llgo_main.T5" = linkonce global ptr null, align 8 @_llgo_main.T6 = linkonce global ptr null, align 8 +@25 = private unnamed_addr constant [7 x i8] c"main.T6", align 1 @"main.struct$2bSfJcCYDdttnIT-JASAjsTNUZvojBt4mPXFJdH4M10" = linkonce global ptr null, align 8 @_llgo_Pointer = linkonce global ptr null, align 8 -@19 = private unnamed_addr constant [1 x i8] c"f", align 1 -@20 = private unnamed_addr constant [4 x i8] c"data", align 1 -@21 = private unnamed_addr constant [2 x i8] c"T6", align 1 +@26 = private unnamed_addr constant [1 x i8] c"f", align 1 +@27 = private unnamed_addr constant [4 x i8] c"data", align 1 +@28 = private unnamed_addr constant [2 x i8] c"T6", align 1 @"*_llgo_main.T6" = linkonce global ptr null, align 8 @"_llgo_iface$jwmSdgh1zvY_TDIgLzCkvkbiyrdwl9N806DH0JGcyMI" = linkonce global ptr null, align 8 -@22 = private unnamed_addr constant [5 x i8] c"world", align 1 +@29 = private unnamed_addr constant [5 x i8] c"world", align 1 @_llgo_main.I = linkonce global ptr null, align 8 -@23 = private unnamed_addr constant [6 x i8] c"main.I", align 1 -@24 = private unnamed_addr constant [21 x i8] c"type assertion failed", align 1 +@30 = private unnamed_addr constant [6 x i8] c"main.I", align 1 +@31 = private unnamed_addr constant [21 x i8] c"type assertion failed", align 1 @_llgo_string = linkonce global ptr null, align 8 @_llgo_any = linkonce global ptr null, align 8 @@ -496,7 +503,7 @@ _llgo_0: %149 = getelementptr inbounds %main.T, ptr %148, i32 0, i32 0 %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 @22, ptr %151, align 8 + store ptr @29, ptr %151, align 8 %152 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %150, i32 0, i32 1 store i64 5, ptr %152, align 4 %153 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %150, align 8 @@ -535,7 +542,7 @@ _llgo_1: ; preds = %_llgo_0 _llgo_2: ; preds = %_llgo_0 %174 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 %175 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %174, i32 0, i32 0 - store ptr @24, ptr %175, align 8 + store ptr @31, ptr %175, align 8 %176 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %174, i32 0, i32 1 store i64 21, ptr %176, align 4 %177 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %174, align 8 @@ -567,7 +574,7 @@ _llgo_3: ; preds = %_llgo_1 _llgo_4: ; preds = %_llgo_1 %192 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 %193 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %192, i32 0, i32 0 - store ptr @24, ptr %193, align 8 + store ptr @31, ptr %193, align 8 %194 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %192, i32 0, i32 1 store i64 21, ptr %194, align 4 %195 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %192, align 8 @@ -599,7 +606,7 @@ _llgo_5: ; preds = %_llgo_3 _llgo_6: ; preds = %_llgo_3 %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 @24, ptr %210, align 8 + store ptr @31, ptr %210, align 8 %211 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %209, i32 0, i32 1 store i64 21, ptr %211, align 4 %212 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %209, align 8 @@ -646,1085 +653,1176 @@ _llgo_0: define void @"main.init$after"() { _llgo_0: - %0 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(i64 25, i64 16, i64 1, i64 2) - %1 = load ptr, ptr @_llgo_main.T, align 8 - %2 = icmp eq ptr %1, null - br i1 %2, label %_llgo_1, label %_llgo_2 + %0 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %1 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %0, i32 0, i32 0 + store ptr @8, ptr %1, align 8 + %2 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %0, i32 0, i32 1 + store i64 6, ptr %2, align 4 + %3 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %0, align 8 + %4 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(%"github.com/goplus/llgo/internal/runtime.String" %3, i64 25, i64 16, i64 1, i64 2) + %5 = load ptr, ptr @_llgo_main.T, align 8 + %6 = icmp eq ptr %5, null + br i1 %6, label %_llgo_1, label %_llgo_2 _llgo_1: ; preds = %_llgo_0 - store ptr %0, ptr @_llgo_main.T, align 8 + store ptr %4, ptr @_llgo_main.T, align 8 br label %_llgo_2 _llgo_2: ; preds = %_llgo_1, %_llgo_0 - %3 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %4 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %3, i32 0, i32 0 - store ptr @8, ptr %4, align 8 - %5 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %3, i32 0, i32 1 - store i64 1, ptr %5, align 4 - %6 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %3, align 8 %7 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 %8 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %7, i32 0, i32 0 - store ptr null, ptr %8, align 8 + store ptr @9, ptr %8, align 8 %9 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %7, i32 0, i32 1 - store i64 0, ptr %9, align 4 + store i64 1, ptr %9, align 4 %10 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %7, align 8 - %11 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 24) - %12 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %6, ptr %11, i64 0, %"github.com/goplus/llgo/internal/runtime.String" %10, i1 false) - %13 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %14 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %13, i32 0, i32 0 - store ptr @9, ptr %14, align 8 - %15 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %13, i32 0, i32 1 - store i64 4, ptr %15, align 4 - %16 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %13, align 8 - %17 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 56) - %18 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %17, i64 0 - store %"github.com/goplus/llgo/internal/abi.StructField" %12, ptr %18, align 8 - %19 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %20 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %19, i32 0, i32 0 - store ptr %17, ptr %20, align 8 - %21 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %19, i32 0, i32 1 - store i64 1, ptr %21, align 4 - %22 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %19, i32 0, i32 2 - store i64 1, ptr %22, align 4 - %23 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %19, align 8 - %24 = call ptr @"github.com/goplus/llgo/internal/runtime.Struct"(%"github.com/goplus/llgo/internal/runtime.String" %16, i64 16, %"github.com/goplus/llgo/internal/runtime.Slice" %23) - store ptr %24, ptr @"main.struct$QTufDJA9wEDzuzgkA-ZSrLqW-B6lWN8O25mTSglAoLQ", align 8 - %25 = load ptr, ptr @"main.struct$QTufDJA9wEDzuzgkA-ZSrLqW-B6lWN8O25mTSglAoLQ", align 8 - br i1 %2, label %_llgo_3, label %_llgo_4 + %11 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %12 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %11, i32 0, i32 0 + store ptr null, ptr %12, align 8 + %13 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %11, i32 0, i32 1 + store i64 0, ptr %13, align 4 + %14 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %11, align 8 + %15 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 24) + %16 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %10, ptr %15, i64 0, %"github.com/goplus/llgo/internal/runtime.String" %14, i1 false) + %17 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %18 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %17, i32 0, i32 0 + store ptr @10, ptr %18, align 8 + %19 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %17, i32 0, i32 1 + store i64 4, ptr %19, align 4 + %20 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %17, align 8 + %21 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 56) + %22 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %21, i64 0 + store %"github.com/goplus/llgo/internal/abi.StructField" %16, ptr %22, align 8 + %23 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %24 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %23, i32 0, i32 0 + store ptr %21, ptr %24, align 8 + %25 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %23, i32 0, i32 1 + store i64 1, ptr %25, align 4 + %26 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %23, i32 0, i32 2 + store i64 1, ptr %26, align 4 + %27 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %23, align 8 + %28 = call ptr @"github.com/goplus/llgo/internal/runtime.Struct"(%"github.com/goplus/llgo/internal/runtime.String" %20, i64 16, %"github.com/goplus/llgo/internal/runtime.Slice" %27) + store ptr %28, ptr @"main.struct$QTufDJA9wEDzuzgkA-ZSrLqW-B6lWN8O25mTSglAoLQ", align 8 + %29 = load ptr, ptr @"main.struct$QTufDJA9wEDzuzgkA-ZSrLqW-B6lWN8O25mTSglAoLQ", align 8 + br i1 %6, label %_llgo_3, label %_llgo_4 _llgo_3: ; preds = %_llgo_2 - %26 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %27 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %26, i32 0, i32 0 - store ptr @10, ptr %27, align 8 - %28 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %26, i32 0, i32 1 - store i64 6, ptr %28, align 4 - %29 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %26, align 8 - %30 = load ptr, ptr @_llgo_int, align 8 - %31 = icmp eq ptr %30, null - br i1 %31, label %_llgo_5, label %_llgo_6 + %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 @11, ptr %31, align 8 + %32 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %30, i32 0, i32 1 + store i64 6, ptr %32, align 4 + %33 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %30, align 8 + %34 = load ptr, ptr @_llgo_int, align 8 + %35 = icmp eq ptr %34, null + br i1 %35, label %_llgo_5, label %_llgo_6 _llgo_4: ; preds = %_llgo_10, %_llgo_2 - %32 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 - %33 = load ptr, ptr @"_llgo_iface$uRUteI7wmSy7y7ODhGzk0FdDaxGKMhVSSu6HZEv9aa0", align 8 - %34 = icmp eq ptr %33, null - br i1 %34, label %_llgo_11, label %_llgo_12 + %36 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 + %37 = load ptr, ptr @"_llgo_iface$uRUteI7wmSy7y7ODhGzk0FdDaxGKMhVSSu6HZEv9aa0", align 8 + %38 = icmp eq ptr %37, null + br i1 %38, label %_llgo_11, label %_llgo_12 _llgo_5: ; preds = %_llgo_3 - %35 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 34) - store ptr %35, ptr @_llgo_int, align 8 + %39 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 34) + store ptr %39, ptr @_llgo_int, align 8 br label %_llgo_6 _llgo_6: ; preds = %_llgo_5, %_llgo_3 - %36 = load ptr, ptr @_llgo_int, align 8 - %37 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 - %38 = icmp eq ptr %37, null - br i1 %38, label %_llgo_7, label %_llgo_8 + %40 = load ptr, ptr @_llgo_int, align 8 + %41 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 + %42 = icmp eq ptr %41, null + br i1 %42, label %_llgo_7, label %_llgo_8 _llgo_7: ; preds = %_llgo_6 - %39 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 0) - %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 %39, ptr %41, align 8 - %42 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %40, i32 0, i32 1 - store i64 0, ptr %42, align 4 - %43 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %40, i32 0, i32 2 - store i64 0, 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.AllocU"(i64 8) - %46 = getelementptr ptr, ptr %45, i64 0 - store ptr %36, ptr %46, align 8 - %47 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %48 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %47, i32 0, i32 0 - store ptr %45, ptr %48, align 8 - %49 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %47, i32 0, i32 1 - store i64 1, ptr %49, align 4 - %50 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %47, i32 0, i32 2 - store i64 1, ptr %50, align 4 - %51 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %47, align 8 - %52 = call ptr @"github.com/goplus/llgo/internal/runtime.Func"(%"github.com/goplus/llgo/internal/runtime.Slice" %44, %"github.com/goplus/llgo/internal/runtime.Slice" %51, i1 false) - call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %52) - store ptr %52, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 + %43 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 0) + %44 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %45 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %44, i32 0, i32 0 + store ptr %43, ptr %45, align 8 + %46 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %44, i32 0, i32 1 + store i64 0, ptr %46, align 4 + %47 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %44, i32 0, i32 2 + store i64 0, ptr %47, align 4 + %48 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %44, align 8 + %49 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 8) + %50 = getelementptr ptr, ptr %49, i64 0 + store ptr %40, ptr %50, align 8 + %51 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %52 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %51, i32 0, i32 0 + store ptr %49, ptr %52, align 8 + %53 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %51, i32 0, i32 1 + store i64 1, ptr %53, align 4 + %54 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %51, i32 0, i32 2 + store i64 1, ptr %54, align 4 + %55 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %51, align 8 + %56 = call ptr @"github.com/goplus/llgo/internal/runtime.Func"(%"github.com/goplus/llgo/internal/runtime.Slice" %48, %"github.com/goplus/llgo/internal/runtime.Slice" %55, i1 false) + call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %56) + store ptr %56, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 br label %_llgo_8 _llgo_8: ; preds = %_llgo_7, %_llgo_6 - %53 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 - %54 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 - %55 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %54, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %29, ptr %55, align 8 - %56 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %54, i32 0, i32 1 - store ptr %53, ptr %56, align 8 - %57 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %54, i32 0, i32 2 - store ptr @"main.(*T).Invoke", ptr %57, align 8 - %58 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %54, i32 0, i32 3 - store ptr @"main.(*T).Invoke", ptr %58, align 8 - %59 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %54, align 8 - %60 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 - %61 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %60, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %29, ptr %61, align 8 - %62 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %60, i32 0, i32 1 - store ptr %53, ptr %62, align 8 - %63 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %60, i32 0, i32 2 - store ptr @"main.(*T).Invoke", ptr %63, align 8 - %64 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %60, i32 0, i32 3 - store ptr @main.T.Invoke, ptr %64, align 8 - %65 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %60, 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 @11, ptr %67, align 8 - %68 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %66, i32 0, i32 1 - store i64 6, ptr %68, align 4 - %69 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %66, align 8 - %70 = load ptr, ptr @"_llgo_func$2_iS07vIlF2_rZqWB5eU0IvP_9HviM4MYZNkXZDvbac", align 8 - %71 = icmp eq ptr %70, null - br i1 %71, label %_llgo_9, label %_llgo_10 + %57 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 + %58 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %59 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %58, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %33, ptr %59, align 8 + %60 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %58, i32 0, i32 1 + store ptr %57, ptr %60, align 8 + %61 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %58, i32 0, i32 2 + store ptr @"main.(*T).Invoke", ptr %61, align 8 + %62 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %58, i32 0, i32 3 + store ptr @"main.(*T).Invoke", ptr %62, align 8 + %63 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %58, align 8 + %64 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %65 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %64, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %33, ptr %65, align 8 + %66 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %64, i32 0, i32 1 + store ptr %57, ptr %66, align 8 + %67 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %64, i32 0, i32 2 + store ptr @"main.(*T).Invoke", ptr %67, align 8 + %68 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %64, i32 0, i32 3 + store ptr @main.T.Invoke, ptr %68, align 8 + %69 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %64, 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 @12, ptr %71, align 8 + %72 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %70, i32 0, i32 1 + store i64 6, ptr %72, align 4 + %73 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %70, align 8 + %74 = load ptr, ptr @"_llgo_func$2_iS07vIlF2_rZqWB5eU0IvP_9HviM4MYZNkXZDvbac", align 8 + %75 = icmp eq ptr %74, null + br i1 %75, label %_llgo_9, label %_llgo_10 _llgo_9: ; preds = %_llgo_8 - %72 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 0) - %73 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %74 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %73, i32 0, i32 0 - store ptr %72, ptr %74, align 8 - %75 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %73, i32 0, i32 1 - store i64 0, ptr %75, align 4 - %76 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %73, i32 0, i32 2 - store i64 0, ptr %76, align 4 - %77 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %73, align 8 - %78 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 0) - %79 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %80 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %79, i32 0, i32 0 - store ptr %78, ptr %80, align 8 - %81 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %79, i32 0, i32 1 - store i64 0, ptr %81, align 4 - %82 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %79, i32 0, i32 2 - store i64 0, ptr %82, align 4 - %83 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %79, align 8 - %84 = call ptr @"github.com/goplus/llgo/internal/runtime.Func"(%"github.com/goplus/llgo/internal/runtime.Slice" %77, %"github.com/goplus/llgo/internal/runtime.Slice" %83, i1 false) - call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %84) - store ptr %84, ptr @"_llgo_func$2_iS07vIlF2_rZqWB5eU0IvP_9HviM4MYZNkXZDvbac", align 8 + %76 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 0) + %77 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %78 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %77, i32 0, i32 0 + store ptr %76, ptr %78, align 8 + %79 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %77, i32 0, i32 1 + store i64 0, ptr %79, align 4 + %80 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %77, i32 0, i32 2 + store i64 0, ptr %80, align 4 + %81 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %77, align 8 + %82 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 0) + %83 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %84 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %83, i32 0, i32 0 + store ptr %82, ptr %84, align 8 + %85 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %83, i32 0, i32 1 + store i64 0, ptr %85, align 4 + %86 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %83, i32 0, i32 2 + store i64 0, ptr %86, align 4 + %87 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %83, align 8 + %88 = call ptr @"github.com/goplus/llgo/internal/runtime.Func"(%"github.com/goplus/llgo/internal/runtime.Slice" %81, %"github.com/goplus/llgo/internal/runtime.Slice" %87, i1 false) + call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %88) + store ptr %88, ptr @"_llgo_func$2_iS07vIlF2_rZqWB5eU0IvP_9HviM4MYZNkXZDvbac", align 8 br label %_llgo_10 _llgo_10: ; preds = %_llgo_9, %_llgo_8 - %85 = load ptr, ptr @"_llgo_func$2_iS07vIlF2_rZqWB5eU0IvP_9HviM4MYZNkXZDvbac", align 8 - %86 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 - %87 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %86, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %69, ptr %87, align 8 - %88 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %86, i32 0, i32 1 - store ptr %85, ptr %88, align 8 - %89 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %86, i32 0, i32 2 - store ptr @"main.(*T).Method", ptr %89, align 8 - %90 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %86, i32 0, i32 3 - store ptr @"main.(*T).Method", ptr %90, align 8 - %91 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %86, align 8 - %92 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 40) - %93 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %92, i64 0 - store %"github.com/goplus/llgo/internal/abi.Method" %65, ptr %93, align 8 - %94 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %95 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %94, i32 0, i32 0 - store ptr %92, ptr %95, align 8 - %96 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %94, i32 0, i32 1 - store i64 1, ptr %96, align 4 - %97 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %94, i32 0, i32 2 - store i64 1, ptr %97, align 4 - %98 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %94, align 8 - %99 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 80) - %100 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %99, i64 0 - store %"github.com/goplus/llgo/internal/abi.Method" %59, ptr %100, align 8 - %101 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %99, i64 1 - store %"github.com/goplus/llgo/internal/abi.Method" %91, ptr %101, align 8 - %102 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %103 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %102, i32 0, i32 0 - store ptr %99, ptr %103, align 8 - %104 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %102, i32 0, i32 1 - store i64 2, ptr %104, align 4 - %105 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %102, i32 0, i32 2 - store i64 2, ptr %105, align 4 - %106 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %102, align 8 - %107 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %108 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %107, i32 0, i32 0 - store ptr @9, ptr %108, align 8 - %109 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %107, i32 0, i32 1 - store i64 4, ptr %109, align 4 - %110 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %107, align 8 + %89 = load ptr, ptr @"_llgo_func$2_iS07vIlF2_rZqWB5eU0IvP_9HviM4MYZNkXZDvbac", align 8 + %90 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %91 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %90, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %73, ptr %91, align 8 + %92 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %90, i32 0, i32 1 + store ptr %89, ptr %92, align 8 + %93 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %90, i32 0, i32 2 + store ptr @"main.(*T).Method", ptr %93, align 8 + %94 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %90, i32 0, i32 3 + store ptr @"main.(*T).Method", ptr %94, align 8 + %95 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %90, align 8 + %96 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 40) + %97 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %96, i64 0 + store %"github.com/goplus/llgo/internal/abi.Method" %69, 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.AllocU"(i64 80) + %104 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %103, i64 0 + store %"github.com/goplus/llgo/internal/abi.Method" %63, ptr %104, align 8 + %105 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %103, i64 1 + store %"github.com/goplus/llgo/internal/abi.Method" %95, ptr %105, align 8 + %106 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %107 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %106, i32 0, i32 0 + store ptr %103, ptr %107, align 8 + %108 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %106, i32 0, i32 1 + store i64 2, ptr %108, align 4 + %109 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %106, i32 0, i32 2 + store i64 2, ptr %109, align 4 + %110 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %106, align 8 %111 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 %112 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %111, i32 0, i32 0 - store ptr @12, ptr %112, align 8 + store ptr @10, ptr %112, align 8 %113 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %111, i32 0, i32 1 - store i64 1, ptr %113, align 4 + store i64 4, ptr %113, align 4 %114 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %111, align 8 - call void @"github.com/goplus/llgo/internal/runtime.InitNamed"(ptr %0, %"github.com/goplus/llgo/internal/runtime.String" %110, %"github.com/goplus/llgo/internal/runtime.String" %114, ptr %25, %"github.com/goplus/llgo/internal/runtime.Slice" %98, %"github.com/goplus/llgo/internal/runtime.Slice" %106) - br label %_llgo_4 - -_llgo_11: ; preds = %_llgo_4 %115 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 %116 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %115, i32 0, i32 0 - store ptr @10, ptr %116, align 8 + store ptr @13, ptr %116, align 8 %117 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %115, i32 0, i32 1 - store i64 6, ptr %117, align 4 + store i64 1, ptr %117, align 4 %118 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %115, align 8 - %119 = alloca %"github.com/goplus/llgo/internal/abi.Imethod", align 8 - %120 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Imethod", ptr %119, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %118, ptr %120, align 8 - %121 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Imethod", ptr %119, i32 0, i32 1 - store ptr %32, ptr %121, align 8 - %122 = load %"github.com/goplus/llgo/internal/abi.Imethod", ptr %119, align 8 - %123 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 24) - %124 = getelementptr %"github.com/goplus/llgo/internal/abi.Imethod", ptr %123, i64 0 - store %"github.com/goplus/llgo/internal/abi.Imethod" %122, ptr %124, align 8 - %125 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %126 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %125, i32 0, i32 0 - store ptr %123, ptr %126, align 8 - %127 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %125, i32 0, i32 1 - store i64 1, ptr %127, align 4 - %128 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %125, i32 0, i32 2 - store i64 1, ptr %128, align 4 - %129 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %125, align 8 - %130 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %131 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %130, i32 0, i32 0 - store ptr @9, ptr %131, align 8 - %132 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %130, i32 0, i32 1 - store i64 4, ptr %132, align 4 - %133 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %130, align 8 + call void @"github.com/goplus/llgo/internal/runtime.InitNamed"(ptr %4, %"github.com/goplus/llgo/internal/runtime.String" %114, %"github.com/goplus/llgo/internal/runtime.String" %118, ptr %29, %"github.com/goplus/llgo/internal/runtime.Slice" %102, %"github.com/goplus/llgo/internal/runtime.Slice" %110) + br label %_llgo_4 + +_llgo_11: ; preds = %_llgo_4 + %119 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %120 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %119, i32 0, i32 0 + store ptr @11, ptr %120, align 8 + %121 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %119, i32 0, i32 1 + store i64 6, ptr %121, align 4 + %122 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %119, align 8 + %123 = alloca %"github.com/goplus/llgo/internal/abi.Imethod", align 8 + %124 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Imethod", ptr %123, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %122, ptr %124, align 8 + %125 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Imethod", ptr %123, i32 0, i32 1 + store ptr %36, ptr %125, align 8 + %126 = load %"github.com/goplus/llgo/internal/abi.Imethod", ptr %123, align 8 + %127 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 24) + %128 = getelementptr %"github.com/goplus/llgo/internal/abi.Imethod", ptr %127, i64 0 + store %"github.com/goplus/llgo/internal/abi.Imethod" %126, ptr %128, align 8 + %129 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %130 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %129, i32 0, i32 0 + store ptr %127, ptr %130, align 8 + %131 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %129, i32 0, i32 1 + store i64 1, ptr %131, align 4 + %132 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %129, i32 0, i32 2 + store i64 1, ptr %132, align 4 + %133 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %129, align 8 %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 null, ptr %135, align 8 + store ptr @10, ptr %135, align 8 %136 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %134, i32 0, i32 1 - store i64 0, ptr %136, align 4 + store i64 4, ptr %136, align 4 %137 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %134, align 8 - %138 = call ptr @"github.com/goplus/llgo/internal/runtime.Interface"(%"github.com/goplus/llgo/internal/runtime.String" %133, %"github.com/goplus/llgo/internal/runtime.String" %137, %"github.com/goplus/llgo/internal/runtime.Slice" %129) - store ptr %138, ptr @"_llgo_iface$uRUteI7wmSy7y7ODhGzk0FdDaxGKMhVSSu6HZEv9aa0", 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 null, ptr %139, align 8 + %140 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %138, i32 0, i32 1 + store i64 0, ptr %140, align 4 + %141 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %138, align 8 + %142 = call ptr @"github.com/goplus/llgo/internal/runtime.Interface"(%"github.com/goplus/llgo/internal/runtime.String" %137, %"github.com/goplus/llgo/internal/runtime.String" %141, %"github.com/goplus/llgo/internal/runtime.Slice" %133) + store ptr %142, ptr @"_llgo_iface$uRUteI7wmSy7y7ODhGzk0FdDaxGKMhVSSu6HZEv9aa0", align 8 br label %_llgo_12 _llgo_12: ; preds = %_llgo_11, %_llgo_4 - %139 = load ptr, ptr @"*_llgo_main.T", align 8 - %140 = icmp eq ptr %139, null - br i1 %140, label %_llgo_13, label %_llgo_14 + %143 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %144 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %143, i32 0, i32 0 + store ptr @8, ptr %144, align 8 + %145 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %143, i32 0, i32 1 + store i64 6, ptr %145, align 4 + %146 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %143, align 8 + %147 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(%"github.com/goplus/llgo/internal/runtime.String" %146, i64 25, i64 16, i64 1, i64 2) + %148 = load ptr, ptr @"*_llgo_main.T", align 8 + %149 = icmp eq ptr %148, null + br i1 %149, label %_llgo_13, label %_llgo_14 _llgo_13: ; preds = %_llgo_12 - %141 = call ptr @"github.com/goplus/llgo/internal/runtime.PointerTo"(ptr %0) - call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %141) - store ptr %141, ptr @"*_llgo_main.T", align 8 + %150 = call ptr @"github.com/goplus/llgo/internal/runtime.PointerTo"(ptr %147) + call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %150) + store ptr %150, ptr @"*_llgo_main.T", align 8 br label %_llgo_14 _llgo_14: ; preds = %_llgo_13, %_llgo_12 - %142 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(i64 2, i64 8, i64 1, i64 1) - %143 = load ptr, ptr @_llgo_main.T1, align 8 - %144 = icmp eq ptr %143, null - br i1 %144, label %_llgo_15, label %_llgo_16 + %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 + %153 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %151, i32 0, i32 1 + store i64 7, ptr %153, align 4 + %154 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %151, align 8 + %155 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(%"github.com/goplus/llgo/internal/runtime.String" %154, i64 2, i64 8, i64 1, i64 1) + %156 = load ptr, ptr @_llgo_main.T1, align 8 + %157 = icmp eq ptr %156, null + br i1 %157, label %_llgo_15, label %_llgo_16 _llgo_15: ; preds = %_llgo_14 - store ptr %142, ptr @_llgo_main.T1, align 8 + store ptr %155, ptr @_llgo_main.T1, align 8 br label %_llgo_16 _llgo_16: ; preds = %_llgo_15, %_llgo_14 - %145 = load ptr, ptr @_llgo_int, align 8 - br i1 %144, label %_llgo_17, label %_llgo_18 + %158 = load ptr, ptr @_llgo_int, align 8 + br i1 %157, label %_llgo_17, label %_llgo_18 _llgo_17: ; preds = %_llgo_16 - %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 @10, ptr %147, align 8 - %148 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %146, i32 0, i32 1 - store i64 6, ptr %148, align 4 - %149 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %146, align 8 - %150 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 - %151 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 - %152 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %151, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %149, ptr %152, align 8 - %153 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %151, i32 0, i32 1 - store ptr %150, ptr %153, align 8 - %154 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %151, i32 0, i32 2 - store ptr @"main.(*T1).Invoke", ptr %154, align 8 - %155 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %151, i32 0, i32 3 - store ptr @"main.(*T1).Invoke", ptr %155, align 8 - %156 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %151, align 8 - %157 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 - %158 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %157, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %149, ptr %158, align 8 - %159 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %157, i32 0, i32 1 - store ptr %150, ptr %159, align 8 - %160 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %157, i32 0, i32 2 - store ptr @"main.(*T1).Invoke", ptr %160, align 8 - %161 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %157, i32 0, i32 3 - store ptr @main.T1.Invoke, ptr %161, align 8 - %162 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %157, align 8 - %163 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 40) - %164 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %163, i64 0 - store %"github.com/goplus/llgo/internal/abi.Method" %162, ptr %164, align 8 - %165 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %166 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %165, i32 0, i32 0 + %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 @11, ptr %160, align 8 + %161 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %159, i32 0, i32 1 + store i64 6, ptr %161, align 4 + %162 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %159, align 8 + %163 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 + %164 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %165 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %164, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %162, ptr %165, align 8 + %166 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %164, i32 0, i32 1 store ptr %163, ptr %166, align 8 - %167 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %165, i32 0, i32 1 - store i64 1, ptr %167, align 4 - %168 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %165, i32 0, i32 2 - store i64 1, ptr %168, align 4 - %169 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %165, align 8 - %170 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 40) - %171 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %170, i64 0 - store %"github.com/goplus/llgo/internal/abi.Method" %156, ptr %171, align 8 - %172 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %173 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %172, i32 0, i32 0 - store ptr %170, ptr %173, align 8 - %174 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %172, i32 0, i32 1 - store i64 1, ptr %174, align 4 - %175 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %172, i32 0, i32 2 - store i64 1, ptr %175, align 4 - %176 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %172, 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 @9, ptr %178, align 8 - %179 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %177, i32 0, i32 1 - store i64 4, ptr %179, align 4 - %180 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %177, align 8 - %181 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %182 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %181, i32 0, i32 0 - store ptr @13, ptr %182, align 8 - %183 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %181, i32 0, i32 1 - store i64 2, ptr %183, align 4 - %184 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %181, align 8 - call void @"github.com/goplus/llgo/internal/runtime.InitNamed"(ptr %142, %"github.com/goplus/llgo/internal/runtime.String" %180, %"github.com/goplus/llgo/internal/runtime.String" %184, ptr %145, %"github.com/goplus/llgo/internal/runtime.Slice" %169, %"github.com/goplus/llgo/internal/runtime.Slice" %176) + %167 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %164, i32 0, i32 2 + store ptr @"main.(*T1).Invoke", ptr %167, align 8 + %168 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %164, i32 0, i32 3 + store ptr @"main.(*T1).Invoke", ptr %168, align 8 + %169 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %164, align 8 + %170 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %171 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %170, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %162, ptr %171, align 8 + %172 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %170, i32 0, i32 1 + store ptr %163, ptr %172, align 8 + %173 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %170, i32 0, i32 2 + store ptr @"main.(*T1).Invoke", ptr %173, align 8 + %174 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %170, i32 0, i32 3 + store ptr @main.T1.Invoke, ptr %174, align 8 + %175 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %170, align 8 + %176 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 40) + %177 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %176, i64 0 + store %"github.com/goplus/llgo/internal/abi.Method" %175, ptr %177, align 8 + %178 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %179 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %178, i32 0, i32 0 + store ptr %176, ptr %179, align 8 + %180 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %178, i32 0, i32 1 + store i64 1, ptr %180, align 4 + %181 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %178, i32 0, i32 2 + store i64 1, ptr %181, align 4 + %182 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %178, align 8 + %183 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 40) + %184 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %183, i64 0 + store %"github.com/goplus/llgo/internal/abi.Method" %169, ptr %184, align 8 + %185 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %186 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %185, i32 0, i32 0 + store ptr %183, ptr %186, align 8 + %187 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %185, i32 0, i32 1 + store i64 1, ptr %187, align 4 + %188 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %185, i32 0, i32 2 + store i64 1, ptr %188, align 4 + %189 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %185, 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 4, ptr %192, align 4 + %193 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %190, align 8 + %194 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %195 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %194, i32 0, i32 0 + store ptr @15, ptr %195, align 8 + %196 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %194, i32 0, i32 1 + store i64 2, ptr %196, align 4 + %197 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %194, align 8 + call void @"github.com/goplus/llgo/internal/runtime.InitNamed"(ptr %155, %"github.com/goplus/llgo/internal/runtime.String" %193, %"github.com/goplus/llgo/internal/runtime.String" %197, ptr %158, %"github.com/goplus/llgo/internal/runtime.Slice" %182, %"github.com/goplus/llgo/internal/runtime.Slice" %189) br label %_llgo_18 _llgo_18: ; preds = %_llgo_17, %_llgo_16 - %185 = load ptr, ptr @"*_llgo_main.T1", align 8 - %186 = icmp eq ptr %185, null - br i1 %186, label %_llgo_19, label %_llgo_20 + %198 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %199 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %198, i32 0, i32 0 + store ptr @14, ptr %199, align 8 + %200 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %198, i32 0, i32 1 + store i64 7, ptr %200, align 4 + %201 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %198, align 8 + %202 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(%"github.com/goplus/llgo/internal/runtime.String" %201, i64 2, i64 8, i64 1, i64 1) + %203 = load ptr, ptr @"*_llgo_main.T1", align 8 + %204 = icmp eq ptr %203, null + br i1 %204, label %_llgo_19, label %_llgo_20 _llgo_19: ; preds = %_llgo_18 - %187 = call ptr @"github.com/goplus/llgo/internal/runtime.PointerTo"(ptr %142) - call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %187) - store ptr %187, ptr @"*_llgo_main.T1", align 8 + %205 = call ptr @"github.com/goplus/llgo/internal/runtime.PointerTo"(ptr %202) + call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %205) + store ptr %205, ptr @"*_llgo_main.T1", align 8 br label %_llgo_20 _llgo_20: ; preds = %_llgo_19, %_llgo_18 - %188 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(i64 14, i64 8, i64 1, i64 1) - %189 = load ptr, ptr @_llgo_main.T2, align 8 - %190 = icmp eq ptr %189, null - br i1 %190, label %_llgo_21, label %_llgo_22 + %206 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %207 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %206, i32 0, i32 0 + store ptr @16, ptr %207, align 8 + %208 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %206, i32 0, i32 1 + store i64 7, ptr %208, align 4 + %209 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %206, align 8 + %210 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(%"github.com/goplus/llgo/internal/runtime.String" %209, i64 14, i64 8, i64 1, i64 1) + %211 = load ptr, ptr @_llgo_main.T2, align 8 + %212 = icmp eq ptr %211, null + br i1 %212, label %_llgo_21, label %_llgo_22 _llgo_21: ; preds = %_llgo_20 - store ptr %188, ptr @_llgo_main.T2, align 8 + store ptr %210, ptr @_llgo_main.T2, align 8 br label %_llgo_22 _llgo_22: ; preds = %_llgo_21, %_llgo_20 - %191 = load ptr, ptr @_llgo_float64, align 8 - %192 = icmp eq ptr %191, null - br i1 %192, label %_llgo_23, label %_llgo_24 + %213 = load ptr, ptr @_llgo_float64, align 8 + %214 = icmp eq ptr %213, null + br i1 %214, label %_llgo_23, label %_llgo_24 _llgo_23: ; preds = %_llgo_22 - %193 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 46) - store ptr %193, ptr @_llgo_float64, align 8 + %215 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 46) + store ptr %215, ptr @_llgo_float64, align 8 br label %_llgo_24 _llgo_24: ; preds = %_llgo_23, %_llgo_22 - %194 = load ptr, ptr @_llgo_float64, align 8 - br i1 %190, label %_llgo_25, label %_llgo_26 + %216 = load ptr, ptr @_llgo_float64, align 8 + br i1 %212, label %_llgo_25, label %_llgo_26 _llgo_25: ; preds = %_llgo_24 - %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 @10, ptr %196, align 8 - %197 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %195, i32 0, i32 1 - store i64 6, ptr %197, align 4 - %198 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %195, align 8 - %199 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 - %200 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 - %201 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %200, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %198, ptr %201, align 8 - %202 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %200, i32 0, i32 1 - store ptr %199, ptr %202, align 8 - %203 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %200, i32 0, i32 2 - store ptr @"main.(*T2).Invoke", ptr %203, align 8 - %204 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %200, i32 0, i32 3 - store ptr @"main.(*T2).Invoke", ptr %204, align 8 - %205 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %200, align 8 - %206 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 - %207 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %206, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %198, ptr %207, align 8 - %208 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %206, i32 0, i32 1 - store ptr %199, ptr %208, align 8 - %209 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %206, i32 0, i32 2 - store ptr @"main.(*T2).Invoke", ptr %209, align 8 - %210 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %206, i32 0, i32 3 - store ptr @main.T2.Invoke, ptr %210, align 8 - %211 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %206, align 8 - %212 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 40) - %213 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %212, i64 0 - store %"github.com/goplus/llgo/internal/abi.Method" %211, ptr %213, align 8 - %214 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %215 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %214, i32 0, i32 0 - store ptr %212, ptr %215, align 8 - %216 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %214, i32 0, i32 1 - store i64 1, ptr %216, align 4 - %217 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %214, i32 0, i32 2 - store i64 1, ptr %217, align 4 - %218 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %214, align 8 - %219 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 40) - %220 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %219, i64 0 - store %"github.com/goplus/llgo/internal/abi.Method" %205, ptr %220, align 8 - %221 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %222 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %221, i32 0, i32 0 - store ptr %219, ptr %222, align 8 - %223 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %221, i32 0, i32 1 - store i64 1, ptr %223, align 4 - %224 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %221, i32 0, i32 2 - store i64 1, ptr %224, align 4 - %225 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %221, align 8 - %226 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %227 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %226, i32 0, i32 0 - store ptr @9, ptr %227, align 8 - %228 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %226, i32 0, i32 1 - store i64 4, ptr %228, align 4 - %229 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %226, align 8 - %230 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %231 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %230, i32 0, i32 0 - store ptr @14, ptr %231, align 8 - %232 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %230, i32 0, i32 1 - store i64 2, ptr %232, align 4 - %233 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %230, align 8 - call void @"github.com/goplus/llgo/internal/runtime.InitNamed"(ptr %188, %"github.com/goplus/llgo/internal/runtime.String" %229, %"github.com/goplus/llgo/internal/runtime.String" %233, ptr %194, %"github.com/goplus/llgo/internal/runtime.Slice" %218, %"github.com/goplus/llgo/internal/runtime.Slice" %225) + %217 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %218 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %217, i32 0, i32 0 + store ptr @11, ptr %218, align 8 + %219 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %217, i32 0, i32 1 + store i64 6, ptr %219, align 4 + %220 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %217, align 8 + %221 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 + %222 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %223 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %222, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %220, ptr %223, align 8 + %224 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %222, i32 0, i32 1 + store ptr %221, ptr %224, align 8 + %225 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %222, i32 0, i32 2 + store ptr @"main.(*T2).Invoke", ptr %225, align 8 + %226 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %222, i32 0, i32 3 + store ptr @"main.(*T2).Invoke", ptr %226, align 8 + %227 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %222, align 8 + %228 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %229 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %228, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %220, ptr %229, align 8 + %230 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %228, i32 0, i32 1 + store ptr %221, ptr %230, align 8 + %231 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %228, i32 0, i32 2 + store ptr @"main.(*T2).Invoke", ptr %231, align 8 + %232 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %228, i32 0, i32 3 + store ptr @main.T2.Invoke, ptr %232, align 8 + %233 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %228, 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" %233, 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 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 40) + %242 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %241, i64 0 + store %"github.com/goplus/llgo/internal/abi.Method" %227, ptr %242, align 8 + %243 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %244 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %243, i32 0, i32 0 + store ptr %241, ptr %244, align 8 + %245 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %243, i32 0, i32 1 + store i64 1, ptr %245, align 4 + %246 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %243, i32 0, i32 2 + store i64 1, ptr %246, align 4 + %247 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %243, align 8 + %248 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %249 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %248, i32 0, i32 0 + store ptr @10, ptr %249, align 8 + %250 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %248, i32 0, i32 1 + store i64 4, ptr %250, align 4 + %251 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %248, align 8 + %252 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %253 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %252, i32 0, i32 0 + store ptr @17, ptr %253, align 8 + %254 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %252, i32 0, i32 1 + store i64 2, ptr %254, align 4 + %255 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %252, align 8 + call void @"github.com/goplus/llgo/internal/runtime.InitNamed"(ptr %210, %"github.com/goplus/llgo/internal/runtime.String" %251, %"github.com/goplus/llgo/internal/runtime.String" %255, ptr %216, %"github.com/goplus/llgo/internal/runtime.Slice" %240, %"github.com/goplus/llgo/internal/runtime.Slice" %247) br label %_llgo_26 _llgo_26: ; preds = %_llgo_25, %_llgo_24 - %234 = load ptr, ptr @"*_llgo_main.T2", align 8 - %235 = icmp eq ptr %234, null - br i1 %235, label %_llgo_27, label %_llgo_28 + %256 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %257 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %256, i32 0, i32 0 + store ptr @16, ptr %257, align 8 + %258 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %256, i32 0, i32 1 + store i64 7, ptr %258, align 4 + %259 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %256, align 8 + %260 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(%"github.com/goplus/llgo/internal/runtime.String" %259, i64 14, i64 8, i64 1, i64 1) + %261 = load ptr, ptr @"*_llgo_main.T2", align 8 + %262 = icmp eq ptr %261, null + br i1 %262, label %_llgo_27, label %_llgo_28 _llgo_27: ; preds = %_llgo_26 - %236 = call ptr @"github.com/goplus/llgo/internal/runtime.PointerTo"(ptr %188) - call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %236) - store ptr %236, ptr @"*_llgo_main.T2", align 8 + %263 = call ptr @"github.com/goplus/llgo/internal/runtime.PointerTo"(ptr %260) + call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %263) + store ptr %263, ptr @"*_llgo_main.T2", align 8 br label %_llgo_28 _llgo_28: ; preds = %_llgo_27, %_llgo_26 - %237 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(i64 3, i64 1, i64 0, i64 1) - %238 = load ptr, ptr @_llgo_main.T3, align 8 - %239 = icmp eq ptr %238, null - br i1 %239, label %_llgo_29, label %_llgo_30 + %264 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %265 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %264, i32 0, i32 0 + store ptr @18, ptr %265, align 8 + %266 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %264, i32 0, i32 1 + store i64 7, ptr %266, align 4 + %267 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %264, align 8 + %268 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(%"github.com/goplus/llgo/internal/runtime.String" %267, i64 3, i64 1, i64 0, i64 1) + %269 = load ptr, ptr @_llgo_main.T3, align 8 + %270 = icmp eq ptr %269, null + br i1 %270, label %_llgo_29, label %_llgo_30 _llgo_29: ; preds = %_llgo_28 - store ptr %237, ptr @_llgo_main.T3, align 8 + store ptr %268, ptr @_llgo_main.T3, align 8 br label %_llgo_30 _llgo_30: ; preds = %_llgo_29, %_llgo_28 - %240 = load ptr, ptr @_llgo_int8, align 8 - %241 = icmp eq ptr %240, null - br i1 %241, label %_llgo_31, label %_llgo_32 + %271 = load ptr, ptr @_llgo_int8, align 8 + %272 = icmp eq ptr %271, null + br i1 %272, label %_llgo_31, label %_llgo_32 _llgo_31: ; preds = %_llgo_30 - %242 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 35) - store ptr %242, ptr @_llgo_int8, align 8 + %273 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 35) + store ptr %273, ptr @_llgo_int8, align 8 br label %_llgo_32 _llgo_32: ; preds = %_llgo_31, %_llgo_30 - %243 = load ptr, ptr @_llgo_int8, align 8 - br i1 %239, label %_llgo_33, label %_llgo_34 + %274 = load ptr, ptr @_llgo_int8, align 8 + br i1 %270, label %_llgo_33, label %_llgo_34 _llgo_33: ; preds = %_llgo_32 - %244 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %245 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %244, i32 0, i32 0 - store ptr @10, ptr %245, align 8 - %246 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %244, i32 0, i32 1 - store i64 6, ptr %246, align 4 - %247 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %244, align 8 - %248 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 - %249 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 - %250 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %249, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %247, ptr %250, align 8 - %251 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %249, i32 0, i32 1 - store ptr %248, ptr %251, align 8 - %252 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %249, i32 0, i32 2 - store ptr @"main.(*T3).Invoke", ptr %252, align 8 - %253 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %249, i32 0, i32 3 - store ptr @"main.(*T3).Invoke", ptr %253, align 8 - %254 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %249, align 8 - %255 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 40) - %256 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %255, i64 0 - store %"github.com/goplus/llgo/internal/abi.Method" %254, ptr %256, align 8 - %257 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %258 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %257, i32 0, i32 0 - store ptr %255, ptr %258, align 8 - %259 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %257, i32 0, i32 1 - store i64 1, ptr %259, align 4 - %260 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %257, i32 0, i32 2 - store i64 1, ptr %260, align 4 - %261 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %257, align 8 - %262 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %263 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %262, i32 0, i32 0 - store ptr @9, ptr %263, align 8 - %264 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %262, i32 0, i32 1 - store i64 4, ptr %264, align 4 - %265 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %262, align 8 - %266 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %267 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %266, i32 0, i32 0 - store ptr @15, ptr %267, align 8 - %268 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %266, i32 0, i32 1 - store i64 2, ptr %268, align 4 - %269 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %266, align 8 - call void @"github.com/goplus/llgo/internal/runtime.InitNamed"(ptr %237, %"github.com/goplus/llgo/internal/runtime.String" %265, %"github.com/goplus/llgo/internal/runtime.String" %269, ptr %243, { ptr, i64, i64 } zeroinitializer, %"github.com/goplus/llgo/internal/runtime.Slice" %261) + %275 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %276 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %275, i32 0, i32 0 + store ptr @11, ptr %276, align 8 + %277 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %275, i32 0, i32 1 + store i64 6, ptr %277, align 4 + %278 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %275, align 8 + %279 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 + %280 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %281 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %280, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %278, ptr %281, align 8 + %282 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %280, i32 0, i32 1 + store ptr %279, ptr %282, align 8 + %283 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %280, i32 0, i32 2 + store ptr @"main.(*T3).Invoke", ptr %283, align 8 + %284 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %280, i32 0, i32 3 + store ptr @"main.(*T3).Invoke", ptr %284, align 8 + %285 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %280, align 8 + %286 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 40) + %287 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %286, i64 0 + store %"github.com/goplus/llgo/internal/abi.Method" %285, ptr %287, align 8 + %288 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %289 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %288, i32 0, i32 0 + store ptr %286, ptr %289, align 8 + %290 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %288, i32 0, i32 1 + store i64 1, ptr %290, align 4 + %291 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %288, i32 0, i32 2 + store i64 1, ptr %291, align 4 + %292 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %288, align 8 + %293 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %294 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %293, i32 0, i32 0 + store ptr @10, ptr %294, align 8 + %295 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %293, i32 0, i32 1 + store i64 4, ptr %295, align 4 + %296 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %293, 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 @19, ptr %298, align 8 + %299 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %297, i32 0, i32 1 + store i64 2, ptr %299, align 4 + %300 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %297, align 8 + call void @"github.com/goplus/llgo/internal/runtime.InitNamed"(ptr %268, %"github.com/goplus/llgo/internal/runtime.String" %296, %"github.com/goplus/llgo/internal/runtime.String" %300, ptr %274, { ptr, i64, i64 } zeroinitializer, %"github.com/goplus/llgo/internal/runtime.Slice" %292) br label %_llgo_34 _llgo_34: ; preds = %_llgo_33, %_llgo_32 - %270 = load ptr, ptr @"*_llgo_main.T3", align 8 - %271 = icmp eq ptr %270, null - br i1 %271, label %_llgo_35, label %_llgo_36 + %301 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %302 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %301, i32 0, i32 0 + store ptr @18, ptr %302, align 8 + %303 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %301, i32 0, i32 1 + store i64 7, ptr %303, align 4 + %304 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %301, align 8 + %305 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(%"github.com/goplus/llgo/internal/runtime.String" %304, i64 3, i64 1, i64 0, i64 1) + %306 = load ptr, ptr @"*_llgo_main.T3", align 8 + %307 = icmp eq ptr %306, null + br i1 %307, label %_llgo_35, label %_llgo_36 _llgo_35: ; preds = %_llgo_34 - %272 = call ptr @"github.com/goplus/llgo/internal/runtime.PointerTo"(ptr %237) - call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %272) - store ptr %272, ptr @"*_llgo_main.T3", align 8 + %308 = call ptr @"github.com/goplus/llgo/internal/runtime.PointerTo"(ptr %305) + call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %308) + store ptr %308, ptr @"*_llgo_main.T3", align 8 br label %_llgo_36 _llgo_36: ; preds = %_llgo_35, %_llgo_34 - %273 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(i64 17, i64 8, i64 1, i64 1) - %274 = load ptr, ptr @_llgo_main.T4, align 8 - %275 = icmp eq ptr %274, null - br i1 %275, label %_llgo_37, label %_llgo_38 + %309 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %310 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %309, i32 0, i32 0 + store ptr @20, ptr %310, align 8 + %311 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %309, i32 0, i32 1 + store i64 7, ptr %311, align 4 + %312 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %309, align 8 + %313 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(%"github.com/goplus/llgo/internal/runtime.String" %312, i64 17, i64 8, i64 1, i64 1) + %314 = load ptr, ptr @_llgo_main.T4, align 8 + %315 = icmp eq ptr %314, null + br i1 %315, label %_llgo_37, label %_llgo_38 _llgo_37: ; preds = %_llgo_36 - store ptr %273, ptr @_llgo_main.T4, align 8 + store ptr %313, ptr @_llgo_main.T4, align 8 br label %_llgo_38 _llgo_38: ; preds = %_llgo_37, %_llgo_36 - %276 = load ptr, ptr @_llgo_int, align 8 - %277 = load ptr, ptr @"[1]_llgo_int", align 8 - %278 = icmp eq ptr %277, null - br i1 %278, label %_llgo_39, label %_llgo_40 + %316 = load ptr, ptr @_llgo_int, align 8 + %317 = load ptr, ptr @"[1]_llgo_int", align 8 + %318 = icmp eq ptr %317, null + br i1 %318, label %_llgo_39, label %_llgo_40 _llgo_39: ; preds = %_llgo_38 - %279 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 34) - %280 = call ptr @"github.com/goplus/llgo/internal/runtime.ArrayOf"(i64 1, ptr %279) - store ptr %280, ptr @"[1]_llgo_int", align 8 + %319 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 34) + %320 = call ptr @"github.com/goplus/llgo/internal/runtime.ArrayOf"(i64 1, ptr %319) + store ptr %320, ptr @"[1]_llgo_int", align 8 br label %_llgo_40 _llgo_40: ; preds = %_llgo_39, %_llgo_38 - %281 = load ptr, ptr @"[1]_llgo_int", align 8 - br i1 %275, label %_llgo_41, label %_llgo_42 + %321 = load ptr, ptr @"[1]_llgo_int", align 8 + br i1 %315, label %_llgo_41, label %_llgo_42 _llgo_41: ; preds = %_llgo_40 - %282 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %283 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %282, i32 0, i32 0 - store ptr @10, ptr %283, align 8 - %284 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %282, i32 0, i32 1 - store i64 6, ptr %284, align 4 - %285 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %282, align 8 - %286 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 - %287 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 - %288 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %287, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %285, ptr %288, align 8 - %289 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %287, i32 0, i32 1 - store ptr %286, ptr %289, align 8 - %290 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %287, i32 0, i32 2 - store ptr @"main.(*T4).Invoke", ptr %290, align 8 - %291 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %287, i32 0, i32 3 - store ptr @"main.(*T4).Invoke", ptr %291, align 8 - %292 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %287, align 8 - %293 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 - %294 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %293, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %285, ptr %294, align 8 - %295 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %293, i32 0, i32 1 - store ptr %286, ptr %295, align 8 - %296 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %293, i32 0, i32 2 - store ptr @"main.(*T4).Invoke", ptr %296, align 8 - %297 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %293, i32 0, i32 3 - store ptr @main.T4.Invoke, ptr %297, align 8 - %298 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %293, align 8 - %299 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 40) - %300 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %299, i64 0 - store %"github.com/goplus/llgo/internal/abi.Method" %298, ptr %300, align 8 - %301 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %302 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %301, i32 0, i32 0 - store ptr %299, ptr %302, align 8 - %303 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %301, i32 0, i32 1 - store i64 1, ptr %303, align 4 - %304 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %301, i32 0, i32 2 - store i64 1, ptr %304, align 4 - %305 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %301, align 8 - %306 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 40) - %307 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %306, i64 0 - store %"github.com/goplus/llgo/internal/abi.Method" %292, ptr %307, align 8 - %308 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %309 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %308, i32 0, i32 0 - store ptr %306, ptr %309, align 8 - %310 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %308, i32 0, i32 1 - store i64 1, ptr %310, align 4 - %311 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %308, i32 0, i32 2 - store i64 1, ptr %311, align 4 - %312 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %308, align 8 - %313 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %314 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %313, i32 0, i32 0 - store ptr @9, ptr %314, align 8 - %315 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %313, i32 0, i32 1 - store i64 4, ptr %315, align 4 - %316 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %313, align 8 - %317 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %318 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %317, i32 0, i32 0 - store ptr @16, ptr %318, align 8 - %319 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %317, i32 0, i32 1 - store i64 2, ptr %319, align 4 - %320 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %317, align 8 - call void @"github.com/goplus/llgo/internal/runtime.InitNamed"(ptr %273, %"github.com/goplus/llgo/internal/runtime.String" %316, %"github.com/goplus/llgo/internal/runtime.String" %320, ptr %281, %"github.com/goplus/llgo/internal/runtime.Slice" %305, %"github.com/goplus/llgo/internal/runtime.Slice" %312) + %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 @11, ptr %323, align 8 + %324 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %322, i32 0, i32 1 + store i64 6, ptr %324, align 4 + %325 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %322, align 8 + %326 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 + %327 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %328 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %327, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %325, ptr %328, align 8 + %329 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %327, i32 0, i32 1 + store ptr %326, ptr %329, align 8 + %330 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %327, i32 0, i32 2 + store ptr @"main.(*T4).Invoke", ptr %330, align 8 + %331 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %327, i32 0, i32 3 + store ptr @"main.(*T4).Invoke", ptr %331, align 8 + %332 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %327, align 8 + %333 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %334 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %333, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %325, ptr %334, align 8 + %335 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %333, i32 0, i32 1 + store ptr %326, ptr %335, align 8 + %336 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %333, i32 0, i32 2 + store ptr @"main.(*T4).Invoke", ptr %336, align 8 + %337 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %333, i32 0, i32 3 + store ptr @main.T4.Invoke, ptr %337, align 8 + %338 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %333, align 8 + %339 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 40) + %340 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %339, i64 0 + store %"github.com/goplus/llgo/internal/abi.Method" %338, ptr %340, align 8 + %341 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %342 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %341, i32 0, i32 0 + store ptr %339, ptr %342, align 8 + %343 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %341, i32 0, i32 1 + store i64 1, ptr %343, align 4 + %344 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %341, i32 0, i32 2 + store i64 1, ptr %344, align 4 + %345 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %341, align 8 + %346 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 40) + %347 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %346, i64 0 + store %"github.com/goplus/llgo/internal/abi.Method" %332, ptr %347, align 8 + %348 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %349 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %348, i32 0, i32 0 + store ptr %346, ptr %349, align 8 + %350 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %348, i32 0, i32 1 + store i64 1, ptr %350, align 4 + %351 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %348, i32 0, i32 2 + store i64 1, ptr %351, align 4 + %352 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %348, 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 @10, ptr %354, align 8 + %355 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %353, i32 0, i32 1 + store i64 4, ptr %355, align 4 + %356 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %353, align 8 + %357 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %358 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %357, i32 0, i32 0 + store ptr @21, ptr %358, align 8 + %359 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %357, i32 0, i32 1 + store i64 2, ptr %359, align 4 + %360 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %357, align 8 + call void @"github.com/goplus/llgo/internal/runtime.InitNamed"(ptr %313, %"github.com/goplus/llgo/internal/runtime.String" %356, %"github.com/goplus/llgo/internal/runtime.String" %360, ptr %321, %"github.com/goplus/llgo/internal/runtime.Slice" %345, %"github.com/goplus/llgo/internal/runtime.Slice" %352) br label %_llgo_42 _llgo_42: ; preds = %_llgo_41, %_llgo_40 - %321 = load ptr, ptr @"*_llgo_main.T4", align 8 - %322 = icmp eq ptr %321, null - br i1 %322, label %_llgo_43, label %_llgo_44 + %361 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %362 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %361, i32 0, i32 0 + store ptr @20, ptr %362, align 8 + %363 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %361, i32 0, i32 1 + store i64 7, ptr %363, align 4 + %364 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %361, align 8 + %365 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(%"github.com/goplus/llgo/internal/runtime.String" %364, i64 17, i64 8, i64 1, i64 1) + %366 = load ptr, ptr @"*_llgo_main.T4", align 8 + %367 = icmp eq ptr %366, null + br i1 %367, label %_llgo_43, label %_llgo_44 _llgo_43: ; preds = %_llgo_42 - %323 = call ptr @"github.com/goplus/llgo/internal/runtime.PointerTo"(ptr %273) - call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %323) - store ptr %323, ptr @"*_llgo_main.T4", align 8 + %368 = call ptr @"github.com/goplus/llgo/internal/runtime.PointerTo"(ptr %365) + call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %368) + store ptr %368, ptr @"*_llgo_main.T4", align 8 br label %_llgo_44 _llgo_44: ; preds = %_llgo_43, %_llgo_42 - %324 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(i64 25, i64 8, i64 1, i64 1) - %325 = load ptr, ptr @_llgo_main.T5, align 8 - %326 = icmp eq ptr %325, null - br i1 %326, label %_llgo_45, label %_llgo_46 + %369 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %370 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %369, i32 0, i32 0 + store ptr @22, ptr %370, align 8 + %371 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %369, i32 0, i32 1 + store i64 7, ptr %371, align 4 + %372 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %369, align 8 + %373 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(%"github.com/goplus/llgo/internal/runtime.String" %372, i64 25, i64 8, i64 1, i64 1) + %374 = load ptr, ptr @_llgo_main.T5, align 8 + %375 = icmp eq ptr %374, null + br i1 %375, label %_llgo_45, label %_llgo_46 _llgo_45: ; preds = %_llgo_44 - store ptr %324, ptr @_llgo_main.T5, align 8 + store ptr %373, ptr @_llgo_main.T5, align 8 br label %_llgo_46 _llgo_46: ; preds = %_llgo_45, %_llgo_44 - %327 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %328 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %327, i32 0, i32 0 - store ptr @17, ptr %328, align 8 - %329 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %327, i32 0, i32 1 - store i64 1, ptr %329, align 4 - %330 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %327, 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 null, ptr %332, align 8 - %333 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %331, i32 0, i32 1 - store i64 0, ptr %333, align 4 - %334 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %331, align 8 - %335 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 34) - %336 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %330, ptr %335, i64 0, %"github.com/goplus/llgo/internal/runtime.String" %334, 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 @9, ptr %338, align 8 - %339 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %337, i32 0, i32 1 - store i64 4, ptr %339, align 4 - %340 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %337, align 8 - %341 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 56) - %342 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %341, i64 0 - store %"github.com/goplus/llgo/internal/abi.StructField" %336, ptr %342, align 8 - %343 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %344 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %343, i32 0, i32 0 - store ptr %341, ptr %344, align 8 - %345 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %343, i32 0, i32 1 - store i64 1, ptr %345, align 4 - %346 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %343, i32 0, i32 2 - store i64 1, ptr %346, align 4 - %347 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %343, align 8 - %348 = call ptr @"github.com/goplus/llgo/internal/runtime.Struct"(%"github.com/goplus/llgo/internal/runtime.String" %340, i64 8, %"github.com/goplus/llgo/internal/runtime.Slice" %347) - store ptr %348, ptr @"main.struct$eovYmOhZg4X0zMSsuscSshndnbbAGvB2E3cyG8E7Y4U", align 8 - %349 = load ptr, ptr @"main.struct$eovYmOhZg4X0zMSsuscSshndnbbAGvB2E3cyG8E7Y4U", align 8 - br i1 %326, label %_llgo_47, label %_llgo_48 + %376 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %377 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %376, i32 0, i32 0 + store ptr @23, ptr %377, align 8 + %378 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %376, i32 0, i32 1 + store i64 1, ptr %378, align 4 + %379 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %376, align 8 + %380 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %381 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %380, i32 0, i32 0 + store ptr null, ptr %381, align 8 + %382 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %380, i32 0, i32 1 + store i64 0, ptr %382, align 4 + %383 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %380, align 8 + %384 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 34) + %385 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %379, ptr %384, i64 0, %"github.com/goplus/llgo/internal/runtime.String" %383, i1 false) + %386 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %387 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %386, i32 0, i32 0 + store ptr @10, ptr %387, align 8 + %388 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %386, i32 0, i32 1 + store i64 4, ptr %388, align 4 + %389 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %386, align 8 + %390 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 56) + %391 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %390, i64 0 + store %"github.com/goplus/llgo/internal/abi.StructField" %385, ptr %391, align 8 + %392 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %393 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %392, i32 0, i32 0 + store ptr %390, ptr %393, align 8 + %394 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %392, i32 0, i32 1 + store i64 1, ptr %394, align 4 + %395 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %392, i32 0, i32 2 + store i64 1, ptr %395, align 4 + %396 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %392, align 8 + %397 = call ptr @"github.com/goplus/llgo/internal/runtime.Struct"(%"github.com/goplus/llgo/internal/runtime.String" %389, i64 8, %"github.com/goplus/llgo/internal/runtime.Slice" %396) + store ptr %397, ptr @"main.struct$eovYmOhZg4X0zMSsuscSshndnbbAGvB2E3cyG8E7Y4U", align 8 + %398 = load ptr, ptr @"main.struct$eovYmOhZg4X0zMSsuscSshndnbbAGvB2E3cyG8E7Y4U", align 8 + br i1 %375, label %_llgo_47, label %_llgo_48 _llgo_47: ; preds = %_llgo_46 - %350 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %351 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %350, i32 0, i32 0 - store ptr @10, ptr %351, align 8 - %352 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %350, i32 0, i32 1 - store i64 6, ptr %352, align 4 - %353 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %350, align 8 - %354 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 - %355 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 - %356 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %355, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %353, ptr %356, align 8 - %357 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %355, i32 0, i32 1 - store ptr %354, ptr %357, align 8 - %358 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %355, i32 0, i32 2 - store ptr @"main.(*T5).Invoke", ptr %358, align 8 - %359 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %355, i32 0, i32 3 - store ptr @"main.(*T5).Invoke", ptr %359, align 8 - %360 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %355, align 8 - %361 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 - %362 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %361, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %353, ptr %362, align 8 - %363 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %361, i32 0, i32 1 - store ptr %354, ptr %363, align 8 - %364 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %361, i32 0, i32 2 - store ptr @"main.(*T5).Invoke", ptr %364, align 8 - %365 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %361, i32 0, i32 3 - store ptr @main.T5.Invoke, ptr %365, align 8 - %366 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %361, align 8 - %367 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 40) - %368 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %367, i64 0 - store %"github.com/goplus/llgo/internal/abi.Method" %366, ptr %368, align 8 - %369 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %370 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %369, i32 0, i32 0 - store ptr %367, ptr %370, align 8 - %371 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %369, i32 0, i32 1 - store i64 1, ptr %371, align 4 - %372 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %369, i32 0, i32 2 - store i64 1, ptr %372, align 4 - %373 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %369, align 8 - %374 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 40) - %375 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %374, i64 0 - store %"github.com/goplus/llgo/internal/abi.Method" %360, ptr %375, align 8 - %376 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %377 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %376, i32 0, i32 0 - store ptr %374, ptr %377, align 8 - %378 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %376, i32 0, i32 1 - store i64 1, ptr %378, align 4 - %379 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %376, i32 0, i32 2 - store i64 1, ptr %379, align 4 - %380 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %376, align 8 - %381 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %382 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %381, i32 0, i32 0 - store ptr @9, ptr %382, align 8 - %383 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %381, i32 0, i32 1 - store i64 4, ptr %383, align 4 - %384 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %381, align 8 - %385 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %386 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %385, i32 0, i32 0 - store ptr @18, ptr %386, align 8 - %387 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %385, i32 0, i32 1 - store i64 2, ptr %387, align 4 - %388 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %385, align 8 - call void @"github.com/goplus/llgo/internal/runtime.InitNamed"(ptr %324, %"github.com/goplus/llgo/internal/runtime.String" %384, %"github.com/goplus/llgo/internal/runtime.String" %388, ptr %349, %"github.com/goplus/llgo/internal/runtime.Slice" %373, %"github.com/goplus/llgo/internal/runtime.Slice" %380) + %399 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %400 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %399, i32 0, i32 0 + store ptr @11, ptr %400, align 8 + %401 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %399, i32 0, i32 1 + store i64 6, ptr %401, align 4 + %402 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %399, align 8 + %403 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 + %404 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %405 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %404, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %402, ptr %405, align 8 + %406 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %404, i32 0, i32 1 + store ptr %403, ptr %406, align 8 + %407 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %404, i32 0, i32 2 + store ptr @"main.(*T5).Invoke", ptr %407, align 8 + %408 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %404, i32 0, i32 3 + store ptr @"main.(*T5).Invoke", ptr %408, align 8 + %409 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %404, align 8 + %410 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %411 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %410, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %402, ptr %411, align 8 + %412 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %410, i32 0, i32 1 + store ptr %403, ptr %412, align 8 + %413 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %410, i32 0, i32 2 + store ptr @"main.(*T5).Invoke", ptr %413, align 8 + %414 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %410, i32 0, i32 3 + store ptr @main.T5.Invoke, ptr %414, align 8 + %415 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %410, align 8 + %416 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 40) + %417 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %416, i64 0 + store %"github.com/goplus/llgo/internal/abi.Method" %415, ptr %417, align 8 + %418 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %419 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %418, i32 0, i32 0 + store ptr %416, ptr %419, align 8 + %420 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %418, i32 0, i32 1 + store i64 1, ptr %420, align 4 + %421 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %418, i32 0, i32 2 + store i64 1, ptr %421, align 4 + %422 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %418, align 8 + %423 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 40) + %424 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %423, i64 0 + store %"github.com/goplus/llgo/internal/abi.Method" %409, ptr %424, align 8 + %425 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %426 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %425, i32 0, i32 0 + store ptr %423, ptr %426, align 8 + %427 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %425, i32 0, i32 1 + store i64 1, ptr %427, align 4 + %428 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %425, i32 0, i32 2 + store i64 1, ptr %428, align 4 + %429 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %425, align 8 + %430 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %431 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %430, i32 0, i32 0 + store ptr @10, ptr %431, align 8 + %432 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %430, i32 0, i32 1 + store i64 4, ptr %432, align 4 + %433 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %430, align 8 + %434 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %435 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %434, i32 0, i32 0 + store ptr @24, ptr %435, align 8 + %436 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %434, i32 0, i32 1 + store i64 2, ptr %436, align 4 + %437 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %434, align 8 + call void @"github.com/goplus/llgo/internal/runtime.InitNamed"(ptr %373, %"github.com/goplus/llgo/internal/runtime.String" %433, %"github.com/goplus/llgo/internal/runtime.String" %437, ptr %398, %"github.com/goplus/llgo/internal/runtime.Slice" %422, %"github.com/goplus/llgo/internal/runtime.Slice" %429) br label %_llgo_48 _llgo_48: ; preds = %_llgo_47, %_llgo_46 - %389 = load ptr, ptr @"*_llgo_main.T5", align 8 - %390 = icmp eq ptr %389, null - br i1 %390, label %_llgo_49, label %_llgo_50 + %438 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %439 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %438, i32 0, i32 0 + store ptr @22, ptr %439, align 8 + %440 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %438, i32 0, i32 1 + store i64 7, ptr %440, align 4 + %441 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %438, align 8 + %442 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(%"github.com/goplus/llgo/internal/runtime.String" %441, i64 25, i64 8, i64 1, i64 1) + %443 = load ptr, ptr @"*_llgo_main.T5", align 8 + %444 = icmp eq ptr %443, null + br i1 %444, label %_llgo_49, label %_llgo_50 _llgo_49: ; preds = %_llgo_48 - %391 = call ptr @"github.com/goplus/llgo/internal/runtime.PointerTo"(ptr %324) - call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %391) - store ptr %391, ptr @"*_llgo_main.T5", align 8 + %445 = call ptr @"github.com/goplus/llgo/internal/runtime.PointerTo"(ptr %442) + call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %445) + store ptr %445, ptr @"*_llgo_main.T5", align 8 br label %_llgo_50 _llgo_50: ; preds = %_llgo_49, %_llgo_48 - %392 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(i64 25, i64 24, i64 1, i64 1) - %393 = load ptr, ptr @_llgo_main.T6, align 8 - %394 = icmp eq ptr %393, null - br i1 %394, label %_llgo_51, label %_llgo_52 + %446 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %447 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %446, i32 0, i32 0 + store ptr @25, ptr %447, align 8 + %448 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %446, i32 0, i32 1 + store i64 7, ptr %448, align 4 + %449 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %446, align 8 + %450 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(%"github.com/goplus/llgo/internal/runtime.String" %449, i64 25, i64 24, i64 1, i64 1) + %451 = load ptr, ptr @_llgo_main.T6, align 8 + %452 = icmp eq ptr %451, null + br i1 %452, label %_llgo_51, label %_llgo_52 _llgo_51: ; preds = %_llgo_50 - store ptr %392, ptr @_llgo_main.T6, align 8 + store ptr %450, ptr @_llgo_main.T6, align 8 br label %_llgo_52 _llgo_52: ; preds = %_llgo_51, %_llgo_50 - %395 = load ptr, ptr @_llgo_Pointer, align 8 - %396 = icmp eq ptr %395, null - br i1 %396, label %_llgo_53, label %_llgo_54 + %453 = load ptr, ptr @_llgo_Pointer, align 8 + %454 = icmp eq ptr %453, null + br i1 %454, label %_llgo_53, label %_llgo_54 _llgo_53: ; preds = %_llgo_52 - %397 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 58) - call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %397) - store ptr %397, ptr @_llgo_Pointer, align 8 + %455 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 58) + call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %455) + store ptr %455, ptr @_llgo_Pointer, align 8 br label %_llgo_54 _llgo_54: ; preds = %_llgo_53, %_llgo_52 - %398 = load ptr, ptr @_llgo_Pointer, align 8 - %399 = load ptr, ptr @_llgo_int, align 8 - %400 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %401 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %400, i32 0, i32 0 - store ptr @19, ptr %401, align 8 - %402 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %400, i32 0, i32 1 - store i64 1, ptr %402, align 4 - %403 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %400, align 8 - %404 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %405 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %404, i32 0, i32 0 - store ptr null, ptr %405, align 8 - %406 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %404, i32 0, i32 1 - store i64 0, ptr %406, align 4 - %407 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %404, align 8 - %408 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 8) - %409 = getelementptr ptr, ptr %408, i64 0 - store ptr %398, ptr %409, align 8 - %410 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %411 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %410, i32 0, i32 0 - store ptr %408, ptr %411, align 8 - %412 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %410, i32 0, i32 1 - store i64 1, ptr %412, align 4 - %413 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %410, i32 0, i32 2 - store i64 1, ptr %413, align 4 - %414 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %410, align 8 - %415 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 8) - %416 = getelementptr ptr, ptr %415, i64 0 - store ptr %399, ptr %416, align 8 - %417 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %418 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %417, i32 0, i32 0 - store ptr %415, ptr %418, align 8 - %419 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %417, i32 0, i32 1 - store i64 1, ptr %419, align 4 - %420 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %417, i32 0, i32 2 - store i64 1, ptr %420, align 4 - %421 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %417, align 8 - %422 = call ptr @"github.com/goplus/llgo/internal/runtime.Func"(%"github.com/goplus/llgo/internal/runtime.Slice" %414, %"github.com/goplus/llgo/internal/runtime.Slice" %421, i1 false) - %423 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %403, ptr %422, i64 0, %"github.com/goplus/llgo/internal/runtime.String" %407, i1 false) - %424 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %425 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %424, i32 0, i32 0 - store ptr @20, ptr %425, align 8 - %426 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %424, i32 0, i32 1 - store i64 4, ptr %426, align 4 - %427 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %424, align 8 - %428 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %429 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %428, i32 0, i32 0 - store ptr null, ptr %429, align 8 - %430 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %428, i32 0, i32 1 - store i64 0, ptr %430, align 4 - %431 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %428, align 8 - %432 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 58) - %433 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %427, ptr %432, i64 8, %"github.com/goplus/llgo/internal/runtime.String" %431, i1 false) - %434 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %435 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %434, i32 0, i32 0 - store ptr @9, ptr %435, align 8 - %436 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %434, i32 0, i32 1 - store i64 4, ptr %436, align 4 - %437 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %434, align 8 - %438 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 112) - %439 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %438, i64 0 - store %"github.com/goplus/llgo/internal/abi.StructField" %423, ptr %439, align 8 - %440 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %438, i64 1 - store %"github.com/goplus/llgo/internal/abi.StructField" %433, ptr %440, align 8 - %441 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %442 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %441, i32 0, i32 0 - store ptr %438, ptr %442, align 8 - %443 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %441, i32 0, i32 1 - store i64 2, ptr %443, align 4 - %444 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %441, i32 0, i32 2 - store i64 2, ptr %444, align 4 - %445 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %441, align 8 - %446 = call ptr @"github.com/goplus/llgo/internal/runtime.Struct"(%"github.com/goplus/llgo/internal/runtime.String" %437, i64 16, %"github.com/goplus/llgo/internal/runtime.Slice" %445) - store ptr %446, ptr @"main.struct$2bSfJcCYDdttnIT-JASAjsTNUZvojBt4mPXFJdH4M10", align 8 - %447 = load ptr, ptr @"main.struct$2bSfJcCYDdttnIT-JASAjsTNUZvojBt4mPXFJdH4M10", align 8 - br i1 %394, label %_llgo_55, label %_llgo_56 - -_llgo_55: ; preds = %_llgo_54 - %448 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %449 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %448, i32 0, i32 0 - store ptr @10, ptr %449, align 8 - %450 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %448, i32 0, i32 1 - store i64 6, ptr %450, align 4 - %451 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %448, align 8 - %452 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 - %453 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 - %454 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %453, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %451, ptr %454, align 8 - %455 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %453, i32 0, i32 1 - store ptr %452, ptr %455, align 8 - %456 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %453, i32 0, i32 2 - store ptr @"main.(*T6).Invoke", ptr %456, align 8 - %457 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %453, i32 0, i32 3 - store ptr @"main.(*T6).Invoke", ptr %457, align 8 - %458 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %453, align 8 - %459 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 - %460 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %459, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %451, ptr %460, align 8 - %461 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %459, i32 0, i32 1 - store ptr %452, ptr %461, align 8 - %462 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %459, i32 0, i32 2 - store ptr @"main.(*T6).Invoke", ptr %462, align 8 - %463 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %459, i32 0, i32 3 - store ptr @main.T6.Invoke, ptr %463, align 8 - %464 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %459, align 8 - %465 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 40) - %466 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %465, i64 0 - store %"github.com/goplus/llgo/internal/abi.Method" %464, ptr %466, align 8 - %467 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %468 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %467, i32 0, i32 0 - store ptr %465, ptr %468, align 8 - %469 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %467, i32 0, i32 1 - store i64 1, ptr %469, align 4 - %470 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %467, i32 0, i32 2 + %456 = load ptr, ptr @_llgo_Pointer, align 8 + %457 = load ptr, ptr @_llgo_int, align 8 + %458 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %459 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %458, i32 0, i32 0 + store ptr @26, ptr %459, align 8 + %460 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %458, i32 0, i32 1 + store i64 1, ptr %460, align 4 + %461 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %458, align 8 + %462 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %463 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %462, i32 0, i32 0 + store ptr null, ptr %463, align 8 + %464 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %462, i32 0, i32 1 + store i64 0, ptr %464, align 4 + %465 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %462, align 8 + %466 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 8) + %467 = getelementptr ptr, ptr %466, i64 0 + store ptr %456, ptr %467, align 8 + %468 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %469 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %468, i32 0, i32 0 + store ptr %466, ptr %469, align 8 + %470 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %468, i32 0, i32 1 store i64 1, ptr %470, align 4 - %471 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %467, align 8 - %472 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 40) - %473 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %472, i64 0 - store %"github.com/goplus/llgo/internal/abi.Method" %458, ptr %473, align 8 - %474 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %475 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %474, i32 0, i32 0 - store ptr %472, ptr %475, align 8 - %476 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %474, i32 0, i32 1 - store i64 1, ptr %476, align 4 - %477 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %474, i32 0, i32 2 + %471 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %468, i32 0, i32 2 + store i64 1, ptr %471, align 4 + %472 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %468, align 8 + %473 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 8) + %474 = getelementptr ptr, ptr %473, i64 0 + store ptr %457, ptr %474, align 8 + %475 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %476 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %475, i32 0, i32 0 + store ptr %473, ptr %476, align 8 + %477 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %475, i32 0, i32 1 store i64 1, ptr %477, align 4 - %478 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %474, align 8 - %479 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %480 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %479, i32 0, i32 0 - store ptr @9, ptr %480, align 8 - %481 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %479, i32 0, i32 1 - store i64 4, ptr %481, align 4 - %482 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %479, align 8 - %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 @21, ptr %484, align 8 - %485 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %483, i32 0, i32 1 - store i64 2, ptr %485, align 4 - %486 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %483, align 8 - call void @"github.com/goplus/llgo/internal/runtime.InitNamed"(ptr %392, %"github.com/goplus/llgo/internal/runtime.String" %482, %"github.com/goplus/llgo/internal/runtime.String" %486, ptr %447, %"github.com/goplus/llgo/internal/runtime.Slice" %471, %"github.com/goplus/llgo/internal/runtime.Slice" %478) + %478 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %475, i32 0, i32 2 + store i64 1, ptr %478, align 4 + %479 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %475, align 8 + %480 = call ptr @"github.com/goplus/llgo/internal/runtime.Func"(%"github.com/goplus/llgo/internal/runtime.Slice" %472, %"github.com/goplus/llgo/internal/runtime.Slice" %479, i1 false) + %481 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %461, ptr %480, i64 0, %"github.com/goplus/llgo/internal/runtime.String" %465, i1 false) + %482 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %483 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %482, i32 0, i32 0 + store ptr @27, ptr %483, align 8 + %484 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %482, i32 0, i32 1 + store i64 4, ptr %484, align 4 + %485 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %482, align 8 + %486 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %487 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %486, i32 0, i32 0 + store ptr null, ptr %487, align 8 + %488 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %486, i32 0, i32 1 + store i64 0, ptr %488, align 4 + %489 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %486, align 8 + %490 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 58) + %491 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %485, ptr %490, i64 8, %"github.com/goplus/llgo/internal/runtime.String" %489, i1 false) + %492 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %493 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %492, i32 0, i32 0 + store ptr @10, ptr %493, align 8 + %494 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %492, i32 0, i32 1 + store i64 4, ptr %494, align 4 + %495 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %492, align 8 + %496 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 112) + %497 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %496, i64 0 + store %"github.com/goplus/llgo/internal/abi.StructField" %481, ptr %497, align 8 + %498 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %496, i64 1 + store %"github.com/goplus/llgo/internal/abi.StructField" %491, ptr %498, align 8 + %499 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %500 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %499, i32 0, i32 0 + store ptr %496, ptr %500, align 8 + %501 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %499, i32 0, i32 1 + store i64 2, ptr %501, align 4 + %502 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %499, i32 0, i32 2 + store i64 2, ptr %502, align 4 + %503 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %499, align 8 + %504 = call ptr @"github.com/goplus/llgo/internal/runtime.Struct"(%"github.com/goplus/llgo/internal/runtime.String" %495, i64 16, %"github.com/goplus/llgo/internal/runtime.Slice" %503) + store ptr %504, ptr @"main.struct$2bSfJcCYDdttnIT-JASAjsTNUZvojBt4mPXFJdH4M10", align 8 + %505 = load ptr, ptr @"main.struct$2bSfJcCYDdttnIT-JASAjsTNUZvojBt4mPXFJdH4M10", align 8 + br i1 %452, label %_llgo_55, label %_llgo_56 + +_llgo_55: ; preds = %_llgo_54 + %506 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %507 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %506, i32 0, i32 0 + store ptr @11, ptr %507, align 8 + %508 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %506, i32 0, i32 1 + store i64 6, ptr %508, align 4 + %509 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %506, align 8 + %510 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 + %511 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %512 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %511, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %509, ptr %512, align 8 + %513 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %511, i32 0, i32 1 + store ptr %510, ptr %513, align 8 + %514 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %511, i32 0, i32 2 + store ptr @"main.(*T6).Invoke", ptr %514, align 8 + %515 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %511, i32 0, i32 3 + store ptr @"main.(*T6).Invoke", ptr %515, align 8 + %516 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %511, align 8 + %517 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %518 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %517, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %509, ptr %518, align 8 + %519 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %517, i32 0, i32 1 + store ptr %510, ptr %519, align 8 + %520 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %517, i32 0, i32 2 + store ptr @"main.(*T6).Invoke", ptr %520, align 8 + %521 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %517, i32 0, i32 3 + store ptr @main.T6.Invoke, ptr %521, align 8 + %522 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %517, align 8 + %523 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 40) + %524 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %523, i64 0 + store %"github.com/goplus/llgo/internal/abi.Method" %522, ptr %524, align 8 + %525 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %526 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %525, i32 0, i32 0 + store ptr %523, ptr %526, align 8 + %527 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %525, i32 0, i32 1 + store i64 1, ptr %527, align 4 + %528 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %525, i32 0, i32 2 + store i64 1, ptr %528, align 4 + %529 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %525, align 8 + %530 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 40) + %531 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %530, i64 0 + store %"github.com/goplus/llgo/internal/abi.Method" %516, ptr %531, align 8 + %532 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %533 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %532, i32 0, i32 0 + store ptr %530, ptr %533, align 8 + %534 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %532, i32 0, i32 1 + store i64 1, ptr %534, align 4 + %535 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %532, i32 0, i32 2 + store i64 1, ptr %535, align 4 + %536 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %532, align 8 + %537 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %538 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %537, i32 0, i32 0 + store ptr @10, ptr %538, align 8 + %539 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %537, i32 0, i32 1 + store i64 4, ptr %539, align 4 + %540 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %537, align 8 + %541 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %542 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %541, i32 0, i32 0 + store ptr @28, ptr %542, align 8 + %543 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %541, i32 0, i32 1 + store i64 2, ptr %543, align 4 + %544 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %541, align 8 + call void @"github.com/goplus/llgo/internal/runtime.InitNamed"(ptr %450, %"github.com/goplus/llgo/internal/runtime.String" %540, %"github.com/goplus/llgo/internal/runtime.String" %544, ptr %505, %"github.com/goplus/llgo/internal/runtime.Slice" %529, %"github.com/goplus/llgo/internal/runtime.Slice" %536) br label %_llgo_56 _llgo_56: ; preds = %_llgo_55, %_llgo_54 - %487 = load ptr, ptr @"*_llgo_main.T6", align 8 - %488 = icmp eq ptr %487, null - br i1 %488, label %_llgo_57, label %_llgo_58 + %545 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %546 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %545, i32 0, i32 0 + store ptr @25, ptr %546, align 8 + %547 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %545, i32 0, i32 1 + store i64 7, ptr %547, align 4 + %548 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %545, align 8 + %549 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(%"github.com/goplus/llgo/internal/runtime.String" %548, i64 25, i64 24, i64 1, i64 1) + %550 = load ptr, ptr @"*_llgo_main.T6", align 8 + %551 = icmp eq ptr %550, null + br i1 %551, label %_llgo_57, label %_llgo_58 _llgo_57: ; preds = %_llgo_56 - %489 = call ptr @"github.com/goplus/llgo/internal/runtime.PointerTo"(ptr %392) - call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %489) - store ptr %489, ptr @"*_llgo_main.T6", align 8 + %552 = call ptr @"github.com/goplus/llgo/internal/runtime.PointerTo"(ptr %549) + call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %552) + store ptr %552, ptr @"*_llgo_main.T6", align 8 br label %_llgo_58 _llgo_58: ; preds = %_llgo_57, %_llgo_56 - %490 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 - %491 = load ptr, ptr @"_llgo_func$2_iS07vIlF2_rZqWB5eU0IvP_9HviM4MYZNkXZDvbac", align 8 - %492 = load ptr, ptr @"_llgo_iface$jwmSdgh1zvY_TDIgLzCkvkbiyrdwl9N806DH0JGcyMI", align 8 - %493 = icmp eq ptr %492, null - br i1 %493, label %_llgo_59, label %_llgo_60 + %553 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 + %554 = load ptr, ptr @"_llgo_func$2_iS07vIlF2_rZqWB5eU0IvP_9HviM4MYZNkXZDvbac", align 8 + %555 = load ptr, ptr @"_llgo_iface$jwmSdgh1zvY_TDIgLzCkvkbiyrdwl9N806DH0JGcyMI", align 8 + %556 = icmp eq ptr %555, null + br i1 %556, label %_llgo_59, label %_llgo_60 _llgo_59: ; preds = %_llgo_58 - %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 @10, ptr %495, align 8 - %496 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %494, i32 0, i32 1 - store i64 6, ptr %496, align 4 - %497 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %494, align 8 - %498 = alloca %"github.com/goplus/llgo/internal/abi.Imethod", align 8 - %499 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Imethod", ptr %498, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %497, ptr %499, align 8 - %500 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Imethod", ptr %498, i32 0, i32 1 - store ptr %490, ptr %500, align 8 - %501 = load %"github.com/goplus/llgo/internal/abi.Imethod", ptr %498, align 8 - %502 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %503 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %502, i32 0, i32 0 - store ptr @11, ptr %503, align 8 - %504 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %502, i32 0, i32 1 - store i64 6, ptr %504, align 4 - %505 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %502, align 8 - %506 = alloca %"github.com/goplus/llgo/internal/abi.Imethod", align 8 - %507 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Imethod", ptr %506, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %505, ptr %507, align 8 - %508 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Imethod", ptr %506, i32 0, i32 1 - store ptr %491, ptr %508, align 8 - %509 = load %"github.com/goplus/llgo/internal/abi.Imethod", ptr %506, align 8 - %510 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 48) - %511 = getelementptr %"github.com/goplus/llgo/internal/abi.Imethod", ptr %510, i64 0 - store %"github.com/goplus/llgo/internal/abi.Imethod" %501, ptr %511, align 8 - %512 = getelementptr %"github.com/goplus/llgo/internal/abi.Imethod", ptr %510, i64 1 - store %"github.com/goplus/llgo/internal/abi.Imethod" %509, ptr %512, align 8 - %513 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %514 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %513, i32 0, i32 0 - store ptr %510, ptr %514, align 8 - %515 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %513, i32 0, i32 1 - store i64 2, ptr %515, align 4 - %516 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %513, i32 0, i32 2 - store i64 2, ptr %516, align 4 - %517 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %513, align 8 - %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 @9, ptr %519, align 8 - %520 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %518, i32 0, i32 1 - store i64 4, 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 ptr @"github.com/goplus/llgo/internal/runtime.Interface"(%"github.com/goplus/llgo/internal/runtime.String" %521, %"github.com/goplus/llgo/internal/runtime.String" %525, %"github.com/goplus/llgo/internal/runtime.Slice" %517) - store ptr %526, ptr @"_llgo_iface$jwmSdgh1zvY_TDIgLzCkvkbiyrdwl9N806DH0JGcyMI", align 8 + %557 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %558 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %557, i32 0, i32 0 + store ptr @11, ptr %558, align 8 + %559 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %557, i32 0, i32 1 + store i64 6, ptr %559, align 4 + %560 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %557, align 8 + %561 = alloca %"github.com/goplus/llgo/internal/abi.Imethod", align 8 + %562 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Imethod", ptr %561, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %560, ptr %562, align 8 + %563 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Imethod", ptr %561, i32 0, i32 1 + store ptr %553, ptr %563, align 8 + %564 = load %"github.com/goplus/llgo/internal/abi.Imethod", ptr %561, align 8 + %565 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %566 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %565, i32 0, i32 0 + store ptr @12, ptr %566, align 8 + %567 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %565, i32 0, i32 1 + store i64 6, ptr %567, align 4 + %568 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %565, align 8 + %569 = alloca %"github.com/goplus/llgo/internal/abi.Imethod", align 8 + %570 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Imethod", ptr %569, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %568, ptr %570, align 8 + %571 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Imethod", ptr %569, i32 0, i32 1 + store ptr %554, ptr %571, align 8 + %572 = load %"github.com/goplus/llgo/internal/abi.Imethod", ptr %569, align 8 + %573 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 48) + %574 = getelementptr %"github.com/goplus/llgo/internal/abi.Imethod", ptr %573, i64 0 + store %"github.com/goplus/llgo/internal/abi.Imethod" %564, ptr %574, align 8 + %575 = getelementptr %"github.com/goplus/llgo/internal/abi.Imethod", ptr %573, i64 1 + store %"github.com/goplus/llgo/internal/abi.Imethod" %572, ptr %575, align 8 + %576 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %577 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %576, i32 0, i32 0 + store ptr %573, ptr %577, align 8 + %578 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %576, i32 0, i32 1 + store i64 2, ptr %578, align 4 + %579 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %576, i32 0, i32 2 + store i64 2, ptr %579, align 4 + %580 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %576, align 8 + %581 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %582 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %581, i32 0, i32 0 + store ptr @10, ptr %582, align 8 + %583 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %581, i32 0, i32 1 + store i64 4, ptr %583, align 4 + %584 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %581, align 8 + %585 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %586 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %585, i32 0, i32 0 + store ptr null, ptr %586, align 8 + %587 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %585, i32 0, i32 1 + store i64 0, ptr %587, align 4 + %588 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %585, align 8 + %589 = call ptr @"github.com/goplus/llgo/internal/runtime.Interface"(%"github.com/goplus/llgo/internal/runtime.String" %584, %"github.com/goplus/llgo/internal/runtime.String" %588, %"github.com/goplus/llgo/internal/runtime.Slice" %580) + store ptr %589, ptr @"_llgo_iface$jwmSdgh1zvY_TDIgLzCkvkbiyrdwl9N806DH0JGcyMI", align 8 br label %_llgo_60 _llgo_60: ; preds = %_llgo_59, %_llgo_58 - %527 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 - %528 = load ptr, ptr @_llgo_main.I, align 8 - %529 = icmp eq ptr %528, null - br i1 %529, label %_llgo_61, label %_llgo_62 + %590 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 + %591 = load ptr, ptr @_llgo_main.I, align 8 + %592 = icmp eq ptr %591, null + br i1 %592, label %_llgo_61, label %_llgo_62 _llgo_61: ; preds = %_llgo_60 - %530 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %531 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %530, i32 0, i32 0 - store ptr @10, ptr %531, align 8 - %532 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %530, i32 0, i32 1 - store i64 6, ptr %532, align 4 - %533 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %530, align 8 - %534 = alloca %"github.com/goplus/llgo/internal/abi.Imethod", align 8 - %535 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Imethod", ptr %534, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %533, ptr %535, align 8 - %536 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Imethod", ptr %534, i32 0, i32 1 - store ptr %527, ptr %536, align 8 - %537 = load %"github.com/goplus/llgo/internal/abi.Imethod", ptr %534, align 8 - %538 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 24) - %539 = getelementptr %"github.com/goplus/llgo/internal/abi.Imethod", ptr %538, i64 0 - store %"github.com/goplus/llgo/internal/abi.Imethod" %537, ptr %539, align 8 - %540 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %541 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %540, i32 0, i32 0 - store ptr %538, ptr %541, align 8 - %542 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %540, i32 0, i32 1 - store i64 1, ptr %542, align 4 - %543 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %540, i32 0, i32 2 - store i64 1, ptr %543, align 4 - %544 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %540, align 8 - %545 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %546 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %545, i32 0, i32 0 - store ptr @9, ptr %546, align 8 - %547 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %545, i32 0, i32 1 - store i64 4, ptr %547, align 4 - %548 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %545, 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 @23, ptr %550, align 8 - %551 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %549, i32 0, i32 1 - store i64 6, ptr %551, align 4 - %552 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %549, align 8 - %553 = call ptr @"github.com/goplus/llgo/internal/runtime.Interface"(%"github.com/goplus/llgo/internal/runtime.String" %548, %"github.com/goplus/llgo/internal/runtime.String" %552, %"github.com/goplus/llgo/internal/runtime.Slice" %544) - store ptr %553, ptr @_llgo_main.I, align 8 + %593 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %594 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %593, i32 0, i32 0 + store ptr @11, ptr %594, align 8 + %595 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %593, i32 0, i32 1 + store i64 6, ptr %595, align 4 + %596 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %593, align 8 + %597 = alloca %"github.com/goplus/llgo/internal/abi.Imethod", align 8 + %598 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Imethod", ptr %597, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %596, ptr %598, align 8 + %599 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Imethod", ptr %597, i32 0, i32 1 + store ptr %590, ptr %599, align 8 + %600 = load %"github.com/goplus/llgo/internal/abi.Imethod", ptr %597, align 8 + %601 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 24) + %602 = getelementptr %"github.com/goplus/llgo/internal/abi.Imethod", ptr %601, i64 0 + store %"github.com/goplus/llgo/internal/abi.Imethod" %600, 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 %601, ptr %604, align 8 + %605 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %603, i32 0, i32 1 + store i64 1, ptr %605, align 4 + %606 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %603, i32 0, i32 2 + store i64 1, ptr %606, align 4 + %607 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %603, align 8 + %608 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %609 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %608, i32 0, i32 0 + store ptr @10, ptr %609, align 8 + %610 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %608, i32 0, i32 1 + store i64 4, ptr %610, align 4 + %611 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %608, align 8 + %612 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %613 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %612, i32 0, i32 0 + store ptr @30, ptr %613, align 8 + %614 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %612, i32 0, i32 1 + store i64 6, ptr %614, align 4 + %615 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %612, align 8 + %616 = call ptr @"github.com/goplus/llgo/internal/runtime.Interface"(%"github.com/goplus/llgo/internal/runtime.String" %611, %"github.com/goplus/llgo/internal/runtime.String" %615, %"github.com/goplus/llgo/internal/runtime.Slice" %607) + store ptr %616, ptr @_llgo_main.I, align 8 br label %_llgo_62 _llgo_62: ; preds = %_llgo_61, %_llgo_60 - %554 = load ptr, ptr @_llgo_string, align 8 - %555 = icmp eq ptr %554, null - br i1 %555, label %_llgo_63, label %_llgo_64 + %617 = load ptr, ptr @_llgo_string, align 8 + %618 = icmp eq ptr %617, null + br i1 %618, label %_llgo_63, label %_llgo_64 _llgo_63: ; preds = %_llgo_62 - %556 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 24) - store ptr %556, ptr @_llgo_string, align 8 + %619 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 24) + store ptr %619, ptr @_llgo_string, align 8 br label %_llgo_64 _llgo_64: ; preds = %_llgo_63, %_llgo_62 - %557 = load ptr, ptr @_llgo_any, align 8 - %558 = icmp eq ptr %557, null - br i1 %558, label %_llgo_65, label %_llgo_66 + %620 = load ptr, ptr @_llgo_any, align 8 + %621 = icmp eq ptr %620, null + br i1 %621, label %_llgo_65, label %_llgo_66 _llgo_65: ; preds = %_llgo_64 - %559 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 0) - %560 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %561 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %560, i32 0, i32 0 - store ptr %559, ptr %561, align 8 - %562 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %560, i32 0, i32 1 - store i64 0, ptr %562, align 4 - %563 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %560, i32 0, i32 2 - store i64 0, ptr %563, align 4 - %564 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %560, align 8 - %565 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %566 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %565, i32 0, i32 0 - store ptr @9, ptr %566, align 8 - %567 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %565, i32 0, i32 1 - store i64 4, ptr %567, align 4 - %568 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %565, align 8 - %569 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %570 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %569, i32 0, i32 0 - store ptr null, ptr %570, align 8 - %571 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %569, i32 0, i32 1 - store i64 0, ptr %571, align 4 - %572 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %569, align 8 - %573 = call ptr @"github.com/goplus/llgo/internal/runtime.Interface"(%"github.com/goplus/llgo/internal/runtime.String" %568, %"github.com/goplus/llgo/internal/runtime.String" %572, %"github.com/goplus/llgo/internal/runtime.Slice" %564) - store ptr %573, ptr @_llgo_any, align 8 + %622 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 0) + %623 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %624 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %623, i32 0, i32 0 + store ptr %622, ptr %624, align 8 + %625 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %623, i32 0, i32 1 + store i64 0, ptr %625, align 4 + %626 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %623, i32 0, i32 2 + store i64 0, ptr %626, align 4 + %627 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %623, 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 @10, ptr %629, align 8 + %630 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %628, i32 0, i32 1 + store i64 4, ptr %630, align 4 + %631 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %628, align 8 + %632 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %633 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %632, i32 0, i32 0 + store ptr null, ptr %633, align 8 + %634 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %632, i32 0, i32 1 + store i64 0, ptr %634, align 4 + %635 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %632, align 8 + %636 = call ptr @"github.com/goplus/llgo/internal/runtime.Interface"(%"github.com/goplus/llgo/internal/runtime.String" %631, %"github.com/goplus/llgo/internal/runtime.String" %635, %"github.com/goplus/llgo/internal/runtime.Slice" %627) + store ptr %636, ptr @_llgo_any, align 8 br label %_llgo_66 _llgo_66: ; preds = %_llgo_65, %_llgo_64 ret void } -declare ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(i64, i64, i64, i64) +declare ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(%"github.com/goplus/llgo/internal/runtime.String", i64, i64, i64, 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") diff --git a/cl/_testgo/reader/out.ll b/cl/_testgo/reader/out.ll index 68c54fc0c..7c74567c7 100644 --- a/cl/_testgo/reader/out.ll +++ b/cl/_testgo/reader/out.ll @@ -35,63 +35,67 @@ source_filename = "main" @6 = private unnamed_addr constant [13 x i8] c"main.WriterTo", align 1 @"_llgo_iface$eN81k1zqixGTyagHw_4nqH4mGfwwehTOCTXUlbT9kzk" = linkonce global ptr null, align 8 @_llgo_main.nopCloserWriterTo = linkonce global ptr null, align 8 +@7 = private unnamed_addr constant [22 x i8] c"main.nopCloserWriterTo", align 1 @"_llgo_struct$_3ow4zXXILqvC0WDqDRNq5DPhjE1DInJgN924VHWc2Y" = linkonce global ptr null, align 8 -@7 = private unnamed_addr constant [6 x i8] c"Reader", align 1 -@8 = private unnamed_addr constant [4 x i8] c"Read", align 1 -@9 = private unnamed_addr constant [11 x i8] c"main.Reader", align 1 -@10 = private unnamed_addr constant [5 x i8] c"Close", align 1 +@8 = private unnamed_addr constant [6 x i8] c"Reader", align 1 +@9 = private unnamed_addr constant [4 x i8] c"Read", align 1 +@10 = private unnamed_addr constant [11 x i8] c"main.Reader", align 1 +@11 = private unnamed_addr constant [5 x i8] c"Close", align 1 @"_llgo_func$8rsrSd_r3UHd_2DiYTyaOKR7BYkei4zw5ysG35KF38w" = linkonce global ptr null, align 8 -@11 = private unnamed_addr constant [17 x i8] c"nopCloserWriterTo", align 1 +@12 = private unnamed_addr constant [17 x i8] c"nopCloserWriterTo", align 1 @"_llgo_iface$L2Ik-AJcd0jsoBw5fQ07pQpfUM-kh78Wn2bOeak6M3I" = linkonce global ptr null, align 8 @_llgo_main.nopCloser = linkonce global ptr null, align 8 -@12 = private unnamed_addr constant [9 x i8] c"nopCloser", align 1 +@13 = private unnamed_addr constant [14 x i8] c"main.nopCloser", align 1 +@14 = private unnamed_addr constant [9 x i8] c"nopCloser", align 1 @_llgo_main.StringWriter = linkonce global ptr null, align 8 @"_llgo_func$thH5FBpdXzJNnCpSfiLU5ItTntFU6LWp0RJhDm2XJjw" = linkonce global ptr null, align 8 -@13 = private unnamed_addr constant [11 x i8] c"WriteString", align 1 -@14 = private unnamed_addr constant [17 x i8] c"main.StringWriter", align 1 +@15 = private unnamed_addr constant [11 x i8] c"WriteString", align 1 +@16 = private unnamed_addr constant [17 x i8] c"main.StringWriter", align 1 @"_llgo_iface$Ly4zXiUMEac-hYAMw6b6miJ1JEhGfLyBWyBOhpsRZcU" = linkonce global ptr null, align 8 -@15 = private unnamed_addr constant [3 x i8] c"EOF", align 1 -@16 = private unnamed_addr constant [11 x i8] c"short write", align 1 +@17 = private unnamed_addr constant [3 x i8] c"EOF", align 1 +@18 = private unnamed_addr constant [11 x i8] c"short write", align 1 @__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 +@19 = private unnamed_addr constant [11 x i8] c"hello world", align 1 @_llgo_main.stringReader = linkonce global ptr null, align 8 +@20 = private unnamed_addr constant [17 x i8] c"main.stringReader", align 1 @"main.struct$Mdt84yjYYwxF9D2i4cRmpEPiWaO6tsjtrbGUjyESypk" = linkonce 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 +@21 = private unnamed_addr constant [1 x i8] c"s", align 1 +@22 = private unnamed_addr constant [1 x i8] c"i", align 1 +@23 = private unnamed_addr constant [8 x i8] c"prevRune", align 1 +@24 = 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 +@25 = 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 +@26 = 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 +@27 = 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 +@28 = 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 +@29 = 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 +@30 = private unnamed_addr constant [10 x i8] c"UnreadByte", align 1 +@31 = private unnamed_addr constant [10 x i8] c"UnreadRune", align 1 +@32 = private unnamed_addr constant [12 x i8] c"stringReader", align 1 @"*_llgo_main.stringReader" = linkonce global ptr null, align 8 @"_llgo_iface$OFO8Us9n8ajWCabGedeuoJ-Za2zAMk4Jh0FunAcUCFE" = linkonce global ptr null, align 8 @_llgo_main.errorString = linkonce global ptr null, align 8 +@33 = private unnamed_addr constant [16 x i8] c"main.errorString", align 1 @"main.struct$QTufDJA9wEDzuzgkA-ZSrLqW-B6lWN8O25mTSglAoLQ" = linkonce global ptr null, align 8 -@30 = private unnamed_addr constant [11 x i8] c"errorString", align 1 +@34 = private unnamed_addr constant [11 x i8] c"errorString", align 1 @"*_llgo_main.errorString" = linkonce global ptr null, align 8 @"_llgo_iface$Fh8eUJ-Gw4e6TYuajcFIOSCuqSPKAt5nS4ow7xeGXEU" = linkonce global ptr null, align 8 -@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 +@35 = private unnamed_addr constant [21 x i8] c"type assertion failed", align 1 +@36 = private unnamed_addr constant [37 x i8] c"stringsReader.ReadAt: negative offset", align 1 +@37 = private unnamed_addr constant [34 x i8] c"stringsReader.Seek: invalid whence", align 1 +@38 = private unnamed_addr constant [37 x i8] c"stringsReader.Seek: negative position", align 1 +@39 = private unnamed_addr constant [48 x i8] c"stringsReader.UnreadByte: at beginning of string", align 1 +@40 = private unnamed_addr constant [49 x i8] c"strings.Reader.UnreadRune: at beginning of string", align 1 +@41 = private unnamed_addr constant [62 x i8] c"strings.Reader.UnreadRune: previous operation was not ReadRune", align 1 +@42 = 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: @@ -394,7 +398,7 @@ _llgo_1: ; preds = %_llgo_0 call void @"main.init$after"() %1 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 %2 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1, i32 0, i32 0 - store ptr @15, ptr %2, align 8 + store ptr @17, ptr %2, align 8 %3 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1, i32 0, i32 1 store i64 3, ptr %3, align 4 %4 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1, align 8 @@ -402,7 +406,7 @@ _llgo_1: ; preds = %_llgo_0 store %"github.com/goplus/llgo/internal/runtime.iface" %5, ptr @main.EOF, align 8 %6 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 %7 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %6, i32 0, i32 0 - store ptr @16, ptr %7, align 8 + store ptr @18, ptr %7, align 8 %8 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %6, i32 0, i32 1 store i64 11, ptr %8, align 4 %9 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %6, align 8 @@ -424,7 +428,7 @@ _llgo_0: %3 = getelementptr inbounds %main.stringReader, ptr %2, i32 0, i32 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 @17, ptr %5, align 8 + store ptr @19, ptr %5, align 8 %6 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %4, i32 0, i32 1 store i64 11, ptr %6, align 4 %7 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %4, align 8 @@ -621,7 +625,7 @@ _llgo_1: ; preds = %_llgo_0 _llgo_2: ; preds = %_llgo_0 %32 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 %33 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %32, i32 0, i32 0 - store ptr @31, ptr %33, align 8 + store ptr @35, ptr %33, align 8 %34 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %32, i32 0, i32 1 store i64 21, ptr %34, align 4 %35 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %32, align 8 @@ -765,7 +769,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 @32, 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 37, ptr %6, align 4 %7 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %4, align 8 @@ -997,7 +1001,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 @33, ptr %17, align 8 + store ptr @37, 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 @@ -1013,7 +1017,7 @@ _llgo_7: ; preds = %_llgo_6 _llgo_8: ; preds = %_llgo_1 %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 @34, ptr %26, align 8 + store ptr @38, ptr %26, align 8 %27 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %25, i32 0, i32 1 store i64 37, ptr %27, align 4 %28 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %25, align 8 @@ -1056,7 +1060,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 @35, ptr %5, align 8 + store ptr @39, 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 @@ -1084,7 +1088,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 @36, ptr %5, align 8 + store ptr @40, 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 @@ -1100,7 +1104,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 @37, ptr %13, align 8 + store ptr @41, 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 @@ -1155,7 +1159,7 @@ _llgo_2: ; preds = %_llgo_0 _llgo_3: ; preds = %_llgo_2 %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 @38, ptr %25, align 8 + store ptr @42, ptr %25, align 8 %26 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %24, i32 0, i32 1 store i64 48, ptr %26, align 4 %27 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %24, align 8 @@ -1552,378 +1556,377 @@ _llgo_21: ; preds = %_llgo_20 br label %_llgo_22 _llgo_22: ; preds = %_llgo_21, %_llgo_20 - %180 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(i64 25, i64 16, i64 3, i64 3) - store ptr %180, ptr @_llgo_main.nopCloserWriterTo, align 8 - %181 = load ptr, ptr @"_llgo_func$06yPPin-fnDnxFKkLLcJ1GEUhIobjPimde7T_Id_hmY", align 8 - %182 = load ptr, ptr @"_llgo_struct$_3ow4zXXILqvC0WDqDRNq5DPhjE1DInJgN924VHWc2Y", align 8 - %183 = icmp eq ptr %182, null - br i1 %183, label %_llgo_23, label %_llgo_24 + %180 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %181 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %180, i32 0, i32 0 + store ptr @7, ptr %181, align 8 + %182 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %180, i32 0, i32 1 + store i64 22, ptr %182, align 4 + %183 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %180, align 8 + %184 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(%"github.com/goplus/llgo/internal/runtime.String" %183, i64 25, i64 16, i64 3, i64 3) + store ptr %184, ptr @_llgo_main.nopCloserWriterTo, align 8 + %185 = load ptr, ptr @"_llgo_func$06yPPin-fnDnxFKkLLcJ1GEUhIobjPimde7T_Id_hmY", align 8 + %186 = load ptr, ptr @"_llgo_struct$_3ow4zXXILqvC0WDqDRNq5DPhjE1DInJgN924VHWc2Y", align 8 + %187 = icmp eq ptr %186, null + br i1 %187, label %_llgo_23, label %_llgo_24 _llgo_23: ; preds = %_llgo_22 - %184 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %185 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %184, i32 0, i32 0 - store ptr @7, ptr %185, align 8 - %186 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %184, i32 0, i32 1 - store i64 6, ptr %186, align 4 - %187 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %184, align 8 %188 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 %189 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %188, i32 0, i32 0 - store ptr null, ptr %189, align 8 + store ptr @8, ptr %189, align 8 %190 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %188, i32 0, i32 1 - store i64 0, ptr %190, align 4 + store i64 6, ptr %190, align 4 %191 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %188, align 8 %192 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 %193 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %192, i32 0, i32 0 - store ptr @8, ptr %193, align 8 + store ptr null, ptr %193, align 8 %194 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %192, i32 0, i32 1 - store i64 4, ptr %194, align 4 + store i64 0, ptr %194, align 4 %195 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %192, align 8 - %196 = alloca %"github.com/goplus/llgo/internal/abi.Imethod", align 8 - %197 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Imethod", ptr %196, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %195, ptr %197, align 8 - %198 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Imethod", ptr %196, i32 0, i32 1 - store ptr %181, ptr %198, align 8 - %199 = load %"github.com/goplus/llgo/internal/abi.Imethod", ptr %196, align 8 - %200 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 24) - %201 = getelementptr %"github.com/goplus/llgo/internal/abi.Imethod", ptr %200, i64 0 - store %"github.com/goplus/llgo/internal/abi.Imethod" %199, ptr %201, align 8 - %202 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %203 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %202, i32 0, i32 0 - store ptr %200, ptr %203, align 8 - %204 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %202, i32 0, i32 1 - store i64 1, ptr %204, align 4 - %205 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %202, i32 0, i32 2 - store i64 1, ptr %205, align 4 - %206 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %202, align 8 - %207 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %208 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %207, i32 0, i32 0 - store ptr @1, ptr %208, align 8 - %209 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %207, i32 0, i32 1 - store i64 4, ptr %209, align 4 - %210 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %207, align 8 + %196 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %197 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %196, i32 0, i32 0 + store ptr @9, ptr %197, align 8 + %198 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %196, i32 0, i32 1 + store i64 4, ptr %198, align 4 + %199 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %196, align 8 + %200 = alloca %"github.com/goplus/llgo/internal/abi.Imethod", align 8 + %201 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Imethod", ptr %200, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %199, ptr %201, align 8 + %202 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Imethod", ptr %200, i32 0, i32 1 + store ptr %185, ptr %202, align 8 + %203 = load %"github.com/goplus/llgo/internal/abi.Imethod", ptr %200, align 8 + %204 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 24) + %205 = getelementptr %"github.com/goplus/llgo/internal/abi.Imethod", ptr %204, i64 0 + store %"github.com/goplus/llgo/internal/abi.Imethod" %203, ptr %205, align 8 + %206 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %207 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %206, i32 0, i32 0 + store ptr %204, ptr %207, align 8 + %208 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %206, i32 0, i32 1 + store i64 1, ptr %208, align 4 + %209 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %206, i32 0, i32 2 + store i64 1, ptr %209, align 4 + %210 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %206, align 8 %211 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 %212 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %211, i32 0, i32 0 - store ptr @9, ptr %212, align 8 + store ptr @1, ptr %212, align 8 %213 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %211, i32 0, i32 1 - store i64 11, ptr %213, align 4 + store i64 4, ptr %213, align 4 %214 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %211, align 8 - %215 = call ptr @"github.com/goplus/llgo/internal/runtime.Interface"(%"github.com/goplus/llgo/internal/runtime.String" %210, %"github.com/goplus/llgo/internal/runtime.String" %214, %"github.com/goplus/llgo/internal/runtime.Slice" %206) - %216 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %187, ptr %215, i64 0, %"github.com/goplus/llgo/internal/runtime.String" %191, i1 true) - %217 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %218 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %217, i32 0, i32 0 - store ptr @1, ptr %218, align 8 - %219 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %217, i32 0, i32 1 - store i64 4, ptr %219, align 4 - %220 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %217, align 8 - %221 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 56) - %222 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %221, i64 0 - store %"github.com/goplus/llgo/internal/abi.StructField" %216, 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 %221, ptr %224, align 8 - %225 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %223, i32 0, i32 1 - store i64 1, ptr %225, align 4 - %226 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %223, i32 0, i32 2 - store i64 1, ptr %226, align 4 - %227 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %223, align 8 - %228 = call ptr @"github.com/goplus/llgo/internal/runtime.Struct"(%"github.com/goplus/llgo/internal/runtime.String" %220, i64 16, %"github.com/goplus/llgo/internal/runtime.Slice" %227) - store ptr %228, ptr @"_llgo_struct$_3ow4zXXILqvC0WDqDRNq5DPhjE1DInJgN924VHWc2Y", align 8 + %215 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %216 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %215, i32 0, i32 0 + store ptr @10, ptr %216, align 8 + %217 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %215, i32 0, i32 1 + store i64 11, ptr %217, align 4 + %218 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %215, align 8 + %219 = call ptr @"github.com/goplus/llgo/internal/runtime.Interface"(%"github.com/goplus/llgo/internal/runtime.String" %214, %"github.com/goplus/llgo/internal/runtime.String" %218, %"github.com/goplus/llgo/internal/runtime.Slice" %210) + %220 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %191, ptr %219, i64 0, %"github.com/goplus/llgo/internal/runtime.String" %195, i1 true) + %221 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %222 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %221, i32 0, i32 0 + store ptr @1, ptr %222, align 8 + %223 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %221, i32 0, i32 1 + store i64 4, ptr %223, align 4 + %224 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %221, align 8 + %225 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 56) + %226 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %225, i64 0 + store %"github.com/goplus/llgo/internal/abi.StructField" %220, ptr %226, align 8 + %227 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %228 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %227, i32 0, i32 0 + store ptr %225, ptr %228, align 8 + %229 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %227, i32 0, i32 1 + store i64 1, ptr %229, align 4 + %230 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %227, i32 0, i32 2 + store i64 1, ptr %230, align 4 + %231 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %227, align 8 + %232 = call ptr @"github.com/goplus/llgo/internal/runtime.Struct"(%"github.com/goplus/llgo/internal/runtime.String" %224, i64 16, %"github.com/goplus/llgo/internal/runtime.Slice" %231) + store ptr %232, ptr @"_llgo_struct$_3ow4zXXILqvC0WDqDRNq5DPhjE1DInJgN924VHWc2Y", align 8 br label %_llgo_24 _llgo_24: ; preds = %_llgo_23, %_llgo_22 - %229 = load ptr, ptr @"_llgo_struct$_3ow4zXXILqvC0WDqDRNq5DPhjE1DInJgN924VHWc2Y", align 8 - %230 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %231 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %230, i32 0, i32 0 - store ptr @10, ptr %231, align 8 - %232 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %230, i32 0, i32 1 - store i64 5, ptr %232, align 4 - %233 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %230, align 8 - %234 = load ptr, ptr @_llgo_error, align 8 - %235 = load ptr, ptr @"_llgo_func$8rsrSd_r3UHd_2DiYTyaOKR7BYkei4zw5ysG35KF38w", align 8 - %236 = icmp eq ptr %235, null - br i1 %236, label %_llgo_25, label %_llgo_26 + %233 = load ptr, ptr @"_llgo_struct$_3ow4zXXILqvC0WDqDRNq5DPhjE1DInJgN924VHWc2Y", align 8 + %234 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %235 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %234, i32 0, i32 0 + store ptr @11, ptr %235, align 8 + %236 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %234, i32 0, i32 1 + store i64 5, ptr %236, align 4 + %237 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %234, align 8 + %238 = load ptr, ptr @_llgo_error, align 8 + %239 = load ptr, ptr @"_llgo_func$8rsrSd_r3UHd_2DiYTyaOKR7BYkei4zw5ysG35KF38w", align 8 + %240 = icmp eq ptr %239, null + br i1 %240, label %_llgo_25, label %_llgo_26 _llgo_25: ; preds = %_llgo_24 - %237 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 0) - %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 %237, ptr %239, align 8 - %240 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %238, i32 0, i32 1 - store i64 0, ptr %240, align 4 - %241 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %238, i32 0, i32 2 - store i64 0, ptr %241, align 4 - %242 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %238, align 8 - %243 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 8) - %244 = getelementptr ptr, ptr %243, i64 0 - store ptr %234, ptr %244, align 8 - %245 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %246 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %245, i32 0, i32 0 - store ptr %243, ptr %246, align 8 - %247 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %245, i32 0, i32 1 - store i64 1, ptr %247, align 4 - %248 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %245, i32 0, i32 2 - store i64 1, ptr %248, align 4 - %249 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %245, align 8 - %250 = call ptr @"github.com/goplus/llgo/internal/runtime.Func"(%"github.com/goplus/llgo/internal/runtime.Slice" %242, %"github.com/goplus/llgo/internal/runtime.Slice" %249, i1 false) - call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %250) - store ptr %250, ptr @"_llgo_func$8rsrSd_r3UHd_2DiYTyaOKR7BYkei4zw5ysG35KF38w", align 8 + %241 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 0) + %242 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %243 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %242, i32 0, i32 0 + store ptr %241, ptr %243, align 8 + %244 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %242, i32 0, i32 1 + store i64 0, ptr %244, align 4 + %245 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %242, i32 0, i32 2 + store i64 0, ptr %245, align 4 + %246 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %242, align 8 + %247 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 8) + %248 = getelementptr ptr, ptr %247, i64 0 + store ptr %238, ptr %248, align 8 + %249 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %250 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %249, i32 0, i32 0 + store ptr %247, ptr %250, align 8 + %251 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %249, i32 0, i32 1 + store i64 1, ptr %251, align 4 + %252 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %249, i32 0, i32 2 + store i64 1, ptr %252, align 4 + %253 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %249, align 8 + %254 = call ptr @"github.com/goplus/llgo/internal/runtime.Func"(%"github.com/goplus/llgo/internal/runtime.Slice" %246, %"github.com/goplus/llgo/internal/runtime.Slice" %253, i1 false) + call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %254) + store ptr %254, ptr @"_llgo_func$8rsrSd_r3UHd_2DiYTyaOKR7BYkei4zw5ysG35KF38w", align 8 br label %_llgo_26 _llgo_26: ; preds = %_llgo_25, %_llgo_24 - %251 = load ptr, ptr @"_llgo_func$8rsrSd_r3UHd_2DiYTyaOKR7BYkei4zw5ysG35KF38w", align 8 - %252 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 - %253 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %252, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %233, ptr %253, align 8 - %254 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %252, i32 0, i32 1 - store ptr %251, ptr %254, align 8 - %255 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %252, i32 0, i32 2 - store ptr @"main.(*nopCloserWriterTo).Close", ptr %255, align 8 - %256 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %252, i32 0, i32 3 - store ptr @"main.(*nopCloserWriterTo).Close", ptr %256, align 8 - %257 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %252, align 8 - %258 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 - %259 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %258, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %233, ptr %259, align 8 - %260 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %258, i32 0, i32 1 - store ptr %251, ptr %260, align 8 - %261 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %258, i32 0, i32 2 - store ptr @"main.(*nopCloserWriterTo).Close", ptr %261, align 8 - %262 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %258, i32 0, i32 3 - store ptr @main.nopCloserWriterTo.Close, ptr %262, align 8 - %263 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %258, align 8 - %264 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %265 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %264, i32 0, i32 0 - store ptr @8, ptr %265, align 8 - %266 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %264, i32 0, i32 1 - store i64 4, ptr %266, align 4 - %267 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %264, align 8 - %268 = load ptr, ptr @"_llgo_func$06yPPin-fnDnxFKkLLcJ1GEUhIobjPimde7T_Id_hmY", align 8 - %269 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 - %270 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %269, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %267, ptr %270, align 8 - %271 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %269, i32 0, i32 1 - store ptr %268, ptr %271, align 8 - %272 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %269, i32 0, i32 2 - store ptr @"main.(*nopCloserWriterTo).Read", ptr %272, align 8 - %273 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %269, i32 0, i32 3 - store ptr @"main.(*nopCloserWriterTo).Read", ptr %273, align 8 - %274 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %269, align 8 - %275 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 - %276 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %275, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %267, ptr %276, align 8 - %277 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %275, i32 0, i32 1 - store ptr %268, ptr %277, align 8 - %278 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %275, i32 0, i32 2 - store ptr @"main.(*nopCloserWriterTo).Read", ptr %278, align 8 - %279 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %275, i32 0, i32 3 - store ptr @main.nopCloserWriterTo.Read, ptr %279, align 8 - %280 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %275, align 8 - %281 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %282 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %281, i32 0, i32 0 - store ptr @5, ptr %282, align 8 - %283 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %281, i32 0, i32 1 - store i64 7, ptr %283, align 4 - %284 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %281, align 8 - %285 = load ptr, ptr @"_llgo_func$MrYxYl10p_I07B55pBsGw9la9zbzU2vGDPLWrT714Uk", align 8 - %286 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 - %287 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %286, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %284, ptr %287, align 8 - %288 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %286, i32 0, i32 1 - store ptr %285, ptr %288, align 8 - %289 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %286, i32 0, i32 2 - store ptr @"main.(*nopCloserWriterTo).WriteTo", ptr %289, align 8 - %290 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %286, i32 0, i32 3 - store ptr @"main.(*nopCloserWriterTo).WriteTo", ptr %290, align 8 - %291 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %286, align 8 - %292 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 - %293 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %292, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %284, ptr %293, align 8 - %294 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %292, i32 0, i32 1 - store ptr %285, ptr %294, align 8 - %295 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %292, i32 0, i32 2 - store ptr @"main.(*nopCloserWriterTo).WriteTo", ptr %295, align 8 - %296 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %292, i32 0, i32 3 - store ptr @main.nopCloserWriterTo.WriteTo, ptr %296, align 8 - %297 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %292, align 8 - %298 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 120) - %299 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %298, i64 0 - store %"github.com/goplus/llgo/internal/abi.Method" %263, ptr %299, align 8 - %300 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %298, i64 1 - store %"github.com/goplus/llgo/internal/abi.Method" %280, ptr %300, align 8 - %301 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %298, i64 2 - store %"github.com/goplus/llgo/internal/abi.Method" %297, ptr %301, align 8 - %302 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %303 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %302, i32 0, i32 0 - store ptr %298, ptr %303, align 8 - %304 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %302, i32 0, i32 1 - store i64 3, ptr %304, align 4 - %305 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %302, i32 0, i32 2 - store i64 3, ptr %305, align 4 - %306 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %302, align 8 - %307 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 120) - %308 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %307, i64 0 - store %"github.com/goplus/llgo/internal/abi.Method" %257, ptr %308, align 8 - %309 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %307, i64 1 - store %"github.com/goplus/llgo/internal/abi.Method" %274, ptr %309, align 8 - %310 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %307, i64 2 - store %"github.com/goplus/llgo/internal/abi.Method" %291, ptr %310, align 8 - %311 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %312 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %311, i32 0, i32 0 - store ptr %307, ptr %312, align 8 - %313 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %311, i32 0, i32 1 - store i64 3, ptr %313, align 4 - %314 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %311, i32 0, i32 2 - store i64 3, ptr %314, align 4 - %315 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %311, align 8 - %316 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %317 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %316, i32 0, i32 0 - store ptr @1, ptr %317, align 8 - %318 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %316, i32 0, i32 1 - store i64 4, ptr %318, align 4 - %319 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %316, align 8 + %255 = load ptr, ptr @"_llgo_func$8rsrSd_r3UHd_2DiYTyaOKR7BYkei4zw5ysG35KF38w", align 8 + %256 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %257 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %256, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %237, ptr %257, align 8 + %258 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %256, i32 0, i32 1 + store ptr %255, ptr %258, align 8 + %259 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %256, i32 0, i32 2 + store ptr @"main.(*nopCloserWriterTo).Close", ptr %259, align 8 + %260 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %256, i32 0, i32 3 + store ptr @"main.(*nopCloserWriterTo).Close", ptr %260, align 8 + %261 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %256, align 8 + %262 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %263 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %262, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %237, ptr %263, align 8 + %264 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %262, i32 0, i32 1 + store ptr %255, ptr %264, align 8 + %265 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %262, i32 0, i32 2 + store ptr @"main.(*nopCloserWriterTo).Close", ptr %265, align 8 + %266 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %262, i32 0, i32 3 + store ptr @main.nopCloserWriterTo.Close, ptr %266, align 8 + %267 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %262, align 8 + %268 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %269 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %268, i32 0, i32 0 + store ptr @9, ptr %269, align 8 + %270 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %268, i32 0, i32 1 + store i64 4, ptr %270, align 4 + %271 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %268, align 8 + %272 = load ptr, ptr @"_llgo_func$06yPPin-fnDnxFKkLLcJ1GEUhIobjPimde7T_Id_hmY", align 8 + %273 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %274 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %273, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %271, ptr %274, align 8 + %275 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %273, i32 0, i32 1 + store ptr %272, ptr %275, align 8 + %276 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %273, i32 0, i32 2 + store ptr @"main.(*nopCloserWriterTo).Read", ptr %276, align 8 + %277 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %273, i32 0, i32 3 + store ptr @"main.(*nopCloserWriterTo).Read", ptr %277, align 8 + %278 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %273, align 8 + %279 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %280 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %279, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %271, ptr %280, align 8 + %281 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %279, i32 0, i32 1 + store ptr %272, ptr %281, align 8 + %282 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %279, i32 0, i32 2 + store ptr @"main.(*nopCloserWriterTo).Read", ptr %282, align 8 + %283 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %279, i32 0, i32 3 + store ptr @main.nopCloserWriterTo.Read, ptr %283, align 8 + %284 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %279, align 8 + %285 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %286 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %285, i32 0, i32 0 + store ptr @5, ptr %286, align 8 + %287 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %285, i32 0, i32 1 + store i64 7, ptr %287, align 4 + %288 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %285, align 8 + %289 = load ptr, ptr @"_llgo_func$MrYxYl10p_I07B55pBsGw9la9zbzU2vGDPLWrT714Uk", align 8 + %290 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %291 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %290, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %288, ptr %291, align 8 + %292 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %290, i32 0, i32 1 + store ptr %289, ptr %292, align 8 + %293 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %290, i32 0, i32 2 + store ptr @"main.(*nopCloserWriterTo).WriteTo", ptr %293, align 8 + %294 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %290, i32 0, i32 3 + store ptr @"main.(*nopCloserWriterTo).WriteTo", ptr %294, align 8 + %295 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %290, align 8 + %296 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %297 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %296, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %288, ptr %297, align 8 + %298 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %296, i32 0, i32 1 + store ptr %289, ptr %298, align 8 + %299 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %296, i32 0, i32 2 + store ptr @"main.(*nopCloserWriterTo).WriteTo", ptr %299, align 8 + %300 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %296, i32 0, i32 3 + store ptr @main.nopCloserWriterTo.WriteTo, ptr %300, align 8 + %301 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %296, align 8 + %302 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 120) + %303 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %302, i64 0 + store %"github.com/goplus/llgo/internal/abi.Method" %267, ptr %303, align 8 + %304 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %302, i64 1 + store %"github.com/goplus/llgo/internal/abi.Method" %284, ptr %304, align 8 + %305 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %302, i64 2 + store %"github.com/goplus/llgo/internal/abi.Method" %301, ptr %305, align 8 + %306 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %307 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %306, i32 0, i32 0 + store ptr %302, ptr %307, align 8 + %308 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %306, i32 0, i32 1 + store i64 3, ptr %308, align 4 + %309 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %306, i32 0, i32 2 + store i64 3, ptr %309, align 4 + %310 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %306, align 8 + %311 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 120) + %312 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %311, i64 0 + store %"github.com/goplus/llgo/internal/abi.Method" %261, ptr %312, align 8 + %313 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %311, i64 1 + store %"github.com/goplus/llgo/internal/abi.Method" %278, ptr %313, align 8 + %314 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %311, i64 2 + store %"github.com/goplus/llgo/internal/abi.Method" %295, ptr %314, align 8 + %315 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %316 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %315, i32 0, i32 0 + store ptr %311, ptr %316, align 8 + %317 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %315, i32 0, i32 1 + store i64 3, ptr %317, align 4 + %318 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %315, i32 0, i32 2 + store i64 3, ptr %318, align 4 + %319 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %315, align 8 %320 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 %321 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %320, i32 0, i32 0 - store ptr @11, ptr %321, align 8 + store ptr @1, ptr %321, align 8 %322 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %320, i32 0, i32 1 - store i64 17, ptr %322, align 4 + store i64 4, ptr %322, align 4 %323 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %320, align 8 - call void @"github.com/goplus/llgo/internal/runtime.InitNamed"(ptr %180, %"github.com/goplus/llgo/internal/runtime.String" %319, %"github.com/goplus/llgo/internal/runtime.String" %323, ptr %229, %"github.com/goplus/llgo/internal/runtime.Slice" %306, %"github.com/goplus/llgo/internal/runtime.Slice" %315) - %324 = load ptr, ptr @"_llgo_func$8rsrSd_r3UHd_2DiYTyaOKR7BYkei4zw5ysG35KF38w", align 8 - %325 = load ptr, ptr @"_llgo_func$06yPPin-fnDnxFKkLLcJ1GEUhIobjPimde7T_Id_hmY", align 8 - %326 = load ptr, ptr @"_llgo_iface$L2Ik-AJcd0jsoBw5fQ07pQpfUM-kh78Wn2bOeak6M3I", align 8 - %327 = icmp eq ptr %326, null - br i1 %327, label %_llgo_27, label %_llgo_28 + %324 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %325 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %324, i32 0, i32 0 + store ptr @12, ptr %325, align 8 + %326 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %324, i32 0, i32 1 + store i64 17, ptr %326, align 4 + %327 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %324, align 8 + call void @"github.com/goplus/llgo/internal/runtime.InitNamed"(ptr %184, %"github.com/goplus/llgo/internal/runtime.String" %323, %"github.com/goplus/llgo/internal/runtime.String" %327, ptr %233, %"github.com/goplus/llgo/internal/runtime.Slice" %310, %"github.com/goplus/llgo/internal/runtime.Slice" %319) + %328 = load ptr, ptr @"_llgo_func$8rsrSd_r3UHd_2DiYTyaOKR7BYkei4zw5ysG35KF38w", align 8 + %329 = load ptr, ptr @"_llgo_func$06yPPin-fnDnxFKkLLcJ1GEUhIobjPimde7T_Id_hmY", align 8 + %330 = load ptr, ptr @"_llgo_iface$L2Ik-AJcd0jsoBw5fQ07pQpfUM-kh78Wn2bOeak6M3I", align 8 + %331 = icmp eq ptr %330, null + br i1 %331, label %_llgo_27, label %_llgo_28 _llgo_27: ; preds = %_llgo_26 - %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 @10, 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/abi.Imethod", align 8 - %333 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Imethod", ptr %332, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %331, ptr %333, align 8 - %334 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Imethod", ptr %332, i32 0, i32 1 - store ptr %324, ptr %334, align 8 - %335 = load %"github.com/goplus/llgo/internal/abi.Imethod", ptr %332, align 8 - %336 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %337 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %336, i32 0, i32 0 - store ptr @8, ptr %337, align 8 - %338 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %336, i32 0, i32 1 - store i64 4, ptr %338, align 4 - %339 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %336, align 8 - %340 = alloca %"github.com/goplus/llgo/internal/abi.Imethod", align 8 - %341 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Imethod", ptr %340, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %339, ptr %341, align 8 - %342 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Imethod", ptr %340, i32 0, i32 1 - store ptr %325, ptr %342, align 8 - %343 = load %"github.com/goplus/llgo/internal/abi.Imethod", ptr %340, align 8 - %344 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 48) - %345 = getelementptr %"github.com/goplus/llgo/internal/abi.Imethod", ptr %344, i64 0 - store %"github.com/goplus/llgo/internal/abi.Imethod" %335, ptr %345, align 8 - %346 = getelementptr %"github.com/goplus/llgo/internal/abi.Imethod", ptr %344, i64 1 - store %"github.com/goplus/llgo/internal/abi.Imethod" %343, ptr %346, align 8 - %347 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %348 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %347, i32 0, i32 0 - store ptr %344, ptr %348, align 8 - %349 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %347, i32 0, i32 1 - store i64 2, ptr %349, align 4 - %350 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %347, i32 0, i32 2 - store i64 2, ptr %350, align 4 - %351 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %347, align 8 - %352 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %353 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %352, i32 0, i32 0 - store ptr @1, ptr %353, align 8 - %354 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %352, i32 0, i32 1 - store i64 4, ptr %354, align 4 - %355 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %352, 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 @11, ptr %333, align 8 + %334 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %332, i32 0, i32 1 + store i64 5, ptr %334, align 4 + %335 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %332, align 8 + %336 = alloca %"github.com/goplus/llgo/internal/abi.Imethod", align 8 + %337 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Imethod", ptr %336, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %335, ptr %337, align 8 + %338 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Imethod", ptr %336, i32 0, i32 1 + store ptr %328, ptr %338, align 8 + %339 = load %"github.com/goplus/llgo/internal/abi.Imethod", ptr %336, align 8 + %340 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %341 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %340, i32 0, i32 0 + store ptr @9, ptr %341, align 8 + %342 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %340, i32 0, i32 1 + store i64 4, ptr %342, align 4 + %343 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %340, align 8 + %344 = alloca %"github.com/goplus/llgo/internal/abi.Imethod", align 8 + %345 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Imethod", ptr %344, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %343, ptr %345, align 8 + %346 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Imethod", ptr %344, i32 0, i32 1 + store ptr %329, ptr %346, align 8 + %347 = load %"github.com/goplus/llgo/internal/abi.Imethod", ptr %344, align 8 + %348 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 48) + %349 = getelementptr %"github.com/goplus/llgo/internal/abi.Imethod", ptr %348, i64 0 + store %"github.com/goplus/llgo/internal/abi.Imethod" %339, ptr %349, align 8 + %350 = getelementptr %"github.com/goplus/llgo/internal/abi.Imethod", ptr %348, i64 1 + store %"github.com/goplus/llgo/internal/abi.Imethod" %347, ptr %350, align 8 + %351 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %352 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %351, i32 0, i32 0 + store ptr %348, ptr %352, align 8 + %353 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %351, i32 0, i32 1 + store i64 2, ptr %353, align 4 + %354 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %351, i32 0, i32 2 + store i64 2, ptr %354, align 4 + %355 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %351, align 8 %356 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 %357 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %356, i32 0, i32 0 - store ptr null, ptr %357, align 8 + store ptr @1, ptr %357, align 8 %358 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %356, i32 0, i32 1 - store i64 0, ptr %358, align 4 + store i64 4, ptr %358, align 4 %359 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %356, align 8 - %360 = call ptr @"github.com/goplus/llgo/internal/runtime.Interface"(%"github.com/goplus/llgo/internal/runtime.String" %355, %"github.com/goplus/llgo/internal/runtime.String" %359, %"github.com/goplus/llgo/internal/runtime.Slice" %351) - store ptr %360, ptr @"_llgo_iface$L2Ik-AJcd0jsoBw5fQ07pQpfUM-kh78Wn2bOeak6M3I", align 8 + %360 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %361 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %360, i32 0, i32 0 + store ptr null, ptr %361, align 8 + %362 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %360, i32 0, i32 1 + store i64 0, ptr %362, align 4 + %363 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %360, align 8 + %364 = call ptr @"github.com/goplus/llgo/internal/runtime.Interface"(%"github.com/goplus/llgo/internal/runtime.String" %359, %"github.com/goplus/llgo/internal/runtime.String" %363, %"github.com/goplus/llgo/internal/runtime.Slice" %355) + store ptr %364, ptr @"_llgo_iface$L2Ik-AJcd0jsoBw5fQ07pQpfUM-kh78Wn2bOeak6M3I", align 8 br label %_llgo_28 _llgo_28: ; preds = %_llgo_27, %_llgo_26 - %361 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(i64 25, i64 16, i64 2, i64 2) - store ptr %361, ptr @_llgo_main.nopCloser, align 8 - %362 = load ptr, ptr @"_llgo_struct$_3ow4zXXILqvC0WDqDRNq5DPhjE1DInJgN924VHWc2Y", align 8 - %363 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %364 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %363, i32 0, i32 0 - store ptr @10, ptr %364, align 8 - %365 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %363, i32 0, i32 1 - store i64 5, ptr %365, align 4 - %366 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %363, align 8 - %367 = load ptr, ptr @"_llgo_func$8rsrSd_r3UHd_2DiYTyaOKR7BYkei4zw5ysG35KF38w", align 8 - %368 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 - %369 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %368, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %366, ptr %369, align 8 - %370 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %368, i32 0, i32 1 - store ptr %367, ptr %370, align 8 - %371 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %368, i32 0, i32 2 - store ptr @"main.(*nopCloser).Close", ptr %371, align 8 - %372 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %368, i32 0, i32 3 - store ptr @"main.(*nopCloser).Close", ptr %372, align 8 - %373 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %368, align 8 - %374 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 - %375 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %374, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %366, ptr %375, align 8 - %376 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %374, i32 0, i32 1 - store ptr %367, ptr %376, align 8 - %377 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %374, i32 0, i32 2 - store ptr @"main.(*nopCloser).Close", ptr %377, align 8 - %378 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %374, i32 0, i32 3 - store ptr @main.nopCloser.Close, ptr %378, align 8 - %379 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %374, align 8 - %380 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %381 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %380, i32 0, i32 0 - store ptr @8, ptr %381, align 8 - %382 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %380, i32 0, i32 1 - store i64 4, ptr %382, align 4 - %383 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %380, align 8 - %384 = load ptr, ptr @"_llgo_func$06yPPin-fnDnxFKkLLcJ1GEUhIobjPimde7T_Id_hmY", align 8 - %385 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 - %386 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %385, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %383, ptr %386, align 8 - %387 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %385, i32 0, i32 1 - store ptr %384, ptr %387, align 8 - %388 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %385, i32 0, i32 2 - store ptr @"main.(*nopCloser).Read", ptr %388, align 8 - %389 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %385, i32 0, i32 3 - store ptr @"main.(*nopCloser).Read", ptr %389, align 8 - %390 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %385, align 8 - %391 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 - %392 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %391, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %383, ptr %392, align 8 - %393 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %391, i32 0, i32 1 - store ptr %384, ptr %393, align 8 - %394 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %391, i32 0, i32 2 - store ptr @"main.(*nopCloser).Read", ptr %394, align 8 - %395 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %391, i32 0, i32 3 - store ptr @main.nopCloser.Read, ptr %395, align 8 - %396 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %391, align 8 - %397 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 80) - %398 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %397, i64 0 - store %"github.com/goplus/llgo/internal/abi.Method" %379, ptr %398, align 8 - %399 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %397, i64 1 - store %"github.com/goplus/llgo/internal/abi.Method" %396, ptr %399, align 8 - %400 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %401 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %400, i32 0, i32 0 - store ptr %397, ptr %401, align 8 - %402 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %400, i32 0, i32 1 - store i64 2, ptr %402, align 4 - %403 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %400, i32 0, i32 2 - store i64 2, ptr %403, align 4 - %404 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %400, align 8 + %365 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %366 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %365, i32 0, i32 0 + store ptr @13, ptr %366, align 8 + %367 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %365, i32 0, i32 1 + store i64 14, ptr %367, align 4 + %368 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %365, align 8 + %369 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(%"github.com/goplus/llgo/internal/runtime.String" %368, i64 25, i64 16, i64 2, i64 2) + store ptr %369, ptr @_llgo_main.nopCloser, align 8 + %370 = load ptr, ptr @"_llgo_struct$_3ow4zXXILqvC0WDqDRNq5DPhjE1DInJgN924VHWc2Y", align 8 + %371 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %372 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %371, i32 0, i32 0 + store ptr @11, ptr %372, align 8 + %373 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %371, i32 0, i32 1 + store i64 5, ptr %373, align 4 + %374 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %371, align 8 + %375 = load ptr, ptr @"_llgo_func$8rsrSd_r3UHd_2DiYTyaOKR7BYkei4zw5ysG35KF38w", align 8 + %376 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %377 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %376, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %374, ptr %377, align 8 + %378 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %376, i32 0, i32 1 + store ptr %375, ptr %378, align 8 + %379 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %376, i32 0, i32 2 + store ptr @"main.(*nopCloser).Close", ptr %379, align 8 + %380 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %376, i32 0, i32 3 + store ptr @"main.(*nopCloser).Close", ptr %380, align 8 + %381 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %376, align 8 + %382 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %383 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %382, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %374, ptr %383, align 8 + %384 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %382, i32 0, i32 1 + store ptr %375, ptr %384, align 8 + %385 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %382, i32 0, i32 2 + store ptr @"main.(*nopCloser).Close", ptr %385, align 8 + %386 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %382, i32 0, i32 3 + store ptr @main.nopCloser.Close, ptr %386, align 8 + %387 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %382, align 8 + %388 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %389 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %388, i32 0, i32 0 + store ptr @9, ptr %389, align 8 + %390 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %388, i32 0, i32 1 + store i64 4, ptr %390, align 4 + %391 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %388, align 8 + %392 = load ptr, ptr @"_llgo_func$06yPPin-fnDnxFKkLLcJ1GEUhIobjPimde7T_Id_hmY", align 8 + %393 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %394 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %393, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %391, ptr %394, align 8 + %395 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %393, i32 0, i32 1 + store ptr %392, ptr %395, align 8 + %396 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %393, i32 0, i32 2 + store ptr @"main.(*nopCloser).Read", ptr %396, align 8 + %397 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %393, i32 0, i32 3 + store ptr @"main.(*nopCloser).Read", ptr %397, align 8 + %398 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %393, align 8 + %399 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %400 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %399, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %391, ptr %400, align 8 + %401 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %399, i32 0, i32 1 + store ptr %392, ptr %401, align 8 + %402 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %399, i32 0, i32 2 + store ptr @"main.(*nopCloser).Read", ptr %402, align 8 + %403 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %399, i32 0, i32 3 + store ptr @main.nopCloser.Read, ptr %403, align 8 + %404 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %399, align 8 %405 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 80) %406 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %405, i64 0 - store %"github.com/goplus/llgo/internal/abi.Method" %373, ptr %406, align 8 + store %"github.com/goplus/llgo/internal/abi.Method" %387, ptr %406, align 8 %407 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %405, i64 1 - store %"github.com/goplus/llgo/internal/abi.Method" %390, ptr %407, align 8 + store %"github.com/goplus/llgo/internal/abi.Method" %404, ptr %407, align 8 %408 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 %409 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %408, i32 0, i32 0 store ptr %405, ptr %409, align 8 @@ -1932,840 +1935,879 @@ _llgo_28: ; preds = %_llgo_27, %_llgo_26 %411 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %408, i32 0, i32 2 store i64 2, ptr %411, align 4 %412 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %408, align 8 - %413 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %414 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %413, i32 0, i32 0 - store ptr @1, ptr %414, align 8 - %415 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %413, i32 0, i32 1 - store i64 4, ptr %415, align 4 - %416 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %413, align 8 - %417 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %418 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %417, i32 0, i32 0 - store ptr @12, ptr %418, align 8 - %419 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %417, i32 0, i32 1 - store i64 9, ptr %419, align 4 - %420 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %417, align 8 - call void @"github.com/goplus/llgo/internal/runtime.InitNamed"(ptr %361, %"github.com/goplus/llgo/internal/runtime.String" %416, %"github.com/goplus/llgo/internal/runtime.String" %420, ptr %362, %"github.com/goplus/llgo/internal/runtime.Slice" %404, %"github.com/goplus/llgo/internal/runtime.Slice" %412) - %421 = load ptr, ptr @_llgo_string, align 8 - %422 = load ptr, ptr @_llgo_int, align 8 - %423 = load ptr, ptr @_llgo_error, align 8 - %424 = load ptr, ptr @"_llgo_func$thH5FBpdXzJNnCpSfiLU5ItTntFU6LWp0RJhDm2XJjw", align 8 - %425 = icmp eq ptr %424, null - br i1 %425, label %_llgo_29, label %_llgo_30 + %413 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 80) + %414 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %413, i64 0 + store %"github.com/goplus/llgo/internal/abi.Method" %381, ptr %414, align 8 + %415 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %413, i64 1 + store %"github.com/goplus/llgo/internal/abi.Method" %398, ptr %415, align 8 + %416 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %417 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %416, i32 0, i32 0 + store ptr %413, ptr %417, align 8 + %418 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %416, i32 0, i32 1 + store i64 2, ptr %418, align 4 + %419 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %416, i32 0, i32 2 + store i64 2, ptr %419, align 4 + %420 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %416, align 8 + %421 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %422 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %421, i32 0, i32 0 + store ptr @1, ptr %422, align 8 + %423 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %421, i32 0, i32 1 + store i64 4, ptr %423, align 4 + %424 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %421, 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 @14, ptr %426, align 8 + %427 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %425, i32 0, i32 1 + store i64 9, ptr %427, align 4 + %428 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %425, align 8 + call void @"github.com/goplus/llgo/internal/runtime.InitNamed"(ptr %369, %"github.com/goplus/llgo/internal/runtime.String" %424, %"github.com/goplus/llgo/internal/runtime.String" %428, ptr %370, %"github.com/goplus/llgo/internal/runtime.Slice" %412, %"github.com/goplus/llgo/internal/runtime.Slice" %420) + %429 = load ptr, ptr @_llgo_string, align 8 + %430 = load ptr, ptr @_llgo_int, align 8 + %431 = load ptr, ptr @_llgo_error, align 8 + %432 = load ptr, ptr @"_llgo_func$thH5FBpdXzJNnCpSfiLU5ItTntFU6LWp0RJhDm2XJjw", align 8 + %433 = icmp eq ptr %432, null + br i1 %433, label %_llgo_29, label %_llgo_30 _llgo_29: ; preds = %_llgo_28 - %426 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 8) - %427 = getelementptr ptr, ptr %426, i64 0 - store ptr %421, ptr %427, align 8 - %428 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %429 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %428, i32 0, i32 0 - store ptr %426, ptr %429, align 8 - %430 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %428, i32 0, i32 1 - store i64 1, ptr %430, align 4 - %431 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %428, i32 0, i32 2 - store i64 1, ptr %431, align 4 - %432 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %428, align 8 - %433 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 16) - %434 = getelementptr ptr, ptr %433, i64 0 - store ptr %422, ptr %434, align 8 - %435 = getelementptr ptr, ptr %433, i64 1 - store ptr %423, ptr %435, align 8 + %434 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 8) + %435 = getelementptr ptr, ptr %434, i64 0 + store ptr %429, ptr %435, align 8 %436 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 %437 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %436, i32 0, i32 0 - store ptr %433, ptr %437, align 8 + store ptr %434, ptr %437, align 8 %438 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %436, i32 0, i32 1 - store i64 2, ptr %438, align 4 + store i64 1, ptr %438, align 4 %439 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %436, i32 0, i32 2 - store i64 2, ptr %439, align 4 + store i64 1, ptr %439, align 4 %440 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %436, align 8 - %441 = call ptr @"github.com/goplus/llgo/internal/runtime.Func"(%"github.com/goplus/llgo/internal/runtime.Slice" %432, %"github.com/goplus/llgo/internal/runtime.Slice" %440, i1 false) - call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %441) - store ptr %441, ptr @"_llgo_func$thH5FBpdXzJNnCpSfiLU5ItTntFU6LWp0RJhDm2XJjw", align 8 + %441 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 16) + %442 = getelementptr ptr, ptr %441, i64 0 + store ptr %430, ptr %442, align 8 + %443 = getelementptr ptr, ptr %441, i64 1 + store ptr %431, ptr %443, align 8 + %444 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %445 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %444, i32 0, i32 0 + store ptr %441, ptr %445, align 8 + %446 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %444, i32 0, i32 1 + store i64 2, ptr %446, align 4 + %447 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %444, i32 0, i32 2 + store i64 2, ptr %447, align 4 + %448 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %444, align 8 + %449 = call ptr @"github.com/goplus/llgo/internal/runtime.Func"(%"github.com/goplus/llgo/internal/runtime.Slice" %440, %"github.com/goplus/llgo/internal/runtime.Slice" %448, i1 false) + call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %449) + store ptr %449, ptr @"_llgo_func$thH5FBpdXzJNnCpSfiLU5ItTntFU6LWp0RJhDm2XJjw", align 8 br label %_llgo_30 _llgo_30: ; preds = %_llgo_29, %_llgo_28 - %442 = load ptr, ptr @"_llgo_func$thH5FBpdXzJNnCpSfiLU5ItTntFU6LWp0RJhDm2XJjw", align 8 - %443 = load ptr, ptr @_llgo_main.StringWriter, align 8 - %444 = icmp eq ptr %443, null - br i1 %444, label %_llgo_31, label %_llgo_32 + %450 = load ptr, ptr @"_llgo_func$thH5FBpdXzJNnCpSfiLU5ItTntFU6LWp0RJhDm2XJjw", align 8 + %451 = load ptr, ptr @_llgo_main.StringWriter, align 8 + %452 = icmp eq ptr %451, null + br i1 %452, label %_llgo_31, label %_llgo_32 _llgo_31: ; preds = %_llgo_30 - %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 @13, ptr %446, align 8 - %447 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %445, i32 0, i32 1 - store i64 11, ptr %447, align 4 - %448 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %445, align 8 - %449 = alloca %"github.com/goplus/llgo/internal/abi.Imethod", align 8 - %450 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Imethod", ptr %449, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %448, ptr %450, align 8 - %451 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Imethod", ptr %449, i32 0, i32 1 - store ptr %442, ptr %451, align 8 - %452 = load %"github.com/goplus/llgo/internal/abi.Imethod", ptr %449, align 8 - %453 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 24) - %454 = getelementptr %"github.com/goplus/llgo/internal/abi.Imethod", ptr %453, i64 0 - store %"github.com/goplus/llgo/internal/abi.Imethod" %452, ptr %454, align 8 - %455 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %456 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %455, i32 0, i32 0 - store ptr %453, ptr %456, align 8 - %457 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %455, i32 0, i32 1 - store i64 1, ptr %457, align 4 - %458 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %455, i32 0, i32 2 - store i64 1, ptr %458, align 4 - %459 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %455, align 8 - %460 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %461 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %460, i32 0, i32 0 - store ptr @1, ptr %461, align 8 - %462 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %460, i32 0, i32 1 - store i64 4, ptr %462, align 4 - %463 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %460, align 8 - %464 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %465 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %464, i32 0, i32 0 - store ptr @14, ptr %465, align 8 - %466 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %464, i32 0, i32 1 - store i64 17, ptr %466, align 4 - %467 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %464, align 8 - %468 = call ptr @"github.com/goplus/llgo/internal/runtime.Interface"(%"github.com/goplus/llgo/internal/runtime.String" %463, %"github.com/goplus/llgo/internal/runtime.String" %467, %"github.com/goplus/llgo/internal/runtime.Slice" %459) - store ptr %468, ptr @_llgo_main.StringWriter, align 8 + %453 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %454 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %453, i32 0, i32 0 + store ptr @15, ptr %454, align 8 + %455 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %453, i32 0, i32 1 + store i64 11, ptr %455, align 4 + %456 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %453, align 8 + %457 = alloca %"github.com/goplus/llgo/internal/abi.Imethod", align 8 + %458 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Imethod", ptr %457, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %456, ptr %458, align 8 + %459 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Imethod", ptr %457, i32 0, i32 1 + store ptr %450, ptr %459, align 8 + %460 = load %"github.com/goplus/llgo/internal/abi.Imethod", ptr %457, align 8 + %461 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 24) + %462 = getelementptr %"github.com/goplus/llgo/internal/abi.Imethod", ptr %461, i64 0 + store %"github.com/goplus/llgo/internal/abi.Imethod" %460, ptr %462, align 8 + %463 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %464 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %463, i32 0, i32 0 + store ptr %461, ptr %464, align 8 + %465 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %463, i32 0, i32 1 + store i64 1, ptr %465, align 4 + %466 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %463, i32 0, i32 2 + store i64 1, ptr %466, align 4 + %467 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %463, align 8 + %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 @1, 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 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %473 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %472, i32 0, i32 0 + store ptr @16, ptr %473, align 8 + %474 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %472, i32 0, i32 1 + store i64 17, ptr %474, align 4 + %475 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %472, align 8 + %476 = call ptr @"github.com/goplus/llgo/internal/runtime.Interface"(%"github.com/goplus/llgo/internal/runtime.String" %471, %"github.com/goplus/llgo/internal/runtime.String" %475, %"github.com/goplus/llgo/internal/runtime.Slice" %467) + store ptr %476, ptr @_llgo_main.StringWriter, align 8 br label %_llgo_32 _llgo_32: ; preds = %_llgo_31, %_llgo_30 - %469 = load ptr, ptr @"_llgo_func$thH5FBpdXzJNnCpSfiLU5ItTntFU6LWp0RJhDm2XJjw", align 8 - %470 = load ptr, ptr @"_llgo_iface$Ly4zXiUMEac-hYAMw6b6miJ1JEhGfLyBWyBOhpsRZcU", align 8 - %471 = icmp eq ptr %470, null - br i1 %471, label %_llgo_33, label %_llgo_34 + %477 = load ptr, ptr @"_llgo_func$thH5FBpdXzJNnCpSfiLU5ItTntFU6LWp0RJhDm2XJjw", align 8 + %478 = load ptr, ptr @"_llgo_iface$Ly4zXiUMEac-hYAMw6b6miJ1JEhGfLyBWyBOhpsRZcU", align 8 + %479 = icmp eq ptr %478, null + br i1 %479, label %_llgo_33, label %_llgo_34 _llgo_33: ; preds = %_llgo_32 - %472 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %473 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %472, i32 0, i32 0 - store ptr @13, ptr %473, align 8 - %474 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %472, i32 0, i32 1 - store i64 11, ptr %474, align 4 - %475 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %472, align 8 - %476 = alloca %"github.com/goplus/llgo/internal/abi.Imethod", align 8 - %477 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Imethod", ptr %476, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %475, ptr %477, align 8 - %478 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Imethod", ptr %476, i32 0, i32 1 - store ptr %469, ptr %478, align 8 - %479 = load %"github.com/goplus/llgo/internal/abi.Imethod", ptr %476, align 8 - %480 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 24) - %481 = getelementptr %"github.com/goplus/llgo/internal/abi.Imethod", ptr %480, i64 0 - store %"github.com/goplus/llgo/internal/abi.Imethod" %479, ptr %481, align 8 - %482 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %483 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %482, i32 0, i32 0 - store ptr %480, ptr %483, align 8 - %484 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %482, i32 0, i32 1 - store i64 1, ptr %484, align 4 - %485 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %482, i32 0, i32 2 - store i64 1, ptr %485, align 4 - %486 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %482, align 8 - %487 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %488 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %487, i32 0, i32 0 - store ptr @1, ptr %488, align 8 - %489 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %487, i32 0, i32 1 - store i64 4, ptr %489, align 4 - %490 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %487, align 8 - %491 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %492 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %491, i32 0, i32 0 - store ptr null, ptr %492, align 8 - %493 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %491, i32 0, i32 1 - store i64 0, ptr %493, align 4 - %494 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %491, align 8 - %495 = call ptr @"github.com/goplus/llgo/internal/runtime.Interface"(%"github.com/goplus/llgo/internal/runtime.String" %490, %"github.com/goplus/llgo/internal/runtime.String" %494, %"github.com/goplus/llgo/internal/runtime.Slice" %486) - store ptr %495, ptr @"_llgo_iface$Ly4zXiUMEac-hYAMw6b6miJ1JEhGfLyBWyBOhpsRZcU", align 8 + %480 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %481 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %480, i32 0, i32 0 + store ptr @15, ptr %481, align 8 + %482 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %480, i32 0, i32 1 + store i64 11, ptr %482, align 4 + %483 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %480, align 8 + %484 = alloca %"github.com/goplus/llgo/internal/abi.Imethod", align 8 + %485 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Imethod", ptr %484, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %483, ptr %485, align 8 + %486 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Imethod", ptr %484, i32 0, i32 1 + store ptr %477, ptr %486, align 8 + %487 = load %"github.com/goplus/llgo/internal/abi.Imethod", ptr %484, align 8 + %488 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 24) + %489 = getelementptr %"github.com/goplus/llgo/internal/abi.Imethod", ptr %488, i64 0 + store %"github.com/goplus/llgo/internal/abi.Imethod" %487, ptr %489, align 8 + %490 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %491 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %490, i32 0, i32 0 + store ptr %488, ptr %491, align 8 + %492 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %490, i32 0, i32 1 + store i64 1, ptr %492, align 4 + %493 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %490, i32 0, i32 2 + store i64 1, ptr %493, align 4 + %494 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %490, align 8 + %495 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %496 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %495, i32 0, i32 0 + store ptr @1, ptr %496, align 8 + %497 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %495, i32 0, i32 1 + store i64 4, ptr %497, align 4 + %498 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %495, align 8 + %499 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %500 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %499, i32 0, i32 0 + store ptr null, ptr %500, align 8 + %501 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %499, i32 0, i32 1 + store i64 0, ptr %501, align 4 + %502 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %499, align 8 + %503 = call ptr @"github.com/goplus/llgo/internal/runtime.Interface"(%"github.com/goplus/llgo/internal/runtime.String" %498, %"github.com/goplus/llgo/internal/runtime.String" %502, %"github.com/goplus/llgo/internal/runtime.Slice" %494) + store ptr %503, ptr @"_llgo_iface$Ly4zXiUMEac-hYAMw6b6miJ1JEhGfLyBWyBOhpsRZcU", align 8 br label %_llgo_34 _llgo_34: ; preds = %_llgo_33, %_llgo_32 - %496 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(i64 25, i64 32, i64 0, i64 10) - store ptr %496, ptr @_llgo_main.stringReader, align 8 - %497 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %498 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %497, i32 0, i32 0 - store ptr @18, ptr %498, align 8 - %499 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %497, i32 0, i32 1 - store i64 1, ptr %499, align 4 - %500 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %497, align 8 - %501 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %502 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %501, i32 0, i32 0 - store ptr null, ptr %502, align 8 - %503 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %501, i32 0, i32 1 - store i64 0, ptr %503, align 4 - %504 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %501, align 8 - %505 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 24) - %506 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %500, ptr %505, i64 0, %"github.com/goplus/llgo/internal/runtime.String" %504, i1 false) - %507 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %508 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %507, i32 0, i32 0 - store ptr @19, ptr %508, align 8 - %509 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %507, i32 0, i32 1 - store i64 1, ptr %509, align 4 - %510 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %507, align 8 - %511 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %512 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %511, i32 0, i32 0 - store ptr null, ptr %512, align 8 - %513 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %511, i32 0, i32 1 - store i64 0, ptr %513, align 4 - %514 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %511, align 8 - %515 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 38) - %516 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %510, ptr %515, i64 16, %"github.com/goplus/llgo/internal/runtime.String" %514, i1 false) - %517 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %518 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %517, i32 0, i32 0 - store ptr @20, ptr %518, align 8 - %519 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %517, i32 0, i32 1 - store i64 8, ptr %519, align 4 - %520 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %517, align 8 - %521 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %522 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %521, i32 0, i32 0 - store ptr null, ptr %522, align 8 - %523 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %521, i32 0, i32 1 - store i64 0, ptr %523, align 4 - %524 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %521, align 8 - %525 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 34) - %526 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %520, ptr %525, i64 24, %"github.com/goplus/llgo/internal/runtime.String" %524, 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 @1, ptr %528, align 8 - %529 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %527, i32 0, i32 1 - store i64 4, ptr %529, align 4 - %530 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %527, align 8 - %531 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 168) - %532 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %531, i64 0 - store %"github.com/goplus/llgo/internal/abi.StructField" %506, ptr %532, align 8 - %533 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %531, i64 1 - store %"github.com/goplus/llgo/internal/abi.StructField" %516, ptr %533, align 8 - %534 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %531, i64 2 - store %"github.com/goplus/llgo/internal/abi.StructField" %526, ptr %534, align 8 - %535 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %536 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %535, i32 0, i32 0 - store ptr %531, ptr %536, align 8 - %537 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %535, i32 0, i32 1 - store i64 3, ptr %537, align 4 - %538 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %535, i32 0, i32 2 - store i64 3, ptr %538, align 4 - %539 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %535, align 8 - %540 = call ptr @"github.com/goplus/llgo/internal/runtime.Struct"(%"github.com/goplus/llgo/internal/runtime.String" %530, i64 32, %"github.com/goplus/llgo/internal/runtime.Slice" %539) - store ptr %540, ptr @"main.struct$Mdt84yjYYwxF9D2i4cRmpEPiWaO6tsjtrbGUjyESypk", align 8 - %541 = load ptr, ptr @"main.struct$Mdt84yjYYwxF9D2i4cRmpEPiWaO6tsjtrbGUjyESypk", align 8 - %542 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %543 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %542, i32 0, i32 0 - store ptr @21, ptr %543, align 8 - %544 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %542, i32 0, i32 1 - store i64 3, ptr %544, align 4 - %545 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %542, align 8 - %546 = load ptr, ptr @_llgo_int, align 8 - %547 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 - %548 = icmp eq ptr %547, null - br i1 %548, label %_llgo_35, label %_llgo_36 + %504 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %505 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %504, i32 0, i32 0 + store ptr @20, ptr %505, align 8 + %506 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %504, i32 0, i32 1 + store i64 17, ptr %506, align 4 + %507 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %504, align 8 + %508 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(%"github.com/goplus/llgo/internal/runtime.String" %507, i64 25, i64 32, i64 0, i64 10) + store ptr %508, ptr @_llgo_main.stringReader, 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 @21, 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 ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 24) + %518 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %512, ptr %517, i64 0, %"github.com/goplus/llgo/internal/runtime.String" %516, i1 false) + %519 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %520 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %519, i32 0, i32 0 + store ptr @22, ptr %520, align 8 + %521 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %519, i32 0, i32 1 + store i64 1, ptr %521, align 4 + %522 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %519, align 8 + %523 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %524 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %523, i32 0, i32 0 + store ptr null, ptr %524, align 8 + %525 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %523, i32 0, i32 1 + store i64 0, ptr %525, align 4 + %526 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %523, align 8 + %527 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 38) + %528 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %522, ptr %527, i64 16, %"github.com/goplus/llgo/internal/runtime.String" %526, i1 false) + %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 @23, ptr %530, align 8 + %531 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %529, i32 0, i32 1 + store i64 8, ptr %531, align 4 + %532 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %529, align 8 + %533 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %534 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %533, i32 0, i32 0 + store ptr null, ptr %534, align 8 + %535 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %533, i32 0, i32 1 + store i64 0, ptr %535, align 4 + %536 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %533, align 8 + %537 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 34) + %538 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %532, ptr %537, i64 24, %"github.com/goplus/llgo/internal/runtime.String" %536, i1 false) + %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 @1, ptr %540, align 8 + %541 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %539, i32 0, i32 1 + store i64 4, ptr %541, align 4 + %542 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %539, align 8 + %543 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 168) + %544 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %543, i64 0 + store %"github.com/goplus/llgo/internal/abi.StructField" %518, ptr %544, align 8 + %545 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %543, i64 1 + store %"github.com/goplus/llgo/internal/abi.StructField" %528, ptr %545, align 8 + %546 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %543, i64 2 + store %"github.com/goplus/llgo/internal/abi.StructField" %538, ptr %546, align 8 + %547 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %548 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %547, i32 0, i32 0 + store ptr %543, ptr %548, align 8 + %549 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %547, i32 0, i32 1 + store i64 3, ptr %549, align 4 + %550 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %547, i32 0, i32 2 + store i64 3, ptr %550, align 4 + %551 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %547, align 8 + %552 = call ptr @"github.com/goplus/llgo/internal/runtime.Struct"(%"github.com/goplus/llgo/internal/runtime.String" %542, i64 32, %"github.com/goplus/llgo/internal/runtime.Slice" %551) + store ptr %552, ptr @"main.struct$Mdt84yjYYwxF9D2i4cRmpEPiWaO6tsjtrbGUjyESypk", align 8 + %553 = load ptr, ptr @"main.struct$Mdt84yjYYwxF9D2i4cRmpEPiWaO6tsjtrbGUjyESypk", 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 @24, ptr %555, align 8 + %556 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %554, i32 0, i32 1 + store i64 3, ptr %556, align 4 + %557 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %554, align 8 + %558 = load ptr, ptr @_llgo_int, align 8 + %559 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 + %560 = icmp eq ptr %559, null + br i1 %560, label %_llgo_35, label %_llgo_36 _llgo_35: ; preds = %_llgo_34 - %549 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 0) - %550 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %551 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %550, i32 0, i32 0 - store ptr %549, ptr %551, align 8 - %552 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %550, i32 0, i32 1 - store i64 0, ptr %552, align 4 - %553 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %550, i32 0, i32 2 - store i64 0, ptr %553, align 4 - %554 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %550, align 8 - %555 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 8) - %556 = getelementptr ptr, ptr %555, i64 0 - store ptr %546, ptr %556, align 8 - %557 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %558 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %557, i32 0, i32 0 - store ptr %555, ptr %558, align 8 - %559 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %557, i32 0, i32 1 - store i64 1, ptr %559, align 4 - %560 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %557, i32 0, i32 2 - store i64 1, ptr %560, align 4 - %561 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %557, align 8 - %562 = call ptr @"github.com/goplus/llgo/internal/runtime.Func"(%"github.com/goplus/llgo/internal/runtime.Slice" %554, %"github.com/goplus/llgo/internal/runtime.Slice" %561, i1 false) - call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %562) - store ptr %562, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 + %561 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 0) + %562 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %563 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %562, i32 0, i32 0 + store ptr %561, ptr %563, align 8 + %564 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %562, i32 0, i32 1 + store i64 0, ptr %564, align 4 + %565 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %562, i32 0, i32 2 + store i64 0, ptr %565, align 4 + %566 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %562, align 8 + %567 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 8) + %568 = getelementptr ptr, ptr %567, i64 0 + store ptr %558, ptr %568, align 8 + %569 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %570 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %569, i32 0, i32 0 + store ptr %567, ptr %570, align 8 + %571 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %569, i32 0, i32 1 + store i64 1, ptr %571, align 4 + %572 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %569, i32 0, i32 2 + store i64 1, ptr %572, align 4 + %573 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %569, align 8 + %574 = call ptr @"github.com/goplus/llgo/internal/runtime.Func"(%"github.com/goplus/llgo/internal/runtime.Slice" %566, %"github.com/goplus/llgo/internal/runtime.Slice" %573, i1 false) + call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %574) + store ptr %574, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 br label %_llgo_36 _llgo_36: ; preds = %_llgo_35, %_llgo_34 - %563 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 - %564 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 - %565 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %564, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %545, ptr %565, align 8 - %566 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %564, i32 0, i32 1 - store ptr %563, ptr %566, align 8 - %567 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %564, i32 0, i32 2 - store ptr @"main.(*stringReader).Len", ptr %567, align 8 - %568 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %564, i32 0, i32 3 - store ptr @"main.(*stringReader).Len", ptr %568, align 8 - %569 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %564, align 8 - %570 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %571 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %570, i32 0, i32 0 - store ptr @8, ptr %571, align 8 - %572 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %570, i32 0, i32 1 - store i64 4, ptr %572, align 4 - %573 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %570, align 8 - %574 = load ptr, ptr @"_llgo_func$06yPPin-fnDnxFKkLLcJ1GEUhIobjPimde7T_Id_hmY", align 8 - %575 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 - %576 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %575, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %573, ptr %576, align 8 - %577 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %575, i32 0, i32 1 - store ptr %574, ptr %577, align 8 - %578 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %575, i32 0, i32 2 - store ptr @"main.(*stringReader).Read", ptr %578, align 8 - %579 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %575, i32 0, i32 3 - store ptr @"main.(*stringReader).Read", ptr %579, align 8 - %580 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %575, align 8 - %581 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %582 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %581, i32 0, i32 0 - store ptr @22, ptr %582, align 8 - %583 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %581, i32 0, i32 1 - store i64 6, ptr %583, align 4 - %584 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %581, align 8 - %585 = load ptr, ptr @"[]_llgo_byte", align 8 - %586 = load ptr, ptr @_llgo_int64, align 8 - %587 = load ptr, ptr @_llgo_int, align 8 - %588 = load ptr, ptr @_llgo_error, align 8 - %589 = load ptr, ptr @"_llgo_func$TY5Etv7VBKM_-2um1BDEeQEE2lP06Pt6G54EuKiNC3c", align 8 - %590 = icmp eq ptr %589, null - br i1 %590, label %_llgo_37, label %_llgo_38 + %575 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 + %576 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %577 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %576, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %557, ptr %577, align 8 + %578 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %576, i32 0, i32 1 + store ptr %575, ptr %578, align 8 + %579 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %576, i32 0, i32 2 + store ptr @"main.(*stringReader).Len", ptr %579, align 8 + %580 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %576, i32 0, i32 3 + store ptr @"main.(*stringReader).Len", ptr %580, align 8 + %581 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %576, align 8 + %582 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %583 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %582, i32 0, i32 0 + store ptr @9, ptr %583, align 8 + %584 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %582, i32 0, i32 1 + store i64 4, ptr %584, align 4 + %585 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %582, align 8 + %586 = load ptr, ptr @"_llgo_func$06yPPin-fnDnxFKkLLcJ1GEUhIobjPimde7T_Id_hmY", align 8 + %587 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %588 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %587, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %585, ptr %588, align 8 + %589 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %587, i32 0, i32 1 + store ptr %586, ptr %589, align 8 + %590 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %587, i32 0, i32 2 + store ptr @"main.(*stringReader).Read", ptr %590, align 8 + %591 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %587, i32 0, i32 3 + store ptr @"main.(*stringReader).Read", ptr %591, align 8 + %592 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %587, align 8 + %593 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %594 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %593, i32 0, i32 0 + store ptr @25, ptr %594, align 8 + %595 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %593, i32 0, i32 1 + store i64 6, ptr %595, align 4 + %596 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %593, align 8 + %597 = load ptr, ptr @"[]_llgo_byte", align 8 + %598 = load ptr, ptr @_llgo_int64, align 8 + %599 = load ptr, ptr @_llgo_int, align 8 + %600 = load ptr, ptr @_llgo_error, align 8 + %601 = load ptr, ptr @"_llgo_func$TY5Etv7VBKM_-2um1BDEeQEE2lP06Pt6G54EuKiNC3c", align 8 + %602 = icmp eq ptr %601, null + br i1 %602, label %_llgo_37, label %_llgo_38 _llgo_37: ; preds = %_llgo_36 - %591 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 16) - %592 = getelementptr ptr, ptr %591, i64 0 - store ptr %585, ptr %592, align 8 - %593 = getelementptr ptr, ptr %591, i64 1 - store ptr %586, ptr %593, align 8 - %594 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %595 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %594, i32 0, i32 0 - store ptr %591, ptr %595, align 8 - %596 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %594, i32 0, i32 1 - store i64 2, ptr %596, align 4 - %597 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %594, i32 0, i32 2 - store i64 2, ptr %597, align 4 - %598 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %594, align 8 - %599 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 16) - %600 = getelementptr ptr, ptr %599, i64 0 - store ptr %587, ptr %600, align 8 - %601 = getelementptr ptr, ptr %599, i64 1 - store ptr %588, ptr %601, align 8 - %602 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %603 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %602, i32 0, i32 0 - store ptr %599, ptr %603, align 8 - %604 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %602, i32 0, i32 1 - store i64 2, ptr %604, align 4 - %605 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %602, i32 0, i32 2 - store i64 2, ptr %605, align 4 - %606 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %602, align 8 - %607 = call ptr @"github.com/goplus/llgo/internal/runtime.Func"(%"github.com/goplus/llgo/internal/runtime.Slice" %598, %"github.com/goplus/llgo/internal/runtime.Slice" %606, i1 false) - call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %607) - store ptr %607, ptr @"_llgo_func$TY5Etv7VBKM_-2um1BDEeQEE2lP06Pt6G54EuKiNC3c", align 8 + %603 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 16) + %604 = getelementptr ptr, ptr %603, i64 0 + store ptr %597, ptr %604, align 8 + %605 = getelementptr ptr, ptr %603, i64 1 + store ptr %598, ptr %605, align 8 + %606 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %607 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %606, i32 0, i32 0 + store ptr %603, ptr %607, align 8 + %608 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %606, i32 0, i32 1 + store i64 2, ptr %608, align 4 + %609 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %606, i32 0, i32 2 + store i64 2, ptr %609, align 4 + %610 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %606, align 8 + %611 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 16) + %612 = getelementptr ptr, ptr %611, i64 0 + store ptr %599, ptr %612, align 8 + %613 = getelementptr ptr, ptr %611, i64 1 + store ptr %600, ptr %613, align 8 + %614 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %615 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %614, i32 0, i32 0 + store ptr %611, ptr %615, align 8 + %616 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %614, i32 0, i32 1 + store i64 2, ptr %616, align 4 + %617 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %614, i32 0, i32 2 + store i64 2, ptr %617, align 4 + %618 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %614, align 8 + %619 = call ptr @"github.com/goplus/llgo/internal/runtime.Func"(%"github.com/goplus/llgo/internal/runtime.Slice" %610, %"github.com/goplus/llgo/internal/runtime.Slice" %618, i1 false) + call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %619) + store ptr %619, ptr @"_llgo_func$TY5Etv7VBKM_-2um1BDEeQEE2lP06Pt6G54EuKiNC3c", align 8 br label %_llgo_38 _llgo_38: ; preds = %_llgo_37, %_llgo_36 - %608 = load ptr, ptr @"_llgo_func$TY5Etv7VBKM_-2um1BDEeQEE2lP06Pt6G54EuKiNC3c", align 8 - %609 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 - %610 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %609, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %584, ptr %610, align 8 - %611 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %609, i32 0, i32 1 - store ptr %608, ptr %611, align 8 - %612 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %609, i32 0, i32 2 - store ptr @"main.(*stringReader).ReadAt", ptr %612, align 8 - %613 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %609, i32 0, i32 3 - store ptr @"main.(*stringReader).ReadAt", ptr %613, align 8 - %614 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %609, align 8 - %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 @23, 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 = load ptr, ptr @_llgo_byte, align 8 - %620 = icmp eq ptr %619, null - br i1 %620, label %_llgo_39, label %_llgo_40 + %620 = load ptr, ptr @"_llgo_func$TY5Etv7VBKM_-2um1BDEeQEE2lP06Pt6G54EuKiNC3c", align 8 + %621 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %622 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %621, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %596, ptr %622, align 8 + %623 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %621, i32 0, i32 1 + store ptr %620, ptr %623, align 8 + %624 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %621, i32 0, i32 2 + store ptr @"main.(*stringReader).ReadAt", ptr %624, align 8 + %625 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %621, i32 0, i32 3 + store ptr @"main.(*stringReader).ReadAt", ptr %625, align 8 + %626 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %621, align 8 + %627 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %628 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %627, i32 0, i32 0 + store ptr @26, ptr %628, align 8 + %629 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %627, i32 0, i32 1 + store i64 8, ptr %629, align 4 + %630 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %627, align 8 + %631 = load ptr, ptr @_llgo_byte, align 8 + %632 = icmp eq ptr %631, null + br i1 %632, label %_llgo_39, label %_llgo_40 _llgo_39: ; preds = %_llgo_38 - %621 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 40) - store ptr %621, ptr @_llgo_byte, align 8 + %633 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 40) + store ptr %633, ptr @_llgo_byte, align 8 br label %_llgo_40 _llgo_40: ; preds = %_llgo_39, %_llgo_38 - %622 = load ptr, ptr @_llgo_byte, align 8 - %623 = load ptr, ptr @_llgo_error, align 8 - %624 = load ptr, ptr @"_llgo_func$6bvVpCcGPUc3z_EmsQTHB0AVT1hP5-NNLVRgm43teCM", align 8 - %625 = icmp eq ptr %624, null - br i1 %625, label %_llgo_41, label %_llgo_42 + %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_41, label %_llgo_42 _llgo_41: ; preds = %_llgo_40 - %626 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 0) - %627 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %628 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %627, i32 0, i32 0 - store ptr %626, ptr %628, align 8 - %629 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %627, i32 0, i32 1 - store i64 0, ptr %629, align 4 - %630 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %627, i32 0, i32 2 - store i64 0, ptr %630, align 4 - %631 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %627, align 8 - %632 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 16) - %633 = getelementptr ptr, ptr %632, i64 0 - store ptr %622, ptr %633, align 8 - %634 = getelementptr ptr, ptr %632, i64 1 - store ptr %623, ptr %634, align 8 - %635 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %636 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %635, i32 0, i32 0 - store ptr %632, ptr %636, align 8 - %637 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %635, i32 0, i32 1 - store i64 2, ptr %637, align 4 - %638 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %635, i32 0, i32 2 - store i64 2, ptr %638, align 4 - %639 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %635, align 8 - %640 = call ptr @"github.com/goplus/llgo/internal/runtime.Func"(%"github.com/goplus/llgo/internal/runtime.Slice" %631, %"github.com/goplus/llgo/internal/runtime.Slice" %639, i1 false) - call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %640) - store ptr %640, ptr @"_llgo_func$6bvVpCcGPUc3z_EmsQTHB0AVT1hP5-NNLVRgm43teCM", align 8 + %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) + call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %652) + store ptr %652, ptr @"_llgo_func$6bvVpCcGPUc3z_EmsQTHB0AVT1hP5-NNLVRgm43teCM", align 8 br label %_llgo_42 _llgo_42: ; preds = %_llgo_41, %_llgo_40 - %641 = load ptr, ptr @"_llgo_func$6bvVpCcGPUc3z_EmsQTHB0AVT1hP5-NNLVRgm43teCM", align 8 - %642 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 - %643 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %642, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %618, ptr %643, align 8 - %644 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %642, i32 0, i32 1 - store ptr %641, ptr %644, align 8 - %645 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %642, i32 0, i32 2 - store ptr @"main.(*stringReader).ReadByte", ptr %645, align 8 - %646 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %642, i32 0, i32 3 - store ptr @"main.(*stringReader).ReadByte", ptr %646, align 8 - %647 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %642, align 8 - %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 @24, ptr %649, align 8 - %650 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %648, i32 0, i32 1 - store i64 8, ptr %650, align 4 - %651 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %648, align 8 - %652 = load ptr, ptr @_llgo_rune, align 8 - %653 = icmp eq ptr %652, null - br i1 %653, label %_llgo_43, label %_llgo_44 + %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" %630, 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 @27, 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_43, label %_llgo_44 _llgo_43: ; preds = %_llgo_42 - %654 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 37) - store ptr %654, ptr @_llgo_rune, align 8 + %666 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 37) + store ptr %666, ptr @_llgo_rune, align 8 br label %_llgo_44 _llgo_44: ; preds = %_llgo_43, %_llgo_42 - %655 = load ptr, ptr @_llgo_rune, align 8 - %656 = load ptr, ptr @_llgo_int, align 8 - %657 = load ptr, ptr @_llgo_error, align 8 - %658 = load ptr, ptr @"_llgo_func$CB0CO6hV_feSzhi4pz1P4omza2fKNK930wvOR1T33fU", align 8 - %659 = icmp eq ptr %658, null - br i1 %659, label %_llgo_45, label %_llgo_46 + %667 = load ptr, ptr @_llgo_rune, align 8 + %668 = load ptr, ptr @_llgo_int, align 8 + %669 = load ptr, ptr @_llgo_error, align 8 + %670 = load ptr, ptr @"_llgo_func$CB0CO6hV_feSzhi4pz1P4omza2fKNK930wvOR1T33fU", align 8 + %671 = icmp eq ptr %670, null + br i1 %671, label %_llgo_45, label %_llgo_46 _llgo_45: ; preds = %_llgo_44 - %660 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 0) - %661 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %662 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %661, i32 0, i32 0 - store ptr %660, ptr %662, align 8 - %663 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %661, i32 0, i32 1 - store i64 0, ptr %663, align 4 - %664 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %661, i32 0, i32 2 - store i64 0, ptr %664, align 4 - %665 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %661, align 8 - %666 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 24) - %667 = getelementptr ptr, ptr %666, i64 0 - store ptr %655, ptr %667, align 8 - %668 = getelementptr ptr, ptr %666, i64 1 - store ptr %656, ptr %668, align 8 - %669 = getelementptr ptr, ptr %666, i64 2 - store ptr %657, ptr %669, align 8 - %670 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %671 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %670, i32 0, i32 0 - store ptr %666, ptr %671, align 8 - %672 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %670, i32 0, i32 1 - store i64 3, ptr %672, align 4 - %673 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %670, i32 0, i32 2 - store i64 3, ptr %673, align 4 - %674 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %670, align 8 - %675 = call ptr @"github.com/goplus/llgo/internal/runtime.Func"(%"github.com/goplus/llgo/internal/runtime.Slice" %665, %"github.com/goplus/llgo/internal/runtime.Slice" %674, i1 false) - call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %675) - store ptr %675, ptr @"_llgo_func$CB0CO6hV_feSzhi4pz1P4omza2fKNK930wvOR1T33fU", align 8 + %672 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 0) + %673 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %674 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %673, i32 0, i32 0 + store ptr %672, ptr %674, align 8 + %675 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %673, i32 0, i32 1 + store i64 0, ptr %675, align 4 + %676 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %673, i32 0, i32 2 + store i64 0, ptr %676, align 4 + %677 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %673, align 8 + %678 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 24) + %679 = getelementptr ptr, ptr %678, i64 0 + store ptr %667, ptr %679, align 8 + %680 = getelementptr ptr, ptr %678, i64 1 + store ptr %668, ptr %680, align 8 + %681 = getelementptr ptr, ptr %678, i64 2 + store ptr %669, ptr %681, align 8 + %682 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %683 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %682, i32 0, i32 0 + store ptr %678, ptr %683, align 8 + %684 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %682, i32 0, i32 1 + store i64 3, ptr %684, align 4 + %685 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %682, i32 0, i32 2 + store i64 3, ptr %685, align 4 + %686 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %682, align 8 + %687 = call ptr @"github.com/goplus/llgo/internal/runtime.Func"(%"github.com/goplus/llgo/internal/runtime.Slice" %677, %"github.com/goplus/llgo/internal/runtime.Slice" %686, i1 false) + call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %687) + store ptr %687, ptr @"_llgo_func$CB0CO6hV_feSzhi4pz1P4omza2fKNK930wvOR1T33fU", align 8 br label %_llgo_46 _llgo_46: ; preds = %_llgo_45, %_llgo_44 - %676 = load ptr, ptr @"_llgo_func$CB0CO6hV_feSzhi4pz1P4omza2fKNK930wvOR1T33fU", align 8 - %677 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 - %678 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %677, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %651, ptr %678, align 8 - %679 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %677, i32 0, i32 1 - store ptr %676, ptr %679, align 8 - %680 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %677, i32 0, i32 2 - store ptr @"main.(*stringReader).ReadRune", ptr %680, align 8 - %681 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %677, i32 0, i32 3 - store ptr @"main.(*stringReader).ReadRune", ptr %681, align 8 - %682 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %677, align 8 - %683 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %684 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %683, i32 0, i32 0 - store ptr @25, ptr %684, align 8 - %685 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %683, i32 0, i32 1 - store i64 4, ptr %685, align 4 - %686 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %683, align 8 - %687 = load ptr, ptr @_llgo_int64, align 8 - %688 = load ptr, ptr @_llgo_int, align 8 - %689 = load ptr, ptr @_llgo_int64, align 8 - %690 = load ptr, ptr @_llgo_error, align 8 - %691 = load ptr, ptr @"_llgo_func$HE7H49xPa1uXmrkMDpqB3RCRGf3qzhLGrxKCEXOYjms", align 8 - %692 = icmp eq ptr %691, null - br i1 %692, label %_llgo_47, label %_llgo_48 + %688 = load ptr, ptr @"_llgo_func$CB0CO6hV_feSzhi4pz1P4omza2fKNK930wvOR1T33fU", align 8 + %689 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %690 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %689, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %663, ptr %690, align 8 + %691 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %689, i32 0, i32 1 + store ptr %688, ptr %691, align 8 + %692 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %689, i32 0, i32 2 + store ptr @"main.(*stringReader).ReadRune", ptr %692, align 8 + %693 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %689, i32 0, i32 3 + store ptr @"main.(*stringReader).ReadRune", ptr %693, align 8 + %694 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %689, align 8 + %695 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %696 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %695, i32 0, i32 0 + store ptr @28, ptr %696, align 8 + %697 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %695, i32 0, i32 1 + store i64 4, ptr %697, align 4 + %698 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %695, align 8 + %699 = load ptr, ptr @_llgo_int64, align 8 + %700 = load ptr, ptr @_llgo_int, align 8 + %701 = load ptr, ptr @_llgo_int64, align 8 + %702 = load ptr, ptr @_llgo_error, align 8 + %703 = load ptr, ptr @"_llgo_func$HE7H49xPa1uXmrkMDpqB3RCRGf3qzhLGrxKCEXOYjms", align 8 + %704 = icmp eq ptr %703, null + br i1 %704, label %_llgo_47, label %_llgo_48 _llgo_47: ; preds = %_llgo_46 - %693 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 16) - %694 = getelementptr ptr, ptr %693, i64 0 - store ptr %687, ptr %694, align 8 - %695 = getelementptr ptr, ptr %693, i64 1 - store ptr %688, ptr %695, align 8 - %696 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %697 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %696, i32 0, i32 0 - store ptr %693, ptr %697, align 8 - %698 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %696, i32 0, i32 1 - store i64 2, ptr %698, align 4 - %699 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %696, i32 0, i32 2 - store i64 2, ptr %699, align 4 - %700 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %696, align 8 - %701 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 16) - %702 = getelementptr ptr, ptr %701, i64 0 - store ptr %689, ptr %702, align 8 - %703 = getelementptr ptr, ptr %701, i64 1 - store ptr %690, ptr %703, align 8 - %704 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %705 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %704, i32 0, i32 0 - store ptr %701, ptr %705, align 8 - %706 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %704, i32 0, i32 1 - store i64 2, ptr %706, align 4 - %707 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %704, i32 0, i32 2 - store i64 2, ptr %707, align 4 - %708 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %704, align 8 - %709 = call ptr @"github.com/goplus/llgo/internal/runtime.Func"(%"github.com/goplus/llgo/internal/runtime.Slice" %700, %"github.com/goplus/llgo/internal/runtime.Slice" %708, i1 false) - call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %709) - store ptr %709, ptr @"_llgo_func$HE7H49xPa1uXmrkMDpqB3RCRGf3qzhLGrxKCEXOYjms", align 8 + %705 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 16) + %706 = getelementptr ptr, ptr %705, i64 0 + store ptr %699, ptr %706, align 8 + %707 = getelementptr ptr, ptr %705, i64 1 + store ptr %700, ptr %707, align 8 + %708 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %709 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %708, i32 0, i32 0 + store ptr %705, ptr %709, align 8 + %710 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %708, i32 0, i32 1 + store i64 2, ptr %710, align 4 + %711 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %708, i32 0, i32 2 + store i64 2, ptr %711, align 4 + %712 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %708, align 8 + %713 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 16) + %714 = getelementptr ptr, ptr %713, i64 0 + store ptr %701, ptr %714, align 8 + %715 = getelementptr ptr, ptr %713, i64 1 + store ptr %702, ptr %715, align 8 + %716 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %717 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %716, i32 0, i32 0 + store ptr %713, ptr %717, align 8 + %718 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %716, i32 0, i32 1 + store i64 2, ptr %718, align 4 + %719 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %716, i32 0, i32 2 + store i64 2, ptr %719, align 4 + %720 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %716, align 8 + %721 = call ptr @"github.com/goplus/llgo/internal/runtime.Func"(%"github.com/goplus/llgo/internal/runtime.Slice" %712, %"github.com/goplus/llgo/internal/runtime.Slice" %720, i1 false) + call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %721) + store ptr %721, ptr @"_llgo_func$HE7H49xPa1uXmrkMDpqB3RCRGf3qzhLGrxKCEXOYjms", align 8 br label %_llgo_48 _llgo_48: ; preds = %_llgo_47, %_llgo_46 - %710 = load ptr, ptr @"_llgo_func$HE7H49xPa1uXmrkMDpqB3RCRGf3qzhLGrxKCEXOYjms", align 8 - %711 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 - %712 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %711, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %686, ptr %712, align 8 - %713 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %711, i32 0, i32 1 - store ptr %710, ptr %713, align 8 - %714 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %711, i32 0, i32 2 - store ptr @"main.(*stringReader).Seek", ptr %714, align 8 - %715 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %711, i32 0, i32 3 - store ptr @"main.(*stringReader).Seek", ptr %715, align 8 - %716 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %711, align 8 - %717 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %718 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %717, i32 0, i32 0 - store ptr @26, ptr %718, align 8 - %719 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %717, i32 0, i32 1 - store i64 4, ptr %719, align 4 - %720 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %717, align 8 - %721 = load ptr, ptr @_llgo_int64, align 8 - %722 = load ptr, ptr @"_llgo_func$Eoig9xhJM5GShHH5aNPxTZZXp1IZxprRl4zPuv2hkug", align 8 - %723 = icmp eq ptr %722, null - br i1 %723, label %_llgo_49, label %_llgo_50 + %722 = load ptr, ptr @"_llgo_func$HE7H49xPa1uXmrkMDpqB3RCRGf3qzhLGrxKCEXOYjms", align 8 + %723 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %724 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %723, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %698, ptr %724, align 8 + %725 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %723, i32 0, i32 1 + store ptr %722, ptr %725, align 8 + %726 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %723, i32 0, i32 2 + store ptr @"main.(*stringReader).Seek", ptr %726, align 8 + %727 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %723, i32 0, i32 3 + store ptr @"main.(*stringReader).Seek", ptr %727, align 8 + %728 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %723, align 8 + %729 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %730 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %729, i32 0, i32 0 + store ptr @29, ptr %730, align 8 + %731 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %729, i32 0, i32 1 + store i64 4, ptr %731, align 4 + %732 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %729, align 8 + %733 = load ptr, ptr @_llgo_int64, align 8 + %734 = load ptr, ptr @"_llgo_func$Eoig9xhJM5GShHH5aNPxTZZXp1IZxprRl4zPuv2hkug", align 8 + %735 = icmp eq ptr %734, null + br i1 %735, label %_llgo_49, label %_llgo_50 _llgo_49: ; preds = %_llgo_48 - %724 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 0) - %725 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %726 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %725, i32 0, i32 0 - store ptr %724, ptr %726, align 8 - %727 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %725, i32 0, i32 1 - store i64 0, ptr %727, align 4 - %728 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %725, i32 0, i32 2 - store i64 0, ptr %728, align 4 - %729 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %725, align 8 - %730 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 8) - %731 = getelementptr ptr, ptr %730, i64 0 - store ptr %721, ptr %731, align 8 - %732 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %733 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %732, i32 0, i32 0 - store ptr %730, ptr %733, align 8 - %734 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %732, i32 0, i32 1 - store i64 1, ptr %734, align 4 - %735 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %732, i32 0, i32 2 - store i64 1, ptr %735, align 4 - %736 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %732, align 8 - %737 = call ptr @"github.com/goplus/llgo/internal/runtime.Func"(%"github.com/goplus/llgo/internal/runtime.Slice" %729, %"github.com/goplus/llgo/internal/runtime.Slice" %736, i1 false) - call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %737) - store ptr %737, ptr @"_llgo_func$Eoig9xhJM5GShHH5aNPxTZZXp1IZxprRl4zPuv2hkug", align 8 + %736 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 0) + %737 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %738 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %737, i32 0, i32 0 + store ptr %736, ptr %738, align 8 + %739 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %737, i32 0, i32 1 + store i64 0, ptr %739, align 4 + %740 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %737, i32 0, i32 2 + store i64 0, ptr %740, align 4 + %741 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %737, align 8 + %742 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 8) + %743 = getelementptr ptr, ptr %742, i64 0 + store ptr %733, ptr %743, align 8 + %744 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %745 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %744, i32 0, i32 0 + store ptr %742, ptr %745, align 8 + %746 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %744, i32 0, i32 1 + store i64 1, ptr %746, align 4 + %747 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %744, i32 0, i32 2 + store i64 1, ptr %747, align 4 + %748 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %744, align 8 + %749 = call ptr @"github.com/goplus/llgo/internal/runtime.Func"(%"github.com/goplus/llgo/internal/runtime.Slice" %741, %"github.com/goplus/llgo/internal/runtime.Slice" %748, i1 false) + call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %749) + store ptr %749, ptr @"_llgo_func$Eoig9xhJM5GShHH5aNPxTZZXp1IZxprRl4zPuv2hkug", align 8 br label %_llgo_50 _llgo_50: ; preds = %_llgo_49, %_llgo_48 - %738 = load ptr, ptr @"_llgo_func$Eoig9xhJM5GShHH5aNPxTZZXp1IZxprRl4zPuv2hkug", align 8 - %739 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 - %740 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %739, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %720, ptr %740, align 8 - %741 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %739, i32 0, i32 1 - store ptr %738, ptr %741, align 8 - %742 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %739, i32 0, i32 2 - store ptr @"main.(*stringReader).Size", ptr %742, align 8 - %743 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %739, i32 0, i32 3 - store ptr @"main.(*stringReader).Size", ptr %743, align 8 - %744 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %739, align 8 - %745 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %746 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %745, i32 0, i32 0 - store ptr @27, ptr %746, align 8 - %747 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %745, i32 0, i32 1 - store i64 10, ptr %747, align 4 - %748 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %745, align 8 - %749 = load ptr, ptr @"_llgo_func$8rsrSd_r3UHd_2DiYTyaOKR7BYkei4zw5ysG35KF38w", align 8 - %750 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 - %751 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %750, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %748, ptr %751, align 8 - %752 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %750, i32 0, i32 1 - store ptr %749, ptr %752, align 8 - %753 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %750, i32 0, i32 2 - store ptr @"main.(*stringReader).UnreadByte", ptr %753, align 8 - %754 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %750, i32 0, i32 3 - store ptr @"main.(*stringReader).UnreadByte", ptr %754, align 8 - %755 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %750, align 8 - %756 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %757 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %756, i32 0, i32 0 - store ptr @28, ptr %757, align 8 - %758 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %756, i32 0, i32 1 - store i64 10, ptr %758, align 4 - %759 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %756, align 8 - %760 = load ptr, ptr @"_llgo_func$8rsrSd_r3UHd_2DiYTyaOKR7BYkei4zw5ysG35KF38w", align 8 - %761 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 - %762 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %761, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %759, ptr %762, align 8 - %763 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %761, i32 0, i32 1 - store ptr %760, ptr %763, align 8 - %764 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %761, i32 0, i32 2 - store ptr @"main.(*stringReader).UnreadRune", ptr %764, align 8 - %765 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %761, i32 0, i32 3 - store ptr @"main.(*stringReader).UnreadRune", ptr %765, align 8 - %766 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %761, align 8 - %767 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %768 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %767, i32 0, i32 0 - store ptr @5, ptr %768, align 8 - %769 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %767, i32 0, i32 1 - store i64 7, ptr %769, align 4 - %770 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %767, align 8 - %771 = load ptr, ptr @"_llgo_func$MrYxYl10p_I07B55pBsGw9la9zbzU2vGDPLWrT714Uk", align 8 - %772 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 - %773 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %772, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %770, ptr %773, align 8 - %774 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %772, i32 0, i32 1 - store ptr %771, ptr %774, align 8 - %775 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %772, i32 0, i32 2 - store ptr @"main.(*stringReader).WriteTo", ptr %775, align 8 - %776 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %772, i32 0, i32 3 - store ptr @"main.(*stringReader).WriteTo", ptr %776, align 8 - %777 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %772, align 8 - %778 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 400) - %779 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %778, i64 0 - store %"github.com/goplus/llgo/internal/abi.Method" %569, ptr %779, align 8 - %780 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %778, i64 1 - store %"github.com/goplus/llgo/internal/abi.Method" %580, ptr %780, align 8 - %781 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %778, i64 2 - store %"github.com/goplus/llgo/internal/abi.Method" %614, ptr %781, align 8 - %782 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %778, i64 3 - store %"github.com/goplus/llgo/internal/abi.Method" %647, ptr %782, align 8 - %783 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %778, i64 4 - store %"github.com/goplus/llgo/internal/abi.Method" %682, ptr %783, align 8 - %784 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %778, i64 5 - store %"github.com/goplus/llgo/internal/abi.Method" %716, ptr %784, align 8 - %785 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %778, i64 6 - store %"github.com/goplus/llgo/internal/abi.Method" %744, ptr %785, align 8 - %786 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %778, i64 7 - store %"github.com/goplus/llgo/internal/abi.Method" %755, ptr %786, align 8 - %787 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %778, i64 8 - store %"github.com/goplus/llgo/internal/abi.Method" %766, ptr %787, align 8 - %788 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %778, i64 9 - store %"github.com/goplus/llgo/internal/abi.Method" %777, ptr %788, align 8 - %789 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %790 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %789, i32 0, i32 0 - store ptr %778, ptr %790, align 8 - %791 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %789, i32 0, i32 1 - store i64 10, ptr %791, align 4 - %792 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %789, i32 0, i32 2 - store i64 10, ptr %792, align 4 - %793 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %789, align 8 - %794 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %795 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %794, i32 0, i32 0 - store ptr @1, ptr %795, align 8 - %796 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %794, i32 0, i32 1 - store i64 4, ptr %796, align 4 - %797 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %794, align 8 - %798 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %799 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %798, i32 0, i32 0 - store ptr @29, ptr %799, align 8 - %800 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %798, i32 0, i32 1 - store i64 12, ptr %800, align 4 - %801 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %798, align 8 - call void @"github.com/goplus/llgo/internal/runtime.InitNamed"(ptr %496, %"github.com/goplus/llgo/internal/runtime.String" %797, %"github.com/goplus/llgo/internal/runtime.String" %801, ptr %541, { ptr, i64, i64 } zeroinitializer, %"github.com/goplus/llgo/internal/runtime.Slice" %793) - %802 = call ptr @"github.com/goplus/llgo/internal/runtime.PointerTo"(ptr %496) - call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %802) - store ptr %802, ptr @"*_llgo_main.stringReader", align 8 - %803 = load ptr, ptr @"_llgo_func$06yPPin-fnDnxFKkLLcJ1GEUhIobjPimde7T_Id_hmY", align 8 - %804 = load ptr, ptr @"_llgo_iface$OFO8Us9n8ajWCabGedeuoJ-Za2zAMk4Jh0FunAcUCFE", align 8 - %805 = icmp eq ptr %804, null - br i1 %805, label %_llgo_51, label %_llgo_52 - -_llgo_51: ; preds = %_llgo_50 + %750 = load ptr, ptr @"_llgo_func$Eoig9xhJM5GShHH5aNPxTZZXp1IZxprRl4zPuv2hkug", align 8 + %751 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %752 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %751, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %732, ptr %752, align 8 + %753 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %751, i32 0, i32 1 + store ptr %750, ptr %753, align 8 + %754 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %751, i32 0, i32 2 + store ptr @"main.(*stringReader).Size", ptr %754, align 8 + %755 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %751, i32 0, i32 3 + store ptr @"main.(*stringReader).Size", ptr %755, align 8 + %756 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %751, align 8 + %757 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %758 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %757, i32 0, i32 0 + store ptr @30, ptr %758, align 8 + %759 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %757, i32 0, i32 1 + store i64 10, ptr %759, align 4 + %760 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %757, align 8 + %761 = load ptr, ptr @"_llgo_func$8rsrSd_r3UHd_2DiYTyaOKR7BYkei4zw5ysG35KF38w", align 8 + %762 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %763 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %762, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %760, ptr %763, align 8 + %764 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %762, i32 0, i32 1 + store ptr %761, ptr %764, align 8 + %765 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %762, i32 0, i32 2 + store ptr @"main.(*stringReader).UnreadByte", ptr %765, align 8 + %766 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %762, i32 0, i32 3 + store ptr @"main.(*stringReader).UnreadByte", ptr %766, align 8 + %767 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %762, align 8 + %768 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %769 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %768, i32 0, i32 0 + store ptr @31, ptr %769, align 8 + %770 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %768, i32 0, i32 1 + store i64 10, ptr %770, align 4 + %771 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %768, align 8 + %772 = load ptr, ptr @"_llgo_func$8rsrSd_r3UHd_2DiYTyaOKR7BYkei4zw5ysG35KF38w", align 8 + %773 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %774 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %773, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %771, ptr %774, align 8 + %775 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %773, i32 0, i32 1 + store ptr %772, ptr %775, align 8 + %776 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %773, i32 0, i32 2 + store ptr @"main.(*stringReader).UnreadRune", ptr %776, align 8 + %777 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %773, i32 0, i32 3 + store ptr @"main.(*stringReader).UnreadRune", ptr %777, align 8 + %778 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %773, align 8 + %779 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %780 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %779, i32 0, i32 0 + store ptr @5, ptr %780, align 8 + %781 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %779, i32 0, i32 1 + store i64 7, ptr %781, align 4 + %782 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %779, align 8 + %783 = load ptr, ptr @"_llgo_func$MrYxYl10p_I07B55pBsGw9la9zbzU2vGDPLWrT714Uk", align 8 + %784 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %785 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %784, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %782, ptr %785, align 8 + %786 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %784, i32 0, i32 1 + store ptr %783, ptr %786, align 8 + %787 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %784, i32 0, i32 2 + store ptr @"main.(*stringReader).WriteTo", ptr %787, align 8 + %788 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %784, i32 0, i32 3 + store ptr @"main.(*stringReader).WriteTo", ptr %788, align 8 + %789 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %784, align 8 + %790 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 400) + %791 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %790, i64 0 + store %"github.com/goplus/llgo/internal/abi.Method" %581, ptr %791, align 8 + %792 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %790, i64 1 + store %"github.com/goplus/llgo/internal/abi.Method" %592, ptr %792, align 8 + %793 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %790, i64 2 + store %"github.com/goplus/llgo/internal/abi.Method" %626, ptr %793, align 8 + %794 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %790, i64 3 + store %"github.com/goplus/llgo/internal/abi.Method" %659, ptr %794, align 8 + %795 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %790, i64 4 + store %"github.com/goplus/llgo/internal/abi.Method" %694, ptr %795, align 8 + %796 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %790, i64 5 + store %"github.com/goplus/llgo/internal/abi.Method" %728, ptr %796, align 8 + %797 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %790, i64 6 + store %"github.com/goplus/llgo/internal/abi.Method" %756, ptr %797, align 8 + %798 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %790, i64 7 + store %"github.com/goplus/llgo/internal/abi.Method" %767, ptr %798, align 8 + %799 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %790, i64 8 + store %"github.com/goplus/llgo/internal/abi.Method" %778, ptr %799, align 8 + %800 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %790, i64 9 + store %"github.com/goplus/llgo/internal/abi.Method" %789, ptr %800, align 8 + %801 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %802 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %801, i32 0, i32 0 + store ptr %790, ptr %802, align 8 + %803 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %801, i32 0, i32 1 + store i64 10, ptr %803, align 4 + %804 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %801, i32 0, i32 2 + store i64 10, ptr %804, align 4 + %805 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %801, align 8 %806 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 %807 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %806, i32 0, i32 0 - store ptr @8, ptr %807, align 8 + store ptr @1, ptr %807, align 8 %808 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %806, i32 0, i32 1 store i64 4, ptr %808, align 4 %809 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %806, align 8 - %810 = alloca %"github.com/goplus/llgo/internal/abi.Imethod", align 8 - %811 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Imethod", ptr %810, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %809, ptr %811, align 8 - %812 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Imethod", ptr %810, i32 0, i32 1 - store ptr %803, ptr %812, align 8 - %813 = load %"github.com/goplus/llgo/internal/abi.Imethod", ptr %810, align 8 - %814 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 24) - %815 = getelementptr %"github.com/goplus/llgo/internal/abi.Imethod", ptr %814, i64 0 - store %"github.com/goplus/llgo/internal/abi.Imethod" %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 = 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 @1, 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/runtime.String", align 8 - %826 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %825, i32 0, i32 0 - store ptr null, ptr %826, align 8 - %827 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %825, i32 0, i32 1 - store i64 0, ptr %827, align 4 - %828 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %825, align 8 - %829 = call ptr @"github.com/goplus/llgo/internal/runtime.Interface"(%"github.com/goplus/llgo/internal/runtime.String" %824, %"github.com/goplus/llgo/internal/runtime.String" %828, %"github.com/goplus/llgo/internal/runtime.Slice" %820) - store ptr %829, ptr @"_llgo_iface$OFO8Us9n8ajWCabGedeuoJ-Za2zAMk4Jh0FunAcUCFE", align 8 + %810 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %811 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %810, i32 0, i32 0 + store ptr @32, ptr %811, align 8 + %812 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %810, i32 0, i32 1 + store i64 12, ptr %812, align 4 + %813 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %810, align 8 + call void @"github.com/goplus/llgo/internal/runtime.InitNamed"(ptr %508, %"github.com/goplus/llgo/internal/runtime.String" %809, %"github.com/goplus/llgo/internal/runtime.String" %813, ptr %553, { ptr, i64, i64 } zeroinitializer, %"github.com/goplus/llgo/internal/runtime.Slice" %805) + %814 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %815 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %814, i32 0, i32 0 + store ptr @20, ptr %815, align 8 + %816 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %814, i32 0, i32 1 + store i64 17, ptr %816, align 4 + %817 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %814, align 8 + %818 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(%"github.com/goplus/llgo/internal/runtime.String" %817, i64 25, i64 32, i64 0, i64 10) + %819 = call ptr @"github.com/goplus/llgo/internal/runtime.PointerTo"(ptr %818) + call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %819) + store ptr %819, ptr @"*_llgo_main.stringReader", align 8 + %820 = load ptr, ptr @"_llgo_func$06yPPin-fnDnxFKkLLcJ1GEUhIobjPimde7T_Id_hmY", align 8 + %821 = load ptr, ptr @"_llgo_iface$OFO8Us9n8ajWCabGedeuoJ-Za2zAMk4Jh0FunAcUCFE", align 8 + %822 = icmp eq ptr %821, null + br i1 %822, label %_llgo_51, label %_llgo_52 + +_llgo_51: ; preds = %_llgo_50 + %823 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %824 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %823, i32 0, i32 0 + store ptr @9, ptr %824, align 8 + %825 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %823, i32 0, i32 1 + store i64 4, ptr %825, align 4 + %826 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %823, align 8 + %827 = alloca %"github.com/goplus/llgo/internal/abi.Imethod", align 8 + %828 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Imethod", ptr %827, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %826, ptr %828, align 8 + %829 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Imethod", ptr %827, i32 0, i32 1 + store ptr %820, ptr %829, align 8 + %830 = load %"github.com/goplus/llgo/internal/abi.Imethod", ptr %827, align 8 + %831 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 24) + %832 = getelementptr %"github.com/goplus/llgo/internal/abi.Imethod", ptr %831, i64 0 + store %"github.com/goplus/llgo/internal/abi.Imethod" %830, ptr %832, align 8 + %833 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %834 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %833, i32 0, i32 0 + store ptr %831, ptr %834, align 8 + %835 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %833, i32 0, i32 1 + store i64 1, ptr %835, align 4 + %836 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %833, i32 0, i32 2 + store i64 1, ptr %836, align 4 + %837 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %833, align 8 + %838 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %839 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %838, i32 0, i32 0 + store ptr @1, ptr %839, align 8 + %840 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %838, i32 0, i32 1 + store i64 4, ptr %840, align 4 + %841 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %838, align 8 + %842 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %843 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %842, i32 0, i32 0 + store ptr null, ptr %843, align 8 + %844 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %842, i32 0, i32 1 + store i64 0, ptr %844, align 4 + %845 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %842, align 8 + %846 = call ptr @"github.com/goplus/llgo/internal/runtime.Interface"(%"github.com/goplus/llgo/internal/runtime.String" %841, %"github.com/goplus/llgo/internal/runtime.String" %845, %"github.com/goplus/llgo/internal/runtime.Slice" %837) + store ptr %846, ptr @"_llgo_iface$OFO8Us9n8ajWCabGedeuoJ-Za2zAMk4Jh0FunAcUCFE", align 8 br label %_llgo_52 _llgo_52: ; preds = %_llgo_51, %_llgo_50 - %830 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(i64 25, i64 16, i64 0, i64 1) - store ptr %830, ptr @_llgo_main.errorString, align 8 - %831 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %832 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %831, i32 0, i32 0 - store ptr @18, ptr %832, align 8 - %833 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %831, i32 0, i32 1 - store i64 1, ptr %833, align 4 - %834 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %831, align 8 - %835 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %836 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %835, i32 0, i32 0 - store ptr null, ptr %836, align 8 - %837 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %835, i32 0, i32 1 - store i64 0, ptr %837, align 4 - %838 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %835, align 8 - %839 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 24) - %840 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %834, ptr %839, i64 0, %"github.com/goplus/llgo/internal/runtime.String" %838, i1 false) - %841 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %842 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %841, i32 0, i32 0 - store ptr @1, ptr %842, align 8 - %843 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %841, i32 0, i32 1 - store i64 4, ptr %843, align 4 - %844 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %841, align 8 - %845 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 56) - %846 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %845, i64 0 - store %"github.com/goplus/llgo/internal/abi.StructField" %840, ptr %846, align 8 - %847 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %848 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %847, i32 0, i32 0 - store ptr %845, ptr %848, align 8 - %849 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %847, i32 0, i32 1 - store i64 1, ptr %849, align 4 - %850 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %847, i32 0, i32 2 - store i64 1, ptr %850, align 4 - %851 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %847, align 8 - %852 = call ptr @"github.com/goplus/llgo/internal/runtime.Struct"(%"github.com/goplus/llgo/internal/runtime.String" %844, i64 16, %"github.com/goplus/llgo/internal/runtime.Slice" %851) - store ptr %852, ptr @"main.struct$QTufDJA9wEDzuzgkA-ZSrLqW-B6lWN8O25mTSglAoLQ", align 8 - %853 = load ptr, ptr @"main.struct$QTufDJA9wEDzuzgkA-ZSrLqW-B6lWN8O25mTSglAoLQ", align 8 - %854 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %855 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %854, i32 0, i32 0 - store ptr @0, ptr %855, align 8 - %856 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %854, i32 0, i32 1 - store i64 5, ptr %856, align 4 - %857 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %854, align 8 - %858 = load ptr, ptr @"_llgo_func$zNDVRsWTIpUPKouNUS805RGX--IV9qVK8B31IZbg5to", align 8 - %859 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 - %860 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %859, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %857, ptr %860, align 8 - %861 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %859, i32 0, i32 1 - store ptr %858, ptr %861, align 8 - %862 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %859, i32 0, i32 2 - store ptr @"main.(*errorString).Error", ptr %862, align 8 - %863 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %859, i32 0, i32 3 - store ptr @"main.(*errorString).Error", ptr %863, align 8 - %864 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %859, align 8 - %865 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 40) - %866 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %865, i64 0 - store %"github.com/goplus/llgo/internal/abi.Method" %864, ptr %866, align 8 - %867 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %868 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %867, i32 0, i32 0 - store ptr %865, ptr %868, align 8 - %869 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %867, i32 0, i32 1 - store i64 1, ptr %869, align 4 - %870 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %867, i32 0, i32 2 + %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 @33, ptr %848, align 8 + %849 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %847, i32 0, i32 1 + store i64 16, ptr %849, align 4 + %850 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %847, align 8 + %851 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(%"github.com/goplus/llgo/internal/runtime.String" %850, i64 25, i64 16, i64 0, i64 1) + store ptr %851, ptr @_llgo_main.errorString, align 8 + %852 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %853 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %852, i32 0, i32 0 + store ptr @21, ptr %853, align 8 + %854 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %852, i32 0, i32 1 + store i64 1, ptr %854, align 4 + %855 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %852, align 8 + %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 null, ptr %857, align 8 + %858 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %856, i32 0, i32 1 + store i64 0, 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.Basic"(i64 24) + %861 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %855, ptr %860, i64 0, %"github.com/goplus/llgo/internal/runtime.String" %859, i1 false) + %862 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %863 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %862, i32 0, i32 0 + store ptr @1, ptr %863, align 8 + %864 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %862, i32 0, i32 1 + store i64 4, ptr %864, align 4 + %865 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %862, align 8 + %866 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 56) + %867 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %866, i64 0 + store %"github.com/goplus/llgo/internal/abi.StructField" %861, ptr %867, align 8 + %868 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %869 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %868, i32 0, i32 0 + store ptr %866, ptr %869, align 8 + %870 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %868, i32 0, i32 1 store i64 1, ptr %870, align 4 - %871 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %867, align 8 - %872 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %873 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %872, i32 0, i32 0 - store ptr @1, ptr %873, align 8 - %874 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %872, i32 0, i32 1 - store i64 4, ptr %874, align 4 - %875 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %872, align 8 - %876 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %877 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %876, i32 0, i32 0 - store ptr @30, ptr %877, align 8 - %878 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %876, i32 0, i32 1 - store i64 11, ptr %878, align 4 - %879 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %876, align 8 - call void @"github.com/goplus/llgo/internal/runtime.InitNamed"(ptr %830, %"github.com/goplus/llgo/internal/runtime.String" %875, %"github.com/goplus/llgo/internal/runtime.String" %879, ptr %853, { ptr, i64, i64 } zeroinitializer, %"github.com/goplus/llgo/internal/runtime.Slice" %871) - %880 = call ptr @"github.com/goplus/llgo/internal/runtime.PointerTo"(ptr %830) - call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %880) - store ptr %880, ptr @"*_llgo_main.errorString", align 8 - %881 = load ptr, ptr @"_llgo_func$zNDVRsWTIpUPKouNUS805RGX--IV9qVK8B31IZbg5to", align 8 - %882 = load ptr, ptr @"_llgo_iface$Fh8eUJ-Gw4e6TYuajcFIOSCuqSPKAt5nS4ow7xeGXEU", align 8 - %883 = icmp eq ptr %882, null - br i1 %883, label %_llgo_53, label %_llgo_54 + %871 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %868, i32 0, i32 2 + store i64 1, ptr %871, align 4 + %872 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %868, align 8 + %873 = call ptr @"github.com/goplus/llgo/internal/runtime.Struct"(%"github.com/goplus/llgo/internal/runtime.String" %865, i64 16, %"github.com/goplus/llgo/internal/runtime.Slice" %872) + store ptr %873, ptr @"main.struct$QTufDJA9wEDzuzgkA-ZSrLqW-B6lWN8O25mTSglAoLQ", align 8 + %874 = load ptr, ptr @"main.struct$QTufDJA9wEDzuzgkA-ZSrLqW-B6lWN8O25mTSglAoLQ", align 8 + %875 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %876 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %875, i32 0, i32 0 + store ptr @0, ptr %876, align 8 + %877 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %875, i32 0, i32 1 + store i64 5, ptr %877, align 4 + %878 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %875, align 8 + %879 = load ptr, ptr @"_llgo_func$zNDVRsWTIpUPKouNUS805RGX--IV9qVK8B31IZbg5to", align 8 + %880 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %881 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %880, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %878, ptr %881, align 8 + %882 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %880, i32 0, i32 1 + store ptr %879, ptr %882, align 8 + %883 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %880, i32 0, i32 2 + store ptr @"main.(*errorString).Error", ptr %883, align 8 + %884 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %880, i32 0, i32 3 + store ptr @"main.(*errorString).Error", ptr %884, align 8 + %885 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %880, align 8 + %886 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 40) + %887 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %886, i64 0 + store %"github.com/goplus/llgo/internal/abi.Method" %885, ptr %887, align 8 + %888 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %889 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %888, i32 0, i32 0 + store ptr %886, ptr %889, align 8 + %890 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %888, i32 0, i32 1 + store i64 1, ptr %890, align 4 + %891 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %888, i32 0, i32 2 + store i64 1, ptr %891, align 4 + %892 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %888, align 8 + %893 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %894 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %893, i32 0, i32 0 + store ptr @1, ptr %894, align 8 + %895 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %893, i32 0, i32 1 + store i64 4, ptr %895, align 4 + %896 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %893, align 8 + %897 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %898 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %897, i32 0, i32 0 + store ptr @34, ptr %898, align 8 + %899 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %897, i32 0, i32 1 + store i64 11, ptr %899, align 4 + %900 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %897, align 8 + call void @"github.com/goplus/llgo/internal/runtime.InitNamed"(ptr %851, %"github.com/goplus/llgo/internal/runtime.String" %896, %"github.com/goplus/llgo/internal/runtime.String" %900, ptr %874, { ptr, i64, i64 } zeroinitializer, %"github.com/goplus/llgo/internal/runtime.Slice" %892) + %901 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %902 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %901, i32 0, i32 0 + store ptr @33, ptr %902, align 8 + %903 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %901, i32 0, i32 1 + store i64 16, ptr %903, align 4 + %904 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %901, align 8 + %905 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(%"github.com/goplus/llgo/internal/runtime.String" %904, i64 25, i64 16, i64 0, i64 1) + %906 = call ptr @"github.com/goplus/llgo/internal/runtime.PointerTo"(ptr %905) + call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %906) + store ptr %906, ptr @"*_llgo_main.errorString", align 8 + %907 = load ptr, ptr @"_llgo_func$zNDVRsWTIpUPKouNUS805RGX--IV9qVK8B31IZbg5to", align 8 + %908 = load ptr, ptr @"_llgo_iface$Fh8eUJ-Gw4e6TYuajcFIOSCuqSPKAt5nS4ow7xeGXEU", align 8 + %909 = icmp eq ptr %908, null + br i1 %909, label %_llgo_53, label %_llgo_54 _llgo_53: ; preds = %_llgo_52 - %884 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %885 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %884, i32 0, i32 0 - store ptr @0, ptr %885, align 8 - %886 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %884, i32 0, i32 1 - store i64 5, ptr %886, align 4 - %887 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %884, align 8 - %888 = alloca %"github.com/goplus/llgo/internal/abi.Imethod", align 8 - %889 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Imethod", ptr %888, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %887, ptr %889, align 8 - %890 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Imethod", ptr %888, i32 0, i32 1 - store ptr %881, ptr %890, align 8 - %891 = load %"github.com/goplus/llgo/internal/abi.Imethod", ptr %888, align 8 - %892 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 24) - %893 = getelementptr %"github.com/goplus/llgo/internal/abi.Imethod", ptr %892, i64 0 - store %"github.com/goplus/llgo/internal/abi.Imethod" %891, ptr %893, align 8 - %894 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %895 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %894, i32 0, i32 0 - store ptr %892, ptr %895, align 8 - %896 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %894, i32 0, i32 1 - store i64 1, ptr %896, align 4 - %897 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %894, i32 0, i32 2 - store i64 1, ptr %897, align 4 - %898 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %894, align 8 - %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 @1, ptr %900, align 8 - %901 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %899, i32 0, i32 1 - store i64 4, ptr %901, align 4 - %902 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %899, align 8 - %903 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %904 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %903, i32 0, i32 0 - store ptr null, ptr %904, align 8 - %905 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %903, i32 0, i32 1 - store i64 0, ptr %905, align 4 - %906 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %903, align 8 - %907 = call ptr @"github.com/goplus/llgo/internal/runtime.Interface"(%"github.com/goplus/llgo/internal/runtime.String" %902, %"github.com/goplus/llgo/internal/runtime.String" %906, %"github.com/goplus/llgo/internal/runtime.Slice" %898) - store ptr %907, ptr @"_llgo_iface$Fh8eUJ-Gw4e6TYuajcFIOSCuqSPKAt5nS4ow7xeGXEU", align 8 + %910 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %911 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %910, i32 0, i32 0 + store ptr @0, ptr %911, align 8 + %912 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %910, i32 0, i32 1 + store i64 5, ptr %912, align 4 + %913 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %910, align 8 + %914 = alloca %"github.com/goplus/llgo/internal/abi.Imethod", align 8 + %915 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Imethod", ptr %914, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %913, ptr %915, align 8 + %916 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Imethod", ptr %914, i32 0, i32 1 + store ptr %907, ptr %916, align 8 + %917 = load %"github.com/goplus/llgo/internal/abi.Imethod", ptr %914, align 8 + %918 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 24) + %919 = getelementptr %"github.com/goplus/llgo/internal/abi.Imethod", ptr %918, i64 0 + store %"github.com/goplus/llgo/internal/abi.Imethod" %917, ptr %919, align 8 + %920 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %921 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %920, i32 0, i32 0 + store ptr %918, ptr %921, align 8 + %922 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %920, i32 0, i32 1 + store i64 1, ptr %922, align 4 + %923 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %920, i32 0, i32 2 + store i64 1, ptr %923, align 4 + %924 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %920, align 8 + %925 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %926 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %925, i32 0, i32 0 + store ptr @1, ptr %926, align 8 + %927 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %925, i32 0, i32 1 + store i64 4, ptr %927, align 4 + %928 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %925, align 8 + %929 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %930 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %929, i32 0, i32 0 + store ptr null, ptr %930, align 8 + %931 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %929, i32 0, i32 1 + store i64 0, ptr %931, align 4 + %932 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %929, align 8 + %933 = call ptr @"github.com/goplus/llgo/internal/runtime.Interface"(%"github.com/goplus/llgo/internal/runtime.String" %928, %"github.com/goplus/llgo/internal/runtime.String" %932, %"github.com/goplus/llgo/internal/runtime.Slice" %924) + store ptr %933, ptr @"_llgo_iface$Fh8eUJ-Gw4e6TYuajcFIOSCuqSPKAt5nS4ow7xeGXEU", align 8 br label %_llgo_54 _llgo_54: ; preds = %_llgo_53, %_llgo_52 @@ -2791,7 +2833,7 @@ declare ptr @"github.com/goplus/llgo/internal/runtime.NewItab"(ptr, ptr) ; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: write) declare void @llvm.memset(ptr nocapture writeonly, i8, i64, i1 immarg) #0 -declare ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(i64, i64, i64, i64) +declare ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(%"github.com/goplus/llgo/internal/runtime.String", i64, i64, i64, 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") diff --git a/cl/_testgo/struczero/out.ll b/cl/_testgo/struczero/out.ll index 1ee1b98bb..e2368c174 100644 --- a/cl/_testgo/struczero/out.ll +++ b/cl/_testgo/struczero/out.ll @@ -11,23 +11,25 @@ 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 +@0 = private unnamed_addr constant [42 x i8] c"github.com/goplus/llgo/cl/internal/foo.Foo", align 1 @"main.struct$qQwZyFy_4JRalRxVVsVD8R09X5t58tWjTrtJPtHbEjs" = linkonce global ptr null, align 8 -@0 = private unnamed_addr constant [2 x i8] c"pb", align 1 -@1 = private unnamed_addr constant [1 x i8] c"F", align 1 -@2 = private unnamed_addr constant [4 x i8] c"main", align 1 -@3 = private unnamed_addr constant [2 x i8] c"Pb", align 1 +@1 = private unnamed_addr constant [2 x i8] c"pb", align 1 +@2 = private unnamed_addr constant [1 x i8] c"F", align 1 +@3 = private unnamed_addr constant [4 x i8] c"main", align 1 +@4 = private unnamed_addr constant [2 x i8] c"Pb", align 1 @"_llgo_func$NfGSLZ1QiKRoFkKeqYSXE5hUU5bpeteSJKrbMNUzYRE" = linkonce global ptr null, align 8 @_llgo_byte = linkonce global ptr null, align 8 @"*_llgo_byte" = linkonce global ptr null, align 8 -@4 = private unnamed_addr constant [38 x i8] c"github.com/goplus/llgo/cl/internal/foo", align 1 -@5 = private unnamed_addr constant [3 x i8] c"Foo", align 1 +@5 = private unnamed_addr constant [38 x i8] c"github.com/goplus/llgo/cl/internal/foo", align 1 +@6 = private unnamed_addr constant [3 x i8] c"Foo", align 1 @_llgo_main.bar = linkonce global ptr null, align 8 +@7 = private unnamed_addr constant [8 x i8] c"main.bar", align 1 @"main.struct$Ci43nzKYkRLddRL_N4mkykxLXfJlqJGS5n04LKThPNo" = linkonce global ptr null, align 8 -@6 = private unnamed_addr constant [1 x i8] c"f", align 1 -@7 = private unnamed_addr constant [3 x i8] c"bar", align 1 +@8 = private unnamed_addr constant [1 x i8] c"f", align 1 +@9 = private unnamed_addr constant [3 x i8] c"bar", align 1 @__llgo_argc = global i32 0, align 4 @__llgo_argv = global ptr null, align 8 -@8 = private unnamed_addr constant [6 x i8] c"notOk:", align 1 +@10 = private unnamed_addr constant [6 x i8] c"notOk:", align 1 define { %"github.com/goplus/llgo/cl/internal/foo.Foo", i1 } @main.Bar(%"github.com/goplus/llgo/internal/runtime.eface" %0) { _llgo_0: @@ -143,7 +145,7 @@ _llgo_0: %10 = xor i1 %5, true %11 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 %12 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %11, i32 0, i32 0 - store ptr @8, ptr %12, align 8 + store ptr @10, ptr %12, align 8 %13 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %11, i32 0, i32 1 store i64 6, ptr %13, align 4 %14 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %11, align 8 @@ -187,259 +189,271 @@ _llgo_0: define void @"main.init$after"() { _llgo_0: - %0 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(i64 25, i64 16, i64 1, i64 1) - %1 = load ptr, ptr @"_llgo_github.com/goplus/llgo/cl/internal/foo.Foo", align 8 - %2 = icmp eq ptr %1, null - br i1 %2, label %_llgo_1, label %_llgo_2 + %0 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %1 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %0, i32 0, i32 0 + store ptr @0, ptr %1, align 8 + %2 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %0, i32 0, i32 1 + store i64 42, ptr %2, align 4 + %3 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %0, align 8 + %4 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(%"github.com/goplus/llgo/internal/runtime.String" %3, i64 25, i64 16, i64 1, i64 1) + %5 = load ptr, ptr @"_llgo_github.com/goplus/llgo/cl/internal/foo.Foo", align 8 + %6 = icmp eq ptr %5, null + br i1 %6, label %_llgo_1, label %_llgo_2 _llgo_1: ; preds = %_llgo_0 - store ptr %0, ptr @"_llgo_github.com/goplus/llgo/cl/internal/foo.Foo", align 8 + store ptr %4, ptr @"_llgo_github.com/goplus/llgo/cl/internal/foo.Foo", align 8 br label %_llgo_2 _llgo_2: ; preds = %_llgo_1, %_llgo_0 - %3 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %4 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %3, i32 0, i32 0 - store ptr @0, ptr %4, align 8 - %5 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %3, i32 0, i32 1 - store i64 2, ptr %5, align 4 - %6 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %3, align 8 %7 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 %8 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %7, i32 0, i32 0 - store ptr null, ptr %8, align 8 + store ptr @1, ptr %8, align 8 %9 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %7, i32 0, i32 1 - store i64 0, ptr %9, align 4 + store i64 2, ptr %9, align 4 %10 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %7, align 8 - %11 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 40) - %12 = call ptr @"github.com/goplus/llgo/internal/runtime.PointerTo"(ptr %11) - %13 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %6, ptr %12, i64 0, %"github.com/goplus/llgo/internal/runtime.String" %10, 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 1, ptr %16, align 4 - %17 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %14, align 8 + %11 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %12 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %11, i32 0, i32 0 + store ptr null, ptr %12, align 8 + %13 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %11, i32 0, i32 1 + store i64 0, ptr %13, align 4 + %14 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %11, align 8 + %15 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 40) + %16 = call ptr @"github.com/goplus/llgo/internal/runtime.PointerTo"(ptr %15) + %17 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %10, ptr %16, i64 0, %"github.com/goplus/llgo/internal/runtime.String" %14, i1 false) %18 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 %19 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %18, i32 0, i32 0 - store ptr null, ptr %19, align 8 + store ptr @2, ptr %19, align 8 %20 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %18, i32 0, i32 1 - store i64 0, ptr %20, align 4 + store i64 1, ptr %20, align 4 %21 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %18, align 8 - %22 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 45) - %23 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %17, ptr %22, i64 8, %"github.com/goplus/llgo/internal/runtime.String" %21, 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 @2, ptr %25, align 8 - %26 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %24, i32 0, i32 1 - store i64 4, ptr %26, align 4 - %27 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %24, align 8 - %28 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 112) - %29 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %28, i64 0 - store %"github.com/goplus/llgo/internal/abi.StructField" %13, ptr %29, align 8 - %30 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %28, i64 1 - store %"github.com/goplus/llgo/internal/abi.StructField" %23, ptr %30, align 8 - %31 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %32 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %31, i32 0, i32 0 - store ptr %28, ptr %32, align 8 - %33 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %31, i32 0, i32 1 - store i64 2, ptr %33, align 4 - %34 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %31, i32 0, i32 2 - store i64 2, ptr %34, align 4 - %35 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %31, align 8 - %36 = call ptr @"github.com/goplus/llgo/internal/runtime.Struct"(%"github.com/goplus/llgo/internal/runtime.String" %27, i64 16, %"github.com/goplus/llgo/internal/runtime.Slice" %35) - store ptr %36, ptr @"main.struct$qQwZyFy_4JRalRxVVsVD8R09X5t58tWjTrtJPtHbEjs", align 8 - %37 = load ptr, ptr @"main.struct$qQwZyFy_4JRalRxVVsVD8R09X5t58tWjTrtJPtHbEjs", align 8 - br i1 %2, label %_llgo_3, label %_llgo_4 + %22 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %23 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %22, i32 0, i32 0 + store ptr null, ptr %23, align 8 + %24 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %22, i32 0, i32 1 + store i64 0, ptr %24, align 4 + %25 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %22, align 8 + %26 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 45) + %27 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %21, ptr %26, i64 8, %"github.com/goplus/llgo/internal/runtime.String" %25, i1 false) + %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 @3, ptr %29, align 8 + %30 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %28, i32 0, i32 1 + store i64 4, ptr %30, align 4 + %31 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %28, align 8 + %32 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 112) + %33 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %32, i64 0 + store %"github.com/goplus/llgo/internal/abi.StructField" %17, ptr %33, align 8 + %34 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %32, i64 1 + store %"github.com/goplus/llgo/internal/abi.StructField" %27, 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 %32, ptr %36, align 8 + %37 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %35, i32 0, i32 1 + store i64 2, ptr %37, align 4 + %38 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %35, i32 0, i32 2 + store i64 2, 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.Struct"(%"github.com/goplus/llgo/internal/runtime.String" %31, i64 16, %"github.com/goplus/llgo/internal/runtime.Slice" %39) + store ptr %40, ptr @"main.struct$qQwZyFy_4JRalRxVVsVD8R09X5t58tWjTrtJPtHbEjs", align 8 + %41 = load ptr, ptr @"main.struct$qQwZyFy_4JRalRxVVsVD8R09X5t58tWjTrtJPtHbEjs", align 8 + br i1 %6, label %_llgo_3, label %_llgo_4 _llgo_3: ; preds = %_llgo_2 - %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 @3, ptr %39, align 8 - %40 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %38, i32 0, i32 1 - store i64 2, ptr %40, align 4 - %41 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %38, align 8 - %42 = load ptr, ptr @_llgo_byte, align 8 - %43 = icmp eq ptr %42, null - br i1 %43, label %_llgo_5, label %_llgo_6 + %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 @4, ptr %43, align 8 + %44 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %42, i32 0, i32 1 + store i64 2, ptr %44, align 4 + %45 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %42, align 8 + %46 = load ptr, ptr @_llgo_byte, align 8 + %47 = icmp eq ptr %46, null + br i1 %47, label %_llgo_5, label %_llgo_6 _llgo_4: ; preds = %_llgo_10, %_llgo_2 - %44 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(i64 25, i64 16, i64 0, i64 0) - store ptr %44, ptr @_llgo_main.bar, align 8 - %45 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %46 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %45, i32 0, i32 0 - store ptr @0, ptr %46, align 8 - %47 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %45, i32 0, i32 1 - store i64 2, ptr %47, align 4 - %48 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %45, align 8 - %49 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %50 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %49, i32 0, i32 0 - store ptr null, ptr %50, align 8 - %51 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %49, i32 0, i32 1 - store i64 0, ptr %51, align 4 - %52 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %49, align 8 - %53 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 40) - %54 = call ptr @"github.com/goplus/llgo/internal/runtime.PointerTo"(ptr %53) - %55 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %48, ptr %54, i64 0, %"github.com/goplus/llgo/internal/runtime.String" %52, i1 false) - %56 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %57 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %56, i32 0, i32 0 - store ptr @6, ptr %57, align 8 - %58 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %56, i32 0, i32 1 - store i64 1, ptr %58, align 4 - %59 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %56, align 8 - %60 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %61 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %60, i32 0, i32 0 - store ptr null, ptr %61, align 8 - %62 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %60, i32 0, i32 1 - store i64 0, ptr %62, align 4 - %63 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %60, align 8 - %64 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 45) - %65 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %59, ptr %64, i64 8, %"github.com/goplus/llgo/internal/runtime.String" %63, 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 @2, ptr %67, align 8 - %68 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %66, i32 0, i32 1 - store i64 4, ptr %68, align 4 - %69 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %66, align 8 - %70 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 112) - %71 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %70, i64 0 - store %"github.com/goplus/llgo/internal/abi.StructField" %55, ptr %71, align 8 - %72 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %70, i64 1 - store %"github.com/goplus/llgo/internal/abi.StructField" %65, ptr %72, align 8 - %73 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %74 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %73, i32 0, i32 0 - store ptr %70, ptr %74, align 8 - %75 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %73, i32 0, i32 1 - store i64 2, ptr %75, align 4 - %76 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %73, i32 0, i32 2 - store i64 2, ptr %76, align 4 - %77 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %73, align 8 - %78 = call ptr @"github.com/goplus/llgo/internal/runtime.Struct"(%"github.com/goplus/llgo/internal/runtime.String" %69, i64 16, %"github.com/goplus/llgo/internal/runtime.Slice" %77) - store ptr %78, ptr @"main.struct$Ci43nzKYkRLddRL_N4mkykxLXfJlqJGS5n04LKThPNo", align 8 - %79 = load ptr, ptr @"main.struct$Ci43nzKYkRLddRL_N4mkykxLXfJlqJGS5n04LKThPNo", align 8 - %80 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %81 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %80, i32 0, i32 0 - store ptr @2, ptr %81, align 8 - %82 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %80, i32 0, i32 1 - store i64 4, ptr %82, align 4 - %83 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %80, 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 @7, ptr %85, align 8 - %86 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %84, i32 0, i32 1 - store i64 3, ptr %86, align 4 - %87 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %84, align 8 - call void @"github.com/goplus/llgo/internal/runtime.InitNamed"(ptr %44, %"github.com/goplus/llgo/internal/runtime.String" %83, %"github.com/goplus/llgo/internal/runtime.String" %87, ptr %79, { ptr, i64, i64 } zeroinitializer, { ptr, i64, i64 } zeroinitializer) + %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 @7, 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 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(%"github.com/goplus/llgo/internal/runtime.String" %51, i64 25, i64 16, i64 0, i64 0) + store ptr %52, ptr @_llgo_main.bar, align 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 @1, 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 = 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 null, ptr %58, align 8 + %59 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %57, i32 0, i32 1 + store i64 0, ptr %59, align 4 + %60 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %57, align 8 + %61 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 40) + %62 = call ptr @"github.com/goplus/llgo/internal/runtime.PointerTo"(ptr %61) + %63 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %56, ptr %62, i64 0, %"github.com/goplus/llgo/internal/runtime.String" %60, i1 false) + %64 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %65 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %64, i32 0, i32 0 + store ptr @8, ptr %65, align 8 + %66 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %64, i32 0, i32 1 + store i64 1, ptr %66, align 4 + %67 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %64, align 8 + %68 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %69 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %68, i32 0, i32 0 + store ptr null, ptr %69, align 8 + %70 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %68, i32 0, i32 1 + store i64 0, ptr %70, align 4 + %71 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %68, align 8 + %72 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 45) + %73 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %67, ptr %72, i64 8, %"github.com/goplus/llgo/internal/runtime.String" %71, i1 false) + %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 @3, ptr %75, align 8 + %76 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %74, i32 0, i32 1 + store i64 4, ptr %76, align 4 + %77 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %74, align 8 + %78 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 112) + %79 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %78, i64 0 + store %"github.com/goplus/llgo/internal/abi.StructField" %63, ptr %79, align 8 + %80 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %78, i64 1 + store %"github.com/goplus/llgo/internal/abi.StructField" %73, 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 = call ptr @"github.com/goplus/llgo/internal/runtime.Struct"(%"github.com/goplus/llgo/internal/runtime.String" %77, i64 16, %"github.com/goplus/llgo/internal/runtime.Slice" %85) + store ptr %86, ptr @"main.struct$Ci43nzKYkRLddRL_N4mkykxLXfJlqJGS5n04LKThPNo", align 8 + %87 = load ptr, ptr @"main.struct$Ci43nzKYkRLddRL_N4mkykxLXfJlqJGS5n04LKThPNo", 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 @3, ptr %89, align 8 + %90 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %88, i32 0, i32 1 + store i64 4, ptr %90, align 4 + %91 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %88, align 8 + %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 @9, ptr %93, align 8 + %94 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %92, i32 0, i32 1 + store i64 3, ptr %94, align 4 + %95 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %92, align 8 + call void @"github.com/goplus/llgo/internal/runtime.InitNamed"(ptr %52, %"github.com/goplus/llgo/internal/runtime.String" %91, %"github.com/goplus/llgo/internal/runtime.String" %95, ptr %87, { ptr, i64, i64 } zeroinitializer, { ptr, i64, i64 } zeroinitializer) ret void _llgo_5: ; preds = %_llgo_3 - %88 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 40) - store ptr %88, ptr @_llgo_byte, align 8 + %96 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 40) + store ptr %96, ptr @_llgo_byte, align 8 br label %_llgo_6 _llgo_6: ; preds = %_llgo_5, %_llgo_3 - %89 = load ptr, ptr @"*_llgo_byte", align 8 - %90 = icmp eq ptr %89, null - br i1 %90, label %_llgo_7, label %_llgo_8 + %97 = load ptr, ptr @"*_llgo_byte", align 8 + %98 = icmp eq ptr %97, null + br i1 %98, label %_llgo_7, label %_llgo_8 _llgo_7: ; preds = %_llgo_6 - %91 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 40) - %92 = call ptr @"github.com/goplus/llgo/internal/runtime.PointerTo"(ptr %91) - call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %92) - store ptr %92, ptr @"*_llgo_byte", align 8 + %99 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 40) + %100 = call ptr @"github.com/goplus/llgo/internal/runtime.PointerTo"(ptr %99) + call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %100) + store ptr %100, ptr @"*_llgo_byte", align 8 br label %_llgo_8 _llgo_8: ; preds = %_llgo_7, %_llgo_6 - %93 = load ptr, ptr @"*_llgo_byte", align 8 - %94 = load ptr, ptr @"_llgo_func$NfGSLZ1QiKRoFkKeqYSXE5hUU5bpeteSJKrbMNUzYRE", align 8 - %95 = icmp eq ptr %94, null - br i1 %95, label %_llgo_9, label %_llgo_10 + %101 = load ptr, ptr @"*_llgo_byte", align 8 + %102 = load ptr, ptr @"_llgo_func$NfGSLZ1QiKRoFkKeqYSXE5hUU5bpeteSJKrbMNUzYRE", align 8 + %103 = icmp eq ptr %102, null + br i1 %103, label %_llgo_9, label %_llgo_10 _llgo_9: ; preds = %_llgo_8 - %96 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 0) - %97 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %98 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %97, i32 0, i32 0 - store ptr %96, ptr %98, align 8 - %99 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %97, i32 0, i32 1 - store i64 0, ptr %99, align 4 - %100 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %97, i32 0, i32 2 - store i64 0, ptr %100, align 4 - %101 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %97, align 8 - %102 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 8) - %103 = getelementptr ptr, ptr %102, i64 0 - store ptr %93, ptr %103, align 8 - %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 %102, ptr %105, align 8 - %106 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %104, i32 0, i32 1 - store i64 1, ptr %106, align 4 - %107 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %104, i32 0, i32 2 - store i64 1, 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.Func"(%"github.com/goplus/llgo/internal/runtime.Slice" %101, %"github.com/goplus/llgo/internal/runtime.Slice" %108, i1 false) - call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %109) - store ptr %109, ptr @"_llgo_func$NfGSLZ1QiKRoFkKeqYSXE5hUU5bpeteSJKrbMNUzYRE", align 8 + %104 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 0) + %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 %104, ptr %106, align 8 + %107 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %105, i32 0, i32 1 + store i64 0, ptr %107, align 4 + %108 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %105, i32 0, i32 2 + store i64 0, 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.AllocU"(i64 8) + %111 = getelementptr ptr, ptr %110, i64 0 + store ptr %101, ptr %111, align 8 + %112 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %113 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %112, i32 0, i32 0 + store ptr %110, ptr %113, align 8 + %114 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %112, i32 0, i32 1 + store i64 1, ptr %114, align 4 + %115 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %112, i32 0, i32 2 + store i64 1, ptr %115, align 4 + %116 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %112, align 8 + %117 = call ptr @"github.com/goplus/llgo/internal/runtime.Func"(%"github.com/goplus/llgo/internal/runtime.Slice" %109, %"github.com/goplus/llgo/internal/runtime.Slice" %116, i1 false) + call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %117) + store ptr %117, ptr @"_llgo_func$NfGSLZ1QiKRoFkKeqYSXE5hUU5bpeteSJKrbMNUzYRE", align 8 br label %_llgo_10 _llgo_10: ; preds = %_llgo_9, %_llgo_8 - %110 = load ptr, ptr @"_llgo_func$NfGSLZ1QiKRoFkKeqYSXE5hUU5bpeteSJKrbMNUzYRE", align 8 - %111 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 - %112 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %111, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %41, ptr %112, align 8 - %113 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %111, i32 0, i32 1 - store ptr %110, ptr %113, align 8 - %114 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %111, i32 0, i32 2 - store ptr @"github.com/goplus/llgo/cl/internal/foo.(*Foo).Pb", ptr %114, align 8 - %115 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %111, i32 0, i32 3 - store ptr @"github.com/goplus/llgo/cl/internal/foo.(*Foo).Pb", ptr %115, align 8 - %116 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %111, align 8 - %117 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 - %118 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %117, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %41, ptr %118, align 8 - %119 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %117, i32 0, i32 1 - store ptr %110, ptr %119, align 8 - %120 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %117, i32 0, i32 2 - store ptr @"github.com/goplus/llgo/cl/internal/foo.(*Foo).Pb", ptr %120, align 8 - %121 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %117, i32 0, i32 3 - store ptr @"github.com/goplus/llgo/cl/internal/foo.Foo.Pb", ptr %121, align 8 - %122 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %117, align 8 - %123 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 40) - %124 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %123, i64 0 - store %"github.com/goplus/llgo/internal/abi.Method" %122, ptr %124, align 8 - %125 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %126 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %125, i32 0, i32 0 - store ptr %123, ptr %126, align 8 - %127 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %125, i32 0, i32 1 - store i64 1, ptr %127, align 4 - %128 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %125, i32 0, i32 2 - store i64 1, ptr %128, align 4 - %129 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %125, 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" %116, 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 + %118 = load ptr, ptr @"_llgo_func$NfGSLZ1QiKRoFkKeqYSXE5hUU5bpeteSJKrbMNUzYRE", align 8 + %119 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %120 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %119, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %45, ptr %120, align 8 + %121 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %119, i32 0, i32 1 + store ptr %118, ptr %121, align 8 + %122 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %119, i32 0, i32 2 + store ptr @"github.com/goplus/llgo/cl/internal/foo.(*Foo).Pb", ptr %122, align 8 + %123 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %119, i32 0, i32 3 + store ptr @"github.com/goplus/llgo/cl/internal/foo.(*Foo).Pb", ptr %123, align 8 + %124 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %119, align 8 + %125 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %126 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %125, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %45, ptr %126, align 8 + %127 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %125, i32 0, i32 1 + store ptr %118, ptr %127, align 8 + %128 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %125, i32 0, i32 2 + store ptr @"github.com/goplus/llgo/cl/internal/foo.(*Foo).Pb", ptr %128, align 8 + %129 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %125, i32 0, i32 3 + store ptr @"github.com/goplus/llgo/cl/internal/foo.Foo.Pb", ptr %129, align 8 + %130 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %125, 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" %130, 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 store i64 1, ptr %135, align 4 - %136 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %132, align 8 - %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 @4, ptr %138, align 8 - %139 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %137, i32 0, i32 1 - store i64 38, 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 @5, ptr %142, align 8 - %143 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %141, i32 0, i32 1 - store i64 3, ptr %143, align 4 - %144 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %141, align 8 - call void @"github.com/goplus/llgo/internal/runtime.InitNamed"(ptr %0, %"github.com/goplus/llgo/internal/runtime.String" %140, %"github.com/goplus/llgo/internal/runtime.String" %144, ptr %37, %"github.com/goplus/llgo/internal/runtime.Slice" %129, %"github.com/goplus/llgo/internal/runtime.Slice" %136) + %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 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 40) + %139 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %138, i64 0 + store %"github.com/goplus/llgo/internal/abi.Method" %124, ptr %139, align 8 + %140 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %141 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %140, i32 0, i32 0 + store ptr %138, ptr %141, align 8 + %142 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %140, i32 0, i32 1 + store i64 1, ptr %142, align 4 + %143 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %140, i32 0, i32 2 + store i64 1, ptr %143, align 4 + %144 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %140, align 8 + %145 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %146 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %145, i32 0, i32 0 + store ptr @5, ptr %146, align 8 + %147 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %145, i32 0, i32 1 + store i64 38, ptr %147, align 4 + %148 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %145, align 8 + %149 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %150 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %149, i32 0, i32 0 + store ptr @6, ptr %150, align 8 + %151 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %149, i32 0, i32 1 + store i64 3, ptr %151, align 4 + %152 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %149, align 8 + call void @"github.com/goplus/llgo/internal/runtime.InitNamed"(ptr %4, %"github.com/goplus/llgo/internal/runtime.String" %148, %"github.com/goplus/llgo/internal/runtime.String" %152, ptr %41, %"github.com/goplus/llgo/internal/runtime.Slice" %137, %"github.com/goplus/llgo/internal/runtime.Slice" %144) br label %_llgo_4 } -declare ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(i64, i64, i64, i64) +declare ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(%"github.com/goplus/llgo/internal/runtime.String", i64, i64, i64, 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") diff --git a/cl/_testrt/abinamed/out.ll b/cl/_testrt/abinamed/out.ll index dc45bdf9c..a95369524 100644 --- a/cl/_testrt/abinamed/out.ll +++ b/cl/_testrt/abinamed/out.ll @@ -15,118 +15,135 @@ source_filename = "main" @__llgo_argc = global i32 0, align 4 @__llgo_argv = global ptr null, align 8 @_llgo_main.T = linkonce global ptr null, align 8 +@0 = private unnamed_addr constant [6 x i8] c"main.T", align 1 @"main.struct$FYfyNCnlvkYOztpQWjt-y8D_WY3tpxyt5Qo62CJffTE" = linkonce global ptr null, align 8 -@0 = private unnamed_addr constant [1 x i8] c"p", align 1 -@1 = private unnamed_addr constant [1 x i8] c"t", align 1 -@2 = private unnamed_addr constant [1 x i8] c"n", align 1 -@3 = private unnamed_addr constant [1 x i8] c"a", align 1 -@4 = private unnamed_addr constant [4 x i8] c"main", align 1 -@5 = private unnamed_addr constant [1 x i8] c"T", align 1 +@1 = private unnamed_addr constant [40 x i8] c"github.com/goplus/llgo/internal/abi.Type", align 1 +@2 = private unnamed_addr constant [1 x i8] c"p", align 1 +@3 = private unnamed_addr constant [1 x i8] c"t", align 1 +@4 = private unnamed_addr constant [1 x i8] c"n", align 1 +@5 = private unnamed_addr constant [1 x i8] c"a", align 1 +@6 = private unnamed_addr constant [4 x i8] c"main", align 1 +@7 = private unnamed_addr constant [1 x i8] c"T", align 1 @"_llgo_github.com/goplus/llgo/internal/abi.Type" = linkonce global ptr null, align 8 -@"_llgo_struct$13P_TvKNXommvK6tKt3eRNnJqTcPEFYrHagFiHeRpb0" = linkonce global ptr null, align 8 +@"main.struct$13P_TvKNXommvK6tKt3eRNnJqTcPEFYrHagFiHeRpb0" = linkonce global ptr null, align 8 +@8 = private unnamed_addr constant [41 x i8] c"github.com/goplus/llgo/internal/abi.TFlag", align 1 @_llgo_Pointer = linkonce global ptr null, align 8 @_llgo_bool = linkonce global ptr null, align 8 -@6 = private unnamed_addr constant [5 x i8] c"Size_", align 1 -@7 = private unnamed_addr constant [8 x i8] c"PtrBytes", align 1 -@8 = private unnamed_addr constant [4 x i8] c"Hash", align 1 -@9 = private unnamed_addr constant [5 x i8] c"TFlag", align 1 -@10 = private unnamed_addr constant [6 x i8] c"Align_", align 1 -@11 = private unnamed_addr constant [11 x i8] c"FieldAlign_", align 1 -@12 = private unnamed_addr constant [5 x i8] c"Kind_", align 1 -@13 = private unnamed_addr constant [5 x i8] c"Equal", align 1 -@14 = private unnamed_addr constant [1 x i8] c"f", align 1 -@15 = private unnamed_addr constant [4 x i8] c"data", align 1 -@16 = private unnamed_addr constant [6 x i8] c"GCData", align 1 -@17 = private unnamed_addr constant [4 x i8] c"Str_", align 1 -@18 = private unnamed_addr constant [10 x i8] c"PtrToThis_", align 1 -@19 = private unnamed_addr constant [5 x i8] c"Align", align 1 +@9 = private unnamed_addr constant [5 x i8] c"Size_", align 1 +@10 = private unnamed_addr constant [8 x i8] c"PtrBytes", align 1 +@11 = private unnamed_addr constant [4 x i8] c"Hash", align 1 +@12 = private unnamed_addr constant [5 x i8] c"TFlag", align 1 +@13 = private unnamed_addr constant [6 x i8] c"Align_", align 1 +@14 = private unnamed_addr constant [11 x i8] c"FieldAlign_", align 1 +@15 = private unnamed_addr constant [5 x i8] c"Kind_", align 1 +@16 = private unnamed_addr constant [5 x i8] c"Equal", align 1 +@17 = private unnamed_addr constant [1 x i8] c"f", align 1 +@18 = private unnamed_addr constant [4 x i8] c"data", align 1 +@19 = private unnamed_addr constant [6 x i8] c"GCData", align 1 +@20 = private unnamed_addr constant [4 x i8] c"Str_", align 1 +@21 = private unnamed_addr constant [10 x i8] c"PtrToThis_", align 1 +@22 = 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 -@20 = private unnamed_addr constant [9 x i8] c"ArrayType", align 1 +@23 = 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 +@24 = private unnamed_addr constant [45 x i8] c"github.com/goplus/llgo/internal/abi.ArrayType", align 1 @"_llgo_struct$eLreYy_0Tx9Ip-rgTmC6_uCvf27HVl_zBUTfLS0WYaY" = linkonce global ptr null, align 8 -@21 = private unnamed_addr constant [4 x i8] c"Type", align 1 -@22 = private unnamed_addr constant [4 x i8] c"Elem", align 1 -@23 = private unnamed_addr constant [5 x i8] c"Slice", align 1 -@24 = private unnamed_addr constant [3 x i8] c"Len", align 1 -@25 = private unnamed_addr constant [6 x i8] c"Common", align 1 +@25 = private unnamed_addr constant [4 x i8] c"Type", align 1 +@26 = private unnamed_addr constant [4 x i8] c"Elem", align 1 +@27 = private unnamed_addr constant [5 x i8] c"Slice", align 1 +@28 = private unnamed_addr constant [3 x i8] c"Len", align 1 +@29 = private unnamed_addr constant [7 x i8] c"ChanDir", align 1 +@"_llgo_func$TrNr0CVWj6qegOngzWbt2Jl7pr7IBJ5gOmgUf2ieIi4" = linkonce global ptr null, align 8 +@"_llgo_github.com/goplus/llgo/internal/abi.ChanDir" = linkonce global ptr null, align 8 +@30 = private unnamed_addr constant [43 x i8] c"github.com/goplus/llgo/internal/abi.ChanDir", align 1 +@31 = private unnamed_addr constant [35 x i8] c"github.com/goplus/llgo/internal/abi", align 1 +@32 = private unnamed_addr constant [6 x i8] c"Common", align 1 @"_llgo_func$4-mqItKfDlL0CgVKnUxoresYgh6zW1WSlZYZSsVzLRo" = linkonce global ptr null, align 8 @"*_llgo_github.com/goplus/llgo/internal/abi.Type" = linkonce global ptr null, align 8 -@26 = private unnamed_addr constant [10 x i8] c"FieldAlign", align 1 -@27 = private unnamed_addr constant [8 x i8] c"FuncType", align 1 +@33 = private unnamed_addr constant [10 x i8] c"FieldAlign", align 1 +@34 = 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 +@35 = private unnamed_addr constant [44 x i8] c"github.com/goplus/llgo/internal/abi.FuncType", align 1 @"_llgo_struct$wRu7InfmQeSkq7akLN3soDNninnS1dQajawdYvmHbzw" = linkonce global ptr null, align 8 -@28 = private unnamed_addr constant [2 x i8] c"In", align 1 -@29 = private unnamed_addr constant [3 x i8] c"Out", align 1 -@30 = private unnamed_addr constant [7 x i8] c"HasName", align 1 +@36 = private unnamed_addr constant [2 x i8] c"In", align 1 +@37 = private unnamed_addr constant [3 x i8] c"Out", align 1 +@38 = private unnamed_addr constant [7 x i8] c"HasName", align 1 @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk" = linkonce global ptr null, align 8 -@31 = private unnamed_addr constant [10 x i8] c"IfaceIndir", align 1 -@32 = private unnamed_addr constant [13 x i8] c"InterfaceType", align 1 +@39 = private unnamed_addr constant [10 x i8] c"IfaceIndir", align 1 +@40 = 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 +@41 = private unnamed_addr constant [49 x i8] c"github.com/goplus/llgo/internal/abi.InterfaceType", align 1 @"_llgo_struct$mWxYYevLxpL1wQyiQtAy4OszkqTlHtrmEcPpzW9Air4" = linkonce global ptr null, align 8 -@33 = private unnamed_addr constant [8 x i8] c"PkgPath_", align 1 -@34 = private unnamed_addr constant [7 x i8] c"Methods", align 1 -@35 = private unnamed_addr constant [13 x i8] c"IsDirectIface", align 1 -@36 = private unnamed_addr constant [4 x i8] c"Kind", align 1 +@42 = private unnamed_addr constant [43 x i8] c"github.com/goplus/llgo/internal/abi.Imethod", align 1 +@43 = private unnamed_addr constant [8 x i8] c"PkgPath_", align 1 +@44 = private unnamed_addr constant [7 x i8] c"Methods", align 1 +@45 = private unnamed_addr constant [13 x i8] c"IsDirectIface", align 1 +@46 = private unnamed_addr constant [3 x i8] c"Key", align 1 +@47 = 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 +@48 = private unnamed_addr constant [40 x i8] c"github.com/goplus/llgo/internal/abi.Kind", align 1 @_llgo_uint = linkonce global ptr null, align 8 -@37 = private unnamed_addr constant [6 x i8] c"String", align 1 +@49 = private unnamed_addr constant [6 x i8] c"String", align 1 @"_llgo_func$zNDVRsWTIpUPKouNUS805RGX--IV9qVK8B31IZbg5to" = linkonce global ptr null, align 8 @_llgo_string = linkonce global ptr null, align 8 -@38 = private unnamed_addr constant [35 x i8] c"github.com/goplus/llgo/internal/abi", align 1 -@39 = private unnamed_addr constant [7 x i8] c"MapType", align 1 +@50 = 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 +@51 = private unnamed_addr constant [43 x i8] c"github.com/goplus/llgo/internal/abi.MapType", align 1 +@"main.struct$Yk42tBqeO4BzIoRAwt__cbPj2UwIDCP07Kg_SR7sBZM" = linkonce global ptr null, align 8 @_llgo_uintptr = linkonce global ptr null, align 8 -@40 = private unnamed_addr constant [3 x i8] c"Key", align 1 -@41 = private unnamed_addr constant [6 x i8] c"Bucket", align 1 -@42 = private unnamed_addr constant [6 x i8] c"Hasher", align 1 -@43 = private unnamed_addr constant [7 x i8] c"KeySize", align 1 -@44 = private unnamed_addr constant [9 x i8] c"ValueSize", align 1 -@45 = private unnamed_addr constant [10 x i8] c"BucketSize", align 1 -@46 = private unnamed_addr constant [5 x i8] c"Flags", align 1 -@47 = private unnamed_addr constant [14 x i8] c"HashMightPanic", align 1 -@48 = private unnamed_addr constant [12 x i8] c"IndirectElem", align 1 -@49 = private unnamed_addr constant [11 x i8] c"IndirectKey", align 1 -@50 = private unnamed_addr constant [13 x i8] c"NeedKeyUpdate", align 1 -@51 = private unnamed_addr constant [8 x i8] c"Pointers", align 1 -@52 = private unnamed_addr constant [12 x i8] c"ReflexiveKey", align 1 -@53 = private unnamed_addr constant [4 x i8] c"Size", align 1 +@52 = private unnamed_addr constant [6 x i8] c"Bucket", align 1 +@53 = private unnamed_addr constant [6 x i8] c"Hasher", align 1 +@54 = private unnamed_addr constant [7 x i8] c"KeySize", align 1 +@55 = private unnamed_addr constant [9 x i8] c"ValueSize", align 1 +@56 = private unnamed_addr constant [10 x i8] c"BucketSize", align 1 +@57 = private unnamed_addr constant [5 x i8] c"Flags", align 1 +@58 = private unnamed_addr constant [14 x i8] c"HashMightPanic", align 1 +@59 = private unnamed_addr constant [12 x i8] c"IndirectElem", align 1 +@60 = private unnamed_addr constant [11 x i8] c"IndirectKey", align 1 +@61 = private unnamed_addr constant [13 x i8] c"NeedKeyUpdate", align 1 +@62 = private unnamed_addr constant [8 x i8] c"Pointers", align 1 +@63 = private unnamed_addr constant [12 x i8] c"ReflexiveKey", align 1 +@64 = private unnamed_addr constant [4 x i8] c"Size", align 1 @"_llgo_func$1kITCsyu7hFLMxHLR7kDlvu4SOra_HtrtdFUQH9P13s" = linkonce global ptr null, align 8 -@54 = private unnamed_addr constant [10 x i8] c"StructType", align 1 +@65 = 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 +@66 = private unnamed_addr constant [46 x i8] c"github.com/goplus/llgo/internal/abi.StructType", align 1 @"_llgo_struct$K_cvuhBwc2_5r7UW089ibWfcfsGoDb4pZ7K19IcMTk0" = linkonce global ptr null, align 8 -@55 = private unnamed_addr constant [6 x i8] c"Fields", align 1 -@56 = private unnamed_addr constant [8 x i8] c"Uncommon", align 1 +@67 = private unnamed_addr constant [47 x i8] c"github.com/goplus/llgo/internal/abi.StructField", align 1 +@68 = private unnamed_addr constant [6 x i8] c"Fields", align 1 +@69 = 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 +@70 = private unnamed_addr constant [48 x i8] c"github.com/goplus/llgo/internal/abi.UncommonType", align 1 @"_llgo_struct$OKIlItfBJsawrEMnVSc2VQ7pxNxCHIgSoitcM9n4FVI" = linkonce global ptr null, align 8 -@57 = private unnamed_addr constant [6 x i8] c"Mcount", align 1 -@58 = private unnamed_addr constant [6 x i8] c"Xcount", align 1 -@59 = private unnamed_addr constant [4 x i8] c"Moff", align 1 -@60 = private unnamed_addr constant [15 x i8] c"ExportedMethods", align 1 +@71 = private unnamed_addr constant [6 x i8] c"Mcount", align 1 +@72 = private unnamed_addr constant [6 x i8] c"Xcount", align 1 +@73 = private unnamed_addr constant [4 x i8] c"Moff", align 1 +@74 = 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 -@61 = private unnamed_addr constant [12 x i8] c"UncommonType", align 1 +@75 = private unnamed_addr constant [42 x i8] c"github.com/goplus/llgo/internal/abi.Method", align 1 +@76 = 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 -@62 = private unnamed_addr constant [8 x i8] c"Variadic", align 1 +@77 = 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 -@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 +@78 = private unnamed_addr constant [13 x i8] c"error field 0", align 1 +@79 = private unnamed_addr constant [18 x i8] c"error field 0 elem", align 1 +@80 = private unnamed_addr constant [13 x i8] c"error field 1", align 1 +@81 = private unnamed_addr constant [18 x i8] c"error field 1 elem", align 1 +@82 = private unnamed_addr constant [13 x i8] c"error field 2", align 1 +@83 = private unnamed_addr constant [13 x i8] c"error field 3", align 1 define void @main.init() { _llgo_0: @@ -215,7 +232,7 @@ _llgo_0: _llgo_1: ; preds = %_llgo_0 %46 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 %47 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %46, i32 0, i32 0 - store ptr @63, ptr %47, align 8 + store ptr @78, ptr %47, align 8 %48 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %46, i32 0, i32 1 store i64 13, ptr %48, align 4 %49 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %46, align 8 @@ -243,7 +260,7 @@ _llgo_2: ; preds = %_llgo_0 _llgo_3: ; preds = %_llgo_2 %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 @64, ptr %63, align 8 + store ptr @79, ptr %63, align 8 %64 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %62, i32 0, i32 1 store i64 18, ptr %64, align 4 %65 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %62, align 8 @@ -286,7 +303,7 @@ _llgo_4: ; preds = %_llgo_2 _llgo_5: ; preds = %_llgo_4 %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 @65, ptr %91, align 8 + store ptr @80, ptr %91, align 8 %92 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %90, i32 0, i32 1 store i64 13, ptr %92, align 4 %93 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %90, align 8 @@ -314,7 +331,7 @@ _llgo_6: ; preds = %_llgo_4 _llgo_7: ; preds = %_llgo_6 %106 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 %107 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %106, i32 0, i32 0 - store ptr @66, ptr %107, align 8 + store ptr @81, ptr %107, align 8 %108 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %106, i32 0, i32 1 store i64 18, ptr %108, align 4 %109 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %106, align 8 @@ -365,7 +382,7 @@ _llgo_8: ; preds = %_llgo_6 _llgo_9: ; preds = %_llgo_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 @67, ptr %142, align 8 + store ptr @82, ptr %142, align 8 %143 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %141, i32 0, i32 1 store i64 13, ptr %143, align 4 %144 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %141, align 8 @@ -407,7 +424,7 @@ _llgo_10: ; preds = %_llgo_8 _llgo_11: ; preds = %_llgo_10 %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 @68, ptr %169, align 8 + store ptr @83, ptr %169, align 8 %170 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %168, i32 0, i32 1 store i64 13, ptr %170, align 4 %171 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %168, align 8 @@ -440,200 +457,199 @@ declare void @"github.com/goplus/llgo/internal/runtime.init"() define void @"main.init$after"() { _llgo_0: - %0 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(i64 25, i64 48, i64 0, i64 0) - %1 = load ptr, ptr @_llgo_main.T, align 8 - %2 = icmp eq ptr %1, null - br i1 %2, label %_llgo_1, label %_llgo_2 + %0 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %1 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %0, i32 0, i32 0 + store ptr @0, ptr %1, align 8 + %2 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %0, i32 0, i32 1 + store i64 6, ptr %2, align 4 + %3 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %0, align 8 + %4 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(%"github.com/goplus/llgo/internal/runtime.String" %3, i64 25, i64 48, i64 0, i64 0) + %5 = load ptr, ptr @_llgo_main.T, align 8 + %6 = icmp eq ptr %5, null + br i1 %6, label %_llgo_1, label %_llgo_2 _llgo_1: ; preds = %_llgo_0 - store ptr %0, ptr @_llgo_main.T, align 8 + store ptr %4, ptr @_llgo_main.T, align 8 br label %_llgo_2 _llgo_2: ; preds = %_llgo_1, %_llgo_0 - %3 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(i64 25, i64 80, i64 0, i64 18) - %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 @0, ptr %5, align 8 - %6 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %4, i32 0, i32 1 - store i64 1, ptr %6, align 4 - %7 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %4, 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 null, ptr %9, align 8 - %10 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %8, i32 0, i32 1 - store i64 0, 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.PointerTo"(ptr %0) - %13 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %7, ptr %12, i64 0, %"github.com/goplus/llgo/internal/runtime.String" %11, 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 1, ptr %16, align 4 - %17 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %14, align 8 - %18 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %19 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %18, i32 0, i32 0 - store ptr null, ptr %19, align 8 - %20 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %18, i32 0, i32 1 - store i64 0, ptr %20, align 4 - %21 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %18, align 8 - %22 = call ptr @"github.com/goplus/llgo/internal/runtime.PointerTo"(ptr %3) - %23 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %17, ptr %22, i64 8, %"github.com/goplus/llgo/internal/runtime.String" %21, 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 @2, 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 ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 44) - %33 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %27, ptr %32, i64 16, %"github.com/goplus/llgo/internal/runtime.String" %31, i1 false) - %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 @3, ptr %35, align 8 - %36 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %34, i32 0, i32 1 - store i64 1, ptr %36, align 4 - %37 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %34, align 8 - %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 null, ptr %39, align 8 - %40 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %38, i32 0, i32 1 - store i64 0, ptr %40, align 4 - %41 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %38, align 8 - %42 = call ptr @"github.com/goplus/llgo/internal/runtime.SliceOf"(ptr %0) - %43 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %37, ptr %42, i64 24, %"github.com/goplus/llgo/internal/runtime.String" %41, i1 false) - %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 @4, ptr %45, align 8 - %46 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %44, i32 0, i32 1 - store i64 4, 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.AllocU"(i64 224) - %49 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %48, i64 0 - store %"github.com/goplus/llgo/internal/abi.StructField" %13, ptr %49, align 8 - %50 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %48, i64 1 - store %"github.com/goplus/llgo/internal/abi.StructField" %23, ptr %50, align 8 - %51 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %48, i64 2 - store %"github.com/goplus/llgo/internal/abi.StructField" %33, ptr %51, align 8 - %52 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %48, i64 3 - store %"github.com/goplus/llgo/internal/abi.StructField" %43, ptr %52, align 8 - %53 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %54 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %53, i32 0, i32 0 - store ptr %48, ptr %54, align 8 - %55 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %53, i32 0, i32 1 - store i64 4, ptr %55, align 4 - %56 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %53, i32 0, i32 2 - store i64 4, ptr %56, align 4 - %57 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %53, align 8 - %58 = call ptr @"github.com/goplus/llgo/internal/runtime.Struct"(%"github.com/goplus/llgo/internal/runtime.String" %47, i64 48, %"github.com/goplus/llgo/internal/runtime.Slice" %57) - store ptr %58, ptr @"main.struct$FYfyNCnlvkYOztpQWjt-y8D_WY3tpxyt5Qo62CJffTE", align 8 - %59 = load ptr, ptr @"main.struct$FYfyNCnlvkYOztpQWjt-y8D_WY3tpxyt5Qo62CJffTE", align 8 - br i1 %2, label %_llgo_3, label %_llgo_4 + %7 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %8 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %7, i32 0, i32 0 + store ptr @0, ptr %8, align 8 + %9 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %7, i32 0, i32 1 + store i64 6, ptr %9, align 4 + %10 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %7, align 8 + %11 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(%"github.com/goplus/llgo/internal/runtime.String" %10, i64 25, i64 48, i64 0, i64 0) + %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 @1, ptr %13, align 8 + %14 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %12, i32 0, i32 1 + store i64 40, ptr %14, align 4 + %15 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %12, align 8 + %16 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(%"github.com/goplus/llgo/internal/runtime.String" %15, i64 25, i64 80, i64 0, i64 20) + %17 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %18 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %17, i32 0, i32 0 + store ptr @0, ptr %18, align 8 + %19 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %17, i32 0, i32 1 + store i64 6, ptr %19, align 4 + %20 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %17, align 8 + %21 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(%"github.com/goplus/llgo/internal/runtime.String" %20, i64 25, i64 48, i64 0, i64 0) + %22 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %23 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %22, i32 0, i32 0 + store ptr @2, ptr %23, align 8 + %24 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %22, i32 0, i32 1 + store i64 1, ptr %24, align 4 + %25 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %22, align 8 + %26 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %27 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %26, i32 0, i32 0 + store ptr null, ptr %27, align 8 + %28 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %26, i32 0, i32 1 + store i64 0, ptr %28, align 4 + %29 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %26, align 8 + %30 = call ptr @"github.com/goplus/llgo/internal/runtime.PointerTo"(ptr %11) + %31 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %25, ptr %30, i64 0, %"github.com/goplus/llgo/internal/runtime.String" %29, i1 false) + %32 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %33 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %32, i32 0, i32 0 + store ptr @3, ptr %33, align 8 + %34 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %32, i32 0, i32 1 + store i64 1, ptr %34, align 4 + %35 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %32, align 8 + %36 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %37 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %36, i32 0, i32 0 + store ptr null, ptr %37, align 8 + %38 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %36, i32 0, i32 1 + store i64 0, ptr %38, align 4 + %39 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %36, align 8 + %40 = call ptr @"github.com/goplus/llgo/internal/runtime.PointerTo"(ptr %16) + %41 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %35, ptr %40, i64 8, %"github.com/goplus/llgo/internal/runtime.String" %39, i1 false) + %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 @4, ptr %43, align 8 + %44 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %42, i32 0, i32 1 + store i64 1, ptr %44, align 4 + %45 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %42, align 8 + %46 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %47 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %46, i32 0, i32 0 + store ptr null, ptr %47, align 8 + %48 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %46, i32 0, i32 1 + store i64 0, ptr %48, align 4 + %49 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %46, align 8 + %50 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 44) + %51 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %45, ptr %50, i64 16, %"github.com/goplus/llgo/internal/runtime.String" %49, i1 false) + %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 @5, ptr %53, align 8 + %54 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %52, i32 0, i32 1 + store i64 1, ptr %54, align 4 + %55 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %52, align 8 + %56 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %57 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %56, i32 0, i32 0 + store ptr null, ptr %57, align 8 + %58 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %56, i32 0, i32 1 + store i64 0, ptr %58, align 4 + %59 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %56, align 8 + %60 = call ptr @"github.com/goplus/llgo/internal/runtime.SliceOf"(ptr %21) + %61 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %55, ptr %60, i64 24, %"github.com/goplus/llgo/internal/runtime.String" %59, i1 false) + %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 @6, 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 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 224) + %67 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %66, i64 0 + store %"github.com/goplus/llgo/internal/abi.StructField" %31, ptr %67, align 8 + %68 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %66, i64 1 + store %"github.com/goplus/llgo/internal/abi.StructField" %41, ptr %68, align 8 + %69 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %66, i64 2 + store %"github.com/goplus/llgo/internal/abi.StructField" %51, ptr %69, align 8 + %70 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %66, i64 3 + store %"github.com/goplus/llgo/internal/abi.StructField" %61, ptr %70, align 8 + %71 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %72 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %71, i32 0, i32 0 + store ptr %66, ptr %72, align 8 + %73 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %71, i32 0, i32 1 + store i64 4, ptr %73, align 4 + %74 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %71, i32 0, i32 2 + store i64 4, ptr %74, align 4 + %75 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %71, align 8 + %76 = call ptr @"github.com/goplus/llgo/internal/runtime.Struct"(%"github.com/goplus/llgo/internal/runtime.String" %65, i64 48, %"github.com/goplus/llgo/internal/runtime.Slice" %75) + store ptr %76, ptr @"main.struct$FYfyNCnlvkYOztpQWjt-y8D_WY3tpxyt5Qo62CJffTE", align 8 + %77 = load ptr, ptr @"main.struct$FYfyNCnlvkYOztpQWjt-y8D_WY3tpxyt5Qo62CJffTE", align 8 + br i1 %6, label %_llgo_3, label %_llgo_4 _llgo_3: ; preds = %_llgo_2 - %60 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %61 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %60, i32 0, i32 0 - store ptr @4, ptr %61, align 8 - %62 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %60, i32 0, i32 1 - store i64 4, ptr %62, align 4 - %63 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %60, align 8 - %64 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %65 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %64, i32 0, i32 0 - store ptr @5, ptr %65, align 8 - %66 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %64, i32 0, i32 1 - store i64 1, ptr %66, align 4 - %67 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %64, align 8 - call void @"github.com/goplus/llgo/internal/runtime.InitNamed"(ptr %0, %"github.com/goplus/llgo/internal/runtime.String" %63, %"github.com/goplus/llgo/internal/runtime.String" %67, ptr %59, { ptr, i64, i64 } zeroinitializer, { ptr, i64, i64 } zeroinitializer) + %78 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %79 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %78, i32 0, i32 0 + store ptr @6, ptr %79, align 8 + %80 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %78, i32 0, i32 1 + store i64 4, ptr %80, align 4 + %81 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %78, align 8 + %82 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %83 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %82, i32 0, i32 0 + store ptr @7, ptr %83, align 8 + %84 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %82, i32 0, i32 1 + store i64 1, ptr %84, align 4 + %85 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %82, align 8 + call void @"github.com/goplus/llgo/internal/runtime.InitNamed"(ptr %4, %"github.com/goplus/llgo/internal/runtime.String" %81, %"github.com/goplus/llgo/internal/runtime.String" %85, ptr %77, { ptr, i64, i64 } zeroinitializer, { ptr, i64, i64 } zeroinitializer) br label %_llgo_4 _llgo_4: ; preds = %_llgo_3, %_llgo_2 - %68 = load ptr, ptr @"_llgo_github.com/goplus/llgo/internal/abi.Type", align 8 - %69 = icmp eq ptr %68, null - br i1 %69, label %_llgo_5, label %_llgo_6 + %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 @1, ptr %87, align 8 + %88 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %86, i32 0, i32 1 + store i64 40, ptr %88, align 4 + %89 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %86, align 8 + %90 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(%"github.com/goplus/llgo/internal/runtime.String" %89, i64 25, i64 80, i64 0, i64 20) + %91 = load ptr, ptr @"_llgo_github.com/goplus/llgo/internal/abi.Type", align 8 + %92 = icmp eq ptr %91, null + br i1 %92, label %_llgo_5, label %_llgo_6 _llgo_5: ; preds = %_llgo_4 - store ptr %3, ptr @"_llgo_github.com/goplus/llgo/internal/abi.Type", align 8 + store ptr %90, ptr @"_llgo_github.com/goplus/llgo/internal/abi.Type", align 8 br label %_llgo_6 _llgo_6: ; preds = %_llgo_5, %_llgo_4 - %70 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(i64 8, i64 1, i64 0, i64 0) - %71 = load ptr, ptr @_llgo_Pointer, align 8 - %72 = icmp eq ptr %71, null - br i1 %72, label %_llgo_7, label %_llgo_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 @8, ptr %94, align 8 + %95 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %93, i32 0, i32 1 + store i64 41, 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.NewNamed"(%"github.com/goplus/llgo/internal/runtime.String" %96, i64 8, i64 1, i64 0, i64 0) + %98 = load ptr, ptr @_llgo_Pointer, align 8 + %99 = icmp eq ptr %98, null + br i1 %99, label %_llgo_7, label %_llgo_8 _llgo_7: ; preds = %_llgo_6 - %73 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 58) - call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %73) - store ptr %73, ptr @_llgo_Pointer, align 8 + %100 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 58) + call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %100) + store ptr %100, ptr @_llgo_Pointer, align 8 br label %_llgo_8 _llgo_8: ; preds = %_llgo_7, %_llgo_6 - %74 = load ptr, ptr @_llgo_Pointer, align 8 - %75 = load ptr, ptr @_llgo_Pointer, align 8 - %76 = load ptr, ptr @_llgo_Pointer, align 8 - %77 = load ptr, ptr @_llgo_bool, align 8 - %78 = icmp eq ptr %77, null - br i1 %78, label %_llgo_9, label %_llgo_10 + %101 = load ptr, ptr @_llgo_Pointer, align 8 + %102 = load ptr, ptr @_llgo_Pointer, align 8 + %103 = load ptr, ptr @_llgo_Pointer, align 8 + %104 = load ptr, ptr @_llgo_bool, align 8 + %105 = icmp eq ptr %104, null + br i1 %105, label %_llgo_9, label %_llgo_10 _llgo_9: ; preds = %_llgo_8 - %79 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 33) - store ptr %79, ptr @_llgo_bool, align 8 + %106 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 33) + store ptr %106, ptr @_llgo_bool, align 8 br label %_llgo_10 _llgo_10: ; preds = %_llgo_9, %_llgo_8 - %80 = load ptr, ptr @_llgo_bool, align 8 - %81 = load ptr, ptr @"_llgo_struct$13P_TvKNXommvK6tKt3eRNnJqTcPEFYrHagFiHeRpb0", align 8 - %82 = icmp eq ptr %81, null - br i1 %82, label %_llgo_11, label %_llgo_12 - -_llgo_11: ; preds = %_llgo_10 - %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 @6, ptr %84, align 8 - %85 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %83, i32 0, i32 1 - store i64 5, 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 ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 44) - %92 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %86, ptr %91, i64 0, %"github.com/goplus/llgo/internal/runtime.String" %90, 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 @7, ptr %94, align 8 - %95 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %93, i32 0, i32 1 - store i64 8, 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 ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 44) - %102 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %96, ptr %101, i64 8, %"github.com/goplus/llgo/internal/runtime.String" %100, i1 false) - %103 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %104 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %103, i32 0, i32 0 - store ptr @8, ptr %104, align 8 - %105 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %103, i32 0, i32 1 - store i64 4, ptr %105, align 4 - %106 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %103, align 8 - %107 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %108 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %107, i32 0, i32 0 - store ptr null, ptr %108, align 8 - %109 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %107, i32 0, i32 1 - store i64 0, ptr %109, align 4 - %110 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %107, align 8 - %111 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 42) - %112 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %106, ptr %111, i64 16, %"github.com/goplus/llgo/internal/runtime.String" %110, i1 false) + %107 = load ptr, ptr @_llgo_bool, align 8 + %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 @1, ptr %109, align 8 + %110 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %108, i32 0, i32 1 + store i64 40, ptr %110, align 4 + %111 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %108, align 8 + %112 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(%"github.com/goplus/llgo/internal/runtime.String" %111, i64 25, i64 80, i64 0, i64 20) %113 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 %114 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %113, i32 0, i32 0 store ptr @9, ptr %114, align 8 @@ -646,54 +662,54 @@ _llgo_11: ; preds = %_llgo_10 %119 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %117, i32 0, i32 1 store i64 0, ptr %119, align 4 %120 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %117, align 8 - %121 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %116, ptr %70, i64 20, %"github.com/goplus/llgo/internal/runtime.String" %120, i1 false) - %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 @10, ptr %123, align 8 - %124 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %122, i32 0, i32 1 - store i64 6, 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 null, ptr %127, align 8 - %128 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %126, i32 0, i32 1 - store i64 0, ptr %128, align 4 - %129 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %126, align 8 - %130 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 40) - %131 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %125, ptr %130, i64 21, %"github.com/goplus/llgo/internal/runtime.String" %129, i1 false) - %132 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %133 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %132, i32 0, i32 0 - store ptr @11, ptr %133, align 8 - %134 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %132, i32 0, i32 1 - store i64 11, ptr %134, align 4 - %135 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %132, align 8 - %136 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %137 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %136, i32 0, i32 0 - store ptr null, ptr %137, align 8 - %138 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %136, i32 0, i32 1 - store i64 0, ptr %138, align 4 - %139 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %136, align 8 - %140 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 40) - %141 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %135, ptr %140, i64 22, %"github.com/goplus/llgo/internal/runtime.String" %139, i1 false) - %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 @12, ptr %143, align 8 - %144 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %142, i32 0, i32 1 - store i64 5, ptr %144, align 4 - %145 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %142, align 8 - %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 null, ptr %147, align 8 - %148 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %146, i32 0, i32 1 - store i64 0, ptr %148, align 4 - %149 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %146, align 8 - %150 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 40) - %151 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %145, ptr %150, i64 23, %"github.com/goplus/llgo/internal/runtime.String" %149, i1 false) + %121 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 44) + %122 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %116, ptr %121, i64 0, %"github.com/goplus/llgo/internal/runtime.String" %120, i1 false) + %123 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %124 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %123, i32 0, i32 0 + store ptr @10, ptr %124, align 8 + %125 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %123, i32 0, i32 1 + store i64 8, ptr %125, align 4 + %126 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %123, align 8 + %127 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %128 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %127, i32 0, i32 0 + store ptr null, ptr %128, align 8 + %129 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %127, i32 0, i32 1 + store i64 0, ptr %129, align 4 + %130 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %127, align 8 + %131 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 44) + %132 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %126, ptr %131, i64 8, %"github.com/goplus/llgo/internal/runtime.String" %130, i1 false) + %133 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %134 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %133, i32 0, i32 0 + store ptr @11, ptr %134, align 8 + %135 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %133, i32 0, i32 1 + store i64 4, ptr %135, align 4 + %136 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %133, align 8 + %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 null, ptr %138, align 8 + %139 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %137, i32 0, i32 1 + store i64 0, ptr %139, align 4 + %140 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %137, align 8 + %141 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 42) + %142 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %136, ptr %141, i64 16, %"github.com/goplus/llgo/internal/runtime.String" %140, i1 false) + %143 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %144 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %143, i32 0, i32 0 + store ptr @12, ptr %144, align 8 + %145 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %143, i32 0, i32 1 + store i64 5, ptr %145, align 4 + %146 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %143, align 8 + %147 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %148 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %147, i32 0, i32 0 + store ptr null, ptr %148, align 8 + %149 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %147, i32 0, i32 1 + store i64 0, ptr %149, align 4 + %150 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %147, align 8 + %151 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %146, ptr %97, i64 20, %"github.com/goplus/llgo/internal/runtime.String" %150, i1 false) %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 @13, ptr %153, align 8 %154 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %152, i32 0, i32 1 - store i64 5, ptr %154, align 4 + store i64 6, 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 @@ -701,1176 +717,1141 @@ _llgo_11: ; preds = %_llgo_10 %158 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %156, i32 0, i32 1 store i64 0, ptr %158, align 4 %159 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %156, align 8 - %160 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %161 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %160, i32 0, i32 0 - store ptr @14, ptr %161, align 8 - %162 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %160, i32 0, i32 1 - store i64 1, ptr %162, align 4 - %163 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %160, align 8 - %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 null, ptr %165, align 8 - %166 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %164, i32 0, i32 1 - store i64 0, ptr %166, align 4 - %167 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %164, align 8 - %168 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 24) - %169 = getelementptr ptr, ptr %168, i64 0 - store ptr %74, ptr %169, align 8 - %170 = getelementptr ptr, ptr %168, i64 1 - store ptr %75, ptr %170, align 8 - %171 = getelementptr ptr, ptr %168, i64 2 - store ptr %76, ptr %171, align 8 - %172 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %173 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %172, i32 0, i32 0 - store ptr %168, ptr %173, align 8 - %174 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %172, i32 0, i32 1 - store i64 3, ptr %174, align 4 - %175 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %172, i32 0, i32 2 - store i64 3, ptr %175, align 4 - %176 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %172, align 8 - %177 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 8) - %178 = getelementptr ptr, ptr %177, i64 0 - store ptr %80, ptr %178, align 8 - %179 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %180 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %179, i32 0, i32 0 - store ptr %177, ptr %180, align 8 - %181 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %179, i32 0, i32 1 - store i64 1, ptr %181, align 4 - %182 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %179, i32 0, i32 2 - store i64 1, ptr %182, align 4 - %183 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %179, align 8 - %184 = call ptr @"github.com/goplus/llgo/internal/runtime.Func"(%"github.com/goplus/llgo/internal/runtime.Slice" %176, %"github.com/goplus/llgo/internal/runtime.Slice" %183, i1 false) - %185 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %163, ptr %184, i64 0, %"github.com/goplus/llgo/internal/runtime.String" %167, i1 false) + %160 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 40) + %161 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %155, ptr %160, i64 21, %"github.com/goplus/llgo/internal/runtime.String" %159, i1 false) + %162 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %163 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %162, i32 0, i32 0 + store ptr @14, ptr %163, align 8 + %164 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %162, i32 0, i32 1 + store i64 11, ptr %164, align 4 + %165 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %162, align 8 + %166 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %167 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %166, i32 0, i32 0 + store ptr null, ptr %167, align 8 + %168 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %166, i32 0, i32 1 + store i64 0, ptr %168, align 4 + %169 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %166, align 8 + %170 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 40) + %171 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %165, ptr %170, i64 22, %"github.com/goplus/llgo/internal/runtime.String" %169, i1 false) + %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 @15, ptr %173, align 8 + %174 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %172, i32 0, i32 1 + store i64 5, ptr %174, align 4 + %175 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %172, align 8 + %176 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %177 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %176, i32 0, i32 0 + store ptr null, ptr %177, align 8 + %178 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %176, i32 0, i32 1 + store i64 0, ptr %178, align 4 + %179 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %176, align 8 + %180 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 40) + %181 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %175, ptr %180, i64 23, %"github.com/goplus/llgo/internal/runtime.String" %179, 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 @16, ptr %183, align 8 + %184 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %182, i32 0, i32 1 + store i64 5, 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 @15, ptr %187, align 8 + 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 4, ptr %188, align 4 + store i64 0, 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 null, ptr %191, align 8 + store ptr @17, ptr %191, align 8 %192 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %190, i32 0, i32 1 - store i64 0, ptr %192, align 4 + store i64 1, ptr %192, align 4 %193 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %190, align 8 - %194 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 58) - %195 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %189, ptr %194, i64 8, %"github.com/goplus/llgo/internal/runtime.String" %193, i1 false) - %196 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %197 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %196, i32 0, i32 0 - store ptr @4, ptr %197, align 8 - %198 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %196, i32 0, i32 1 - store i64 4, ptr %198, align 4 - %199 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %196, align 8 - %200 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 112) - %201 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %200, i64 0 - store %"github.com/goplus/llgo/internal/abi.StructField" %185, ptr %201, align 8 - %202 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %200, i64 1 - store %"github.com/goplus/llgo/internal/abi.StructField" %195, ptr %202, align 8 - %203 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %204 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %203, i32 0, i32 0 - store ptr %200, ptr %204, align 8 - %205 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %203, i32 0, i32 1 - store i64 2, ptr %205, align 4 - %206 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %203, i32 0, i32 2 - store i64 2, ptr %206, align 4 - %207 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %203, align 8 - %208 = call ptr @"github.com/goplus/llgo/internal/runtime.Struct"(%"github.com/goplus/llgo/internal/runtime.String" %199, i64 16, %"github.com/goplus/llgo/internal/runtime.Slice" %207) - %209 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %155, ptr %208, i64 24, %"github.com/goplus/llgo/internal/runtime.String" %159, i1 false) - %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 @16, 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 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %215 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %214, i32 0, i32 0 - store ptr null, ptr %215, align 8 - %216 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %214, i32 0, i32 1 - store i64 0, ptr %216, align 4 - %217 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %214, align 8 - %218 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 40) - %219 = call ptr @"github.com/goplus/llgo/internal/runtime.PointerTo"(ptr %218) - %220 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %213, ptr %219, i64 40, %"github.com/goplus/llgo/internal/runtime.String" %217, i1 false) - %221 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %222 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %221, i32 0, i32 0 - store ptr @17, ptr %222, align 8 - %223 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %221, i32 0, i32 1 - store i64 4, ptr %223, align 4 - %224 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %221, align 8 - %225 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %226 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %225, i32 0, i32 0 - store ptr null, ptr %226, align 8 - %227 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %225, i32 0, i32 1 - store i64 0, ptr %227, align 4 - %228 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %225, align 8 - %229 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 24) - %230 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %224, ptr %229, i64 48, %"github.com/goplus/llgo/internal/runtime.String" %228, i1 false) - %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 @18, ptr %232, align 8 - %233 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %231, i32 0, i32 1 - store i64 10, ptr %233, align 4 - %234 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %231, align 8 - %235 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %236 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %235, i32 0, i32 0 - store ptr null, ptr %236, align 8 - %237 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %235, i32 0, i32 1 - store i64 0, ptr %237, align 4 - %238 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %235, align 8 - %239 = call ptr @"github.com/goplus/llgo/internal/runtime.PointerTo"(ptr %3) - %240 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %234, ptr %239, i64 64, %"github.com/goplus/llgo/internal/runtime.String" %238, i1 false) - %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 @4, 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 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 616) - %246 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %245, i64 0 - store %"github.com/goplus/llgo/internal/abi.StructField" %92, ptr %246, align 8 - %247 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %245, i64 1 - store %"github.com/goplus/llgo/internal/abi.StructField" %102, ptr %247, align 8 - %248 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %245, i64 2 - store %"github.com/goplus/llgo/internal/abi.StructField" %112, ptr %248, align 8 - %249 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %245, i64 3 - store %"github.com/goplus/llgo/internal/abi.StructField" %121, ptr %249, align 8 - %250 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %245, i64 4 - store %"github.com/goplus/llgo/internal/abi.StructField" %131, ptr %250, align 8 - %251 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %245, i64 5 - store %"github.com/goplus/llgo/internal/abi.StructField" %141, ptr %251, align 8 - %252 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %245, i64 6 - store %"github.com/goplus/llgo/internal/abi.StructField" %151, ptr %252, align 8 - %253 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %245, i64 7 - store %"github.com/goplus/llgo/internal/abi.StructField" %209, ptr %253, align 8 - %254 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %245, i64 8 - store %"github.com/goplus/llgo/internal/abi.StructField" %220, ptr %254, align 8 - %255 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %245, i64 9 - store %"github.com/goplus/llgo/internal/abi.StructField" %230, ptr %255, align 8 - %256 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %245, i64 10 - store %"github.com/goplus/llgo/internal/abi.StructField" %240, ptr %256, align 8 - %257 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %258 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %257, i32 0, i32 0 - store ptr %245, ptr %258, align 8 - %259 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %257, i32 0, i32 1 - store i64 11, ptr %259, align 4 - %260 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %257, i32 0, i32 2 - store i64 11, ptr %260, align 4 - %261 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %257, align 8 - %262 = call ptr @"github.com/goplus/llgo/internal/runtime.Struct"(%"github.com/goplus/llgo/internal/runtime.String" %244, i64 72, %"github.com/goplus/llgo/internal/runtime.Slice" %261) - store ptr %262, ptr @"_llgo_struct$13P_TvKNXommvK6tKt3eRNnJqTcPEFYrHagFiHeRpb0", align 8 - br label %_llgo_12 + %194 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %195 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %194, i32 0, i32 0 + store ptr null, ptr %195, align 8 + %196 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %194, i32 0, i32 1 + store i64 0, ptr %196, align 4 + %197 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %194, align 8 + %198 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 24) + %199 = getelementptr ptr, ptr %198, i64 0 + store ptr %101, ptr %199, align 8 + %200 = getelementptr ptr, ptr %198, i64 1 + store ptr %102, ptr %200, align 8 + %201 = getelementptr ptr, ptr %198, i64 2 + store ptr %103, ptr %201, align 8 + %202 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %203 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %202, i32 0, i32 0 + store ptr %198, ptr %203, align 8 + %204 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %202, i32 0, i32 1 + store i64 3, ptr %204, align 4 + %205 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %202, i32 0, i32 2 + store i64 3, ptr %205, align 4 + %206 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %202, align 8 + %207 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 8) + %208 = getelementptr ptr, ptr %207, i64 0 + store ptr %107, ptr %208, align 8 + %209 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %210 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %209, i32 0, i32 0 + store ptr %207, ptr %210, align 8 + %211 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %209, i32 0, i32 1 + store i64 1, ptr %211, align 4 + %212 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %209, i32 0, i32 2 + store i64 1, ptr %212, align 4 + %213 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %209, align 8 + %214 = call ptr @"github.com/goplus/llgo/internal/runtime.Func"(%"github.com/goplus/llgo/internal/runtime.Slice" %206, %"github.com/goplus/llgo/internal/runtime.Slice" %213, i1 false) + %215 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %193, ptr %214, i64 0, %"github.com/goplus/llgo/internal/runtime.String" %197, i1 false) + %216 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %217 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %216, i32 0, i32 0 + store ptr @18, ptr %217, align 8 + %218 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %216, i32 0, i32 1 + store i64 4, ptr %218, align 4 + %219 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %216, align 8 + %220 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %221 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %220, i32 0, i32 0 + store ptr null, ptr %221, align 8 + %222 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %220, i32 0, i32 1 + store i64 0, ptr %222, align 4 + %223 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %220, align 8 + %224 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 58) + %225 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %219, ptr %224, i64 8, %"github.com/goplus/llgo/internal/runtime.String" %223, i1 false) + %226 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %227 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %226, i32 0, i32 0 + store ptr @6, ptr %227, align 8 + %228 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %226, i32 0, i32 1 + store i64 4, ptr %228, align 4 + %229 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %226, align 8 + %230 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 112) + %231 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %230, i64 0 + store %"github.com/goplus/llgo/internal/abi.StructField" %215, ptr %231, align 8 + %232 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %230, i64 1 + store %"github.com/goplus/llgo/internal/abi.StructField" %225, ptr %232, align 8 + %233 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %234 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %233, i32 0, i32 0 + store ptr %230, ptr %234, align 8 + %235 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %233, i32 0, i32 1 + store i64 2, ptr %235, align 4 + %236 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %233, i32 0, i32 2 + store i64 2, ptr %236, align 4 + %237 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %233, align 8 + %238 = call ptr @"github.com/goplus/llgo/internal/runtime.Struct"(%"github.com/goplus/llgo/internal/runtime.String" %229, i64 16, %"github.com/goplus/llgo/internal/runtime.Slice" %237) + %239 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %185, ptr %238, i64 24, %"github.com/goplus/llgo/internal/runtime.String" %189, i1 false) + %240 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %241 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %240, i32 0, i32 0 + store ptr @19, ptr %241, align 8 + %242 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %240, i32 0, i32 1 + store i64 6, ptr %242, align 4 + %243 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %240, align 8 + %244 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %245 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %244, i32 0, i32 0 + store ptr null, ptr %245, align 8 + %246 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %244, i32 0, i32 1 + store i64 0, ptr %246, align 4 + %247 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %244, align 8 + %248 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 40) + %249 = call ptr @"github.com/goplus/llgo/internal/runtime.PointerTo"(ptr %248) + %250 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %243, ptr %249, i64 40, %"github.com/goplus/llgo/internal/runtime.String" %247, i1 false) + %251 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %252 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %251, i32 0, i32 0 + store ptr @20, ptr %252, align 8 + %253 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %251, i32 0, i32 1 + store i64 4, ptr %253, align 4 + %254 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %251, align 8 + %255 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %256 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %255, i32 0, i32 0 + store ptr null, ptr %256, align 8 + %257 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %255, i32 0, i32 1 + store i64 0, ptr %257, align 4 + %258 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %255, align 8 + %259 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 24) + %260 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %254, ptr %259, i64 48, %"github.com/goplus/llgo/internal/runtime.String" %258, i1 false) + %261 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %262 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %261, i32 0, i32 0 + store ptr @21, ptr %262, align 8 + %263 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %261, i32 0, i32 1 + store i64 10, ptr %263, align 4 + %264 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %261, 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 null, ptr %266, align 8 + %267 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %265, i32 0, i32 1 + store i64 0, ptr %267, align 4 + %268 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %265, align 8 + %269 = call ptr @"github.com/goplus/llgo/internal/runtime.PointerTo"(ptr %112) + %270 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %264, ptr %269, i64 64, %"github.com/goplus/llgo/internal/runtime.String" %268, i1 false) + %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 @6, ptr %272, align 8 + %273 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %271, i32 0, i32 1 + store i64 4, ptr %273, align 4 + %274 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %271, align 8 + %275 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 616) + %276 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %275, i64 0 + store %"github.com/goplus/llgo/internal/abi.StructField" %122, ptr %276, align 8 + %277 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %275, i64 1 + store %"github.com/goplus/llgo/internal/abi.StructField" %132, ptr %277, align 8 + %278 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %275, i64 2 + store %"github.com/goplus/llgo/internal/abi.StructField" %142, ptr %278, align 8 + %279 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %275, i64 3 + store %"github.com/goplus/llgo/internal/abi.StructField" %151, ptr %279, align 8 + %280 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %275, i64 4 + store %"github.com/goplus/llgo/internal/abi.StructField" %161, ptr %280, align 8 + %281 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %275, i64 5 + store %"github.com/goplus/llgo/internal/abi.StructField" %171, ptr %281, align 8 + %282 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %275, i64 6 + store %"github.com/goplus/llgo/internal/abi.StructField" %181, ptr %282, align 8 + %283 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %275, i64 7 + store %"github.com/goplus/llgo/internal/abi.StructField" %239, ptr %283, align 8 + %284 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %275, i64 8 + store %"github.com/goplus/llgo/internal/abi.StructField" %250, ptr %284, align 8 + %285 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %275, i64 9 + store %"github.com/goplus/llgo/internal/abi.StructField" %260, ptr %285, align 8 + %286 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %275, i64 10 + store %"github.com/goplus/llgo/internal/abi.StructField" %270, ptr %286, align 8 + %287 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %288 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %287, i32 0, i32 0 + store ptr %275, ptr %288, align 8 + %289 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %287, i32 0, i32 1 + store i64 11, ptr %289, align 4 + %290 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %287, i32 0, i32 2 + store i64 11, ptr %290, align 4 + %291 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %287, align 8 + %292 = call ptr @"github.com/goplus/llgo/internal/runtime.Struct"(%"github.com/goplus/llgo/internal/runtime.String" %274, i64 72, %"github.com/goplus/llgo/internal/runtime.Slice" %291) + store ptr %292, ptr @"main.struct$13P_TvKNXommvK6tKt3eRNnJqTcPEFYrHagFiHeRpb0", align 8 + %293 = load ptr, ptr @"main.struct$13P_TvKNXommvK6tKt3eRNnJqTcPEFYrHagFiHeRpb0", align 8 + br i1 %92, label %_llgo_11, label %_llgo_12 -_llgo_12: ; preds = %_llgo_11, %_llgo_10 - %263 = load ptr, ptr @"_llgo_struct$13P_TvKNXommvK6tKt3eRNnJqTcPEFYrHagFiHeRpb0", align 8 - br i1 %69, label %_llgo_13, label %_llgo_14 - -_llgo_13: ; preds = %_llgo_12 - %264 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %265 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %264, i32 0, i32 0 - store ptr @19, ptr %265, align 8 - %266 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %264, i32 0, i32 1 - store i64 5, ptr %266, align 4 - %267 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %264, align 8 - %268 = load ptr, ptr @_llgo_int, align 8 - %269 = icmp eq ptr %268, null - br i1 %269, label %_llgo_15, label %_llgo_16 - -_llgo_14: ; preds = %_llgo_104, %_llgo_12 +_llgo_11: ; preds = %_llgo_10 + %294 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %295 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %294, i32 0, i32 0 + store ptr @22, ptr %295, align 8 + %296 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %294, i32 0, i32 1 + store i64 5, ptr %296, align 4 + %297 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %294, align 8 + %298 = load ptr, ptr @_llgo_int, align 8 + %299 = icmp eq ptr %298, null + br i1 %299, label %_llgo_13, label %_llgo_14 + +_llgo_12: ; preds = %_llgo_106, %_llgo_10 ret void -_llgo_15: ; preds = %_llgo_13 - %270 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 34) - store ptr %270, ptr @_llgo_int, align 8 +_llgo_13: ; preds = %_llgo_11 + %300 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 34) + store ptr %300, ptr @_llgo_int, align 8 + br label %_llgo_14 + +_llgo_14: ; preds = %_llgo_13, %_llgo_11 + %301 = load ptr, ptr @_llgo_int, align 8 + %302 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 + %303 = icmp eq ptr %302, null + br i1 %303, label %_llgo_15, label %_llgo_16 + +_llgo_15: ; preds = %_llgo_14 + %304 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 0) + %305 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %306 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %305, i32 0, i32 0 + store ptr %304, ptr %306, align 8 + %307 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %305, i32 0, i32 1 + store i64 0, ptr %307, align 4 + %308 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %305, i32 0, i32 2 + store i64 0, ptr %308, align 4 + %309 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %305, align 8 + %310 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 8) + %311 = getelementptr ptr, ptr %310, i64 0 + store ptr %301, ptr %311, align 8 + %312 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %313 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %312, i32 0, i32 0 + store ptr %310, ptr %313, align 8 + %314 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %312, i32 0, i32 1 + store i64 1, ptr %314, align 4 + %315 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %312, i32 0, i32 2 + store i64 1, ptr %315, align 4 + %316 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %312, align 8 + %317 = call ptr @"github.com/goplus/llgo/internal/runtime.Func"(%"github.com/goplus/llgo/internal/runtime.Slice" %309, %"github.com/goplus/llgo/internal/runtime.Slice" %316, i1 false) + call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %317) + store ptr %317, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 br label %_llgo_16 -_llgo_16: ; preds = %_llgo_15, %_llgo_13 - %271 = load ptr, ptr @_llgo_int, align 8 - %272 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 - %273 = icmp eq ptr %272, null - br i1 %273, label %_llgo_17, label %_llgo_18 +_llgo_16: ; preds = %_llgo_15, %_llgo_14 + %318 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 + %319 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %320 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %319, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %297, ptr %320, align 8 + %321 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %319, i32 0, i32 1 + store ptr %318, ptr %321, align 8 + %322 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %319, i32 0, i32 2 + store ptr @"github.com/goplus/llgo/internal/abi.(*Type).Align", ptr %322, align 8 + %323 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %319, i32 0, i32 3 + store ptr @"github.com/goplus/llgo/internal/abi.(*Type).Align", ptr %323, align 8 + %324 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %319, align 8 + %325 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %326 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %325, i32 0, i32 0 + store ptr @23, ptr %326, align 8 + %327 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %325, i32 0, i32 1 + store i64 9, ptr %327, align 4 + %328 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %325, align 8 + %329 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %330 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %329, i32 0, i32 0 + store ptr @24, ptr %330, align 8 + %331 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %329, i32 0, i32 1 + store i64 45, ptr %331, align 4 + %332 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %329, align 8 + %333 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(%"github.com/goplus/llgo/internal/runtime.String" %332, i64 25, i64 104, i64 0, i64 18) + %334 = load ptr, ptr @"_llgo_github.com/goplus/llgo/internal/abi.ArrayType", align 8 + %335 = icmp eq ptr %334, null + br i1 %335, label %_llgo_17, label %_llgo_18 _llgo_17: ; preds = %_llgo_16 - %274 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 0) - %275 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %276 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %275, i32 0, i32 0 - store ptr %274, ptr %276, align 8 - %277 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %275, i32 0, i32 1 - store i64 0, ptr %277, align 4 - %278 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %275, i32 0, i32 2 - store i64 0, ptr %278, align 4 - %279 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %275, align 8 - %280 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 8) - %281 = getelementptr ptr, ptr %280, i64 0 - store ptr %271, 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 %280, ptr %283, align 8 - %284 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %282, i32 0, i32 1 - store i64 1, ptr %284, align 4 - %285 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %282, i32 0, i32 2 - store i64 1, ptr %285, align 4 - %286 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %282, align 8 - %287 = call ptr @"github.com/goplus/llgo/internal/runtime.Func"(%"github.com/goplus/llgo/internal/runtime.Slice" %279, %"github.com/goplus/llgo/internal/runtime.Slice" %286, i1 false) - call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %287) - store ptr %287, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 + store ptr %333, ptr @"_llgo_github.com/goplus/llgo/internal/abi.ArrayType", align 8 br label %_llgo_18 _llgo_18: ; preds = %_llgo_17, %_llgo_16 - %288 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 - %289 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 - %290 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %289, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %267, ptr %290, align 8 - %291 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %289, i32 0, i32 1 - store ptr %288, ptr %291, align 8 - %292 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %289, i32 0, i32 2 - store ptr @"github.com/goplus/llgo/internal/abi.(*Type).Align", ptr %292, align 8 - %293 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %289, i32 0, i32 3 - store ptr @"github.com/goplus/llgo/internal/abi.(*Type).Align", ptr %293, align 8 - %294 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %289, align 8 - %295 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %296 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %295, i32 0, i32 0 - store ptr @20, ptr %296, align 8 - %297 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %295, i32 0, i32 1 - store i64 9, ptr %297, align 4 - %298 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %295, align 8 - %299 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(i64 25, i64 104, i64 0, i64 16) - %300 = load ptr, ptr @"_llgo_github.com/goplus/llgo/internal/abi.ArrayType", align 8 - %301 = icmp eq ptr %300, null - br i1 %301, label %_llgo_19, label %_llgo_20 + %336 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %337 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %336, i32 0, i32 0 + store ptr @1, ptr %337, align 8 + %338 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %336, i32 0, i32 1 + store i64 40, ptr %338, align 4 + %339 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %336, align 8 + %340 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(%"github.com/goplus/llgo/internal/runtime.String" %339, i64 25, i64 80, i64 0, i64 20) + %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 @1, ptr %342, align 8 + %343 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %341, i32 0, i32 1 + store i64 40, ptr %343, align 4 + %344 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %341, align 8 + %345 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(%"github.com/goplus/llgo/internal/runtime.String" %344, i64 25, i64 80, i64 0, i64 20) + %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 @1, ptr %347, align 8 + %348 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %346, i32 0, i32 1 + store i64 40, 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.NewNamed"(%"github.com/goplus/llgo/internal/runtime.String" %349, i64 25, i64 80, i64 0, i64 20) + %351 = load ptr, ptr @"_llgo_struct$eLreYy_0Tx9Ip-rgTmC6_uCvf27HVl_zBUTfLS0WYaY", align 8 + %352 = icmp eq ptr %351, null + br i1 %352, label %_llgo_19, label %_llgo_20 _llgo_19: ; preds = %_llgo_18 - store ptr %299, ptr @"_llgo_github.com/goplus/llgo/internal/abi.ArrayType", 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 @25, ptr %354, align 8 + %355 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %353, i32 0, i32 1 + store i64 4, ptr %355, align 4 + %356 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %353, align 8 + %357 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %358 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %357, i32 0, i32 0 + store ptr null, ptr %358, align 8 + %359 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %357, i32 0, i32 1 + store i64 0, ptr %359, align 4 + %360 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %357, align 8 + %361 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %356, ptr %340, i64 0, %"github.com/goplus/llgo/internal/runtime.String" %360, i1 true) + %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 @26, ptr %363, align 8 + %364 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %362, i32 0, i32 1 + store i64 4, ptr %364, align 4 + %365 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %362, 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 null, ptr %367, align 8 + %368 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %366, i32 0, i32 1 + store i64 0, ptr %368, align 4 + %369 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %366, align 8 + %370 = call ptr @"github.com/goplus/llgo/internal/runtime.PointerTo"(ptr %345) + %371 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %365, ptr %370, i64 72, %"github.com/goplus/llgo/internal/runtime.String" %369, i1 false) + %372 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %373 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %372, i32 0, i32 0 + store ptr @27, ptr %373, align 8 + %374 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %372, i32 0, i32 1 + store i64 5, ptr %374, align 4 + %375 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %372, align 8 + %376 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %377 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %376, i32 0, i32 0 + store ptr null, ptr %377, align 8 + %378 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %376, i32 0, i32 1 + store i64 0, ptr %378, align 4 + %379 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %376, align 8 + %380 = call ptr @"github.com/goplus/llgo/internal/runtime.PointerTo"(ptr %350) + %381 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %375, ptr %380, i64 80, %"github.com/goplus/llgo/internal/runtime.String" %379, i1 false) + %382 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %383 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %382, i32 0, i32 0 + store ptr @28, ptr %383, align 8 + %384 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %382, i32 0, i32 1 + store i64 3, ptr %384, align 4 + %385 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %382, align 8 + %386 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %387 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %386, i32 0, i32 0 + store ptr null, ptr %387, align 8 + %388 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %386, i32 0, i32 1 + store i64 0, ptr %388, align 4 + %389 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %386, align 8 + %390 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 44) + %391 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %385, ptr %390, i64 88, %"github.com/goplus/llgo/internal/runtime.String" %389, i1 false) + %392 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %393 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %392, i32 0, i32 0 + store ptr @6, ptr %393, align 8 + %394 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %392, i32 0, i32 1 + store i64 4, ptr %394, align 4 + %395 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %392, align 8 + %396 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 224) + %397 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %396, i64 0 + store %"github.com/goplus/llgo/internal/abi.StructField" %361, ptr %397, align 8 + %398 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %396, i64 1 + store %"github.com/goplus/llgo/internal/abi.StructField" %371, ptr %398, align 8 + %399 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %396, i64 2 + store %"github.com/goplus/llgo/internal/abi.StructField" %381, ptr %399, align 8 + %400 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %396, i64 3 + store %"github.com/goplus/llgo/internal/abi.StructField" %391, 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 %396, ptr %402, align 8 + %403 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %401, i32 0, i32 1 + store i64 4, ptr %403, align 4 + %404 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %401, i32 0, i32 2 + store i64 4, 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.Struct"(%"github.com/goplus/llgo/internal/runtime.String" %395, i64 96, %"github.com/goplus/llgo/internal/runtime.Slice" %405) + store ptr %406, ptr @"_llgo_struct$eLreYy_0Tx9Ip-rgTmC6_uCvf27HVl_zBUTfLS0WYaY", align 8 br label %_llgo_20 _llgo_20: ; preds = %_llgo_19, %_llgo_18 - %302 = load ptr, ptr @"_llgo_struct$eLreYy_0Tx9Ip-rgTmC6_uCvf27HVl_zBUTfLS0WYaY", align 8 - %303 = icmp eq ptr %302, null - br i1 %303, label %_llgo_21, label %_llgo_22 + %407 = load ptr, ptr @"_llgo_struct$eLreYy_0Tx9Ip-rgTmC6_uCvf27HVl_zBUTfLS0WYaY", align 8 + br i1 %335, label %_llgo_21, label %_llgo_22 _llgo_21: ; preds = %_llgo_20 - %304 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %305 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %304, i32 0, i32 0 - store ptr @21, ptr %305, align 8 - %306 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %304, i32 0, i32 1 - store i64 4, ptr %306, align 4 - %307 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %304, align 8 - %308 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %309 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %308, i32 0, i32 0 - store ptr null, ptr %309, align 8 - %310 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %308, i32 0, i32 1 - store i64 0, ptr %310, align 4 - %311 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %308, align 8 - %312 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %307, ptr %3, i64 0, %"github.com/goplus/llgo/internal/runtime.String" %311, i1 true) - %313 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %314 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %313, i32 0, i32 0 - store ptr @22, ptr %314, align 8 - %315 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %313, i32 0, i32 1 - store i64 4, ptr %315, align 4 - %316 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %313, align 8 - %317 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %318 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %317, i32 0, i32 0 - store ptr null, ptr %318, align 8 - %319 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %317, i32 0, i32 1 - store i64 0, ptr %319, align 4 - %320 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %317, align 8 - %321 = call ptr @"github.com/goplus/llgo/internal/runtime.PointerTo"(ptr %3) - %322 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %316, ptr %321, i64 72, %"github.com/goplus/llgo/internal/runtime.String" %320, i1 false) - %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 @23, ptr %324, align 8 - %325 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %323, i32 0, i32 1 - store i64 5, ptr %325, align 4 - %326 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %323, align 8 - %327 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %328 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %327, i32 0, i32 0 - store ptr null, ptr %328, align 8 - %329 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %327, i32 0, i32 1 - store i64 0, ptr %329, align 4 - %330 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %327, align 8 - %331 = call ptr @"github.com/goplus/llgo/internal/runtime.PointerTo"(ptr %3) - %332 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %326, ptr %331, i64 80, %"github.com/goplus/llgo/internal/runtime.String" %330, i1 false) - %333 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %334 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %333, i32 0, i32 0 - store ptr @24, ptr %334, align 8 - %335 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %333, i32 0, i32 1 - store i64 3, ptr %335, align 4 - %336 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %333, align 8 - %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 null, ptr %338, align 8 - %339 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %337, i32 0, i32 1 - store i64 0, ptr %339, align 4 - %340 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %337, align 8 - %341 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 44) - %342 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %336, ptr %341, i64 88, %"github.com/goplus/llgo/internal/runtime.String" %340, i1 false) - %343 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %344 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %343, i32 0, i32 0 - store ptr @4, ptr %344, align 8 - %345 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %343, i32 0, i32 1 - store i64 4, ptr %345, align 4 - %346 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %343, align 8 - %347 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 224) - %348 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %347, i64 0 - store %"github.com/goplus/llgo/internal/abi.StructField" %312, ptr %348, align 8 - %349 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %347, i64 1 - store %"github.com/goplus/llgo/internal/abi.StructField" %322, ptr %349, align 8 - %350 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %347, i64 2 - store %"github.com/goplus/llgo/internal/abi.StructField" %332, ptr %350, align 8 - %351 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %347, i64 3 - store %"github.com/goplus/llgo/internal/abi.StructField" %342, ptr %351, align 8 - %352 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %353 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %352, i32 0, i32 0 - store ptr %347, ptr %353, align 8 - %354 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %352, i32 0, i32 1 - store i64 4, ptr %354, align 4 - %355 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %352, i32 0, i32 2 - store i64 4, ptr %355, align 4 - %356 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %352, align 8 - %357 = call ptr @"github.com/goplus/llgo/internal/runtime.Struct"(%"github.com/goplus/llgo/internal/runtime.String" %346, i64 96, %"github.com/goplus/llgo/internal/runtime.Slice" %356) - store ptr %357, ptr @"_llgo_struct$eLreYy_0Tx9Ip-rgTmC6_uCvf27HVl_zBUTfLS0WYaY", align 8 - br label %_llgo_22 + %408 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %409 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %408, i32 0, i32 0 + store ptr @22, ptr %409, align 8 + %410 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %408, i32 0, i32 1 + store i64 5, ptr %410, align 4 + %411 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %408, align 8 + %412 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 + %413 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %414 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %413, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %411, ptr %414, align 8 + %415 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %413, i32 0, i32 1 + store ptr %412, ptr %415, align 8 + %416 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %413, i32 0, i32 2 + store ptr @"github.com/goplus/llgo/internal/abi.(*ArrayType).Align", ptr %416, align 8 + %417 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %413, i32 0, i32 3 + store ptr @"github.com/goplus/llgo/internal/abi.(*ArrayType).Align", ptr %417, align 8 + %418 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %413, align 8 + %419 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %420 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %419, i32 0, i32 0 + store ptr @23, ptr %420, align 8 + %421 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %419, i32 0, i32 1 + store i64 9, ptr %421, align 4 + %422 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %419, align 8 + %423 = load ptr, ptr @"_llgo_func$CsVqlCxhoEcIvPD5BSBukfSiD9C7Ic5_Gf32MLbCWB4", align 8 + %424 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %425 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %424, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %422, ptr %425, align 8 + %426 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %424, i32 0, i32 1 + store ptr %423, ptr %426, align 8 + %427 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %424, i32 0, i32 2 + store ptr @"github.com/goplus/llgo/internal/abi.(*ArrayType).ArrayType", ptr %427, align 8 + %428 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %424, i32 0, i32 3 + store ptr @"github.com/goplus/llgo/internal/abi.(*ArrayType).ArrayType", ptr %428, align 8 + %429 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %424, align 8 + %430 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %431 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %430, i32 0, i32 0 + store ptr @29, ptr %431, align 8 + %432 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %430, i32 0, i32 1 + store i64 7, ptr %432, align 4 + %433 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %430, align 8 + %434 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %435 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %434, i32 0, i32 0 + store ptr @30, ptr %435, align 8 + %436 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %434, i32 0, i32 1 + store i64 43, ptr %436, align 4 + %437 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %434, align 8 + %438 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(%"github.com/goplus/llgo/internal/runtime.String" %437, i64 2, i64 8, i64 0, i64 0) + %439 = load ptr, ptr @"_llgo_github.com/goplus/llgo/internal/abi.ChanDir", align 8 + %440 = icmp eq ptr %439, null + br i1 %440, label %_llgo_23, label %_llgo_24 + +_llgo_22: ; preds = %_llgo_102, %_llgo_20 + %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 @24, ptr %442, align 8 + %443 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %441, i32 0, i32 1 + store i64 45, ptr %443, align 4 + %444 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %441, align 8 + %445 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(%"github.com/goplus/llgo/internal/runtime.String" %444, i64 25, i64 104, i64 0, i64 18) + %446 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/internal/abi.ArrayType", align 8 + %447 = icmp eq ptr %446, null + br i1 %447, label %_llgo_103, label %_llgo_104 + +_llgo_23: ; preds = %_llgo_21 + store ptr %438, ptr @"_llgo_github.com/goplus/llgo/internal/abi.ChanDir", align 8 + br label %_llgo_24 -_llgo_22: ; preds = %_llgo_21, %_llgo_20 - %358 = load ptr, ptr @"_llgo_struct$eLreYy_0Tx9Ip-rgTmC6_uCvf27HVl_zBUTfLS0WYaY", align 8 - br i1 %301, label %_llgo_23, label %_llgo_24 - -_llgo_23: ; preds = %_llgo_22 - %359 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %360 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %359, i32 0, i32 0 - store ptr @19, ptr %360, align 8 - %361 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %359, i32 0, i32 1 - store i64 5, ptr %361, align 4 - %362 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %359, align 8 - %363 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 - %364 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 - %365 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %364, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %362, ptr %365, align 8 - %366 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %364, i32 0, i32 1 - store ptr %363, ptr %366, align 8 - %367 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %364, i32 0, i32 2 - store ptr @"github.com/goplus/llgo/internal/abi.(*ArrayType).Align", ptr %367, align 8 - %368 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %364, i32 0, i32 3 - store ptr @"github.com/goplus/llgo/internal/abi.(*ArrayType).Align", ptr %368, align 8 - %369 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %364, 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 @20, ptr %371, align 8 - %372 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %370, i32 0, i32 1 - store i64 9, ptr %372, align 4 - %373 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %370, align 8 - %374 = load ptr, ptr @"_llgo_func$CsVqlCxhoEcIvPD5BSBukfSiD9C7Ic5_Gf32MLbCWB4", align 8 - %375 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 - %376 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %375, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %373, ptr %376, align 8 - %377 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %375, i32 0, i32 1 - store ptr %374, ptr %377, align 8 - %378 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %375, i32 0, i32 2 - store ptr @"github.com/goplus/llgo/internal/abi.(*ArrayType).ArrayType", ptr %378, align 8 - %379 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %375, i32 0, i32 3 - store ptr @"github.com/goplus/llgo/internal/abi.(*ArrayType).ArrayType", ptr %379, align 8 - %380 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %375, align 8 - %381 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %382 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %381, i32 0, i32 0 - store ptr @25, ptr %382, align 8 - %383 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %381, i32 0, i32 1 - store i64 6, ptr %383, align 4 - %384 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %381, align 8 - %385 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/internal/abi.Type", align 8 - %386 = icmp eq ptr %385, null - br i1 %386, label %_llgo_25, label %_llgo_26 - -_llgo_24: ; preds = %_llgo_100, %_llgo_22 - %387 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/internal/abi.ArrayType", align 8 - %388 = icmp eq ptr %387, null - br i1 %388, label %_llgo_101, label %_llgo_102 - -_llgo_25: ; preds = %_llgo_23 - %389 = call ptr @"github.com/goplus/llgo/internal/runtime.PointerTo"(ptr %3) - call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %389) - store ptr %389, ptr @"*_llgo_github.com/goplus/llgo/internal/abi.Type", align 8 +_llgo_24: ; preds = %_llgo_23, %_llgo_21 + %448 = load ptr, ptr @_llgo_int, align 8 + br i1 %440, label %_llgo_25, label %_llgo_26 + +_llgo_25: ; preds = %_llgo_24 + %449 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %450 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %449, i32 0, i32 0 + store ptr @31, ptr %450, align 8 + %451 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %449, i32 0, i32 1 + store i64 35, ptr %451, align 4 + %452 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %449, align 8 + %453 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %454 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %453, i32 0, i32 0 + store ptr @29, ptr %454, align 8 + %455 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %453, i32 0, i32 1 + store i64 7, ptr %455, align 4 + %456 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %453, align 8 + call void @"github.com/goplus/llgo/internal/runtime.InitNamed"(ptr %438, %"github.com/goplus/llgo/internal/runtime.String" %452, %"github.com/goplus/llgo/internal/runtime.String" %456, ptr %448, { ptr, i64, i64 } zeroinitializer, { ptr, i64, i64 } zeroinitializer) br label %_llgo_26 -_llgo_26: ; preds = %_llgo_25, %_llgo_23 - %390 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/internal/abi.Type", align 8 - %391 = load ptr, ptr @"_llgo_func$4-mqItKfDlL0CgVKnUxoresYgh6zW1WSlZYZSsVzLRo", align 8 - %392 = icmp eq ptr %391, null - br i1 %392, label %_llgo_27, label %_llgo_28 +_llgo_26: ; preds = %_llgo_25, %_llgo_24 + %457 = load ptr, ptr @"_llgo_github.com/goplus/llgo/internal/abi.ChanDir", align 8 + %458 = load ptr, ptr @"_llgo_func$TrNr0CVWj6qegOngzWbt2Jl7pr7IBJ5gOmgUf2ieIi4", align 8 + %459 = icmp eq ptr %458, null + br i1 %459, label %_llgo_27, label %_llgo_28 _llgo_27: ; preds = %_llgo_26 - %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 %390, 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) - call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %406) - store ptr %406, ptr @"_llgo_func$4-mqItKfDlL0CgVKnUxoresYgh6zW1WSlZYZSsVzLRo", align 8 + %460 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 0) + %461 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %462 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %461, i32 0, i32 0 + store ptr %460, ptr %462, align 8 + %463 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %461, i32 0, i32 1 + store i64 0, ptr %463, align 4 + %464 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %461, i32 0, i32 2 + store i64 0, ptr %464, align 4 + %465 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %461, align 8 + %466 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 8) + %467 = getelementptr ptr, ptr %466, i64 0 + store ptr %457, ptr %467, align 8 + %468 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %469 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %468, i32 0, i32 0 + store ptr %466, ptr %469, align 8 + %470 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %468, i32 0, i32 1 + store i64 1, ptr %470, align 4 + %471 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %468, i32 0, i32 2 + store i64 1, ptr %471, align 4 + %472 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %468, align 8 + %473 = call ptr @"github.com/goplus/llgo/internal/runtime.Func"(%"github.com/goplus/llgo/internal/runtime.Slice" %465, %"github.com/goplus/llgo/internal/runtime.Slice" %472, i1 false) + call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %473) + store ptr %473, ptr @"_llgo_func$TrNr0CVWj6qegOngzWbt2Jl7pr7IBJ5gOmgUf2ieIi4", align 8 br label %_llgo_28 _llgo_28: ; preds = %_llgo_27, %_llgo_26 - %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" %384, 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 @26, 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 @27, 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 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(i64 25, i64 128, i64 0, i64 19) - %430 = load ptr, ptr @"_llgo_github.com/goplus/llgo/internal/abi.FuncType", align 8 - %431 = icmp eq ptr %430, null - br i1 %431, label %_llgo_29, label %_llgo_30 + %474 = load ptr, ptr @"_llgo_func$TrNr0CVWj6qegOngzWbt2Jl7pr7IBJ5gOmgUf2ieIi4", align 8 + %475 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %476 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %475, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %433, ptr %476, align 8 + %477 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %475, i32 0, i32 1 + store ptr %474, ptr %477, align 8 + %478 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %475, i32 0, i32 2 + store ptr @"github.com/goplus/llgo/internal/abi.(*ArrayType).ChanDir", ptr %478, align 8 + %479 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %475, i32 0, i32 3 + store ptr @"github.com/goplus/llgo/internal/abi.(*ArrayType).ChanDir", ptr %479, align 8 + %480 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %475, align 8 + %481 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %482 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %481, i32 0, i32 0 + store ptr @32, ptr %482, align 8 + %483 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %481, i32 0, i32 1 + store i64 6, ptr %483, align 4 + %484 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %481, align 8 + %485 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %486 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %485, i32 0, i32 0 + store ptr @1, ptr %486, align 8 + %487 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %485, i32 0, i32 1 + store i64 40, ptr %487, align 4 + %488 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %485, align 8 + %489 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(%"github.com/goplus/llgo/internal/runtime.String" %488, i64 25, i64 80, i64 0, i64 20) + %490 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/internal/abi.Type", align 8 + %491 = icmp eq ptr %490, null + br i1 %491, label %_llgo_29, label %_llgo_30 _llgo_29: ; preds = %_llgo_28 - store ptr %429, ptr @"_llgo_github.com/goplus/llgo/internal/abi.FuncType", align 8 + %492 = call ptr @"github.com/goplus/llgo/internal/runtime.PointerTo"(ptr %489) + call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %492) + store ptr %492, ptr @"*_llgo_github.com/goplus/llgo/internal/abi.Type", align 8 br label %_llgo_30 _llgo_30: ; preds = %_llgo_29, %_llgo_28 - %432 = load ptr, ptr @"_llgo_struct$wRu7InfmQeSkq7akLN3soDNninnS1dQajawdYvmHbzw", align 8 - %433 = icmp eq ptr %432, null - br i1 %433, label %_llgo_31, label %_llgo_32 + %493 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/internal/abi.Type", align 8 + %494 = load ptr, ptr @"_llgo_func$4-mqItKfDlL0CgVKnUxoresYgh6zW1WSlZYZSsVzLRo", align 8 + %495 = icmp eq ptr %494, null + br i1 %495, label %_llgo_31, label %_llgo_32 _llgo_31: ; preds = %_llgo_30 - %434 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %435 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %434, i32 0, i32 0 - store ptr @21, ptr %435, align 8 - %436 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %434, i32 0, i32 1 - store i64 4, ptr %436, align 4 - %437 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %434, align 8 - %438 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %439 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %438, i32 0, i32 0 - store ptr null, ptr %439, align 8 - %440 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %438, i32 0, i32 1 - store i64 0, ptr %440, align 4 - %441 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %438, align 8 - %442 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %437, ptr %3, i64 0, %"github.com/goplus/llgo/internal/runtime.String" %441, i1 true) - %443 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %444 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %443, i32 0, i32 0 - store ptr @28, ptr %444, align 8 - %445 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %443, i32 0, i32 1 - store i64 2, ptr %445, align 4 - %446 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %443, align 8 - %447 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %448 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %447, i32 0, i32 0 - store ptr null, ptr %448, align 8 - %449 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %447, i32 0, i32 1 - store i64 0, ptr %449, align 4 - %450 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %447, align 8 - %451 = call ptr @"github.com/goplus/llgo/internal/runtime.PointerTo"(ptr %3) - %452 = call ptr @"github.com/goplus/llgo/internal/runtime.SliceOf"(ptr %451) - %453 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %446, ptr %452, i64 72, %"github.com/goplus/llgo/internal/runtime.String" %450, i1 false) - %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 @29, ptr %455, align 8 - %456 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %454, i32 0, i32 1 - store i64 3, ptr %456, align 4 - %457 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %454, align 8 - %458 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %459 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %458, i32 0, i32 0 - store ptr null, ptr %459, align 8 - %460 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %458, i32 0, i32 1 - store i64 0, ptr %460, align 4 - %461 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %458, align 8 - %462 = call ptr @"github.com/goplus/llgo/internal/runtime.PointerTo"(ptr %3) - %463 = call ptr @"github.com/goplus/llgo/internal/runtime.SliceOf"(ptr %462) - %464 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %457, ptr %463, i64 96, %"github.com/goplus/llgo/internal/runtime.String" %461, i1 false) - %465 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %466 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %465, i32 0, i32 0 - store ptr @4, ptr %466, align 8 - %467 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %465, i32 0, i32 1 - store i64 4, ptr %467, align 4 - %468 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %465, align 8 - %469 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 168) - %470 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %469, i64 0 - store %"github.com/goplus/llgo/internal/abi.StructField" %442, ptr %470, align 8 - %471 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %469, i64 1 - store %"github.com/goplus/llgo/internal/abi.StructField" %453, ptr %471, align 8 - %472 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %469, i64 2 - store %"github.com/goplus/llgo/internal/abi.StructField" %464, ptr %472, align 8 - %473 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %474 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %473, i32 0, i32 0 - store ptr %469, ptr %474, align 8 - %475 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %473, i32 0, i32 1 - store i64 3, ptr %475, align 4 - %476 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %473, i32 0, i32 2 - store i64 3, ptr %476, align 4 - %477 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %473, align 8 - %478 = call ptr @"github.com/goplus/llgo/internal/runtime.Struct"(%"github.com/goplus/llgo/internal/runtime.String" %468, i64 120, %"github.com/goplus/llgo/internal/runtime.Slice" %477) - store ptr %478, ptr @"_llgo_struct$wRu7InfmQeSkq7akLN3soDNninnS1dQajawdYvmHbzw", align 8 + %496 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 0) + %497 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %498 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %497, i32 0, i32 0 + store ptr %496, ptr %498, align 8 + %499 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %497, i32 0, i32 1 + store i64 0, ptr %499, align 4 + %500 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %497, i32 0, i32 2 + store i64 0, ptr %500, align 4 + %501 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %497, align 8 + %502 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 8) + %503 = getelementptr ptr, ptr %502, i64 0 + store ptr %493, ptr %503, align 8 + %504 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %505 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %504, i32 0, i32 0 + store ptr %502, ptr %505, align 8 + %506 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %504, i32 0, i32 1 + store i64 1, ptr %506, align 4 + %507 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %504, i32 0, i32 2 + store i64 1, ptr %507, align 4 + %508 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %504, align 8 + %509 = call ptr @"github.com/goplus/llgo/internal/runtime.Func"(%"github.com/goplus/llgo/internal/runtime.Slice" %501, %"github.com/goplus/llgo/internal/runtime.Slice" %508, i1 false) + call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %509) + store ptr %509, ptr @"_llgo_func$4-mqItKfDlL0CgVKnUxoresYgh6zW1WSlZYZSsVzLRo", align 8 br label %_llgo_32 _llgo_32: ; preds = %_llgo_31, %_llgo_30 - %479 = load ptr, ptr @"_llgo_struct$wRu7InfmQeSkq7akLN3soDNninnS1dQajawdYvmHbzw", align 8 - br i1 %431, label %_llgo_33, label %_llgo_34 + %510 = load ptr, ptr @"_llgo_func$4-mqItKfDlL0CgVKnUxoresYgh6zW1WSlZYZSsVzLRo", align 8 + %511 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %512 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %511, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %484, ptr %512, align 8 + %513 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %511, i32 0, i32 1 + store ptr %510, ptr %513, align 8 + %514 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %511, i32 0, i32 2 + store ptr @"github.com/goplus/llgo/internal/abi.(*ArrayType).Common", ptr %514, align 8 + %515 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %511, i32 0, i32 3 + store ptr @"github.com/goplus/llgo/internal/abi.(*ArrayType).Common", ptr %515, align 8 + %516 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %511, align 8 + %517 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %518 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %517, i32 0, i32 0 + store ptr @33, ptr %518, align 8 + %519 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %517, i32 0, i32 1 + store i64 10, ptr %519, align 4 + %520 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %517, align 8 + %521 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 + %522 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %523 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %522, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %520, ptr %523, align 8 + %524 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %522, i32 0, i32 1 + store ptr %521, ptr %524, align 8 + %525 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %522, i32 0, i32 2 + store ptr @"github.com/goplus/llgo/internal/abi.(*ArrayType).FieldAlign", ptr %525, align 8 + %526 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %522, i32 0, i32 3 + store ptr @"github.com/goplus/llgo/internal/abi.(*ArrayType).FieldAlign", ptr %526, align 8 + %527 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %522, align 8 + %528 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %529 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %528, i32 0, i32 0 + store ptr @34, ptr %529, align 8 + %530 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %528, i32 0, i32 1 + store i64 8, ptr %530, align 4 + %531 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %528, align 8 + %532 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %533 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %532, i32 0, i32 0 + store ptr @35, ptr %533, align 8 + %534 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %532, i32 0, i32 1 + store i64 44, ptr %534, align 4 + %535 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %532, align 8 + %536 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(%"github.com/goplus/llgo/internal/runtime.String" %535, i64 25, i64 128, i64 0, i64 21) + %537 = load ptr, ptr @"_llgo_github.com/goplus/llgo/internal/abi.FuncType", align 8 + %538 = icmp eq ptr %537, null + br i1 %538, label %_llgo_33, label %_llgo_34 _llgo_33: ; preds = %_llgo_32 - %480 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %481 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %480, i32 0, i32 0 - store ptr @19, ptr %481, align 8 - %482 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %480, i32 0, i32 1 - store i64 5, ptr %482, align 4 - %483 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %480, align 8 - %484 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 - %485 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 - %486 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %485, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %483, ptr %486, align 8 - %487 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %485, i32 0, i32 1 - store ptr %484, ptr %487, align 8 - %488 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %485, i32 0, i32 2 - store ptr @"github.com/goplus/llgo/internal/abi.(*FuncType).Align", ptr %488, align 8 - %489 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %485, i32 0, i32 3 - store ptr @"github.com/goplus/llgo/internal/abi.(*FuncType).Align", ptr %489, align 8 - %490 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %485, align 8 - %491 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %492 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %491, i32 0, i32 0 - store ptr @20, ptr %492, align 8 - %493 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %491, i32 0, i32 1 - store i64 9, ptr %493, align 4 - %494 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %491, align 8 - %495 = load ptr, ptr @"_llgo_func$CsVqlCxhoEcIvPD5BSBukfSiD9C7Ic5_Gf32MLbCWB4", align 8 - %496 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 - %497 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %496, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %494, ptr %497, align 8 - %498 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %496, i32 0, i32 1 - store ptr %495, ptr %498, align 8 - %499 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %496, i32 0, i32 2 - store ptr @"github.com/goplus/llgo/internal/abi.(*FuncType).ArrayType", ptr %499, align 8 - %500 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %496, i32 0, i32 3 - store ptr @"github.com/goplus/llgo/internal/abi.(*FuncType).ArrayType", ptr %500, align 8 - %501 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %496, align 8 - %502 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %503 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %502, i32 0, i32 0 - store ptr @25, ptr %503, align 8 - %504 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %502, i32 0, i32 1 - store i64 6, ptr %504, align 4 - %505 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %502, align 8 - %506 = load ptr, ptr @"_llgo_func$4-mqItKfDlL0CgVKnUxoresYgh6zW1WSlZYZSsVzLRo", align 8 - %507 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 - %508 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %507, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %505, ptr %508, align 8 - %509 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %507, i32 0, i32 1 - store ptr %506, ptr %509, align 8 - %510 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %507, i32 0, i32 2 - store ptr @"github.com/goplus/llgo/internal/abi.(*FuncType).Common", ptr %510, align 8 - %511 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %507, i32 0, i32 3 - store ptr @"github.com/goplus/llgo/internal/abi.(*FuncType).Common", ptr %511, align 8 - %512 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %507, 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 @22, ptr %514, align 8 - %515 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %513, i32 0, i32 1 - store i64 4, ptr %515, align 4 - %516 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %513, align 8 - %517 = load ptr, ptr @"_llgo_func$4-mqItKfDlL0CgVKnUxoresYgh6zW1WSlZYZSsVzLRo", align 8 - %518 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 - %519 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %518, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %516, ptr %519, align 8 - %520 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %518, i32 0, i32 1 - store ptr %517, ptr %520, align 8 - %521 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %518, i32 0, i32 2 - store ptr @"github.com/goplus/llgo/internal/abi.(*FuncType).Elem", ptr %521, align 8 - %522 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %518, i32 0, i32 3 - store ptr @"github.com/goplus/llgo/internal/abi.(*FuncType).Elem", ptr %522, align 8 - %523 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %518, align 8 - %524 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %525 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %524, i32 0, i32 0 - store ptr @26, ptr %525, align 8 - %526 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %524, i32 0, i32 1 - store i64 10, ptr %526, align 4 - %527 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %524, align 8 - %528 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 - %529 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 - %530 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %529, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %527, ptr %530, align 8 - %531 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %529, i32 0, i32 1 - store ptr %528, ptr %531, align 8 - %532 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %529, i32 0, i32 2 - store ptr @"github.com/goplus/llgo/internal/abi.(*FuncType).FieldAlign", ptr %532, align 8 - %533 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %529, i32 0, i32 3 - store ptr @"github.com/goplus/llgo/internal/abi.(*FuncType).FieldAlign", ptr %533, align 8 - %534 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %529, align 8 - %535 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %536 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %535, i32 0, i32 0 - store ptr @27, ptr %536, align 8 - %537 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %535, i32 0, i32 1 - store i64 8, ptr %537, align 4 - %538 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %535, align 8 - %539 = load ptr, ptr @"_llgo_func$DsoxgOnxqV7tLvokF3AA14v1gtHsHaThoC8Q_XGcQww", align 8 - %540 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 - %541 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %540, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %538, ptr %541, align 8 - %542 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %540, i32 0, i32 1 - store ptr %539, ptr %542, align 8 - %543 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %540, i32 0, i32 2 - store ptr @"github.com/goplus/llgo/internal/abi.(*FuncType).FuncType", ptr %543, align 8 - %544 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %540, i32 0, i32 3 - store ptr @"github.com/goplus/llgo/internal/abi.(*FuncType).FuncType", ptr %544, align 8 - %545 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %540, align 8 - %546 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %547 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %546, i32 0, i32 0 - store ptr @30, ptr %547, align 8 - %548 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %546, i32 0, i32 1 - store i64 7, ptr %548, align 4 - %549 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %546, align 8 - %550 = load ptr, ptr @_llgo_bool, align 8 - %551 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 - %552 = icmp eq ptr %551, null - br i1 %552, label %_llgo_35, label %_llgo_36 - -_llgo_34: ; preds = %_llgo_96, %_llgo_32 - %553 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/internal/abi.FuncType", align 8 - %554 = icmp eq ptr %553, null - br i1 %554, label %_llgo_97, label %_llgo_98 - -_llgo_35: ; preds = %_llgo_33 - %555 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 0) - %556 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %557 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %556, i32 0, i32 0 - store ptr %555, ptr %557, align 8 - %558 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %556, i32 0, i32 1 - store i64 0, ptr %558, align 4 - %559 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %556, i32 0, i32 2 - store i64 0, ptr %559, align 4 - %560 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %556, align 8 - %561 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 8) - %562 = getelementptr ptr, ptr %561, i64 0 - store ptr %550, ptr %562, align 8 - %563 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %564 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %563, i32 0, i32 0 - store ptr %561, ptr %564, align 8 - %565 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %563, i32 0, i32 1 - store i64 1, ptr %565, align 4 - %566 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %563, i32 0, i32 2 - store i64 1, ptr %566, align 4 - %567 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %563, align 8 - %568 = call ptr @"github.com/goplus/llgo/internal/runtime.Func"(%"github.com/goplus/llgo/internal/runtime.Slice" %560, %"github.com/goplus/llgo/internal/runtime.Slice" %567, i1 false) - call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %568) - store ptr %568, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 - br label %_llgo_36 + store ptr %536, ptr @"_llgo_github.com/goplus/llgo/internal/abi.FuncType", align 8 + br label %_llgo_34 -_llgo_36: ; preds = %_llgo_35, %_llgo_33 - %569 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 - %570 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 - %571 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %570, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %549, ptr %571, align 8 - %572 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %570, i32 0, i32 1 - store ptr %569, ptr %572, align 8 - %573 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %570, i32 0, i32 2 - store ptr @"github.com/goplus/llgo/internal/abi.(*FuncType).HasName", ptr %573, align 8 - %574 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %570, i32 0, i32 3 - store ptr @"github.com/goplus/llgo/internal/abi.(*FuncType).HasName", ptr %574, align 8 - %575 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %570, align 8 +_llgo_34: ; preds = %_llgo_33, %_llgo_32 + %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 @1, ptr %540, align 8 + %541 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %539, i32 0, i32 1 + store i64 40, ptr %541, align 4 + %542 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %539, align 8 + %543 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(%"github.com/goplus/llgo/internal/runtime.String" %542, i64 25, i64 80, i64 0, i64 20) + %544 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %545 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %544, i32 0, i32 0 + store ptr @1, ptr %545, align 8 + %546 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %544, i32 0, i32 1 + store i64 40, ptr %546, align 4 + %547 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %544, align 8 + %548 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(%"github.com/goplus/llgo/internal/runtime.String" %547, i64 25, i64 80, i64 0, i64 20) + %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 @1, ptr %550, align 8 + %551 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %549, i32 0, i32 1 + store i64 40, ptr %551, align 4 + %552 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %549, align 8 + %553 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(%"github.com/goplus/llgo/internal/runtime.String" %552, i64 25, i64 80, i64 0, i64 20) + %554 = load ptr, ptr @"_llgo_struct$wRu7InfmQeSkq7akLN3soDNninnS1dQajawdYvmHbzw", align 8 + %555 = icmp eq ptr %554, null + br i1 %555, label %_llgo_35, label %_llgo_36 + +_llgo_35: ; preds = %_llgo_34 + %556 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %557 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %556, i32 0, i32 0 + store ptr @25, ptr %557, align 8 + %558 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %556, i32 0, i32 1 + store i64 4, ptr %558, align 4 + %559 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %556, align 8 + %560 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %561 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %560, i32 0, i32 0 + store ptr null, ptr %561, align 8 + %562 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %560, i32 0, i32 1 + store i64 0, ptr %562, align 4 + %563 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %560, align 8 + %564 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %559, ptr %543, i64 0, %"github.com/goplus/llgo/internal/runtime.String" %563, i1 true) + %565 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %566 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %565, i32 0, i32 0 + store ptr @36, ptr %566, align 8 + %567 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %565, i32 0, i32 1 + store i64 2, ptr %567, align 4 + %568 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %565, align 8 + %569 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %570 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %569, i32 0, i32 0 + store ptr null, ptr %570, align 8 + %571 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %569, i32 0, i32 1 + store i64 0, ptr %571, align 4 + %572 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %569, align 8 + %573 = call ptr @"github.com/goplus/llgo/internal/runtime.PointerTo"(ptr %548) + %574 = call ptr @"github.com/goplus/llgo/internal/runtime.SliceOf"(ptr %573) + %575 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %568, ptr %574, i64 72, %"github.com/goplus/llgo/internal/runtime.String" %572, i1 false) %576 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 %577 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %576, i32 0, i32 0 - store ptr @31, ptr %577, align 8 + store ptr @37, ptr %577, align 8 %578 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %576, i32 0, i32 1 - store i64 10, ptr %578, align 4 + store i64 3, ptr %578, align 4 %579 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %576, align 8 - %580 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 - %581 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 - %582 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %581, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %579, ptr %582, align 8 - %583 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %581, i32 0, i32 1 - store ptr %580, ptr %583, align 8 - %584 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %581, i32 0, i32 2 - store ptr @"github.com/goplus/llgo/internal/abi.(*FuncType).IfaceIndir", ptr %584, align 8 - %585 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %581, i32 0, i32 3 - store ptr @"github.com/goplus/llgo/internal/abi.(*FuncType).IfaceIndir", ptr %585, align 8 - %586 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %581, align 8 + %580 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %581 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %580, i32 0, i32 0 + store ptr null, ptr %581, align 8 + %582 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %580, i32 0, i32 1 + store i64 0, ptr %582, align 4 + %583 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %580, align 8 + %584 = call ptr @"github.com/goplus/llgo/internal/runtime.PointerTo"(ptr %553) + %585 = call ptr @"github.com/goplus/llgo/internal/runtime.SliceOf"(ptr %584) + %586 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %579, ptr %585, i64 96, %"github.com/goplus/llgo/internal/runtime.String" %583, i1 false) %587 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 %588 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %587, i32 0, i32 0 - store ptr @32, ptr %588, align 8 + store ptr @6, ptr %588, align 8 %589 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %587, i32 0, i32 1 - store i64 13, ptr %589, align 4 + store i64 4, ptr %589, align 4 %590 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %587, align 8 - %591 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(i64 25, i64 120, i64 0, i64 18) - %592 = load ptr, ptr @"_llgo_github.com/goplus/llgo/internal/abi.InterfaceType", align 8 - %593 = icmp eq ptr %592, null - br i1 %593, label %_llgo_37, label %_llgo_38 + %591 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 168) + %592 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %591, i64 0 + store %"github.com/goplus/llgo/internal/abi.StructField" %564, ptr %592, align 8 + %593 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %591, i64 1 + store %"github.com/goplus/llgo/internal/abi.StructField" %575, ptr %593, align 8 + %594 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %591, i64 2 + store %"github.com/goplus/llgo/internal/abi.StructField" %586, ptr %594, align 8 + %595 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %596 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %595, i32 0, i32 0 + store ptr %591, ptr %596, align 8 + %597 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %595, i32 0, i32 1 + store i64 3, ptr %597, align 4 + %598 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %595, i32 0, i32 2 + store i64 3, ptr %598, align 4 + %599 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %595, align 8 + %600 = call ptr @"github.com/goplus/llgo/internal/runtime.Struct"(%"github.com/goplus/llgo/internal/runtime.String" %590, i64 120, %"github.com/goplus/llgo/internal/runtime.Slice" %599) + store ptr %600, ptr @"_llgo_struct$wRu7InfmQeSkq7akLN3soDNninnS1dQajawdYvmHbzw", align 8 + br label %_llgo_36 -_llgo_37: ; preds = %_llgo_36 - store ptr %591, ptr @"_llgo_github.com/goplus/llgo/internal/abi.InterfaceType", align 8 - br label %_llgo_38 +_llgo_36: ; preds = %_llgo_35, %_llgo_34 + %601 = load ptr, ptr @"_llgo_struct$wRu7InfmQeSkq7akLN3soDNninnS1dQajawdYvmHbzw", align 8 + br i1 %538, label %_llgo_37, label %_llgo_38 -_llgo_38: ; preds = %_llgo_37, %_llgo_36 - %594 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(i64 25, i64 24, i64 0, i64 3) - %595 = load ptr, ptr @"_llgo_struct$mWxYYevLxpL1wQyiQtAy4OszkqTlHtrmEcPpzW9Air4", align 8 - %596 = icmp eq ptr %595, null - br i1 %596, label %_llgo_39, label %_llgo_40 - -_llgo_39: ; preds = %_llgo_38 - %597 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %598 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %597, i32 0, i32 0 - store ptr @21, ptr %598, align 8 - %599 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %597, i32 0, i32 1 - store i64 4, ptr %599, align 4 - %600 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %597, align 8 - %601 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %602 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %601, i32 0, i32 0 - store ptr null, ptr %602, align 8 - %603 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %601, i32 0, i32 1 - store i64 0, ptr %603, align 4 - %604 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %601, align 8 - %605 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %600, ptr %3, i64 0, %"github.com/goplus/llgo/internal/runtime.String" %604, i1 true) - %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 @33, ptr %607, align 8 - %608 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %606, i32 0, i32 1 - store i64 8, 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 ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 24) - %615 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %609, ptr %614, i64 72, %"github.com/goplus/llgo/internal/runtime.String" %613, i1 false) - %616 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %617 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %616, i32 0, i32 0 - store ptr @34, ptr %617, align 8 - %618 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %616, i32 0, i32 1 - store i64 7, ptr %618, align 4 - %619 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %616, align 8 - %620 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %621 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %620, i32 0, i32 0 - store ptr null, ptr %621, align 8 - %622 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %620, i32 0, i32 1 - store i64 0, ptr %622, align 4 - %623 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %620, align 8 - %624 = call ptr @"github.com/goplus/llgo/internal/runtime.SliceOf"(ptr %594) - %625 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %619, ptr %624, i64 88, %"github.com/goplus/llgo/internal/runtime.String" %623, i1 false) - %626 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %627 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %626, i32 0, i32 0 - store ptr @4, ptr %627, align 8 - %628 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %626, i32 0, i32 1 - store i64 4, ptr %628, align 4 - %629 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %626, align 8 - %630 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 168) - %631 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %630, i64 0 - store %"github.com/goplus/llgo/internal/abi.StructField" %605, ptr %631, align 8 - %632 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %630, i64 1 - store %"github.com/goplus/llgo/internal/abi.StructField" %615, ptr %632, align 8 - %633 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %630, i64 2 - store %"github.com/goplus/llgo/internal/abi.StructField" %625, ptr %633, align 8 - %634 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %635 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %634, i32 0, i32 0 - store ptr %630, ptr %635, align 8 - %636 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %634, i32 0, i32 1 - store i64 3, ptr %636, align 4 - %637 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %634, i32 0, i32 2 - store i64 3, ptr %637, align 4 - %638 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %634, align 8 - %639 = call ptr @"github.com/goplus/llgo/internal/runtime.Struct"(%"github.com/goplus/llgo/internal/runtime.String" %629, i64 112, %"github.com/goplus/llgo/internal/runtime.Slice" %638) - store ptr %639, ptr @"_llgo_struct$mWxYYevLxpL1wQyiQtAy4OszkqTlHtrmEcPpzW9Air4", align 8 +_llgo_37: ; preds = %_llgo_36 + %602 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %603 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %602, i32 0, i32 0 + store ptr @22, ptr %603, align 8 + %604 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %602, i32 0, i32 1 + store i64 5, ptr %604, align 4 + %605 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %602, align 8 + %606 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 + %607 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %608 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %607, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %605, ptr %608, align 8 + %609 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %607, i32 0, i32 1 + store ptr %606, ptr %609, align 8 + %610 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %607, i32 0, i32 2 + store ptr @"github.com/goplus/llgo/internal/abi.(*FuncType).Align", ptr %610, align 8 + %611 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %607, i32 0, i32 3 + store ptr @"github.com/goplus/llgo/internal/abi.(*FuncType).Align", ptr %611, align 8 + %612 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %607, align 8 + %613 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %614 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %613, i32 0, i32 0 + store ptr @23, ptr %614, align 8 + %615 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %613, i32 0, i32 1 + store i64 9, ptr %615, align 4 + %616 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %613, align 8 + %617 = load ptr, ptr @"_llgo_func$CsVqlCxhoEcIvPD5BSBukfSiD9C7Ic5_Gf32MLbCWB4", 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" %616, 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 @"github.com/goplus/llgo/internal/abi.(*FuncType).ArrayType", ptr %621, align 8 + %622 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %618, i32 0, i32 3 + store ptr @"github.com/goplus/llgo/internal/abi.(*FuncType).ArrayType", 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 @29, 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 = load ptr, ptr @"_llgo_func$TrNr0CVWj6qegOngzWbt2Jl7pr7IBJ5gOmgUf2ieIi4", align 8 + %629 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %630 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %629, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %627, ptr %630, align 8 + %631 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %629, i32 0, i32 1 + store ptr %628, ptr %631, align 8 + %632 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %629, i32 0, i32 2 + store ptr @"github.com/goplus/llgo/internal/abi.(*FuncType).ChanDir", ptr %632, align 8 + %633 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %629, i32 0, i32 3 + store ptr @"github.com/goplus/llgo/internal/abi.(*FuncType).ChanDir", ptr %633, align 8 + %634 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %629, align 8 + %635 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %636 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %635, i32 0, i32 0 + store ptr @32, ptr %636, align 8 + %637 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %635, i32 0, i32 1 + store i64 6, ptr %637, align 4 + %638 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %635, align 8 + %639 = load ptr, ptr @"_llgo_func$4-mqItKfDlL0CgVKnUxoresYgh6zW1WSlZYZSsVzLRo", align 8 + %640 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %641 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %640, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %638, ptr %641, align 8 + %642 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %640, i32 0, i32 1 + store ptr %639, ptr %642, align 8 + %643 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %640, i32 0, i32 2 + store ptr @"github.com/goplus/llgo/internal/abi.(*FuncType).Common", ptr %643, align 8 + %644 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %640, i32 0, i32 3 + store ptr @"github.com/goplus/llgo/internal/abi.(*FuncType).Common", ptr %644, align 8 + %645 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %640, align 8 + %646 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %647 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %646, i32 0, i32 0 + store ptr @26, ptr %647, align 8 + %648 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %646, i32 0, i32 1 + store i64 4, ptr %648, align 4 + %649 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %646, align 8 + %650 = load ptr, ptr @"_llgo_func$4-mqItKfDlL0CgVKnUxoresYgh6zW1WSlZYZSsVzLRo", align 8 + %651 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %652 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %651, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %649, ptr %652, align 8 + %653 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %651, i32 0, i32 1 + store ptr %650, ptr %653, align 8 + %654 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %651, i32 0, i32 2 + store ptr @"github.com/goplus/llgo/internal/abi.(*FuncType).Elem", ptr %654, align 8 + %655 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %651, i32 0, i32 3 + store ptr @"github.com/goplus/llgo/internal/abi.(*FuncType).Elem", ptr %655, align 8 + %656 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %651, align 8 + %657 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %658 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %657, i32 0, i32 0 + store ptr @33, ptr %658, align 8 + %659 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %657, i32 0, i32 1 + store i64 10, ptr %659, align 4 + %660 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %657, align 8 + %661 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 + %662 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %663 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %662, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %660, ptr %663, align 8 + %664 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %662, i32 0, i32 1 + store ptr %661, ptr %664, align 8 + %665 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %662, i32 0, i32 2 + store ptr @"github.com/goplus/llgo/internal/abi.(*FuncType).FieldAlign", ptr %665, align 8 + %666 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %662, i32 0, i32 3 + store ptr @"github.com/goplus/llgo/internal/abi.(*FuncType).FieldAlign", ptr %666, align 8 + %667 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %662, align 8 + %668 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %669 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %668, i32 0, i32 0 + store ptr @34, ptr %669, align 8 + %670 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %668, i32 0, i32 1 + store i64 8, ptr %670, align 4 + %671 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %668, align 8 + %672 = load ptr, ptr @"_llgo_func$DsoxgOnxqV7tLvokF3AA14v1gtHsHaThoC8Q_XGcQww", align 8 + %673 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %674 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %673, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %671, ptr %674, align 8 + %675 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %673, i32 0, i32 1 + store ptr %672, ptr %675, align 8 + %676 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %673, i32 0, i32 2 + store ptr @"github.com/goplus/llgo/internal/abi.(*FuncType).FuncType", ptr %676, align 8 + %677 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %673, i32 0, i32 3 + store ptr @"github.com/goplus/llgo/internal/abi.(*FuncType).FuncType", ptr %677, align 8 + %678 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %673, align 8 + %679 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %680 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %679, i32 0, i32 0 + store ptr @38, ptr %680, align 8 + %681 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %679, i32 0, i32 1 + store i64 7, ptr %681, align 4 + %682 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %679, align 8 + %683 = load ptr, ptr @_llgo_bool, align 8 + %684 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 + %685 = icmp eq ptr %684, null + br i1 %685, label %_llgo_39, label %_llgo_40 + +_llgo_38: ; preds = %_llgo_98, %_llgo_36 + %686 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %687 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %686, i32 0, i32 0 + store ptr @35, ptr %687, align 8 + %688 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %686, i32 0, i32 1 + store i64 44, ptr %688, align 4 + %689 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %686, align 8 + %690 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(%"github.com/goplus/llgo/internal/runtime.String" %689, i64 25, i64 128, i64 0, i64 21) + %691 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/internal/abi.FuncType", align 8 + %692 = icmp eq ptr %691, null + br i1 %692, label %_llgo_99, label %_llgo_100 + +_llgo_39: ; preds = %_llgo_37 + %693 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 0) + %694 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %695 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %694, i32 0, i32 0 + store ptr %693, ptr %695, align 8 + %696 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %694, i32 0, i32 1 + store i64 0, ptr %696, align 4 + %697 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %694, i32 0, i32 2 + store i64 0, ptr %697, align 4 + %698 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %694, align 8 + %699 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 8) + %700 = getelementptr ptr, ptr %699, i64 0 + store ptr %683, ptr %700, align 8 + %701 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %702 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %701, i32 0, i32 0 + store ptr %699, ptr %702, align 8 + %703 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %701, i32 0, i32 1 + store i64 1, ptr %703, align 4 + %704 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %701, i32 0, i32 2 + store i64 1, ptr %704, align 4 + %705 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %701, align 8 + %706 = call ptr @"github.com/goplus/llgo/internal/runtime.Func"(%"github.com/goplus/llgo/internal/runtime.Slice" %698, %"github.com/goplus/llgo/internal/runtime.Slice" %705, i1 false) + call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %706) + store ptr %706, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 br label %_llgo_40 -_llgo_40: ; preds = %_llgo_39, %_llgo_38 - %640 = load ptr, ptr @"_llgo_struct$mWxYYevLxpL1wQyiQtAy4OszkqTlHtrmEcPpzW9Air4", align 8 - br i1 %593, label %_llgo_41, label %_llgo_42 - -_llgo_41: ; preds = %_llgo_40 - %641 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %642 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %641, i32 0, i32 0 - store ptr @19, ptr %642, align 8 - %643 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %641, i32 0, i32 1 - store i64 5, ptr %643, align 4 - %644 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %641, align 8 - %645 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 - %646 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 - %647 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %646, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %644, ptr %647, align 8 - %648 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %646, i32 0, i32 1 - store ptr %645, ptr %648, align 8 - %649 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %646, i32 0, i32 2 - store ptr @"github.com/goplus/llgo/internal/abi.(*InterfaceType).Align", ptr %649, align 8 - %650 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %646, i32 0, i32 3 - store ptr @"github.com/goplus/llgo/internal/abi.(*InterfaceType).Align", ptr %650, align 8 - %651 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %646, align 8 - %652 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %653 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %652, i32 0, i32 0 - store ptr @20, ptr %653, align 8 - %654 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %652, i32 0, i32 1 - store i64 9, ptr %654, align 4 - %655 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %652, align 8 - %656 = load ptr, ptr @"_llgo_func$CsVqlCxhoEcIvPD5BSBukfSiD9C7Ic5_Gf32MLbCWB4", align 8 - %657 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 - %658 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %657, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %655, ptr %658, align 8 - %659 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %657, i32 0, i32 1 - store ptr %656, ptr %659, align 8 - %660 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %657, i32 0, i32 2 - store ptr @"github.com/goplus/llgo/internal/abi.(*InterfaceType).ArrayType", ptr %660, align 8 - %661 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %657, i32 0, i32 3 - store ptr @"github.com/goplus/llgo/internal/abi.(*InterfaceType).ArrayType", ptr %661, align 8 - %662 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %657, align 8 - %663 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %664 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %663, i32 0, i32 0 - store ptr @25, ptr %664, align 8 - %665 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %663, i32 0, i32 1 - store i64 6, ptr %665, align 4 - %666 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %663, align 8 - %667 = load ptr, ptr @"_llgo_func$4-mqItKfDlL0CgVKnUxoresYgh6zW1WSlZYZSsVzLRo", align 8 - %668 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 - %669 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %668, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %666, ptr %669, align 8 - %670 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %668, i32 0, i32 1 - store ptr %667, ptr %670, align 8 - %671 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %668, i32 0, i32 2 - store ptr @"github.com/goplus/llgo/internal/abi.(*InterfaceType).Common", ptr %671, align 8 - %672 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %668, i32 0, i32 3 - store ptr @"github.com/goplus/llgo/internal/abi.(*InterfaceType).Common", ptr %672, align 8 - %673 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %668, align 8 - %674 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %675 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %674, i32 0, i32 0 - store ptr @22, ptr %675, align 8 - %676 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %674, i32 0, i32 1 - store i64 4, ptr %676, align 4 - %677 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %674, align 8 - %678 = load ptr, ptr @"_llgo_func$4-mqItKfDlL0CgVKnUxoresYgh6zW1WSlZYZSsVzLRo", align 8 - %679 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 - %680 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %679, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %677, ptr %680, align 8 - %681 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %679, i32 0, i32 1 - store ptr %678, ptr %681, align 8 - %682 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %679, i32 0, i32 2 - store ptr @"github.com/goplus/llgo/internal/abi.(*InterfaceType).Elem", ptr %682, align 8 - %683 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %679, i32 0, i32 3 - store ptr @"github.com/goplus/llgo/internal/abi.(*InterfaceType).Elem", ptr %683, align 8 - %684 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %679, align 8 - %685 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %686 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %685, i32 0, i32 0 - store ptr @26, ptr %686, align 8 - %687 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %685, i32 0, i32 1 - store i64 10, ptr %687, align 4 - %688 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %685, align 8 - %689 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 - %690 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 - %691 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %690, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %688, ptr %691, align 8 - %692 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %690, i32 0, i32 1 - store ptr %689, ptr %692, align 8 - %693 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %690, i32 0, i32 2 - store ptr @"github.com/goplus/llgo/internal/abi.(*InterfaceType).FieldAlign", ptr %693, align 8 - %694 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %690, i32 0, i32 3 - store ptr @"github.com/goplus/llgo/internal/abi.(*InterfaceType).FieldAlign", ptr %694, align 8 - %695 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %690, align 8 - %696 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %697 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %696, i32 0, i32 0 - store ptr @27, ptr %697, align 8 - %698 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %696, i32 0, i32 1 - store i64 8, ptr %698, align 4 - %699 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %696, align 8 - %700 = load ptr, ptr @"_llgo_func$DsoxgOnxqV7tLvokF3AA14v1gtHsHaThoC8Q_XGcQww", align 8 - %701 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 - %702 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %701, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %699, ptr %702, align 8 - %703 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %701, i32 0, i32 1 - store ptr %700, ptr %703, align 8 - %704 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %701, i32 0, i32 2 - store ptr @"github.com/goplus/llgo/internal/abi.(*InterfaceType).FuncType", ptr %704, align 8 - %705 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %701, i32 0, i32 3 - store ptr @"github.com/goplus/llgo/internal/abi.(*InterfaceType).FuncType", ptr %705, align 8 - %706 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %701, align 8 - %707 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %708 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %707, i32 0, i32 0 - store ptr @30, ptr %708, align 8 - %709 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %707, i32 0, i32 1 - store i64 7, ptr %709, align 4 - %710 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %707, align 8 - %711 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 - %712 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 - %713 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %712, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %710, ptr %713, align 8 - %714 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %712, i32 0, i32 1 - store ptr %711, ptr %714, align 8 - %715 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %712, i32 0, i32 2 - store ptr @"github.com/goplus/llgo/internal/abi.(*InterfaceType).HasName", ptr %715, align 8 - %716 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %712, i32 0, i32 3 - store ptr @"github.com/goplus/llgo/internal/abi.(*InterfaceType).HasName", ptr %716, align 8 - %717 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %712, align 8 - %718 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %719 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %718, i32 0, i32 0 - store ptr @31, ptr %719, align 8 - %720 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %718, i32 0, i32 1 - store i64 10, ptr %720, align 4 - %721 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %718, align 8 - %722 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 - %723 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 - %724 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %723, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %721, ptr %724, align 8 - %725 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %723, i32 0, i32 1 - store ptr %722, ptr %725, align 8 - %726 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %723, i32 0, i32 2 - store ptr @"github.com/goplus/llgo/internal/abi.(*InterfaceType).IfaceIndir", ptr %726, align 8 - %727 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %723, i32 0, i32 3 - store ptr @"github.com/goplus/llgo/internal/abi.(*InterfaceType).IfaceIndir", ptr %727, align 8 - %728 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %723, align 8 +_llgo_40: ; preds = %_llgo_39, %_llgo_37 + %707 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", 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" %682, 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.(*FuncType).HasName", 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.(*FuncType).HasName", 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 @39, ptr %715, align 8 + %716 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %714, i32 0, i32 1 + store i64 10, 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.(*FuncType).IfaceIndir", 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.(*FuncType).IfaceIndir", 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 @40, ptr %726, align 8 + %727 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %725, i32 0, i32 1 + store i64 13, ptr %727, align 4 + %728 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %725, align 8 %729 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 %730 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %729, i32 0, i32 0 - store ptr @32, ptr %730, align 8 + store ptr @41, ptr %730, align 8 %731 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %729, i32 0, i32 1 - store i64 13, ptr %731, align 4 + store i64 49, ptr %731, align 4 %732 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %729, align 8 - %733 = load ptr, ptr @"_llgo_func$1QmforOaCy2fBAssC2y1FWCCT6fpq9RKwP2j2HIASY8", align 8 - %734 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 - %735 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %734, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %732, ptr %735, align 8 - %736 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %734, i32 0, i32 1 - store ptr %733, ptr %736, align 8 - %737 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %734, i32 0, i32 2 - store ptr @"github.com/goplus/llgo/internal/abi.(*InterfaceType).InterfaceType", ptr %737, align 8 - %738 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %734, i32 0, i32 3 - store ptr @"github.com/goplus/llgo/internal/abi.(*InterfaceType).InterfaceType", ptr %738, align 8 - %739 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %734, align 8 - %740 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %741 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %740, i32 0, i32 0 - store ptr @35, ptr %741, align 8 - %742 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %740, i32 0, i32 1 - store i64 13, ptr %742, align 4 - %743 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %740, align 8 - %744 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 - %745 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 - %746 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %745, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %743, ptr %746, align 8 - %747 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %745, i32 0, i32 1 - store ptr %744, ptr %747, align 8 - %748 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %745, i32 0, i32 2 - store ptr @"github.com/goplus/llgo/internal/abi.(*InterfaceType).IsDirectIface", ptr %748, align 8 - %749 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %745, i32 0, i32 3 - store ptr @"github.com/goplus/llgo/internal/abi.(*InterfaceType).IsDirectIface", ptr %749, align 8 - %750 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %745, align 8 - %751 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %752 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %751, i32 0, i32 0 - store ptr @36, ptr %752, align 8 - %753 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %751, i32 0, i32 1 - store i64 4, ptr %753, align 4 - %754 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %751, align 8 - %755 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(i64 7, i64 8, i64 1, i64 1) - %756 = load ptr, ptr @"_llgo_github.com/goplus/llgo/internal/abi.Kind", align 8 - %757 = icmp eq ptr %756, null - br i1 %757, label %_llgo_43, label %_llgo_44 - -_llgo_42: ; preds = %_llgo_92, %_llgo_40 - %758 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/internal/abi.InterfaceType", align 8 - %759 = icmp eq ptr %758, null - br i1 %759, label %_llgo_93, label %_llgo_94 - -_llgo_43: ; preds = %_llgo_41 - store ptr %755, ptr @"_llgo_github.com/goplus/llgo/internal/abi.Kind", align 8 - br label %_llgo_44 - -_llgo_44: ; preds = %_llgo_43, %_llgo_41 - %760 = load ptr, ptr @_llgo_uint, align 8 - %761 = icmp eq ptr %760, null - br i1 %761, label %_llgo_45, label %_llgo_46 + %733 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(%"github.com/goplus/llgo/internal/runtime.String" %732, i64 25, i64 120, i64 0, i64 20) + %734 = load ptr, ptr @"_llgo_github.com/goplus/llgo/internal/abi.InterfaceType", align 8 + %735 = icmp eq ptr %734, null + br i1 %735, label %_llgo_41, label %_llgo_42 -_llgo_45: ; preds = %_llgo_44 - %762 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 39) - store ptr %762, ptr @_llgo_uint, align 8 - br label %_llgo_46 - -_llgo_46: ; preds = %_llgo_45, %_llgo_44 - %763 = load ptr, ptr @_llgo_uint, align 8 - br i1 %757, label %_llgo_47, label %_llgo_48 - -_llgo_47: ; preds = %_llgo_46 - %764 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %765 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %764, i32 0, i32 0 - store ptr @37, ptr %765, align 8 - %766 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %764, i32 0, i32 1 - store i64 6, ptr %766, align 4 - %767 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %764, align 8 - %768 = load ptr, ptr @_llgo_string, align 8 - %769 = icmp eq ptr %768, null - br i1 %769, label %_llgo_49, label %_llgo_50 - -_llgo_48: ; preds = %_llgo_52, %_llgo_46 - %770 = load ptr, ptr @"_llgo_github.com/goplus/llgo/internal/abi.Kind", align 8 - %771 = load ptr, ptr @"_llgo_func$ntUE0UmVAWPS2O7GpCCGszSn-XnjHJntZZ2jYtwbFXI", align 8 - %772 = icmp eq ptr %771, null - br i1 %772, label %_llgo_53, label %_llgo_54 - -_llgo_49: ; preds = %_llgo_47 - %773 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 24) - store ptr %773, ptr @_llgo_string, align 8 - br label %_llgo_50 - -_llgo_50: ; preds = %_llgo_49, %_llgo_47 - %774 = load ptr, ptr @_llgo_string, align 8 - %775 = load ptr, ptr @"_llgo_func$zNDVRsWTIpUPKouNUS805RGX--IV9qVK8B31IZbg5to", align 8 - %776 = icmp eq ptr %775, null - br i1 %776, label %_llgo_51, label %_llgo_52 +_llgo_41: ; preds = %_llgo_40 + store ptr %733, ptr @"_llgo_github.com/goplus/llgo/internal/abi.InterfaceType", align 8 + br label %_llgo_42 -_llgo_51: ; preds = %_llgo_50 - %777 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 0) - %778 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %779 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %778, i32 0, i32 0 - store ptr %777, ptr %779, align 8 - %780 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %778, i32 0, i32 1 - store i64 0, ptr %780, align 4 - %781 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %778, i32 0, i32 2 - store i64 0, ptr %781, align 4 - %782 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %778, align 8 - %783 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 8) - %784 = getelementptr ptr, ptr %783, i64 0 - store ptr %774, ptr %784, align 8 +_llgo_42: ; preds = %_llgo_41, %_llgo_40 + %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 @1, ptr %737, align 8 + %738 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %736, i32 0, i32 1 + store i64 40, ptr %738, align 4 + %739 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %736, align 8 + %740 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(%"github.com/goplus/llgo/internal/runtime.String" %739, i64 25, i64 80, i64 0, i64 20) + %741 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %742 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %741, i32 0, i32 0 + store ptr @42, ptr %742, align 8 + %743 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %741, i32 0, i32 1 + store i64 43, ptr %743, align 4 + %744 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %741, align 8 + %745 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(%"github.com/goplus/llgo/internal/runtime.String" %744, i64 25, i64 24, i64 0, i64 3) + %746 = load ptr, ptr @"_llgo_struct$mWxYYevLxpL1wQyiQtAy4OszkqTlHtrmEcPpzW9Air4", align 8 + %747 = icmp eq ptr %746, null + br i1 %747, label %_llgo_43, label %_llgo_44 + +_llgo_43: ; preds = %_llgo_42 + %748 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %749 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %748, i32 0, i32 0 + store ptr @25, ptr %749, align 8 + %750 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %748, i32 0, i32 1 + store i64 4, ptr %750, align 4 + %751 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %748, align 8 + %752 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %753 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %752, i32 0, i32 0 + store ptr null, ptr %753, align 8 + %754 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %752, i32 0, i32 1 + store i64 0, ptr %754, align 4 + %755 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %752, align 8 + %756 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %751, ptr %740, i64 0, %"github.com/goplus/llgo/internal/runtime.String" %755, i1 true) + %757 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %758 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %757, i32 0, i32 0 + store ptr @43, ptr %758, align 8 + %759 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %757, i32 0, i32 1 + store i64 8, ptr %759, align 4 + %760 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %757, align 8 + %761 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %762 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %761, i32 0, i32 0 + store ptr null, ptr %762, align 8 + %763 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %761, i32 0, i32 1 + store i64 0, ptr %763, align 4 + %764 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %761, align 8 + %765 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 24) + %766 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %760, ptr %765, i64 72, %"github.com/goplus/llgo/internal/runtime.String" %764, i1 false) + %767 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %768 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %767, i32 0, i32 0 + store ptr @44, ptr %768, align 8 + %769 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %767, i32 0, i32 1 + store i64 7, ptr %769, align 4 + %770 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %767, 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 null, ptr %772, align 8 + %773 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %771, i32 0, i32 1 + store i64 0, ptr %773, align 4 + %774 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %771, align 8 + %775 = call ptr @"github.com/goplus/llgo/internal/runtime.SliceOf"(ptr %745) + %776 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %770, ptr %775, i64 88, %"github.com/goplus/llgo/internal/runtime.String" %774, i1 false) + %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 @6, ptr %778, align 8 + %779 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %777, i32 0, i32 1 + store i64 4, ptr %779, align 4 + %780 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %777, align 8 + %781 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 168) + %782 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %781, i64 0 + store %"github.com/goplus/llgo/internal/abi.StructField" %756, ptr %782, align 8 + %783 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %781, i64 1 + store %"github.com/goplus/llgo/internal/abi.StructField" %766, ptr %783, align 8 + %784 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %781, i64 2 + store %"github.com/goplus/llgo/internal/abi.StructField" %776, ptr %784, align 8 %785 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 %786 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %785, i32 0, i32 0 - store ptr %783, ptr %786, align 8 + store ptr %781, ptr %786, align 8 %787 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %785, i32 0, i32 1 - store i64 1, ptr %787, align 4 + store i64 3, ptr %787, align 4 %788 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %785, i32 0, i32 2 - store i64 1, ptr %788, align 4 + store i64 3, ptr %788, align 4 %789 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %785, align 8 - %790 = call ptr @"github.com/goplus/llgo/internal/runtime.Func"(%"github.com/goplus/llgo/internal/runtime.Slice" %782, %"github.com/goplus/llgo/internal/runtime.Slice" %789, i1 false) - call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %790) - store ptr %790, ptr @"_llgo_func$zNDVRsWTIpUPKouNUS805RGX--IV9qVK8B31IZbg5to", align 8 - br label %_llgo_52 - -_llgo_52: ; preds = %_llgo_51, %_llgo_50 - %791 = load ptr, ptr @"_llgo_func$zNDVRsWTIpUPKouNUS805RGX--IV9qVK8B31IZbg5to", align 8 - %792 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 - %793 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %792, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %767, ptr %793, align 8 - %794 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %792, i32 0, i32 1 - store ptr %791, ptr %794, align 8 - %795 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %792, i32 0, i32 2 - store ptr @"github.com/goplus/llgo/internal/abi.(*Kind).String", ptr %795, align 8 - %796 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %792, i32 0, i32 3 - store ptr @"github.com/goplus/llgo/internal/abi.(*Kind).String", ptr %796, align 8 - %797 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %792, align 8 - %798 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 - %799 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %798, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %767, ptr %799, align 8 - %800 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %798, i32 0, i32 1 - store ptr %791, ptr %800, align 8 - %801 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %798, i32 0, i32 2 - store ptr @"github.com/goplus/llgo/internal/abi.(*Kind).String", ptr %801, align 8 - %802 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %798, i32 0, i32 3 - store ptr @"github.com/goplus/llgo/internal/abi.Kind.String", ptr %802, align 8 - %803 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %798, align 8 - %804 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 40) - %805 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %804, i64 0 - store %"github.com/goplus/llgo/internal/abi.Method" %803, ptr %805, align 8 - %806 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %807 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %806, i32 0, i32 0 - store ptr %804, ptr %807, align 8 - %808 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %806, i32 0, i32 1 - store i64 1, ptr %808, align 4 - %809 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %806, i32 0, i32 2 - store i64 1, ptr %809, align 4 - %810 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %806, align 8 - %811 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 40) - %812 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %811, i64 0 - store %"github.com/goplus/llgo/internal/abi.Method" %797, ptr %812, align 8 - %813 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %814 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %813, i32 0, i32 0 - store ptr %811, ptr %814, align 8 - %815 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %813, i32 0, i32 1 - store i64 1, ptr %815, align 4 - %816 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %813, i32 0, i32 2 - store i64 1, ptr %816, align 4 - %817 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %813, align 8 - %818 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %819 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %818, i32 0, i32 0 - store ptr @38, ptr %819, align 8 - %820 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %818, i32 0, i32 1 - store i64 35, ptr %820, align 4 - %821 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %818, align 8 - %822 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %823 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %822, i32 0, i32 0 - store ptr @36, ptr %823, align 8 - %824 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %822, i32 0, i32 1 - store i64 4, ptr %824, align 4 - %825 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %822, align 8 - call void @"github.com/goplus/llgo/internal/runtime.InitNamed"(ptr %755, %"github.com/goplus/llgo/internal/runtime.String" %821, %"github.com/goplus/llgo/internal/runtime.String" %825, ptr %763, %"github.com/goplus/llgo/internal/runtime.Slice" %810, %"github.com/goplus/llgo/internal/runtime.Slice" %817) - br label %_llgo_48 + %790 = call ptr @"github.com/goplus/llgo/internal/runtime.Struct"(%"github.com/goplus/llgo/internal/runtime.String" %780, i64 112, %"github.com/goplus/llgo/internal/runtime.Slice" %789) + store ptr %790, ptr @"_llgo_struct$mWxYYevLxpL1wQyiQtAy4OszkqTlHtrmEcPpzW9Air4", align 8 + br label %_llgo_44 -_llgo_53: ; preds = %_llgo_48 - %826 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 0) - %827 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %828 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %827, i32 0, i32 0 - store ptr %826, ptr %828, align 8 - %829 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %827, i32 0, i32 1 - store i64 0, ptr %829, align 4 - %830 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %827, i32 0, i32 2 - store i64 0, ptr %830, align 4 - %831 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %827, align 8 - %832 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 8) - %833 = getelementptr ptr, ptr %832, i64 0 - store ptr %770, ptr %833, align 8 - %834 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %835 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %834, i32 0, i32 0 - store ptr %832, ptr %835, align 8 - %836 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %834, i32 0, i32 1 - store i64 1, ptr %836, align 4 - %837 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %834, i32 0, i32 2 - store i64 1, ptr %837, align 4 - %838 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %834, align 8 - %839 = call ptr @"github.com/goplus/llgo/internal/runtime.Func"(%"github.com/goplus/llgo/internal/runtime.Slice" %831, %"github.com/goplus/llgo/internal/runtime.Slice" %838, i1 false) - call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %839) - store ptr %839, ptr @"_llgo_func$ntUE0UmVAWPS2O7GpCCGszSn-XnjHJntZZ2jYtwbFXI", align 8 - br label %_llgo_54 +_llgo_44: ; preds = %_llgo_43, %_llgo_42 + %791 = load ptr, ptr @"_llgo_struct$mWxYYevLxpL1wQyiQtAy4OszkqTlHtrmEcPpzW9Air4", align 8 + br i1 %735, label %_llgo_45, label %_llgo_46 -_llgo_54: ; preds = %_llgo_53, %_llgo_48 - %840 = load ptr, ptr @"_llgo_func$ntUE0UmVAWPS2O7GpCCGszSn-XnjHJntZZ2jYtwbFXI", align 8 +_llgo_45: ; preds = %_llgo_44 + %792 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %793 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %792, i32 0, i32 0 + store ptr @22, ptr %793, align 8 + %794 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %792, i32 0, i32 1 + store i64 5, ptr %794, align 4 + %795 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %792, align 8 + %796 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 + %797 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %798 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %797, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %795, ptr %798, align 8 + %799 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %797, i32 0, i32 1 + store ptr %796, ptr %799, align 8 + %800 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %797, i32 0, i32 2 + store ptr @"github.com/goplus/llgo/internal/abi.(*InterfaceType).Align", ptr %800, align 8 + %801 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %797, i32 0, i32 3 + store ptr @"github.com/goplus/llgo/internal/abi.(*InterfaceType).Align", ptr %801, align 8 + %802 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %797, align 8 + %803 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %804 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %803, i32 0, i32 0 + store ptr @23, ptr %804, align 8 + %805 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %803, i32 0, i32 1 + store i64 9, ptr %805, align 4 + %806 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %803, align 8 + %807 = load ptr, ptr @"_llgo_func$CsVqlCxhoEcIvPD5BSBukfSiD9C7Ic5_Gf32MLbCWB4", 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" %806, ptr %809, align 8 + %810 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %808, i32 0, i32 1 + store ptr %807, 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.(*InterfaceType).ArrayType", 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.(*InterfaceType).ArrayType", ptr %812, align 8 + %813 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %808, align 8 + %814 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %815 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %814, i32 0, i32 0 + store ptr @29, ptr %815, align 8 + %816 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %814, i32 0, i32 1 + store i64 7, ptr %816, align 4 + %817 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %814, align 8 + %818 = load ptr, ptr @"_llgo_func$TrNr0CVWj6qegOngzWbt2Jl7pr7IBJ5gOmgUf2ieIi4", align 8 + %819 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %820 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %819, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %817, ptr %820, align 8 + %821 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %819, i32 0, i32 1 + store ptr %818, ptr %821, align 8 + %822 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %819, i32 0, i32 2 + store ptr @"github.com/goplus/llgo/internal/abi.(*InterfaceType).ChanDir", ptr %822, align 8 + %823 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %819, i32 0, i32 3 + store ptr @"github.com/goplus/llgo/internal/abi.(*InterfaceType).ChanDir", ptr %823, align 8 + %824 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %819, align 8 + %825 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %826 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %825, i32 0, i32 0 + store ptr @32, ptr %826, align 8 + %827 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %825, i32 0, i32 1 + store i64 6, ptr %827, align 4 + %828 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %825, align 8 + %829 = load ptr, ptr @"_llgo_func$4-mqItKfDlL0CgVKnUxoresYgh6zW1WSlZYZSsVzLRo", align 8 + %830 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %831 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %830, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %828, ptr %831, align 8 + %832 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %830, i32 0, i32 1 + store ptr %829, ptr %832, align 8 + %833 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %830, i32 0, i32 2 + store ptr @"github.com/goplus/llgo/internal/abi.(*InterfaceType).Common", ptr %833, align 8 + %834 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %830, i32 0, i32 3 + store ptr @"github.com/goplus/llgo/internal/abi.(*InterfaceType).Common", ptr %834, align 8 + %835 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %830, 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 @26, 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 = load ptr, ptr @"_llgo_func$4-mqItKfDlL0CgVKnUxoresYgh6zW1WSlZYZSsVzLRo", align 8 %841 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 %842 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %841, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %754, ptr %842, align 8 + store %"github.com/goplus/llgo/internal/runtime.String" %839, ptr %842, align 8 %843 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %841, i32 0, i32 1 store ptr %840, ptr %843, align 8 %844 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %841, i32 0, i32 2 - store ptr @"github.com/goplus/llgo/internal/abi.(*InterfaceType).Kind", ptr %844, align 8 + store ptr @"github.com/goplus/llgo/internal/abi.(*InterfaceType).Elem", ptr %844, align 8 %845 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %841, i32 0, i32 3 - store ptr @"github.com/goplus/llgo/internal/abi.(*InterfaceType).Kind", ptr %845, align 8 + store ptr @"github.com/goplus/llgo/internal/abi.(*InterfaceType).Elem", ptr %845, align 8 %846 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %841, 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 @24, ptr %848, align 8 + store ptr @33, ptr %848, align 8 %849 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %847, i32 0, i32 1 - store i64 3, ptr %849, align 4 + store i64 10, ptr %849, align 4 %850 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %847, align 8 %851 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 %852 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 @@ -1879,1073 +1860,1086 @@ _llgo_54: ; preds = %_llgo_53, %_llgo_48 %854 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %852, i32 0, i32 1 store ptr %851, ptr %854, align 8 %855 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %852, i32 0, i32 2 - store ptr @"github.com/goplus/llgo/internal/abi.(*InterfaceType).Len", ptr %855, align 8 + store ptr @"github.com/goplus/llgo/internal/abi.(*InterfaceType).FieldAlign", ptr %855, align 8 %856 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %852, i32 0, i32 3 - store ptr @"github.com/goplus/llgo/internal/abi.(*InterfaceType).Len", ptr %856, align 8 + store ptr @"github.com/goplus/llgo/internal/abi.(*InterfaceType).FieldAlign", ptr %856, align 8 %857 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %852, align 8 %858 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 %859 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %858, i32 0, i32 0 - store ptr @39, ptr %859, align 8 + store ptr @34, ptr %859, align 8 %860 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %858, i32 0, i32 1 - store i64 7, ptr %860, align 4 + store i64 8, ptr %860, align 4 %861 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %858, align 8 - %862 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(i64 25, i64 136, i64 0, i64 22) - %863 = load ptr, ptr @"_llgo_github.com/goplus/llgo/internal/abi.MapType", align 8 - %864 = icmp eq ptr %863, null - br i1 %864, label %_llgo_55, label %_llgo_56 + %862 = load ptr, ptr @"_llgo_func$DsoxgOnxqV7tLvokF3AA14v1gtHsHaThoC8Q_XGcQww", align 8 + %863 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %864 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %863, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %861, ptr %864, align 8 + %865 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %863, i32 0, i32 1 + store ptr %862, ptr %865, align 8 + %866 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %863, i32 0, i32 2 + store ptr @"github.com/goplus/llgo/internal/abi.(*InterfaceType).FuncType", ptr %866, align 8 + %867 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %863, i32 0, i32 3 + store ptr @"github.com/goplus/llgo/internal/abi.(*InterfaceType).FuncType", ptr %867, align 8 + %868 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %863, 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 @38, ptr %870, align 8 + %871 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %869, i32 0, i32 1 + store i64 7, ptr %871, align 4 + %872 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %869, align 8 + %873 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", 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 @"github.com/goplus/llgo/internal/abi.(*InterfaceType).HasName", ptr %877, align 8 + %878 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %874, i32 0, i32 3 + store ptr @"github.com/goplus/llgo/internal/abi.(*InterfaceType).HasName", ptr %878, align 8 + %879 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %874, align 8 + %880 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %881 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %880, i32 0, i32 0 + store ptr @39, ptr %881, align 8 + %882 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %880, i32 0, i32 1 + store i64 10, ptr %882, align 4 + %883 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %880, align 8 + %884 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 + %885 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %886 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %885, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %883, ptr %886, align 8 + %887 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %885, i32 0, i32 1 + store ptr %884, ptr %887, align 8 + %888 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %885, i32 0, i32 2 + store ptr @"github.com/goplus/llgo/internal/abi.(*InterfaceType).IfaceIndir", ptr %888, align 8 + %889 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %885, i32 0, i32 3 + store ptr @"github.com/goplus/llgo/internal/abi.(*InterfaceType).IfaceIndir", ptr %889, align 8 + %890 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %885, 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 @40, ptr %892, align 8 + %893 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %891, i32 0, i32 1 + store i64 13, ptr %893, align 4 + %894 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %891, align 8 + %895 = load ptr, ptr @"_llgo_func$1QmforOaCy2fBAssC2y1FWCCT6fpq9RKwP2j2HIASY8", align 8 + %896 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %897 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %896, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %894, ptr %897, align 8 + %898 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %896, i32 0, i32 1 + store ptr %895, ptr %898, align 8 + %899 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %896, i32 0, i32 2 + store ptr @"github.com/goplus/llgo/internal/abi.(*InterfaceType).InterfaceType", ptr %899, align 8 + %900 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %896, i32 0, i32 3 + store ptr @"github.com/goplus/llgo/internal/abi.(*InterfaceType).InterfaceType", ptr %900, align 8 + %901 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %896, align 8 + %902 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %903 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %902, i32 0, i32 0 + store ptr @45, ptr %903, align 8 + %904 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %902, i32 0, i32 1 + store i64 13, ptr %904, align 4 + %905 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %902, align 8 + %906 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 + %907 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %908 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %907, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %905, ptr %908, align 8 + %909 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %907, i32 0, i32 1 + store ptr %906, ptr %909, align 8 + %910 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %907, i32 0, i32 2 + store ptr @"github.com/goplus/llgo/internal/abi.(*InterfaceType).IsDirectIface", ptr %910, align 8 + %911 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %907, i32 0, i32 3 + store ptr @"github.com/goplus/llgo/internal/abi.(*InterfaceType).IsDirectIface", ptr %911, align 8 + %912 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %907, align 8 + %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 @46, ptr %914, align 8 + %915 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %913, i32 0, i32 1 + store i64 3, ptr %915, align 4 + %916 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %913, align 8 + %917 = load ptr, ptr @"_llgo_func$4-mqItKfDlL0CgVKnUxoresYgh6zW1WSlZYZSsVzLRo", align 8 + %918 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %919 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %918, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %916, ptr %919, align 8 + %920 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %918, i32 0, i32 1 + store ptr %917, ptr %920, align 8 + %921 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %918, i32 0, i32 2 + store ptr @"github.com/goplus/llgo/internal/abi.(*InterfaceType).Key", ptr %921, align 8 + %922 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %918, i32 0, i32 3 + store ptr @"github.com/goplus/llgo/internal/abi.(*InterfaceType).Key", ptr %922, align 8 + %923 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %918, align 8 + %924 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %925 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %924, i32 0, i32 0 + store ptr @47, ptr %925, align 8 + %926 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %924, i32 0, i32 1 + store i64 4, ptr %926, align 4 + %927 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %924, align 8 + %928 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %929 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %928, i32 0, i32 0 + store ptr @48, ptr %929, align 8 + %930 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %928, i32 0, i32 1 + store i64 40, ptr %930, align 4 + %931 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %928, align 8 + %932 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(%"github.com/goplus/llgo/internal/runtime.String" %931, i64 7, i64 8, i64 1, i64 1) + %933 = load ptr, ptr @"_llgo_github.com/goplus/llgo/internal/abi.Kind", align 8 + %934 = icmp eq ptr %933, null + br i1 %934, label %_llgo_47, label %_llgo_48 + +_llgo_46: ; preds = %_llgo_94, %_llgo_44 + %935 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %936 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %935, i32 0, i32 0 + store ptr @41, ptr %936, align 8 + %937 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %935, i32 0, i32 1 + store i64 49, ptr %937, align 4 + %938 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %935, align 8 + %939 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(%"github.com/goplus/llgo/internal/runtime.String" %938, i64 25, i64 120, i64 0, i64 20) + %940 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/internal/abi.InterfaceType", align 8 + %941 = icmp eq ptr %940, null + br i1 %941, label %_llgo_95, label %_llgo_96 + +_llgo_47: ; preds = %_llgo_45 + store ptr %932, ptr @"_llgo_github.com/goplus/llgo/internal/abi.Kind", align 8 + br label %_llgo_48 + +_llgo_48: ; preds = %_llgo_47, %_llgo_45 + %942 = load ptr, ptr @_llgo_uint, align 8 + %943 = icmp eq ptr %942, null + br i1 %943, label %_llgo_49, label %_llgo_50 + +_llgo_49: ; preds = %_llgo_48 + %944 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 39) + store ptr %944, ptr @_llgo_uint, align 8 + br label %_llgo_50 + +_llgo_50: ; preds = %_llgo_49, %_llgo_48 + %945 = load ptr, ptr @_llgo_uint, align 8 + br i1 %934, label %_llgo_51, label %_llgo_52 + +_llgo_51: ; preds = %_llgo_50 + %946 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %947 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %946, i32 0, i32 0 + store ptr @49, ptr %947, align 8 + %948 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %946, i32 0, i32 1 + store i64 6, ptr %948, align 4 + %949 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %946, align 8 + %950 = load ptr, ptr @_llgo_string, align 8 + %951 = icmp eq ptr %950, null + br i1 %951, label %_llgo_53, label %_llgo_54 + +_llgo_52: ; preds = %_llgo_56, %_llgo_50 + %952 = load ptr, ptr @"_llgo_github.com/goplus/llgo/internal/abi.Kind", align 8 + %953 = load ptr, ptr @"_llgo_func$ntUE0UmVAWPS2O7GpCCGszSn-XnjHJntZZ2jYtwbFXI", align 8 + %954 = icmp eq ptr %953, null + br i1 %954, label %_llgo_57, label %_llgo_58 + +_llgo_53: ; preds = %_llgo_51 + %955 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 24) + store ptr %955, ptr @_llgo_string, align 8 + br label %_llgo_54 + +_llgo_54: ; preds = %_llgo_53, %_llgo_51 + %956 = load ptr, ptr @_llgo_string, align 8 + %957 = load ptr, ptr @"_llgo_func$zNDVRsWTIpUPKouNUS805RGX--IV9qVK8B31IZbg5to", align 8 + %958 = icmp eq ptr %957, null + br i1 %958, label %_llgo_55, label %_llgo_56 _llgo_55: ; preds = %_llgo_54 - store ptr %862, ptr @"_llgo_github.com/goplus/llgo/internal/abi.MapType", align 8 + %959 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 0) + %960 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %961 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %960, i32 0, i32 0 + store ptr %959, ptr %961, align 8 + %962 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %960, i32 0, i32 1 + store i64 0, ptr %962, align 4 + %963 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %960, i32 0, i32 2 + store i64 0, ptr %963, align 4 + %964 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %960, align 8 + %965 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 8) + %966 = getelementptr ptr, ptr %965, i64 0 + store ptr %956, ptr %966, align 8 + %967 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %968 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %967, i32 0, i32 0 + store ptr %965, ptr %968, align 8 + %969 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %967, i32 0, i32 1 + store i64 1, ptr %969, align 4 + %970 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %967, i32 0, i32 2 + store i64 1, ptr %970, align 4 + %971 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %967, align 8 + %972 = call ptr @"github.com/goplus/llgo/internal/runtime.Func"(%"github.com/goplus/llgo/internal/runtime.Slice" %964, %"github.com/goplus/llgo/internal/runtime.Slice" %971, i1 false) + call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %972) + store ptr %972, ptr @"_llgo_func$zNDVRsWTIpUPKouNUS805RGX--IV9qVK8B31IZbg5to", align 8 br label %_llgo_56 _llgo_56: ; preds = %_llgo_55, %_llgo_54 - %865 = load ptr, ptr @_llgo_Pointer, align 8 - %866 = load ptr, ptr @_llgo_Pointer, align 8 - %867 = load ptr, ptr @_llgo_uintptr, align 8 - %868 = icmp eq ptr %867, null - br i1 %868, label %_llgo_57, label %_llgo_58 - -_llgo_57: ; preds = %_llgo_56 - %869 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 44) - store ptr %869, ptr @_llgo_uintptr, align 8 + %973 = load ptr, ptr @"_llgo_func$zNDVRsWTIpUPKouNUS805RGX--IV9qVK8B31IZbg5to", align 8 + %974 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %975 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %974, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %949, ptr %975, align 8 + %976 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %974, i32 0, i32 1 + store ptr %973, ptr %976, align 8 + %977 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %974, i32 0, i32 2 + store ptr @"github.com/goplus/llgo/internal/abi.(*Kind).String", ptr %977, align 8 + %978 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %974, i32 0, i32 3 + store ptr @"github.com/goplus/llgo/internal/abi.(*Kind).String", ptr %978, align 8 + %979 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %974, align 8 + %980 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %981 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %980, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %949, ptr %981, align 8 + %982 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %980, i32 0, i32 1 + store ptr %973, ptr %982, align 8 + %983 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %980, i32 0, i32 2 + store ptr @"github.com/goplus/llgo/internal/abi.(*Kind).String", ptr %983, align 8 + %984 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %980, i32 0, i32 3 + store ptr @"github.com/goplus/llgo/internal/abi.Kind.String", ptr %984, align 8 + %985 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %980, align 8 + %986 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 40) + %987 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %986, i64 0 + store %"github.com/goplus/llgo/internal/abi.Method" %985, ptr %987, align 8 + %988 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %989 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %988, i32 0, i32 0 + store ptr %986, ptr %989, align 8 + %990 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %988, i32 0, i32 1 + store i64 1, ptr %990, align 4 + %991 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %988, i32 0, i32 2 + store i64 1, ptr %991, align 4 + %992 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %988, align 8 + %993 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 40) + %994 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %993, i64 0 + store %"github.com/goplus/llgo/internal/abi.Method" %979, ptr %994, align 8 + %995 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %996 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %995, i32 0, i32 0 + store ptr %993, ptr %996, align 8 + %997 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %995, i32 0, i32 1 + store i64 1, ptr %997, align 4 + %998 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %995, i32 0, i32 2 + store i64 1, ptr %998, align 4 + %999 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %995, align 8 + %1000 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %1001 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1000, i32 0, i32 0 + store ptr @31, ptr %1001, align 8 + %1002 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1000, i32 0, i32 1 + store i64 35, ptr %1002, align 4 + %1003 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1000, align 8 + %1004 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %1005 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1004, i32 0, i32 0 + store ptr @47, ptr %1005, align 8 + %1006 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1004, i32 0, i32 1 + store i64 4, ptr %1006, align 4 + %1007 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1004, align 8 + call void @"github.com/goplus/llgo/internal/runtime.InitNamed"(ptr %932, %"github.com/goplus/llgo/internal/runtime.String" %1003, %"github.com/goplus/llgo/internal/runtime.String" %1007, ptr %945, %"github.com/goplus/llgo/internal/runtime.Slice" %992, %"github.com/goplus/llgo/internal/runtime.Slice" %999) + br label %_llgo_52 + +_llgo_57: ; preds = %_llgo_52 + %1008 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 0) + %1009 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %1010 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1009, i32 0, i32 0 + store ptr %1008, ptr %1010, align 8 + %1011 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1009, i32 0, i32 1 + store i64 0, ptr %1011, align 4 + %1012 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1009, i32 0, i32 2 + store i64 0, ptr %1012, align 4 + %1013 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1009, align 8 + %1014 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 8) + %1015 = getelementptr ptr, ptr %1014, i64 0 + store ptr %952, ptr %1015, align 8 + %1016 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %1017 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1016, i32 0, i32 0 + store ptr %1014, ptr %1017, align 8 + %1018 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1016, i32 0, i32 1 + store i64 1, ptr %1018, align 4 + %1019 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1016, i32 0, i32 2 + store i64 1, ptr %1019, align 4 + %1020 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1016, align 8 + %1021 = call ptr @"github.com/goplus/llgo/internal/runtime.Func"(%"github.com/goplus/llgo/internal/runtime.Slice" %1013, %"github.com/goplus/llgo/internal/runtime.Slice" %1020, i1 false) + call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %1021) + store ptr %1021, ptr @"_llgo_func$ntUE0UmVAWPS2O7GpCCGszSn-XnjHJntZZ2jYtwbFXI", align 8 br label %_llgo_58 -_llgo_58: ; preds = %_llgo_57, %_llgo_56 - %870 = load ptr, ptr @_llgo_uintptr, align 8 - %871 = load ptr, ptr @_llgo_uintptr, align 8 - %872 = load ptr, ptr @"_llgo_struct$Yk42tBqeO4BzIoRAwt__cbPj2UwIDCP07Kg_SR7sBZM", align 8 - %873 = icmp eq ptr %872, null - br i1 %873, label %_llgo_59, label %_llgo_60 +_llgo_58: ; preds = %_llgo_57, %_llgo_52 + %1022 = load ptr, ptr @"_llgo_func$ntUE0UmVAWPS2O7GpCCGszSn-XnjHJntZZ2jYtwbFXI", align 8 + %1023 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %1024 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1023, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %927, ptr %1024, align 8 + %1025 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1023, i32 0, i32 1 + store ptr %1022, ptr %1025, align 8 + %1026 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1023, i32 0, i32 2 + store ptr @"github.com/goplus/llgo/internal/abi.(*InterfaceType).Kind", ptr %1026, align 8 + %1027 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1023, i32 0, i32 3 + store ptr @"github.com/goplus/llgo/internal/abi.(*InterfaceType).Kind", ptr %1027, align 8 + %1028 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %1023, align 8 + %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 @28, ptr %1030, align 8 + %1031 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1029, i32 0, i32 1 + store i64 3, ptr %1031, align 4 + %1032 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1029, align 8 + %1033 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 + %1034 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %1035 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1034, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %1032, ptr %1035, align 8 + %1036 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1034, i32 0, i32 1 + store ptr %1033, ptr %1036, align 8 + %1037 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1034, i32 0, i32 2 + store ptr @"github.com/goplus/llgo/internal/abi.(*InterfaceType).Len", ptr %1037, align 8 + %1038 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1034, i32 0, i32 3 + store ptr @"github.com/goplus/llgo/internal/abi.(*InterfaceType).Len", ptr %1038, align 8 + %1039 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %1034, align 8 + %1040 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %1041 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1040, i32 0, i32 0 + store ptr @50, ptr %1041, align 8 + %1042 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1040, i32 0, i32 1 + store i64 7, ptr %1042, align 4 + %1043 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1040, align 8 + %1044 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %1045 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1044, i32 0, i32 0 + store ptr @51, ptr %1045, align 8 + %1046 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1044, i32 0, i32 1 + store i64 43, ptr %1046, align 4 + %1047 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1044, align 8 + %1048 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(%"github.com/goplus/llgo/internal/runtime.String" %1047, i64 25, i64 136, i64 0, i64 23) + %1049 = load ptr, ptr @"_llgo_github.com/goplus/llgo/internal/abi.MapType", align 8 + %1050 = icmp eq ptr %1049, null + br i1 %1050, label %_llgo_59, label %_llgo_60 _llgo_59: ; preds = %_llgo_58 - %874 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %875 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %874, i32 0, i32 0 - store ptr @21, ptr %875, align 8 - %876 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %874, i32 0, i32 1 - store i64 4, ptr %876, align 4 - %877 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %874, align 8 - %878 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %879 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %878, i32 0, i32 0 - store ptr null, ptr %879, align 8 - %880 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %878, i32 0, i32 1 - store i64 0, ptr %880, align 4 - %881 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %878, align 8 - %882 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %877, ptr %3, i64 0, %"github.com/goplus/llgo/internal/runtime.String" %881, i1 true) - %883 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %884 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %883, i32 0, i32 0 - store ptr @40, ptr %884, align 8 - %885 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %883, i32 0, i32 1 - store i64 3, ptr %885, align 4 - %886 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %883, 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 null, ptr %888, align 8 - %889 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %887, i32 0, i32 1 - store i64 0, ptr %889, align 4 - %890 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %887, align 8 - %891 = call ptr @"github.com/goplus/llgo/internal/runtime.PointerTo"(ptr %3) - %892 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %886, ptr %891, i64 72, %"github.com/goplus/llgo/internal/runtime.String" %890, i1 false) - %893 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %894 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %893, i32 0, i32 0 - store ptr @22, ptr %894, align 8 - %895 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %893, i32 0, i32 1 - store i64 4, ptr %895, align 4 - %896 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %893, align 8 - %897 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %898 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %897, i32 0, i32 0 - store ptr null, ptr %898, align 8 - %899 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %897, i32 0, i32 1 - store i64 0, ptr %899, align 4 - %900 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %897, align 8 - %901 = call ptr @"github.com/goplus/llgo/internal/runtime.PointerTo"(ptr %3) - %902 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %896, ptr %901, i64 80, %"github.com/goplus/llgo/internal/runtime.String" %900, i1 false) - %903 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %904 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %903, i32 0, i32 0 - store ptr @41, ptr %904, align 8 - %905 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %903, i32 0, i32 1 - store i64 6, ptr %905, align 4 - %906 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %903, align 8 - %907 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %908 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %907, i32 0, i32 0 - store ptr null, ptr %908, align 8 - %909 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %907, i32 0, i32 1 - store i64 0, ptr %909, align 4 - %910 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %907, align 8 - %911 = call ptr @"github.com/goplus/llgo/internal/runtime.PointerTo"(ptr %3) - %912 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %906, ptr %911, i64 88, %"github.com/goplus/llgo/internal/runtime.String" %910, 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 @42, ptr %914, align 8 - %915 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %913, i32 0, i32 1 - store i64 6, 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 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %922 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %921, i32 0, i32 0 - store ptr @14, ptr %922, align 8 - %923 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %921, i32 0, i32 1 - store i64 1, ptr %923, align 4 - %924 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %921, align 8 - %925 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %926 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %925, i32 0, i32 0 - store ptr null, ptr %926, align 8 - %927 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %925, i32 0, i32 1 - store i64 0, ptr %927, align 4 - %928 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %925, align 8 - %929 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 24) - %930 = getelementptr ptr, ptr %929, i64 0 - store ptr %865, ptr %930, align 8 - %931 = getelementptr ptr, ptr %929, i64 1 - store ptr %866, ptr %931, align 8 - %932 = getelementptr ptr, ptr %929, i64 2 - store ptr %870, ptr %932, align 8 - %933 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %934 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %933, i32 0, i32 0 - store ptr %929, ptr %934, align 8 - %935 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %933, i32 0, i32 1 - store i64 3, ptr %935, align 4 - %936 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %933, i32 0, i32 2 - store i64 3, ptr %936, align 4 - %937 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %933, align 8 - %938 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 8) - %939 = getelementptr ptr, ptr %938, i64 0 - store ptr %871, ptr %939, align 8 - %940 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %941 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %940, i32 0, i32 0 - store ptr %938, ptr %941, align 8 - %942 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %940, i32 0, i32 1 - store i64 1, ptr %942, align 4 - %943 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %940, i32 0, i32 2 - store i64 1, ptr %943, align 4 - %944 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %940, align 8 - %945 = call ptr @"github.com/goplus/llgo/internal/runtime.Func"(%"github.com/goplus/llgo/internal/runtime.Slice" %937, %"github.com/goplus/llgo/internal/runtime.Slice" %944, i1 false) - %946 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %924, ptr %945, i64 0, %"github.com/goplus/llgo/internal/runtime.String" %928, i1 false) - %947 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %948 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %947, i32 0, i32 0 - store ptr @15, ptr %948, align 8 - %949 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %947, i32 0, i32 1 - store i64 4, ptr %949, align 4 - %950 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %947, align 8 - %951 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %952 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %951, i32 0, i32 0 - store ptr null, ptr %952, align 8 - %953 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %951, i32 0, i32 1 - store i64 0, ptr %953, align 4 - %954 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %951, align 8 - %955 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 58) - %956 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %950, ptr %955, i64 8, %"github.com/goplus/llgo/internal/runtime.String" %954, i1 false) - %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 @4, ptr %958, align 8 - %959 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %957, i32 0, i32 1 - store i64 4, ptr %959, align 4 - %960 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %957, align 8 - %961 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 112) - %962 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %961, i64 0 - store %"github.com/goplus/llgo/internal/abi.StructField" %946, ptr %962, align 8 - %963 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %961, i64 1 - store %"github.com/goplus/llgo/internal/abi.StructField" %956, ptr %963, align 8 - %964 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %965 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %964, i32 0, i32 0 - store ptr %961, ptr %965, align 8 - %966 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %964, i32 0, i32 1 - store i64 2, ptr %966, align 4 - %967 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %964, i32 0, i32 2 - store i64 2, ptr %967, align 4 - %968 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %964, align 8 - %969 = call ptr @"github.com/goplus/llgo/internal/runtime.Struct"(%"github.com/goplus/llgo/internal/runtime.String" %960, i64 16, %"github.com/goplus/llgo/internal/runtime.Slice" %968) - %970 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %916, ptr %969, i64 96, %"github.com/goplus/llgo/internal/runtime.String" %920, i1 false) - %971 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %972 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %971, i32 0, i32 0 - store ptr @43, ptr %972, align 8 - %973 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %971, i32 0, i32 1 - store i64 7, ptr %973, align 4 - %974 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %971, align 8 - %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 null, ptr %976, align 8 - %977 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %975, i32 0, i32 1 - store i64 0, ptr %977, align 4 - %978 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %975, align 8 - %979 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 40) - %980 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %974, ptr %979, i64 112, %"github.com/goplus/llgo/internal/runtime.String" %978, i1 false) - %981 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %982 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %981, i32 0, i32 0 - store ptr @44, ptr %982, align 8 - %983 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %981, i32 0, i32 1 - store i64 9, ptr %983, align 4 - %984 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %981, align 8 - %985 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %986 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %985, i32 0, i32 0 - store ptr null, ptr %986, align 8 - %987 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %985, i32 0, i32 1 - store i64 0, ptr %987, align 4 - %988 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %985, align 8 - %989 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 40) - %990 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %984, ptr %989, i64 113, %"github.com/goplus/llgo/internal/runtime.String" %988, i1 false) - %991 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %992 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %991, i32 0, i32 0 - store ptr @45, ptr %992, align 8 - %993 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %991, i32 0, i32 1 - store i64 10, ptr %993, align 4 - %994 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %991, align 8 - %995 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %996 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %995, i32 0, i32 0 - store ptr null, ptr %996, align 8 - %997 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %995, i32 0, i32 1 - store i64 0, ptr %997, align 4 - %998 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %995, align 8 - %999 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 41) - %1000 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %994, ptr %999, i64 114, %"github.com/goplus/llgo/internal/runtime.String" %998, i1 false) - %1001 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %1002 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1001, i32 0, i32 0 - store ptr @46, ptr %1002, align 8 - %1003 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1001, i32 0, i32 1 - store i64 5, ptr %1003, align 4 - %1004 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1001, align 8 - %1005 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %1006 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1005, i32 0, i32 0 - store ptr null, ptr %1006, align 8 - %1007 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1005, i32 0, i32 1 - store i64 0, ptr %1007, align 4 - %1008 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1005, align 8 - %1009 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 42) - %1010 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %1004, ptr %1009, i64 116, %"github.com/goplus/llgo/internal/runtime.String" %1008, 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 @4, ptr %1012, align 8 - %1013 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1011, i32 0, i32 1 - store i64 4, ptr %1013, align 4 - %1014 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1011, align 8 - %1015 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 504) - %1016 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %1015, i64 0 - store %"github.com/goplus/llgo/internal/abi.StructField" %882, ptr %1016, align 8 - %1017 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %1015, i64 1 - store %"github.com/goplus/llgo/internal/abi.StructField" %892, ptr %1017, align 8 - %1018 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %1015, i64 2 - store %"github.com/goplus/llgo/internal/abi.StructField" %902, ptr %1018, align 8 - %1019 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %1015, i64 3 - store %"github.com/goplus/llgo/internal/abi.StructField" %912, ptr %1019, align 8 - %1020 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %1015, i64 4 - store %"github.com/goplus/llgo/internal/abi.StructField" %970, ptr %1020, align 8 - %1021 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %1015, i64 5 - store %"github.com/goplus/llgo/internal/abi.StructField" %980, ptr %1021, align 8 - %1022 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %1015, i64 6 - store %"github.com/goplus/llgo/internal/abi.StructField" %990, ptr %1022, align 8 - %1023 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %1015, i64 7 - store %"github.com/goplus/llgo/internal/abi.StructField" %1000, ptr %1023, align 8 - %1024 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %1015, i64 8 - store %"github.com/goplus/llgo/internal/abi.StructField" %1010, ptr %1024, align 8 - %1025 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %1026 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1025, i32 0, i32 0 - store ptr %1015, ptr %1026, align 8 - %1027 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1025, i32 0, i32 1 - store i64 9, ptr %1027, align 4 - %1028 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1025, i32 0, i32 2 - store i64 9, ptr %1028, align 4 - %1029 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1025, align 8 - %1030 = call ptr @"github.com/goplus/llgo/internal/runtime.Struct"(%"github.com/goplus/llgo/internal/runtime.String" %1014, i64 120, %"github.com/goplus/llgo/internal/runtime.Slice" %1029) - store ptr %1030, ptr @"_llgo_struct$Yk42tBqeO4BzIoRAwt__cbPj2UwIDCP07Kg_SR7sBZM", align 8 + store ptr %1048, ptr @"_llgo_github.com/goplus/llgo/internal/abi.MapType", align 8 br label %_llgo_60 _llgo_60: ; preds = %_llgo_59, %_llgo_58 - %1031 = load ptr, ptr @"_llgo_struct$Yk42tBqeO4BzIoRAwt__cbPj2UwIDCP07Kg_SR7sBZM", align 8 - br i1 %864, label %_llgo_61, label %_llgo_62 + %1051 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %1052 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1051, i32 0, i32 0 + store ptr @1, ptr %1052, align 8 + %1053 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1051, i32 0, i32 1 + store i64 40, ptr %1053, align 4 + %1054 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1051, align 8 + %1055 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(%"github.com/goplus/llgo/internal/runtime.String" %1054, i64 25, i64 80, i64 0, i64 20) + %1056 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %1057 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1056, i32 0, i32 0 + store ptr @1, ptr %1057, align 8 + %1058 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1056, i32 0, i32 1 + store i64 40, ptr %1058, align 4 + %1059 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1056, align 8 + %1060 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(%"github.com/goplus/llgo/internal/runtime.String" %1059, i64 25, i64 80, i64 0, i64 20) + %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 @1, ptr %1062, align 8 + %1063 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1061, i32 0, i32 1 + store i64 40, ptr %1063, align 4 + %1064 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1061, align 8 + %1065 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(%"github.com/goplus/llgo/internal/runtime.String" %1064, i64 25, i64 80, i64 0, i64 20) + %1066 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %1067 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1066, i32 0, i32 0 + store ptr @1, ptr %1067, align 8 + %1068 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1066, i32 0, i32 1 + store i64 40, ptr %1068, align 4 + %1069 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1066, align 8 + %1070 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(%"github.com/goplus/llgo/internal/runtime.String" %1069, i64 25, i64 80, i64 0, i64 20) + %1071 = load ptr, ptr @_llgo_Pointer, align 8 + %1072 = load ptr, ptr @_llgo_Pointer, align 8 + %1073 = load ptr, ptr @_llgo_uintptr, align 8 + %1074 = icmp eq ptr %1073, null + br i1 %1074, label %_llgo_61, label %_llgo_62 _llgo_61: ; preds = %_llgo_60 - %1032 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %1033 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1032, i32 0, i32 0 - store ptr @19, ptr %1033, align 8 - %1034 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1032, i32 0, i32 1 - store i64 5, ptr %1034, align 4 - %1035 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1032, align 8 - %1036 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 - %1037 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 - %1038 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1037, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %1035, ptr %1038, align 8 - %1039 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1037, i32 0, i32 1 - store ptr %1036, ptr %1039, align 8 - %1040 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1037, i32 0, i32 2 - store ptr @"github.com/goplus/llgo/internal/abi.(*MapType).Align", ptr %1040, align 8 - %1041 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1037, i32 0, i32 3 - store ptr @"github.com/goplus/llgo/internal/abi.(*MapType).Align", ptr %1041, align 8 - %1042 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %1037, align 8 - %1043 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %1044 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1043, i32 0, i32 0 - store ptr @20, ptr %1044, align 8 - %1045 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1043, i32 0, i32 1 - store i64 9, ptr %1045, align 4 - %1046 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1043, align 8 - %1047 = load ptr, ptr @"_llgo_func$CsVqlCxhoEcIvPD5BSBukfSiD9C7Ic5_Gf32MLbCWB4", align 8 - %1048 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 - %1049 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1048, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %1046, ptr %1049, align 8 - %1050 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1048, i32 0, i32 1 - store ptr %1047, ptr %1050, align 8 - %1051 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1048, i32 0, i32 2 - store ptr @"github.com/goplus/llgo/internal/abi.(*MapType).ArrayType", ptr %1051, align 8 - %1052 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1048, i32 0, i32 3 - store ptr @"github.com/goplus/llgo/internal/abi.(*MapType).ArrayType", ptr %1052, align 8 - %1053 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %1048, align 8 - %1054 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %1055 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1054, i32 0, i32 0 - store ptr @25, ptr %1055, align 8 - %1056 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1054, i32 0, i32 1 - store i64 6, ptr %1056, align 4 - %1057 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1054, align 8 - %1058 = load ptr, ptr @"_llgo_func$4-mqItKfDlL0CgVKnUxoresYgh6zW1WSlZYZSsVzLRo", align 8 - %1059 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 - %1060 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1059, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %1057, ptr %1060, align 8 - %1061 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1059, i32 0, i32 1 - store ptr %1058, ptr %1061, align 8 - %1062 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1059, i32 0, i32 2 - store ptr @"github.com/goplus/llgo/internal/abi.(*MapType).Common", ptr %1062, align 8 - %1063 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1059, i32 0, i32 3 - store ptr @"github.com/goplus/llgo/internal/abi.(*MapType).Common", ptr %1063, align 8 - %1064 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %1059, align 8 - %1065 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %1066 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1065, i32 0, i32 0 - store ptr @26, ptr %1066, align 8 - %1067 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1065, i32 0, i32 1 - store i64 10, ptr %1067, align 4 - %1068 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1065, align 8 - %1069 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 - %1070 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 - %1071 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1070, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %1068, ptr %1071, align 8 - %1072 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1070, i32 0, i32 1 - store ptr %1069, ptr %1072, align 8 - %1073 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1070, i32 0, i32 2 - store ptr @"github.com/goplus/llgo/internal/abi.(*MapType).FieldAlign", ptr %1073, align 8 - %1074 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1070, i32 0, i32 3 - store ptr @"github.com/goplus/llgo/internal/abi.(*MapType).FieldAlign", ptr %1074, align 8 - %1075 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %1070, align 8 - %1076 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %1077 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1076, i32 0, i32 0 - store ptr @27, ptr %1077, align 8 - %1078 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1076, i32 0, i32 1 - store i64 8, ptr %1078, align 4 - %1079 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1076, align 8 - %1080 = load ptr, ptr @"_llgo_func$DsoxgOnxqV7tLvokF3AA14v1gtHsHaThoC8Q_XGcQww", align 8 - %1081 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 - %1082 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1081, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %1079, ptr %1082, align 8 - %1083 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1081, i32 0, i32 1 - store ptr %1080, ptr %1083, align 8 - %1084 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1081, i32 0, i32 2 - store ptr @"github.com/goplus/llgo/internal/abi.(*MapType).FuncType", ptr %1084, align 8 - %1085 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1081, i32 0, i32 3 - store ptr @"github.com/goplus/llgo/internal/abi.(*MapType).FuncType", ptr %1085, align 8 - %1086 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %1081, align 8 + %1075 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 44) + store ptr %1075, ptr @_llgo_uintptr, align 8 + br label %_llgo_62 + +_llgo_62: ; preds = %_llgo_61, %_llgo_60 + %1076 = load ptr, ptr @_llgo_uintptr, align 8 + %1077 = load ptr, ptr @_llgo_uintptr, align 8 + %1078 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %1079 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1078, i32 0, i32 0 + store ptr @25, ptr %1079, align 8 + %1080 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1078, i32 0, i32 1 + store i64 4, ptr %1080, align 4 + %1081 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1078, align 8 + %1082 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %1083 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1082, i32 0, i32 0 + store ptr null, ptr %1083, align 8 + %1084 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1082, i32 0, i32 1 + store i64 0, ptr %1084, align 4 + %1085 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1082, align 8 + %1086 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %1081, ptr %1055, i64 0, %"github.com/goplus/llgo/internal/runtime.String" %1085, i1 true) %1087 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 %1088 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1087, i32 0, i32 0 - store ptr @30, ptr %1088, align 8 + store ptr @46, ptr %1088, align 8 %1089 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1087, i32 0, i32 1 - store i64 7, ptr %1089, align 4 + store i64 3, ptr %1089, align 4 %1090 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1087, align 8 - %1091 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 - %1092 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 - %1093 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1092, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %1090, ptr %1093, align 8 - %1094 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1092, i32 0, i32 1 - store ptr %1091, ptr %1094, align 8 - %1095 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1092, i32 0, i32 2 - store ptr @"github.com/goplus/llgo/internal/abi.(*MapType).HasName", ptr %1095, align 8 - %1096 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1092, i32 0, i32 3 - store ptr @"github.com/goplus/llgo/internal/abi.(*MapType).HasName", ptr %1096, align 8 - %1097 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %1092, align 8 - %1098 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %1099 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1098, i32 0, i32 0 - store ptr @47, ptr %1099, align 8 - %1100 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1098, i32 0, i32 1 - store i64 14, ptr %1100, align 4 - %1101 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1098, align 8 - %1102 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 - %1103 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 - %1104 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1103, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %1101, ptr %1104, align 8 - %1105 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1103, i32 0, i32 1 - store ptr %1102, ptr %1105, align 8 - %1106 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1103, i32 0, i32 2 - store ptr @"github.com/goplus/llgo/internal/abi.(*MapType).HashMightPanic", ptr %1106, align 8 - %1107 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1103, i32 0, i32 3 - store ptr @"github.com/goplus/llgo/internal/abi.(*MapType).HashMightPanic", ptr %1107, align 8 - %1108 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %1103, align 8 - %1109 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %1110 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1109, i32 0, i32 0 - store ptr @31, ptr %1110, align 8 - %1111 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1109, i32 0, i32 1 - store i64 10, ptr %1111, align 4 - %1112 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1109, align 8 - %1113 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 - %1114 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 - %1115 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1114, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %1112, ptr %1115, align 8 - %1116 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1114, i32 0, i32 1 - store ptr %1113, ptr %1116, align 8 - %1117 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1114, i32 0, i32 2 - store ptr @"github.com/goplus/llgo/internal/abi.(*MapType).IfaceIndir", ptr %1117, align 8 - %1118 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1114, i32 0, i32 3 - store ptr @"github.com/goplus/llgo/internal/abi.(*MapType).IfaceIndir", ptr %1118, align 8 - %1119 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %1114, align 8 - %1120 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %1121 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1120, i32 0, i32 0 - store ptr @48, ptr %1121, align 8 - %1122 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1120, i32 0, i32 1 - store i64 12, ptr %1122, align 4 - %1123 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1120, align 8 - %1124 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 - %1125 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 - %1126 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1125, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %1123, ptr %1126, align 8 - %1127 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1125, i32 0, i32 1 - store ptr %1124, ptr %1127, align 8 - %1128 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1125, i32 0, i32 2 - store ptr @"github.com/goplus/llgo/internal/abi.(*MapType).IndirectElem", ptr %1128, align 8 - %1129 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1125, i32 0, i32 3 - store ptr @"github.com/goplus/llgo/internal/abi.(*MapType).IndirectElem", ptr %1129, align 8 - %1130 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %1125, align 8 - %1131 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %1132 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1131, i32 0, i32 0 - store ptr @49, ptr %1132, align 8 - %1133 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1131, i32 0, i32 1 - store i64 11, ptr %1133, align 4 - %1134 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1131, align 8 - %1135 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 - %1136 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 - %1137 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1136, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %1134, ptr %1137, align 8 - %1138 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1136, i32 0, i32 1 - store ptr %1135, ptr %1138, align 8 - %1139 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1136, i32 0, i32 2 - store ptr @"github.com/goplus/llgo/internal/abi.(*MapType).IndirectKey", ptr %1139, align 8 - %1140 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1136, i32 0, i32 3 - store ptr @"github.com/goplus/llgo/internal/abi.(*MapType).IndirectKey", ptr %1140, align 8 - %1141 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %1136, align 8 - %1142 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %1143 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1142, i32 0, i32 0 - store ptr @32, ptr %1143, align 8 - %1144 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1142, i32 0, i32 1 - store i64 13, ptr %1144, align 4 - %1145 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1142, align 8 - %1146 = load ptr, ptr @"_llgo_func$1QmforOaCy2fBAssC2y1FWCCT6fpq9RKwP2j2HIASY8", align 8 - %1147 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 - %1148 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1147, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %1145, ptr %1148, align 8 - %1149 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1147, i32 0, i32 1 - store ptr %1146, ptr %1149, align 8 - %1150 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1147, i32 0, i32 2 - store ptr @"github.com/goplus/llgo/internal/abi.(*MapType).InterfaceType", ptr %1150, align 8 - %1151 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1147, i32 0, i32 3 - store ptr @"github.com/goplus/llgo/internal/abi.(*MapType).InterfaceType", ptr %1151, align 8 - %1152 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %1147, align 8 - %1153 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %1154 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1153, i32 0, i32 0 - store ptr @35, ptr %1154, align 8 - %1155 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1153, i32 0, i32 1 - store i64 13, ptr %1155, align 4 - %1156 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1153, align 8 - %1157 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 - %1158 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 - %1159 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1158, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %1156, ptr %1159, align 8 - %1160 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1158, i32 0, i32 1 - store ptr %1157, ptr %1160, align 8 - %1161 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1158, i32 0, i32 2 - store ptr @"github.com/goplus/llgo/internal/abi.(*MapType).IsDirectIface", ptr %1161, align 8 - %1162 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1158, i32 0, i32 3 - store ptr @"github.com/goplus/llgo/internal/abi.(*MapType).IsDirectIface", ptr %1162, align 8 - %1163 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %1158, align 8 - %1164 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %1165 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1164, i32 0, i32 0 - store ptr @36, ptr %1165, align 8 - %1166 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1164, i32 0, i32 1 - store i64 4, ptr %1166, align 4 - %1167 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1164, align 8 - %1168 = load ptr, ptr @"_llgo_func$ntUE0UmVAWPS2O7GpCCGszSn-XnjHJntZZ2jYtwbFXI", align 8 - %1169 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 - %1170 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1169, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %1167, ptr %1170, align 8 - %1171 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1169, i32 0, i32 1 - store ptr %1168, ptr %1171, align 8 - %1172 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1169, i32 0, i32 2 - store ptr @"github.com/goplus/llgo/internal/abi.(*MapType).Kind", ptr %1172, align 8 - %1173 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1169, i32 0, i32 3 - store ptr @"github.com/goplus/llgo/internal/abi.(*MapType).Kind", ptr %1173, align 8 - %1174 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %1169, align 8 + %1091 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %1092 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1091, i32 0, i32 0 + store ptr null, ptr %1092, align 8 + %1093 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1091, i32 0, i32 1 + store i64 0, ptr %1093, align 4 + %1094 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1091, align 8 + %1095 = call ptr @"github.com/goplus/llgo/internal/runtime.PointerTo"(ptr %1060) + %1096 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %1090, ptr %1095, i64 72, %"github.com/goplus/llgo/internal/runtime.String" %1094, i1 false) + %1097 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %1098 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1097, i32 0, i32 0 + store ptr @26, ptr %1098, align 8 + %1099 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1097, i32 0, i32 1 + store i64 4, ptr %1099, align 4 + %1100 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1097, align 8 + %1101 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %1102 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1101, i32 0, i32 0 + store ptr null, ptr %1102, align 8 + %1103 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1101, i32 0, i32 1 + store i64 0, ptr %1103, align 4 + %1104 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1101, align 8 + %1105 = call ptr @"github.com/goplus/llgo/internal/runtime.PointerTo"(ptr %1065) + %1106 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %1100, ptr %1105, i64 80, %"github.com/goplus/llgo/internal/runtime.String" %1104, i1 false) + %1107 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %1108 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1107, i32 0, i32 0 + store ptr @52, ptr %1108, align 8 + %1109 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1107, i32 0, i32 1 + store i64 6, ptr %1109, align 4 + %1110 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1107, align 8 + %1111 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %1112 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1111, i32 0, i32 0 + store ptr null, ptr %1112, align 8 + %1113 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1111, i32 0, i32 1 + store i64 0, ptr %1113, align 4 + %1114 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1111, align 8 + %1115 = call ptr @"github.com/goplus/llgo/internal/runtime.PointerTo"(ptr %1070) + %1116 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %1110, ptr %1115, i64 88, %"github.com/goplus/llgo/internal/runtime.String" %1114, i1 false) + %1117 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %1118 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1117, i32 0, i32 0 + store ptr @53, ptr %1118, align 8 + %1119 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1117, i32 0, i32 1 + store i64 6, ptr %1119, align 4 + %1120 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1117, align 8 + %1121 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %1122 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1121, i32 0, i32 0 + store ptr null, ptr %1122, align 8 + %1123 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1121, i32 0, i32 1 + store i64 0, ptr %1123, align 4 + %1124 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1121, align 8 + %1125 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %1126 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1125, i32 0, i32 0 + store ptr @17, ptr %1126, align 8 + %1127 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1125, i32 0, i32 1 + store i64 1, ptr %1127, align 4 + %1128 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1125, align 8 + %1129 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %1130 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1129, i32 0, i32 0 + store ptr null, ptr %1130, align 8 + %1131 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1129, i32 0, i32 1 + store i64 0, ptr %1131, align 4 + %1132 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1129, align 8 + %1133 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 24) + %1134 = getelementptr ptr, ptr %1133, i64 0 + store ptr %1071, ptr %1134, align 8 + %1135 = getelementptr ptr, ptr %1133, i64 1 + store ptr %1072, ptr %1135, align 8 + %1136 = getelementptr ptr, ptr %1133, i64 2 + store ptr %1076, ptr %1136, align 8 + %1137 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %1138 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1137, i32 0, i32 0 + store ptr %1133, ptr %1138, align 8 + %1139 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1137, i32 0, i32 1 + store i64 3, ptr %1139, align 4 + %1140 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1137, i32 0, i32 2 + store i64 3, ptr %1140, align 4 + %1141 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1137, align 8 + %1142 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 8) + %1143 = getelementptr ptr, ptr %1142, i64 0 + store ptr %1077, ptr %1143, align 8 + %1144 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %1145 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1144, i32 0, i32 0 + store ptr %1142, ptr %1145, align 8 + %1146 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1144, i32 0, i32 1 + store i64 1, ptr %1146, align 4 + %1147 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1144, i32 0, i32 2 + store i64 1, ptr %1147, align 4 + %1148 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1144, align 8 + %1149 = call ptr @"github.com/goplus/llgo/internal/runtime.Func"(%"github.com/goplus/llgo/internal/runtime.Slice" %1141, %"github.com/goplus/llgo/internal/runtime.Slice" %1148, i1 false) + %1150 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %1128, ptr %1149, i64 0, %"github.com/goplus/llgo/internal/runtime.String" %1132, i1 false) + %1151 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %1152 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1151, i32 0, i32 0 + store ptr @18, ptr %1152, align 8 + %1153 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1151, i32 0, i32 1 + store i64 4, ptr %1153, align 4 + %1154 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1151, align 8 + %1155 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %1156 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1155, i32 0, i32 0 + store ptr null, ptr %1156, align 8 + %1157 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1155, i32 0, i32 1 + store i64 0, ptr %1157, align 4 + %1158 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1155, align 8 + %1159 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 58) + %1160 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %1154, ptr %1159, i64 8, %"github.com/goplus/llgo/internal/runtime.String" %1158, i1 false) + %1161 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %1162 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1161, i32 0, i32 0 + store ptr @6, ptr %1162, align 8 + %1163 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1161, i32 0, i32 1 + store i64 4, ptr %1163, align 4 + %1164 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1161, align 8 + %1165 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 112) + %1166 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %1165, i64 0 + store %"github.com/goplus/llgo/internal/abi.StructField" %1150, ptr %1166, align 8 + %1167 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %1165, i64 1 + store %"github.com/goplus/llgo/internal/abi.StructField" %1160, ptr %1167, align 8 + %1168 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %1169 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1168, i32 0, i32 0 + store ptr %1165, ptr %1169, align 8 + %1170 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1168, i32 0, i32 1 + store i64 2, ptr %1170, align 4 + %1171 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1168, i32 0, i32 2 + store i64 2, ptr %1171, align 4 + %1172 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1168, align 8 + %1173 = call ptr @"github.com/goplus/llgo/internal/runtime.Struct"(%"github.com/goplus/llgo/internal/runtime.String" %1164, i64 16, %"github.com/goplus/llgo/internal/runtime.Slice" %1172) + %1174 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %1120, ptr %1173, i64 96, %"github.com/goplus/llgo/internal/runtime.String" %1124, i1 false) %1175 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 %1176 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1175, i32 0, i32 0 - store ptr @24, ptr %1176, align 8 + store ptr @54, ptr %1176, align 8 %1177 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1175, i32 0, i32 1 - store i64 3, ptr %1177, align 4 + store i64 7, ptr %1177, align 4 %1178 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1175, align 8 - %1179 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 - %1180 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 - %1181 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1180, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %1178, ptr %1181, align 8 - %1182 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1180, i32 0, i32 1 - store ptr %1179, ptr %1182, align 8 - %1183 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1180, i32 0, i32 2 - store ptr @"github.com/goplus/llgo/internal/abi.(*MapType).Len", ptr %1183, align 8 - %1184 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1180, i32 0, i32 3 - store ptr @"github.com/goplus/llgo/internal/abi.(*MapType).Len", ptr %1184, align 8 - %1185 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %1180, align 8 - %1186 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %1187 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1186, i32 0, i32 0 - store ptr @39, ptr %1187, align 8 - %1188 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1186, i32 0, i32 1 - store i64 7, ptr %1188, align 4 - %1189 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1186, align 8 - %1190 = load ptr, ptr @"_llgo_func$d-NlqnjcQnaMjsBQY7qh2SWQmHb0XIigoceXdiJ8YT4", align 8 - %1191 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 - %1192 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1191, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %1189, ptr %1192, align 8 - %1193 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1191, i32 0, i32 1 - store ptr %1190, ptr %1193, align 8 - %1194 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1191, i32 0, i32 2 - store ptr @"github.com/goplus/llgo/internal/abi.(*MapType).MapType", ptr %1194, align 8 - %1195 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1191, i32 0, i32 3 - store ptr @"github.com/goplus/llgo/internal/abi.(*MapType).MapType", ptr %1195, align 8 - %1196 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %1191, align 8 - %1197 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %1198 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1197, i32 0, i32 0 - store ptr @50, ptr %1198, align 8 - %1199 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1197, i32 0, i32 1 - store i64 13, ptr %1199, align 4 - %1200 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1197, align 8 - %1201 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 - %1202 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 - %1203 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1202, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %1200, ptr %1203, align 8 - %1204 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1202, i32 0, i32 1 - store ptr %1201, ptr %1204, align 8 - %1205 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1202, i32 0, i32 2 - store ptr @"github.com/goplus/llgo/internal/abi.(*MapType).NeedKeyUpdate", ptr %1205, align 8 - %1206 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1202, i32 0, i32 3 - store ptr @"github.com/goplus/llgo/internal/abi.(*MapType).NeedKeyUpdate", ptr %1206, align 8 - %1207 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %1202, align 8 - %1208 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %1209 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1208, i32 0, i32 0 - store ptr @51, ptr %1209, align 8 - %1210 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1208, i32 0, i32 1 - store i64 8, ptr %1210, align 4 - %1211 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1208, align 8 - %1212 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 - %1213 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 - %1214 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1213, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %1211, ptr %1214, align 8 - %1215 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1213, i32 0, i32 1 - store ptr %1212, ptr %1215, align 8 - %1216 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1213, i32 0, i32 2 - store ptr @"github.com/goplus/llgo/internal/abi.(*MapType).Pointers", ptr %1216, align 8 - %1217 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1213, i32 0, i32 3 - store ptr @"github.com/goplus/llgo/internal/abi.(*MapType).Pointers", ptr %1217, align 8 - %1218 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %1213, align 8 - %1219 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %1220 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1219, i32 0, i32 0 - store ptr @52, ptr %1220, align 8 - %1221 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1219, i32 0, i32 1 - store i64 12, ptr %1221, align 4 - %1222 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1219, align 8 - %1223 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 - %1224 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 - %1225 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1224, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %1222, ptr %1225, align 8 - %1226 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1224, i32 0, i32 1 - store ptr %1223, ptr %1226, align 8 - %1227 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1224, i32 0, i32 2 - store ptr @"github.com/goplus/llgo/internal/abi.(*MapType).ReflexiveKey", ptr %1227, align 8 - %1228 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1224, i32 0, i32 3 - store ptr @"github.com/goplus/llgo/internal/abi.(*MapType).ReflexiveKey", ptr %1228, align 8 - %1229 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %1224, align 8 - %1230 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %1231 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1230, i32 0, i32 0 - store ptr @53, ptr %1231, align 8 - %1232 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1230, i32 0, i32 1 - store i64 4, ptr %1232, align 4 - %1233 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1230, align 8 - %1234 = load ptr, ptr @_llgo_uintptr, align 8 - %1235 = load ptr, ptr @"_llgo_func$1kITCsyu7hFLMxHLR7kDlvu4SOra_HtrtdFUQH9P13s", align 8 - %1236 = icmp eq ptr %1235, null - br i1 %1236, label %_llgo_63, label %_llgo_64 - -_llgo_62: ; preds = %_llgo_88, %_llgo_60 - %1237 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/internal/abi.MapType", align 8 - %1238 = icmp eq ptr %1237, null - br i1 %1238, label %_llgo_89, label %_llgo_90 - -_llgo_63: ; preds = %_llgo_61 - %1239 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 0) - %1240 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %1241 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1240, i32 0, i32 0 - store ptr %1239, ptr %1241, align 8 - %1242 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1240, i32 0, i32 1 - store i64 0, ptr %1242, align 4 - %1243 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1240, i32 0, i32 2 - store i64 0, ptr %1243, align 4 - %1244 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1240, align 8 - %1245 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 8) - %1246 = getelementptr ptr, ptr %1245, i64 0 - store ptr %1234, ptr %1246, align 8 - %1247 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %1248 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1247, i32 0, i32 0 - store ptr %1245, ptr %1248, align 8 - %1249 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1247, i32 0, i32 1 - store i64 1, ptr %1249, align 4 - %1250 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1247, i32 0, i32 2 - store i64 1, ptr %1250, align 4 - %1251 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1247, align 8 - %1252 = call ptr @"github.com/goplus/llgo/internal/runtime.Func"(%"github.com/goplus/llgo/internal/runtime.Slice" %1244, %"github.com/goplus/llgo/internal/runtime.Slice" %1251, i1 false) - call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %1252) - store ptr %1252, ptr @"_llgo_func$1kITCsyu7hFLMxHLR7kDlvu4SOra_HtrtdFUQH9P13s", align 8 - br label %_llgo_64 - -_llgo_64: ; preds = %_llgo_63, %_llgo_61 - %1253 = load ptr, ptr @"_llgo_func$1kITCsyu7hFLMxHLR7kDlvu4SOra_HtrtdFUQH9P13s", align 8 - %1254 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 - %1255 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1254, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %1233, ptr %1255, align 8 - %1256 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1254, i32 0, i32 1 - store ptr %1253, ptr %1256, align 8 - %1257 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1254, i32 0, i32 2 - store ptr @"github.com/goplus/llgo/internal/abi.(*MapType).Size", ptr %1257, align 8 - %1258 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1254, i32 0, i32 3 - store ptr @"github.com/goplus/llgo/internal/abi.(*MapType).Size", ptr %1258, align 8 - %1259 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %1254, align 8 - %1260 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %1261 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1260, i32 0, i32 0 - store ptr @37, ptr %1261, align 8 - %1262 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1260, i32 0, i32 1 - store i64 6, ptr %1262, align 4 - %1263 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1260, align 8 - %1264 = load ptr, ptr @"_llgo_func$zNDVRsWTIpUPKouNUS805RGX--IV9qVK8B31IZbg5to", align 8 - %1265 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 - %1266 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1265, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %1263, ptr %1266, align 8 - %1267 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1265, i32 0, i32 1 - store ptr %1264, ptr %1267, align 8 - %1268 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1265, i32 0, i32 2 - store ptr @"github.com/goplus/llgo/internal/abi.(*MapType).String", ptr %1268, align 8 - %1269 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1265, i32 0, i32 3 - store ptr @"github.com/goplus/llgo/internal/abi.(*MapType).String", ptr %1269, align 8 - %1270 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %1265, align 8 - %1271 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %1272 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1271, i32 0, i32 0 - store ptr @54, ptr %1272, align 8 - %1273 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1271, i32 0, i32 1 - store i64 10, ptr %1273, align 4 - %1274 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1271, align 8 - %1275 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(i64 25, i64 120, i64 0, i64 18) - %1276 = load ptr, ptr @"_llgo_github.com/goplus/llgo/internal/abi.StructType", align 8 - %1277 = icmp eq ptr %1276, null - br i1 %1277, label %_llgo_65, label %_llgo_66 - -_llgo_65: ; preds = %_llgo_64 - store ptr %1275, ptr @"_llgo_github.com/goplus/llgo/internal/abi.StructType", align 8 + %1179 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %1180 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1179, i32 0, i32 0 + store ptr null, ptr %1180, align 8 + %1181 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1179, i32 0, i32 1 + store i64 0, ptr %1181, align 4 + %1182 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1179, align 8 + %1183 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 40) + %1184 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %1178, ptr %1183, i64 112, %"github.com/goplus/llgo/internal/runtime.String" %1182, i1 false) + %1185 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %1186 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1185, i32 0, i32 0 + store ptr @55, ptr %1186, align 8 + %1187 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1185, i32 0, i32 1 + store i64 9, ptr %1187, align 4 + %1188 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1185, align 8 + %1189 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %1190 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1189, i32 0, i32 0 + store ptr null, ptr %1190, align 8 + %1191 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1189, i32 0, i32 1 + store i64 0, ptr %1191, align 4 + %1192 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1189, align 8 + %1193 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 40) + %1194 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %1188, ptr %1193, i64 113, %"github.com/goplus/llgo/internal/runtime.String" %1192, i1 false) + %1195 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %1196 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1195, i32 0, i32 0 + store ptr @56, ptr %1196, align 8 + %1197 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1195, i32 0, i32 1 + store i64 10, ptr %1197, align 4 + %1198 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1195, align 8 + %1199 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %1200 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1199, i32 0, i32 0 + store ptr null, ptr %1200, align 8 + %1201 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1199, i32 0, i32 1 + store i64 0, ptr %1201, align 4 + %1202 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1199, align 8 + %1203 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 41) + %1204 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %1198, ptr %1203, i64 114, %"github.com/goplus/llgo/internal/runtime.String" %1202, i1 false) + %1205 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %1206 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1205, i32 0, i32 0 + store ptr @57, ptr %1206, align 8 + %1207 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1205, i32 0, i32 1 + store i64 5, ptr %1207, align 4 + %1208 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1205, align 8 + %1209 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %1210 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1209, i32 0, i32 0 + store ptr null, ptr %1210, align 8 + %1211 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1209, i32 0, i32 1 + store i64 0, ptr %1211, align 4 + %1212 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1209, align 8 + %1213 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 42) + %1214 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %1208, ptr %1213, i64 116, %"github.com/goplus/llgo/internal/runtime.String" %1212, i1 false) + %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 @6, ptr %1216, align 8 + %1217 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1215, i32 0, i32 1 + store i64 4, ptr %1217, align 4 + %1218 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1215, align 8 + %1219 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 504) + %1220 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %1219, i64 0 + store %"github.com/goplus/llgo/internal/abi.StructField" %1086, ptr %1220, align 8 + %1221 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %1219, i64 1 + store %"github.com/goplus/llgo/internal/abi.StructField" %1096, ptr %1221, align 8 + %1222 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %1219, i64 2 + store %"github.com/goplus/llgo/internal/abi.StructField" %1106, ptr %1222, align 8 + %1223 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %1219, i64 3 + store %"github.com/goplus/llgo/internal/abi.StructField" %1116, ptr %1223, align 8 + %1224 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %1219, i64 4 + store %"github.com/goplus/llgo/internal/abi.StructField" %1174, ptr %1224, align 8 + %1225 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %1219, i64 5 + store %"github.com/goplus/llgo/internal/abi.StructField" %1184, ptr %1225, align 8 + %1226 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %1219, i64 6 + store %"github.com/goplus/llgo/internal/abi.StructField" %1194, ptr %1226, align 8 + %1227 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %1219, i64 7 + store %"github.com/goplus/llgo/internal/abi.StructField" %1204, ptr %1227, align 8 + %1228 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %1219, i64 8 + store %"github.com/goplus/llgo/internal/abi.StructField" %1214, ptr %1228, align 8 + %1229 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %1230 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1229, i32 0, i32 0 + store ptr %1219, ptr %1230, align 8 + %1231 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1229, i32 0, i32 1 + store i64 9, ptr %1231, align 4 + %1232 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1229, i32 0, i32 2 + store i64 9, ptr %1232, align 4 + %1233 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1229, align 8 + %1234 = call ptr @"github.com/goplus/llgo/internal/runtime.Struct"(%"github.com/goplus/llgo/internal/runtime.String" %1218, i64 120, %"github.com/goplus/llgo/internal/runtime.Slice" %1233) + store ptr %1234, ptr @"main.struct$Yk42tBqeO4BzIoRAwt__cbPj2UwIDCP07Kg_SR7sBZM", align 8 + %1235 = load ptr, ptr @"main.struct$Yk42tBqeO4BzIoRAwt__cbPj2UwIDCP07Kg_SR7sBZM", align 8 + br i1 %1050, label %_llgo_63, label %_llgo_64 + +_llgo_63: ; preds = %_llgo_62 + %1236 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %1237 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1236, i32 0, i32 0 + store ptr @22, ptr %1237, align 8 + %1238 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1236, i32 0, i32 1 + store i64 5, ptr %1238, align 4 + %1239 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1236, align 8 + %1240 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 + %1241 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %1242 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1241, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %1239, ptr %1242, align 8 + %1243 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1241, i32 0, i32 1 + store ptr %1240, ptr %1243, align 8 + %1244 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1241, i32 0, i32 2 + store ptr @"github.com/goplus/llgo/internal/abi.(*MapType).Align", ptr %1244, align 8 + %1245 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1241, i32 0, i32 3 + store ptr @"github.com/goplus/llgo/internal/abi.(*MapType).Align", ptr %1245, align 8 + %1246 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %1241, align 8 + %1247 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %1248 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1247, i32 0, i32 0 + store ptr @23, ptr %1248, align 8 + %1249 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1247, i32 0, i32 1 + store i64 9, ptr %1249, align 4 + %1250 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1247, align 8 + %1251 = load ptr, ptr @"_llgo_func$CsVqlCxhoEcIvPD5BSBukfSiD9C7Ic5_Gf32MLbCWB4", align 8 + %1252 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %1253 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1252, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %1250, ptr %1253, align 8 + %1254 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1252, i32 0, i32 1 + store ptr %1251, ptr %1254, align 8 + %1255 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1252, i32 0, i32 2 + store ptr @"github.com/goplus/llgo/internal/abi.(*MapType).ArrayType", ptr %1255, align 8 + %1256 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1252, i32 0, i32 3 + store ptr @"github.com/goplus/llgo/internal/abi.(*MapType).ArrayType", ptr %1256, align 8 + %1257 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %1252, align 8 + %1258 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %1259 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1258, i32 0, i32 0 + store ptr @29, ptr %1259, align 8 + %1260 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1258, i32 0, i32 1 + store i64 7, ptr %1260, align 4 + %1261 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1258, align 8 + %1262 = load ptr, ptr @"_llgo_func$TrNr0CVWj6qegOngzWbt2Jl7pr7IBJ5gOmgUf2ieIi4", align 8 + %1263 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %1264 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1263, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %1261, ptr %1264, align 8 + %1265 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1263, i32 0, i32 1 + store ptr %1262, ptr %1265, align 8 + %1266 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1263, i32 0, i32 2 + store ptr @"github.com/goplus/llgo/internal/abi.(*MapType).ChanDir", ptr %1266, align 8 + %1267 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1263, i32 0, i32 3 + store ptr @"github.com/goplus/llgo/internal/abi.(*MapType).ChanDir", ptr %1267, align 8 + %1268 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %1263, align 8 + %1269 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %1270 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1269, i32 0, i32 0 + store ptr @32, ptr %1270, align 8 + %1271 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1269, i32 0, i32 1 + store i64 6, ptr %1271, align 4 + %1272 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1269, align 8 + %1273 = load ptr, ptr @"_llgo_func$4-mqItKfDlL0CgVKnUxoresYgh6zW1WSlZYZSsVzLRo", align 8 + %1274 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %1275 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1274, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %1272, ptr %1275, align 8 + %1276 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1274, i32 0, i32 1 + store ptr %1273, ptr %1276, align 8 + %1277 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1274, i32 0, i32 2 + store ptr @"github.com/goplus/llgo/internal/abi.(*MapType).Common", ptr %1277, align 8 + %1278 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1274, i32 0, i32 3 + store ptr @"github.com/goplus/llgo/internal/abi.(*MapType).Common", ptr %1278, align 8 + %1279 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %1274, align 8 + %1280 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %1281 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1280, i32 0, i32 0 + store ptr @33, ptr %1281, align 8 + %1282 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1280, i32 0, i32 1 + store i64 10, ptr %1282, align 4 + %1283 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1280, align 8 + %1284 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 + %1285 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %1286 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1285, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %1283, ptr %1286, align 8 + %1287 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1285, i32 0, i32 1 + store ptr %1284, ptr %1287, align 8 + %1288 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1285, i32 0, i32 2 + store ptr @"github.com/goplus/llgo/internal/abi.(*MapType).FieldAlign", ptr %1288, align 8 + %1289 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1285, i32 0, i32 3 + store ptr @"github.com/goplus/llgo/internal/abi.(*MapType).FieldAlign", ptr %1289, align 8 + %1290 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %1285, align 8 + %1291 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %1292 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1291, i32 0, i32 0 + store ptr @34, ptr %1292, align 8 + %1293 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1291, i32 0, i32 1 + store i64 8, ptr %1293, align 4 + %1294 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1291, align 8 + %1295 = load ptr, ptr @"_llgo_func$DsoxgOnxqV7tLvokF3AA14v1gtHsHaThoC8Q_XGcQww", align 8 + %1296 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %1297 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1296, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %1294, ptr %1297, align 8 + %1298 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1296, i32 0, i32 1 + store ptr %1295, ptr %1298, align 8 + %1299 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1296, i32 0, i32 2 + store ptr @"github.com/goplus/llgo/internal/abi.(*MapType).FuncType", ptr %1299, align 8 + %1300 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1296, i32 0, i32 3 + store ptr @"github.com/goplus/llgo/internal/abi.(*MapType).FuncType", ptr %1300, align 8 + %1301 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %1296, align 8 + %1302 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %1303 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1302, i32 0, i32 0 + store ptr @38, ptr %1303, align 8 + %1304 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1302, i32 0, i32 1 + store i64 7, ptr %1304, align 4 + %1305 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1302, align 8 + %1306 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 + %1307 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %1308 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1307, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %1305, ptr %1308, align 8 + %1309 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1307, i32 0, i32 1 + store ptr %1306, ptr %1309, align 8 + %1310 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1307, i32 0, i32 2 + store ptr @"github.com/goplus/llgo/internal/abi.(*MapType).HasName", ptr %1310, align 8 + %1311 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1307, i32 0, i32 3 + store ptr @"github.com/goplus/llgo/internal/abi.(*MapType).HasName", ptr %1311, align 8 + %1312 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %1307, align 8 + %1313 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %1314 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1313, i32 0, i32 0 + store ptr @58, ptr %1314, align 8 + %1315 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1313, i32 0, i32 1 + store i64 14, ptr %1315, align 4 + %1316 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1313, align 8 + %1317 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 + %1318 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %1319 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1318, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %1316, ptr %1319, align 8 + %1320 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1318, i32 0, i32 1 + store ptr %1317, ptr %1320, align 8 + %1321 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1318, i32 0, i32 2 + store ptr @"github.com/goplus/llgo/internal/abi.(*MapType).HashMightPanic", ptr %1321, align 8 + %1322 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1318, i32 0, i32 3 + store ptr @"github.com/goplus/llgo/internal/abi.(*MapType).HashMightPanic", ptr %1322, align 8 + %1323 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %1318, align 8 + %1324 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %1325 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1324, i32 0, i32 0 + store ptr @39, ptr %1325, align 8 + %1326 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1324, i32 0, i32 1 + store i64 10, ptr %1326, align 4 + %1327 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1324, align 8 + %1328 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 + %1329 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %1330 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1329, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %1327, ptr %1330, align 8 + %1331 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1329, i32 0, i32 1 + store ptr %1328, ptr %1331, align 8 + %1332 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1329, i32 0, i32 2 + store ptr @"github.com/goplus/llgo/internal/abi.(*MapType).IfaceIndir", ptr %1332, align 8 + %1333 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1329, i32 0, i32 3 + store ptr @"github.com/goplus/llgo/internal/abi.(*MapType).IfaceIndir", ptr %1333, align 8 + %1334 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %1329, align 8 + %1335 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %1336 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1335, i32 0, i32 0 + store ptr @59, ptr %1336, align 8 + %1337 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1335, i32 0, i32 1 + store i64 12, ptr %1337, align 4 + %1338 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1335, align 8 + %1339 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 + %1340 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %1341 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1340, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %1338, ptr %1341, align 8 + %1342 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1340, i32 0, i32 1 + store ptr %1339, ptr %1342, align 8 + %1343 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1340, i32 0, i32 2 + store ptr @"github.com/goplus/llgo/internal/abi.(*MapType).IndirectElem", ptr %1343, align 8 + %1344 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1340, i32 0, i32 3 + store ptr @"github.com/goplus/llgo/internal/abi.(*MapType).IndirectElem", ptr %1344, align 8 + %1345 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %1340, align 8 + %1346 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %1347 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1346, i32 0, i32 0 + store ptr @60, ptr %1347, align 8 + %1348 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1346, i32 0, i32 1 + store i64 11, ptr %1348, align 4 + %1349 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1346, align 8 + %1350 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 + %1351 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %1352 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1351, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %1349, ptr %1352, align 8 + %1353 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1351, i32 0, i32 1 + store ptr %1350, ptr %1353, align 8 + %1354 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1351, i32 0, i32 2 + store ptr @"github.com/goplus/llgo/internal/abi.(*MapType).IndirectKey", ptr %1354, align 8 + %1355 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1351, i32 0, i32 3 + store ptr @"github.com/goplus/llgo/internal/abi.(*MapType).IndirectKey", ptr %1355, align 8 + %1356 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %1351, align 8 + %1357 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %1358 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1357, i32 0, i32 0 + store ptr @40, ptr %1358, align 8 + %1359 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1357, i32 0, i32 1 + store i64 13, ptr %1359, align 4 + %1360 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1357, align 8 + %1361 = load ptr, ptr @"_llgo_func$1QmforOaCy2fBAssC2y1FWCCT6fpq9RKwP2j2HIASY8", align 8 + %1362 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %1363 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1362, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %1360, ptr %1363, align 8 + %1364 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1362, i32 0, i32 1 + store ptr %1361, ptr %1364, align 8 + %1365 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1362, i32 0, i32 2 + store ptr @"github.com/goplus/llgo/internal/abi.(*MapType).InterfaceType", ptr %1365, align 8 + %1366 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1362, i32 0, i32 3 + store ptr @"github.com/goplus/llgo/internal/abi.(*MapType).InterfaceType", ptr %1366, align 8 + %1367 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %1362, align 8 + %1368 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %1369 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1368, i32 0, i32 0 + store ptr @45, ptr %1369, align 8 + %1370 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1368, i32 0, i32 1 + store i64 13, ptr %1370, align 4 + %1371 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1368, align 8 + %1372 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 + %1373 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %1374 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1373, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %1371, ptr %1374, align 8 + %1375 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1373, i32 0, i32 1 + store ptr %1372, ptr %1375, align 8 + %1376 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1373, i32 0, i32 2 + store ptr @"github.com/goplus/llgo/internal/abi.(*MapType).IsDirectIface", ptr %1376, align 8 + %1377 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1373, i32 0, i32 3 + store ptr @"github.com/goplus/llgo/internal/abi.(*MapType).IsDirectIface", ptr %1377, align 8 + %1378 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %1373, align 8 + %1379 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %1380 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1379, i32 0, i32 0 + store ptr @47, ptr %1380, align 8 + %1381 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1379, i32 0, i32 1 + store i64 4, ptr %1381, align 4 + %1382 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1379, align 8 + %1383 = load ptr, ptr @"_llgo_func$ntUE0UmVAWPS2O7GpCCGszSn-XnjHJntZZ2jYtwbFXI", align 8 + %1384 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %1385 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1384, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %1382, ptr %1385, align 8 + %1386 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1384, i32 0, i32 1 + store ptr %1383, ptr %1386, align 8 + %1387 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1384, i32 0, i32 2 + store ptr @"github.com/goplus/llgo/internal/abi.(*MapType).Kind", ptr %1387, align 8 + %1388 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1384, i32 0, i32 3 + store ptr @"github.com/goplus/llgo/internal/abi.(*MapType).Kind", ptr %1388, align 8 + %1389 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %1384, align 8 + %1390 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %1391 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1390, i32 0, i32 0 + store ptr @28, ptr %1391, align 8 + %1392 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1390, i32 0, i32 1 + store i64 3, ptr %1392, align 4 + %1393 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1390, align 8 + %1394 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 + %1395 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %1396 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1395, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %1393, ptr %1396, align 8 + %1397 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1395, i32 0, i32 1 + store ptr %1394, ptr %1397, align 8 + %1398 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1395, i32 0, i32 2 + store ptr @"github.com/goplus/llgo/internal/abi.(*MapType).Len", ptr %1398, align 8 + %1399 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1395, i32 0, i32 3 + store ptr @"github.com/goplus/llgo/internal/abi.(*MapType).Len", ptr %1399, align 8 + %1400 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %1395, align 8 + %1401 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %1402 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1401, i32 0, i32 0 + store ptr @50, ptr %1402, align 8 + %1403 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1401, i32 0, i32 1 + store i64 7, ptr %1403, align 4 + %1404 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1401, align 8 + %1405 = load ptr, ptr @"_llgo_func$d-NlqnjcQnaMjsBQY7qh2SWQmHb0XIigoceXdiJ8YT4", align 8 + %1406 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %1407 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1406, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %1404, ptr %1407, align 8 + %1408 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1406, i32 0, i32 1 + store ptr %1405, ptr %1408, align 8 + %1409 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1406, i32 0, i32 2 + store ptr @"github.com/goplus/llgo/internal/abi.(*MapType).MapType", ptr %1409, align 8 + %1410 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1406, i32 0, i32 3 + store ptr @"github.com/goplus/llgo/internal/abi.(*MapType).MapType", ptr %1410, align 8 + %1411 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %1406, align 8 + %1412 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %1413 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1412, i32 0, i32 0 + store ptr @61, ptr %1413, align 8 + %1414 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1412, i32 0, i32 1 + store i64 13, ptr %1414, align 4 + %1415 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1412, align 8 + %1416 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 + %1417 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %1418 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1417, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %1415, ptr %1418, align 8 + %1419 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1417, i32 0, i32 1 + store ptr %1416, ptr %1419, align 8 + %1420 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1417, i32 0, i32 2 + store ptr @"github.com/goplus/llgo/internal/abi.(*MapType).NeedKeyUpdate", ptr %1420, align 8 + %1421 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1417, i32 0, i32 3 + store ptr @"github.com/goplus/llgo/internal/abi.(*MapType).NeedKeyUpdate", ptr %1421, align 8 + %1422 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %1417, align 8 + %1423 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %1424 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1423, i32 0, i32 0 + store ptr @62, ptr %1424, align 8 + %1425 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1423, i32 0, i32 1 + store i64 8, ptr %1425, align 4 + %1426 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1423, align 8 + %1427 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 + %1428 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %1429 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1428, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %1426, ptr %1429, align 8 + %1430 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1428, i32 0, i32 1 + store ptr %1427, ptr %1430, align 8 + %1431 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1428, i32 0, i32 2 + store ptr @"github.com/goplus/llgo/internal/abi.(*MapType).Pointers", ptr %1431, align 8 + %1432 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1428, i32 0, i32 3 + store ptr @"github.com/goplus/llgo/internal/abi.(*MapType).Pointers", ptr %1432, align 8 + %1433 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %1428, align 8 + %1434 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %1435 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1434, i32 0, i32 0 + store ptr @63, ptr %1435, align 8 + %1436 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1434, i32 0, i32 1 + store i64 12, ptr %1436, align 4 + %1437 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1434, align 8 + %1438 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 + %1439 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %1440 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1439, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %1437, ptr %1440, align 8 + %1441 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1439, i32 0, i32 1 + store ptr %1438, ptr %1441, align 8 + %1442 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1439, i32 0, i32 2 + store ptr @"github.com/goplus/llgo/internal/abi.(*MapType).ReflexiveKey", ptr %1442, align 8 + %1443 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1439, i32 0, i32 3 + store ptr @"github.com/goplus/llgo/internal/abi.(*MapType).ReflexiveKey", ptr %1443, align 8 + %1444 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %1439, align 8 + %1445 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %1446 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1445, i32 0, i32 0 + store ptr @64, ptr %1446, align 8 + %1447 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1445, i32 0, i32 1 + store i64 4, ptr %1447, align 4 + %1448 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1445, align 8 + %1449 = load ptr, ptr @_llgo_uintptr, align 8 + %1450 = load ptr, ptr @"_llgo_func$1kITCsyu7hFLMxHLR7kDlvu4SOra_HtrtdFUQH9P13s", align 8 + %1451 = icmp eq ptr %1450, null + br i1 %1451, label %_llgo_65, label %_llgo_66 + +_llgo_64: ; preds = %_llgo_90, %_llgo_62 + %1452 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %1453 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1452, i32 0, i32 0 + store ptr @51, ptr %1453, align 8 + %1454 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1452, i32 0, i32 1 + store i64 43, ptr %1454, align 4 + %1455 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1452, align 8 + %1456 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(%"github.com/goplus/llgo/internal/runtime.String" %1455, i64 25, i64 136, i64 0, i64 23) + %1457 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/internal/abi.MapType", align 8 + %1458 = icmp eq ptr %1457, null + br i1 %1458, label %_llgo_91, label %_llgo_92 + +_llgo_65: ; preds = %_llgo_63 + %1459 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 0) + %1460 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %1461 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1460, i32 0, i32 0 + store ptr %1459, ptr %1461, align 8 + %1462 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1460, i32 0, i32 1 + store i64 0, ptr %1462, align 4 + %1463 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1460, i32 0, i32 2 + store i64 0, ptr %1463, align 4 + %1464 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1460, align 8 + %1465 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 8) + %1466 = getelementptr ptr, ptr %1465, i64 0 + store ptr %1449, ptr %1466, align 8 + %1467 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %1468 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1467, i32 0, i32 0 + store ptr %1465, ptr %1468, align 8 + %1469 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1467, i32 0, i32 1 + store i64 1, ptr %1469, align 4 + %1470 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1467, i32 0, i32 2 + store i64 1, ptr %1470, align 4 + %1471 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1467, align 8 + %1472 = call ptr @"github.com/goplus/llgo/internal/runtime.Func"(%"github.com/goplus/llgo/internal/runtime.Slice" %1464, %"github.com/goplus/llgo/internal/runtime.Slice" %1471, i1 false) + call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %1472) + store ptr %1472, ptr @"_llgo_func$1kITCsyu7hFLMxHLR7kDlvu4SOra_HtrtdFUQH9P13s", align 8 br label %_llgo_66 -_llgo_66: ; preds = %_llgo_65, %_llgo_64 - %1278 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(i64 25, i64 56, i64 0, i64 2) - %1279 = load ptr, ptr @"_llgo_struct$K_cvuhBwc2_5r7UW089ibWfcfsGoDb4pZ7K19IcMTk0", align 8 - %1280 = icmp eq ptr %1279, null - br i1 %1280, label %_llgo_67, label %_llgo_68 +_llgo_66: ; preds = %_llgo_65, %_llgo_63 + %1473 = load ptr, ptr @"_llgo_func$1kITCsyu7hFLMxHLR7kDlvu4SOra_HtrtdFUQH9P13s", align 8 + %1474 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %1475 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1474, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %1448, ptr %1475, align 8 + %1476 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1474, i32 0, i32 1 + store ptr %1473, ptr %1476, align 8 + %1477 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1474, i32 0, i32 2 + store ptr @"github.com/goplus/llgo/internal/abi.(*MapType).Size", ptr %1477, align 8 + %1478 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1474, i32 0, i32 3 + store ptr @"github.com/goplus/llgo/internal/abi.(*MapType).Size", ptr %1478, align 8 + %1479 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %1474, align 8 + %1480 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %1481 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1480, i32 0, i32 0 + store ptr @49, ptr %1481, align 8 + %1482 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1480, i32 0, i32 1 + store i64 6, ptr %1482, align 4 + %1483 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1480, align 8 + %1484 = load ptr, ptr @"_llgo_func$zNDVRsWTIpUPKouNUS805RGX--IV9qVK8B31IZbg5to", align 8 + %1485 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %1486 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1485, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %1483, ptr %1486, align 8 + %1487 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1485, i32 0, i32 1 + store ptr %1484, ptr %1487, align 8 + %1488 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1485, i32 0, i32 2 + store ptr @"github.com/goplus/llgo/internal/abi.(*MapType).String", ptr %1488, align 8 + %1489 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1485, i32 0, i32 3 + store ptr @"github.com/goplus/llgo/internal/abi.(*MapType).String", ptr %1489, align 8 + %1490 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %1485, align 8 + %1491 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %1492 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1491, i32 0, i32 0 + store ptr @65, ptr %1492, align 8 + %1493 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1491, i32 0, i32 1 + store i64 10, ptr %1493, align 4 + %1494 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1491, align 8 + %1495 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %1496 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1495, i32 0, i32 0 + store ptr @66, ptr %1496, align 8 + %1497 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1495, i32 0, i32 1 + store i64 46, ptr %1497, align 4 + %1498 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1495, align 8 + %1499 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(%"github.com/goplus/llgo/internal/runtime.String" %1498, i64 25, i64 120, i64 0, i64 20) + %1500 = load ptr, ptr @"_llgo_github.com/goplus/llgo/internal/abi.StructType", align 8 + %1501 = icmp eq ptr %1500, null + br i1 %1501, label %_llgo_67, label %_llgo_68 _llgo_67: ; preds = %_llgo_66 - %1281 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %1282 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1281, i32 0, i32 0 - store ptr @21, ptr %1282, align 8 - %1283 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1281, i32 0, i32 1 - store i64 4, ptr %1283, align 4 - %1284 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1281, align 8 - %1285 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %1286 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1285, i32 0, i32 0 - store ptr null, ptr %1286, align 8 - %1287 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1285, i32 0, i32 1 - store i64 0, ptr %1287, align 4 - %1288 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1285, align 8 - %1289 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %1284, ptr %3, i64 0, %"github.com/goplus/llgo/internal/runtime.String" %1288, i1 true) - %1290 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %1291 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1290, i32 0, i32 0 - store ptr @33, ptr %1291, align 8 - %1292 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1290, i32 0, i32 1 - store i64 8, ptr %1292, align 4 - %1293 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1290, align 8 - %1294 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %1295 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1294, i32 0, i32 0 - store ptr null, ptr %1295, align 8 - %1296 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1294, i32 0, i32 1 - store i64 0, ptr %1296, align 4 - %1297 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1294, align 8 - %1298 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 24) - %1299 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %1293, ptr %1298, i64 72, %"github.com/goplus/llgo/internal/runtime.String" %1297, i1 false) - %1300 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %1301 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1300, i32 0, i32 0 - store ptr @55, ptr %1301, align 8 - %1302 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1300, i32 0, i32 1 - store i64 6, ptr %1302, align 4 - %1303 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1300, align 8 - %1304 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %1305 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1304, i32 0, i32 0 - store ptr null, ptr %1305, align 8 - %1306 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1304, i32 0, i32 1 - store i64 0, ptr %1306, align 4 - %1307 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1304, align 8 - %1308 = call ptr @"github.com/goplus/llgo/internal/runtime.SliceOf"(ptr %1278) - %1309 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %1303, ptr %1308, i64 88, %"github.com/goplus/llgo/internal/runtime.String" %1307, i1 false) - %1310 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %1311 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1310, i32 0, i32 0 - store ptr @4, ptr %1311, align 8 - %1312 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1310, i32 0, i32 1 - store i64 4, ptr %1312, align 4 - %1313 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1310, align 8 - %1314 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 168) - %1315 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %1314, i64 0 - store %"github.com/goplus/llgo/internal/abi.StructField" %1289, ptr %1315, align 8 - %1316 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %1314, i64 1 - store %"github.com/goplus/llgo/internal/abi.StructField" %1299, ptr %1316, align 8 - %1317 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %1314, i64 2 - store %"github.com/goplus/llgo/internal/abi.StructField" %1309, ptr %1317, align 8 - %1318 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %1319 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1318, i32 0, i32 0 - store ptr %1314, ptr %1319, align 8 - %1320 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1318, i32 0, i32 1 - store i64 3, ptr %1320, align 4 - %1321 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1318, i32 0, i32 2 - store i64 3, ptr %1321, align 4 - %1322 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1318, align 8 - %1323 = call ptr @"github.com/goplus/llgo/internal/runtime.Struct"(%"github.com/goplus/llgo/internal/runtime.String" %1313, i64 112, %"github.com/goplus/llgo/internal/runtime.Slice" %1322) - store ptr %1323, ptr @"_llgo_struct$K_cvuhBwc2_5r7UW089ibWfcfsGoDb4pZ7K19IcMTk0", align 8 + store ptr %1499, ptr @"_llgo_github.com/goplus/llgo/internal/abi.StructType", align 8 br label %_llgo_68 _llgo_68: ; preds = %_llgo_67, %_llgo_66 - %1324 = load ptr, ptr @"_llgo_struct$K_cvuhBwc2_5r7UW089ibWfcfsGoDb4pZ7K19IcMTk0", align 8 - br i1 %1277, label %_llgo_69, label %_llgo_70 + %1502 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %1503 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1502, i32 0, i32 0 + store ptr @1, ptr %1503, align 8 + %1504 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1502, i32 0, i32 1 + store i64 40, ptr %1504, align 4 + %1505 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1502, align 8 + %1506 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(%"github.com/goplus/llgo/internal/runtime.String" %1505, i64 25, i64 80, i64 0, i64 20) + %1507 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %1508 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1507, i32 0, i32 0 + store ptr @67, ptr %1508, align 8 + %1509 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1507, i32 0, i32 1 + store i64 47, ptr %1509, align 4 + %1510 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1507, align 8 + %1511 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(%"github.com/goplus/llgo/internal/runtime.String" %1510, i64 25, i64 56, i64 0, i64 2) + %1512 = load ptr, ptr @"_llgo_struct$K_cvuhBwc2_5r7UW089ibWfcfsGoDb4pZ7K19IcMTk0", align 8 + %1513 = icmp eq ptr %1512, null + br i1 %1513, label %_llgo_69, label %_llgo_70 _llgo_69: ; preds = %_llgo_68 - %1325 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %1326 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1325, i32 0, i32 0 - store ptr @19, ptr %1326, align 8 - %1327 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1325, i32 0, i32 1 - store i64 5, ptr %1327, align 4 - %1328 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1325, align 8 - %1329 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 - %1330 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 - %1331 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1330, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %1328, ptr %1331, align 8 - %1332 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1330, i32 0, i32 1 - store ptr %1329, ptr %1332, align 8 - %1333 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1330, i32 0, i32 2 - store ptr @"github.com/goplus/llgo/internal/abi.(*StructType).Align", ptr %1333, align 8 - %1334 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1330, i32 0, i32 3 - store ptr @"github.com/goplus/llgo/internal/abi.(*StructType).Align", ptr %1334, align 8 - %1335 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %1330, align 8 - %1336 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %1337 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1336, i32 0, i32 0 - store ptr @20, ptr %1337, align 8 - %1338 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1336, i32 0, i32 1 - store i64 9, ptr %1338, align 4 - %1339 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1336, align 8 - %1340 = load ptr, ptr @"_llgo_func$CsVqlCxhoEcIvPD5BSBukfSiD9C7Ic5_Gf32MLbCWB4", align 8 - %1341 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 - %1342 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1341, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %1339, ptr %1342, align 8 - %1343 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1341, i32 0, i32 1 - store ptr %1340, ptr %1343, align 8 - %1344 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1341, i32 0, i32 2 - store ptr @"github.com/goplus/llgo/internal/abi.(*StructType).ArrayType", ptr %1344, align 8 - %1345 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1341, i32 0, i32 3 - store ptr @"github.com/goplus/llgo/internal/abi.(*StructType).ArrayType", ptr %1345, align 8 - %1346 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %1341, align 8 - %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 @25, ptr %1348, align 8 - %1349 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1347, i32 0, i32 1 - store i64 6, ptr %1349, align 4 - %1350 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1347, align 8 - %1351 = load ptr, ptr @"_llgo_func$4-mqItKfDlL0CgVKnUxoresYgh6zW1WSlZYZSsVzLRo", 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).Common", 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).Common", 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 @22, ptr %1359, align 8 - %1360 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1358, i32 0, i32 1 - store i64 4, ptr %1360, align 4 - %1361 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1358, align 8 - %1362 = load ptr, ptr @"_llgo_func$4-mqItKfDlL0CgVKnUxoresYgh6zW1WSlZYZSsVzLRo", 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).Elem", 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).Elem", 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 @26, ptr %1370, align 8 - %1371 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1369, i32 0, i32 1 - store i64 10, ptr %1371, align 4 - %1372 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1369, align 8 - %1373 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", 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).FieldAlign", 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).FieldAlign", 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 @27, ptr %1381, align 8 - %1382 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1380, i32 0, i32 1 - store i64 8, ptr %1382, align 4 - %1383 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1380, align 8 - %1384 = load ptr, ptr @"_llgo_func$DsoxgOnxqV7tLvokF3AA14v1gtHsHaThoC8Q_XGcQww", 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).FuncType", 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).FuncType", 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 @30, ptr %1392, align 8 - %1393 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1391, i32 0, i32 1 - store i64 7, ptr %1393, align 4 - %1394 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1391, align 8 - %1395 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", 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).HasName", 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).HasName", 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 @31, ptr %1403, align 8 - %1404 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1402, i32 0, i32 1 - store i64 10, ptr %1404, align 4 - %1405 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1402, align 8 - %1406 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", 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).IfaceIndir", 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).IfaceIndir", 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 @32, ptr %1414, align 8 - %1415 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1413, i32 0, i32 1 - store i64 13, ptr %1415, align 4 - %1416 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1413, align 8 - %1417 = load ptr, ptr @"_llgo_func$1QmforOaCy2fBAssC2y1FWCCT6fpq9RKwP2j2HIASY8", 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).InterfaceType", 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).InterfaceType", 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 @35, ptr %1425, align 8 - %1426 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1424, i32 0, i32 1 - store i64 13, 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).IsDirectIface", 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).IsDirectIface", 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 @36, ptr %1436, align 8 - %1437 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1435, i32 0, i32 1 - store i64 4, ptr %1437, align 4 - %1438 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1435, align 8 - %1439 = load ptr, ptr @"_llgo_func$ntUE0UmVAWPS2O7GpCCGszSn-XnjHJntZZ2jYtwbFXI", 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).Kind", 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).Kind", 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 @24, ptr %1447, align 8 - %1448 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1446, i32 0, i32 1 - store i64 3, ptr %1448, align 4 - %1449 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1446, align 8 - %1450 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", 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).Len", 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).Len", 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 @39, ptr %1458, align 8 - %1459 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1457, i32 0, i32 1 - store i64 7, ptr %1459, align 4 - %1460 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1457, align 8 - %1461 = load ptr, ptr @"_llgo_func$d-NlqnjcQnaMjsBQY7qh2SWQmHb0XIigoceXdiJ8YT4", 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).MapType", 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).MapType", 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 @51, ptr %1469, align 8 - %1470 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1468, i32 0, i32 1 - store i64 8, ptr %1470, align 4 - %1471 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1468, align 8 - %1472 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", 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).Pointers", 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).Pointers", 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 @53, ptr %1480, align 8 - %1481 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1479, i32 0, i32 1 - store i64 4, ptr %1481, align 4 - %1482 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1479, align 8 - %1483 = load ptr, ptr @"_llgo_func$1kITCsyu7hFLMxHLR7kDlvu4SOra_HtrtdFUQH9P13s", 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).Size", 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).Size", 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 @37, ptr %1491, align 8 - %1492 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1490, i32 0, i32 1 - store i64 6, ptr %1492, align 4 - %1493 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1490, align 8 - %1494 = load ptr, ptr @"_llgo_func$zNDVRsWTIpUPKouNUS805RGX--IV9qVK8B31IZbg5to", 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).String", 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).String", 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 @54, ptr %1502, align 8 - %1503 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1501, i32 0, i32 1 - store i64 10, ptr %1503, align 4 - %1504 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1501, align 8 - %1505 = load ptr, ptr @"_llgo_func$qiNnn6Cbm3GtDp4gDI4U_DRV3h8zlz91s9jrfOXC--U", 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).StructType", 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).StructType", 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 @56, ptr %1513, align 8 - %1514 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1512, i32 0, i32 1 - store i64 8, ptr %1514, align 4 - %1515 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1512, align 8 - %1516 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(i64 25, i64 24, i64 0, i64 2) - %1517 = load ptr, ptr @"_llgo_github.com/goplus/llgo/internal/abi.UncommonType", align 8 - %1518 = icmp eq ptr %1517, null - br i1 %1518, label %_llgo_71, label %_llgo_72 - -_llgo_70: ; preds = %_llgo_84, %_llgo_68 - %1519 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/internal/abi.StructType", align 8 - %1520 = icmp eq ptr %1519, null - br i1 %1520, label %_llgo_85, label %_llgo_86 - -_llgo_71: ; preds = %_llgo_69 - store ptr %1516, ptr @"_llgo_github.com/goplus/llgo/internal/abi.UncommonType", align 8 - br label %_llgo_72 - -_llgo_72: ; preds = %_llgo_71, %_llgo_69 - %1521 = load ptr, ptr @"_llgo_struct$OKIlItfBJsawrEMnVSc2VQ7pxNxCHIgSoitcM9n4FVI", align 8 - %1522 = icmp eq ptr %1521, null - br i1 %1522, label %_llgo_73, label %_llgo_74 - -_llgo_73: ; preds = %_llgo_72 + %1514 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %1515 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1514, i32 0, i32 0 + store ptr @25, ptr %1515, align 8 + %1516 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1514, i32 0, i32 1 + store i64 4, ptr %1516, align 4 + %1517 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1514, align 8 + %1518 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %1519 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1518, i32 0, i32 0 + store ptr null, ptr %1519, align 8 + %1520 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1518, i32 0, i32 1 + store i64 0, ptr %1520, align 4 + %1521 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1518, align 8 + %1522 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %1517, ptr %1506, i64 0, %"github.com/goplus/llgo/internal/runtime.String" %1521, i1 true) %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 @33, ptr %1524, align 8 + store ptr @43, ptr %1524, align 8 %1525 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1523, i32 0, i32 1 store i64 8, ptr %1525, align 4 %1526 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1523, align 8 @@ -2956,10 +2950,10 @@ _llgo_73: ; preds = %_llgo_72 store i64 0, ptr %1529, align 4 %1530 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1527, align 8 %1531 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 24) - %1532 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %1526, ptr %1531, i64 0, %"github.com/goplus/llgo/internal/runtime.String" %1530, i1 false) + %1532 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %1526, ptr %1531, i64 72, %"github.com/goplus/llgo/internal/runtime.String" %1530, i1 false) %1533 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 %1534 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1533, i32 0, i32 0 - store ptr @57, ptr %1534, align 8 + store ptr @68, ptr %1534, align 8 %1535 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1533, i32 0, i32 1 store i64 6, ptr %1535, align 4 %1536 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1533, align 8 @@ -2969,1316 +2963,1286 @@ _llgo_73: ; preds = %_llgo_72 %1539 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1537, i32 0, i32 1 store i64 0, ptr %1539, align 4 %1540 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1537, align 8 - %1541 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 41) - %1542 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %1536, ptr %1541, i64 16, %"github.com/goplus/llgo/internal/runtime.String" %1540, i1 false) + %1541 = call ptr @"github.com/goplus/llgo/internal/runtime.SliceOf"(ptr %1511) + %1542 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %1536, ptr %1541, i64 88, %"github.com/goplus/llgo/internal/runtime.String" %1540, i1 false) %1543 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 %1544 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1543, i32 0, i32 0 - store ptr @58, ptr %1544, align 8 + store ptr @6, ptr %1544, align 8 %1545 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1543, i32 0, i32 1 - store i64 6, ptr %1545, align 4 + store i64 4, ptr %1545, align 4 %1546 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1543, align 8 - %1547 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %1548 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1547, i32 0, i32 0 - store ptr null, ptr %1548, align 8 - %1549 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1547, i32 0, i32 1 - store i64 0, ptr %1549, align 4 - %1550 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1547, align 8 - %1551 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 41) - %1552 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %1546, ptr %1551, i64 18, %"github.com/goplus/llgo/internal/runtime.String" %1550, i1 false) - %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 @59, ptr %1554, align 8 - %1555 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1553, i32 0, i32 1 - store i64 4, ptr %1555, align 4 - %1556 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1553, align 8 - %1557 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %1558 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1557, i32 0, i32 0 - store ptr null, ptr %1558, align 8 - %1559 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1557, i32 0, i32 1 - store i64 0, ptr %1559, align 4 - %1560 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1557, align 8 - %1561 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 42) - %1562 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %1556, ptr %1561, i64 20, %"github.com/goplus/llgo/internal/runtime.String" %1560, i1 false) - %1563 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %1564 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1563, i32 0, i32 0 - store ptr @4, ptr %1564, align 8 - %1565 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1563, i32 0, i32 1 - store i64 4, ptr %1565, align 4 - %1566 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1563, align 8 - %1567 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 224) - %1568 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %1567, i64 0 - store %"github.com/goplus/llgo/internal/abi.StructField" %1532, ptr %1568, align 8 - %1569 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %1567, i64 1 - store %"github.com/goplus/llgo/internal/abi.StructField" %1542, ptr %1569, align 8 - %1570 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %1567, i64 2 - store %"github.com/goplus/llgo/internal/abi.StructField" %1552, ptr %1570, align 8 - %1571 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %1567, i64 3 - store %"github.com/goplus/llgo/internal/abi.StructField" %1562, ptr %1571, align 8 - %1572 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %1573 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1572, i32 0, i32 0 - store ptr %1567, ptr %1573, align 8 - %1574 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1572, i32 0, i32 1 - store i64 4, ptr %1574, align 4 - %1575 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1572, i32 0, i32 2 - store i64 4, ptr %1575, align 4 - %1576 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1572, align 8 - %1577 = call ptr @"github.com/goplus/llgo/internal/runtime.Struct"(%"github.com/goplus/llgo/internal/runtime.String" %1566, i64 24, %"github.com/goplus/llgo/internal/runtime.Slice" %1576) - store ptr %1577, ptr @"_llgo_struct$OKIlItfBJsawrEMnVSc2VQ7pxNxCHIgSoitcM9n4FVI", align 8 - br label %_llgo_74 - -_llgo_74: ; preds = %_llgo_73, %_llgo_72 - %1578 = load ptr, ptr @"_llgo_struct$OKIlItfBJsawrEMnVSc2VQ7pxNxCHIgSoitcM9n4FVI", align 8 - br i1 %1518, label %_llgo_75, label %_llgo_76 - -_llgo_75: ; preds = %_llgo_74 - %1579 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %1580 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1579, i32 0, i32 0 - store ptr @60, ptr %1580, align 8 - %1581 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1579, i32 0, i32 1 - store i64 15, ptr %1581, align 4 - %1582 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1579, align 8 - %1583 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(i64 25, i64 40, i64 0, i64 3) - %1584 = load ptr, ptr @"[]_llgo_github.com/goplus/llgo/internal/abi.Method", align 8 - %1585 = icmp eq ptr %1584, null - br i1 %1585, label %_llgo_77, label %_llgo_78 - -_llgo_76: ; preds = %_llgo_80, %_llgo_74 - %1586 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/internal/abi.UncommonType", align 8 - %1587 = icmp eq ptr %1586, null - br i1 %1587, label %_llgo_81, label %_llgo_82 - -_llgo_77: ; preds = %_llgo_75 - %1588 = call ptr @"github.com/goplus/llgo/internal/runtime.SliceOf"(ptr %1583) - store ptr %1588, ptr @"[]_llgo_github.com/goplus/llgo/internal/abi.Method", align 8 - br label %_llgo_78 - -_llgo_78: ; preds = %_llgo_77, %_llgo_75 - %1589 = load ptr, ptr @"[]_llgo_github.com/goplus/llgo/internal/abi.Method", align 8 - %1590 = load ptr, ptr @"_llgo_func$r0w3aCNVheLGqjxncuxitGhNtWJagb9gZLqOSrNI7dg", align 8 - %1591 = icmp eq ptr %1590, null - br i1 %1591, label %_llgo_79, label %_llgo_80 - -_llgo_79: ; preds = %_llgo_78 - %1592 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 0) - %1593 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %1594 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1593, i32 0, i32 0 - store ptr %1592, ptr %1594, align 8 - %1595 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1593, i32 0, i32 1 - store i64 0, ptr %1595, align 4 - %1596 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1593, i32 0, i32 2 - store i64 0, ptr %1596, align 4 - %1597 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1593, align 8 - %1598 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 8) - %1599 = getelementptr ptr, ptr %1598, i64 0 - store ptr %1589, ptr %1599, align 8 - %1600 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %1601 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1600, i32 0, i32 0 - store ptr %1598, ptr %1601, align 8 - %1602 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1600, i32 0, i32 1 - store i64 1, ptr %1602, align 4 - %1603 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1600, i32 0, i32 2 - store i64 1, ptr %1603, align 4 - %1604 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1600, align 8 - %1605 = call ptr @"github.com/goplus/llgo/internal/runtime.Func"(%"github.com/goplus/llgo/internal/runtime.Slice" %1597, %"github.com/goplus/llgo/internal/runtime.Slice" %1604, i1 false) - call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %1605) - store ptr %1605, ptr @"_llgo_func$r0w3aCNVheLGqjxncuxitGhNtWJagb9gZLqOSrNI7dg", align 8 - br label %_llgo_80 + %1547 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 168) + %1548 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %1547, i64 0 + store %"github.com/goplus/llgo/internal/abi.StructField" %1522, ptr %1548, align 8 + %1549 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %1547, i64 1 + store %"github.com/goplus/llgo/internal/abi.StructField" %1532, ptr %1549, align 8 + %1550 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %1547, i64 2 + store %"github.com/goplus/llgo/internal/abi.StructField" %1542, ptr %1550, align 8 + %1551 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %1552 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1551, i32 0, i32 0 + store ptr %1547, ptr %1552, align 8 + %1553 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1551, i32 0, i32 1 + store i64 3, ptr %1553, align 4 + %1554 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1551, i32 0, i32 2 + store i64 3, ptr %1554, align 4 + %1555 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1551, align 8 + %1556 = call ptr @"github.com/goplus/llgo/internal/runtime.Struct"(%"github.com/goplus/llgo/internal/runtime.String" %1546, i64 112, %"github.com/goplus/llgo/internal/runtime.Slice" %1555) + store ptr %1556, ptr @"_llgo_struct$K_cvuhBwc2_5r7UW089ibWfcfsGoDb4pZ7K19IcMTk0", align 8 + br label %_llgo_70 -_llgo_80: ; preds = %_llgo_79, %_llgo_78 - %1606 = load ptr, ptr @"_llgo_func$r0w3aCNVheLGqjxncuxitGhNtWJagb9gZLqOSrNI7dg", align 8 +_llgo_70: ; preds = %_llgo_69, %_llgo_68 + %1557 = load ptr, ptr @"_llgo_struct$K_cvuhBwc2_5r7UW089ibWfcfsGoDb4pZ7K19IcMTk0", align 8 + br i1 %1501, label %_llgo_71, label %_llgo_72 + +_llgo_71: ; preds = %_llgo_70 + %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 @22, ptr %1559, align 8 + %1560 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1558, i32 0, i32 1 + store i64 5, ptr %1560, align 4 + %1561 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1558, align 8 + %1562 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 + %1563 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %1564 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1563, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %1561, ptr %1564, align 8 + %1565 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1563, i32 0, i32 1 + store ptr %1562, ptr %1565, align 8 + %1566 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1563, i32 0, i32 2 + store ptr @"github.com/goplus/llgo/internal/abi.(*StructType).Align", ptr %1566, align 8 + %1567 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1563, i32 0, i32 3 + store ptr @"github.com/goplus/llgo/internal/abi.(*StructType).Align", ptr %1567, align 8 + %1568 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %1563, align 8 + %1569 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %1570 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1569, i32 0, i32 0 + store ptr @23, ptr %1570, align 8 + %1571 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1569, i32 0, i32 1 + store i64 9, ptr %1571, align 4 + %1572 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1569, align 8 + %1573 = load ptr, ptr @"_llgo_func$CsVqlCxhoEcIvPD5BSBukfSiD9C7Ic5_Gf32MLbCWB4", align 8 + %1574 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %1575 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1574, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %1572, ptr %1575, align 8 + %1576 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1574, i32 0, i32 1 + store ptr %1573, ptr %1576, align 8 + %1577 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1574, i32 0, i32 2 + store ptr @"github.com/goplus/llgo/internal/abi.(*StructType).ArrayType", ptr %1577, align 8 + %1578 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1574, i32 0, i32 3 + store ptr @"github.com/goplus/llgo/internal/abi.(*StructType).ArrayType", ptr %1578, align 8 + %1579 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %1574, 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 @29, ptr %1581, align 8 + %1582 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1580, i32 0, i32 1 + store i64 7, ptr %1582, align 4 + %1583 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1580, align 8 + %1584 = load ptr, ptr @"_llgo_func$TrNr0CVWj6qegOngzWbt2Jl7pr7IBJ5gOmgUf2ieIi4", align 8 + %1585 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %1586 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1585, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %1583, ptr %1586, align 8 + %1587 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1585, i32 0, i32 1 + store ptr %1584, ptr %1587, align 8 + %1588 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1585, i32 0, i32 2 + store ptr @"github.com/goplus/llgo/internal/abi.(*StructType).ChanDir", ptr %1588, align 8 + %1589 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1585, i32 0, i32 3 + store ptr @"github.com/goplus/llgo/internal/abi.(*StructType).ChanDir", ptr %1589, align 8 + %1590 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %1585, align 8 + %1591 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %1592 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1591, i32 0, i32 0 + store ptr @32, ptr %1592, align 8 + %1593 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1591, i32 0, i32 1 + store i64 6, ptr %1593, align 4 + %1594 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1591, align 8 + %1595 = load ptr, ptr @"_llgo_func$4-mqItKfDlL0CgVKnUxoresYgh6zW1WSlZYZSsVzLRo", align 8 + %1596 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %1597 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1596, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %1594, ptr %1597, align 8 + %1598 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1596, i32 0, i32 1 + store ptr %1595, ptr %1598, align 8 + %1599 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1596, i32 0, i32 2 + store ptr @"github.com/goplus/llgo/internal/abi.(*StructType).Common", ptr %1599, align 8 + %1600 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1596, i32 0, i32 3 + store ptr @"github.com/goplus/llgo/internal/abi.(*StructType).Common", ptr %1600, align 8 + %1601 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %1596, align 8 + %1602 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %1603 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1602, i32 0, i32 0 + store ptr @26, ptr %1603, align 8 + %1604 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1602, i32 0, i32 1 + store i64 4, ptr %1604, align 4 + %1605 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1602, align 8 + %1606 = load ptr, ptr @"_llgo_func$4-mqItKfDlL0CgVKnUxoresYgh6zW1WSlZYZSsVzLRo", align 8 %1607 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 %1608 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1607, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %1582, ptr %1608, align 8 + store %"github.com/goplus/llgo/internal/runtime.String" %1605, ptr %1608, align 8 %1609 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1607, i32 0, i32 1 store ptr %1606, ptr %1609, align 8 %1610 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1607, i32 0, i32 2 - store ptr @"github.com/goplus/llgo/internal/abi.(*UncommonType).ExportedMethods", ptr %1610, align 8 + store ptr @"github.com/goplus/llgo/internal/abi.(*StructType).Elem", ptr %1610, align 8 %1611 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1607, i32 0, i32 3 - store ptr @"github.com/goplus/llgo/internal/abi.(*UncommonType).ExportedMethods", ptr %1611, align 8 + store ptr @"github.com/goplus/llgo/internal/abi.(*StructType).Elem", ptr %1611, align 8 %1612 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %1607, align 8 %1613 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 %1614 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1613, i32 0, i32 0 - store ptr @34, ptr %1614, align 8 + store ptr @33, ptr %1614, align 8 %1615 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1613, i32 0, i32 1 - store i64 7, ptr %1615, align 4 + store i64 10, ptr %1615, align 4 %1616 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1613, align 8 - %1617 = load ptr, ptr @"_llgo_func$r0w3aCNVheLGqjxncuxitGhNtWJagb9gZLqOSrNI7dg", align 8 + %1617 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 %1618 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 %1619 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1618, i32 0, i32 0 store %"github.com/goplus/llgo/internal/runtime.String" %1616, ptr %1619, align 8 %1620 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1618, i32 0, i32 1 store ptr %1617, ptr %1620, align 8 %1621 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1618, i32 0, i32 2 - store ptr @"github.com/goplus/llgo/internal/abi.(*UncommonType).Methods", ptr %1621, align 8 + store ptr @"github.com/goplus/llgo/internal/abi.(*StructType).FieldAlign", ptr %1621, align 8 %1622 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1618, i32 0, i32 3 - store ptr @"github.com/goplus/llgo/internal/abi.(*UncommonType).Methods", ptr %1622, align 8 + store ptr @"github.com/goplus/llgo/internal/abi.(*StructType).FieldAlign", ptr %1622, align 8 %1623 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %1618, align 8 - %1624 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 80) - %1625 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1624, i64 0 - store %"github.com/goplus/llgo/internal/abi.Method" %1612, ptr %1625, align 8 - %1626 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1624, i64 1 - store %"github.com/goplus/llgo/internal/abi.Method" %1623, ptr %1626, align 8 - %1627 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %1628 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1627, i32 0, i32 0 - store ptr %1624, ptr %1628, align 8 - %1629 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1627, i32 0, i32 1 - store i64 2, ptr %1629, align 4 - %1630 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1627, i32 0, i32 2 - store i64 2, ptr %1630, align 4 - %1631 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1627, align 8 - %1632 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %1633 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1632, i32 0, i32 0 - store ptr @38, ptr %1633, align 8 - %1634 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1632, i32 0, i32 1 - store i64 35, ptr %1634, align 4 - %1635 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1632, align 8 - %1636 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %1637 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1636, i32 0, i32 0 - store ptr @61, ptr %1637, align 8 - %1638 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1636, i32 0, i32 1 - store i64 12, ptr %1638, align 4 - %1639 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1636, align 8 - call void @"github.com/goplus/llgo/internal/runtime.InitNamed"(ptr %1516, %"github.com/goplus/llgo/internal/runtime.String" %1635, %"github.com/goplus/llgo/internal/runtime.String" %1639, ptr %1578, { ptr, i64, i64 } zeroinitializer, %"github.com/goplus/llgo/internal/runtime.Slice" %1631) + %1624 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %1625 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1624, i32 0, i32 0 + store ptr @34, ptr %1625, align 8 + %1626 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1624, i32 0, i32 1 + store i64 8, ptr %1626, align 4 + %1627 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1624, align 8 + %1628 = load ptr, ptr @"_llgo_func$DsoxgOnxqV7tLvokF3AA14v1gtHsHaThoC8Q_XGcQww", 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" %1627, 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.(*StructType).FuncType", 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.(*StructType).FuncType", 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 @38, 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$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", 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.(*StructType).HasName", 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.(*StructType).HasName", ptr %1644, align 8 + %1645 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %1640, align 8 + %1646 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %1647 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1646, i32 0, i32 0 + store ptr @39, ptr %1647, align 8 + %1648 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1646, i32 0, i32 1 + store i64 10, ptr %1648, align 4 + %1649 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1646, align 8 + %1650 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 + %1651 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %1652 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1651, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %1649, ptr %1652, align 8 + %1653 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1651, i32 0, i32 1 + store ptr %1650, ptr %1653, align 8 + %1654 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1651, i32 0, i32 2 + store ptr @"github.com/goplus/llgo/internal/abi.(*StructType).IfaceIndir", ptr %1654, align 8 + %1655 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1651, i32 0, i32 3 + store ptr @"github.com/goplus/llgo/internal/abi.(*StructType).IfaceIndir", ptr %1655, align 8 + %1656 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %1651, align 8 + %1657 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %1658 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1657, i32 0, i32 0 + store ptr @40, ptr %1658, align 8 + %1659 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1657, i32 0, i32 1 + store i64 13, ptr %1659, align 4 + %1660 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1657, align 8 + %1661 = load ptr, ptr @"_llgo_func$1QmforOaCy2fBAssC2y1FWCCT6fpq9RKwP2j2HIASY8", align 8 + %1662 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %1663 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1662, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %1660, ptr %1663, align 8 + %1664 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1662, i32 0, i32 1 + store ptr %1661, ptr %1664, align 8 + %1665 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1662, i32 0, i32 2 + store ptr @"github.com/goplus/llgo/internal/abi.(*StructType).InterfaceType", ptr %1665, align 8 + %1666 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1662, i32 0, i32 3 + store ptr @"github.com/goplus/llgo/internal/abi.(*StructType).InterfaceType", ptr %1666, align 8 + %1667 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %1662, align 8 + %1668 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %1669 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1668, i32 0, i32 0 + store ptr @45, ptr %1669, align 8 + %1670 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1668, i32 0, i32 1 + store i64 13, ptr %1670, align 4 + %1671 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1668, align 8 + %1672 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 + %1673 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %1674 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1673, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %1671, ptr %1674, align 8 + %1675 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1673, i32 0, i32 1 + store ptr %1672, ptr %1675, align 8 + %1676 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1673, i32 0, i32 2 + store ptr @"github.com/goplus/llgo/internal/abi.(*StructType).IsDirectIface", ptr %1676, align 8 + %1677 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1673, i32 0, i32 3 + store ptr @"github.com/goplus/llgo/internal/abi.(*StructType).IsDirectIface", ptr %1677, align 8 + %1678 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %1673, align 8 + %1679 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %1680 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1679, i32 0, i32 0 + store ptr @46, ptr %1680, align 8 + %1681 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1679, i32 0, i32 1 + store i64 3, ptr %1681, align 4 + %1682 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1679, align 8 + %1683 = load ptr, ptr @"_llgo_func$4-mqItKfDlL0CgVKnUxoresYgh6zW1WSlZYZSsVzLRo", align 8 + %1684 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %1685 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1684, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %1682, ptr %1685, align 8 + %1686 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1684, i32 0, i32 1 + store ptr %1683, ptr %1686, align 8 + %1687 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1684, i32 0, i32 2 + store ptr @"github.com/goplus/llgo/internal/abi.(*StructType).Key", ptr %1687, align 8 + %1688 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1684, i32 0, i32 3 + store ptr @"github.com/goplus/llgo/internal/abi.(*StructType).Key", ptr %1688, align 8 + %1689 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %1684, align 8 + %1690 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %1691 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1690, i32 0, i32 0 + store ptr @47, ptr %1691, align 8 + %1692 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1690, i32 0, i32 1 + store i64 4, ptr %1692, align 4 + %1693 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1690, align 8 + %1694 = load ptr, ptr @"_llgo_func$ntUE0UmVAWPS2O7GpCCGszSn-XnjHJntZZ2jYtwbFXI", align 8 + %1695 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %1696 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1695, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %1693, ptr %1696, align 8 + %1697 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1695, i32 0, i32 1 + store ptr %1694, ptr %1697, align 8 + %1698 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1695, i32 0, i32 2 + store ptr @"github.com/goplus/llgo/internal/abi.(*StructType).Kind", ptr %1698, align 8 + %1699 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1695, i32 0, i32 3 + store ptr @"github.com/goplus/llgo/internal/abi.(*StructType).Kind", ptr %1699, align 8 + %1700 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %1695, align 8 + %1701 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %1702 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1701, i32 0, i32 0 + store ptr @28, ptr %1702, align 8 + %1703 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1701, i32 0, i32 1 + store i64 3, ptr %1703, align 4 + %1704 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1701, align 8 + %1705 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 + %1706 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %1707 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1706, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %1704, ptr %1707, align 8 + %1708 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1706, i32 0, i32 1 + store ptr %1705, ptr %1708, align 8 + %1709 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1706, i32 0, i32 2 + store ptr @"github.com/goplus/llgo/internal/abi.(*StructType).Len", ptr %1709, align 8 + %1710 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1706, i32 0, i32 3 + store ptr @"github.com/goplus/llgo/internal/abi.(*StructType).Len", ptr %1710, align 8 + %1711 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %1706, align 8 + %1712 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %1713 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1712, i32 0, i32 0 + store ptr @50, ptr %1713, align 8 + %1714 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1712, i32 0, i32 1 + store i64 7, ptr %1714, align 4 + %1715 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1712, align 8 + %1716 = load ptr, ptr @"_llgo_func$d-NlqnjcQnaMjsBQY7qh2SWQmHb0XIigoceXdiJ8YT4", align 8 + %1717 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %1718 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1717, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %1715, ptr %1718, align 8 + %1719 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1717, i32 0, i32 1 + store ptr %1716, ptr %1719, align 8 + %1720 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1717, i32 0, i32 2 + store ptr @"github.com/goplus/llgo/internal/abi.(*StructType).MapType", ptr %1720, align 8 + %1721 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1717, i32 0, i32 3 + store ptr @"github.com/goplus/llgo/internal/abi.(*StructType).MapType", ptr %1721, align 8 + %1722 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %1717, align 8 + %1723 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %1724 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1723, i32 0, i32 0 + store ptr @62, ptr %1724, align 8 + %1725 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1723, i32 0, i32 1 + store i64 8, ptr %1725, align 4 + %1726 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1723, align 8 + %1727 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 + %1728 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %1729 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1728, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %1726, ptr %1729, align 8 + %1730 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1728, i32 0, i32 1 + store ptr %1727, ptr %1730, align 8 + %1731 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1728, i32 0, i32 2 + store ptr @"github.com/goplus/llgo/internal/abi.(*StructType).Pointers", ptr %1731, align 8 + %1732 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1728, i32 0, i32 3 + store ptr @"github.com/goplus/llgo/internal/abi.(*StructType).Pointers", ptr %1732, align 8 + %1733 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %1728, align 8 + %1734 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %1735 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1734, i32 0, i32 0 + store ptr @64, ptr %1735, align 8 + %1736 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1734, i32 0, i32 1 + store i64 4, ptr %1736, align 4 + %1737 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1734, align 8 + %1738 = load ptr, ptr @"_llgo_func$1kITCsyu7hFLMxHLR7kDlvu4SOra_HtrtdFUQH9P13s", align 8 + %1739 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %1740 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1739, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %1737, ptr %1740, align 8 + %1741 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1739, i32 0, i32 1 + store ptr %1738, ptr %1741, align 8 + %1742 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1739, i32 0, i32 2 + store ptr @"github.com/goplus/llgo/internal/abi.(*StructType).Size", ptr %1742, align 8 + %1743 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1739, i32 0, i32 3 + store ptr @"github.com/goplus/llgo/internal/abi.(*StructType).Size", ptr %1743, align 8 + %1744 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %1739, align 8 + %1745 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %1746 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1745, i32 0, i32 0 + store ptr @49, ptr %1746, align 8 + %1747 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1745, i32 0, i32 1 + store i64 6, ptr %1747, align 4 + %1748 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1745, align 8 + %1749 = load ptr, ptr @"_llgo_func$zNDVRsWTIpUPKouNUS805RGX--IV9qVK8B31IZbg5to", align 8 + %1750 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %1751 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1750, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %1748, ptr %1751, align 8 + %1752 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1750, i32 0, i32 1 + store ptr %1749, ptr %1752, align 8 + %1753 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1750, i32 0, i32 2 + store ptr @"github.com/goplus/llgo/internal/abi.(*StructType).String", ptr %1753, align 8 + %1754 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1750, i32 0, i32 3 + store ptr @"github.com/goplus/llgo/internal/abi.(*StructType).String", ptr %1754, align 8 + %1755 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %1750, align 8 + %1756 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %1757 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1756, i32 0, i32 0 + store ptr @65, ptr %1757, align 8 + %1758 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1756, i32 0, i32 1 + store i64 10, ptr %1758, align 4 + %1759 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1756, align 8 + %1760 = load ptr, ptr @"_llgo_func$qiNnn6Cbm3GtDp4gDI4U_DRV3h8zlz91s9jrfOXC--U", align 8 + %1761 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %1762 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1761, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %1759, ptr %1762, align 8 + %1763 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1761, i32 0, i32 1 + store ptr %1760, ptr %1763, align 8 + %1764 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1761, i32 0, i32 2 + store ptr @"github.com/goplus/llgo/internal/abi.(*StructType).StructType", ptr %1764, align 8 + %1765 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1761, i32 0, i32 3 + store ptr @"github.com/goplus/llgo/internal/abi.(*StructType).StructType", ptr %1765, align 8 + %1766 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %1761, align 8 + %1767 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %1768 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1767, i32 0, i32 0 + store ptr @69, ptr %1768, align 8 + %1769 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1767, i32 0, i32 1 + store i64 8, ptr %1769, align 4 + %1770 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1767, align 8 + %1771 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %1772 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1771, i32 0, i32 0 + store ptr @70, ptr %1772, align 8 + %1773 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1771, i32 0, i32 1 + store i64 48, ptr %1773, align 4 + %1774 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1771, align 8 + %1775 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(%"github.com/goplus/llgo/internal/runtime.String" %1774, i64 25, i64 24, i64 0, i64 2) + %1776 = load ptr, ptr @"_llgo_github.com/goplus/llgo/internal/abi.UncommonType", align 8 + %1777 = icmp eq ptr %1776, null + br i1 %1777, label %_llgo_73, label %_llgo_74 + +_llgo_72: ; preds = %_llgo_86, %_llgo_70 + %1778 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %1779 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1778, i32 0, i32 0 + store ptr @66, ptr %1779, align 8 + %1780 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1778, i32 0, i32 1 + store i64 46, ptr %1780, align 4 + %1781 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1778, align 8 + %1782 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(%"github.com/goplus/llgo/internal/runtime.String" %1781, i64 25, i64 120, i64 0, i64 20) + %1783 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/internal/abi.StructType", align 8 + %1784 = icmp eq ptr %1783, null + br i1 %1784, label %_llgo_87, label %_llgo_88 + +_llgo_73: ; preds = %_llgo_71 + store ptr %1775, ptr @"_llgo_github.com/goplus/llgo/internal/abi.UncommonType", align 8 + br label %_llgo_74 + +_llgo_74: ; preds = %_llgo_73, %_llgo_71 + %1785 = load ptr, ptr @"_llgo_struct$OKIlItfBJsawrEMnVSc2VQ7pxNxCHIgSoitcM9n4FVI", align 8 + %1786 = icmp eq ptr %1785, null + br i1 %1786, label %_llgo_75, label %_llgo_76 + +_llgo_75: ; preds = %_llgo_74 + %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 @43, ptr %1788, align 8 + %1789 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1787, i32 0, i32 1 + store i64 8, ptr %1789, align 4 + %1790 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1787, align 8 + %1791 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %1792 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1791, i32 0, i32 0 + store ptr null, ptr %1792, align 8 + %1793 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1791, i32 0, i32 1 + store i64 0, ptr %1793, align 4 + %1794 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1791, align 8 + %1795 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 24) + %1796 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %1790, ptr %1795, i64 0, %"github.com/goplus/llgo/internal/runtime.String" %1794, i1 false) + %1797 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %1798 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1797, i32 0, i32 0 + store ptr @71, ptr %1798, align 8 + %1799 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1797, i32 0, i32 1 + store i64 6, ptr %1799, align 4 + %1800 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1797, align 8 + %1801 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %1802 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1801, i32 0, i32 0 + store ptr null, ptr %1802, align 8 + %1803 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1801, i32 0, i32 1 + store i64 0, ptr %1803, align 4 + %1804 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1801, align 8 + %1805 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 41) + %1806 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %1800, ptr %1805, i64 16, %"github.com/goplus/llgo/internal/runtime.String" %1804, i1 false) + %1807 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %1808 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1807, i32 0, i32 0 + store ptr @72, ptr %1808, align 8 + %1809 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1807, i32 0, i32 1 + store i64 6, ptr %1809, align 4 + %1810 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1807, align 8 + %1811 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %1812 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1811, i32 0, i32 0 + store ptr null, ptr %1812, align 8 + %1813 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1811, i32 0, i32 1 + store i64 0, ptr %1813, align 4 + %1814 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1811, align 8 + %1815 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 41) + %1816 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %1810, ptr %1815, i64 18, %"github.com/goplus/llgo/internal/runtime.String" %1814, i1 false) + %1817 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %1818 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1817, i32 0, i32 0 + store ptr @73, ptr %1818, align 8 + %1819 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1817, i32 0, i32 1 + store i64 4, ptr %1819, align 4 + %1820 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1817, align 8 + %1821 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %1822 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1821, i32 0, i32 0 + store ptr null, ptr %1822, align 8 + %1823 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1821, i32 0, i32 1 + store i64 0, ptr %1823, align 4 + %1824 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1821, align 8 + %1825 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 42) + %1826 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %1820, ptr %1825, i64 20, %"github.com/goplus/llgo/internal/runtime.String" %1824, i1 false) + %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 @6, 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 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 224) + %1832 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %1831, i64 0 + store %"github.com/goplus/llgo/internal/abi.StructField" %1796, ptr %1832, align 8 + %1833 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %1831, i64 1 + store %"github.com/goplus/llgo/internal/abi.StructField" %1806, ptr %1833, align 8 + %1834 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %1831, i64 2 + store %"github.com/goplus/llgo/internal/abi.StructField" %1816, ptr %1834, align 8 + %1835 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %1831, i64 3 + store %"github.com/goplus/llgo/internal/abi.StructField" %1826, ptr %1835, align 8 + %1836 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %1837 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1836, i32 0, i32 0 + store ptr %1831, ptr %1837, align 8 + %1838 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1836, i32 0, i32 1 + store i64 4, ptr %1838, align 4 + %1839 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1836, i32 0, i32 2 + store i64 4, ptr %1839, align 4 + %1840 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1836, align 8 + %1841 = call ptr @"github.com/goplus/llgo/internal/runtime.Struct"(%"github.com/goplus/llgo/internal/runtime.String" %1830, i64 24, %"github.com/goplus/llgo/internal/runtime.Slice" %1840) + store ptr %1841, ptr @"_llgo_struct$OKIlItfBJsawrEMnVSc2VQ7pxNxCHIgSoitcM9n4FVI", align 8 br label %_llgo_76 -_llgo_81: ; preds = %_llgo_76 - %1640 = call ptr @"github.com/goplus/llgo/internal/runtime.PointerTo"(ptr %1516) - call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %1640) - store ptr %1640, ptr @"*_llgo_github.com/goplus/llgo/internal/abi.UncommonType", align 8 +_llgo_76: ; preds = %_llgo_75, %_llgo_74 + %1842 = load ptr, ptr @"_llgo_struct$OKIlItfBJsawrEMnVSc2VQ7pxNxCHIgSoitcM9n4FVI", align 8 + br i1 %1777, label %_llgo_77, label %_llgo_78 + +_llgo_77: ; preds = %_llgo_76 + %1843 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %1844 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1843, i32 0, i32 0 + store ptr @74, ptr %1844, align 8 + %1845 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1843, i32 0, i32 1 + store i64 15, ptr %1845, align 4 + %1846 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1843, align 8 + %1847 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %1848 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1847, i32 0, i32 0 + store ptr @75, ptr %1848, align 8 + %1849 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1847, i32 0, i32 1 + store i64 42, ptr %1849, align 4 + %1850 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1847, align 8 + %1851 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(%"github.com/goplus/llgo/internal/runtime.String" %1850, i64 25, i64 40, i64 0, i64 3) + %1852 = load ptr, ptr @"[]_llgo_github.com/goplus/llgo/internal/abi.Method", align 8 + %1853 = icmp eq ptr %1852, null + br i1 %1853, label %_llgo_79, label %_llgo_80 + +_llgo_78: ; preds = %_llgo_82, %_llgo_76 + %1854 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %1855 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1854, i32 0, i32 0 + store ptr @70, ptr %1855, align 8 + %1856 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1854, i32 0, i32 1 + store i64 48, ptr %1856, align 4 + %1857 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1854, align 8 + %1858 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(%"github.com/goplus/llgo/internal/runtime.String" %1857, i64 25, i64 24, i64 0, i64 2) + %1859 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/internal/abi.UncommonType", align 8 + %1860 = icmp eq ptr %1859, null + br i1 %1860, label %_llgo_83, label %_llgo_84 + +_llgo_79: ; preds = %_llgo_77 + %1861 = call ptr @"github.com/goplus/llgo/internal/runtime.SliceOf"(ptr %1851) + store ptr %1861, ptr @"[]_llgo_github.com/goplus/llgo/internal/abi.Method", align 8 + br label %_llgo_80 + +_llgo_80: ; preds = %_llgo_79, %_llgo_77 + %1862 = load ptr, ptr @"[]_llgo_github.com/goplus/llgo/internal/abi.Method", align 8 + %1863 = load ptr, ptr @"_llgo_func$r0w3aCNVheLGqjxncuxitGhNtWJagb9gZLqOSrNI7dg", align 8 + %1864 = icmp eq ptr %1863, null + br i1 %1864, label %_llgo_81, label %_llgo_82 + +_llgo_81: ; preds = %_llgo_80 + %1865 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 0) + %1866 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %1867 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1866, i32 0, i32 0 + store ptr %1865, ptr %1867, align 8 + %1868 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1866, i32 0, i32 1 + store i64 0, ptr %1868, align 4 + %1869 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1866, i32 0, i32 2 + store i64 0, ptr %1869, align 4 + %1870 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1866, align 8 + %1871 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 8) + %1872 = getelementptr ptr, ptr %1871, i64 0 + store ptr %1862, ptr %1872, align 8 + %1873 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %1874 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1873, i32 0, i32 0 + store ptr %1871, ptr %1874, align 8 + %1875 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1873, i32 0, i32 1 + store i64 1, ptr %1875, align 4 + %1876 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1873, i32 0, i32 2 + store i64 1, ptr %1876, align 4 + %1877 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1873, align 8 + %1878 = call ptr @"github.com/goplus/llgo/internal/runtime.Func"(%"github.com/goplus/llgo/internal/runtime.Slice" %1870, %"github.com/goplus/llgo/internal/runtime.Slice" %1877, i1 false) + call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %1878) + store ptr %1878, ptr @"_llgo_func$r0w3aCNVheLGqjxncuxitGhNtWJagb9gZLqOSrNI7dg", align 8 br label %_llgo_82 -_llgo_82: ; preds = %_llgo_81, %_llgo_76 - %1641 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/internal/abi.UncommonType", align 8 - %1642 = load ptr, ptr @"_llgo_func$DbD4nZv_bjE4tH8hh-VfAjMXMpNfIsMlLJJJPKupp34", align 8 - %1643 = icmp eq ptr %1642, null - br i1 %1643, label %_llgo_83, label %_llgo_84 - -_llgo_83: ; preds = %_llgo_82 - %1644 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 0) - %1645 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %1646 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1645, i32 0, i32 0 - store ptr %1644, ptr %1646, align 8 - %1647 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1645, i32 0, i32 1 - store i64 0, ptr %1647, align 4 - %1648 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1645, i32 0, i32 2 - store i64 0, ptr %1648, align 4 - %1649 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1645, align 8 - %1650 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 8) - %1651 = getelementptr ptr, ptr %1650, i64 0 - store ptr %1641, ptr %1651, align 8 - %1652 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %1653 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1652, i32 0, i32 0 - store ptr %1650, ptr %1653, align 8 - %1654 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1652, i32 0, i32 1 - store i64 1, ptr %1654, align 4 - %1655 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1652, i32 0, i32 2 - store i64 1, ptr %1655, align 4 - %1656 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1652, align 8 - %1657 = call ptr @"github.com/goplus/llgo/internal/runtime.Func"(%"github.com/goplus/llgo/internal/runtime.Slice" %1649, %"github.com/goplus/llgo/internal/runtime.Slice" %1656, i1 false) - call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %1657) - store ptr %1657, ptr @"_llgo_func$DbD4nZv_bjE4tH8hh-VfAjMXMpNfIsMlLJJJPKupp34", align 8 - br label %_llgo_84 +_llgo_82: ; preds = %_llgo_81, %_llgo_80 + %1879 = load ptr, ptr @"_llgo_func$r0w3aCNVheLGqjxncuxitGhNtWJagb9gZLqOSrNI7dg", align 8 + %1880 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %1881 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1880, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %1846, ptr %1881, align 8 + %1882 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1880, i32 0, i32 1 + store ptr %1879, ptr %1882, align 8 + %1883 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1880, i32 0, i32 2 + store ptr @"github.com/goplus/llgo/internal/abi.(*UncommonType).ExportedMethods", ptr %1883, align 8 + %1884 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1880, i32 0, i32 3 + store ptr @"github.com/goplus/llgo/internal/abi.(*UncommonType).ExportedMethods", ptr %1884, align 8 + %1885 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %1880, align 8 + %1886 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %1887 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1886, i32 0, i32 0 + store ptr @44, ptr %1887, align 8 + %1888 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1886, i32 0, i32 1 + store i64 7, ptr %1888, align 4 + %1889 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1886, align 8 + %1890 = load ptr, ptr @"_llgo_func$r0w3aCNVheLGqjxncuxitGhNtWJagb9gZLqOSrNI7dg", align 8 + %1891 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %1892 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1891, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %1889, ptr %1892, align 8 + %1893 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1891, i32 0, i32 1 + store ptr %1890, ptr %1893, align 8 + %1894 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1891, i32 0, i32 2 + store ptr @"github.com/goplus/llgo/internal/abi.(*UncommonType).Methods", ptr %1894, align 8 + %1895 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1891, i32 0, i32 3 + store ptr @"github.com/goplus/llgo/internal/abi.(*UncommonType).Methods", ptr %1895, align 8 + %1896 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %1891, align 8 + %1897 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 80) + %1898 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1897, i64 0 + store %"github.com/goplus/llgo/internal/abi.Method" %1885, ptr %1898, align 8 + %1899 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1897, i64 1 + store %"github.com/goplus/llgo/internal/abi.Method" %1896, ptr %1899, align 8 + %1900 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %1901 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1900, i32 0, i32 0 + store ptr %1897, ptr %1901, align 8 + %1902 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1900, i32 0, i32 1 + store i64 2, ptr %1902, align 4 + %1903 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1900, i32 0, i32 2 + store i64 2, ptr %1903, align 4 + %1904 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1900, align 8 + %1905 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %1906 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1905, i32 0, i32 0 + store ptr @31, ptr %1906, align 8 + %1907 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1905, i32 0, i32 1 + store i64 35, ptr %1907, align 4 + %1908 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1905, align 8 + %1909 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %1910 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1909, i32 0, i32 0 + store ptr @76, ptr %1910, align 8 + %1911 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1909, i32 0, i32 1 + store i64 12, ptr %1911, align 4 + %1912 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1909, align 8 + call void @"github.com/goplus/llgo/internal/runtime.InitNamed"(ptr %1775, %"github.com/goplus/llgo/internal/runtime.String" %1908, %"github.com/goplus/llgo/internal/runtime.String" %1912, ptr %1842, { ptr, i64, i64 } zeroinitializer, %"github.com/goplus/llgo/internal/runtime.Slice" %1904) + br label %_llgo_78 -_llgo_84: ; preds = %_llgo_83, %_llgo_82 - %1658 = load ptr, ptr @"_llgo_func$DbD4nZv_bjE4tH8hh-VfAjMXMpNfIsMlLJJJPKupp34", align 8 - %1659 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 - %1660 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1659, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %1515, ptr %1660, align 8 - %1661 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1659, i32 0, i32 1 - store ptr %1658, ptr %1661, align 8 - %1662 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1659, i32 0, i32 2 - store ptr @"github.com/goplus/llgo/internal/abi.(*StructType).Uncommon", ptr %1662, align 8 - %1663 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1659, i32 0, i32 3 - store ptr @"github.com/goplus/llgo/internal/abi.(*StructType).Uncommon", ptr %1663, align 8 - %1664 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %1659, align 8 - %1665 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 720) - %1666 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1665, i64 0 - store %"github.com/goplus/llgo/internal/abi.Method" %1335, ptr %1666, align 8 - %1667 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1665, i64 1 - store %"github.com/goplus/llgo/internal/abi.Method" %1346, ptr %1667, align 8 - %1668 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1665, i64 2 - store %"github.com/goplus/llgo/internal/abi.Method" %1357, ptr %1668, align 8 - %1669 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1665, i64 3 - store %"github.com/goplus/llgo/internal/abi.Method" %1368, ptr %1669, align 8 - %1670 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1665, i64 4 - store %"github.com/goplus/llgo/internal/abi.Method" %1379, ptr %1670, align 8 - %1671 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1665, i64 5 - store %"github.com/goplus/llgo/internal/abi.Method" %1390, ptr %1671, align 8 - %1672 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1665, i64 6 - store %"github.com/goplus/llgo/internal/abi.Method" %1401, ptr %1672, align 8 - %1673 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1665, i64 7 - store %"github.com/goplus/llgo/internal/abi.Method" %1412, ptr %1673, align 8 - %1674 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1665, i64 8 - store %"github.com/goplus/llgo/internal/abi.Method" %1423, ptr %1674, align 8 - %1675 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1665, i64 9 - store %"github.com/goplus/llgo/internal/abi.Method" %1434, ptr %1675, align 8 - %1676 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1665, i64 10 - store %"github.com/goplus/llgo/internal/abi.Method" %1445, ptr %1676, align 8 - %1677 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1665, i64 11 - store %"github.com/goplus/llgo/internal/abi.Method" %1456, ptr %1677, align 8 - %1678 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1665, i64 12 - store %"github.com/goplus/llgo/internal/abi.Method" %1467, ptr %1678, align 8 - %1679 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1665, i64 13 - store %"github.com/goplus/llgo/internal/abi.Method" %1478, ptr %1679, align 8 - %1680 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1665, i64 14 - store %"github.com/goplus/llgo/internal/abi.Method" %1489, ptr %1680, align 8 - %1681 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1665, i64 15 - store %"github.com/goplus/llgo/internal/abi.Method" %1500, ptr %1681, align 8 - %1682 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1665, i64 16 - store %"github.com/goplus/llgo/internal/abi.Method" %1511, ptr %1682, align 8 - %1683 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1665, i64 17 - store %"github.com/goplus/llgo/internal/abi.Method" %1664, ptr %1683, align 8 - %1684 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %1685 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1684, i32 0, i32 0 - store ptr %1665, ptr %1685, align 8 - %1686 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1684, i32 0, i32 1 - store i64 18, ptr %1686, align 4 - %1687 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1684, i32 0, i32 2 - store i64 18, ptr %1687, align 4 - %1688 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1684, align 8 - %1689 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %1690 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1689, i32 0, i32 0 - store ptr @38, ptr %1690, align 8 - %1691 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1689, i32 0, i32 1 - store i64 35, ptr %1691, align 4 - %1692 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1689, align 8 - %1693 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %1694 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1693, i32 0, i32 0 - store ptr @54, ptr %1694, align 8 - %1695 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1693, i32 0, i32 1 - store i64 10, ptr %1695, align 4 - %1696 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1693, align 8 - call void @"github.com/goplus/llgo/internal/runtime.InitNamed"(ptr %1275, %"github.com/goplus/llgo/internal/runtime.String" %1692, %"github.com/goplus/llgo/internal/runtime.String" %1696, ptr %1324, { ptr, i64, i64 } zeroinitializer, %"github.com/goplus/llgo/internal/runtime.Slice" %1688) - br label %_llgo_70 +_llgo_83: ; preds = %_llgo_78 + %1913 = call ptr @"github.com/goplus/llgo/internal/runtime.PointerTo"(ptr %1858) + call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %1913) + store ptr %1913, ptr @"*_llgo_github.com/goplus/llgo/internal/abi.UncommonType", align 8 + br label %_llgo_84 -_llgo_85: ; preds = %_llgo_70 - %1697 = call ptr @"github.com/goplus/llgo/internal/runtime.PointerTo"(ptr %1275) - call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %1697) - store ptr %1697, ptr @"*_llgo_github.com/goplus/llgo/internal/abi.StructType", align 8 +_llgo_84: ; preds = %_llgo_83, %_llgo_78 + %1914 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/internal/abi.UncommonType", align 8 + %1915 = load ptr, ptr @"_llgo_func$DbD4nZv_bjE4tH8hh-VfAjMXMpNfIsMlLJJJPKupp34", align 8 + %1916 = icmp eq ptr %1915, null + br i1 %1916, label %_llgo_85, label %_llgo_86 + +_llgo_85: ; preds = %_llgo_84 + %1917 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 0) + %1918 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %1919 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1918, i32 0, i32 0 + store ptr %1917, ptr %1919, align 8 + %1920 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1918, i32 0, i32 1 + store i64 0, ptr %1920, align 4 + %1921 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1918, i32 0, i32 2 + store i64 0, ptr %1921, align 4 + %1922 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1918, align 8 + %1923 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 8) + %1924 = getelementptr ptr, ptr %1923, i64 0 + store ptr %1914, ptr %1924, align 8 + %1925 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %1926 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1925, i32 0, i32 0 + store ptr %1923, ptr %1926, align 8 + %1927 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1925, i32 0, i32 1 + store i64 1, ptr %1927, align 4 + %1928 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1925, i32 0, i32 2 + store i64 1, ptr %1928, align 4 + %1929 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1925, align 8 + %1930 = call ptr @"github.com/goplus/llgo/internal/runtime.Func"(%"github.com/goplus/llgo/internal/runtime.Slice" %1922, %"github.com/goplus/llgo/internal/runtime.Slice" %1929, i1 false) + call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %1930) + store ptr %1930, ptr @"_llgo_func$DbD4nZv_bjE4tH8hh-VfAjMXMpNfIsMlLJJJPKupp34", align 8 br label %_llgo_86 -_llgo_86: ; preds = %_llgo_85, %_llgo_70 - %1698 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/internal/abi.StructType", align 8 - %1699 = load ptr, ptr @"_llgo_func$qiNnn6Cbm3GtDp4gDI4U_DRV3h8zlz91s9jrfOXC--U", align 8 - %1700 = icmp eq ptr %1699, null - br i1 %1700, label %_llgo_87, label %_llgo_88 - -_llgo_87: ; preds = %_llgo_86 - %1701 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 0) - %1702 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %1703 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1702, i32 0, i32 0 - store ptr %1701, ptr %1703, align 8 - %1704 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1702, i32 0, i32 1 - store i64 0, ptr %1704, align 4 - %1705 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1702, i32 0, i32 2 - store i64 0, ptr %1705, align 4 - %1706 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1702, align 8 - %1707 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 8) - %1708 = getelementptr ptr, ptr %1707, i64 0 - store ptr %1698, ptr %1708, align 8 - %1709 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %1710 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1709, i32 0, i32 0 - store ptr %1707, ptr %1710, align 8 - %1711 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1709, i32 0, i32 1 - store i64 1, ptr %1711, align 4 - %1712 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1709, i32 0, i32 2 - store i64 1, ptr %1712, align 4 - %1713 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1709, align 8 - %1714 = call ptr @"github.com/goplus/llgo/internal/runtime.Func"(%"github.com/goplus/llgo/internal/runtime.Slice" %1706, %"github.com/goplus/llgo/internal/runtime.Slice" %1713, i1 false) - call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %1714) - store ptr %1714, ptr @"_llgo_func$qiNnn6Cbm3GtDp4gDI4U_DRV3h8zlz91s9jrfOXC--U", align 8 - br label %_llgo_88 +_llgo_86: ; preds = %_llgo_85, %_llgo_84 + %1931 = load ptr, ptr @"_llgo_func$DbD4nZv_bjE4tH8hh-VfAjMXMpNfIsMlLJJJPKupp34", align 8 + %1932 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %1933 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1932, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %1770, ptr %1933, align 8 + %1934 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1932, i32 0, i32 1 + store ptr %1931, ptr %1934, align 8 + %1935 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1932, i32 0, i32 2 + store ptr @"github.com/goplus/llgo/internal/abi.(*StructType).Uncommon", ptr %1935, align 8 + %1936 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1932, i32 0, i32 3 + store ptr @"github.com/goplus/llgo/internal/abi.(*StructType).Uncommon", ptr %1936, align 8 + %1937 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %1932, align 8 + %1938 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 800) + %1939 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1938, i64 0 + store %"github.com/goplus/llgo/internal/abi.Method" %1568, ptr %1939, align 8 + %1940 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1938, i64 1 + store %"github.com/goplus/llgo/internal/abi.Method" %1579, ptr %1940, align 8 + %1941 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1938, i64 2 + store %"github.com/goplus/llgo/internal/abi.Method" %1590, ptr %1941, align 8 + %1942 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1938, i64 3 + store %"github.com/goplus/llgo/internal/abi.Method" %1601, ptr %1942, align 8 + %1943 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1938, i64 4 + store %"github.com/goplus/llgo/internal/abi.Method" %1612, ptr %1943, align 8 + %1944 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1938, i64 5 + store %"github.com/goplus/llgo/internal/abi.Method" %1623, ptr %1944, align 8 + %1945 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1938, i64 6 + store %"github.com/goplus/llgo/internal/abi.Method" %1634, ptr %1945, align 8 + %1946 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1938, i64 7 + store %"github.com/goplus/llgo/internal/abi.Method" %1645, ptr %1946, align 8 + %1947 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1938, i64 8 + store %"github.com/goplus/llgo/internal/abi.Method" %1656, ptr %1947, align 8 + %1948 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1938, i64 9 + store %"github.com/goplus/llgo/internal/abi.Method" %1667, ptr %1948, align 8 + %1949 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1938, i64 10 + store %"github.com/goplus/llgo/internal/abi.Method" %1678, ptr %1949, align 8 + %1950 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1938, i64 11 + store %"github.com/goplus/llgo/internal/abi.Method" %1689, ptr %1950, align 8 + %1951 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1938, i64 12 + store %"github.com/goplus/llgo/internal/abi.Method" %1700, ptr %1951, align 8 + %1952 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1938, i64 13 + store %"github.com/goplus/llgo/internal/abi.Method" %1711, ptr %1952, align 8 + %1953 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1938, i64 14 + store %"github.com/goplus/llgo/internal/abi.Method" %1722, ptr %1953, align 8 + %1954 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1938, i64 15 + store %"github.com/goplus/llgo/internal/abi.Method" %1733, ptr %1954, align 8 + %1955 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1938, i64 16 + store %"github.com/goplus/llgo/internal/abi.Method" %1744, ptr %1955, align 8 + %1956 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1938, i64 17 + store %"github.com/goplus/llgo/internal/abi.Method" %1755, ptr %1956, align 8 + %1957 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1938, i64 18 + store %"github.com/goplus/llgo/internal/abi.Method" %1766, ptr %1957, align 8 + %1958 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1938, i64 19 + store %"github.com/goplus/llgo/internal/abi.Method" %1937, ptr %1958, align 8 + %1959 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %1960 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1959, i32 0, i32 0 + store ptr %1938, ptr %1960, align 8 + %1961 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1959, i32 0, i32 1 + store i64 20, ptr %1961, align 4 + %1962 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1959, i32 0, i32 2 + store i64 20, ptr %1962, align 4 + %1963 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1959, align 8 + %1964 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %1965 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1964, i32 0, i32 0 + store ptr @31, ptr %1965, align 8 + %1966 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1964, i32 0, i32 1 + store i64 35, ptr %1966, align 4 + %1967 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1964, align 8 + %1968 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %1969 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1968, i32 0, i32 0 + store ptr @65, ptr %1969, align 8 + %1970 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1968, i32 0, i32 1 + store i64 10, ptr %1970, align 4 + %1971 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1968, align 8 + call void @"github.com/goplus/llgo/internal/runtime.InitNamed"(ptr %1499, %"github.com/goplus/llgo/internal/runtime.String" %1967, %"github.com/goplus/llgo/internal/runtime.String" %1971, ptr %1557, { ptr, i64, i64 } zeroinitializer, %"github.com/goplus/llgo/internal/runtime.Slice" %1963) + br label %_llgo_72 -_llgo_88: ; preds = %_llgo_87, %_llgo_86 - %1715 = load ptr, ptr @"_llgo_func$qiNnn6Cbm3GtDp4gDI4U_DRV3h8zlz91s9jrfOXC--U", align 8 - %1716 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 - %1717 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1716, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %1274, ptr %1717, align 8 - %1718 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1716, i32 0, i32 1 - store ptr %1715, ptr %1718, align 8 - %1719 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1716, i32 0, i32 2 - store ptr @"github.com/goplus/llgo/internal/abi.(*MapType).StructType", ptr %1719, align 8 - %1720 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1716, i32 0, i32 3 - store ptr @"github.com/goplus/llgo/internal/abi.(*MapType).StructType", ptr %1720, align 8 - %1721 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %1716, align 8 - %1722 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %1723 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1722, i32 0, i32 0 - store ptr @56, ptr %1723, align 8 - %1724 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1722, i32 0, i32 1 - store i64 8, ptr %1724, align 4 - %1725 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1722, align 8 - %1726 = load ptr, ptr @"_llgo_func$DbD4nZv_bjE4tH8hh-VfAjMXMpNfIsMlLJJJPKupp34", align 8 - %1727 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 - %1728 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1727, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %1725, ptr %1728, align 8 - %1729 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1727, i32 0, i32 1 - store ptr %1726, ptr %1729, align 8 - %1730 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1727, i32 0, i32 2 - store ptr @"github.com/goplus/llgo/internal/abi.(*MapType).Uncommon", ptr %1730, align 8 - %1731 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1727, i32 0, i32 3 - store ptr @"github.com/goplus/llgo/internal/abi.(*MapType).Uncommon", ptr %1731, align 8 - %1732 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %1727, align 8 - %1733 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 880) - %1734 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1733, i64 0 - store %"github.com/goplus/llgo/internal/abi.Method" %1042, ptr %1734, align 8 - %1735 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1733, i64 1 - store %"github.com/goplus/llgo/internal/abi.Method" %1053, ptr %1735, align 8 - %1736 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1733, i64 2 - store %"github.com/goplus/llgo/internal/abi.Method" %1064, ptr %1736, align 8 - %1737 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1733, i64 3 - store %"github.com/goplus/llgo/internal/abi.Method" %1075, ptr %1737, align 8 - %1738 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1733, i64 4 - store %"github.com/goplus/llgo/internal/abi.Method" %1086, ptr %1738, align 8 - %1739 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1733, i64 5 - store %"github.com/goplus/llgo/internal/abi.Method" %1097, ptr %1739, align 8 - %1740 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1733, i64 6 - store %"github.com/goplus/llgo/internal/abi.Method" %1108, ptr %1740, align 8 - %1741 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1733, i64 7 - store %"github.com/goplus/llgo/internal/abi.Method" %1119, ptr %1741, align 8 - %1742 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1733, i64 8 - store %"github.com/goplus/llgo/internal/abi.Method" %1130, ptr %1742, align 8 - %1743 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1733, i64 9 - store %"github.com/goplus/llgo/internal/abi.Method" %1141, ptr %1743, align 8 - %1744 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1733, i64 10 - store %"github.com/goplus/llgo/internal/abi.Method" %1152, ptr %1744, align 8 - %1745 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1733, i64 11 - store %"github.com/goplus/llgo/internal/abi.Method" %1163, ptr %1745, align 8 - %1746 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1733, i64 12 - store %"github.com/goplus/llgo/internal/abi.Method" %1174, ptr %1746, align 8 - %1747 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1733, i64 13 - store %"github.com/goplus/llgo/internal/abi.Method" %1185, ptr %1747, align 8 - %1748 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1733, i64 14 - store %"github.com/goplus/llgo/internal/abi.Method" %1196, ptr %1748, align 8 - %1749 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1733, i64 15 - store %"github.com/goplus/llgo/internal/abi.Method" %1207, ptr %1749, align 8 - %1750 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1733, i64 16 - store %"github.com/goplus/llgo/internal/abi.Method" %1218, ptr %1750, align 8 - %1751 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1733, i64 17 - store %"github.com/goplus/llgo/internal/abi.Method" %1229, ptr %1751, align 8 - %1752 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1733, i64 18 - store %"github.com/goplus/llgo/internal/abi.Method" %1259, ptr %1752, align 8 - %1753 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1733, i64 19 - store %"github.com/goplus/llgo/internal/abi.Method" %1270, ptr %1753, align 8 - %1754 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1733, i64 20 - store %"github.com/goplus/llgo/internal/abi.Method" %1721, ptr %1754, align 8 - %1755 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1733, i64 21 - store %"github.com/goplus/llgo/internal/abi.Method" %1732, ptr %1755, align 8 - %1756 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %1757 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1756, i32 0, i32 0 - store ptr %1733, ptr %1757, align 8 - %1758 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1756, i32 0, i32 1 - store i64 22, ptr %1758, align 4 - %1759 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1756, i32 0, i32 2 - store i64 22, ptr %1759, align 4 - %1760 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1756, align 8 - %1761 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %1762 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1761, i32 0, i32 0 - store ptr @38, ptr %1762, align 8 - %1763 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1761, i32 0, i32 1 - store i64 35, ptr %1763, align 4 - %1764 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1761, align 8 - %1765 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %1766 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1765, i32 0, i32 0 - store ptr @39, ptr %1766, align 8 - %1767 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1765, i32 0, i32 1 - store i64 7, ptr %1767, align 4 - %1768 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1765, align 8 - call void @"github.com/goplus/llgo/internal/runtime.InitNamed"(ptr %862, %"github.com/goplus/llgo/internal/runtime.String" %1764, %"github.com/goplus/llgo/internal/runtime.String" %1768, ptr %1031, { ptr, i64, i64 } zeroinitializer, %"github.com/goplus/llgo/internal/runtime.Slice" %1760) - br label %_llgo_62 +_llgo_87: ; preds = %_llgo_72 + %1972 = call ptr @"github.com/goplus/llgo/internal/runtime.PointerTo"(ptr %1782) + call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %1972) + store ptr %1972, ptr @"*_llgo_github.com/goplus/llgo/internal/abi.StructType", align 8 + br label %_llgo_88 -_llgo_89: ; preds = %_llgo_62 - %1769 = call ptr @"github.com/goplus/llgo/internal/runtime.PointerTo"(ptr %862) - call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %1769) - store ptr %1769, ptr @"*_llgo_github.com/goplus/llgo/internal/abi.MapType", align 8 +_llgo_88: ; preds = %_llgo_87, %_llgo_72 + %1973 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/internal/abi.StructType", align 8 + %1974 = load ptr, ptr @"_llgo_func$qiNnn6Cbm3GtDp4gDI4U_DRV3h8zlz91s9jrfOXC--U", align 8 + %1975 = icmp eq ptr %1974, null + br i1 %1975, label %_llgo_89, label %_llgo_90 + +_llgo_89: ; preds = %_llgo_88 + %1976 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 0) + %1977 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %1978 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1977, i32 0, i32 0 + store ptr %1976, ptr %1978, align 8 + %1979 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1977, i32 0, i32 1 + store i64 0, ptr %1979, align 4 + %1980 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1977, i32 0, i32 2 + store i64 0, ptr %1980, align 4 + %1981 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1977, align 8 + %1982 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 8) + %1983 = getelementptr ptr, ptr %1982, i64 0 + store ptr %1973, ptr %1983, align 8 + %1984 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %1985 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1984, i32 0, i32 0 + store ptr %1982, ptr %1985, align 8 + %1986 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1984, i32 0, i32 1 + store i64 1, ptr %1986, align 4 + %1987 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1984, i32 0, i32 2 + store i64 1, ptr %1987, align 4 + %1988 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1984, align 8 + %1989 = call ptr @"github.com/goplus/llgo/internal/runtime.Func"(%"github.com/goplus/llgo/internal/runtime.Slice" %1981, %"github.com/goplus/llgo/internal/runtime.Slice" %1988, i1 false) + call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %1989) + store ptr %1989, ptr @"_llgo_func$qiNnn6Cbm3GtDp4gDI4U_DRV3h8zlz91s9jrfOXC--U", align 8 br label %_llgo_90 -_llgo_90: ; preds = %_llgo_89, %_llgo_62 - %1770 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/internal/abi.MapType", align 8 - %1771 = load ptr, ptr @"_llgo_func$d-NlqnjcQnaMjsBQY7qh2SWQmHb0XIigoceXdiJ8YT4", align 8 - %1772 = icmp eq ptr %1771, null - br i1 %1772, label %_llgo_91, label %_llgo_92 - -_llgo_91: ; preds = %_llgo_90 - %1773 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 0) - %1774 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %1775 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1774, i32 0, i32 0 - store ptr %1773, ptr %1775, align 8 - %1776 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1774, i32 0, i32 1 - store i64 0, ptr %1776, align 4 - %1777 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1774, i32 0, i32 2 - store i64 0, ptr %1777, align 4 - %1778 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1774, align 8 - %1779 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 8) - %1780 = getelementptr ptr, ptr %1779, i64 0 - store ptr %1770, ptr %1780, align 8 - %1781 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %1782 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1781, i32 0, i32 0 - store ptr %1779, ptr %1782, align 8 - %1783 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1781, i32 0, i32 1 - store i64 1, ptr %1783, align 4 - %1784 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1781, i32 0, i32 2 - store i64 1, ptr %1784, align 4 - %1785 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1781, align 8 - %1786 = call ptr @"github.com/goplus/llgo/internal/runtime.Func"(%"github.com/goplus/llgo/internal/runtime.Slice" %1778, %"github.com/goplus/llgo/internal/runtime.Slice" %1785, i1 false) - call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %1786) - store ptr %1786, ptr @"_llgo_func$d-NlqnjcQnaMjsBQY7qh2SWQmHb0XIigoceXdiJ8YT4", align 8 - br label %_llgo_92 - -_llgo_92: ; preds = %_llgo_91, %_llgo_90 - %1787 = load ptr, ptr @"_llgo_func$d-NlqnjcQnaMjsBQY7qh2SWQmHb0XIigoceXdiJ8YT4", align 8 - %1788 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 - %1789 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1788, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %861, ptr %1789, align 8 - %1790 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1788, i32 0, i32 1 - store ptr %1787, ptr %1790, align 8 - %1791 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1788, i32 0, i32 2 - store ptr @"github.com/goplus/llgo/internal/abi.(*InterfaceType).MapType", ptr %1791, align 8 - %1792 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1788, i32 0, i32 3 - store ptr @"github.com/goplus/llgo/internal/abi.(*InterfaceType).MapType", ptr %1792, align 8 - %1793 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %1788, align 8 - %1794 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %1795 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1794, i32 0, i32 0 - store ptr @51, ptr %1795, align 8 - %1796 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1794, i32 0, i32 1 - store i64 8, ptr %1796, align 4 - %1797 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1794, align 8 - %1798 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 - %1799 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 - %1800 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1799, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %1797, ptr %1800, align 8 - %1801 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1799, i32 0, i32 1 - store ptr %1798, ptr %1801, align 8 - %1802 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1799, i32 0, i32 2 - store ptr @"github.com/goplus/llgo/internal/abi.(*InterfaceType).Pointers", ptr %1802, align 8 - %1803 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1799, i32 0, i32 3 - store ptr @"github.com/goplus/llgo/internal/abi.(*InterfaceType).Pointers", ptr %1803, align 8 - %1804 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %1799, align 8 - %1805 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %1806 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1805, i32 0, i32 0 - store ptr @53, ptr %1806, align 8 - %1807 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1805, i32 0, i32 1 - store i64 4, ptr %1807, align 4 - %1808 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1805, align 8 - %1809 = load ptr, ptr @"_llgo_func$1kITCsyu7hFLMxHLR7kDlvu4SOra_HtrtdFUQH9P13s", 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" %1808, 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).Size", 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).Size", 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 @37, ptr %1817, align 8 - %1818 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1816, i32 0, i32 1 - store i64 6, ptr %1818, align 4 - %1819 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1816, align 8 - %1820 = load ptr, ptr @"_llgo_func$zNDVRsWTIpUPKouNUS805RGX--IV9qVK8B31IZbg5to", 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).String", 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).String", 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 @54, ptr %1828, align 8 - %1829 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1827, i32 0, i32 1 - store i64 10, ptr %1829, align 4 - %1830 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1827, align 8 - %1831 = load ptr, ptr @"_llgo_func$qiNnn6Cbm3GtDp4gDI4U_DRV3h8zlz91s9jrfOXC--U", 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).StructType", 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).StructType", 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 @56, ptr %1839, align 8 - %1840 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1838, i32 0, i32 1 - store i64 8, ptr %1840, align 4 - %1841 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1838, align 8 - %1842 = load ptr, ptr @"_llgo_func$DbD4nZv_bjE4tH8hh-VfAjMXMpNfIsMlLJJJPKupp34", 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).Uncommon", 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).Uncommon", ptr %1847, align 8 - %1848 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %1843, align 8 - %1849 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 720) - %1850 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1849, i64 0 - store %"github.com/goplus/llgo/internal/abi.Method" %651, ptr %1850, align 8 - %1851 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1849, i64 1 - store %"github.com/goplus/llgo/internal/abi.Method" %662, ptr %1851, align 8 - %1852 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1849, i64 2 - store %"github.com/goplus/llgo/internal/abi.Method" %673, ptr %1852, align 8 - %1853 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1849, i64 3 - store %"github.com/goplus/llgo/internal/abi.Method" %684, ptr %1853, align 8 - %1854 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1849, i64 4 - store %"github.com/goplus/llgo/internal/abi.Method" %695, ptr %1854, align 8 - %1855 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1849, i64 5 - store %"github.com/goplus/llgo/internal/abi.Method" %706, ptr %1855, align 8 - %1856 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1849, i64 6 - store %"github.com/goplus/llgo/internal/abi.Method" %717, ptr %1856, align 8 - %1857 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1849, i64 7 - store %"github.com/goplus/llgo/internal/abi.Method" %728, ptr %1857, align 8 - %1858 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1849, i64 8 - store %"github.com/goplus/llgo/internal/abi.Method" %739, ptr %1858, align 8 - %1859 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1849, i64 9 - store %"github.com/goplus/llgo/internal/abi.Method" %750, ptr %1859, align 8 - %1860 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1849, i64 10 - store %"github.com/goplus/llgo/internal/abi.Method" %846, ptr %1860, align 8 - %1861 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1849, i64 11 - store %"github.com/goplus/llgo/internal/abi.Method" %857, ptr %1861, align 8 - %1862 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1849, i64 12 - store %"github.com/goplus/llgo/internal/abi.Method" %1793, ptr %1862, align 8 - %1863 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1849, i64 13 - store %"github.com/goplus/llgo/internal/abi.Method" %1804, ptr %1863, align 8 - %1864 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1849, i64 14 - store %"github.com/goplus/llgo/internal/abi.Method" %1815, ptr %1864, align 8 - %1865 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1849, i64 15 - store %"github.com/goplus/llgo/internal/abi.Method" %1826, ptr %1865, align 8 - %1866 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1849, i64 16 - store %"github.com/goplus/llgo/internal/abi.Method" %1837, ptr %1866, align 8 - %1867 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1849, i64 17 - store %"github.com/goplus/llgo/internal/abi.Method" %1848, ptr %1867, align 8 - %1868 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %1869 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1868, i32 0, i32 0 - store ptr %1849, ptr %1869, align 8 - %1870 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1868, i32 0, i32 1 - store i64 18, ptr %1870, align 4 - %1871 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1868, i32 0, i32 2 - store i64 18, ptr %1871, align 4 - %1872 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1868, align 8 - %1873 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %1874 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1873, i32 0, i32 0 - store ptr @38, ptr %1874, align 8 - %1875 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1873, i32 0, i32 1 - store i64 35, ptr %1875, align 4 - %1876 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1873, align 8 - %1877 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %1878 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1877, i32 0, i32 0 - store ptr @32, ptr %1878, align 8 - %1879 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1877, i32 0, i32 1 - store i64 13, ptr %1879, align 4 - %1880 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1877, align 8 - call void @"github.com/goplus/llgo/internal/runtime.InitNamed"(ptr %591, %"github.com/goplus/llgo/internal/runtime.String" %1876, %"github.com/goplus/llgo/internal/runtime.String" %1880, ptr %640, { ptr, i64, i64 } zeroinitializer, %"github.com/goplus/llgo/internal/runtime.Slice" %1872) - br label %_llgo_42 - -_llgo_93: ; preds = %_llgo_42 - %1881 = call ptr @"github.com/goplus/llgo/internal/runtime.PointerTo"(ptr %591) - call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %1881) - store ptr %1881, ptr @"*_llgo_github.com/goplus/llgo/internal/abi.InterfaceType", align 8 - br label %_llgo_94 - -_llgo_94: ; preds = %_llgo_93, %_llgo_42 - %1882 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/internal/abi.InterfaceType", align 8 - %1883 = load ptr, ptr @"_llgo_func$1QmforOaCy2fBAssC2y1FWCCT6fpq9RKwP2j2HIASY8", align 8 - %1884 = icmp eq ptr %1883, null - br i1 %1884, label %_llgo_95, label %_llgo_96 - -_llgo_95: ; preds = %_llgo_94 - %1885 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 0) - %1886 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %1887 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1886, i32 0, i32 0 - store ptr %1885, ptr %1887, align 8 - %1888 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1886, i32 0, i32 1 - store i64 0, ptr %1888, align 4 - %1889 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1886, i32 0, i32 2 - store i64 0, ptr %1889, align 4 - %1890 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1886, align 8 - %1891 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 8) - %1892 = getelementptr ptr, ptr %1891, i64 0 - store ptr %1882, ptr %1892, align 8 - %1893 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %1894 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1893, i32 0, i32 0 - store ptr %1891, ptr %1894, align 8 - %1895 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1893, i32 0, i32 1 - store i64 1, ptr %1895, align 4 - %1896 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1893, i32 0, i32 2 - store i64 1, ptr %1896, align 4 - %1897 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1893, align 8 - %1898 = call ptr @"github.com/goplus/llgo/internal/runtime.Func"(%"github.com/goplus/llgo/internal/runtime.Slice" %1890, %"github.com/goplus/llgo/internal/runtime.Slice" %1897, i1 false) - call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %1898) - store ptr %1898, ptr @"_llgo_func$1QmforOaCy2fBAssC2y1FWCCT6fpq9RKwP2j2HIASY8", align 8 - br label %_llgo_96 - -_llgo_96: ; preds = %_llgo_95, %_llgo_94 - %1899 = load ptr, ptr @"_llgo_func$1QmforOaCy2fBAssC2y1FWCCT6fpq9RKwP2j2HIASY8", align 8 - %1900 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 - %1901 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1900, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %590, ptr %1901, align 8 - %1902 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1900, i32 0, i32 1 - store ptr %1899, ptr %1902, align 8 - %1903 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1900, i32 0, i32 2 - store ptr @"github.com/goplus/llgo/internal/abi.(*FuncType).InterfaceType", ptr %1903, align 8 - %1904 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1900, i32 0, i32 3 - store ptr @"github.com/goplus/llgo/internal/abi.(*FuncType).InterfaceType", ptr %1904, align 8 - %1905 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %1900, align 8 - %1906 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %1907 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1906, i32 0, i32 0 - store ptr @35, ptr %1907, align 8 - %1908 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1906, i32 0, i32 1 - store i64 13, ptr %1908, align 4 - %1909 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1906, align 8 - %1910 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 - %1911 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 - %1912 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1911, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %1909, ptr %1912, align 8 - %1913 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1911, i32 0, i32 1 - store ptr %1910, ptr %1913, align 8 - %1914 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1911, i32 0, i32 2 - store ptr @"github.com/goplus/llgo/internal/abi.(*FuncType).IsDirectIface", ptr %1914, align 8 - %1915 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1911, i32 0, i32 3 - store ptr @"github.com/goplus/llgo/internal/abi.(*FuncType).IsDirectIface", ptr %1915, align 8 - %1916 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %1911, align 8 - %1917 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %1918 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1917, i32 0, i32 0 - store ptr @36, ptr %1918, align 8 - %1919 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1917, i32 0, i32 1 - store i64 4, ptr %1919, align 4 - %1920 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1917, align 8 - %1921 = load ptr, ptr @"_llgo_func$ntUE0UmVAWPS2O7GpCCGszSn-XnjHJntZZ2jYtwbFXI", 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" %1920, 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).Kind", 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).Kind", 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 @24, ptr %1929, align 8 - %1930 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1928, i32 0, i32 1 - store i64 3, ptr %1930, align 4 - %1931 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1928, align 8 - %1932 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", 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).Len", 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).Len", 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 @39, ptr %1940, align 8 - %1941 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1939, i32 0, i32 1 - store i64 7, ptr %1941, align 4 - %1942 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1939, align 8 - %1943 = load ptr, ptr @"_llgo_func$d-NlqnjcQnaMjsBQY7qh2SWQmHb0XIigoceXdiJ8YT4", 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).MapType", 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).MapType", 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 @51, ptr %1951, align 8 - %1952 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1950, i32 0, i32 1 - store i64 8, ptr %1952, align 4 - %1953 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1950, align 8 - %1954 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", 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).Pointers", 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).Pointers", 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 @53, ptr %1962, align 8 - %1963 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1961, i32 0, i32 1 - store i64 4, ptr %1963, align 4 - %1964 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1961, align 8 - %1965 = load ptr, ptr @"_llgo_func$1kITCsyu7hFLMxHLR7kDlvu4SOra_HtrtdFUQH9P13s", 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).Size", 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).Size", 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 @37, ptr %1973, align 8 - %1974 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1972, i32 0, i32 1 - store i64 6, ptr %1974, align 4 - %1975 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1972, align 8 - %1976 = load ptr, ptr @"_llgo_func$zNDVRsWTIpUPKouNUS805RGX--IV9qVK8B31IZbg5to", 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).String", 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).String", 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 @54, ptr %1984, align 8 - %1985 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1983, i32 0, i32 1 - store i64 10, ptr %1985, align 4 - %1986 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1983, align 8 - %1987 = load ptr, ptr @"_llgo_func$qiNnn6Cbm3GtDp4gDI4U_DRV3h8zlz91s9jrfOXC--U", 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).StructType", 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).StructType", 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 @56, ptr %1995, align 8 - %1996 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1994, i32 0, i32 1 - store i64 8, ptr %1996, align 4 - %1997 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1994, align 8 - %1998 = load ptr, ptr @"_llgo_func$DbD4nZv_bjE4tH8hh-VfAjMXMpNfIsMlLJJJPKupp34", 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).Uncommon", 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).Uncommon", 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 @62, ptr %2006, align 8 - %2007 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2005, i32 0, i32 1 - store i64 8, ptr %2007, align 4 - %2008 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %2005, align 8 - %2009 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", 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).Variadic", 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).Variadic", ptr %2014, align 8 - %2015 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %2010, align 8 - %2016 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 760) - %2017 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2016, i64 0 - store %"github.com/goplus/llgo/internal/abi.Method" %490, ptr %2017, align 8 - %2018 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2016, i64 1 - store %"github.com/goplus/llgo/internal/abi.Method" %501, ptr %2018, align 8 - %2019 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2016, i64 2 - store %"github.com/goplus/llgo/internal/abi.Method" %512, ptr %2019, align 8 - %2020 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2016, i64 3 - store %"github.com/goplus/llgo/internal/abi.Method" %523, ptr %2020, align 8 - %2021 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2016, i64 4 - store %"github.com/goplus/llgo/internal/abi.Method" %534, ptr %2021, align 8 - %2022 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2016, i64 5 - store %"github.com/goplus/llgo/internal/abi.Method" %545, ptr %2022, align 8 - %2023 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2016, i64 6 - store %"github.com/goplus/llgo/internal/abi.Method" %575, ptr %2023, align 8 - %2024 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2016, i64 7 - store %"github.com/goplus/llgo/internal/abi.Method" %586, ptr %2024, align 8 - %2025 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2016, i64 8 - store %"github.com/goplus/llgo/internal/abi.Method" %1905, ptr %2025, align 8 - %2026 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2016, i64 9 - store %"github.com/goplus/llgo/internal/abi.Method" %1916, ptr %2026, align 8 - %2027 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2016, i64 10 - store %"github.com/goplus/llgo/internal/abi.Method" %1927, ptr %2027, align 8 - %2028 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2016, i64 11 - store %"github.com/goplus/llgo/internal/abi.Method" %1938, ptr %2028, align 8 - %2029 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2016, i64 12 - store %"github.com/goplus/llgo/internal/abi.Method" %1949, ptr %2029, align 8 - %2030 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2016, i64 13 - store %"github.com/goplus/llgo/internal/abi.Method" %1960, ptr %2030, align 8 - %2031 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2016, i64 14 - store %"github.com/goplus/llgo/internal/abi.Method" %1971, ptr %2031, align 8 - %2032 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2016, i64 15 - store %"github.com/goplus/llgo/internal/abi.Method" %1982, ptr %2032, align 8 - %2033 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2016, i64 16 - store %"github.com/goplus/llgo/internal/abi.Method" %1993, ptr %2033, align 8 - %2034 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2016, i64 17 - store %"github.com/goplus/llgo/internal/abi.Method" %2004, ptr %2034, align 8 - %2035 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2016, i64 18 - store %"github.com/goplus/llgo/internal/abi.Method" %2015, ptr %2035, align 8 - %2036 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %2037 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %2036, i32 0, i32 0 - store ptr %2016, ptr %2037, align 8 - %2038 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %2036, i32 0, i32 1 - store i64 19, ptr %2038, align 4 - %2039 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %2036, i32 0, i32 2 - store i64 19, ptr %2039, align 4 - %2040 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %2036, align 8 +_llgo_90: ; preds = %_llgo_89, %_llgo_88 + %1990 = load ptr, ptr @"_llgo_func$qiNnn6Cbm3GtDp4gDI4U_DRV3h8zlz91s9jrfOXC--U", align 8 + %1991 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %1992 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1991, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %1494, ptr %1992, align 8 + %1993 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1991, i32 0, i32 1 + store ptr %1990, ptr %1993, align 8 + %1994 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1991, i32 0, i32 2 + store ptr @"github.com/goplus/llgo/internal/abi.(*MapType).StructType", ptr %1994, align 8 + %1995 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1991, i32 0, i32 3 + store ptr @"github.com/goplus/llgo/internal/abi.(*MapType).StructType", ptr %1995, align 8 + %1996 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %1991, align 8 + %1997 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %1998 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1997, i32 0, i32 0 + store ptr @69, ptr %1998, align 8 + %1999 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1997, i32 0, i32 1 + store i64 8, ptr %1999, align 4 + %2000 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1997, align 8 + %2001 = load ptr, ptr @"_llgo_func$DbD4nZv_bjE4tH8hh-VfAjMXMpNfIsMlLJJJPKupp34", align 8 + %2002 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %2003 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2002, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %2000, ptr %2003, align 8 + %2004 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2002, i32 0, i32 1 + store ptr %2001, ptr %2004, align 8 + %2005 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2002, i32 0, i32 2 + store ptr @"github.com/goplus/llgo/internal/abi.(*MapType).Uncommon", ptr %2005, align 8 + %2006 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2002, i32 0, i32 3 + store ptr @"github.com/goplus/llgo/internal/abi.(*MapType).Uncommon", ptr %2006, align 8 + %2007 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %2002, align 8 + %2008 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 920) + %2009 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2008, i64 0 + store %"github.com/goplus/llgo/internal/abi.Method" %1246, ptr %2009, align 8 + %2010 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2008, i64 1 + store %"github.com/goplus/llgo/internal/abi.Method" %1257, ptr %2010, align 8 + %2011 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2008, i64 2 + store %"github.com/goplus/llgo/internal/abi.Method" %1268, ptr %2011, align 8 + %2012 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2008, i64 3 + store %"github.com/goplus/llgo/internal/abi.Method" %1279, ptr %2012, align 8 + %2013 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2008, i64 4 + store %"github.com/goplus/llgo/internal/abi.Method" %1290, ptr %2013, align 8 + %2014 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2008, i64 5 + store %"github.com/goplus/llgo/internal/abi.Method" %1301, ptr %2014, align 8 + %2015 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2008, i64 6 + store %"github.com/goplus/llgo/internal/abi.Method" %1312, ptr %2015, align 8 + %2016 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2008, i64 7 + store %"github.com/goplus/llgo/internal/abi.Method" %1323, ptr %2016, align 8 + %2017 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2008, i64 8 + store %"github.com/goplus/llgo/internal/abi.Method" %1334, ptr %2017, align 8 + %2018 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2008, i64 9 + store %"github.com/goplus/llgo/internal/abi.Method" %1345, ptr %2018, align 8 + %2019 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2008, i64 10 + store %"github.com/goplus/llgo/internal/abi.Method" %1356, ptr %2019, align 8 + %2020 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2008, i64 11 + store %"github.com/goplus/llgo/internal/abi.Method" %1367, ptr %2020, align 8 + %2021 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2008, i64 12 + store %"github.com/goplus/llgo/internal/abi.Method" %1378, ptr %2021, align 8 + %2022 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2008, i64 13 + store %"github.com/goplus/llgo/internal/abi.Method" %1389, ptr %2022, align 8 + %2023 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2008, i64 14 + store %"github.com/goplus/llgo/internal/abi.Method" %1400, ptr %2023, align 8 + %2024 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2008, i64 15 + store %"github.com/goplus/llgo/internal/abi.Method" %1411, ptr %2024, align 8 + %2025 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2008, i64 16 + store %"github.com/goplus/llgo/internal/abi.Method" %1422, ptr %2025, align 8 + %2026 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2008, i64 17 + store %"github.com/goplus/llgo/internal/abi.Method" %1433, ptr %2026, align 8 + %2027 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2008, i64 18 + store %"github.com/goplus/llgo/internal/abi.Method" %1444, ptr %2027, align 8 + %2028 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2008, i64 19 + store %"github.com/goplus/llgo/internal/abi.Method" %1479, ptr %2028, align 8 + %2029 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2008, i64 20 + store %"github.com/goplus/llgo/internal/abi.Method" %1490, ptr %2029, align 8 + %2030 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2008, i64 21 + store %"github.com/goplus/llgo/internal/abi.Method" %1996, ptr %2030, align 8 + %2031 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2008, i64 22 + store %"github.com/goplus/llgo/internal/abi.Method" %2007, ptr %2031, align 8 + %2032 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %2033 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %2032, i32 0, i32 0 + store ptr %2008, ptr %2033, align 8 + %2034 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %2032, i32 0, i32 1 + store i64 23, ptr %2034, align 4 + %2035 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %2032, i32 0, i32 2 + store i64 23, ptr %2035, align 4 + %2036 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %2032, align 8 + %2037 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %2038 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2037, i32 0, i32 0 + store ptr @31, ptr %2038, align 8 + %2039 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2037, i32 0, i32 1 + store i64 35, ptr %2039, align 4 + %2040 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %2037, align 8 %2041 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 %2042 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2041, i32 0, i32 0 - store ptr @38, ptr %2042, align 8 + store ptr @50, ptr %2042, align 8 %2043 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2041, i32 0, i32 1 - store i64 35, ptr %2043, align 4 + store i64 7, ptr %2043, align 4 %2044 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %2041, align 8 - %2045 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %2046 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2045, i32 0, i32 0 - store ptr @27, ptr %2046, align 8 - %2047 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2045, i32 0, i32 1 - store i64 8, ptr %2047, align 4 - %2048 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %2045, align 8 - call void @"github.com/goplus/llgo/internal/runtime.InitNamed"(ptr %429, %"github.com/goplus/llgo/internal/runtime.String" %2044, %"github.com/goplus/llgo/internal/runtime.String" %2048, ptr %479, { ptr, i64, i64 } zeroinitializer, %"github.com/goplus/llgo/internal/runtime.Slice" %2040) - br label %_llgo_34 + call void @"github.com/goplus/llgo/internal/runtime.InitNamed"(ptr %1048, %"github.com/goplus/llgo/internal/runtime.String" %2040, %"github.com/goplus/llgo/internal/runtime.String" %2044, ptr %1235, { ptr, i64, i64 } zeroinitializer, %"github.com/goplus/llgo/internal/runtime.Slice" %2036) + br label %_llgo_64 -_llgo_97: ; preds = %_llgo_34 - %2049 = call ptr @"github.com/goplus/llgo/internal/runtime.PointerTo"(ptr %429) - call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %2049) - store ptr %2049, ptr @"*_llgo_github.com/goplus/llgo/internal/abi.FuncType", align 8 - br label %_llgo_98 +_llgo_91: ; preds = %_llgo_64 + %2045 = call ptr @"github.com/goplus/llgo/internal/runtime.PointerTo"(ptr %1456) + call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %2045) + store ptr %2045, ptr @"*_llgo_github.com/goplus/llgo/internal/abi.MapType", align 8 + br label %_llgo_92 -_llgo_98: ; preds = %_llgo_97, %_llgo_34 - %2050 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/internal/abi.FuncType", align 8 - %2051 = load ptr, ptr @"_llgo_func$DsoxgOnxqV7tLvokF3AA14v1gtHsHaThoC8Q_XGcQww", align 8 - %2052 = icmp eq ptr %2051, null - br i1 %2052, label %_llgo_99, label %_llgo_100 - -_llgo_99: ; preds = %_llgo_98 - %2053 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 0) - %2054 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %2055 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %2054, i32 0, i32 0 - store ptr %2053, ptr %2055, align 8 - %2056 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %2054, i32 0, i32 1 - store i64 0, ptr %2056, align 4 - %2057 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %2054, i32 0, i32 2 - store i64 0, ptr %2057, align 4 - %2058 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %2054, align 8 - %2059 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 8) - %2060 = getelementptr ptr, ptr %2059, i64 0 - store ptr %2050, ptr %2060, align 8 - %2061 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %2062 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %2061, i32 0, i32 0 - store ptr %2059, ptr %2062, align 8 - %2063 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %2061, i32 0, i32 1 - store i64 1, ptr %2063, align 4 - %2064 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %2061, i32 0, i32 2 - store i64 1, ptr %2064, align 4 - %2065 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %2061, align 8 - %2066 = call ptr @"github.com/goplus/llgo/internal/runtime.Func"(%"github.com/goplus/llgo/internal/runtime.Slice" %2058, %"github.com/goplus/llgo/internal/runtime.Slice" %2065, i1 false) - call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %2066) - store ptr %2066, ptr @"_llgo_func$DsoxgOnxqV7tLvokF3AA14v1gtHsHaThoC8Q_XGcQww", align 8 - br label %_llgo_100 +_llgo_92: ; preds = %_llgo_91, %_llgo_64 + %2046 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/internal/abi.MapType", align 8 + %2047 = load ptr, ptr @"_llgo_func$d-NlqnjcQnaMjsBQY7qh2SWQmHb0XIigoceXdiJ8YT4", align 8 + %2048 = icmp eq ptr %2047, null + br i1 %2048, label %_llgo_93, label %_llgo_94 + +_llgo_93: ; preds = %_llgo_92 + %2049 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 0) + %2050 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %2051 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %2050, i32 0, i32 0 + store ptr %2049, ptr %2051, align 8 + %2052 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %2050, i32 0, i32 1 + store i64 0, ptr %2052, align 4 + %2053 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %2050, i32 0, i32 2 + store i64 0, ptr %2053, align 4 + %2054 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %2050, align 8 + %2055 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 8) + %2056 = getelementptr ptr, ptr %2055, i64 0 + store ptr %2046, ptr %2056, align 8 + %2057 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %2058 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %2057, i32 0, i32 0 + store ptr %2055, ptr %2058, align 8 + %2059 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %2057, i32 0, i32 1 + store i64 1, ptr %2059, align 4 + %2060 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %2057, i32 0, i32 2 + store i64 1, ptr %2060, align 4 + %2061 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %2057, align 8 + %2062 = call ptr @"github.com/goplus/llgo/internal/runtime.Func"(%"github.com/goplus/llgo/internal/runtime.Slice" %2054, %"github.com/goplus/llgo/internal/runtime.Slice" %2061, i1 false) + call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %2062) + store ptr %2062, ptr @"_llgo_func$d-NlqnjcQnaMjsBQY7qh2SWQmHb0XIigoceXdiJ8YT4", align 8 + br label %_llgo_94 -_llgo_100: ; preds = %_llgo_99, %_llgo_98 - %2067 = load ptr, ptr @"_llgo_func$DsoxgOnxqV7tLvokF3AA14v1gtHsHaThoC8Q_XGcQww", align 8 - %2068 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 - %2069 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2068, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %428, ptr %2069, align 8 - %2070 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2068, i32 0, i32 1 - store ptr %2067, ptr %2070, align 8 - %2071 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2068, i32 0, i32 2 - store ptr @"github.com/goplus/llgo/internal/abi.(*ArrayType).FuncType", ptr %2071, align 8 - %2072 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2068, i32 0, i32 3 - store ptr @"github.com/goplus/llgo/internal/abi.(*ArrayType).FuncType", ptr %2072, align 8 - %2073 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %2068, align 8 - %2074 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %2075 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2074, i32 0, i32 0 - store ptr @30, ptr %2075, align 8 - %2076 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2074, i32 0, i32 1 - store i64 7, ptr %2076, align 4 - %2077 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %2074, align 8 - %2078 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 - %2079 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 - %2080 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2079, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %2077, ptr %2080, align 8 - %2081 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2079, i32 0, i32 1 - store ptr %2078, ptr %2081, align 8 - %2082 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2079, i32 0, i32 2 - store ptr @"github.com/goplus/llgo/internal/abi.(*ArrayType).HasName", ptr %2082, align 8 - %2083 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2079, i32 0, i32 3 - store ptr @"github.com/goplus/llgo/internal/abi.(*ArrayType).HasName", ptr %2083, align 8 - %2084 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %2079, align 8 - %2085 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %2086 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2085, i32 0, i32 0 - store ptr @31, ptr %2086, align 8 - %2087 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2085, i32 0, i32 1 - store i64 10, ptr %2087, align 4 - %2088 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %2085, align 8 - %2089 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", 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" %2088, 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).IfaceIndir", 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).IfaceIndir", 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 @32, ptr %2097, align 8 - %2098 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2096, i32 0, i32 1 - store i64 13, ptr %2098, align 4 - %2099 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %2096, align 8 - %2100 = load ptr, ptr @"_llgo_func$1QmforOaCy2fBAssC2y1FWCCT6fpq9RKwP2j2HIASY8", 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).InterfaceType", 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).InterfaceType", 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 @35, ptr %2108, align 8 - %2109 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2107, i32 0, i32 1 - store i64 13, 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).IsDirectIface", 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).IsDirectIface", 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 @36, ptr %2119, align 8 - %2120 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2118, i32 0, i32 1 - store i64 4, ptr %2120, align 4 - %2121 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %2118, align 8 - %2122 = load ptr, ptr @"_llgo_func$ntUE0UmVAWPS2O7GpCCGszSn-XnjHJntZZ2jYtwbFXI", 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).Kind", 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).Kind", 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 @39, ptr %2130, align 8 - %2131 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2129, i32 0, i32 1 - store i64 7, ptr %2131, align 4 - %2132 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %2129, align 8 - %2133 = load ptr, ptr @"_llgo_func$d-NlqnjcQnaMjsBQY7qh2SWQmHb0XIigoceXdiJ8YT4", 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).MapType", 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).MapType", 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 @51, ptr %2141, align 8 - %2142 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2140, i32 0, i32 1 - store i64 8, ptr %2142, align 4 - %2143 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %2140, align 8 - %2144 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", 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).Pointers", 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).Pointers", ptr %2149, align 8 - %2150 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %2145, align 8 +_llgo_94: ; preds = %_llgo_93, %_llgo_92 + %2063 = load ptr, ptr @"_llgo_func$d-NlqnjcQnaMjsBQY7qh2SWQmHb0XIigoceXdiJ8YT4", align 8 + %2064 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %2065 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2064, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %1043, ptr %2065, align 8 + %2066 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2064, i32 0, i32 1 + store ptr %2063, ptr %2066, align 8 + %2067 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2064, i32 0, i32 2 + store ptr @"github.com/goplus/llgo/internal/abi.(*InterfaceType).MapType", ptr %2067, align 8 + %2068 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2064, i32 0, i32 3 + store ptr @"github.com/goplus/llgo/internal/abi.(*InterfaceType).MapType", ptr %2068, align 8 + %2069 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %2064, align 8 + %2070 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %2071 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2070, i32 0, i32 0 + store ptr @62, ptr %2071, align 8 + %2072 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2070, i32 0, i32 1 + store i64 8, ptr %2072, align 4 + %2073 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %2070, align 8 + %2074 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 + %2075 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %2076 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2075, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %2073, ptr %2076, align 8 + %2077 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2075, i32 0, i32 1 + store ptr %2074, ptr %2077, align 8 + %2078 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2075, i32 0, i32 2 + store ptr @"github.com/goplus/llgo/internal/abi.(*InterfaceType).Pointers", ptr %2078, align 8 + %2079 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2075, i32 0, i32 3 + store ptr @"github.com/goplus/llgo/internal/abi.(*InterfaceType).Pointers", ptr %2079, align 8 + %2080 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %2075, align 8 + %2081 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %2082 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2081, i32 0, i32 0 + store ptr @64, ptr %2082, align 8 + %2083 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2081, i32 0, i32 1 + store i64 4, ptr %2083, align 4 + %2084 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %2081, align 8 + %2085 = load ptr, ptr @"_llgo_func$1kITCsyu7hFLMxHLR7kDlvu4SOra_HtrtdFUQH9P13s", align 8 + %2086 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %2087 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2086, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %2084, ptr %2087, align 8 + %2088 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2086, i32 0, i32 1 + store ptr %2085, ptr %2088, align 8 + %2089 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2086, i32 0, i32 2 + store ptr @"github.com/goplus/llgo/internal/abi.(*InterfaceType).Size", ptr %2089, align 8 + %2090 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2086, i32 0, i32 3 + store ptr @"github.com/goplus/llgo/internal/abi.(*InterfaceType).Size", ptr %2090, align 8 + %2091 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %2086, align 8 + %2092 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %2093 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2092, i32 0, i32 0 + store ptr @49, ptr %2093, align 8 + %2094 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2092, i32 0, i32 1 + store i64 6, ptr %2094, align 4 + %2095 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %2092, align 8 + %2096 = load ptr, ptr @"_llgo_func$zNDVRsWTIpUPKouNUS805RGX--IV9qVK8B31IZbg5to", align 8 + %2097 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %2098 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2097, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %2095, ptr %2098, align 8 + %2099 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2097, i32 0, i32 1 + store ptr %2096, ptr %2099, align 8 + %2100 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2097, i32 0, i32 2 + store ptr @"github.com/goplus/llgo/internal/abi.(*InterfaceType).String", ptr %2100, align 8 + %2101 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2097, i32 0, i32 3 + store ptr @"github.com/goplus/llgo/internal/abi.(*InterfaceType).String", ptr %2101, align 8 + %2102 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %2097, align 8 + %2103 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %2104 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2103, i32 0, i32 0 + store ptr @65, ptr %2104, align 8 + %2105 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2103, i32 0, i32 1 + store i64 10, ptr %2105, align 4 + %2106 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %2103, align 8 + %2107 = load ptr, ptr @"_llgo_func$qiNnn6Cbm3GtDp4gDI4U_DRV3h8zlz91s9jrfOXC--U", align 8 + %2108 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %2109 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2108, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %2106, ptr %2109, align 8 + %2110 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2108, i32 0, i32 1 + store ptr %2107, ptr %2110, align 8 + %2111 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2108, i32 0, i32 2 + store ptr @"github.com/goplus/llgo/internal/abi.(*InterfaceType).StructType", ptr %2111, align 8 + %2112 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2108, i32 0, i32 3 + store ptr @"github.com/goplus/llgo/internal/abi.(*InterfaceType).StructType", ptr %2112, align 8 + %2113 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %2108, align 8 + %2114 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %2115 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2114, i32 0, i32 0 + store ptr @69, ptr %2115, align 8 + %2116 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2114, i32 0, i32 1 + store i64 8, ptr %2116, align 4 + %2117 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %2114, align 8 + %2118 = load ptr, ptr @"_llgo_func$DbD4nZv_bjE4tH8hh-VfAjMXMpNfIsMlLJJJPKupp34", align 8 + %2119 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %2120 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2119, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %2117, ptr %2120, align 8 + %2121 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2119, i32 0, i32 1 + store ptr %2118, ptr %2121, align 8 + %2122 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2119, i32 0, i32 2 + store ptr @"github.com/goplus/llgo/internal/abi.(*InterfaceType).Uncommon", ptr %2122, align 8 + %2123 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2119, i32 0, i32 3 + store ptr @"github.com/goplus/llgo/internal/abi.(*InterfaceType).Uncommon", ptr %2123, align 8 + %2124 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %2119, align 8 + %2125 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 800) + %2126 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2125, i64 0 + store %"github.com/goplus/llgo/internal/abi.Method" %802, ptr %2126, align 8 + %2127 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2125, i64 1 + store %"github.com/goplus/llgo/internal/abi.Method" %813, ptr %2127, align 8 + %2128 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2125, i64 2 + store %"github.com/goplus/llgo/internal/abi.Method" %824, ptr %2128, align 8 + %2129 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2125, i64 3 + store %"github.com/goplus/llgo/internal/abi.Method" %835, ptr %2129, align 8 + %2130 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2125, i64 4 + store %"github.com/goplus/llgo/internal/abi.Method" %846, ptr %2130, align 8 + %2131 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2125, i64 5 + store %"github.com/goplus/llgo/internal/abi.Method" %857, ptr %2131, align 8 + %2132 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2125, i64 6 + store %"github.com/goplus/llgo/internal/abi.Method" %868, ptr %2132, align 8 + %2133 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2125, i64 7 + store %"github.com/goplus/llgo/internal/abi.Method" %879, ptr %2133, align 8 + %2134 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2125, i64 8 + store %"github.com/goplus/llgo/internal/abi.Method" %890, ptr %2134, align 8 + %2135 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2125, i64 9 + store %"github.com/goplus/llgo/internal/abi.Method" %901, ptr %2135, align 8 + %2136 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2125, i64 10 + store %"github.com/goplus/llgo/internal/abi.Method" %912, ptr %2136, align 8 + %2137 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2125, i64 11 + store %"github.com/goplus/llgo/internal/abi.Method" %923, ptr %2137, align 8 + %2138 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2125, i64 12 + store %"github.com/goplus/llgo/internal/abi.Method" %1028, ptr %2138, align 8 + %2139 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2125, i64 13 + store %"github.com/goplus/llgo/internal/abi.Method" %1039, ptr %2139, align 8 + %2140 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2125, i64 14 + store %"github.com/goplus/llgo/internal/abi.Method" %2069, ptr %2140, align 8 + %2141 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2125, i64 15 + store %"github.com/goplus/llgo/internal/abi.Method" %2080, ptr %2141, align 8 + %2142 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2125, i64 16 + store %"github.com/goplus/llgo/internal/abi.Method" %2091, ptr %2142, align 8 + %2143 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2125, i64 17 + store %"github.com/goplus/llgo/internal/abi.Method" %2102, ptr %2143, align 8 + %2144 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2125, i64 18 + store %"github.com/goplus/llgo/internal/abi.Method" %2113, ptr %2144, align 8 + %2145 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2125, i64 19 + store %"github.com/goplus/llgo/internal/abi.Method" %2124, ptr %2145, align 8 + %2146 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %2147 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %2146, i32 0, i32 0 + store ptr %2125, ptr %2147, align 8 + %2148 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %2146, i32 0, i32 1 + store i64 20, ptr %2148, align 4 + %2149 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %2146, i32 0, i32 2 + store i64 20, ptr %2149, align 4 + %2150 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %2146, 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 @53, ptr %2152, align 8 + store ptr @31, ptr %2152, align 8 %2153 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2151, i32 0, i32 1 - store i64 4, ptr %2153, align 4 + store i64 35, ptr %2153, align 4 %2154 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %2151, align 8 - %2155 = load ptr, ptr @"_llgo_func$1kITCsyu7hFLMxHLR7kDlvu4SOra_HtrtdFUQH9P13s", 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).Size", 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).Size", 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 @37, ptr %2163, align 8 - %2164 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2162, i32 0, i32 1 - store i64 6, ptr %2164, align 4 - %2165 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %2162, align 8 - %2166 = load ptr, ptr @"_llgo_func$zNDVRsWTIpUPKouNUS805RGX--IV9qVK8B31IZbg5to", 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).String", 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).String", 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 @54, ptr %2174, align 8 - %2175 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2173, i32 0, i32 1 - store i64 10, ptr %2175, align 4 - %2176 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %2173, align 8 - %2177 = load ptr, ptr @"_llgo_func$qiNnn6Cbm3GtDp4gDI4U_DRV3h8zlz91s9jrfOXC--U", align 8 + %2155 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %2156 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2155, i32 0, i32 0 + store ptr @40, ptr %2156, align 8 + %2157 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2155, i32 0, i32 1 + store i64 13, ptr %2157, align 4 + %2158 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %2155, align 8 + call void @"github.com/goplus/llgo/internal/runtime.InitNamed"(ptr %733, %"github.com/goplus/llgo/internal/runtime.String" %2154, %"github.com/goplus/llgo/internal/runtime.String" %2158, ptr %791, { ptr, i64, i64 } zeroinitializer, %"github.com/goplus/llgo/internal/runtime.Slice" %2150) + br label %_llgo_46 + +_llgo_95: ; preds = %_llgo_46 + %2159 = call ptr @"github.com/goplus/llgo/internal/runtime.PointerTo"(ptr %939) + call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %2159) + store ptr %2159, ptr @"*_llgo_github.com/goplus/llgo/internal/abi.InterfaceType", align 8 + br label %_llgo_96 + +_llgo_96: ; preds = %_llgo_95, %_llgo_46 + %2160 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/internal/abi.InterfaceType", align 8 + %2161 = load ptr, ptr @"_llgo_func$1QmforOaCy2fBAssC2y1FWCCT6fpq9RKwP2j2HIASY8", align 8 + %2162 = icmp eq ptr %2161, null + br i1 %2162, label %_llgo_97, label %_llgo_98 + +_llgo_97: ; preds = %_llgo_96 + %2163 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 0) + %2164 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %2165 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %2164, i32 0, i32 0 + store ptr %2163, ptr %2165, align 8 + %2166 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %2164, i32 0, i32 1 + store i64 0, ptr %2166, align 4 + %2167 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %2164, i32 0, i32 2 + store i64 0, ptr %2167, align 4 + %2168 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %2164, align 8 + %2169 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 8) + %2170 = getelementptr ptr, ptr %2169, i64 0 + store ptr %2160, ptr %2170, align 8 + %2171 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %2172 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %2171, i32 0, i32 0 + store ptr %2169, ptr %2172, align 8 + %2173 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %2171, i32 0, i32 1 + store i64 1, ptr %2173, align 4 + %2174 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %2171, i32 0, i32 2 + store i64 1, ptr %2174, align 4 + %2175 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %2171, align 8 + %2176 = call ptr @"github.com/goplus/llgo/internal/runtime.Func"(%"github.com/goplus/llgo/internal/runtime.Slice" %2168, %"github.com/goplus/llgo/internal/runtime.Slice" %2175, i1 false) + call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %2176) + store ptr %2176, ptr @"_llgo_func$1QmforOaCy2fBAssC2y1FWCCT6fpq9RKwP2j2HIASY8", align 8 + br label %_llgo_98 + +_llgo_98: ; preds = %_llgo_97, %_llgo_96 + %2177 = load ptr, ptr @"_llgo_func$1QmforOaCy2fBAssC2y1FWCCT6fpq9RKwP2j2HIASY8", 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 + store %"github.com/goplus/llgo/internal/runtime.String" %728, 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).StructType", ptr %2181, align 8 + store ptr @"github.com/goplus/llgo/internal/abi.(*FuncType).InterfaceType", 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).StructType", ptr %2182, align 8 + store ptr @"github.com/goplus/llgo/internal/abi.(*FuncType).InterfaceType", 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 @56, ptr %2185, align 8 + store ptr @45, ptr %2185, align 8 %2186 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2184, i32 0, i32 1 - store i64 8, ptr %2186, align 4 + store i64 13, ptr %2186, align 4 %2187 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %2184, align 8 - %2188 = load ptr, ptr @"_llgo_func$DbD4nZv_bjE4tH8hh-VfAjMXMpNfIsMlLJJJPKupp34", align 8 + %2188 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", 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).Uncommon", ptr %2192, align 8 + store ptr @"github.com/goplus/llgo/internal/abi.(*FuncType).IsDirectIface", 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).Uncommon", ptr %2193, align 8 + store ptr @"github.com/goplus/llgo/internal/abi.(*FuncType).IsDirectIface", ptr %2193, align 8 %2194 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %2189, align 8 - %2195 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 640) - %2196 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2195, i64 0 - store %"github.com/goplus/llgo/internal/abi.Method" %369, ptr %2196, align 8 - %2197 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2195, i64 1 - store %"github.com/goplus/llgo/internal/abi.Method" %380, ptr %2197, align 8 - %2198 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2195, i64 2 - store %"github.com/goplus/llgo/internal/abi.Method" %413, ptr %2198, align 8 - %2199 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2195, i64 3 - store %"github.com/goplus/llgo/internal/abi.Method" %424, ptr %2199, align 8 - %2200 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2195, i64 4 - store %"github.com/goplus/llgo/internal/abi.Method" %2073, ptr %2200, align 8 - %2201 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2195, i64 5 - store %"github.com/goplus/llgo/internal/abi.Method" %2084, ptr %2201, align 8 - %2202 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2195, i64 6 - store %"github.com/goplus/llgo/internal/abi.Method" %2095, ptr %2202, align 8 - %2203 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2195, i64 7 - store %"github.com/goplus/llgo/internal/abi.Method" %2106, ptr %2203, align 8 - %2204 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2195, i64 8 - store %"github.com/goplus/llgo/internal/abi.Method" %2117, ptr %2204, align 8 - %2205 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2195, i64 9 - store %"github.com/goplus/llgo/internal/abi.Method" %2128, ptr %2205, align 8 - %2206 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2195, i64 10 - store %"github.com/goplus/llgo/internal/abi.Method" %2139, ptr %2206, align 8 - %2207 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2195, i64 11 - store %"github.com/goplus/llgo/internal/abi.Method" %2150, ptr %2207, align 8 - %2208 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2195, i64 12 - store %"github.com/goplus/llgo/internal/abi.Method" %2161, ptr %2208, align 8 - %2209 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2195, i64 13 - store %"github.com/goplus/llgo/internal/abi.Method" %2172, ptr %2209, align 8 - %2210 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2195, i64 14 - store %"github.com/goplus/llgo/internal/abi.Method" %2183, ptr %2210, align 8 - %2211 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2195, i64 15 - store %"github.com/goplus/llgo/internal/abi.Method" %2194, ptr %2211, align 8 - %2212 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %2213 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %2212, i32 0, i32 0 - store ptr %2195, ptr %2213, align 8 - %2214 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %2212, i32 0, i32 1 - store i64 16, ptr %2214, align 4 - %2215 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %2212, i32 0, i32 2 - store i64 16, ptr %2215, align 4 - %2216 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %2212, 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 @46, ptr %2196, align 8 + %2197 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2195, i32 0, i32 1 + store i64 3, ptr %2197, align 4 + %2198 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %2195, align 8 + %2199 = load ptr, ptr @"_llgo_func$4-mqItKfDlL0CgVKnUxoresYgh6zW1WSlZYZSsVzLRo", 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.(*FuncType).Key", 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.(*FuncType).Key", 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 @47, ptr %2207, align 8 + %2208 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2206, i32 0, i32 1 + store i64 4, ptr %2208, align 4 + %2209 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %2206, align 8 + %2210 = load ptr, ptr @"_llgo_func$ntUE0UmVAWPS2O7GpCCGszSn-XnjHJntZZ2jYtwbFXI", 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.(*FuncType).Kind", 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.(*FuncType).Kind", ptr %2215, align 8 + %2216 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %2211, align 8 %2217 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 %2218 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2217, i32 0, i32 0 - store ptr @38, ptr %2218, align 8 + store ptr @28, ptr %2218, align 8 %2219 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2217, i32 0, i32 1 - store i64 35, ptr %2219, align 4 + store i64 3, ptr %2219, align 4 %2220 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %2217, align 8 - %2221 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %2222 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2221, i32 0, i32 0 - store ptr @20, ptr %2222, align 8 - %2223 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2221, i32 0, i32 1 - store i64 9, ptr %2223, align 4 - %2224 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %2221, align 8 - call void @"github.com/goplus/llgo/internal/runtime.InitNamed"(ptr %299, %"github.com/goplus/llgo/internal/runtime.String" %2220, %"github.com/goplus/llgo/internal/runtime.String" %2224, ptr %358, { ptr, i64, i64 } zeroinitializer, %"github.com/goplus/llgo/internal/runtime.Slice" %2216) - br label %_llgo_24 - -_llgo_101: ; preds = %_llgo_24 - %2225 = call ptr @"github.com/goplus/llgo/internal/runtime.PointerTo"(ptr %299) - call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %2225) - store ptr %2225, ptr @"*_llgo_github.com/goplus/llgo/internal/abi.ArrayType", align 8 - br label %_llgo_102 - -_llgo_102: ; preds = %_llgo_101, %_llgo_24 - %2226 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/internal/abi.ArrayType", align 8 - %2227 = load ptr, ptr @"_llgo_func$CsVqlCxhoEcIvPD5BSBukfSiD9C7Ic5_Gf32MLbCWB4", align 8 - %2228 = icmp eq ptr %2227, null - br i1 %2228, label %_llgo_103, label %_llgo_104 - -_llgo_103: ; preds = %_llgo_102 - %2229 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 0) - %2230 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %2231 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %2230, i32 0, i32 0 - store ptr %2229, ptr %2231, align 8 - %2232 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %2230, i32 0, i32 1 - store i64 0, ptr %2232, align 4 - %2233 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %2230, i32 0, i32 2 - store i64 0, ptr %2233, align 4 - %2234 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %2230, align 8 - %2235 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 8) - %2236 = getelementptr ptr, ptr %2235, i64 0 - store ptr %2226, ptr %2236, align 8 - %2237 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %2238 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %2237, i32 0, i32 0 - store ptr %2235, ptr %2238, align 8 - %2239 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %2237, i32 0, i32 1 - store i64 1, ptr %2239, align 4 - %2240 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %2237, i32 0, i32 2 - store i64 1, ptr %2240, align 4 - %2241 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %2237, align 8 - %2242 = call ptr @"github.com/goplus/llgo/internal/runtime.Func"(%"github.com/goplus/llgo/internal/runtime.Slice" %2234, %"github.com/goplus/llgo/internal/runtime.Slice" %2241, i1 false) - call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %2242) - store ptr %2242, ptr @"_llgo_func$CsVqlCxhoEcIvPD5BSBukfSiD9C7Ic5_Gf32MLbCWB4", align 8 - br label %_llgo_104 - -_llgo_104: ; preds = %_llgo_103, %_llgo_102 - %2243 = load ptr, ptr @"_llgo_func$CsVqlCxhoEcIvPD5BSBukfSiD9C7Ic5_Gf32MLbCWB4", align 8 + %2221 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 + %2222 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %2223 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2222, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %2220, ptr %2223, align 8 + %2224 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2222, i32 0, i32 1 + store ptr %2221, ptr %2224, align 8 + %2225 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2222, i32 0, i32 2 + store ptr @"github.com/goplus/llgo/internal/abi.(*FuncType).Len", ptr %2225, align 8 + %2226 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2222, i32 0, i32 3 + store ptr @"github.com/goplus/llgo/internal/abi.(*FuncType).Len", ptr %2226, align 8 + %2227 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %2222, align 8 + %2228 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %2229 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2228, i32 0, i32 0 + store ptr @50, ptr %2229, align 8 + %2230 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2228, i32 0, i32 1 + store i64 7, ptr %2230, align 4 + %2231 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %2228, align 8 + %2232 = load ptr, ptr @"_llgo_func$d-NlqnjcQnaMjsBQY7qh2SWQmHb0XIigoceXdiJ8YT4", align 8 + %2233 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %2234 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2233, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %2231, ptr %2234, align 8 + %2235 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2233, i32 0, i32 1 + store ptr %2232, ptr %2235, align 8 + %2236 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2233, i32 0, i32 2 + store ptr @"github.com/goplus/llgo/internal/abi.(*FuncType).MapType", ptr %2236, align 8 + %2237 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2233, i32 0, i32 3 + store ptr @"github.com/goplus/llgo/internal/abi.(*FuncType).MapType", ptr %2237, align 8 + %2238 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %2233, 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 @62, ptr %2240, align 8 + %2241 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2239, i32 0, i32 1 + store i64 8, ptr %2241, align 4 + %2242 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %2239, align 8 + %2243 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 %2244 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 %2245 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2244, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %298, ptr %2245, align 8 + store %"github.com/goplus/llgo/internal/runtime.String" %2242, ptr %2245, align 8 %2246 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2244, i32 0, i32 1 store ptr %2243, ptr %2246, align 8 %2247 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2244, i32 0, i32 2 - store ptr @"github.com/goplus/llgo/internal/abi.(*Type).ArrayType", ptr %2247, align 8 + store ptr @"github.com/goplus/llgo/internal/abi.(*FuncType).Pointers", ptr %2247, align 8 %2248 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2244, i32 0, i32 3 - store ptr @"github.com/goplus/llgo/internal/abi.(*Type).ArrayType", ptr %2248, align 8 + store ptr @"github.com/goplus/llgo/internal/abi.(*FuncType).Pointers", ptr %2248, align 8 %2249 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %2244, align 8 %2250 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 %2251 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2250, i32 0, i32 0 - store ptr @25, ptr %2251, align 8 + store ptr @64, ptr %2251, align 8 %2252 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2250, i32 0, i32 1 - store i64 6, ptr %2252, align 4 + store i64 4, ptr %2252, align 4 %2253 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %2250, align 8 - %2254 = load ptr, ptr @"_llgo_func$4-mqItKfDlL0CgVKnUxoresYgh6zW1WSlZYZSsVzLRo", align 8 + %2254 = load ptr, ptr @"_llgo_func$1kITCsyu7hFLMxHLR7kDlvu4SOra_HtrtdFUQH9P13s", align 8 %2255 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 %2256 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2255, i32 0, i32 0 store %"github.com/goplus/llgo/internal/runtime.String" %2253, ptr %2256, align 8 %2257 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2255, i32 0, i32 1 store ptr %2254, ptr %2257, align 8 %2258 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2255, i32 0, i32 2 - store ptr @"github.com/goplus/llgo/internal/abi.(*Type).Common", ptr %2258, align 8 + store ptr @"github.com/goplus/llgo/internal/abi.(*FuncType).Size", ptr %2258, align 8 %2259 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2255, i32 0, i32 3 - store ptr @"github.com/goplus/llgo/internal/abi.(*Type).Common", ptr %2259, align 8 + store ptr @"github.com/goplus/llgo/internal/abi.(*FuncType).Size", ptr %2259, align 8 %2260 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %2255, align 8 %2261 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 %2262 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2261, i32 0, i32 0 - store ptr @22, ptr %2262, align 8 + store ptr @49, ptr %2262, align 8 %2263 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2261, i32 0, i32 1 - store i64 4, ptr %2263, align 4 + store i64 6, ptr %2263, align 4 %2264 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %2261, align 8 - %2265 = load ptr, ptr @"_llgo_func$4-mqItKfDlL0CgVKnUxoresYgh6zW1WSlZYZSsVzLRo", align 8 + %2265 = load ptr, ptr @"_llgo_func$zNDVRsWTIpUPKouNUS805RGX--IV9qVK8B31IZbg5to", 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" %2264, 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).Elem", ptr %2269, align 8 + store ptr @"github.com/goplus/llgo/internal/abi.(*FuncType).String", 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).Elem", ptr %2270, align 8 + store ptr @"github.com/goplus/llgo/internal/abi.(*FuncType).String", 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 @26, ptr %2273, align 8 + store ptr @65, ptr %2273, align 8 %2274 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2272, i32 0, i32 1 store i64 10, ptr %2274, align 4 %2275 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %2272, align 8 - %2276 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 + %2276 = load ptr, ptr @"_llgo_func$qiNnn6Cbm3GtDp4gDI4U_DRV3h8zlz91s9jrfOXC--U", 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).FieldAlign", ptr %2280, align 8 + store ptr @"github.com/goplus/llgo/internal/abi.(*FuncType).StructType", 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).FieldAlign", ptr %2281, align 8 + store ptr @"github.com/goplus/llgo/internal/abi.(*FuncType).StructType", 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 @27, ptr %2284, align 8 + store ptr @69, ptr %2284, align 8 %2285 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2283, i32 0, i32 1 store i64 8, ptr %2285, align 4 %2286 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %2283, align 8 - %2287 = load ptr, ptr @"_llgo_func$DsoxgOnxqV7tLvokF3AA14v1gtHsHaThoC8Q_XGcQww", align 8 + %2287 = load ptr, ptr @"_llgo_func$DbD4nZv_bjE4tH8hh-VfAjMXMpNfIsMlLJJJPKupp34", 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).FuncType", ptr %2291, align 8 + store ptr @"github.com/goplus/llgo/internal/abi.(*FuncType).Uncommon", 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).FuncType", ptr %2292, align 8 + store ptr @"github.com/goplus/llgo/internal/abi.(*FuncType).Uncommon", 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 @30, ptr %2295, align 8 + store ptr @77, ptr %2295, align 8 %2296 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2294, i32 0, i32 1 - store i64 7, ptr %2296, align 4 + store i64 8, ptr %2296, align 4 %2297 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %2294, align 8 %2298 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 %2299 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 @@ -4287,259 +4251,812 @@ _llgo_104: ; preds = %_llgo_103, %_llgo_1 %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).HasName", ptr %2302, align 8 + store ptr @"github.com/goplus/llgo/internal/abi.(*FuncType).Variadic", 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).HasName", ptr %2303, align 8 + store ptr @"github.com/goplus/llgo/internal/abi.(*FuncType).Variadic", 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 @31, ptr %2306, align 8 - %2307 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2305, i32 0, i32 1 - store i64 10, ptr %2307, align 4 - %2308 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %2305, align 8 - %2309 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", 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).IfaceIndir", 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).IfaceIndir", 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 @32, ptr %2317, align 8 - %2318 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2316, i32 0, i32 1 - store i64 13, ptr %2318, align 4 - %2319 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %2316, align 8 - %2320 = load ptr, ptr @"_llgo_func$1QmforOaCy2fBAssC2y1FWCCT6fpq9RKwP2j2HIASY8", 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).InterfaceType", 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).InterfaceType", 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 @35, ptr %2328, align 8 - %2329 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2327, i32 0, i32 1 - store i64 13, 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).IsDirectIface", 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).IsDirectIface", 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 @36, ptr %2339, align 8 - %2340 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2338, i32 0, i32 1 - store i64 4, ptr %2340, align 4 - %2341 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %2338, align 8 - %2342 = load ptr, ptr @"_llgo_func$ntUE0UmVAWPS2O7GpCCGszSn-XnjHJntZZ2jYtwbFXI", 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).Kind", 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).Kind", 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 @24, ptr %2350, align 8 - %2351 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2349, i32 0, i32 1 - store i64 3, ptr %2351, align 4 - %2352 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %2349, align 8 - %2353 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", 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).Len", 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).Len", 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 @39, ptr %2361, align 8 - %2362 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2360, i32 0, i32 1 - store i64 7, ptr %2362, align 4 - %2363 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %2360, align 8 - %2364 = load ptr, ptr @"_llgo_func$d-NlqnjcQnaMjsBQY7qh2SWQmHb0XIigoceXdiJ8YT4", 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).MapType", 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).MapType", 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 @51, ptr %2372, align 8 - %2373 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2371, i32 0, i32 1 - store i64 8, ptr %2373, align 4 - %2374 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %2371, align 8 - %2375 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", 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).Pointers", 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).Pointers", 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 @53, ptr %2383, align 8 - %2384 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2382, i32 0, i32 1 - store i64 4, ptr %2384, align 4 - %2385 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %2382, align 8 - %2386 = load ptr, ptr @"_llgo_func$1kITCsyu7hFLMxHLR7kDlvu4SOra_HtrtdFUQH9P13s", 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).Size", 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).Size", 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 @37, ptr %2394, align 8 - %2395 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2393, i32 0, i32 1 - store i64 6, ptr %2395, align 4 - %2396 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %2393, align 8 - %2397 = load ptr, ptr @"_llgo_func$zNDVRsWTIpUPKouNUS805RGX--IV9qVK8B31IZbg5to", 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).String", 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).String", 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 @54, ptr %2405, align 8 - %2406 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2404, i32 0, i32 1 - store i64 10, ptr %2406, align 4 - %2407 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %2404, align 8 - %2408 = load ptr, ptr @"_llgo_func$qiNnn6Cbm3GtDp4gDI4U_DRV3h8zlz91s9jrfOXC--U", 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).StructType", 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).StructType", 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 @56, ptr %2416, align 8 - %2417 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2415, i32 0, i32 1 - store i64 8, ptr %2417, align 4 - %2418 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %2415, align 8 - %2419 = load ptr, ptr @"_llgo_func$DbD4nZv_bjE4tH8hh-VfAjMXMpNfIsMlLJJJPKupp34", 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).Uncommon", 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).Uncommon", ptr %2424, align 8 - %2425 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %2420, align 8 - %2426 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 720) - %2427 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2426, i64 0 - store %"github.com/goplus/llgo/internal/abi.Method" %294, ptr %2427, align 8 - %2428 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2426, i64 1 - store %"github.com/goplus/llgo/internal/abi.Method" %2249, ptr %2428, align 8 - %2429 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2426, i64 2 - store %"github.com/goplus/llgo/internal/abi.Method" %2260, ptr %2429, align 8 - %2430 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2426, i64 3 - store %"github.com/goplus/llgo/internal/abi.Method" %2271, ptr %2430, align 8 - %2431 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2426, i64 4 - store %"github.com/goplus/llgo/internal/abi.Method" %2282, ptr %2431, align 8 - %2432 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2426, i64 5 - store %"github.com/goplus/llgo/internal/abi.Method" %2293, ptr %2432, align 8 - %2433 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2426, i64 6 - store %"github.com/goplus/llgo/internal/abi.Method" %2304, ptr %2433, align 8 - %2434 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2426, i64 7 - store %"github.com/goplus/llgo/internal/abi.Method" %2315, ptr %2434, align 8 - %2435 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2426, i64 8 - store %"github.com/goplus/llgo/internal/abi.Method" %2326, ptr %2435, align 8 - %2436 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2426, i64 9 - store %"github.com/goplus/llgo/internal/abi.Method" %2337, ptr %2436, align 8 - %2437 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2426, i64 10 - store %"github.com/goplus/llgo/internal/abi.Method" %2348, ptr %2437, align 8 - %2438 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2426, i64 11 - store %"github.com/goplus/llgo/internal/abi.Method" %2359, ptr %2438, align 8 - %2439 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2426, i64 12 - store %"github.com/goplus/llgo/internal/abi.Method" %2370, ptr %2439, align 8 - %2440 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2426, i64 13 - store %"github.com/goplus/llgo/internal/abi.Method" %2381, ptr %2440, align 8 - %2441 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2426, i64 14 - store %"github.com/goplus/llgo/internal/abi.Method" %2392, ptr %2441, align 8 - %2442 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2426, i64 15 - store %"github.com/goplus/llgo/internal/abi.Method" %2403, ptr %2442, align 8 - %2443 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2426, i64 16 - store %"github.com/goplus/llgo/internal/abi.Method" %2414, ptr %2443, align 8 - %2444 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2426, i64 17 - store %"github.com/goplus/llgo/internal/abi.Method" %2425, ptr %2444, align 8 - %2445 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %2446 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %2445, i32 0, i32 0 - store ptr %2426, ptr %2446, align 8 - %2447 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %2445, i32 0, i32 1 - store i64 18, ptr %2447, align 4 - %2448 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %2445, i32 0, i32 2 - store i64 18, ptr %2448, align 4 - %2449 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %2445, align 8 - %2450 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %2451 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2450, i32 0, i32 0 - store ptr @38, ptr %2451, align 8 - %2452 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2450, i32 0, i32 1 - store i64 35, ptr %2452, align 4 - %2453 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %2450, align 8 - %2454 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %2455 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2454, i32 0, i32 0 - store ptr @21, ptr %2455, align 8 - %2456 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2454, i32 0, i32 1 - store i64 4, ptr %2456, align 4 - %2457 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %2454, align 8 - call void @"github.com/goplus/llgo/internal/runtime.InitNamed"(ptr %3, %"github.com/goplus/llgo/internal/runtime.String" %2453, %"github.com/goplus/llgo/internal/runtime.String" %2457, ptr %263, { ptr, i64, i64 } zeroinitializer, %"github.com/goplus/llgo/internal/runtime.Slice" %2449) - br label %_llgo_14 + %2305 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 840) + %2306 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2305, i64 0 + store %"github.com/goplus/llgo/internal/abi.Method" %612, ptr %2306, align 8 + %2307 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2305, i64 1 + store %"github.com/goplus/llgo/internal/abi.Method" %623, ptr %2307, align 8 + %2308 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2305, i64 2 + store %"github.com/goplus/llgo/internal/abi.Method" %634, ptr %2308, align 8 + %2309 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2305, i64 3 + store %"github.com/goplus/llgo/internal/abi.Method" %645, ptr %2309, align 8 + %2310 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2305, i64 4 + store %"github.com/goplus/llgo/internal/abi.Method" %656, ptr %2310, align 8 + %2311 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2305, i64 5 + store %"github.com/goplus/llgo/internal/abi.Method" %667, ptr %2311, align 8 + %2312 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2305, i64 6 + store %"github.com/goplus/llgo/internal/abi.Method" %678, ptr %2312, align 8 + %2313 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2305, i64 7 + store %"github.com/goplus/llgo/internal/abi.Method" %713, ptr %2313, align 8 + %2314 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2305, i64 8 + store %"github.com/goplus/llgo/internal/abi.Method" %724, ptr %2314, align 8 + %2315 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2305, i64 9 + store %"github.com/goplus/llgo/internal/abi.Method" %2183, ptr %2315, align 8 + %2316 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2305, i64 10 + store %"github.com/goplus/llgo/internal/abi.Method" %2194, ptr %2316, align 8 + %2317 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2305, i64 11 + store %"github.com/goplus/llgo/internal/abi.Method" %2205, ptr %2317, align 8 + %2318 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2305, i64 12 + store %"github.com/goplus/llgo/internal/abi.Method" %2216, ptr %2318, align 8 + %2319 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2305, i64 13 + store %"github.com/goplus/llgo/internal/abi.Method" %2227, ptr %2319, align 8 + %2320 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2305, i64 14 + store %"github.com/goplus/llgo/internal/abi.Method" %2238, ptr %2320, align 8 + %2321 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2305, i64 15 + store %"github.com/goplus/llgo/internal/abi.Method" %2249, ptr %2321, align 8 + %2322 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2305, i64 16 + store %"github.com/goplus/llgo/internal/abi.Method" %2260, ptr %2322, align 8 + %2323 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2305, i64 17 + store %"github.com/goplus/llgo/internal/abi.Method" %2271, ptr %2323, align 8 + %2324 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2305, i64 18 + store %"github.com/goplus/llgo/internal/abi.Method" %2282, ptr %2324, align 8 + %2325 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2305, i64 19 + store %"github.com/goplus/llgo/internal/abi.Method" %2293, ptr %2325, align 8 + %2326 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2305, i64 20 + store %"github.com/goplus/llgo/internal/abi.Method" %2304, ptr %2326, align 8 + %2327 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %2328 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %2327, i32 0, i32 0 + store ptr %2305, ptr %2328, align 8 + %2329 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %2327, i32 0, i32 1 + store i64 21, ptr %2329, align 4 + %2330 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %2327, i32 0, i32 2 + store i64 21, ptr %2330, align 4 + %2331 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %2327, align 8 + %2332 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %2333 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2332, i32 0, i32 0 + store ptr @31, ptr %2333, align 8 + %2334 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2332, i32 0, i32 1 + store i64 35, ptr %2334, align 4 + %2335 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %2332, align 8 + %2336 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %2337 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2336, i32 0, i32 0 + store ptr @34, ptr %2337, align 8 + %2338 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2336, i32 0, i32 1 + store i64 8, ptr %2338, align 4 + %2339 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %2336, align 8 + call void @"github.com/goplus/llgo/internal/runtime.InitNamed"(ptr %536, %"github.com/goplus/llgo/internal/runtime.String" %2335, %"github.com/goplus/llgo/internal/runtime.String" %2339, ptr %601, { ptr, i64, i64 } zeroinitializer, %"github.com/goplus/llgo/internal/runtime.Slice" %2331) + br label %_llgo_38 + +_llgo_99: ; preds = %_llgo_38 + %2340 = call ptr @"github.com/goplus/llgo/internal/runtime.PointerTo"(ptr %690) + call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %2340) + store ptr %2340, ptr @"*_llgo_github.com/goplus/llgo/internal/abi.FuncType", align 8 + br label %_llgo_100 + +_llgo_100: ; preds = %_llgo_99, %_llgo_38 + %2341 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/internal/abi.FuncType", align 8 + %2342 = load ptr, ptr @"_llgo_func$DsoxgOnxqV7tLvokF3AA14v1gtHsHaThoC8Q_XGcQww", align 8 + %2343 = icmp eq ptr %2342, null + br i1 %2343, label %_llgo_101, label %_llgo_102 + +_llgo_101: ; preds = %_llgo_100 + %2344 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 0) + %2345 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %2346 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %2345, i32 0, i32 0 + store ptr %2344, ptr %2346, align 8 + %2347 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %2345, i32 0, i32 1 + store i64 0, ptr %2347, align 4 + %2348 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %2345, i32 0, i32 2 + store i64 0, ptr %2348, align 4 + %2349 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %2345, align 8 + %2350 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 8) + %2351 = getelementptr ptr, ptr %2350, i64 0 + store ptr %2341, ptr %2351, align 8 + %2352 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %2353 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %2352, i32 0, i32 0 + store ptr %2350, ptr %2353, align 8 + %2354 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %2352, i32 0, i32 1 + store i64 1, ptr %2354, align 4 + %2355 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %2352, i32 0, i32 2 + store i64 1, ptr %2355, align 4 + %2356 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %2352, align 8 + %2357 = call ptr @"github.com/goplus/llgo/internal/runtime.Func"(%"github.com/goplus/llgo/internal/runtime.Slice" %2349, %"github.com/goplus/llgo/internal/runtime.Slice" %2356, i1 false) + call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %2357) + store ptr %2357, ptr @"_llgo_func$DsoxgOnxqV7tLvokF3AA14v1gtHsHaThoC8Q_XGcQww", align 8 + br label %_llgo_102 + +_llgo_102: ; preds = %_llgo_101, %_llgo_100 + %2358 = load ptr, ptr @"_llgo_func$DsoxgOnxqV7tLvokF3AA14v1gtHsHaThoC8Q_XGcQww", align 8 + %2359 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %2360 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2359, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %531, ptr %2360, align 8 + %2361 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2359, i32 0, i32 1 + store ptr %2358, ptr %2361, align 8 + %2362 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2359, i32 0, i32 2 + store ptr @"github.com/goplus/llgo/internal/abi.(*ArrayType).FuncType", ptr %2362, align 8 + %2363 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2359, i32 0, i32 3 + store ptr @"github.com/goplus/llgo/internal/abi.(*ArrayType).FuncType", ptr %2363, align 8 + %2364 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %2359, align 8 + %2365 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %2366 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2365, i32 0, i32 0 + store ptr @38, ptr %2366, align 8 + %2367 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2365, i32 0, i32 1 + store i64 7, ptr %2367, align 4 + %2368 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %2365, align 8 + %2369 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 + %2370 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %2371 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2370, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %2368, ptr %2371, align 8 + %2372 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2370, i32 0, i32 1 + store ptr %2369, ptr %2372, align 8 + %2373 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2370, i32 0, i32 2 + store ptr @"github.com/goplus/llgo/internal/abi.(*ArrayType).HasName", ptr %2373, align 8 + %2374 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2370, i32 0, i32 3 + store ptr @"github.com/goplus/llgo/internal/abi.(*ArrayType).HasName", ptr %2374, align 8 + %2375 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %2370, align 8 + %2376 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %2377 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2376, i32 0, i32 0 + store ptr @39, ptr %2377, align 8 + %2378 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2376, i32 0, i32 1 + store i64 10, ptr %2378, align 4 + %2379 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %2376, align 8 + %2380 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 + %2381 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %2382 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2381, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %2379, ptr %2382, align 8 + %2383 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2381, i32 0, i32 1 + store ptr %2380, ptr %2383, align 8 + %2384 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2381, i32 0, i32 2 + store ptr @"github.com/goplus/llgo/internal/abi.(*ArrayType).IfaceIndir", ptr %2384, align 8 + %2385 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2381, i32 0, i32 3 + store ptr @"github.com/goplus/llgo/internal/abi.(*ArrayType).IfaceIndir", ptr %2385, align 8 + %2386 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %2381, align 8 + %2387 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %2388 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2387, i32 0, i32 0 + store ptr @40, ptr %2388, align 8 + %2389 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2387, i32 0, i32 1 + store i64 13, ptr %2389, align 4 + %2390 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %2387, align 8 + %2391 = load ptr, ptr @"_llgo_func$1QmforOaCy2fBAssC2y1FWCCT6fpq9RKwP2j2HIASY8", align 8 + %2392 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %2393 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2392, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %2390, ptr %2393, align 8 + %2394 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2392, i32 0, i32 1 + store ptr %2391, ptr %2394, align 8 + %2395 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2392, i32 0, i32 2 + store ptr @"github.com/goplus/llgo/internal/abi.(*ArrayType).InterfaceType", ptr %2395, align 8 + %2396 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2392, i32 0, i32 3 + store ptr @"github.com/goplus/llgo/internal/abi.(*ArrayType).InterfaceType", ptr %2396, align 8 + %2397 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %2392, align 8 + %2398 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %2399 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2398, i32 0, i32 0 + store ptr @45, ptr %2399, align 8 + %2400 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2398, i32 0, i32 1 + store i64 13, ptr %2400, align 4 + %2401 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %2398, align 8 + %2402 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 + %2403 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %2404 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2403, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %2401, ptr %2404, align 8 + %2405 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2403, i32 0, i32 1 + store ptr %2402, ptr %2405, align 8 + %2406 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2403, i32 0, i32 2 + store ptr @"github.com/goplus/llgo/internal/abi.(*ArrayType).IsDirectIface", ptr %2406, align 8 + %2407 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2403, i32 0, i32 3 + store ptr @"github.com/goplus/llgo/internal/abi.(*ArrayType).IsDirectIface", ptr %2407, align 8 + %2408 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %2403, align 8 + %2409 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %2410 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2409, i32 0, i32 0 + store ptr @46, ptr %2410, align 8 + %2411 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2409, i32 0, i32 1 + store i64 3, ptr %2411, align 4 + %2412 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %2409, align 8 + %2413 = load ptr, ptr @"_llgo_func$4-mqItKfDlL0CgVKnUxoresYgh6zW1WSlZYZSsVzLRo", align 8 + %2414 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %2415 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2414, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %2412, ptr %2415, align 8 + %2416 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2414, i32 0, i32 1 + store ptr %2413, ptr %2416, align 8 + %2417 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2414, i32 0, i32 2 + store ptr @"github.com/goplus/llgo/internal/abi.(*ArrayType).Key", ptr %2417, align 8 + %2418 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2414, i32 0, i32 3 + store ptr @"github.com/goplus/llgo/internal/abi.(*ArrayType).Key", ptr %2418, align 8 + %2419 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %2414, align 8 + %2420 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %2421 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2420, i32 0, i32 0 + store ptr @47, ptr %2421, align 8 + %2422 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2420, i32 0, i32 1 + store i64 4, ptr %2422, align 4 + %2423 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %2420, align 8 + %2424 = load ptr, ptr @"_llgo_func$ntUE0UmVAWPS2O7GpCCGszSn-XnjHJntZZ2jYtwbFXI", align 8 + %2425 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %2426 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2425, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %2423, ptr %2426, align 8 + %2427 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2425, i32 0, i32 1 + store ptr %2424, ptr %2427, align 8 + %2428 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2425, i32 0, i32 2 + store ptr @"github.com/goplus/llgo/internal/abi.(*ArrayType).Kind", ptr %2428, align 8 + %2429 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2425, i32 0, i32 3 + store ptr @"github.com/goplus/llgo/internal/abi.(*ArrayType).Kind", ptr %2429, align 8 + %2430 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %2425, align 8 + %2431 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %2432 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2431, i32 0, i32 0 + store ptr @50, ptr %2432, align 8 + %2433 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2431, i32 0, i32 1 + store i64 7, ptr %2433, align 4 + %2434 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %2431, align 8 + %2435 = load ptr, ptr @"_llgo_func$d-NlqnjcQnaMjsBQY7qh2SWQmHb0XIigoceXdiJ8YT4", align 8 + %2436 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %2437 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2436, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %2434, ptr %2437, align 8 + %2438 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2436, i32 0, i32 1 + store ptr %2435, ptr %2438, align 8 + %2439 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2436, i32 0, i32 2 + store ptr @"github.com/goplus/llgo/internal/abi.(*ArrayType).MapType", ptr %2439, align 8 + %2440 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2436, i32 0, i32 3 + store ptr @"github.com/goplus/llgo/internal/abi.(*ArrayType).MapType", ptr %2440, align 8 + %2441 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %2436, align 8 + %2442 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %2443 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2442, i32 0, i32 0 + store ptr @62, ptr %2443, align 8 + %2444 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2442, i32 0, i32 1 + store i64 8, ptr %2444, align 4 + %2445 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %2442, align 8 + %2446 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 + %2447 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %2448 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2447, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %2445, ptr %2448, align 8 + %2449 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2447, i32 0, i32 1 + store ptr %2446, ptr %2449, align 8 + %2450 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2447, i32 0, i32 2 + store ptr @"github.com/goplus/llgo/internal/abi.(*ArrayType).Pointers", ptr %2450, align 8 + %2451 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2447, i32 0, i32 3 + store ptr @"github.com/goplus/llgo/internal/abi.(*ArrayType).Pointers", ptr %2451, align 8 + %2452 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %2447, align 8 + %2453 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %2454 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2453, i32 0, i32 0 + store ptr @64, ptr %2454, align 8 + %2455 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2453, i32 0, i32 1 + store i64 4, ptr %2455, align 4 + %2456 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %2453, align 8 + %2457 = load ptr, ptr @"_llgo_func$1kITCsyu7hFLMxHLR7kDlvu4SOra_HtrtdFUQH9P13s", align 8 + %2458 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %2459 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2458, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %2456, ptr %2459, align 8 + %2460 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2458, i32 0, i32 1 + store ptr %2457, ptr %2460, align 8 + %2461 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2458, i32 0, i32 2 + store ptr @"github.com/goplus/llgo/internal/abi.(*ArrayType).Size", ptr %2461, align 8 + %2462 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2458, i32 0, i32 3 + store ptr @"github.com/goplus/llgo/internal/abi.(*ArrayType).Size", ptr %2462, align 8 + %2463 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %2458, align 8 + %2464 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %2465 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2464, i32 0, i32 0 + store ptr @49, ptr %2465, align 8 + %2466 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2464, i32 0, i32 1 + store i64 6, ptr %2466, align 4 + %2467 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %2464, align 8 + %2468 = load ptr, ptr @"_llgo_func$zNDVRsWTIpUPKouNUS805RGX--IV9qVK8B31IZbg5to", align 8 + %2469 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %2470 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2469, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %2467, ptr %2470, align 8 + %2471 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2469, i32 0, i32 1 + store ptr %2468, ptr %2471, align 8 + %2472 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2469, i32 0, i32 2 + store ptr @"github.com/goplus/llgo/internal/abi.(*ArrayType).String", ptr %2472, align 8 + %2473 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2469, i32 0, i32 3 + store ptr @"github.com/goplus/llgo/internal/abi.(*ArrayType).String", ptr %2473, align 8 + %2474 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %2469, align 8 + %2475 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %2476 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2475, i32 0, i32 0 + store ptr @65, ptr %2476, align 8 + %2477 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2475, i32 0, i32 1 + store i64 10, ptr %2477, align 4 + %2478 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %2475, align 8 + %2479 = load ptr, ptr @"_llgo_func$qiNnn6Cbm3GtDp4gDI4U_DRV3h8zlz91s9jrfOXC--U", align 8 + %2480 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %2481 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2480, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %2478, ptr %2481, align 8 + %2482 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2480, i32 0, i32 1 + store ptr %2479, ptr %2482, align 8 + %2483 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2480, i32 0, i32 2 + store ptr @"github.com/goplus/llgo/internal/abi.(*ArrayType).StructType", ptr %2483, align 8 + %2484 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2480, i32 0, i32 3 + store ptr @"github.com/goplus/llgo/internal/abi.(*ArrayType).StructType", ptr %2484, align 8 + %2485 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %2480, 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 @69, ptr %2487, align 8 + %2488 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2486, i32 0, i32 1 + store i64 8, ptr %2488, align 4 + %2489 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %2486, align 8 + %2490 = load ptr, ptr @"_llgo_func$DbD4nZv_bjE4tH8hh-VfAjMXMpNfIsMlLJJJPKupp34", align 8 + %2491 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %2492 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2491, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %2489, ptr %2492, align 8 + %2493 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2491, i32 0, i32 1 + store ptr %2490, ptr %2493, align 8 + %2494 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2491, i32 0, i32 2 + store ptr @"github.com/goplus/llgo/internal/abi.(*ArrayType).Uncommon", ptr %2494, align 8 + %2495 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2491, i32 0, i32 3 + store ptr @"github.com/goplus/llgo/internal/abi.(*ArrayType).Uncommon", ptr %2495, align 8 + %2496 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %2491, align 8 + %2497 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 720) + %2498 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2497, i64 0 + store %"github.com/goplus/llgo/internal/abi.Method" %418, ptr %2498, align 8 + %2499 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2497, i64 1 + store %"github.com/goplus/llgo/internal/abi.Method" %429, ptr %2499, align 8 + %2500 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2497, i64 2 + store %"github.com/goplus/llgo/internal/abi.Method" %480, ptr %2500, align 8 + %2501 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2497, i64 3 + store %"github.com/goplus/llgo/internal/abi.Method" %516, ptr %2501, align 8 + %2502 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2497, i64 4 + store %"github.com/goplus/llgo/internal/abi.Method" %527, ptr %2502, align 8 + %2503 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2497, i64 5 + store %"github.com/goplus/llgo/internal/abi.Method" %2364, ptr %2503, align 8 + %2504 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2497, i64 6 + store %"github.com/goplus/llgo/internal/abi.Method" %2375, ptr %2504, align 8 + %2505 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2497, i64 7 + store %"github.com/goplus/llgo/internal/abi.Method" %2386, ptr %2505, align 8 + %2506 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2497, i64 8 + store %"github.com/goplus/llgo/internal/abi.Method" %2397, ptr %2506, align 8 + %2507 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2497, i64 9 + store %"github.com/goplus/llgo/internal/abi.Method" %2408, ptr %2507, align 8 + %2508 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2497, i64 10 + store %"github.com/goplus/llgo/internal/abi.Method" %2419, ptr %2508, align 8 + %2509 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2497, i64 11 + store %"github.com/goplus/llgo/internal/abi.Method" %2430, ptr %2509, align 8 + %2510 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2497, i64 12 + store %"github.com/goplus/llgo/internal/abi.Method" %2441, ptr %2510, align 8 + %2511 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2497, i64 13 + store %"github.com/goplus/llgo/internal/abi.Method" %2452, ptr %2511, align 8 + %2512 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2497, i64 14 + store %"github.com/goplus/llgo/internal/abi.Method" %2463, ptr %2512, align 8 + %2513 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2497, i64 15 + store %"github.com/goplus/llgo/internal/abi.Method" %2474, ptr %2513, align 8 + %2514 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2497, i64 16 + store %"github.com/goplus/llgo/internal/abi.Method" %2485, ptr %2514, align 8 + %2515 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2497, i64 17 + store %"github.com/goplus/llgo/internal/abi.Method" %2496, ptr %2515, align 8 + %2516 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %2517 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %2516, i32 0, i32 0 + store ptr %2497, ptr %2517, align 8 + %2518 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %2516, i32 0, i32 1 + store i64 18, ptr %2518, align 4 + %2519 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %2516, i32 0, i32 2 + store i64 18, ptr %2519, align 4 + %2520 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %2516, align 8 + %2521 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %2522 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2521, i32 0, i32 0 + store ptr @31, ptr %2522, align 8 + %2523 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2521, i32 0, i32 1 + store i64 35, ptr %2523, align 4 + %2524 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %2521, align 8 + %2525 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %2526 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2525, i32 0, i32 0 + store ptr @23, ptr %2526, align 8 + %2527 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2525, i32 0, i32 1 + store i64 9, ptr %2527, align 4 + %2528 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %2525, align 8 + call void @"github.com/goplus/llgo/internal/runtime.InitNamed"(ptr %333, %"github.com/goplus/llgo/internal/runtime.String" %2524, %"github.com/goplus/llgo/internal/runtime.String" %2528, ptr %407, { ptr, i64, i64 } zeroinitializer, %"github.com/goplus/llgo/internal/runtime.Slice" %2520) + br label %_llgo_22 + +_llgo_103: ; preds = %_llgo_22 + %2529 = call ptr @"github.com/goplus/llgo/internal/runtime.PointerTo"(ptr %445) + call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %2529) + store ptr %2529, ptr @"*_llgo_github.com/goplus/llgo/internal/abi.ArrayType", align 8 + br label %_llgo_104 + +_llgo_104: ; preds = %_llgo_103, %_llgo_22 + %2530 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/internal/abi.ArrayType", align 8 + %2531 = load ptr, ptr @"_llgo_func$CsVqlCxhoEcIvPD5BSBukfSiD9C7Ic5_Gf32MLbCWB4", align 8 + %2532 = icmp eq ptr %2531, null + br i1 %2532, label %_llgo_105, label %_llgo_106 + +_llgo_105: ; preds = %_llgo_104 + %2533 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 0) + %2534 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %2535 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %2534, i32 0, i32 0 + store ptr %2533, ptr %2535, align 8 + %2536 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %2534, i32 0, i32 1 + store i64 0, ptr %2536, align 4 + %2537 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %2534, i32 0, i32 2 + store i64 0, ptr %2537, align 4 + %2538 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %2534, align 8 + %2539 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 8) + %2540 = getelementptr ptr, ptr %2539, i64 0 + store ptr %2530, ptr %2540, align 8 + %2541 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %2542 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %2541, i32 0, i32 0 + store ptr %2539, ptr %2542, align 8 + %2543 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %2541, i32 0, i32 1 + store i64 1, ptr %2543, align 4 + %2544 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %2541, i32 0, i32 2 + store i64 1, ptr %2544, align 4 + %2545 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %2541, align 8 + %2546 = call ptr @"github.com/goplus/llgo/internal/runtime.Func"(%"github.com/goplus/llgo/internal/runtime.Slice" %2538, %"github.com/goplus/llgo/internal/runtime.Slice" %2545, i1 false) + call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %2546) + store ptr %2546, ptr @"_llgo_func$CsVqlCxhoEcIvPD5BSBukfSiD9C7Ic5_Gf32MLbCWB4", align 8 + br label %_llgo_106 + +_llgo_106: ; preds = %_llgo_105, %_llgo_104 + %2547 = load ptr, ptr @"_llgo_func$CsVqlCxhoEcIvPD5BSBukfSiD9C7Ic5_Gf32MLbCWB4", align 8 + %2548 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %2549 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2548, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %328, ptr %2549, align 8 + %2550 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2548, i32 0, i32 1 + store ptr %2547, ptr %2550, align 8 + %2551 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2548, i32 0, i32 2 + store ptr @"github.com/goplus/llgo/internal/abi.(*Type).ArrayType", ptr %2551, align 8 + %2552 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2548, i32 0, i32 3 + store ptr @"github.com/goplus/llgo/internal/abi.(*Type).ArrayType", ptr %2552, align 8 + %2553 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %2548, align 8 + %2554 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %2555 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2554, i32 0, i32 0 + store ptr @29, ptr %2555, align 8 + %2556 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2554, i32 0, i32 1 + store i64 7, ptr %2556, align 4 + %2557 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %2554, align 8 + %2558 = load ptr, ptr @"_llgo_func$TrNr0CVWj6qegOngzWbt2Jl7pr7IBJ5gOmgUf2ieIi4", align 8 + %2559 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %2560 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2559, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %2557, ptr %2560, align 8 + %2561 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2559, i32 0, i32 1 + store ptr %2558, ptr %2561, align 8 + %2562 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2559, i32 0, i32 2 + store ptr @"github.com/goplus/llgo/internal/abi.(*Type).ChanDir", ptr %2562, align 8 + %2563 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2559, i32 0, i32 3 + store ptr @"github.com/goplus/llgo/internal/abi.(*Type).ChanDir", ptr %2563, align 8 + %2564 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %2559, align 8 + %2565 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %2566 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2565, i32 0, i32 0 + store ptr @32, ptr %2566, align 8 + %2567 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2565, i32 0, i32 1 + store i64 6, ptr %2567, align 4 + %2568 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %2565, align 8 + %2569 = load ptr, ptr @"_llgo_func$4-mqItKfDlL0CgVKnUxoresYgh6zW1WSlZYZSsVzLRo", align 8 + %2570 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %2571 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2570, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %2568, ptr %2571, align 8 + %2572 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2570, i32 0, i32 1 + store ptr %2569, ptr %2572, align 8 + %2573 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2570, i32 0, i32 2 + store ptr @"github.com/goplus/llgo/internal/abi.(*Type).Common", ptr %2573, align 8 + %2574 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2570, i32 0, i32 3 + store ptr @"github.com/goplus/llgo/internal/abi.(*Type).Common", ptr %2574, align 8 + %2575 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %2570, align 8 + %2576 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %2577 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2576, i32 0, i32 0 + store ptr @26, ptr %2577, align 8 + %2578 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2576, i32 0, i32 1 + store i64 4, ptr %2578, align 4 + %2579 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %2576, align 8 + %2580 = load ptr, ptr @"_llgo_func$4-mqItKfDlL0CgVKnUxoresYgh6zW1WSlZYZSsVzLRo", align 8 + %2581 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %2582 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2581, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %2579, ptr %2582, align 8 + %2583 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2581, i32 0, i32 1 + store ptr %2580, ptr %2583, align 8 + %2584 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2581, i32 0, i32 2 + store ptr @"github.com/goplus/llgo/internal/abi.(*Type).Elem", ptr %2584, align 8 + %2585 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2581, i32 0, i32 3 + store ptr @"github.com/goplus/llgo/internal/abi.(*Type).Elem", ptr %2585, align 8 + %2586 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %2581, align 8 + %2587 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %2588 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2587, i32 0, i32 0 + store ptr @33, ptr %2588, align 8 + %2589 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2587, i32 0, i32 1 + store i64 10, ptr %2589, align 4 + %2590 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %2587, align 8 + %2591 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 + %2592 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %2593 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2592, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %2590, ptr %2593, align 8 + %2594 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2592, i32 0, i32 1 + store ptr %2591, ptr %2594, align 8 + %2595 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2592, i32 0, i32 2 + store ptr @"github.com/goplus/llgo/internal/abi.(*Type).FieldAlign", ptr %2595, align 8 + %2596 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2592, i32 0, i32 3 + store ptr @"github.com/goplus/llgo/internal/abi.(*Type).FieldAlign", ptr %2596, align 8 + %2597 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %2592, align 8 + %2598 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %2599 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2598, i32 0, i32 0 + store ptr @34, ptr %2599, align 8 + %2600 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2598, i32 0, i32 1 + store i64 8, ptr %2600, align 4 + %2601 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %2598, align 8 + %2602 = load ptr, ptr @"_llgo_func$DsoxgOnxqV7tLvokF3AA14v1gtHsHaThoC8Q_XGcQww", align 8 + %2603 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %2604 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2603, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %2601, ptr %2604, align 8 + %2605 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2603, i32 0, i32 1 + store ptr %2602, ptr %2605, align 8 + %2606 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2603, i32 0, i32 2 + store ptr @"github.com/goplus/llgo/internal/abi.(*Type).FuncType", ptr %2606, align 8 + %2607 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2603, i32 0, i32 3 + store ptr @"github.com/goplus/llgo/internal/abi.(*Type).FuncType", ptr %2607, align 8 + %2608 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %2603, align 8 + %2609 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %2610 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2609, i32 0, i32 0 + store ptr @38, ptr %2610, align 8 + %2611 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2609, i32 0, i32 1 + store i64 7, ptr %2611, align 4 + %2612 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %2609, align 8 + %2613 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 + %2614 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %2615 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2614, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %2612, ptr %2615, align 8 + %2616 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2614, i32 0, i32 1 + store ptr %2613, ptr %2616, align 8 + %2617 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2614, i32 0, i32 2 + store ptr @"github.com/goplus/llgo/internal/abi.(*Type).HasName", ptr %2617, align 8 + %2618 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2614, i32 0, i32 3 + store ptr @"github.com/goplus/llgo/internal/abi.(*Type).HasName", ptr %2618, align 8 + %2619 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %2614, align 8 + %2620 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %2621 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2620, i32 0, i32 0 + store ptr @39, ptr %2621, align 8 + %2622 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2620, i32 0, i32 1 + store i64 10, ptr %2622, align 4 + %2623 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %2620, align 8 + %2624 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 + %2625 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %2626 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2625, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %2623, ptr %2626, align 8 + %2627 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2625, i32 0, i32 1 + store ptr %2624, ptr %2627, align 8 + %2628 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2625, i32 0, i32 2 + store ptr @"github.com/goplus/llgo/internal/abi.(*Type).IfaceIndir", ptr %2628, align 8 + %2629 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2625, i32 0, i32 3 + store ptr @"github.com/goplus/llgo/internal/abi.(*Type).IfaceIndir", ptr %2629, align 8 + %2630 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %2625, align 8 + %2631 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %2632 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2631, i32 0, i32 0 + store ptr @40, ptr %2632, align 8 + %2633 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2631, i32 0, i32 1 + store i64 13, ptr %2633, align 4 + %2634 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %2631, align 8 + %2635 = load ptr, ptr @"_llgo_func$1QmforOaCy2fBAssC2y1FWCCT6fpq9RKwP2j2HIASY8", align 8 + %2636 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %2637 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2636, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %2634, ptr %2637, align 8 + %2638 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2636, i32 0, i32 1 + store ptr %2635, ptr %2638, align 8 + %2639 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2636, i32 0, i32 2 + store ptr @"github.com/goplus/llgo/internal/abi.(*Type).InterfaceType", ptr %2639, align 8 + %2640 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2636, i32 0, i32 3 + store ptr @"github.com/goplus/llgo/internal/abi.(*Type).InterfaceType", ptr %2640, align 8 + %2641 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %2636, align 8 + %2642 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %2643 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2642, i32 0, i32 0 + store ptr @45, ptr %2643, align 8 + %2644 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2642, i32 0, i32 1 + store i64 13, ptr %2644, align 4 + %2645 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %2642, align 8 + %2646 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 + %2647 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %2648 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2647, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %2645, ptr %2648, align 8 + %2649 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2647, i32 0, i32 1 + store ptr %2646, ptr %2649, align 8 + %2650 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2647, i32 0, i32 2 + store ptr @"github.com/goplus/llgo/internal/abi.(*Type).IsDirectIface", ptr %2650, align 8 + %2651 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2647, i32 0, i32 3 + store ptr @"github.com/goplus/llgo/internal/abi.(*Type).IsDirectIface", ptr %2651, align 8 + %2652 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %2647, align 8 + %2653 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %2654 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2653, i32 0, i32 0 + store ptr @46, ptr %2654, align 8 + %2655 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2653, i32 0, i32 1 + store i64 3, ptr %2655, align 4 + %2656 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %2653, align 8 + %2657 = load ptr, ptr @"_llgo_func$4-mqItKfDlL0CgVKnUxoresYgh6zW1WSlZYZSsVzLRo", align 8 + %2658 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %2659 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2658, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %2656, ptr %2659, align 8 + %2660 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2658, i32 0, i32 1 + store ptr %2657, ptr %2660, align 8 + %2661 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2658, i32 0, i32 2 + store ptr @"github.com/goplus/llgo/internal/abi.(*Type).Key", ptr %2661, align 8 + %2662 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2658, i32 0, i32 3 + store ptr @"github.com/goplus/llgo/internal/abi.(*Type).Key", ptr %2662, align 8 + %2663 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %2658, align 8 + %2664 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %2665 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2664, i32 0, i32 0 + store ptr @47, ptr %2665, align 8 + %2666 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2664, i32 0, i32 1 + store i64 4, ptr %2666, align 4 + %2667 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %2664, align 8 + %2668 = load ptr, ptr @"_llgo_func$ntUE0UmVAWPS2O7GpCCGszSn-XnjHJntZZ2jYtwbFXI", align 8 + %2669 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %2670 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2669, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %2667, ptr %2670, align 8 + %2671 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2669, i32 0, i32 1 + store ptr %2668, ptr %2671, align 8 + %2672 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2669, i32 0, i32 2 + store ptr @"github.com/goplus/llgo/internal/abi.(*Type).Kind", ptr %2672, align 8 + %2673 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2669, i32 0, i32 3 + store ptr @"github.com/goplus/llgo/internal/abi.(*Type).Kind", ptr %2673, align 8 + %2674 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %2669, align 8 + %2675 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %2676 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2675, i32 0, i32 0 + store ptr @28, ptr %2676, align 8 + %2677 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2675, i32 0, i32 1 + store i64 3, ptr %2677, align 4 + %2678 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %2675, align 8 + %2679 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 + %2680 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %2681 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2680, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %2678, ptr %2681, align 8 + %2682 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2680, i32 0, i32 1 + store ptr %2679, ptr %2682, align 8 + %2683 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2680, i32 0, i32 2 + store ptr @"github.com/goplus/llgo/internal/abi.(*Type).Len", ptr %2683, align 8 + %2684 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2680, i32 0, i32 3 + store ptr @"github.com/goplus/llgo/internal/abi.(*Type).Len", ptr %2684, align 8 + %2685 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %2680, align 8 + %2686 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %2687 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2686, i32 0, i32 0 + store ptr @50, ptr %2687, align 8 + %2688 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2686, i32 0, i32 1 + store i64 7, ptr %2688, align 4 + %2689 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %2686, align 8 + %2690 = load ptr, ptr @"_llgo_func$d-NlqnjcQnaMjsBQY7qh2SWQmHb0XIigoceXdiJ8YT4", align 8 + %2691 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %2692 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2691, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %2689, ptr %2692, align 8 + %2693 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2691, i32 0, i32 1 + store ptr %2690, ptr %2693, align 8 + %2694 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2691, i32 0, i32 2 + store ptr @"github.com/goplus/llgo/internal/abi.(*Type).MapType", ptr %2694, align 8 + %2695 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2691, i32 0, i32 3 + store ptr @"github.com/goplus/llgo/internal/abi.(*Type).MapType", ptr %2695, align 8 + %2696 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %2691, align 8 + %2697 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %2698 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2697, i32 0, i32 0 + store ptr @62, ptr %2698, align 8 + %2699 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2697, i32 0, i32 1 + store i64 8, ptr %2699, align 4 + %2700 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %2697, align 8 + %2701 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 + %2702 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %2703 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2702, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %2700, ptr %2703, align 8 + %2704 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2702, i32 0, i32 1 + store ptr %2701, ptr %2704, align 8 + %2705 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2702, i32 0, i32 2 + store ptr @"github.com/goplus/llgo/internal/abi.(*Type).Pointers", ptr %2705, align 8 + %2706 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2702, i32 0, i32 3 + store ptr @"github.com/goplus/llgo/internal/abi.(*Type).Pointers", ptr %2706, align 8 + %2707 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %2702, align 8 + %2708 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %2709 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2708, i32 0, i32 0 + store ptr @64, ptr %2709, align 8 + %2710 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2708, i32 0, i32 1 + store i64 4, ptr %2710, align 4 + %2711 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %2708, align 8 + %2712 = load ptr, ptr @"_llgo_func$1kITCsyu7hFLMxHLR7kDlvu4SOra_HtrtdFUQH9P13s", align 8 + %2713 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %2714 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2713, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %2711, ptr %2714, align 8 + %2715 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2713, i32 0, i32 1 + store ptr %2712, ptr %2715, align 8 + %2716 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2713, i32 0, i32 2 + store ptr @"github.com/goplus/llgo/internal/abi.(*Type).Size", ptr %2716, align 8 + %2717 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2713, i32 0, i32 3 + store ptr @"github.com/goplus/llgo/internal/abi.(*Type).Size", ptr %2717, align 8 + %2718 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %2713, align 8 + %2719 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %2720 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2719, i32 0, i32 0 + store ptr @49, ptr %2720, align 8 + %2721 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2719, i32 0, i32 1 + store i64 6, ptr %2721, align 4 + %2722 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %2719, align 8 + %2723 = load ptr, ptr @"_llgo_func$zNDVRsWTIpUPKouNUS805RGX--IV9qVK8B31IZbg5to", align 8 + %2724 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %2725 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2724, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %2722, ptr %2725, align 8 + %2726 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2724, i32 0, i32 1 + store ptr %2723, ptr %2726, align 8 + %2727 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2724, i32 0, i32 2 + store ptr @"github.com/goplus/llgo/internal/abi.(*Type).String", ptr %2727, align 8 + %2728 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2724, i32 0, i32 3 + store ptr @"github.com/goplus/llgo/internal/abi.(*Type).String", ptr %2728, align 8 + %2729 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %2724, align 8 + %2730 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %2731 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2730, i32 0, i32 0 + store ptr @65, ptr %2731, align 8 + %2732 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2730, i32 0, i32 1 + store i64 10, ptr %2732, align 4 + %2733 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %2730, align 8 + %2734 = load ptr, ptr @"_llgo_func$qiNnn6Cbm3GtDp4gDI4U_DRV3h8zlz91s9jrfOXC--U", align 8 + %2735 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %2736 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2735, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %2733, ptr %2736, align 8 + %2737 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2735, i32 0, i32 1 + store ptr %2734, ptr %2737, align 8 + %2738 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2735, i32 0, i32 2 + store ptr @"github.com/goplus/llgo/internal/abi.(*Type).StructType", ptr %2738, align 8 + %2739 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2735, i32 0, i32 3 + store ptr @"github.com/goplus/llgo/internal/abi.(*Type).StructType", ptr %2739, align 8 + %2740 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %2735, align 8 + %2741 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %2742 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2741, i32 0, i32 0 + store ptr @69, ptr %2742, align 8 + %2743 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2741, i32 0, i32 1 + store i64 8, ptr %2743, align 4 + %2744 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %2741, align 8 + %2745 = load ptr, ptr @"_llgo_func$DbD4nZv_bjE4tH8hh-VfAjMXMpNfIsMlLJJJPKupp34", align 8 + %2746 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %2747 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2746, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %2744, ptr %2747, align 8 + %2748 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2746, i32 0, i32 1 + store ptr %2745, ptr %2748, align 8 + %2749 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2746, i32 0, i32 2 + store ptr @"github.com/goplus/llgo/internal/abi.(*Type).Uncommon", ptr %2749, align 8 + %2750 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2746, i32 0, i32 3 + store ptr @"github.com/goplus/llgo/internal/abi.(*Type).Uncommon", ptr %2750, align 8 + %2751 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %2746, align 8 + %2752 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 800) + %2753 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2752, i64 0 + store %"github.com/goplus/llgo/internal/abi.Method" %324, ptr %2753, align 8 + %2754 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2752, i64 1 + store %"github.com/goplus/llgo/internal/abi.Method" %2553, ptr %2754, align 8 + %2755 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2752, i64 2 + store %"github.com/goplus/llgo/internal/abi.Method" %2564, ptr %2755, align 8 + %2756 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2752, i64 3 + store %"github.com/goplus/llgo/internal/abi.Method" %2575, ptr %2756, align 8 + %2757 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2752, i64 4 + store %"github.com/goplus/llgo/internal/abi.Method" %2586, ptr %2757, align 8 + %2758 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2752, i64 5 + store %"github.com/goplus/llgo/internal/abi.Method" %2597, ptr %2758, align 8 + %2759 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2752, i64 6 + store %"github.com/goplus/llgo/internal/abi.Method" %2608, ptr %2759, align 8 + %2760 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2752, i64 7 + store %"github.com/goplus/llgo/internal/abi.Method" %2619, ptr %2760, align 8 + %2761 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2752, i64 8 + store %"github.com/goplus/llgo/internal/abi.Method" %2630, ptr %2761, align 8 + %2762 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2752, i64 9 + store %"github.com/goplus/llgo/internal/abi.Method" %2641, ptr %2762, align 8 + %2763 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2752, i64 10 + store %"github.com/goplus/llgo/internal/abi.Method" %2652, ptr %2763, align 8 + %2764 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2752, i64 11 + store %"github.com/goplus/llgo/internal/abi.Method" %2663, ptr %2764, align 8 + %2765 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2752, i64 12 + store %"github.com/goplus/llgo/internal/abi.Method" %2674, ptr %2765, align 8 + %2766 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2752, i64 13 + store %"github.com/goplus/llgo/internal/abi.Method" %2685, ptr %2766, align 8 + %2767 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2752, i64 14 + store %"github.com/goplus/llgo/internal/abi.Method" %2696, ptr %2767, align 8 + %2768 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2752, i64 15 + store %"github.com/goplus/llgo/internal/abi.Method" %2707, ptr %2768, align 8 + %2769 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2752, i64 16 + store %"github.com/goplus/llgo/internal/abi.Method" %2718, ptr %2769, align 8 + %2770 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2752, i64 17 + store %"github.com/goplus/llgo/internal/abi.Method" %2729, ptr %2770, align 8 + %2771 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2752, i64 18 + store %"github.com/goplus/llgo/internal/abi.Method" %2740, ptr %2771, align 8 + %2772 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2752, i64 19 + store %"github.com/goplus/llgo/internal/abi.Method" %2751, ptr %2772, align 8 + %2773 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %2774 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %2773, i32 0, i32 0 + store ptr %2752, ptr %2774, align 8 + %2775 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %2773, i32 0, i32 1 + store i64 20, ptr %2775, align 4 + %2776 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %2773, i32 0, i32 2 + store i64 20, ptr %2776, align 4 + %2777 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %2773, align 8 + %2778 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %2779 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2778, i32 0, i32 0 + store ptr @31, ptr %2779, align 8 + %2780 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2778, i32 0, i32 1 + store i64 35, ptr %2780, align 4 + %2781 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %2778, align 8 + %2782 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %2783 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2782, i32 0, i32 0 + store ptr @25, ptr %2783, align 8 + %2784 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2782, i32 0, i32 1 + store i64 4, ptr %2784, align 4 + %2785 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %2782, align 8 + call void @"github.com/goplus/llgo/internal/runtime.InitNamed"(ptr %90, %"github.com/goplus/llgo/internal/runtime.String" %2781, %"github.com/goplus/llgo/internal/runtime.String" %2785, ptr %293, { ptr, i64, i64 } zeroinitializer, %"github.com/goplus/llgo/internal/runtime.Slice" %2777) + br label %_llgo_12 } -declare ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(i64, i64, i64, i64) +declare ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(%"github.com/goplus/llgo/internal/runtime.String", i64, i64, i64, 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") @@ -4565,6 +5082,8 @@ declare i64 @"github.com/goplus/llgo/internal/abi.(*ArrayType).Align"(ptr) declare ptr @"github.com/goplus/llgo/internal/abi.(*ArrayType).ArrayType"(ptr) +declare i64 @"github.com/goplus/llgo/internal/abi.(*ArrayType).ChanDir"(ptr) + declare ptr @"github.com/goplus/llgo/internal/abi.(*ArrayType).Common"(ptr) declare i64 @"github.com/goplus/llgo/internal/abi.(*ArrayType).FieldAlign"(ptr) @@ -4573,6 +5092,8 @@ declare i64 @"github.com/goplus/llgo/internal/abi.(*FuncType).Align"(ptr) declare ptr @"github.com/goplus/llgo/internal/abi.(*FuncType).ArrayType"(ptr) +declare i64 @"github.com/goplus/llgo/internal/abi.(*FuncType).ChanDir"(ptr) + declare ptr @"github.com/goplus/llgo/internal/abi.(*FuncType).Common"(ptr) declare ptr @"github.com/goplus/llgo/internal/abi.(*FuncType).Elem"(ptr) @@ -4589,6 +5110,8 @@ declare i64 @"github.com/goplus/llgo/internal/abi.(*InterfaceType).Align"(ptr) declare ptr @"github.com/goplus/llgo/internal/abi.(*InterfaceType).ArrayType"(ptr) +declare i64 @"github.com/goplus/llgo/internal/abi.(*InterfaceType).ChanDir"(ptr) + declare ptr @"github.com/goplus/llgo/internal/abi.(*InterfaceType).Common"(ptr) declare ptr @"github.com/goplus/llgo/internal/abi.(*InterfaceType).Elem"(ptr) @@ -4605,6 +5128,8 @@ declare ptr @"github.com/goplus/llgo/internal/abi.(*InterfaceType).InterfaceType declare i1 @"github.com/goplus/llgo/internal/abi.(*InterfaceType).IsDirectIface"(ptr) +declare ptr @"github.com/goplus/llgo/internal/abi.(*InterfaceType).Key"(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) @@ -4617,6 +5142,8 @@ declare i64 @"github.com/goplus/llgo/internal/abi.(*MapType).Align"(ptr) declare ptr @"github.com/goplus/llgo/internal/abi.(*MapType).ArrayType"(ptr) +declare i64 @"github.com/goplus/llgo/internal/abi.(*MapType).ChanDir"(ptr) + declare ptr @"github.com/goplus/llgo/internal/abi.(*MapType).Common"(ptr) declare i64 @"github.com/goplus/llgo/internal/abi.(*MapType).FieldAlign"(ptr) @@ -4657,6 +5184,8 @@ declare i64 @"github.com/goplus/llgo/internal/abi.(*StructType).Align"(ptr) declare ptr @"github.com/goplus/llgo/internal/abi.(*StructType).ArrayType"(ptr) +declare i64 @"github.com/goplus/llgo/internal/abi.(*StructType).ChanDir"(ptr) + declare ptr @"github.com/goplus/llgo/internal/abi.(*StructType).Common"(ptr) declare ptr @"github.com/goplus/llgo/internal/abi.(*StructType).Elem"(ptr) @@ -4673,6 +5202,8 @@ declare ptr @"github.com/goplus/llgo/internal/abi.(*StructType).InterfaceType"(p declare i1 @"github.com/goplus/llgo/internal/abi.(*StructType).IsDirectIface"(ptr) +declare ptr @"github.com/goplus/llgo/internal/abi.(*StructType).Key"(ptr) + declare i64 @"github.com/goplus/llgo/internal/abi.(*StructType).Kind"(ptr) declare i64 @"github.com/goplus/llgo/internal/abi.(*StructType).Len"(ptr) @@ -4713,6 +5244,8 @@ declare ptr @"github.com/goplus/llgo/internal/abi.(*FuncType).InterfaceType"(ptr declare i1 @"github.com/goplus/llgo/internal/abi.(*FuncType).IsDirectIface"(ptr) +declare ptr @"github.com/goplus/llgo/internal/abi.(*FuncType).Key"(ptr) + declare i64 @"github.com/goplus/llgo/internal/abi.(*FuncType).Kind"(ptr) declare i64 @"github.com/goplus/llgo/internal/abi.(*FuncType).Len"(ptr) @@ -4741,6 +5274,8 @@ declare ptr @"github.com/goplus/llgo/internal/abi.(*ArrayType).InterfaceType"(pt declare i1 @"github.com/goplus/llgo/internal/abi.(*ArrayType).IsDirectIface"(ptr) +declare ptr @"github.com/goplus/llgo/internal/abi.(*ArrayType).Key"(ptr) + declare i64 @"github.com/goplus/llgo/internal/abi.(*ArrayType).Kind"(ptr) declare ptr @"github.com/goplus/llgo/internal/abi.(*ArrayType).MapType"(ptr) @@ -4757,6 +5292,8 @@ declare ptr @"github.com/goplus/llgo/internal/abi.(*ArrayType).Uncommon"(ptr) declare ptr @"github.com/goplus/llgo/internal/abi.(*Type).ArrayType"(ptr) +declare i64 @"github.com/goplus/llgo/internal/abi.(*Type).ChanDir"(ptr) + declare ptr @"github.com/goplus/llgo/internal/abi.(*Type).Common"(ptr) declare ptr @"github.com/goplus/llgo/internal/abi.(*Type).Elem"(ptr) @@ -4773,6 +5310,8 @@ declare ptr @"github.com/goplus/llgo/internal/abi.(*Type).InterfaceType"(ptr) declare i1 @"github.com/goplus/llgo/internal/abi.(*Type).IsDirectIface"(ptr) +declare ptr @"github.com/goplus/llgo/internal/abi.(*Type).Key"(ptr) + declare i64 @"github.com/goplus/llgo/internal/abi.(*Type).Kind"(ptr) declare i64 @"github.com/goplus/llgo/internal/abi.(*Type).Len"(ptr) diff --git a/cl/_testrt/eface/out.ll b/cl/_testrt/eface/out.ll index bd1b441ca..3b9f81fcb 100644 --- a/cl/_testrt/eface/out.ll +++ b/cl/_testrt/eface/out.ll @@ -45,9 +45,10 @@ source_filename = "main" @8 = private unnamed_addr constant [1 x i8] c"y", align 1 @9 = private unnamed_addr constant [1 x i8] c"z", align 1 @_llgo_main.T = linkonce global ptr null, align 8 -@10 = private unnamed_addr constant [6 x i8] c"Invoke", align 1 +@10 = private unnamed_addr constant [6 x i8] c"main.T", align 1 +@11 = private unnamed_addr constant [6 x i8] c"Invoke", align 1 @"_llgo_func$2_iS07vIlF2_rZqWB5eU0IvP_9HviM4MYZNkXZDvbac" = linkonce global ptr null, align 8 -@11 = private unnamed_addr constant [1 x i8] c"T", align 1 +@12 = private unnamed_addr constant [1 x i8] c"T", align 1 define void @"main.(*T).Invoke"(ptr %0) { _llgo_0: @@ -779,93 +780,99 @@ _llgo_38: ; preds = %_llgo_37, %_llgo_36 %149 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %145, align 8 %150 = call ptr @"github.com/goplus/llgo/internal/runtime.Struct"(%"github.com/goplus/llgo/internal/runtime.String" %140, i64 24, %"github.com/goplus/llgo/internal/runtime.Slice" %149) store ptr %150, ptr @"main.struct$RKbUG45GE4henGMAdmt0Rju0JptyR8NsX7IZLsOI0OM", align 8 - %151 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(i64 24, i64 16, i64 0, i64 1) - %152 = load ptr, ptr @_llgo_main.T, align 8 - %153 = icmp eq ptr %152, null - br i1 %153, label %_llgo_39, label %_llgo_40 + %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 @10, ptr %152, align 8 + %153 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %151, i32 0, i32 1 + store i64 6, ptr %153, align 4 + %154 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %151, align 8 + %155 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(%"github.com/goplus/llgo/internal/runtime.String" %154, i64 24, i64 16, i64 0, i64 1) + %156 = load ptr, ptr @_llgo_main.T, align 8 + %157 = icmp eq ptr %156, null + br i1 %157, label %_llgo_39, label %_llgo_40 _llgo_39: ; preds = %_llgo_38 - store ptr %151, ptr @_llgo_main.T, align 8 + store ptr %155, ptr @_llgo_main.T, align 8 br label %_llgo_40 _llgo_40: ; preds = %_llgo_39, %_llgo_38 - %154 = load ptr, ptr @_llgo_string, align 8 - br i1 %153, label %_llgo_41, label %_llgo_42 + %158 = load ptr, ptr @_llgo_string, align 8 + br i1 %157, label %_llgo_41, label %_llgo_42 _llgo_41: ; preds = %_llgo_40 - %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 @10, 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$2_iS07vIlF2_rZqWB5eU0IvP_9HviM4MYZNkXZDvbac", align 8 - %160 = icmp eq ptr %159, null - br i1 %160, label %_llgo_43, label %_llgo_44 + %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 @11, ptr %160, align 8 + %161 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %159, i32 0, i32 1 + store i64 6, ptr %161, align 4 + %162 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %159, align 8 + %163 = load ptr, ptr @"_llgo_func$2_iS07vIlF2_rZqWB5eU0IvP_9HviM4MYZNkXZDvbac", align 8 + %164 = icmp eq ptr %163, null + br i1 %164, label %_llgo_43, label %_llgo_44 _llgo_42: ; preds = %_llgo_44, %_llgo_40 ret void _llgo_43: ; preds = %_llgo_41 - %161 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 0) - %162 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %163 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %162, i32 0, i32 0 - store ptr %161, ptr %163, align 8 - %164 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %162, i32 0, i32 1 - store i64 0, ptr %164, align 4 - %165 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %162, i32 0, i32 2 - store i64 0, ptr %165, align 4 - %166 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %162, align 8 - %167 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 0) - %168 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %169 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %168, i32 0, i32 0 - store ptr %167, ptr %169, align 8 - %170 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %168, i32 0, i32 1 - store i64 0, ptr %170, align 4 - %171 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %168, i32 0, i32 2 - store i64 0, ptr %171, align 4 - %172 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %168, align 8 - %173 = call ptr @"github.com/goplus/llgo/internal/runtime.Func"(%"github.com/goplus/llgo/internal/runtime.Slice" %166, %"github.com/goplus/llgo/internal/runtime.Slice" %172, i1 false) - call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %173) - store ptr %173, ptr @"_llgo_func$2_iS07vIlF2_rZqWB5eU0IvP_9HviM4MYZNkXZDvbac", align 8 + %165 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 0) + %166 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %167 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %166, i32 0, i32 0 + store ptr %165, ptr %167, align 8 + %168 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %166, i32 0, i32 1 + store i64 0, ptr %168, align 4 + %169 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %166, i32 0, i32 2 + store i64 0, ptr %169, align 4 + %170 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %166, align 8 + %171 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 0) + %172 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %173 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %172, i32 0, i32 0 + store ptr %171, ptr %173, align 8 + %174 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %172, i32 0, i32 1 + store i64 0, ptr %174, align 4 + %175 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %172, i32 0, i32 2 + store i64 0, ptr %175, align 4 + %176 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %172, align 8 + %177 = call ptr @"github.com/goplus/llgo/internal/runtime.Func"(%"github.com/goplus/llgo/internal/runtime.Slice" %170, %"github.com/goplus/llgo/internal/runtime.Slice" %176, i1 false) + call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %177) + store ptr %177, ptr @"_llgo_func$2_iS07vIlF2_rZqWB5eU0IvP_9HviM4MYZNkXZDvbac", align 8 br label %_llgo_44 _llgo_44: ; preds = %_llgo_43, %_llgo_41 - %174 = load ptr, ptr @"_llgo_func$2_iS07vIlF2_rZqWB5eU0IvP_9HviM4MYZNkXZDvbac", align 8 - %175 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 - %176 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %175, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %158, ptr %176, align 8 - %177 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %175, i32 0, i32 1 - store ptr %174, ptr %177, align 8 - %178 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %175, i32 0, i32 2 - store ptr @"main.(*T).Invoke", ptr %178, align 8 - %179 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %175, i32 0, i32 3 - store ptr @"main.(*T).Invoke", ptr %179, align 8 - %180 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %175, align 8 - %181 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 40) - %182 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %181, i64 0 - store %"github.com/goplus/llgo/internal/abi.Method" %180, ptr %182, align 8 - %183 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %184 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %183, i32 0, i32 0 - store ptr %181, ptr %184, align 8 - %185 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %183, i32 0, i32 1 - store i64 1, ptr %185, align 4 - %186 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %183, i32 0, i32 2 - store i64 1, ptr %186, align 4 - %187 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %183, align 8 - %188 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %189 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %188, i32 0, i32 0 - store ptr @5, ptr %189, align 8 - %190 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %188, i32 0, i32 1 - store i64 4, ptr %190, align 4 - %191 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %188, align 8 + %178 = load ptr, ptr @"_llgo_func$2_iS07vIlF2_rZqWB5eU0IvP_9HviM4MYZNkXZDvbac", align 8 + %179 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %180 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %179, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %162, ptr %180, align 8 + %181 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %179, i32 0, i32 1 + store ptr %178, ptr %181, align 8 + %182 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %179, i32 0, i32 2 + store ptr @"main.(*T).Invoke", ptr %182, align 8 + %183 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %179, i32 0, i32 3 + store ptr @"main.(*T).Invoke", ptr %183, align 8 + %184 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %179, align 8 + %185 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 40) + %186 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %185, i64 0 + store %"github.com/goplus/llgo/internal/abi.Method" %184, ptr %186, align 8 + %187 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %188 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %187, i32 0, i32 0 + store ptr %185, ptr %188, align 8 + %189 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %187, i32 0, i32 1 + store i64 1, ptr %189, align 4 + %190 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %187, i32 0, i32 2 + store i64 1, ptr %190, align 4 + %191 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %187, align 8 %192 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 %193 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %192, i32 0, i32 0 - store ptr @11, ptr %193, align 8 + store ptr @5, ptr %193, align 8 %194 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %192, i32 0, i32 1 - store i64 1, ptr %194, align 4 + store i64 4, ptr %194, align 4 %195 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %192, align 8 - call void @"github.com/goplus/llgo/internal/runtime.InitNamed"(ptr %151, %"github.com/goplus/llgo/internal/runtime.String" %191, %"github.com/goplus/llgo/internal/runtime.String" %195, ptr %154, { ptr, i64, i64 } zeroinitializer, %"github.com/goplus/llgo/internal/runtime.Slice" %187) + %196 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %197 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %196, i32 0, i32 0 + store ptr @12, ptr %197, align 8 + %198 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %196, i32 0, i32 1 + store i64 1, ptr %198, align 4 + %199 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %196, align 8 + call void @"github.com/goplus/llgo/internal/runtime.InitNamed"(ptr %155, %"github.com/goplus/llgo/internal/runtime.String" %195, %"github.com/goplus/llgo/internal/runtime.String" %199, ptr %158, { ptr, i64, i64 } zeroinitializer, %"github.com/goplus/llgo/internal/runtime.Slice" %191) br label %_llgo_42 } @@ -893,6 +900,6 @@ declare ptr @"github.com/goplus/llgo/internal/runtime.PointerTo"(ptr) declare ptr @"github.com/goplus/llgo/internal/runtime.SliceOf"(ptr) -declare ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(i64, i64, i64, i64) +declare ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(%"github.com/goplus/llgo/internal/runtime.String", i64, i64, i64, 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") diff --git a/cl/_testrt/makemap/out.ll b/cl/_testrt/makemap/out.ll index eb4bdd661..139c7464c 100644 --- a/cl/_testrt/makemap/out.ll +++ b/cl/_testrt/makemap/out.ll @@ -29,26 +29,31 @@ source_filename = "main" @_llgo_any = linkonce global ptr null, align 8 @"map[_llgo_any]_llgo_int" = linkonce global ptr null, align 8 @_llgo_main.N1 = linkonce global ptr null, align 8 +@12 = private unnamed_addr constant [7 x i8] c"main.N1", align 1 @"[1]_llgo_int" = linkonce global ptr null, align 8 -@12 = private unnamed_addr constant [2 x i8] c"N1", align 1 -@13 = private unnamed_addr constant [21 x i8] c"type assertion failed", align 1 +@13 = private unnamed_addr constant [2 x i8] c"N1", align 1 +@14 = private unnamed_addr constant [21 x i8] c"type assertion failed", align 1 @_llgo_main.K = linkonce global ptr null, align 8 +@15 = private unnamed_addr constant [6 x i8] c"main.K", align 1 @_llgo_main.N = linkonce global ptr null, align 8 +@16 = private unnamed_addr constant [6 x i8] c"main.N", align 1 @"main.struct$e65EDK9vxC36Nz3YTgO1ulssLlNH03Bva_WWaCjH-4A" = linkonce global ptr null, align 8 -@14 = private unnamed_addr constant [2 x i8] c"n1", align 1 -@15 = private unnamed_addr constant [2 x i8] c"n2", align 1 -@16 = private unnamed_addr constant [1 x i8] c"N", align 1 +@17 = private unnamed_addr constant [2 x i8] c"n1", align 1 +@18 = private unnamed_addr constant [2 x i8] c"n2", align 1 +@19 = private unnamed_addr constant [1 x i8] c"N", align 1 @"[1]_llgo_main.N" = linkonce global ptr null, align 8 -@17 = private unnamed_addr constant [1 x i8] c"K", align 1 +@20 = private unnamed_addr constant [1 x i8] c"K", align 1 @_llgo_main.K2 = linkonce global ptr null, align 8 +@21 = private unnamed_addr constant [7 x i8] c"main.K2", align 1 @"*_llgo_main.N" = linkonce global ptr null, align 8 @"[1]*_llgo_main.N" = linkonce global ptr null, align 8 -@18 = private unnamed_addr constant [2 x i8] c"K2", align 1 +@22 = private unnamed_addr constant [2 x i8] c"K2", align 1 @"chan _llgo_int" = linkonce global ptr null, align 8 -@19 = private unnamed_addr constant [4 x i8] c"chan", align 1 +@23 = private unnamed_addr constant [4 x i8] c"chan", align 1 @"map[chan _llgo_int]_llgo_int" = linkonce global ptr null, align 8 @_llgo_main.M = linkonce global ptr null, align 8 -@20 = private unnamed_addr constant [1 x i8] c"M", align 1 +@24 = private unnamed_addr constant [6 x i8] c"main.M", align 1 +@25 = private unnamed_addr constant [1 x i8] c"M", align 1 @"map[_llgo_main.N]_llgo_string" = linkonce global ptr null, align 8 define void @main.init() { @@ -601,7 +606,7 @@ _llgo_7: ; preds = %_llgo_2 _llgo_8: ; preds = %_llgo_2 %100 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 %101 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %100, i32 0, i32 0 - store ptr @13, ptr %101, align 8 + store ptr @14, ptr %101, align 8 %102 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %100, i32 0, i32 1 store i64 21, ptr %102, align 4 %103 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %100, align 8 @@ -781,7 +786,7 @@ _llgo_7: ; preds = %_llgo_2 _llgo_8: ; preds = %_llgo_2 %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 @13, ptr %94, align 8 + store ptr @14, ptr %94, align 8 %95 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %93, i32 0, i32 1 store i64 21, ptr %95, align 4 %96 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %93, align 8 @@ -960,7 +965,7 @@ _llgo_7: ; preds = %_llgo_2 _llgo_8: ; preds = %_llgo_2 %94 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 %95 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %94, i32 0, i32 0 - store ptr @13, ptr %95, align 8 + store ptr @14, ptr %95, align 8 %96 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %94, i32 0, i32 1 store i64 21, ptr %96, align 4 %97 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %94, align 8 @@ -1621,476 +1626,540 @@ _llgo_11: ; preds = %_llgo_10 br label %_llgo_12 _llgo_12: ; preds = %_llgo_11, %_llgo_10 - %240 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(i64 17, i64 8, i64 0, i64 0) - %241 = load ptr, ptr @_llgo_main.N1, align 8 - %242 = icmp eq ptr %241, null - br i1 %242, label %_llgo_13, label %_llgo_14 + %240 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %241 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %240, i32 0, i32 0 + store ptr @12, ptr %241, align 8 + %242 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %240, i32 0, i32 1 + store i64 7, ptr %242, align 4 + %243 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %240, align 8 + %244 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(%"github.com/goplus/llgo/internal/runtime.String" %243, i64 17, i64 8, i64 0, i64 0) + %245 = load ptr, ptr @_llgo_main.N1, align 8 + %246 = icmp eq ptr %245, null + br i1 %246, label %_llgo_13, label %_llgo_14 _llgo_13: ; preds = %_llgo_12 - store ptr %240, ptr @_llgo_main.N1, align 8 + store ptr %244, ptr @_llgo_main.N1, align 8 br label %_llgo_14 _llgo_14: ; preds = %_llgo_13, %_llgo_12 - %243 = load ptr, ptr @_llgo_int, align 8 - %244 = load ptr, ptr @"[1]_llgo_int", align 8 - %245 = icmp eq ptr %244, null - br i1 %245, label %_llgo_15, label %_llgo_16 + %247 = load ptr, ptr @_llgo_int, align 8 + %248 = load ptr, ptr @"[1]_llgo_int", align 8 + %249 = icmp eq ptr %248, null + br i1 %249, label %_llgo_15, label %_llgo_16 _llgo_15: ; preds = %_llgo_14 - %246 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 34) - %247 = call ptr @"github.com/goplus/llgo/internal/runtime.ArrayOf"(i64 1, ptr %246) - store ptr %247, ptr @"[1]_llgo_int", align 8 + %250 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 34) + %251 = call ptr @"github.com/goplus/llgo/internal/runtime.ArrayOf"(i64 1, ptr %250) + store ptr %251, ptr @"[1]_llgo_int", align 8 br label %_llgo_16 _llgo_16: ; preds = %_llgo_15, %_llgo_14 - %248 = load ptr, ptr @"[1]_llgo_int", align 8 - br i1 %242, label %_llgo_17, label %_llgo_18 + %252 = load ptr, ptr @"[1]_llgo_int", align 8 + br i1 %246, label %_llgo_17, label %_llgo_18 _llgo_17: ; preds = %_llgo_16 - %249 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %250 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %249, i32 0, i32 0 - store ptr @4, ptr %250, align 8 - %251 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %249, i32 0, i32 1 - store i64 4, ptr %251, align 4 - %252 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %249, align 8 %253 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 %254 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %253, i32 0, i32 0 - store ptr @12, ptr %254, align 8 + store ptr @4, ptr %254, align 8 %255 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %253, i32 0, i32 1 - store i64 2, ptr %255, align 4 + store i64 4, ptr %255, align 4 %256 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %253, align 8 - call void @"github.com/goplus/llgo/internal/runtime.InitNamed"(ptr %240, %"github.com/goplus/llgo/internal/runtime.String" %252, %"github.com/goplus/llgo/internal/runtime.String" %256, ptr %248, { ptr, i64, i64 } zeroinitializer, { ptr, i64, i64 } zeroinitializer) + %257 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %258 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %257, i32 0, i32 0 + store ptr @13, ptr %258, align 8 + %259 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %257, i32 0, i32 1 + store i64 2, ptr %259, align 4 + %260 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %257, align 8 + call void @"github.com/goplus/llgo/internal/runtime.InitNamed"(ptr %244, %"github.com/goplus/llgo/internal/runtime.String" %256, %"github.com/goplus/llgo/internal/runtime.String" %260, ptr %252, { ptr, i64, i64 } zeroinitializer, { ptr, i64, i64 } zeroinitializer) br label %_llgo_18 _llgo_18: ; preds = %_llgo_17, %_llgo_16 - %257 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(i64 17, i64 2, i64 0, i64 0) - %258 = load ptr, ptr @_llgo_main.K, align 8 - %259 = icmp eq ptr %258, null - br i1 %259, label %_llgo_19, label %_llgo_20 + %261 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %262 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %261, i32 0, i32 0 + store ptr @15, ptr %262, align 8 + %263 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %261, i32 0, i32 1 + store i64 6, ptr %263, align 4 + %264 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %261, align 8 + %265 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(%"github.com/goplus/llgo/internal/runtime.String" %264, i64 17, i64 2, i64 0, i64 0) + %266 = load ptr, ptr @_llgo_main.K, align 8 + %267 = icmp eq ptr %266, null + br i1 %267, label %_llgo_19, label %_llgo_20 _llgo_19: ; preds = %_llgo_18 - store ptr %257, ptr @_llgo_main.K, align 8 + store ptr %265, ptr @_llgo_main.K, align 8 br label %_llgo_20 _llgo_20: ; preds = %_llgo_19, %_llgo_18 - %260 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(i64 25, i64 2, i64 0, i64 0) - %261 = load ptr, ptr @_llgo_main.N, align 8 - %262 = icmp eq ptr %261, null - br i1 %262, label %_llgo_21, label %_llgo_22 + %268 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %269 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %268, i32 0, i32 0 + store ptr @16, ptr %269, align 8 + %270 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %268, i32 0, i32 1 + store i64 6, ptr %270, align 4 + %271 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %268, align 8 + %272 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(%"github.com/goplus/llgo/internal/runtime.String" %271, i64 25, i64 2, i64 0, i64 0) + %273 = load ptr, ptr @_llgo_main.N, align 8 + %274 = icmp eq ptr %273, null + br i1 %274, label %_llgo_21, label %_llgo_22 _llgo_21: ; preds = %_llgo_20 - store ptr %260, ptr @_llgo_main.N, align 8 + store ptr %272, ptr @_llgo_main.N, align 8 br label %_llgo_22 _llgo_22: ; preds = %_llgo_21, %_llgo_20 - %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 @14, ptr %264, align 8 - %265 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %263, i32 0, i32 1 - store i64 2, 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.Basic"(i64 35) - %272 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %266, ptr %271, i64 0, %"github.com/goplus/llgo/internal/runtime.String" %270, i1 false) - %273 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %274 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %273, i32 0, i32 0 - store ptr @15, ptr %274, align 8 - %275 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %273, i32 0, i32 1 - store i64 2, ptr %275, align 4 - %276 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %273, align 8 - %277 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %278 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %277, i32 0, i32 0 - store ptr null, ptr %278, align 8 - %279 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %277, i32 0, i32 1 - store i64 0, ptr %279, align 4 - %280 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %277, align 8 - %281 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 35) - %282 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %276, ptr %281, i64 1, %"github.com/goplus/llgo/internal/runtime.String" %280, i1 false) - %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 @4, 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 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 112) - %288 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %287, i64 0 - store %"github.com/goplus/llgo/internal/abi.StructField" %272, ptr %288, align 8 - %289 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %287, i64 1 - store %"github.com/goplus/llgo/internal/abi.StructField" %282, ptr %289, align 8 - %290 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %291 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %290, i32 0, i32 0 - store ptr %287, ptr %291, align 8 - %292 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %290, i32 0, i32 1 - store i64 2, ptr %292, align 4 - %293 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %290, i32 0, i32 2 - store i64 2, ptr %293, align 4 - %294 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %290, align 8 - %295 = call ptr @"github.com/goplus/llgo/internal/runtime.Struct"(%"github.com/goplus/llgo/internal/runtime.String" %286, i64 2, %"github.com/goplus/llgo/internal/runtime.Slice" %294) - store ptr %295, ptr @"main.struct$e65EDK9vxC36Nz3YTgO1ulssLlNH03Bva_WWaCjH-4A", align 8 - %296 = load ptr, ptr @"main.struct$e65EDK9vxC36Nz3YTgO1ulssLlNH03Bva_WWaCjH-4A", align 8 - br i1 %262, label %_llgo_23, label %_llgo_24 + %275 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %276 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %275, i32 0, i32 0 + store ptr @17, ptr %276, align 8 + %277 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %275, i32 0, i32 1 + store i64 2, ptr %277, align 4 + %278 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %275, align 8 + %279 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %280 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %279, i32 0, i32 0 + store ptr null, ptr %280, align 8 + %281 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %279, i32 0, i32 1 + store i64 0, ptr %281, align 4 + %282 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %279, align 8 + %283 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 35) + %284 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %278, ptr %283, i64 0, %"github.com/goplus/llgo/internal/runtime.String" %282, i1 false) + %285 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %286 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %285, i32 0, i32 0 + store ptr @18, ptr %286, align 8 + %287 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %285, i32 0, i32 1 + store i64 2, ptr %287, align 4 + %288 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %285, align 8 + %289 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %290 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %289, i32 0, i32 0 + store ptr null, ptr %290, align 8 + %291 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %289, i32 0, i32 1 + store i64 0, ptr %291, align 4 + %292 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %289, align 8 + %293 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 35) + %294 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %288, ptr %293, i64 1, %"github.com/goplus/llgo/internal/runtime.String" %292, i1 false) + %295 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %296 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %295, i32 0, i32 0 + store ptr @4, ptr %296, align 8 + %297 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %295, i32 0, i32 1 + store i64 4, ptr %297, align 4 + %298 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %295, align 8 + %299 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 112) + %300 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %299, i64 0 + store %"github.com/goplus/llgo/internal/abi.StructField" %284, ptr %300, align 8 + %301 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %299, i64 1 + store %"github.com/goplus/llgo/internal/abi.StructField" %294, ptr %301, align 8 + %302 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %303 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %302, i32 0, i32 0 + store ptr %299, ptr %303, align 8 + %304 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %302, i32 0, i32 1 + store i64 2, ptr %304, align 4 + %305 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %302, i32 0, i32 2 + store i64 2, ptr %305, align 4 + %306 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %302, align 8 + %307 = call ptr @"github.com/goplus/llgo/internal/runtime.Struct"(%"github.com/goplus/llgo/internal/runtime.String" %298, i64 2, %"github.com/goplus/llgo/internal/runtime.Slice" %306) + store ptr %307, ptr @"main.struct$e65EDK9vxC36Nz3YTgO1ulssLlNH03Bva_WWaCjH-4A", align 8 + %308 = load ptr, ptr @"main.struct$e65EDK9vxC36Nz3YTgO1ulssLlNH03Bva_WWaCjH-4A", align 8 + br i1 %274, label %_llgo_23, label %_llgo_24 _llgo_23: ; preds = %_llgo_22 - %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 @4, ptr %298, align 8 - %299 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %297, i32 0, i32 1 - store i64 4, ptr %299, align 4 - %300 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %297, align 8 - %301 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %302 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %301, i32 0, i32 0 - store ptr @16, ptr %302, align 8 - %303 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %301, i32 0, i32 1 - store i64 1, ptr %303, align 4 - %304 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %301, align 8 - call void @"github.com/goplus/llgo/internal/runtime.InitNamed"(ptr %260, %"github.com/goplus/llgo/internal/runtime.String" %300, %"github.com/goplus/llgo/internal/runtime.String" %304, ptr %296, { ptr, i64, i64 } zeroinitializer, { ptr, i64, i64 } zeroinitializer) + %309 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %310 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %309, i32 0, i32 0 + store ptr @4, ptr %310, align 8 + %311 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %309, i32 0, i32 1 + store i64 4, ptr %311, align 4 + %312 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %309, align 8 + %313 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %314 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %313, i32 0, i32 0 + store ptr @19, ptr %314, align 8 + %315 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %313, i32 0, i32 1 + store i64 1, ptr %315, align 4 + %316 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %313, align 8 + call void @"github.com/goplus/llgo/internal/runtime.InitNamed"(ptr %272, %"github.com/goplus/llgo/internal/runtime.String" %312, %"github.com/goplus/llgo/internal/runtime.String" %316, ptr %308, { ptr, i64, i64 } zeroinitializer, { ptr, i64, i64 } zeroinitializer) br label %_llgo_24 _llgo_24: ; preds = %_llgo_23, %_llgo_22 - %305 = load ptr, ptr @_llgo_main.N, align 8 - %306 = load ptr, ptr @"[1]_llgo_main.N", align 8 - %307 = icmp eq ptr %306, null - br i1 %307, label %_llgo_25, label %_llgo_26 + %317 = load ptr, ptr @_llgo_main.N, 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 @16, 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.NewNamed"(%"github.com/goplus/llgo/internal/runtime.String" %321, i64 25, i64 2, i64 0, i64 0) + %323 = load ptr, ptr @"[1]_llgo_main.N", align 8 + %324 = icmp eq ptr %323, null + br i1 %324, label %_llgo_25, label %_llgo_26 _llgo_25: ; preds = %_llgo_24 - %308 = call ptr @"github.com/goplus/llgo/internal/runtime.ArrayOf"(i64 1, ptr %260) - store ptr %308, ptr @"[1]_llgo_main.N", align 8 + %325 = call ptr @"github.com/goplus/llgo/internal/runtime.ArrayOf"(i64 1, ptr %322) + store ptr %325, ptr @"[1]_llgo_main.N", align 8 br label %_llgo_26 _llgo_26: ; preds = %_llgo_25, %_llgo_24 - %309 = load ptr, ptr @"[1]_llgo_main.N", align 8 - br i1 %259, label %_llgo_27, label %_llgo_28 + %326 = load ptr, ptr @"[1]_llgo_main.N", align 8 + br i1 %267, label %_llgo_27, label %_llgo_28 _llgo_27: ; preds = %_llgo_26 - %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 @4, 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 @17, ptr %315, align 8 - %316 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %314, i32 0, i32 1 - store i64 1, ptr %316, align 4 - %317 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %314, align 8 - call void @"github.com/goplus/llgo/internal/runtime.InitNamed"(ptr %257, %"github.com/goplus/llgo/internal/runtime.String" %313, %"github.com/goplus/llgo/internal/runtime.String" %317, ptr %309, { ptr, i64, i64 } zeroinitializer, { ptr, i64, i64 } zeroinitializer) + %327 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %328 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %327, i32 0, i32 0 + store ptr @4, ptr %328, align 8 + %329 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %327, i32 0, i32 1 + store i64 4, ptr %329, align 4 + %330 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %327, 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 @20, ptr %332, align 8 + %333 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %331, i32 0, i32 1 + store i64 1, ptr %333, align 4 + %334 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %331, align 8 + call void @"github.com/goplus/llgo/internal/runtime.InitNamed"(ptr %265, %"github.com/goplus/llgo/internal/runtime.String" %330, %"github.com/goplus/llgo/internal/runtime.String" %334, ptr %326, { ptr, i64, i64 } zeroinitializer, { ptr, i64, i64 } zeroinitializer) br label %_llgo_28 _llgo_28: ; preds = %_llgo_27, %_llgo_26 - %318 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(i64 17, i64 8, i64 0, i64 0) - %319 = load ptr, ptr @_llgo_main.K2, align 8 - %320 = icmp eq ptr %319, null - br i1 %320, label %_llgo_29, label %_llgo_30 + %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 @21, ptr %336, align 8 + %337 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %335, i32 0, i32 1 + store i64 7, 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.NewNamed"(%"github.com/goplus/llgo/internal/runtime.String" %338, i64 17, i64 8, i64 0, i64 0) + %340 = load ptr, ptr @_llgo_main.K2, align 8 + %341 = icmp eq ptr %340, null + br i1 %341, label %_llgo_29, label %_llgo_30 _llgo_29: ; preds = %_llgo_28 - call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %318) - store ptr %318, ptr @_llgo_main.K2, align 8 + call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %339) + store ptr %339, ptr @_llgo_main.K2, align 8 br label %_llgo_30 _llgo_30: ; preds = %_llgo_29, %_llgo_28 - %321 = load ptr, ptr @"*_llgo_main.N", align 8 - %322 = icmp eq ptr %321, null - br i1 %322, label %_llgo_31, label %_llgo_32 + %342 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %343 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %342, i32 0, i32 0 + store ptr @16, ptr %343, align 8 + %344 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %342, i32 0, i32 1 + store i64 6, ptr %344, align 4 + %345 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %342, align 8 + %346 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(%"github.com/goplus/llgo/internal/runtime.String" %345, i64 25, i64 2, i64 0, i64 0) + %347 = load ptr, ptr @"*_llgo_main.N", align 8 + %348 = icmp eq ptr %347, null + br i1 %348, label %_llgo_31, label %_llgo_32 _llgo_31: ; preds = %_llgo_30 - %323 = call ptr @"github.com/goplus/llgo/internal/runtime.PointerTo"(ptr %260) - call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %323) - store ptr %323, ptr @"*_llgo_main.N", align 8 + %349 = call ptr @"github.com/goplus/llgo/internal/runtime.PointerTo"(ptr %346) + call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %349) + store ptr %349, ptr @"*_llgo_main.N", align 8 br label %_llgo_32 _llgo_32: ; preds = %_llgo_31, %_llgo_30 - %324 = load ptr, ptr @"*_llgo_main.N", align 8 - %325 = load ptr, ptr @"[1]*_llgo_main.N", align 8 - %326 = icmp eq ptr %325, null - br i1 %326, label %_llgo_33, label %_llgo_34 + %350 = load ptr, ptr @"*_llgo_main.N", align 8 + %351 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %352 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %351, i32 0, i32 0 + store ptr @16, ptr %352, align 8 + %353 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %351, i32 0, i32 1 + store i64 6, ptr %353, align 4 + %354 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %351, align 8 + %355 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(%"github.com/goplus/llgo/internal/runtime.String" %354, i64 25, i64 2, i64 0, i64 0) + %356 = load ptr, ptr @"[1]*_llgo_main.N", align 8 + %357 = icmp eq ptr %356, null + br i1 %357, label %_llgo_33, label %_llgo_34 _llgo_33: ; preds = %_llgo_32 - %327 = call ptr @"github.com/goplus/llgo/internal/runtime.PointerTo"(ptr %260) - %328 = call ptr @"github.com/goplus/llgo/internal/runtime.ArrayOf"(i64 1, ptr %327) - call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %328) - store ptr %328, ptr @"[1]*_llgo_main.N", align 8 + %358 = call ptr @"github.com/goplus/llgo/internal/runtime.PointerTo"(ptr %355) + %359 = call ptr @"github.com/goplus/llgo/internal/runtime.ArrayOf"(i64 1, ptr %358) + call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %359) + store ptr %359, ptr @"[1]*_llgo_main.N", align 8 br label %_llgo_34 _llgo_34: ; preds = %_llgo_33, %_llgo_32 - %329 = load ptr, ptr @"[1]*_llgo_main.N", align 8 - br i1 %320, label %_llgo_35, label %_llgo_36 + %360 = load ptr, ptr @"[1]*_llgo_main.N", align 8 + br i1 %341, label %_llgo_35, label %_llgo_36 _llgo_35: ; preds = %_llgo_34 - %330 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %331 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %330, i32 0, i32 0 - store ptr @4, ptr %331, align 8 - %332 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %330, i32 0, i32 1 - store i64 4, ptr %332, align 4 - %333 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %330, align 8 - %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 @18, ptr %335, align 8 - %336 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %334, i32 0, i32 1 - store i64 2, ptr %336, align 4 - %337 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %334, align 8 - call void @"github.com/goplus/llgo/internal/runtime.InitNamed"(ptr %318, %"github.com/goplus/llgo/internal/runtime.String" %333, %"github.com/goplus/llgo/internal/runtime.String" %337, ptr %329, { ptr, i64, i64 } zeroinitializer, { ptr, i64, i64 } zeroinitializer) + %361 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %362 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %361, i32 0, i32 0 + store ptr @4, ptr %362, align 8 + %363 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %361, i32 0, i32 1 + store i64 4, ptr %363, align 4 + %364 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %361, align 8 + %365 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %366 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %365, i32 0, i32 0 + store ptr @22, ptr %366, align 8 + %367 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %365, i32 0, i32 1 + store i64 2, ptr %367, align 4 + %368 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %365, align 8 + call void @"github.com/goplus/llgo/internal/runtime.InitNamed"(ptr %339, %"github.com/goplus/llgo/internal/runtime.String" %364, %"github.com/goplus/llgo/internal/runtime.String" %368, ptr %360, { ptr, i64, i64 } zeroinitializer, { ptr, i64, i64 } zeroinitializer) br label %_llgo_36 _llgo_36: ; preds = %_llgo_35, %_llgo_34 - %338 = load ptr, ptr @"chan _llgo_int", align 8 - %339 = icmp eq ptr %338, null - br i1 %339, label %_llgo_37, label %_llgo_38 + %369 = load ptr, ptr @"chan _llgo_int", align 8 + %370 = icmp eq ptr %369, null + br i1 %370, label %_llgo_37, label %_llgo_38 _llgo_37: ; preds = %_llgo_36 - %340 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %341 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %340, i32 0, i32 0 - store ptr @19, ptr %341, align 8 - %342 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %340, i32 0, i32 1 - store i64 4, ptr %342, align 4 - %343 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %340, align 8 - %344 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 34) - %345 = call ptr @"github.com/goplus/llgo/internal/runtime.ChanOf"(i64 3, %"github.com/goplus/llgo/internal/runtime.String" %343, ptr %344) - call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %345) - store ptr %345, ptr @"chan _llgo_int", align 8 + %371 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %372 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %371, i32 0, i32 0 + store ptr @23, ptr %372, align 8 + %373 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %371, i32 0, i32 1 + store i64 4, ptr %373, align 4 + %374 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %371, align 8 + %375 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 34) + %376 = call ptr @"github.com/goplus/llgo/internal/runtime.ChanOf"(i64 3, %"github.com/goplus/llgo/internal/runtime.String" %374, ptr %375) + call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %376) + store ptr %376, ptr @"chan _llgo_int", align 8 br label %_llgo_38 _llgo_38: ; preds = %_llgo_37, %_llgo_36 - %346 = load ptr, ptr @"map[chan _llgo_int]_llgo_int", align 8 - %347 = icmp eq ptr %346, null - br i1 %347, label %_llgo_39, label %_llgo_40 + %377 = load ptr, ptr @"map[chan _llgo_int]_llgo_int", align 8 + %378 = icmp eq ptr %377, null + br i1 %378, label %_llgo_39, label %_llgo_40 _llgo_39: ; preds = %_llgo_38 - %348 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %349 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %348, i32 0, i32 0 - store ptr @19, ptr %349, align 8 - %350 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %348, i32 0, i32 1 - store i64 4, ptr %350, align 4 - %351 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %348, align 8 - %352 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 34) - %353 = call ptr @"github.com/goplus/llgo/internal/runtime.ChanOf"(i64 3, %"github.com/goplus/llgo/internal/runtime.String" %351, ptr %352) - %354 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 34) - %355 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %356 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %355, i32 0, i32 0 - store ptr @0, ptr %356, align 8 - %357 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %355, i32 0, i32 1 - store i64 7, ptr %357, align 4 - %358 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %355, align 8 - %359 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %360 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %359, i32 0, i32 0 - store ptr null, ptr %360, align 8 - %361 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %359, i32 0, i32 1 - store i64 0, ptr %361, align 4 - %362 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %359, align 8 - %363 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 40) - %364 = call ptr @"github.com/goplus/llgo/internal/runtime.ArrayOf"(i64 8, ptr %363) - %365 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %358, ptr %364, i64 0, %"github.com/goplus/llgo/internal/runtime.String" %362, i1 false) - %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 @1, 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 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %375 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %374, i32 0, i32 0 - store ptr @19, ptr %375, align 8 - %376 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %374, i32 0, i32 1 - store i64 4, ptr %376, align 4 - %377 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %374, align 8 - %378 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 34) - %379 = call ptr @"github.com/goplus/llgo/internal/runtime.ChanOf"(i64 3, %"github.com/goplus/llgo/internal/runtime.String" %377, ptr %378) - %380 = call ptr @"github.com/goplus/llgo/internal/runtime.ArrayOf"(i64 8, ptr %379) - %381 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %369, ptr %380, i64 8, %"github.com/goplus/llgo/internal/runtime.String" %373, i1 false) - %382 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %383 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %382, i32 0, i32 0 - store ptr @2, ptr %383, align 8 - %384 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %382, i32 0, i32 1 - store i64 5, ptr %384, align 4 - %385 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %382, align 8 + %379 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %380 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %379, i32 0, i32 0 + store ptr @23, ptr %380, align 8 + %381 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %379, i32 0, i32 1 + store i64 4, ptr %381, align 4 + %382 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %379, align 8 + %383 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 34) + %384 = call ptr @"github.com/goplus/llgo/internal/runtime.ChanOf"(i64 3, %"github.com/goplus/llgo/internal/runtime.String" %382, ptr %383) + %385 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 34) %386 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 %387 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %386, i32 0, i32 0 - store ptr null, ptr %387, align 8 + store ptr @0, ptr %387, align 8 %388 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %386, i32 0, i32 1 - store i64 0, ptr %388, align 4 + store i64 7, ptr %388, align 4 %389 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %386, align 8 - %390 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 34) - %391 = call ptr @"github.com/goplus/llgo/internal/runtime.ArrayOf"(i64 8, ptr %390) - %392 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %385, ptr %391, i64 72, %"github.com/goplus/llgo/internal/runtime.String" %389, i1 false) - %393 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %394 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %393, i32 0, i32 0 - store ptr @3, ptr %394, align 8 - %395 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %393, i32 0, i32 1 - store i64 8, ptr %395, align 4 - %396 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %393, align 8 + %390 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %391 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %390, i32 0, i32 0 + store ptr null, ptr %391, align 8 + %392 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %390, i32 0, i32 1 + store i64 0, ptr %392, align 4 + %393 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %390, align 8 + %394 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 40) + %395 = call ptr @"github.com/goplus/llgo/internal/runtime.ArrayOf"(i64 8, ptr %394) + %396 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %389, ptr %395, i64 0, %"github.com/goplus/llgo/internal/runtime.String" %393, i1 false) %397 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 %398 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %397, i32 0, i32 0 - store ptr null, ptr %398, align 8 + store ptr @1, ptr %398, align 8 %399 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %397, i32 0, i32 1 - store i64 0, ptr %399, align 4 + store i64 4, ptr %399, align 4 %400 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %397, align 8 - %401 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 58) - %402 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %396, ptr %401, i64 136, %"github.com/goplus/llgo/internal/runtime.String" %400, i1 false) - %403 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %404 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %403, i32 0, i32 0 - store ptr @4, ptr %404, align 8 - %405 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %403, i32 0, i32 1 - store i64 4, ptr %405, align 4 - %406 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %403, align 8 - %407 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 224) - %408 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %407, i64 0 - store %"github.com/goplus/llgo/internal/abi.StructField" %365, ptr %408, align 8 - %409 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %407, i64 1 - store %"github.com/goplus/llgo/internal/abi.StructField" %381, ptr %409, align 8 - %410 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %407, i64 2 - store %"github.com/goplus/llgo/internal/abi.StructField" %392, ptr %410, align 8 - %411 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %407, i64 3 - store %"github.com/goplus/llgo/internal/abi.StructField" %402, ptr %411, align 8 - %412 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %413 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %412, i32 0, i32 0 - store ptr %407, ptr %413, align 8 - %414 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %412, i32 0, i32 1 - store i64 4, ptr %414, align 4 - %415 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %412, i32 0, i32 2 - store i64 4, ptr %415, align 4 - %416 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %412, align 8 - %417 = call ptr @"github.com/goplus/llgo/internal/runtime.Struct"(%"github.com/goplus/llgo/internal/runtime.String" %406, i64 144, %"github.com/goplus/llgo/internal/runtime.Slice" %416) - %418 = call ptr @"github.com/goplus/llgo/internal/runtime.MapOf"(ptr %353, ptr %354, ptr %417, i64 4) - call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %418) - store ptr %418, ptr @"map[chan _llgo_int]_llgo_int", align 8 + %401 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %402 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %401, i32 0, i32 0 + store ptr null, ptr %402, align 8 + %403 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %401, i32 0, i32 1 + store i64 0, ptr %403, align 4 + %404 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %401, align 8 + %405 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %406 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %405, i32 0, i32 0 + store ptr @23, ptr %406, align 8 + %407 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %405, i32 0, i32 1 + store i64 4, ptr %407, align 4 + %408 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %405, align 8 + %409 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 34) + %410 = call ptr @"github.com/goplus/llgo/internal/runtime.ChanOf"(i64 3, %"github.com/goplus/llgo/internal/runtime.String" %408, ptr %409) + %411 = call ptr @"github.com/goplus/llgo/internal/runtime.ArrayOf"(i64 8, ptr %410) + %412 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %400, ptr %411, i64 8, %"github.com/goplus/llgo/internal/runtime.String" %404, i1 false) + %413 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %414 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %413, i32 0, i32 0 + store ptr @2, ptr %414, align 8 + %415 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %413, i32 0, i32 1 + store i64 5, ptr %415, align 4 + %416 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %413, align 8 + %417 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %418 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %417, i32 0, i32 0 + store ptr null, ptr %418, align 8 + %419 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %417, i32 0, i32 1 + store i64 0, ptr %419, align 4 + %420 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %417, align 8 + %421 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 34) + %422 = call ptr @"github.com/goplus/llgo/internal/runtime.ArrayOf"(i64 8, ptr %421) + %423 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %416, ptr %422, i64 72, %"github.com/goplus/llgo/internal/runtime.String" %420, i1 false) + %424 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %425 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %424, i32 0, i32 0 + store ptr @3, ptr %425, align 8 + %426 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %424, i32 0, i32 1 + store i64 8, ptr %426, align 4 + %427 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %424, align 8 + %428 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %429 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %428, i32 0, i32 0 + store ptr null, ptr %429, align 8 + %430 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %428, i32 0, i32 1 + store i64 0, ptr %430, align 4 + %431 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %428, align 8 + %432 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 58) + %433 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %427, ptr %432, i64 136, %"github.com/goplus/llgo/internal/runtime.String" %431, i1 false) + %434 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %435 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %434, i32 0, i32 0 + store ptr @4, ptr %435, align 8 + %436 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %434, i32 0, i32 1 + store i64 4, ptr %436, align 4 + %437 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %434, align 8 + %438 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 224) + %439 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %438, i64 0 + store %"github.com/goplus/llgo/internal/abi.StructField" %396, ptr %439, align 8 + %440 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %438, i64 1 + store %"github.com/goplus/llgo/internal/abi.StructField" %412, ptr %440, align 8 + %441 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %438, i64 2 + store %"github.com/goplus/llgo/internal/abi.StructField" %423, ptr %441, align 8 + %442 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %438, i64 3 + store %"github.com/goplus/llgo/internal/abi.StructField" %433, ptr %442, align 8 + %443 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %444 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %443, i32 0, i32 0 + store ptr %438, ptr %444, align 8 + %445 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %443, i32 0, i32 1 + store i64 4, ptr %445, align 4 + %446 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %443, i32 0, i32 2 + store i64 4, ptr %446, align 4 + %447 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %443, align 8 + %448 = call ptr @"github.com/goplus/llgo/internal/runtime.Struct"(%"github.com/goplus/llgo/internal/runtime.String" %437, i64 144, %"github.com/goplus/llgo/internal/runtime.Slice" %447) + %449 = call ptr @"github.com/goplus/llgo/internal/runtime.MapOf"(ptr %384, ptr %385, ptr %448, i64 4) + call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %449) + store ptr %449, ptr @"map[chan _llgo_int]_llgo_int", align 8 br label %_llgo_40 _llgo_40: ; preds = %_llgo_39, %_llgo_38 - %419 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(i64 21, i64 8, i64 0, i64 0) - %420 = load ptr, ptr @_llgo_main.M, align 8 - %421 = icmp eq ptr %420, null - br i1 %421, label %_llgo_41, label %_llgo_42 + %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 6, ptr %452, align 4 + %453 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %450, align 8 + %454 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(%"github.com/goplus/llgo/internal/runtime.String" %453, i64 21, i64 8, i64 0, i64 0) + %455 = load ptr, ptr @_llgo_main.M, align 8 + %456 = icmp eq ptr %455, null + br i1 %456, label %_llgo_41, label %_llgo_42 _llgo_41: ; preds = %_llgo_40 - call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %419) - store ptr %419, ptr @_llgo_main.M, align 8 + call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %454) + store ptr %454, ptr @_llgo_main.M, align 8 br label %_llgo_42 _llgo_42: ; preds = %_llgo_41, %_llgo_40 - %422 = load ptr, ptr @_llgo_int, align 8 - %423 = load ptr, ptr @_llgo_string, align 8 - %424 = load ptr, ptr @"map[_llgo_int]_llgo_string", align 8 - br i1 %421, label %_llgo_43, label %_llgo_44 + %457 = load ptr, ptr @_llgo_int, align 8 + %458 = load ptr, ptr @_llgo_string, align 8 + %459 = load ptr, ptr @"map[_llgo_int]_llgo_string", align 8 + br i1 %456, label %_llgo_43, label %_llgo_44 _llgo_43: ; preds = %_llgo_42 - %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 @4, ptr %426, align 8 - %427 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %425, i32 0, i32 1 - store i64 4, ptr %427, align 4 - %428 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %425, align 8 - %429 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %430 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %429, i32 0, i32 0 - store ptr @20, ptr %430, align 8 - %431 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %429, i32 0, i32 1 - store i64 1, ptr %431, align 4 - %432 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %429, align 8 - call void @"github.com/goplus/llgo/internal/runtime.InitNamed"(ptr %419, %"github.com/goplus/llgo/internal/runtime.String" %428, %"github.com/goplus/llgo/internal/runtime.String" %432, ptr %424, { ptr, i64, i64 } zeroinitializer, { ptr, i64, i64 } zeroinitializer) + %460 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %461 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %460, i32 0, i32 0 + store ptr @4, ptr %461, align 8 + %462 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %460, i32 0, i32 1 + store i64 4, ptr %462, align 4 + %463 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %460, align 8 + %464 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %465 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %464, i32 0, i32 0 + store ptr @25, ptr %465, align 8 + %466 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %464, i32 0, i32 1 + store i64 1, ptr %466, align 4 + %467 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %464, align 8 + call void @"github.com/goplus/llgo/internal/runtime.InitNamed"(ptr %454, %"github.com/goplus/llgo/internal/runtime.String" %463, %"github.com/goplus/llgo/internal/runtime.String" %467, ptr %459, { ptr, i64, i64 } zeroinitializer, { ptr, i64, i64 } zeroinitializer) br label %_llgo_44 _llgo_44: ; preds = %_llgo_43, %_llgo_42 - %433 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(i64 2, i64 8, i64 0, i64 0) - %434 = load ptr, ptr @"map[_llgo_main.N]_llgo_string", align 8 - %435 = icmp eq ptr %434, null - br i1 %435, label %_llgo_45, label %_llgo_46 - -_llgo_45: ; preds = %_llgo_44 - %436 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 24) - %437 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %438 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %437, i32 0, i32 0 - store ptr @0, ptr %438, align 8 - %439 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %437, i32 0, i32 1 - store i64 7, ptr %439, align 4 - %440 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %437, align 8 - %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 null, ptr %442, align 8 - %443 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %441, i32 0, i32 1 - store i64 0, ptr %443, align 4 - %444 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %441, align 8 - %445 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 40) - %446 = call ptr @"github.com/goplus/llgo/internal/runtime.ArrayOf"(i64 8, ptr %445) - %447 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %440, ptr %446, i64 0, %"github.com/goplus/llgo/internal/runtime.String" %444, i1 false) - %448 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %449 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %448, i32 0, i32 0 - store ptr @1, ptr %449, align 8 - %450 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %448, i32 0, i32 1 - store i64 4, ptr %450, align 4 - %451 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %448, align 8 - %452 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %453 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %452, i32 0, i32 0 - store ptr null, ptr %453, align 8 - %454 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %452, i32 0, i32 1 - store i64 0, ptr %454, align 4 - %455 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %452, align 8 - %456 = call ptr @"github.com/goplus/llgo/internal/runtime.ArrayOf"(i64 8, ptr %433) - %457 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %451, ptr %456, i64 8, %"github.com/goplus/llgo/internal/runtime.String" %455, i1 false) - %458 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %459 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %458, i32 0, i32 0 - store ptr @2, ptr %459, align 8 - %460 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %458, i32 0, i32 1 - store i64 5, ptr %460, align 4 - %461 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %458, align 8 - %462 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %463 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %462, i32 0, i32 0 - store ptr null, ptr %463, align 8 - %464 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %462, i32 0, i32 1 - store i64 0, ptr %464, align 4 - %465 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %462, align 8 - %466 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 24) - %467 = call ptr @"github.com/goplus/llgo/internal/runtime.ArrayOf"(i64 8, ptr %466) - %468 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %461, ptr %467, i64 72, %"github.com/goplus/llgo/internal/runtime.String" %465, i1 false) - %469 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %470 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %469, i32 0, i32 0 - store ptr @3, ptr %470, align 8 - %471 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %469, i32 0, i32 1 - store i64 8, ptr %471, align 4 - %472 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %469, align 8 + %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 @16, ptr %469, align 8 + %470 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %468, i32 0, i32 1 + store i64 6, 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.NewNamed"(%"github.com/goplus/llgo/internal/runtime.String" %471, i64 2, i64 8, i64 0, i64 0) %473 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 %474 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %473, i32 0, i32 0 - store ptr null, ptr %474, align 8 + store ptr @16, ptr %474, align 8 %475 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %473, i32 0, i32 1 - store i64 0, ptr %475, align 4 + store i64 6, ptr %475, align 4 %476 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %473, align 8 - %477 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 58) - %478 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %472, ptr %477, i64 200, %"github.com/goplus/llgo/internal/runtime.String" %476, i1 false) - %479 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %480 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %479, i32 0, i32 0 - store ptr @4, ptr %480, align 8 - %481 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %479, i32 0, i32 1 - store i64 4, ptr %481, align 4 - %482 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %479, align 8 - %483 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 224) - %484 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %483, i64 0 - store %"github.com/goplus/llgo/internal/abi.StructField" %447, ptr %484, align 8 - %485 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %483, i64 1 - store %"github.com/goplus/llgo/internal/abi.StructField" %457, ptr %485, align 8 - %486 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %483, i64 2 - store %"github.com/goplus/llgo/internal/abi.StructField" %468, ptr %486, align 8 - %487 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %483, i64 3 - store %"github.com/goplus/llgo/internal/abi.StructField" %478, ptr %487, align 8 - %488 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %489 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %488, i32 0, i32 0 - store ptr %483, ptr %489, align 8 - %490 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %488, i32 0, i32 1 - store i64 4, ptr %490, align 4 - %491 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %488, i32 0, i32 2 - store i64 4, ptr %491, align 4 - %492 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %488, align 8 - %493 = call ptr @"github.com/goplus/llgo/internal/runtime.Struct"(%"github.com/goplus/llgo/internal/runtime.String" %482, i64 208, %"github.com/goplus/llgo/internal/runtime.Slice" %492) - %494 = call ptr @"github.com/goplus/llgo/internal/runtime.MapOf"(ptr %433, ptr %436, ptr %493, i64 4) - call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %494) - store ptr %494, ptr @"map[_llgo_main.N]_llgo_string", align 8 + %477 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(%"github.com/goplus/llgo/internal/runtime.String" %476, i64 2, i64 8, i64 0, i64 0) + %478 = load ptr, ptr @"map[_llgo_main.N]_llgo_string", align 8 + %479 = icmp eq ptr %478, null + br i1 %479, label %_llgo_45, label %_llgo_46 + +_llgo_45: ; preds = %_llgo_44 + %480 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 24) + %481 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %482 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %481, i32 0, i32 0 + store ptr @0, ptr %482, align 8 + %483 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %481, i32 0, i32 1 + store i64 7, ptr %483, align 4 + %484 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %481, align 8 + %485 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %486 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %485, i32 0, i32 0 + store ptr null, ptr %486, align 8 + %487 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %485, i32 0, i32 1 + store i64 0, ptr %487, align 4 + %488 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %485, align 8 + %489 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 40) + %490 = call ptr @"github.com/goplus/llgo/internal/runtime.ArrayOf"(i64 8, ptr %489) + %491 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %484, ptr %490, i64 0, %"github.com/goplus/llgo/internal/runtime.String" %488, i1 false) + %492 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %493 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %492, i32 0, i32 0 + store ptr @1, ptr %493, align 8 + %494 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %492, i32 0, i32 1 + store i64 4, ptr %494, align 4 + %495 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %492, align 8 + %496 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %497 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %496, i32 0, i32 0 + store ptr null, ptr %497, align 8 + %498 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %496, i32 0, i32 1 + store i64 0, ptr %498, align 4 + %499 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %496, align 8 + %500 = call ptr @"github.com/goplus/llgo/internal/runtime.ArrayOf"(i64 8, ptr %477) + %501 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %495, ptr %500, i64 8, %"github.com/goplus/llgo/internal/runtime.String" %499, i1 false) + %502 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %503 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %502, i32 0, i32 0 + store ptr @2, ptr %503, align 8 + %504 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %502, i32 0, i32 1 + store i64 5, ptr %504, align 4 + %505 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %502, align 8 + %506 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %507 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %506, i32 0, i32 0 + store ptr null, ptr %507, align 8 + %508 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %506, i32 0, i32 1 + store i64 0, ptr %508, align 4 + %509 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %506, align 8 + %510 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 24) + %511 = call ptr @"github.com/goplus/llgo/internal/runtime.ArrayOf"(i64 8, ptr %510) + %512 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %505, ptr %511, i64 72, %"github.com/goplus/llgo/internal/runtime.String" %509, i1 false) + %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 @3, ptr %514, align 8 + %515 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %513, i32 0, i32 1 + store i64 8, ptr %515, align 4 + %516 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %513, align 8 + %517 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %518 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %517, i32 0, i32 0 + store ptr null, ptr %518, align 8 + %519 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %517, i32 0, i32 1 + store i64 0, ptr %519, align 4 + %520 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %517, align 8 + %521 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 58) + %522 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %516, ptr %521, i64 200, %"github.com/goplus/llgo/internal/runtime.String" %520, i1 false) + %523 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %524 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %523, i32 0, i32 0 + store ptr @4, ptr %524, align 8 + %525 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %523, i32 0, i32 1 + store i64 4, ptr %525, align 4 + %526 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %523, align 8 + %527 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 224) + %528 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %527, i64 0 + store %"github.com/goplus/llgo/internal/abi.StructField" %491, ptr %528, align 8 + %529 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %527, i64 1 + store %"github.com/goplus/llgo/internal/abi.StructField" %501, ptr %529, align 8 + %530 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %527, i64 2 + store %"github.com/goplus/llgo/internal/abi.StructField" %512, ptr %530, align 8 + %531 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %527, i64 3 + store %"github.com/goplus/llgo/internal/abi.StructField" %522, ptr %531, align 8 + %532 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %533 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %532, i32 0, i32 0 + store ptr %527, ptr %533, align 8 + %534 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %532, i32 0, i32 1 + store i64 4, ptr %534, align 4 + %535 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %532, i32 0, i32 2 + store i64 4, ptr %535, align 4 + %536 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %532, align 8 + %537 = call ptr @"github.com/goplus/llgo/internal/runtime.Struct"(%"github.com/goplus/llgo/internal/runtime.String" %526, i64 208, %"github.com/goplus/llgo/internal/runtime.Slice" %536) + %538 = call ptr @"github.com/goplus/llgo/internal/runtime.MapOf"(ptr %472, ptr %480, ptr %537, i64 4) + call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %538) + store ptr %538, ptr @"map[_llgo_main.N]_llgo_string", align 8 br label %_llgo_46 _llgo_46: ; preds = %_llgo_45, %_llgo_44 @@ -2142,7 +2211,7 @@ declare ptr @"github.com/goplus/llgo/internal/runtime.Interface"(%"github.com/go ; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: write) declare void @llvm.memset(ptr nocapture writeonly, i8, i64, i1 immarg) #0 -declare ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(i64, i64, i64, i64) +declare ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(%"github.com/goplus/llgo/internal/runtime.String", i64, i64, i64, 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") diff --git a/cl/_testrt/tpabi/out.ll b/cl/_testrt/tpabi/out.ll index e29787275..1abbe5e0c 100644 --- a/cl/_testrt/tpabi/out.ll +++ b/cl/_testrt/tpabi/out.ll @@ -15,17 +15,18 @@ source_filename = "main" @__llgo_argv = global ptr null, align 8 @0 = private unnamed_addr constant [1 x i8] c"a", align 1 @"_llgo_main.T[string,int]" = linkonce global ptr null, align 8 +@1 = private unnamed_addr constant [19 x i8] c"main.T[string, int]", align 1 @"main.struct$A2OTYqQyUOqOQ-i_F5iXeAKWtxeWGEuyeN7HCfULCDk" = linkonce global ptr null, align 8 -@1 = private unnamed_addr constant [1 x i8] c"m", align 1 -@2 = private unnamed_addr constant [1 x i8] c"n", align 1 -@3 = private unnamed_addr constant [4 x i8] c"main", align 1 -@4 = private unnamed_addr constant [4 x i8] c"Demo", align 1 +@2 = private unnamed_addr constant [1 x i8] c"m", align 1 +@3 = private unnamed_addr constant [1 x i8] c"n", align 1 +@4 = private unnamed_addr constant [4 x i8] c"main", align 1 +@5 = private unnamed_addr constant [4 x i8] c"Demo", align 1 @"_llgo_func$2_iS07vIlF2_rZqWB5eU0IvP_9HviM4MYZNkXZDvbac" = linkonce global ptr null, align 8 -@5 = private unnamed_addr constant [4 x i8] c"Info", align 1 -@6 = private unnamed_addr constant [13 x i8] c"T[string,int]", align 1 -@7 = private unnamed_addr constant [21 x i8] c"type assertion failed", align 1 +@6 = private unnamed_addr constant [4 x i8] c"Info", align 1 +@7 = private unnamed_addr constant [13 x i8] c"T[string,int]", align 1 +@8 = private unnamed_addr constant [21 x i8] c"type assertion failed", align 1 @_llgo_string = linkonce global ptr null, align 8 -@8 = private unnamed_addr constant [5 x i8] c"hello", align 1 +@9 = private unnamed_addr constant [5 x i8] c"hello", align 1 @"*_llgo_main.T[string,int]" = linkonce global ptr null, align 8 @"_llgo_iface$BP0p_lUsEd-IbbtJVukGmgrdQkqzcoYzSiwgUvgFvUs" = linkonce global ptr null, align 8 @@ -87,7 +88,7 @@ _llgo_1: ; preds = %_llgo_0 %24 = getelementptr inbounds %"main.T[string,int]", ptr %22, i32 0, i32 1 %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 @8, ptr %26, align 8 + store ptr @9, 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 @@ -135,7 +136,7 @@ _llgo_1: ; preds = %_llgo_0 _llgo_2: ; preds = %_llgo_0 %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 @7, ptr %54, align 8 + store ptr @8, ptr %54, align 8 %55 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %53, i32 0, i32 1 store i64 21, ptr %55, align 4 %56 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %53, align 8 @@ -195,253 +196,266 @@ declare void @llvm.memset(ptr nocapture writeonly, i8, i64, i1 immarg) #0 define void @"main.init$after"() { _llgo_0: - %0 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(i64 25, i64 24, i64 1, i64 2) - %1 = load ptr, ptr @"_llgo_main.T[string,int]", align 8 - %2 = icmp eq ptr %1, null - br i1 %2, label %_llgo_1, label %_llgo_2 + %0 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %1 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %0, i32 0, i32 0 + store ptr @1, ptr %1, align 8 + %2 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %0, i32 0, i32 1 + store i64 19, ptr %2, align 4 + %3 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %0, align 8 + %4 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(%"github.com/goplus/llgo/internal/runtime.String" %3, i64 25, i64 24, i64 1, i64 2) + %5 = load ptr, ptr @"_llgo_main.T[string,int]", align 8 + %6 = icmp eq ptr %5, null + br i1 %6, label %_llgo_1, label %_llgo_2 _llgo_1: ; preds = %_llgo_0 - store ptr %0, ptr @"_llgo_main.T[string,int]", align 8 + store ptr %4, ptr @"_llgo_main.T[string,int]", align 8 br label %_llgo_2 _llgo_2: ; preds = %_llgo_1, %_llgo_0 - %3 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %4 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %3, i32 0, i32 0 - store ptr @1, ptr %4, align 8 - %5 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %3, i32 0, i32 1 - store i64 1, ptr %5, align 4 - %6 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %3, align 8 %7 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 %8 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %7, i32 0, i32 0 - store ptr null, ptr %8, align 8 + store ptr @2, ptr %8, align 8 %9 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %7, i32 0, i32 1 - store i64 0, ptr %9, align 4 + store i64 1, ptr %9, align 4 %10 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %7, align 8 - %11 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 24) - %12 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %6, ptr %11, i64 0, %"github.com/goplus/llgo/internal/runtime.String" %10, i1 false) - %13 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %14 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %13, i32 0, i32 0 - store ptr @2, ptr %14, align 8 - %15 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %13, i32 0, i32 1 - store i64 1, ptr %15, align 4 - %16 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %13, align 8 + %11 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %12 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %11, i32 0, i32 0 + store ptr null, ptr %12, align 8 + %13 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %11, i32 0, i32 1 + store i64 0, ptr %13, align 4 + %14 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %11, align 8 + %15 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 24) + %16 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %10, ptr %15, i64 0, %"github.com/goplus/llgo/internal/runtime.String" %14, i1 false) %17 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 %18 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %17, i32 0, i32 0 - store ptr null, ptr %18, align 8 + store ptr @3, ptr %18, align 8 %19 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %17, i32 0, i32 1 - store i64 0, ptr %19, align 4 + store i64 1, ptr %19, align 4 %20 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %17, align 8 - %21 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 34) - %22 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %16, ptr %21, i64 16, %"github.com/goplus/llgo/internal/runtime.String" %20, i1 false) - %23 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %24 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %23, i32 0, i32 0 - store ptr @3, ptr %24, align 8 - %25 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %23, i32 0, i32 1 - store i64 4, ptr %25, align 4 - %26 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %23, align 8 - %27 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 112) - %28 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %27, i64 0 - store %"github.com/goplus/llgo/internal/abi.StructField" %12, ptr %28, align 8 - %29 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %27, i64 1 - store %"github.com/goplus/llgo/internal/abi.StructField" %22, ptr %29, align 8 - %30 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %31 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %30, i32 0, i32 0 - store ptr %27, ptr %31, align 8 - %32 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %30, i32 0, i32 1 - store i64 2, ptr %32, align 4 - %33 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %30, i32 0, i32 2 - store i64 2, ptr %33, align 4 - %34 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %30, align 8 - %35 = call ptr @"github.com/goplus/llgo/internal/runtime.Struct"(%"github.com/goplus/llgo/internal/runtime.String" %26, i64 24, %"github.com/goplus/llgo/internal/runtime.Slice" %34) - store ptr %35, ptr @"main.struct$A2OTYqQyUOqOQ-i_F5iXeAKWtxeWGEuyeN7HCfULCDk", align 8 - %36 = load ptr, ptr @"main.struct$A2OTYqQyUOqOQ-i_F5iXeAKWtxeWGEuyeN7HCfULCDk", align 8 - br i1 %2, label %_llgo_3, label %_llgo_4 + %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 null, ptr %22, align 8 + %23 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %21, i32 0, i32 1 + store i64 0, ptr %23, align 4 + %24 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %21, align 8 + %25 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 34) + %26 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %20, ptr %25, i64 16, %"github.com/goplus/llgo/internal/runtime.String" %24, i1 false) + %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 @4, 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 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 112) + %32 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %31, i64 0 + store %"github.com/goplus/llgo/internal/abi.StructField" %16, ptr %32, align 8 + %33 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %31, i64 1 + store %"github.com/goplus/llgo/internal/abi.StructField" %26, ptr %33, align 8 + %34 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %35 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %34, i32 0, i32 0 + store ptr %31, ptr %35, align 8 + %36 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %34, i32 0, i32 1 + store i64 2, ptr %36, align 4 + %37 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %34, i32 0, i32 2 + store i64 2, ptr %37, align 4 + %38 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %34, align 8 + %39 = call ptr @"github.com/goplus/llgo/internal/runtime.Struct"(%"github.com/goplus/llgo/internal/runtime.String" %30, i64 24, %"github.com/goplus/llgo/internal/runtime.Slice" %38) + store ptr %39, ptr @"main.struct$A2OTYqQyUOqOQ-i_F5iXeAKWtxeWGEuyeN7HCfULCDk", align 8 + %40 = load ptr, ptr @"main.struct$A2OTYqQyUOqOQ-i_F5iXeAKWtxeWGEuyeN7HCfULCDk", align 8 + br i1 %6, label %_llgo_3, label %_llgo_4 _llgo_3: ; preds = %_llgo_2 - %37 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %38 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %37, i32 0, i32 0 - store ptr @4, ptr %38, align 8 - %39 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %37, i32 0, i32 1 - store i64 4, ptr %39, align 4 - %40 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %37, align 8 - %41 = load ptr, ptr @"_llgo_func$2_iS07vIlF2_rZqWB5eU0IvP_9HviM4MYZNkXZDvbac", align 8 - %42 = icmp eq ptr %41, null - br i1 %42, label %_llgo_5, label %_llgo_6 + %41 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %42 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %41, i32 0, i32 0 + store ptr @5, ptr %42, align 8 + %43 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %41, i32 0, i32 1 + store i64 4, ptr %43, align 4 + %44 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %41, align 8 + %45 = load ptr, ptr @"_llgo_func$2_iS07vIlF2_rZqWB5eU0IvP_9HviM4MYZNkXZDvbac", align 8 + %46 = icmp eq ptr %45, null + br i1 %46, label %_llgo_5, label %_llgo_6 _llgo_4: ; preds = %_llgo_6, %_llgo_2 - %43 = load ptr, ptr @_llgo_string, align 8 - %44 = icmp eq ptr %43, null - br i1 %44, label %_llgo_7, label %_llgo_8 + %47 = load ptr, ptr @_llgo_string, align 8 + %48 = icmp eq ptr %47, null + br i1 %48, label %_llgo_7, label %_llgo_8 _llgo_5: ; preds = %_llgo_3 - %45 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 0) - %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 %45, ptr %47, align 8 - %48 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %46, i32 0, i32 1 - store i64 0, ptr %48, align 4 - %49 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %46, i32 0, i32 2 - store i64 0, 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.AllocU"(i64 0) - %52 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %53 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %52, i32 0, i32 0 - store ptr %51, ptr %53, align 8 - %54 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %52, i32 0, i32 1 - store i64 0, ptr %54, align 4 - %55 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %52, i32 0, i32 2 - store i64 0, ptr %55, align 4 - %56 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %52, align 8 - %57 = call ptr @"github.com/goplus/llgo/internal/runtime.Func"(%"github.com/goplus/llgo/internal/runtime.Slice" %50, %"github.com/goplus/llgo/internal/runtime.Slice" %56, i1 false) - call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %57) - store ptr %57, ptr @"_llgo_func$2_iS07vIlF2_rZqWB5eU0IvP_9HviM4MYZNkXZDvbac", align 8 + %49 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 0) + %50 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %51 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %50, i32 0, i32 0 + store ptr %49, ptr %51, align 8 + %52 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %50, i32 0, i32 1 + store i64 0, ptr %52, align 4 + %53 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %50, i32 0, i32 2 + store i64 0, ptr %53, align 4 + %54 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %50, align 8 + %55 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 0) + %56 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %57 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %56, i32 0, i32 0 + store ptr %55, ptr %57, align 8 + %58 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %56, i32 0, i32 1 + store i64 0, ptr %58, align 4 + %59 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %56, i32 0, i32 2 + store i64 0, ptr %59, align 4 + %60 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %56, align 8 + %61 = call ptr @"github.com/goplus/llgo/internal/runtime.Func"(%"github.com/goplus/llgo/internal/runtime.Slice" %54, %"github.com/goplus/llgo/internal/runtime.Slice" %60, i1 false) + call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %61) + store ptr %61, ptr @"_llgo_func$2_iS07vIlF2_rZqWB5eU0IvP_9HviM4MYZNkXZDvbac", align 8 br label %_llgo_6 _llgo_6: ; preds = %_llgo_5, %_llgo_3 - %58 = load ptr, ptr @"_llgo_func$2_iS07vIlF2_rZqWB5eU0IvP_9HviM4MYZNkXZDvbac", align 8 - %59 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 - %60 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %59, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %40, ptr %60, align 8 - %61 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %59, i32 0, i32 1 - store ptr %58, ptr %61, align 8 - %62 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %59, i32 0, i32 2 - store ptr @"main.(*T[string,int]).Demo", ptr %62, align 8 - %63 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %59, i32 0, i32 3 - store ptr @"main.(*T[string,int]).Demo", ptr %63, align 8 - %64 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %59, align 8 - %65 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %66 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %65, i32 0, i32 0 - store ptr @5, ptr %66, align 8 - %67 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %65, i32 0, i32 1 - store i64 4, ptr %67, align 4 - %68 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %65, align 8 - %69 = load ptr, ptr @"_llgo_func$2_iS07vIlF2_rZqWB5eU0IvP_9HviM4MYZNkXZDvbac", align 8 - %70 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 - %71 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %70, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %68, ptr %71, align 8 - %72 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %70, i32 0, i32 1 - store ptr %69, ptr %72, align 8 - %73 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %70, i32 0, i32 2 - store ptr @"main.(*T[string,int]).Info", ptr %73, align 8 - %74 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %70, i32 0, i32 3 - store ptr @"main.(*T[string,int]).Info", ptr %74, align 8 - %75 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %70, align 8 - %76 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 - %77 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %76, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %68, ptr %77, align 8 - %78 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %76, i32 0, i32 1 - store ptr %69, ptr %78, align 8 - %79 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %76, i32 0, i32 2 - store ptr @"main.(*T[string,int]).Info", ptr %79, align 8 - %80 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %76, i32 0, i32 3 - store ptr @"main.T[string,int].Info", ptr %80, align 8 - %81 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %76, align 8 - %82 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 40) - %83 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %82, i64 0 - store %"github.com/goplus/llgo/internal/abi.Method" %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 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 80) - %90 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %89, i64 0 - store %"github.com/goplus/llgo/internal/abi.Method" %64, ptr %90, align 8 - %91 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %89, i64 1 - store %"github.com/goplus/llgo/internal/abi.Method" %75, ptr %91, align 8 - %92 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %93 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %92, i32 0, i32 0 - store ptr %89, ptr %93, align 8 - %94 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %92, i32 0, i32 1 - store i64 2, ptr %94, align 4 - %95 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %92, i32 0, i32 2 - store i64 2, ptr %95, align 4 - %96 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %92, 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 @3, ptr %98, align 8 - %99 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %97, i32 0, i32 1 - store i64 4, ptr %99, align 4 - %100 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %97, align 8 + %62 = load ptr, ptr @"_llgo_func$2_iS07vIlF2_rZqWB5eU0IvP_9HviM4MYZNkXZDvbac", align 8 + %63 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %64 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %63, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %44, ptr %64, align 8 + %65 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %63, i32 0, i32 1 + store ptr %62, ptr %65, align 8 + %66 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %63, i32 0, i32 2 + store ptr @"main.(*T[string,int]).Demo", ptr %66, align 8 + %67 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %63, i32 0, i32 3 + store ptr @"main.(*T[string,int]).Demo", ptr %67, align 8 + %68 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %63, align 8 + %69 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %70 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %69, i32 0, i32 0 + store ptr @6, ptr %70, align 8 + %71 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %69, i32 0, i32 1 + store i64 4, ptr %71, align 4 + %72 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %69, align 8 + %73 = load ptr, ptr @"_llgo_func$2_iS07vIlF2_rZqWB5eU0IvP_9HviM4MYZNkXZDvbac", align 8 + %74 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %75 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %74, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %72, ptr %75, align 8 + %76 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %74, i32 0, i32 1 + store ptr %73, ptr %76, align 8 + %77 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %74, i32 0, i32 2 + store ptr @"main.(*T[string,int]).Info", ptr %77, align 8 + %78 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %74, i32 0, i32 3 + store ptr @"main.(*T[string,int]).Info", ptr %78, align 8 + %79 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %74, align 8 + %80 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %81 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %80, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %72, ptr %81, align 8 + %82 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %80, i32 0, i32 1 + store ptr %73, ptr %82, align 8 + %83 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %80, i32 0, i32 2 + store ptr @"main.(*T[string,int]).Info", ptr %83, align 8 + %84 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %80, i32 0, i32 3 + store ptr @"main.T[string,int].Info", ptr %84, align 8 + %85 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %80, align 8 + %86 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 40) + %87 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %86, i64 0 + store %"github.com/goplus/llgo/internal/abi.Method" %85, 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 %86, ptr %89, align 8 + %90 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %88, i32 0, i32 1 + store i64 1, ptr %90, align 4 + %91 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %88, i32 0, i32 2 + store i64 1, 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.AllocU"(i64 80) + %94 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %93, i64 0 + store %"github.com/goplus/llgo/internal/abi.Method" %68, ptr %94, align 8 + %95 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %93, i64 1 + store %"github.com/goplus/llgo/internal/abi.Method" %79, ptr %95, align 8 + %96 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %97 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %96, i32 0, i32 0 + store ptr %93, ptr %97, align 8 + %98 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %96, i32 0, i32 1 + store i64 2, ptr %98, align 4 + %99 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %96, i32 0, i32 2 + store i64 2, ptr %99, align 4 + %100 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %96, align 8 %101 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 %102 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %101, i32 0, i32 0 - store ptr @6, ptr %102, align 8 + store ptr @4, ptr %102, align 8 %103 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %101, i32 0, i32 1 - store i64 13, ptr %103, align 4 + store i64 4, ptr %103, align 4 %104 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %101, align 8 - call void @"github.com/goplus/llgo/internal/runtime.InitNamed"(ptr %0, %"github.com/goplus/llgo/internal/runtime.String" %100, %"github.com/goplus/llgo/internal/runtime.String" %104, ptr %36, %"github.com/goplus/llgo/internal/runtime.Slice" %88, %"github.com/goplus/llgo/internal/runtime.Slice" %96) + %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 @7, ptr %106, align 8 + %107 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %105, i32 0, i32 1 + store i64 13, ptr %107, align 4 + %108 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %105, align 8 + call void @"github.com/goplus/llgo/internal/runtime.InitNamed"(ptr %4, %"github.com/goplus/llgo/internal/runtime.String" %104, %"github.com/goplus/llgo/internal/runtime.String" %108, ptr %40, %"github.com/goplus/llgo/internal/runtime.Slice" %92, %"github.com/goplus/llgo/internal/runtime.Slice" %100) br label %_llgo_4 _llgo_7: ; preds = %_llgo_4 - %105 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 24) - store ptr %105, ptr @_llgo_string, align 8 + %109 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 24) + store ptr %109, ptr @_llgo_string, align 8 br label %_llgo_8 _llgo_8: ; preds = %_llgo_7, %_llgo_4 - %106 = load ptr, ptr @"*_llgo_main.T[string,int]", align 8 - %107 = icmp eq ptr %106, null - br i1 %107, label %_llgo_9, label %_llgo_10 + %110 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %111 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %110, i32 0, i32 0 + store ptr @1, ptr %111, align 8 + %112 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %110, i32 0, i32 1 + store i64 19, ptr %112, align 4 + %113 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %110, align 8 + %114 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(%"github.com/goplus/llgo/internal/runtime.String" %113, i64 25, i64 24, i64 1, i64 2) + %115 = load ptr, ptr @"*_llgo_main.T[string,int]", align 8 + %116 = icmp eq ptr %115, null + br i1 %116, label %_llgo_9, label %_llgo_10 _llgo_9: ; preds = %_llgo_8 - %108 = call ptr @"github.com/goplus/llgo/internal/runtime.PointerTo"(ptr %0) - call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %108) - store ptr %108, ptr @"*_llgo_main.T[string,int]", align 8 + %117 = call ptr @"github.com/goplus/llgo/internal/runtime.PointerTo"(ptr %114) + call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %117) + store ptr %117, ptr @"*_llgo_main.T[string,int]", align 8 br label %_llgo_10 _llgo_10: ; preds = %_llgo_9, %_llgo_8 - %109 = load ptr, ptr @"_llgo_func$2_iS07vIlF2_rZqWB5eU0IvP_9HviM4MYZNkXZDvbac", align 8 - %110 = load ptr, ptr @"_llgo_iface$BP0p_lUsEd-IbbtJVukGmgrdQkqzcoYzSiwgUvgFvUs", align 8 - %111 = icmp eq ptr %110, null - br i1 %111, label %_llgo_11, label %_llgo_12 + %118 = load ptr, ptr @"_llgo_func$2_iS07vIlF2_rZqWB5eU0IvP_9HviM4MYZNkXZDvbac", align 8 + %119 = load ptr, ptr @"_llgo_iface$BP0p_lUsEd-IbbtJVukGmgrdQkqzcoYzSiwgUvgFvUs", align 8 + %120 = icmp eq ptr %119, null + br i1 %120, label %_llgo_11, label %_llgo_12 _llgo_11: ; preds = %_llgo_10 - %112 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %113 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %112, i32 0, i32 0 - store ptr @4, ptr %113, align 8 - %114 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %112, i32 0, i32 1 - store i64 4, ptr %114, align 4 - %115 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %112, align 8 - %116 = alloca %"github.com/goplus/llgo/internal/abi.Imethod", align 8 - %117 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Imethod", ptr %116, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %115, ptr %117, align 8 - %118 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Imethod", ptr %116, i32 0, i32 1 - store ptr %109, ptr %118, align 8 - %119 = load %"github.com/goplus/llgo/internal/abi.Imethod", ptr %116, align 8 - %120 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 24) - %121 = getelementptr %"github.com/goplus/llgo/internal/abi.Imethod", ptr %120, i64 0 - store %"github.com/goplus/llgo/internal/abi.Imethod" %119, ptr %121, align 8 - %122 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %123 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %122, i32 0, i32 0 - store ptr %120, ptr %123, align 8 - %124 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %122, i32 0, i32 1 - store i64 1, ptr %124, align 4 - %125 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %122, i32 0, i32 2 - store i64 1, ptr %125, align 4 - %126 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %122, align 8 - %127 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %128 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %127, i32 0, i32 0 - store ptr @3, ptr %128, align 8 - %129 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %127, i32 0, i32 1 - store i64 4, ptr %129, align 4 - %130 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %127, align 8 - %131 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %132 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %131, i32 0, i32 0 - store ptr null, ptr %132, align 8 - %133 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %131, i32 0, i32 1 - store i64 0, ptr %133, align 4 - %134 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %131, align 8 - %135 = call ptr @"github.com/goplus/llgo/internal/runtime.Interface"(%"github.com/goplus/llgo/internal/runtime.String" %130, %"github.com/goplus/llgo/internal/runtime.String" %134, %"github.com/goplus/llgo/internal/runtime.Slice" %126) - store ptr %135, ptr @"_llgo_iface$BP0p_lUsEd-IbbtJVukGmgrdQkqzcoYzSiwgUvgFvUs", align 8 + %121 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %122 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %121, i32 0, i32 0 + store ptr @5, ptr %122, align 8 + %123 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %121, i32 0, i32 1 + store i64 4, ptr %123, align 4 + %124 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %121, align 8 + %125 = alloca %"github.com/goplus/llgo/internal/abi.Imethod", align 8 + %126 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Imethod", ptr %125, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %124, ptr %126, align 8 + %127 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Imethod", ptr %125, i32 0, i32 1 + store ptr %118, ptr %127, align 8 + %128 = load %"github.com/goplus/llgo/internal/abi.Imethod", ptr %125, align 8 + %129 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 24) + %130 = getelementptr %"github.com/goplus/llgo/internal/abi.Imethod", ptr %129, i64 0 + store %"github.com/goplus/llgo/internal/abi.Imethod" %128, ptr %130, align 8 + %131 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %132 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %131, i32 0, i32 0 + store ptr %129, ptr %132, align 8 + %133 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %131, i32 0, i32 1 + store i64 1, ptr %133, align 4 + %134 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %131, i32 0, i32 2 + store i64 1, ptr %134, align 4 + %135 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %131, align 8 + %136 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %137 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %136, i32 0, i32 0 + store ptr @4, ptr %137, align 8 + %138 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %136, i32 0, i32 1 + store i64 4, ptr %138, align 4 + %139 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %136, align 8 + %140 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %141 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %140, i32 0, i32 0 + store ptr null, ptr %141, align 8 + %142 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %140, i32 0, i32 1 + store i64 0, ptr %142, align 4 + %143 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %140, align 8 + %144 = call ptr @"github.com/goplus/llgo/internal/runtime.Interface"(%"github.com/goplus/llgo/internal/runtime.String" %139, %"github.com/goplus/llgo/internal/runtime.String" %143, %"github.com/goplus/llgo/internal/runtime.Slice" %135) + store ptr %144, ptr @"_llgo_iface$BP0p_lUsEd-IbbtJVukGmgrdQkqzcoYzSiwgUvgFvUs", align 8 br label %_llgo_12 _llgo_12: ; preds = %_llgo_11, %_llgo_10 ret void } -declare ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(i64, i64, i64, i64) +declare ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(%"github.com/goplus/llgo/internal/runtime.String", i64, i64, i64, 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") diff --git a/cl/_testrt/tpmethod/out.ll b/cl/_testrt/tpmethod/out.ll index 5b1b01b1c..a8a3f9b57 100644 --- a/cl/_testrt/tpmethod/out.ll +++ b/cl/_testrt/tpmethod/out.ll @@ -15,27 +15,29 @@ source_filename = "main" @__llgo_argv = global ptr null, align 8 @0 = private unnamed_addr constant [7 x i8] c"foo.txt", align 1 @"_llgo_main.future[main.Tuple[error]]" = linkonce global ptr null, align 8 +@1 = private unnamed_addr constant [30 x i8] c"main.future[main.Tuple[error]]", align 1 @"main.struct$ovoVIslEZIUrMi_-W6orVCU5A_Y8gqTBvvvJEMlWdJY" = linkonce global ptr null, align 8 @_llgo_Pointer = linkonce global ptr null, align 8 @"main.struct$NucqrsSdwvefK8Neq8AbgvHqpAoTlQ4Z7-24dNSPHoY" = linkonce global ptr null, align 8 @"_llgo_main.Tuple[error]" = linkonce global ptr null, align 8 +@2 = private unnamed_addr constant [17 x i8] c"main.Tuple[error]", align 1 @"main.struct$ddtj0teo4LtYcagzh1w6BsSZ7226uefXlqreeHsfVRo" = linkonce global ptr null, align 8 @"_llgo_func$zNDVRsWTIpUPKouNUS805RGX--IV9qVK8B31IZbg5to" = linkonce global ptr null, align 8 @_llgo_string = linkonce global ptr null, align 8 -@1 = private unnamed_addr constant [1 x i8] c"v", align 1 -@2 = private unnamed_addr constant [5 x i8] c"Error", align 1 -@3 = private unnamed_addr constant [4 x i8] c"main", align 1 -@4 = private unnamed_addr constant [5 x i8] c"error", align 1 -@5 = private unnamed_addr constant [3 x i8] c"Get", align 1 +@3 = private unnamed_addr constant [1 x i8] c"v", align 1 +@4 = private unnamed_addr constant [5 x i8] c"Error", align 1 +@5 = private unnamed_addr constant [4 x i8] c"main", align 1 +@6 = private unnamed_addr constant [5 x i8] c"error", align 1 +@7 = private unnamed_addr constant [3 x i8] c"Get", align 1 @"_llgo_func$8rsrSd_r3UHd_2DiYTyaOKR7BYkei4zw5ysG35KF38w" = linkonce global ptr null, align 8 @_llgo_error = linkonce global ptr null, align 8 -@6 = private unnamed_addr constant [12 x i8] c"Tuple[error]", align 1 -@7 = private unnamed_addr constant [1 x i8] c"f", align 1 -@8 = private unnamed_addr constant [4 x i8] c"data", align 1 -@9 = private unnamed_addr constant [2 x i8] c"fn", align 1 -@10 = private unnamed_addr constant [4 x i8] c"Then", align 1 +@8 = private unnamed_addr constant [12 x i8] c"Tuple[error]", align 1 +@9 = private unnamed_addr constant [1 x i8] c"f", align 1 +@10 = private unnamed_addr constant [4 x i8] c"data", align 1 +@11 = private unnamed_addr constant [2 x i8] c"fn", align 1 +@12 = private unnamed_addr constant [4 x i8] c"Then", align 1 @"_llgo_func$C0YAnS54eM5TTOK79-PISU_oLySCvOtTKOpIh9jI2pM" = linkonce global ptr null, align 8 -@11 = private unnamed_addr constant [25 x i8] c"future[main.Tuple[error]]", align 1 +@13 = private unnamed_addr constant [25 x i8] c"future[main.Tuple[error]]", align 1 @"*_llgo_main.future[main.Tuple[error]]" = linkonce global ptr null, align 8 @"_llgo_iface$Nwf494fPwMWb08Ae8NF-s-Tau0AFb_mdl0sjJX-pbHw" = linkonce global ptr null, align 8 @@ -192,248 +194,248 @@ 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 24, i64 0, i64 1) - store ptr %0, ptr @"_llgo_main.future[main.Tuple[error]]", align 8 - %1 = load ptr, ptr @_llgo_Pointer, align 8 - %2 = icmp eq ptr %1, null - br i1 %2, label %_llgo_1, label %_llgo_2 + %0 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %1 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %0, i32 0, i32 0 + store ptr @1, ptr %1, align 8 + %2 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %0, i32 0, i32 1 + store i64 30, ptr %2, align 4 + %3 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %0, align 8 + %4 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(%"github.com/goplus/llgo/internal/runtime.String" %3, i64 25, i64 24, i64 0, i64 1) + store ptr %4, ptr @"_llgo_main.future[main.Tuple[error]]", align 8 + %5 = load ptr, ptr @_llgo_Pointer, align 8 + %6 = icmp eq ptr %5, null + br i1 %6, label %_llgo_1, label %_llgo_2 _llgo_1: ; preds = %_llgo_0 - %3 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 58) - call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %3) - store ptr %3, ptr @_llgo_Pointer, align 8 + %7 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 58) + call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %7) + store ptr %7, ptr @_llgo_Pointer, align 8 br label %_llgo_2 _llgo_2: ; preds = %_llgo_1, %_llgo_0 - %4 = load ptr, ptr @_llgo_Pointer, align 8 - %5 = load ptr, ptr @_llgo_Pointer, align 8 - %6 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(i64 25, i64 16, i64 1, i64 1) - %7 = load ptr, ptr @"_llgo_main.Tuple[error]", align 8 - %8 = icmp eq ptr %7, null - br i1 %8, label %_llgo_3, label %_llgo_4 + %8 = load ptr, ptr @_llgo_Pointer, align 8 + %9 = load ptr, ptr @_llgo_Pointer, align 8 + %10 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %11 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %10, i32 0, i32 0 + store ptr @2, ptr %11, align 8 + %12 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %10, i32 0, i32 1 + store i64 17, ptr %12, align 4 + %13 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %10, align 8 + %14 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(%"github.com/goplus/llgo/internal/runtime.String" %13, i64 25, i64 16, i64 1, i64 1) + %15 = load ptr, ptr @"_llgo_main.Tuple[error]", align 8 + %16 = icmp eq ptr %15, null + br i1 %16, label %_llgo_3, label %_llgo_4 _llgo_3: ; preds = %_llgo_2 - store ptr %6, ptr @"_llgo_main.Tuple[error]", align 8 + store ptr %14, ptr @"_llgo_main.Tuple[error]", align 8 br label %_llgo_4 _llgo_4: ; preds = %_llgo_3, %_llgo_2 - %9 = load ptr, ptr @_llgo_string, align 8 - %10 = icmp eq ptr %9, null - br i1 %10, label %_llgo_5, label %_llgo_6 + %17 = load ptr, ptr @_llgo_string, align 8 + %18 = icmp eq ptr %17, null + br i1 %18, label %_llgo_5, label %_llgo_6 _llgo_5: ; preds = %_llgo_4 - %11 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 24) - store ptr %11, ptr @_llgo_string, align 8 + %19 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 24) + store ptr %19, ptr @_llgo_string, align 8 br label %_llgo_6 _llgo_6: ; preds = %_llgo_5, %_llgo_4 - %12 = load ptr, ptr @_llgo_string, align 8 - %13 = load ptr, ptr @"_llgo_func$zNDVRsWTIpUPKouNUS805RGX--IV9qVK8B31IZbg5to", align 8 - %14 = icmp eq ptr %13, null - br i1 %14, label %_llgo_7, label %_llgo_8 + %20 = load ptr, ptr @_llgo_string, align 8 + %21 = load ptr, ptr @"_llgo_func$zNDVRsWTIpUPKouNUS805RGX--IV9qVK8B31IZbg5to", align 8 + %22 = icmp eq ptr %21, null + br i1 %22, label %_llgo_7, label %_llgo_8 _llgo_7: ; preds = %_llgo_6 - %15 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 0) - %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 %15, ptr %17, align 8 - %18 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %16, i32 0, i32 1 - store i64 0, ptr %18, align 4 - %19 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %16, i32 0, i32 2 - store i64 0, 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.AllocU"(i64 8) - %22 = getelementptr ptr, ptr %21, i64 0 - store ptr %12, ptr %22, align 8 - %23 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %24 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %23, i32 0, i32 0 - store ptr %21, ptr %24, align 8 - %25 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %23, i32 0, i32 1 - store i64 1, ptr %25, align 4 - %26 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %23, i32 0, i32 2 - store i64 1, ptr %26, align 4 - %27 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %23, align 8 - %28 = call ptr @"github.com/goplus/llgo/internal/runtime.Func"(%"github.com/goplus/llgo/internal/runtime.Slice" %20, %"github.com/goplus/llgo/internal/runtime.Slice" %27, i1 false) - call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %28) - store ptr %28, ptr @"_llgo_func$zNDVRsWTIpUPKouNUS805RGX--IV9qVK8B31IZbg5to", align 8 + %23 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 0) + %24 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %25 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %24, i32 0, i32 0 + store ptr %23, ptr %25, align 8 + %26 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %24, i32 0, i32 1 + store i64 0, ptr %26, align 4 + %27 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %24, i32 0, i32 2 + store i64 0, ptr %27, align 4 + %28 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %24, align 8 + %29 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 8) + %30 = getelementptr ptr, ptr %29, i64 0 + store ptr %20, ptr %30, align 8 + %31 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %32 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %31, i32 0, i32 0 + store ptr %29, ptr %32, align 8 + %33 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %31, i32 0, i32 1 + store i64 1, ptr %33, align 4 + %34 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %31, i32 0, i32 2 + store i64 1, ptr %34, align 4 + %35 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %31, align 8 + %36 = call ptr @"github.com/goplus/llgo/internal/runtime.Func"(%"github.com/goplus/llgo/internal/runtime.Slice" %28, %"github.com/goplus/llgo/internal/runtime.Slice" %35, i1 false) + call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %36) + store ptr %36, ptr @"_llgo_func$zNDVRsWTIpUPKouNUS805RGX--IV9qVK8B31IZbg5to", align 8 br label %_llgo_8 _llgo_8: ; preds = %_llgo_7, %_llgo_6 - %29 = load ptr, ptr @"_llgo_func$zNDVRsWTIpUPKouNUS805RGX--IV9qVK8B31IZbg5to", align 8 - %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 + %37 = load ptr, ptr @"_llgo_func$zNDVRsWTIpUPKouNUS805RGX--IV9qVK8B31IZbg5to", align 8 %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 @2, ptr %39, align 8 + store ptr @3, ptr %39, align 8 %40 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %38, i32 0, i32 1 - store i64 5, ptr %40, align 4 + store i64 1, ptr %40, align 4 %41 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %38, align 8 - %42 = alloca %"github.com/goplus/llgo/internal/abi.Imethod", align 8 - %43 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Imethod", ptr %42, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %41, ptr %43, align 8 - %44 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Imethod", ptr %42, i32 0, i32 1 - store ptr %29, ptr %44, align 8 - %45 = load %"github.com/goplus/llgo/internal/abi.Imethod", ptr %42, align 8 - %46 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 24) - %47 = getelementptr %"github.com/goplus/llgo/internal/abi.Imethod", ptr %46, i64 0 - store %"github.com/goplus/llgo/internal/abi.Imethod" %45, ptr %47, align 8 - %48 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %49 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %48, i32 0, i32 0 - store ptr %46, ptr %49, align 8 - %50 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %48, i32 0, i32 1 - store i64 1, ptr %50, align 4 - %51 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %48, i32 0, i32 2 - store i64 1, ptr %51, align 4 - %52 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %48, align 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 4, ptr %55, align 4 - %56 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %53, 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 @4, ptr %58, align 8 - %59 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %57, i32 0, i32 1 - store i64 5, ptr %59, align 4 - %60 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %57, align 8 - %61 = call ptr @"github.com/goplus/llgo/internal/runtime.Interface"(%"github.com/goplus/llgo/internal/runtime.String" %56, %"github.com/goplus/llgo/internal/runtime.String" %60, %"github.com/goplus/llgo/internal/runtime.Slice" %52) - %62 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %33, ptr %61, i64 0, %"github.com/goplus/llgo/internal/runtime.String" %37, i1 false) - %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 @3, ptr %64, align 8 - %65 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %63, i32 0, i32 1 - store i64 4, ptr %65, align 4 - %66 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %63, align 8 - %67 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 56) - %68 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %67, i64 0 - store %"github.com/goplus/llgo/internal/abi.StructField" %62, 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 %67, ptr %70, align 8 - %71 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %69, i32 0, i32 1 - store i64 1, ptr %71, align 4 - %72 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %69, i32 0, i32 2 - store i64 1, 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.Struct"(%"github.com/goplus/llgo/internal/runtime.String" %66, i64 16, %"github.com/goplus/llgo/internal/runtime.Slice" %73) - store ptr %74, ptr @"main.struct$ddtj0teo4LtYcagzh1w6BsSZ7226uefXlqreeHsfVRo", align 8 - %75 = load ptr, ptr @"main.struct$ddtj0teo4LtYcagzh1w6BsSZ7226uefXlqreeHsfVRo", align 8 - br i1 %8, label %_llgo_9, label %_llgo_10 + %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 null, ptr %43, align 8 + %44 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %42, i32 0, i32 1 + store i64 0, ptr %44, align 4 + %45 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %42, align 8 + %46 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %47 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %46, i32 0, i32 0 + store ptr @4, ptr %47, align 8 + %48 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %46, i32 0, i32 1 + store i64 5, ptr %48, align 4 + %49 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %46, align 8 + %50 = alloca %"github.com/goplus/llgo/internal/abi.Imethod", align 8 + %51 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Imethod", ptr %50, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %49, ptr %51, align 8 + %52 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Imethod", ptr %50, i32 0, i32 1 + store ptr %37, ptr %52, align 8 + %53 = load %"github.com/goplus/llgo/internal/abi.Imethod", ptr %50, align 8 + %54 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 24) + %55 = getelementptr %"github.com/goplus/llgo/internal/abi.Imethod", ptr %54, i64 0 + store %"github.com/goplus/llgo/internal/abi.Imethod" %53, ptr %55, align 8 + %56 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %57 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %56, i32 0, i32 0 + store ptr %54, ptr %57, align 8 + %58 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %56, i32 0, i32 1 + store i64 1, ptr %58, align 4 + %59 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %56, i32 0, i32 2 + store i64 1, ptr %59, align 4 + %60 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %56, 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 @5, ptr %62, align 8 + %63 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %61, i32 0, i32 1 + store i64 4, ptr %63, align 4 + %64 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %61, align 8 + %65 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %66 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %65, i32 0, i32 0 + store ptr @6, ptr %66, align 8 + %67 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %65, i32 0, i32 1 + store i64 5, ptr %67, align 4 + %68 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %65, align 8 + %69 = call ptr @"github.com/goplus/llgo/internal/runtime.Interface"(%"github.com/goplus/llgo/internal/runtime.String" %64, %"github.com/goplus/llgo/internal/runtime.String" %68, %"github.com/goplus/llgo/internal/runtime.Slice" %60) + %70 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %41, ptr %69, i64 0, %"github.com/goplus/llgo/internal/runtime.String" %45, i1 false) + %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 @5, ptr %72, align 8 + %73 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %71, i32 0, i32 1 + store i64 4, ptr %73, align 4 + %74 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %71, align 8 + %75 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 56) + %76 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %75, i64 0 + store %"github.com/goplus/llgo/internal/abi.StructField" %70, ptr %76, align 8 + %77 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %78 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %77, i32 0, i32 0 + store ptr %75, ptr %78, align 8 + %79 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %77, i32 0, i32 1 + store i64 1, ptr %79, align 4 + %80 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %77, i32 0, i32 2 + store i64 1, ptr %80, align 4 + %81 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %77, align 8 + %82 = call ptr @"github.com/goplus/llgo/internal/runtime.Struct"(%"github.com/goplus/llgo/internal/runtime.String" %74, i64 16, %"github.com/goplus/llgo/internal/runtime.Slice" %81) + store ptr %82, ptr @"main.struct$ddtj0teo4LtYcagzh1w6BsSZ7226uefXlqreeHsfVRo", align 8 + %83 = load ptr, ptr @"main.struct$ddtj0teo4LtYcagzh1w6BsSZ7226uefXlqreeHsfVRo", align 8 + br i1 %16, label %_llgo_9, label %_llgo_10 _llgo_9: ; preds = %_llgo_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 @5, ptr %77, align 8 - %78 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %76, i32 0, i32 1 - store i64 3, ptr %78, align 4 - %79 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %76, align 8 - %80 = load ptr, ptr @"_llgo_func$zNDVRsWTIpUPKouNUS805RGX--IV9qVK8B31IZbg5to", align 8 - %81 = load ptr, ptr @_llgo_error, align 8 - %82 = icmp eq ptr %81, null - br i1 %82, label %_llgo_11, label %_llgo_12 - -_llgo_10: ; preds = %_llgo_14, %_llgo_8 - %83 = load ptr, ptr @"_llgo_main.Tuple[error]", 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 @7, 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 + store i64 3, 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 ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 16) - %93 = getelementptr ptr, ptr %92, i64 0 - store ptr %5, ptr %93, align 8 - %94 = getelementptr ptr, ptr %92, i64 1 - store ptr %83, ptr %94, align 8 - %95 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %96 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %95, i32 0, i32 0 - store ptr %92, ptr %96, align 8 - %97 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %95, i32 0, i32 1 - store i64 2, ptr %97, align 4 - %98 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %95, i32 0, i32 2 - store i64 2, ptr %98, align 4 - %99 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %95, align 8 - %100 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 0) - %101 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %102 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %101, i32 0, i32 0 - store ptr %100, ptr %102, align 8 - %103 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %101, i32 0, i32 1 - store i64 0, ptr %103, align 4 - %104 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %101, i32 0, i32 2 - store i64 0, ptr %104, align 4 - %105 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %101, align 8 - %106 = call ptr @"github.com/goplus/llgo/internal/runtime.Func"(%"github.com/goplus/llgo/internal/runtime.Slice" %99, %"github.com/goplus/llgo/internal/runtime.Slice" %105, i1 false) - %107 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %87, ptr %106, i64 0, %"github.com/goplus/llgo/internal/runtime.String" %91, i1 false) - %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 @8, ptr %109, align 8 - %110 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %108, i32 0, i32 1 - store i64 4, ptr %110, align 4 - %111 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %108, align 8 - %112 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %113 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %112, i32 0, i32 0 - store ptr null, ptr %113, align 8 - %114 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %112, i32 0, i32 1 - store i64 0, ptr %114, align 4 - %115 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %112, align 8 - %116 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 58) - %117 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %111, ptr %116, i64 8, %"github.com/goplus/llgo/internal/runtime.String" %115, i1 false) - %118 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %119 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %118, i32 0, i32 0 - store ptr @3, ptr %119, align 8 - %120 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %118, i32 0, i32 1 - store i64 4, ptr %120, align 4 - %121 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %118, align 8 - %122 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 112) - %123 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %122, i64 0 - store %"github.com/goplus/llgo/internal/abi.StructField" %107, ptr %123, align 8 - %124 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %122, i64 1 - store %"github.com/goplus/llgo/internal/abi.StructField" %117, ptr %124, align 8 - %125 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %126 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %125, i32 0, i32 0 - store ptr %122, ptr %126, align 8 - %127 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %125, i32 0, i32 1 - store i64 2, ptr %127, align 4 - %128 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %125, i32 0, i32 2 - store i64 2, ptr %128, align 4 - %129 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %125, align 8 - %130 = call ptr @"github.com/goplus/llgo/internal/runtime.Struct"(%"github.com/goplus/llgo/internal/runtime.String" %121, i64 16, %"github.com/goplus/llgo/internal/runtime.Slice" %129) - store ptr %130, ptr @"main.struct$NucqrsSdwvefK8Neq8AbgvHqpAoTlQ4Z7-24dNSPHoY", align 8 - %131 = load ptr, ptr @"main.struct$NucqrsSdwvefK8Neq8AbgvHqpAoTlQ4Z7-24dNSPHoY", align 8 - %132 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %133 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %132, i32 0, i32 0 - store ptr @9, ptr %133, align 8 - %134 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %132, i32 0, i32 1 - store i64 2, ptr %134, align 4 - %135 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %132, align 8 - %136 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %137 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %136, i32 0, i32 0 - store ptr null, ptr %137, align 8 - %138 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %136, i32 0, i32 1 - store i64 0, ptr %138, align 4 - %139 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %136, align 8 + %88 = load ptr, ptr @"_llgo_func$zNDVRsWTIpUPKouNUS805RGX--IV9qVK8B31IZbg5to", align 8 + %89 = load ptr, ptr @_llgo_error, align 8 + %90 = icmp eq ptr %89, null + br i1 %90, label %_llgo_11, label %_llgo_12 + +_llgo_10: ; preds = %_llgo_14, %_llgo_8 + %91 = load ptr, ptr @"_llgo_main.Tuple[error]", align 8 + %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 @9, ptr %93, align 8 + %94 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %92, i32 0, i32 1 + store i64 1, ptr %94, align 4 + %95 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %92, align 8 + %96 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %97 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %96, i32 0, i32 0 + store ptr null, ptr %97, align 8 + %98 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %96, i32 0, i32 1 + store i64 0, ptr %98, align 4 + %99 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %96, align 8 + %100 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 16) + %101 = getelementptr ptr, ptr %100, i64 0 + store ptr %9, ptr %101, align 8 + %102 = getelementptr ptr, ptr %100, i64 1 + store ptr %91, ptr %102, align 8 + %103 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %104 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %103, i32 0, i32 0 + store ptr %100, ptr %104, align 8 + %105 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %103, i32 0, i32 1 + store i64 2, ptr %105, align 4 + %106 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %103, i32 0, i32 2 + store i64 2, ptr %106, align 4 + %107 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %103, align 8 + %108 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 0) + %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 %108, ptr %110, align 8 + %111 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %109, i32 0, i32 1 + store i64 0, ptr %111, align 4 + %112 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %109, i32 0, i32 2 + store i64 0, 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.Func"(%"github.com/goplus/llgo/internal/runtime.Slice" %107, %"github.com/goplus/llgo/internal/runtime.Slice" %113, i1 false) + %115 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %95, ptr %114, i64 0, %"github.com/goplus/llgo/internal/runtime.String" %99, i1 false) + %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 @10, ptr %117, align 8 + %118 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %116, i32 0, i32 1 + store i64 4, ptr %118, align 4 + %119 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %116, align 8 + %120 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %121 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %120, i32 0, i32 0 + store ptr null, ptr %121, align 8 + %122 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %120, i32 0, i32 1 + store i64 0, ptr %122, align 4 + %123 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %120, align 8 + %124 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 58) + %125 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %119, ptr %124, i64 8, %"github.com/goplus/llgo/internal/runtime.String" %123, i1 false) + %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 @5, ptr %127, align 8 + %128 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %126, i32 0, i32 1 + store i64 4, ptr %128, align 4 + %129 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %126, align 8 + %130 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 112) + %131 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %130, i64 0 + store %"github.com/goplus/llgo/internal/abi.StructField" %115, ptr %131, align 8 + %132 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %130, i64 1 + store %"github.com/goplus/llgo/internal/abi.StructField" %125, 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 %130, ptr %134, align 8 + %135 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %133, i32 0, i32 1 + store i64 2, ptr %135, align 4 + %136 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %133, i32 0, i32 2 + store i64 2, ptr %136, align 4 + %137 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %133, align 8 + %138 = call ptr @"github.com/goplus/llgo/internal/runtime.Struct"(%"github.com/goplus/llgo/internal/runtime.String" %129, i64 16, %"github.com/goplus/llgo/internal/runtime.Slice" %137) + store ptr %138, ptr @"main.struct$NucqrsSdwvefK8Neq8AbgvHqpAoTlQ4Z7-24dNSPHoY", align 8 + %139 = load ptr, ptr @"main.struct$NucqrsSdwvefK8Neq8AbgvHqpAoTlQ4Z7-24dNSPHoY", align 8 %140 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 %141 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %140, i32 0, i32 0 - store ptr @7, ptr %141, align 8 + store ptr @11, ptr %141, align 8 %142 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %140, i32 0, i32 1 - store i64 1, ptr %142, align 4 + store i64 2, ptr %142, align 4 %143 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %140, 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 @@ -441,342 +443,361 @@ _llgo_10: ; preds = %_llgo_14, %_llgo_8 %146 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %144, i32 0, i32 1 store i64 0, ptr %146, align 4 %147 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %144, align 8 - %148 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 16) - %149 = getelementptr ptr, ptr %148, i64 0 - store ptr %4, ptr %149, align 8 - %150 = getelementptr ptr, ptr %148, i64 1 - store ptr %131, ptr %150, align 8 - %151 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %152 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %151, i32 0, i32 0 - store ptr %148, ptr %152, align 8 - %153 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %151, i32 0, i32 1 - store i64 2, ptr %153, align 4 - %154 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %151, i32 0, i32 2 - store i64 2, ptr %154, align 4 - %155 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %151, align 8 - %156 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 0) - %157 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %158 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %157, i32 0, i32 0 - store ptr %156, ptr %158, align 8 - %159 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %157, i32 0, i32 1 - store i64 0, ptr %159, align 4 - %160 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %157, i32 0, i32 2 - store i64 0, ptr %160, align 4 - %161 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %157, align 8 - %162 = call ptr @"github.com/goplus/llgo/internal/runtime.Func"(%"github.com/goplus/llgo/internal/runtime.Slice" %155, %"github.com/goplus/llgo/internal/runtime.Slice" %161, i1 false) - %163 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %143, ptr %162, i64 0, %"github.com/goplus/llgo/internal/runtime.String" %147, 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 @8, ptr %165, align 8 - %166 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %164, i32 0, i32 1 - store i64 4, 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 ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 58) - %173 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %167, ptr %172, i64 8, %"github.com/goplus/llgo/internal/runtime.String" %171, i1 false) - %174 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %175 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %174, i32 0, i32 0 - store ptr @3, ptr %175, align 8 - %176 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %174, i32 0, i32 1 - store i64 4, ptr %176, align 4 - %177 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %174, align 8 - %178 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 112) - %179 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %178, i64 0 - store %"github.com/goplus/llgo/internal/abi.StructField" %163, ptr %179, align 8 - %180 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %178, i64 1 - store %"github.com/goplus/llgo/internal/abi.StructField" %173, 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 %178, ptr %182, align 8 - %183 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %181, i32 0, i32 1 - store i64 2, ptr %183, align 4 - %184 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %181, i32 0, i32 2 - store i64 2, ptr %184, align 4 - %185 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %181, align 8 - %186 = call ptr @"github.com/goplus/llgo/internal/runtime.Struct"(%"github.com/goplus/llgo/internal/runtime.String" %177, i64 16, %"github.com/goplus/llgo/internal/runtime.Slice" %185) - %187 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %135, ptr %186, i64 0, %"github.com/goplus/llgo/internal/runtime.String" %139, i1 false) - %188 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %189 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %188, i32 0, i32 0 - store ptr @3, ptr %189, align 8 - %190 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %188, i32 0, i32 1 - store i64 4, ptr %190, align 4 - %191 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %188, align 8 - %192 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 56) - %193 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %192, i64 0 - store %"github.com/goplus/llgo/internal/abi.StructField" %187, ptr %193, align 8 - %194 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %195 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %194, i32 0, i32 0 - store ptr %192, ptr %195, align 8 - %196 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %194, i32 0, i32 1 - store i64 1, ptr %196, align 4 - %197 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %194, i32 0, i32 2 - store i64 1, ptr %197, align 4 - %198 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %194, align 8 - %199 = call ptr @"github.com/goplus/llgo/internal/runtime.Struct"(%"github.com/goplus/llgo/internal/runtime.String" %191, i64 16, %"github.com/goplus/llgo/internal/runtime.Slice" %198) - store ptr %199, ptr @"main.struct$ovoVIslEZIUrMi_-W6orVCU5A_Y8gqTBvvvJEMlWdJY", align 8 - %200 = load ptr, ptr @"main.struct$ovoVIslEZIUrMi_-W6orVCU5A_Y8gqTBvvvJEMlWdJY", align 8 - %201 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %202 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %201, i32 0, i32 0 - store ptr @10, ptr %202, align 8 - %203 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %201, i32 0, i32 1 - store i64 4, ptr %203, align 4 - %204 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %201, align 8 - %205 = load ptr, ptr @"main.struct$NucqrsSdwvefK8Neq8AbgvHqpAoTlQ4Z7-24dNSPHoY", align 8 - %206 = load ptr, ptr @"_llgo_func$C0YAnS54eM5TTOK79-PISU_oLySCvOtTKOpIh9jI2pM", align 8 - %207 = icmp eq ptr %206, null - br i1 %207, label %_llgo_15, label %_llgo_16 + %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 @9, ptr %149, align 8 + %150 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %148, i32 0, i32 1 + store i64 1, ptr %150, align 4 + %151 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %148, 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 null, ptr %153, align 8 + %154 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %152, i32 0, i32 1 + store i64 0, ptr %154, align 4 + %155 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %152, align 8 + %156 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 16) + %157 = getelementptr ptr, ptr %156, i64 0 + store ptr %8, ptr %157, align 8 + %158 = getelementptr ptr, ptr %156, i64 1 + store ptr %139, ptr %158, align 8 + %159 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %160 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %159, i32 0, i32 0 + store ptr %156, ptr %160, align 8 + %161 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %159, i32 0, i32 1 + store i64 2, ptr %161, align 4 + %162 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %159, i32 0, i32 2 + store i64 2, ptr %162, align 4 + %163 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %159, align 8 + %164 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 0) + %165 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %166 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %165, i32 0, i32 0 + store ptr %164, ptr %166, align 8 + %167 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %165, i32 0, i32 1 + store i64 0, ptr %167, align 4 + %168 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %165, i32 0, i32 2 + store i64 0, ptr %168, align 4 + %169 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %165, align 8 + %170 = call ptr @"github.com/goplus/llgo/internal/runtime.Func"(%"github.com/goplus/llgo/internal/runtime.Slice" %163, %"github.com/goplus/llgo/internal/runtime.Slice" %169, i1 false) + %171 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %151, ptr %170, i64 0, %"github.com/goplus/llgo/internal/runtime.String" %155, i1 false) + %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 @10, ptr %173, align 8 + %174 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %172, i32 0, i32 1 + store i64 4, ptr %174, align 4 + %175 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %172, align 8 + %176 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %177 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %176, i32 0, i32 0 + store ptr null, ptr %177, align 8 + %178 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %176, i32 0, i32 1 + store i64 0, ptr %178, align 4 + %179 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %176, align 8 + %180 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 58) + %181 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %175, ptr %180, i64 8, %"github.com/goplus/llgo/internal/runtime.String" %179, 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 @5, ptr %183, align 8 + %184 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %182, i32 0, i32 1 + store i64 4, ptr %184, align 4 + %185 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %182, align 8 + %186 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 112) + %187 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %186, i64 0 + store %"github.com/goplus/llgo/internal/abi.StructField" %171, ptr %187, align 8 + %188 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %186, i64 1 + store %"github.com/goplus/llgo/internal/abi.StructField" %181, ptr %188, align 8 + %189 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %190 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %189, i32 0, i32 0 + store ptr %186, ptr %190, align 8 + %191 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %189, i32 0, i32 1 + store i64 2, ptr %191, align 4 + %192 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %189, i32 0, i32 2 + store i64 2, ptr %192, align 4 + %193 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %189, align 8 + %194 = call ptr @"github.com/goplus/llgo/internal/runtime.Struct"(%"github.com/goplus/llgo/internal/runtime.String" %185, i64 16, %"github.com/goplus/llgo/internal/runtime.Slice" %193) + %195 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %143, ptr %194, i64 0, %"github.com/goplus/llgo/internal/runtime.String" %147, i1 false) + %196 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %197 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %196, i32 0, i32 0 + store ptr @5, ptr %197, align 8 + %198 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %196, i32 0, i32 1 + store i64 4, ptr %198, align 4 + %199 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %196, align 8 + %200 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 56) + %201 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %200, i64 0 + store %"github.com/goplus/llgo/internal/abi.StructField" %195, ptr %201, align 8 + %202 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %203 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %202, i32 0, i32 0 + store ptr %200, ptr %203, align 8 + %204 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %202, i32 0, i32 1 + store i64 1, ptr %204, align 4 + %205 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %202, i32 0, i32 2 + store i64 1, ptr %205, align 4 + %206 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %202, align 8 + %207 = call ptr @"github.com/goplus/llgo/internal/runtime.Struct"(%"github.com/goplus/llgo/internal/runtime.String" %199, i64 16, %"github.com/goplus/llgo/internal/runtime.Slice" %206) + store ptr %207, ptr @"main.struct$ovoVIslEZIUrMi_-W6orVCU5A_Y8gqTBvvvJEMlWdJY", align 8 + %208 = load ptr, ptr @"main.struct$ovoVIslEZIUrMi_-W6orVCU5A_Y8gqTBvvvJEMlWdJY", align 8 + %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 4, ptr %211, align 4 + %212 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %209, align 8 + %213 = load ptr, ptr @"main.struct$NucqrsSdwvefK8Neq8AbgvHqpAoTlQ4Z7-24dNSPHoY", align 8 + %214 = load ptr, ptr @"_llgo_func$C0YAnS54eM5TTOK79-PISU_oLySCvOtTKOpIh9jI2pM", align 8 + %215 = icmp eq ptr %214, null + br i1 %215, label %_llgo_15, label %_llgo_16 _llgo_11: ; preds = %_llgo_9 - %208 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %209 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %208, i32 0, i32 0 - store ptr @2, ptr %209, align 8 - %210 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %208, i32 0, i32 1 - store i64 5, ptr %210, align 4 - %211 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %208, align 8 - %212 = alloca %"github.com/goplus/llgo/internal/abi.Imethod", align 8 - %213 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Imethod", ptr %212, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %211, ptr %213, align 8 - %214 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Imethod", ptr %212, i32 0, i32 1 - store ptr %80, ptr %214, align 8 - %215 = load %"github.com/goplus/llgo/internal/abi.Imethod", ptr %212, align 8 - %216 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 24) - %217 = getelementptr %"github.com/goplus/llgo/internal/abi.Imethod", ptr %216, i64 0 - store %"github.com/goplus/llgo/internal/abi.Imethod" %215, ptr %217, align 8 - %218 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %219 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %218, i32 0, i32 0 - store ptr %216, ptr %219, align 8 - %220 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %218, i32 0, i32 1 - store i64 1, ptr %220, align 4 - %221 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %218, i32 0, i32 2 - store i64 1, ptr %221, align 4 - %222 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %218, align 8 - %223 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %224 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %223, i32 0, i32 0 - store ptr @3, ptr %224, align 8 - %225 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %223, i32 0, i32 1 - store i64 4, ptr %225, align 4 - %226 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %223, align 8 - %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 @4, ptr %228, align 8 - %229 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %227, i32 0, i32 1 - store i64 5, ptr %229, align 4 - %230 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %227, align 8 - %231 = call ptr @"github.com/goplus/llgo/internal/runtime.Interface"(%"github.com/goplus/llgo/internal/runtime.String" %226, %"github.com/goplus/llgo/internal/runtime.String" %230, %"github.com/goplus/llgo/internal/runtime.Slice" %222) - store ptr %231, ptr @_llgo_error, align 8 + %216 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %217 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %216, i32 0, i32 0 + store ptr @4, ptr %217, align 8 + %218 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %216, i32 0, i32 1 + store i64 5, ptr %218, align 4 + %219 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %216, align 8 + %220 = alloca %"github.com/goplus/llgo/internal/abi.Imethod", align 8 + %221 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Imethod", ptr %220, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %219, ptr %221, align 8 + %222 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Imethod", ptr %220, i32 0, i32 1 + store ptr %88, ptr %222, align 8 + %223 = load %"github.com/goplus/llgo/internal/abi.Imethod", ptr %220, align 8 + %224 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 24) + %225 = getelementptr %"github.com/goplus/llgo/internal/abi.Imethod", ptr %224, i64 0 + store %"github.com/goplus/llgo/internal/abi.Imethod" %223, ptr %225, align 8 + %226 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %227 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %226, i32 0, i32 0 + store ptr %224, ptr %227, align 8 + %228 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %226, i32 0, i32 1 + store i64 1, ptr %228, align 4 + %229 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %226, i32 0, i32 2 + store i64 1, ptr %229, align 4 + %230 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %226, 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 @5, ptr %232, align 8 + %233 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %231, i32 0, i32 1 + store i64 4, ptr %233, align 4 + %234 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %231, align 8 + %235 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %236 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %235, i32 0, i32 0 + store ptr @6, ptr %236, align 8 + %237 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %235, i32 0, i32 1 + store i64 5, ptr %237, align 4 + %238 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %235, align 8 + %239 = call ptr @"github.com/goplus/llgo/internal/runtime.Interface"(%"github.com/goplus/llgo/internal/runtime.String" %234, %"github.com/goplus/llgo/internal/runtime.String" %238, %"github.com/goplus/llgo/internal/runtime.Slice" %230) + store ptr %239, ptr @_llgo_error, align 8 br label %_llgo_12 _llgo_12: ; preds = %_llgo_11, %_llgo_9 - %232 = load ptr, ptr @_llgo_error, align 8 - %233 = load ptr, ptr @"_llgo_func$8rsrSd_r3UHd_2DiYTyaOKR7BYkei4zw5ysG35KF38w", align 8 - %234 = icmp eq ptr %233, null - br i1 %234, label %_llgo_13, label %_llgo_14 + %240 = load ptr, ptr @_llgo_error, align 8 + %241 = load ptr, ptr @"_llgo_func$8rsrSd_r3UHd_2DiYTyaOKR7BYkei4zw5ysG35KF38w", align 8 + %242 = icmp eq ptr %241, null + br i1 %242, label %_llgo_13, label %_llgo_14 _llgo_13: ; preds = %_llgo_12 - %235 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 0) - %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 %235, ptr %237, align 8 - %238 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %236, i32 0, i32 1 - store i64 0, ptr %238, align 4 - %239 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %236, i32 0, i32 2 - store i64 0, ptr %239, align 4 - %240 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %236, align 8 - %241 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 8) - %242 = getelementptr ptr, ptr %241, i64 0 - store ptr %232, ptr %242, align 8 - %243 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %244 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %243, i32 0, i32 0 - store ptr %241, ptr %244, align 8 - %245 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %243, i32 0, i32 1 - store i64 1, ptr %245, align 4 - %246 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %243, i32 0, i32 2 - store i64 1, ptr %246, align 4 - %247 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %243, align 8 - %248 = call ptr @"github.com/goplus/llgo/internal/runtime.Func"(%"github.com/goplus/llgo/internal/runtime.Slice" %240, %"github.com/goplus/llgo/internal/runtime.Slice" %247, i1 false) - call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %248) - store ptr %248, ptr @"_llgo_func$8rsrSd_r3UHd_2DiYTyaOKR7BYkei4zw5ysG35KF38w", align 8 + %243 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 0) + %244 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %245 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %244, i32 0, i32 0 + store ptr %243, ptr %245, align 8 + %246 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %244, i32 0, i32 1 + store i64 0, ptr %246, align 4 + %247 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %244, i32 0, i32 2 + store i64 0, ptr %247, align 4 + %248 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %244, align 8 + %249 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 8) + %250 = getelementptr ptr, ptr %249, i64 0 + store ptr %240, ptr %250, align 8 + %251 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %252 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %251, i32 0, i32 0 + store ptr %249, ptr %252, align 8 + %253 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %251, i32 0, i32 1 + store i64 1, ptr %253, align 4 + %254 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %251, i32 0, i32 2 + store i64 1, ptr %254, align 4 + %255 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %251, align 8 + %256 = call ptr @"github.com/goplus/llgo/internal/runtime.Func"(%"github.com/goplus/llgo/internal/runtime.Slice" %248, %"github.com/goplus/llgo/internal/runtime.Slice" %255, i1 false) + call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %256) + store ptr %256, ptr @"_llgo_func$8rsrSd_r3UHd_2DiYTyaOKR7BYkei4zw5ysG35KF38w", align 8 br label %_llgo_14 _llgo_14: ; preds = %_llgo_13, %_llgo_12 - %249 = load ptr, ptr @"_llgo_func$8rsrSd_r3UHd_2DiYTyaOKR7BYkei4zw5ysG35KF38w", align 8 - %250 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 - %251 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %250, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %79, ptr %251, align 8 - %252 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %250, i32 0, i32 1 - store ptr %249, ptr %252, align 8 - %253 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %250, i32 0, i32 2 - store ptr @"main.(*Tuple[error]).Get", ptr %253, align 8 - %254 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %250, i32 0, i32 3 - store ptr @"main.(*Tuple[error]).Get", ptr %254, align 8 - %255 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %250, align 8 - %256 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 - %257 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %256, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %79, ptr %257, align 8 - %258 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %256, i32 0, i32 1 - store ptr %249, ptr %258, align 8 - %259 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %256, i32 0, i32 2 - store ptr @"main.(*Tuple[error]).Get", ptr %259, align 8 - %260 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %256, i32 0, i32 3 - store ptr @"main.Tuple[error].Get", ptr %260, align 8 - %261 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %256, align 8 - %262 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 40) - %263 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %262, i64 0 - store %"github.com/goplus/llgo/internal/abi.Method" %261, ptr %263, align 8 - %264 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %265 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %264, i32 0, i32 0 - store ptr %262, ptr %265, align 8 - %266 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %264, i32 0, i32 1 - store i64 1, ptr %266, align 4 - %267 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %264, i32 0, i32 2 - store i64 1, ptr %267, align 4 - %268 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %264, align 8 - %269 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 40) - %270 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %269, i64 0 - store %"github.com/goplus/llgo/internal/abi.Method" %255, ptr %270, align 8 - %271 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %272 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %271, i32 0, i32 0 - store ptr %269, ptr %272, align 8 - %273 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %271, i32 0, i32 1 - store i64 1, ptr %273, align 4 - %274 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %271, i32 0, i32 2 + %257 = load ptr, ptr @"_llgo_func$8rsrSd_r3UHd_2DiYTyaOKR7BYkei4zw5ysG35KF38w", align 8 + %258 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %259 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %258, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %87, ptr %259, align 8 + %260 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %258, i32 0, i32 1 + store ptr %257, ptr %260, align 8 + %261 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %258, i32 0, i32 2 + store ptr @"main.(*Tuple[error]).Get", ptr %261, align 8 + %262 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %258, i32 0, i32 3 + store ptr @"main.(*Tuple[error]).Get", ptr %262, align 8 + %263 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %258, align 8 + %264 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %265 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %264, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %87, ptr %265, align 8 + %266 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %264, i32 0, i32 1 + store ptr %257, ptr %266, align 8 + %267 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %264, i32 0, i32 2 + store ptr @"main.(*Tuple[error]).Get", ptr %267, align 8 + %268 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %264, i32 0, i32 3 + store ptr @"main.Tuple[error].Get", ptr %268, align 8 + %269 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %264, align 8 + %270 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 40) + %271 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %270, i64 0 + store %"github.com/goplus/llgo/internal/abi.Method" %269, ptr %271, align 8 + %272 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %273 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %272, i32 0, i32 0 + store ptr %270, ptr %273, align 8 + %274 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %272, i32 0, i32 1 store i64 1, ptr %274, align 4 - %275 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %271, align 8 - %276 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %277 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %276, i32 0, i32 0 - store ptr @3, ptr %277, align 8 - %278 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %276, i32 0, i32 1 - store i64 4, ptr %278, align 4 - %279 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %276, align 8 - %280 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %281 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %280, i32 0, i32 0 - store ptr @6, ptr %281, align 8 - %282 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %280, i32 0, i32 1 - store i64 12, ptr %282, align 4 - %283 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %280, align 8 - call void @"github.com/goplus/llgo/internal/runtime.InitNamed"(ptr %6, %"github.com/goplus/llgo/internal/runtime.String" %279, %"github.com/goplus/llgo/internal/runtime.String" %283, ptr %75, %"github.com/goplus/llgo/internal/runtime.Slice" %268, %"github.com/goplus/llgo/internal/runtime.Slice" %275) + %275 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %272, i32 0, i32 2 + store i64 1, ptr %275, align 4 + %276 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %272, align 8 + %277 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 40) + %278 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %277, i64 0 + store %"github.com/goplus/llgo/internal/abi.Method" %263, ptr %278, align 8 + %279 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %280 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %279, i32 0, i32 0 + store ptr %277, ptr %280, align 8 + %281 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %279, i32 0, i32 1 + store i64 1, ptr %281, align 4 + %282 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %279, i32 0, i32 2 + store i64 1, ptr %282, align 4 + %283 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %279, align 8 + %284 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %285 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %284, i32 0, i32 0 + store ptr @5, ptr %285, align 8 + %286 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %284, i32 0, i32 1 + store i64 4, ptr %286, align 4 + %287 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %284, align 8 + %288 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %289 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %288, i32 0, i32 0 + store ptr @8, ptr %289, align 8 + %290 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %288, i32 0, i32 1 + store i64 12, ptr %290, align 4 + %291 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %288, align 8 + call void @"github.com/goplus/llgo/internal/runtime.InitNamed"(ptr %14, %"github.com/goplus/llgo/internal/runtime.String" %287, %"github.com/goplus/llgo/internal/runtime.String" %291, ptr %83, %"github.com/goplus/llgo/internal/runtime.Slice" %276, %"github.com/goplus/llgo/internal/runtime.Slice" %283) br label %_llgo_10 _llgo_15: ; preds = %_llgo_10 - %284 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 8) - %285 = getelementptr ptr, ptr %284, i64 0 - store ptr %205, ptr %285, align 8 - %286 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %287 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %286, i32 0, i32 0 - store ptr %284, ptr %287, align 8 - %288 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %286, i32 0, i32 1 - store i64 1, ptr %288, align 4 - %289 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %286, i32 0, i32 2 - store i64 1, ptr %289, align 4 - %290 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %286, align 8 - %291 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 0) - %292 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %293 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %292, i32 0, i32 0 - store ptr %291, ptr %293, align 8 - %294 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %292, i32 0, i32 1 - store i64 0, ptr %294, align 4 - %295 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %292, i32 0, i32 2 - store i64 0, ptr %295, align 4 - %296 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %292, align 8 - %297 = call ptr @"github.com/goplus/llgo/internal/runtime.Func"(%"github.com/goplus/llgo/internal/runtime.Slice" %290, %"github.com/goplus/llgo/internal/runtime.Slice" %296, i1 false) - call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %297) - store ptr %297, ptr @"_llgo_func$C0YAnS54eM5TTOK79-PISU_oLySCvOtTKOpIh9jI2pM", align 8 + %292 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 8) + %293 = getelementptr ptr, ptr %292, i64 0 + store ptr %213, ptr %293, align 8 + %294 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %295 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %294, i32 0, i32 0 + store ptr %292, ptr %295, align 8 + %296 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %294, i32 0, i32 1 + store i64 1, ptr %296, align 4 + %297 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %294, i32 0, i32 2 + store i64 1, ptr %297, align 4 + %298 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %294, align 8 + %299 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 0) + %300 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %301 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %300, i32 0, i32 0 + store ptr %299, ptr %301, align 8 + %302 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %300, i32 0, i32 1 + store i64 0, ptr %302, align 4 + %303 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %300, i32 0, i32 2 + store i64 0, ptr %303, align 4 + %304 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %300, align 8 + %305 = call ptr @"github.com/goplus/llgo/internal/runtime.Func"(%"github.com/goplus/llgo/internal/runtime.Slice" %298, %"github.com/goplus/llgo/internal/runtime.Slice" %304, i1 false) + call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %305) + store ptr %305, ptr @"_llgo_func$C0YAnS54eM5TTOK79-PISU_oLySCvOtTKOpIh9jI2pM", align 8 br label %_llgo_16 _llgo_16: ; preds = %_llgo_15, %_llgo_10 - %298 = load ptr, ptr @"_llgo_func$C0YAnS54eM5TTOK79-PISU_oLySCvOtTKOpIh9jI2pM", align 8 - %299 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 - %300 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %299, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %204, ptr %300, align 8 - %301 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %299, i32 0, i32 1 - store ptr %298, ptr %301, align 8 - %302 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %299, i32 0, i32 2 - store ptr @"main.(*future[main.Tuple[error]]).Then", ptr %302, align 8 - %303 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %299, i32 0, i32 3 - store ptr @"main.(*future[main.Tuple[error]]).Then", ptr %303, align 8 - %304 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %299, align 8 - %305 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 40) - %306 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %305, i64 0 - store %"github.com/goplus/llgo/internal/abi.Method" %304, ptr %306, align 8 - %307 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %308 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %307, i32 0, i32 0 - store ptr %305, ptr %308, align 8 - %309 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %307, i32 0, i32 1 - store i64 1, ptr %309, align 4 - %310 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %307, i32 0, i32 2 - store i64 1, ptr %310, align 4 - %311 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %307, align 8 - %312 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %313 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %312, i32 0, i32 0 - store ptr @3, ptr %313, align 8 - %314 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %312, i32 0, i32 1 - store i64 4, ptr %314, align 4 - %315 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %312, align 8 - %316 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %317 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %316, i32 0, i32 0 - store ptr @11, ptr %317, align 8 - %318 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %316, i32 0, i32 1 - store i64 25, ptr %318, align 4 - %319 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %316, align 8 - call void @"github.com/goplus/llgo/internal/runtime.InitNamed"(ptr %0, %"github.com/goplus/llgo/internal/runtime.String" %315, %"github.com/goplus/llgo/internal/runtime.String" %319, ptr %200, { ptr, i64, i64 } zeroinitializer, %"github.com/goplus/llgo/internal/runtime.Slice" %311) - %320 = call ptr @"github.com/goplus/llgo/internal/runtime.PointerTo"(ptr %0) - call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %320) - store ptr %320, ptr @"*_llgo_main.future[main.Tuple[error]]", align 8 - %321 = load ptr, ptr @"_llgo_func$C0YAnS54eM5TTOK79-PISU_oLySCvOtTKOpIh9jI2pM", align 8 - %322 = load ptr, ptr @"_llgo_iface$Nwf494fPwMWb08Ae8NF-s-Tau0AFb_mdl0sjJX-pbHw", align 8 - %323 = icmp eq ptr %322, null - br i1 %323, label %_llgo_17, label %_llgo_18 - -_llgo_17: ; preds = %_llgo_16 + %306 = load ptr, ptr @"_llgo_func$C0YAnS54eM5TTOK79-PISU_oLySCvOtTKOpIh9jI2pM", align 8 + %307 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %308 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %307, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %212, ptr %308, align 8 + %309 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %307, i32 0, i32 1 + store ptr %306, ptr %309, align 8 + %310 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %307, i32 0, i32 2 + store ptr @"main.(*future[main.Tuple[error]]).Then", ptr %310, align 8 + %311 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %307, i32 0, i32 3 + store ptr @"main.(*future[main.Tuple[error]]).Then", ptr %311, align 8 + %312 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %307, align 8 + %313 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 40) + %314 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %313, i64 0 + store %"github.com/goplus/llgo/internal/abi.Method" %312, ptr %314, align 8 + %315 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %316 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %315, i32 0, i32 0 + store ptr %313, ptr %316, align 8 + %317 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %315, i32 0, i32 1 + store i64 1, ptr %317, align 4 + %318 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %315, i32 0, i32 2 + store i64 1, ptr %318, align 4 + %319 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %315, align 8 + %320 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %321 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %320, i32 0, i32 0 + store ptr @5, ptr %321, align 8 + %322 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %320, i32 0, i32 1 + store i64 4, ptr %322, align 4 + %323 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %320, align 8 %324 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 %325 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %324, i32 0, i32 0 - store ptr @10, ptr %325, align 8 + store ptr @13, ptr %325, align 8 %326 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %324, i32 0, i32 1 - store i64 4, ptr %326, align 4 + store i64 25, ptr %326, align 4 %327 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %324, align 8 - %328 = alloca %"github.com/goplus/llgo/internal/abi.Imethod", align 8 - %329 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Imethod", ptr %328, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %327, ptr %329, align 8 - %330 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Imethod", ptr %328, i32 0, i32 1 - store ptr %321, ptr %330, align 8 - %331 = load %"github.com/goplus/llgo/internal/abi.Imethod", ptr %328, align 8 - %332 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 24) - %333 = getelementptr %"github.com/goplus/llgo/internal/abi.Imethod", ptr %332, i64 0 - store %"github.com/goplus/llgo/internal/abi.Imethod" %331, ptr %333, align 8 - %334 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %335 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %334, i32 0, i32 0 - store ptr %332, ptr %335, align 8 - %336 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %334, i32 0, i32 1 - store i64 1, ptr %336, align 4 - %337 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %334, i32 0, i32 2 - store i64 1, ptr %337, align 4 - %338 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %334, align 8 - %339 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %340 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %339, i32 0, i32 0 - store ptr @3, ptr %340, align 8 - %341 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %339, i32 0, i32 1 - store i64 4, ptr %341, align 4 - %342 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %339, align 8 - %343 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %344 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %343, i32 0, i32 0 - store ptr null, ptr %344, align 8 - %345 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %343, i32 0, i32 1 - store i64 0, ptr %345, align 4 - %346 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %343, align 8 - %347 = call ptr @"github.com/goplus/llgo/internal/runtime.Interface"(%"github.com/goplus/llgo/internal/runtime.String" %342, %"github.com/goplus/llgo/internal/runtime.String" %346, %"github.com/goplus/llgo/internal/runtime.Slice" %338) - store ptr %347, ptr @"_llgo_iface$Nwf494fPwMWb08Ae8NF-s-Tau0AFb_mdl0sjJX-pbHw", align 8 + call void @"github.com/goplus/llgo/internal/runtime.InitNamed"(ptr %4, %"github.com/goplus/llgo/internal/runtime.String" %323, %"github.com/goplus/llgo/internal/runtime.String" %327, ptr %208, { ptr, i64, i64 } zeroinitializer, %"github.com/goplus/llgo/internal/runtime.Slice" %319) + %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 @1, ptr %329, align 8 + %330 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %328, i32 0, i32 1 + store i64 30, ptr %330, align 4 + %331 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %328, align 8 + %332 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(%"github.com/goplus/llgo/internal/runtime.String" %331, i64 25, i64 24, i64 0, i64 1) + %333 = call ptr @"github.com/goplus/llgo/internal/runtime.PointerTo"(ptr %332) + call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %333) + store ptr %333, ptr @"*_llgo_main.future[main.Tuple[error]]", align 8 + %334 = load ptr, ptr @"_llgo_func$C0YAnS54eM5TTOK79-PISU_oLySCvOtTKOpIh9jI2pM", align 8 + %335 = load ptr, ptr @"_llgo_iface$Nwf494fPwMWb08Ae8NF-s-Tau0AFb_mdl0sjJX-pbHw", align 8 + %336 = icmp eq ptr %335, null + br i1 %336, label %_llgo_17, label %_llgo_18 + +_llgo_17: ; preds = %_llgo_16 + %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 @12, ptr %338, align 8 + %339 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %337, i32 0, i32 1 + store i64 4, ptr %339, align 4 + %340 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %337, align 8 + %341 = alloca %"github.com/goplus/llgo/internal/abi.Imethod", align 8 + %342 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Imethod", ptr %341, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %340, ptr %342, align 8 + %343 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Imethod", ptr %341, i32 0, i32 1 + store ptr %334, ptr %343, align 8 + %344 = load %"github.com/goplus/llgo/internal/abi.Imethod", ptr %341, align 8 + %345 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 24) + %346 = getelementptr %"github.com/goplus/llgo/internal/abi.Imethod", ptr %345, i64 0 + store %"github.com/goplus/llgo/internal/abi.Imethod" %344, ptr %346, align 8 + %347 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %348 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %347, i32 0, i32 0 + store ptr %345, ptr %348, align 8 + %349 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %347, i32 0, i32 1 + store i64 1, ptr %349, align 4 + %350 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %347, i32 0, i32 2 + store i64 1, ptr %350, align 4 + %351 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %347, align 8 + %352 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %353 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %352, i32 0, i32 0 + store ptr @5, ptr %353, align 8 + %354 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %352, i32 0, i32 1 + store i64 4, ptr %354, align 4 + %355 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %352, align 8 + %356 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %357 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %356, i32 0, i32 0 + store ptr null, ptr %357, align 8 + %358 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %356, i32 0, i32 1 + store i64 0, ptr %358, align 4 + %359 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %356, align 8 + %360 = call ptr @"github.com/goplus/llgo/internal/runtime.Interface"(%"github.com/goplus/llgo/internal/runtime.String" %355, %"github.com/goplus/llgo/internal/runtime.String" %359, %"github.com/goplus/llgo/internal/runtime.Slice" %351) + store ptr %360, ptr @"_llgo_iface$Nwf494fPwMWb08Ae8NF-s-Tau0AFb_mdl0sjJX-pbHw", align 8 br label %_llgo_18 _llgo_18: ; preds = %_llgo_17, %_llgo_16 ret void } -declare ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(i64, i64, i64, i64) +declare ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(%"github.com/goplus/llgo/internal/runtime.String", i64, i64, i64, i64) declare ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64) diff --git a/cl/_testrt/typed/out.ll b/cl/_testrt/typed/out.ll index 7ddc23bdd..4610f0313 100644 --- a/cl/_testrt/typed/out.ll +++ b/cl/_testrt/typed/out.ll @@ -10,14 +10,16 @@ source_filename = "main" @__llgo_argv = global ptr null, align 8 @0 = private unnamed_addr constant [5 x i8] c"hello", align 1 @_llgo_main.T = linkonce global ptr null, align 8 +@1 = private unnamed_addr constant [6 x i8] c"main.T", align 1 @_llgo_string = linkonce global ptr null, align 8 -@1 = private unnamed_addr constant [4 x i8] c"main", align 1 -@2 = private unnamed_addr constant [1 x i8] c"T", align 1 -@3 = private unnamed_addr constant [21 x i8] c"type assertion failed", align 1 +@2 = private unnamed_addr constant [4 x i8] c"main", align 1 +@3 = private unnamed_addr constant [1 x i8] c"T", align 1 +@4 = private unnamed_addr constant [21 x i8] c"type assertion failed", align 1 @_llgo_main.A = linkonce global ptr null, align 8 +@5 = private unnamed_addr constant [6 x i8] c"main.A", align 1 @_llgo_int = linkonce global ptr null, align 8 @"[2]_llgo_int" = linkonce global ptr null, align 8 -@4 = private unnamed_addr constant [1 x i8] c"A", align 1 +@6 = private unnamed_addr constant [1 x i8] c"A", align 1 define void @main.init() { _llgo_0: @@ -72,7 +74,7 @@ _llgo_1: ; preds = %_llgo_0 _llgo_2: ; preds = %_llgo_0 %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 @3, ptr %21, align 8 + store ptr @4, ptr %21, align 8 %22 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %20, i32 0, i32 1 store i64 21, ptr %22, align 4 %23 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %20, align 8 @@ -181,102 +183,114 @@ declare void @"github.com/goplus/llgo/internal/runtime.init"() define void @"main.init$after"() { _llgo_0: - %0 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(i64 24, i64 16, i64 0, i64 0) - %1 = load ptr, ptr @_llgo_main.T, align 8 - %2 = icmp eq ptr %1, null - br i1 %2, label %_llgo_1, label %_llgo_2 + %0 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %1 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %0, i32 0, i32 0 + store ptr @1, ptr %1, align 8 + %2 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %0, i32 0, i32 1 + store i64 6, ptr %2, align 4 + %3 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %0, align 8 + %4 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(%"github.com/goplus/llgo/internal/runtime.String" %3, i64 24, i64 16, i64 0, i64 0) + %5 = load ptr, ptr @_llgo_main.T, align 8 + %6 = icmp eq ptr %5, null + br i1 %6, label %_llgo_1, label %_llgo_2 _llgo_1: ; preds = %_llgo_0 - store ptr %0, ptr @_llgo_main.T, align 8 + store ptr %4, ptr @_llgo_main.T, align 8 br label %_llgo_2 _llgo_2: ; preds = %_llgo_1, %_llgo_0 - %3 = load ptr, ptr @_llgo_string, align 8 - %4 = icmp eq ptr %3, null - br i1 %4, label %_llgo_3, label %_llgo_4 + %7 = load ptr, ptr @_llgo_string, align 8 + %8 = icmp eq ptr %7, null + br i1 %8, label %_llgo_3, label %_llgo_4 _llgo_3: ; preds = %_llgo_2 - %5 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 24) - store ptr %5, ptr @_llgo_string, align 8 + %9 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 24) + store ptr %9, ptr @_llgo_string, align 8 br label %_llgo_4 _llgo_4: ; preds = %_llgo_3, %_llgo_2 - %6 = load ptr, ptr @_llgo_string, align 8 - br i1 %2, label %_llgo_5, label %_llgo_6 + %10 = load ptr, ptr @_llgo_string, align 8 + br i1 %6, label %_llgo_5, label %_llgo_6 _llgo_5: ; preds = %_llgo_4 - %7 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %8 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %7, i32 0, i32 0 - store ptr @1, ptr %8, align 8 - %9 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %7, i32 0, i32 1 - store i64 4, ptr %9, align 4 - %10 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %7, align 8 %11 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 %12 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %11, i32 0, i32 0 store ptr @2, ptr %12, align 8 %13 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %11, i32 0, i32 1 - store i64 1, ptr %13, align 4 + store i64 4, ptr %13, align 4 %14 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %11, align 8 - call void @"github.com/goplus/llgo/internal/runtime.InitNamed"(ptr %0, %"github.com/goplus/llgo/internal/runtime.String" %10, %"github.com/goplus/llgo/internal/runtime.String" %14, ptr %6, { ptr, i64, i64 } zeroinitializer, { ptr, i64, i64 } zeroinitializer) + %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 @3, ptr %16, align 8 + %17 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %15, i32 0, i32 1 + store i64 1, ptr %17, align 4 + %18 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %15, align 8 + call void @"github.com/goplus/llgo/internal/runtime.InitNamed"(ptr %4, %"github.com/goplus/llgo/internal/runtime.String" %14, %"github.com/goplus/llgo/internal/runtime.String" %18, ptr %10, { ptr, i64, i64 } zeroinitializer, { ptr, i64, i64 } zeroinitializer) br label %_llgo_6 _llgo_6: ; preds = %_llgo_5, %_llgo_4 - %15 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(i64 17, i64 16, i64 0, i64 0) - %16 = load ptr, ptr @_llgo_main.A, align 8 - %17 = icmp eq ptr %16, null - br i1 %17, label %_llgo_7, label %_llgo_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 @5, ptr %20, align 8 + %21 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %19, i32 0, i32 1 + store i64 6, ptr %21, align 4 + %22 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %19, align 8 + %23 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(%"github.com/goplus/llgo/internal/runtime.String" %22, i64 17, i64 16, i64 0, i64 0) + %24 = load ptr, ptr @_llgo_main.A, align 8 + %25 = icmp eq ptr %24, null + br i1 %25, label %_llgo_7, label %_llgo_8 _llgo_7: ; preds = %_llgo_6 - store ptr %15, ptr @_llgo_main.A, align 8 + store ptr %23, ptr @_llgo_main.A, align 8 br label %_llgo_8 _llgo_8: ; preds = %_llgo_7, %_llgo_6 - %18 = load ptr, ptr @_llgo_int, align 8 - %19 = icmp eq ptr %18, null - br i1 %19, label %_llgo_9, label %_llgo_10 + %26 = load ptr, ptr @_llgo_int, align 8 + %27 = icmp eq ptr %26, null + br i1 %27, label %_llgo_9, label %_llgo_10 _llgo_9: ; preds = %_llgo_8 - %20 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 34) - store ptr %20, ptr @_llgo_int, align 8 + %28 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 34) + store ptr %28, ptr @_llgo_int, align 8 br label %_llgo_10 _llgo_10: ; preds = %_llgo_9, %_llgo_8 - %21 = load ptr, ptr @_llgo_int, align 8 - %22 = load ptr, ptr @"[2]_llgo_int", align 8 - %23 = icmp eq ptr %22, null - br i1 %23, label %_llgo_11, label %_llgo_12 + %29 = load ptr, ptr @_llgo_int, align 8 + %30 = load ptr, ptr @"[2]_llgo_int", align 8 + %31 = icmp eq ptr %30, null + br i1 %31, label %_llgo_11, label %_llgo_12 _llgo_11: ; preds = %_llgo_10 - %24 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 34) - %25 = call ptr @"github.com/goplus/llgo/internal/runtime.ArrayOf"(i64 2, ptr %24) - store ptr %25, ptr @"[2]_llgo_int", align 8 + %32 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 34) + %33 = call ptr @"github.com/goplus/llgo/internal/runtime.ArrayOf"(i64 2, ptr %32) + store ptr %33, ptr @"[2]_llgo_int", align 8 br label %_llgo_12 _llgo_12: ; preds = %_llgo_11, %_llgo_10 - %26 = load ptr, ptr @"[2]_llgo_int", align 8 - br i1 %17, label %_llgo_13, label %_llgo_14 + %34 = load ptr, ptr @"[2]_llgo_int", align 8 + br i1 %25, label %_llgo_13, label %_llgo_14 _llgo_13: ; preds = %_llgo_12 - %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 @1, 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/runtime.String", align 8 - %32 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %31, i32 0, i32 0 - store ptr @4, ptr %32, align 8 - %33 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %31, i32 0, i32 1 - store i64 1, ptr %33, align 4 - %34 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %31, align 8 - call void @"github.com/goplus/llgo/internal/runtime.InitNamed"(ptr %15, %"github.com/goplus/llgo/internal/runtime.String" %30, %"github.com/goplus/llgo/internal/runtime.String" %34, ptr %26, { ptr, i64, i64 } zeroinitializer, { ptr, i64, i64 } zeroinitializer) + %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 @2, ptr %36, align 8 + %37 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %35, i32 0, i32 1 + store i64 4, ptr %37, align 4 + %38 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %35, align 8 + %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 @6, ptr %40, align 8 + %41 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %39, i32 0, i32 1 + store i64 1, ptr %41, align 4 + %42 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %39, align 8 + call void @"github.com/goplus/llgo/internal/runtime.InitNamed"(ptr %23, %"github.com/goplus/llgo/internal/runtime.String" %38, %"github.com/goplus/llgo/internal/runtime.String" %42, ptr %34, { ptr, i64, i64 } zeroinitializer, { ptr, i64, i64 } zeroinitializer) br label %_llgo_14 _llgo_14: ; preds = %_llgo_13, %_llgo_12 ret void } -declare ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(i64, i64, i64, i64) +declare ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(%"github.com/goplus/llgo/internal/runtime.String", i64, i64, i64, i64) declare ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64) diff --git a/internal/abi/type.go b/internal/abi/type.go index 5561432f7..90db96f20 100644 --- a/internal/abi/type.go +++ b/internal/abi/type.go @@ -226,6 +226,13 @@ func (mt *MapType) HashMightPanic() bool { // true if hash function might panic return mt.Flags&16 != 0 } +func (t *Type) Key() *Type { + if t.Kind() == Map { + return (*MapType)(unsafe.Pointer(t)).Key + } + return nil +} + type PtrType struct { Type Elem *Type // pointer element (pointed at) type @@ -408,6 +415,15 @@ type structTypeUncommon struct { u UncommonType } +// ChanDir returns the direction of t if t is a channel type, otherwise InvalidDir (0). +func (t *Type) ChanDir() ChanDir { + if t.Kind() == Chan { + ch := (*ChanType)(unsafe.Pointer(t)) + return ch.Dir + } + return InvalidDir +} + // Uncommon returns a pointer to T's "uncommon" data if there is any, otherwise nil func (t *Type) Uncommon() *UncommonType { if t.TFlag&TFlagUncommon == 0 { diff --git a/internal/lib/reflect/type.go b/internal/lib/reflect/type.go index 68b3c93bb..fbc89ecc1 100644 --- a/internal/lib/reflect/type.go +++ b/internal/lib/reflect/type.go @@ -25,6 +25,7 @@ import ( "unsafe" "github.com/goplus/llgo/internal/abi" + "github.com/goplus/llgo/internal/lib/sync" "github.com/goplus/llgo/internal/runtime" ) @@ -454,86 +455,72 @@ func (t *rtype) exportedMethods() []abi.Method { } func (t *rtype) NumMethod() int { - /* - if t.Kind() == Interface { - tt := (*interfaceType)(unsafe.Pointer(t)) - return tt.NumMethod() - } - return len(t.exportedMethods()) - */ - panic("todo: reflect.rtype.NumMethod") + if t.Kind() == Interface { + tt := (*interfaceType)(unsafe.Pointer(t)) + return tt.NumMethod() + } + return len(t.exportedMethods()) } func (t *rtype) Method(i int) (m Method) { - /* - if t.Kind() == Interface { - tt := (*interfaceType)(unsafe.Pointer(t)) - return tt.Method(i) - } - methods := t.exportedMethods() - if i < 0 || i >= len(methods) { - panic("reflect: Method index out of range") - } - p := methods[i] - pname := t.nameOff(p.Name) - m.Name = pname.Name() - fl := flag(Func) - mtyp := t.typeOff(p.Mtyp) - ft := (*funcType)(unsafe.Pointer(mtyp)) - in := make([]Type, 0, 1+ft.NumIn()) - in = append(in, t) - for _, arg := range ft.InSlice() { - in = append(in, toRType(arg)) - } - out := make([]Type, 0, ft.NumOut()) - for _, ret := range ft.OutSlice() { - out = append(out, toRType(ret)) - } - mt := FuncOf(in, out, ft.IsVariadic()) - m.Type = mt - tfn := t.textOff(p.Tfn) - fn := unsafe.Pointer(&tfn) - m.Func = Value{&mt.(*rtype).t, fn, fl} - - m.Index = i - return m - */ - panic("todo: reflect.rtype.Method") + if t.Kind() == Interface { + tt := (*interfaceType)(unsafe.Pointer(t)) + return tt.Method(i) + } + methods := t.exportedMethods() + if i < 0 || i >= len(methods) { + panic("reflect: Method index out of range") + } + p := methods[i] + m.Name = p.Name() + fl := flag(Func) + ft := p.Mtyp_ + in := make([]Type, 0, 1+len(ft.In)) + in = append(in, t) + for _, arg := range ft.In { + in = append(in, toRType(arg)) + } + out := make([]Type, 0, len(ft.Out)) + for _, ret := range ft.Out { + out = append(out, toRType(ret)) + } + mt := FuncOf(in, out, ft.Variadic()) + m.Type = mt + m.Func = Value{&mt.(*rtype).t, p.Tfn_, fl} + m.Index = i + return m } func (t *rtype) MethodByName(name string) (m Method, ok bool) { - /* - if t.Kind() == Interface { - tt := (*interfaceType)(unsafe.Pointer(t)) - return tt.MethodByName(name) - } - ut := t.uncommon() - if ut == nil { - return Method{}, false - } + if t.Kind() == Interface { + tt := (*interfaceType)(unsafe.Pointer(t)) + return tt.MethodByName(name) + } + ut := t.uncommon() + if ut == nil { + return Method{}, false + } - methods := ut.ExportedMethods() - - // We are looking for the first index i where the string becomes >= s. - // This is a copy of sort.Search, with f(h) replaced by (t.nameOff(methods[h].name).name() >= name). - i, j := 0, len(methods) - for i < j { - h := int(uint(i+j) >> 1) // avoid overflow when computing h - // i ≤ h < j - if !(t.nameOff(methods[h].Name).Name() >= name) { - i = h + 1 // preserves f(i-1) == false - } else { - j = h // preserves f(j) == true - } - } - // i == j, f(i-1) == false, and f(j) (= f(i)) == true => answer is i. - if i < len(methods) && name == t.nameOff(methods[i].Name).Name() { - return t.Method(i), true + methods := ut.ExportedMethods() + + // We are looking for the first index i where the string becomes >= s. + // This is a copy of sort.Search, with f(h) replaced by (t.nameOff(methods[h].name).name() >= name). + i, j := 0, len(methods) + for i < j { + h := int(uint(i+j) >> 1) // avoid overflow when computing h + // i ≤ h < j + if !(methods[h].Name() >= name) { + i = h + 1 // preserves f(i-1) == false + } else { + j = h // preserves f(j) == true } + } + // i == j, f(i-1) == false, and f(j) (= f(i)) == true => answer is i. + if i < len(methods) && name == methods[i].Name() { + return t.Method(i), true + } - return Method{}, false - */ - panic("todo: reflect.rtype.MethodByName") + return Method{}, false } func (t *rtype) PkgPath() string { @@ -552,25 +539,22 @@ func pkgPathFor(t *abi.Type) string { } func (t *rtype) Name() string { - /* - if !t.t.HasName() { - return "" - } - s := t.String() - i := len(s) - 1 - sqBrackets := 0 - for i >= 0 && (s[i] != '.' || sqBrackets != 0) { - switch s[i] { - case ']': - sqBrackets++ - case '[': - sqBrackets-- - } - i-- + if !t.t.HasName() { + return "" + } + s := t.String() + i := len(s) - 1 + sqBrackets := 0 + for i >= 0 && (s[i] != '.' || sqBrackets != 0) { + switch s[i] { + case ']': + sqBrackets++ + case '[': + sqBrackets-- } - return s[i+1:] - */ - panic("todo: reflect.rtype.Name") + i-- + } + return s[i+1:] } func nameFor(t *abi.Type) string { @@ -594,9 +578,7 @@ func elem(t *abi.Type) *abi.Type { if et != nil { return et } - // TODO(xsw): - // panic("reflect: Elem of invalid type " + stringFor(t)) - panic("todo: reflect.elem") + panic("reflect: Elem of invalid type " + stringFor(t)) } func (t *rtype) Elem() Type { @@ -604,47 +586,35 @@ func (t *rtype) Elem() Type { } func (t *rtype) Field(i int) StructField { - /* - if t.Kind() != Struct { - panic("reflect: Field of non-struct type " + t.String()) - } - tt := (*structType)(unsafe.Pointer(t)) - return tt.Field(i) - */ - panic("todo: reflect.rtype.Field") + if t.Kind() != Struct { + panic("reflect: Field of non-struct type " + t.String()) + } + tt := (*structType)(unsafe.Pointer(t)) + return tt.Field(i) } func (t *rtype) FieldByIndex(index []int) StructField { - /* - if t.Kind() != Struct { - panic("reflect: FieldByIndex of non-struct type " + t.String()) - } - tt := (*structType)(unsafe.Pointer(t)) - return tt.FieldByIndex(index) - */ - panic("todo: reflect.rtype.FieldByIndex") + if t.Kind() != Struct { + panic("reflect: FieldByIndex of non-struct type " + t.String()) + } + tt := (*structType)(unsafe.Pointer(t)) + return tt.FieldByIndex(index) } func (t *rtype) FieldByName(name string) (StructField, bool) { - /* - if t.Kind() != Struct { - panic("reflect: FieldByName of non-struct type " + t.String()) - } - tt := (*structType)(unsafe.Pointer(t)) - return tt.FieldByName(name) - */ - panic("todo: reflect.rtype.FieldByName") + if t.Kind() != Struct { + panic("reflect: FieldByName of non-struct type " + t.String()) + } + tt := (*structType)(unsafe.Pointer(t)) + return tt.FieldByName(name) } func (t *rtype) FieldByNameFunc(match func(string) bool) (StructField, bool) { - /* - if t.Kind() != Struct { - panic("reflect: FieldByNameFunc of non-struct type " + t.String()) - } - tt := (*structType)(unsafe.Pointer(t)) - return tt.FieldByNameFunc(match) - */ - panic("todo: reflect.rtype.FieldByNameFunc") + if t.Kind() != Struct { + panic("reflect: FieldByNameFunc of non-struct type " + t.String()) + } + tt := (*structType)(unsafe.Pointer(t)) + return tt.FieldByNameFunc(match) } func (t *rtype) Key() Type { @@ -737,6 +707,37 @@ func add(p unsafe.Pointer, x uintptr, whySafe string) unsafe.Pointer { return unsafe.Pointer(uintptr(p) + x) } +// Method returns the i'th method in the type's method set. +func (t *interfaceType) Method(i int) (m Method) { + if i < 0 || i >= len(t.Methods) { + return + } + p := &t.Methods[i] + m.Name = p.Name() + m.PkgPath = p.PkgPath() + m.Type = toType(&p.Typ_.Type) + m.Index = i + return +} + +// NumMethod returns the number of interface methods in the type's method set. +func (t *interfaceType) NumMethod() int { return len(t.Methods) } + +// MethodByName method with the given name in the type's method set. +func (t *interfaceType) MethodByName(name string) (m Method, ok bool) { + if t == nil { + return + } + var p *abi.Imethod + for i := range t.Methods { + p = &t.Methods[i] + if p.Name() == name { + return t.Method(i), true + } + } + return +} + // A StructField describes a single field in a struct. type StructField struct { // Name is the field name. @@ -839,6 +840,184 @@ func (tag StructTag) Lookup(key string) (value string, ok bool) { return "", false } +// Field returns the i'th struct field. +func (t *structType) Field(i int) (f StructField) { + if i < 0 || i >= len(t.Fields) { + panic("reflect: Field index out of bounds") + } + p := &t.Fields[i] + f.Type = toType(p.Typ) + f.Name = p.Name_ + f.Anonymous = p.Embedded() + if !abi.IsExported(p.Name_) { + f.PkgPath = t.PkgPath_ + } + if tag := p.Tag_; tag != "" { + f.Tag = StructTag(tag) + } + f.Offset = p.Offset + + // NOTE(rsc): This is the only allocation in the interface + // presented by a reflect.Type. It would be nice to avoid, + // at least in the common cases, but we need to make sure + // that misbehaving clients of reflect cannot affect other + // uses of reflect. One possibility is CL 5371098, but we + // postponed that ugliness until there is a demonstrated + // need for the performance. This is issue 2320. + f.Index = []int{i} + return +} + +// FieldByIndex returns the nested field corresponding to index. +func (t *structType) FieldByIndex(index []int) (f StructField) { + f.Type = toType(&t.Type) + for i, x := range index { + if i > 0 { + ft := f.Type + if ft.Kind() == Pointer && ft.Elem().Kind() == Struct { + ft = ft.Elem() + } + f.Type = ft + } + f = f.Type.Field(x) + } + return +} + +// A fieldScan represents an item on the fieldByNameFunc scan work list. +type fieldScan struct { + typ *structType + index []int +} + +// FieldByNameFunc returns the struct field with a name that satisfies the +// match function and a boolean to indicate if the field was found. +func (t *structType) FieldByNameFunc(match func(string) bool) (result StructField, ok bool) { + // This uses the same condition that the Go language does: there must be a unique instance + // of the match at a given depth level. If there are multiple instances of a match at the + // same depth, they annihilate each other and inhibit any possible match at a lower level. + // The algorithm is breadth first search, one depth level at a time. + + // The current and next slices are work queues: + // current lists the fields to visit on this depth level, + // and next lists the fields on the next lower level. + current := []fieldScan{} + next := []fieldScan{{typ: t}} + + // nextCount records the number of times an embedded type has been + // encountered and considered for queueing in the 'next' slice. + // We only queue the first one, but we increment the count on each. + // If a struct type T can be reached more than once at a given depth level, + // then it annihilates itself and need not be considered at all when we + // process that next depth level. + var nextCount map[*structType]int + + // visited records the structs that have been considered already. + // Embedded pointer fields can create cycles in the graph of + // reachable embedded types; visited avoids following those cycles. + // It also avoids duplicated effort: if we didn't find the field in an + // embedded type T at level 2, we won't find it in one at level 4 either. + visited := map[*structType]bool{} + + for len(next) > 0 { + current, next = next, current[:0] + count := nextCount + nextCount = nil + + // Process all the fields at this depth, now listed in 'current'. + // The loop queues embedded fields found in 'next', for processing during the next + // iteration. The multiplicity of the 'current' field counts is recorded + // in 'count'; the multiplicity of the 'next' field counts is recorded in 'nextCount'. + for _, scan := range current { + t := scan.typ + if visited[t] { + // We've looked through this type before, at a higher level. + // That higher level would shadow the lower level we're now at, + // so this one can't be useful to us. Ignore it. + continue + } + visited[t] = true + for i := range t.Fields { + f := &t.Fields[i] + // Find name and (for embedded field) type for field f. + fname := f.Name_ + var ntyp *abi.Type + if f.Embedded() { + // Embedded field of type T or *T. + ntyp = f.Typ + if ntyp.Kind() == abi.Pointer { + ntyp = ntyp.Elem() + } + } + + // Does it match? + if match(fname) { + // Potential match + if count[t] > 1 || ok { + // Name appeared multiple times at this level: annihilate. + return StructField{}, false + } + result = t.Field(i) + result.Index = nil + result.Index = append(result.Index, scan.index...) + result.Index = append(result.Index, i) + ok = true + continue + } + + // Queue embedded struct fields for processing with next level, + // but only if we haven't seen a match yet at this level and only + // if the embedded types haven't already been queued. + if ok || ntyp == nil || ntyp.Kind() != abi.Struct { + continue + } + styp := (*structType)(unsafe.Pointer(ntyp)) + if nextCount[styp] > 0 { + nextCount[styp] = 2 // exact multiple doesn't matter + continue + } + if nextCount == nil { + nextCount = map[*structType]int{} + } + nextCount[styp] = 1 + if count[t] > 1 { + nextCount[styp] = 2 // exact multiple doesn't matter + } + var index []int + index = append(index, scan.index...) + index = append(index, i) + next = append(next, fieldScan{styp, index}) + } + } + if ok { + break + } + } + return +} + +// FieldByName returns the struct field with the given name +// and a boolean to indicate if the field was found. +func (t *structType) FieldByName(name string) (f StructField, present bool) { + // Quick check for top-level name, or struct without embedded fields. + hasEmbeds := false + if name != "" { + for i := range t.Fields { + tf := &t.Fields[i] + if tf.Name_ == name { + return t.Field(i), true + } + if tf.Embedded() { + hasEmbeds = true + } + } + } + if !hasEmbeds { + return + } + return t.FieldByNameFunc(func(s string) bool { return s == name }) +} + // TypeOf returns the reflection Type that represents the dynamic type of i. // If i is a nil interface value, TypeOf returns nil. func TypeOf(i any) Type { @@ -859,6 +1038,15 @@ func rtypeOf(i any) *abi.Type { var ptrMap sync.Map // map[*rtype]*ptrType */ +var ptrMap struct { + sync.Mutex + m map[*rtype]*ptrType +} + +func init() { + ptrMap.m = make(map[*rtype]*ptrType) +} + // PtrTo returns the pointer type with element t. // For example, if t represents type Foo, PtrTo(t) represents *Foo. // @@ -873,50 +1061,51 @@ func PointerTo(t Type) Type { } func (t *rtype) ptrTo() *abi.Type { - /* - at := &t.t - if at.PtrToThis != 0 { - return t.typeOff(at.PtrToThis) - } - - // Check the cache. - if pi, ok := ptrMap.Load(t); ok { - return &pi.(*ptrType).Type - } - - // Look in known types. - s := "*" + t.String() - for _, tt := range typesByString(s) { - p := (*ptrType)(unsafe.Pointer(tt)) - if p.Elem != &t.t { - continue - } - pi, _ := ptrMap.LoadOrStore(t, p) - return &pi.(*ptrType).Type - } - - // Create a new ptrType starting with the description - // of an *unsafe.Pointer. - var iptr any = (*unsafe.Pointer)(nil) - prototype := *(**ptrType)(unsafe.Pointer(&iptr)) - pp := *prototype - - pp.Str = resolveReflectName(newName(s, "", false, false)) - pp.PtrToThis = 0 - - // For the type structures linked into the binary, the - // compiler provides a good hash of the string. - // Create a good hash for the new string by using - // the FNV-1 hash's mixing function to combine the - // old hash and the new "*". - pp.Hash = fnv1(t.t.Hash, '*') - - pp.Elem = at + at := &t.t + if at.PtrToThis_ != nil { + return at.PtrToThis_ + } + // Check the cache. + if pi, ok := ptrMap.m[t]; ok { + return &pi.Type + } - pi, _ := ptrMap.LoadOrStore(t, &pp) - return &pi.(*ptrType).Type - */ - panic("todo: reflect.rtype.ptrTo") + // Look in known types. + s := "*" + t.String() + // // TODO typesByString + // /* + // for _, tt := range typesByString(s) { + // p := (*ptrType)(unsafe.Pointer(tt)) + // if p.Elem != &t.t { + // continue + // } + // pi, _ := ptrMap.LoadOrStore(t, p) + // return &pi.(*ptrType).Type + // } + // */ + + // Create a new ptrType starting with the description + // of an *unsafe.Pointer. + var iptr any = (*unsafe.Pointer)(nil) + prototype := *(**ptrType)(unsafe.Pointer(&iptr)) + pp := *prototype + + pp.Str_ = s //resolveReflectName(newName(s, "", false, false)) + pp.PtrToThis_ = nil + + // For the type structures linked into the binary, the + // compiler provides a good hash of the string. + // Create a good hash for the new string by using + // the FNV-1 hash's mixing function to combine the + // old hash and the new "*". + pp.Hash = fnv1(t.t.Hash, '*') + + pp.Elem = at + + ptrMap.m[t] = &pp + return &pp.Type + //pi, _ := ptrMap.LoadOrStore(t, &pp) + //return &pi.(*ptrType).Type } func ptrTo(t *abi.Type) *abi.Type { @@ -1102,7 +1291,6 @@ func haveIdenticalType(T, V *abi.Type, cmpTags bool) bool { if cmpTags { return T == V } - if nameFor(T) != nameFor(V) || T.Kind() != V.Kind() || pkgPathFor(T) != pkgPathFor(V) { return false } @@ -1126,83 +1314,80 @@ func haveIdenticalUnderlyingType(T, V *abi.Type, cmpTags bool) bool { return true } - /* - // Composite types. - switch kind { - case Array: - return T.Len() == V.Len() && haveIdenticalType(T.Elem(), V.Elem(), cmpTags) - - case Chan: - return V.ChanDir() == T.ChanDir() && haveIdenticalType(T.Elem(), V.Elem(), cmpTags) - - case Func: - t := (*funcType)(unsafe.Pointer(T)) - v := (*funcType)(unsafe.Pointer(V)) - if t.OutCount != v.OutCount || t.InCount != v.InCount { + // Composite types. + switch kind { + case Array: + return T.Len() == V.Len() && haveIdenticalType(T.Elem(), V.Elem(), cmpTags) + + case Chan: + return V.ChanDir() == T.ChanDir() && haveIdenticalType(T.Elem(), V.Elem(), cmpTags) + + case Func: + t := (*funcType)(unsafe.Pointer(T)) + v := (*funcType)(unsafe.Pointer(V)) + if len(t.Out) != len(v.Out) || len(t.In) != len(v.In) { + return false + } + for i := 0; i < len(t.In); i++ { + if !haveIdenticalType(t.In[i], v.In[i], cmpTags) { return false } - for i := 0; i < t.NumIn(); i++ { - if !haveIdenticalType(t.In(i), v.In(i), cmpTags) { - return false - } - } - for i := 0; i < t.NumOut(); i++ { - if !haveIdenticalType(t.Out(i), v.Out(i), cmpTags) { - return false - } + } + for i := 0; i < len(t.Out); i++ { + if !haveIdenticalType(t.Out[i], v.Out[i], cmpTags) { + return false } - return true + } + return true - case Interface: - t := (*interfaceType)(unsafe.Pointer(T)) - v := (*interfaceType)(unsafe.Pointer(V)) - if len(t.Methods) == 0 && len(v.Methods) == 0 { - return true - } - // Might have the same methods but still - // need a run time conversion. - return false + case Interface: + t := (*interfaceType)(unsafe.Pointer(T)) + v := (*interfaceType)(unsafe.Pointer(V)) + if len(t.Methods) == 0 && len(v.Methods) == 0 { + return true + } + // Might have the same methods but still + // need a run time conversion. + return false - case Map: - return haveIdenticalType(T.Key(), V.Key(), cmpTags) && haveIdenticalType(T.Elem(), V.Elem(), cmpTags) + case Map: + return haveIdenticalType(T.Key(), V.Key(), cmpTags) && haveIdenticalType(T.Elem(), V.Elem(), cmpTags) - case Pointer, Slice: - return haveIdenticalType(T.Elem(), V.Elem(), cmpTags) + case Pointer, Slice: + return haveIdenticalType(T.Elem(), V.Elem(), cmpTags) - case Struct: - t := (*structType)(unsafe.Pointer(T)) - v := (*structType)(unsafe.Pointer(V)) - if len(t.Fields) != len(v.Fields) { + case Struct: + t := (*structType)(unsafe.Pointer(T)) + v := (*structType)(unsafe.Pointer(V)) + if len(t.Fields) != len(v.Fields) { + return false + } + if t.PkgPath_ != v.PkgPath_ { + return false + } + for i := range t.Fields { + tf := &t.Fields[i] + vf := &v.Fields[i] + if tf.Name_ != vf.Name_ { return false } - if t.PkgPath.Name() != v.PkgPath.Name() { + if !haveIdenticalType(tf.Typ, vf.Typ, cmpTags) { return false } - for i := range t.Fields { - tf := &t.Fields[i] - vf := &v.Fields[i] - if tf.Name.Name() != vf.Name.Name() { - return false - } - if !haveIdenticalType(tf.Typ, vf.Typ, cmpTags) { - return false - } - if cmpTags && tf.Name.Tag() != vf.Name.Tag() { - return false - } - if tf.Offset != vf.Offset { - return false - } - if tf.Embedded() != vf.Embedded() { - return false - } + if cmpTags && tf.Tag_ != vf.Tag_ { + return false + } + if tf.Offset != vf.Offset { + return false + } + if tf.Embedded() != vf.Embedded() { + return false } - return true } + return true + } - return false - */ - panic("todo: reflect.haveIdenticalUnderlyingType") + return false } // SliceOf returns the slice type with element type t. @@ -1248,3 +1433,132 @@ func toType(t *abi.Type) Type { } return toRType(t) } + +// The funcLookupCache caches FuncOf lookups. +// FuncOf does not share the common lookupCache since cacheKey is not +// sufficient to represent functions unambiguously. +var funcLookupCache struct { + sync.Mutex // Guards stores (but not loads) on m. + + // m is a map[uint32][]*rtype keyed by the hash calculated in FuncOf. + // Elements of m are append-only and thus safe for concurrent reading. + m map[uint32][]*abi.Type +} + +func init() { + funcLookupCache.m = make(map[uint32][]*abi.Type) +} + +// FuncOf returns the function type with the given argument and result types. +// For example if k represents int and e represents string, +// FuncOf([]Type{k}, []Type{e}, false) represents func(int) string. +// +// The variadic argument controls whether the function is variadic. FuncOf +// panics if the in[len(in)-1] does not represent a slice and variadic is +// true. +func FuncOf(in, out []Type, variadic bool) Type { + if variadic && (len(in) == 0 || in[len(in)-1].Kind() != Slice) { + panic("reflect.FuncOf: last arg of variadic func must be slice") + } + + // Make a func type. + var ifunc any = (func())(nil) + prototype := *(**funcType)(unsafe.Pointer(&ifunc)) + ft := &funcType{} + *ft = *prototype + ft.In = make([]*abi.Type, len(in)) + ft.Out = make([]*abi.Type, len(out)) + + // Build a hash and minimally populate ft. + var hash uint32 + for i, in := range in { + t := in.(*rtype) + ft.In[i] = &t.t + hash = fnv1(hash, byte(t.t.Hash>>24), byte(t.t.Hash>>16), byte(t.t.Hash>>8), byte(t.t.Hash)) + } + if variadic { + hash = fnv1(hash, 'v') + } + hash = fnv1(hash, '.') + for i, out := range out { + t := out.(*rtype) + ft.Out[i] = &t.t + hash = fnv1(hash, byte(t.t.Hash>>24), byte(t.t.Hash>>16), byte(t.t.Hash>>8), byte(t.t.Hash)) + } + + ft.TFlag = 0 + ft.Hash = hash + ft.Kind_ = uint8(abi.Func) + if variadic { + ft.TFlag |= abi.TFlagVariadic + } + + funcLookupCache.Lock() + defer funcLookupCache.Unlock() + + // Look in cache. + if ts, ok := funcLookupCache.m[hash]; ok { + for _, t := range ts { + if haveIdenticalUnderlyingType(&ft.Type, t, true) { + return toRType(t) + } + } + } + + addToCache := func(tt *abi.Type) Type { + rts := funcLookupCache.m[hash] + funcLookupCache.m[hash] = append(rts, tt) + return toType(tt) + } + str := funcStr(ft) + + //TODO typesByString + // for _, tt := range typesByString(str) { + // if haveIdenticalUnderlyingType(&ft.Type, tt, true) { + // return addToCache(tt) + // } + // } + + // Populate the remaining fields of ft and store in cache. + ft.Str_ = str + ft.PtrToThis_ = nil + return addToCache(&ft.Type) +} + +func stringFor(t *abi.Type) string { + return toRType(t).String() +} + +// funcStr builds a string representation of a funcType. +func funcStr(ft *funcType) string { + repr := make([]byte, 0, 64) + repr = append(repr, "func("...) + for i, t := range ft.In { + if i > 0 { + repr = append(repr, ", "...) + } + if ft.Variadic() && i == len(ft.In)-1 { + repr = append(repr, "..."...) + repr = append(repr, stringFor((*sliceType)(unsafe.Pointer(t)).Elem)...) + } else { + repr = append(repr, stringFor(t)...) + } + } + repr = append(repr, ')') + out := ft.Out + if len(out) == 1 { + repr = append(repr, ' ') + } else if len(out) > 1 { + repr = append(repr, " ("...) + } + for i, t := range out { + if i > 0 { + repr = append(repr, ", "...) + } + repr = append(repr, stringFor(t)...) + } + if len(out) > 1 { + repr = append(repr, ')') + } + return string(repr) +} diff --git a/internal/lib/reflect/value.go b/internal/lib/reflect/value.go index f2d8756f1..09ec02a89 100644 --- a/internal/lib/reflect/value.go +++ b/internal/lib/reflect/value.go @@ -26,6 +26,7 @@ import ( "github.com/goplus/llgo/internal/abi" "github.com/goplus/llgo/internal/runtime" + "github.com/goplus/llgo/internal/runtime/goarch" ) // Value is the reflection interface to a Go value. @@ -119,16 +120,13 @@ func (v Value) typ() *abi.Type { // v.Kind() must be Pointer, Map, Chan, Func, or UnsafePointer // if v.Kind() == Pointer, the base type must not be not-in-heap. func (v Value) pointer() unsafe.Pointer { - /* - if v.typ().Size() != goarch.PtrSize || !v.typ().Pointers() { - panic("can't call pointer on a non-pointer Value") - } - if v.flag&flagIndir != 0 { - return *(*unsafe.Pointer)(v.ptr) - } - return v.ptr - */ - panic("todo: reflect.Value.pointer") + if v.typ().Size() != goarch.PtrSize || !v.typ().Pointers() { + panic("can't call pointer on a non-pointer Value") + } + if v.flag&flagIndir != 0 { + return *(*unsafe.Pointer)(v.ptr) + } + return v.ptr } // packEface converts v to the empty interface. @@ -1015,7 +1013,6 @@ func (v Value) lenNonSlice() int { // // It's preferred to use uintptr(Value.UnsafePointer()) to get the equivalent result. func (v Value) Pointer() uintptr { - /* TODO(xsw): // The compiler loses track as it converts to uintptr. Force escape. escapes(v.ptr) @@ -1026,9 +1023,9 @@ func (v Value) Pointer() uintptr { val := *(*uintptr)(v.ptr) // Since it is a not-in-heap pointer, all pointers to the heap are // forbidden! See comment in Value.Elem and issue #48399. - if !verifyNotInHeapPtr(val) { - panic("reflect: reflect.Value.Pointer on an invalid notinheap pointer") - } + // if !verifyNotInHeapPtr(val) { + // panic("reflect: reflect.Value.Pointer on an invalid notinheap pointer") + // } return val } fallthrough @@ -1042,7 +1039,7 @@ func (v Value) Pointer() uintptr { // created via reflect have the same underlying code pointer, // so their Pointers are equal. The function used here must // match the one used in makeMethodValue. - return methodValueCallCodePtr() + // return methodValueCallCodePtr() } p := v.pointer() // Non-nil func value points at data block. @@ -1053,11 +1050,9 @@ func (v Value) Pointer() uintptr { return uintptr(p) case Slice: - return uintptr((*unsafeheader.Slice)(v.ptr).Data) + return uintptr((*unsafeheaderSlice)(v.ptr).Data) } panic(&ValueError{"reflect.Value.Pointer", v.kind()}) - */ - panic("todo: reflect.Value.Pointer") } // Recv receives and returns a value from the channel v. @@ -1930,3 +1925,33 @@ func verifyNotInHeapPtr(p uintptr) bool //go:linkname growslice github.com/goplus/llgo/internal/runtime.GrowSlice func growslice(src unsafeheaderSlice, num, etSize int) unsafeheaderSlice + +// Dummy annotation marking that the value x escapes, +// for use in cases where the reflect code is so clever that +// the compiler cannot follow. +func escapes(x any) { + if dummy.b { + dummy.x = x + } +} + +var dummy struct { + b bool + x any +} + +// Dummy annotation marking that the content of value x +// escapes (i.e. modeling roughly heap=*x), +// for use in cases where the reflect code is so clever that +// the compiler cannot follow. +func contentEscapes(x unsafe.Pointer) { + if dummy.b { + escapes(*(*any)(x)) // the dereference may not always be safe, but never executed + } +} + +//go:nosplit +func noescape(p unsafe.Pointer) unsafe.Pointer { + x := uintptr(p) + return unsafe.Pointer(x ^ 0) +} diff --git a/internal/runtime/z_face.go b/internal/runtime/z_face.go index afa08762e..723599b36 100644 --- a/internal/runtime/z_face.go +++ b/internal/runtime/z_face.go @@ -106,10 +106,23 @@ func hdrSizeOf(kind abi.Kind) uintptr { } } +type rtype struct { + *abi.Type + named string +} + +var rtypeList []*rtype + // NewNamed returns an uninitialized named type. -func NewNamed(kind abi.Kind, size uintptr, methods, ptrMethods int) *Type { +func NewNamed(name string, kind abi.Kind, size uintptr, methods, ptrMethods int) *Type { + for _, typ := range rtypeList { + if typ.named == name { + return typ.Type + } + } ret := newUninitedNamed(kind, size, methods) ret.PtrToThis_ = newUninitedNamed(abi.Pointer, pointerSize, ptrMethods) + rtypeList = append(rtypeList, &rtype{Type: ret, named: name}) return ret } @@ -128,6 +141,10 @@ func pkgName(path string) string { // InitNamed initializes an uninitialized named type. func InitNamed(ret *Type, pkgPath, name string, underlying *Type, methods, ptrMethods []Method) { + // skip initialized + if ret.TFlag != abi.TFlagUninited { + return + } ptr := ret.PtrToThis_ if pkgPath != "" { name = pkgName(pkgPath) + "." + name diff --git a/ssa/abi/abi.go b/ssa/abi/abi.go index e5317ff4e..4c35c7545 100644 --- a/ssa/abi/abi.go +++ b/ssa/abi/abi.go @@ -321,8 +321,11 @@ func (b *Builder) structHash(t *types.Struct) (ret []byte, private bool) { if f.Embedded() { name = "-" } - ft, _ := b.TypeName(f.Type()) + ft, pub := b.TypeName(f.Type()) fmt.Fprintln(h, name, ft) + if !pub { + private = true + } } ret = h.Sum(b.buf[:0]) return diff --git a/ssa/abitype.go b/ssa/abitype.go index 3c566dbdf..94a05f2a5 100644 --- a/ssa/abitype.go +++ b/ssa/abitype.go @@ -204,17 +204,13 @@ func (b Builder) abiNamedOf(t *types.Named) func() Expr { } 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)) size := b.sizeof(tunder) numMethods, numPtrMethods := b.abiMethods(t) newNamed := pkg.rtFunc("NewNamed") - expr := b.Call(newNamed, b.Prog.Val(kind), b.Prog.IntVal(uint64(size), b.Prog.Uintptr()), b.Prog.Val(numMethods), b.Prog.Val(numPtrMethods)) - b.Pkg.named[t] = expr + expr := b.Call(newNamed, b.Str(t.String()), b.Prog.Val(kind), b.Prog.IntVal(uint64(size), b.Prog.Uintptr()), b.Prog.Val(numMethods), b.Prog.Val(numPtrMethods)) return expr } diff --git a/ssa/package.go b/ssa/package.go index dd0f3032a..80eeefdf1 100644 --- a/ssa/package.go +++ b/ssa/package.go @@ -346,14 +346,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) glbDbgVars := make(map[Expr]bool) 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, named: named, Prog: p, + pyobjs: pyobjs, pymods: pymods, strs: strs, Prog: p, di: nil, cu: nil, glbDbgVars: glbDbgVars, } ret.abi.Init(pkgPath) @@ -603,7 +602,6 @@ type aPackage struct { pyobjs map[string]PyObjRef pymods map[string]Global strs map[string]llvm.Value - named map[types.Type]Expr afterb unsafe.Pointer patch func(types.Type) types.Type fnlink func(string) string