diff --git a/cl/_testdata/print/out.ll b/cl/_testdata/print/out.ll index 237596986..ff4232d64 100644 --- a/cl/_testdata/print/out.ll +++ b/cl/_testdata/print/out.ll @@ -6,7 +6,6 @@ source_filename = "main" %main.stringStruct = type { ptr, i64 } %main.slice = type { ptr, i64, i64 } %"github.com/goplus/llgo/internal/runtime.eface" = type { ptr, ptr } -%"github.com/goplus/llgo/internal/abi.Type" = type { i64, i64, i32, i8, i8, i8, i8, { ptr, ptr }, ptr, %"github.com/goplus/llgo/internal/runtime.String", ptr } @"main.init$guard" = global i1 false, align 1 @main.minhexdigits = global i64 0, align 8 @@ -1590,224 +1589,168 @@ _llgo_0: br i1 %1, label %_llgo_1, label %_llgo_2 _llgo_1: ; preds = %_llgo_0 - %2 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 13) - %3 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Type", ptr %2, i32 0, i32 6 - %4 = load i8, ptr %3, align 1 - %5 = or i8 %4, 32 - store i8 %5, ptr %3, align 1 + %2 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 45) store ptr %2, ptr @_llgo_float32, align 8 br label %_llgo_2 _llgo_2: ; preds = %_llgo_1, %_llgo_0 - %6 = load ptr, ptr @_llgo_float64, align 8 - %7 = icmp eq ptr %6, null - br i1 %7, label %_llgo_3, label %_llgo_4 + %3 = load ptr, ptr @_llgo_float64, align 8 + %4 = icmp eq ptr %3, null + br i1 %4, label %_llgo_3, label %_llgo_4 _llgo_3: ; preds = %_llgo_2 - %8 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 14) - %9 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Type", ptr %8, i32 0, i32 6 - %10 = load i8, ptr %9, align 1 - %11 = or i8 %10, 32 - store i8 %11, ptr %9, align 1 - store ptr %8, ptr @_llgo_float64, align 8 + %5 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 46) + store ptr %5, ptr @_llgo_float64, align 8 br label %_llgo_4 _llgo_4: ; preds = %_llgo_3, %_llgo_2 - %12 = load ptr, ptr @_llgo_string, align 8 - %13 = icmp eq ptr %12, null - br i1 %13, label %_llgo_5, label %_llgo_6 + %6 = load ptr, ptr @_llgo_string, align 8 + %7 = icmp eq ptr %6, null + br i1 %7, label %_llgo_5, label %_llgo_6 _llgo_5: ; preds = %_llgo_4 - %14 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 24) - store ptr %14, ptr @_llgo_string, align 8 + %8 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 24) + store ptr %8, ptr @_llgo_string, align 8 br label %_llgo_6 _llgo_6: ; preds = %_llgo_5, %_llgo_4 - %15 = load ptr, ptr @_llgo_bool, align 8 - %16 = icmp eq ptr %15, null - br i1 %16, label %_llgo_7, label %_llgo_8 + %9 = load ptr, ptr @_llgo_bool, align 8 + %10 = icmp eq ptr %9, null + br i1 %10, label %_llgo_7, label %_llgo_8 _llgo_7: ; preds = %_llgo_6 - %17 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 1) - %18 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Type", ptr %17, i32 0, i32 6 - %19 = load i8, ptr %18, align 1 - %20 = or i8 %19, 32 - store i8 %20, ptr %18, align 1 - store ptr %17, ptr @_llgo_bool, align 8 + %11 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 33) + store ptr %11, ptr @_llgo_bool, align 8 br label %_llgo_8 _llgo_8: ; preds = %_llgo_7, %_llgo_6 - %21 = load ptr, ptr @_llgo_int32, align 8 - %22 = icmp eq ptr %21, null - br i1 %22, label %_llgo_9, label %_llgo_10 + %12 = load ptr, ptr @_llgo_int32, align 8 + %13 = icmp eq ptr %12, null + br i1 %13, label %_llgo_9, label %_llgo_10 _llgo_9: ; preds = %_llgo_8 - %23 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 5) - %24 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Type", ptr %23, i32 0, i32 6 - %25 = load i8, ptr %24, align 1 - %26 = or i8 %25, 32 - store i8 %26, ptr %24, align 1 - store ptr %23, ptr @_llgo_int32, align 8 + %14 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 37) + store ptr %14, ptr @_llgo_int32, align 8 br label %_llgo_10 _llgo_10: ; preds = %_llgo_9, %_llgo_8 - %27 = load ptr, ptr @_llgo_int8, align 8 - %28 = icmp eq ptr %27, null - br i1 %28, label %_llgo_11, label %_llgo_12 + %15 = load ptr, ptr @_llgo_int8, align 8 + %16 = icmp eq ptr %15, null + br i1 %16, label %_llgo_11, label %_llgo_12 _llgo_11: ; preds = %_llgo_10 - %29 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 3) - %30 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Type", ptr %29, i32 0, i32 6 - %31 = load i8, ptr %30, align 1 - %32 = or i8 %31, 32 - store i8 %32, ptr %30, align 1 - store ptr %29, ptr @_llgo_int8, align 8 + %17 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 35) + store ptr %17, ptr @_llgo_int8, align 8 br label %_llgo_12 _llgo_12: ; preds = %_llgo_11, %_llgo_10 - %33 = load ptr, ptr @_llgo_int16, align 8 - %34 = icmp eq ptr %33, null - br i1 %34, label %_llgo_13, label %_llgo_14 + %18 = load ptr, ptr @_llgo_int16, align 8 + %19 = icmp eq ptr %18, null + br i1 %19, label %_llgo_13, label %_llgo_14 _llgo_13: ; preds = %_llgo_12 - %35 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 4) - %36 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Type", ptr %35, i32 0, i32 6 - %37 = load i8, ptr %36, align 1 - %38 = or i8 %37, 32 - store i8 %38, ptr %36, align 1 - store ptr %35, ptr @_llgo_int16, align 8 + %20 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 36) + store ptr %20, ptr @_llgo_int16, align 8 br label %_llgo_14 _llgo_14: ; preds = %_llgo_13, %_llgo_12 - %39 = load ptr, ptr @_llgo_int64, align 8 - %40 = icmp eq ptr %39, null - br i1 %40, label %_llgo_15, label %_llgo_16 + %21 = load ptr, ptr @_llgo_int64, align 8 + %22 = icmp eq ptr %21, null + br i1 %22, label %_llgo_15, label %_llgo_16 _llgo_15: ; preds = %_llgo_14 - %41 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 6) - %42 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Type", ptr %41, i32 0, i32 6 - %43 = load i8, ptr %42, align 1 - %44 = or i8 %43, 32 - store i8 %44, ptr %42, align 1 - store ptr %41, ptr @_llgo_int64, align 8 + %23 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 38) + store ptr %23, ptr @_llgo_int64, align 8 br label %_llgo_16 _llgo_16: ; preds = %_llgo_15, %_llgo_14 - %45 = load ptr, ptr @_llgo_int, align 8 - %46 = icmp eq ptr %45, null - br i1 %46, label %_llgo_17, label %_llgo_18 + %24 = load ptr, ptr @_llgo_int, align 8 + %25 = icmp eq ptr %24, null + br i1 %25, label %_llgo_17, label %_llgo_18 _llgo_17: ; preds = %_llgo_16 - %47 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 2) - %48 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Type", ptr %47, i32 0, i32 6 - %49 = load i8, ptr %48, align 1 - %50 = or i8 %49, 32 - store i8 %50, ptr %48, align 1 - store ptr %47, ptr @_llgo_int, align 8 + %26 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 34) + store ptr %26, ptr @_llgo_int, align 8 br label %_llgo_18 _llgo_18: ; preds = %_llgo_17, %_llgo_16 - %51 = load ptr, ptr @_llgo_uint8, align 8 - %52 = icmp eq ptr %51, null - br i1 %52, label %_llgo_19, label %_llgo_20 + %27 = load ptr, ptr @_llgo_uint8, align 8 + %28 = icmp eq ptr %27, null + br i1 %28, label %_llgo_19, label %_llgo_20 _llgo_19: ; preds = %_llgo_18 - %53 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 8) - %54 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Type", ptr %53, i32 0, i32 6 - %55 = load i8, ptr %54, align 1 - %56 = or i8 %55, 32 - store i8 %56, ptr %54, align 1 - store ptr %53, ptr @_llgo_uint8, align 8 + %29 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 40) + store ptr %29, ptr @_llgo_uint8, align 8 br label %_llgo_20 _llgo_20: ; preds = %_llgo_19, %_llgo_18 - %57 = load ptr, ptr @_llgo_uint16, align 8 - %58 = icmp eq ptr %57, null - br i1 %58, label %_llgo_21, label %_llgo_22 + %30 = load ptr, ptr @_llgo_uint16, align 8 + %31 = icmp eq ptr %30, null + br i1 %31, label %_llgo_21, label %_llgo_22 _llgo_21: ; preds = %_llgo_20 - %59 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 9) - %60 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Type", ptr %59, i32 0, i32 6 - %61 = load i8, ptr %60, align 1 - %62 = or i8 %61, 32 - store i8 %62, ptr %60, align 1 - store ptr %59, ptr @_llgo_uint16, align 8 + %32 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 41) + store ptr %32, ptr @_llgo_uint16, align 8 br label %_llgo_22 _llgo_22: ; preds = %_llgo_21, %_llgo_20 - %63 = load ptr, ptr @_llgo_uint32, align 8 - %64 = icmp eq ptr %63, null - br i1 %64, label %_llgo_23, label %_llgo_24 + %33 = load ptr, ptr @_llgo_uint32, align 8 + %34 = icmp eq ptr %33, null + br i1 %34, label %_llgo_23, label %_llgo_24 _llgo_23: ; preds = %_llgo_22 - %65 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 10) - %66 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Type", ptr %65, i32 0, i32 6 - %67 = load i8, ptr %66, align 1 - %68 = or i8 %67, 32 - store i8 %68, ptr %66, align 1 - store ptr %65, ptr @_llgo_uint32, align 8 + %35 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 42) + store ptr %35, ptr @_llgo_uint32, align 8 br label %_llgo_24 _llgo_24: ; preds = %_llgo_23, %_llgo_22 - %69 = load ptr, ptr @_llgo_uint64, align 8 - %70 = icmp eq ptr %69, null - br i1 %70, label %_llgo_25, label %_llgo_26 + %36 = load ptr, ptr @_llgo_uint64, align 8 + %37 = icmp eq ptr %36, null + br i1 %37, label %_llgo_25, label %_llgo_26 _llgo_25: ; preds = %_llgo_24 - %71 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 11) - %72 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Type", ptr %71, i32 0, i32 6 - %73 = load i8, ptr %72, align 1 - %74 = or i8 %73, 32 - store i8 %74, ptr %72, align 1 - store ptr %71, ptr @_llgo_uint64, align 8 + %38 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 43) + store ptr %38, ptr @_llgo_uint64, align 8 br label %_llgo_26 _llgo_26: ; preds = %_llgo_25, %_llgo_24 - %75 = load ptr, ptr @_llgo_uintptr, align 8 - %76 = icmp eq ptr %75, null - br i1 %76, label %_llgo_27, label %_llgo_28 + %39 = load ptr, ptr @_llgo_uintptr, align 8 + %40 = icmp eq ptr %39, null + br i1 %40, label %_llgo_27, label %_llgo_28 _llgo_27: ; preds = %_llgo_26 - %77 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 12) - %78 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Type", ptr %77, i32 0, i32 6 - %79 = load i8, ptr %78, align 1 - %80 = or i8 %79, 32 - store i8 %80, ptr %78, align 1 - store ptr %77, ptr @_llgo_uintptr, align 8 + %41 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 44) + store ptr %41, ptr @_llgo_uintptr, align 8 br label %_llgo_28 _llgo_28: ; preds = %_llgo_27, %_llgo_26 - %81 = load ptr, ptr @_llgo_complex128, align 8 - %82 = icmp eq ptr %81, null - br i1 %82, label %_llgo_29, label %_llgo_30 + %42 = load ptr, ptr @_llgo_complex128, align 8 + %43 = icmp eq ptr %42, null + br i1 %43, label %_llgo_29, label %_llgo_30 _llgo_29: ; preds = %_llgo_28 - %83 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 16) - store ptr %83, ptr @_llgo_complex128, align 8 + %44 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 16) + store ptr %44, ptr @_llgo_complex128, align 8 br label %_llgo_30 _llgo_30: ; preds = %_llgo_29, %_llgo_28 - %84 = load ptr, ptr @_llgo_uint, align 8 - %85 = icmp eq ptr %84, null - br i1 %85, label %_llgo_31, label %_llgo_32 + %45 = load ptr, ptr @_llgo_uint, align 8 + %46 = icmp eq ptr %45, null + br i1 %46, label %_llgo_31, label %_llgo_32 _llgo_31: ; preds = %_llgo_30 - %86 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 7) - %87 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Type", ptr %86, i32 0, i32 6 - %88 = load i8, ptr %87, align 1 - %89 = or i8 %88, 32 - store i8 %89, ptr %87, align 1 - store ptr %86, ptr @_llgo_uint, align 8 + %47 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 39) + store ptr %47, ptr @_llgo_uint, align 8 br label %_llgo_32 _llgo_32: ; preds = %_llgo_31, %_llgo_30 - %90 = load ptr, ptr @_llgo_complex64, align 8 - %91 = icmp eq ptr %90, null - br i1 %91, label %_llgo_33, label %_llgo_34 + %48 = load ptr, ptr @_llgo_complex64, align 8 + %49 = icmp eq ptr %48, null + br i1 %49, label %_llgo_33, label %_llgo_34 _llgo_33: ; preds = %_llgo_32 - %92 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 15) - store ptr %92, ptr @_llgo_complex64, align 8 + %50 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 15) + store ptr %50, ptr @_llgo_complex64, align 8 br label %_llgo_34 _llgo_34: ; preds = %_llgo_33, %_llgo_32 diff --git a/cl/_testdata/vargs/out.ll b/cl/_testdata/vargs/out.ll index f5cfbdfac..82fdde18b 100644 --- a/cl/_testdata/vargs/out.ll +++ b/cl/_testdata/vargs/out.ll @@ -4,7 +4,6 @@ source_filename = "main" %"github.com/goplus/llgo/internal/runtime.eface" = type { ptr, ptr } %"github.com/goplus/llgo/internal/runtime.Slice" = type { ptr, i64, i64 } %"github.com/goplus/llgo/internal/runtime.String" = type { ptr, i64 } -%"github.com/goplus/llgo/internal/abi.Type" = type { i64, i64, i32, i8, i8, i8, i8, { ptr, ptr }, ptr, %"github.com/goplus/llgo/internal/runtime.String", ptr } @"main.init$guard" = global i1 false, align 1 @__llgo_argc = global i32 0, align 4 @@ -139,22 +138,18 @@ _llgo_0: br i1 %1, label %_llgo_1, label %_llgo_2 _llgo_1: ; preds = %_llgo_0 - %2 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 2) - %3 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Type", ptr %2, i32 0, i32 6 - %4 = load i8, ptr %3, align 1 - %5 = or i8 %4, 32 - store i8 %5, ptr %3, align 1 + %2 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 34) store ptr %2, ptr @_llgo_int, align 8 br label %_llgo_2 _llgo_2: ; preds = %_llgo_1, %_llgo_0 - %6 = load ptr, ptr @_llgo_string, align 8 - %7 = icmp eq ptr %6, null - br i1 %7, label %_llgo_3, label %_llgo_4 + %3 = load ptr, ptr @_llgo_string, align 8 + %4 = icmp eq ptr %3, null + br i1 %4, label %_llgo_3, label %_llgo_4 _llgo_3: ; preds = %_llgo_2 - %8 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 24) - store ptr %8, ptr @_llgo_string, align 8 + %5 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 24) + store ptr %5, ptr @_llgo_string, align 8 br label %_llgo_4 _llgo_4: ; preds = %_llgo_3, %_llgo_2 diff --git a/cl/_testgo/equal/out.ll b/cl/_testgo/equal/out.ll index cfcfd36c9..f0314fac1 100644 --- a/cl/_testgo/equal/out.ll +++ b/cl/_testgo/equal/out.ll @@ -6,7 +6,6 @@ source_filename = "main" %main.T = type { i64, i64, %"github.com/goplus/llgo/internal/runtime.String", %"github.com/goplus/llgo/internal/runtime.eface" } %"github.com/goplus/llgo/internal/runtime.Slice" = type { ptr, i64, i64 } %main.N = type {} -%"github.com/goplus/llgo/internal/abi.Type" = type { i64, i64, i32, i8, i8, i8, i8, { ptr, ptr }, ptr, %"github.com/goplus/llgo/internal/runtime.String", ptr } %"github.com/goplus/llgo/internal/abi.StructField" = type { %"github.com/goplus/llgo/internal/runtime.String", ptr, i64, %"github.com/goplus/llgo/internal/runtime.String", i1 } @"main.init$guard" = global i1 false, align 1 @@ -546,207 +545,203 @@ _llgo_2: ; preds = %_llgo_1, %_llgo_0 br i1 %4, label %_llgo_3, label %_llgo_4 _llgo_3: ; preds = %_llgo_2 - %5 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 2) - %6 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Type", ptr %5, i32 0, i32 6 - %7 = load i8, ptr %6, align 1 - %8 = or i8 %7, 32 - store i8 %8, ptr %6, align 1 + %5 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 34) store ptr %5, ptr @_llgo_int, align 8 br label %_llgo_4 _llgo_4: ; preds = %_llgo_3, %_llgo_2 - %9 = load ptr, ptr @"_llgo_struct$n1H8J_3prDN3firMwPxBLVTkE5hJ9Di-AqNvaC9jczw", align 8 - %10 = icmp eq ptr %9, null - br i1 %10, label %_llgo_5, label %_llgo_6 + %6 = load ptr, ptr @"_llgo_struct$n1H8J_3prDN3firMwPxBLVTkE5hJ9Di-AqNvaC9jczw", align 8 + %7 = icmp eq ptr %6, null + br i1 %7, label %_llgo_5, label %_llgo_6 _llgo_5: ; preds = %_llgo_4 - %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 @3, 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 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.Struct"(%"github.com/goplus/llgo/internal/runtime.String" %14, i64 0, %"github.com/goplus/llgo/internal/runtime.Slice" %20) - store ptr %21, ptr @"_llgo_struct$n1H8J_3prDN3firMwPxBLVTkE5hJ9Di-AqNvaC9jczw", 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 @3, ptr %9, align 8 + %10 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %8, i32 0, i32 1 + store i64 4, ptr %10, align 4 + %11 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %8, align 8 + %12 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 0) + %13 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %14 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %13, i32 0, i32 0 + store ptr %12, ptr %14, align 8 + %15 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %13, i32 0, i32 1 + store i64 0, ptr %15, align 4 + %16 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %13, i32 0, i32 2 + store i64 0, ptr %16, align 4 + %17 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %13, align 8 + %18 = call ptr @"github.com/goplus/llgo/internal/runtime.Struct"(%"github.com/goplus/llgo/internal/runtime.String" %11, i64 0, %"github.com/goplus/llgo/internal/runtime.Slice" %17) + store ptr %18, ptr @"_llgo_struct$n1H8J_3prDN3firMwPxBLVTkE5hJ9Di-AqNvaC9jczw", align 8 br label %_llgo_6 _llgo_6: ; preds = %_llgo_5, %_llgo_4 - %22 = load ptr, ptr @_llgo_main.T, align 8 - %23 = icmp eq ptr %22, null - br i1 %23, label %_llgo_7, label %_llgo_8 + %19 = load ptr, ptr @_llgo_main.T, align 8 + %20 = icmp eq ptr %19, null + br i1 %20, label %_llgo_7, label %_llgo_8 _llgo_7: ; preds = %_llgo_6 - %24 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(i64 25, i64 0, i64 0) - store ptr %24, ptr @_llgo_main.T, align 8 + %21 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(i64 25, i64 0, i64 0) + store ptr %21, ptr @_llgo_main.T, align 8 br label %_llgo_8 _llgo_8: ; preds = %_llgo_7, %_llgo_6 - %25 = load ptr, ptr @"_llgo_struct$5D_KhR3tDEp-wpx9caTiVZca43wS-XW6slE9Bsr8rsk", align 8 - %26 = icmp eq ptr %25, null - br i1 %26, label %_llgo_9, label %_llgo_10 + %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 _llgo_9: ; preds = %_llgo_8 - %27 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %28 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %27, i32 0, i32 0 - store ptr @4, ptr %28, align 8 - %29 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %27, i32 0, i32 1 - store i64 1, 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 null, ptr %32, align 8 - %33 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %31, i32 0, i32 1 - store i64 0, ptr %33, align 4 - %34 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %31, align 8 - %35 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 2) - %36 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %30, ptr %35, i64 0, %"github.com/goplus/llgo/internal/runtime.String" %34, i1 false) - %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 @5, ptr %38, align 8 - %39 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %37, i32 0, i32 1 - store i64 1, ptr %39, align 4 - %40 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %37, align 8 - %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 null, ptr %42, align 8 - %43 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %41, i32 0, i32 1 - store i64 0, ptr %43, align 4 - %44 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %41, align 8 - %45 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 2) - %46 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %40, ptr %45, i64 8, %"github.com/goplus/llgo/internal/runtime.String" %44, i1 false) - %47 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %48 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %47, i32 0, i32 0 - store ptr @6, ptr %48, align 8 - %49 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %47, i32 0, i32 1 - store i64 1, ptr %49, align 4 - %50 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %47, align 8 - %51 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %52 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %51, i32 0, i32 0 - store ptr null, ptr %52, align 8 - %53 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %51, i32 0, i32 1 - store i64 0, ptr %53, align 4 - %54 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %51, align 8 - %55 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 24) - %56 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %50, ptr %55, i64 16, %"github.com/goplus/llgo/internal/runtime.String" %54, i1 false) - %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 @7, ptr %58, align 8 - %59 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %57, i32 0, i32 1 - store i64 1, ptr %59, align 4 - %60 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %57, align 8 - %61 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %62 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %61, i32 0, i32 0 - store ptr null, ptr %62, align 8 - %63 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %61, i32 0, i32 1 - store i64 0, ptr %63, align 4 - %64 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %61, align 8 - %65 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 0) - %66 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %67 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %66, i32 0, i32 0 - store ptr %65, ptr %67, align 8 - %68 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %66, i32 0, i32 1 - store i64 0, ptr %68, align 4 - %69 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %66, i32 0, i32 2 - store i64 0, ptr %69, align 4 - %70 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %66, align 8 - %71 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %72 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %71, i32 0, i32 0 - store ptr @3, 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 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %76 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %75, i32 0, i32 0 - store ptr null, ptr %76, align 8 - %77 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %75, i32 0, i32 1 - store i64 0, ptr %77, align 4 - %78 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %75, align 8 - %79 = call ptr @"github.com/goplus/llgo/internal/runtime.Interface"(%"github.com/goplus/llgo/internal/runtime.String" %74, %"github.com/goplus/llgo/internal/runtime.String" %78, %"github.com/goplus/llgo/internal/runtime.Slice" %70) - %80 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %60, ptr %79, i64 32, %"github.com/goplus/llgo/internal/runtime.String" %64, i1 false) - %81 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %82 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %81, i32 0, i32 0 - store ptr @3, ptr %82, align 8 - %83 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %81, i32 0, i32 1 - store i64 4, ptr %83, align 4 - %84 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %81, align 8 - %85 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 224) - %86 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %85, i64 0 - store %"github.com/goplus/llgo/internal/abi.StructField" %36, ptr %86, align 8 - %87 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %85, i64 1 - store %"github.com/goplus/llgo/internal/abi.StructField" %46, ptr %87, align 8 - %88 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %85, i64 2 - store %"github.com/goplus/llgo/internal/abi.StructField" %56, ptr %88, align 8 - %89 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %85, i64 3 - store %"github.com/goplus/llgo/internal/abi.StructField" %80, ptr %89, align 8 - %90 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %91 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %90, i32 0, i32 0 - store ptr %85, ptr %91, align 8 - %92 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %90, i32 0, i32 1 - store i64 4, ptr %92, align 4 - %93 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %90, i32 0, i32 2 - store i64 4, ptr %93, align 4 - %94 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %90, align 8 - %95 = call ptr @"github.com/goplus/llgo/internal/runtime.Struct"(%"github.com/goplus/llgo/internal/runtime.String" %84, i64 48, %"github.com/goplus/llgo/internal/runtime.Slice" %94) - store ptr %95, ptr @"_llgo_struct$5D_KhR3tDEp-wpx9caTiVZca43wS-XW6slE9Bsr8rsk", 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 @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 + %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 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 + %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.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 + %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 + %50 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %48, i32 0, i32 1 + store i64 0, 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 + %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 + %60 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %58, i32 0, i32 1 + store i64 0, 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 + %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 + %74 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %72, i32 0, i32 1 + store i64 0, 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 br label %_llgo_10 _llgo_10: ; preds = %_llgo_9, %_llgo_8 - %96 = load ptr, ptr @"_llgo_struct$5D_KhR3tDEp-wpx9caTiVZca43wS-XW6slE9Bsr8rsk", align 8 - br i1 %23, label %_llgo_11, label %_llgo_12 + %93 = load ptr, ptr @"_llgo_struct$5D_KhR3tDEp-wpx9caTiVZca43wS-XW6slE9Bsr8rsk", align 8 + br i1 %20, label %_llgo_11, label %_llgo_12 _llgo_11: ; preds = %_llgo_10 - %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 - %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 @8, ptr %102, align 8 - %103 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %101, i32 0, i32 1 - store i64 1, 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 %24, %"github.com/goplus/llgo/internal/runtime.String" %100, %"github.com/goplus/llgo/internal/runtime.String" %104, ptr %96, { ptr, i64, i64 } zeroinitializer, { ptr, i64, i64 } zeroinitializer) + %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 + %100 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %98, i32 0, i32 1 + store i64 1, 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 %21, %"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) br label %_llgo_12 _llgo_12: ; preds = %_llgo_11, %_llgo_10 - %105 = load ptr, ptr @_llgo_main.N, align 8 - %106 = icmp eq ptr %105, null - br i1 %106, label %_llgo_13, label %_llgo_14 + %102 = load ptr, ptr @_llgo_main.N, align 8 + %103 = icmp eq ptr %102, null + br i1 %103, label %_llgo_13, label %_llgo_14 _llgo_13: ; preds = %_llgo_12 - %107 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(i64 25, i64 0, i64 0) - store ptr %107, ptr @_llgo_main.N, align 8 + %104 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(i64 25, i64 0, i64 0) + store ptr %104, ptr @_llgo_main.N, align 8 br label %_llgo_14 _llgo_14: ; preds = %_llgo_13, %_llgo_12 - %108 = load ptr, ptr @"_llgo_struct$n1H8J_3prDN3firMwPxBLVTkE5hJ9Di-AqNvaC9jczw", align 8 - br i1 %106, label %_llgo_15, label %_llgo_16 + %105 = load ptr, ptr @"_llgo_struct$n1H8J_3prDN3firMwPxBLVTkE5hJ9Di-AqNvaC9jczw", align 8 + br i1 %103, label %_llgo_15, label %_llgo_16 _llgo_15: ; preds = %_llgo_14 - %109 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %110 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %109, i32 0, i32 0 - store ptr @3, ptr %110, align 8 - %111 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %109, i32 0, i32 1 - store i64 4, ptr %111, align 4 - %112 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %109, 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 @9, ptr %114, align 8 - %115 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %113, i32 0, i32 1 - store i64 1, ptr %115, align 4 - %116 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %113, align 8 - call void @"github.com/goplus/llgo/internal/runtime.InitNamed"(ptr %107, %"github.com/goplus/llgo/internal/runtime.String" %112, %"github.com/goplus/llgo/internal/runtime.String" %116, ptr %108, { ptr, i64, i64 } zeroinitializer, { ptr, i64, i64 } zeroinitializer) + %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 %104, %"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) br label %_llgo_16 _llgo_16: ; preds = %_llgo_15, %_llgo_14 diff --git a/cl/_testgo/ifaceprom/out.ll b/cl/_testgo/ifaceprom/out.ll index b284f78fd..9cdf83a51 100644 --- a/cl/_testgo/ifaceprom/out.ll +++ b/cl/_testgo/ifaceprom/out.ll @@ -7,7 +7,6 @@ source_filename = "main" %main.impl = type {} %"github.com/goplus/llgo/internal/runtime.eface" = type { ptr, ptr } %"github.com/goplus/llgo/internal/runtime.Slice" = type { ptr, i64, i64 } -%"github.com/goplus/llgo/internal/abi.Type" = type { i64, i64, i32, i8, i8, i8, i8, { ptr, ptr }, ptr, %"github.com/goplus/llgo/internal/runtime.String", ptr } %"github.com/goplus/llgo/internal/abi.Method" = type { %"github.com/goplus/llgo/internal/runtime.String", ptr, ptr, ptr } %"github.com/goplus/llgo/internal/abi.Imethod" = type { %"github.com/goplus/llgo/internal/runtime.String", ptr } %"github.com/goplus/llgo/internal/abi.StructField" = type { %"github.com/goplus/llgo/internal/runtime.String", ptr, i64, %"github.com/goplus/llgo/internal/runtime.String", i1 } @@ -660,291 +659,287 @@ _llgo_2: ; preds = %_llgo_1, %_llgo_0 br i1 %24, label %_llgo_3, label %_llgo_4 _llgo_3: ; preds = %_llgo_2 - %25 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 2) - %26 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Type", ptr %25, i32 0, i32 6 - %27 = load i8, ptr %26, align 1 - %28 = or i8 %27, 32 - store i8 %28, ptr %26, align 1 + %25 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 34) store ptr %25, ptr @_llgo_int, align 8 br label %_llgo_4 _llgo_4: ; preds = %_llgo_3, %_llgo_2 - %29 = load ptr, ptr @_llgo_int, align 8 - %30 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 - %31 = icmp eq ptr %30, null - br i1 %31, label %_llgo_5, label %_llgo_6 + %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 _llgo_5: ; preds = %_llgo_4 - %32 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 0) - %33 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %34 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %33, i32 0, i32 0 - store ptr %32, ptr %34, align 8 - %35 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %33, i32 0, i32 1 - store i64 0, ptr %35, align 4 - %36 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %33, i32 0, i32 2 - store i64 0, ptr %36, align 4 - %37 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %33, align 8 - %38 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 8) - %39 = getelementptr ptr, ptr %38, i64 0 - store ptr %29, ptr %39, align 8 - %40 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %41 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %40, i32 0, i32 0 - store ptr %38, ptr %41, align 8 - %42 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %40, i32 0, i32 1 - store i64 1, ptr %42, align 4 - %43 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %40, i32 0, i32 2 - store i64 1, 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.Func"(%"github.com/goplus/llgo/internal/runtime.Slice" %37, %"github.com/goplus/llgo/internal/runtime.Slice" %44, i1 false) - store ptr %45, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 + %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) + store ptr %42, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 br label %_llgo_6 _llgo_6: ; preds = %_llgo_5, %_llgo_4 - %46 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 - %47 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 - %48 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %47, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %22, ptr %48, align 8 - %49 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %47, i32 0, i32 1 - store ptr %46, ptr %49, align 8 - %50 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %47, i32 0, i32 2 - store ptr @"main.(*impl).one", ptr %50, align 8 - %51 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %47, i32 0, i32 3 - store ptr @"main.(*impl).one", ptr %51, align 8 - %52 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %47, 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" %22, ptr %54, align 8 - %55 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %53, i32 0, i32 1 - store ptr %46, ptr %55, align 8 - %56 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %53, i32 0, i32 2 - store ptr @"main.(*impl).one", ptr %56, align 8 - %57 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %53, i32 0, i32 3 - store ptr @main.impl.one, ptr %57, align 8 - %58 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %53, align 8 - %59 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %60 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %59, i32 0, i32 0 - store ptr @0, ptr %60, align 8 - %61 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %59, i32 0, i32 1 - store i64 3, ptr %61, align 4 - %62 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %59, 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 @4, 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 = load ptr, ptr @_llgo_string, align 8 - %68 = icmp eq ptr %67, null - br i1 %68, label %_llgo_7, label %_llgo_8 + %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 + %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 8, 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 _llgo_7: ; preds = %_llgo_6 - %69 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 24) - store ptr %69, ptr @_llgo_string, align 8 + %66 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 24) + store ptr %66, ptr @_llgo_string, align 8 br label %_llgo_8 _llgo_8: ; preds = %_llgo_7, %_llgo_6 - %70 = load ptr, ptr @_llgo_string, align 8 - %71 = load ptr, ptr @"_llgo_func$zNDVRsWTIpUPKouNUS805RGX--IV9qVK8B31IZbg5to", align 8 - %72 = icmp eq ptr %71, null - br i1 %72, label %_llgo_9, label %_llgo_10 + %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 _llgo_9: ; preds = %_llgo_8 - %73 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 0) - %74 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %75 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %74, i32 0, i32 0 - store ptr %73, ptr %75, align 8 - %76 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %74, i32 0, i32 1 - store i64 0, ptr %76, align 4 - %77 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %74, i32 0, i32 2 - store i64 0, ptr %77, align 4 - %78 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %74, align 8 - %79 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 8) - %80 = getelementptr ptr, ptr %79, i64 0 - store ptr %70, 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 %79, ptr %82, align 8 - %83 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %81, i32 0, i32 1 - store i64 1, ptr %83, align 4 - %84 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %81, i32 0, i32 2 - store i64 1, 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.Func"(%"github.com/goplus/llgo/internal/runtime.Slice" %78, %"github.com/goplus/llgo/internal/runtime.Slice" %85, i1 false) - store ptr %86, ptr @"_llgo_func$zNDVRsWTIpUPKouNUS805RGX--IV9qVK8B31IZbg5to", align 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) + store ptr %83, ptr @"_llgo_func$zNDVRsWTIpUPKouNUS805RGX--IV9qVK8B31IZbg5to", align 8 br label %_llgo_10 _llgo_10: ; preds = %_llgo_9, %_llgo_8 - %87 = load ptr, ptr @"_llgo_func$zNDVRsWTIpUPKouNUS805RGX--IV9qVK8B31IZbg5to", align 8 - %88 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 - %89 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %88, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %66, ptr %89, align 8 - %90 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %88, i32 0, i32 1 - store ptr %87, ptr %90, align 8 - %91 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %88, i32 0, i32 2 - store ptr @"main.(*impl).two", ptr %91, align 8 - %92 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %88, i32 0, i32 3 - store ptr @"main.(*impl).two", ptr %92, align 8 - %93 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %88, align 8 - %94 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 - %95 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %94, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %66, ptr %95, align 8 - %96 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %94, i32 0, i32 1 - store ptr %87, ptr %96, align 8 - %97 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %94, i32 0, i32 2 - store ptr @"main.(*impl).two", ptr %97, align 8 - %98 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %94, i32 0, i32 3 - store ptr @main.impl.two, ptr %98, align 8 - %99 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %94, align 8 - %100 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 80) - %101 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %100, i64 0 - store %"github.com/goplus/llgo/internal/abi.Method" %58, ptr %101, align 8 - %102 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %100, i64 1 - store %"github.com/goplus/llgo/internal/abi.Method" %99, 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 80) - %109 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %108, i64 0 - store %"github.com/goplus/llgo/internal/abi.Method" %52, ptr %109, align 8 - %110 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %108, i64 1 - store %"github.com/goplus/llgo/internal/abi.Method" %93, ptr %110, align 8 - %111 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %112 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %111, i32 0, i32 0 - store ptr %108, ptr %112, align 8 - %113 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %111, i32 0, i32 1 - store i64 2, ptr %113, align 4 - %114 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %111, i32 0, i32 2 - store i64 2, ptr %114, align 4 - %115 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %111, align 8 - %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 @1, 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 @5, ptr %121, align 8 - %122 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %120, i32 0, i32 1 - store i64 4, ptr %122, align 4 - %123 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %120, align 8 - call void @"github.com/goplus/llgo/internal/runtime.InitNamed"(ptr %0, %"github.com/goplus/llgo/internal/runtime.String" %119, %"github.com/goplus/llgo/internal/runtime.String" %123, ptr %14, %"github.com/goplus/llgo/internal/runtime.Slice" %107, %"github.com/goplus/llgo/internal/runtime.Slice" %115) - %124 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 - %125 = load ptr, ptr @"_llgo_func$zNDVRsWTIpUPKouNUS805RGX--IV9qVK8B31IZbg5to", align 8 - %126 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %127 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %126, i32 0, i32 0 - store ptr @3, ptr %127, align 8 - %128 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %126, i32 0, i32 1 - store i64 8, ptr %128, align 4 - %129 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %126, align 8 - %130 = alloca %"github.com/goplus/llgo/internal/abi.Imethod", align 8 - %131 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Imethod", ptr %130, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %129, ptr %131, align 8 - %132 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Imethod", ptr %130, i32 0, i32 1 - store ptr %124, ptr %132, align 8 - %133 = load %"github.com/goplus/llgo/internal/abi.Imethod", ptr %130, 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 @4, ptr %135, align 8 - %136 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %134, i32 0, i32 1 - store i64 8, ptr %136, align 4 - %137 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %134, align 8 - %138 = alloca %"github.com/goplus/llgo/internal/abi.Imethod", align 8 - %139 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Imethod", ptr %138, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %137, ptr %139, align 8 - %140 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Imethod", ptr %138, i32 0, i32 1 - store ptr %125, ptr %140, align 8 - %141 = load %"github.com/goplus/llgo/internal/abi.Imethod", ptr %138, align 8 - %142 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 48) - %143 = getelementptr %"github.com/goplus/llgo/internal/abi.Imethod", ptr %142, i64 0 - store %"github.com/goplus/llgo/internal/abi.Imethod" %133, ptr %143, align 8 - %144 = getelementptr %"github.com/goplus/llgo/internal/abi.Imethod", ptr %142, i64 1 - store %"github.com/goplus/llgo/internal/abi.Imethod" %141, ptr %144, align 8 - %145 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %146 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %145, i32 0, i32 0 - store ptr %142, ptr %146, align 8 - %147 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %145, i32 0, i32 1 - store i64 2, ptr %147, align 4 - %148 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %145, i32 0, i32 2 - store i64 2, ptr %148, align 4 - %149 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %145, align 8 - %150 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %151 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %150, i32 0, i32 0 - store ptr @1, ptr %151, align 8 - %152 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %150, i32 0, i32 1 - store i64 4, ptr %152, align 4 - %153 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %150, align 8 - %154 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %155 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %154, i32 0, i32 0 - store ptr null, ptr %155, align 8 - %156 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %154, i32 0, i32 1 - store i64 0, ptr %156, align 4 - %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$zZ89tENb5h_KNjvpxf1TXPfaWFYn0IZrZwyVf42lRtA", align 8 - %159 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 - %160 = load ptr, ptr @"_llgo_func$zNDVRsWTIpUPKouNUS805RGX--IV9qVK8B31IZbg5to", align 8 - %161 = load ptr, ptr @_llgo_main.I, align 8 - %162 = icmp eq ptr %161, null - br i1 %162, label %_llgo_11, label %_llgo_12 + %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 + %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 + %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 + %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 + %153 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %151, i32 0, i32 1 + store i64 0, 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 _llgo_11: ; preds = %_llgo_10 - %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 @3, ptr %164, align 8 - %165 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %163, i32 0, i32 1 - store i64 8, ptr %165, align 4 - %166 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %163, align 8 - %167 = alloca %"github.com/goplus/llgo/internal/abi.Imethod", align 8 - %168 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Imethod", ptr %167, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %166, ptr %168, align 8 - %169 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Imethod", ptr %167, i32 0, i32 1 - store ptr %159, ptr %169, align 8 - %170 = load %"github.com/goplus/llgo/internal/abi.Imethod", ptr %167, align 8 - %171 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %172 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %171, i32 0, i32 0 - store ptr @4, ptr %172, align 8 - %173 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %171, i32 0, i32 1 - store i64 8, ptr %173, align 4 - %174 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %171, align 8 - %175 = alloca %"github.com/goplus/llgo/internal/abi.Imethod", align 8 - %176 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Imethod", ptr %175, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %174, ptr %176, align 8 - %177 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Imethod", ptr %175, i32 0, i32 1 - store ptr %160, ptr %177, align 8 - %178 = load %"github.com/goplus/llgo/internal/abi.Imethod", ptr %175, align 8 - %179 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 48) - %180 = getelementptr %"github.com/goplus/llgo/internal/abi.Imethod", ptr %179, i64 0 - store %"github.com/goplus/llgo/internal/abi.Imethod" %170, ptr %180, align 8 - %181 = getelementptr %"github.com/goplus/llgo/internal/abi.Imethod", ptr %179, i64 1 - store %"github.com/goplus/llgo/internal/abi.Imethod" %178, ptr %181, align 8 - %182 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %183 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %182, i32 0, i32 0 - store ptr %179, ptr %183, align 8 - %184 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %182, i32 0, i32 1 - store i64 2, ptr %184, align 4 - %185 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %182, i32 0, i32 2 - store i64 2, ptr %185, align 4 - %186 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %182, align 8 - %187 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %188 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %187, i32 0, i32 0 - store ptr @1, ptr %188, align 8 - %189 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %187, i32 0, i32 1 - store i64 4, ptr %189, align 4 - %190 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %187, align 8 - %191 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %192 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %191, i32 0, i32 0 - store ptr @6, ptr %192, align 8 - %193 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %191, i32 0, i32 1 - store i64 6, ptr %193, align 4 - %194 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %191, align 8 - %195 = call ptr @"github.com/goplus/llgo/internal/runtime.Interface"(%"github.com/goplus/llgo/internal/runtime.String" %190, %"github.com/goplus/llgo/internal/runtime.String" %194, %"github.com/goplus/llgo/internal/runtime.Slice" %186) - store ptr %195, ptr @_llgo_main.I, 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 @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 + %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 + %190 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %188, i32 0, i32 1 + store i64 6, 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 br label %_llgo_12 _llgo_12: ; preds = %_llgo_11, %_llgo_10 diff --git a/cl/_testgo/interface/out.ll b/cl/_testgo/interface/out.ll index d01c37370..65a2e5456 100644 --- a/cl/_testgo/interface/out.ll +++ b/cl/_testgo/interface/out.ll @@ -256,7 +256,6 @@ _llgo_0: _llgo_1: ; preds = %_llgo_0 %2 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(i64 25, i64 2, i64 2) - call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %2) store ptr %2, ptr @_llgo_main.Game1, align 8 br label %_llgo_2 @@ -299,7 +298,6 @@ _llgo_3: ; preds = %_llgo_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 br label %_llgo_4 @@ -654,8 +652,6 @@ _llgo_20: ; preds = %_llgo_19, %_llgo_18 declare ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(i64, i64, i64) -declare void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr) - declare ptr @"github.com/goplus/llgo/internal/runtime.Struct"(%"github.com/goplus/llgo/internal/runtime.String", i64, %"github.com/goplus/llgo/internal/runtime.Slice") declare %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String", ptr, i64, %"github.com/goplus/llgo/internal/runtime.String", i1) diff --git a/cl/_testgo/invoke/in.go b/cl/_testgo/invoke/in.go index d4f9e93a4..807d98c2b 100644 --- a/cl/_testgo/invoke/in.go +++ b/cl/_testgo/invoke/in.go @@ -32,6 +32,29 @@ func (t *T3) Invoke() int { return 3 } +type T4 [1]int + +func (t T4) Invoke() int { + println("invoke4", t[0]) + return 4 +} + +type T5 struct { + n int +} + +func (t T5) Invoke() int { + println("invoke5", t.n) + return 5 +} + +type T6 func() int + +func (t T6) Invoke() int { + println("invoke6", t()) + return 6 +} + type I interface { Invoke() int } @@ -41,6 +64,9 @@ func main() { var t1 = T1(100) var t2 = T2(100.1) var t3 = T3(127) + var t4 = T4{200} + var t5 = T5{300} + var t6 = T6(func() int { return 400 }) invoke(t) invoke(&t) invoke(t1) @@ -48,6 +74,12 @@ func main() { invoke(t2) invoke(&t2) invoke(&t3) + invoke(t4) + invoke(&t4) + invoke(t5) + invoke(&t5) + invoke(t6) + invoke(&t6) var m M var i I = m println(i, m) @@ -57,7 +89,7 @@ func main() { invoke(a.(I)) invoke(a.(interface{}).(interface{ Invoke() int })) //panic - invoke(nil) + //invoke(nil) } func invoke(i I) { diff --git a/cl/_testgo/invoke/out.ll b/cl/_testgo/invoke/out.ll index f88d5f272..d63e43507 100644 --- a/cl/_testgo/invoke/out.ll +++ b/cl/_testgo/invoke/out.ll @@ -3,11 +3,12 @@ source_filename = "main" %main.T = type { %"github.com/goplus/llgo/internal/runtime.String" } %"github.com/goplus/llgo/internal/runtime.String" = type { ptr, i64 } +%main.T5 = type { i64 } +%main.T6 = type { ptr, ptr } %"github.com/goplus/llgo/internal/runtime.iface" = type { ptr, ptr } %"github.com/goplus/llgo/internal/runtime.eface" = type { ptr, ptr } %"github.com/goplus/llgo/internal/abi.StructField" = type { %"github.com/goplus/llgo/internal/runtime.String", ptr, i64, %"github.com/goplus/llgo/internal/runtime.String", i1 } %"github.com/goplus/llgo/internal/runtime.Slice" = type { ptr, i64, i64 } -%"github.com/goplus/llgo/internal/abi.Type" = type { i64, i64, i32, i8, i8, i8, i8, { ptr, ptr }, ptr, %"github.com/goplus/llgo/internal/runtime.String", ptr } %"github.com/goplus/llgo/internal/abi.Method" = type { %"github.com/goplus/llgo/internal/runtime.String", ptr, ptr, ptr } %"github.com/goplus/llgo/internal/abi.Imethod" = type { %"github.com/goplus/llgo/internal/runtime.String", ptr } @@ -16,37 +17,56 @@ source_filename = "main" @1 = private unnamed_addr constant [7 x i8] c"invoke1", align 1 @2 = private unnamed_addr constant [7 x i8] c"invoke2", align 1 @3 = private unnamed_addr constant [7 x i8] c"invoke3", align 1 +@4 = private unnamed_addr constant [7 x i8] c"invoke4", align 1 +@5 = private unnamed_addr constant [7 x i8] c"invoke5", align 1 +@6 = private unnamed_addr constant [7 x i8] c"invoke6", align 1 @__llgo_argc = global i32 0, align 4 @__llgo_argv = global ptr null, align 8 -@4 = private unnamed_addr constant [5 x i8] c"hello", align 1 +@7 = private unnamed_addr constant [5 x i8] c"hello", align 1 @_llgo_main.T = linkonce global ptr null, align 8 @"main.struct$QTufDJA9wEDzuzgkA-ZSrLqW-B6lWN8O25mTSglAoLQ" = global ptr null, align 8 -@5 = private unnamed_addr constant [1 x i8] c"s", align 1 -@6 = private unnamed_addr constant [4 x i8] c"main", align 1 -@7 = private unnamed_addr constant [6 x i8] c"Invoke", align 1 +@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 @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA" = linkonce global ptr null, align 8 @_llgo_int = linkonce global ptr null, align 8 -@8 = private unnamed_addr constant [6 x i8] c"Method", align 1 +@11 = private unnamed_addr constant [6 x i8] c"Method", align 1 @"_llgo_func$2_iS07vIlF2_rZqWB5eU0IvP_9HviM4MYZNkXZDvbac" = linkonce global ptr null, align 8 -@9 = private unnamed_addr constant [1 x i8] c"T", align 1 +@12 = 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 -@10 = private unnamed_addr constant [2 x i8] c"T1", align 1 +@13 = 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 @_llgo_float64 = linkonce global ptr null, align 8 -@11 = private unnamed_addr constant [2 x i8] c"T2", align 1 +@14 = private unnamed_addr constant [2 x i8] c"T2", align 1 @"*_llgo_main.T2" = linkonce global ptr null, align 8 @_llgo_main.T3 = linkonce global ptr null, align 8 @_llgo_int8 = linkonce global ptr null, align 8 -@12 = private unnamed_addr constant [2 x i8] c"T3", align 1 +@15 = 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 +@"[1]_llgo_int" = linkonce global ptr null, align 8 +@16 = 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 +@"main.struct$eovYmOhZg4X0zMSsuscSshndnbbAGvB2E3cyG8E7Y4U" = 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 +@"*_llgo_main.T5" = linkonce global ptr null, align 8 +@_llgo_main.T6 = linkonce global ptr null, align 8 +@"main.struct$2bSfJcCYDdttnIT-JASAjsTNUZvojBt4mPXFJdH4M10" = 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 +@"*_llgo_main.T6" = linkonce global ptr null, align 8 @"_llgo_iface$jwmSdgh1zvY_TDIgLzCkvkbiyrdwl9N806DH0JGcyMI" = linkonce global ptr null, align 8 -@13 = private unnamed_addr constant [5 x i8] c"world", align 1 +@22 = private unnamed_addr constant [5 x i8] c"world", align 1 @_llgo_main.I = linkonce global ptr null, align 8 -@14 = private unnamed_addr constant [6 x i8] c"main.I", align 1 -@15 = private unnamed_addr constant [21 x i8] c"type assertion failed", align 1 +@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 @_llgo_string = linkonce global ptr null, align 8 @_llgo_any = linkonce global ptr null, align 8 @@ -143,6 +163,85 @@ _llgo_0: ret i64 3 } +define i64 @main.T4.Invoke([1 x i64] %0) { +_llgo_0: + %1 = alloca [1 x i64], align 8 + %2 = call ptr @"github.com/goplus/llgo/internal/runtime.Zeroinit"(ptr %1, i64 8) + store [1 x i64] %0, ptr %2, align 4 + %3 = getelementptr inbounds i64, ptr %2, i64 0 + %4 = load i64, ptr %3, align 4 + %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 @4, ptr %6, align 8 + %7 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %5, i32 0, i32 1 + store i64 7, ptr %7, align 4 + %8 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %5, align 8 + call void @"github.com/goplus/llgo/internal/runtime.PrintString"(%"github.com/goplus/llgo/internal/runtime.String" %8) + call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 32) + call void @"github.com/goplus/llgo/internal/runtime.PrintInt"(i64 %4) + call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 10) + ret i64 4 +} + +define i64 @"main.(*T4).Invoke"(ptr %0) { +_llgo_0: + %1 = load [1 x i64], ptr %0, align 4 + %2 = call i64 @main.T4.Invoke([1 x i64] %1) + ret i64 %2 +} + +define i64 @main.T5.Invoke(%main.T5 %0) { +_llgo_0: + %1 = alloca %main.T5, align 8 + %2 = call ptr @"github.com/goplus/llgo/internal/runtime.Zeroinit"(ptr %1, i64 8) + store %main.T5 %0, ptr %2, align 4 + %3 = getelementptr inbounds %main.T5, ptr %2, i32 0, i32 0 + %4 = load i64, ptr %3, align 4 + %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 @5, ptr %6, align 8 + %7 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %5, i32 0, i32 1 + store i64 7, ptr %7, align 4 + %8 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %5, align 8 + call void @"github.com/goplus/llgo/internal/runtime.PrintString"(%"github.com/goplus/llgo/internal/runtime.String" %8) + call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 32) + call void @"github.com/goplus/llgo/internal/runtime.PrintInt"(i64 %4) + call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 10) + ret i64 5 +} + +define i64 @"main.(*T5).Invoke"(ptr %0) { +_llgo_0: + %1 = load %main.T5, ptr %0, align 4 + %2 = call i64 @main.T5.Invoke(%main.T5 %1) + ret i64 %2 +} + +define i64 @main.T6.Invoke(%main.T6 %0) { +_llgo_0: + %1 = extractvalue %main.T6 %0, 1 + %2 = extractvalue %main.T6 %0, 0 + %3 = call i64 %2(ptr %1) + %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 @6, ptr %5, align 8 + %6 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %4, i32 0, i32 1 + store i64 7, ptr %6, align 4 + %7 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %4, align 8 + call void @"github.com/goplus/llgo/internal/runtime.PrintString"(%"github.com/goplus/llgo/internal/runtime.String" %7) + call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 32) + call void @"github.com/goplus/llgo/internal/runtime.PrintInt"(i64 %3) + call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 10) + ret i64 6 +} + +define i64 @"main.(*T6).Invoke"(ptr %0) { +_llgo_0: + %1 = load %main.T6, ptr %0, align 8 + %2 = call i64 @main.T6.Invoke(%main.T6 %1) + ret i64 %2 +} + define void @main.init() { _llgo_0: %0 = load i1, ptr @"main.init$guard", align 1 @@ -187,7 +286,7 @@ _llgo_0: %3 = getelementptr inbounds %main.T, 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 @4, ptr %5, align 8 + store ptr @7, ptr %5, align 8 %6 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %4, i32 0, i32 1 store i64 5, ptr %6, align 4 %7 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %4, align 8 @@ -198,243 +297,330 @@ _llgo_0: store double 1.001000e+02, ptr %9, align 8 %10 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocZ"(i64 1) store i8 127, ptr %10, align 1 - %11 = load %main.T, ptr %2, align 8 - %12 = load ptr, ptr @_llgo_main.T, align 8 - %13 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 16) - store %main.T %11, ptr %13, align 8 - %14 = load ptr, ptr @"_llgo_iface$uRUteI7wmSy7y7ODhGzk0FdDaxGKMhVSSu6HZEv9aa0", align 8 - %15 = call ptr @"github.com/goplus/llgo/internal/runtime.NewItab"(ptr %14, ptr %12) - %16 = alloca %"github.com/goplus/llgo/internal/runtime.iface", align 8 - %17 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.iface", ptr %16, i32 0, i32 0 - store ptr %15, ptr %17, align 8 - %18 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.iface", ptr %16, i32 0, i32 1 - store ptr %13, ptr %18, align 8 - %19 = load %"github.com/goplus/llgo/internal/runtime.iface", ptr %16, align 8 - call void @main.invoke(%"github.com/goplus/llgo/internal/runtime.iface" %19) - %20 = load ptr, ptr @"*_llgo_main.T", align 8 - %21 = load ptr, ptr @"_llgo_iface$uRUteI7wmSy7y7ODhGzk0FdDaxGKMhVSSu6HZEv9aa0", align 8 - %22 = call ptr @"github.com/goplus/llgo/internal/runtime.NewItab"(ptr %21, ptr %20) - %23 = alloca %"github.com/goplus/llgo/internal/runtime.iface", align 8 - %24 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.iface", ptr %23, i32 0, i32 0 - store ptr %22, ptr %24, align 8 - %25 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.iface", ptr %23, i32 0, i32 1 - store ptr %2, ptr %25, align 8 - %26 = load %"github.com/goplus/llgo/internal/runtime.iface", ptr %23, align 8 - call void @main.invoke(%"github.com/goplus/llgo/internal/runtime.iface" %26) - %27 = load i64, ptr %8, align 4 - %28 = load ptr, ptr @_llgo_main.T1, align 8 - %29 = inttoptr i64 %27 to ptr + %11 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocZ"(i64 8) + %12 = getelementptr inbounds i64, ptr %11, i64 0 + store i64 200, ptr %12, align 4 + %13 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocZ"(i64 8) + %14 = getelementptr inbounds %main.T5, ptr %13, i32 0, i32 0 + store i64 300, ptr %14, align 4 + %15 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocZ"(i64 16) + %16 = alloca { ptr, ptr }, align 8 + %17 = getelementptr inbounds { ptr, ptr }, ptr %16, i32 0, i32 0 + store ptr @"__llgo_stub.main.main$1", ptr %17, align 8 + %18 = getelementptr inbounds { ptr, ptr }, ptr %16, i32 0, i32 1 + store ptr null, ptr %18, align 8 + %19 = load { ptr, ptr }, ptr %16, align 8 + store { ptr, ptr } %19, ptr %15, align 8 + %20 = load %main.T, ptr %2, align 8 + %21 = load ptr, ptr @_llgo_main.T, align 8 + %22 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 16) + store %main.T %20, ptr %22, align 8 + %23 = load ptr, ptr @"_llgo_iface$uRUteI7wmSy7y7ODhGzk0FdDaxGKMhVSSu6HZEv9aa0", align 8 + %24 = call ptr @"github.com/goplus/llgo/internal/runtime.NewItab"(ptr %23, ptr %21) + %25 = alloca %"github.com/goplus/llgo/internal/runtime.iface", align 8 + %26 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.iface", ptr %25, i32 0, i32 0 + store ptr %24, ptr %26, align 8 + %27 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.iface", ptr %25, i32 0, i32 1 + store ptr %22, ptr %27, align 8 + %28 = load %"github.com/goplus/llgo/internal/runtime.iface", ptr %25, align 8 + call void @main.invoke(%"github.com/goplus/llgo/internal/runtime.iface" %28) + %29 = load ptr, ptr @"*_llgo_main.T", align 8 %30 = load ptr, ptr @"_llgo_iface$uRUteI7wmSy7y7ODhGzk0FdDaxGKMhVSSu6HZEv9aa0", align 8 - %31 = call ptr @"github.com/goplus/llgo/internal/runtime.NewItab"(ptr %30, ptr %28) + %31 = call ptr @"github.com/goplus/llgo/internal/runtime.NewItab"(ptr %30, ptr %29) %32 = alloca %"github.com/goplus/llgo/internal/runtime.iface", align 8 %33 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.iface", ptr %32, i32 0, i32 0 store ptr %31, ptr %33, align 8 %34 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.iface", ptr %32, i32 0, i32 1 - store ptr %29, ptr %34, align 8 + store ptr %2, ptr %34, align 8 %35 = load %"github.com/goplus/llgo/internal/runtime.iface", ptr %32, align 8 call void @main.invoke(%"github.com/goplus/llgo/internal/runtime.iface" %35) - %36 = load ptr, ptr @"*_llgo_main.T1", align 8 - %37 = load ptr, ptr @"_llgo_iface$uRUteI7wmSy7y7ODhGzk0FdDaxGKMhVSSu6HZEv9aa0", align 8 - %38 = call ptr @"github.com/goplus/llgo/internal/runtime.NewItab"(ptr %37, ptr %36) - %39 = alloca %"github.com/goplus/llgo/internal/runtime.iface", align 8 - %40 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.iface", ptr %39, i32 0, i32 0 - store ptr %38, ptr %40, align 8 - %41 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.iface", ptr %39, i32 0, i32 1 - store ptr %8, ptr %41, align 8 - %42 = load %"github.com/goplus/llgo/internal/runtime.iface", ptr %39, align 8 - call void @main.invoke(%"github.com/goplus/llgo/internal/runtime.iface" %42) - %43 = load double, ptr %9, align 8 - %44 = load ptr, ptr @_llgo_main.T2, align 8 - %45 = bitcast double %43 to i64 - %46 = inttoptr i64 %45 to ptr - %47 = load ptr, ptr @"_llgo_iface$uRUteI7wmSy7y7ODhGzk0FdDaxGKMhVSSu6HZEv9aa0", align 8 - %48 = call ptr @"github.com/goplus/llgo/internal/runtime.NewItab"(ptr %47, ptr %44) - %49 = alloca %"github.com/goplus/llgo/internal/runtime.iface", align 8 - %50 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.iface", ptr %49, i32 0, i32 0 - store ptr %48, ptr %50, align 8 - %51 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.iface", ptr %49, i32 0, i32 1 - store ptr %46, ptr %51, align 8 - %52 = load %"github.com/goplus/llgo/internal/runtime.iface", ptr %49, align 8 - call void @main.invoke(%"github.com/goplus/llgo/internal/runtime.iface" %52) - %53 = load ptr, ptr @"*_llgo_main.T2", align 8 - %54 = load ptr, ptr @"_llgo_iface$uRUteI7wmSy7y7ODhGzk0FdDaxGKMhVSSu6HZEv9aa0", align 8 - %55 = call ptr @"github.com/goplus/llgo/internal/runtime.NewItab"(ptr %54, ptr %53) - %56 = alloca %"github.com/goplus/llgo/internal/runtime.iface", align 8 - %57 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.iface", ptr %56, i32 0, i32 0 - store ptr %55, ptr %57, align 8 - %58 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.iface", ptr %56, i32 0, i32 1 - store ptr %9, ptr %58, align 8 - %59 = load %"github.com/goplus/llgo/internal/runtime.iface", ptr %56, align 8 - call void @main.invoke(%"github.com/goplus/llgo/internal/runtime.iface" %59) - %60 = load ptr, ptr @"*_llgo_main.T3", align 8 - %61 = load ptr, ptr @"_llgo_iface$uRUteI7wmSy7y7ODhGzk0FdDaxGKMhVSSu6HZEv9aa0", align 8 - %62 = call ptr @"github.com/goplus/llgo/internal/runtime.NewItab"(ptr %61, ptr %60) - %63 = alloca %"github.com/goplus/llgo/internal/runtime.iface", align 8 - %64 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.iface", ptr %63, i32 0, i32 0 - store ptr %62, ptr %64, align 8 - %65 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.iface", ptr %63, i32 0, i32 1 - store ptr %10, ptr %65, align 8 - %66 = load %"github.com/goplus/llgo/internal/runtime.iface", ptr %63, align 8 - call void @main.invoke(%"github.com/goplus/llgo/internal/runtime.iface" %66) - %67 = call ptr @"github.com/goplus/llgo/internal/runtime.IfaceType"(%"github.com/goplus/llgo/internal/runtime.iface" zeroinitializer) - %68 = load ptr, ptr @"_llgo_iface$uRUteI7wmSy7y7ODhGzk0FdDaxGKMhVSSu6HZEv9aa0", align 8 - %69 = call ptr @"github.com/goplus/llgo/internal/runtime.NewItab"(ptr %68, ptr %67) - %70 = alloca %"github.com/goplus/llgo/internal/runtime.iface", align 8 - %71 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.iface", ptr %70, i32 0, i32 0 - store ptr %69, ptr %71, align 8 - %72 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.iface", ptr %70, i32 0, i32 1 - store ptr null, ptr %72, align 8 - %73 = load %"github.com/goplus/llgo/internal/runtime.iface", ptr %70, align 8 - call void @"github.com/goplus/llgo/internal/runtime.PrintIface"(%"github.com/goplus/llgo/internal/runtime.iface" %73) + %36 = load i64, ptr %8, align 4 + %37 = load ptr, ptr @_llgo_main.T1, align 8 + %38 = inttoptr i64 %36 to ptr + %39 = load ptr, ptr @"_llgo_iface$uRUteI7wmSy7y7ODhGzk0FdDaxGKMhVSSu6HZEv9aa0", align 8 + %40 = call ptr @"github.com/goplus/llgo/internal/runtime.NewItab"(ptr %39, ptr %37) + %41 = alloca %"github.com/goplus/llgo/internal/runtime.iface", align 8 + %42 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.iface", ptr %41, i32 0, i32 0 + store ptr %40, ptr %42, align 8 + %43 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.iface", ptr %41, i32 0, i32 1 + store ptr %38, ptr %43, align 8 + %44 = load %"github.com/goplus/llgo/internal/runtime.iface", ptr %41, align 8 + call void @main.invoke(%"github.com/goplus/llgo/internal/runtime.iface" %44) + %45 = load ptr, ptr @"*_llgo_main.T1", align 8 + %46 = load ptr, ptr @"_llgo_iface$uRUteI7wmSy7y7ODhGzk0FdDaxGKMhVSSu6HZEv9aa0", align 8 + %47 = call ptr @"github.com/goplus/llgo/internal/runtime.NewItab"(ptr %46, ptr %45) + %48 = alloca %"github.com/goplus/llgo/internal/runtime.iface", align 8 + %49 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.iface", ptr %48, i32 0, i32 0 + store ptr %47, ptr %49, align 8 + %50 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.iface", ptr %48, i32 0, i32 1 + store ptr %8, ptr %50, align 8 + %51 = load %"github.com/goplus/llgo/internal/runtime.iface", ptr %48, align 8 + call void @main.invoke(%"github.com/goplus/llgo/internal/runtime.iface" %51) + %52 = load double, ptr %9, align 8 + %53 = load ptr, ptr @_llgo_main.T2, align 8 + %54 = bitcast double %52 to i64 + %55 = inttoptr i64 %54 to ptr + %56 = load ptr, ptr @"_llgo_iface$uRUteI7wmSy7y7ODhGzk0FdDaxGKMhVSSu6HZEv9aa0", align 8 + %57 = call ptr @"github.com/goplus/llgo/internal/runtime.NewItab"(ptr %56, ptr %53) + %58 = alloca %"github.com/goplus/llgo/internal/runtime.iface", align 8 + %59 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.iface", ptr %58, i32 0, i32 0 + store ptr %57, ptr %59, align 8 + %60 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.iface", ptr %58, i32 0, i32 1 + store ptr %55, ptr %60, align 8 + %61 = load %"github.com/goplus/llgo/internal/runtime.iface", ptr %58, align 8 + call void @main.invoke(%"github.com/goplus/llgo/internal/runtime.iface" %61) + %62 = load ptr, ptr @"*_llgo_main.T2", align 8 + %63 = load ptr, ptr @"_llgo_iface$uRUteI7wmSy7y7ODhGzk0FdDaxGKMhVSSu6HZEv9aa0", align 8 + %64 = call ptr @"github.com/goplus/llgo/internal/runtime.NewItab"(ptr %63, ptr %62) + %65 = alloca %"github.com/goplus/llgo/internal/runtime.iface", align 8 + %66 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.iface", ptr %65, i32 0, i32 0 + store ptr %64, ptr %66, align 8 + %67 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.iface", ptr %65, i32 0, i32 1 + store ptr %9, ptr %67, align 8 + %68 = load %"github.com/goplus/llgo/internal/runtime.iface", ptr %65, align 8 + call void @main.invoke(%"github.com/goplus/llgo/internal/runtime.iface" %68) + %69 = load ptr, ptr @"*_llgo_main.T3", align 8 + %70 = load ptr, ptr @"_llgo_iface$uRUteI7wmSy7y7ODhGzk0FdDaxGKMhVSSu6HZEv9aa0", align 8 + %71 = call ptr @"github.com/goplus/llgo/internal/runtime.NewItab"(ptr %70, ptr %69) + %72 = alloca %"github.com/goplus/llgo/internal/runtime.iface", align 8 + %73 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.iface", ptr %72, i32 0, i32 0 + store ptr %71, ptr %73, align 8 + %74 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.iface", ptr %72, i32 0, i32 1 + store ptr %10, ptr %74, align 8 + %75 = load %"github.com/goplus/llgo/internal/runtime.iface", ptr %72, align 8 + call void @main.invoke(%"github.com/goplus/llgo/internal/runtime.iface" %75) + %76 = load [1 x i64], ptr %11, align 4 + %77 = load ptr, ptr @_llgo_main.T4, align 8 + %78 = extractvalue [1 x i64] %76, 0 + %79 = inttoptr i64 %78 to ptr + %80 = load ptr, ptr @"_llgo_iface$uRUteI7wmSy7y7ODhGzk0FdDaxGKMhVSSu6HZEv9aa0", align 8 + %81 = call ptr @"github.com/goplus/llgo/internal/runtime.NewItab"(ptr %80, ptr %77) + %82 = alloca %"github.com/goplus/llgo/internal/runtime.iface", align 8 + %83 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.iface", ptr %82, i32 0, i32 0 + store ptr %81, ptr %83, align 8 + %84 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.iface", ptr %82, i32 0, i32 1 + store ptr %79, ptr %84, align 8 + %85 = load %"github.com/goplus/llgo/internal/runtime.iface", ptr %82, align 8 + call void @main.invoke(%"github.com/goplus/llgo/internal/runtime.iface" %85) + %86 = load ptr, ptr @"*_llgo_main.T4", align 8 + %87 = load ptr, ptr @"_llgo_iface$uRUteI7wmSy7y7ODhGzk0FdDaxGKMhVSSu6HZEv9aa0", align 8 + %88 = call ptr @"github.com/goplus/llgo/internal/runtime.NewItab"(ptr %87, ptr %86) + %89 = alloca %"github.com/goplus/llgo/internal/runtime.iface", align 8 + %90 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.iface", ptr %89, i32 0, i32 0 + store ptr %88, ptr %90, align 8 + %91 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.iface", ptr %89, i32 0, i32 1 + store ptr %11, ptr %91, align 8 + %92 = load %"github.com/goplus/llgo/internal/runtime.iface", ptr %89, align 8 + call void @main.invoke(%"github.com/goplus/llgo/internal/runtime.iface" %92) + %93 = load %main.T5, ptr %13, align 4 + %94 = load ptr, ptr @_llgo_main.T5, align 8 + %95 = extractvalue %main.T5 %93, 0 + %96 = inttoptr i64 %95 to ptr + %97 = load ptr, ptr @"_llgo_iface$uRUteI7wmSy7y7ODhGzk0FdDaxGKMhVSSu6HZEv9aa0", align 8 + %98 = call ptr @"github.com/goplus/llgo/internal/runtime.NewItab"(ptr %97, ptr %94) + %99 = alloca %"github.com/goplus/llgo/internal/runtime.iface", align 8 + %100 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.iface", ptr %99, i32 0, i32 0 + store ptr %98, ptr %100, align 8 + %101 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.iface", ptr %99, i32 0, i32 1 + store ptr %96, ptr %101, align 8 + %102 = load %"github.com/goplus/llgo/internal/runtime.iface", ptr %99, align 8 + call void @main.invoke(%"github.com/goplus/llgo/internal/runtime.iface" %102) + %103 = load ptr, ptr @"*_llgo_main.T5", align 8 + %104 = load ptr, ptr @"_llgo_iface$uRUteI7wmSy7y7ODhGzk0FdDaxGKMhVSSu6HZEv9aa0", align 8 + %105 = call ptr @"github.com/goplus/llgo/internal/runtime.NewItab"(ptr %104, ptr %103) + %106 = alloca %"github.com/goplus/llgo/internal/runtime.iface", align 8 + %107 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.iface", ptr %106, i32 0, i32 0 + store ptr %105, ptr %107, align 8 + %108 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.iface", ptr %106, i32 0, i32 1 + store ptr %13, ptr %108, align 8 + %109 = load %"github.com/goplus/llgo/internal/runtime.iface", ptr %106, align 8 + call void @main.invoke(%"github.com/goplus/llgo/internal/runtime.iface" %109) + %110 = load %main.T6, ptr %15, align 8 + %111 = load ptr, ptr @_llgo_main.T6, align 8 + %112 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 16) + store %main.T6 %110, ptr %112, align 8 + %113 = load ptr, ptr @"_llgo_iface$uRUteI7wmSy7y7ODhGzk0FdDaxGKMhVSSu6HZEv9aa0", align 8 + %114 = call ptr @"github.com/goplus/llgo/internal/runtime.NewItab"(ptr %113, ptr %111) + %115 = alloca %"github.com/goplus/llgo/internal/runtime.iface", align 8 + %116 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.iface", ptr %115, i32 0, i32 0 + store ptr %114, ptr %116, align 8 + %117 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.iface", ptr %115, i32 0, i32 1 + store ptr %112, ptr %117, align 8 + %118 = load %"github.com/goplus/llgo/internal/runtime.iface", ptr %115, align 8 + call void @main.invoke(%"github.com/goplus/llgo/internal/runtime.iface" %118) + %119 = load ptr, ptr @"*_llgo_main.T6", align 8 + %120 = load ptr, ptr @"_llgo_iface$uRUteI7wmSy7y7ODhGzk0FdDaxGKMhVSSu6HZEv9aa0", align 8 + %121 = call ptr @"github.com/goplus/llgo/internal/runtime.NewItab"(ptr %120, ptr %119) + %122 = alloca %"github.com/goplus/llgo/internal/runtime.iface", align 8 + %123 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.iface", ptr %122, i32 0, i32 0 + store ptr %121, ptr %123, align 8 + %124 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.iface", ptr %122, i32 0, i32 1 + store ptr %15, ptr %124, align 8 + %125 = load %"github.com/goplus/llgo/internal/runtime.iface", ptr %122, align 8 + call void @main.invoke(%"github.com/goplus/llgo/internal/runtime.iface" %125) + %126 = call ptr @"github.com/goplus/llgo/internal/runtime.IfaceType"(%"github.com/goplus/llgo/internal/runtime.iface" zeroinitializer) + %127 = load ptr, ptr @"_llgo_iface$uRUteI7wmSy7y7ODhGzk0FdDaxGKMhVSSu6HZEv9aa0", align 8 + %128 = call ptr @"github.com/goplus/llgo/internal/runtime.NewItab"(ptr %127, ptr %126) + %129 = alloca %"github.com/goplus/llgo/internal/runtime.iface", align 8 + %130 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.iface", ptr %129, i32 0, i32 0 + store ptr %128, ptr %130, align 8 + %131 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.iface", ptr %129, i32 0, i32 1 + store ptr null, ptr %131, align 8 + %132 = load %"github.com/goplus/llgo/internal/runtime.iface", ptr %129, align 8 + call void @"github.com/goplus/llgo/internal/runtime.PrintIface"(%"github.com/goplus/llgo/internal/runtime.iface" %132) call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 32) call void @"github.com/goplus/llgo/internal/runtime.PrintIface"(%"github.com/goplus/llgo/internal/runtime.iface" zeroinitializer) call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 10) - %74 = load ptr, ptr @"*_llgo_main.T", align 8 - %75 = load ptr, ptr @"_llgo_iface$jwmSdgh1zvY_TDIgLzCkvkbiyrdwl9N806DH0JGcyMI", align 8 - %76 = call ptr @"github.com/goplus/llgo/internal/runtime.NewItab"(ptr %75, ptr %74) - %77 = alloca %"github.com/goplus/llgo/internal/runtime.iface", align 8 - %78 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.iface", ptr %77, i32 0, i32 0 - store ptr %76, ptr %78, align 8 - %79 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.iface", ptr %77, i32 0, i32 1 - store ptr %2, ptr %79, align 8 - %80 = load %"github.com/goplus/llgo/internal/runtime.iface", ptr %77, align 8 - %81 = call ptr @"github.com/goplus/llgo/internal/runtime.IfaceType"(%"github.com/goplus/llgo/internal/runtime.iface" %80) - %82 = extractvalue %"github.com/goplus/llgo/internal/runtime.iface" %80, 1 - %83 = load ptr, ptr @"_llgo_iface$uRUteI7wmSy7y7ODhGzk0FdDaxGKMhVSSu6HZEv9aa0", align 8 - %84 = call ptr @"github.com/goplus/llgo/internal/runtime.NewItab"(ptr %83, ptr %81) - %85 = alloca %"github.com/goplus/llgo/internal/runtime.iface", align 8 - %86 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.iface", ptr %85, i32 0, i32 0 - store ptr %84, ptr %86, align 8 - %87 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.iface", ptr %85, i32 0, i32 1 - store ptr %82, ptr %87, align 8 - %88 = load %"github.com/goplus/llgo/internal/runtime.iface", ptr %85, align 8 - call void @main.invoke(%"github.com/goplus/llgo/internal/runtime.iface" %88) - %89 = alloca %main.T, align 8 - %90 = call ptr @"github.com/goplus/llgo/internal/runtime.Zeroinit"(ptr %89, i64 16) - %91 = getelementptr inbounds %main.T, ptr %90, i32 0, i32 0 - %92 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %93 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %92, i32 0, i32 0 - store ptr @13, ptr %93, align 8 - %94 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %92, i32 0, i32 1 - store i64 5, ptr %94, align 4 - %95 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %92, align 8 - store %"github.com/goplus/llgo/internal/runtime.String" %95, ptr %91, align 8 - %96 = load %main.T, ptr %90, align 8 - %97 = load ptr, ptr @_llgo_main.T, align 8 - %98 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 16) - store %main.T %96, ptr %98, align 8 - %99 = alloca %"github.com/goplus/llgo/internal/runtime.eface", align 8 - %100 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.eface", ptr %99, i32 0, i32 0 - store ptr %97, ptr %100, align 8 - %101 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.eface", ptr %99, i32 0, i32 1 - store ptr %98, ptr %101, align 8 - %102 = load %"github.com/goplus/llgo/internal/runtime.eface", ptr %99, align 8 - %103 = extractvalue %"github.com/goplus/llgo/internal/runtime.eface" %102, 0 - %104 = load ptr, ptr @_llgo_main.I, align 8 - %105 = call i1 @"github.com/goplus/llgo/internal/runtime.Implements"(ptr %104, ptr %103) - br i1 %105, label %_llgo_1, label %_llgo_2 + %133 = load ptr, ptr @"*_llgo_main.T", align 8 + %134 = load ptr, ptr @"_llgo_iface$jwmSdgh1zvY_TDIgLzCkvkbiyrdwl9N806DH0JGcyMI", align 8 + %135 = call ptr @"github.com/goplus/llgo/internal/runtime.NewItab"(ptr %134, ptr %133) + %136 = alloca %"github.com/goplus/llgo/internal/runtime.iface", align 8 + %137 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.iface", ptr %136, i32 0, i32 0 + store ptr %135, ptr %137, align 8 + %138 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.iface", ptr %136, i32 0, i32 1 + store ptr %2, ptr %138, align 8 + %139 = load %"github.com/goplus/llgo/internal/runtime.iface", ptr %136, align 8 + %140 = call ptr @"github.com/goplus/llgo/internal/runtime.IfaceType"(%"github.com/goplus/llgo/internal/runtime.iface" %139) + %141 = extractvalue %"github.com/goplus/llgo/internal/runtime.iface" %139, 1 + %142 = load ptr, ptr @"_llgo_iface$uRUteI7wmSy7y7ODhGzk0FdDaxGKMhVSSu6HZEv9aa0", align 8 + %143 = call ptr @"github.com/goplus/llgo/internal/runtime.NewItab"(ptr %142, ptr %140) + %144 = alloca %"github.com/goplus/llgo/internal/runtime.iface", align 8 + %145 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.iface", ptr %144, i32 0, i32 0 + store ptr %143, ptr %145, align 8 + %146 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.iface", ptr %144, i32 0, i32 1 + store ptr %141, ptr %146, align 8 + %147 = load %"github.com/goplus/llgo/internal/runtime.iface", ptr %144, align 8 + call void @main.invoke(%"github.com/goplus/llgo/internal/runtime.iface" %147) + %148 = alloca %main.T, align 8 + %149 = call ptr @"github.com/goplus/llgo/internal/runtime.Zeroinit"(ptr %148, i64 16) + %150 = getelementptr inbounds %main.T, ptr %149, i32 0, i32 0 + %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 @22, ptr %152, align 8 + %153 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %151, i32 0, i32 1 + store i64 5, ptr %153, align 4 + %154 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %151, align 8 + store %"github.com/goplus/llgo/internal/runtime.String" %154, ptr %150, align 8 + %155 = load %main.T, ptr %149, align 8 + %156 = load ptr, ptr @_llgo_main.T, align 8 + %157 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 16) + store %main.T %155, ptr %157, align 8 + %158 = alloca %"github.com/goplus/llgo/internal/runtime.eface", align 8 + %159 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.eface", ptr %158, i32 0, i32 0 + store ptr %156, ptr %159, align 8 + %160 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.eface", ptr %158, i32 0, i32 1 + store ptr %157, ptr %160, align 8 + %161 = load %"github.com/goplus/llgo/internal/runtime.eface", ptr %158, align 8 + %162 = extractvalue %"github.com/goplus/llgo/internal/runtime.eface" %161, 0 + %163 = load ptr, ptr @_llgo_main.I, align 8 + %164 = call i1 @"github.com/goplus/llgo/internal/runtime.Implements"(ptr %163, ptr %162) + br i1 %164, label %_llgo_1, label %_llgo_2 _llgo_1: ; preds = %_llgo_0 - %106 = extractvalue %"github.com/goplus/llgo/internal/runtime.eface" %102, 1 - %107 = load ptr, ptr @"_llgo_iface$uRUteI7wmSy7y7ODhGzk0FdDaxGKMhVSSu6HZEv9aa0", align 8 - %108 = call ptr @"github.com/goplus/llgo/internal/runtime.NewItab"(ptr %107, ptr %103) - %109 = alloca %"github.com/goplus/llgo/internal/runtime.iface", align 8 - %110 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.iface", ptr %109, i32 0, i32 0 - store ptr %108, ptr %110, align 8 - %111 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.iface", ptr %109, i32 0, i32 1 - store ptr %106, ptr %111, align 8 - %112 = load %"github.com/goplus/llgo/internal/runtime.iface", ptr %109, align 8 - call void @main.invoke(%"github.com/goplus/llgo/internal/runtime.iface" %112) - %113 = extractvalue %"github.com/goplus/llgo/internal/runtime.eface" %102, 0 - %114 = load ptr, ptr @_llgo_any, align 8 - %115 = call i1 @"github.com/goplus/llgo/internal/runtime.Implements"(ptr %114, ptr %113) - br i1 %115, label %_llgo_3, label %_llgo_4 + %165 = extractvalue %"github.com/goplus/llgo/internal/runtime.eface" %161, 1 + %166 = load ptr, ptr @"_llgo_iface$uRUteI7wmSy7y7ODhGzk0FdDaxGKMhVSSu6HZEv9aa0", align 8 + %167 = call ptr @"github.com/goplus/llgo/internal/runtime.NewItab"(ptr %166, ptr %162) + %168 = alloca %"github.com/goplus/llgo/internal/runtime.iface", align 8 + %169 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.iface", ptr %168, i32 0, i32 0 + store ptr %167, ptr %169, align 8 + %170 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.iface", ptr %168, i32 0, i32 1 + store ptr %165, ptr %170, align 8 + %171 = load %"github.com/goplus/llgo/internal/runtime.iface", ptr %168, align 8 + call void @main.invoke(%"github.com/goplus/llgo/internal/runtime.iface" %171) + %172 = extractvalue %"github.com/goplus/llgo/internal/runtime.eface" %161, 0 + %173 = load ptr, ptr @_llgo_any, align 8 + %174 = call i1 @"github.com/goplus/llgo/internal/runtime.Implements"(ptr %173, ptr %172) + br i1 %174, label %_llgo_3, label %_llgo_4 _llgo_2: ; preds = %_llgo_0 - %116 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %117 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %116, i32 0, i32 0 - store ptr @15, ptr %117, align 8 - %118 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %116, i32 0, i32 1 - store i64 21, ptr %118, align 4 - %119 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %116, align 8 - %120 = load ptr, ptr @_llgo_string, align 8 - %121 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 16) - store %"github.com/goplus/llgo/internal/runtime.String" %119, ptr %121, align 8 - %122 = alloca %"github.com/goplus/llgo/internal/runtime.eface", align 8 - %123 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.eface", ptr %122, i32 0, i32 0 - store ptr %120, ptr %123, align 8 - %124 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.eface", ptr %122, i32 0, i32 1 - store ptr %121, ptr %124, align 8 - %125 = load %"github.com/goplus/llgo/internal/runtime.eface", ptr %122, align 8 - call void @"github.com/goplus/llgo/internal/runtime.Panic"(%"github.com/goplus/llgo/internal/runtime.eface" %125) + %175 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %176 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %175, i32 0, i32 0 + store ptr @24, ptr %176, align 8 + %177 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %175, i32 0, i32 1 + store i64 21, ptr %177, align 4 + %178 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %175, align 8 + %179 = load ptr, ptr @_llgo_string, align 8 + %180 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 16) + store %"github.com/goplus/llgo/internal/runtime.String" %178, ptr %180, align 8 + %181 = alloca %"github.com/goplus/llgo/internal/runtime.eface", align 8 + %182 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.eface", ptr %181, i32 0, i32 0 + store ptr %179, ptr %182, align 8 + %183 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.eface", ptr %181, i32 0, i32 1 + store ptr %180, ptr %183, align 8 + %184 = load %"github.com/goplus/llgo/internal/runtime.eface", ptr %181, align 8 + call void @"github.com/goplus/llgo/internal/runtime.Panic"(%"github.com/goplus/llgo/internal/runtime.eface" %184) unreachable _llgo_3: ; preds = %_llgo_1 - %126 = extractvalue %"github.com/goplus/llgo/internal/runtime.eface" %102, 1 - %127 = alloca %"github.com/goplus/llgo/internal/runtime.eface", align 8 - %128 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.eface", ptr %127, i32 0, i32 0 - store ptr %113, ptr %128, align 8 - %129 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.eface", ptr %127, i32 0, i32 1 - store ptr %126, ptr %129, align 8 - %130 = load %"github.com/goplus/llgo/internal/runtime.eface", ptr %127, align 8 - %131 = extractvalue %"github.com/goplus/llgo/internal/runtime.eface" %130, 0 - %132 = load ptr, ptr @"_llgo_iface$uRUteI7wmSy7y7ODhGzk0FdDaxGKMhVSSu6HZEv9aa0", align 8 - %133 = call i1 @"github.com/goplus/llgo/internal/runtime.Implements"(ptr %132, ptr %131) - br i1 %133, label %_llgo_5, label %_llgo_6 + %185 = extractvalue %"github.com/goplus/llgo/internal/runtime.eface" %161, 1 + %186 = alloca %"github.com/goplus/llgo/internal/runtime.eface", align 8 + %187 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.eface", ptr %186, i32 0, i32 0 + store ptr %172, ptr %187, align 8 + %188 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.eface", ptr %186, i32 0, i32 1 + store ptr %185, ptr %188, align 8 + %189 = load %"github.com/goplus/llgo/internal/runtime.eface", ptr %186, align 8 + %190 = extractvalue %"github.com/goplus/llgo/internal/runtime.eface" %189, 0 + %191 = load ptr, ptr @"_llgo_iface$uRUteI7wmSy7y7ODhGzk0FdDaxGKMhVSSu6HZEv9aa0", align 8 + %192 = call i1 @"github.com/goplus/llgo/internal/runtime.Implements"(ptr %191, ptr %190) + br i1 %192, label %_llgo_5, label %_llgo_6 _llgo_4: ; preds = %_llgo_1 - %134 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %135 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %134, i32 0, i32 0 - store ptr @15, ptr %135, align 8 - %136 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %134, i32 0, i32 1 - store i64 21, ptr %136, align 4 - %137 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %134, align 8 - %138 = load ptr, ptr @_llgo_string, align 8 - %139 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 16) - store %"github.com/goplus/llgo/internal/runtime.String" %137, ptr %139, align 8 - %140 = alloca %"github.com/goplus/llgo/internal/runtime.eface", align 8 - %141 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.eface", ptr %140, i32 0, i32 0 - store ptr %138, ptr %141, align 8 - %142 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.eface", ptr %140, i32 0, i32 1 - store ptr %139, ptr %142, align 8 - %143 = load %"github.com/goplus/llgo/internal/runtime.eface", ptr %140, align 8 - call void @"github.com/goplus/llgo/internal/runtime.Panic"(%"github.com/goplus/llgo/internal/runtime.eface" %143) + %193 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %194 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %193, i32 0, i32 0 + store ptr @24, ptr %194, align 8 + %195 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %193, i32 0, i32 1 + store i64 21, ptr %195, align 4 + %196 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %193, align 8 + %197 = load ptr, ptr @_llgo_string, align 8 + %198 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 16) + store %"github.com/goplus/llgo/internal/runtime.String" %196, ptr %198, align 8 + %199 = alloca %"github.com/goplus/llgo/internal/runtime.eface", align 8 + %200 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.eface", ptr %199, i32 0, i32 0 + store ptr %197, ptr %200, align 8 + %201 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.eface", ptr %199, i32 0, i32 1 + store ptr %198, ptr %201, align 8 + %202 = load %"github.com/goplus/llgo/internal/runtime.eface", ptr %199, align 8 + call void @"github.com/goplus/llgo/internal/runtime.Panic"(%"github.com/goplus/llgo/internal/runtime.eface" %202) unreachable _llgo_5: ; preds = %_llgo_3 - %144 = extractvalue %"github.com/goplus/llgo/internal/runtime.eface" %130, 1 - %145 = load ptr, ptr @"_llgo_iface$uRUteI7wmSy7y7ODhGzk0FdDaxGKMhVSSu6HZEv9aa0", align 8 - %146 = call ptr @"github.com/goplus/llgo/internal/runtime.NewItab"(ptr %145, ptr %131) - %147 = alloca %"github.com/goplus/llgo/internal/runtime.iface", align 8 - %148 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.iface", ptr %147, i32 0, i32 0 - store ptr %146, ptr %148, align 8 - %149 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.iface", ptr %147, i32 0, i32 1 - store ptr %144, ptr %149, align 8 - %150 = load %"github.com/goplus/llgo/internal/runtime.iface", ptr %147, align 8 - call void @main.invoke(%"github.com/goplus/llgo/internal/runtime.iface" %150) - call void @main.invoke(%"github.com/goplus/llgo/internal/runtime.iface" zeroinitializer) + %203 = extractvalue %"github.com/goplus/llgo/internal/runtime.eface" %189, 1 + %204 = load ptr, ptr @"_llgo_iface$uRUteI7wmSy7y7ODhGzk0FdDaxGKMhVSSu6HZEv9aa0", align 8 + %205 = call ptr @"github.com/goplus/llgo/internal/runtime.NewItab"(ptr %204, ptr %190) + %206 = alloca %"github.com/goplus/llgo/internal/runtime.iface", align 8 + %207 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.iface", ptr %206, i32 0, i32 0 + store ptr %205, ptr %207, align 8 + %208 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.iface", ptr %206, i32 0, i32 1 + store ptr %203, ptr %208, align 8 + %209 = load %"github.com/goplus/llgo/internal/runtime.iface", ptr %206, align 8 + call void @main.invoke(%"github.com/goplus/llgo/internal/runtime.iface" %209) ret i32 0 _llgo_6: ; preds = %_llgo_3 - %151 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %152 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %151, i32 0, i32 0 - store ptr @15, ptr %152, align 8 - %153 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %151, i32 0, i32 1 - store i64 21, ptr %153, align 4 - %154 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %151, align 8 - %155 = load ptr, ptr @_llgo_string, align 8 - %156 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 16) - store %"github.com/goplus/llgo/internal/runtime.String" %154, ptr %156, align 8 - %157 = alloca %"github.com/goplus/llgo/internal/runtime.eface", align 8 - %158 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.eface", ptr %157, i32 0, i32 0 - store ptr %155, ptr %158, align 8 - %159 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.eface", ptr %157, i32 0, i32 1 - store ptr %156, ptr %159, align 8 - %160 = load %"github.com/goplus/llgo/internal/runtime.eface", ptr %157, align 8 - call void @"github.com/goplus/llgo/internal/runtime.Panic"(%"github.com/goplus/llgo/internal/runtime.eface" %160) + %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 @24, ptr %211, align 8 + %212 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %210, i32 0, i32 1 + store i64 21, ptr %212, align 4 + %213 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %210, align 8 + %214 = load ptr, ptr @_llgo_string, align 8 + %215 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 16) + store %"github.com/goplus/llgo/internal/runtime.String" %213, ptr %215, align 8 + %216 = alloca %"github.com/goplus/llgo/internal/runtime.eface", align 8 + %217 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.eface", ptr %216, i32 0, i32 0 + store ptr %214, ptr %217, align 8 + %218 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.eface", ptr %216, i32 0, i32 1 + store ptr %215, ptr %218, align 8 + %219 = load %"github.com/goplus/llgo/internal/runtime.eface", ptr %216, align 8 + call void @"github.com/goplus/llgo/internal/runtime.Panic"(%"github.com/goplus/llgo/internal/runtime.eface" %219) unreachable } +define i64 @"main.main$1"() { +_llgo_0: + ret i64 400 +} + declare ptr @"github.com/goplus/llgo/internal/runtime.Zeroinit"(ptr, i64) declare void @"github.com/goplus/llgo/internal/runtime.PrintString"(%"github.com/goplus/llgo/internal/runtime.String") @@ -451,6 +637,12 @@ declare void @"github.com/goplus/llgo/internal/runtime.init"() declare ptr @"github.com/goplus/llgo/internal/runtime.AllocZ"(i64) +define linkonce i64 @"__llgo_stub.main.main$1"(ptr %0) { +_llgo_0: + %1 = tail call i64 @"main.main$1"() + ret i64 %1 +} + define void @"main.init$after"() { _llgo_0: %0 = load ptr, ptr @_llgo_main.T, align 8 @@ -465,7 +657,7 @@ _llgo_1: ; preds = %_llgo_0 _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 @5, ptr %4, align 8 + 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 @@ -479,7 +671,7 @@ _llgo_2: ; preds = %_llgo_1, %_llgo_0 %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 @6, ptr %14, align 8 + 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 @@ -502,7 +694,7 @@ _llgo_2: ; preds = %_llgo_1, %_llgo_0 _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 @7, ptr %27, align 8 + 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 @@ -517,636 +709,1007 @@ _llgo_4: ; preds = %_llgo_10, %_llgo_2 br i1 %34, label %_llgo_11, label %_llgo_12 _llgo_5: ; preds = %_llgo_3 - %35 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 2) - %36 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Type", ptr %35, i32 0, i32 6 - %37 = load i8, ptr %36, align 1 - %38 = or i8 %37, 32 - store i8 %38, ptr %36, align 1 + %35 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 34) store ptr %35, ptr @_llgo_int, align 8 br label %_llgo_6 _llgo_6: ; preds = %_llgo_5, %_llgo_3 - %39 = load ptr, ptr @_llgo_int, align 8 - %40 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 - %41 = icmp eq ptr %40, null - br i1 %41, label %_llgo_7, label %_llgo_8 + %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 _llgo_7: ; preds = %_llgo_6 - %42 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 0) - %43 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %44 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %43, i32 0, i32 0 - store ptr %42, ptr %44, align 8 - %45 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %43, i32 0, i32 1 - store i64 0, ptr %45, align 4 - %46 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %43, i32 0, i32 2 - store i64 0, ptr %46, align 4 - %47 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %43, align 8 - %48 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 8) - %49 = getelementptr ptr, ptr %48, i64 0 - store ptr %39, ptr %49, align 8 - %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 %48, ptr %51, align 8 - %52 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %50, i32 0, i32 1 - store i64 1, ptr %52, align 4 - %53 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %50, i32 0, i32 2 - store i64 1, 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.Func"(%"github.com/goplus/llgo/internal/runtime.Slice" %47, %"github.com/goplus/llgo/internal/runtime.Slice" %54, i1 false) - store ptr %55, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 + %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) + store ptr %52, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 br label %_llgo_8 _llgo_8: ; preds = %_llgo_7, %_llgo_6 - %56 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", 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" %29, ptr %58, align 8 - %59 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %57, i32 0, i32 1 - store ptr %56, ptr %59, align 8 - %60 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %57, i32 0, i32 2 - store ptr @"main.(*T).Invoke", ptr %60, align 8 - %61 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %57, i32 0, i32 3 - store ptr @"main.(*T).Invoke", ptr %61, align 8 - %62 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %57, 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" %29, ptr %64, align 8 - %65 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %63, i32 0, i32 1 - store ptr %56, ptr %65, align 8 - %66 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %63, i32 0, i32 2 - store ptr @"main.(*T).Invoke", ptr %66, align 8 - %67 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %63, i32 0, i32 3 - store ptr @main.T.Invoke, 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 @8, ptr %70, align 8 - %71 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %69, i32 0, i32 1 - store i64 6, 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 = icmp eq ptr %73, null - br i1 %74, label %_llgo_9, label %_llgo_10 + %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 _llgo_9: ; preds = %_llgo_8 - %75 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 0) - %76 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %77 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %76, i32 0, i32 0 - store ptr %75, ptr %77, align 8 - %78 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %76, i32 0, i32 1 - store i64 0, ptr %78, align 4 - %79 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %76, i32 0, i32 2 - store i64 0, ptr %79, align 4 - %80 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %76, align 8 - %81 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 0) - %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 %81, ptr %83, align 8 - %84 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %82, i32 0, i32 1 - store i64 0, ptr %84, align 4 - %85 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %82, i32 0, i32 2 - store i64 0, 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" %80, %"github.com/goplus/llgo/internal/runtime.Slice" %86, i1 false) - store ptr %87, ptr @"_llgo_func$2_iS07vIlF2_rZqWB5eU0IvP_9HviM4MYZNkXZDvbac", align 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) + store ptr %84, ptr @"_llgo_func$2_iS07vIlF2_rZqWB5eU0IvP_9HviM4MYZNkXZDvbac", align 8 br label %_llgo_10 _llgo_10: ; preds = %_llgo_9, %_llgo_8 - %88 = load ptr, ptr @"_llgo_func$2_iS07vIlF2_rZqWB5eU0IvP_9HviM4MYZNkXZDvbac", 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" %72, 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.(*T).Method", ptr %92, align 8 - %93 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %89, i32 0, i32 3 - store ptr @"main.(*T).Method", ptr %93, align 8 - %94 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %89, align 8 - %95 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 40) - %96 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %95, i64 0 - store %"github.com/goplus/llgo/internal/abi.Method" %68, ptr %96, align 8 - %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 %95, ptr %98, align 8 - %99 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %97, i32 0, i32 1 - store i64 1, ptr %99, align 4 - %100 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %97, i32 0, i32 2 - store i64 1, 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 80) - %103 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %102, i64 0 - store %"github.com/goplus/llgo/internal/abi.Method" %62, ptr %103, align 8 - %104 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %102, i64 1 - store %"github.com/goplus/llgo/internal/abi.Method" %94, ptr %104, align 8 - %105 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %106 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %105, i32 0, i32 0 - store ptr %102, ptr %106, align 8 - %107 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %105, i32 0, i32 1 - store i64 2, ptr %107, align 4 - %108 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %105, i32 0, i32 2 - store i64 2, ptr %108, align 4 - %109 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %105, 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 @6, ptr %111, align 8 - %112 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %110, i32 0, i32 1 - store i64 4, ptr %112, align 4 - %113 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %110, align 8 - %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 @9, ptr %115, align 8 - %116 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %114, i32 0, i32 1 - store i64 1, ptr %116, align 4 - %117 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %114, align 8 - call void @"github.com/goplus/llgo/internal/runtime.InitNamed"(ptr %2, %"github.com/goplus/llgo/internal/runtime.String" %113, %"github.com/goplus/llgo/internal/runtime.String" %117, ptr %25, %"github.com/goplus/llgo/internal/runtime.Slice" %101, %"github.com/goplus/llgo/internal/runtime.Slice" %109) + %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 + %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 + %113 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %111, i32 0, i32 1 + store i64 1, 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 %2, %"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 - %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 @7, ptr %119, align 8 - %120 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %118, i32 0, i32 1 - store i64 6, ptr %120, align 4 - %121 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %118, align 8 - %122 = alloca %"github.com/goplus/llgo/internal/abi.Imethod", align 8 - %123 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Imethod", ptr %122, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %121, ptr %123, align 8 - %124 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Imethod", ptr %122, i32 0, i32 1 - store ptr %32, ptr %124, align 8 - %125 = load %"github.com/goplus/llgo/internal/abi.Imethod", ptr %122, align 8 - %126 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 24) - %127 = getelementptr %"github.com/goplus/llgo/internal/abi.Imethod", ptr %126, i64 0 - store %"github.com/goplus/llgo/internal/abi.Imethod" %125, ptr %127, align 8 - %128 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %129 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %128, i32 0, i32 0 - store ptr %126, ptr %129, align 8 - %130 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %128, i32 0, i32 1 - store i64 1, ptr %130, align 4 - %131 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %128, i32 0, i32 2 - store i64 1, ptr %131, align 4 - %132 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %128, 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 @6, 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.Interface"(%"github.com/goplus/llgo/internal/runtime.String" %136, %"github.com/goplus/llgo/internal/runtime.String" %140, %"github.com/goplus/llgo/internal/runtime.Slice" %132) - store ptr %141, ptr @"_llgo_iface$uRUteI7wmSy7y7ODhGzk0FdDaxGKMhVSSu6HZEv9aa0", align 8 + %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 + %117 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %115, i32 0, i32 1 + store i64 6, 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 + %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 + %136 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %134, i32 0, i32 1 + store i64 0, 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 br label %_llgo_12 _llgo_12: ; preds = %_llgo_11, %_llgo_4 - %142 = load ptr, ptr @"*_llgo_main.T", align 8 - %143 = icmp eq ptr %142, null - br i1 %143, label %_llgo_13, label %_llgo_14 + %139 = load ptr, ptr @"*_llgo_main.T", align 8 + %140 = icmp eq ptr %139, null + br i1 %140, label %_llgo_13, label %_llgo_14 _llgo_13: ; preds = %_llgo_12 - %144 = call ptr @"github.com/goplus/llgo/internal/runtime.PointerTo"(ptr %2) - store ptr %144, ptr @"*_llgo_main.T", align 8 + %141 = call ptr @"github.com/goplus/llgo/internal/runtime.PointerTo"(ptr %2) + store ptr %141, ptr @"*_llgo_main.T", align 8 br label %_llgo_14 _llgo_14: ; preds = %_llgo_13, %_llgo_12 - %145 = load ptr, ptr @_llgo_main.T1, align 8 - %146 = icmp eq ptr %145, null - br i1 %146, label %_llgo_15, label %_llgo_16 + %142 = load ptr, ptr @_llgo_main.T1, align 8 + %143 = icmp eq ptr %142, null + br i1 %143, label %_llgo_15, label %_llgo_16 _llgo_15: ; preds = %_llgo_14 - %147 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(i64 2, i64 1, i64 1) - %148 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Type", ptr %147, i32 0, i32 6 - %149 = load i8, ptr %148, align 1 - %150 = or i8 %149, 32 - store i8 %150, ptr %148, align 1 - store ptr %147, ptr @_llgo_main.T1, align 8 + %144 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(i64 2, i64 1, i64 1) + store ptr %144, ptr @_llgo_main.T1, align 8 br label %_llgo_16 _llgo_16: ; preds = %_llgo_15, %_llgo_14 - %151 = load ptr, ptr @_llgo_int, align 8 - br i1 %146, label %_llgo_17, label %_llgo_18 + %145 = load ptr, ptr @_llgo_int, align 8 + br i1 %143, label %_llgo_17, label %_llgo_18 _llgo_17: ; preds = %_llgo_16 - %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 @7, ptr %153, align 8 - %154 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %152, i32 0, i32 1 - store i64 6, ptr %154, align 4 - %155 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %152, align 8 - %156 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", 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 @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" %155, ptr %158, align 8 + 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 %156, ptr %159, align 8 + 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 + store ptr @main.T1.Invoke, ptr %161, align 8 %162 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %157, align 8 - %163 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 - %164 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %163, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %155, ptr %164, align 8 - %165 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %163, i32 0, i32 1 - store ptr %156, ptr %165, align 8 - %166 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %163, i32 0, i32 2 - store ptr @"main.(*T1).Invoke", ptr %166, align 8 - %167 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %163, i32 0, i32 3 - store ptr @main.T1.Invoke, ptr %167, align 8 - %168 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %163, align 8 - %169 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 40) - %170 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %169, i64 0 - store %"github.com/goplus/llgo/internal/abi.Method" %168, ptr %170, align 8 - %171 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %172 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %171, i32 0, i32 0 - store ptr %169, ptr %172, align 8 - %173 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %171, i32 0, i32 1 - store i64 1, ptr %173, align 4 - %174 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %171, i32 0, i32 2 + %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 + 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 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %171, 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" %162, 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 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %184 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %183, i32 0, i32 0 - store ptr @6, ptr %184, align 8 - %185 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %183, i32 0, i32 1 - store i64 4, ptr %185, align 4 - %186 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %183, align 8 - %187 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %188 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %187, i32 0, i32 0 - store ptr @10, ptr %188, align 8 - %189 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %187, i32 0, i32 1 - store i64 2, ptr %189, align 4 - %190 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %187, align 8 - call void @"github.com/goplus/llgo/internal/runtime.InitNamed"(ptr %147, %"github.com/goplus/llgo/internal/runtime.String" %186, %"github.com/goplus/llgo/internal/runtime.String" %190, ptr %151, %"github.com/goplus/llgo/internal/runtime.Slice" %175, %"github.com/goplus/llgo/internal/runtime.Slice" %182) + %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 %144, %"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) br label %_llgo_18 _llgo_18: ; preds = %_llgo_17, %_llgo_16 - %191 = load ptr, ptr @"*_llgo_main.T1", align 8 - %192 = icmp eq ptr %191, null - br i1 %192, label %_llgo_19, label %_llgo_20 + %185 = load ptr, ptr @"*_llgo_main.T1", align 8 + %186 = icmp eq ptr %185, null + br i1 %186, label %_llgo_19, label %_llgo_20 _llgo_19: ; preds = %_llgo_18 - %193 = call ptr @"github.com/goplus/llgo/internal/runtime.PointerTo"(ptr %147) - store ptr %193, ptr @"*_llgo_main.T1", align 8 + %187 = call ptr @"github.com/goplus/llgo/internal/runtime.PointerTo"(ptr %144) + store ptr %187, ptr @"*_llgo_main.T1", align 8 br label %_llgo_20 _llgo_20: ; preds = %_llgo_19, %_llgo_18 - %194 = load ptr, ptr @_llgo_main.T2, align 8 - %195 = icmp eq ptr %194, null - br i1 %195, label %_llgo_21, label %_llgo_22 + %188 = load ptr, ptr @_llgo_main.T2, align 8 + %189 = icmp eq ptr %188, null + br i1 %189, label %_llgo_21, label %_llgo_22 _llgo_21: ; preds = %_llgo_20 - %196 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(i64 14, i64 1, i64 1) - %197 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Type", ptr %196, i32 0, i32 6 - %198 = load i8, ptr %197, align 1 - %199 = or i8 %198, 32 - store i8 %199, ptr %197, align 1 - store ptr %196, ptr @_llgo_main.T2, align 8 + %190 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(i64 14, i64 1, i64 1) + store ptr %190, ptr @_llgo_main.T2, align 8 br label %_llgo_22 _llgo_22: ; preds = %_llgo_21, %_llgo_20 - %200 = load ptr, ptr @_llgo_float64, align 8 - %201 = icmp eq ptr %200, null - br i1 %201, label %_llgo_23, label %_llgo_24 + %191 = load ptr, ptr @_llgo_float64, align 8 + %192 = icmp eq ptr %191, null + br i1 %192, label %_llgo_23, label %_llgo_24 _llgo_23: ; preds = %_llgo_22 - %202 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 14) - %203 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Type", ptr %202, i32 0, i32 6 - %204 = load i8, ptr %203, align 1 - %205 = or i8 %204, 32 - store i8 %205, ptr %203, align 1 - store ptr %202, ptr @_llgo_float64, align 8 + %193 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 46) + store ptr %193, ptr @_llgo_float64, align 8 br label %_llgo_24 _llgo_24: ; preds = %_llgo_23, %_llgo_22 - %206 = load ptr, ptr @_llgo_float64, align 8 - br i1 %195, label %_llgo_25, label %_llgo_26 + %194 = load ptr, ptr @_llgo_float64, align 8 + br i1 %189, label %_llgo_25, label %_llgo_26 _llgo_25: ; preds = %_llgo_24 - %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 @7, ptr %208, align 8 - %209 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %207, i32 0, i32 1 - store i64 6, ptr %209, align 4 - %210 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %207, align 8 - %211 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 - %212 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 - %213 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %212, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %210, ptr %213, align 8 - %214 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %212, i32 0, i32 1 - store ptr %211, ptr %214, align 8 - %215 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %212, i32 0, i32 2 - store ptr @"main.(*T2).Invoke", ptr %215, align 8 - %216 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %212, i32 0, i32 3 - store ptr @"main.(*T2).Invoke", ptr %216, align 8 - %217 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %212, align 8 - %218 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 - %219 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %218, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %210, ptr %219, align 8 - %220 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %218, i32 0, i32 1 - store ptr %211, ptr %220, align 8 - %221 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %218, i32 0, i32 2 - store ptr @"main.(*T2).Invoke", ptr %221, align 8 - %222 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %218, i32 0, i32 3 - store ptr @main.T2.Invoke, ptr %222, align 8 - %223 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %218, align 8 - %224 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 40) - %225 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %224, i64 0 - store %"github.com/goplus/llgo/internal/abi.Method" %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 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 40) - %232 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %231, i64 0 - store %"github.com/goplus/llgo/internal/abi.Method" %217, 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 %231, ptr %234, align 8 - %235 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %233, i32 0, i32 1 - store i64 1, ptr %235, align 4 - %236 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %233, i32 0, i32 2 - store i64 1, ptr %236, align 4 - %237 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %233, align 8 - %238 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %239 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %238, i32 0, i32 0 - store ptr @6, ptr %239, align 8 - %240 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %238, i32 0, i32 1 - store i64 4, ptr %240, align 4 - %241 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %238, align 8 - %242 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %243 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %242, i32 0, i32 0 - store ptr @11, ptr %243, align 8 - %244 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %242, i32 0, i32 1 - store i64 2, ptr %244, align 4 - %245 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %242, align 8 - call void @"github.com/goplus/llgo/internal/runtime.InitNamed"(ptr %196, %"github.com/goplus/llgo/internal/runtime.String" %241, %"github.com/goplus/llgo/internal/runtime.String" %245, ptr %206, %"github.com/goplus/llgo/internal/runtime.Slice" %230, %"github.com/goplus/llgo/internal/runtime.Slice" %237) + %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 %190, %"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) br label %_llgo_26 _llgo_26: ; preds = %_llgo_25, %_llgo_24 - %246 = load ptr, ptr @"*_llgo_main.T2", align 8 - %247 = icmp eq ptr %246, null - br i1 %247, label %_llgo_27, label %_llgo_28 + %234 = load ptr, ptr @"*_llgo_main.T2", align 8 + %235 = icmp eq ptr %234, null + br i1 %235, label %_llgo_27, label %_llgo_28 _llgo_27: ; preds = %_llgo_26 - %248 = call ptr @"github.com/goplus/llgo/internal/runtime.PointerTo"(ptr %196) - store ptr %248, ptr @"*_llgo_main.T2", align 8 + %236 = call ptr @"github.com/goplus/llgo/internal/runtime.PointerTo"(ptr %190) + store ptr %236, ptr @"*_llgo_main.T2", align 8 br label %_llgo_28 _llgo_28: ; preds = %_llgo_27, %_llgo_26 - %249 = load ptr, ptr @_llgo_main.T3, align 8 - %250 = icmp eq ptr %249, null - br i1 %250, label %_llgo_29, label %_llgo_30 + %237 = load ptr, ptr @_llgo_main.T3, align 8 + %238 = icmp eq ptr %237, null + br i1 %238, label %_llgo_29, label %_llgo_30 _llgo_29: ; preds = %_llgo_28 - %251 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(i64 3, i64 0, i64 1) - %252 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Type", ptr %251, i32 0, i32 6 - %253 = load i8, ptr %252, align 1 - %254 = or i8 %253, 32 - store i8 %254, ptr %252, align 1 - store ptr %251, ptr @_llgo_main.T3, align 8 + %239 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(i64 3, i64 0, i64 1) + store ptr %239, ptr @_llgo_main.T3, align 8 br label %_llgo_30 _llgo_30: ; preds = %_llgo_29, %_llgo_28 - %255 = load ptr, ptr @_llgo_int8, align 8 - %256 = icmp eq ptr %255, null - br i1 %256, label %_llgo_31, label %_llgo_32 + %240 = load ptr, ptr @_llgo_int8, align 8 + %241 = icmp eq ptr %240, null + br i1 %241, label %_llgo_31, label %_llgo_32 _llgo_31: ; preds = %_llgo_30 - %257 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 3) - %258 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Type", ptr %257, i32 0, i32 6 - %259 = load i8, ptr %258, align 1 - %260 = or i8 %259, 32 - store i8 %260, ptr %258, align 1 - store ptr %257, ptr @_llgo_int8, align 8 + %242 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 35) + store ptr %242, ptr @_llgo_int8, align 8 br label %_llgo_32 _llgo_32: ; preds = %_llgo_31, %_llgo_30 - %261 = load ptr, ptr @_llgo_int8, align 8 - br i1 %250, label %_llgo_33, label %_llgo_34 + %243 = load ptr, ptr @_llgo_int8, align 8 + br i1 %238, 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 @7, ptr %263, align 8 + 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 6, ptr %264, align 4 + store i64 4, ptr %264, align 4 %265 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %262, align 8 - %266 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", 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" %265, ptr %268, align 8 - %269 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %267, i32 0, i32 1 - store ptr %266, ptr %269, align 8 - %270 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %267, i32 0, i32 2 - store ptr @"main.(*T3).Invoke", ptr %270, align 8 - %271 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %267, i32 0, i32 3 - store ptr @"main.(*T3).Invoke", 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 40) - %274 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %273, i64 0 - store %"github.com/goplus/llgo/internal/abi.Method" %272, ptr %274, align 8 - %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 %273, ptr %276, align 8 - %277 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %275, i32 0, i32 1 - store i64 1, ptr %277, align 4 - %278 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %275, i32 0, i32 2 - store i64 1, ptr %278, align 4 - %279 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %275, 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 4, ptr %282, align 4 - %283 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %280, 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 @12, ptr %285, align 8 - %286 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %284, i32 0, i32 1 - store i64 2, ptr %286, align 4 - %287 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %284, align 8 - call void @"github.com/goplus/llgo/internal/runtime.InitNamed"(ptr %251, %"github.com/goplus/llgo/internal/runtime.String" %283, %"github.com/goplus/llgo/internal/runtime.String" %287, ptr %261, { ptr, i64, i64 } zeroinitializer, %"github.com/goplus/llgo/internal/runtime.Slice" %279) + %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 %239, %"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) br label %_llgo_34 _llgo_34: ; preds = %_llgo_33, %_llgo_32 - %288 = load ptr, ptr @"*_llgo_main.T3", align 8 - %289 = icmp eq ptr %288, null - br i1 %289, label %_llgo_35, label %_llgo_36 + %270 = load ptr, ptr @"*_llgo_main.T3", align 8 + %271 = icmp eq ptr %270, null + br i1 %271, label %_llgo_35, label %_llgo_36 _llgo_35: ; preds = %_llgo_34 - %290 = call ptr @"github.com/goplus/llgo/internal/runtime.PointerTo"(ptr %251) - store ptr %290, ptr @"*_llgo_main.T3", align 8 + %272 = call ptr @"github.com/goplus/llgo/internal/runtime.PointerTo"(ptr %239) + store ptr %272, ptr @"*_llgo_main.T3", align 8 br label %_llgo_36 _llgo_36: ; preds = %_llgo_35, %_llgo_34 - %291 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 - %292 = load ptr, ptr @"_llgo_func$2_iS07vIlF2_rZqWB5eU0IvP_9HviM4MYZNkXZDvbac", align 8 - %293 = load ptr, ptr @"_llgo_iface$jwmSdgh1zvY_TDIgLzCkvkbiyrdwl9N806DH0JGcyMI", align 8 - %294 = icmp eq ptr %293, null - br i1 %294, label %_llgo_37, label %_llgo_38 + %273 = load ptr, ptr @_llgo_main.T4, align 8 + %274 = icmp eq ptr %273, null + br i1 %274, label %_llgo_37, label %_llgo_38 _llgo_37: ; preds = %_llgo_36 - %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 @7, ptr %296, align 8 - %297 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %295, i32 0, i32 1 - store i64 6, ptr %297, align 4 - %298 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %295, align 8 - %299 = alloca %"github.com/goplus/llgo/internal/abi.Imethod", align 8 - %300 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Imethod", ptr %299, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %298, ptr %300, align 8 - %301 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Imethod", ptr %299, i32 0, i32 1 - store ptr %291, ptr %301, align 8 - %302 = load %"github.com/goplus/llgo/internal/abi.Imethod", ptr %299, align 8 - %303 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %304 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %303, i32 0, i32 0 - store ptr @8, ptr %304, align 8 - %305 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %303, i32 0, i32 1 - store i64 6, ptr %305, align 4 - %306 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %303, align 8 - %307 = alloca %"github.com/goplus/llgo/internal/abi.Imethod", align 8 - %308 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Imethod", ptr %307, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %306, ptr %308, align 8 - %309 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Imethod", ptr %307, i32 0, i32 1 - store ptr %292, ptr %309, align 8 - %310 = load %"github.com/goplus/llgo/internal/abi.Imethod", ptr %307, align 8 - %311 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 48) - %312 = getelementptr %"github.com/goplus/llgo/internal/abi.Imethod", ptr %311, i64 0 - store %"github.com/goplus/llgo/internal/abi.Imethod" %302, ptr %312, align 8 - %313 = getelementptr %"github.com/goplus/llgo/internal/abi.Imethod", ptr %311, i64 1 - store %"github.com/goplus/llgo/internal/abi.Imethod" %310, ptr %313, align 8 - %314 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %315 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %314, i32 0, i32 0 - store ptr %311, ptr %315, align 8 - %316 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %314, i32 0, i32 1 - store i64 2, ptr %316, align 4 - %317 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %314, i32 0, i32 2 - store i64 2, ptr %317, align 4 - %318 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %314, align 8 - %319 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %320 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %319, i32 0, i32 0 - store ptr @6, ptr %320, align 8 - %321 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %319, i32 0, i32 1 - store i64 4, ptr %321, align 4 - %322 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %319, align 8 - %323 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %324 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %323, i32 0, i32 0 - store ptr null, ptr %324, align 8 - %325 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %323, i32 0, i32 1 - store i64 0, ptr %325, align 4 - %326 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %323, align 8 - %327 = call ptr @"github.com/goplus/llgo/internal/runtime.Interface"(%"github.com/goplus/llgo/internal/runtime.String" %322, %"github.com/goplus/llgo/internal/runtime.String" %326, %"github.com/goplus/llgo/internal/runtime.Slice" %318) - store ptr %327, ptr @"_llgo_iface$jwmSdgh1zvY_TDIgLzCkvkbiyrdwl9N806DH0JGcyMI", align 8 + %275 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(i64 17, i64 1, i64 1) + store ptr %275, ptr @_llgo_main.T4, align 8 br label %_llgo_38 _llgo_38: ; preds = %_llgo_37, %_llgo_36 - %328 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 - %329 = load ptr, ptr @_llgo_main.I, align 8 - %330 = icmp eq ptr %329, null - br i1 %330, label %_llgo_39, label %_llgo_40 + %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 _llgo_39: ; preds = %_llgo_38 - %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 @7, ptr %332, align 8 - %333 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %331, i32 0, i32 1 - store i64 6, ptr %333, align 4 - %334 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %331, align 8 - %335 = alloca %"github.com/goplus/llgo/internal/abi.Imethod", align 8 - %336 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Imethod", ptr %335, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %334, ptr %336, align 8 - %337 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Imethod", ptr %335, i32 0, i32 1 - store ptr %328, ptr %337, align 8 - %338 = load %"github.com/goplus/llgo/internal/abi.Imethod", ptr %335, align 8 - %339 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 24) - %340 = getelementptr %"github.com/goplus/llgo/internal/abi.Imethod", ptr %339, i64 0 - store %"github.com/goplus/llgo/internal/abi.Imethod" %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 = 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 @6, ptr %347, align 8 - %348 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %346, i32 0, i32 1 - store i64 4, ptr %348, align 4 - %349 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %346, align 8 - %350 = 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 @14, 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 = call ptr @"github.com/goplus/llgo/internal/runtime.Interface"(%"github.com/goplus/llgo/internal/runtime.String" %349, %"github.com/goplus/llgo/internal/runtime.String" %353, %"github.com/goplus/llgo/internal/runtime.Slice" %345) - store ptr %354, ptr @_llgo_main.I, align 8 + %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 br label %_llgo_40 _llgo_40: ; preds = %_llgo_39, %_llgo_38 - %355 = load ptr, ptr @_llgo_string, align 8 - %356 = icmp eq ptr %355, null - br i1 %356, label %_llgo_41, label %_llgo_42 + %281 = load ptr, ptr @"[1]_llgo_int", align 8 + br i1 %274, label %_llgo_41, label %_llgo_42 _llgo_41: ; preds = %_llgo_40 - %357 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 24) - store ptr %357, ptr @_llgo_string, align 8 + %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 %275, %"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) br label %_llgo_42 _llgo_42: ; preds = %_llgo_41, %_llgo_40 - %358 = load ptr, ptr @_llgo_any, align 8 - %359 = icmp eq ptr %358, null - br i1 %359, label %_llgo_43, label %_llgo_44 + %321 = load ptr, ptr @"*_llgo_main.T4", align 8 + %322 = icmp eq ptr %321, null + br i1 %322, label %_llgo_43, label %_llgo_44 _llgo_43: ; preds = %_llgo_42 - %360 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 0) - %361 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %362 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %361, i32 0, i32 0 - store ptr %360, ptr %362, align 8 - %363 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %361, i32 0, i32 1 - store i64 0, ptr %363, align 4 - %364 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %361, i32 0, i32 2 - store i64 0, ptr %364, align 4 - %365 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %361, align 8 - %366 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %367 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %366, i32 0, i32 0 - store ptr @6, ptr %367, align 8 - %368 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %366, i32 0, i32 1 - store i64 4, ptr %368, align 4 - %369 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %366, align 8 - %370 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %371 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %370, i32 0, i32 0 - store ptr null, ptr %371, align 8 - %372 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %370, i32 0, i32 1 - store i64 0, ptr %372, align 4 - %373 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %370, align 8 - %374 = call ptr @"github.com/goplus/llgo/internal/runtime.Interface"(%"github.com/goplus/llgo/internal/runtime.String" %369, %"github.com/goplus/llgo/internal/runtime.String" %373, %"github.com/goplus/llgo/internal/runtime.Slice" %365) - store ptr %374, ptr @_llgo_any, align 8 + %323 = call ptr @"github.com/goplus/llgo/internal/runtime.PointerTo"(ptr %275) + store ptr %323, ptr @"*_llgo_main.T4", align 8 br label %_llgo_44 _llgo_44: ; preds = %_llgo_43, %_llgo_42 + %324 = load ptr, ptr @_llgo_main.T5, align 8 + %325 = icmp eq ptr %324, null + br i1 %325, label %_llgo_45, label %_llgo_46 + +_llgo_45: ; preds = %_llgo_44 + %326 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(i64 25, i64 1, i64 1) + store ptr %326, 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 %325, 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 %326, %"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) + 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 + +_llgo_49: ; preds = %_llgo_48 + %391 = call ptr @"github.com/goplus/llgo/internal/runtime.PointerTo"(ptr %326) + store ptr %391, ptr @"*_llgo_main.T5", align 8 + br label %_llgo_50 + +_llgo_50: ; preds = %_llgo_49, %_llgo_48 + %392 = load ptr, ptr @_llgo_main.T6, align 8 + %393 = icmp eq ptr %392, null + br i1 %393, label %_llgo_51, label %_llgo_52 + +_llgo_51: ; preds = %_llgo_50 + %394 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(i64 25, i64 1, i64 1) + store ptr %394, 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 + +_llgo_53: ; preds = %_llgo_52 + %397 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 58) + store ptr %397, 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 %393, 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 + 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 + 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 %394, %"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) + 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 + +_llgo_57: ; preds = %_llgo_56 + %489 = call ptr @"github.com/goplus/llgo/internal/runtime.PointerTo"(ptr %394) + store ptr %489, 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 + +_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 + 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 + +_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 + 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 + +_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 + 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 + +_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 + br label %_llgo_66 + +_llgo_66: ; preds = %_llgo_65, %_llgo_64 ret void } @@ -1170,6 +1733,8 @@ declare ptr @"github.com/goplus/llgo/internal/runtime.NewItab"(ptr, ptr) declare ptr @"github.com/goplus/llgo/internal/runtime.PointerTo"(ptr) +declare ptr @"github.com/goplus/llgo/internal/runtime.ArrayOf"(i64, ptr) + declare ptr @"github.com/goplus/llgo/internal/runtime.IfaceType"(%"github.com/goplus/llgo/internal/runtime.iface") declare void @"github.com/goplus/llgo/internal/runtime.PrintIface"(%"github.com/goplus/llgo/internal/runtime.iface") diff --git a/cl/_testgo/reader/out.ll b/cl/_testgo/reader/out.ll index 429257de1..e04e0f2ce 100644 --- a/cl/_testgo/reader/out.ll +++ b/cl/_testgo/reader/out.ll @@ -9,7 +9,6 @@ source_filename = "main" %"github.com/goplus/llgo/internal/runtime.String" = type { ptr, i64 } %main.errorString = type { %"github.com/goplus/llgo/internal/runtime.String" } %main.stringReader = type { %"github.com/goplus/llgo/internal/runtime.String", i64, i64 } -%"github.com/goplus/llgo/internal/abi.Type" = type { i64, i64, i32, i8, i8, i8, i8, { ptr, ptr }, ptr, %"github.com/goplus/llgo/internal/runtime.String", ptr } %"github.com/goplus/llgo/internal/abi.Imethod" = type { %"github.com/goplus/llgo/internal/runtime.String", ptr } %"github.com/goplus/llgo/internal/abi.StructField" = type { %"github.com/goplus/llgo/internal/runtime.String", ptr, i64, %"github.com/goplus/llgo/internal/runtime.String", i1 } %"github.com/goplus/llgo/internal/abi.Method" = type { %"github.com/goplus/llgo/internal/runtime.String", ptr, ptr, ptr } @@ -1116,7 +1115,7 @@ _llgo_0: br i1 %1, label %_llgo_1, label %_llgo_2 _llgo_1: ; preds = %_llgo_0 - %2 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 8) + %2 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 40) %3 = call ptr @"github.com/goplus/llgo/internal/runtime.SliceOf"(ptr %2) store ptr %3, ptr @"[]_llgo_byte", align 8 br label %_llgo_2 @@ -1128,1539 +1127,1523 @@ _llgo_2: ; preds = %_llgo_1, %_llgo_0 br i1 %6, label %_llgo_3, label %_llgo_4 _llgo_3: ; preds = %_llgo_2 - %7 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 2) - %8 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Type", ptr %7, i32 0, i32 6 - %9 = load i8, ptr %8, align 1 - %10 = or i8 %9, 32 - store i8 %10, ptr %8, align 1 + %7 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 34) store ptr %7, ptr @_llgo_int, align 8 br label %_llgo_4 _llgo_4: ; preds = %_llgo_3, %_llgo_2 - %11 = load ptr, ptr @_llgo_int, align 8 - %12 = load ptr, ptr @_llgo_string, align 8 - %13 = icmp eq ptr %12, null - br i1 %13, label %_llgo_5, label %_llgo_6 + %8 = load ptr, ptr @_llgo_int, align 8 + %9 = load ptr, ptr @_llgo_string, align 8 + %10 = icmp eq ptr %9, null + br i1 %10, label %_llgo_5, label %_llgo_6 _llgo_5: ; preds = %_llgo_4 - %14 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 24) - store ptr %14, ptr @_llgo_string, align 8 + %11 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 24) + store ptr %11, ptr @_llgo_string, align 8 br label %_llgo_6 _llgo_6: ; preds = %_llgo_5, %_llgo_4 - %15 = load ptr, ptr @_llgo_string, align 8 - %16 = load ptr, ptr @"_llgo_func$zNDVRsWTIpUPKouNUS805RGX--IV9qVK8B31IZbg5to", align 8 - %17 = icmp eq ptr %16, null - br i1 %17, label %_llgo_7, label %_llgo_8 + %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 _llgo_7: ; preds = %_llgo_6 - %18 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 0) - %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 %18, ptr %20, align 8 - %21 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %19, i32 0, i32 1 - store i64 0, ptr %21, align 4 - %22 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %19, i32 0, i32 2 - store i64 0, 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.AllocU"(i64 8) - %25 = getelementptr ptr, ptr %24, i64 0 - store ptr %15, ptr %25, align 8 - %26 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %27 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %26, i32 0, i32 0 - store ptr %24, ptr %27, align 8 - %28 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %26, i32 0, i32 1 - store i64 1, ptr %28, align 4 - %29 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %26, i32 0, i32 2 - store i64 1, ptr %29, align 4 - %30 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %26, align 8 - %31 = call ptr @"github.com/goplus/llgo/internal/runtime.Func"(%"github.com/goplus/llgo/internal/runtime.Slice" %23, %"github.com/goplus/llgo/internal/runtime.Slice" %30, i1 false) - store ptr %31, ptr @"_llgo_func$zNDVRsWTIpUPKouNUS805RGX--IV9qVK8B31IZbg5to", align 8 + %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) + store ptr %28, ptr @"_llgo_func$zNDVRsWTIpUPKouNUS805RGX--IV9qVK8B31IZbg5to", align 8 br label %_llgo_8 _llgo_8: ; preds = %_llgo_7, %_llgo_6 - %32 = load ptr, ptr @"_llgo_func$zNDVRsWTIpUPKouNUS805RGX--IV9qVK8B31IZbg5to", align 8 - %33 = load ptr, ptr @_llgo_error, align 8 - %34 = icmp eq ptr %33, null - br i1 %34, label %_llgo_9, label %_llgo_10 + %29 = load ptr, ptr @"_llgo_func$zNDVRsWTIpUPKouNUS805RGX--IV9qVK8B31IZbg5to", align 8 + %30 = load ptr, ptr @_llgo_error, align 8 + %31 = icmp eq ptr %30, null + br i1 %31, label %_llgo_9, label %_llgo_10 _llgo_9: ; preds = %_llgo_8 - %35 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %36 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %35, i32 0, i32 0 - store ptr @0, ptr %36, align 8 - %37 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %35, i32 0, i32 1 - store i64 5, ptr %37, align 4 - %38 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %35, align 8 - %39 = alloca %"github.com/goplus/llgo/internal/abi.Imethod", align 8 - %40 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Imethod", ptr %39, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %38, ptr %40, align 8 - %41 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Imethod", ptr %39, i32 0, i32 1 - store ptr %32, ptr %41, align 8 - %42 = load %"github.com/goplus/llgo/internal/abi.Imethod", ptr %39, align 8 - %43 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 24) - %44 = getelementptr %"github.com/goplus/llgo/internal/abi.Imethod", ptr %43, i64 0 - store %"github.com/goplus/llgo/internal/abi.Imethod" %42, ptr %44, align 8 - %45 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %46 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %45, i32 0, i32 0 - store ptr %43, ptr %46, align 8 - %47 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %45, i32 0, i32 1 - store i64 1, ptr %47, align 4 - %48 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %45, i32 0, i32 2 - store i64 1, ptr %48, align 4 - %49 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %45, align 8 - %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 @1, ptr %51, align 8 - %52 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %50, i32 0, i32 1 - store i64 4, ptr %52, align 4 - %53 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %50, align 8 - %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 @2, ptr %55, align 8 - %56 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %54, i32 0, i32 1 - store i64 5, ptr %56, align 4 - %57 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %54, align 8 - %58 = call ptr @"github.com/goplus/llgo/internal/runtime.Interface"(%"github.com/goplus/llgo/internal/runtime.String" %53, %"github.com/goplus/llgo/internal/runtime.String" %57, %"github.com/goplus/llgo/internal/runtime.Slice" %49) - store ptr %58, ptr @_llgo_error, 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 @0, ptr %33, align 8 + %34 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %32, i32 0, i32 1 + store i64 5, ptr %34, align 4 + %35 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %32, align 8 + %36 = alloca %"github.com/goplus/llgo/internal/abi.Imethod", align 8 + %37 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Imethod", ptr %36, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %35, ptr %37, align 8 + %38 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Imethod", ptr %36, i32 0, i32 1 + store ptr %29, ptr %38, align 8 + %39 = load %"github.com/goplus/llgo/internal/abi.Imethod", ptr %36, align 8 + %40 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 24) + %41 = getelementptr %"github.com/goplus/llgo/internal/abi.Imethod", ptr %40, i64 0 + store %"github.com/goplus/llgo/internal/abi.Imethod" %39, 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 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %48 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %47, i32 0, i32 0 + store ptr @1, ptr %48, align 8 + %49 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %47, i32 0, i32 1 + store i64 4, ptr %49, align 4 + %50 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %47, align 8 + %51 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %52 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %51, i32 0, i32 0 + store ptr @2, ptr %52, align 8 + %53 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %51, i32 0, i32 1 + store i64 5, ptr %53, align 4 + %54 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %51, align 8 + %55 = call ptr @"github.com/goplus/llgo/internal/runtime.Interface"(%"github.com/goplus/llgo/internal/runtime.String" %50, %"github.com/goplus/llgo/internal/runtime.String" %54, %"github.com/goplus/llgo/internal/runtime.Slice" %46) + store ptr %55, ptr @_llgo_error, align 8 br label %_llgo_10 _llgo_10: ; preds = %_llgo_9, %_llgo_8 - %59 = load ptr, ptr @_llgo_error, align 8 - %60 = load ptr, ptr @"_llgo_func$06yPPin-fnDnxFKkLLcJ1GEUhIobjPimde7T_Id_hmY", align 8 - %61 = icmp eq ptr %60, null - br i1 %61, label %_llgo_11, label %_llgo_12 + %56 = load ptr, ptr @_llgo_error, align 8 + %57 = load ptr, ptr @"_llgo_func$06yPPin-fnDnxFKkLLcJ1GEUhIobjPimde7T_Id_hmY", align 8 + %58 = icmp eq ptr %57, null + br i1 %58, label %_llgo_11, label %_llgo_12 _llgo_11: ; preds = %_llgo_10 - %62 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 8) - %63 = getelementptr ptr, ptr %62, i64 0 - store ptr %4, ptr %63, align 8 - %64 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %65 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %64, i32 0, i32 0 - store ptr %62, ptr %65, align 8 - %66 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %64, i32 0, i32 1 - store i64 1, ptr %66, align 4 - %67 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %64, i32 0, i32 2 - store i64 1, ptr %67, align 4 - %68 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %64, align 8 - %69 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 16) - %70 = getelementptr ptr, ptr %69, i64 0 - store ptr %11, ptr %70, align 8 - %71 = getelementptr ptr, ptr %69, i64 1 - store ptr %59, ptr %71, align 8 - %72 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %73 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %72, i32 0, i32 0 - store ptr %69, ptr %73, align 8 - %74 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %72, i32 0, i32 1 - store i64 2, ptr %74, align 4 - %75 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %72, i32 0, i32 2 - store i64 2, ptr %75, align 4 - %76 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %72, align 8 - %77 = call ptr @"github.com/goplus/llgo/internal/runtime.Func"(%"github.com/goplus/llgo/internal/runtime.Slice" %68, %"github.com/goplus/llgo/internal/runtime.Slice" %76, i1 false) - store ptr %77, ptr @"_llgo_func$06yPPin-fnDnxFKkLLcJ1GEUhIobjPimde7T_Id_hmY", align 8 + %59 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 8) + %60 = getelementptr ptr, ptr %59, i64 0 + store ptr %4, 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 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 16) + %67 = getelementptr ptr, ptr %66, i64 0 + store ptr %8, ptr %67, align 8 + %68 = getelementptr ptr, ptr %66, i64 1 + store ptr %56, 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 %66, ptr %70, align 8 + %71 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %69, i32 0, i32 1 + store i64 2, ptr %71, align 4 + %72 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %69, i32 0, i32 2 + store i64 2, 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.Func"(%"github.com/goplus/llgo/internal/runtime.Slice" %65, %"github.com/goplus/llgo/internal/runtime.Slice" %73, i1 false) + store ptr %74, ptr @"_llgo_func$06yPPin-fnDnxFKkLLcJ1GEUhIobjPimde7T_Id_hmY", align 8 br label %_llgo_12 _llgo_12: ; preds = %_llgo_11, %_llgo_10 - %78 = load ptr, ptr @"_llgo_func$06yPPin-fnDnxFKkLLcJ1GEUhIobjPimde7T_Id_hmY", align 8 - %79 = load ptr, ptr @_llgo_main.Writer, align 8 - %80 = icmp eq ptr %79, null - br i1 %80, label %_llgo_13, label %_llgo_14 + %75 = load ptr, ptr @"_llgo_func$06yPPin-fnDnxFKkLLcJ1GEUhIobjPimde7T_Id_hmY", align 8 + %76 = load ptr, ptr @_llgo_main.Writer, align 8 + %77 = icmp eq ptr %76, null + br i1 %77, label %_llgo_13, label %_llgo_14 _llgo_13: ; preds = %_llgo_12 - %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 @3, ptr %82, align 8 - %83 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %81, i32 0, i32 1 - store i64 5, ptr %83, align 4 - %84 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %81, align 8 - %85 = alloca %"github.com/goplus/llgo/internal/abi.Imethod", align 8 - %86 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Imethod", ptr %85, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %84, ptr %86, align 8 - %87 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Imethod", ptr %85, i32 0, i32 1 - store ptr %78, ptr %87, align 8 - %88 = load %"github.com/goplus/llgo/internal/abi.Imethod", ptr %85, align 8 - %89 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 24) - %90 = getelementptr %"github.com/goplus/llgo/internal/abi.Imethod", ptr %89, i64 0 - store %"github.com/goplus/llgo/internal/abi.Imethod" %88, 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 %89, ptr %92, align 8 - %93 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %91, i32 0, i32 1 - store i64 1, ptr %93, align 4 - %94 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %91, i32 0, i32 2 - store i64 1, ptr %94, align 4 - %95 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %91, 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 @1, ptr %97, align 8 - %98 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %96, i32 0, i32 1 - store i64 4, ptr %98, align 4 - %99 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %96, align 8 - %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 @4, ptr %101, align 8 - %102 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %100, i32 0, i32 1 - store i64 11, ptr %102, align 4 - %103 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %100, align 8 - %104 = call ptr @"github.com/goplus/llgo/internal/runtime.Interface"(%"github.com/goplus/llgo/internal/runtime.String" %99, %"github.com/goplus/llgo/internal/runtime.String" %103, %"github.com/goplus/llgo/internal/runtime.Slice" %95) - store ptr %104, ptr @_llgo_main.Writer, align 8 + %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 5, ptr %80, align 4 + %81 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %78, align 8 + %82 = alloca %"github.com/goplus/llgo/internal/abi.Imethod", align 8 + %83 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Imethod", ptr %82, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %81, ptr %83, align 8 + %84 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Imethod", ptr %82, i32 0, i32 1 + store ptr %75, ptr %84, align 8 + %85 = load %"github.com/goplus/llgo/internal/abi.Imethod", ptr %82, align 8 + %86 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 24) + %87 = getelementptr %"github.com/goplus/llgo/internal/abi.Imethod", ptr %86, i64 0 + store %"github.com/goplus/llgo/internal/abi.Imethod" %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 = 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 @4, ptr %98, align 8 + %99 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %97, i32 0, i32 1 + store i64 11, 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.Interface"(%"github.com/goplus/llgo/internal/runtime.String" %96, %"github.com/goplus/llgo/internal/runtime.String" %100, %"github.com/goplus/llgo/internal/runtime.Slice" %92) + store ptr %101, ptr @_llgo_main.Writer, align 8 br label %_llgo_14 _llgo_14: ; preds = %_llgo_13, %_llgo_12 - %105 = load ptr, ptr @_llgo_main.Writer, align 8 - %106 = load ptr, ptr @_llgo_int64, align 8 - %107 = icmp eq ptr %106, null - br i1 %107, label %_llgo_15, label %_llgo_16 + %102 = load ptr, ptr @_llgo_main.Writer, align 8 + %103 = load ptr, ptr @_llgo_int64, align 8 + %104 = icmp eq ptr %103, null + br i1 %104, label %_llgo_15, label %_llgo_16 _llgo_15: ; preds = %_llgo_14 - %108 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 6) - %109 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Type", ptr %108, i32 0, i32 6 - %110 = load i8, ptr %109, align 1 - %111 = or i8 %110, 32 - store i8 %111, ptr %109, align 1 - store ptr %108, ptr @_llgo_int64, align 8 + %105 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 38) + store ptr %105, ptr @_llgo_int64, align 8 br label %_llgo_16 _llgo_16: ; preds = %_llgo_15, %_llgo_14 - %112 = load ptr, ptr @_llgo_int64, align 8 - %113 = load ptr, ptr @_llgo_error, align 8 - %114 = load ptr, ptr @"_llgo_func$MrYxYl10p_I07B55pBsGw9la9zbzU2vGDPLWrT714Uk", align 8 - %115 = icmp eq ptr %114, null - br i1 %115, label %_llgo_17, label %_llgo_18 + %106 = load ptr, ptr @_llgo_int64, align 8 + %107 = load ptr, ptr @_llgo_error, align 8 + %108 = load ptr, ptr @"_llgo_func$MrYxYl10p_I07B55pBsGw9la9zbzU2vGDPLWrT714Uk", align 8 + %109 = icmp eq ptr %108, null + br i1 %109, label %_llgo_17, label %_llgo_18 _llgo_17: ; preds = %_llgo_16 - %116 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 8) - %117 = getelementptr ptr, ptr %116, i64 0 - store ptr %105, ptr %117, align 8 - %118 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %119 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %118, i32 0, i32 0 - store ptr %116, ptr %119, align 8 - %120 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %118, i32 0, i32 1 - store i64 1, ptr %120, align 4 - %121 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %118, i32 0, i32 2 - store i64 1, ptr %121, align 4 - %122 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %118, align 8 - %123 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 16) - %124 = getelementptr ptr, ptr %123, i64 0 - store ptr %112, ptr %124, align 8 - %125 = getelementptr ptr, ptr %123, i64 1 - store ptr %113, ptr %125, align 8 - %126 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %127 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %126, i32 0, i32 0 - store ptr %123, ptr %127, align 8 - %128 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %126, i32 0, i32 1 - store i64 2, ptr %128, align 4 - %129 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %126, i32 0, i32 2 - store i64 2, ptr %129, align 4 - %130 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %126, align 8 - %131 = call ptr @"github.com/goplus/llgo/internal/runtime.Func"(%"github.com/goplus/llgo/internal/runtime.Slice" %122, %"github.com/goplus/llgo/internal/runtime.Slice" %130, i1 false) - store ptr %131, ptr @"_llgo_func$MrYxYl10p_I07B55pBsGw9la9zbzU2vGDPLWrT714Uk", align 8 + %110 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 8) + %111 = getelementptr ptr, ptr %110, i64 0 + store ptr %102, 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.AllocU"(i64 16) + %118 = getelementptr ptr, ptr %117, i64 0 + store ptr %106, ptr %118, align 8 + %119 = getelementptr ptr, ptr %117, i64 1 + store ptr %107, ptr %119, align 8 + %120 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %121 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %120, i32 0, i32 0 + store ptr %117, ptr %121, align 8 + %122 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %120, i32 0, i32 1 + store i64 2, ptr %122, align 4 + %123 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %120, i32 0, i32 2 + store i64 2, ptr %123, align 4 + %124 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %120, align 8 + %125 = call ptr @"github.com/goplus/llgo/internal/runtime.Func"(%"github.com/goplus/llgo/internal/runtime.Slice" %116, %"github.com/goplus/llgo/internal/runtime.Slice" %124, i1 false) + store ptr %125, ptr @"_llgo_func$MrYxYl10p_I07B55pBsGw9la9zbzU2vGDPLWrT714Uk", align 8 br label %_llgo_18 _llgo_18: ; preds = %_llgo_17, %_llgo_16 - %132 = load ptr, ptr @"_llgo_func$MrYxYl10p_I07B55pBsGw9la9zbzU2vGDPLWrT714Uk", align 8 - %133 = load ptr, ptr @_llgo_main.WriterTo, align 8 - %134 = icmp eq ptr %133, null - br i1 %134, label %_llgo_19, label %_llgo_20 + %126 = load ptr, ptr @"_llgo_func$MrYxYl10p_I07B55pBsGw9la9zbzU2vGDPLWrT714Uk", align 8 + %127 = load ptr, ptr @_llgo_main.WriterTo, align 8 + %128 = icmp eq ptr %127, null + br i1 %128, label %_llgo_19, label %_llgo_20 _llgo_19: ; preds = %_llgo_18 - %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 7, 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 %132, 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 24) - %144 = getelementptr %"github.com/goplus/llgo/internal/abi.Imethod", ptr %143, i64 0 - store %"github.com/goplus/llgo/internal/abi.Imethod" %142, ptr %144, align 8 - %145 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %146 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %145, i32 0, i32 0 - store ptr %143, ptr %146, align 8 - %147 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %145, i32 0, i32 1 - store i64 1, ptr %147, align 4 - %148 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %145, i32 0, i32 2 - store i64 1, ptr %148, align 4 - %149 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %145, align 8 - %150 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %151 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %150, i32 0, i32 0 - store ptr @1, ptr %151, align 8 - %152 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %150, i32 0, i32 1 - store i64 4, ptr %152, align 4 - %153 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %150, align 8 - %154 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %155 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %154, i32 0, i32 0 - store ptr @6, ptr %155, align 8 - %156 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %154, i32 0, i32 1 - store i64 13, ptr %156, align 4 - %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 @_llgo_main.WriterTo, align 8 + %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 @5, ptr %130, align 8 + %131 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %129, i32 0, i32 1 + store i64 7, ptr %131, align 4 + %132 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %129, align 8 + %133 = alloca %"github.com/goplus/llgo/internal/abi.Imethod", align 8 + %134 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Imethod", ptr %133, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %132, ptr %134, align 8 + %135 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Imethod", ptr %133, i32 0, i32 1 + store ptr %126, ptr %135, align 8 + %136 = load %"github.com/goplus/llgo/internal/abi.Imethod", ptr %133, align 8 + %137 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 24) + %138 = getelementptr %"github.com/goplus/llgo/internal/abi.Imethod", ptr %137, i64 0 + store %"github.com/goplus/llgo/internal/abi.Imethod" %136, ptr %138, align 8 + %139 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %140 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %139, i32 0, i32 0 + store ptr %137, ptr %140, align 8 + %141 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %139, i32 0, i32 1 + store i64 1, ptr %141, align 4 + %142 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %139, i32 0, i32 2 + store i64 1, ptr %142, align 4 + %143 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %139, align 8 + %144 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %145 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %144, i32 0, i32 0 + store ptr @1, ptr %145, align 8 + %146 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %144, i32 0, i32 1 + store i64 4, ptr %146, align 4 + %147 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %144, align 8 + %148 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %149 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %148, i32 0, i32 0 + store ptr @6, ptr %149, align 8 + %150 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %148, i32 0, i32 1 + store i64 13, ptr %150, align 4 + %151 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %148, align 8 + %152 = call ptr @"github.com/goplus/llgo/internal/runtime.Interface"(%"github.com/goplus/llgo/internal/runtime.String" %147, %"github.com/goplus/llgo/internal/runtime.String" %151, %"github.com/goplus/llgo/internal/runtime.Slice" %143) + store ptr %152, ptr @_llgo_main.WriterTo, align 8 br label %_llgo_20 _llgo_20: ; preds = %_llgo_19, %_llgo_18 - %159 = load ptr, ptr @"_llgo_func$MrYxYl10p_I07B55pBsGw9la9zbzU2vGDPLWrT714Uk", align 8 - %160 = load ptr, ptr @"_llgo_iface$eN81k1zqixGTyagHw_4nqH4mGfwwehTOCTXUlbT9kzk", align 8 - %161 = icmp eq ptr %160, null - br i1 %161, label %_llgo_21, label %_llgo_22 + %153 = load ptr, ptr @"_llgo_func$MrYxYl10p_I07B55pBsGw9la9zbzU2vGDPLWrT714Uk", align 8 + %154 = load ptr, ptr @"_llgo_iface$eN81k1zqixGTyagHw_4nqH4mGfwwehTOCTXUlbT9kzk", align 8 + %155 = icmp eq ptr %154, null + br i1 %155, label %_llgo_21, label %_llgo_22 _llgo_21: ; preds = %_llgo_20 - %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 @5, ptr %163, align 8 - %164 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %162, i32 0, i32 1 - store i64 7, ptr %164, align 4 - %165 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %162, align 8 - %166 = alloca %"github.com/goplus/llgo/internal/abi.Imethod", align 8 - %167 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Imethod", ptr %166, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %165, ptr %167, align 8 - %168 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Imethod", ptr %166, i32 0, i32 1 - store ptr %159, ptr %168, align 8 - %169 = load %"github.com/goplus/llgo/internal/abi.Imethod", ptr %166, align 8 - %170 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 24) - %171 = getelementptr %"github.com/goplus/llgo/internal/abi.Imethod", ptr %170, i64 0 - store %"github.com/goplus/llgo/internal/abi.Imethod" %169, 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 @1, 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 null, ptr %182, align 8 - %183 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %181, i32 0, i32 1 - store i64 0, ptr %183, align 4 - %184 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %181, align 8 - %185 = call ptr @"github.com/goplus/llgo/internal/runtime.Interface"(%"github.com/goplus/llgo/internal/runtime.String" %180, %"github.com/goplus/llgo/internal/runtime.String" %184, %"github.com/goplus/llgo/internal/runtime.Slice" %176) - store ptr %185, ptr @"_llgo_iface$eN81k1zqixGTyagHw_4nqH4mGfwwehTOCTXUlbT9kzk", align 8 + %156 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %157 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %156, i32 0, i32 0 + store ptr @5, ptr %157, align 8 + %158 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %156, i32 0, i32 1 + store i64 7, 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 %153, ptr %162, align 8 + %163 = load %"github.com/goplus/llgo/internal/abi.Imethod", ptr %160, align 8 + %164 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 24) + %165 = getelementptr %"github.com/goplus/llgo/internal/abi.Imethod", ptr %164, i64 0 + store %"github.com/goplus/llgo/internal/abi.Imethod" %163, ptr %165, align 8 + %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 %164, ptr %167, align 8 + %168 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %166, i32 0, i32 1 + store i64 1, ptr %168, align 4 + %169 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %166, i32 0, i32 2 + store i64 1, ptr %169, align 4 + %170 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %166, align 8 + %171 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %172 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %171, i32 0, i32 0 + store ptr @1, ptr %172, align 8 + %173 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %171, i32 0, i32 1 + store i64 4, ptr %173, align 4 + %174 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %171, align 8 + %175 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %176 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %175, i32 0, i32 0 + store ptr null, ptr %176, align 8 + %177 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %175, i32 0, i32 1 + store i64 0, ptr %177, align 4 + %178 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %175, align 8 + %179 = call ptr @"github.com/goplus/llgo/internal/runtime.Interface"(%"github.com/goplus/llgo/internal/runtime.String" %174, %"github.com/goplus/llgo/internal/runtime.String" %178, %"github.com/goplus/llgo/internal/runtime.Slice" %170) + store ptr %179, ptr @"_llgo_iface$eN81k1zqixGTyagHw_4nqH4mGfwwehTOCTXUlbT9kzk", align 8 br label %_llgo_22 _llgo_22: ; preds = %_llgo_21, %_llgo_20 - %186 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(i64 25, i64 3, i64 3) - store ptr %186, ptr @_llgo_main.nopCloserWriterTo, align 8 - %187 = load ptr, ptr @"_llgo_func$06yPPin-fnDnxFKkLLcJ1GEUhIobjPimde7T_Id_hmY", align 8 - %188 = load ptr, ptr @"_llgo_struct$_3ow4zXXILqvC0WDqDRNq5DPhjE1DInJgN924VHWc2Y", align 8 - %189 = icmp eq ptr %188, null - br i1 %189, label %_llgo_23, label %_llgo_24 + %180 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(i64 25, 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 _llgo_23: ; preds = %_llgo_22 - %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 @7, ptr %191, align 8 - %192 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %190, i32 0, i32 1 - store i64 6, 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 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 = 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 @8, 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 - %202 = alloca %"github.com/goplus/llgo/internal/abi.Imethod", align 8 - %203 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Imethod", ptr %202, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %201, ptr %203, align 8 - %204 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Imethod", ptr %202, i32 0, i32 1 - store ptr %187, ptr %204, align 8 - %205 = load %"github.com/goplus/llgo/internal/abi.Imethod", ptr %202, align 8 - %206 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 24) - %207 = getelementptr %"github.com/goplus/llgo/internal/abi.Imethod", ptr %206, i64 0 - store %"github.com/goplus/llgo/internal/abi.Imethod" %205, ptr %207, align 8 - %208 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %209 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %208, i32 0, i32 0 - store ptr %206, ptr %209, align 8 - %210 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %208, i32 0, i32 1 - store i64 1, ptr %210, align 4 - %211 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %208, i32 0, i32 2 - store i64 1, ptr %211, align 4 - %212 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %208, 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 @1, 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 + %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 + %190 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %188, i32 0, i32 1 + store i64 0, 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 + %194 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %192, i32 0, i32 1 + store i64 4, 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 + %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 + %213 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %211, i32 0, i32 1 + store i64 11, 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 @9, ptr %218, align 8 + 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 11, ptr %219, align 4 + 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.Interface"(%"github.com/goplus/llgo/internal/runtime.String" %216, %"github.com/goplus/llgo/internal/runtime.String" %220, %"github.com/goplus/llgo/internal/runtime.Slice" %212) - %222 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %193, ptr %221, i64 0, %"github.com/goplus/llgo/internal/runtime.String" %197, i1 true) - %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 @1, 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 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 56) - %228 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %227, i64 0 - store %"github.com/goplus/llgo/internal/abi.StructField" %222, ptr %228, align 8 - %229 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %230 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %229, i32 0, i32 0 - store ptr %227, ptr %230, align 8 - %231 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %229, i32 0, i32 1 - store i64 1, ptr %231, align 4 - %232 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %229, i32 0, i32 2 - store i64 1, ptr %232, align 4 - %233 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %229, align 8 - %234 = call ptr @"github.com/goplus/llgo/internal/runtime.Struct"(%"github.com/goplus/llgo/internal/runtime.String" %226, i64 16, %"github.com/goplus/llgo/internal/runtime.Slice" %233) - store ptr %234, ptr @"_llgo_struct$_3ow4zXXILqvC0WDqDRNq5DPhjE1DInJgN924VHWc2Y", 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 br label %_llgo_24 _llgo_24: ; preds = %_llgo_23, %_llgo_22 - %235 = load ptr, ptr @"_llgo_struct$_3ow4zXXILqvC0WDqDRNq5DPhjE1DInJgN924VHWc2Y", align 8 - %236 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %237 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %236, i32 0, i32 0 - store ptr @10, ptr %237, align 8 - %238 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %236, i32 0, i32 1 - store i64 5, ptr %238, align 4 - %239 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %236, align 8 - %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_25, label %_llgo_26 + %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 _llgo_25: ; preds = %_llgo_24 - %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) - store ptr %256, ptr @"_llgo_func$8rsrSd_r3UHd_2DiYTyaOKR7BYkei4zw5ysG35KF38w", align 8 + %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) + store ptr %250, ptr @"_llgo_func$8rsrSd_r3UHd_2DiYTyaOKR7BYkei4zw5ysG35KF38w", align 8 br label %_llgo_26 _llgo_26: ; preds = %_llgo_25, %_llgo_24 - %257 = load ptr, ptr @"_llgo_func$8rsrSd_r3UHd_2DiYTyaOKR7BYkei4zw5ysG35KF38w", align 8 + %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" %239, ptr %259, align 8 + 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 %257, ptr %260, align 8 + 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 + 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/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" %239, 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.(*nopCloserWriterTo).Close", ptr %267, align 8 - %268 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %264, i32 0, i32 3 - store ptr @main.nopCloserWriterTo.Close, ptr %268, align 8 - %269 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %264, align 8 - %270 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %271 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %270, i32 0, i32 0 - store ptr @8, ptr %271, align 8 - %272 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %270, i32 0, i32 1 - store i64 4, ptr %272, align 4 - %273 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %270, align 8 - %274 = load ptr, ptr @"_llgo_func$06yPPin-fnDnxFKkLLcJ1GEUhIobjPimde7T_Id_hmY", 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" %273, ptr %276, align 8 + 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 %274, ptr %277, align 8 + 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 + 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/abi.Method", align 8 - %282 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %281, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %273, ptr %282, align 8 - %283 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %281, i32 0, i32 1 - store ptr %274, ptr %283, align 8 - %284 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %281, i32 0, i32 2 - store ptr @"main.(*nopCloserWriterTo).Read", ptr %284, align 8 - %285 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %281, i32 0, i32 3 - store ptr @main.nopCloserWriterTo.Read, ptr %285, align 8 - %286 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %281, align 8 - %287 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %288 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %287, i32 0, i32 0 - store ptr @5, ptr %288, align 8 - %289 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %287, i32 0, i32 1 - store i64 7, ptr %289, align 4 - %290 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %287, align 8 - %291 = load ptr, ptr @"_llgo_func$MrYxYl10p_I07B55pBsGw9la9zbzU2vGDPLWrT714Uk", 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" %290, ptr %293, align 8 + 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 %291, ptr %294, align 8 + 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 + store ptr @main.nopCloserWriterTo.WriteTo, ptr %296, align 8 %297 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %292, align 8 - %298 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 - %299 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %298, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %290, ptr %299, align 8 - %300 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %298, i32 0, i32 1 - store ptr %291, ptr %300, align 8 - %301 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %298, i32 0, i32 2 - store ptr @"main.(*nopCloserWriterTo).WriteTo", ptr %301, align 8 - %302 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %298, i32 0, i32 3 - store ptr @main.nopCloserWriterTo.WriteTo, ptr %302, align 8 - %303 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %298, align 8 - %304 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 120) - %305 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %304, i64 0 - store %"github.com/goplus/llgo/internal/abi.Method" %269, ptr %305, align 8 - %306 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %304, i64 1 - store %"github.com/goplus/llgo/internal/abi.Method" %286, ptr %306, align 8 - %307 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %304, i64 2 - store %"github.com/goplus/llgo/internal/abi.Method" %303, 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 %304, ptr %309, align 8 - %310 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %308, i32 0, i32 1 - store i64 3, ptr %310, align 4 - %311 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %308, i32 0, i32 2 - store i64 3, ptr %311, align 4 - %312 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %308, align 8 - %313 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 120) - %314 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %313, i64 0 - store %"github.com/goplus/llgo/internal/abi.Method" %263, ptr %314, align 8 - %315 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %313, i64 1 - store %"github.com/goplus/llgo/internal/abi.Method" %280, ptr %315, align 8 - %316 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %313, i64 2 - store %"github.com/goplus/llgo/internal/abi.Method" %297, ptr %316, align 8 - %317 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %318 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %317, i32 0, i32 0 - store ptr %313, ptr %318, align 8 - %319 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %317, i32 0, i32 1 - store i64 3, ptr %319, align 4 - %320 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %317, i32 0, i32 2 - store i64 3, ptr %320, align 4 - %321 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %317, align 8 - %322 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %323 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %322, i32 0, i32 0 - store ptr @1, ptr %323, align 8 - %324 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %322, i32 0, i32 1 - store i64 4, ptr %324, align 4 - %325 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %322, align 8 - %326 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %327 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %326, i32 0, i32 0 - store ptr @11, ptr %327, align 8 - %328 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %326, i32 0, i32 1 - store i64 17, ptr %328, align 4 - %329 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %326, align 8 - call void @"github.com/goplus/llgo/internal/runtime.InitNamed"(ptr %186, %"github.com/goplus/llgo/internal/runtime.String" %325, %"github.com/goplus/llgo/internal/runtime.String" %329, ptr %235, %"github.com/goplus/llgo/internal/runtime.Slice" %312, %"github.com/goplus/llgo/internal/runtime.Slice" %321) - %330 = load ptr, ptr @"_llgo_func$8rsrSd_r3UHd_2DiYTyaOKR7BYkei4zw5ysG35KF38w", align 8 - %331 = load ptr, ptr @"_llgo_func$06yPPin-fnDnxFKkLLcJ1GEUhIobjPimde7T_Id_hmY", align 8 - %332 = load ptr, ptr @"_llgo_iface$L2Ik-AJcd0jsoBw5fQ07pQpfUM-kh78Wn2bOeak6M3I", align 8 - %333 = icmp eq ptr %332, null - br i1 %333, label %_llgo_27, label %_llgo_28 + %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 + %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 + %322 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %320, i32 0, i32 1 + store i64 17, 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 _llgo_27: ; preds = %_llgo_26 - %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 @10, ptr %335, align 8 - %336 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %334, i32 0, i32 1 - store i64 5, ptr %336, align 4 - %337 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %334, align 8 - %338 = alloca %"github.com/goplus/llgo/internal/abi.Imethod", align 8 - %339 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Imethod", ptr %338, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %337, ptr %339, align 8 - %340 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Imethod", ptr %338, i32 0, i32 1 - store ptr %330, ptr %340, align 8 - %341 = load %"github.com/goplus/llgo/internal/abi.Imethod", ptr %338, align 8 - %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 @8, ptr %343, align 8 - %344 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %342, i32 0, i32 1 - store i64 4, ptr %344, align 4 - %345 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %342, align 8 - %346 = alloca %"github.com/goplus/llgo/internal/abi.Imethod", align 8 - %347 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Imethod", ptr %346, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %345, ptr %347, align 8 - %348 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Imethod", ptr %346, i32 0, i32 1 - store ptr %331, ptr %348, align 8 - %349 = load %"github.com/goplus/llgo/internal/abi.Imethod", ptr %346, align 8 - %350 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 48) - %351 = getelementptr %"github.com/goplus/llgo/internal/abi.Imethod", ptr %350, i64 0 - store %"github.com/goplus/llgo/internal/abi.Imethod" %341, ptr %351, align 8 - %352 = getelementptr %"github.com/goplus/llgo/internal/abi.Imethod", ptr %350, i64 1 - store %"github.com/goplus/llgo/internal/abi.Imethod" %349, ptr %352, align 8 - %353 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %354 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %353, i32 0, i32 0 - store ptr %350, ptr %354, align 8 - %355 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %353, i32 0, i32 1 - store i64 2, ptr %355, align 4 - %356 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %353, i32 0, i32 2 - store i64 2, ptr %356, align 4 - %357 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %353, align 8 - %358 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %359 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %358, i32 0, i32 0 - store ptr @1, ptr %359, align 8 - %360 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %358, i32 0, i32 1 - store i64 4, ptr %360, align 4 - %361 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %358, align 8 - %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 null, ptr %363, align 8 - %364 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %362, i32 0, i32 1 - store i64 0, ptr %364, align 4 - %365 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %362, align 8 - %366 = call ptr @"github.com/goplus/llgo/internal/runtime.Interface"(%"github.com/goplus/llgo/internal/runtime.String" %361, %"github.com/goplus/llgo/internal/runtime.String" %365, %"github.com/goplus/llgo/internal/runtime.Slice" %357) - store ptr %366, ptr @"_llgo_iface$L2Ik-AJcd0jsoBw5fQ07pQpfUM-kh78Wn2bOeak6M3I", align 8 + %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 + %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$L2Ik-AJcd0jsoBw5fQ07pQpfUM-kh78Wn2bOeak6M3I", align 8 br label %_llgo_28 _llgo_28: ; preds = %_llgo_27, %_llgo_26 - %367 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(i64 25, i64 2, i64 2) - store ptr %367, ptr @_llgo_main.nopCloser, align 8 - %368 = load ptr, ptr @"_llgo_struct$_3ow4zXXILqvC0WDqDRNq5DPhjE1DInJgN924VHWc2Y", align 8 - %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 @10, ptr %370, align 8 - %371 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %369, i32 0, i32 1 - store i64 5, ptr %371, align 4 - %372 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %369, align 8 - %373 = load ptr, ptr @"_llgo_func$8rsrSd_r3UHd_2DiYTyaOKR7BYkei4zw5ysG35KF38w", align 8 + %361 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(i64 25, 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" %372, ptr %375, align 8 + 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 %373, ptr %376, align 8 + 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 + 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/abi.Method", align 8 - %381 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %380, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %372, ptr %381, align 8 - %382 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %380, i32 0, i32 1 - store ptr %373, ptr %382, align 8 - %383 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %380, i32 0, i32 2 - store ptr @"main.(*nopCloser).Close", ptr %383, align 8 - %384 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %380, i32 0, i32 3 - store ptr @main.nopCloser.Close, ptr %384, align 8 - %385 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %380, 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 @8, 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 = load ptr, ptr @"_llgo_func$06yPPin-fnDnxFKkLLcJ1GEUhIobjPimde7T_Id_hmY", 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" %389, ptr %392, align 8 + 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 %390, ptr %393, align 8 + 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 + store ptr @main.nopCloser.Read, ptr %395, align 8 %396 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %391, align 8 - %397 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 - %398 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %397, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %389, ptr %398, align 8 - %399 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %397, i32 0, i32 1 - store ptr %390, ptr %399, align 8 - %400 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %397, i32 0, i32 2 - store ptr @"main.(*nopCloser).Read", ptr %400, align 8 - %401 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %397, i32 0, i32 3 - store ptr @main.nopCloser.Read, ptr %401, align 8 - %402 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %397, align 8 - %403 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 80) - %404 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %403, i64 0 - store %"github.com/goplus/llgo/internal/abi.Method" %385, ptr %404, align 8 - %405 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %403, i64 1 - store %"github.com/goplus/llgo/internal/abi.Method" %402, ptr %405, align 8 - %406 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %407 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %406, i32 0, i32 0 - store ptr %403, ptr %407, align 8 - %408 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %406, i32 0, i32 1 - store i64 2, ptr %408, align 4 - %409 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %406, i32 0, i32 2 - store i64 2, ptr %409, align 4 - %410 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %406, align 8 - %411 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 80) - %412 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %411, i64 0 - store %"github.com/goplus/llgo/internal/abi.Method" %379, ptr %412, align 8 - %413 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %411, i64 1 - store %"github.com/goplus/llgo/internal/abi.Method" %396, ptr %413, align 8 - %414 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %415 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %414, i32 0, i32 0 - store ptr %411, ptr %415, align 8 - %416 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %414, i32 0, i32 1 - store i64 2, ptr %416, align 4 - %417 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %414, i32 0, i32 2 - store i64 2, ptr %417, align 4 - %418 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %414, 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 @1, ptr %420, align 8 - %421 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %419, i32 0, i32 1 - store i64 4, ptr %421, align 4 - %422 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %419, align 8 - %423 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %424 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %423, i32 0, i32 0 - store ptr @12, ptr %424, align 8 - %425 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %423, i32 0, i32 1 - store i64 9, ptr %425, align 4 - %426 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %423, align 8 - call void @"github.com/goplus/llgo/internal/runtime.InitNamed"(ptr %367, %"github.com/goplus/llgo/internal/runtime.String" %422, %"github.com/goplus/llgo/internal/runtime.String" %426, ptr %368, %"github.com/goplus/llgo/internal/runtime.Slice" %410, %"github.com/goplus/llgo/internal/runtime.Slice" %418) - %427 = load ptr, ptr @_llgo_string, align 8 - %428 = load ptr, ptr @_llgo_int, align 8 - %429 = load ptr, ptr @_llgo_error, align 8 - %430 = load ptr, ptr @"_llgo_func$thH5FBpdXzJNnCpSfiLU5ItTntFU6LWp0RJhDm2XJjw", align 8 - %431 = icmp eq ptr %430, null - br i1 %431, label %_llgo_29, label %_llgo_30 + %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 + %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 + %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 + %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 + %410 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %408, i32 0, i32 1 + store i64 2, ptr %410, align 4 + %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 _llgo_29: ; preds = %_llgo_28 - %432 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 8) - %433 = getelementptr ptr, ptr %432, i64 0 - store ptr %427, ptr %433, align 8 - %434 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %435 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %434, i32 0, i32 0 - store ptr %432, ptr %435, align 8 - %436 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %434, i32 0, i32 1 - store i64 1, ptr %436, align 4 - %437 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %434, i32 0, i32 2 - store i64 1, ptr %437, align 4 - %438 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %434, align 8 - %439 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 16) - %440 = getelementptr ptr, ptr %439, i64 0 - store ptr %428, ptr %440, align 8 - %441 = getelementptr ptr, ptr %439, i64 1 - store ptr %429, ptr %441, align 8 - %442 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %443 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %442, i32 0, i32 0 - store ptr %439, ptr %443, align 8 - %444 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %442, i32 0, i32 1 - store i64 2, ptr %444, align 4 - %445 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %442, i32 0, i32 2 - store i64 2, ptr %445, align 4 - %446 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %442, align 8 - %447 = call ptr @"github.com/goplus/llgo/internal/runtime.Func"(%"github.com/goplus/llgo/internal/runtime.Slice" %438, %"github.com/goplus/llgo/internal/runtime.Slice" %446, i1 false) - store ptr %447, ptr @"_llgo_func$thH5FBpdXzJNnCpSfiLU5ItTntFU6LWp0RJhDm2XJjw", align 8 + %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 + %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 + %438 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %436, i32 0, i32 1 + store i64 2, 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 + %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) + store ptr %441, ptr @"_llgo_func$thH5FBpdXzJNnCpSfiLU5ItTntFU6LWp0RJhDm2XJjw", align 8 br label %_llgo_30 _llgo_30: ; preds = %_llgo_29, %_llgo_28 - %448 = load ptr, ptr @"_llgo_func$thH5FBpdXzJNnCpSfiLU5ItTntFU6LWp0RJhDm2XJjw", align 8 - %449 = load ptr, ptr @_llgo_main.StringWriter, align 8 - %450 = icmp eq ptr %449, null - br i1 %450, label %_llgo_31, label %_llgo_32 + %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 _llgo_31: ; preds = %_llgo_30 - %451 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %452 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %451, i32 0, i32 0 - store ptr @13, ptr %452, align 8 - %453 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %451, i32 0, i32 1 - store i64 11, ptr %453, align 4 - %454 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %451, align 8 - %455 = alloca %"github.com/goplus/llgo/internal/abi.Imethod", align 8 - %456 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Imethod", ptr %455, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %454, ptr %456, align 8 - %457 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Imethod", ptr %455, i32 0, i32 1 - store ptr %448, ptr %457, align 8 - %458 = load %"github.com/goplus/llgo/internal/abi.Imethod", ptr %455, align 8 - %459 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 24) - %460 = getelementptr %"github.com/goplus/llgo/internal/abi.Imethod", ptr %459, i64 0 - store %"github.com/goplus/llgo/internal/abi.Imethod" %458, ptr %460, align 8 - %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 %459, ptr %462, align 8 - %463 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %461, i32 0, i32 1 - store i64 1, ptr %463, align 4 - %464 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %461, i32 0, i32 2 - store i64 1, ptr %464, align 4 - %465 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %461, align 8 - %466 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %467 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %466, i32 0, i32 0 - store ptr @1, ptr %467, align 8 - %468 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %466, i32 0, i32 1 - store i64 4, ptr %468, align 4 - %469 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %466, align 8 - %470 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %471 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %470, i32 0, i32 0 - store ptr @14, ptr %471, align 8 - %472 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %470, i32 0, i32 1 - store i64 17, ptr %472, align 4 - %473 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %470, align 8 - %474 = call ptr @"github.com/goplus/llgo/internal/runtime.Interface"(%"github.com/goplus/llgo/internal/runtime.String" %469, %"github.com/goplus/llgo/internal/runtime.String" %473, %"github.com/goplus/llgo/internal/runtime.Slice" %465) - store ptr %474, ptr @_llgo_main.StringWriter, align 8 + %445 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %446 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %445, i32 0, i32 0 + store ptr @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 br label %_llgo_32 _llgo_32: ; preds = %_llgo_31, %_llgo_30 - %475 = load ptr, ptr @"_llgo_func$thH5FBpdXzJNnCpSfiLU5ItTntFU6LWp0RJhDm2XJjw", align 8 - %476 = load ptr, ptr @"_llgo_iface$Ly4zXiUMEac-hYAMw6b6miJ1JEhGfLyBWyBOhpsRZcU", align 8 - %477 = icmp eq ptr %476, null - br i1 %477, label %_llgo_33, label %_llgo_34 + %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 _llgo_33: ; preds = %_llgo_32 - %478 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %479 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %478, i32 0, i32 0 - store ptr @13, ptr %479, align 8 - %480 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %478, i32 0, i32 1 - store i64 11, ptr %480, align 4 - %481 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %478, align 8 - %482 = alloca %"github.com/goplus/llgo/internal/abi.Imethod", align 8 - %483 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Imethod", ptr %482, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %481, ptr %483, align 8 - %484 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Imethod", ptr %482, i32 0, i32 1 - store ptr %475, ptr %484, align 8 - %485 = load %"github.com/goplus/llgo/internal/abi.Imethod", ptr %482, align 8 - %486 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 24) - %487 = getelementptr %"github.com/goplus/llgo/internal/abi.Imethod", ptr %486, i64 0 - store %"github.com/goplus/llgo/internal/abi.Imethod" %485, 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 %486, ptr %489, align 8 - %490 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %488, i32 0, i32 1 - store i64 1, ptr %490, align 4 - %491 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %488, i32 0, i32 2 - store i64 1, ptr %491, align 4 - %492 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %488, align 8 - %493 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %494 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %493, i32 0, i32 0 - store ptr @1, ptr %494, align 8 - %495 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %493, i32 0, i32 1 - store i64 4, ptr %495, align 4 - %496 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %493, 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 @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 + br label %_llgo_34 + +_llgo_34: ; preds = %_llgo_33, %_llgo_32 + %496 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(i64 25, 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 null, ptr %498, align 8 + 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 0, ptr %499, align 4 + store i64 1, ptr %499, align 4 %500 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %497, align 8 - %501 = call ptr @"github.com/goplus/llgo/internal/runtime.Interface"(%"github.com/goplus/llgo/internal/runtime.String" %496, %"github.com/goplus/llgo/internal/runtime.String" %500, %"github.com/goplus/llgo/internal/runtime.Slice" %492) - store ptr %501, ptr @"_llgo_iface$Ly4zXiUMEac-hYAMw6b6miJ1JEhGfLyBWyBOhpsRZcU", align 8 - br label %_llgo_34 - -_llgo_34: ; preds = %_llgo_33, %_llgo_32 - %502 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(i64 25, i64 0, i64 10) - store ptr %502, ptr @_llgo_main.stringReader, align 8 - %503 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %504 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %503, i32 0, i32 0 - store ptr @18, ptr %504, align 8 - %505 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %503, i32 0, i32 1 - store i64 1, ptr %505, align 4 - %506 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %503, 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 null, ptr %508, align 8 + 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 0, ptr %509, align 4 + store i64 1, ptr %509, align 4 %510 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %507, align 8 - %511 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 24) - %512 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %506, ptr %511, i64 0, %"github.com/goplus/llgo/internal/runtime.String" %510, 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 @19, ptr %514, align 8 - %515 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %513, i32 0, i32 1 - store i64 1, ptr %515, align 4 - %516 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %513, 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 null, ptr %518, align 8 + 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 0, ptr %519, align 4 + store i64 8, 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 6) - %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 16, %"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 @20, ptr %524, align 8 - %525 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %523, i32 0, i32 1 - store i64 8, ptr %525, align 4 - %526 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %523, 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 null, ptr %528, align 8 + 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 0, ptr %529, align 4 + 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.Basic"(i64 2) - %532 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %526, ptr %531, i64 24, %"github.com/goplus/llgo/internal/runtime.String" %530, i1 false) - %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 @1, ptr %534, align 8 - %535 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %533, i32 0, i32 1 - store i64 4, 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.AllocU"(i64 168) - %538 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %537, i64 0 - store %"github.com/goplus/llgo/internal/abi.StructField" %512, ptr %538, align 8 - %539 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %537, i64 1 - store %"github.com/goplus/llgo/internal/abi.StructField" %522, ptr %539, align 8 - %540 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %537, i64 2 - store %"github.com/goplus/llgo/internal/abi.StructField" %532, ptr %540, align 8 - %541 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %542 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %541, i32 0, i32 0 - store ptr %537, ptr %542, align 8 - %543 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %541, i32 0, i32 1 - store i64 3, ptr %543, align 4 - %544 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %541, i32 0, i32 2 + %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.Slice", ptr %541, align 8 - %546 = call ptr @"github.com/goplus/llgo/internal/runtime.Struct"(%"github.com/goplus/llgo/internal/runtime.String" %536, i64 32, %"github.com/goplus/llgo/internal/runtime.Slice" %545) - store ptr %546, ptr @"main.struct$Mdt84yjYYwxF9D2i4cRmpEPiWaO6tsjtrbGUjyESypk", align 8 - %547 = load ptr, ptr @"main.struct$Mdt84yjYYwxF9D2i4cRmpEPiWaO6tsjtrbGUjyESypk", align 8 - %548 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %549 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %548, i32 0, i32 0 - store ptr @21, ptr %549, align 8 - %550 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %548, i32 0, i32 1 - store i64 3, ptr %550, align 4 - %551 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %548, align 8 - %552 = load ptr, ptr @_llgo_int, align 8 - %553 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 - %554 = icmp eq ptr %553, null - br i1 %554, label %_llgo_35, label %_llgo_36 + %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 _llgo_35: ; preds = %_llgo_34 - %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 %552, 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) - store ptr %568, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 + %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) + store ptr %562, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 br label %_llgo_36 _llgo_36: ; preds = %_llgo_35, %_llgo_34 - %569 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", 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" %551, 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 @"main.(*stringReader).Len", ptr %573, align 8 - %574 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %570, i32 0, i32 3 - store ptr @"main.(*stringReader).Len", ptr %574, align 8 - %575 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %570, align 8 - %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 @8, ptr %577, align 8 - %578 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %576, i32 0, i32 1 - store i64 4, ptr %578, align 4 - %579 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %576, align 8 - %580 = load ptr, ptr @"_llgo_func$06yPPin-fnDnxFKkLLcJ1GEUhIobjPimde7T_Id_hmY", 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 @"main.(*stringReader).Read", ptr %584, align 8 - %585 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %581, i32 0, i32 3 - store ptr @"main.(*stringReader).Read", ptr %585, align 8 - %586 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %581, align 8 - %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 @22, ptr %588, align 8 - %589 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %587, i32 0, i32 1 - store i64 6, ptr %589, align 4 - %590 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %587, align 8 - %591 = load ptr, ptr @"[]_llgo_byte", align 8 - %592 = load ptr, ptr @_llgo_int64, align 8 - %593 = load ptr, ptr @_llgo_int, align 8 - %594 = load ptr, ptr @_llgo_error, align 8 - %595 = load ptr, ptr @"_llgo_func$TY5Etv7VBKM_-2um1BDEeQEE2lP06Pt6G54EuKiNC3c", align 8 - %596 = icmp eq ptr %595, null - br i1 %596, label %_llgo_37, label %_llgo_38 + %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 _llgo_37: ; preds = %_llgo_36 - %597 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 16) - %598 = getelementptr ptr, ptr %597, i64 0 - store ptr %591, ptr %598, align 8 - %599 = getelementptr ptr, ptr %597, i64 1 - store ptr %592, ptr %599, align 8 - %600 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %601 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %600, i32 0, i32 0 - store ptr %597, ptr %601, align 8 - %602 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %600, i32 0, i32 1 - store i64 2, ptr %602, align 4 - %603 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %600, i32 0, i32 2 - store i64 2, ptr %603, align 4 - %604 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %600, align 8 - %605 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 16) - %606 = getelementptr ptr, ptr %605, i64 0 - store ptr %593, ptr %606, align 8 - %607 = getelementptr ptr, ptr %605, i64 1 - store ptr %594, ptr %607, align 8 - %608 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %609 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %608, i32 0, i32 0 - store ptr %605, ptr %609, align 8 - %610 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %608, i32 0, i32 1 - store i64 2, ptr %610, align 4 - %611 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %608, i32 0, i32 2 - store i64 2, ptr %611, align 4 - %612 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %608, align 8 - %613 = call ptr @"github.com/goplus/llgo/internal/runtime.Func"(%"github.com/goplus/llgo/internal/runtime.Slice" %604, %"github.com/goplus/llgo/internal/runtime.Slice" %612, i1 false) - store ptr %613, ptr @"_llgo_func$TY5Etv7VBKM_-2um1BDEeQEE2lP06Pt6G54EuKiNC3c", align 8 + %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) + store ptr %607, ptr @"_llgo_func$TY5Etv7VBKM_-2um1BDEeQEE2lP06Pt6G54EuKiNC3c", align 8 br label %_llgo_38 _llgo_38: ; preds = %_llgo_37, %_llgo_36 - %614 = load ptr, ptr @"_llgo_func$TY5Etv7VBKM_-2um1BDEeQEE2lP06Pt6G54EuKiNC3c", align 8 - %615 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 - %616 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %615, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %590, ptr %616, align 8 - %617 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %615, i32 0, i32 1 - store ptr %614, ptr %617, align 8 - %618 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %615, i32 0, i32 2 - store ptr @"main.(*stringReader).ReadAt", ptr %618, align 8 - %619 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %615, i32 0, i32 3 - store ptr @"main.(*stringReader).ReadAt", ptr %619, align 8 - %620 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %615, align 8 - %621 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %622 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %621, i32 0, i32 0 - store ptr @23, ptr %622, align 8 - %623 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %621, i32 0, i32 1 - store i64 8, ptr %623, align 4 - %624 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %621, align 8 - %625 = load ptr, ptr @_llgo_byte, align 8 - %626 = icmp eq ptr %625, null - br i1 %626, label %_llgo_39, label %_llgo_40 + %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 _llgo_39: ; preds = %_llgo_38 - %627 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 8) - %628 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Type", ptr %627, i32 0, i32 6 - %629 = load i8, ptr %628, align 1 - %630 = or i8 %629, 32 - store i8 %630, ptr %628, align 1 - store ptr %627, ptr @_llgo_byte, align 8 + %621 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 40) + store ptr %621, ptr @_llgo_byte, align 8 br label %_llgo_40 _llgo_40: ; preds = %_llgo_39, %_llgo_38 - %631 = load ptr, ptr @_llgo_byte, align 8 - %632 = load ptr, ptr @_llgo_error, align 8 - %633 = load ptr, ptr @"_llgo_func$6bvVpCcGPUc3z_EmsQTHB0AVT1hP5-NNLVRgm43teCM", align 8 - %634 = icmp eq ptr %633, null - br i1 %634, label %_llgo_41, label %_llgo_42 + %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 _llgo_41: ; preds = %_llgo_40 - %635 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 0) - %636 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %637 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %636, i32 0, i32 0 - store ptr %635, ptr %637, align 8 - %638 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %636, i32 0, i32 1 - store i64 0, ptr %638, align 4 - %639 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %636, i32 0, i32 2 - store i64 0, ptr %639, align 4 - %640 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %636, align 8 - %641 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 16) - %642 = getelementptr ptr, ptr %641, i64 0 - store ptr %631, ptr %642, align 8 - %643 = getelementptr ptr, ptr %641, i64 1 - store ptr %632, ptr %643, align 8 - %644 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %645 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %644, i32 0, i32 0 - store ptr %641, ptr %645, align 8 - %646 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %644, i32 0, i32 1 - store i64 2, ptr %646, align 4 - %647 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %644, i32 0, i32 2 - store i64 2, ptr %647, align 4 - %648 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %644, align 8 - %649 = call ptr @"github.com/goplus/llgo/internal/runtime.Func"(%"github.com/goplus/llgo/internal/runtime.Slice" %640, %"github.com/goplus/llgo/internal/runtime.Slice" %648, i1 false) - store ptr %649, ptr @"_llgo_func$6bvVpCcGPUc3z_EmsQTHB0AVT1hP5-NNLVRgm43teCM", align 8 + %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) + store ptr %640, ptr @"_llgo_func$6bvVpCcGPUc3z_EmsQTHB0AVT1hP5-NNLVRgm43teCM", align 8 br label %_llgo_42 _llgo_42: ; preds = %_llgo_41, %_llgo_40 - %650 = load ptr, ptr @"_llgo_func$6bvVpCcGPUc3z_EmsQTHB0AVT1hP5-NNLVRgm43teCM", 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" %624, 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 @"main.(*stringReader).ReadByte", ptr %654, align 8 - %655 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %651, i32 0, i32 3 - store ptr @"main.(*stringReader).ReadByte", 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 @24, ptr %658, align 8 - %659 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %657, i32 0, i32 1 - store i64 8, ptr %659, align 4 - %660 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %657, align 8 - %661 = load ptr, ptr @_llgo_rune, align 8 - %662 = icmp eq ptr %661, null - br i1 %662, label %_llgo_43, label %_llgo_44 + %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 _llgo_43: ; preds = %_llgo_42 - %663 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 5) - %664 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Type", ptr %663, i32 0, i32 6 - %665 = load i8, ptr %664, align 1 - %666 = or i8 %665, 32 - store i8 %666, ptr %664, align 1 - store ptr %663, ptr @_llgo_rune, align 8 + %654 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 37) + store ptr %654, ptr @_llgo_rune, align 8 br label %_llgo_44 _llgo_44: ; preds = %_llgo_43, %_llgo_42 - %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 + %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 _llgo_45: ; preds = %_llgo_44 - %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) - store ptr %687, ptr @"_llgo_func$CB0CO6hV_feSzhi4pz1P4omza2fKNK930wvOR1T33fU", align 8 + %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) + store ptr %675, ptr @"_llgo_func$CB0CO6hV_feSzhi4pz1P4omza2fKNK930wvOR1T33fU", align 8 br label %_llgo_46 _llgo_46: ; preds = %_llgo_45, %_llgo_44 - %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" %660, 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 @25, 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 + %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 _llgo_47: ; preds = %_llgo_46 - %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) - store ptr %721, ptr @"_llgo_func$HE7H49xPa1uXmrkMDpqB3RCRGf3qzhLGrxKCEXOYjms", align 8 + %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) + store ptr %709, ptr @"_llgo_func$HE7H49xPa1uXmrkMDpqB3RCRGf3qzhLGrxKCEXOYjms", align 8 br label %_llgo_48 _llgo_48: ; preds = %_llgo_47, %_llgo_46 - %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 @26, 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 + %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 _llgo_49: ; preds = %_llgo_48 - %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) - store ptr %749, ptr @"_llgo_func$Eoig9xhJM5GShHH5aNPxTZZXp1IZxprRl4zPuv2hkug", align 8 + %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) + store ptr %737, ptr @"_llgo_func$Eoig9xhJM5GShHH5aNPxTZZXp1IZxprRl4zPuv2hkug", align 8 br label %_llgo_50 _llgo_50: ; preds = %_llgo_49, %_llgo_48 - %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 @27, 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 @28, 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" %575, 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" %586, 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" %620, 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" %656, 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 + %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) + 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 %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 @1, ptr %807, align 8 + store ptr @8, 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/runtime.String", align 8 - %811 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %810, i32 0, i32 0 - store ptr @29, 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 %502, %"github.com/goplus/llgo/internal/runtime.String" %809, %"github.com/goplus/llgo/internal/runtime.String" %813, ptr %547, { ptr, i64, i64 } zeroinitializer, %"github.com/goplus/llgo/internal/runtime.Slice" %805) - %814 = call ptr @"github.com/goplus/llgo/internal/runtime.PointerTo"(ptr %502) - store ptr %814, ptr @"*_llgo_main.stringReader", align 8 - %815 = load ptr, ptr @"_llgo_func$06yPPin-fnDnxFKkLLcJ1GEUhIobjPimde7T_Id_hmY", align 8 - %816 = load ptr, ptr @"_llgo_iface$OFO8Us9n8ajWCabGedeuoJ-Za2zAMk4Jh0FunAcUCFE", align 8 - %817 = icmp eq ptr %816, null - br i1 %817, label %_llgo_51, label %_llgo_52 - -_llgo_51: ; preds = %_llgo_50 - %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 @8, ptr %819, align 8 - %820 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %818, i32 0, i32 1 - store i64 4, ptr %820, align 4 - %821 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %818, align 8 - %822 = alloca %"github.com/goplus/llgo/internal/abi.Imethod", align 8 - %823 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Imethod", ptr %822, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %821, ptr %823, align 8 - %824 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Imethod", ptr %822, i32 0, i32 1 - store ptr %815, ptr %824, align 8 - %825 = load %"github.com/goplus/llgo/internal/abi.Imethod", ptr %822, align 8 - %826 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 24) - %827 = getelementptr %"github.com/goplus/llgo/internal/abi.Imethod", ptr %826, i64 0 - store %"github.com/goplus/llgo/internal/abi.Imethod" %825, ptr %827, align 8 - %828 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %829 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %828, i32 0, i32 0 - store ptr %826, ptr %829, align 8 - %830 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %828, i32 0, i32 1 - store i64 1, ptr %830, align 4 - %831 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %828, i32 0, i32 2 - store i64 1, ptr %831, align 4 - %832 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %828, align 8 - %833 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %834 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %833, i32 0, i32 0 - store ptr @1, ptr %834, align 8 - %835 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %833, i32 0, i32 1 - store i64 4, ptr %835, align 4 - %836 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %833, align 8 - %837 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %838 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %837, i32 0, i32 0 - store ptr null, ptr %838, align 8 - %839 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %837, i32 0, i32 1 - store i64 0, ptr %839, align 4 - %840 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %837, align 8 - %841 = call ptr @"github.com/goplus/llgo/internal/runtime.Interface"(%"github.com/goplus/llgo/internal/runtime.String" %836, %"github.com/goplus/llgo/internal/runtime.String" %840, %"github.com/goplus/llgo/internal/runtime.Slice" %832) - store ptr %841, ptr @"_llgo_iface$OFO8Us9n8ajWCabGedeuoJ-Za2zAMk4Jh0FunAcUCFE", 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 br label %_llgo_52 _llgo_52: ; preds = %_llgo_51, %_llgo_50 - %842 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(i64 25, i64 0, i64 1) - store ptr %842, ptr @_llgo_main.errorString, align 8 - %843 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %844 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %843, i32 0, i32 0 - store ptr @18, ptr %844, align 8 - %845 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %843, i32 0, i32 1 - store i64 1, ptr %845, align 4 - %846 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %843, 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 null, ptr %848, align 8 - %849 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %847, i32 0, i32 1 - store i64 0, 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.Basic"(i64 24) - %852 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %846, ptr %851, i64 0, %"github.com/goplus/llgo/internal/runtime.String" %850, i1 false) - %853 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %854 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %853, i32 0, i32 0 - store ptr @1, ptr %854, align 8 - %855 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %853, i32 0, i32 1 - store i64 4, ptr %855, align 4 - %856 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %853, align 8 - %857 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 56) - %858 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %857, i64 0 - store %"github.com/goplus/llgo/internal/abi.StructField" %852, ptr %858, align 8 - %859 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %860 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %859, i32 0, i32 0 - store ptr %857, ptr %860, align 8 - %861 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %859, i32 0, i32 1 - store i64 1, ptr %861, align 4 - %862 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %859, i32 0, i32 2 - store i64 1, ptr %862, align 4 - %863 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %859, align 8 - %864 = call ptr @"github.com/goplus/llgo/internal/runtime.Struct"(%"github.com/goplus/llgo/internal/runtime.String" %856, i64 16, %"github.com/goplus/llgo/internal/runtime.Slice" %863) - store ptr %864, ptr @"main.struct$QTufDJA9wEDzuzgkA-ZSrLqW-B6lWN8O25mTSglAoLQ", align 8 - %865 = load ptr, ptr @"main.struct$QTufDJA9wEDzuzgkA-ZSrLqW-B6lWN8O25mTSglAoLQ", align 8 - %866 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %867 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %866, i32 0, i32 0 - store ptr @0, ptr %867, align 8 - %868 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %866, i32 0, i32 1 - store i64 5, ptr %868, align 4 - %869 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %866, align 8 - %870 = load ptr, ptr @"_llgo_func$zNDVRsWTIpUPKouNUS805RGX--IV9qVK8B31IZbg5to", align 8 - %871 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 - %872 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %871, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %869, ptr %872, align 8 - %873 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %871, i32 0, i32 1 - store ptr %870, ptr %873, align 8 - %874 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %871, i32 0, i32 2 - store ptr @"main.(*errorString).Error", ptr %874, align 8 - %875 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %871, i32 0, i32 3 - store ptr @"main.(*errorString).Error", ptr %875, align 8 - %876 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %871, align 8 - %877 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 40) - %878 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %877, i64 0 - store %"github.com/goplus/llgo/internal/abi.Method" %876, ptr %878, align 8 - %879 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %880 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %879, i32 0, i32 0 - store ptr %877, ptr %880, align 8 - %881 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %879, i32 0, i32 1 - store i64 1, ptr %881, align 4 - %882 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %879, i32 0, i32 2 - store i64 1, ptr %882, align 4 - %883 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %879, align 8 + %830 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(i64 25, 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 + 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) + 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 + +_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 @1, ptr %885, align 8 + 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 4, ptr %886, align 4 + 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/runtime.String", align 8 - %889 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %888, i32 0, i32 0 - store ptr @30, ptr %889, align 8 - %890 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %888, i32 0, i32 1 - store i64 11, ptr %890, align 4 - %891 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %888, align 8 - call void @"github.com/goplus/llgo/internal/runtime.InitNamed"(ptr %842, %"github.com/goplus/llgo/internal/runtime.String" %887, %"github.com/goplus/llgo/internal/runtime.String" %891, ptr %865, { ptr, i64, i64 } zeroinitializer, %"github.com/goplus/llgo/internal/runtime.Slice" %883) - %892 = call ptr @"github.com/goplus/llgo/internal/runtime.PointerTo"(ptr %842) - store ptr %892, ptr @"*_llgo_main.errorString", align 8 - %893 = load ptr, ptr @"_llgo_func$zNDVRsWTIpUPKouNUS805RGX--IV9qVK8B31IZbg5to", align 8 - %894 = load ptr, ptr @"_llgo_iface$Fh8eUJ-Gw4e6TYuajcFIOSCuqSPKAt5nS4ow7xeGXEU", align 8 - %895 = icmp eq ptr %894, null - br i1 %895, label %_llgo_53, label %_llgo_54 - -_llgo_53: ; preds = %_llgo_52 - %896 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %897 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %896, i32 0, i32 0 - store ptr @0, ptr %897, align 8 - %898 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %896, i32 0, i32 1 - store i64 5, ptr %898, align 4 - %899 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %896, align 8 - %900 = alloca %"github.com/goplus/llgo/internal/abi.Imethod", align 8 - %901 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Imethod", ptr %900, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %899, ptr %901, align 8 - %902 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Imethod", ptr %900, i32 0, i32 1 - store ptr %893, ptr %902, align 8 - %903 = load %"github.com/goplus/llgo/internal/abi.Imethod", ptr %900, align 8 - %904 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 24) - %905 = getelementptr %"github.com/goplus/llgo/internal/abi.Imethod", ptr %904, i64 0 - store %"github.com/goplus/llgo/internal/abi.Imethod" %903, ptr %905, align 8 - %906 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %907 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %906, i32 0, i32 0 - store ptr %904, ptr %907, align 8 - %908 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %906, i32 0, i32 1 - store i64 1, ptr %908, align 4 - %909 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %906, i32 0, i32 2 - store i64 1, ptr %909, align 4 - %910 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %906, align 8 - %911 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %912 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %911, i32 0, i32 0 - store ptr @1, ptr %912, align 8 - %913 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %911, i32 0, i32 1 - store i64 4, ptr %913, align 4 - %914 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %911, align 8 - %915 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %916 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %915, i32 0, i32 0 - store ptr null, ptr %916, align 8 - %917 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %915, i32 0, i32 1 - store i64 0, ptr %917, align 4 - %918 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %915, align 8 - %919 = call ptr @"github.com/goplus/llgo/internal/runtime.Interface"(%"github.com/goplus/llgo/internal/runtime.String" %914, %"github.com/goplus/llgo/internal/runtime.String" %918, %"github.com/goplus/llgo/internal/runtime.Slice" %910) - store ptr %919, ptr @"_llgo_iface$Fh8eUJ-Gw4e6TYuajcFIOSCuqSPKAt5nS4ow7xeGXEU", 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 br label %_llgo_54 _llgo_54: ; preds = %_llgo_53, %_llgo_52 diff --git a/cl/_testgo/strucintf/out.ll b/cl/_testgo/strucintf/out.ll index 52acb52c5..61c77f20e 100644 --- a/cl/_testgo/strucintf/out.ll +++ b/cl/_testgo/strucintf/out.ll @@ -5,7 +5,6 @@ source_filename = "main" %"github.com/goplus/llgo/internal/runtime.String" = type { ptr, i64 } %"github.com/goplus/llgo/internal/abi.StructField" = type { %"github.com/goplus/llgo/internal/runtime.String", ptr, i64, %"github.com/goplus/llgo/internal/runtime.String", i1 } %"github.com/goplus/llgo/internal/runtime.Slice" = type { ptr, i64, i64 } -%"github.com/goplus/llgo/internal/abi.Type" = type { i64, i64, i32, i8, i8, i8, i8, { ptr, ptr }, ptr, %"github.com/goplus/llgo/internal/runtime.String", ptr } @"main.init$guard" = global i1 false, align 1 @"main.struct$MYpsoM99ZwFY087IpUOkIw1zjBA_sgFXVodmn1m-G88" = global ptr null, align 8 @@ -252,7 +251,7 @@ _llgo_0: %6 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %4, i32 0, i32 1 store i64 0, ptr %6, align 4 %7 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %4, align 8 - %8 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 2) + %8 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 34) %9 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %3, ptr %8, i64 0, %"github.com/goplus/llgo/internal/runtime.String" %7, i1 false) %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 @@ -272,53 +271,45 @@ _llgo_0: store i64 1, ptr %19, align 4 %20 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %16, align 8 %21 = call ptr @"github.com/goplus/llgo/internal/runtime.Struct"(%"github.com/goplus/llgo/internal/runtime.String" %13, i64 8, %"github.com/goplus/llgo/internal/runtime.Slice" %20) - %22 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Type", ptr %21, i32 0, i32 6 - %23 = load i8, ptr %22, align 1 - %24 = or i8 %23, 32 - store i8 %24, ptr %22, align 1 store ptr %21, ptr @"main.struct$MYpsoM99ZwFY087IpUOkIw1zjBA_sgFXVodmn1m-G88", align 8 - %25 = load ptr, ptr @"_llgo_struct$K-dZ9QotZfVPz2a0YdRa9vmZUuDXPTqZOlMShKEDJtk", align 8 - %26 = icmp eq ptr %25, null - br i1 %26, label %_llgo_1, label %_llgo_2 + %22 = load ptr, ptr @"_llgo_struct$K-dZ9QotZfVPz2a0YdRa9vmZUuDXPTqZOlMShKEDJtk", align 8 + %23 = icmp eq ptr %22, null + br i1 %23, label %_llgo_1, label %_llgo_2 _llgo_1: ; preds = %_llgo_0 - %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 @3, ptr %28, align 8 - %29 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %27, i32 0, i32 1 - store i64 1, 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 null, ptr %32, align 8 - %33 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %31, i32 0, i32 1 - store i64 0, ptr %33, align 4 - %34 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %31, align 8 - %35 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 2) - %36 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %30, ptr %35, i64 0, %"github.com/goplus/llgo/internal/runtime.String" %34, i1 false) - %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 @1, 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 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 56) - %42 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %41, i64 0 - store %"github.com/goplus/llgo/internal/abi.StructField" %36, ptr %42, align 8 - %43 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %44 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %43, i32 0, i32 0 - store ptr %41, ptr %44, align 8 - %45 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %43, i32 0, i32 1 - store i64 1, ptr %45, align 4 - %46 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %43, i32 0, i32 2 - store i64 1, ptr %46, align 4 - %47 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %43, align 8 - %48 = call ptr @"github.com/goplus/llgo/internal/runtime.Struct"(%"github.com/goplus/llgo/internal/runtime.String" %40, i64 8, %"github.com/goplus/llgo/internal/runtime.Slice" %47) - %49 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Type", ptr %48, i32 0, i32 6 - %50 = load i8, ptr %49, align 1 - %51 = or i8 %50, 32 - store i8 %51, ptr %49, align 1 - store ptr %48, ptr @"_llgo_struct$K-dZ9QotZfVPz2a0YdRa9vmZUuDXPTqZOlMShKEDJtk", 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 @3, 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 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 @1, ptr %35, align 8 + %36 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %34, i32 0, i32 1 + store i64 4, ptr %36, align 4 + %37 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %34, align 8 + %38 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 56) + %39 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %38, i64 0 + store %"github.com/goplus/llgo/internal/abi.StructField" %33, ptr %39, align 8 + %40 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %41 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %40, i32 0, i32 0 + store ptr %38, ptr %41, align 8 + %42 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %40, i32 0, i32 1 + store i64 1, ptr %42, align 4 + %43 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %40, i32 0, i32 2 + store i64 1, ptr %43, align 4 + %44 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %40, align 8 + %45 = call ptr @"github.com/goplus/llgo/internal/runtime.Struct"(%"github.com/goplus/llgo/internal/runtime.String" %37, i64 8, %"github.com/goplus/llgo/internal/runtime.Slice" %44) + store ptr %45, ptr @"_llgo_struct$K-dZ9QotZfVPz2a0YdRa9vmZUuDXPTqZOlMShKEDJtk", align 8 br label %_llgo_2 _llgo_2: ; preds = %_llgo_1, %_llgo_0 diff --git a/cl/_testgo/struczero/out.ll b/cl/_testgo/struczero/out.ll index 081ead9d9..2d2e4d19f 100644 --- a/cl/_testgo/struczero/out.ll +++ b/cl/_testgo/struczero/out.ll @@ -7,7 +7,6 @@ source_filename = "main" %"github.com/goplus/llgo/internal/runtime.String" = type { ptr, i64 } %"github.com/goplus/llgo/internal/abi.StructField" = type { %"github.com/goplus/llgo/internal/runtime.String", ptr, i64, %"github.com/goplus/llgo/internal/runtime.String", i1 } %"github.com/goplus/llgo/internal/runtime.Slice" = type { ptr, i64, i64 } -%"github.com/goplus/llgo/internal/abi.Type" = type { i64, i64, i32, i8, i8, i8, i8, { ptr, ptr }, ptr, %"github.com/goplus/llgo/internal/runtime.String", ptr } %"github.com/goplus/llgo/internal/abi.Method" = type { %"github.com/goplus/llgo/internal/runtime.String", ptr, ptr, ptr } @"main.init$guard" = global i1 false, align 1 @@ -202,7 +201,7 @@ _llgo_2: ; preds = %_llgo_1, %_llgo_0 %9 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %7, i32 0, i32 1 store i64 0, 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 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 @@ -217,7 +216,7 @@ _llgo_2: ; preds = %_llgo_1, %_llgo_0 %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.Basic"(i64 13) + %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 @@ -269,7 +268,7 @@ _llgo_4: ; preds = %_llgo_10, %_llgo_2 %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 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 @@ -284,7 +283,7 @@ _llgo_4: ; preds = %_llgo_10, %_llgo_2 %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 13) + %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 @@ -324,113 +323,109 @@ _llgo_4: ; preds = %_llgo_10, %_llgo_2 ret void _llgo_5: ; preds = %_llgo_3 - %88 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 8) - %89 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Type", ptr %88, i32 0, i32 6 - %90 = load i8, ptr %89, align 1 - %91 = or i8 %90, 32 - store i8 %91, ptr %89, align 1 + %88 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 40) store ptr %88, ptr @_llgo_byte, align 8 br label %_llgo_6 _llgo_6: ; preds = %_llgo_5, %_llgo_3 - %92 = load ptr, ptr @"*_llgo_byte", align 8 - %93 = icmp eq ptr %92, null - br i1 %93, label %_llgo_7, label %_llgo_8 + %89 = load ptr, ptr @"*_llgo_byte", align 8 + %90 = icmp eq ptr %89, null + br i1 %90, label %_llgo_7, label %_llgo_8 _llgo_7: ; preds = %_llgo_6 - %94 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 8) - %95 = call ptr @"github.com/goplus/llgo/internal/runtime.PointerTo"(ptr %94) - store ptr %95, ptr @"*_llgo_byte", align 8 + %91 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 40) + %92 = call ptr @"github.com/goplus/llgo/internal/runtime.PointerTo"(ptr %91) + store ptr %92, ptr @"*_llgo_byte", align 8 br label %_llgo_8 _llgo_8: ; preds = %_llgo_7, %_llgo_6 - %96 = load ptr, ptr @"*_llgo_byte", align 8 - %97 = load ptr, ptr @"_llgo_func$NfGSLZ1QiKRoFkKeqYSXE5hUU5bpeteSJKrbMNUzYRE", align 8 - %98 = icmp eq ptr %97, null - br i1 %98, label %_llgo_9, label %_llgo_10 + %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 _llgo_9: ; preds = %_llgo_8 - %99 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 0) - %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 %99, ptr %101, align 8 - %102 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %100, i32 0, i32 1 - store i64 0, ptr %102, align 4 - %103 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %100, i32 0, i32 2 - store i64 0, 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 8) - %106 = getelementptr ptr, ptr %105, i64 0 - store ptr %96, ptr %106, align 8 - %107 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %108 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %107, i32 0, i32 0 - store ptr %105, ptr %108, align 8 - %109 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %107, i32 0, i32 1 - store i64 1, ptr %109, align 4 - %110 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %107, i32 0, i32 2 - store i64 1, ptr %110, align 4 - %111 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %107, align 8 - %112 = call ptr @"github.com/goplus/llgo/internal/runtime.Func"(%"github.com/goplus/llgo/internal/runtime.Slice" %104, %"github.com/goplus/llgo/internal/runtime.Slice" %111, i1 false) - store ptr %112, ptr @"_llgo_func$NfGSLZ1QiKRoFkKeqYSXE5hUU5bpeteSJKrbMNUzYRE", align 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) + store ptr %109, ptr @"_llgo_func$NfGSLZ1QiKRoFkKeqYSXE5hUU5bpeteSJKrbMNUzYRE", align 8 br label %_llgo_10 _llgo_10: ; preds = %_llgo_9, %_llgo_8 - %113 = load ptr, ptr @"_llgo_func$NfGSLZ1QiKRoFkKeqYSXE5hUU5bpeteSJKrbMNUzYRE", align 8 - %114 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 - %115 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %114, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %41, ptr %115, align 8 - %116 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %114, i32 0, i32 1 - store ptr %113, ptr %116, align 8 - %117 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %114, i32 0, i32 2 - store ptr @"github.com/goplus/llgo/cl/internal/foo.(*Foo).Pb", ptr %117, align 8 - %118 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %114, i32 0, i32 3 - store ptr @"github.com/goplus/llgo/cl/internal/foo.(*Foo).Pb", ptr %118, align 8 - %119 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %114, align 8 - %120 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 - %121 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %120, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %41, ptr %121, align 8 - %122 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %120, i32 0, i32 1 - store ptr %113, ptr %122, align 8 - %123 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %120, i32 0, i32 2 - store ptr @"github.com/goplus/llgo/cl/internal/foo.(*Foo).Pb", ptr %123, align 8 - %124 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %120, i32 0, i32 3 - store ptr @"github.com/goplus/llgo/cl/internal/foo.Foo.Pb", ptr %124, align 8 - %125 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %120, align 8 - %126 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 40) - %127 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %126, i64 0 - store %"github.com/goplus/llgo/internal/abi.Method" %125, ptr %127, align 8 - %128 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %129 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %128, i32 0, i32 0 - store ptr %126, ptr %129, align 8 - %130 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %128, i32 0, i32 1 - store i64 1, ptr %130, align 4 - %131 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %128, i32 0, i32 2 - store i64 1, ptr %131, align 4 - %132 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %128, align 8 - %133 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 40) - %134 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %133, i64 0 - store %"github.com/goplus/llgo/internal/abi.Method" %119, ptr %134, align 8 - %135 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %136 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %135, i32 0, i32 0 - store ptr %133, ptr %136, align 8 - %137 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %135, i32 0, i32 1 - store i64 1, ptr %137, align 4 - %138 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %135, i32 0, i32 2 - store i64 1, ptr %138, align 4 - %139 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %135, 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 @4, ptr %141, align 8 - %142 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %140, i32 0, i32 1 - store i64 38, 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 @5, ptr %145, align 8 - %146 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %144, i32 0, i32 1 - store i64 3, ptr %146, align 4 - %147 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %144, align 8 - call void @"github.com/goplus/llgo/internal/runtime.InitNamed"(ptr %2, %"github.com/goplus/llgo/internal/runtime.String" %143, %"github.com/goplus/llgo/internal/runtime.String" %147, ptr %37, %"github.com/goplus/llgo/internal/runtime.Slice" %132, %"github.com/goplus/llgo/internal/runtime.Slice" %139) + %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 + 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 %2, %"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) br label %_llgo_4 } diff --git a/cl/_testrt/abinamed/out.ll b/cl/_testrt/abinamed/out.ll index 586b87b0d..dd1006243 100644 --- a/cl/_testrt/abinamed/out.ll +++ b/cl/_testrt/abinamed/out.ll @@ -491,7 +491,7 @@ _llgo_2: ; preds = %_llgo_1, %_llgo_0 %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 12) + %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 @@ -566,7 +566,7 @@ _llgo_6: ; preds = %_llgo_5, %_llgo_4 br i1 %71, label %_llgo_7, label %_llgo_8 _llgo_7: ; preds = %_llgo_6 - %72 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 26) + %72 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 58) store ptr %72, ptr @_llgo_Pointer, align 8 br label %_llgo_8 @@ -579,3962 +579,3942 @@ _llgo_8: ; preds = %_llgo_7, %_llgo_6 br i1 %77, label %_llgo_9, label %_llgo_10 _llgo_9: ; preds = %_llgo_8 - %78 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 1) - %79 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Type", ptr %78, i32 0, i32 6 - %80 = load i8, ptr %79, align 1 - %81 = or i8 %80, 32 - store i8 %81, ptr %79, align 1 + %78 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 33) store ptr %78, ptr @_llgo_bool, align 8 br label %_llgo_10 _llgo_10: ; preds = %_llgo_9, %_llgo_8 - %82 = load ptr, ptr @_llgo_bool, align 8 - %83 = load ptr, ptr @"_llgo_struct$13P_TvKNXommvK6tKt3eRNnJqTcPEFYrHagFiHeRpb0", align 8 - %84 = icmp eq ptr %83, null - br i1 %84, label %_llgo_11, label %_llgo_12 + %79 = load ptr, ptr @_llgo_bool, align 8 + %80 = load ptr, ptr @"_llgo_struct$13P_TvKNXommvK6tKt3eRNnJqTcPEFYrHagFiHeRpb0", align 8 + %81 = icmp eq ptr %80, null + br i1 %81, label %_llgo_11, label %_llgo_12 _llgo_11: ; preds = %_llgo_10 - %85 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %86 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %85, i32 0, i32 0 - store ptr @6, ptr %86, align 8 - %87 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %85, i32 0, i32 1 - store i64 5, ptr %87, align 4 - %88 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %85, 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 null, ptr %90, align 8 - %91 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %89, i32 0, i32 1 - store i64 0, ptr %91, align 4 - %92 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %89, align 8 - %93 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 12) - %94 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %88, ptr %93, i64 0, %"github.com/goplus/llgo/internal/runtime.String" %92, i1 false) - %95 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %96 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %95, i32 0, i32 0 - store ptr @7, ptr %96, align 8 - %97 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %95, i32 0, i32 1 - store i64 8, ptr %97, align 4 - %98 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %95, align 8 - %99 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %100 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %99, i32 0, i32 0 - store ptr null, ptr %100, align 8 - %101 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %99, i32 0, i32 1 - store i64 0, ptr %101, align 4 - %102 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %99, align 8 - %103 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 12) - %104 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %98, ptr %103, i64 8, %"github.com/goplus/llgo/internal/runtime.String" %102, i1 false) - %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 @8, ptr %106, align 8 - %107 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %105, i32 0, i32 1 - store i64 4, ptr %107, align 4 - %108 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %105, align 8 - %109 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %110 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %109, i32 0, i32 0 - store ptr null, ptr %110, align 8 - %111 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %109, i32 0, i32 1 - store i64 0, ptr %111, align 4 - %112 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %109, align 8 - %113 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 10) - %114 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %108, ptr %113, i64 16, %"github.com/goplus/llgo/internal/runtime.String" %112, i1 false) - %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 @9, ptr %116, align 8 - %117 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %115, i32 0, i32 1 - store i64 5, ptr %117, align 4 - %118 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %115, align 8 - %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 null, ptr %120, align 8 - %121 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %119, i32 0, i32 1 - store i64 0, ptr %121, align 4 - %122 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %119, align 8 - %123 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(i64 8, i64 0, i64 0) - %124 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %118, ptr %123, i64 20, %"github.com/goplus/llgo/internal/runtime.String" %122, i1 false) - %125 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %126 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %125, i32 0, i32 0 - store ptr @10, ptr %126, align 8 - %127 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %125, i32 0, i32 1 - store i64 6, ptr %127, align 4 - %128 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %125, align 8 - %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 null, ptr %130, align 8 - %131 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %129, i32 0, i32 1 - store i64 0, ptr %131, align 4 - %132 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %129, align 8 - %133 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 8) - %134 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %128, ptr %133, i64 21, %"github.com/goplus/llgo/internal/runtime.String" %132, i1 false) - %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 @11, ptr %136, align 8 - %137 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %135, i32 0, i32 1 - store i64 11, ptr %137, align 4 - %138 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %135, align 8 - %139 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %140 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %139, i32 0, i32 0 - store ptr null, ptr %140, align 8 - %141 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %139, i32 0, i32 1 - store i64 0, ptr %141, align 4 - %142 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %139, align 8 - %143 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 8) - %144 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %138, ptr %143, i64 22, %"github.com/goplus/llgo/internal/runtime.String" %142, i1 false) - %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 @12, 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 - %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 null, ptr %150, align 8 - %151 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %149, i32 0, i32 1 - store i64 0, ptr %151, align 4 - %152 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %149, align 8 - %153 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 8) - %154 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %148, ptr %153, i64 23, %"github.com/goplus/llgo/internal/runtime.String" %152, i1 false) - %155 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %156 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %155, i32 0, i32 0 - store ptr @13, ptr %156, align 8 - %157 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %155, i32 0, i32 1 - store i64 5, ptr %157, align 4 - %158 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %155, align 8 - %159 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %160 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %159, i32 0, i32 0 - store ptr null, ptr %160, align 8 - %161 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %159, i32 0, i32 1 - store i64 0, ptr %161, align 4 - %162 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %159, align 8 - %163 = 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 @14, ptr %164, align 8 - %165 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %163, i32 0, i32 1 - store i64 1, ptr %165, align 4 - %166 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %163, align 8 - %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 null, ptr %168, align 8 - %169 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %167, i32 0, i32 1 - store i64 0, ptr %169, align 4 - %170 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %167, align 8 - %171 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 24) - %172 = getelementptr ptr, ptr %171, i64 0 - store ptr %73, ptr %172, align 8 - %173 = getelementptr ptr, ptr %171, i64 1 - store ptr %74, ptr %173, align 8 - %174 = getelementptr ptr, ptr %171, i64 2 - store ptr %75, 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 %171, ptr %176, align 8 - %177 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %175, i32 0, i32 1 - store i64 3, ptr %177, align 4 - %178 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %175, i32 0, i32 2 - store i64 3, ptr %178, align 4 - %179 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %175, align 8 - %180 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 8) - %181 = getelementptr ptr, ptr %180, i64 0 - store ptr %82, ptr %181, align 8 - %182 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %183 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %182, i32 0, i32 0 - store ptr %180, ptr %183, align 8 - %184 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %182, i32 0, i32 1 - store i64 1, ptr %184, align 4 - %185 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %182, i32 0, i32 2 - store i64 1, ptr %185, align 4 - %186 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %182, align 8 - %187 = call ptr @"github.com/goplus/llgo/internal/runtime.Func"(%"github.com/goplus/llgo/internal/runtime.Slice" %179, %"github.com/goplus/llgo/internal/runtime.Slice" %186, i1 false) - %188 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %166, ptr %187, i64 0, %"github.com/goplus/llgo/internal/runtime.String" %170, i1 false) - %189 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %190 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %189, i32 0, i32 0 - store ptr @15, ptr %190, align 8 - %191 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %189, i32 0, i32 1 - store i64 4, ptr %191, align 4 - %192 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %189, align 8 - %193 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %194 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %193, i32 0, i32 0 - store ptr null, ptr %194, align 8 - %195 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %193, i32 0, i32 1 - store i64 0, ptr %195, align 4 - %196 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %193, align 8 - %197 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 26) - %198 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %192, ptr %197, i64 8, %"github.com/goplus/llgo/internal/runtime.String" %196, i1 false) - %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 4, ptr %201, align 4 - %202 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %199, align 8 - %203 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 112) - %204 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %203, i64 0 - store %"github.com/goplus/llgo/internal/abi.StructField" %188, ptr %204, align 8 - %205 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %203, i64 1 - store %"github.com/goplus/llgo/internal/abi.StructField" %198, 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 %203, ptr %207, align 8 - %208 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %206, i32 0, i32 1 - store i64 2, ptr %208, align 4 - %209 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %206, i32 0, i32 2 - store i64 2, ptr %209, align 4 - %210 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %206, align 8 - %211 = call ptr @"github.com/goplus/llgo/internal/runtime.Struct"(%"github.com/goplus/llgo/internal/runtime.String" %202, i64 16, %"github.com/goplus/llgo/internal/runtime.Slice" %210) - %212 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %158, ptr %211, i64 24, %"github.com/goplus/llgo/internal/runtime.String" %162, i1 false) - %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 @16, ptr %214, align 8 - %215 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %213, i32 0, i32 1 - store i64 6, ptr %215, align 4 - %216 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %213, align 8 - %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 null, ptr %218, align 8 - %219 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %217, i32 0, i32 1 - store i64 0, 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.Basic"(i64 8) - %222 = call ptr @"github.com/goplus/llgo/internal/runtime.PointerTo"(ptr %221) - %223 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %216, ptr %222, i64 40, %"github.com/goplus/llgo/internal/runtime.String" %220, i1 false) - %224 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %225 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %224, i32 0, i32 0 - store ptr @17, ptr %225, align 8 - %226 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %224, i32 0, i32 1 - store i64 4, ptr %226, align 4 - %227 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %224, align 8 - %228 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %229 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %228, i32 0, i32 0 - store ptr null, ptr %229, align 8 - %230 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %228, i32 0, i32 1 - store i64 0, ptr %230, align 4 - %231 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %228, align 8 - %232 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 24) - %233 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %227, ptr %232, i64 48, %"github.com/goplus/llgo/internal/runtime.String" %231, i1 false) - %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 @18, ptr %235, align 8 - %236 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %234, i32 0, i32 1 - store i64 10, ptr %236, align 4 - %237 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %234, align 8 - %238 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %239 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %238, i32 0, i32 0 - store ptr null, ptr %239, align 8 - %240 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %238, i32 0, i32 1 - store i64 0, ptr %240, align 4 - %241 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %238, align 8 - %242 = call ptr @"github.com/goplus/llgo/internal/runtime.PointerTo"(ptr %21) - %243 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %237, ptr %242, i64 64, %"github.com/goplus/llgo/internal/runtime.String" %241, i1 false) - %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 @4, ptr %245, align 8 - %246 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %244, i32 0, i32 1 - store i64 4, 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.AllocU"(i64 616) - %249 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %248, i64 0 - store %"github.com/goplus/llgo/internal/abi.StructField" %94, ptr %249, align 8 - %250 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %248, i64 1 - store %"github.com/goplus/llgo/internal/abi.StructField" %104, ptr %250, align 8 - %251 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %248, i64 2 - store %"github.com/goplus/llgo/internal/abi.StructField" %114, ptr %251, align 8 - %252 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %248, i64 3 - store %"github.com/goplus/llgo/internal/abi.StructField" %124, ptr %252, align 8 - %253 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %248, i64 4 - store %"github.com/goplus/llgo/internal/abi.StructField" %134, ptr %253, align 8 - %254 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %248, i64 5 - store %"github.com/goplus/llgo/internal/abi.StructField" %144, ptr %254, align 8 - %255 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %248, i64 6 - store %"github.com/goplus/llgo/internal/abi.StructField" %154, ptr %255, align 8 - %256 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %248, i64 7 - store %"github.com/goplus/llgo/internal/abi.StructField" %212, ptr %256, align 8 - %257 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %248, i64 8 - store %"github.com/goplus/llgo/internal/abi.StructField" %223, ptr %257, align 8 - %258 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %248, i64 9 - store %"github.com/goplus/llgo/internal/abi.StructField" %233, ptr %258, align 8 - %259 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %248, i64 10 - store %"github.com/goplus/llgo/internal/abi.StructField" %243, ptr %259, align 8 - %260 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %261 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %260, i32 0, i32 0 - store ptr %248, ptr %261, align 8 - %262 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %260, i32 0, i32 1 - store i64 11, ptr %262, align 4 - %263 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %260, i32 0, i32 2 - store i64 11, ptr %263, align 4 - %264 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %260, align 8 - %265 = call ptr @"github.com/goplus/llgo/internal/runtime.Struct"(%"github.com/goplus/llgo/internal/runtime.String" %247, i64 72, %"github.com/goplus/llgo/internal/runtime.Slice" %264) - store ptr %265, ptr @"_llgo_struct$13P_TvKNXommvK6tKt3eRNnJqTcPEFYrHagFiHeRpb0", 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 @6, ptr %83, align 8 + %84 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %82, i32 0, i32 1 + store i64 5, ptr %84, align 4 + %85 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %82, align 8 + %86 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %87 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %86, i32 0, i32 0 + store ptr null, ptr %87, align 8 + %88 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %86, i32 0, i32 1 + store i64 0, 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.Basic"(i64 44) + %91 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %85, ptr %90, i64 0, %"github.com/goplus/llgo/internal/runtime.String" %89, i1 false) + %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 @7, ptr %93, align 8 + %94 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %92, i32 0, i32 1 + store i64 8, 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.Basic"(i64 44) + %101 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %95, ptr %100, i64 8, %"github.com/goplus/llgo/internal/runtime.String" %99, i1 false) + %102 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %103 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %102, i32 0, i32 0 + store ptr @8, ptr %103, align 8 + %104 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %102, i32 0, i32 1 + store i64 4, ptr %104, align 4 + %105 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %102, align 8 + %106 = 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 null, ptr %107, align 8 + %108 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %106, i32 0, i32 1 + store i64 0, 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.Basic"(i64 42) + %111 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %105, ptr %110, i64 16, %"github.com/goplus/llgo/internal/runtime.String" %109, i1 false) + %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 @9, ptr %113, align 8 + %114 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %112, i32 0, i32 1 + store i64 5, ptr %114, align 4 + %115 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %112, align 8 + %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 null, ptr %117, align 8 + %118 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %116, i32 0, i32 1 + store i64 0, ptr %118, align 4 + %119 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %116, align 8 + %120 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(i64 8, i64 0, i64 0) + %121 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %115, ptr %120, i64 20, %"github.com/goplus/llgo/internal/runtime.String" %119, 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) + %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 + %155 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %152, align 8 + %156 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %157 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %156, i32 0, i32 0 + store ptr null, ptr %157, align 8 + %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 %73, ptr %169, align 8 + %170 = getelementptr ptr, ptr %168, i64 1 + store ptr %74, ptr %170, align 8 + %171 = getelementptr ptr, ptr %168, i64 2 + store ptr %75, 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 %79, 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) + %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 + %188 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %186, i32 0, i32 1 + store i64 4, ptr %188, align 4 + %189 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %186, align 8 + %190 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %191 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %190, i32 0, i32 0 + store ptr null, 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 + %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 %21) + %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" %91, 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" %101, 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" %111, 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 _llgo_12: ; preds = %_llgo_11, %_llgo_10 - %266 = load ptr, ptr @"_llgo_struct$13P_TvKNXommvK6tKt3eRNnJqTcPEFYrHagFiHeRpb0", align 8 + %263 = load ptr, ptr @"_llgo_struct$13P_TvKNXommvK6tKt3eRNnJqTcPEFYrHagFiHeRpb0", align 8 br i1 %69, label %_llgo_13, label %_llgo_14 _llgo_13: ; preds = %_llgo_12 - %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 @19, ptr %268, align 8 - %269 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %267, i32 0, i32 1 - store i64 5, ptr %269, align 4 - %270 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %267, align 8 - %271 = load ptr, ptr @_llgo_int, align 8 - %272 = icmp eq ptr %271, null - br i1 %272, label %_llgo_15, label %_llgo_16 + %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 ret void _llgo_15: ; preds = %_llgo_13 - %273 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 2) - %274 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Type", ptr %273, i32 0, i32 6 - %275 = load i8, ptr %274, align 1 - %276 = or i8 %275, 32 - store i8 %276, ptr %274, align 1 - store ptr %273, ptr @_llgo_int, align 8 + %270 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 34) + store ptr %270, ptr @_llgo_int, align 8 br label %_llgo_16 _llgo_16: ; preds = %_llgo_15, %_llgo_13 - %277 = load ptr, ptr @_llgo_int, align 8 - %278 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 - %279 = icmp eq ptr %278, null - br i1 %279, label %_llgo_17, label %_llgo_18 + %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_17: ; preds = %_llgo_16 - %280 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 0) - %281 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %282 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %281, i32 0, i32 0 - store ptr %280, ptr %282, align 8 - %283 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %281, i32 0, i32 1 - store i64 0, ptr %283, align 4 - %284 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %281, i32 0, i32 2 - store i64 0, ptr %284, align 4 - %285 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %281, align 8 - %286 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 8) - %287 = getelementptr ptr, ptr %286, i64 0 - store ptr %277, 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 = call ptr @"github.com/goplus/llgo/internal/runtime.Func"(%"github.com/goplus/llgo/internal/runtime.Slice" %285, %"github.com/goplus/llgo/internal/runtime.Slice" %292, i1 false) - store ptr %293, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 + %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) + store ptr %287, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 br label %_llgo_18 _llgo_18: ; preds = %_llgo_17, %_llgo_16 - %294 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 - %295 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 - %296 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %295, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %270, ptr %296, align 8 - %297 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %295, i32 0, i32 1 - store ptr %294, ptr %297, align 8 - %298 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %295, i32 0, i32 2 - store ptr @"github.com/goplus/llgo/internal/abi.(*Type).Align", ptr %298, align 8 - %299 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %295, i32 0, i32 3 - store ptr @"github.com/goplus/llgo/internal/abi.(*Type).Align", ptr %299, align 8 - %300 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %295, 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 @20, ptr %302, align 8 - %303 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %301, i32 0, i32 1 - store i64 9, ptr %303, align 4 - %304 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %301, align 8 - %305 = load ptr, ptr @"_llgo_github.com/goplus/llgo/internal/abi.ArrayType", align 8 - %306 = icmp eq ptr %305, null - br i1 %306, label %_llgo_19, label %_llgo_20 + %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 = load ptr, ptr @"_llgo_github.com/goplus/llgo/internal/abi.ArrayType", align 8 + %300 = icmp eq ptr %299, null + br i1 %300, label %_llgo_19, label %_llgo_20 _llgo_19: ; preds = %_llgo_18 - %307 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(i64 25, i64 0, i64 16) - store ptr %307, ptr @"_llgo_github.com/goplus/llgo/internal/abi.ArrayType", align 8 + %301 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(i64 25, i64 0, i64 16) + store ptr %301, ptr @"_llgo_github.com/goplus/llgo/internal/abi.ArrayType", align 8 br label %_llgo_20 _llgo_20: ; preds = %_llgo_19, %_llgo_18 - %308 = load ptr, ptr @"_llgo_struct$eLreYy_0Tx9Ip-rgTmC6_uCvf27HVl_zBUTfLS0WYaY", align 8 - %309 = icmp eq ptr %308, null - br i1 %309, label %_llgo_21, label %_llgo_22 + %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 _llgo_21: ; preds = %_llgo_20 - %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 @21, ptr %311, align 8 - %312 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %310, i32 0, i32 1 - store i64 4, ptr %312, align 4 - %313 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %310, align 8 - %314 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %315 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %314, i32 0, i32 0 - store ptr null, ptr %315, align 8 - %316 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %314, i32 0, i32 1 - store i64 0, ptr %316, align 4 - %317 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %314, align 8 - %318 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %313, ptr %21, i64 0, %"github.com/goplus/llgo/internal/runtime.String" %317, i1 true) - %319 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %320 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %319, i32 0, i32 0 - store ptr @22, ptr %320, align 8 - %321 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %319, i32 0, i32 1 - store i64 4, ptr %321, align 4 - %322 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %319, align 8 + %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 %21, 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 %21) + %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 null, ptr %324, align 8 + 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 0, ptr %325, align 4 + store i64 5, ptr %325, align 4 %326 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %323, align 8 - %327 = call ptr @"github.com/goplus/llgo/internal/runtime.PointerTo"(ptr %21) - %328 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %322, ptr %327, i64 72, %"github.com/goplus/llgo/internal/runtime.String" %326, i1 false) - %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 @23, ptr %330, align 8 - %331 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %329, i32 0, i32 1 - store i64 5, ptr %331, align 4 - %332 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %329, 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 %21) + %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 null, ptr %334, align 8 + 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 0, ptr %335, align 4 + store i64 3, ptr %335, align 4 %336 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %333, align 8 - %337 = call ptr @"github.com/goplus/llgo/internal/runtime.PointerTo"(ptr %21) - %338 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %332, ptr %337, i64 80, %"github.com/goplus/llgo/internal/runtime.String" %336, i1 false) - %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 @24, ptr %340, align 8 - %341 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %339, i32 0, i32 1 - store i64 3, ptr %341, align 4 - %342 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %339, 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 null, ptr %344, align 8 + 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 0, ptr %345, align 4 + 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.Basic"(i64 12) - %348 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %342, ptr %347, i64 88, %"github.com/goplus/llgo/internal/runtime.String" %346, i1 false) - %349 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %350 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %349, i32 0, i32 0 - store ptr @4, ptr %350, align 8 - %351 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %349, i32 0, i32 1 - store i64 4, ptr %351, align 4 - %352 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %349, align 8 - %353 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 224) - %354 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %353, i64 0 - store %"github.com/goplus/llgo/internal/abi.StructField" %318, ptr %354, align 8 - %355 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %353, i64 1 - store %"github.com/goplus/llgo/internal/abi.StructField" %328, ptr %355, align 8 - %356 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %353, i64 2 - store %"github.com/goplus/llgo/internal/abi.StructField" %338, ptr %356, align 8 - %357 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %353, i64 3 - store %"github.com/goplus/llgo/internal/abi.StructField" %348, ptr %357, align 8 - %358 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %359 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %358, i32 0, i32 0 - store ptr %353, ptr %359, align 8 - %360 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %358, i32 0, i32 1 - store i64 4, ptr %360, align 4 - %361 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %358, i32 0, i32 2 - store i64 4, ptr %361, align 4 - %362 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %358, align 8 - %363 = call ptr @"github.com/goplus/llgo/internal/runtime.Struct"(%"github.com/goplus/llgo/internal/runtime.String" %352, i64 96, %"github.com/goplus/llgo/internal/runtime.Slice" %362) - store ptr %363, ptr @"_llgo_struct$eLreYy_0Tx9Ip-rgTmC6_uCvf27HVl_zBUTfLS0WYaY", 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 _llgo_22: ; preds = %_llgo_21, %_llgo_20 - %364 = load ptr, ptr @"_llgo_struct$eLreYy_0Tx9Ip-rgTmC6_uCvf27HVl_zBUTfLS0WYaY", align 8 - br i1 %306, label %_llgo_23, label %_llgo_24 + %358 = load ptr, ptr @"_llgo_struct$eLreYy_0Tx9Ip-rgTmC6_uCvf27HVl_zBUTfLS0WYaY", align 8 + br i1 %300, label %_llgo_23, label %_llgo_24 _llgo_23: ; preds = %_llgo_22 - %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 @19, ptr %366, align 8 - %367 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %365, i32 0, i32 1 - store i64 5, ptr %367, align 4 - %368 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %365, align 8 - %369 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 - %370 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 - %371 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %370, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %368, ptr %371, align 8 - %372 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %370, i32 0, i32 1 - store ptr %369, ptr %372, align 8 - %373 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %370, i32 0, i32 2 - store ptr @"github.com/goplus/llgo/internal/abi.(*ArrayType).Align", ptr %373, align 8 - %374 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %370, i32 0, i32 3 - store ptr @"github.com/goplus/llgo/internal/abi.(*ArrayType).Align", ptr %374, align 8 - %375 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %370, 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 @20, ptr %377, align 8 - %378 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %376, i32 0, i32 1 - store i64 9, ptr %378, align 4 - %379 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %376, align 8 - %380 = load ptr, ptr @"_llgo_func$CsVqlCxhoEcIvPD5BSBukfSiD9C7Ic5_Gf32MLbCWB4", align 8 - %381 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 - %382 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %381, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %379, ptr %382, align 8 - %383 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %381, i32 0, i32 1 - store ptr %380, ptr %383, align 8 - %384 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %381, i32 0, i32 2 - store ptr @"github.com/goplus/llgo/internal/abi.(*ArrayType).ArrayType", ptr %384, align 8 - %385 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %381, i32 0, i32 3 - store ptr @"github.com/goplus/llgo/internal/abi.(*ArrayType).ArrayType", ptr %385, align 8 - %386 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %381, align 8 - %387 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %388 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %387, i32 0, i32 0 - store ptr @25, ptr %388, align 8 - %389 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %387, i32 0, i32 1 - store i64 6, ptr %389, align 4 - %390 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %387, align 8 - %391 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/internal/abi.Type", align 8 - %392 = icmp eq ptr %391, null - br i1 %392, label %_llgo_25, label %_llgo_26 + %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 - %393 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/internal/abi.ArrayType", align 8 - %394 = icmp eq ptr %393, null - br i1 %394, label %_llgo_101, label %_llgo_102 + %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 - %395 = call ptr @"github.com/goplus/llgo/internal/runtime.PointerTo"(ptr %21) - store ptr %395, ptr @"*_llgo_github.com/goplus/llgo/internal/abi.Type", align 8 + %389 = call ptr @"github.com/goplus/llgo/internal/runtime.PointerTo"(ptr %21) + store ptr %389, ptr @"*_llgo_github.com/goplus/llgo/internal/abi.Type", align 8 br label %_llgo_26 _llgo_26: ; preds = %_llgo_25, %_llgo_23 - %396 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/internal/abi.Type", align 8 - %397 = load ptr, ptr @"_llgo_func$4-mqItKfDlL0CgVKnUxoresYgh6zW1WSlZYZSsVzLRo", align 8 - %398 = icmp eq ptr %397, null - br i1 %398, label %_llgo_27, label %_llgo_28 + %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_27: ; preds = %_llgo_26 - %399 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 0) - %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 %399, ptr %401, align 8 - %402 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %400, i32 0, i32 1 - store i64 0, ptr %402, align 4 - %403 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %400, i32 0, i32 2 - store i64 0, ptr %403, align 4 - %404 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %400, align 8 - %405 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 8) - %406 = getelementptr ptr, ptr %405, i64 0 - store ptr %396, ptr %406, align 8 - %407 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %408 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %407, i32 0, i32 0 - store ptr %405, ptr %408, align 8 - %409 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %407, i32 0, i32 1 - store i64 1, ptr %409, align 4 - %410 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %407, i32 0, i32 2 - store i64 1, ptr %410, align 4 - %411 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %407, align 8 - %412 = call ptr @"github.com/goplus/llgo/internal/runtime.Func"(%"github.com/goplus/llgo/internal/runtime.Slice" %404, %"github.com/goplus/llgo/internal/runtime.Slice" %411, i1 false) - store ptr %412, ptr @"_llgo_func$4-mqItKfDlL0CgVKnUxoresYgh6zW1WSlZYZSsVzLRo", align 8 + %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) + store ptr %406, ptr @"_llgo_func$4-mqItKfDlL0CgVKnUxoresYgh6zW1WSlZYZSsVzLRo", align 8 br label %_llgo_28 _llgo_28: ; preds = %_llgo_27, %_llgo_26 - %413 = load ptr, ptr @"_llgo_func$4-mqItKfDlL0CgVKnUxoresYgh6zW1WSlZYZSsVzLRo", align 8 - %414 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 - %415 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %414, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %390, ptr %415, align 8 - %416 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %414, i32 0, i32 1 - store ptr %413, ptr %416, align 8 - %417 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %414, i32 0, i32 2 - store ptr @"github.com/goplus/llgo/internal/abi.(*ArrayType).Common", ptr %417, align 8 - %418 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %414, i32 0, i32 3 - store ptr @"github.com/goplus/llgo/internal/abi.(*ArrayType).Common", ptr %418, align 8 - %419 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %414, align 8 - %420 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %421 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %420, i32 0, i32 0 - store ptr @26, ptr %421, align 8 - %422 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %420, i32 0, i32 1 - store i64 10, ptr %422, align 4 - %423 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %420, align 8 - %424 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 - %425 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 - %426 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %425, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %423, ptr %426, align 8 - %427 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %425, i32 0, i32 1 - store ptr %424, ptr %427, align 8 - %428 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %425, i32 0, i32 2 - store ptr @"github.com/goplus/llgo/internal/abi.(*ArrayType).FieldAlign", ptr %428, align 8 - %429 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %425, i32 0, i32 3 - store ptr @"github.com/goplus/llgo/internal/abi.(*ArrayType).FieldAlign", ptr %429, align 8 - %430 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %425, align 8 - %431 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %432 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %431, i32 0, i32 0 - store ptr @27, ptr %432, align 8 - %433 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %431, i32 0, i32 1 - store i64 8, ptr %433, align 4 - %434 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %431, align 8 - %435 = load ptr, ptr @"_llgo_github.com/goplus/llgo/internal/abi.FuncType", align 8 - %436 = icmp eq ptr %435, null - br i1 %436, label %_llgo_29, label %_llgo_30 + %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 = load ptr, ptr @"_llgo_github.com/goplus/llgo/internal/abi.FuncType", align 8 + %430 = icmp eq ptr %429, null + br i1 %430, label %_llgo_29, label %_llgo_30 _llgo_29: ; preds = %_llgo_28 - %437 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(i64 25, i64 0, i64 19) - store ptr %437, ptr @"_llgo_github.com/goplus/llgo/internal/abi.FuncType", align 8 + %431 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(i64 25, i64 0, i64 19) + store ptr %431, ptr @"_llgo_github.com/goplus/llgo/internal/abi.FuncType", align 8 br label %_llgo_30 _llgo_30: ; preds = %_llgo_29, %_llgo_28 - %438 = load ptr, ptr @"_llgo_struct$wRu7InfmQeSkq7akLN3soDNninnS1dQajawdYvmHbzw", align 8 - %439 = icmp eq ptr %438, null - br i1 %439, label %_llgo_31, label %_llgo_32 + %432 = load ptr, ptr @"_llgo_struct$wRu7InfmQeSkq7akLN3soDNninnS1dQajawdYvmHbzw", align 8 + %433 = icmp eq ptr %432, null + br i1 %433, label %_llgo_31, label %_llgo_32 _llgo_31: ; preds = %_llgo_30 - %440 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %441 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %440, i32 0, i32 0 - store ptr @21, ptr %441, align 8 - %442 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %440, i32 0, i32 1 - store i64 4, ptr %442, align 4 - %443 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %440, align 8 - %444 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %445 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %444, i32 0, i32 0 - store ptr null, ptr %445, align 8 - %446 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %444, i32 0, i32 1 - store i64 0, ptr %446, align 4 - %447 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %444, align 8 - %448 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %443, ptr %21, i64 0, %"github.com/goplus/llgo/internal/runtime.String" %447, i1 true) - %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 @28, ptr %450, align 8 - %451 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %449, i32 0, i32 1 - store i64 2, 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 null, ptr %454, align 8 - %455 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %453, i32 0, i32 1 - store i64 0, ptr %455, align 4 - %456 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %453, align 8 - %457 = call ptr @"github.com/goplus/llgo/internal/runtime.PointerTo"(ptr %21) - %458 = call ptr @"github.com/goplus/llgo/internal/runtime.SliceOf"(ptr %457) - %459 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %452, ptr %458, i64 72, %"github.com/goplus/llgo/internal/runtime.String" %456, i1 false) - %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 @29, ptr %461, align 8 - %462 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %460, i32 0, i32 1 - store i64 3, 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 null, ptr %465, align 8 - %466 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %464, i32 0, i32 1 - store i64 0, 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.PointerTo"(ptr %21) - %469 = call ptr @"github.com/goplus/llgo/internal/runtime.SliceOf"(ptr %468) - %470 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %463, ptr %469, i64 96, %"github.com/goplus/llgo/internal/runtime.String" %467, i1 false) - %471 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %472 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %471, i32 0, i32 0 - store ptr @4, ptr %472, align 8 - %473 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %471, i32 0, i32 1 - store i64 4, ptr %473, align 4 - %474 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %471, align 8 - %475 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 168) - %476 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %475, i64 0 - store %"github.com/goplus/llgo/internal/abi.StructField" %448, ptr %476, align 8 - %477 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %475, i64 1 - store %"github.com/goplus/llgo/internal/abi.StructField" %459, ptr %477, align 8 - %478 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %475, i64 2 - store %"github.com/goplus/llgo/internal/abi.StructField" %470, ptr %478, align 8 - %479 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %480 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %479, i32 0, i32 0 - store ptr %475, ptr %480, align 8 - %481 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %479, i32 0, i32 1 - store i64 3, ptr %481, align 4 - %482 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %479, i32 0, i32 2 - store i64 3, ptr %482, align 4 - %483 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %479, align 8 - %484 = call ptr @"github.com/goplus/llgo/internal/runtime.Struct"(%"github.com/goplus/llgo/internal/runtime.String" %474, i64 120, %"github.com/goplus/llgo/internal/runtime.Slice" %483) - store ptr %484, ptr @"_llgo_struct$wRu7InfmQeSkq7akLN3soDNninnS1dQajawdYvmHbzw", 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 @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 %21, 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 %21) + %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 %21) + %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 br label %_llgo_32 _llgo_32: ; preds = %_llgo_31, %_llgo_30 - %485 = load ptr, ptr @"_llgo_struct$wRu7InfmQeSkq7akLN3soDNninnS1dQajawdYvmHbzw", align 8 - br i1 %436, label %_llgo_33, label %_llgo_34 + %479 = load ptr, ptr @"_llgo_struct$wRu7InfmQeSkq7akLN3soDNninnS1dQajawdYvmHbzw", align 8 + br i1 %430, label %_llgo_33, label %_llgo_34 _llgo_33: ; preds = %_llgo_32 - %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 @19, ptr %487, align 8 - %488 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %486, i32 0, i32 1 - store i64 5, ptr %488, align 4 - %489 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %486, align 8 - %490 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 - %491 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 - %492 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %491, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %489, ptr %492, align 8 - %493 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %491, i32 0, i32 1 - store ptr %490, ptr %493, align 8 - %494 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %491, i32 0, i32 2 - store ptr @"github.com/goplus/llgo/internal/abi.(*FuncType).Align", ptr %494, align 8 - %495 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %491, i32 0, i32 3 - store ptr @"github.com/goplus/llgo/internal/abi.(*FuncType).Align", ptr %495, align 8 - %496 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %491, 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 @20, ptr %498, align 8 - %499 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %497, i32 0, i32 1 - store i64 9, ptr %499, align 4 - %500 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %497, align 8 - %501 = load ptr, ptr @"_llgo_func$CsVqlCxhoEcIvPD5BSBukfSiD9C7Ic5_Gf32MLbCWB4", align 8 - %502 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 - %503 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %502, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %500, ptr %503, align 8 - %504 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %502, i32 0, i32 1 - store ptr %501, ptr %504, align 8 - %505 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %502, i32 0, i32 2 - store ptr @"github.com/goplus/llgo/internal/abi.(*FuncType).ArrayType", ptr %505, align 8 - %506 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %502, i32 0, i32 3 - store ptr @"github.com/goplus/llgo/internal/abi.(*FuncType).ArrayType", ptr %506, align 8 - %507 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %502, align 8 - %508 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %509 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %508, i32 0, i32 0 - store ptr @25, ptr %509, align 8 - %510 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %508, i32 0, i32 1 - store i64 6, ptr %510, align 4 - %511 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %508, align 8 - %512 = load ptr, ptr @"_llgo_func$4-mqItKfDlL0CgVKnUxoresYgh6zW1WSlZYZSsVzLRo", align 8 - %513 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 - %514 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %513, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %511, ptr %514, align 8 - %515 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %513, i32 0, i32 1 - store ptr %512, ptr %515, align 8 - %516 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %513, i32 0, i32 2 - store ptr @"github.com/goplus/llgo/internal/abi.(*FuncType).Common", ptr %516, align 8 - %517 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %513, i32 0, i32 3 - store ptr @"github.com/goplus/llgo/internal/abi.(*FuncType).Common", ptr %517, align 8 - %518 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %513, align 8 - %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 4, ptr %521, align 4 - %522 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %519, align 8 - %523 = load ptr, ptr @"_llgo_func$4-mqItKfDlL0CgVKnUxoresYgh6zW1WSlZYZSsVzLRo", align 8 - %524 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 - %525 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %524, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %522, ptr %525, align 8 - %526 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %524, i32 0, i32 1 - store ptr %523, ptr %526, align 8 - %527 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %524, i32 0, i32 2 - store ptr @"github.com/goplus/llgo/internal/abi.(*FuncType).Elem", ptr %527, align 8 - %528 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %524, i32 0, i32 3 - store ptr @"github.com/goplus/llgo/internal/abi.(*FuncType).Elem", ptr %528, align 8 - %529 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %524, align 8 - %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 @26, ptr %531, align 8 - %532 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %530, i32 0, i32 1 - store i64 10, ptr %532, align 4 - %533 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %530, align 8 - %534 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 - %535 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 - %536 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %535, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %533, ptr %536, align 8 - %537 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %535, i32 0, i32 1 - store ptr %534, ptr %537, align 8 - %538 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %535, i32 0, i32 2 - store ptr @"github.com/goplus/llgo/internal/abi.(*FuncType).FieldAlign", ptr %538, align 8 - %539 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %535, i32 0, i32 3 - store ptr @"github.com/goplus/llgo/internal/abi.(*FuncType).FieldAlign", ptr %539, align 8 - %540 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %535, 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 @27, ptr %542, align 8 - %543 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %541, i32 0, i32 1 - store i64 8, ptr %543, align 4 - %544 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %541, align 8 - %545 = load ptr, ptr @"_llgo_func$DsoxgOnxqV7tLvokF3AA14v1gtHsHaThoC8Q_XGcQww", align 8 - %546 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 - %547 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %546, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %544, ptr %547, align 8 - %548 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %546, i32 0, i32 1 - store ptr %545, ptr %548, align 8 - %549 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %546, i32 0, i32 2 - store ptr @"github.com/goplus/llgo/internal/abi.(*FuncType).FuncType", ptr %549, align 8 - %550 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %546, i32 0, i32 3 - store ptr @"github.com/goplus/llgo/internal/abi.(*FuncType).FuncType", ptr %550, align 8 - %551 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %546, align 8 - %552 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %553 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %552, i32 0, i32 0 - store ptr @30, ptr %553, align 8 - %554 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %552, i32 0, i32 1 - store i64 7, ptr %554, align 4 - %555 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %552, align 8 - %556 = load ptr, ptr @_llgo_bool, align 8 - %557 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 - %558 = icmp eq ptr %557, null - br i1 %558, label %_llgo_35, label %_llgo_36 + %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 - %559 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/internal/abi.FuncType", align 8 - %560 = icmp eq ptr %559, null - br i1 %560, label %_llgo_97, label %_llgo_98 + %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 - %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 %556, 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) - store ptr %574, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 + %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) + store ptr %568, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 br label %_llgo_36 _llgo_36: ; preds = %_llgo_35, %_llgo_33 - %575 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", 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" %555, 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 @"github.com/goplus/llgo/internal/abi.(*FuncType).HasName", ptr %579, align 8 - %580 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %576, i32 0, i32 3 - store ptr @"github.com/goplus/llgo/internal/abi.(*FuncType).HasName", 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 @31, ptr %583, align 8 - %584 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %582, i32 0, i32 1 - store i64 10, ptr %584, align 4 - %585 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %582, align 8 - %586 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", 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 @"github.com/goplus/llgo/internal/abi.(*FuncType).IfaceIndir", ptr %590, align 8 - %591 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %587, i32 0, i32 3 - store ptr @"github.com/goplus/llgo/internal/abi.(*FuncType).IfaceIndir", 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 @32, ptr %594, align 8 - %595 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %593, i32 0, i32 1 - store i64 13, ptr %595, align 4 - %596 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %593, align 8 - %597 = load ptr, ptr @"_llgo_github.com/goplus/llgo/internal/abi.InterfaceType", align 8 - %598 = icmp eq ptr %597, null - br i1 %598, label %_llgo_37, label %_llgo_38 + %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 + %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 + %578 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %576, i32 0, i32 1 + store i64 10, 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 + %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 + %589 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %587, i32 0, i32 1 + store i64 13, ptr %589, align 4 + %590 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %587, align 8 + %591 = load ptr, ptr @"_llgo_github.com/goplus/llgo/internal/abi.InterfaceType", align 8 + %592 = icmp eq ptr %591, null + br i1 %592, label %_llgo_37, label %_llgo_38 _llgo_37: ; preds = %_llgo_36 - %599 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(i64 25, i64 0, i64 18) - store ptr %599, ptr @"_llgo_github.com/goplus/llgo/internal/abi.InterfaceType", align 8 + %593 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(i64 25, i64 0, i64 18) + store ptr %593, ptr @"_llgo_github.com/goplus/llgo/internal/abi.InterfaceType", align 8 br label %_llgo_38 _llgo_38: ; preds = %_llgo_37, %_llgo_36 - %600 = load ptr, ptr @"_llgo_struct$mWxYYevLxpL1wQyiQtAy4OszkqTlHtrmEcPpzW9Air4", align 8 - %601 = icmp eq ptr %600, null - br i1 %601, label %_llgo_39, label %_llgo_40 + %594 = load ptr, ptr @"_llgo_struct$mWxYYevLxpL1wQyiQtAy4OszkqTlHtrmEcPpzW9Air4", align 8 + %595 = icmp eq ptr %594, null + br i1 %595, label %_llgo_39, label %_llgo_40 _llgo_39: ; preds = %_llgo_38 - %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 @21, ptr %603, align 8 - %604 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %602, i32 0, i32 1 - store i64 4, ptr %604, align 4 - %605 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %602, align 8 - %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 null, ptr %607, align 8 - %608 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %606, i32 0, i32 1 - store i64 0, ptr %608, align 4 - %609 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %606, align 8 - %610 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %605, ptr %21, i64 0, %"github.com/goplus/llgo/internal/runtime.String" %609, i1 true) - %611 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %612 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %611, i32 0, i32 0 - store ptr @33, ptr %612, align 8 - %613 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %611, i32 0, i32 1 - store i64 8, ptr %613, align 4 - %614 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %611, align 8 + %596 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %597 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %596, i32 0, i32 0 + store ptr @21, ptr %597, align 8 + %598 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %596, i32 0, i32 1 + store i64 4, ptr %598, align 4 + %599 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %596, align 8 + %600 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %601 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %600, i32 0, i32 0 + store ptr null, ptr %601, align 8 + %602 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %600, i32 0, i32 1 + store i64 0, ptr %602, align 4 + %603 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %600, align 8 + %604 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %599, ptr %21, i64 0, %"github.com/goplus/llgo/internal/runtime.String" %603, i1 true) + %605 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %606 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %605, i32 0, i32 0 + store ptr @33, ptr %606, align 8 + %607 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %605, i32 0, i32 1 + store i64 8, ptr %607, align 4 + %608 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %605, align 8 + %609 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %610 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %609, i32 0, i32 0 + store ptr null, ptr %610, align 8 + %611 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %609, i32 0, i32 1 + store i64 0, ptr %611, align 4 + %612 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %609, align 8 + %613 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 24) + %614 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %608, ptr %613, i64 72, %"github.com/goplus/llgo/internal/runtime.String" %612, i1 false) %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 null, ptr %616, align 8 + store ptr @34, ptr %616, align 8 %617 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %615, i32 0, i32 1 - store i64 0, ptr %617, align 4 + store i64 7, ptr %617, align 4 %618 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %615, align 8 - %619 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 24) - %620 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %614, ptr %619, i64 72, %"github.com/goplus/llgo/internal/runtime.String" %618, i1 false) - %621 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %622 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %621, i32 0, i32 0 - store ptr @34, ptr %622, align 8 - %623 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %621, i32 0, i32 1 - store i64 7, ptr %623, align 4 - %624 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %621, align 8 - %625 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %626 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %625, i32 0, i32 0 - store ptr null, ptr %626, align 8 - %627 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %625, i32 0, i32 1 - store i64 0, ptr %627, align 4 - %628 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %625, align 8 - %629 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(i64 25, i64 0, i64 3) - %630 = call ptr @"github.com/goplus/llgo/internal/runtime.SliceOf"(ptr %629) - %631 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %624, ptr %630, i64 88, %"github.com/goplus/llgo/internal/runtime.String" %628, i1 false) - %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 @4, ptr %633, align 8 - %634 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %632, i32 0, i32 1 - store i64 4, 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.AllocU"(i64 168) - %637 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %636, i64 0 - store %"github.com/goplus/llgo/internal/abi.StructField" %610, ptr %637, align 8 - %638 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %636, i64 1 - store %"github.com/goplus/llgo/internal/abi.StructField" %620, ptr %638, align 8 - %639 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %636, i64 2 - store %"github.com/goplus/llgo/internal/abi.StructField" %631, ptr %639, align 8 - %640 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %641 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %640, i32 0, i32 0 - store ptr %636, ptr %641, align 8 - %642 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %640, i32 0, i32 1 - store i64 3, ptr %642, align 4 - %643 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %640, i32 0, i32 2 - store i64 3, ptr %643, align 4 - %644 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %640, align 8 - %645 = call ptr @"github.com/goplus/llgo/internal/runtime.Struct"(%"github.com/goplus/llgo/internal/runtime.String" %635, i64 112, %"github.com/goplus/llgo/internal/runtime.Slice" %644) - store ptr %645, ptr @"_llgo_struct$mWxYYevLxpL1wQyiQtAy4OszkqTlHtrmEcPpzW9Air4", align 8 + %619 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %620 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %619, i32 0, i32 0 + store ptr null, ptr %620, align 8 + %621 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %619, i32 0, i32 1 + store i64 0, ptr %621, align 4 + %622 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %619, align 8 + %623 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(i64 25, i64 0, i64 3) + %624 = call ptr @"github.com/goplus/llgo/internal/runtime.SliceOf"(ptr %623) + %625 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %618, ptr %624, i64 88, %"github.com/goplus/llgo/internal/runtime.String" %622, 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" %604, 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" %614, 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 br label %_llgo_40 _llgo_40: ; preds = %_llgo_39, %_llgo_38 - %646 = load ptr, ptr @"_llgo_struct$mWxYYevLxpL1wQyiQtAy4OszkqTlHtrmEcPpzW9Air4", align 8 - br i1 %598, label %_llgo_41, label %_llgo_42 + %640 = load ptr, ptr @"_llgo_struct$mWxYYevLxpL1wQyiQtAy4OszkqTlHtrmEcPpzW9Air4", align 8 + br i1 %592, label %_llgo_41, label %_llgo_42 _llgo_41: ; preds = %_llgo_40 - %647 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %648 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %647, i32 0, i32 0 - store ptr @19, ptr %648, align 8 - %649 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %647, i32 0, i32 1 - store i64 5, ptr %649, align 4 - %650 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %647, align 8 - %651 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 - %652 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 - %653 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %652, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %650, ptr %653, align 8 - %654 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %652, i32 0, i32 1 - store ptr %651, ptr %654, align 8 - %655 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %652, i32 0, i32 2 - store ptr @"github.com/goplus/llgo/internal/abi.(*InterfaceType).Align", ptr %655, align 8 - %656 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %652, i32 0, i32 3 - store ptr @"github.com/goplus/llgo/internal/abi.(*InterfaceType).Align", ptr %656, align 8 - %657 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %652, align 8 - %658 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %659 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %658, i32 0, i32 0 - store ptr @20, ptr %659, align 8 - %660 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %658, i32 0, i32 1 - store i64 9, ptr %660, align 4 - %661 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %658, align 8 - %662 = load ptr, ptr @"_llgo_func$CsVqlCxhoEcIvPD5BSBukfSiD9C7Ic5_Gf32MLbCWB4", align 8 - %663 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 - %664 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %663, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %661, ptr %664, align 8 - %665 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %663, i32 0, i32 1 - store ptr %662, ptr %665, align 8 - %666 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %663, i32 0, i32 2 - store ptr @"github.com/goplus/llgo/internal/abi.(*InterfaceType).ArrayType", ptr %666, align 8 - %667 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %663, i32 0, i32 3 - store ptr @"github.com/goplus/llgo/internal/abi.(*InterfaceType).ArrayType", ptr %667, align 8 - %668 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %663, align 8 - %669 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %670 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %669, i32 0, i32 0 - store ptr @25, ptr %670, align 8 - %671 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %669, i32 0, i32 1 - store i64 6, ptr %671, align 4 - %672 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %669, align 8 - %673 = load ptr, ptr @"_llgo_func$4-mqItKfDlL0CgVKnUxoresYgh6zW1WSlZYZSsVzLRo", align 8 - %674 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 - %675 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %674, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %672, ptr %675, align 8 - %676 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %674, i32 0, i32 1 - store ptr %673, ptr %676, align 8 - %677 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %674, i32 0, i32 2 - store ptr @"github.com/goplus/llgo/internal/abi.(*InterfaceType).Common", ptr %677, align 8 - %678 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %674, i32 0, i32 3 - store ptr @"github.com/goplus/llgo/internal/abi.(*InterfaceType).Common", ptr %678, align 8 - %679 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %674, align 8 - %680 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %681 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %680, i32 0, i32 0 - store ptr @22, ptr %681, align 8 - %682 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %680, i32 0, i32 1 - store i64 4, ptr %682, align 4 - %683 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %680, align 8 - %684 = load ptr, ptr @"_llgo_func$4-mqItKfDlL0CgVKnUxoresYgh6zW1WSlZYZSsVzLRo", align 8 - %685 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 - %686 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %685, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %683, ptr %686, align 8 - %687 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %685, i32 0, i32 1 - store ptr %684, ptr %687, align 8 - %688 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %685, i32 0, i32 2 - store ptr @"github.com/goplus/llgo/internal/abi.(*InterfaceType).Elem", ptr %688, align 8 - %689 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %685, i32 0, i32 3 - store ptr @"github.com/goplus/llgo/internal/abi.(*InterfaceType).Elem", ptr %689, align 8 - %690 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %685, align 8 - %691 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %692 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %691, i32 0, i32 0 - store ptr @26, ptr %692, align 8 - %693 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %691, i32 0, i32 1 - store i64 10, ptr %693, align 4 - %694 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %691, align 8 - %695 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 - %696 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 - %697 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %696, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %694, ptr %697, align 8 - %698 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %696, i32 0, i32 1 - store ptr %695, ptr %698, align 8 - %699 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %696, i32 0, i32 2 - store ptr @"github.com/goplus/llgo/internal/abi.(*InterfaceType).FieldAlign", ptr %699, align 8 - %700 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %696, i32 0, i32 3 - store ptr @"github.com/goplus/llgo/internal/abi.(*InterfaceType).FieldAlign", ptr %700, align 8 - %701 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %696, align 8 - %702 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %703 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %702, i32 0, i32 0 - store ptr @27, ptr %703, align 8 - %704 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %702, i32 0, i32 1 - store i64 8, ptr %704, align 4 - %705 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %702, align 8 - %706 = load ptr, ptr @"_llgo_func$DsoxgOnxqV7tLvokF3AA14v1gtHsHaThoC8Q_XGcQww", align 8 - %707 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 - %708 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %707, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %705, ptr %708, align 8 - %709 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %707, i32 0, i32 1 - store ptr %706, ptr %709, align 8 - %710 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %707, i32 0, i32 2 - store ptr @"github.com/goplus/llgo/internal/abi.(*InterfaceType).FuncType", ptr %710, align 8 - %711 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %707, i32 0, i32 3 - store ptr @"github.com/goplus/llgo/internal/abi.(*InterfaceType).FuncType", ptr %711, align 8 - %712 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %707, align 8 - %713 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %714 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %713, i32 0, i32 0 - store ptr @30, ptr %714, align 8 - %715 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %713, i32 0, i32 1 - store i64 7, ptr %715, align 4 - %716 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %713, align 8 - %717 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 - %718 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 - %719 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %718, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %716, ptr %719, align 8 - %720 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %718, i32 0, i32 1 - store ptr %717, ptr %720, align 8 - %721 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %718, i32 0, i32 2 - store ptr @"github.com/goplus/llgo/internal/abi.(*InterfaceType).HasName", ptr %721, align 8 - %722 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %718, i32 0, i32 3 - store ptr @"github.com/goplus/llgo/internal/abi.(*InterfaceType).HasName", ptr %722, align 8 - %723 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %718, align 8 - %724 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %725 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %724, i32 0, i32 0 - store ptr @31, ptr %725, align 8 - %726 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %724, i32 0, i32 1 - store i64 10, ptr %726, align 4 - %727 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %724, align 8 - %728 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 - %729 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 - %730 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %729, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %727, ptr %730, align 8 - %731 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %729, i32 0, i32 1 - store ptr %728, ptr %731, align 8 - %732 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %729, i32 0, i32 2 - store ptr @"github.com/goplus/llgo/internal/abi.(*InterfaceType).IfaceIndir", ptr %732, align 8 - %733 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %729, i32 0, i32 3 - store ptr @"github.com/goplus/llgo/internal/abi.(*InterfaceType).IfaceIndir", ptr %733, align 8 - %734 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %729, align 8 - %735 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %736 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %735, i32 0, i32 0 - store ptr @32, ptr %736, align 8 - %737 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %735, i32 0, i32 1 - store i64 13, ptr %737, align 4 - %738 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %735, align 8 - %739 = load ptr, ptr @"_llgo_func$1QmforOaCy2fBAssC2y1FWCCT6fpq9RKwP2j2HIASY8", align 8 - %740 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 - %741 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %740, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %738, ptr %741, align 8 - %742 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %740, i32 0, i32 1 - store ptr %739, ptr %742, align 8 - %743 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %740, i32 0, i32 2 - store ptr @"github.com/goplus/llgo/internal/abi.(*InterfaceType).InterfaceType", ptr %743, align 8 - %744 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %740, i32 0, i32 3 - store ptr @"github.com/goplus/llgo/internal/abi.(*InterfaceType).InterfaceType", ptr %744, align 8 - %745 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %740, align 8 - %746 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %747 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %746, i32 0, i32 0 - store ptr @35, ptr %747, align 8 - %748 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %746, i32 0, i32 1 - store i64 13, ptr %748, align 4 - %749 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %746, align 8 - %750 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", 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" %749, 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 @"github.com/goplus/llgo/internal/abi.(*InterfaceType).IsDirectIface", ptr %754, align 8 - %755 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %751, i32 0, i32 3 - store ptr @"github.com/goplus/llgo/internal/abi.(*InterfaceType).IsDirectIface", 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 @36, ptr %758, align 8 - %759 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %757, i32 0, i32 1 - store i64 4, ptr %759, align 4 - %760 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %757, align 8 - %761 = load ptr, ptr @"_llgo_github.com/goplus/llgo/internal/abi.Kind", align 8 - %762 = icmp eq ptr %761, null - br i1 %762, label %_llgo_43, label %_llgo_44 + %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 + %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 + %731 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %729, i32 0, i32 1 + store i64 13, 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 = load ptr, ptr @"_llgo_github.com/goplus/llgo/internal/abi.Kind", align 8 + %756 = icmp eq ptr %755, null + br i1 %756, label %_llgo_43, label %_llgo_44 _llgo_42: ; preds = %_llgo_92, %_llgo_40 - %763 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/internal/abi.InterfaceType", align 8 - %764 = icmp eq ptr %763, null - br i1 %764, label %_llgo_93, label %_llgo_94 + %757 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/internal/abi.InterfaceType", align 8 + %758 = icmp eq ptr %757, null + br i1 %758, label %_llgo_93, label %_llgo_94 _llgo_43: ; preds = %_llgo_41 - %765 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(i64 7, i64 1, i64 1) - %766 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Type", ptr %765, i32 0, i32 6 - %767 = load i8, ptr %766, align 1 - %768 = or i8 %767, 32 - store i8 %768, ptr %766, align 1 - store ptr %765, ptr @"_llgo_github.com/goplus/llgo/internal/abi.Kind", align 8 + %759 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(i64 7, i64 1, i64 1) + store ptr %759, ptr @"_llgo_github.com/goplus/llgo/internal/abi.Kind", align 8 br label %_llgo_44 _llgo_44: ; preds = %_llgo_43, %_llgo_41 - %769 = load ptr, ptr @_llgo_uint, align 8 - %770 = icmp eq ptr %769, null - br i1 %770, label %_llgo_45, label %_llgo_46 + %760 = load ptr, ptr @_llgo_uint, align 8 + %761 = icmp eq ptr %760, null + br i1 %761, label %_llgo_45, label %_llgo_46 _llgo_45: ; preds = %_llgo_44 - %771 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 7) - %772 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Type", ptr %771, i32 0, i32 6 - %773 = load i8, ptr %772, align 1 - %774 = or i8 %773, 32 - store i8 %774, ptr %772, align 1 - store ptr %771, ptr @_llgo_uint, align 8 + %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 - %775 = load ptr, ptr @_llgo_uint, align 8 - br i1 %762, label %_llgo_47, label %_llgo_48 + %763 = load ptr, ptr @_llgo_uint, align 8 + br i1 %756, label %_llgo_47, label %_llgo_48 _llgo_47: ; preds = %_llgo_46 - %776 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %777 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %776, i32 0, i32 0 - store ptr @37, ptr %777, align 8 - %778 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %776, i32 0, i32 1 - store i64 6, ptr %778, align 4 - %779 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %776, align 8 - %780 = load ptr, ptr @_llgo_string, align 8 - %781 = icmp eq ptr %780, null - br i1 %781, label %_llgo_49, label %_llgo_50 + %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 - %782 = load ptr, ptr @"_llgo_github.com/goplus/llgo/internal/abi.Kind", align 8 - %783 = load ptr, ptr @"_llgo_func$ntUE0UmVAWPS2O7GpCCGszSn-XnjHJntZZ2jYtwbFXI", align 8 - %784 = icmp eq ptr %783, null - br i1 %784, label %_llgo_53, label %_llgo_54 + %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 - %785 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 24) - store ptr %785, ptr @_llgo_string, align 8 + %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 - %786 = load ptr, ptr @_llgo_string, align 8 - %787 = load ptr, ptr @"_llgo_func$zNDVRsWTIpUPKouNUS805RGX--IV9qVK8B31IZbg5to", align 8 - %788 = icmp eq ptr %787, null - br i1 %788, label %_llgo_51, label %_llgo_52 + %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_51: ; preds = %_llgo_50 - %789 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 0) - %790 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %791 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %790, i32 0, i32 0 - store ptr %789, ptr %791, align 8 - %792 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %790, i32 0, i32 1 - store i64 0, ptr %792, align 4 - %793 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %790, i32 0, i32 2 - store i64 0, ptr %793, align 4 - %794 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %790, align 8 - %795 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 8) - %796 = getelementptr ptr, ptr %795, i64 0 - store ptr %786, ptr %796, align 8 - %797 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %798 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %797, i32 0, i32 0 - store ptr %795, ptr %798, align 8 - %799 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %797, i32 0, i32 1 - store i64 1, ptr %799, align 4 - %800 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %797, i32 0, i32 2 - store i64 1, ptr %800, align 4 - %801 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %797, align 8 - %802 = call ptr @"github.com/goplus/llgo/internal/runtime.Func"(%"github.com/goplus/llgo/internal/runtime.Slice" %794, %"github.com/goplus/llgo/internal/runtime.Slice" %801, i1 false) - store ptr %802, ptr @"_llgo_func$zNDVRsWTIpUPKouNUS805RGX--IV9qVK8B31IZbg5to", align 8 + %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 + %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 + %787 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %785, i32 0, i32 1 + store i64 1, 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 + %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) + store ptr %790, ptr @"_llgo_func$zNDVRsWTIpUPKouNUS805RGX--IV9qVK8B31IZbg5to", align 8 br label %_llgo_52 _llgo_52: ; preds = %_llgo_51, %_llgo_50 - %803 = load ptr, ptr @"_llgo_func$zNDVRsWTIpUPKouNUS805RGX--IV9qVK8B31IZbg5to", align 8 - %804 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 - %805 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %804, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %779, ptr %805, align 8 - %806 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %804, i32 0, i32 1 - store ptr %803, ptr %806, align 8 - %807 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %804, i32 0, i32 2 - store ptr @"github.com/goplus/llgo/internal/abi.(*Kind).String", ptr %807, align 8 - %808 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %804, i32 0, i32 3 - store ptr @"github.com/goplus/llgo/internal/abi.(*Kind).String", ptr %808, align 8 - %809 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %804, align 8 - %810 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 - %811 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %810, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %779, ptr %811, align 8 - %812 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %810, i32 0, i32 1 - store ptr %803, ptr %812, align 8 - %813 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %810, i32 0, i32 2 - store ptr @"github.com/goplus/llgo/internal/abi.(*Kind).String", ptr %813, align 8 - %814 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %810, i32 0, i32 3 - store ptr @"github.com/goplus/llgo/internal/abi.Kind.String", ptr %814, align 8 - %815 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %810, align 8 - %816 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 40) - %817 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %816, i64 0 - store %"github.com/goplus/llgo/internal/abi.Method" %815, ptr %817, align 8 - %818 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %819 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %818, i32 0, i32 0 - store ptr %816, ptr %819, align 8 - %820 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %818, i32 0, i32 1 - store i64 1, ptr %820, align 4 - %821 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %818, i32 0, i32 2 - store i64 1, ptr %821, align 4 - %822 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %818, align 8 - %823 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 40) - %824 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %823, i64 0 - store %"github.com/goplus/llgo/internal/abi.Method" %809, ptr %824, align 8 - %825 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %826 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %825, i32 0, i32 0 - store ptr %823, ptr %826, align 8 - %827 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %825, i32 0, i32 1 - store i64 1, ptr %827, align 4 - %828 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %825, i32 0, i32 2 - store i64 1, ptr %828, align 4 - %829 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %825, align 8 - %830 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %831 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %830, i32 0, i32 0 - store ptr @38, ptr %831, align 8 - %832 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %830, i32 0, i32 1 - store i64 35, ptr %832, align 4 - %833 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %830, align 8 - %834 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %835 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %834, i32 0, i32 0 - store ptr @36, ptr %835, align 8 - %836 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %834, i32 0, i32 1 - store i64 4, ptr %836, align 4 - %837 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %834, align 8 - call void @"github.com/goplus/llgo/internal/runtime.InitNamed"(ptr %765, %"github.com/goplus/llgo/internal/runtime.String" %833, %"github.com/goplus/llgo/internal/runtime.String" %837, ptr %775, %"github.com/goplus/llgo/internal/runtime.Slice" %822, %"github.com/goplus/llgo/internal/runtime.Slice" %829) + %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 %759, %"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 _llgo_53: ; preds = %_llgo_48 - %838 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 0) - %839 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %840 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %839, i32 0, i32 0 - store ptr %838, ptr %840, align 8 - %841 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %839, i32 0, i32 1 - store i64 0, ptr %841, align 4 - %842 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %839, i32 0, i32 2 - store i64 0, ptr %842, align 4 - %843 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %839, align 8 - %844 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 8) - %845 = getelementptr ptr, ptr %844, i64 0 - store ptr %782, ptr %845, align 8 - %846 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %847 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %846, i32 0, i32 0 - store ptr %844, ptr %847, align 8 - %848 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %846, i32 0, i32 1 - store i64 1, ptr %848, align 4 - %849 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %846, i32 0, i32 2 - store i64 1, ptr %849, align 4 - %850 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %846, align 8 - %851 = call ptr @"github.com/goplus/llgo/internal/runtime.Func"(%"github.com/goplus/llgo/internal/runtime.Slice" %843, %"github.com/goplus/llgo/internal/runtime.Slice" %850, i1 false) - store ptr %851, ptr @"_llgo_func$ntUE0UmVAWPS2O7GpCCGszSn-XnjHJntZZ2jYtwbFXI", align 8 + %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) + store ptr %839, ptr @"_llgo_func$ntUE0UmVAWPS2O7GpCCGszSn-XnjHJntZZ2jYtwbFXI", align 8 br label %_llgo_54 _llgo_54: ; preds = %_llgo_53, %_llgo_48 - %852 = load ptr, ptr @"_llgo_func$ntUE0UmVAWPS2O7GpCCGszSn-XnjHJntZZ2jYtwbFXI", align 8 - %853 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 - %854 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %853, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %760, ptr %854, align 8 - %855 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %853, i32 0, i32 1 - store ptr %852, ptr %855, align 8 - %856 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %853, i32 0, i32 2 - store ptr @"github.com/goplus/llgo/internal/abi.(*InterfaceType).Kind", ptr %856, align 8 - %857 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %853, i32 0, i32 3 - store ptr @"github.com/goplus/llgo/internal/abi.(*InterfaceType).Kind", ptr %857, align 8 - %858 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %853, align 8 - %859 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %860 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %859, i32 0, i32 0 - store ptr @24, ptr %860, align 8 - %861 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %859, i32 0, i32 1 - store i64 3, ptr %861, align 4 - %862 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %859, align 8 - %863 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 - %864 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 - %865 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %864, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %862, ptr %865, align 8 - %866 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %864, i32 0, i32 1 - store ptr %863, ptr %866, align 8 - %867 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %864, i32 0, i32 2 - store ptr @"github.com/goplus/llgo/internal/abi.(*InterfaceType).Len", ptr %867, align 8 - %868 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %864, i32 0, i32 3 - store ptr @"github.com/goplus/llgo/internal/abi.(*InterfaceType).Len", ptr %868, align 8 - %869 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %864, align 8 - %870 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %871 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %870, i32 0, i32 0 - store ptr @39, ptr %871, align 8 - %872 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %870, i32 0, i32 1 - store i64 7, ptr %872, align 4 - %873 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %870, align 8 - %874 = load ptr, ptr @"_llgo_github.com/goplus/llgo/internal/abi.MapType", align 8 - %875 = icmp eq ptr %874, null - br i1 %875, label %_llgo_55, label %_llgo_56 + %840 = load ptr, ptr @"_llgo_func$ntUE0UmVAWPS2O7GpCCGszSn-XnjHJntZZ2jYtwbFXI", 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 + %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 + %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 + %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 + %849 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %847, i32 0, i32 1 + store i64 3, 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 + %853 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %852, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %850, ptr %853, align 8 + %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 + %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 + %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 + %860 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %858, i32 0, i32 1 + store i64 7, ptr %860, align 4 + %861 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %858, align 8 + %862 = load ptr, ptr @"_llgo_github.com/goplus/llgo/internal/abi.MapType", align 8 + %863 = icmp eq ptr %862, null + br i1 %863, label %_llgo_55, label %_llgo_56 _llgo_55: ; preds = %_llgo_54 - %876 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(i64 25, i64 0, i64 22) - store ptr %876, ptr @"_llgo_github.com/goplus/llgo/internal/abi.MapType", align 8 + %864 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(i64 25, i64 0, i64 22) + store ptr %864, ptr @"_llgo_github.com/goplus/llgo/internal/abi.MapType", align 8 br label %_llgo_56 _llgo_56: ; preds = %_llgo_55, %_llgo_54 - %877 = load ptr, ptr @_llgo_Pointer, align 8 - %878 = load ptr, ptr @_llgo_Pointer, align 8 - %879 = load ptr, ptr @_llgo_uintptr, align 8 - %880 = icmp eq ptr %879, null - br i1 %880, label %_llgo_57, label %_llgo_58 + %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 - %881 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 12) - %882 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Type", ptr %881, i32 0, i32 6 - %883 = load i8, ptr %882, align 1 - %884 = or i8 %883, 32 - store i8 %884, ptr %882, align 1 - store ptr %881, ptr @_llgo_uintptr, align 8 + %869 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 44) + store ptr %869, ptr @_llgo_uintptr, align 8 br label %_llgo_58 _llgo_58: ; preds = %_llgo_57, %_llgo_56 - %885 = load ptr, ptr @_llgo_uintptr, align 8 - %886 = load ptr, ptr @_llgo_uintptr, align 8 - %887 = load ptr, ptr @"_llgo_struct$Yk42tBqeO4BzIoRAwt__cbPj2UwIDCP07Kg_SR7sBZM", align 8 - %888 = icmp eq ptr %887, null - br i1 %888, label %_llgo_59, label %_llgo_60 + %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_59: ; preds = %_llgo_58 - %889 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %890 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %889, i32 0, i32 0 - store ptr @21, ptr %890, align 8 - %891 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %889, i32 0, i32 1 - store i64 4, ptr %891, align 4 - %892 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %889, align 8 + %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 %21, 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 %21) + %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 null, ptr %894, align 8 + 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 0, ptr %895, align 4 + store i64 4, ptr %895, align 4 %896 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %893, align 8 - %897 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %892, ptr %21, i64 0, %"github.com/goplus/llgo/internal/runtime.String" %896, i1 true) - %898 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %899 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %898, i32 0, i32 0 - store ptr @40, ptr %899, align 8 - %900 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %898, i32 0, i32 1 - store i64 3, ptr %900, align 4 - %901 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %898, 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 null, ptr %903, align 8 - %904 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %902, i32 0, i32 1 - store i64 0, ptr %904, align 4 - %905 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %902, align 8 - %906 = call ptr @"github.com/goplus/llgo/internal/runtime.PointerTo"(ptr %21) - %907 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %901, ptr %906, i64 72, %"github.com/goplus/llgo/internal/runtime.String" %905, i1 false) - %908 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %909 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %908, i32 0, i32 0 - store ptr @22, ptr %909, align 8 - %910 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %908, i32 0, i32 1 - store i64 4, ptr %910, align 4 - %911 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %908, align 8 - %912 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %913 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %912, i32 0, i32 0 - store ptr null, ptr %913, align 8 - %914 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %912, i32 0, i32 1 - store i64 0, ptr %914, align 4 - %915 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %912, align 8 - %916 = call ptr @"github.com/goplus/llgo/internal/runtime.PointerTo"(ptr %21) - %917 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %911, ptr %916, i64 80, %"github.com/goplus/llgo/internal/runtime.String" %915, i1 false) - %918 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %919 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %918, i32 0, i32 0 - store ptr @41, ptr %919, align 8 - %920 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %918, i32 0, i32 1 - store i64 6, ptr %920, align 4 - %921 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %918, align 8 - %922 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %923 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %922, i32 0, i32 0 - store ptr null, ptr %923, align 8 - %924 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %922, i32 0, i32 1 - store i64 0, ptr %924, align 4 - %925 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %922, align 8 - %926 = call ptr @"github.com/goplus/llgo/internal/runtime.PointerTo"(ptr %21) - %927 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %921, ptr %926, i64 88, %"github.com/goplus/llgo/internal/runtime.String" %925, i1 false) - %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 @42, ptr %929, align 8 - %930 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %928, i32 0, i32 1 - store i64 6, ptr %930, align 4 - %931 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %928, align 8 - %932 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %933 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %932, i32 0, i32 0 - store ptr null, ptr %933, align 8 - %934 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %932, i32 0, i32 1 - store i64 0, ptr %934, align 4 - %935 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %932, align 8 - %936 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %937 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %936, i32 0, i32 0 - store ptr @14, ptr %937, align 8 - %938 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %936, i32 0, i32 1 - store i64 1, ptr %938, align 4 - %939 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %936, align 8 - %940 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %941 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %940, i32 0, i32 0 - store ptr null, ptr %941, align 8 - %942 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %940, i32 0, i32 1 - store i64 0, ptr %942, align 4 - %943 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %940, align 8 - %944 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 24) - %945 = getelementptr ptr, ptr %944, i64 0 - store ptr %877, ptr %945, align 8 - %946 = getelementptr ptr, ptr %944, i64 1 - store ptr %878, ptr %946, align 8 - %947 = getelementptr ptr, ptr %944, i64 2 - store ptr %885, ptr %947, align 8 - %948 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %949 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %948, i32 0, i32 0 - store ptr %944, ptr %949, align 8 - %950 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %948, i32 0, i32 1 - store i64 3, ptr %950, align 4 - %951 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %948, i32 0, i32 2 - store i64 3, ptr %951, align 4 - %952 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %948, align 8 - %953 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 8) - %954 = getelementptr ptr, ptr %953, i64 0 - store ptr %886, ptr %954, align 8 - %955 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %956 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %955, i32 0, i32 0 - store ptr %953, ptr %956, align 8 - %957 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %955, i32 0, i32 1 - store i64 1, ptr %957, align 4 - %958 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %955, i32 0, i32 2 - store i64 1, ptr %958, align 4 - %959 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %955, align 8 - %960 = call ptr @"github.com/goplus/llgo/internal/runtime.Func"(%"github.com/goplus/llgo/internal/runtime.Slice" %952, %"github.com/goplus/llgo/internal/runtime.Slice" %959, i1 false) - %961 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %939, ptr %960, i64 0, %"github.com/goplus/llgo/internal/runtime.String" %943, i1 false) - %962 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %963 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %962, i32 0, i32 0 - store ptr @15, ptr %963, align 8 - %964 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %962, i32 0, i32 1 - store i64 4, ptr %964, align 4 - %965 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %962, align 8 - %966 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %967 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %966, i32 0, i32 0 - store ptr null, ptr %967, align 8 - %968 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %966, i32 0, i32 1 - store i64 0, ptr %968, align 4 - %969 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %966, align 8 - %970 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 26) - %971 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %965, ptr %970, i64 8, %"github.com/goplus/llgo/internal/runtime.String" %969, i1 false) - %972 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %973 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %972, i32 0, i32 0 - store ptr @4, ptr %973, align 8 - %974 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %972, i32 0, i32 1 - store i64 4, ptr %974, align 4 - %975 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %972, align 8 - %976 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 112) - %977 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %976, i64 0 - store %"github.com/goplus/llgo/internal/abi.StructField" %961, ptr %977, align 8 - %978 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %976, i64 1 - store %"github.com/goplus/llgo/internal/abi.StructField" %971, ptr %978, align 8 - %979 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %980 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %979, i32 0, i32 0 - store ptr %976, ptr %980, align 8 - %981 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %979, i32 0, i32 1 - store i64 2, ptr %981, align 4 - %982 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %979, i32 0, i32 2 - store i64 2, ptr %982, align 4 - %983 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %979, align 8 - %984 = call ptr @"github.com/goplus/llgo/internal/runtime.Struct"(%"github.com/goplus/llgo/internal/runtime.String" %975, i64 16, %"github.com/goplus/llgo/internal/runtime.Slice" %983) - %985 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %931, ptr %984, i64 96, %"github.com/goplus/llgo/internal/runtime.String" %935, i1 false) - %986 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %987 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %986, i32 0, i32 0 - store ptr @43, ptr %987, align 8 - %988 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %986, i32 0, i32 1 - store i64 7, ptr %988, align 4 - %989 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %986, align 8 - %990 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %991 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %990, i32 0, i32 0 - store ptr null, ptr %991, align 8 - %992 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %990, i32 0, i32 1 - store i64 0, ptr %992, align 4 - %993 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %990, align 8 - %994 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 8) - %995 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %989, ptr %994, i64 112, %"github.com/goplus/llgo/internal/runtime.String" %993, i1 false) - %996 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %997 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %996, i32 0, i32 0 - store ptr @44, ptr %997, align 8 - %998 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %996, i32 0, i32 1 - store i64 9, ptr %998, align 4 - %999 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %996, 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 null, ptr %1001, align 8 - %1002 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1000, i32 0, i32 1 - store i64 0, ptr %1002, align 4 - %1003 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1000, align 8 - %1004 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 8) - %1005 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %999, ptr %1004, i64 113, %"github.com/goplus/llgo/internal/runtime.String" %1003, i1 false) - %1006 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %1007 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1006, i32 0, i32 0 - store ptr @45, ptr %1007, align 8 - %1008 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1006, i32 0, i32 1 - store i64 10, ptr %1008, align 4 - %1009 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1006, align 8 - %1010 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %1011 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1010, i32 0, i32 0 - store ptr null, ptr %1011, align 8 - %1012 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1010, i32 0, i32 1 - store i64 0, ptr %1012, align 4 - %1013 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1010, align 8 - %1014 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 9) - %1015 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %1009, ptr %1014, i64 114, %"github.com/goplus/llgo/internal/runtime.String" %1013, i1 false) - %1016 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %1017 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1016, i32 0, i32 0 - store ptr @46, ptr %1017, align 8 - %1018 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1016, i32 0, i32 1 - store i64 5, ptr %1018, align 4 - %1019 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1016, align 8 - %1020 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %1021 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1020, i32 0, i32 0 - store ptr null, ptr %1021, align 8 - %1022 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1020, i32 0, i32 1 - store i64 0, ptr %1022, align 4 - %1023 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1020, align 8 - %1024 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 10) - %1025 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %1019, ptr %1024, i64 116, %"github.com/goplus/llgo/internal/runtime.String" %1023, i1 false) - %1026 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %1027 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1026, i32 0, i32 0 - store ptr @4, ptr %1027, align 8 - %1028 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1026, i32 0, i32 1 - store i64 4, ptr %1028, align 4 - %1029 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1026, align 8 - %1030 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 504) - %1031 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %1030, i64 0 - store %"github.com/goplus/llgo/internal/abi.StructField" %897, ptr %1031, align 8 - %1032 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %1030, i64 1 - store %"github.com/goplus/llgo/internal/abi.StructField" %907, ptr %1032, align 8 - %1033 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %1030, i64 2 - store %"github.com/goplus/llgo/internal/abi.StructField" %917, ptr %1033, align 8 - %1034 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %1030, i64 3 - store %"github.com/goplus/llgo/internal/abi.StructField" %927, ptr %1034, align 8 - %1035 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %1030, i64 4 - store %"github.com/goplus/llgo/internal/abi.StructField" %985, ptr %1035, align 8 - %1036 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %1030, i64 5 - store %"github.com/goplus/llgo/internal/abi.StructField" %995, ptr %1036, align 8 - %1037 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %1030, i64 6 - store %"github.com/goplus/llgo/internal/abi.StructField" %1005, ptr %1037, align 8 - %1038 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %1030, i64 7 - store %"github.com/goplus/llgo/internal/abi.StructField" %1015, ptr %1038, align 8 - %1039 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %1030, i64 8 - store %"github.com/goplus/llgo/internal/abi.StructField" %1025, ptr %1039, align 8 - %1040 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %1041 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1040, i32 0, i32 0 - store ptr %1030, ptr %1041, align 8 - %1042 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1040, i32 0, i32 1 - store i64 9, ptr %1042, align 4 - %1043 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1040, i32 0, i32 2 - store i64 9, ptr %1043, align 4 - %1044 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1040, align 8 - %1045 = call ptr @"github.com/goplus/llgo/internal/runtime.Struct"(%"github.com/goplus/llgo/internal/runtime.String" %1029, i64 120, %"github.com/goplus/llgo/internal/runtime.Slice" %1044) - store ptr %1045, ptr @"_llgo_struct$Yk42tBqeO4BzIoRAwt__cbPj2UwIDCP07Kg_SR7sBZM", 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 %21) + %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 %21) + %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 br label %_llgo_60 _llgo_60: ; preds = %_llgo_59, %_llgo_58 - %1046 = load ptr, ptr @"_llgo_struct$Yk42tBqeO4BzIoRAwt__cbPj2UwIDCP07Kg_SR7sBZM", align 8 - br i1 %875, label %_llgo_61, label %_llgo_62 + %1031 = load ptr, ptr @"_llgo_struct$Yk42tBqeO4BzIoRAwt__cbPj2UwIDCP07Kg_SR7sBZM", align 8 + br i1 %863, label %_llgo_61, label %_llgo_62 _llgo_61: ; preds = %_llgo_60 - %1047 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %1048 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1047, i32 0, i32 0 - store ptr @19, ptr %1048, align 8 - %1049 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1047, i32 0, i32 1 - store i64 5, ptr %1049, align 4 - %1050 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1047, align 8 - %1051 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 - %1052 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 - %1053 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1052, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %1050, ptr %1053, align 8 - %1054 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1052, i32 0, i32 1 - store ptr %1051, ptr %1054, align 8 - %1055 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1052, i32 0, i32 2 - store ptr @"github.com/goplus/llgo/internal/abi.(*MapType).Align", ptr %1055, align 8 - %1056 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1052, i32 0, i32 3 - store ptr @"github.com/goplus/llgo/internal/abi.(*MapType).Align", ptr %1056, align 8 - %1057 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %1052, align 8 - %1058 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %1059 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1058, i32 0, i32 0 - store ptr @20, ptr %1059, align 8 - %1060 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1058, i32 0, i32 1 - store i64 9, ptr %1060, align 4 - %1061 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1058, align 8 - %1062 = load ptr, ptr @"_llgo_func$CsVqlCxhoEcIvPD5BSBukfSiD9C7Ic5_Gf32MLbCWB4", align 8 - %1063 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 - %1064 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1063, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %1061, ptr %1064, align 8 - %1065 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1063, i32 0, i32 1 - store ptr %1062, ptr %1065, align 8 - %1066 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1063, i32 0, i32 2 - store ptr @"github.com/goplus/llgo/internal/abi.(*MapType).ArrayType", ptr %1066, align 8 - %1067 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1063, i32 0, i32 3 - store ptr @"github.com/goplus/llgo/internal/abi.(*MapType).ArrayType", ptr %1067, align 8 - %1068 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %1063, align 8 - %1069 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %1070 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1069, i32 0, i32 0 - store ptr @25, ptr %1070, align 8 - %1071 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1069, i32 0, i32 1 - store i64 6, ptr %1071, align 4 - %1072 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1069, align 8 - %1073 = load ptr, ptr @"_llgo_func$4-mqItKfDlL0CgVKnUxoresYgh6zW1WSlZYZSsVzLRo", align 8 - %1074 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 - %1075 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1074, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %1072, ptr %1075, align 8 - %1076 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1074, i32 0, i32 1 - store ptr %1073, ptr %1076, align 8 - %1077 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1074, i32 0, i32 2 - store ptr @"github.com/goplus/llgo/internal/abi.(*MapType).Common", ptr %1077, align 8 - %1078 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1074, i32 0, i32 3 - store ptr @"github.com/goplus/llgo/internal/abi.(*MapType).Common", ptr %1078, align 8 - %1079 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %1074, align 8 - %1080 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %1081 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1080, i32 0, i32 0 - store ptr @26, ptr %1081, align 8 - %1082 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1080, i32 0, i32 1 - store i64 10, ptr %1082, align 4 - %1083 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1080, align 8 - %1084 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 - %1085 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 - %1086 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1085, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %1083, ptr %1086, align 8 - %1087 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1085, i32 0, i32 1 - store ptr %1084, ptr %1087, align 8 - %1088 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1085, i32 0, i32 2 - store ptr @"github.com/goplus/llgo/internal/abi.(*MapType).FieldAlign", ptr %1088, align 8 - %1089 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1085, i32 0, i32 3 - store ptr @"github.com/goplus/llgo/internal/abi.(*MapType).FieldAlign", ptr %1089, align 8 - %1090 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %1085, 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 @27, ptr %1092, align 8 - %1093 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1091, i32 0, i32 1 - store i64 8, ptr %1093, align 4 - %1094 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1091, align 8 - %1095 = load ptr, ptr @"_llgo_func$DsoxgOnxqV7tLvokF3AA14v1gtHsHaThoC8Q_XGcQww", align 8 - %1096 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 - %1097 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1096, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %1094, ptr %1097, align 8 - %1098 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1096, i32 0, i32 1 - store ptr %1095, ptr %1098, align 8 - %1099 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1096, i32 0, i32 2 - store ptr @"github.com/goplus/llgo/internal/abi.(*MapType).FuncType", ptr %1099, align 8 - %1100 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1096, i32 0, i32 3 - store ptr @"github.com/goplus/llgo/internal/abi.(*MapType).FuncType", ptr %1100, align 8 - %1101 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %1096, align 8 - %1102 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %1103 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1102, i32 0, i32 0 - store ptr @30, ptr %1103, align 8 - %1104 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1102, i32 0, i32 1 - store i64 7, ptr %1104, align 4 - %1105 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1102, align 8 - %1106 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 - %1107 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 - %1108 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1107, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %1105, ptr %1108, align 8 - %1109 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1107, i32 0, i32 1 - store ptr %1106, ptr %1109, align 8 - %1110 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1107, i32 0, i32 2 - store ptr @"github.com/goplus/llgo/internal/abi.(*MapType).HasName", ptr %1110, align 8 - %1111 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1107, i32 0, i32 3 - store ptr @"github.com/goplus/llgo/internal/abi.(*MapType).HasName", ptr %1111, align 8 - %1112 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %1107, align 8 - %1113 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %1114 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1113, i32 0, i32 0 - store ptr @47, ptr %1114, align 8 - %1115 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1113, i32 0, i32 1 - store i64 14, ptr %1115, align 4 - %1116 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1113, align 8 - %1117 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 - %1118 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 - %1119 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1118, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %1116, ptr %1119, align 8 - %1120 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1118, i32 0, i32 1 - store ptr %1117, ptr %1120, align 8 - %1121 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1118, i32 0, i32 2 - store ptr @"github.com/goplus/llgo/internal/abi.(*MapType).HashMightPanic", ptr %1121, align 8 - %1122 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1118, i32 0, i32 3 - store ptr @"github.com/goplus/llgo/internal/abi.(*MapType).HashMightPanic", ptr %1122, align 8 - %1123 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %1118, align 8 - %1124 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %1125 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1124, i32 0, i32 0 - store ptr @31, ptr %1125, align 8 - %1126 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1124, i32 0, i32 1 - store i64 10, ptr %1126, align 4 - %1127 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1124, align 8 - %1128 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 - %1129 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 - %1130 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1129, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %1127, ptr %1130, align 8 - %1131 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1129, i32 0, i32 1 - store ptr %1128, ptr %1131, align 8 - %1132 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1129, i32 0, i32 2 - store ptr @"github.com/goplus/llgo/internal/abi.(*MapType).IfaceIndir", ptr %1132, align 8 - %1133 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1129, i32 0, i32 3 - store ptr @"github.com/goplus/llgo/internal/abi.(*MapType).IfaceIndir", ptr %1133, align 8 - %1134 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %1129, align 8 - %1135 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %1136 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1135, i32 0, i32 0 - store ptr @48, ptr %1136, align 8 - %1137 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1135, i32 0, i32 1 - store i64 12, ptr %1137, align 4 - %1138 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1135, align 8 - %1139 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 - %1140 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 - %1141 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1140, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %1138, ptr %1141, align 8 - %1142 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1140, i32 0, i32 1 - store ptr %1139, ptr %1142, align 8 - %1143 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1140, i32 0, i32 2 - store ptr @"github.com/goplus/llgo/internal/abi.(*MapType).IndirectElem", ptr %1143, align 8 - %1144 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1140, i32 0, i32 3 - store ptr @"github.com/goplus/llgo/internal/abi.(*MapType).IndirectElem", ptr %1144, align 8 - %1145 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %1140, align 8 - %1146 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %1147 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1146, i32 0, i32 0 - store ptr @49, ptr %1147, align 8 - %1148 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1146, i32 0, i32 1 - store i64 11, ptr %1148, align 4 - %1149 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1146, align 8 - %1150 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 - %1151 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 - %1152 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1151, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %1149, ptr %1152, align 8 - %1153 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1151, i32 0, i32 1 - store ptr %1150, ptr %1153, align 8 - %1154 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1151, i32 0, i32 2 - store ptr @"github.com/goplus/llgo/internal/abi.(*MapType).IndirectKey", ptr %1154, align 8 - %1155 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1151, i32 0, i32 3 - store ptr @"github.com/goplus/llgo/internal/abi.(*MapType).IndirectKey", ptr %1155, align 8 - %1156 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %1151, align 8 - %1157 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %1158 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1157, i32 0, i32 0 - store ptr @32, ptr %1158, align 8 - %1159 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1157, i32 0, i32 1 - store i64 13, ptr %1159, align 4 - %1160 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1157, align 8 - %1161 = load ptr, ptr @"_llgo_func$1QmforOaCy2fBAssC2y1FWCCT6fpq9RKwP2j2HIASY8", align 8 - %1162 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 - %1163 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1162, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %1160, ptr %1163, align 8 - %1164 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1162, i32 0, i32 1 - store ptr %1161, ptr %1164, align 8 - %1165 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1162, i32 0, i32 2 - store ptr @"github.com/goplus/llgo/internal/abi.(*MapType).InterfaceType", ptr %1165, align 8 - %1166 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1162, i32 0, i32 3 - store ptr @"github.com/goplus/llgo/internal/abi.(*MapType).InterfaceType", ptr %1166, align 8 - %1167 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %1162, align 8 - %1168 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %1169 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1168, i32 0, i32 0 - store ptr @35, ptr %1169, align 8 - %1170 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1168, i32 0, i32 1 - store i64 13, ptr %1170, align 4 - %1171 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1168, align 8 - %1172 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 - %1173 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 - %1174 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1173, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %1171, ptr %1174, align 8 - %1175 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1173, i32 0, i32 1 - store ptr %1172, ptr %1175, align 8 - %1176 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1173, i32 0, i32 2 - store ptr @"github.com/goplus/llgo/internal/abi.(*MapType).IsDirectIface", ptr %1176, align 8 - %1177 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1173, i32 0, i32 3 - store ptr @"github.com/goplus/llgo/internal/abi.(*MapType).IsDirectIface", ptr %1177, align 8 - %1178 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %1173, 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 @36, ptr %1180, align 8 - %1181 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1179, i32 0, i32 1 - store i64 4, ptr %1181, align 4 - %1182 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1179, align 8 - %1183 = load ptr, ptr @"_llgo_func$ntUE0UmVAWPS2O7GpCCGszSn-XnjHJntZZ2jYtwbFXI", align 8 - %1184 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 - %1185 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1184, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %1182, ptr %1185, align 8 - %1186 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1184, i32 0, i32 1 - store ptr %1183, ptr %1186, align 8 - %1187 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1184, i32 0, i32 2 - store ptr @"github.com/goplus/llgo/internal/abi.(*MapType).Kind", ptr %1187, align 8 - %1188 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1184, i32 0, i32 3 - store ptr @"github.com/goplus/llgo/internal/abi.(*MapType).Kind", ptr %1188, align 8 - %1189 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %1184, align 8 - %1190 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %1191 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1190, i32 0, i32 0 - store ptr @24, ptr %1191, align 8 - %1192 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1190, i32 0, i32 1 - store i64 3, ptr %1192, align 4 - %1193 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1190, align 8 - %1194 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 - %1195 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 - %1196 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1195, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %1193, ptr %1196, align 8 - %1197 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1195, i32 0, i32 1 - store ptr %1194, ptr %1197, align 8 - %1198 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1195, i32 0, i32 2 - store ptr @"github.com/goplus/llgo/internal/abi.(*MapType).Len", ptr %1198, align 8 - %1199 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1195, i32 0, i32 3 - store ptr @"github.com/goplus/llgo/internal/abi.(*MapType).Len", ptr %1199, align 8 - %1200 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %1195, align 8 - %1201 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %1202 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1201, i32 0, i32 0 - store ptr @39, ptr %1202, align 8 - %1203 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1201, i32 0, i32 1 - store i64 7, ptr %1203, align 4 - %1204 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1201, align 8 - %1205 = load ptr, ptr @"_llgo_func$d-NlqnjcQnaMjsBQY7qh2SWQmHb0XIigoceXdiJ8YT4", align 8 - %1206 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 - %1207 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1206, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %1204, ptr %1207, align 8 - %1208 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1206, i32 0, i32 1 - store ptr %1205, ptr %1208, align 8 - %1209 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1206, i32 0, i32 2 - store ptr @"github.com/goplus/llgo/internal/abi.(*MapType).MapType", ptr %1209, align 8 - %1210 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1206, i32 0, i32 3 - store ptr @"github.com/goplus/llgo/internal/abi.(*MapType).MapType", ptr %1210, align 8 - %1211 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %1206, align 8 - %1212 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %1213 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1212, i32 0, i32 0 - store ptr @50, ptr %1213, align 8 - %1214 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1212, i32 0, i32 1 - store i64 13, ptr %1214, align 4 - %1215 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1212, align 8 - %1216 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 - %1217 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 - %1218 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1217, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %1215, ptr %1218, align 8 - %1219 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1217, i32 0, i32 1 - store ptr %1216, ptr %1219, align 8 - %1220 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1217, i32 0, i32 2 - store ptr @"github.com/goplus/llgo/internal/abi.(*MapType).NeedKeyUpdate", ptr %1220, align 8 - %1221 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1217, i32 0, i32 3 - store ptr @"github.com/goplus/llgo/internal/abi.(*MapType).NeedKeyUpdate", ptr %1221, align 8 - %1222 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %1217, align 8 - %1223 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %1224 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1223, i32 0, i32 0 - store ptr @51, ptr %1224, align 8 - %1225 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1223, i32 0, i32 1 - store i64 8, ptr %1225, align 4 - %1226 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1223, align 8 - %1227 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 - %1228 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 - %1229 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1228, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %1226, ptr %1229, align 8 - %1230 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1228, i32 0, i32 1 - store ptr %1227, ptr %1230, align 8 - %1231 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1228, i32 0, i32 2 - store ptr @"github.com/goplus/llgo/internal/abi.(*MapType).Pointers", ptr %1231, align 8 - %1232 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1228, i32 0, i32 3 - store ptr @"github.com/goplus/llgo/internal/abi.(*MapType).Pointers", ptr %1232, align 8 - %1233 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %1228, align 8 - %1234 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %1235 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1234, i32 0, i32 0 - store ptr @52, ptr %1235, align 8 - %1236 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1234, i32 0, i32 1 - store i64 12, ptr %1236, align 4 - %1237 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1234, align 8 - %1238 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 - %1239 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 - %1240 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1239, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %1237, ptr %1240, align 8 - %1241 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1239, i32 0, i32 1 - store ptr %1238, ptr %1241, align 8 - %1242 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1239, i32 0, i32 2 - store ptr @"github.com/goplus/llgo/internal/abi.(*MapType).ReflexiveKey", ptr %1242, align 8 - %1243 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1239, i32 0, i32 3 - store ptr @"github.com/goplus/llgo/internal/abi.(*MapType).ReflexiveKey", ptr %1243, align 8 - %1244 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %1239, align 8 - %1245 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %1246 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1245, i32 0, i32 0 - store ptr @53, ptr %1246, align 8 - %1247 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1245, i32 0, i32 1 - store i64 4, ptr %1247, align 4 - %1248 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1245, align 8 - %1249 = load ptr, ptr @_llgo_uintptr, align 8 - %1250 = load ptr, ptr @"_llgo_func$1kITCsyu7hFLMxHLR7kDlvu4SOra_HtrtdFUQH9P13s", align 8 - %1251 = icmp eq ptr %1250, null - br i1 %1251, label %_llgo_63, label %_llgo_64 + %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 + %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 + %1089 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1087, i32 0, i32 1 + store i64 7, 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 + %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 + %1177 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1175, i32 0, i32 1 + store i64 3, 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 - %1252 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/internal/abi.MapType", align 8 - %1253 = icmp eq ptr %1252, null - br i1 %1253, label %_llgo_89, label %_llgo_90 + %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 - %1254 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 0) - %1255 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %1256 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1255, i32 0, i32 0 - store ptr %1254, ptr %1256, align 8 - %1257 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1255, i32 0, i32 1 - store i64 0, ptr %1257, align 4 - %1258 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1255, i32 0, i32 2 - store i64 0, ptr %1258, align 4 - %1259 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1255, align 8 - %1260 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 8) - %1261 = getelementptr ptr, ptr %1260, i64 0 - store ptr %1249, ptr %1261, align 8 - %1262 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %1263 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1262, i32 0, i32 0 - store ptr %1260, ptr %1263, align 8 - %1264 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1262, i32 0, i32 1 - store i64 1, ptr %1264, align 4 - %1265 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1262, i32 0, i32 2 - store i64 1, ptr %1265, align 4 - %1266 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1262, align 8 - %1267 = call ptr @"github.com/goplus/llgo/internal/runtime.Func"(%"github.com/goplus/llgo/internal/runtime.Slice" %1259, %"github.com/goplus/llgo/internal/runtime.Slice" %1266, i1 false) - store ptr %1267, ptr @"_llgo_func$1kITCsyu7hFLMxHLR7kDlvu4SOra_HtrtdFUQH9P13s", align 8 + %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) + store ptr %1252, ptr @"_llgo_func$1kITCsyu7hFLMxHLR7kDlvu4SOra_HtrtdFUQH9P13s", align 8 br label %_llgo_64 _llgo_64: ; preds = %_llgo_63, %_llgo_61 - %1268 = load ptr, ptr @"_llgo_func$1kITCsyu7hFLMxHLR7kDlvu4SOra_HtrtdFUQH9P13s", align 8 - %1269 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 - %1270 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1269, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %1248, ptr %1270, align 8 - %1271 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1269, i32 0, i32 1 - store ptr %1268, ptr %1271, align 8 - %1272 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1269, i32 0, i32 2 - store ptr @"github.com/goplus/llgo/internal/abi.(*MapType).Size", ptr %1272, align 8 - %1273 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1269, i32 0, i32 3 - store ptr @"github.com/goplus/llgo/internal/abi.(*MapType).Size", ptr %1273, align 8 - %1274 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %1269, align 8 - %1275 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %1276 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1275, i32 0, i32 0 - store ptr @37, ptr %1276, align 8 - %1277 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1275, i32 0, i32 1 - store i64 6, ptr %1277, align 4 - %1278 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1275, align 8 - %1279 = load ptr, ptr @"_llgo_func$zNDVRsWTIpUPKouNUS805RGX--IV9qVK8B31IZbg5to", align 8 - %1280 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 - %1281 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1280, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %1278, ptr %1281, align 8 - %1282 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1280, i32 0, i32 1 - store ptr %1279, ptr %1282, align 8 - %1283 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1280, i32 0, i32 2 - store ptr @"github.com/goplus/llgo/internal/abi.(*MapType).String", ptr %1283, align 8 - %1284 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1280, i32 0, i32 3 - store ptr @"github.com/goplus/llgo/internal/abi.(*MapType).String", ptr %1284, align 8 - %1285 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %1280, align 8 - %1286 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %1287 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1286, i32 0, i32 0 - store ptr @54, ptr %1287, align 8 - %1288 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1286, i32 0, i32 1 - store i64 10, ptr %1288, align 4 - %1289 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1286, align 8 - %1290 = load ptr, ptr @"_llgo_github.com/goplus/llgo/internal/abi.StructType", align 8 - %1291 = icmp eq ptr %1290, null - br i1 %1291, label %_llgo_65, label %_llgo_66 + %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 = load ptr, ptr @"_llgo_github.com/goplus/llgo/internal/abi.StructType", align 8 + %1276 = icmp eq ptr %1275, null + br i1 %1276, label %_llgo_65, label %_llgo_66 _llgo_65: ; preds = %_llgo_64 - %1292 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(i64 25, i64 0, i64 18) - store ptr %1292, ptr @"_llgo_github.com/goplus/llgo/internal/abi.StructType", align 8 + %1277 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(i64 25, i64 0, i64 18) + store ptr %1277, ptr @"_llgo_github.com/goplus/llgo/internal/abi.StructType", align 8 br label %_llgo_66 _llgo_66: ; preds = %_llgo_65, %_llgo_64 - %1293 = load ptr, ptr @"_llgo_struct$K_cvuhBwc2_5r7UW089ibWfcfsGoDb4pZ7K19IcMTk0", align 8 - %1294 = icmp eq ptr %1293, null - br i1 %1294, label %_llgo_67, label %_llgo_68 + %1278 = load ptr, ptr @"_llgo_struct$K_cvuhBwc2_5r7UW089ibWfcfsGoDb4pZ7K19IcMTk0", align 8 + %1279 = icmp eq ptr %1278, null + br i1 %1279, label %_llgo_67, label %_llgo_68 _llgo_67: ; preds = %_llgo_66 - %1295 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %1296 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1295, i32 0, i32 0 - store ptr @21, ptr %1296, align 8 - %1297 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1295, i32 0, i32 1 - store i64 4, ptr %1297, align 4 - %1298 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1295, 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 @21, ptr %1281, align 8 + %1282 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1280, i32 0, i32 1 + store i64 4, ptr %1282, align 4 + %1283 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1280, align 8 + %1284 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %1285 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1284, i32 0, i32 0 + store ptr null, ptr %1285, align 8 + %1286 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1284, i32 0, i32 1 + store i64 0, ptr %1286, align 4 + %1287 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1284, align 8 + %1288 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %1283, ptr %21, i64 0, %"github.com/goplus/llgo/internal/runtime.String" %1287, i1 true) + %1289 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %1290 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1289, i32 0, i32 0 + store ptr @33, ptr %1290, align 8 + %1291 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1289, i32 0, i32 1 + store i64 8, ptr %1291, align 4 + %1292 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1289, align 8 + %1293 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %1294 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1293, i32 0, i32 0 + store ptr null, ptr %1294, align 8 + %1295 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1293, i32 0, i32 1 + store i64 0, ptr %1295, align 4 + %1296 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1293, align 8 + %1297 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 24) + %1298 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %1292, ptr %1297, i64 72, %"github.com/goplus/llgo/internal/runtime.String" %1296, i1 false) %1299 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 %1300 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1299, i32 0, i32 0 - store ptr null, ptr %1300, align 8 + store ptr @55, ptr %1300, align 8 %1301 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1299, i32 0, i32 1 - store i64 0, ptr %1301, align 4 + store i64 6, ptr %1301, align 4 %1302 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1299, align 8 - %1303 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %1298, ptr %21, i64 0, %"github.com/goplus/llgo/internal/runtime.String" %1302, i1 true) - %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 @33, ptr %1305, align 8 - %1306 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1304, i32 0, i32 1 - store i64 8, ptr %1306, align 4 - %1307 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1304, align 8 - %1308 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %1309 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1308, i32 0, i32 0 - store ptr null, ptr %1309, align 8 - %1310 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1308, i32 0, i32 1 - store i64 0, ptr %1310, align 4 - %1311 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1308, align 8 - %1312 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 24) - %1313 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %1307, ptr %1312, i64 72, %"github.com/goplus/llgo/internal/runtime.String" %1311, i1 false) - %1314 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %1315 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1314, i32 0, i32 0 - store ptr @55, ptr %1315, align 8 - %1316 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1314, i32 0, i32 1 - store i64 6, ptr %1316, align 4 - %1317 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1314, align 8 - %1318 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %1319 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1318, i32 0, i32 0 - store ptr null, ptr %1319, align 8 - %1320 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1318, i32 0, i32 1 - store i64 0, ptr %1320, align 4 - %1321 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1318, align 8 - %1322 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(i64 25, i64 0, i64 2) - %1323 = call ptr @"github.com/goplus/llgo/internal/runtime.SliceOf"(ptr %1322) - %1324 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %1317, ptr %1323, i64 88, %"github.com/goplus/llgo/internal/runtime.String" %1321, i1 false) - %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 @4, ptr %1326, align 8 - %1327 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1325, i32 0, i32 1 - store i64 4, ptr %1327, align 4 - %1328 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1325, align 8 - %1329 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 168) - %1330 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %1329, i64 0 - store %"github.com/goplus/llgo/internal/abi.StructField" %1303, ptr %1330, align 8 - %1331 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %1329, i64 1 - store %"github.com/goplus/llgo/internal/abi.StructField" %1313, ptr %1331, align 8 - %1332 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %1329, i64 2 - store %"github.com/goplus/llgo/internal/abi.StructField" %1324, ptr %1332, align 8 - %1333 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %1334 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1333, i32 0, i32 0 - store ptr %1329, ptr %1334, align 8 - %1335 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1333, i32 0, i32 1 - store i64 3, ptr %1335, align 4 - %1336 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1333, i32 0, i32 2 - store i64 3, ptr %1336, align 4 - %1337 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1333, align 8 - %1338 = call ptr @"github.com/goplus/llgo/internal/runtime.Struct"(%"github.com/goplus/llgo/internal/runtime.String" %1328, i64 112, %"github.com/goplus/llgo/internal/runtime.Slice" %1337) - store ptr %1338, ptr @"_llgo_struct$K_cvuhBwc2_5r7UW089ibWfcfsGoDb4pZ7K19IcMTk0", align 8 + %1303 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %1304 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1303, i32 0, i32 0 + store ptr null, ptr %1304, align 8 + %1305 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1303, i32 0, i32 1 + store i64 0, ptr %1305, align 4 + %1306 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1303, align 8 + %1307 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(i64 25, i64 0, i64 2) + %1308 = call ptr @"github.com/goplus/llgo/internal/runtime.SliceOf"(ptr %1307) + %1309 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %1302, ptr %1308, i64 88, %"github.com/goplus/llgo/internal/runtime.String" %1306, 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" %1288, 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" %1298, 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 br label %_llgo_68 _llgo_68: ; preds = %_llgo_67, %_llgo_66 - %1339 = load ptr, ptr @"_llgo_struct$K_cvuhBwc2_5r7UW089ibWfcfsGoDb4pZ7K19IcMTk0", align 8 - br i1 %1291, label %_llgo_69, label %_llgo_70 + %1324 = load ptr, ptr @"_llgo_struct$K_cvuhBwc2_5r7UW089ibWfcfsGoDb4pZ7K19IcMTk0", align 8 + br i1 %1276, label %_llgo_69, label %_llgo_70 _llgo_69: ; preds = %_llgo_68 - %1340 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %1341 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1340, i32 0, i32 0 - store ptr @19, ptr %1341, align 8 - %1342 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1340, i32 0, i32 1 - store i64 5, ptr %1342, align 4 - %1343 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1340, align 8 - %1344 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 - %1345 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 - %1346 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1345, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %1343, ptr %1346, align 8 - %1347 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1345, i32 0, i32 1 - store ptr %1344, ptr %1347, align 8 - %1348 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1345, i32 0, i32 2 - store ptr @"github.com/goplus/llgo/internal/abi.(*StructType).Align", ptr %1348, align 8 - %1349 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1345, i32 0, i32 3 - store ptr @"github.com/goplus/llgo/internal/abi.(*StructType).Align", ptr %1349, align 8 - %1350 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %1345, align 8 - %1351 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %1352 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1351, i32 0, i32 0 - store ptr @20, ptr %1352, align 8 - %1353 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1351, i32 0, i32 1 - store i64 9, ptr %1353, align 4 - %1354 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1351, align 8 - %1355 = load ptr, ptr @"_llgo_func$CsVqlCxhoEcIvPD5BSBukfSiD9C7Ic5_Gf32MLbCWB4", align 8 - %1356 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 - %1357 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1356, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %1354, ptr %1357, align 8 - %1358 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1356, i32 0, i32 1 - store ptr %1355, ptr %1358, align 8 - %1359 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1356, i32 0, i32 2 - store ptr @"github.com/goplus/llgo/internal/abi.(*StructType).ArrayType", ptr %1359, align 8 - %1360 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1356, i32 0, i32 3 - store ptr @"github.com/goplus/llgo/internal/abi.(*StructType).ArrayType", ptr %1360, align 8 - %1361 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %1356, align 8 - %1362 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %1363 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1362, i32 0, i32 0 - store ptr @25, ptr %1363, align 8 - %1364 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1362, i32 0, i32 1 - store i64 6, ptr %1364, align 4 - %1365 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1362, align 8 - %1366 = load ptr, ptr @"_llgo_func$4-mqItKfDlL0CgVKnUxoresYgh6zW1WSlZYZSsVzLRo", align 8 - %1367 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 - %1368 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1367, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %1365, ptr %1368, align 8 - %1369 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1367, i32 0, i32 1 - store ptr %1366, ptr %1369, align 8 - %1370 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1367, i32 0, i32 2 - store ptr @"github.com/goplus/llgo/internal/abi.(*StructType).Common", ptr %1370, align 8 - %1371 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1367, i32 0, i32 3 - store ptr @"github.com/goplus/llgo/internal/abi.(*StructType).Common", ptr %1371, align 8 - %1372 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %1367, align 8 - %1373 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %1374 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1373, i32 0, i32 0 - store ptr @22, ptr %1374, align 8 - %1375 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1373, i32 0, i32 1 - store i64 4, ptr %1375, align 4 - %1376 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1373, align 8 - %1377 = load ptr, ptr @"_llgo_func$4-mqItKfDlL0CgVKnUxoresYgh6zW1WSlZYZSsVzLRo", align 8 - %1378 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 - %1379 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1378, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %1376, ptr %1379, align 8 - %1380 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1378, i32 0, i32 1 - store ptr %1377, ptr %1380, align 8 - %1381 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1378, i32 0, i32 2 - store ptr @"github.com/goplus/llgo/internal/abi.(*StructType).Elem", ptr %1381, align 8 - %1382 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1378, i32 0, i32 3 - store ptr @"github.com/goplus/llgo/internal/abi.(*StructType).Elem", ptr %1382, align 8 - %1383 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %1378, align 8 - %1384 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %1385 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1384, i32 0, i32 0 - store ptr @26, ptr %1385, align 8 - %1386 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1384, i32 0, i32 1 - store i64 10, ptr %1386, align 4 - %1387 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1384, align 8 - %1388 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 - %1389 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 - %1390 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1389, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %1387, ptr %1390, align 8 - %1391 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1389, i32 0, i32 1 - store ptr %1388, ptr %1391, align 8 - %1392 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1389, i32 0, i32 2 - store ptr @"github.com/goplus/llgo/internal/abi.(*StructType).FieldAlign", ptr %1392, align 8 - %1393 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1389, i32 0, i32 3 - store ptr @"github.com/goplus/llgo/internal/abi.(*StructType).FieldAlign", ptr %1393, align 8 - %1394 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %1389, align 8 - %1395 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %1396 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1395, i32 0, i32 0 - store ptr @27, ptr %1396, align 8 - %1397 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1395, i32 0, i32 1 - store i64 8, ptr %1397, align 4 - %1398 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1395, align 8 - %1399 = load ptr, ptr @"_llgo_func$DsoxgOnxqV7tLvokF3AA14v1gtHsHaThoC8Q_XGcQww", align 8 - %1400 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 - %1401 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1400, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %1398, ptr %1401, align 8 - %1402 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1400, i32 0, i32 1 - store ptr %1399, ptr %1402, align 8 - %1403 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1400, i32 0, i32 2 - store ptr @"github.com/goplus/llgo/internal/abi.(*StructType).FuncType", ptr %1403, align 8 - %1404 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1400, i32 0, i32 3 - store ptr @"github.com/goplus/llgo/internal/abi.(*StructType).FuncType", ptr %1404, align 8 - %1405 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %1400, align 8 - %1406 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %1407 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1406, i32 0, i32 0 - store ptr @30, ptr %1407, align 8 - %1408 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1406, i32 0, i32 1 - store i64 7, ptr %1408, align 4 - %1409 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1406, align 8 - %1410 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 - %1411 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 - %1412 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1411, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %1409, ptr %1412, align 8 - %1413 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1411, i32 0, i32 1 - store ptr %1410, ptr %1413, align 8 - %1414 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1411, i32 0, i32 2 - store ptr @"github.com/goplus/llgo/internal/abi.(*StructType).HasName", ptr %1414, align 8 - %1415 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1411, i32 0, i32 3 - store ptr @"github.com/goplus/llgo/internal/abi.(*StructType).HasName", ptr %1415, align 8 - %1416 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %1411, align 8 - %1417 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %1418 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1417, i32 0, i32 0 - store ptr @31, ptr %1418, align 8 - %1419 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1417, i32 0, i32 1 - store i64 10, ptr %1419, align 4 - %1420 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1417, align 8 - %1421 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 - %1422 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 - %1423 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1422, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %1420, ptr %1423, align 8 - %1424 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1422, i32 0, i32 1 - store ptr %1421, ptr %1424, align 8 - %1425 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1422, i32 0, i32 2 - store ptr @"github.com/goplus/llgo/internal/abi.(*StructType).IfaceIndir", ptr %1425, align 8 - %1426 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1422, i32 0, i32 3 - store ptr @"github.com/goplus/llgo/internal/abi.(*StructType).IfaceIndir", ptr %1426, align 8 - %1427 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %1422, align 8 - %1428 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %1429 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1428, i32 0, i32 0 - store ptr @32, ptr %1429, align 8 - %1430 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1428, i32 0, i32 1 - store i64 13, ptr %1430, align 4 - %1431 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1428, align 8 - %1432 = load ptr, ptr @"_llgo_func$1QmforOaCy2fBAssC2y1FWCCT6fpq9RKwP2j2HIASY8", align 8 - %1433 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 - %1434 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1433, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %1431, ptr %1434, align 8 - %1435 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1433, i32 0, i32 1 - store ptr %1432, ptr %1435, align 8 - %1436 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1433, i32 0, i32 2 - store ptr @"github.com/goplus/llgo/internal/abi.(*StructType).InterfaceType", ptr %1436, align 8 - %1437 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1433, i32 0, i32 3 - store ptr @"github.com/goplus/llgo/internal/abi.(*StructType).InterfaceType", ptr %1437, align 8 - %1438 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %1433, align 8 - %1439 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %1440 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1439, i32 0, i32 0 - store ptr @35, ptr %1440, align 8 - %1441 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1439, i32 0, i32 1 - store i64 13, ptr %1441, align 4 - %1442 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1439, align 8 - %1443 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 - %1444 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 - %1445 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1444, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %1442, ptr %1445, align 8 - %1446 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1444, i32 0, i32 1 - store ptr %1443, ptr %1446, align 8 - %1447 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1444, i32 0, i32 2 - store ptr @"github.com/goplus/llgo/internal/abi.(*StructType).IsDirectIface", ptr %1447, align 8 - %1448 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1444, i32 0, i32 3 - store ptr @"github.com/goplus/llgo/internal/abi.(*StructType).IsDirectIface", ptr %1448, align 8 - %1449 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %1444, align 8 - %1450 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %1451 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1450, i32 0, i32 0 - store ptr @36, ptr %1451, align 8 - %1452 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1450, i32 0, i32 1 - store i64 4, ptr %1452, align 4 - %1453 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1450, align 8 - %1454 = load ptr, ptr @"_llgo_func$ntUE0UmVAWPS2O7GpCCGszSn-XnjHJntZZ2jYtwbFXI", align 8 - %1455 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 - %1456 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1455, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %1453, ptr %1456, align 8 - %1457 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1455, i32 0, i32 1 - store ptr %1454, ptr %1457, align 8 - %1458 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1455, i32 0, i32 2 - store ptr @"github.com/goplus/llgo/internal/abi.(*StructType).Kind", ptr %1458, align 8 - %1459 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1455, i32 0, i32 3 - store ptr @"github.com/goplus/llgo/internal/abi.(*StructType).Kind", ptr %1459, align 8 - %1460 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %1455, align 8 - %1461 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %1462 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1461, i32 0, i32 0 - store ptr @24, ptr %1462, align 8 - %1463 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1461, i32 0, i32 1 - store i64 3, ptr %1463, align 4 - %1464 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1461, align 8 - %1465 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 - %1466 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 - %1467 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1466, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %1464, ptr %1467, align 8 - %1468 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1466, i32 0, i32 1 - store ptr %1465, ptr %1468, align 8 - %1469 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1466, i32 0, i32 2 - store ptr @"github.com/goplus/llgo/internal/abi.(*StructType).Len", ptr %1469, align 8 - %1470 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1466, i32 0, i32 3 - store ptr @"github.com/goplus/llgo/internal/abi.(*StructType).Len", ptr %1470, align 8 - %1471 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %1466, align 8 - %1472 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %1473 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1472, i32 0, i32 0 - store ptr @39, ptr %1473, align 8 - %1474 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1472, i32 0, i32 1 - store i64 7, ptr %1474, align 4 - %1475 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1472, align 8 - %1476 = load ptr, ptr @"_llgo_func$d-NlqnjcQnaMjsBQY7qh2SWQmHb0XIigoceXdiJ8YT4", align 8 - %1477 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 - %1478 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1477, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %1475, ptr %1478, align 8 - %1479 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1477, i32 0, i32 1 - store ptr %1476, ptr %1479, align 8 - %1480 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1477, i32 0, i32 2 - store ptr @"github.com/goplus/llgo/internal/abi.(*StructType).MapType", ptr %1480, align 8 - %1481 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1477, i32 0, i32 3 - store ptr @"github.com/goplus/llgo/internal/abi.(*StructType).MapType", ptr %1481, align 8 - %1482 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %1477, align 8 - %1483 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %1484 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1483, i32 0, i32 0 - store ptr @51, ptr %1484, align 8 - %1485 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1483, i32 0, i32 1 - store i64 8, ptr %1485, align 4 - %1486 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1483, align 8 - %1487 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 - %1488 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 - %1489 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1488, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %1486, ptr %1489, align 8 - %1490 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1488, i32 0, i32 1 - store ptr %1487, ptr %1490, align 8 - %1491 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1488, i32 0, i32 2 - store ptr @"github.com/goplus/llgo/internal/abi.(*StructType).Pointers", ptr %1491, align 8 - %1492 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1488, i32 0, i32 3 - store ptr @"github.com/goplus/llgo/internal/abi.(*StructType).Pointers", ptr %1492, align 8 - %1493 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %1488, align 8 - %1494 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %1495 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1494, i32 0, i32 0 - store ptr @53, ptr %1495, align 8 - %1496 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1494, i32 0, i32 1 - store i64 4, ptr %1496, align 4 - %1497 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1494, align 8 - %1498 = load ptr, ptr @"_llgo_func$1kITCsyu7hFLMxHLR7kDlvu4SOra_HtrtdFUQH9P13s", align 8 - %1499 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 - %1500 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1499, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %1497, ptr %1500, align 8 - %1501 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1499, i32 0, i32 1 - store ptr %1498, ptr %1501, align 8 - %1502 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1499, i32 0, i32 2 - store ptr @"github.com/goplus/llgo/internal/abi.(*StructType).Size", ptr %1502, align 8 - %1503 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1499, i32 0, i32 3 - store ptr @"github.com/goplus/llgo/internal/abi.(*StructType).Size", ptr %1503, align 8 - %1504 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %1499, align 8 - %1505 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %1506 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1505, i32 0, i32 0 - store ptr @37, ptr %1506, align 8 - %1507 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1505, i32 0, i32 1 - store i64 6, ptr %1507, align 4 - %1508 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1505, align 8 - %1509 = load ptr, ptr @"_llgo_func$zNDVRsWTIpUPKouNUS805RGX--IV9qVK8B31IZbg5to", align 8 - %1510 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 - %1511 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1510, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %1508, ptr %1511, align 8 - %1512 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1510, i32 0, i32 1 - store ptr %1509, ptr %1512, align 8 - %1513 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1510, i32 0, i32 2 - store ptr @"github.com/goplus/llgo/internal/abi.(*StructType).String", ptr %1513, align 8 - %1514 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1510, i32 0, i32 3 - store ptr @"github.com/goplus/llgo/internal/abi.(*StructType).String", ptr %1514, align 8 - %1515 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %1510, align 8 - %1516 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %1517 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1516, i32 0, i32 0 - store ptr @54, ptr %1517, align 8 - %1518 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1516, i32 0, i32 1 - store i64 10, ptr %1518, align 4 - %1519 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1516, align 8 - %1520 = load ptr, ptr @"_llgo_func$qiNnn6Cbm3GtDp4gDI4U_DRV3h8zlz91s9jrfOXC--U", align 8 - %1521 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 - %1522 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1521, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %1519, ptr %1522, align 8 - %1523 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1521, i32 0, i32 1 - store ptr %1520, ptr %1523, align 8 - %1524 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1521, i32 0, i32 2 - store ptr @"github.com/goplus/llgo/internal/abi.(*StructType).StructType", ptr %1524, align 8 - %1525 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1521, i32 0, i32 3 - store ptr @"github.com/goplus/llgo/internal/abi.(*StructType).StructType", ptr %1525, align 8 - %1526 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %1521, align 8 - %1527 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %1528 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1527, i32 0, i32 0 - store ptr @56, ptr %1528, align 8 - %1529 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1527, i32 0, i32 1 - store i64 8, ptr %1529, align 4 - %1530 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1527, align 8 - %1531 = load ptr, ptr @"_llgo_github.com/goplus/llgo/internal/abi.UncommonType", align 8 - %1532 = icmp eq ptr %1531, null - br i1 %1532, label %_llgo_71, label %_llgo_72 + %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 = load ptr, ptr @"_llgo_github.com/goplus/llgo/internal/abi.UncommonType", align 8 + %1517 = icmp eq ptr %1516, null + br i1 %1517, label %_llgo_71, label %_llgo_72 _llgo_70: ; preds = %_llgo_84, %_llgo_68 - %1533 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/internal/abi.StructType", align 8 - %1534 = icmp eq ptr %1533, null - br i1 %1534, label %_llgo_85, label %_llgo_86 + %1518 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/internal/abi.StructType", align 8 + %1519 = icmp eq ptr %1518, null + br i1 %1519, label %_llgo_85, label %_llgo_86 _llgo_71: ; preds = %_llgo_69 - %1535 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(i64 25, i64 0, i64 2) - store ptr %1535, ptr @"_llgo_github.com/goplus/llgo/internal/abi.UncommonType", align 8 + %1520 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(i64 25, i64 0, i64 2) + store ptr %1520, ptr @"_llgo_github.com/goplus/llgo/internal/abi.UncommonType", align 8 br label %_llgo_72 _llgo_72: ; preds = %_llgo_71, %_llgo_69 - %1536 = load ptr, ptr @"_llgo_struct$OKIlItfBJsawrEMnVSc2VQ7pxNxCHIgSoitcM9n4FVI", align 8 - %1537 = icmp eq ptr %1536, null - br i1 %1537, label %_llgo_73, label %_llgo_74 + %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 - %1538 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %1539 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1538, i32 0, i32 0 - store ptr @33, ptr %1539, align 8 - %1540 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1538, i32 0, i32 1 - store i64 8, ptr %1540, align 4 - %1541 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1538, align 8 - %1542 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %1543 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1542, i32 0, i32 0 - store ptr null, ptr %1543, align 8 - %1544 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1542, i32 0, i32 1 - store i64 0, ptr %1544, align 4 - %1545 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1542, align 8 - %1546 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 24) - %1547 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %1541, ptr %1546, i64 0, %"github.com/goplus/llgo/internal/runtime.String" %1545, i1 false) - %1548 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %1549 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1548, i32 0, i32 0 - store ptr @57, ptr %1549, align 8 - %1550 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1548, i32 0, i32 1 - store i64 6, ptr %1550, align 4 - %1551 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1548, align 8 - %1552 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %1553 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1552, i32 0, i32 0 - store ptr null, ptr %1553, align 8 - %1554 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1552, i32 0, i32 1 - store i64 0, ptr %1554, align 4 - %1555 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1552, align 8 - %1556 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 9) - %1557 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %1551, ptr %1556, i64 16, %"github.com/goplus/llgo/internal/runtime.String" %1555, i1 false) - %1558 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %1559 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1558, i32 0, i32 0 - store ptr @58, ptr %1559, align 8 - %1560 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1558, i32 0, i32 1 - store i64 6, ptr %1560, align 4 - %1561 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1558, align 8 - %1562 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %1563 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1562, i32 0, i32 0 - store ptr null, ptr %1563, align 8 - %1564 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1562, i32 0, i32 1 - store i64 0, ptr %1564, align 4 - %1565 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1562, align 8 - %1566 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 9) - %1567 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %1561, ptr %1566, i64 18, %"github.com/goplus/llgo/internal/runtime.String" %1565, i1 false) - %1568 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %1569 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1568, i32 0, i32 0 - store ptr @59, ptr %1569, align 8 - %1570 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1568, i32 0, i32 1 - store i64 4, ptr %1570, align 4 - %1571 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1568, align 8 - %1572 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %1573 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1572, i32 0, i32 0 - store ptr null, ptr %1573, align 8 - %1574 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1572, i32 0, i32 1 - store i64 0, ptr %1574, align 4 - %1575 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1572, align 8 - %1576 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 10) - %1577 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %1571, ptr %1576, i64 20, %"github.com/goplus/llgo/internal/runtime.String" %1575, i1 false) - %1578 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %1579 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1578, i32 0, i32 0 - store ptr @4, ptr %1579, align 8 - %1580 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1578, i32 0, i32 1 - store i64 4, ptr %1580, align 4 - %1581 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1578, align 8 - %1582 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 224) - %1583 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %1582, i64 0 - store %"github.com/goplus/llgo/internal/abi.StructField" %1547, ptr %1583, align 8 - %1584 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %1582, i64 1 - store %"github.com/goplus/llgo/internal/abi.StructField" %1557, ptr %1584, align 8 - %1585 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %1582, i64 2 - store %"github.com/goplus/llgo/internal/abi.StructField" %1567, ptr %1585, align 8 - %1586 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %1582, i64 3 - store %"github.com/goplus/llgo/internal/abi.StructField" %1577, ptr %1586, align 8 - %1587 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %1588 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1587, i32 0, i32 0 - store ptr %1582, ptr %1588, align 8 - %1589 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1587, i32 0, i32 1 - store i64 4, ptr %1589, align 4 - %1590 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1587, i32 0, i32 2 - store i64 4, ptr %1590, align 4 - %1591 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1587, align 8 - %1592 = call ptr @"github.com/goplus/llgo/internal/runtime.Struct"(%"github.com/goplus/llgo/internal/runtime.String" %1581, i64 24, %"github.com/goplus/llgo/internal/runtime.Slice" %1591) - store ptr %1592, ptr @"_llgo_struct$OKIlItfBJsawrEMnVSc2VQ7pxNxCHIgSoitcM9n4FVI", align 8 + %1523 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %1524 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1523, i32 0, i32 0 + store ptr @33, 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 + %1527 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %1528 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1527, i32 0, i32 0 + store ptr null, ptr %1528, align 8 + %1529 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1527, i32 0, i32 1 + 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) + %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 + %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 + %1537 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %1538 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1537, i32 0, i32 0 + store ptr null, ptr %1538, align 8 + %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) + %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 + %1545 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1543, i32 0, i32 1 + store i64 6, 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 - %1593 = load ptr, ptr @"_llgo_struct$OKIlItfBJsawrEMnVSc2VQ7pxNxCHIgSoitcM9n4FVI", align 8 - br i1 %1532, label %_llgo_75, label %_llgo_76 + %1578 = load ptr, ptr @"_llgo_struct$OKIlItfBJsawrEMnVSc2VQ7pxNxCHIgSoitcM9n4FVI", align 8 + br i1 %1517, label %_llgo_75, label %_llgo_76 _llgo_75: ; preds = %_llgo_74 - %1594 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %1595 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1594, i32 0, i32 0 - store ptr @60, ptr %1595, align 8 - %1596 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1594, i32 0, i32 1 - store i64 15, ptr %1596, align 4 - %1597 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1594, align 8 - %1598 = load ptr, ptr @"[]_llgo_github.com/goplus/llgo/internal/abi.Method", align 8 - %1599 = icmp eq ptr %1598, null - br i1 %1599, label %_llgo_77, label %_llgo_78 + %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 = load ptr, ptr @"[]_llgo_github.com/goplus/llgo/internal/abi.Method", align 8 + %1584 = icmp eq ptr %1583, null + br i1 %1584, label %_llgo_77, label %_llgo_78 _llgo_76: ; preds = %_llgo_80, %_llgo_74 - %1600 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/internal/abi.UncommonType", align 8 - %1601 = icmp eq ptr %1600, null - br i1 %1601, label %_llgo_81, label %_llgo_82 + %1585 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/internal/abi.UncommonType", align 8 + %1586 = icmp eq ptr %1585, null + br i1 %1586, label %_llgo_81, label %_llgo_82 _llgo_77: ; preds = %_llgo_75 - %1602 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(i64 25, i64 0, i64 3) - %1603 = call ptr @"github.com/goplus/llgo/internal/runtime.SliceOf"(ptr %1602) - store ptr %1603, ptr @"[]_llgo_github.com/goplus/llgo/internal/abi.Method", align 8 + %1587 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(i64 25, i64 0, i64 3) + %1588 = call ptr @"github.com/goplus/llgo/internal/runtime.SliceOf"(ptr %1587) + 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 - %1604 = load ptr, ptr @"[]_llgo_github.com/goplus/llgo/internal/abi.Method", align 8 - %1605 = load ptr, ptr @"_llgo_func$r0w3aCNVheLGqjxncuxitGhNtWJagb9gZLqOSrNI7dg", align 8 - %1606 = icmp eq ptr %1605, null - br i1 %1606, label %_llgo_79, label %_llgo_80 + %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 - %1607 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 0) - %1608 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %1609 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1608, i32 0, i32 0 - store ptr %1607, ptr %1609, align 8 - %1610 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1608, i32 0, i32 1 - store i64 0, ptr %1610, align 4 - %1611 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1608, i32 0, i32 2 - store i64 0, ptr %1611, align 4 - %1612 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1608, align 8 - %1613 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 8) - %1614 = getelementptr ptr, ptr %1613, i64 0 - store ptr %1604, ptr %1614, align 8 - %1615 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %1616 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1615, i32 0, i32 0 - store ptr %1613, ptr %1616, align 8 - %1617 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1615, i32 0, i32 1 - store i64 1, ptr %1617, align 4 - %1618 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1615, i32 0, i32 2 - store i64 1, ptr %1618, align 4 - %1619 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1615, align 8 - %1620 = call ptr @"github.com/goplus/llgo/internal/runtime.Func"(%"github.com/goplus/llgo/internal/runtime.Slice" %1612, %"github.com/goplus/llgo/internal/runtime.Slice" %1619, i1 false) - store ptr %1620, ptr @"_llgo_func$r0w3aCNVheLGqjxncuxitGhNtWJagb9gZLqOSrNI7dg", align 8 + %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) + store ptr %1605, ptr @"_llgo_func$r0w3aCNVheLGqjxncuxitGhNtWJagb9gZLqOSrNI7dg", align 8 br label %_llgo_80 _llgo_80: ; preds = %_llgo_79, %_llgo_78 - %1621 = load ptr, ptr @"_llgo_func$r0w3aCNVheLGqjxncuxitGhNtWJagb9gZLqOSrNI7dg", align 8 - %1622 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 - %1623 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1622, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %1597, ptr %1623, align 8 - %1624 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1622, i32 0, i32 1 - store ptr %1621, ptr %1624, align 8 - %1625 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1622, i32 0, i32 2 - store ptr @"github.com/goplus/llgo/internal/abi.(*UncommonType).ExportedMethods", ptr %1625, align 8 - %1626 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1622, i32 0, i32 3 - store ptr @"github.com/goplus/llgo/internal/abi.(*UncommonType).ExportedMethods", ptr %1626, align 8 - %1627 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %1622, align 8 - %1628 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %1629 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1628, i32 0, i32 0 - store ptr @34, ptr %1629, align 8 - %1630 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1628, i32 0, i32 1 - store i64 7, ptr %1630, align 4 - %1631 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1628, align 8 - %1632 = load ptr, ptr @"_llgo_func$r0w3aCNVheLGqjxncuxitGhNtWJagb9gZLqOSrNI7dg", align 8 - %1633 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 - %1634 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1633, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %1631, ptr %1634, align 8 - %1635 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1633, i32 0, i32 1 - store ptr %1632, ptr %1635, align 8 - %1636 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1633, i32 0, i32 2 - store ptr @"github.com/goplus/llgo/internal/abi.(*UncommonType).Methods", ptr %1636, align 8 - %1637 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1633, i32 0, i32 3 - store ptr @"github.com/goplus/llgo/internal/abi.(*UncommonType).Methods", ptr %1637, align 8 - %1638 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %1633, align 8 - %1639 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 80) - %1640 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1639, i64 0 - store %"github.com/goplus/llgo/internal/abi.Method" %1627, ptr %1640, align 8 - %1641 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1639, i64 1 - store %"github.com/goplus/llgo/internal/abi.Method" %1638, ptr %1641, align 8 - %1642 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %1643 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1642, i32 0, i32 0 - store ptr %1639, ptr %1643, align 8 - %1644 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1642, i32 0, i32 1 - store i64 2, ptr %1644, align 4 - %1645 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1642, i32 0, i32 2 - store i64 2, ptr %1645, align 4 - %1646 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1642, align 8 - %1647 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %1648 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1647, i32 0, i32 0 - store ptr @38, ptr %1648, align 8 - %1649 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1647, i32 0, i32 1 - store i64 35, ptr %1649, align 4 - %1650 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1647, align 8 - %1651 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %1652 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1651, i32 0, i32 0 - store ptr @61, ptr %1652, align 8 - %1653 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1651, i32 0, i32 1 - store i64 12, ptr %1653, align 4 - %1654 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1651, align 8 - call void @"github.com/goplus/llgo/internal/runtime.InitNamed"(ptr %1535, %"github.com/goplus/llgo/internal/runtime.String" %1650, %"github.com/goplus/llgo/internal/runtime.String" %1654, ptr %1593, { ptr, i64, i64 } zeroinitializer, %"github.com/goplus/llgo/internal/runtime.Slice" %1646) + %1606 = load ptr, ptr @"_llgo_func$r0w3aCNVheLGqjxncuxitGhNtWJagb9gZLqOSrNI7dg", 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 + %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 + %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 + %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 + %1615 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1613, i32 0, i32 1 + store i64 7, 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 + %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 + %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 + %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 %1520, %"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) br label %_llgo_76 _llgo_81: ; preds = %_llgo_76 - %1655 = call ptr @"github.com/goplus/llgo/internal/runtime.PointerTo"(ptr %1535) - store ptr %1655, ptr @"*_llgo_github.com/goplus/llgo/internal/abi.UncommonType", align 8 + %1640 = call ptr @"github.com/goplus/llgo/internal/runtime.PointerTo"(ptr %1520) + store ptr %1640, ptr @"*_llgo_github.com/goplus/llgo/internal/abi.UncommonType", align 8 br label %_llgo_82 _llgo_82: ; preds = %_llgo_81, %_llgo_76 - %1656 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/internal/abi.UncommonType", align 8 - %1657 = load ptr, ptr @"_llgo_func$DbD4nZv_bjE4tH8hh-VfAjMXMpNfIsMlLJJJPKupp34", align 8 - %1658 = icmp eq ptr %1657, null - br i1 %1658, label %_llgo_83, label %_llgo_84 + %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 - %1659 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 0) - %1660 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %1661 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1660, i32 0, i32 0 - store ptr %1659, ptr %1661, align 8 - %1662 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1660, i32 0, i32 1 - store i64 0, ptr %1662, align 4 - %1663 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1660, i32 0, i32 2 - store i64 0, ptr %1663, align 4 - %1664 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1660, align 8 - %1665 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 8) - %1666 = getelementptr ptr, ptr %1665, i64 0 - store ptr %1656, ptr %1666, align 8 - %1667 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %1668 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1667, i32 0, i32 0 - store ptr %1665, ptr %1668, align 8 - %1669 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1667, i32 0, i32 1 - store i64 1, ptr %1669, align 4 - %1670 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1667, i32 0, i32 2 - store i64 1, ptr %1670, align 4 - %1671 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1667, align 8 - %1672 = call ptr @"github.com/goplus/llgo/internal/runtime.Func"(%"github.com/goplus/llgo/internal/runtime.Slice" %1664, %"github.com/goplus/llgo/internal/runtime.Slice" %1671, i1 false) - store ptr %1672, ptr @"_llgo_func$DbD4nZv_bjE4tH8hh-VfAjMXMpNfIsMlLJJJPKupp34", align 8 + %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) + store ptr %1657, ptr @"_llgo_func$DbD4nZv_bjE4tH8hh-VfAjMXMpNfIsMlLJJJPKupp34", align 8 br label %_llgo_84 _llgo_84: ; preds = %_llgo_83, %_llgo_82 - %1673 = load ptr, ptr @"_llgo_func$DbD4nZv_bjE4tH8hh-VfAjMXMpNfIsMlLJJJPKupp34", align 8 - %1674 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 - %1675 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1674, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %1530, ptr %1675, align 8 - %1676 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1674, i32 0, i32 1 - store ptr %1673, ptr %1676, align 8 - %1677 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1674, i32 0, i32 2 - store ptr @"github.com/goplus/llgo/internal/abi.(*StructType).Uncommon", ptr %1677, align 8 - %1678 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1674, i32 0, i32 3 - store ptr @"github.com/goplus/llgo/internal/abi.(*StructType).Uncommon", ptr %1678, align 8 - %1679 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %1674, align 8 - %1680 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 720) - %1681 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1680, i64 0 - store %"github.com/goplus/llgo/internal/abi.Method" %1350, ptr %1681, align 8 - %1682 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1680, i64 1 - store %"github.com/goplus/llgo/internal/abi.Method" %1361, ptr %1682, align 8 - %1683 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1680, i64 2 - store %"github.com/goplus/llgo/internal/abi.Method" %1372, ptr %1683, align 8 - %1684 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1680, i64 3 - store %"github.com/goplus/llgo/internal/abi.Method" %1383, ptr %1684, align 8 - %1685 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1680, i64 4 - store %"github.com/goplus/llgo/internal/abi.Method" %1394, ptr %1685, align 8 - %1686 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1680, i64 5 - store %"github.com/goplus/llgo/internal/abi.Method" %1405, ptr %1686, align 8 - %1687 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1680, i64 6 - store %"github.com/goplus/llgo/internal/abi.Method" %1416, ptr %1687, align 8 - %1688 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1680, i64 7 - store %"github.com/goplus/llgo/internal/abi.Method" %1427, ptr %1688, align 8 - %1689 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1680, i64 8 - store %"github.com/goplus/llgo/internal/abi.Method" %1438, ptr %1689, align 8 - %1690 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1680, i64 9 - store %"github.com/goplus/llgo/internal/abi.Method" %1449, ptr %1690, align 8 - %1691 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1680, i64 10 - store %"github.com/goplus/llgo/internal/abi.Method" %1460, ptr %1691, align 8 - %1692 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1680, i64 11 - store %"github.com/goplus/llgo/internal/abi.Method" %1471, ptr %1692, align 8 - %1693 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1680, i64 12 - store %"github.com/goplus/llgo/internal/abi.Method" %1482, ptr %1693, align 8 - %1694 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1680, i64 13 - store %"github.com/goplus/llgo/internal/abi.Method" %1493, ptr %1694, align 8 - %1695 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1680, i64 14 - store %"github.com/goplus/llgo/internal/abi.Method" %1504, ptr %1695, align 8 - %1696 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1680, i64 15 - store %"github.com/goplus/llgo/internal/abi.Method" %1515, ptr %1696, align 8 - %1697 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1680, i64 16 - store %"github.com/goplus/llgo/internal/abi.Method" %1526, ptr %1697, align 8 - %1698 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1680, i64 17 - store %"github.com/goplus/llgo/internal/abi.Method" %1679, ptr %1698, align 8 - %1699 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %1700 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1699, i32 0, i32 0 - store ptr %1680, ptr %1700, align 8 - %1701 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1699, i32 0, i32 1 - store i64 18, ptr %1701, align 4 - %1702 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1699, i32 0, i32 2 - store i64 18, ptr %1702, align 4 - %1703 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1699, align 8 - %1704 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %1705 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1704, i32 0, i32 0 - store ptr @38, ptr %1705, align 8 - %1706 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1704, i32 0, i32 1 - store i64 35, ptr %1706, align 4 - %1707 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1704, align 8 - %1708 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %1709 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1708, i32 0, i32 0 - store ptr @54, ptr %1709, align 8 - %1710 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1708, i32 0, i32 1 - store i64 10, ptr %1710, align 4 - %1711 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1708, align 8 - call void @"github.com/goplus/llgo/internal/runtime.InitNamed"(ptr %1292, %"github.com/goplus/llgo/internal/runtime.String" %1707, %"github.com/goplus/llgo/internal/runtime.String" %1711, ptr %1339, { ptr, i64, i64 } zeroinitializer, %"github.com/goplus/llgo/internal/runtime.Slice" %1703) + %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 %1277, %"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_85: ; preds = %_llgo_70 - %1712 = call ptr @"github.com/goplus/llgo/internal/runtime.PointerTo"(ptr %1292) - store ptr %1712, ptr @"*_llgo_github.com/goplus/llgo/internal/abi.StructType", align 8 + %1697 = call ptr @"github.com/goplus/llgo/internal/runtime.PointerTo"(ptr %1277) + store ptr %1697, ptr @"*_llgo_github.com/goplus/llgo/internal/abi.StructType", align 8 br label %_llgo_86 _llgo_86: ; preds = %_llgo_85, %_llgo_70 - %1713 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/internal/abi.StructType", align 8 - %1714 = load ptr, ptr @"_llgo_func$qiNnn6Cbm3GtDp4gDI4U_DRV3h8zlz91s9jrfOXC--U", align 8 - %1715 = icmp eq ptr %1714, null - br i1 %1715, label %_llgo_87, label %_llgo_88 + %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 - %1716 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 0) - %1717 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %1718 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1717, i32 0, i32 0 - store ptr %1716, ptr %1718, align 8 - %1719 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1717, i32 0, i32 1 - store i64 0, ptr %1719, align 4 - %1720 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1717, i32 0, i32 2 - store i64 0, ptr %1720, align 4 - %1721 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1717, align 8 - %1722 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 8) - %1723 = getelementptr ptr, ptr %1722, i64 0 - store ptr %1713, ptr %1723, align 8 - %1724 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %1725 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1724, i32 0, i32 0 - store ptr %1722, ptr %1725, align 8 - %1726 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1724, i32 0, i32 1 - store i64 1, ptr %1726, align 4 - %1727 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1724, i32 0, i32 2 - store i64 1, ptr %1727, align 4 - %1728 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1724, align 8 - %1729 = call ptr @"github.com/goplus/llgo/internal/runtime.Func"(%"github.com/goplus/llgo/internal/runtime.Slice" %1721, %"github.com/goplus/llgo/internal/runtime.Slice" %1728, i1 false) - store ptr %1729, ptr @"_llgo_func$qiNnn6Cbm3GtDp4gDI4U_DRV3h8zlz91s9jrfOXC--U", align 8 + %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) + store ptr %1714, ptr @"_llgo_func$qiNnn6Cbm3GtDp4gDI4U_DRV3h8zlz91s9jrfOXC--U", align 8 br label %_llgo_88 _llgo_88: ; preds = %_llgo_87, %_llgo_86 - %1730 = load ptr, ptr @"_llgo_func$qiNnn6Cbm3GtDp4gDI4U_DRV3h8zlz91s9jrfOXC--U", align 8 - %1731 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 - %1732 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1731, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %1289, ptr %1732, align 8 - %1733 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1731, i32 0, i32 1 - store ptr %1730, ptr %1733, align 8 - %1734 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1731, i32 0, i32 2 - store ptr @"github.com/goplus/llgo/internal/abi.(*MapType).StructType", ptr %1734, align 8 - %1735 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1731, i32 0, i32 3 - store ptr @"github.com/goplus/llgo/internal/abi.(*MapType).StructType", ptr %1735, align 8 - %1736 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %1731, align 8 - %1737 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %1738 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1737, i32 0, i32 0 - store ptr @56, ptr %1738, align 8 - %1739 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1737, i32 0, i32 1 - store i64 8, ptr %1739, align 4 - %1740 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1737, align 8 - %1741 = load ptr, ptr @"_llgo_func$DbD4nZv_bjE4tH8hh-VfAjMXMpNfIsMlLJJJPKupp34", align 8 - %1742 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 - %1743 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1742, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %1740, ptr %1743, align 8 - %1744 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1742, i32 0, i32 1 - store ptr %1741, ptr %1744, align 8 - %1745 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1742, i32 0, i32 2 - store ptr @"github.com/goplus/llgo/internal/abi.(*MapType).Uncommon", ptr %1745, align 8 - %1746 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1742, i32 0, i32 3 - store ptr @"github.com/goplus/llgo/internal/abi.(*MapType).Uncommon", ptr %1746, align 8 - %1747 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %1742, align 8 - %1748 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 880) - %1749 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1748, i64 0 - store %"github.com/goplus/llgo/internal/abi.Method" %1057, ptr %1749, align 8 - %1750 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1748, i64 1 - store %"github.com/goplus/llgo/internal/abi.Method" %1068, ptr %1750, align 8 - %1751 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1748, i64 2 - store %"github.com/goplus/llgo/internal/abi.Method" %1079, ptr %1751, align 8 - %1752 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1748, i64 3 - store %"github.com/goplus/llgo/internal/abi.Method" %1090, ptr %1752, align 8 - %1753 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1748, i64 4 - store %"github.com/goplus/llgo/internal/abi.Method" %1101, ptr %1753, align 8 - %1754 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1748, i64 5 - store %"github.com/goplus/llgo/internal/abi.Method" %1112, ptr %1754, align 8 - %1755 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1748, i64 6 - store %"github.com/goplus/llgo/internal/abi.Method" %1123, ptr %1755, align 8 - %1756 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1748, i64 7 - store %"github.com/goplus/llgo/internal/abi.Method" %1134, ptr %1756, align 8 - %1757 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1748, i64 8 - store %"github.com/goplus/llgo/internal/abi.Method" %1145, ptr %1757, align 8 - %1758 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1748, i64 9 - store %"github.com/goplus/llgo/internal/abi.Method" %1156, ptr %1758, align 8 - %1759 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1748, i64 10 - store %"github.com/goplus/llgo/internal/abi.Method" %1167, ptr %1759, align 8 - %1760 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1748, i64 11 - store %"github.com/goplus/llgo/internal/abi.Method" %1178, ptr %1760, align 8 - %1761 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1748, i64 12 - store %"github.com/goplus/llgo/internal/abi.Method" %1189, ptr %1761, align 8 - %1762 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1748, i64 13 - store %"github.com/goplus/llgo/internal/abi.Method" %1200, ptr %1762, align 8 - %1763 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1748, i64 14 - store %"github.com/goplus/llgo/internal/abi.Method" %1211, ptr %1763, align 8 - %1764 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1748, i64 15 - store %"github.com/goplus/llgo/internal/abi.Method" %1222, ptr %1764, align 8 - %1765 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1748, i64 16 - store %"github.com/goplus/llgo/internal/abi.Method" %1233, ptr %1765, align 8 - %1766 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1748, i64 17 - store %"github.com/goplus/llgo/internal/abi.Method" %1244, ptr %1766, align 8 - %1767 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1748, i64 18 - store %"github.com/goplus/llgo/internal/abi.Method" %1274, ptr %1767, align 8 - %1768 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1748, i64 19 - store %"github.com/goplus/llgo/internal/abi.Method" %1285, ptr %1768, align 8 - %1769 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1748, i64 20 - store %"github.com/goplus/llgo/internal/abi.Method" %1736, ptr %1769, align 8 - %1770 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1748, i64 21 - store %"github.com/goplus/llgo/internal/abi.Method" %1747, ptr %1770, align 8 - %1771 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %1772 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1771, i32 0, i32 0 - store ptr %1748, ptr %1772, align 8 - %1773 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1771, i32 0, i32 1 - store i64 22, ptr %1773, align 4 - %1774 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1771, i32 0, i32 2 - store i64 22, ptr %1774, align 4 - %1775 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1771, align 8 - %1776 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %1777 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1776, i32 0, i32 0 - store ptr @38, ptr %1777, align 8 - %1778 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1776, i32 0, i32 1 - store i64 35, ptr %1778, align 4 - %1779 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1776, align 8 - %1780 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %1781 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1780, i32 0, i32 0 - store ptr @39, ptr %1781, align 8 - %1782 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1780, i32 0, i32 1 - store i64 7, ptr %1782, align 4 - %1783 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1780, align 8 - call void @"github.com/goplus/llgo/internal/runtime.InitNamed"(ptr %876, %"github.com/goplus/llgo/internal/runtime.String" %1779, %"github.com/goplus/llgo/internal/runtime.String" %1783, ptr %1046, { ptr, i64, i64 } zeroinitializer, %"github.com/goplus/llgo/internal/runtime.Slice" %1775) + %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 %864, %"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_89: ; preds = %_llgo_62 - %1784 = call ptr @"github.com/goplus/llgo/internal/runtime.PointerTo"(ptr %876) - store ptr %1784, ptr @"*_llgo_github.com/goplus/llgo/internal/abi.MapType", align 8 + %1769 = call ptr @"github.com/goplus/llgo/internal/runtime.PointerTo"(ptr %864) + store ptr %1769, ptr @"*_llgo_github.com/goplus/llgo/internal/abi.MapType", align 8 br label %_llgo_90 _llgo_90: ; preds = %_llgo_89, %_llgo_62 - %1785 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/internal/abi.MapType", align 8 - %1786 = load ptr, ptr @"_llgo_func$d-NlqnjcQnaMjsBQY7qh2SWQmHb0XIigoceXdiJ8YT4", align 8 - %1787 = icmp eq ptr %1786, null - br i1 %1787, label %_llgo_91, label %_llgo_92 + %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 - %1788 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 0) - %1789 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %1790 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1789, i32 0, i32 0 - store ptr %1788, ptr %1790, align 8 - %1791 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1789, i32 0, i32 1 - store i64 0, ptr %1791, align 4 - %1792 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1789, i32 0, i32 2 - store i64 0, ptr %1792, align 4 - %1793 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1789, align 8 - %1794 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 8) - %1795 = getelementptr ptr, ptr %1794, i64 0 - store ptr %1785, ptr %1795, align 8 - %1796 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %1797 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1796, i32 0, i32 0 - store ptr %1794, ptr %1797, align 8 - %1798 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1796, i32 0, i32 1 - store i64 1, ptr %1798, align 4 - %1799 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1796, i32 0, i32 2 - store i64 1, ptr %1799, align 4 - %1800 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1796, align 8 - %1801 = call ptr @"github.com/goplus/llgo/internal/runtime.Func"(%"github.com/goplus/llgo/internal/runtime.Slice" %1793, %"github.com/goplus/llgo/internal/runtime.Slice" %1800, i1 false) - store ptr %1801, ptr @"_llgo_func$d-NlqnjcQnaMjsBQY7qh2SWQmHb0XIigoceXdiJ8YT4", align 8 + %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) + store ptr %1786, ptr @"_llgo_func$d-NlqnjcQnaMjsBQY7qh2SWQmHb0XIigoceXdiJ8YT4", align 8 br label %_llgo_92 _llgo_92: ; preds = %_llgo_91, %_llgo_90 - %1802 = load ptr, ptr @"_llgo_func$d-NlqnjcQnaMjsBQY7qh2SWQmHb0XIigoceXdiJ8YT4", align 8 - %1803 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 - %1804 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1803, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %873, ptr %1804, align 8 - %1805 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1803, i32 0, i32 1 - store ptr %1802, ptr %1805, align 8 - %1806 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1803, i32 0, i32 2 - store ptr @"github.com/goplus/llgo/internal/abi.(*InterfaceType).MapType", ptr %1806, align 8 - %1807 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1803, i32 0, i32 3 - store ptr @"github.com/goplus/llgo/internal/abi.(*InterfaceType).MapType", ptr %1807, align 8 - %1808 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %1803, align 8 - %1809 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %1810 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1809, i32 0, i32 0 - store ptr @51, ptr %1810, align 8 - %1811 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1809, i32 0, i32 1 - store i64 8, ptr %1811, align 4 - %1812 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1809, align 8 - %1813 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 - %1814 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 - %1815 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1814, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %1812, ptr %1815, align 8 - %1816 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1814, i32 0, i32 1 - store ptr %1813, ptr %1816, align 8 - %1817 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1814, i32 0, i32 2 - store ptr @"github.com/goplus/llgo/internal/abi.(*InterfaceType).Pointers", ptr %1817, align 8 - %1818 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1814, i32 0, i32 3 - store ptr @"github.com/goplus/llgo/internal/abi.(*InterfaceType).Pointers", ptr %1818, align 8 - %1819 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %1814, align 8 - %1820 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %1821 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1820, i32 0, i32 0 - store ptr @53, ptr %1821, align 8 - %1822 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1820, i32 0, i32 1 - store i64 4, ptr %1822, align 4 - %1823 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1820, align 8 - %1824 = load ptr, ptr @"_llgo_func$1kITCsyu7hFLMxHLR7kDlvu4SOra_HtrtdFUQH9P13s", align 8 - %1825 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 - %1826 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1825, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %1823, ptr %1826, align 8 - %1827 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1825, i32 0, i32 1 - store ptr %1824, ptr %1827, align 8 - %1828 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1825, i32 0, i32 2 - store ptr @"github.com/goplus/llgo/internal/abi.(*InterfaceType).Size", ptr %1828, align 8 - %1829 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1825, i32 0, i32 3 - store ptr @"github.com/goplus/llgo/internal/abi.(*InterfaceType).Size", ptr %1829, align 8 - %1830 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %1825, align 8 - %1831 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %1832 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1831, i32 0, i32 0 - store ptr @37, ptr %1832, align 8 - %1833 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1831, i32 0, i32 1 - store i64 6, ptr %1833, align 4 - %1834 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1831, align 8 - %1835 = load ptr, ptr @"_llgo_func$zNDVRsWTIpUPKouNUS805RGX--IV9qVK8B31IZbg5to", align 8 - %1836 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 - %1837 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1836, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %1834, ptr %1837, align 8 - %1838 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1836, i32 0, i32 1 - store ptr %1835, ptr %1838, align 8 - %1839 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1836, i32 0, i32 2 - store ptr @"github.com/goplus/llgo/internal/abi.(*InterfaceType).String", ptr %1839, align 8 - %1840 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1836, i32 0, i32 3 - store ptr @"github.com/goplus/llgo/internal/abi.(*InterfaceType).String", ptr %1840, align 8 - %1841 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %1836, align 8 - %1842 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %1843 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1842, i32 0, i32 0 - store ptr @54, ptr %1843, align 8 - %1844 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1842, i32 0, i32 1 - store i64 10, ptr %1844, align 4 - %1845 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1842, align 8 - %1846 = load ptr, ptr @"_llgo_func$qiNnn6Cbm3GtDp4gDI4U_DRV3h8zlz91s9jrfOXC--U", align 8 - %1847 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 - %1848 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1847, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %1845, ptr %1848, align 8 - %1849 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1847, i32 0, i32 1 - store ptr %1846, ptr %1849, align 8 - %1850 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1847, i32 0, i32 2 - store ptr @"github.com/goplus/llgo/internal/abi.(*InterfaceType).StructType", ptr %1850, align 8 - %1851 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1847, i32 0, i32 3 - store ptr @"github.com/goplus/llgo/internal/abi.(*InterfaceType).StructType", ptr %1851, align 8 - %1852 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %1847, align 8 - %1853 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %1854 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1853, i32 0, i32 0 - store ptr @56, ptr %1854, align 8 - %1855 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1853, i32 0, i32 1 - store i64 8, ptr %1855, align 4 - %1856 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1853, align 8 - %1857 = load ptr, ptr @"_llgo_func$DbD4nZv_bjE4tH8hh-VfAjMXMpNfIsMlLJJJPKupp34", align 8 - %1858 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 - %1859 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1858, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %1856, ptr %1859, align 8 - %1860 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1858, i32 0, i32 1 - store ptr %1857, ptr %1860, align 8 - %1861 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1858, i32 0, i32 2 - store ptr @"github.com/goplus/llgo/internal/abi.(*InterfaceType).Uncommon", ptr %1861, align 8 - %1862 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1858, i32 0, i32 3 - store ptr @"github.com/goplus/llgo/internal/abi.(*InterfaceType).Uncommon", ptr %1862, align 8 - %1863 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %1858, align 8 - %1864 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 720) - %1865 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1864, i64 0 - store %"github.com/goplus/llgo/internal/abi.Method" %657, ptr %1865, align 8 - %1866 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1864, i64 1 - store %"github.com/goplus/llgo/internal/abi.Method" %668, ptr %1866, align 8 - %1867 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1864, i64 2 - store %"github.com/goplus/llgo/internal/abi.Method" %679, ptr %1867, align 8 - %1868 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1864, i64 3 - store %"github.com/goplus/llgo/internal/abi.Method" %690, ptr %1868, align 8 - %1869 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1864, i64 4 - store %"github.com/goplus/llgo/internal/abi.Method" %701, ptr %1869, align 8 - %1870 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1864, i64 5 - store %"github.com/goplus/llgo/internal/abi.Method" %712, ptr %1870, align 8 - %1871 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1864, i64 6 - store %"github.com/goplus/llgo/internal/abi.Method" %723, ptr %1871, align 8 - %1872 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1864, i64 7 - store %"github.com/goplus/llgo/internal/abi.Method" %734, ptr %1872, align 8 - %1873 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1864, i64 8 - store %"github.com/goplus/llgo/internal/abi.Method" %745, ptr %1873, align 8 - %1874 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1864, i64 9 - store %"github.com/goplus/llgo/internal/abi.Method" %756, ptr %1874, align 8 - %1875 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1864, i64 10 - store %"github.com/goplus/llgo/internal/abi.Method" %858, ptr %1875, align 8 - %1876 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1864, i64 11 - store %"github.com/goplus/llgo/internal/abi.Method" %869, ptr %1876, align 8 - %1877 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1864, i64 12 - store %"github.com/goplus/llgo/internal/abi.Method" %1808, ptr %1877, align 8 - %1878 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1864, i64 13 - store %"github.com/goplus/llgo/internal/abi.Method" %1819, ptr %1878, align 8 - %1879 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1864, i64 14 - store %"github.com/goplus/llgo/internal/abi.Method" %1830, ptr %1879, align 8 - %1880 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1864, i64 15 - store %"github.com/goplus/llgo/internal/abi.Method" %1841, ptr %1880, align 8 - %1881 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1864, i64 16 - store %"github.com/goplus/llgo/internal/abi.Method" %1852, ptr %1881, align 8 - %1882 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1864, i64 17 - store %"github.com/goplus/llgo/internal/abi.Method" %1863, ptr %1882, align 8 - %1883 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %1884 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1883, i32 0, i32 0 - store ptr %1864, ptr %1884, align 8 - %1885 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1883, i32 0, i32 1 - store i64 18, ptr %1885, align 4 - %1886 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1883, i32 0, i32 2 - store i64 18, ptr %1886, align 4 - %1887 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1883, align 8 - %1888 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %1889 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1888, i32 0, i32 0 - store ptr @38, ptr %1889, align 8 - %1890 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1888, i32 0, i32 1 - store i64 35, ptr %1890, align 4 - %1891 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1888, align 8 - %1892 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %1893 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1892, i32 0, i32 0 - store ptr @32, ptr %1893, align 8 - %1894 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1892, i32 0, i32 1 - store i64 13, ptr %1894, align 4 - %1895 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1892, align 8 - call void @"github.com/goplus/llgo/internal/runtime.InitNamed"(ptr %599, %"github.com/goplus/llgo/internal/runtime.String" %1891, %"github.com/goplus/llgo/internal/runtime.String" %1895, ptr %646, { ptr, i64, i64 } zeroinitializer, %"github.com/goplus/llgo/internal/runtime.Slice" %1887) + %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 %593, %"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 - %1896 = call ptr @"github.com/goplus/llgo/internal/runtime.PointerTo"(ptr %599) - store ptr %1896, ptr @"*_llgo_github.com/goplus/llgo/internal/abi.InterfaceType", align 8 + %1881 = call ptr @"github.com/goplus/llgo/internal/runtime.PointerTo"(ptr %593) + 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 - %1897 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/internal/abi.InterfaceType", align 8 - %1898 = load ptr, ptr @"_llgo_func$1QmforOaCy2fBAssC2y1FWCCT6fpq9RKwP2j2HIASY8", align 8 - %1899 = icmp eq ptr %1898, null - br i1 %1899, label %_llgo_95, label %_llgo_96 + %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 - %1900 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 0) - %1901 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %1902 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1901, i32 0, i32 0 - store ptr %1900, ptr %1902, align 8 - %1903 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1901, i32 0, i32 1 - store i64 0, ptr %1903, align 4 - %1904 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1901, i32 0, i32 2 - store i64 0, ptr %1904, align 4 - %1905 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1901, align 8 - %1906 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 8) - %1907 = getelementptr ptr, ptr %1906, i64 0 - store ptr %1897, ptr %1907, align 8 - %1908 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %1909 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1908, i32 0, i32 0 - store ptr %1906, ptr %1909, align 8 - %1910 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1908, i32 0, i32 1 - store i64 1, ptr %1910, align 4 - %1911 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1908, i32 0, i32 2 - store i64 1, ptr %1911, align 4 - %1912 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %1908, align 8 - %1913 = call ptr @"github.com/goplus/llgo/internal/runtime.Func"(%"github.com/goplus/llgo/internal/runtime.Slice" %1905, %"github.com/goplus/llgo/internal/runtime.Slice" %1912, i1 false) - store ptr %1913, ptr @"_llgo_func$1QmforOaCy2fBAssC2y1FWCCT6fpq9RKwP2j2HIASY8", align 8 + %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) + store ptr %1898, ptr @"_llgo_func$1QmforOaCy2fBAssC2y1FWCCT6fpq9RKwP2j2HIASY8", align 8 br label %_llgo_96 _llgo_96: ; preds = %_llgo_95, %_llgo_94 - %1914 = load ptr, ptr @"_llgo_func$1QmforOaCy2fBAssC2y1FWCCT6fpq9RKwP2j2HIASY8", align 8 - %1915 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 - %1916 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1915, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %596, ptr %1916, align 8 - %1917 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1915, i32 0, i32 1 - store ptr %1914, ptr %1917, align 8 - %1918 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1915, i32 0, i32 2 - store ptr @"github.com/goplus/llgo/internal/abi.(*FuncType).InterfaceType", ptr %1918, align 8 - %1919 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1915, i32 0, i32 3 - store ptr @"github.com/goplus/llgo/internal/abi.(*FuncType).InterfaceType", ptr %1919, align 8 - %1920 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %1915, align 8 - %1921 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %1922 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1921, i32 0, i32 0 - store ptr @35, ptr %1922, align 8 - %1923 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1921, i32 0, i32 1 - store i64 13, ptr %1923, align 4 - %1924 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1921, align 8 - %1925 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 - %1926 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 - %1927 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1926, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %1924, ptr %1927, align 8 - %1928 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1926, i32 0, i32 1 - store ptr %1925, ptr %1928, align 8 - %1929 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1926, i32 0, i32 2 - store ptr @"github.com/goplus/llgo/internal/abi.(*FuncType).IsDirectIface", ptr %1929, align 8 - %1930 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1926, i32 0, i32 3 - store ptr @"github.com/goplus/llgo/internal/abi.(*FuncType).IsDirectIface", ptr %1930, align 8 - %1931 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %1926, align 8 - %1932 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %1933 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1932, i32 0, i32 0 - store ptr @36, ptr %1933, align 8 - %1934 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1932, i32 0, i32 1 - store i64 4, ptr %1934, align 4 - %1935 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1932, align 8 - %1936 = load ptr, ptr @"_llgo_func$ntUE0UmVAWPS2O7GpCCGszSn-XnjHJntZZ2jYtwbFXI", align 8 - %1937 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 - %1938 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1937, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %1935, ptr %1938, align 8 - %1939 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1937, i32 0, i32 1 - store ptr %1936, ptr %1939, align 8 - %1940 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1937, i32 0, i32 2 - store ptr @"github.com/goplus/llgo/internal/abi.(*FuncType).Kind", ptr %1940, align 8 - %1941 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1937, i32 0, i32 3 - store ptr @"github.com/goplus/llgo/internal/abi.(*FuncType).Kind", ptr %1941, align 8 - %1942 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %1937, align 8 - %1943 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %1944 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1943, i32 0, i32 0 - store ptr @24, ptr %1944, align 8 - %1945 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1943, i32 0, i32 1 - store i64 3, ptr %1945, align 4 - %1946 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1943, align 8 - %1947 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 - %1948 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 - %1949 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1948, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %1946, ptr %1949, align 8 - %1950 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1948, i32 0, i32 1 - store ptr %1947, ptr %1950, align 8 - %1951 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1948, i32 0, i32 2 - store ptr @"github.com/goplus/llgo/internal/abi.(*FuncType).Len", ptr %1951, align 8 - %1952 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1948, i32 0, i32 3 - store ptr @"github.com/goplus/llgo/internal/abi.(*FuncType).Len", ptr %1952, align 8 - %1953 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %1948, align 8 - %1954 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %1955 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1954, i32 0, i32 0 - store ptr @39, ptr %1955, align 8 - %1956 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1954, i32 0, i32 1 - store i64 7, ptr %1956, align 4 - %1957 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1954, align 8 - %1958 = load ptr, ptr @"_llgo_func$d-NlqnjcQnaMjsBQY7qh2SWQmHb0XIigoceXdiJ8YT4", align 8 - %1959 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 - %1960 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1959, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %1957, ptr %1960, align 8 - %1961 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1959, i32 0, i32 1 - store ptr %1958, ptr %1961, align 8 - %1962 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1959, i32 0, i32 2 - store ptr @"github.com/goplus/llgo/internal/abi.(*FuncType).MapType", ptr %1962, align 8 - %1963 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1959, i32 0, i32 3 - store ptr @"github.com/goplus/llgo/internal/abi.(*FuncType).MapType", ptr %1963, align 8 - %1964 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %1959, align 8 - %1965 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %1966 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1965, i32 0, i32 0 - store ptr @51, ptr %1966, align 8 - %1967 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1965, i32 0, i32 1 - store i64 8, ptr %1967, align 4 - %1968 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1965, align 8 - %1969 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 - %1970 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 - %1971 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1970, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %1968, ptr %1971, align 8 - %1972 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1970, i32 0, i32 1 - store ptr %1969, ptr %1972, align 8 - %1973 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1970, i32 0, i32 2 - store ptr @"github.com/goplus/llgo/internal/abi.(*FuncType).Pointers", ptr %1973, align 8 - %1974 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1970, i32 0, i32 3 - store ptr @"github.com/goplus/llgo/internal/abi.(*FuncType).Pointers", ptr %1974, align 8 - %1975 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %1970, align 8 - %1976 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %1977 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1976, i32 0, i32 0 - store ptr @53, ptr %1977, align 8 - %1978 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1976, i32 0, i32 1 - store i64 4, ptr %1978, align 4 - %1979 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1976, align 8 - %1980 = load ptr, ptr @"_llgo_func$1kITCsyu7hFLMxHLR7kDlvu4SOra_HtrtdFUQH9P13s", align 8 - %1981 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 - %1982 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1981, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %1979, ptr %1982, align 8 - %1983 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1981, i32 0, i32 1 - store ptr %1980, ptr %1983, align 8 - %1984 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1981, i32 0, i32 2 - store ptr @"github.com/goplus/llgo/internal/abi.(*FuncType).Size", ptr %1984, align 8 - %1985 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1981, i32 0, i32 3 - store ptr @"github.com/goplus/llgo/internal/abi.(*FuncType).Size", ptr %1985, align 8 - %1986 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %1981, align 8 - %1987 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %1988 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1987, i32 0, i32 0 - store ptr @37, ptr %1988, align 8 - %1989 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1987, i32 0, i32 1 - store i64 6, ptr %1989, align 4 - %1990 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1987, align 8 - %1991 = load ptr, ptr @"_llgo_func$zNDVRsWTIpUPKouNUS805RGX--IV9qVK8B31IZbg5to", align 8 - %1992 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 - %1993 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1992, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %1990, ptr %1993, align 8 - %1994 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1992, i32 0, i32 1 - store ptr %1991, ptr %1994, align 8 - %1995 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1992, i32 0, i32 2 - store ptr @"github.com/goplus/llgo/internal/abi.(*FuncType).String", ptr %1995, align 8 - %1996 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %1992, i32 0, i32 3 - store ptr @"github.com/goplus/llgo/internal/abi.(*FuncType).String", ptr %1996, align 8 - %1997 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %1992, align 8 - %1998 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %1999 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1998, i32 0, i32 0 - store ptr @54, ptr %1999, align 8 - %2000 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %1998, i32 0, i32 1 - store i64 10, ptr %2000, align 4 - %2001 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1998, align 8 - %2002 = load ptr, ptr @"_llgo_func$qiNnn6Cbm3GtDp4gDI4U_DRV3h8zlz91s9jrfOXC--U", align 8 - %2003 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 - %2004 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2003, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %2001, ptr %2004, align 8 - %2005 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2003, i32 0, i32 1 - store ptr %2002, ptr %2005, align 8 - %2006 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2003, i32 0, i32 2 - store ptr @"github.com/goplus/llgo/internal/abi.(*FuncType).StructType", ptr %2006, align 8 - %2007 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2003, i32 0, i32 3 - store ptr @"github.com/goplus/llgo/internal/abi.(*FuncType).StructType", ptr %2007, align 8 - %2008 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %2003, align 8 - %2009 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %2010 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2009, i32 0, i32 0 - store ptr @56, ptr %2010, align 8 - %2011 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2009, i32 0, i32 1 - store i64 8, ptr %2011, align 4 - %2012 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %2009, align 8 - %2013 = load ptr, ptr @"_llgo_func$DbD4nZv_bjE4tH8hh-VfAjMXMpNfIsMlLJJJPKupp34", align 8 - %2014 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 - %2015 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2014, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %2012, ptr %2015, align 8 - %2016 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2014, i32 0, i32 1 - store ptr %2013, ptr %2016, align 8 - %2017 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2014, i32 0, i32 2 - store ptr @"github.com/goplus/llgo/internal/abi.(*FuncType).Uncommon", ptr %2017, align 8 - %2018 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2014, i32 0, i32 3 - store ptr @"github.com/goplus/llgo/internal/abi.(*FuncType).Uncommon", ptr %2018, align 8 - %2019 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %2014, align 8 - %2020 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %2021 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2020, i32 0, i32 0 - store ptr @62, ptr %2021, align 8 - %2022 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2020, i32 0, i32 1 - store i64 8, ptr %2022, align 4 - %2023 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %2020, align 8 - %2024 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 - %2025 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 - %2026 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2025, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %2023, ptr %2026, align 8 - %2027 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2025, i32 0, i32 1 - store ptr %2024, ptr %2027, align 8 - %2028 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2025, i32 0, i32 2 - store ptr @"github.com/goplus/llgo/internal/abi.(*FuncType).Variadic", ptr %2028, align 8 - %2029 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2025, i32 0, i32 3 - store ptr @"github.com/goplus/llgo/internal/abi.(*FuncType).Variadic", ptr %2029, align 8 - %2030 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %2025, align 8 - %2031 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 760) - %2032 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2031, i64 0 - store %"github.com/goplus/llgo/internal/abi.Method" %496, ptr %2032, align 8 - %2033 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2031, i64 1 - store %"github.com/goplus/llgo/internal/abi.Method" %507, ptr %2033, align 8 - %2034 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2031, i64 2 - store %"github.com/goplus/llgo/internal/abi.Method" %518, ptr %2034, align 8 - %2035 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2031, i64 3 - store %"github.com/goplus/llgo/internal/abi.Method" %529, ptr %2035, align 8 - %2036 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2031, i64 4 - store %"github.com/goplus/llgo/internal/abi.Method" %540, ptr %2036, align 8 - %2037 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2031, i64 5 - store %"github.com/goplus/llgo/internal/abi.Method" %551, ptr %2037, align 8 - %2038 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2031, i64 6 - store %"github.com/goplus/llgo/internal/abi.Method" %581, ptr %2038, align 8 - %2039 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2031, i64 7 - store %"github.com/goplus/llgo/internal/abi.Method" %592, ptr %2039, align 8 - %2040 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2031, i64 8 - store %"github.com/goplus/llgo/internal/abi.Method" %1920, ptr %2040, align 8 - %2041 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2031, i64 9 - store %"github.com/goplus/llgo/internal/abi.Method" %1931, ptr %2041, align 8 - %2042 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2031, i64 10 - store %"github.com/goplus/llgo/internal/abi.Method" %1942, ptr %2042, align 8 - %2043 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2031, i64 11 - store %"github.com/goplus/llgo/internal/abi.Method" %1953, ptr %2043, align 8 - %2044 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2031, i64 12 - store %"github.com/goplus/llgo/internal/abi.Method" %1964, ptr %2044, align 8 - %2045 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2031, i64 13 - store %"github.com/goplus/llgo/internal/abi.Method" %1975, ptr %2045, align 8 - %2046 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2031, i64 14 - store %"github.com/goplus/llgo/internal/abi.Method" %1986, ptr %2046, align 8 - %2047 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2031, i64 15 - store %"github.com/goplus/llgo/internal/abi.Method" %1997, ptr %2047, align 8 - %2048 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2031, i64 16 - store %"github.com/goplus/llgo/internal/abi.Method" %2008, ptr %2048, align 8 - %2049 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2031, i64 17 - store %"github.com/goplus/llgo/internal/abi.Method" %2019, ptr %2049, align 8 - %2050 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2031, i64 18 - store %"github.com/goplus/llgo/internal/abi.Method" %2030, ptr %2050, align 8 - %2051 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %2052 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %2051, i32 0, i32 0 - store ptr %2031, ptr %2052, align 8 - %2053 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %2051, i32 0, i32 1 - store i64 19, ptr %2053, align 4 - %2054 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %2051, i32 0, i32 2 - store i64 19, ptr %2054, align 4 - %2055 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %2051, align 8 - %2056 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %2057 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2056, i32 0, i32 0 - store ptr @38, ptr %2057, align 8 - %2058 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2056, i32 0, i32 1 - store i64 35, ptr %2058, align 4 - %2059 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %2056, align 8 - %2060 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %2061 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2060, i32 0, i32 0 - store ptr @27, ptr %2061, align 8 - %2062 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2060, i32 0, i32 1 - store i64 8, ptr %2062, align 4 - %2063 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %2060, align 8 - call void @"github.com/goplus/llgo/internal/runtime.InitNamed"(ptr %437, %"github.com/goplus/llgo/internal/runtime.String" %2059, %"github.com/goplus/llgo/internal/runtime.String" %2063, ptr %485, { ptr, i64, i64 } zeroinitializer, %"github.com/goplus/llgo/internal/runtime.Slice" %2055) + %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 + %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 + %2043 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2041, i32 0, i32 1 + store i64 35, 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 %431, %"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 _llgo_97: ; preds = %_llgo_34 - %2064 = call ptr @"github.com/goplus/llgo/internal/runtime.PointerTo"(ptr %437) - store ptr %2064, ptr @"*_llgo_github.com/goplus/llgo/internal/abi.FuncType", align 8 + %2049 = call ptr @"github.com/goplus/llgo/internal/runtime.PointerTo"(ptr %431) + store ptr %2049, ptr @"*_llgo_github.com/goplus/llgo/internal/abi.FuncType", align 8 br label %_llgo_98 _llgo_98: ; preds = %_llgo_97, %_llgo_34 - %2065 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/internal/abi.FuncType", align 8 - %2066 = load ptr, ptr @"_llgo_func$DsoxgOnxqV7tLvokF3AA14v1gtHsHaThoC8Q_XGcQww", align 8 - %2067 = icmp eq ptr %2066, null - br i1 %2067, label %_llgo_99, label %_llgo_100 + %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 - %2068 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 0) - %2069 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %2070 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %2069, i32 0, i32 0 - store ptr %2068, ptr %2070, align 8 - %2071 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %2069, i32 0, i32 1 - store i64 0, ptr %2071, align 4 - %2072 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %2069, i32 0, i32 2 - store i64 0, ptr %2072, align 4 - %2073 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %2069, align 8 - %2074 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 8) - %2075 = getelementptr ptr, ptr %2074, i64 0 - store ptr %2065, ptr %2075, align 8 - %2076 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %2077 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %2076, i32 0, i32 0 - store ptr %2074, ptr %2077, align 8 - %2078 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %2076, i32 0, i32 1 - store i64 1, ptr %2078, align 4 - %2079 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %2076, i32 0, i32 2 - store i64 1, ptr %2079, align 4 - %2080 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %2076, align 8 - %2081 = call ptr @"github.com/goplus/llgo/internal/runtime.Func"(%"github.com/goplus/llgo/internal/runtime.Slice" %2073, %"github.com/goplus/llgo/internal/runtime.Slice" %2080, i1 false) - store ptr %2081, ptr @"_llgo_func$DsoxgOnxqV7tLvokF3AA14v1gtHsHaThoC8Q_XGcQww", align 8 + %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) + store ptr %2066, ptr @"_llgo_func$DsoxgOnxqV7tLvokF3AA14v1gtHsHaThoC8Q_XGcQww", align 8 br label %_llgo_100 _llgo_100: ; preds = %_llgo_99, %_llgo_98 - %2082 = load ptr, ptr @"_llgo_func$DsoxgOnxqV7tLvokF3AA14v1gtHsHaThoC8Q_XGcQww", align 8 - %2083 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 - %2084 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2083, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %434, ptr %2084, align 8 - %2085 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2083, i32 0, i32 1 - store ptr %2082, ptr %2085, align 8 - %2086 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2083, i32 0, i32 2 - store ptr @"github.com/goplus/llgo/internal/abi.(*ArrayType).FuncType", ptr %2086, align 8 - %2087 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2083, i32 0, i32 3 - store ptr @"github.com/goplus/llgo/internal/abi.(*ArrayType).FuncType", ptr %2087, align 8 - %2088 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %2083, align 8 - %2089 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %2090 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2089, i32 0, i32 0 - store ptr @30, ptr %2090, align 8 - %2091 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2089, i32 0, i32 1 - store i64 7, ptr %2091, align 4 - %2092 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %2089, align 8 - %2093 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 - %2094 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 - %2095 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2094, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %2092, ptr %2095, align 8 - %2096 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2094, i32 0, i32 1 - store ptr %2093, ptr %2096, align 8 - %2097 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2094, i32 0, i32 2 - store ptr @"github.com/goplus/llgo/internal/abi.(*ArrayType).HasName", ptr %2097, align 8 - %2098 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2094, i32 0, i32 3 - store ptr @"github.com/goplus/llgo/internal/abi.(*ArrayType).HasName", ptr %2098, align 8 - %2099 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %2094, align 8 - %2100 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %2101 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2100, i32 0, i32 0 - store ptr @31, ptr %2101, align 8 - %2102 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2100, i32 0, i32 1 - store i64 10, ptr %2102, align 4 - %2103 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %2100, align 8 - %2104 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 - %2105 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 - %2106 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2105, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %2103, ptr %2106, align 8 - %2107 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2105, i32 0, i32 1 - store ptr %2104, ptr %2107, align 8 - %2108 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2105, i32 0, i32 2 - store ptr @"github.com/goplus/llgo/internal/abi.(*ArrayType).IfaceIndir", ptr %2108, align 8 - %2109 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2105, i32 0, i32 3 - store ptr @"github.com/goplus/llgo/internal/abi.(*ArrayType).IfaceIndir", ptr %2109, align 8 - %2110 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %2105, align 8 - %2111 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %2112 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2111, i32 0, i32 0 - store ptr @32, ptr %2112, align 8 - %2113 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2111, i32 0, i32 1 - store i64 13, ptr %2113, align 4 - %2114 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %2111, align 8 - %2115 = load ptr, ptr @"_llgo_func$1QmforOaCy2fBAssC2y1FWCCT6fpq9RKwP2j2HIASY8", align 8 - %2116 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 - %2117 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2116, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %2114, ptr %2117, align 8 - %2118 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2116, i32 0, i32 1 - store ptr %2115, ptr %2118, align 8 - %2119 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2116, i32 0, i32 2 - store ptr @"github.com/goplus/llgo/internal/abi.(*ArrayType).InterfaceType", ptr %2119, align 8 - %2120 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2116, i32 0, i32 3 - store ptr @"github.com/goplus/llgo/internal/abi.(*ArrayType).InterfaceType", ptr %2120, align 8 - %2121 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %2116, align 8 - %2122 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %2123 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2122, i32 0, i32 0 - store ptr @35, ptr %2123, align 8 - %2124 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2122, i32 0, i32 1 - store i64 13, ptr %2124, align 4 - %2125 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %2122, align 8 - %2126 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 - %2127 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 - %2128 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2127, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %2125, ptr %2128, align 8 - %2129 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2127, i32 0, i32 1 - store ptr %2126, ptr %2129, align 8 - %2130 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2127, i32 0, i32 2 - store ptr @"github.com/goplus/llgo/internal/abi.(*ArrayType).IsDirectIface", ptr %2130, align 8 - %2131 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2127, i32 0, i32 3 - store ptr @"github.com/goplus/llgo/internal/abi.(*ArrayType).IsDirectIface", ptr %2131, align 8 - %2132 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %2127, align 8 - %2133 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %2134 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2133, i32 0, i32 0 - store ptr @36, ptr %2134, align 8 - %2135 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2133, i32 0, i32 1 - store i64 4, ptr %2135, align 4 - %2136 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %2133, align 8 - %2137 = load ptr, ptr @"_llgo_func$ntUE0UmVAWPS2O7GpCCGszSn-XnjHJntZZ2jYtwbFXI", align 8 - %2138 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 - %2139 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2138, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %2136, ptr %2139, align 8 - %2140 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2138, i32 0, i32 1 - store ptr %2137, ptr %2140, align 8 - %2141 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2138, i32 0, i32 2 - store ptr @"github.com/goplus/llgo/internal/abi.(*ArrayType).Kind", ptr %2141, align 8 - %2142 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2138, i32 0, i32 3 - store ptr @"github.com/goplus/llgo/internal/abi.(*ArrayType).Kind", ptr %2142, align 8 - %2143 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %2138, align 8 - %2144 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %2145 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2144, i32 0, i32 0 - store ptr @39, ptr %2145, align 8 - %2146 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2144, i32 0, i32 1 - store i64 7, ptr %2146, align 4 - %2147 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %2144, align 8 - %2148 = load ptr, ptr @"_llgo_func$d-NlqnjcQnaMjsBQY7qh2SWQmHb0XIigoceXdiJ8YT4", align 8 - %2149 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 - %2150 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2149, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %2147, ptr %2150, align 8 - %2151 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2149, i32 0, i32 1 - store ptr %2148, ptr %2151, align 8 - %2152 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2149, i32 0, i32 2 - store ptr @"github.com/goplus/llgo/internal/abi.(*ArrayType).MapType", ptr %2152, align 8 - %2153 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2149, i32 0, i32 3 - store ptr @"github.com/goplus/llgo/internal/abi.(*ArrayType).MapType", ptr %2153, align 8 - %2154 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %2149, 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 @51, ptr %2156, align 8 - %2157 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2155, i32 0, i32 1 - store i64 8, ptr %2157, align 4 - %2158 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %2155, align 8 - %2159 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 - %2160 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 - %2161 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2160, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %2158, ptr %2161, align 8 - %2162 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2160, i32 0, i32 1 - store ptr %2159, ptr %2162, align 8 - %2163 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2160, i32 0, i32 2 - store ptr @"github.com/goplus/llgo/internal/abi.(*ArrayType).Pointers", ptr %2163, align 8 - %2164 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2160, i32 0, i32 3 - store ptr @"github.com/goplus/llgo/internal/abi.(*ArrayType).Pointers", ptr %2164, align 8 - %2165 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %2160, align 8 - %2166 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %2167 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2166, i32 0, i32 0 - store ptr @53, ptr %2167, align 8 - %2168 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2166, i32 0, i32 1 - store i64 4, ptr %2168, align 4 - %2169 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %2166, align 8 - %2170 = load ptr, ptr @"_llgo_func$1kITCsyu7hFLMxHLR7kDlvu4SOra_HtrtdFUQH9P13s", align 8 - %2171 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 - %2172 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2171, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %2169, ptr %2172, align 8 - %2173 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2171, i32 0, i32 1 - store ptr %2170, ptr %2173, align 8 - %2174 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2171, i32 0, i32 2 - store ptr @"github.com/goplus/llgo/internal/abi.(*ArrayType).Size", ptr %2174, align 8 - %2175 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2171, i32 0, i32 3 - store ptr @"github.com/goplus/llgo/internal/abi.(*ArrayType).Size", ptr %2175, align 8 - %2176 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %2171, align 8 - %2177 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %2178 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2177, i32 0, i32 0 - store ptr @37, ptr %2178, align 8 - %2179 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2177, i32 0, i32 1 - store i64 6, ptr %2179, align 4 - %2180 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %2177, align 8 - %2181 = load ptr, ptr @"_llgo_func$zNDVRsWTIpUPKouNUS805RGX--IV9qVK8B31IZbg5to", align 8 - %2182 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 - %2183 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2182, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %2180, ptr %2183, align 8 - %2184 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2182, i32 0, i32 1 - store ptr %2181, ptr %2184, align 8 - %2185 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2182, i32 0, i32 2 - store ptr @"github.com/goplus/llgo/internal/abi.(*ArrayType).String", ptr %2185, align 8 - %2186 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2182, i32 0, i32 3 - store ptr @"github.com/goplus/llgo/internal/abi.(*ArrayType).String", ptr %2186, align 8 - %2187 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %2182, align 8 - %2188 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %2189 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2188, i32 0, i32 0 - store ptr @54, ptr %2189, align 8 - %2190 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2188, i32 0, i32 1 - store i64 10, ptr %2190, align 4 - %2191 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %2188, align 8 - %2192 = load ptr, ptr @"_llgo_func$qiNnn6Cbm3GtDp4gDI4U_DRV3h8zlz91s9jrfOXC--U", align 8 - %2193 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 - %2194 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2193, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %2191, ptr %2194, align 8 - %2195 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2193, i32 0, i32 1 - store ptr %2192, ptr %2195, align 8 - %2196 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2193, i32 0, i32 2 - store ptr @"github.com/goplus/llgo/internal/abi.(*ArrayType).StructType", ptr %2196, align 8 - %2197 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2193, i32 0, i32 3 - store ptr @"github.com/goplus/llgo/internal/abi.(*ArrayType).StructType", ptr %2197, align 8 - %2198 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %2193, align 8 - %2199 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %2200 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2199, i32 0, i32 0 - store ptr @56, ptr %2200, align 8 - %2201 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2199, i32 0, i32 1 - store i64 8, ptr %2201, align 4 - %2202 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %2199, align 8 - %2203 = load ptr, ptr @"_llgo_func$DbD4nZv_bjE4tH8hh-VfAjMXMpNfIsMlLJJJPKupp34", align 8 - %2204 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 - %2205 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2204, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %2202, ptr %2205, align 8 - %2206 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2204, i32 0, i32 1 - store ptr %2203, ptr %2206, align 8 - %2207 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2204, i32 0, i32 2 - store ptr @"github.com/goplus/llgo/internal/abi.(*ArrayType).Uncommon", ptr %2207, align 8 - %2208 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2204, i32 0, i32 3 - store ptr @"github.com/goplus/llgo/internal/abi.(*ArrayType).Uncommon", ptr %2208, align 8 - %2209 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %2204, align 8 - %2210 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 640) - %2211 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2210, i64 0 - store %"github.com/goplus/llgo/internal/abi.Method" %375, ptr %2211, align 8 - %2212 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2210, i64 1 - store %"github.com/goplus/llgo/internal/abi.Method" %386, ptr %2212, align 8 - %2213 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2210, i64 2 - store %"github.com/goplus/llgo/internal/abi.Method" %419, ptr %2213, align 8 - %2214 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2210, i64 3 - store %"github.com/goplus/llgo/internal/abi.Method" %430, ptr %2214, align 8 - %2215 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2210, i64 4 - store %"github.com/goplus/llgo/internal/abi.Method" %2088, ptr %2215, align 8 - %2216 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2210, i64 5 - store %"github.com/goplus/llgo/internal/abi.Method" %2099, ptr %2216, align 8 - %2217 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2210, i64 6 - store %"github.com/goplus/llgo/internal/abi.Method" %2110, ptr %2217, align 8 - %2218 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2210, i64 7 - store %"github.com/goplus/llgo/internal/abi.Method" %2121, ptr %2218, align 8 - %2219 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2210, i64 8 - store %"github.com/goplus/llgo/internal/abi.Method" %2132, ptr %2219, align 8 - %2220 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2210, i64 9 - store %"github.com/goplus/llgo/internal/abi.Method" %2143, ptr %2220, align 8 - %2221 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2210, i64 10 - store %"github.com/goplus/llgo/internal/abi.Method" %2154, ptr %2221, align 8 - %2222 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2210, i64 11 - store %"github.com/goplus/llgo/internal/abi.Method" %2165, ptr %2222, align 8 - %2223 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2210, i64 12 - store %"github.com/goplus/llgo/internal/abi.Method" %2176, ptr %2223, align 8 - %2224 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2210, i64 13 - store %"github.com/goplus/llgo/internal/abi.Method" %2187, ptr %2224, align 8 - %2225 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2210, i64 14 - store %"github.com/goplus/llgo/internal/abi.Method" %2198, ptr %2225, align 8 - %2226 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2210, i64 15 - store %"github.com/goplus/llgo/internal/abi.Method" %2209, ptr %2226, align 8 - %2227 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %2228 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %2227, i32 0, i32 0 - store ptr %2210, ptr %2228, align 8 - %2229 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %2227, i32 0, i32 1 - store i64 16, ptr %2229, align 4 - %2230 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %2227, i32 0, i32 2 - store i64 16, ptr %2230, align 4 - %2231 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %2227, align 8 - %2232 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %2233 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2232, i32 0, i32 0 - store ptr @38, ptr %2233, align 8 - %2234 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2232, i32 0, i32 1 - store i64 35, ptr %2234, align 4 - %2235 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %2232, align 8 - %2236 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %2237 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2236, i32 0, i32 0 - store ptr @20, ptr %2237, align 8 - %2238 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2236, i32 0, i32 1 - store i64 9, ptr %2238, align 4 - %2239 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %2236, align 8 - call void @"github.com/goplus/llgo/internal/runtime.InitNamed"(ptr %307, %"github.com/goplus/llgo/internal/runtime.String" %2235, %"github.com/goplus/llgo/internal/runtime.String" %2239, ptr %364, { ptr, i64, i64 } zeroinitializer, %"github.com/goplus/llgo/internal/runtime.Slice" %2231) + %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 + %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 + %2153 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2151, i32 0, i32 1 + store i64 4, 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 + %2178 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 + %2179 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2178, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %2176, ptr %2179, align 8 + %2180 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2178, i32 0, i32 1 + store ptr %2177, ptr %2180, align 8 + %2181 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2178, i32 0, i32 2 + store ptr @"github.com/goplus/llgo/internal/abi.(*ArrayType).StructType", 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 + %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 + %2186 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2184, i32 0, i32 1 + store i64 8, 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 + %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 + %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 + %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 + %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 + %2219 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2217, i32 0, i32 1 + store i64 35, 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 %301, %"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 - %2240 = call ptr @"github.com/goplus/llgo/internal/runtime.PointerTo"(ptr %307) - store ptr %2240, ptr @"*_llgo_github.com/goplus/llgo/internal/abi.ArrayType", align 8 + %2225 = call ptr @"github.com/goplus/llgo/internal/runtime.PointerTo"(ptr %301) + 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 - %2241 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/internal/abi.ArrayType", align 8 - %2242 = load ptr, ptr @"_llgo_func$CsVqlCxhoEcIvPD5BSBukfSiD9C7Ic5_Gf32MLbCWB4", align 8 - %2243 = icmp eq ptr %2242, null - br i1 %2243, label %_llgo_103, label %_llgo_104 + %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 - %2244 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 0) - %2245 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %2246 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %2245, i32 0, i32 0 - store ptr %2244, ptr %2246, align 8 - %2247 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %2245, i32 0, i32 1 - store i64 0, ptr %2247, align 4 - %2248 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %2245, i32 0, i32 2 - store i64 0, ptr %2248, align 4 - %2249 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %2245, align 8 - %2250 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 8) - %2251 = getelementptr ptr, ptr %2250, i64 0 - store ptr %2241, ptr %2251, align 8 - %2252 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %2253 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %2252, i32 0, i32 0 - store ptr %2250, ptr %2253, align 8 - %2254 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %2252, i32 0, i32 1 - store i64 1, ptr %2254, align 4 - %2255 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %2252, i32 0, i32 2 - store i64 1, ptr %2255, align 4 - %2256 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %2252, align 8 - %2257 = call ptr @"github.com/goplus/llgo/internal/runtime.Func"(%"github.com/goplus/llgo/internal/runtime.Slice" %2249, %"github.com/goplus/llgo/internal/runtime.Slice" %2256, i1 false) - store ptr %2257, ptr @"_llgo_func$CsVqlCxhoEcIvPD5BSBukfSiD9C7Ic5_Gf32MLbCWB4", align 8 + %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) + store ptr %2242, ptr @"_llgo_func$CsVqlCxhoEcIvPD5BSBukfSiD9C7Ic5_Gf32MLbCWB4", align 8 br label %_llgo_104 _llgo_104: ; preds = %_llgo_103, %_llgo_102 - %2258 = load ptr, ptr @"_llgo_func$CsVqlCxhoEcIvPD5BSBukfSiD9C7Ic5_Gf32MLbCWB4", align 8 - %2259 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 - %2260 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2259, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %304, ptr %2260, align 8 - %2261 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2259, i32 0, i32 1 - store ptr %2258, ptr %2261, align 8 - %2262 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2259, i32 0, i32 2 - store ptr @"github.com/goplus/llgo/internal/abi.(*Type).ArrayType", ptr %2262, align 8 - %2263 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2259, i32 0, i32 3 - store ptr @"github.com/goplus/llgo/internal/abi.(*Type).ArrayType", ptr %2263, align 8 - %2264 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %2259, align 8 - %2265 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %2266 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2265, i32 0, i32 0 - store ptr @25, ptr %2266, align 8 - %2267 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2265, i32 0, i32 1 - store i64 6, ptr %2267, align 4 - %2268 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %2265, align 8 - %2269 = load ptr, ptr @"_llgo_func$4-mqItKfDlL0CgVKnUxoresYgh6zW1WSlZYZSsVzLRo", align 8 - %2270 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 - %2271 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2270, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %2268, ptr %2271, align 8 - %2272 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2270, i32 0, i32 1 - store ptr %2269, ptr %2272, align 8 - %2273 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2270, i32 0, i32 2 - store ptr @"github.com/goplus/llgo/internal/abi.(*Type).Common", ptr %2273, align 8 - %2274 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2270, i32 0, i32 3 - store ptr @"github.com/goplus/llgo/internal/abi.(*Type).Common", ptr %2274, align 8 - %2275 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %2270, align 8 - %2276 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %2277 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2276, i32 0, i32 0 - store ptr @22, ptr %2277, align 8 - %2278 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2276, i32 0, i32 1 - store i64 4, ptr %2278, align 4 - %2279 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %2276, align 8 - %2280 = load ptr, ptr @"_llgo_func$4-mqItKfDlL0CgVKnUxoresYgh6zW1WSlZYZSsVzLRo", align 8 - %2281 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 - %2282 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2281, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %2279, ptr %2282, align 8 - %2283 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2281, i32 0, i32 1 - store ptr %2280, ptr %2283, align 8 - %2284 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2281, i32 0, i32 2 - store ptr @"github.com/goplus/llgo/internal/abi.(*Type).Elem", ptr %2284, align 8 - %2285 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2281, i32 0, i32 3 - store ptr @"github.com/goplus/llgo/internal/abi.(*Type).Elem", ptr %2285, align 8 - %2286 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %2281, align 8 - %2287 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %2288 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2287, i32 0, i32 0 - store ptr @26, ptr %2288, align 8 - %2289 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2287, i32 0, i32 1 - store i64 10, ptr %2289, align 4 - %2290 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %2287, align 8 - %2291 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 - %2292 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 - %2293 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2292, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %2290, ptr %2293, align 8 - %2294 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2292, i32 0, i32 1 - store ptr %2291, ptr %2294, align 8 - %2295 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2292, i32 0, i32 2 - store ptr @"github.com/goplus/llgo/internal/abi.(*Type).FieldAlign", ptr %2295, align 8 - %2296 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2292, i32 0, i32 3 - store ptr @"github.com/goplus/llgo/internal/abi.(*Type).FieldAlign", ptr %2296, align 8 - %2297 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %2292, align 8 - %2298 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %2299 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2298, i32 0, i32 0 - store ptr @27, ptr %2299, align 8 - %2300 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2298, i32 0, i32 1 - store i64 8, ptr %2300, align 4 - %2301 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %2298, align 8 - %2302 = load ptr, ptr @"_llgo_func$DsoxgOnxqV7tLvokF3AA14v1gtHsHaThoC8Q_XGcQww", align 8 - %2303 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 - %2304 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2303, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %2301, ptr %2304, align 8 - %2305 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2303, i32 0, i32 1 - store ptr %2302, ptr %2305, align 8 - %2306 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2303, i32 0, i32 2 - store ptr @"github.com/goplus/llgo/internal/abi.(*Type).FuncType", ptr %2306, align 8 - %2307 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2303, i32 0, i32 3 - store ptr @"github.com/goplus/llgo/internal/abi.(*Type).FuncType", ptr %2307, align 8 - %2308 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %2303, align 8 - %2309 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %2310 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2309, i32 0, i32 0 - store ptr @30, ptr %2310, align 8 - %2311 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2309, i32 0, i32 1 - store i64 7, ptr %2311, align 4 - %2312 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %2309, align 8 - %2313 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 - %2314 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 - %2315 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2314, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %2312, ptr %2315, align 8 - %2316 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2314, i32 0, i32 1 - store ptr %2313, ptr %2316, align 8 - %2317 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2314, i32 0, i32 2 - store ptr @"github.com/goplus/llgo/internal/abi.(*Type).HasName", ptr %2317, align 8 - %2318 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2314, i32 0, i32 3 - store ptr @"github.com/goplus/llgo/internal/abi.(*Type).HasName", ptr %2318, align 8 - %2319 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %2314, align 8 - %2320 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %2321 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2320, i32 0, i32 0 - store ptr @31, ptr %2321, align 8 - %2322 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2320, i32 0, i32 1 - store i64 10, ptr %2322, align 4 - %2323 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %2320, align 8 - %2324 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 - %2325 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 - %2326 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2325, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %2323, ptr %2326, align 8 - %2327 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2325, i32 0, i32 1 - store ptr %2324, ptr %2327, align 8 - %2328 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2325, i32 0, i32 2 - store ptr @"github.com/goplus/llgo/internal/abi.(*Type).IfaceIndir", ptr %2328, align 8 - %2329 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2325, i32 0, i32 3 - store ptr @"github.com/goplus/llgo/internal/abi.(*Type).IfaceIndir", ptr %2329, align 8 - %2330 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %2325, align 8 - %2331 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %2332 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2331, i32 0, i32 0 - store ptr @32, ptr %2332, align 8 - %2333 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2331, i32 0, i32 1 - store i64 13, ptr %2333, align 4 - %2334 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %2331, align 8 - %2335 = load ptr, ptr @"_llgo_func$1QmforOaCy2fBAssC2y1FWCCT6fpq9RKwP2j2HIASY8", align 8 - %2336 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 - %2337 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2336, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %2334, ptr %2337, align 8 - %2338 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2336, i32 0, i32 1 - store ptr %2335, ptr %2338, align 8 - %2339 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2336, i32 0, i32 2 - store ptr @"github.com/goplus/llgo/internal/abi.(*Type).InterfaceType", ptr %2339, align 8 - %2340 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2336, i32 0, i32 3 - store ptr @"github.com/goplus/llgo/internal/abi.(*Type).InterfaceType", ptr %2340, align 8 - %2341 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %2336, align 8 - %2342 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %2343 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2342, i32 0, i32 0 - store ptr @35, ptr %2343, align 8 - %2344 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2342, i32 0, i32 1 - store i64 13, ptr %2344, align 4 - %2345 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %2342, align 8 - %2346 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 - %2347 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 - %2348 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2347, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %2345, ptr %2348, align 8 - %2349 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2347, i32 0, i32 1 - store ptr %2346, ptr %2349, align 8 - %2350 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2347, i32 0, i32 2 - store ptr @"github.com/goplus/llgo/internal/abi.(*Type).IsDirectIface", ptr %2350, align 8 - %2351 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2347, i32 0, i32 3 - store ptr @"github.com/goplus/llgo/internal/abi.(*Type).IsDirectIface", ptr %2351, align 8 - %2352 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %2347, align 8 - %2353 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %2354 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2353, i32 0, i32 0 - store ptr @36, ptr %2354, align 8 - %2355 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2353, i32 0, i32 1 - store i64 4, ptr %2355, align 4 - %2356 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %2353, align 8 - %2357 = load ptr, ptr @"_llgo_func$ntUE0UmVAWPS2O7GpCCGszSn-XnjHJntZZ2jYtwbFXI", align 8 - %2358 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 - %2359 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2358, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %2356, ptr %2359, align 8 - %2360 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2358, i32 0, i32 1 - store ptr %2357, ptr %2360, align 8 - %2361 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2358, i32 0, i32 2 - store ptr @"github.com/goplus/llgo/internal/abi.(*Type).Kind", ptr %2361, align 8 - %2362 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2358, i32 0, i32 3 - store ptr @"github.com/goplus/llgo/internal/abi.(*Type).Kind", ptr %2362, align 8 - %2363 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %2358, align 8 - %2364 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %2365 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2364, i32 0, i32 0 - store ptr @24, ptr %2365, align 8 - %2366 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2364, i32 0, i32 1 - store i64 3, ptr %2366, align 4 - %2367 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %2364, align 8 - %2368 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 - %2369 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 - %2370 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2369, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %2367, ptr %2370, align 8 - %2371 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2369, i32 0, i32 1 - store ptr %2368, ptr %2371, align 8 - %2372 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2369, i32 0, i32 2 - store ptr @"github.com/goplus/llgo/internal/abi.(*Type).Len", ptr %2372, align 8 - %2373 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2369, i32 0, i32 3 - store ptr @"github.com/goplus/llgo/internal/abi.(*Type).Len", ptr %2373, align 8 - %2374 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %2369, align 8 - %2375 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %2376 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2375, i32 0, i32 0 - store ptr @39, ptr %2376, align 8 - %2377 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2375, i32 0, i32 1 - store i64 7, ptr %2377, align 4 - %2378 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %2375, align 8 - %2379 = load ptr, ptr @"_llgo_func$d-NlqnjcQnaMjsBQY7qh2SWQmHb0XIigoceXdiJ8YT4", align 8 - %2380 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 - %2381 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2380, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %2378, ptr %2381, align 8 - %2382 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2380, i32 0, i32 1 - store ptr %2379, ptr %2382, align 8 - %2383 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2380, i32 0, i32 2 - store ptr @"github.com/goplus/llgo/internal/abi.(*Type).MapType", ptr %2383, align 8 - %2384 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2380, i32 0, i32 3 - store ptr @"github.com/goplus/llgo/internal/abi.(*Type).MapType", ptr %2384, align 8 - %2385 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %2380, align 8 - %2386 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %2387 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2386, i32 0, i32 0 - store ptr @51, ptr %2387, align 8 - %2388 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2386, i32 0, i32 1 - store i64 8, ptr %2388, align 4 - %2389 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %2386, align 8 - %2390 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 - %2391 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 - %2392 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2391, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %2389, ptr %2392, align 8 - %2393 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2391, i32 0, i32 1 - store ptr %2390, ptr %2393, align 8 - %2394 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2391, i32 0, i32 2 - store ptr @"github.com/goplus/llgo/internal/abi.(*Type).Pointers", ptr %2394, align 8 - %2395 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2391, i32 0, i32 3 - store ptr @"github.com/goplus/llgo/internal/abi.(*Type).Pointers", ptr %2395, align 8 - %2396 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %2391, align 8 - %2397 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %2398 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2397, i32 0, i32 0 - store ptr @53, ptr %2398, align 8 - %2399 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2397, i32 0, i32 1 - store i64 4, ptr %2399, align 4 - %2400 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %2397, align 8 - %2401 = load ptr, ptr @"_llgo_func$1kITCsyu7hFLMxHLR7kDlvu4SOra_HtrtdFUQH9P13s", align 8 - %2402 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 - %2403 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2402, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %2400, ptr %2403, align 8 - %2404 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2402, i32 0, i32 1 - store ptr %2401, ptr %2404, align 8 - %2405 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2402, i32 0, i32 2 - store ptr @"github.com/goplus/llgo/internal/abi.(*Type).Size", ptr %2405, align 8 - %2406 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2402, i32 0, i32 3 - store ptr @"github.com/goplus/llgo/internal/abi.(*Type).Size", ptr %2406, align 8 - %2407 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %2402, align 8 - %2408 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %2409 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2408, i32 0, i32 0 - store ptr @37, ptr %2409, align 8 - %2410 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2408, i32 0, i32 1 - store i64 6, ptr %2410, align 4 - %2411 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %2408, align 8 - %2412 = load ptr, ptr @"_llgo_func$zNDVRsWTIpUPKouNUS805RGX--IV9qVK8B31IZbg5to", align 8 - %2413 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 - %2414 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2413, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %2411, ptr %2414, align 8 - %2415 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2413, i32 0, i32 1 - store ptr %2412, ptr %2415, align 8 - %2416 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2413, i32 0, i32 2 - store ptr @"github.com/goplus/llgo/internal/abi.(*Type).String", ptr %2416, align 8 - %2417 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2413, i32 0, i32 3 - store ptr @"github.com/goplus/llgo/internal/abi.(*Type).String", ptr %2417, align 8 - %2418 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %2413, align 8 - %2419 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %2420 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2419, i32 0, i32 0 - store ptr @54, ptr %2420, align 8 - %2421 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2419, i32 0, i32 1 - store i64 10, ptr %2421, align 4 - %2422 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %2419, align 8 - %2423 = load ptr, ptr @"_llgo_func$qiNnn6Cbm3GtDp4gDI4U_DRV3h8zlz91s9jrfOXC--U", align 8 - %2424 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 - %2425 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2424, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %2422, ptr %2425, align 8 - %2426 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2424, i32 0, i32 1 - store ptr %2423, ptr %2426, align 8 - %2427 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2424, i32 0, i32 2 - store ptr @"github.com/goplus/llgo/internal/abi.(*Type).StructType", ptr %2427, align 8 - %2428 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2424, i32 0, i32 3 - store ptr @"github.com/goplus/llgo/internal/abi.(*Type).StructType", ptr %2428, align 8 - %2429 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %2424, align 8 - %2430 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %2431 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2430, i32 0, i32 0 - store ptr @56, ptr %2431, align 8 - %2432 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2430, i32 0, i32 1 - store i64 8, ptr %2432, align 4 - %2433 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %2430, align 8 - %2434 = load ptr, ptr @"_llgo_func$DbD4nZv_bjE4tH8hh-VfAjMXMpNfIsMlLJJJPKupp34", align 8 - %2435 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 - %2436 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2435, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %2433, ptr %2436, align 8 - %2437 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2435, i32 0, i32 1 - store ptr %2434, ptr %2437, align 8 - %2438 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2435, i32 0, i32 2 - store ptr @"github.com/goplus/llgo/internal/abi.(*Type).Uncommon", ptr %2438, align 8 - %2439 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2435, i32 0, i32 3 - store ptr @"github.com/goplus/llgo/internal/abi.(*Type).Uncommon", ptr %2439, align 8 - %2440 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %2435, align 8 - %2441 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 720) - %2442 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2441, i64 0 - store %"github.com/goplus/llgo/internal/abi.Method" %300, ptr %2442, align 8 - %2443 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2441, i64 1 - store %"github.com/goplus/llgo/internal/abi.Method" %2264, ptr %2443, align 8 - %2444 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2441, i64 2 - store %"github.com/goplus/llgo/internal/abi.Method" %2275, ptr %2444, align 8 - %2445 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2441, i64 3 - store %"github.com/goplus/llgo/internal/abi.Method" %2286, ptr %2445, align 8 - %2446 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2441, i64 4 - store %"github.com/goplus/llgo/internal/abi.Method" %2297, ptr %2446, align 8 - %2447 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2441, i64 5 - store %"github.com/goplus/llgo/internal/abi.Method" %2308, ptr %2447, align 8 - %2448 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2441, i64 6 - store %"github.com/goplus/llgo/internal/abi.Method" %2319, ptr %2448, align 8 - %2449 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2441, i64 7 - store %"github.com/goplus/llgo/internal/abi.Method" %2330, ptr %2449, align 8 - %2450 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2441, i64 8 - store %"github.com/goplus/llgo/internal/abi.Method" %2341, ptr %2450, align 8 - %2451 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2441, i64 9 - store %"github.com/goplus/llgo/internal/abi.Method" %2352, ptr %2451, align 8 - %2452 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2441, i64 10 - store %"github.com/goplus/llgo/internal/abi.Method" %2363, ptr %2452, align 8 - %2453 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2441, i64 11 - store %"github.com/goplus/llgo/internal/abi.Method" %2374, ptr %2453, align 8 - %2454 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2441, i64 12 - store %"github.com/goplus/llgo/internal/abi.Method" %2385, ptr %2454, align 8 - %2455 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2441, i64 13 - store %"github.com/goplus/llgo/internal/abi.Method" %2396, ptr %2455, align 8 - %2456 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2441, i64 14 - store %"github.com/goplus/llgo/internal/abi.Method" %2407, ptr %2456, align 8 - %2457 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2441, i64 15 - store %"github.com/goplus/llgo/internal/abi.Method" %2418, ptr %2457, align 8 - %2458 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2441, i64 16 - store %"github.com/goplus/llgo/internal/abi.Method" %2429, ptr %2458, align 8 - %2459 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %2441, i64 17 - store %"github.com/goplus/llgo/internal/abi.Method" %2440, ptr %2459, align 8 - %2460 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %2461 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %2460, i32 0, i32 0 - store ptr %2441, ptr %2461, align 8 - %2462 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %2460, i32 0, i32 1 - store i64 18, ptr %2462, align 4 - %2463 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %2460, i32 0, i32 2 - store i64 18, ptr %2463, align 4 - %2464 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %2460, align 8 - %2465 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %2466 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2465, i32 0, i32 0 - store ptr @38, ptr %2466, align 8 - %2467 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2465, i32 0, i32 1 - store i64 35, ptr %2467, align 4 - %2468 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %2465, align 8 - %2469 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 - %2470 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2469, i32 0, i32 0 - store ptr @21, ptr %2470, align 8 - %2471 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2469, i32 0, i32 1 - store i64 4, ptr %2471, align 4 - %2472 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %2469, align 8 - call void @"github.com/goplus/llgo/internal/runtime.InitNamed"(ptr %21, %"github.com/goplus/llgo/internal/runtime.String" %2468, %"github.com/goplus/llgo/internal/runtime.String" %2472, ptr %266, { ptr, i64, i64 } zeroinitializer, %"github.com/goplus/llgo/internal/runtime.Slice" %2464) + %2243 = load ptr, ptr @"_llgo_func$CsVqlCxhoEcIvPD5BSBukfSiD9C7Ic5_Gf32MLbCWB4", 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 + %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 + %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 + %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 + %2252 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2250, i32 0, i32 1 + store i64 6, 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 + %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 + %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 + %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 + %2263 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2261, i32 0, i32 1 + store i64 4, 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 + %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 + %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 + %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 + %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 + %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 + %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 + %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 + %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 + %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 + %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 + %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 + %2296 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2294, i32 0, i32 1 + store i64 7, 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 + %2300 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2299, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %2297, ptr %2300, align 8 + %2301 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2299, i32 0, i32 1 + store ptr %2298, ptr %2301, align 8 + %2302 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %2299, i32 0, i32 2 + store ptr @"github.com/goplus/llgo/internal/abi.(*Type).HasName", 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 + %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 %21, %"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 } diff --git a/cl/_testrt/any/out.ll b/cl/_testrt/any/out.ll index fd857bcc5..7e6c54329 100644 --- a/cl/_testrt/any/out.ll +++ b/cl/_testrt/any/out.ll @@ -3,7 +3,6 @@ source_filename = "main" %"github.com/goplus/llgo/internal/runtime.eface" = type { ptr, ptr } %"github.com/goplus/llgo/internal/runtime.String" = type { ptr, i64 } -%"github.com/goplus/llgo/internal/abi.Type" = type { i64, i64, i32, i8, i8, i8, i8, { ptr, ptr }, ptr, %"github.com/goplus/llgo/internal/runtime.String", ptr } @"main.init$guard" = global i1 false, align 1 @_llgo_int8 = linkonce global ptr null, align 8 @@ -127,47 +126,39 @@ _llgo_0: br i1 %1, label %_llgo_1, label %_llgo_2 _llgo_1: ; preds = %_llgo_0 - %2 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 3) - %3 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Type", ptr %2, i32 0, i32 6 - %4 = load i8, ptr %3, align 1 - %5 = or i8 %4, 32 - store i8 %5, ptr %3, align 1 + %2 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 35) store ptr %2, ptr @_llgo_int8, align 8 br label %_llgo_2 _llgo_2: ; preds = %_llgo_1, %_llgo_0 - %6 = load ptr, ptr @"*_llgo_int8", align 8 - %7 = icmp eq ptr %6, null - br i1 %7, label %_llgo_3, label %_llgo_4 + %3 = load ptr, ptr @"*_llgo_int8", align 8 + %4 = icmp eq ptr %3, null + br i1 %4, label %_llgo_3, label %_llgo_4 _llgo_3: ; preds = %_llgo_2 - %8 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 3) - %9 = call ptr @"github.com/goplus/llgo/internal/runtime.PointerTo"(ptr %8) - store ptr %9, ptr @"*_llgo_int8", align 8 + %5 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 35) + %6 = call ptr @"github.com/goplus/llgo/internal/runtime.PointerTo"(ptr %5) + store ptr %6, ptr @"*_llgo_int8", align 8 br label %_llgo_4 _llgo_4: ; preds = %_llgo_3, %_llgo_2 - %10 = load ptr, ptr @_llgo_string, align 8 - %11 = icmp eq ptr %10, null - br i1 %11, label %_llgo_5, label %_llgo_6 + %7 = load ptr, ptr @_llgo_string, align 8 + %8 = icmp eq ptr %7, null + br i1 %8, label %_llgo_5, label %_llgo_6 _llgo_5: ; preds = %_llgo_4 - %12 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 24) - store ptr %12, 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_6 _llgo_6: ; preds = %_llgo_5, %_llgo_4 - %13 = load ptr, ptr @_llgo_int, align 8 - %14 = icmp eq ptr %13, null - br i1 %14, label %_llgo_7, label %_llgo_8 + %10 = load ptr, ptr @_llgo_int, align 8 + %11 = icmp eq ptr %10, null + br i1 %11, label %_llgo_7, label %_llgo_8 _llgo_7: ; preds = %_llgo_6 - %15 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 2) - %16 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Type", ptr %15, i32 0, i32 6 - %17 = load i8, ptr %16, align 1 - %18 = or i8 %17, 32 - store i8 %18, ptr %16, align 1 - store ptr %15, ptr @_llgo_int, align 8 + %12 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 34) + store ptr %12, ptr @_llgo_int, align 8 br label %_llgo_8 _llgo_8: ; preds = %_llgo_7, %_llgo_6 diff --git a/cl/_testrt/builtin/out.ll b/cl/_testrt/builtin/out.ll index e78ddf0d3..d15264ce4 100644 --- a/cl/_testrt/builtin/out.ll +++ b/cl/_testrt/builtin/out.ll @@ -4,7 +4,6 @@ source_filename = "main" %"github.com/goplus/llgo/internal/runtime.Slice" = type { ptr, i64, i64 } %"github.com/goplus/llgo/internal/runtime.String" = type { ptr, i64 } %"github.com/goplus/llgo/internal/runtime.eface" = type { ptr, ptr } -%"github.com/goplus/llgo/internal/abi.Type" = type { i64, i64, i32, i8, i8, i8, i8, { ptr, ptr }, ptr, %"github.com/goplus/llgo/internal/runtime.String", ptr } @main.a = global i64 0, align 8 @main.b = global i64 0, align 8 @@ -663,11 +662,7 @@ _llgo_0: br i1 %1, label %_llgo_1, label %_llgo_2 _llgo_1: ; preds = %_llgo_0 - %2 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 2) - %3 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Type", ptr %2, i32 0, i32 6 - %4 = load i8, ptr %3, align 1 - %5 = or i8 %4, 32 - store i8 %5, ptr %3, align 1 + %2 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 34) store ptr %2, ptr @_llgo_int, align 8 br label %_llgo_2 diff --git a/cl/_testrt/eface/out.ll b/cl/_testrt/eface/out.ll index c3345a603..192248ed5 100644 --- a/cl/_testrt/eface/out.ll +++ b/cl/_testrt/eface/out.ll @@ -317,93 +317,94 @@ _llgo_0: store ptr null, ptr %70, align 8 %71 = load %"github.com/goplus/llgo/internal/runtime.eface", ptr %68, align 8 call void @main.dump(%"github.com/goplus/llgo/internal/runtime.eface" %71) - %72 = load ptr, ptr @"[10]_llgo_int", align 8 - %73 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 80) - store [10 x i64] zeroinitializer, ptr %73, align 4 - %74 = alloca %"github.com/goplus/llgo/internal/runtime.eface", align 8 - %75 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.eface", ptr %74, i32 0, i32 0 - store ptr %72, ptr %75, align 8 - %76 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.eface", ptr %74, i32 0, i32 1 + %72 = load ptr, ptr @_llgo_int, align 8 + %73 = load ptr, ptr @"[10]_llgo_int", align 8 + %74 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 80) + store [10 x i64] zeroinitializer, ptr %74, align 4 + %75 = alloca %"github.com/goplus/llgo/internal/runtime.eface", align 8 + %76 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.eface", ptr %75, i32 0, i32 0 store ptr %73, ptr %76, align 8 - %77 = load %"github.com/goplus/llgo/internal/runtime.eface", ptr %74, align 8 - call void @main.dump(%"github.com/goplus/llgo/internal/runtime.eface" %77) - %78 = load ptr, ptr @"_llgo_func$2_iS07vIlF2_rZqWB5eU0IvP_9HviM4MYZNkXZDvbac", align 8 - %79 = alloca %"github.com/goplus/llgo/internal/runtime.eface", align 8 - %80 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.eface", ptr %79, i32 0, i32 0 - store ptr %78, ptr %80, align 8 - %81 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.eface", ptr %79, i32 0, i32 1 - store ptr @"main.main$1", ptr %81, align 8 - %82 = load %"github.com/goplus/llgo/internal/runtime.eface", ptr %79, align 8 - call void @main.dump(%"github.com/goplus/llgo/internal/runtime.eface" %82) - %83 = load ptr, ptr @"*_llgo_int", align 8 - %84 = alloca %"github.com/goplus/llgo/internal/runtime.eface", align 8 - %85 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.eface", ptr %84, i32 0, i32 0 - store ptr %83, ptr %85, align 8 - %86 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.eface", ptr %84, i32 0, i32 1 - store ptr null, ptr %86, align 8 - %87 = load %"github.com/goplus/llgo/internal/runtime.eface", ptr %84, align 8 - call void @main.dump(%"github.com/goplus/llgo/internal/runtime.eface" %87) - %88 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocZ"(i64 0) - %89 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %90 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %89, i32 0, i32 0 - store ptr %88, ptr %90, align 8 - %91 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %89, i32 0, i32 1 - store i64 0, ptr %91, align 4 - %92 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %89, i32 0, i32 2 + %77 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.eface", ptr %75, i32 0, i32 1 + store ptr %74, ptr %77, align 8 + %78 = load %"github.com/goplus/llgo/internal/runtime.eface", ptr %75, align 8 + call void @main.dump(%"github.com/goplus/llgo/internal/runtime.eface" %78) + %79 = load ptr, ptr @"_llgo_func$2_iS07vIlF2_rZqWB5eU0IvP_9HviM4MYZNkXZDvbac", align 8 + %80 = alloca %"github.com/goplus/llgo/internal/runtime.eface", align 8 + %81 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.eface", ptr %80, i32 0, i32 0 + store ptr %79, ptr %81, align 8 + %82 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.eface", ptr %80, i32 0, i32 1 + store ptr @"main.main$1", ptr %82, align 8 + %83 = load %"github.com/goplus/llgo/internal/runtime.eface", ptr %80, align 8 + call void @main.dump(%"github.com/goplus/llgo/internal/runtime.eface" %83) + %84 = load ptr, ptr @"*_llgo_int", align 8 + %85 = alloca %"github.com/goplus/llgo/internal/runtime.eface", align 8 + %86 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.eface", ptr %85, i32 0, i32 0 + store ptr %84, ptr %86, align 8 + %87 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.eface", ptr %85, i32 0, i32 1 + store ptr null, ptr %87, align 8 + %88 = load %"github.com/goplus/llgo/internal/runtime.eface", ptr %85, align 8 + call void @main.dump(%"github.com/goplus/llgo/internal/runtime.eface" %88) + %89 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocZ"(i64 0) + %90 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %91 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %90, i32 0, i32 0 + store ptr %89, ptr %91, align 8 + %92 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %90, i32 0, i32 1 store i64 0, ptr %92, align 4 - %93 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %89, align 8 - %94 = load ptr, ptr @"[]_llgo_int", align 8 - %95 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 24) - store %"github.com/goplus/llgo/internal/runtime.Slice" %93, ptr %95, align 8 - %96 = alloca %"github.com/goplus/llgo/internal/runtime.eface", align 8 - %97 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.eface", ptr %96, i32 0, i32 0 - store ptr %94, ptr %97, align 8 - %98 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.eface", ptr %96, i32 0, i32 1 + %93 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %90, i32 0, i32 2 + store i64 0, ptr %93, align 4 + %94 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %90, align 8 + %95 = load ptr, ptr @"[]_llgo_int", align 8 + %96 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 24) + store %"github.com/goplus/llgo/internal/runtime.Slice" %94, ptr %96, align 8 + %97 = alloca %"github.com/goplus/llgo/internal/runtime.eface", align 8 + %98 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.eface", ptr %97, i32 0, i32 0 store ptr %95, ptr %98, align 8 - %99 = load %"github.com/goplus/llgo/internal/runtime.eface", ptr %96, align 8 - call void @main.dump(%"github.com/goplus/llgo/internal/runtime.eface" %99) - %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 @3, ptr %101, align 8 - %102 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %100, i32 0, i32 1 - store i64 5, ptr %102, align 4 - %103 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %100, align 8 - %104 = load ptr, ptr @_llgo_string, align 8 - %105 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 16) - store %"github.com/goplus/llgo/internal/runtime.String" %103, ptr %105, align 8 - %106 = alloca %"github.com/goplus/llgo/internal/runtime.eface", align 8 - %107 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.eface", ptr %106, i32 0, i32 0 - store ptr %104, ptr %107, align 8 - %108 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.eface", ptr %106, i32 0, i32 1 + %99 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.eface", ptr %97, i32 0, i32 1 + store ptr %96, ptr %99, align 8 + %100 = load %"github.com/goplus/llgo/internal/runtime.eface", ptr %97, align 8 + call void @main.dump(%"github.com/goplus/llgo/internal/runtime.eface" %100) + %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 @3, ptr %102, align 8 + %103 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %101, i32 0, i32 1 + store i64 5, ptr %103, align 4 + %104 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %101, align 8 + %105 = load ptr, ptr @_llgo_string, align 8 + %106 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 16) + store %"github.com/goplus/llgo/internal/runtime.String" %104, ptr %106, align 8 + %107 = alloca %"github.com/goplus/llgo/internal/runtime.eface", align 8 + %108 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.eface", ptr %107, i32 0, i32 0 store ptr %105, ptr %108, align 8 - %109 = load %"github.com/goplus/llgo/internal/runtime.eface", ptr %106, align 8 - call void @main.dump(%"github.com/goplus/llgo/internal/runtime.eface" %109) - %110 = load ptr, ptr @"main.struct$RKbUG45GE4henGMAdmt0Rju0JptyR8NsX7IZLsOI0OM", align 8 - %111 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 24) - store { i8, i64, i64 } zeroinitializer, ptr %111, align 4 - %112 = alloca %"github.com/goplus/llgo/internal/runtime.eface", align 8 - %113 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.eface", ptr %112, i32 0, i32 0 - store ptr %110, ptr %113, align 8 - %114 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.eface", ptr %112, i32 0, i32 1 + %109 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.eface", ptr %107, i32 0, i32 1 + store ptr %106, ptr %109, align 8 + %110 = load %"github.com/goplus/llgo/internal/runtime.eface", ptr %107, align 8 + call void @main.dump(%"github.com/goplus/llgo/internal/runtime.eface" %110) + %111 = load ptr, ptr @"main.struct$RKbUG45GE4henGMAdmt0Rju0JptyR8NsX7IZLsOI0OM", align 8 + %112 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 24) + store { i8, i64, i64 } zeroinitializer, ptr %112, align 4 + %113 = alloca %"github.com/goplus/llgo/internal/runtime.eface", align 8 + %114 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.eface", ptr %113, i32 0, i32 0 store ptr %111, ptr %114, align 8 - %115 = load %"github.com/goplus/llgo/internal/runtime.eface", ptr %112, align 8 - call void @main.dump(%"github.com/goplus/llgo/internal/runtime.eface" %115) - %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 null, ptr %117, align 8 - %118 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %116, i32 0, i32 1 - store i64 0, ptr %118, align 4 - %119 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %116, align 8 - %120 = load ptr, ptr @_llgo_main.T, align 8 - %121 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 16) - store %"github.com/goplus/llgo/internal/runtime.String" %119, ptr %121, align 8 - %122 = alloca %"github.com/goplus/llgo/internal/runtime.eface", align 8 - %123 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.eface", ptr %122, i32 0, i32 0 - store ptr %120, ptr %123, align 8 - %124 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.eface", ptr %122, i32 0, i32 1 + %115 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.eface", ptr %113, i32 0, i32 1 + store ptr %112, ptr %115, align 8 + %116 = load %"github.com/goplus/llgo/internal/runtime.eface", ptr %113, align 8 + call void @main.dump(%"github.com/goplus/llgo/internal/runtime.eface" %116) + %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 null, ptr %118, align 8 + %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 = load ptr, ptr @_llgo_main.T, align 8 + %122 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 16) + store %"github.com/goplus/llgo/internal/runtime.String" %120, ptr %122, align 8 + %123 = alloca %"github.com/goplus/llgo/internal/runtime.eface", align 8 + %124 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.eface", ptr %123, i32 0, i32 0 store ptr %121, ptr %124, align 8 - %125 = load %"github.com/goplus/llgo/internal/runtime.eface", ptr %122, align 8 - call void @main.dump(%"github.com/goplus/llgo/internal/runtime.eface" %125) + %125 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.eface", ptr %123, i32 0, i32 1 + store ptr %122, ptr %125, align 8 + %126 = load %"github.com/goplus/llgo/internal/runtime.eface", ptr %123, align 8 + call void @main.dump(%"github.com/goplus/llgo/internal/runtime.eface" %126) ret i32 0 } @@ -441,388 +442,332 @@ _llgo_0: br i1 %1, label %_llgo_1, label %_llgo_2 _llgo_1: ; preds = %_llgo_0 - %2 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 1) - %3 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Type", ptr %2, i32 0, i32 6 - %4 = load i8, ptr %3, align 1 - %5 = or i8 %4, 32 - store i8 %5, ptr %3, align 1 + %2 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 33) store ptr %2, ptr @_llgo_bool, align 8 br label %_llgo_2 _llgo_2: ; preds = %_llgo_1, %_llgo_0 - %6 = load ptr, ptr @_llgo_int, align 8 - %7 = icmp eq ptr %6, null - br i1 %7, label %_llgo_3, label %_llgo_4 + %3 = load ptr, ptr @_llgo_int, align 8 + %4 = icmp eq ptr %3, null + br i1 %4, label %_llgo_3, label %_llgo_4 _llgo_3: ; preds = %_llgo_2 - %8 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 2) - %9 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Type", ptr %8, i32 0, i32 6 - %10 = load i8, ptr %9, align 1 - %11 = or i8 %10, 32 - store i8 %11, ptr %9, align 1 - store ptr %8, ptr @_llgo_int, align 8 + %5 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 34) + store ptr %5, ptr @_llgo_int, align 8 br label %_llgo_4 _llgo_4: ; preds = %_llgo_3, %_llgo_2 - %12 = load ptr, ptr @_llgo_int8, align 8 - %13 = icmp eq ptr %12, null - br i1 %13, label %_llgo_5, label %_llgo_6 + %6 = load ptr, ptr @_llgo_int8, align 8 + %7 = icmp eq ptr %6, null + br i1 %7, label %_llgo_5, label %_llgo_6 _llgo_5: ; preds = %_llgo_4 - %14 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 3) - %15 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Type", ptr %14, i32 0, i32 6 - %16 = load i8, ptr %15, align 1 - %17 = or i8 %16, 32 - store i8 %17, ptr %15, align 1 - store ptr %14, ptr @_llgo_int8, align 8 + %8 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 35) + store ptr %8, ptr @_llgo_int8, align 8 br label %_llgo_6 _llgo_6: ; preds = %_llgo_5, %_llgo_4 - %18 = load ptr, ptr @_llgo_int16, align 8 - %19 = icmp eq ptr %18, null - br i1 %19, label %_llgo_7, label %_llgo_8 + %9 = load ptr, ptr @_llgo_int16, align 8 + %10 = icmp eq ptr %9, null + br i1 %10, label %_llgo_7, label %_llgo_8 _llgo_7: ; preds = %_llgo_6 - %20 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 4) - %21 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Type", ptr %20, i32 0, i32 6 - %22 = load i8, ptr %21, align 1 - %23 = or i8 %22, 32 - store i8 %23, ptr %21, align 1 - store ptr %20, ptr @_llgo_int16, align 8 + %11 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 36) + store ptr %11, ptr @_llgo_int16, align 8 br label %_llgo_8 _llgo_8: ; preds = %_llgo_7, %_llgo_6 - %24 = load ptr, ptr @_llgo_int32, align 8 - %25 = icmp eq ptr %24, null - br i1 %25, label %_llgo_9, label %_llgo_10 + %12 = load ptr, ptr @_llgo_int32, align 8 + %13 = icmp eq ptr %12, null + br i1 %13, label %_llgo_9, label %_llgo_10 _llgo_9: ; preds = %_llgo_8 - %26 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 5) - %27 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Type", ptr %26, i32 0, i32 6 - %28 = load i8, ptr %27, align 1 - %29 = or i8 %28, 32 - store i8 %29, ptr %27, align 1 - store ptr %26, ptr @_llgo_int32, align 8 + %14 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 37) + store ptr %14, ptr @_llgo_int32, align 8 br label %_llgo_10 _llgo_10: ; preds = %_llgo_9, %_llgo_8 - %30 = load ptr, ptr @_llgo_int64, align 8 - %31 = icmp eq ptr %30, null - br i1 %31, label %_llgo_11, label %_llgo_12 + %15 = load ptr, ptr @_llgo_int64, align 8 + %16 = icmp eq ptr %15, null + br i1 %16, label %_llgo_11, label %_llgo_12 _llgo_11: ; preds = %_llgo_10 - %32 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 6) - %33 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Type", ptr %32, i32 0, i32 6 - %34 = load i8, ptr %33, align 1 - %35 = or i8 %34, 32 - store i8 %35, ptr %33, align 1 - store ptr %32, ptr @_llgo_int64, align 8 + %17 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 38) + store ptr %17, ptr @_llgo_int64, align 8 br label %_llgo_12 _llgo_12: ; preds = %_llgo_11, %_llgo_10 - %36 = load ptr, ptr @_llgo_uint, align 8 - %37 = icmp eq ptr %36, null - br i1 %37, label %_llgo_13, label %_llgo_14 + %18 = load ptr, ptr @_llgo_uint, align 8 + %19 = icmp eq ptr %18, null + br i1 %19, label %_llgo_13, label %_llgo_14 _llgo_13: ; preds = %_llgo_12 - %38 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 7) - %39 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Type", ptr %38, i32 0, i32 6 - %40 = load i8, ptr %39, align 1 - %41 = or i8 %40, 32 - store i8 %41, ptr %39, align 1 - store ptr %38, ptr @_llgo_uint, align 8 + %20 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 39) + store ptr %20, ptr @_llgo_uint, align 8 br label %_llgo_14 _llgo_14: ; preds = %_llgo_13, %_llgo_12 - %42 = load ptr, ptr @_llgo_uint8, align 8 - %43 = icmp eq ptr %42, null - br i1 %43, label %_llgo_15, label %_llgo_16 + %21 = load ptr, ptr @_llgo_uint8, align 8 + %22 = icmp eq ptr %21, null + br i1 %22, label %_llgo_15, label %_llgo_16 _llgo_15: ; preds = %_llgo_14 - %44 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 8) - %45 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Type", ptr %44, i32 0, i32 6 - %46 = load i8, ptr %45, align 1 - %47 = or i8 %46, 32 - store i8 %47, ptr %45, align 1 - store ptr %44, ptr @_llgo_uint8, align 8 + %23 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 40) + store ptr %23, ptr @_llgo_uint8, align 8 br label %_llgo_16 _llgo_16: ; preds = %_llgo_15, %_llgo_14 - %48 = load ptr, ptr @_llgo_uint16, align 8 - %49 = icmp eq ptr %48, null - br i1 %49, label %_llgo_17, label %_llgo_18 + %24 = load ptr, ptr @_llgo_uint16, align 8 + %25 = icmp eq ptr %24, null + br i1 %25, label %_llgo_17, label %_llgo_18 _llgo_17: ; preds = %_llgo_16 - %50 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 9) - %51 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Type", ptr %50, i32 0, i32 6 - %52 = load i8, ptr %51, align 1 - %53 = or i8 %52, 32 - store i8 %53, ptr %51, align 1 - store ptr %50, ptr @_llgo_uint16, align 8 + %26 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 41) + store ptr %26, ptr @_llgo_uint16, align 8 br label %_llgo_18 _llgo_18: ; preds = %_llgo_17, %_llgo_16 - %54 = load ptr, ptr @_llgo_uint32, align 8 - %55 = icmp eq ptr %54, null - br i1 %55, label %_llgo_19, label %_llgo_20 + %27 = load ptr, ptr @_llgo_uint32, align 8 + %28 = icmp eq ptr %27, null + br i1 %28, label %_llgo_19, label %_llgo_20 _llgo_19: ; preds = %_llgo_18 - %56 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 10) - %57 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Type", ptr %56, i32 0, i32 6 - %58 = load i8, ptr %57, align 1 - %59 = or i8 %58, 32 - store i8 %59, ptr %57, align 1 - store ptr %56, ptr @_llgo_uint32, align 8 + %29 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 42) + store ptr %29, ptr @_llgo_uint32, align 8 br label %_llgo_20 _llgo_20: ; preds = %_llgo_19, %_llgo_18 - %60 = load ptr, ptr @_llgo_uint64, align 8 - %61 = icmp eq ptr %60, null - br i1 %61, label %_llgo_21, label %_llgo_22 + %30 = load ptr, ptr @_llgo_uint64, align 8 + %31 = icmp eq ptr %30, null + br i1 %31, label %_llgo_21, label %_llgo_22 _llgo_21: ; preds = %_llgo_20 - %62 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 11) - %63 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Type", ptr %62, i32 0, i32 6 - %64 = load i8, ptr %63, align 1 - %65 = or i8 %64, 32 - store i8 %65, ptr %63, align 1 - store ptr %62, ptr @_llgo_uint64, align 8 + %32 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 43) + store ptr %32, ptr @_llgo_uint64, align 8 br label %_llgo_22 _llgo_22: ; preds = %_llgo_21, %_llgo_20 - %66 = load ptr, ptr @_llgo_uintptr, align 8 - %67 = icmp eq ptr %66, null - br i1 %67, label %_llgo_23, label %_llgo_24 + %33 = load ptr, ptr @_llgo_uintptr, align 8 + %34 = icmp eq ptr %33, null + br i1 %34, label %_llgo_23, label %_llgo_24 _llgo_23: ; preds = %_llgo_22 - %68 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 12) - %69 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Type", ptr %68, i32 0, i32 6 - %70 = load i8, ptr %69, align 1 - %71 = or i8 %70, 32 - store i8 %71, ptr %69, align 1 - store ptr %68, ptr @_llgo_uintptr, align 8 + %35 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 44) + store ptr %35, ptr @_llgo_uintptr, align 8 br label %_llgo_24 _llgo_24: ; preds = %_llgo_23, %_llgo_22 - %72 = load ptr, ptr @_llgo_float32, align 8 - %73 = icmp eq ptr %72, null - br i1 %73, label %_llgo_25, label %_llgo_26 + %36 = load ptr, ptr @_llgo_float32, align 8 + %37 = icmp eq ptr %36, null + br i1 %37, label %_llgo_25, label %_llgo_26 _llgo_25: ; preds = %_llgo_24 - %74 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 13) - %75 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Type", ptr %74, i32 0, i32 6 - %76 = load i8, ptr %75, align 1 - %77 = or i8 %76, 32 - store i8 %77, ptr %75, align 1 - store ptr %74, ptr @_llgo_float32, align 8 + %38 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 45) + store ptr %38, ptr @_llgo_float32, align 8 br label %_llgo_26 _llgo_26: ; preds = %_llgo_25, %_llgo_24 - %78 = load ptr, ptr @_llgo_float64, align 8 - %79 = icmp eq ptr %78, null - br i1 %79, label %_llgo_27, label %_llgo_28 + %39 = load ptr, ptr @_llgo_float64, align 8 + %40 = icmp eq ptr %39, null + br i1 %40, label %_llgo_27, label %_llgo_28 _llgo_27: ; preds = %_llgo_26 - %80 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 14) - %81 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Type", ptr %80, i32 0, i32 6 - %82 = load i8, ptr %81, align 1 - %83 = or i8 %82, 32 - store i8 %83, ptr %81, align 1 - store ptr %80, ptr @_llgo_float64, align 8 + %41 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 46) + store ptr %41, ptr @_llgo_float64, align 8 br label %_llgo_28 _llgo_28: ; preds = %_llgo_27, %_llgo_26 - %84 = load ptr, ptr @"[10]_llgo_int", align 8 - %85 = icmp eq ptr %84, null - br i1 %85, label %_llgo_29, label %_llgo_30 + %42 = load ptr, ptr @"[10]_llgo_int", align 8 + %43 = icmp eq ptr %42, null + br i1 %43, label %_llgo_29, label %_llgo_30 _llgo_29: ; preds = %_llgo_28 - %86 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 2) - %87 = call ptr @"github.com/goplus/llgo/internal/runtime.ArrayOf"(i64 10, ptr %86) - store ptr %87, ptr @"[10]_llgo_int", align 8 + %44 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 34) + %45 = call ptr @"github.com/goplus/llgo/internal/runtime.ArrayOf"(i64 10, ptr %44) + store ptr %45, ptr @"[10]_llgo_int", align 8 br label %_llgo_30 _llgo_30: ; preds = %_llgo_29, %_llgo_28 - %88 = load ptr, ptr @"_llgo_func$2_iS07vIlF2_rZqWB5eU0IvP_9HviM4MYZNkXZDvbac", align 8 - %89 = icmp eq ptr %88, null - br i1 %89, label %_llgo_31, label %_llgo_32 + %46 = load ptr, ptr @"_llgo_func$2_iS07vIlF2_rZqWB5eU0IvP_9HviM4MYZNkXZDvbac", align 8 + %47 = icmp eq ptr %46, null + br i1 %47, label %_llgo_31, label %_llgo_32 _llgo_31: ; preds = %_llgo_30 - %90 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 0) - %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 %90, ptr %92, align 8 - %93 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %91, i32 0, i32 1 - store i64 0, ptr %93, align 4 - %94 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %91, i32 0, i32 2 - store i64 0, 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.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.Func"(%"github.com/goplus/llgo/internal/runtime.Slice" %95, %"github.com/goplus/llgo/internal/runtime.Slice" %101, i1 false) - store ptr %102, ptr @"_llgo_func$2_iS07vIlF2_rZqWB5eU0IvP_9HviM4MYZNkXZDvbac", align 8 + %48 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 0) + %49 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %50 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %49, i32 0, i32 0 + store ptr %48, ptr %50, align 8 + %51 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %49, i32 0, i32 1 + store i64 0, ptr %51, align 4 + %52 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %49, i32 0, i32 2 + store i64 0, ptr %52, align 4 + %53 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %49, align 8 + %54 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 0) + %55 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %56 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %55, i32 0, i32 0 + store ptr %54, ptr %56, align 8 + %57 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %55, i32 0, i32 1 + store i64 0, ptr %57, align 4 + %58 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %55, i32 0, i32 2 + store i64 0, ptr %58, align 4 + %59 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %55, align 8 + %60 = call ptr @"github.com/goplus/llgo/internal/runtime.Func"(%"github.com/goplus/llgo/internal/runtime.Slice" %53, %"github.com/goplus/llgo/internal/runtime.Slice" %59, i1 false) + store ptr %60, ptr @"_llgo_func$2_iS07vIlF2_rZqWB5eU0IvP_9HviM4MYZNkXZDvbac", align 8 br label %_llgo_32 _llgo_32: ; preds = %_llgo_31, %_llgo_30 - %103 = load ptr, ptr @"*_llgo_int", align 8 - %104 = icmp eq ptr %103, null - br i1 %104, label %_llgo_33, label %_llgo_34 + %61 = load ptr, ptr @"*_llgo_int", align 8 + %62 = icmp eq ptr %61, null + br i1 %62, label %_llgo_33, label %_llgo_34 _llgo_33: ; preds = %_llgo_32 - %105 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 2) - %106 = call ptr @"github.com/goplus/llgo/internal/runtime.PointerTo"(ptr %105) - store ptr %106, ptr @"*_llgo_int", align 8 + %63 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 34) + %64 = call ptr @"github.com/goplus/llgo/internal/runtime.PointerTo"(ptr %63) + store ptr %64, ptr @"*_llgo_int", align 8 br label %_llgo_34 _llgo_34: ; preds = %_llgo_33, %_llgo_32 - %107 = load ptr, ptr @"[]_llgo_int", align 8 - %108 = icmp eq ptr %107, null - br i1 %108, label %_llgo_35, label %_llgo_36 + %65 = load ptr, ptr @"[]_llgo_int", align 8 + %66 = icmp eq ptr %65, null + br i1 %66, label %_llgo_35, label %_llgo_36 _llgo_35: ; preds = %_llgo_34 - %109 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 2) - %110 = call ptr @"github.com/goplus/llgo/internal/runtime.SliceOf"(ptr %109) - store ptr %110, ptr @"[]_llgo_int", align 8 + %67 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 34) + %68 = call ptr @"github.com/goplus/llgo/internal/runtime.SliceOf"(ptr %67) + store ptr %68, ptr @"[]_llgo_int", align 8 br label %_llgo_36 _llgo_36: ; preds = %_llgo_35, %_llgo_34 - %111 = load ptr, ptr @_llgo_string, align 8 - %112 = icmp eq ptr %111, null - br i1 %112, label %_llgo_37, label %_llgo_38 + %69 = load ptr, ptr @_llgo_string, align 8 + %70 = icmp eq ptr %69, null + br i1 %70, label %_llgo_37, label %_llgo_38 _llgo_37: ; preds = %_llgo_36 - %113 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 24) - store ptr %113, ptr @_llgo_string, align 8 + %71 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 24) + store ptr %71, ptr @_llgo_string, align 8 br label %_llgo_38 _llgo_38: ; preds = %_llgo_37, %_llgo_36 - %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 @4, ptr %115, align 8 - %116 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %114, i32 0, i32 1 - store i64 1, 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 null, ptr %119, align 8 - %120 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %118, i32 0, i32 1 - store i64 0, 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.Basic"(i64 3) - %123 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %117, ptr %122, i64 0, %"github.com/goplus/llgo/internal/runtime.String" %121, i1 false) - %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 @5, ptr %125, align 8 - %126 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %124, i32 0, i32 1 - store i64 1, ptr %126, align 4 - %127 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %124, align 8 - %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 null, ptr %129, align 8 - %130 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %128, i32 0, i32 1 - store i64 0, ptr %130, align 4 - %131 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %128, align 8 - %132 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 2) - %133 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %127, ptr %132, i64 8, %"github.com/goplus/llgo/internal/runtime.String" %131, i1 false) - %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 @6, ptr %135, align 8 - %136 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %134, i32 0, i32 1 - store i64 1, ptr %136, align 4 - %137 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %134, 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.Basic"(i64 2) - %143 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %137, ptr %142, i64 16, %"github.com/goplus/llgo/internal/runtime.String" %141, i1 false) - %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 @7, ptr %145, align 8 - %146 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %144, i32 0, i32 1 - store i64 4, 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 168) - %149 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %148, i64 0 - store %"github.com/goplus/llgo/internal/abi.StructField" %123, ptr %149, align 8 - %150 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %148, i64 1 - store %"github.com/goplus/llgo/internal/abi.StructField" %133, ptr %150, align 8 - %151 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %148, i64 2 - store %"github.com/goplus/llgo/internal/abi.StructField" %143, ptr %151, align 8 - %152 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %153 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %152, i32 0, i32 0 - store ptr %148, ptr %153, align 8 - %154 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %152, i32 0, i32 1 - store i64 3, ptr %154, align 4 - %155 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %152, i32 0, i32 2 - store i64 3, ptr %155, align 4 - %156 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %152, align 8 - %157 = call ptr @"github.com/goplus/llgo/internal/runtime.Struct"(%"github.com/goplus/llgo/internal/runtime.String" %147, i64 24, %"github.com/goplus/llgo/internal/runtime.Slice" %156) - store ptr %157, ptr @"main.struct$RKbUG45GE4henGMAdmt0Rju0JptyR8NsX7IZLsOI0OM", align 8 - %158 = load ptr, ptr @_llgo_main.T, align 8 - %159 = icmp eq ptr %158, null - br i1 %159, label %_llgo_39, label %_llgo_40 + %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 @4, ptr %73, align 8 + %74 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %72, i32 0, i32 1 + store i64 1, ptr %74, align 4 + %75 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %72, align 8 + %76 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %77 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %76, i32 0, i32 0 + store ptr null, ptr %77, align 8 + %78 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %76, i32 0, i32 1 + store i64 0, ptr %78, align 4 + %79 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %76, align 8 + %80 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 35) + %81 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %75, ptr %80, i64 0, %"github.com/goplus/llgo/internal/runtime.String" %79, 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 @5, 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 + %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 null, ptr %87, align 8 + %88 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %86, i32 0, i32 1 + store i64 0, 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.Basic"(i64 34) + %91 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %85, ptr %90, i64 8, %"github.com/goplus/llgo/internal/runtime.String" %89, i1 false) + %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 @6, 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.Basic"(i64 34) + %101 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %95, ptr %100, i64 16, %"github.com/goplus/llgo/internal/runtime.String" %99, i1 false) + %102 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %103 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %102, i32 0, i32 0 + store ptr @7, ptr %103, align 8 + %104 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %102, i32 0, i32 1 + store i64 4, ptr %104, align 4 + %105 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %102, align 8 + %106 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 168) + %107 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %106, i64 0 + store %"github.com/goplus/llgo/internal/abi.StructField" %81, ptr %107, align 8 + %108 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %106, i64 1 + store %"github.com/goplus/llgo/internal/abi.StructField" %91, ptr %108, align 8 + %109 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %106, i64 2 + store %"github.com/goplus/llgo/internal/abi.StructField" %101, ptr %109, align 8 + %110 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %111 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %110, i32 0, i32 0 + store ptr %106, ptr %111, align 8 + %112 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %110, i32 0, i32 1 + store i64 3, ptr %112, align 4 + %113 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %110, i32 0, i32 2 + store i64 3, ptr %113, align 4 + %114 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %110, align 8 + %115 = call ptr @"github.com/goplus/llgo/internal/runtime.Struct"(%"github.com/goplus/llgo/internal/runtime.String" %105, i64 24, %"github.com/goplus/llgo/internal/runtime.Slice" %114) + store ptr %115, ptr @"main.struct$RKbUG45GE4henGMAdmt0Rju0JptyR8NsX7IZLsOI0OM", align 8 + %116 = load ptr, ptr @_llgo_main.T, align 8 + %117 = icmp eq ptr %116, null + br i1 %117, label %_llgo_39, label %_llgo_40 _llgo_39: ; preds = %_llgo_38 - %160 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(i64 24, i64 0, i64 1) - store ptr %160, ptr @_llgo_main.T, align 8 + %118 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(i64 24, i64 0, i64 1) + store ptr %118, ptr @_llgo_main.T, align 8 br label %_llgo_40 _llgo_40: ; preds = %_llgo_39, %_llgo_38 - %161 = load ptr, ptr @_llgo_string, align 8 - br i1 %159, label %_llgo_41, label %_llgo_42 + %119 = load ptr, ptr @_llgo_string, align 8 + br i1 %117, label %_llgo_41, label %_llgo_42 _llgo_41: ; preds = %_llgo_40 - %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 @8, ptr %163, align 8 - %164 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %162, i32 0, i32 1 - store i64 6, ptr %164, align 4 - %165 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %162, align 8 - %166 = load ptr, ptr @"_llgo_func$2_iS07vIlF2_rZqWB5eU0IvP_9HviM4MYZNkXZDvbac", align 8 - %167 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 - %168 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %167, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %165, ptr %168, align 8 - %169 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %167, i32 0, i32 1 - store ptr %166, ptr %169, align 8 - %170 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %167, i32 0, i32 2 - store ptr @"main.(*T).Invoke", ptr %170, align 8 - %171 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %167, i32 0, i32 3 - store ptr @"main.(*T).Invoke", ptr %171, align 8 - %172 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %167, align 8 - %173 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 40) - %174 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %173, i64 0 - store %"github.com/goplus/llgo/internal/abi.Method" %172, ptr %174, align 8 - %175 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 - %176 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %175, i32 0, i32 0 - store ptr %173, ptr %176, align 8 - %177 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %175, i32 0, i32 1 - store i64 1, ptr %177, align 4 - %178 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %175, i32 0, i32 2 - store i64 1, ptr %178, align 4 - %179 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %175, align 8 - %180 = 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 4, 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 1, ptr %186, align 4 - %187 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %184, align 8 - call void @"github.com/goplus/llgo/internal/runtime.InitNamed"(ptr %160, %"github.com/goplus/llgo/internal/runtime.String" %183, %"github.com/goplus/llgo/internal/runtime.String" %187, ptr %161, { ptr, i64, i64 } zeroinitializer, %"github.com/goplus/llgo/internal/runtime.Slice" %179) + %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 @8, ptr %121, align 8 + %122 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %120, i32 0, i32 1 + store i64 6, ptr %122, align 4 + %123 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %120, align 8 + %124 = load ptr, ptr @"_llgo_func$2_iS07vIlF2_rZqWB5eU0IvP_9HviM4MYZNkXZDvbac", 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" %123, ptr %126, align 8 + %127 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %125, i32 0, i32 1 + store ptr %124, ptr %127, align 8 + %128 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %125, i32 0, i32 2 + store ptr @"main.(*T).Invoke", ptr %128, align 8 + %129 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %125, i32 0, i32 3 + store ptr @"main.(*T).Invoke", 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 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %133, i32 0, i32 2 + store i64 1, ptr %136, align 4 + %137 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %133, align 8 + %138 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %139 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %138, i32 0, i32 0 + store ptr @7, ptr %139, align 8 + %140 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %138, i32 0, i32 1 + store i64 4, ptr %140, align 4 + %141 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %138, align 8 + %142 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %143 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %142, i32 0, i32 0 + store ptr @9, ptr %143, align 8 + %144 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %142, i32 0, i32 1 + store i64 1, ptr %144, align 4 + %145 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %142, align 8 + call void @"github.com/goplus/llgo/internal/runtime.InitNamed"(ptr %118, %"github.com/goplus/llgo/internal/runtime.String" %141, %"github.com/goplus/llgo/internal/runtime.String" %145, ptr %119, { ptr, i64, i64 } zeroinitializer, %"github.com/goplus/llgo/internal/runtime.Slice" %137) br label %_llgo_42 _llgo_42: ; preds = %_llgo_41, %_llgo_40 diff --git a/cl/_testrt/makemap/in.go b/cl/_testrt/makemap/in.go new file mode 100644 index 000000000..4cf5ce72f --- /dev/null +++ b/cl/_testrt/makemap/in.go @@ -0,0 +1,103 @@ +package main + +func main() { + make1() + make2() + make3() + make4() + make5() +} + +func make1() { + m := make(map[int]string) + m[1] = "hello" + m[2] = "world" + m[3] = "llgo" + println(m, m[1], m[2], len(m)) + for k, v := range m { + println(k, ":", v) + } + + s := make(map[string]int, len(m)) + for k, v := range m { + s[v] = k + } + + id, ok := s["llgo"] + println("llgo", id, ok) + + none, ok := s["go"] + println("go", none, ok) + + delete(s, "llgo") + if _, ok := s["llgo"]; ok { + panic("bad key") + } + if len(s) != 2 { + panic("bad len") + } +} + +type N1 [1]int + +func make2() { + m2 := make(map[int]string) + println(m2, len(m2), m2 == nil, m2 != nil) + var m3 map[int]string + println(m3, len(m3), m3 == nil, m3 != nil) + + n := make(map[any]int) + n[N1{1}] = 100 + n[N1{2}] = 200 + n[N1{3}] = 300 + n[N1{2}] = -200 + for k, v := range n { + println(k.(N1)[0], v) + } +} + +type N struct { + n1 int8 + n2 int8 +} +type K [1]N +type K2 [1]*N + +func make3() { + var a any = K{N{1, 2}} + var b any = K{N{1, 2}} + println(a == b) + + m := make(map[any]int) + m[K{N{1, 2}}] = 100 + m[K{N{3, 4}}] = 200 + for k, v := range m { + println(k.(K)[0].n1, v) + } +} + +func make4() { + var a any = K2{&N{1, 2}} + var b any = K2{&N{1, 2}} + println(a == b) + + m := make(map[any]int) + m[K2{&N{1, 2}}] = 100 + m[K2{&N{3, 4}}] = 200 + for k, v := range m { + println(k.(K2)[0].n1, v) + } +} + +func make5() { + ch := make(chan int) + var a any = ch + var b any = ch + println(a == b) + m := make(map[chan int]int) + m[ch] = 100 + m[ch] = 200 + for k, v := range m { + println(k, v) + } +} diff --git a/cl/_testrt/makemap/out.ll b/cl/_testrt/makemap/out.ll new file mode 100644 index 000000000..72a84eba6 --- /dev/null +++ b/cl/_testrt/makemap/out.ll @@ -0,0 +1,1747 @@ +; ModuleID = 'main' +source_filename = "main" + +%"github.com/goplus/llgo/internal/runtime.String" = type { ptr, i64 } +%"github.com/goplus/llgo/internal/runtime.eface" = type { ptr, ptr } +%main.N = type { i8, i8 } +%"github.com/goplus/llgo/internal/abi.StructField" = type { %"github.com/goplus/llgo/internal/runtime.String", ptr, i64, %"github.com/goplus/llgo/internal/runtime.String", i1 } +%"github.com/goplus/llgo/internal/runtime.Slice" = type { ptr, i64, i64 } + +@"main.init$guard" = global i1 false, align 1 +@__llgo_argc = global i32 0, align 4 +@__llgo_argv = global ptr null, align 8 +@"map[_llgo_int]_llgo_string" = linkonce global ptr null, align 8 +@0 = private unnamed_addr constant [7 x i8] c"topbits", align 1 +@1 = private unnamed_addr constant [4 x i8] c"keys", align 1 +@2 = private unnamed_addr constant [5 x i8] c"elems", align 1 +@3 = private unnamed_addr constant [8 x i8] c"overflow", align 1 +@4 = private unnamed_addr constant [4 x i8] c"main", align 1 +@5 = private unnamed_addr constant [5 x i8] c"hello", align 1 +@6 = private unnamed_addr constant [5 x i8] c"world", align 1 +@7 = private unnamed_addr constant [4 x i8] c"llgo", align 1 +@8 = private unnamed_addr constant [1 x i8] c":", align 1 +@"map[_llgo_string]_llgo_int" = linkonce global ptr null, align 8 +@9 = private unnamed_addr constant [2 x i8] c"go", align 1 +@10 = private unnamed_addr constant [7 x i8] c"bad key", align 1 +@_llgo_string = linkonce global ptr null, align 8 +@11 = private unnamed_addr constant [7 x i8] c"bad len", align 1 +@"map[_llgo_any]_llgo_int" = linkonce global ptr null, align 8 +@_llgo_main.N1 = linkonce global ptr null, align 8 +@_llgo_int = linkonce global ptr null, align 8 +@"[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 +@_llgo_main.K = linkonce global ptr null, align 8 +@_llgo_main.N = linkonce global ptr null, align 8 +@"main.struct$e65EDK9vxC36Nz3YTgO1ulssLlNH03Bva_WWaCjH-4A" = 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 +@"[1]_llgo_main.N" = linkonce global ptr null, align 8 +@17 = private unnamed_addr constant [1 x i8] c"K", align 1 +@_llgo_main.K2 = linkonce global ptr null, align 8 +@"*_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 +@"chan _llgo_int" = linkonce global ptr null, align 8 +@19 = private unnamed_addr constant [4 x i8] c"chan", align 1 +@"map[chan _llgo_int]_llgo_int" = linkonce global ptr null, align 8 + +define void @main.init() { +_llgo_0: + %0 = load i1, ptr @"main.init$guard", align 1 + br i1 %0, label %_llgo_2, label %_llgo_1 + +_llgo_1: ; preds = %_llgo_0 + store i1 true, ptr @"main.init$guard", align 1 + call void @"main.init$after"() + br label %_llgo_2 + +_llgo_2: ; preds = %_llgo_1, %_llgo_0 + ret void +} + +define i32 @main(i32 %0, ptr %1) { +_llgo_0: + store i32 %0, ptr @__llgo_argc, align 4 + store ptr %1, ptr @__llgo_argv, align 8 + call void @"github.com/goplus/llgo/internal/runtime.init"() + call void @main.init() + call void @main.make1() + call void @main.make2() + call void @main.make3() + call void @main.make4() + call void @main.make5() + ret i32 0 +} + +define void @main.make1() { +_llgo_0: + %0 = load ptr, ptr @"map[_llgo_int]_llgo_string", align 8 + %1 = call ptr @"github.com/goplus/llgo/internal/runtime.MakeMap"(ptr %0, i64 0) + %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 @5, ptr %3, align 8 + %4 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2, i32 0, i32 1 + store i64 5, ptr %4, align 4 + %5 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %2, align 8 + %6 = load ptr, ptr @"map[_llgo_int]_llgo_string", align 8 + %7 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 8) + store i64 1, ptr %7, align 4 + %8 = call ptr @"github.com/goplus/llgo/internal/runtime.MapAssign"(ptr %6, ptr %1, ptr %7) + store %"github.com/goplus/llgo/internal/runtime.String" %5, ptr %8, align 8 + %9 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %10 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %9, i32 0, i32 0 + store ptr @6, ptr %10, align 8 + %11 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %9, i32 0, i32 1 + store i64 5, ptr %11, align 4 + %12 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %9, align 8 + %13 = load ptr, ptr @"map[_llgo_int]_llgo_string", align 8 + %14 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 8) + store i64 2, ptr %14, align 4 + %15 = call ptr @"github.com/goplus/llgo/internal/runtime.MapAssign"(ptr %13, ptr %1, ptr %14) + store %"github.com/goplus/llgo/internal/runtime.String" %12, ptr %15, align 8 + %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 @7, 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 = load ptr, ptr @"map[_llgo_int]_llgo_string", align 8 + %21 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 8) + store i64 3, ptr %21, align 4 + %22 = call ptr @"github.com/goplus/llgo/internal/runtime.MapAssign"(ptr %20, ptr %1, ptr %21) + store %"github.com/goplus/llgo/internal/runtime.String" %19, ptr %22, align 8 + %23 = load ptr, ptr @"map[_llgo_int]_llgo_string", align 8 + %24 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 8) + store i64 1, ptr %24, align 4 + %25 = call ptr @"github.com/goplus/llgo/internal/runtime.MapAccess1"(ptr %23, ptr %1, ptr %24) + %26 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %25, align 8 + %27 = load ptr, ptr @"map[_llgo_int]_llgo_string", align 8 + %28 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 8) + store i64 2, ptr %28, align 4 + %29 = call ptr @"github.com/goplus/llgo/internal/runtime.MapAccess1"(ptr %27, ptr %1, ptr %28) + %30 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %29, align 8 + %31 = load i64, ptr %1, align 4 + call void @"github.com/goplus/llgo/internal/runtime.PrintPointer"(ptr %1) + call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 32) + call void @"github.com/goplus/llgo/internal/runtime.PrintString"(%"github.com/goplus/llgo/internal/runtime.String" %26) + call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 32) + call void @"github.com/goplus/llgo/internal/runtime.PrintString"(%"github.com/goplus/llgo/internal/runtime.String" %30) + call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 32) + call void @"github.com/goplus/llgo/internal/runtime.PrintInt"(i64 %31) + call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 10) + %32 = load ptr, ptr @"map[_llgo_int]_llgo_string", align 8 + %33 = call ptr @"github.com/goplus/llgo/internal/runtime.NewMapIter"(ptr %32, ptr %1) + br label %_llgo_1 + +_llgo_1: ; preds = %_llgo_2, %_llgo_0 + %34 = call { i1, ptr, ptr } @"github.com/goplus/llgo/internal/runtime.MapIterNext"(ptr %33) + %35 = extractvalue { i1, ptr, ptr } %34, 0 + br i1 %35, label %_llgo_11, label %_llgo_12 + +_llgo_2: ; preds = %_llgo_13 + %36 = extractvalue { i1, i64, %"github.com/goplus/llgo/internal/runtime.String" } %152, 1 + %37 = extractvalue { i1, i64, %"github.com/goplus/llgo/internal/runtime.String" } %152, 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 @8, ptr %39, align 8 + %40 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %38, i32 0, i32 1 + store i64 1, ptr %40, align 4 + %41 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %38, align 8 + call void @"github.com/goplus/llgo/internal/runtime.PrintInt"(i64 %36) + call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 32) + call void @"github.com/goplus/llgo/internal/runtime.PrintString"(%"github.com/goplus/llgo/internal/runtime.String" %41) + call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 32) + call void @"github.com/goplus/llgo/internal/runtime.PrintString"(%"github.com/goplus/llgo/internal/runtime.String" %37) + call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 10) + br label %_llgo_1 + +_llgo_3: ; preds = %_llgo_13 + %42 = load i64, ptr %1, align 4 + %43 = load ptr, ptr @"map[_llgo_string]_llgo_int", align 8 + %44 = call ptr @"github.com/goplus/llgo/internal/runtime.MakeMap"(ptr %43, i64 %42) + %45 = load ptr, ptr @"map[_llgo_int]_llgo_string", align 8 + %46 = call ptr @"github.com/goplus/llgo/internal/runtime.NewMapIter"(ptr %45, ptr %1) + br label %_llgo_4 + +_llgo_4: ; preds = %_llgo_5, %_llgo_3 + %47 = call { i1, ptr, ptr } @"github.com/goplus/llgo/internal/runtime.MapIterNext"(ptr %46) + %48 = extractvalue { i1, ptr, ptr } %47, 0 + br i1 %48, label %_llgo_14, label %_llgo_15 + +_llgo_5: ; preds = %_llgo_16 + %49 = extractvalue { i1, i64, %"github.com/goplus/llgo/internal/runtime.String" } %168, 1 + %50 = extractvalue { i1, i64, %"github.com/goplus/llgo/internal/runtime.String" } %168, 2 + %51 = load ptr, ptr @"map[_llgo_string]_llgo_int", align 8 + %52 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 16) + store %"github.com/goplus/llgo/internal/runtime.String" %50, ptr %52, align 8 + %53 = call ptr @"github.com/goplus/llgo/internal/runtime.MapAssign"(ptr %51, ptr %44, ptr %52) + store i64 %49, ptr %53, align 4 + br label %_llgo_4 + +_llgo_6: ; preds = %_llgo_16 + %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 4, ptr %56, align 4 + %57 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %54, align 8 + %58 = load ptr, ptr @"map[_llgo_string]_llgo_int", align 8 + %59 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 16) + store %"github.com/goplus/llgo/internal/runtime.String" %57, ptr %59, align 8 + %60 = call { ptr, i1 } @"github.com/goplus/llgo/internal/runtime.MapAccess2"(ptr %58, ptr %44, ptr %59) + %61 = extractvalue { ptr, i1 } %60, 0 + %62 = load i64, ptr %61, align 4 + %63 = extractvalue { ptr, i1 } %60, 1 + %64 = alloca { i64, i1 }, align 8 + %65 = getelementptr inbounds { i64, i1 }, ptr %64, i32 0, i32 0 + store i64 %62, ptr %65, align 4 + %66 = getelementptr inbounds { i64, i1 }, ptr %64, i32 0, i32 1 + store i1 %63, ptr %66, align 1 + %67 = load { i64, i1 }, ptr %64, align 4 + %68 = extractvalue { i64, i1 } %67, 0 + %69 = extractvalue { i64, i1 } %67, 1 + %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 @7, ptr %71, align 8 + %72 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %70, i32 0, i32 1 + store i64 4, 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.PrintString"(%"github.com/goplus/llgo/internal/runtime.String" %73) + call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 32) + call void @"github.com/goplus/llgo/internal/runtime.PrintInt"(i64 %68) + call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 32) + call void @"github.com/goplus/llgo/internal/runtime.PrintBool"(i1 %69) + call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 10) + %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 @9, ptr %75, align 8 + %76 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %74, i32 0, i32 1 + store i64 2, ptr %76, align 4 + %77 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %74, align 8 + %78 = load ptr, ptr @"map[_llgo_string]_llgo_int", align 8 + %79 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 16) + store %"github.com/goplus/llgo/internal/runtime.String" %77, ptr %79, align 8 + %80 = call { ptr, i1 } @"github.com/goplus/llgo/internal/runtime.MapAccess2"(ptr %78, ptr %44, ptr %79) + %81 = extractvalue { ptr, i1 } %80, 0 + %82 = load i64, ptr %81, align 4 + %83 = extractvalue { ptr, i1 } %80, 1 + %84 = alloca { i64, i1 }, align 8 + %85 = getelementptr inbounds { i64, i1 }, ptr %84, i32 0, i32 0 + store i64 %82, ptr %85, align 4 + %86 = getelementptr inbounds { i64, i1 }, ptr %84, i32 0, i32 1 + store i1 %83, ptr %86, align 1 + %87 = load { i64, i1 }, ptr %84, align 4 + %88 = extractvalue { i64, i1 } %87, 0 + %89 = extractvalue { i64, i1 } %87, 1 + %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 @9, ptr %91, align 8 + %92 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %90, i32 0, i32 1 + store i64 2, ptr %92, align 4 + %93 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %90, align 8 + call void @"github.com/goplus/llgo/internal/runtime.PrintString"(%"github.com/goplus/llgo/internal/runtime.String" %93) + call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 32) + call void @"github.com/goplus/llgo/internal/runtime.PrintInt"(i64 %88) + call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 32) + call void @"github.com/goplus/llgo/internal/runtime.PrintBool"(i1 %89) + call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 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 @7, 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 = load ptr, ptr @"map[_llgo_string]_llgo_int", align 8 + %99 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 16) + store %"github.com/goplus/llgo/internal/runtime.String" %97, ptr %99, align 8 + call void @"github.com/goplus/llgo/internal/runtime.MapDelete"(ptr %98, ptr %44, ptr %99) + %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 @7, ptr %101, align 8 + %102 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %100, i32 0, i32 1 + store i64 4, ptr %102, align 4 + %103 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %100, align 8 + %104 = load ptr, ptr @"map[_llgo_string]_llgo_int", align 8 + %105 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 16) + store %"github.com/goplus/llgo/internal/runtime.String" %103, ptr %105, align 8 + %106 = call { ptr, i1 } @"github.com/goplus/llgo/internal/runtime.MapAccess2"(ptr %104, ptr %44, ptr %105) + %107 = extractvalue { ptr, i1 } %106, 0 + %108 = load i64, ptr %107, align 4 + %109 = extractvalue { ptr, i1 } %106, 1 + %110 = alloca { i64, i1 }, align 8 + %111 = getelementptr inbounds { i64, i1 }, ptr %110, i32 0, i32 0 + store i64 %108, ptr %111, align 4 + %112 = getelementptr inbounds { i64, i1 }, ptr %110, i32 0, i32 1 + store i1 %109, ptr %112, align 1 + %113 = load { i64, i1 }, ptr %110, align 4 + %114 = extractvalue { i64, i1 } %113, 0 + %115 = extractvalue { i64, i1 } %113, 1 + br i1 %115, label %_llgo_7, label %_llgo_8 + +_llgo_7: ; preds = %_llgo_6 + %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 7, ptr %118, align 4 + %119 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %116, align 8 + %120 = load ptr, ptr @_llgo_string, align 8 + %121 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 16) + store %"github.com/goplus/llgo/internal/runtime.String" %119, ptr %121, align 8 + %122 = alloca %"github.com/goplus/llgo/internal/runtime.eface", align 8 + %123 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.eface", ptr %122, i32 0, i32 0 + store ptr %120, ptr %123, align 8 + %124 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.eface", ptr %122, i32 0, i32 1 + store ptr %121, ptr %124, align 8 + %125 = load %"github.com/goplus/llgo/internal/runtime.eface", ptr %122, align 8 + call void @"github.com/goplus/llgo/internal/runtime.Panic"(%"github.com/goplus/llgo/internal/runtime.eface" %125) + unreachable + +_llgo_8: ; preds = %_llgo_6 + %126 = load i64, ptr %44, align 4 + %127 = icmp ne i64 %126, 2 + br i1 %127, label %_llgo_9, label %_llgo_10 + +_llgo_9: ; preds = %_llgo_8 + %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 @11, ptr %129, align 8 + %130 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %128, i32 0, i32 1 + store i64 7, ptr %130, align 4 + %131 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %128, align 8 + %132 = load ptr, ptr @_llgo_string, align 8 + %133 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 16) + store %"github.com/goplus/llgo/internal/runtime.String" %131, ptr %133, align 8 + %134 = alloca %"github.com/goplus/llgo/internal/runtime.eface", align 8 + %135 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.eface", ptr %134, i32 0, i32 0 + store ptr %132, ptr %135, align 8 + %136 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.eface", ptr %134, i32 0, i32 1 + store ptr %133, ptr %136, align 8 + %137 = load %"github.com/goplus/llgo/internal/runtime.eface", ptr %134, align 8 + call void @"github.com/goplus/llgo/internal/runtime.Panic"(%"github.com/goplus/llgo/internal/runtime.eface" %137) + unreachable + +_llgo_10: ; preds = %_llgo_8 + ret void + +_llgo_11: ; preds = %_llgo_1 + %138 = extractvalue { i1, ptr, ptr } %34, 1 + %139 = extractvalue { i1, ptr, ptr } %34, 2 + %140 = load i64, ptr %138, align 4 + %141 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %139, align 8 + %142 = alloca { i1, i64, %"github.com/goplus/llgo/internal/runtime.String" }, align 8 + %143 = getelementptr inbounds { i1, i64, %"github.com/goplus/llgo/internal/runtime.String" }, ptr %142, i32 0, i32 0 + store i1 true, ptr %143, align 1 + %144 = getelementptr inbounds { i1, i64, %"github.com/goplus/llgo/internal/runtime.String" }, ptr %142, i32 0, i32 1 + store i64 %140, ptr %144, align 4 + %145 = getelementptr inbounds { i1, i64, %"github.com/goplus/llgo/internal/runtime.String" }, ptr %142, i32 0, i32 2 + store %"github.com/goplus/llgo/internal/runtime.String" %141, ptr %145, align 8 + %146 = load { i1, i64, %"github.com/goplus/llgo/internal/runtime.String" }, ptr %142, align 8 + br label %_llgo_13 + +_llgo_12: ; preds = %_llgo_1 + %147 = alloca { i1, i64, %"github.com/goplus/llgo/internal/runtime.String" }, align 8 + %148 = getelementptr inbounds { i1, i64, %"github.com/goplus/llgo/internal/runtime.String" }, ptr %147, i32 0, i32 0 + store i1 false, ptr %148, align 1 + %149 = getelementptr inbounds { i1, i64, %"github.com/goplus/llgo/internal/runtime.String" }, ptr %147, i32 0, i32 1 + store i64 0, ptr %149, align 4 + %150 = getelementptr inbounds { i1, i64, %"github.com/goplus/llgo/internal/runtime.String" }, ptr %147, i32 0, i32 2 + store %"github.com/goplus/llgo/internal/runtime.String" zeroinitializer, ptr %150, align 8 + %151 = load { i1, i64, %"github.com/goplus/llgo/internal/runtime.String" }, ptr %147, align 8 + br label %_llgo_13 + +_llgo_13: ; preds = %_llgo_12, %_llgo_11 + %152 = phi { i1, i64, %"github.com/goplus/llgo/internal/runtime.String" } [ %146, %_llgo_11 ], [ %151, %_llgo_12 ] + %153 = extractvalue { i1, i64, %"github.com/goplus/llgo/internal/runtime.String" } %152, 0 + br i1 %153, label %_llgo_2, label %_llgo_3 + +_llgo_14: ; preds = %_llgo_4 + %154 = extractvalue { i1, ptr, ptr } %47, 1 + %155 = extractvalue { i1, ptr, ptr } %47, 2 + %156 = load i64, ptr %154, align 4 + %157 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %155, align 8 + %158 = alloca { i1, i64, %"github.com/goplus/llgo/internal/runtime.String" }, align 8 + %159 = getelementptr inbounds { i1, i64, %"github.com/goplus/llgo/internal/runtime.String" }, ptr %158, i32 0, i32 0 + store i1 true, ptr %159, align 1 + %160 = getelementptr inbounds { i1, i64, %"github.com/goplus/llgo/internal/runtime.String" }, ptr %158, i32 0, i32 1 + store i64 %156, ptr %160, align 4 + %161 = getelementptr inbounds { i1, i64, %"github.com/goplus/llgo/internal/runtime.String" }, ptr %158, i32 0, i32 2 + store %"github.com/goplus/llgo/internal/runtime.String" %157, ptr %161, align 8 + %162 = load { i1, i64, %"github.com/goplus/llgo/internal/runtime.String" }, ptr %158, align 8 + br label %_llgo_16 + +_llgo_15: ; preds = %_llgo_4 + %163 = alloca { i1, i64, %"github.com/goplus/llgo/internal/runtime.String" }, align 8 + %164 = getelementptr inbounds { i1, i64, %"github.com/goplus/llgo/internal/runtime.String" }, ptr %163, i32 0, i32 0 + store i1 false, ptr %164, align 1 + %165 = getelementptr inbounds { i1, i64, %"github.com/goplus/llgo/internal/runtime.String" }, ptr %163, i32 0, i32 1 + store i64 0, ptr %165, align 4 + %166 = getelementptr inbounds { i1, i64, %"github.com/goplus/llgo/internal/runtime.String" }, ptr %163, i32 0, i32 2 + store %"github.com/goplus/llgo/internal/runtime.String" zeroinitializer, ptr %166, align 8 + %167 = load { i1, i64, %"github.com/goplus/llgo/internal/runtime.String" }, ptr %163, align 8 + br label %_llgo_16 + +_llgo_16: ; preds = %_llgo_15, %_llgo_14 + %168 = phi { i1, i64, %"github.com/goplus/llgo/internal/runtime.String" } [ %162, %_llgo_14 ], [ %167, %_llgo_15 ] + %169 = extractvalue { i1, i64, %"github.com/goplus/llgo/internal/runtime.String" } %168, 0 + br i1 %169, label %_llgo_5, label %_llgo_6 +} + +define void @main.make2() { +_llgo_0: + %0 = load ptr, ptr @"map[_llgo_int]_llgo_string", align 8 + %1 = call ptr @"github.com/goplus/llgo/internal/runtime.MakeMap"(ptr %0, i64 0) + %2 = load i64, ptr %1, align 4 + call void @"github.com/goplus/llgo/internal/runtime.PrintPointer"(ptr %1) + call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 32) + call void @"github.com/goplus/llgo/internal/runtime.PrintInt"(i64 %2) + call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 32) + call void @"github.com/goplus/llgo/internal/runtime.PrintBool"(i1 false) + call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 32) + call void @"github.com/goplus/llgo/internal/runtime.PrintBool"(i1 true) + call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 10) + call void @"github.com/goplus/llgo/internal/runtime.PrintPointer"(ptr null) + call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 32) + call void @"github.com/goplus/llgo/internal/runtime.PrintInt"(i64 0) + call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 32) + call void @"github.com/goplus/llgo/internal/runtime.PrintBool"(i1 true) + call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 32) + call void @"github.com/goplus/llgo/internal/runtime.PrintBool"(i1 false) + call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 10) + %3 = load ptr, ptr @"map[_llgo_any]_llgo_int", align 8 + %4 = call ptr @"github.com/goplus/llgo/internal/runtime.MakeMap"(ptr %3, i64 0) + %5 = alloca [1 x i64], align 8 + %6 = call ptr @"github.com/goplus/llgo/internal/runtime.Zeroinit"(ptr %5, i64 8) + %7 = getelementptr inbounds i64, ptr %6, i64 0 + store i64 1, ptr %7, align 4 + %8 = load [1 x i64], ptr %6, align 4 + %9 = load ptr, ptr @_llgo_main.N1, align 8 + %10 = extractvalue [1 x i64] %8, 0 + %11 = inttoptr i64 %10 to ptr + %12 = alloca %"github.com/goplus/llgo/internal/runtime.eface", align 8 + %13 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.eface", ptr %12, i32 0, i32 0 + store ptr %9, ptr %13, align 8 + %14 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.eface", ptr %12, i32 0, i32 1 + store ptr %11, ptr %14, align 8 + %15 = load %"github.com/goplus/llgo/internal/runtime.eface", ptr %12, align 8 + %16 = load ptr, ptr @"map[_llgo_any]_llgo_int", align 8 + %17 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 16) + store %"github.com/goplus/llgo/internal/runtime.eface" %15, ptr %17, align 8 + %18 = call ptr @"github.com/goplus/llgo/internal/runtime.MapAssign"(ptr %16, ptr %4, ptr %17) + store i64 100, ptr %18, align 4 + %19 = alloca [1 x i64], align 8 + %20 = call ptr @"github.com/goplus/llgo/internal/runtime.Zeroinit"(ptr %19, i64 8) + %21 = getelementptr inbounds i64, ptr %20, i64 0 + store i64 2, ptr %21, align 4 + %22 = load [1 x i64], ptr %20, align 4 + %23 = load ptr, ptr @_llgo_main.N1, align 8 + %24 = extractvalue [1 x i64] %22, 0 + %25 = inttoptr i64 %24 to ptr + %26 = alloca %"github.com/goplus/llgo/internal/runtime.eface", align 8 + %27 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.eface", ptr %26, i32 0, i32 0 + store ptr %23, ptr %27, align 8 + %28 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.eface", ptr %26, i32 0, i32 1 + store ptr %25, ptr %28, align 8 + %29 = load %"github.com/goplus/llgo/internal/runtime.eface", ptr %26, align 8 + %30 = load ptr, ptr @"map[_llgo_any]_llgo_int", align 8 + %31 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 16) + store %"github.com/goplus/llgo/internal/runtime.eface" %29, ptr %31, align 8 + %32 = call ptr @"github.com/goplus/llgo/internal/runtime.MapAssign"(ptr %30, ptr %4, ptr %31) + store i64 200, ptr %32, align 4 + %33 = alloca [1 x i64], align 8 + %34 = call ptr @"github.com/goplus/llgo/internal/runtime.Zeroinit"(ptr %33, i64 8) + %35 = getelementptr inbounds i64, ptr %34, i64 0 + store i64 3, ptr %35, align 4 + %36 = load [1 x i64], ptr %34, align 4 + %37 = load ptr, ptr @_llgo_main.N1, align 8 + %38 = extractvalue [1 x i64] %36, 0 + %39 = inttoptr i64 %38 to ptr + %40 = alloca %"github.com/goplus/llgo/internal/runtime.eface", align 8 + %41 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.eface", ptr %40, i32 0, i32 0 + store ptr %37, ptr %41, align 8 + %42 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.eface", ptr %40, i32 0, i32 1 + store ptr %39, ptr %42, align 8 + %43 = load %"github.com/goplus/llgo/internal/runtime.eface", ptr %40, align 8 + %44 = load ptr, ptr @"map[_llgo_any]_llgo_int", align 8 + %45 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 16) + store %"github.com/goplus/llgo/internal/runtime.eface" %43, ptr %45, align 8 + %46 = call ptr @"github.com/goplus/llgo/internal/runtime.MapAssign"(ptr %44, ptr %4, ptr %45) + store i64 300, ptr %46, align 4 + %47 = alloca [1 x i64], align 8 + %48 = call ptr @"github.com/goplus/llgo/internal/runtime.Zeroinit"(ptr %47, i64 8) + %49 = getelementptr inbounds i64, ptr %48, i64 0 + store i64 2, ptr %49, align 4 + %50 = load [1 x i64], ptr %48, align 4 + %51 = load ptr, ptr @_llgo_main.N1, align 8 + %52 = extractvalue [1 x i64] %50, 0 + %53 = inttoptr i64 %52 to ptr + %54 = alloca %"github.com/goplus/llgo/internal/runtime.eface", align 8 + %55 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.eface", ptr %54, i32 0, i32 0 + store ptr %51, ptr %55, align 8 + %56 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.eface", ptr %54, i32 0, i32 1 + store ptr %53, ptr %56, align 8 + %57 = load %"github.com/goplus/llgo/internal/runtime.eface", ptr %54, align 8 + %58 = load ptr, ptr @"map[_llgo_any]_llgo_int", align 8 + %59 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 16) + store %"github.com/goplus/llgo/internal/runtime.eface" %57, ptr %59, align 8 + %60 = call ptr @"github.com/goplus/llgo/internal/runtime.MapAssign"(ptr %58, ptr %4, ptr %59) + store i64 -200, ptr %60, align 4 + %61 = load ptr, ptr @"map[_llgo_any]_llgo_int", align 8 + %62 = call ptr @"github.com/goplus/llgo/internal/runtime.NewMapIter"(ptr %61, ptr %4) + br label %_llgo_1 + +_llgo_1: ; preds = %_llgo_7, %_llgo_0 + %63 = call { i1, ptr, ptr } @"github.com/goplus/llgo/internal/runtime.MapIterNext"(ptr %62) + %64 = extractvalue { i1, ptr, ptr } %63, 0 + br i1 %64, label %_llgo_4, label %_llgo_5 + +_llgo_2: ; preds = %_llgo_6 + %65 = extractvalue { i1, %"github.com/goplus/llgo/internal/runtime.eface", i64 } %84, 1 + %66 = extractvalue { i1, %"github.com/goplus/llgo/internal/runtime.eface", i64 } %84, 2 + %67 = extractvalue %"github.com/goplus/llgo/internal/runtime.eface" %65, 0 + %68 = load ptr, ptr @_llgo_main.N1, align 8 + %69 = icmp eq ptr %67, %68 + br i1 %69, label %_llgo_7, label %_llgo_8 + +_llgo_3: ; preds = %_llgo_6 + ret void + +_llgo_4: ; preds = %_llgo_1 + %70 = extractvalue { i1, ptr, ptr } %63, 1 + %71 = extractvalue { i1, ptr, ptr } %63, 2 + %72 = load %"github.com/goplus/llgo/internal/runtime.eface", ptr %70, align 8 + %73 = load i64, ptr %71, align 4 + %74 = alloca { i1, %"github.com/goplus/llgo/internal/runtime.eface", i64 }, align 8 + %75 = getelementptr inbounds { i1, %"github.com/goplus/llgo/internal/runtime.eface", i64 }, ptr %74, i32 0, i32 0 + store i1 true, ptr %75, align 1 + %76 = getelementptr inbounds { i1, %"github.com/goplus/llgo/internal/runtime.eface", i64 }, ptr %74, i32 0, i32 1 + store %"github.com/goplus/llgo/internal/runtime.eface" %72, ptr %76, align 8 + %77 = getelementptr inbounds { i1, %"github.com/goplus/llgo/internal/runtime.eface", i64 }, ptr %74, i32 0, i32 2 + store i64 %73, ptr %77, align 4 + %78 = load { i1, %"github.com/goplus/llgo/internal/runtime.eface", i64 }, ptr %74, align 8 + br label %_llgo_6 + +_llgo_5: ; preds = %_llgo_1 + %79 = alloca { i1, %"github.com/goplus/llgo/internal/runtime.eface", i64 }, align 8 + %80 = getelementptr inbounds { i1, %"github.com/goplus/llgo/internal/runtime.eface", i64 }, ptr %79, i32 0, i32 0 + store i1 false, ptr %80, align 1 + %81 = getelementptr inbounds { i1, %"github.com/goplus/llgo/internal/runtime.eface", i64 }, ptr %79, i32 0, i32 1 + store %"github.com/goplus/llgo/internal/runtime.eface" zeroinitializer, ptr %81, align 8 + %82 = getelementptr inbounds { i1, %"github.com/goplus/llgo/internal/runtime.eface", i64 }, ptr %79, i32 0, i32 2 + store i64 0, ptr %82, align 4 + %83 = load { i1, %"github.com/goplus/llgo/internal/runtime.eface", i64 }, ptr %79, align 8 + br label %_llgo_6 + +_llgo_6: ; preds = %_llgo_5, %_llgo_4 + %84 = phi { i1, %"github.com/goplus/llgo/internal/runtime.eface", i64 } [ %78, %_llgo_4 ], [ %83, %_llgo_5 ] + %85 = extractvalue { i1, %"github.com/goplus/llgo/internal/runtime.eface", i64 } %84, 0 + br i1 %85, label %_llgo_2, label %_llgo_3 + +_llgo_7: ; preds = %_llgo_2 + %86 = extractvalue %"github.com/goplus/llgo/internal/runtime.eface" %65, 1 + %87 = ptrtoint ptr %86 to i64 + call void @"github.com/goplus/llgo/internal/runtime.PrintInt"(i64 %87) + call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 32) + call void @"github.com/goplus/llgo/internal/runtime.PrintInt"(i64 %66) + call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 10) + br label %_llgo_1 + +_llgo_8: ; preds = %_llgo_2 + %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 @13, ptr %89, align 8 + %90 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %88, i32 0, i32 1 + store i64 21, ptr %90, align 4 + %91 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %88, align 8 + %92 = load ptr, ptr @_llgo_string, align 8 + %93 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 16) + store %"github.com/goplus/llgo/internal/runtime.String" %91, ptr %93, align 8 + %94 = alloca %"github.com/goplus/llgo/internal/runtime.eface", align 8 + %95 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.eface", ptr %94, i32 0, i32 0 + store ptr %92, ptr %95, align 8 + %96 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.eface", ptr %94, i32 0, i32 1 + store ptr %93, ptr %96, align 8 + %97 = load %"github.com/goplus/llgo/internal/runtime.eface", ptr %94, align 8 + call void @"github.com/goplus/llgo/internal/runtime.Panic"(%"github.com/goplus/llgo/internal/runtime.eface" %97) + unreachable +} + +define void @main.make3() { +_llgo_0: + %0 = alloca [1 x %main.N], align 8 + %1 = call ptr @"github.com/goplus/llgo/internal/runtime.Zeroinit"(ptr %0, i64 2) + %2 = getelementptr inbounds %main.N, ptr %1, i64 0 + %3 = getelementptr inbounds %main.N, ptr %2, i32 0, i32 0 + %4 = getelementptr inbounds %main.N, ptr %2, i32 0, i32 1 + store i8 1, ptr %3, align 1 + store i8 2, ptr %4, align 1 + %5 = load [1 x %main.N], ptr %1, align 1 + %6 = load ptr, ptr @_llgo_main.K, align 8 + %7 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 2) + store [1 x %main.N] %5, ptr %7, align 1 + %8 = alloca %"github.com/goplus/llgo/internal/runtime.eface", align 8 + %9 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.eface", ptr %8, i32 0, i32 0 + store ptr %6, ptr %9, align 8 + %10 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.eface", ptr %8, i32 0, i32 1 + store ptr %7, ptr %10, align 8 + %11 = load %"github.com/goplus/llgo/internal/runtime.eface", ptr %8, align 8 + %12 = alloca [1 x %main.N], align 8 + %13 = call ptr @"github.com/goplus/llgo/internal/runtime.Zeroinit"(ptr %12, i64 2) + %14 = getelementptr inbounds %main.N, ptr %13, i64 0 + %15 = getelementptr inbounds %main.N, ptr %14, i32 0, i32 0 + %16 = getelementptr inbounds %main.N, ptr %14, i32 0, i32 1 + store i8 1, ptr %15, align 1 + store i8 2, ptr %16, align 1 + %17 = load [1 x %main.N], ptr %13, align 1 + %18 = load ptr, ptr @_llgo_main.K, align 8 + %19 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 2) + store [1 x %main.N] %17, ptr %19, align 1 + %20 = alloca %"github.com/goplus/llgo/internal/runtime.eface", align 8 + %21 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.eface", ptr %20, i32 0, i32 0 + store ptr %18, ptr %21, align 8 + %22 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.eface", ptr %20, i32 0, i32 1 + store ptr %19, ptr %22, align 8 + %23 = load %"github.com/goplus/llgo/internal/runtime.eface", ptr %20, align 8 + %24 = call i1 @"github.com/goplus/llgo/internal/runtime.EfaceEqual"(%"github.com/goplus/llgo/internal/runtime.eface" %11, %"github.com/goplus/llgo/internal/runtime.eface" %23) + call void @"github.com/goplus/llgo/internal/runtime.PrintBool"(i1 %24) + call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 10) + %25 = load ptr, ptr @"map[_llgo_any]_llgo_int", align 8 + %26 = call ptr @"github.com/goplus/llgo/internal/runtime.MakeMap"(ptr %25, i64 0) + %27 = alloca [1 x %main.N], align 8 + %28 = call ptr @"github.com/goplus/llgo/internal/runtime.Zeroinit"(ptr %27, i64 2) + %29 = getelementptr inbounds %main.N, ptr %28, i64 0 + %30 = getelementptr inbounds %main.N, ptr %29, i32 0, i32 0 + %31 = getelementptr inbounds %main.N, ptr %29, i32 0, i32 1 + store i8 1, ptr %30, align 1 + store i8 2, ptr %31, align 1 + %32 = load [1 x %main.N], ptr %28, align 1 + %33 = load ptr, ptr @_llgo_main.K, align 8 + %34 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 2) + store [1 x %main.N] %32, ptr %34, align 1 + %35 = alloca %"github.com/goplus/llgo/internal/runtime.eface", align 8 + %36 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.eface", ptr %35, i32 0, i32 0 + store ptr %33, ptr %36, align 8 + %37 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.eface", ptr %35, i32 0, i32 1 + store ptr %34, ptr %37, align 8 + %38 = load %"github.com/goplus/llgo/internal/runtime.eface", ptr %35, align 8 + %39 = load ptr, ptr @"map[_llgo_any]_llgo_int", align 8 + %40 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 16) + store %"github.com/goplus/llgo/internal/runtime.eface" %38, ptr %40, align 8 + %41 = call ptr @"github.com/goplus/llgo/internal/runtime.MapAssign"(ptr %39, ptr %26, ptr %40) + store i64 100, ptr %41, align 4 + %42 = alloca [1 x %main.N], align 8 + %43 = call ptr @"github.com/goplus/llgo/internal/runtime.Zeroinit"(ptr %42, i64 2) + %44 = getelementptr inbounds %main.N, ptr %43, i64 0 + %45 = getelementptr inbounds %main.N, ptr %44, i32 0, i32 0 + %46 = getelementptr inbounds %main.N, ptr %44, i32 0, i32 1 + store i8 3, ptr %45, align 1 + store i8 4, ptr %46, align 1 + %47 = load [1 x %main.N], ptr %43, align 1 + %48 = load ptr, ptr @_llgo_main.K, align 8 + %49 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 2) + store [1 x %main.N] %47, ptr %49, align 1 + %50 = alloca %"github.com/goplus/llgo/internal/runtime.eface", align 8 + %51 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.eface", ptr %50, i32 0, i32 0 + store ptr %48, ptr %51, align 8 + %52 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.eface", ptr %50, i32 0, i32 1 + store ptr %49, ptr %52, align 8 + %53 = load %"github.com/goplus/llgo/internal/runtime.eface", ptr %50, align 8 + %54 = load ptr, ptr @"map[_llgo_any]_llgo_int", align 8 + %55 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 16) + store %"github.com/goplus/llgo/internal/runtime.eface" %53, ptr %55, align 8 + %56 = call ptr @"github.com/goplus/llgo/internal/runtime.MapAssign"(ptr %54, ptr %26, ptr %55) + store i64 200, ptr %56, align 4 + %57 = load ptr, ptr @"map[_llgo_any]_llgo_int", align 8 + %58 = call ptr @"github.com/goplus/llgo/internal/runtime.NewMapIter"(ptr %57, ptr %26) + br label %_llgo_1 + +_llgo_1: ; preds = %_llgo_7, %_llgo_0 + %59 = call { i1, ptr, ptr } @"github.com/goplus/llgo/internal/runtime.MapIterNext"(ptr %58) + %60 = extractvalue { i1, ptr, ptr } %59, 0 + br i1 %60, label %_llgo_4, label %_llgo_5 + +_llgo_2: ; preds = %_llgo_6 + %61 = extractvalue { i1, %"github.com/goplus/llgo/internal/runtime.eface", i64 } %80, 1 + %62 = extractvalue { i1, %"github.com/goplus/llgo/internal/runtime.eface", i64 } %80, 2 + %63 = extractvalue %"github.com/goplus/llgo/internal/runtime.eface" %61, 0 + %64 = load ptr, ptr @_llgo_main.K, align 8 + %65 = icmp eq ptr %63, %64 + br i1 %65, label %_llgo_7, label %_llgo_8 + +_llgo_3: ; preds = %_llgo_6 + ret void + +_llgo_4: ; preds = %_llgo_1 + %66 = extractvalue { i1, ptr, ptr } %59, 1 + %67 = extractvalue { i1, ptr, ptr } %59, 2 + %68 = load %"github.com/goplus/llgo/internal/runtime.eface", ptr %66, align 8 + %69 = load i64, ptr %67, align 4 + %70 = alloca { i1, %"github.com/goplus/llgo/internal/runtime.eface", i64 }, align 8 + %71 = getelementptr inbounds { i1, %"github.com/goplus/llgo/internal/runtime.eface", i64 }, ptr %70, i32 0, i32 0 + store i1 true, ptr %71, align 1 + %72 = getelementptr inbounds { i1, %"github.com/goplus/llgo/internal/runtime.eface", i64 }, ptr %70, i32 0, i32 1 + store %"github.com/goplus/llgo/internal/runtime.eface" %68, ptr %72, align 8 + %73 = getelementptr inbounds { i1, %"github.com/goplus/llgo/internal/runtime.eface", i64 }, ptr %70, i32 0, i32 2 + store i64 %69, ptr %73, align 4 + %74 = load { i1, %"github.com/goplus/llgo/internal/runtime.eface", i64 }, ptr %70, align 8 + br label %_llgo_6 + +_llgo_5: ; preds = %_llgo_1 + %75 = alloca { i1, %"github.com/goplus/llgo/internal/runtime.eface", i64 }, align 8 + %76 = getelementptr inbounds { i1, %"github.com/goplus/llgo/internal/runtime.eface", i64 }, ptr %75, i32 0, i32 0 + store i1 false, ptr %76, align 1 + %77 = getelementptr inbounds { i1, %"github.com/goplus/llgo/internal/runtime.eface", i64 }, ptr %75, i32 0, i32 1 + store %"github.com/goplus/llgo/internal/runtime.eface" zeroinitializer, ptr %77, align 8 + %78 = getelementptr inbounds { i1, %"github.com/goplus/llgo/internal/runtime.eface", i64 }, ptr %75, i32 0, i32 2 + store i64 0, ptr %78, align 4 + %79 = load { i1, %"github.com/goplus/llgo/internal/runtime.eface", i64 }, ptr %75, align 8 + br label %_llgo_6 + +_llgo_6: ; preds = %_llgo_5, %_llgo_4 + %80 = phi { i1, %"github.com/goplus/llgo/internal/runtime.eface", i64 } [ %74, %_llgo_4 ], [ %79, %_llgo_5 ] + %81 = extractvalue { i1, %"github.com/goplus/llgo/internal/runtime.eface", i64 } %80, 0 + br i1 %81, label %_llgo_2, label %_llgo_3 + +_llgo_7: ; preds = %_llgo_2 + %82 = extractvalue %"github.com/goplus/llgo/internal/runtime.eface" %61, 1 + %83 = load [1 x %main.N], ptr %82, align 1 + %84 = alloca [1 x %main.N], align 8 + %85 = call ptr @"github.com/goplus/llgo/internal/runtime.Zeroinit"(ptr %84, i64 2) + store [1 x %main.N] %83, ptr %85, align 1 + %86 = getelementptr inbounds %main.N, ptr %85, i64 0 + %87 = load %main.N, ptr %86, align 1 + %88 = extractvalue %main.N %87, 0 + %89 = sext i8 %88 to i64 + call void @"github.com/goplus/llgo/internal/runtime.PrintInt"(i64 %89) + call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 32) + call void @"github.com/goplus/llgo/internal/runtime.PrintInt"(i64 %62) + call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 10) + br label %_llgo_1 + +_llgo_8: ; preds = %_llgo_2 + %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 @13, ptr %91, align 8 + %92 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %90, i32 0, i32 1 + store i64 21, ptr %92, align 4 + %93 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %90, align 8 + %94 = load ptr, ptr @_llgo_string, align 8 + %95 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 16) + store %"github.com/goplus/llgo/internal/runtime.String" %93, ptr %95, align 8 + %96 = alloca %"github.com/goplus/llgo/internal/runtime.eface", align 8 + %97 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.eface", ptr %96, i32 0, i32 0 + store ptr %94, ptr %97, align 8 + %98 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.eface", ptr %96, i32 0, i32 1 + store ptr %95, ptr %98, align 8 + %99 = load %"github.com/goplus/llgo/internal/runtime.eface", ptr %96, align 8 + call void @"github.com/goplus/llgo/internal/runtime.Panic"(%"github.com/goplus/llgo/internal/runtime.eface" %99) + unreachable +} + +define void @main.make4() { +_llgo_0: + %0 = alloca [1 x ptr], align 8 + %1 = call ptr @"github.com/goplus/llgo/internal/runtime.Zeroinit"(ptr %0, i64 8) + %2 = getelementptr inbounds ptr, ptr %1, i64 0 + %3 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocZ"(i64 2) + %4 = getelementptr inbounds %main.N, ptr %3, i32 0, i32 0 + %5 = getelementptr inbounds %main.N, ptr %3, i32 0, i32 1 + store i8 1, ptr %4, align 1 + store i8 2, ptr %5, align 1 + store ptr %3, ptr %2, align 8 + %6 = load [1 x ptr], ptr %1, align 8 + %7 = load ptr, ptr @_llgo_main.K2, align 8 + %8 = extractvalue [1 x ptr] %6, 0 + %9 = alloca %"github.com/goplus/llgo/internal/runtime.eface", align 8 + %10 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.eface", ptr %9, i32 0, i32 0 + store ptr %7, ptr %10, align 8 + %11 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.eface", ptr %9, i32 0, i32 1 + store ptr %8, ptr %11, align 8 + %12 = load %"github.com/goplus/llgo/internal/runtime.eface", ptr %9, align 8 + %13 = alloca [1 x ptr], align 8 + %14 = call ptr @"github.com/goplus/llgo/internal/runtime.Zeroinit"(ptr %13, i64 8) + %15 = getelementptr inbounds ptr, ptr %14, i64 0 + %16 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocZ"(i64 2) + %17 = getelementptr inbounds %main.N, ptr %16, i32 0, i32 0 + %18 = getelementptr inbounds %main.N, ptr %16, i32 0, i32 1 + store i8 1, ptr %17, align 1 + store i8 2, ptr %18, align 1 + store ptr %16, ptr %15, align 8 + %19 = load [1 x ptr], ptr %14, align 8 + %20 = load ptr, ptr @_llgo_main.K2, align 8 + %21 = extractvalue [1 x ptr] %19, 0 + %22 = alloca %"github.com/goplus/llgo/internal/runtime.eface", align 8 + %23 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.eface", ptr %22, i32 0, i32 0 + store ptr %20, ptr %23, align 8 + %24 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.eface", ptr %22, i32 0, i32 1 + store ptr %21, ptr %24, align 8 + %25 = load %"github.com/goplus/llgo/internal/runtime.eface", ptr %22, align 8 + %26 = call i1 @"github.com/goplus/llgo/internal/runtime.EfaceEqual"(%"github.com/goplus/llgo/internal/runtime.eface" %12, %"github.com/goplus/llgo/internal/runtime.eface" %25) + call void @"github.com/goplus/llgo/internal/runtime.PrintBool"(i1 %26) + call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 10) + %27 = load ptr, ptr @"map[_llgo_any]_llgo_int", align 8 + %28 = call ptr @"github.com/goplus/llgo/internal/runtime.MakeMap"(ptr %27, i64 0) + %29 = alloca [1 x ptr], align 8 + %30 = call ptr @"github.com/goplus/llgo/internal/runtime.Zeroinit"(ptr %29, i64 8) + %31 = getelementptr inbounds ptr, ptr %30, i64 0 + %32 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocZ"(i64 2) + %33 = getelementptr inbounds %main.N, ptr %32, i32 0, i32 0 + %34 = getelementptr inbounds %main.N, ptr %32, i32 0, i32 1 + store i8 1, ptr %33, align 1 + store i8 2, ptr %34, align 1 + store ptr %32, ptr %31, align 8 + %35 = load [1 x ptr], ptr %30, align 8 + %36 = load ptr, ptr @_llgo_main.K2, align 8 + %37 = extractvalue [1 x ptr] %35, 0 + %38 = alloca %"github.com/goplus/llgo/internal/runtime.eface", align 8 + %39 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.eface", ptr %38, i32 0, i32 0 + store ptr %36, ptr %39, align 8 + %40 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.eface", ptr %38, i32 0, i32 1 + store ptr %37, ptr %40, align 8 + %41 = load %"github.com/goplus/llgo/internal/runtime.eface", ptr %38, align 8 + %42 = load ptr, ptr @"map[_llgo_any]_llgo_int", align 8 + %43 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 16) + store %"github.com/goplus/llgo/internal/runtime.eface" %41, ptr %43, align 8 + %44 = call ptr @"github.com/goplus/llgo/internal/runtime.MapAssign"(ptr %42, ptr %28, ptr %43) + store i64 100, ptr %44, align 4 + %45 = alloca [1 x ptr], align 8 + %46 = call ptr @"github.com/goplus/llgo/internal/runtime.Zeroinit"(ptr %45, i64 8) + %47 = getelementptr inbounds ptr, ptr %46, i64 0 + %48 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocZ"(i64 2) + %49 = getelementptr inbounds %main.N, ptr %48, i32 0, i32 0 + %50 = getelementptr inbounds %main.N, ptr %48, i32 0, i32 1 + store i8 3, ptr %49, align 1 + store i8 4, ptr %50, align 1 + store ptr %48, ptr %47, align 8 + %51 = load [1 x ptr], ptr %46, align 8 + %52 = load ptr, ptr @_llgo_main.K2, align 8 + %53 = extractvalue [1 x ptr] %51, 0 + %54 = alloca %"github.com/goplus/llgo/internal/runtime.eface", align 8 + %55 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.eface", ptr %54, i32 0, i32 0 + store ptr %52, ptr %55, align 8 + %56 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.eface", ptr %54, i32 0, i32 1 + store ptr %53, ptr %56, align 8 + %57 = load %"github.com/goplus/llgo/internal/runtime.eface", ptr %54, align 8 + %58 = load ptr, ptr @"map[_llgo_any]_llgo_int", align 8 + %59 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 16) + store %"github.com/goplus/llgo/internal/runtime.eface" %57, ptr %59, align 8 + %60 = call ptr @"github.com/goplus/llgo/internal/runtime.MapAssign"(ptr %58, ptr %28, ptr %59) + store i64 200, ptr %60, align 4 + %61 = load ptr, ptr @"map[_llgo_any]_llgo_int", align 8 + %62 = call ptr @"github.com/goplus/llgo/internal/runtime.NewMapIter"(ptr %61, ptr %28) + br label %_llgo_1 + +_llgo_1: ; preds = %_llgo_7, %_llgo_0 + %63 = call { i1, ptr, ptr } @"github.com/goplus/llgo/internal/runtime.MapIterNext"(ptr %62) + %64 = extractvalue { i1, ptr, ptr } %63, 0 + br i1 %64, label %_llgo_4, label %_llgo_5 + +_llgo_2: ; preds = %_llgo_6 + %65 = extractvalue { i1, %"github.com/goplus/llgo/internal/runtime.eface", i64 } %84, 1 + %66 = extractvalue { i1, %"github.com/goplus/llgo/internal/runtime.eface", i64 } %84, 2 + %67 = extractvalue %"github.com/goplus/llgo/internal/runtime.eface" %65, 0 + %68 = load ptr, ptr @_llgo_main.K2, align 8 + %69 = icmp eq ptr %67, %68 + br i1 %69, label %_llgo_7, label %_llgo_8 + +_llgo_3: ; preds = %_llgo_6 + ret void + +_llgo_4: ; preds = %_llgo_1 + %70 = extractvalue { i1, ptr, ptr } %63, 1 + %71 = extractvalue { i1, ptr, ptr } %63, 2 + %72 = load %"github.com/goplus/llgo/internal/runtime.eface", ptr %70, align 8 + %73 = load i64, ptr %71, align 4 + %74 = alloca { i1, %"github.com/goplus/llgo/internal/runtime.eface", i64 }, align 8 + %75 = getelementptr inbounds { i1, %"github.com/goplus/llgo/internal/runtime.eface", i64 }, ptr %74, i32 0, i32 0 + store i1 true, ptr %75, align 1 + %76 = getelementptr inbounds { i1, %"github.com/goplus/llgo/internal/runtime.eface", i64 }, ptr %74, i32 0, i32 1 + store %"github.com/goplus/llgo/internal/runtime.eface" %72, ptr %76, align 8 + %77 = getelementptr inbounds { i1, %"github.com/goplus/llgo/internal/runtime.eface", i64 }, ptr %74, i32 0, i32 2 + store i64 %73, ptr %77, align 4 + %78 = load { i1, %"github.com/goplus/llgo/internal/runtime.eface", i64 }, ptr %74, align 8 + br label %_llgo_6 + +_llgo_5: ; preds = %_llgo_1 + %79 = alloca { i1, %"github.com/goplus/llgo/internal/runtime.eface", i64 }, align 8 + %80 = getelementptr inbounds { i1, %"github.com/goplus/llgo/internal/runtime.eface", i64 }, ptr %79, i32 0, i32 0 + store i1 false, ptr %80, align 1 + %81 = getelementptr inbounds { i1, %"github.com/goplus/llgo/internal/runtime.eface", i64 }, ptr %79, i32 0, i32 1 + store %"github.com/goplus/llgo/internal/runtime.eface" zeroinitializer, ptr %81, align 8 + %82 = getelementptr inbounds { i1, %"github.com/goplus/llgo/internal/runtime.eface", i64 }, ptr %79, i32 0, i32 2 + store i64 0, ptr %82, align 4 + %83 = load { i1, %"github.com/goplus/llgo/internal/runtime.eface", i64 }, ptr %79, align 8 + br label %_llgo_6 + +_llgo_6: ; preds = %_llgo_5, %_llgo_4 + %84 = phi { i1, %"github.com/goplus/llgo/internal/runtime.eface", i64 } [ %78, %_llgo_4 ], [ %83, %_llgo_5 ] + %85 = extractvalue { i1, %"github.com/goplus/llgo/internal/runtime.eface", i64 } %84, 0 + br i1 %85, label %_llgo_2, label %_llgo_3 + +_llgo_7: ; preds = %_llgo_2 + %86 = extractvalue %"github.com/goplus/llgo/internal/runtime.eface" %65, 1 + %87 = getelementptr inbounds %main.N, ptr %86, i32 0, i32 0 + %88 = load i8, ptr %87, align 1 + %89 = sext i8 %88 to i64 + call void @"github.com/goplus/llgo/internal/runtime.PrintInt"(i64 %89) + call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 32) + call void @"github.com/goplus/llgo/internal/runtime.PrintInt"(i64 %66) + call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 10) + br label %_llgo_1 + +_llgo_8: ; preds = %_llgo_2 + %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 @13, ptr %91, align 8 + %92 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %90, i32 0, i32 1 + store i64 21, ptr %92, align 4 + %93 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %90, align 8 + %94 = load ptr, ptr @_llgo_string, align 8 + %95 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 16) + store %"github.com/goplus/llgo/internal/runtime.String" %93, ptr %95, align 8 + %96 = alloca %"github.com/goplus/llgo/internal/runtime.eface", align 8 + %97 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.eface", ptr %96, i32 0, i32 0 + store ptr %94, ptr %97, align 8 + %98 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.eface", ptr %96, i32 0, i32 1 + store ptr %95, ptr %98, align 8 + %99 = load %"github.com/goplus/llgo/internal/runtime.eface", ptr %96, align 8 + call void @"github.com/goplus/llgo/internal/runtime.Panic"(%"github.com/goplus/llgo/internal/runtime.eface" %99) + unreachable +} + +define void @main.make5() { +_llgo_0: + %0 = call ptr @"github.com/goplus/llgo/internal/runtime.NewChan"(i64 8, i64 0) + %1 = load ptr, ptr @"chan _llgo_int", align 8 + %2 = alloca %"github.com/goplus/llgo/internal/runtime.eface", align 8 + %3 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.eface", ptr %2, i32 0, i32 0 + store ptr %1, ptr %3, align 8 + %4 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.eface", ptr %2, i32 0, i32 1 + store ptr %0, ptr %4, align 8 + %5 = load %"github.com/goplus/llgo/internal/runtime.eface", ptr %2, align 8 + %6 = load ptr, ptr @"chan _llgo_int", align 8 + %7 = alloca %"github.com/goplus/llgo/internal/runtime.eface", align 8 + %8 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.eface", ptr %7, i32 0, i32 0 + store ptr %6, ptr %8, align 8 + %9 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.eface", ptr %7, i32 0, i32 1 + store ptr %0, ptr %9, align 8 + %10 = load %"github.com/goplus/llgo/internal/runtime.eface", ptr %7, align 8 + %11 = call i1 @"github.com/goplus/llgo/internal/runtime.EfaceEqual"(%"github.com/goplus/llgo/internal/runtime.eface" %5, %"github.com/goplus/llgo/internal/runtime.eface" %10) + call void @"github.com/goplus/llgo/internal/runtime.PrintBool"(i1 %11) + call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 10) + %12 = load ptr, ptr @"map[chan _llgo_int]_llgo_int", align 8 + %13 = call ptr @"github.com/goplus/llgo/internal/runtime.MakeMap"(ptr %12, i64 0) + %14 = load ptr, ptr @"map[chan _llgo_int]_llgo_int", align 8 + %15 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 8) + store ptr %0, ptr %15, align 8 + %16 = call ptr @"github.com/goplus/llgo/internal/runtime.MapAssign"(ptr %14, ptr %13, ptr %15) + store i64 100, ptr %16, align 4 + %17 = load ptr, ptr @"map[chan _llgo_int]_llgo_int", align 8 + %18 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 8) + store ptr %0, ptr %18, align 8 + %19 = call ptr @"github.com/goplus/llgo/internal/runtime.MapAssign"(ptr %17, ptr %13, ptr %18) + store i64 200, ptr %19, align 4 + %20 = load ptr, ptr @"map[chan _llgo_int]_llgo_int", align 8 + %21 = call ptr @"github.com/goplus/llgo/internal/runtime.NewMapIter"(ptr %20, ptr %13) + br label %_llgo_1 + +_llgo_1: ; preds = %_llgo_2, %_llgo_0 + %22 = call { i1, ptr, ptr } @"github.com/goplus/llgo/internal/runtime.MapIterNext"(ptr %21) + %23 = extractvalue { i1, ptr, ptr } %22, 0 + br i1 %23, label %_llgo_4, label %_llgo_5 + +_llgo_2: ; preds = %_llgo_6 + %24 = extractvalue { i1, ptr, i64 } %40, 1 + %25 = extractvalue { i1, ptr, i64 } %40, 2 + call void @"github.com/goplus/llgo/internal/runtime.PrintPointer"(ptr %24) + call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 32) + call void @"github.com/goplus/llgo/internal/runtime.PrintInt"(i64 %25) + call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 10) + br label %_llgo_1 + +_llgo_3: ; preds = %_llgo_6 + ret void + +_llgo_4: ; preds = %_llgo_1 + %26 = extractvalue { i1, ptr, ptr } %22, 1 + %27 = extractvalue { i1, ptr, ptr } %22, 2 + %28 = load ptr, ptr %26, align 8 + %29 = load i64, ptr %27, align 4 + %30 = alloca { i1, ptr, i64 }, align 8 + %31 = getelementptr inbounds { i1, ptr, i64 }, ptr %30, i32 0, i32 0 + store i1 true, ptr %31, align 1 + %32 = getelementptr inbounds { i1, ptr, i64 }, ptr %30, i32 0, i32 1 + store ptr %28, ptr %32, align 8 + %33 = getelementptr inbounds { i1, ptr, i64 }, ptr %30, i32 0, i32 2 + store i64 %29, ptr %33, align 4 + %34 = load { i1, ptr, i64 }, ptr %30, align 8 + br label %_llgo_6 + +_llgo_5: ; preds = %_llgo_1 + %35 = alloca { i1, ptr, i64 }, align 8 + %36 = getelementptr inbounds { i1, ptr, i64 }, ptr %35, i32 0, i32 0 + store i1 false, ptr %36, align 1 + %37 = getelementptr inbounds { i1, ptr, i64 }, ptr %35, i32 0, i32 1 + store ptr null, ptr %37, align 8 + %38 = getelementptr inbounds { i1, ptr, i64 }, ptr %35, i32 0, i32 2 + store i64 0, ptr %38, align 4 + %39 = load { i1, ptr, i64 }, ptr %35, align 8 + br label %_llgo_6 + +_llgo_6: ; preds = %_llgo_5, %_llgo_4 + %40 = phi { i1, ptr, i64 } [ %34, %_llgo_4 ], [ %39, %_llgo_5 ] + %41 = extractvalue { i1, ptr, i64 } %40, 0 + br i1 %41, label %_llgo_2, label %_llgo_3 +} + +declare void @"github.com/goplus/llgo/internal/runtime.init"() + +define void @"main.init$after"() { +_llgo_0: + %0 = load ptr, ptr @"map[_llgo_int]_llgo_string", align 8 + %1 = icmp eq ptr %0, null + br i1 %1, label %_llgo_1, label %_llgo_2 + +_llgo_1: ; preds = %_llgo_0 + %2 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 34) + %3 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 24) + %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 7, 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.Basic"(i64 40) + %13 = call ptr @"github.com/goplus/llgo/internal/runtime.ArrayOf"(i64 8, ptr %12) + %14 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %7, ptr %13, i64 0, %"github.com/goplus/llgo/internal/runtime.String" %11, 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 @1, 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 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %20 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %19, i32 0, i32 0 + store ptr null, ptr %20, align 8 + %21 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %19, i32 0, i32 1 + store i64 0, ptr %21, align 4 + %22 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %19, align 8 + %23 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 34) + %24 = call ptr @"github.com/goplus/llgo/internal/runtime.ArrayOf"(i64 8, ptr %23) + %25 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %18, ptr %24, i64 8, %"github.com/goplus/llgo/internal/runtime.String" %22, i1 false) + %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 @2, ptr %27, align 8 + %28 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %26, i32 0, i32 1 + store i64 5, ptr %28, align 4 + %29 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %26, 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 null, ptr %31, align 8 + %32 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %30, i32 0, i32 1 + store i64 0, ptr %32, align 4 + %33 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %30, align 8 + %34 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 24) + %35 = call ptr @"github.com/goplus/llgo/internal/runtime.ArrayOf"(i64 8, ptr %34) + %36 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %29, ptr %35, i64 72, %"github.com/goplus/llgo/internal/runtime.String" %33, i1 false) + %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 @3, ptr %38, align 8 + %39 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %37, i32 0, i32 1 + store i64 8, ptr %39, align 4 + %40 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %37, align 8 + %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 null, ptr %42, align 8 + %43 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %41, i32 0, i32 1 + store i64 0, ptr %43, align 4 + %44 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %41, align 8 + %45 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 58) + %46 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %40, ptr %45, i64 200, %"github.com/goplus/llgo/internal/runtime.String" %44, i1 false) + %47 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %48 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %47, i32 0, i32 0 + store ptr @4, ptr %48, align 8 + %49 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %47, i32 0, i32 1 + store i64 4, ptr %49, align 4 + %50 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %47, align 8 + %51 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 224) + %52 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %51, i64 0 + store %"github.com/goplus/llgo/internal/abi.StructField" %14, ptr %52, align 8 + %53 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %51, i64 1 + store %"github.com/goplus/llgo/internal/abi.StructField" %25, ptr %53, align 8 + %54 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %51, i64 2 + store %"github.com/goplus/llgo/internal/abi.StructField" %36, ptr %54, align 8 + %55 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %51, i64 3 + store %"github.com/goplus/llgo/internal/abi.StructField" %46, 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 %51, ptr %57, align 8 + %58 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %56, i32 0, i32 1 + store i64 4, ptr %58, align 4 + %59 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %56, i32 0, i32 2 + store i64 4, 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.Struct"(%"github.com/goplus/llgo/internal/runtime.String" %50, i64 208, %"github.com/goplus/llgo/internal/runtime.Slice" %60) + %62 = call ptr @"github.com/goplus/llgo/internal/runtime.MapOf"(ptr %2, ptr %3, ptr %61, i64 4) + store ptr %62, ptr @"map[_llgo_int]_llgo_string", align 8 + br label %_llgo_2 + +_llgo_2: ; preds = %_llgo_1, %_llgo_0 + %63 = load ptr, ptr @"map[_llgo_string]_llgo_int", align 8 + %64 = icmp eq ptr %63, null + br i1 %64, label %_llgo_3, label %_llgo_4 + +_llgo_3: ; preds = %_llgo_2 + %65 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 24) + %66 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 34) + %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 @0, ptr %68, align 8 + %69 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %67, i32 0, i32 1 + store i64 7, ptr %69, align 4 + %70 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %67, align 8 + %71 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %72 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %71, i32 0, i32 0 + store ptr null, ptr %72, align 8 + %73 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %71, i32 0, i32 1 + store i64 0, 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.Basic"(i64 40) + %76 = call ptr @"github.com/goplus/llgo/internal/runtime.ArrayOf"(i64 8, ptr %75) + %77 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %70, ptr %76, i64 0, %"github.com/goplus/llgo/internal/runtime.String" %74, 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 @1, 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 null, ptr %83, align 8 + %84 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %82, i32 0, i32 1 + store i64 0, 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.Basic"(i64 24) + %87 = call ptr @"github.com/goplus/llgo/internal/runtime.ArrayOf"(i64 8, ptr %86) + %88 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %81, ptr %87, i64 8, %"github.com/goplus/llgo/internal/runtime.String" %85, i1 false) + %89 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %90 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %89, i32 0, i32 0 + store ptr @2, ptr %90, align 8 + %91 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %89, i32 0, i32 1 + store i64 5, 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.Basic"(i64 34) + %98 = call ptr @"github.com/goplus/llgo/internal/runtime.ArrayOf"(i64 8, ptr %97) + %99 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %92, ptr %98, i64 136, %"github.com/goplus/llgo/internal/runtime.String" %96, i1 false) + %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 @3, ptr %101, align 8 + %102 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %100, i32 0, i32 1 + store i64 8, ptr %102, align 4 + %103 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %100, align 8 + %104 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %105 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %104, i32 0, i32 0 + store ptr null, ptr %105, align 8 + %106 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %104, i32 0, i32 1 + store i64 0, ptr %106, align 4 + %107 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %104, align 8 + %108 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 58) + %109 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %103, ptr %108, i64 200, %"github.com/goplus/llgo/internal/runtime.String" %107, i1 false) + %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 @4, ptr %111, align 8 + %112 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %110, i32 0, i32 1 + store i64 4, 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.AllocU"(i64 224) + %115 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %114, i64 0 + store %"github.com/goplus/llgo/internal/abi.StructField" %77, ptr %115, align 8 + %116 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %114, i64 1 + store %"github.com/goplus/llgo/internal/abi.StructField" %88, ptr %116, align 8 + %117 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %114, i64 2 + store %"github.com/goplus/llgo/internal/abi.StructField" %99, ptr %117, align 8 + %118 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %114, i64 3 + store %"github.com/goplus/llgo/internal/abi.StructField" %109, ptr %118, align 8 + %119 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %120 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %119, i32 0, i32 0 + store ptr %114, ptr %120, align 8 + %121 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %119, i32 0, i32 1 + store i64 4, ptr %121, align 4 + %122 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %119, i32 0, i32 2 + store i64 4, ptr %122, align 4 + %123 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %119, align 8 + %124 = call ptr @"github.com/goplus/llgo/internal/runtime.Struct"(%"github.com/goplus/llgo/internal/runtime.String" %113, i64 208, %"github.com/goplus/llgo/internal/runtime.Slice" %123) + %125 = call ptr @"github.com/goplus/llgo/internal/runtime.MapOf"(ptr %65, ptr %66, ptr %124, i64 12) + store ptr %125, ptr @"map[_llgo_string]_llgo_int", align 8 + br label %_llgo_4 + +_llgo_4: ; preds = %_llgo_3, %_llgo_2 + %126 = load ptr, ptr @_llgo_string, align 8 + %127 = icmp eq ptr %126, null + br i1 %127, label %_llgo_5, label %_llgo_6 + +_llgo_5: ; preds = %_llgo_4 + %128 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 24) + store ptr %128, ptr @_llgo_string, align 8 + br label %_llgo_6 + +_llgo_6: ; preds = %_llgo_5, %_llgo_4 + %129 = load ptr, ptr @"map[_llgo_any]_llgo_int", align 8 + %130 = icmp eq ptr %129, null + br i1 %130, label %_llgo_7, label %_llgo_8 + +_llgo_7: ; preds = %_llgo_6 + %131 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 0) + %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 %131, ptr %133, align 8 + %134 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %132, i32 0, i32 1 + store i64 0, ptr %134, align 4 + %135 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %132, i32 0, i32 2 + store i64 0, 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 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.Interface"(%"github.com/goplus/llgo/internal/runtime.String" %140, %"github.com/goplus/llgo/internal/runtime.String" %144, %"github.com/goplus/llgo/internal/runtime.Slice" %136) + %146 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 34) + %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 @0, ptr %148, align 8 + %149 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %147, i32 0, i32 1 + store i64 7, ptr %149, align 4 + %150 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %147, 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 + %153 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %151, i32 0, i32 1 + store i64 0, 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.Basic"(i64 40) + %156 = call ptr @"github.com/goplus/llgo/internal/runtime.ArrayOf"(i64 8, ptr %155) + %157 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %150, ptr %156, i64 0, %"github.com/goplus/llgo/internal/runtime.String" %154, i1 false) + %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 @1, 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 null, ptr %163, align 8 + %164 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %162, i32 0, i32 1 + store i64 0, ptr %164, align 4 + %165 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %162, align 8 + %166 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 0) + %167 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %168 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %167, i32 0, i32 0 + store ptr %166, ptr %168, align 8 + %169 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %167, i32 0, i32 1 + store i64 0, ptr %169, align 4 + %170 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %167, i32 0, i32 2 + store i64 0, ptr %170, align 4 + %171 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %167, 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 @4, 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.Interface"(%"github.com/goplus/llgo/internal/runtime.String" %175, %"github.com/goplus/llgo/internal/runtime.String" %179, %"github.com/goplus/llgo/internal/runtime.Slice" %171) + %181 = call ptr @"github.com/goplus/llgo/internal/runtime.ArrayOf"(i64 8, ptr %180) + %182 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %161, ptr %181, i64 8, %"github.com/goplus/llgo/internal/runtime.String" %165, i1 false) + %183 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %184 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %183, i32 0, i32 0 + store ptr @2, ptr %184, align 8 + %185 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %183, i32 0, i32 1 + store i64 5, ptr %185, align 4 + %186 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %183, align 8 + %187 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %188 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %187, i32 0, i32 0 + store ptr null, ptr %188, align 8 + %189 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %187, i32 0, i32 1 + store i64 0, ptr %189, align 4 + %190 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %187, align 8 + %191 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 34) + %192 = call ptr @"github.com/goplus/llgo/internal/runtime.ArrayOf"(i64 8, ptr %191) + %193 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %186, ptr %192, i64 136, %"github.com/goplus/llgo/internal/runtime.String" %190, i1 false) + %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 @3, ptr %195, align 8 + %196 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %194, i32 0, i32 1 + store i64 8, ptr %196, align 4 + %197 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %194, align 8 + %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 null, ptr %199, align 8 + %200 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %198, i32 0, i32 1 + store i64 0, 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.Basic"(i64 58) + %203 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %197, ptr %202, i64 200, %"github.com/goplus/llgo/internal/runtime.String" %201, i1 false) + %204 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %205 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %204, i32 0, i32 0 + store ptr @4, ptr %205, align 8 + %206 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %204, i32 0, i32 1 + store i64 4, ptr %206, align 4 + %207 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %204, align 8 + %208 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 224) + %209 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %208, i64 0 + store %"github.com/goplus/llgo/internal/abi.StructField" %157, ptr %209, align 8 + %210 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %208, i64 1 + store %"github.com/goplus/llgo/internal/abi.StructField" %182, ptr %210, align 8 + %211 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %208, i64 2 + store %"github.com/goplus/llgo/internal/abi.StructField" %193, ptr %211, align 8 + %212 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %208, i64 3 + store %"github.com/goplus/llgo/internal/abi.StructField" %203, ptr %212, align 8 + %213 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %214 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %213, i32 0, i32 0 + store ptr %208, ptr %214, align 8 + %215 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %213, i32 0, i32 1 + store i64 4, ptr %215, align 4 + %216 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %213, i32 0, i32 2 + store i64 4, ptr %216, align 4 + %217 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %213, align 8 + %218 = call ptr @"github.com/goplus/llgo/internal/runtime.Struct"(%"github.com/goplus/llgo/internal/runtime.String" %207, i64 208, %"github.com/goplus/llgo/internal/runtime.Slice" %217) + %219 = call ptr @"github.com/goplus/llgo/internal/runtime.MapOf"(ptr %145, ptr %146, ptr %218, i64 24) + store ptr %219, ptr @"map[_llgo_any]_llgo_int", align 8 + br label %_llgo_8 + +_llgo_8: ; preds = %_llgo_7, %_llgo_6 + %220 = load ptr, ptr @_llgo_main.N1, align 8 + %221 = icmp eq ptr %220, null + br i1 %221, label %_llgo_9, label %_llgo_10 + +_llgo_9: ; preds = %_llgo_8 + %222 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(i64 17, i64 0, i64 0) + store ptr %222, ptr @_llgo_main.N1, align 8 + br label %_llgo_10 + +_llgo_10: ; preds = %_llgo_9, %_llgo_8 + %223 = load ptr, ptr @_llgo_int, align 8 + %224 = icmp eq ptr %223, null + br i1 %224, label %_llgo_11, label %_llgo_12 + +_llgo_11: ; preds = %_llgo_10 + %225 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 34) + store ptr %225, ptr @_llgo_int, align 8 + br label %_llgo_12 + +_llgo_12: ; preds = %_llgo_11, %_llgo_10 + %226 = load ptr, ptr @_llgo_int, align 8 + %227 = load ptr, ptr @"[1]_llgo_int", align 8 + %228 = icmp eq ptr %227, null + br i1 %228, label %_llgo_13, label %_llgo_14 + +_llgo_13: ; preds = %_llgo_12 + %229 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 34) + %230 = call ptr @"github.com/goplus/llgo/internal/runtime.ArrayOf"(i64 1, ptr %229) + store ptr %230, ptr @"[1]_llgo_int", align 8 + br label %_llgo_14 + +_llgo_14: ; preds = %_llgo_13, %_llgo_12 + %231 = load ptr, ptr @"[1]_llgo_int", align 8 + br i1 %221, label %_llgo_15, label %_llgo_16 + +_llgo_15: ; preds = %_llgo_14 + %232 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %233 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %232, i32 0, i32 0 + store ptr @4, ptr %233, align 8 + %234 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %232, i32 0, i32 1 + store i64 4, ptr %234, align 4 + %235 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %232, align 8 + %236 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %237 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %236, i32 0, i32 0 + store ptr @12, ptr %237, align 8 + %238 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %236, i32 0, i32 1 + store i64 2, ptr %238, align 4 + %239 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %236, align 8 + call void @"github.com/goplus/llgo/internal/runtime.InitNamed"(ptr %222, %"github.com/goplus/llgo/internal/runtime.String" %235, %"github.com/goplus/llgo/internal/runtime.String" %239, ptr %231, { ptr, i64, i64 } zeroinitializer, { ptr, i64, i64 } zeroinitializer) + br label %_llgo_16 + +_llgo_16: ; preds = %_llgo_15, %_llgo_14 + %240 = load ptr, ptr @_llgo_main.K, align 8 + %241 = icmp eq ptr %240, null + br i1 %241, label %_llgo_17, label %_llgo_18 + +_llgo_17: ; preds = %_llgo_16 + %242 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(i64 17, i64 0, i64 0) + store ptr %242, ptr @_llgo_main.K, align 8 + br label %_llgo_18 + +_llgo_18: ; preds = %_llgo_17, %_llgo_16 + %243 = load ptr, ptr @_llgo_main.N, align 8 + %244 = icmp eq ptr %243, null + br i1 %244, label %_llgo_19, label %_llgo_20 + +_llgo_19: ; preds = %_llgo_18 + %245 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(i64 25, i64 0, i64 0) + store ptr %245, ptr @_llgo_main.N, align 8 + br label %_llgo_20 + +_llgo_20: ; preds = %_llgo_19, %_llgo_18 + %246 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %247 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %246, i32 0, i32 0 + store ptr @14, ptr %247, align 8 + %248 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %246, i32 0, i32 1 + store i64 2, ptr %248, align 4 + %249 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %246, align 8 + %250 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %251 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %250, i32 0, i32 0 + store ptr null, ptr %251, align 8 + %252 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %250, i32 0, i32 1 + store i64 0, ptr %252, align 4 + %253 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %250, align 8 + %254 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 35) + %255 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %249, ptr %254, i64 0, %"github.com/goplus/llgo/internal/runtime.String" %253, i1 false) + %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 @15, ptr %257, align 8 + %258 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %256, i32 0, i32 1 + store i64 2, ptr %258, align 4 + %259 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %256, align 8 + %260 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %261 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %260, i32 0, i32 0 + store ptr null, ptr %261, align 8 + %262 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %260, i32 0, i32 1 + store i64 0, ptr %262, align 4 + %263 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %260, align 8 + %264 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 35) + %265 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %259, ptr %264, i64 1, %"github.com/goplus/llgo/internal/runtime.String" %263, i1 false) + %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 @4, ptr %267, align 8 + %268 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %266, i32 0, i32 1 + store i64 4, ptr %268, align 4 + %269 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %266, align 8 + %270 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 112) + %271 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %270, i64 0 + store %"github.com/goplus/llgo/internal/abi.StructField" %255, ptr %271, align 8 + %272 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %270, i64 1 + store %"github.com/goplus/llgo/internal/abi.StructField" %265, ptr %272, align 8 + %273 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %274 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %273, i32 0, i32 0 + store ptr %270, ptr %274, align 8 + %275 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %273, i32 0, i32 1 + store i64 2, ptr %275, align 4 + %276 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %273, i32 0, i32 2 + store i64 2, ptr %276, align 4 + %277 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %273, align 8 + %278 = call ptr @"github.com/goplus/llgo/internal/runtime.Struct"(%"github.com/goplus/llgo/internal/runtime.String" %269, i64 2, %"github.com/goplus/llgo/internal/runtime.Slice" %277) + store ptr %278, ptr @"main.struct$e65EDK9vxC36Nz3YTgO1ulssLlNH03Bva_WWaCjH-4A", align 8 + %279 = load ptr, ptr @"main.struct$e65EDK9vxC36Nz3YTgO1ulssLlNH03Bva_WWaCjH-4A", align 8 + br i1 %244, label %_llgo_21, label %_llgo_22 + +_llgo_21: ; preds = %_llgo_20 + %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 @4, ptr %281, align 8 + %282 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %280, i32 0, i32 1 + store i64 4, ptr %282, align 4 + %283 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %280, 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 @16, ptr %285, align 8 + %286 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %284, i32 0, i32 1 + store i64 1, ptr %286, align 4 + %287 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %284, align 8 + call void @"github.com/goplus/llgo/internal/runtime.InitNamed"(ptr %245, %"github.com/goplus/llgo/internal/runtime.String" %283, %"github.com/goplus/llgo/internal/runtime.String" %287, ptr %279, { ptr, i64, i64 } zeroinitializer, { ptr, i64, i64 } zeroinitializer) + br label %_llgo_22 + +_llgo_22: ; preds = %_llgo_21, %_llgo_20 + %288 = load ptr, ptr @_llgo_main.N, align 8 + %289 = load ptr, ptr @"[1]_llgo_main.N", align 8 + %290 = icmp eq ptr %289, null + br i1 %290, label %_llgo_23, label %_llgo_24 + +_llgo_23: ; preds = %_llgo_22 + %291 = call ptr @"github.com/goplus/llgo/internal/runtime.ArrayOf"(i64 1, ptr %245) + store ptr %291, ptr @"[1]_llgo_main.N", align 8 + br label %_llgo_24 + +_llgo_24: ; preds = %_llgo_23, %_llgo_22 + %292 = load ptr, ptr @"[1]_llgo_main.N", align 8 + br i1 %241, label %_llgo_25, label %_llgo_26 + +_llgo_25: ; preds = %_llgo_24 + %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 @4, 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 @17, ptr %298, align 8 + %299 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %297, i32 0, i32 1 + store i64 1, 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 %242, %"github.com/goplus/llgo/internal/runtime.String" %296, %"github.com/goplus/llgo/internal/runtime.String" %300, ptr %292, { ptr, i64, i64 } zeroinitializer, { ptr, i64, i64 } zeroinitializer) + br label %_llgo_26 + +_llgo_26: ; preds = %_llgo_25, %_llgo_24 + %301 = load ptr, ptr @_llgo_main.K2, align 8 + %302 = icmp eq ptr %301, null + br i1 %302, label %_llgo_27, label %_llgo_28 + +_llgo_27: ; preds = %_llgo_26 + %303 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(i64 17, i64 0, i64 0) + store ptr %303, ptr @_llgo_main.K2, align 8 + br label %_llgo_28 + +_llgo_28: ; preds = %_llgo_27, %_llgo_26 + %304 = load ptr, ptr @"*_llgo_main.N", align 8 + %305 = icmp eq ptr %304, null + br i1 %305, label %_llgo_29, label %_llgo_30 + +_llgo_29: ; preds = %_llgo_28 + %306 = call ptr @"github.com/goplus/llgo/internal/runtime.PointerTo"(ptr %245) + store ptr %306, ptr @"*_llgo_main.N", align 8 + br label %_llgo_30 + +_llgo_30: ; preds = %_llgo_29, %_llgo_28 + %307 = load ptr, ptr @"*_llgo_main.N", align 8 + %308 = load ptr, ptr @"[1]*_llgo_main.N", align 8 + %309 = icmp eq ptr %308, null + br i1 %309, label %_llgo_31, label %_llgo_32 + +_llgo_31: ; preds = %_llgo_30 + %310 = call ptr @"github.com/goplus/llgo/internal/runtime.PointerTo"(ptr %245) + %311 = call ptr @"github.com/goplus/llgo/internal/runtime.ArrayOf"(i64 1, ptr %310) + store ptr %311, ptr @"[1]*_llgo_main.N", align 8 + br label %_llgo_32 + +_llgo_32: ; preds = %_llgo_31, %_llgo_30 + %312 = load ptr, ptr @"[1]*_llgo_main.N", align 8 + br i1 %302, label %_llgo_33, label %_llgo_34 + +_llgo_33: ; preds = %_llgo_32 + %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 @4, 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 @18, 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 %303, %"github.com/goplus/llgo/internal/runtime.String" %316, %"github.com/goplus/llgo/internal/runtime.String" %320, ptr %312, { ptr, i64, i64 } zeroinitializer, { ptr, i64, i64 } zeroinitializer) + br label %_llgo_34 + +_llgo_34: ; preds = %_llgo_33, %_llgo_32 + %321 = load ptr, ptr @"chan _llgo_int", align 8 + %322 = icmp eq ptr %321, null + br i1 %322, label %_llgo_35, label %_llgo_36 + +_llgo_35: ; preds = %_llgo_34 + %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 @19, ptr %324, align 8 + %325 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %323, i32 0, i32 1 + store i64 4, ptr %325, align 4 + %326 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %323, align 8 + %327 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 34) + %328 = call ptr @"github.com/goplus/llgo/internal/runtime.ChanOf"(i64 3, %"github.com/goplus/llgo/internal/runtime.String" %326, ptr %327) + store ptr %328, ptr @"chan _llgo_int", align 8 + br label %_llgo_36 + +_llgo_36: ; preds = %_llgo_35, %_llgo_34 + %329 = load ptr, ptr @"map[chan _llgo_int]_llgo_int", align 8 + %330 = icmp eq ptr %329, null + br i1 %330, label %_llgo_37, label %_llgo_38 + +_llgo_37: ; preds = %_llgo_36 + %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 @19, ptr %332, align 8 + %333 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %331, i32 0, i32 1 + store i64 4, ptr %333, align 4 + %334 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %331, align 8 + %335 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 34) + %336 = call ptr @"github.com/goplus/llgo/internal/runtime.ChanOf"(i64 3, %"github.com/goplus/llgo/internal/runtime.String" %334, ptr %335) + %337 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 34) + %338 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %339 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %338, i32 0, i32 0 + store ptr @0, ptr %339, align 8 + %340 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %338, i32 0, i32 1 + store i64 7, ptr %340, align 4 + %341 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %338, align 8 + %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 null, ptr %343, align 8 + %344 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %342, i32 0, i32 1 + store i64 0, 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.Basic"(i64 40) + %347 = call ptr @"github.com/goplus/llgo/internal/runtime.ArrayOf"(i64 8, ptr %346) + %348 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %341, ptr %347, i64 0, %"github.com/goplus/llgo/internal/runtime.String" %345, i1 false) + %349 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %350 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %349, i32 0, i32 0 + store ptr @1, ptr %350, align 8 + %351 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %349, i32 0, i32 1 + store i64 4, ptr %351, align 4 + %352 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %349, align 8 + %353 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %354 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %353, i32 0, i32 0 + store ptr null, ptr %354, align 8 + %355 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %353, i32 0, i32 1 + store i64 0, 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 @19, ptr %358, align 8 + %359 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %357, i32 0, i32 1 + store i64 4, ptr %359, align 4 + %360 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %357, align 8 + %361 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 34) + %362 = call ptr @"github.com/goplus/llgo/internal/runtime.ChanOf"(i64 3, %"github.com/goplus/llgo/internal/runtime.String" %360, ptr %361) + %363 = call ptr @"github.com/goplus/llgo/internal/runtime.ArrayOf"(i64 8, ptr %362) + %364 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %352, ptr %363, i64 8, %"github.com/goplus/llgo/internal/runtime.String" %356, i1 false) + %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 @2, ptr %366, align 8 + %367 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %365, i32 0, i32 1 + store i64 5, ptr %367, align 4 + %368 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %365, align 8 + %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 null, ptr %370, align 8 + %371 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %369, i32 0, i32 1 + store i64 0, 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.Basic"(i64 34) + %374 = call ptr @"github.com/goplus/llgo/internal/runtime.ArrayOf"(i64 8, ptr %373) + %375 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %368, ptr %374, i64 72, %"github.com/goplus/llgo/internal/runtime.String" %372, i1 false) + %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 @3, ptr %377, align 8 + %378 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %376, i32 0, i32 1 + store i64 8, 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 58) + %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 136, %"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 @4, 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 224) + %391 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %390, i64 0 + store %"github.com/goplus/llgo/internal/abi.StructField" %348, ptr %391, align 8 + %392 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %390, i64 1 + store %"github.com/goplus/llgo/internal/abi.StructField" %364, ptr %392, align 8 + %393 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %390, i64 2 + store %"github.com/goplus/llgo/internal/abi.StructField" %375, ptr %393, align 8 + %394 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %390, i64 3 + store %"github.com/goplus/llgo/internal/abi.StructField" %385, ptr %394, align 8 + %395 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 + %396 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %395, i32 0, i32 0 + store ptr %390, ptr %396, align 8 + %397 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %395, i32 0, i32 1 + store i64 4, ptr %397, align 4 + %398 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %395, i32 0, i32 2 + store i64 4, ptr %398, align 4 + %399 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %395, align 8 + %400 = call ptr @"github.com/goplus/llgo/internal/runtime.Struct"(%"github.com/goplus/llgo/internal/runtime.String" %389, i64 144, %"github.com/goplus/llgo/internal/runtime.Slice" %399) + %401 = call ptr @"github.com/goplus/llgo/internal/runtime.MapOf"(ptr %336, ptr %337, ptr %400, i64 4) + store ptr %401, ptr @"map[chan _llgo_int]_llgo_int", align 8 + br label %_llgo_38 + +_llgo_38: ; preds = %_llgo_37, %_llgo_36 + ret void +} + +declare ptr @"github.com/goplus/llgo/internal/runtime.MapOf"(ptr, ptr, ptr, i64) + +declare ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64) + +declare ptr @"github.com/goplus/llgo/internal/runtime.Struct"(%"github.com/goplus/llgo/internal/runtime.String", i64, %"github.com/goplus/llgo/internal/runtime.Slice") + +declare %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String", ptr, i64, %"github.com/goplus/llgo/internal/runtime.String", i1) + +declare ptr @"github.com/goplus/llgo/internal/runtime.ArrayOf"(i64, ptr) + +declare ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64) + +declare ptr @"github.com/goplus/llgo/internal/runtime.MakeMap"(ptr, i64) + +declare ptr @"github.com/goplus/llgo/internal/runtime.MapAssign"(ptr, ptr, ptr) + +declare ptr @"github.com/goplus/llgo/internal/runtime.MapAccess1"(ptr, ptr, ptr) + +declare void @"github.com/goplus/llgo/internal/runtime.PrintPointer"(ptr) + +declare void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8) + +declare void @"github.com/goplus/llgo/internal/runtime.PrintString"(%"github.com/goplus/llgo/internal/runtime.String") + +declare void @"github.com/goplus/llgo/internal/runtime.PrintInt"(i64) + +declare ptr @"github.com/goplus/llgo/internal/runtime.NewMapIter"(ptr, ptr) + +declare { i1, ptr, ptr } @"github.com/goplus/llgo/internal/runtime.MapIterNext"(ptr) + +declare { ptr, i1 } @"github.com/goplus/llgo/internal/runtime.MapAccess2"(ptr, ptr, ptr) + +declare void @"github.com/goplus/llgo/internal/runtime.PrintBool"(i1) + +declare void @"github.com/goplus/llgo/internal/runtime.MapDelete"(ptr, ptr, ptr) + +declare void @"github.com/goplus/llgo/internal/runtime.Panic"(%"github.com/goplus/llgo/internal/runtime.eface") + +declare ptr @"github.com/goplus/llgo/internal/runtime.Interface"(%"github.com/goplus/llgo/internal/runtime.String", %"github.com/goplus/llgo/internal/runtime.String", %"github.com/goplus/llgo/internal/runtime.Slice") + +declare ptr @"github.com/goplus/llgo/internal/runtime.Zeroinit"(ptr, i64) + +declare ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(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") + +declare i1 @"github.com/goplus/llgo/internal/runtime.EfaceEqual"(%"github.com/goplus/llgo/internal/runtime.eface", %"github.com/goplus/llgo/internal/runtime.eface") + +declare ptr @"github.com/goplus/llgo/internal/runtime.AllocZ"(i64) + +declare ptr @"github.com/goplus/llgo/internal/runtime.PointerTo"(ptr) + +declare ptr @"github.com/goplus/llgo/internal/runtime.NewChan"(i64, i64) + +declare ptr @"github.com/goplus/llgo/internal/runtime.ChanOf"(i64, %"github.com/goplus/llgo/internal/runtime.String", ptr) diff --git a/cl/_testrt/map/out.ll b/cl/_testrt/map/out.ll index 0591fc765..0097ae179 100644 --- a/cl/_testrt/map/out.ll +++ b/cl/_testrt/map/out.ll @@ -1,10 +1,20 @@ ; ModuleID = 'main' source_filename = "main" +%"github.com/goplus/llgo/internal/runtime.String" = type { ptr, i64 } +%"github.com/goplus/llgo/internal/abi.StructField" = type { %"github.com/goplus/llgo/internal/runtime.String", ptr, i64, %"github.com/goplus/llgo/internal/runtime.String", i1 } +%"github.com/goplus/llgo/internal/runtime.Slice" = type { ptr, i64, i64 } + @"main.init$guard" = global i1 false, align 1 @__llgo_argc = global i32 0, align 4 @__llgo_argv = global ptr null, align 8 -@0 = private unnamed_addr constant [10 x i8] c"Hello %d\0A\00", align 1 +@"map[_llgo_int]_llgo_int" = linkonce global ptr null, align 8 +@0 = private unnamed_addr constant [7 x i8] c"topbits", align 1 +@1 = private unnamed_addr constant [4 x i8] c"keys", align 1 +@2 = private unnamed_addr constant [5 x i8] c"elems", align 1 +@3 = private unnamed_addr constant [8 x i8] c"overflow", align 1 +@4 = private unnamed_addr constant [4 x i8] c"main", align 1 +@5 = private unnamed_addr constant [10 x i8] c"Hello %d\0A\00", align 1 define void @main.init() { _llgo_0: @@ -13,6 +23,7 @@ _llgo_0: _llgo_1: ; preds = %_llgo_0 store i1 true, ptr @"main.init$guard", align 1 + call void @"main.init$after"() br label %_llgo_2 _llgo_2: ; preds = %_llgo_1, %_llgo_0 @@ -25,13 +36,145 @@ _llgo_0: store ptr %1, ptr @__llgo_argv, align 8 call void @"github.com/goplus/llgo/internal/runtime.init"() call void @main.init() - %2 = call ptr @"github.com/goplus/llgo/internal/runtime.MakeSmallMap"() - %3 = call i32 (ptr, ...) @printf(ptr @0, ) + %2 = load ptr, ptr @"map[_llgo_int]_llgo_int", align 8 + %3 = call ptr @"github.com/goplus/llgo/internal/runtime.MakeMap"(ptr %2, i64 2) + %4 = load ptr, ptr @"map[_llgo_int]_llgo_int", align 8 + %5 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 8) + store i64 23, ptr %5, align 4 + %6 = call ptr @"github.com/goplus/llgo/internal/runtime.MapAssign"(ptr %4, ptr %3, ptr %5) + store i64 100, ptr %6, align 4 + %7 = load ptr, ptr @"map[_llgo_int]_llgo_int", align 8 + %8 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 8) + store i64 7, ptr %8, align 4 + %9 = call ptr @"github.com/goplus/llgo/internal/runtime.MapAssign"(ptr %7, ptr %3, ptr %8) + store i64 29, ptr %9, align 4 + %10 = load ptr, ptr @"map[_llgo_int]_llgo_int", align 8 + %11 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 8) + store i64 23, ptr %11, align 4 + %12 = call ptr @"github.com/goplus/llgo/internal/runtime.MapAccess1"(ptr %10, ptr %3, ptr %11) + %13 = load i64, ptr %12, align 4 + %14 = call i32 (ptr, ...) @printf(ptr @5, i64 %13) ret i32 0 } declare void @"github.com/goplus/llgo/internal/runtime.init"() -declare ptr @"github.com/goplus/llgo/internal/runtime.MakeSmallMap"() +define void @"main.init$after"() { +_llgo_0: + %0 = load ptr, ptr @"map[_llgo_int]_llgo_int", align 8 + %1 = icmp eq ptr %0, null + br i1 %1, label %_llgo_1, label %_llgo_2 + +_llgo_1: ; preds = %_llgo_0 + %2 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 34) + %3 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 34) + %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 7, 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.Basic"(i64 40) + %13 = call ptr @"github.com/goplus/llgo/internal/runtime.ArrayOf"(i64 8, ptr %12) + %14 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %7, ptr %13, i64 0, %"github.com/goplus/llgo/internal/runtime.String" %11, 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 @1, 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 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %20 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %19, i32 0, i32 0 + store ptr null, ptr %20, align 8 + %21 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %19, i32 0, i32 1 + store i64 0, ptr %21, align 4 + %22 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %19, align 8 + %23 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 34) + %24 = call ptr @"github.com/goplus/llgo/internal/runtime.ArrayOf"(i64 8, ptr %23) + %25 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %18, ptr %24, i64 8, %"github.com/goplus/llgo/internal/runtime.String" %22, i1 false) + %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 @2, ptr %27, align 8 + %28 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %26, i32 0, i32 1 + store i64 5, ptr %28, align 4 + %29 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %26, 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 null, ptr %31, align 8 + %32 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %30, i32 0, i32 1 + store i64 0, ptr %32, align 4 + %33 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %30, align 8 + %34 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 34) + %35 = call ptr @"github.com/goplus/llgo/internal/runtime.ArrayOf"(i64 8, ptr %34) + %36 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %29, ptr %35, i64 72, %"github.com/goplus/llgo/internal/runtime.String" %33, i1 false) + %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 @3, ptr %38, align 8 + %39 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %37, i32 0, i32 1 + store i64 8, ptr %39, align 4 + %40 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %37, align 8 + %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 null, ptr %42, align 8 + %43 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %41, i32 0, i32 1 + store i64 0, ptr %43, align 4 + %44 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %41, align 8 + %45 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 44) + %46 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %40, ptr %45, i64 136, %"github.com/goplus/llgo/internal/runtime.String" %44, i1 false) + %47 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 + %48 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %47, i32 0, i32 0 + store ptr @4, ptr %48, align 8 + %49 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %47, i32 0, i32 1 + store i64 4, ptr %49, align 4 + %50 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %47, align 8 + %51 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 224) + %52 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %51, i64 0 + store %"github.com/goplus/llgo/internal/abi.StructField" %14, ptr %52, align 8 + %53 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %51, i64 1 + store %"github.com/goplus/llgo/internal/abi.StructField" %25, ptr %53, align 8 + %54 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %51, i64 2 + store %"github.com/goplus/llgo/internal/abi.StructField" %36, ptr %54, align 8 + %55 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %51, i64 3 + store %"github.com/goplus/llgo/internal/abi.StructField" %46, 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 %51, ptr %57, align 8 + %58 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %56, i32 0, i32 1 + store i64 4, ptr %58, align 4 + %59 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %56, i32 0, i32 2 + store i64 4, 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.Struct"(%"github.com/goplus/llgo/internal/runtime.String" %50, i64 144, %"github.com/goplus/llgo/internal/runtime.Slice" %60) + %62 = call ptr @"github.com/goplus/llgo/internal/runtime.MapOf"(ptr %2, ptr %3, ptr %61, i64 4) + store ptr %62, ptr @"map[_llgo_int]_llgo_int", align 8 + br label %_llgo_2 + +_llgo_2: ; preds = %_llgo_1, %_llgo_0 + ret void +} + +declare ptr @"github.com/goplus/llgo/internal/runtime.MapOf"(ptr, ptr, ptr, i64) + +declare ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64) + +declare ptr @"github.com/goplus/llgo/internal/runtime.Struct"(%"github.com/goplus/llgo/internal/runtime.String", i64, %"github.com/goplus/llgo/internal/runtime.Slice") + +declare %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String", ptr, i64, %"github.com/goplus/llgo/internal/runtime.String", i1) + +declare ptr @"github.com/goplus/llgo/internal/runtime.ArrayOf"(i64, ptr) + +declare ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64) + +declare ptr @"github.com/goplus/llgo/internal/runtime.MakeMap"(ptr, i64) + +declare ptr @"github.com/goplus/llgo/internal/runtime.MapAssign"(ptr, ptr, ptr) + +declare ptr @"github.com/goplus/llgo/internal/runtime.MapAccess1"(ptr, ptr, ptr) declare i32 @printf(ptr, ...) diff --git a/cl/_testrt/typed/in.go b/cl/_testrt/typed/in.go new file mode 100644 index 000000000..251bc84f9 --- /dev/null +++ b/cl/_testrt/typed/in.go @@ -0,0 +1,15 @@ +package main + +type T string +type A [2]int + +func main() { + var v any = T("hello") + println(v.(T)) + s, ok := v.(string) + println(s, ok) + + var a any = A{1, 2} + ar, ok := a.(A) + println(ar[0], ar[1], ok) +} diff --git a/cl/_testrt/typed/out.ll b/cl/_testrt/typed/out.ll new file mode 100644 index 000000000..0c352b463 --- /dev/null +++ b/cl/_testrt/typed/out.ll @@ -0,0 +1,299 @@ +; ModuleID = 'main' +source_filename = "main" + +%"github.com/goplus/llgo/internal/runtime.String" = type { ptr, i64 } +%"github.com/goplus/llgo/internal/runtime.eface" = type { ptr, ptr } +%"github.com/goplus/llgo/internal/runtime.Slice" = type { ptr, i64, i64 } + +@"main.init$guard" = global i1 false, align 1 +@__llgo_argc = global i32 0, align 4 +@__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 +@_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 +@_llgo_main.A = linkonce global ptr null, align 8 +@_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 + +define void @main.init() { +_llgo_0: + %0 = load i1, ptr @"main.init$guard", align 1 + br i1 %0, label %_llgo_2, label %_llgo_1 + +_llgo_1: ; preds = %_llgo_0 + store i1 true, ptr @"main.init$guard", align 1 + call void @"main.init$after"() + br label %_llgo_2 + +_llgo_2: ; preds = %_llgo_1, %_llgo_0 + ret void +} + +define i32 @main(i32 %0, ptr %1) { +_llgo_0: + store i32 %0, ptr @__llgo_argc, align 4 + store ptr %1, ptr @__llgo_argv, align 8 + call void @"github.com/goplus/llgo/internal/runtime.init"() + call void @main.init() + %2 = 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 @0, ptr %3, align 8 + %4 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2, i32 0, i32 1 + store i64 5, ptr %4, align 4 + %5 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %2, align 8 + %6 = load ptr, ptr @_llgo_main.T, align 8 + %7 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 16) + store %"github.com/goplus/llgo/internal/runtime.String" %5, ptr %7, align 8 + %8 = alloca %"github.com/goplus/llgo/internal/runtime.eface", align 8 + %9 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.eface", ptr %8, i32 0, i32 0 + store ptr %6, ptr %9, align 8 + %10 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.eface", ptr %8, i32 0, i32 1 + store ptr %7, ptr %10, align 8 + %11 = load %"github.com/goplus/llgo/internal/runtime.eface", ptr %8, align 8 + %12 = extractvalue %"github.com/goplus/llgo/internal/runtime.eface" %11, 0 + %13 = load ptr, ptr @_llgo_main.T, align 8 + %14 = icmp eq ptr %12, %13 + br i1 %14, label %_llgo_1, label %_llgo_2 + +_llgo_1: ; preds = %_llgo_0 + %15 = extractvalue %"github.com/goplus/llgo/internal/runtime.eface" %11, 1 + %16 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %15, align 8 + call void @"github.com/goplus/llgo/internal/runtime.PrintString"(%"github.com/goplus/llgo/internal/runtime.String" %16) + call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 10) + %17 = extractvalue %"github.com/goplus/llgo/internal/runtime.eface" %11, 0 + %18 = load ptr, ptr @_llgo_string, align 8 + %19 = icmp eq ptr %17, %18 + br i1 %19, label %_llgo_3, label %_llgo_4 + +_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 + %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 + %24 = load ptr, ptr @_llgo_string, align 8 + %25 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 16) + store %"github.com/goplus/llgo/internal/runtime.String" %23, ptr %25, align 8 + %26 = alloca %"github.com/goplus/llgo/internal/runtime.eface", align 8 + %27 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.eface", ptr %26, i32 0, i32 0 + store ptr %24, ptr %27, align 8 + %28 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.eface", ptr %26, i32 0, i32 1 + store ptr %25, ptr %28, align 8 + %29 = load %"github.com/goplus/llgo/internal/runtime.eface", ptr %26, align 8 + call void @"github.com/goplus/llgo/internal/runtime.Panic"(%"github.com/goplus/llgo/internal/runtime.eface" %29) + unreachable + +_llgo_3: ; preds = %_llgo_1 + %30 = extractvalue %"github.com/goplus/llgo/internal/runtime.eface" %11, 1 + %31 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %30, align 8 + %32 = alloca { %"github.com/goplus/llgo/internal/runtime.String", i1 }, align 8 + %33 = getelementptr inbounds { %"github.com/goplus/llgo/internal/runtime.String", i1 }, ptr %32, i32 0, i32 0 + store %"github.com/goplus/llgo/internal/runtime.String" %31, ptr %33, align 8 + %34 = getelementptr inbounds { %"github.com/goplus/llgo/internal/runtime.String", i1 }, ptr %32, i32 0, i32 1 + store i1 true, ptr %34, align 1 + %35 = load { %"github.com/goplus/llgo/internal/runtime.String", i1 }, ptr %32, align 8 + br label %_llgo_5 + +_llgo_4: ; preds = %_llgo_1 + %36 = alloca { %"github.com/goplus/llgo/internal/runtime.String", i1 }, align 8 + %37 = getelementptr inbounds { %"github.com/goplus/llgo/internal/runtime.String", i1 }, ptr %36, i32 0, i32 0 + store { ptr, i64 } zeroinitializer, ptr %37, align 8 + %38 = getelementptr inbounds { %"github.com/goplus/llgo/internal/runtime.String", i1 }, ptr %36, i32 0, i32 1 + store i1 false, ptr %38, align 1 + %39 = load { %"github.com/goplus/llgo/internal/runtime.String", i1 }, ptr %36, align 8 + br label %_llgo_5 + +_llgo_5: ; preds = %_llgo_4, %_llgo_3 + %40 = phi { %"github.com/goplus/llgo/internal/runtime.String", i1 } [ %35, %_llgo_3 ], [ %39, %_llgo_4 ] + %41 = extractvalue { %"github.com/goplus/llgo/internal/runtime.String", i1 } %40, 0 + %42 = extractvalue { %"github.com/goplus/llgo/internal/runtime.String", i1 } %40, 1 + call void @"github.com/goplus/llgo/internal/runtime.PrintString"(%"github.com/goplus/llgo/internal/runtime.String" %41) + call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 32) + call void @"github.com/goplus/llgo/internal/runtime.PrintBool"(i1 %42) + call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 10) + %43 = alloca [2 x i64], align 8 + %44 = call ptr @"github.com/goplus/llgo/internal/runtime.Zeroinit"(ptr %43, i64 16) + %45 = getelementptr inbounds i64, ptr %44, i64 0 + %46 = getelementptr inbounds i64, ptr %44, i64 1 + store i64 1, ptr %45, align 4 + store i64 2, ptr %46, align 4 + %47 = load [2 x i64], ptr %44, align 4 + %48 = load ptr, ptr @_llgo_main.A, align 8 + %49 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 16) + store [2 x i64] %47, ptr %49, align 4 + %50 = alloca %"github.com/goplus/llgo/internal/runtime.eface", align 8 + %51 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.eface", ptr %50, i32 0, i32 0 + store ptr %48, ptr %51, align 8 + %52 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.eface", ptr %50, i32 0, i32 1 + store ptr %49, ptr %52, align 8 + %53 = load %"github.com/goplus/llgo/internal/runtime.eface", ptr %50, align 8 + %54 = alloca [2 x i64], align 8 + %55 = call ptr @"github.com/goplus/llgo/internal/runtime.Zeroinit"(ptr %54, i64 16) + %56 = extractvalue %"github.com/goplus/llgo/internal/runtime.eface" %53, 0 + %57 = load ptr, ptr @_llgo_main.A, align 8 + %58 = icmp eq ptr %56, %57 + br i1 %58, label %_llgo_6, label %_llgo_7 + +_llgo_6: ; preds = %_llgo_5 + %59 = extractvalue %"github.com/goplus/llgo/internal/runtime.eface" %53, 1 + %60 = load [2 x i64], ptr %59, align 4 + %61 = alloca { [2 x i64], i1 }, align 8 + %62 = getelementptr inbounds { [2 x i64], i1 }, ptr %61, i32 0, i32 0 + store [2 x i64] %60, ptr %62, align 4 + %63 = getelementptr inbounds { [2 x i64], i1 }, ptr %61, i32 0, i32 1 + store i1 true, ptr %63, align 1 + %64 = load { [2 x i64], i1 }, ptr %61, align 4 + br label %_llgo_8 + +_llgo_7: ; preds = %_llgo_5 + %65 = alloca { [2 x i64], i1 }, align 8 + %66 = getelementptr inbounds { [2 x i64], i1 }, ptr %65, i32 0, i32 0 + store [2 x i64] zeroinitializer, ptr %66, align 4 + %67 = getelementptr inbounds { [2 x i64], i1 }, ptr %65, i32 0, i32 1 + store i1 false, ptr %67, align 1 + %68 = load { [2 x i64], i1 }, ptr %65, align 4 + br label %_llgo_8 + +_llgo_8: ; preds = %_llgo_7, %_llgo_6 + %69 = phi { [2 x i64], i1 } [ %64, %_llgo_6 ], [ %68, %_llgo_7 ] + %70 = extractvalue { [2 x i64], i1 } %69, 0 + store [2 x i64] %70, ptr %55, align 4 + %71 = extractvalue { [2 x i64], i1 } %69, 1 + %72 = getelementptr inbounds i64, ptr %55, i64 0 + %73 = load i64, ptr %72, align 4 + %74 = getelementptr inbounds i64, ptr %55, i64 1 + %75 = load i64, ptr %74, align 4 + call void @"github.com/goplus/llgo/internal/runtime.PrintInt"(i64 %73) + call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 32) + call void @"github.com/goplus/llgo/internal/runtime.PrintInt"(i64 %75) + call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 32) + call void @"github.com/goplus/llgo/internal/runtime.PrintBool"(i1 %71) + call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 10) + ret i32 0 +} + +declare void @"github.com/goplus/llgo/internal/runtime.init"() + +define void @"main.init$after"() { +_llgo_0: + %0 = load ptr, ptr @_llgo_main.T, align 8 + %1 = icmp eq ptr %0, null + br i1 %1, label %_llgo_1, label %_llgo_2 + +_llgo_1: ; preds = %_llgo_0 + %2 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(i64 24, i64 0, i64 0) + store ptr %2, ptr @_llgo_main.T, align 8 + br label %_llgo_2 + +_llgo_2: ; preds = %_llgo_1, %_llgo_0 + %3 = load ptr, ptr @_llgo_string, align 8 + %4 = icmp eq ptr %3, null + br i1 %4, label %_llgo_3, label %_llgo_4 + +_llgo_3: ; preds = %_llgo_2 + %5 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 24) + store ptr %5, 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 %1, 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 + %14 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %11, align 8 + call void @"github.com/goplus/llgo/internal/runtime.InitNamed"(ptr %2, %"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) + br label %_llgo_6 + +_llgo_6: ; preds = %_llgo_5, %_llgo_4 + %15 = load ptr, ptr @_llgo_main.A, align 8 + %16 = icmp eq ptr %15, null + br i1 %16, label %_llgo_7, label %_llgo_8 + +_llgo_7: ; preds = %_llgo_6 + %17 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(i64 17, i64 0, i64 0) + store ptr %17, 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 + +_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 + 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 + +_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 + br label %_llgo_12 + +_llgo_12: ; preds = %_llgo_11, %_llgo_10 + %26 = load ptr, ptr @"[2]_llgo_int", align 8 + br i1 %16, 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 %17, %"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) + 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) + +declare ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64) + +declare void @"github.com/goplus/llgo/internal/runtime.InitNamed"(ptr, %"github.com/goplus/llgo/internal/runtime.String", %"github.com/goplus/llgo/internal/runtime.String", ptr, %"github.com/goplus/llgo/internal/runtime.Slice", %"github.com/goplus/llgo/internal/runtime.Slice") + +declare ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64) + +declare void @"github.com/goplus/llgo/internal/runtime.Panic"(%"github.com/goplus/llgo/internal/runtime.eface") + +declare void @"github.com/goplus/llgo/internal/runtime.PrintString"(%"github.com/goplus/llgo/internal/runtime.String") + +declare void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8) + +declare void @"github.com/goplus/llgo/internal/runtime.PrintBool"(i1) + +declare ptr @"github.com/goplus/llgo/internal/runtime.Zeroinit"(ptr, i64) + +declare ptr @"github.com/goplus/llgo/internal/runtime.ArrayOf"(i64, ptr) + +declare void @"github.com/goplus/llgo/internal/runtime.PrintInt"(i64) diff --git a/cl/compile.go b/cl/compile.go index 2feccb78d..df2fccd81 100644 --- a/cl/compile.go +++ b/cl/compile.go @@ -493,17 +493,14 @@ func (p *context) compileInstrOrValue(b llssa.Builder, iv instrOrValue, asValue case *ssa.Index: x := p.compileValue(b, v.X) idx := p.compileValue(b, v.Index) - ret = b.Index(x, idx, func(e llssa.Expr) (ret llssa.Expr, zero bool) { - if e == x { - switch n := v.X.(type) { - case *ssa.Const: - zero = true - return - case *ssa.UnOp: - return p.compileValue(b, n.X), false - } + ret = b.Index(x, idx, func() (addr llssa.Expr, zero bool) { + switch n := v.X.(type) { + case *ssa.Const: + zero = true + case *ssa.UnOp: + addr = p.compileValue(b, n.X) } - panic(fmt.Errorf("todo: addr of %v", e)) + return }) case *ssa.Lookup: x := p.compileValue(b, v.X) @@ -574,8 +571,12 @@ func (p *context) compileInstrOrValue(b llssa.Builder, iv instrOrValue, asValue x := p.compileValue(b, v.X) ret = b.Range(x) case *ssa.Next: + var typ llssa.Type + if !v.IsString { + typ = p.prog.Type(v.Iter.(*ssa.Range).X.Type(), llssa.InGo) + } iter := p.compileValue(b, v.Iter) - ret = b.Next(iter, v.IsString) + ret = b.Next(typ, iter, v.IsString) case *ssa.ChangeInterface: t := v.Type() x := p.compileValue(b, v.X) diff --git a/internal/runtime/alg.go b/internal/runtime/alg.go new file mode 100644 index 000000000..4b2edd201 --- /dev/null +++ b/internal/runtime/alg.go @@ -0,0 +1,311 @@ +package runtime + +import ( + "unsafe" + + "github.com/goplus/llgo/internal/abi" + "github.com/goplus/llgo/internal/runtime/goarch" +) + +const ( + c0 = uintptr((8-goarch.PtrSize)/4*2860486313 + (goarch.PtrSize-4)/4*33054211828000289) + c1 = uintptr((8-goarch.PtrSize)/4*3267000013 + (goarch.PtrSize-4)/4*23344194077549503) +) + +func memhash0(p unsafe.Pointer, h uintptr) uintptr { + return h +} + +func memhash8(p unsafe.Pointer, h uintptr) uintptr { + return memhash(p, h, 1) +} + +func memhash16(p unsafe.Pointer, h uintptr) uintptr { + return memhash(p, h, 2) +} + +func memhash128(p unsafe.Pointer, h uintptr) uintptr { + return memhash(p, h, 16) +} + +//go:nosplit +// func memhash_varlen(p unsafe.Pointer, h uintptr) uintptr { +// ptr := getclosureptr() +// size := *(*uintptr)(unsafe.Pointer(ptr + unsafe.Sizeof(h))) +// return memhash(p, h, size) +// } + +// in asm_*.s +// func memhash(p unsafe.Pointer, h, s uintptr) uintptr +// func memhash32(p unsafe.Pointer, h uintptr) uintptr +// func memhash64(p unsafe.Pointer, h uintptr) uintptr +// func strhash(p unsafe.Pointer, h uintptr) uintptr + +func strhash(a unsafe.Pointer, h uintptr) uintptr { + x := (*String)(a) + return memhash(x.data, h, uintptr(x.len)) +} + +// NOTE: Because NaN != NaN, a map can contain any +// number of (mostly useless) entries keyed with NaNs. +// To avoid long hash chains, we assign a random number +// as the hash value for a NaN. + +func f32hash(p unsafe.Pointer, h uintptr) uintptr { + f := *(*float32)(p) + switch { + case f == 0: + return c1 * (c0 ^ h) // +0, -0 + case f != f: + return c1 * (c0 ^ h ^ uintptr(fastrand())) // any kind of NaN + default: + return memhash(p, h, 4) + } +} + +func f64hash(p unsafe.Pointer, h uintptr) uintptr { + f := *(*float64)(p) + switch { + case f == 0: + return c1 * (c0 ^ h) // +0, -0 + case f != f: + return c1 * (c0 ^ h ^ uintptr(fastrand())) // any kind of NaN + default: + return memhash(p, h, 8) + } +} + +func c64hash(p unsafe.Pointer, h uintptr) uintptr { + x := (*[2]float32)(p) + return f32hash(unsafe.Pointer(&x[1]), f32hash(unsafe.Pointer(&x[0]), h)) +} + +func c128hash(p unsafe.Pointer, h uintptr) uintptr { + x := (*[2]float64)(p) + return f64hash(unsafe.Pointer(&x[1]), f64hash(unsafe.Pointer(&x[0]), h)) +} + +func interhash(p unsafe.Pointer, h uintptr) uintptr { + a := (*iface)(p) + tab := a.tab + if tab == nil { + return h + } + t := tab._type + if t.Equal == nil { + // Check hashability here. We could do this check inside + // typehash, but we want to report the topmost type in + // the error text (e.g. in a struct with a field of slice type + // we want to report the struct, not the slice). + panic(errorString("hash of unhashable type " + t.String())) + } + if isDirectIface(t) { + return c1 * typehash(t, unsafe.Pointer(&a.data), h^c0) + } else { + return c1 * typehash(t, a.data, h^c0) + } +} + +func nilinterhash(p unsafe.Pointer, h uintptr) uintptr { + a := (*eface)(p) + t := a._type + if t == nil { + return h + } + if t.Equal == nil { + // See comment in interhash above. + panic(errorString("hash of unhashable type " + t.String())) + } + if isDirectIface(t) { + return c1 * typehash(t, unsafe.Pointer(&a.data), h^c0) + } else { + return c1 * typehash(t, a.data, h^c0) + } +} + +// typehash computes the hash of the object of type t at address p. +// h is the seed. +// This function is seldom used. Most maps use for hashing either +// fixed functions (e.g. f32hash) or compiler-generated functions +// (e.g. for a type like struct { x, y string }). This implementation +// is slower but more general and is used for hashing interface types +// (called from interhash or nilinterhash, above) or for hashing in +// maps generated by reflect.MapOf (reflect_typehash, below). +// Note: this function must match the compiler generated +// functions exactly. See issue 37716. +func typehash(t *_type, p unsafe.Pointer, h uintptr) uintptr { + if t.TFlag&abi.TFlagRegularMemory != 0 { + // Handle ptr sizes specially, see issue 37086. + switch t.Size_ { + case 4: + return memhash32(p, h) + case 8: + return memhash64(p, h) + default: + return memhash(p, h, t.Size_) + } + } + switch t.Kind() { + case abi.Float32: + return f32hash(p, h) + case abi.Float64: + return f64hash(p, h) + case abi.Complex64: + return c64hash(p, h) + case abi.Complex128: + return c128hash(p, h) + case abi.String: + return strhash(p, h) + case abi.Interface: + i := (*interfacetype)(unsafe.Pointer(t)) + if len(i.Methods) == 0 { + return nilinterhash(p, h) + } + return interhash(p, h) + case abi.Array: + a := (*arraytype)(unsafe.Pointer(t)) + for i := uintptr(0); i < a.Len; i++ { + h = typehash(a.Elem, add(p, i*a.Elem.Size_), h) + } + return h + case abi.Struct: + s := (*structtype)(unsafe.Pointer(t)) + for _, f := range s.Fields { + if f.Name_ == "_" { + continue + } + h = typehash(f.Typ, add(p, f.Offset), h) + } + return h + default: + // Should never happen, as typehash should only be called + // with comparable types. + panic(errorString("hash of unhashable type " + t.String())) + } +} + +func memequalptr(p, q unsafe.Pointer) bool { + return *(*uintptr)(p) == *(*uintptr)(q) +} +func memequal0(p, q unsafe.Pointer) bool { + return true +} +func memequal8(p, q unsafe.Pointer) bool { + return *(*int8)(p) == *(*int8)(q) +} +func memequal16(p, q unsafe.Pointer) bool { + return *(*int16)(p) == *(*int16)(q) +} +func memequal32(p, q unsafe.Pointer) bool { + return *(*int32)(p) == *(*int32)(q) +} +func memequal64(p, q unsafe.Pointer) bool { + return *(*int64)(p) == *(*int64)(q) +} +func memequal128(p, q unsafe.Pointer) bool { + return *(*[2]int64)(p) == *(*[2]int64)(q) +} +func f32equal(p, q unsafe.Pointer) bool { + return *(*float32)(p) == *(*float32)(q) +} +func f64equal(p, q unsafe.Pointer) bool { + return *(*float64)(p) == *(*float64)(q) +} +func c64equal(p, q unsafe.Pointer) bool { + return *(*complex64)(p) == *(*complex64)(q) +} +func c128equal(p, q unsafe.Pointer) bool { + return *(*complex128)(p) == *(*complex128)(q) +} +func strequal(p, q unsafe.Pointer) bool { + return *(*string)(p) == *(*string)(q) +} +func interequal(p, q unsafe.Pointer) bool { + x := *(*iface)(p) + y := *(*iface)(q) + return x.tab == y.tab && ifaceeq(x.tab, x.data, y.data) +} +func nilinterequal(p, q unsafe.Pointer) bool { + x := *(*eface)(p) + y := *(*eface)(q) + return x._type == y._type && efaceeq(x._type, x.data, y.data) +} +func efaceeq(t *_type, x, y unsafe.Pointer) bool { + if t == nil { + return true + } + eq := t.Equal + if eq == nil { + panic(errorString("comparing uncomparable type " + t.Str_).Error()) + } + if isDirectIface(t) { + // Direct interface types are ptr, chan, map, func, and single-element structs/arrays thereof. + // Maps and funcs are not comparable, so they can't reach here. + // Ptrs, chans, and single-element items can be compared directly using ==. + return x == y + } + return eq(x, y) +} +func ifaceeq(tab *itab, x, y unsafe.Pointer) bool { + if tab == nil { + return true + } + t := tab._type + eq := t.Equal + if eq == nil { + panic(errorString("comparing uncomparable type " + t.Str_).Error()) + } + if isDirectIface(t) { + // See comment in efaceeq. + return x == y + } + return eq(x, y) +} + +// Testing adapters for hash quality tests (see hash_test.go) +func stringHash(s string, seed uintptr) uintptr { + return strhash(noescape(unsafe.Pointer(&s)), seed) +} + +func bytesHash(b []byte, seed uintptr) uintptr { + s := (*slice)(unsafe.Pointer(&b)) + return memhash(s.array, seed, uintptr(s.len)) +} + +func int32Hash(i uint32, seed uintptr) uintptr { + return memhash32(noescape(unsafe.Pointer(&i)), seed) +} + +func int64Hash(i uint64, seed uintptr) uintptr { + return memhash64(noescape(unsafe.Pointer(&i)), seed) +} + +func efaceHash(i any, seed uintptr) uintptr { + return nilinterhash(noescape(unsafe.Pointer(&i)), seed) +} + +func ifaceHash(i interface { + F() +}, seed uintptr) uintptr { + return interhash(noescape(unsafe.Pointer(&i)), seed) +} + +var hashkey [4]uintptr + +// Note: These routines perform the read with a native endianness. +func readUnaligned32(p unsafe.Pointer) uint32 { + q := (*[4]byte)(p) + if goarch.BigEndian { + return uint32(q[3]) | uint32(q[2])<<8 | uint32(q[1])<<16 | uint32(q[0])<<24 + } + return uint32(q[0]) | uint32(q[1])<<8 | uint32(q[2])<<16 | uint32(q[3])<<24 +} + +func readUnaligned64(p unsafe.Pointer) uint64 { + q := (*[8]byte)(p) + if goarch.BigEndian { + return uint64(q[7]) | uint64(q[6])<<8 | uint64(q[5])<<16 | uint64(q[4])<<24 | + uint64(q[3])<<32 | uint64(q[2])<<40 | uint64(q[1])<<48 | uint64(q[0])<<56 + } + return uint64(q[0]) | uint64(q[1])<<8 | uint64(q[2])<<16 | uint64(q[3])<<24 | uint64(q[4])<<32 | uint64(q[5])<<40 | uint64(q[6])<<48 | uint64(q[7])<<56 +} diff --git a/internal/runtime/goarch/endian_big.go b/internal/runtime/goarch/endian_big.go new file mode 100644 index 000000000..244b2abf3 --- /dev/null +++ b/internal/runtime/goarch/endian_big.go @@ -0,0 +1,7 @@ +//go:build 386 || amd64 || arm || arm64 || ppc64le || mips64le || mipsle || riscv64 || wasm +// +build 386 amd64 arm arm64 ppc64le mips64le mipsle riscv64 wasm + +package goarch + +const BigEndian = true +const LittleEndian = false diff --git a/internal/runtime/goarch/endian_little.go b/internal/runtime/goarch/endian_little.go new file mode 100644 index 000000000..9ce6b8714 --- /dev/null +++ b/internal/runtime/goarch/endian_little.go @@ -0,0 +1,9 @@ +//go:build ppc64 || s390x || mips || mips64 +// +build ppc64 s390x mips mips64 + +package goarch + +const ( + BigEndian = false + LittleEndian = true +) diff --git a/internal/runtime/hash32.go b/internal/runtime/hash32.go new file mode 100644 index 000000000..818118f73 --- /dev/null +++ b/internal/runtime/hash32.go @@ -0,0 +1,61 @@ +// Copyright 2014 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Hashing algorithm inspired by +// wyhash: https://github.com/wangyi-fudan/wyhash/blob/ceb019b530e2c1c14d70b79bfa2bc49de7d95bc1/Modern%20Non-Cryptographic%20Hash%20Function%20and%20Pseudorandom%20Number%20Generator.pdf + +//go:build 386 || arm || mips || mipsle + +package runtime + +import "unsafe" + +func memhash32(p unsafe.Pointer, seed uintptr) uintptr { + a, b := mix32(uint32(seed), uint32(4^hashkey[0])) + t := readUnaligned32(p) + a ^= t + b ^= t + a, b = mix32(a, b) + a, b = mix32(a, b) + return uintptr(a ^ b) +} + +func memhash64(p unsafe.Pointer, seed uintptr) uintptr { + a, b := mix32(uint32(seed), uint32(8^hashkey[0])) + a ^= readUnaligned32(p) + b ^= readUnaligned32(add(p, 4)) + a, b = mix32(a, b) + a, b = mix32(a, b) + return uintptr(a ^ b) +} + +func memhash(p unsafe.Pointer, seed, s uintptr) uintptr { + a, b := mix32(uint32(seed), uint32(s^hashkey[0])) + if s == 0 { + return uintptr(a ^ b) + } + for ; s > 8; s -= 8 { + a ^= readUnaligned32(p) + b ^= readUnaligned32(add(p, 4)) + a, b = mix32(a, b) + p = add(p, 8) + } + if s >= 4 { + a ^= readUnaligned32(p) + b ^= readUnaligned32(add(p, s-4)) + } else { + t := uint32(*(*byte)(p)) + t |= uint32(*(*byte)(add(p, s>>1))) << 8 + t |= uint32(*(*byte)(add(p, s-1))) << 16 + b ^= t + } + a, b = mix32(a, b) + a, b = mix32(a, b) + return uintptr(a ^ b) +} + +func mix32(a, b uint32) (uint32, uint32) { + c := uint64(a^uint32(hashkey[1])) * uint64(b^uint32(hashkey[2])) + return uint32(c), uint32(c >> 32) +} diff --git a/internal/runtime/hash64.go b/internal/runtime/hash64.go new file mode 100644 index 000000000..31d2a67a6 --- /dev/null +++ b/internal/runtime/hash64.go @@ -0,0 +1,93 @@ +// Copyright 2014 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Hashing algorithm inspired by +// wyhash: https://github.com/wangyi-fudan/wyhash + +//go:build amd64 || arm64 || loong64 || mips64 || mips64le || ppc64 || ppc64le || riscv64 || s390x || wasm + +package runtime + +import ( + "unsafe" + + "github.com/goplus/llgo/internal/runtime/math" +) + +const ( + m1 = 0xa0761d6478bd642f + m2 = 0xe7037ed1a0b428db + m3 = 0x8ebc6af09c88c6e3 + m4 = 0x589965cc75374cc3 + m5 = 0x1d8e4e27c47d124f +) + +func memhash(p unsafe.Pointer, seed, s uintptr) uintptr { + var a, b uintptr + seed ^= hashkey[0] ^ m1 + switch { + case s == 0: + return seed + case s < 4: + a = uintptr(*(*byte)(p)) + a |= uintptr(*(*byte)(add(p, s>>1))) << 8 + a |= uintptr(*(*byte)(add(p, s-1))) << 16 + case s == 4: + a = r4(p) + b = a + case s < 8: + a = r4(p) + b = r4(add(p, s-4)) + case s == 8: + a = r8(p) + b = a + case s <= 16: + a = r8(p) + b = r8(add(p, s-8)) + default: + l := s + if l > 48 { + seed1 := seed + seed2 := seed + for ; l > 48; l -= 48 { + seed = mix(r8(p)^m2, r8(add(p, 8))^seed) + seed1 = mix(r8(add(p, 16))^m3, r8(add(p, 24))^seed1) + seed2 = mix(r8(add(p, 32))^m4, r8(add(p, 40))^seed2) + p = add(p, 48) + } + seed ^= seed1 ^ seed2 + } + for ; l > 16; l -= 16 { + seed = mix(r8(p)^m2, r8(add(p, 8))^seed) + p = add(p, 16) + } + a = r8(add(p, l-16)) + b = r8(add(p, l-8)) + } + + return mix(m5^s, mix(a^m2, b^seed)) +} + +func memhash32(p unsafe.Pointer, seed uintptr) uintptr { + a := r4(p) + return mix(m5^4, mix(a^m2, a^seed^hashkey[0]^m1)) +} + +func memhash64(p unsafe.Pointer, seed uintptr) uintptr { + a := r8(p) + return mix(m5^8, mix(a^m2, a^seed^hashkey[0]^m1)) +} + +func mix(a, b uintptr) uintptr { + hi, lo := math.Mul64(uint64(a), uint64(b)) + return uintptr(hi ^ lo) +} + +func r4(p unsafe.Pointer) uintptr { + return uintptr(readUnaligned32(p)) +} + +func r8(p unsafe.Pointer) uintptr { + return uintptr(readUnaligned64(p)) +} diff --git a/internal/runtime/map.go b/internal/runtime/map.go index 4c83a7511..0af0292bf 100644 --- a/internal/runtime/map.go +++ b/internal/runtime/map.go @@ -4,6 +4,14 @@ package runtime +import ( + "unsafe" + + "github.com/goplus/llgo/internal/abi" + "github.com/goplus/llgo/internal/runtime/goarch" + "github.com/goplus/llgo/internal/runtime/math" +) + // This file contains the implementation of Go's map type. // // A map is just a hash table. The data is arranged @@ -53,12 +61,6 @@ package runtime // Keep in mind this data is for maximally loaded tables, i.e. just // before the table grows. Typical tables will be somewhat less loaded. -import ( - "unsafe" - - "github.com/goplus/llgo/internal/abi" -) - const ( // Maximum number of key/elem pairs a bucket can hold. bucketCntBits = abi.MapBucketCountBits @@ -103,7 +105,7 @@ const ( sameSizeGrow = 8 // the current map growth is to a new map of the same size // sentinel bucket ID for iterator checks - // noCheck = 1<<(8*goarch.PtrSize) - 1 + noCheck = 1<<(8*goarch.PtrSize) - 1 ) // isEmpty reports whether the given tophash array entry represents an empty bucket entry. @@ -158,7 +160,6 @@ type bmap struct { // Followed by an overflow pointer. } -/* // A hash iteration structure. // If you modify hiter, also change cmd/compile/internal/reflectdata/reflect.go // and reflect/value.go to match the layout of this structure. @@ -286,7 +287,6 @@ func makemap64(t *maptype, hint int64, h *hmap) *hmap { } return makemap(t, int(hint), h) } -*/ // makemap_small implements Go map creation for make(map[k]v) and // make(map[k]v, hint) when hint is known to be at most bucketCnt @@ -297,7 +297,6 @@ func makemap_small() *hmap { return h } -/* // makemap implements Go map creation for make(map[k]v, hint). // If the compiler has determined that the map or the first bucket // can be created on the stack, h and/or bucket may be non-nil. @@ -395,18 +394,18 @@ func makeBucketArray(t *maptype, b uint8, dirtyalloc unsafe.Pointer) (buckets un // NOTE: The returned pointer may keep the whole map live, so don't // hold onto it for very long. func mapaccess1(t *maptype, h *hmap, key unsafe.Pointer) unsafe.Pointer { - if raceenabled && h != nil { - callerpc := getcallerpc() - pc := abi.FuncPCABIInternal(mapaccess1) - racereadpc(unsafe.Pointer(h), callerpc, pc) - raceReadObjectPC(t.Key, key, callerpc, pc) - } - if msanenabled && h != nil { - msanread(key, t.Key.Size_) - } - if asanenabled && h != nil { - asanread(key, t.Key.Size_) - } + // if raceenabled && h != nil { + // callerpc := getcallerpc() + // pc := abi.FuncPCABIInternal(mapaccess1) + // racereadpc(unsafe.Pointer(h), callerpc, pc) + // raceReadObjectPC(t.Key, key, callerpc, pc) + // } + // if msanenabled && h != nil { + // msanread(key, t.Key.Size_) + // } + // if asanenabled && h != nil { + // asanread(key, t.Key.Size_) + // } if h == nil || h.count == 0 { if t.HashMightPanic() { t.Hasher(key, 0) // see issue 23734 @@ -456,18 +455,18 @@ bucketloop: } func mapaccess2(t *maptype, h *hmap, key unsafe.Pointer) (unsafe.Pointer, bool) { - if raceenabled && h != nil { - callerpc := getcallerpc() - pc := abi.FuncPCABIInternal(mapaccess2) - racereadpc(unsafe.Pointer(h), callerpc, pc) - raceReadObjectPC(t.Key, key, callerpc, pc) - } - if msanenabled && h != nil { - msanread(key, t.Key.Size_) - } - if asanenabled && h != nil { - asanread(key, t.Key.Size_) - } + // if raceenabled && h != nil { + // callerpc := getcallerpc() + // pc := abi.FuncPCABIInternal(mapaccess2) + // racereadpc(unsafe.Pointer(h), callerpc, pc) + // raceReadObjectPC(t.Key, key, callerpc, pc) + // } + // if msanenabled && h != nil { + // msanread(key, t.Key.Size_) + // } + // if asanenabled && h != nil { + // asanread(key, t.Key.Size_) + // } if h == nil || h.count == 0 { if t.HashMightPanic() { t.Hasher(key, 0) // see issue 23734 @@ -581,18 +580,19 @@ func mapassign(t *maptype, h *hmap, key unsafe.Pointer) unsafe.Pointer { if h == nil { panic(plainError("assignment to entry in nil map")) } - if raceenabled { - callerpc := getcallerpc() - pc := abi.FuncPCABIInternal(mapassign) - racewritepc(unsafe.Pointer(h), callerpc, pc) - raceReadObjectPC(t.Key, key, callerpc, pc) - } - if msanenabled { - msanread(key, t.Key.Size_) - } - if asanenabled { - asanread(key, t.Key.Size_) - } + + // if raceenabled { + // callerpc := getcallerpc() + // pc := abi.FuncPCABIInternal(mapassign) + // racewritepc(unsafe.Pointer(h), callerpc, pc) + // raceReadObjectPC(t.Key, key, callerpc, pc) + // } + // if msanenabled { + // msanread(key, t.Key.Size_) + // } + // if asanenabled { + // asanread(key, t.Key.Size_) + // } if h.flags&hashWriting != 0 { fatal("concurrent map writes") } @@ -695,18 +695,18 @@ done: } func mapdelete(t *maptype, h *hmap, key unsafe.Pointer) { - if raceenabled && h != nil { - callerpc := getcallerpc() - pc := abi.FuncPCABIInternal(mapdelete) - racewritepc(unsafe.Pointer(h), callerpc, pc) - raceReadObjectPC(t.Key, key, callerpc, pc) - } - if msanenabled && h != nil { - msanread(key, t.Key.Size_) - } - if asanenabled && h != nil { - asanread(key, t.Key.Size_) - } + // if raceenabled && h != nil { + // callerpc := getcallerpc() + // pc := abi.FuncPCABIInternal(mapdelete) + // racewritepc(unsafe.Pointer(h), callerpc, pc) + // raceReadObjectPC(t.Key, key, callerpc, pc) + // } + // if msanenabled && h != nil { + // msanread(key, t.Key.Size_) + // } + // if asanenabled && h != nil { + // asanread(key, t.Key.Size_) + // } if h == nil || h.count == 0 { if t.HashMightPanic() { t.Hasher(key, 0) // see issue 23734 @@ -815,10 +815,10 @@ search: // by the compilers order pass or on the heap by reflect_mapiterinit. // Both need to have zeroed hiter since the struct contains pointers. func mapiterinit(t *maptype, h *hmap, it *hiter) { - if raceenabled && h != nil { - callerpc := getcallerpc() - racereadpc(unsafe.Pointer(h), callerpc, abi.FuncPCABIInternal(mapiterinit)) - } + // if raceenabled && h != nil { + // callerpc := getcallerpc() + // racereadpc(unsafe.Pointer(h), callerpc, abi.FuncPCABIInternal(mapiterinit)) + // } it.t = t if h == nil || h.count == 0 { @@ -859,7 +859,7 @@ func mapiterinit(t *maptype, h *hmap, it *hiter) { // Remember we have an iterator. // Can run concurrently with another mapiterinit(). if old := h.flags; old&(iterator|oldIterator) != iterator|oldIterator { - atomic.Or8(&h.flags, iterator|oldIterator) + atomicOr8(&h.flags, iterator|oldIterator) } mapiternext(it) @@ -867,10 +867,10 @@ func mapiterinit(t *maptype, h *hmap, it *hiter) { func mapiternext(it *hiter) { h := it.h - if raceenabled { - callerpc := getcallerpc() - racereadpc(unsafe.Pointer(h), callerpc, abi.FuncPCABIInternal(mapiternext)) - } + // if raceenabled { + // callerpc := getcallerpc() + // racereadpc(unsafe.Pointer(h), callerpc, abi.FuncPCABIInternal(mapiternext)) + // } if h.flags&hashWriting != 0 { fatal("concurrent map iteration and map write") } @@ -993,11 +993,11 @@ next: // mapclear deletes all keys from a map. func mapclear(t *maptype, h *hmap) { - if raceenabled && h != nil { - callerpc := getcallerpc() - pc := abi.FuncPCABIInternal(mapclear) - racewritepc(unsafe.Pointer(h), callerpc, pc) - } + // if raceenabled && h != nil { + // callerpc := getcallerpc() + // pc := abi.FuncPCABIInternal(mapclear) + // racewritepc(unsafe.Pointer(h), callerpc, pc) + // } if h == nil || h.count == 0 { return @@ -1307,6 +1307,7 @@ func advanceEvacuationMark(h *hmap, t *maptype, newbit uintptr) { // Reflect stubs. Called from ../reflect/asm_*.s +/* //go:linkname reflect_makemap reflect.makemap func reflect_makemap(t *maptype, cap int) *hmap { // Check invariants and reflects math. @@ -1413,10 +1414,10 @@ func reflect_maplen(h *hmap) int { if h == nil { return 0 } - if raceenabled { - callerpc := getcallerpc() - racereadpc(unsafe.Pointer(h), callerpc, abi.FuncPCABIInternal(reflect_maplen)) - } + // if raceenabled { + // callerpc := getcallerpc() + // racereadpc(unsafe.Pointer(h), callerpc, abi.FuncPCABIInternal(reflect_maplen)) + // } return h.count } @@ -1430,12 +1431,13 @@ func reflectlite_maplen(h *hmap) int { if h == nil { return 0 } - if raceenabled { - callerpc := getcallerpc() - racereadpc(unsafe.Pointer(h), callerpc, abi.FuncPCABIInternal(reflect_maplen)) - } + // if raceenabled { + // callerpc := getcallerpc() + // racereadpc(unsafe.Pointer(h), callerpc, abi.FuncPCABIInternal(reflect_maplen)) + // } return h.count } +*/ const maxZero = 1024 // must match value in reflect/value.go:maxZero cmd/compile/internal/gc/walk.go:zeroValSize var zeroVal [maxZero]byte @@ -1445,7 +1447,7 @@ var zeroVal [maxZero]byte // rewrite the relocation (from the package init func) from the outlined // map init function to this symbol. Defined in assembly so as to avoid // complications with instrumentation (coverage, etc). -func mapinitnoop() +//func mapinitnoop() // mapclone for implementing maps.Clone // @@ -1723,4 +1725,3 @@ func copyValues(t *maptype, h *hmap, b *bmap, s *slice, offset uint8) { b = b.overflow(t) } } -*/ diff --git a/internal/runtime/math/math.go b/internal/runtime/math/math.go index 8d38eab81..6b2f13b3e 100644 --- a/internal/runtime/math/math.go +++ b/internal/runtime/math/math.go @@ -13,3 +13,24 @@ func MulUintptr(a, b uintptr) (uintptr, bool) { overflow := b > MaxUintptr/a return a * b, overflow } + +// Mul64 returns the 128-bit product of x and y: (hi, lo) = x * y +// with the product bits' upper half returned in hi and the lower +// half returned in lo. +// This is a copy from math/bits.Mul64 +// On supported platforms this is an intrinsic lowered by the compiler. +func Mul64(x, y uint64) (hi, lo uint64) { + const mask32 = 1<<32 - 1 + x0 := x & mask32 + x1 := x >> 32 + y0 := y & mask32 + y1 := y >> 32 + w0 := x0 * y0 + t := x1*y0 + w0>>32 + w1 := t & mask32 + w2 := t >> 32 + w1 += x0 * y1 + hi = x1*y1 + w2 + w1>>32 + lo = x * y + return +} diff --git a/internal/runtime/stubs.go b/internal/runtime/stubs.go index 0b81dc67d..34dd529d5 100644 --- a/internal/runtime/stubs.go +++ b/internal/runtime/stubs.go @@ -4,11 +4,35 @@ package runtime -import _ "unsafe" +import ( + "unsafe" + + "github.com/goplus/llgo/c/sync/atomic" + "github.com/goplus/llgo/c/time" + "github.com/goplus/llgo/internal/runtime/math" +) //go:linkname fastrand C.rand func fastrand() uint32 +//go:linkname srand C.srand +func srand(uint32) + +func fastrand64() uint64 { + n := uint64(fastrand()) + n += 0xa0761d6478bd642f + hi, lo := math.Mul64(n, n^0xe7037ed1a0b428db) + return hi ^ lo +} + +func init() { + srand(uint32(time.Time(nil))) + hashkey[0] = uintptr(fastrand()) | 1 + hashkey[1] = uintptr(fastrand()) | 1 + hashkey[2] = uintptr(fastrand()) | 1 + hashkey[3] = uintptr(fastrand()) | 1 +} + /* TODO(xsw): func fastrand() uint32 { mp := getg().m @@ -37,9 +61,74 @@ func fastrand() uint32 { } */ +//go:nosplit +func add(p unsafe.Pointer, x uintptr) unsafe.Pointer { + return unsafe.Pointer(uintptr(p) + x) +} + +// implementation of new builtin +// compiler (both frontend and SSA backend) knows the signature +// of this function. +func newobject(typ *_type) unsafe.Pointer { + return AllocZ(typ.Size_) +} + +// TODO +func roundupsize(size uintptr) uintptr { + // if size < _MaxSmallSize { + // if size <= smallSizeMax-8 { + // return uintptr(class_to_size[size_to_class8[divRoundUp(size, smallSizeDiv)]]) + // } else { + // return uintptr(class_to_size[size_to_class128[divRoundUp(size-smallSizeMax, largeSizeDiv)]]) + // } + // } + // if size+_PageSize < size { + // return size + // } + // return alignUp(size, _PageSize) + return size +} + +// newarray allocates an array of n elements of type typ. +func newarray(typ *_type, n int) unsafe.Pointer { + if n == 1 { + return AllocZ(typ.Size_) + } + mem, overflow := math.MulUintptr(typ.Size_, uintptr(n)) + if overflow || mem > maxAlloc || n < 0 { + panic(plainError("runtime: allocation size out of range")) + } + return AllocZ(mem) +} + const ( // _64bit = 1 on 64-bit systems, 0 on 32-bit systems _64bit = 1 << (^uintptr(0) >> 63) / 2 heapAddrBits = (_64bit)*48 + (1-_64bit)*(32) maxAlloc = (1 << heapAddrBits) - (1-_64bit)*1 ) + +func memclrHasPointers(ptr unsafe.Pointer, n uintptr) { + // bulkBarrierPreWrite(uintptr(ptr), 0, n) + // memclrNoHeapPointers(ptr, n) +} + +func memclrNoHeapPointers(ptr unsafe.Pointer, n uintptr) { +} + +func fatal(s string) { + print("fatal error: ", s, "\n") +} + +func throw(s string) { + print("fatal error: ", s, "\n") +} + +func atomicOr8(ptr *uint8, v uint8) uint8 { + return (uint8)(atomic.Or((*uint)(unsafe.Pointer(ptr)), uint(v))) +} + +func noescape(p unsafe.Pointer) unsafe.Pointer { + x := uintptr(p) + return unsafe.Pointer(x ^ 0) +} diff --git a/internal/runtime/z_error.go b/internal/runtime/z_error.go index a3c0c8311..eb05f07ca 100644 --- a/internal/runtime/z_error.go +++ b/internal/runtime/z_error.go @@ -31,6 +31,12 @@ func (e errorString) Error() string { return "runtime error: " + string(e) } +type plainError string + +func (e plainError) Error() string { + return string(e) +} + func AssertRuntimeError(b bool, msg string) { if b { panic(errorString(msg).Error()) diff --git a/internal/runtime/z_face.go b/internal/runtime/z_face.go index e4d328cd7..5231b4b3d 100644 --- a/internal/runtime/z_face.go +++ b/internal/runtime/z_face.go @@ -163,6 +163,7 @@ func doInitNamed(ret *Type, pkgPath, fullName string, underlying *Type, methods ret.TFlag = tflag | abi.TFlagNamed | abi.TFlagUncommon ret.Str_ = fullName + ret.Equal = underlying.Equal n := len(methods) xcount := uint16(0) @@ -218,6 +219,11 @@ func Interface(pkgPath, name string, methods []Imethod) *InterfaceType { PkgPath_: pkgPath, Methods: methods, } + if len(methods) == 0 { + ret.Equal = nilinterequal + } else { + ret.Equal = interequal + } return ret } @@ -285,16 +291,17 @@ func IfacePtrData(i iface) unsafe.Pointer { if i.tab == nil { panic(errorString("invalid memory address or nil pointer dereference").Error()) } - if i.tab._type.Kind_&abi.KindDirectIface != 0 { - return unsafe.Pointer(&i.data) + switch i.tab._type.Kind() { + case abi.Bool, abi.Int, abi.Int8, abi.Int16, abi.Int32, abi.Int64, + abi.Uint, abi.Uint8, abi.Uint16, abi.Uint32, abi.Uint64, abi.Uintptr, + abi.Float32, abi.Float64, abi.Array, abi.Struct: + if isDirectIface(i.tab._type) { + return unsafe.Pointer(&i.data) + } } return i.data } -func SetDirectIface(t *abi.Type) { - t.Kind_ |= abi.KindDirectIface -} - // Implements reports whether the type V implements the interface type T. func Implements(T, V *abi.Type) bool { if V == nil { @@ -355,12 +362,6 @@ func Implements(T, V *abi.Type) bool { } func EfaceEqual(v, u eface) bool { - if v.Kind() == abi.Interface { - v = v.Elem() - } - if u.Kind() == abi.Interface { - u = u.Elem() - } if v._type == nil || u._type == nil { return v._type == u._type } @@ -370,52 +371,10 @@ func EfaceEqual(v, u eface) bool { if isDirectIface(v._type) { return v.data == u.data } - switch v.Kind() { - case abi.Bool, - abi.Int, abi.Int8, abi.Int16, abi.Int32, abi.Int64, - abi.Uint, abi.Uint8, abi.Uint16, abi.Uint32, abi.Uint64, abi.Uintptr, - abi.Float32, abi.Float64: - return *(*uintptr)(v.data) == *(*uintptr)(u.data) - case abi.Complex64: - return *(*complex64)(v.data) == *(*complex64)(u.data) - case abi.Complex128: - return *(*complex128)(v.data) == *(*complex128)(u.data) - case abi.String: - return *(*string)(v.data) == *(*string)(u.data) - case abi.Pointer, abi.UnsafePointer: - return v.data == u.data - case abi.Array: - n := v._type.Len() - tt := v._type.ArrayType() - index := func(data unsafe.Pointer, i int) eface { - offset := i * int(tt.Elem.Size_) - return eface{tt.Elem, c.Advance(data, offset)} - } - for i := 0; i < n; i++ { - if !EfaceEqual(index(v.data, i), index(u.data, i)) { - return false - } - } - return true - case abi.Struct: - st := v._type.StructType() - field := func(data unsafe.Pointer, ft *abi.StructField) eface { - ptr := c.Advance(data, int(ft.Offset)) - if isDirectIface(ft.Typ) { - ptr = *(*unsafe.Pointer)(ptr) - } - return eface{ft.Typ, ptr} - } - for _, ft := range st.Fields { - if !EfaceEqual(field(v.data, &ft), field(u.data, &ft)) { - return false - } - } - return true - case abi.Func, abi.Map, abi.Slice: - break + if equal := v._type.Equal; equal != nil { + return equal(v.data, u.data) } - panic("not comparable") + panic(errorString("comparing uncomparable type " + v._type.String()).Error()) } func (v eface) Kind() abi.Kind { diff --git a/internal/runtime/z_map.go b/internal/runtime/z_map.go index 8d618f8e6..76fee872f 100644 --- a/internal/runtime/z_map.go +++ b/internal/runtime/z_map.go @@ -16,10 +16,69 @@ package runtime +import ( + "unsafe" + + "github.com/goplus/llgo/internal/abi" +) + // Map represents a Go map. type Map = hmap +type maptype = abi.MapType +type arraytype = abi.ArrayType +type structtype = abi.StructType + +type slice struct { + array unsafe.Pointer + len int + cap int +} + +func typedmemmove(typ *_type, dst, src unsafe.Pointer) { + Typedmemmove(typ, dst, src) +} // MakeSmallMap creates a new small map. func MakeSmallMap() *Map { return makemap_small() } + +func MakeMap(t *maptype, hint int) *hmap { + return makemap(t, hint, nil) +} + +func MapAssign(t *maptype, h *Map, key unsafe.Pointer) unsafe.Pointer { + return mapassign(t, h, key) +} + +func MapAccess1(t *maptype, h *hmap, key unsafe.Pointer) unsafe.Pointer { + return mapaccess1(t, h, key) +} + +func MapAccess2(t *maptype, h *hmap, key unsafe.Pointer) (unsafe.Pointer, bool) { + return mapaccess2(t, h, key) +} + +func MapDelete(t *maptype, h *hmap, key unsafe.Pointer) { + mapdelete(t, h, key) +} + +func MapClear(t *maptype, h *hmap) { + mapclear(t, h) +} + +func NewMapIter(t *maptype, h *hmap) *hiter { + var it hiter + mapiterinit(t, h, &it) + return &it +} + +func MapIterNext(it *hiter) (ok bool, k unsafe.Pointer, v unsafe.Pointer) { + if it.key == nil { + return + } + ok = true + k, v = it.key, it.elem + mapiternext(it) + return +} diff --git a/internal/runtime/z_type.go b/internal/runtime/z_type.go index fdb09c992..976c6698d 100644 --- a/internal/runtime/z_type.go +++ b/internal/runtime/z_type.go @@ -30,7 +30,46 @@ var ( tyBasic [abi.UnsafePointer + 1]*Type ) -func Basic(kind Kind) *Type { +func basicEqual(kind Kind, size uintptr) func(a, b unsafe.Pointer) bool { + switch kind { + case abi.Bool, abi.Int, abi.Int8, abi.Int16, abi.Int32, abi.Int64, + abi.Uint, abi.Uint8, abi.Uint16, abi.Uint32, abi.Uint64, abi.Uintptr: + switch size { + case 1: + return memequal8 + case 2: + return memequal16 + case 4: + return memequal32 + case 8: + return memequal64 + } + case abi.Float32: + return f32equal + case abi.Float64: + return f64equal + case abi.Complex64: + return c64equal + case abi.Complex128: + return c128equal + case abi.String: + return strequal + case abi.UnsafePointer: + return memequalptr + } + panic("unreachable") +} + +func basicFlags(kind Kind) abi.TFlag { + switch kind { + case abi.Float32, abi.Float64, abi.Complex64, abi.Complex128, abi.String: + return 0 + } + return abi.TFlagRegularMemory +} + +func Basic(_kind Kind) *Type { + kind := _kind & abi.KindMask if tyBasic[kind] == nil { name, size, align := basicTypeInfo(kind) tyBasic[kind] = &Type{ @@ -38,7 +77,9 @@ func Basic(kind Kind) *Type { Hash: uint32(kind), // TODO(xsw): hash Align_: uint8(align), FieldAlign_: uint8(align), - Kind_: uint8(kind), + Kind_: uint8(_kind), + Equal: basicEqual(kind, size), + TFlag: basicFlags(kind), Str_: name, } } @@ -112,15 +153,39 @@ func Struct(pkgPath string, size uintptr, fields ...abi.StructField) *Type { PkgPath_: pkgPath, Fields: fields, } + var comparable bool = true var typalign uint8 for _, f := range fields { ft := f.Typ if ft.Align_ > typalign { typalign = ft.Align_ } + comparable = comparable && (ft.Equal != nil) } ret.Align_ = typalign ret.FieldAlign_ = typalign + if comparable { + if size == 0 { + ret.Equal = memequal0 + } else { + ret.Equal = func(p, q unsafe.Pointer) bool { + for _, ft := range fields { + pi := add(p, ft.Offset) + qi := add(q, ft.Offset) + if !ft.Typ.Equal(pi, qi) { + return false + } + } + return true + } + } + } + if isRegularMemory(&ret.Type) { + ret.TFlag = abi.TFlagRegularMemory + } + if len(fields) == 1 && isDirectIface(fields[0].Typ) { + ret.Kind_ |= abi.KindDirectIface + } return &ret.Type } @@ -146,13 +211,15 @@ func newPointer(elem *Type) *Type { Align_: pointerAlign, FieldAlign_: pointerAlign, Kind_: uint8(abi.Pointer), + Equal: memequalptr, + TFlag: abi.TFlagRegularMemory, }, Elem: elem, } if (elem.TFlag & abi.TFlagExtraStar) != 0 { ptr.Str_ = "**" + elem.Str_ } else { - ptr.TFlag = abi.TFlagExtraStar + ptr.TFlag |= abi.TFlagExtraStar ptr.Str_ = elem.Str_ } return &ptr.Type @@ -189,6 +256,28 @@ func ArrayOf(length uintptr, elem *Type) *Type { Slice: SliceOf(elem), Len: length, } + if eequal := elem.Equal; eequal != nil { + if elem.Size_ == 0 { + ret.Equal = memequal0 + } else { + ret.Equal = func(p, q unsafe.Pointer) bool { + for i := uintptr(0); i < length; i++ { + pi := add(p, i*elem.Size_) + qi := add(q, i*elem.Size_) + if !eequal(pi, qi) { + return false + } + } + return true + } + } + } + if ret.Len == 0 || ret.Elem.TFlag&abi.TFlagRegularMemory != 0 { + ret.TFlag = abi.TFlagRegularMemory + } + if ret.Len == 1 && isDirectIface(ret.Elem) { + ret.Kind_ |= abi.KindDirectIface + } return &ret.Type } @@ -198,8 +287,10 @@ func ChanOf(dir int, strChan string, elem *Type) *Type { Size_: 8, Hash: uint32(abi.Chan), Align_: pointerAlign, + TFlag: abi.TFlagRegularMemory, FieldAlign_: pointerAlign, Kind_: uint8(abi.Chan), + Equal: memequalptr, Str_: strChan + " " + elem.String(), }, Elem: elem, @@ -208,4 +299,79 @@ func ChanOf(dir int, strChan string, elem *Type) *Type { return &ret.Type } +func MapOf(key, elem *Type, bucket *Type, flags int) *Type { + ret := &abi.MapType{ + Type: Type{ + Size_: unsafe.Sizeof(uintptr(0)), + Hash: uint32(abi.Map), + Align_: pointerAlign, + FieldAlign_: pointerAlign, + Kind_: uint8(abi.Map), + Str_: "map[" + key.String() + "]" + elem.String(), + }, + Key: key, + Elem: elem, + Bucket: bucket, + KeySize: uint8(key.Size_), + ValueSize: uint8(elem.Size_), + BucketSize: uint16(bucket.Size_), + Flags: uint32(flags), + } + ret.Hasher = func(p unsafe.Pointer, seed uintptr) uintptr { + return typehash(key, p, seed) + } + return &ret.Type +} + +func isRegularMemory(t *_type) bool { + switch t.Kind() { + case abi.Func, abi.Map, abi.Slice, abi.String, abi.Interface: + return false + case abi.Float32, abi.Float64, abi.Complex64, abi.Complex128: + return false + case abi.Array: + at := t.ArrayType() + b := isRegularMemory(at.Elem) + if b { + return true + } + if at.Len == 0 { + return true + } + return b + case abi.Struct: + st := t.StructType() + n := len(st.Fields) + switch n { + case 0: + return true + case 1: + f := st.Fields[0] + if f.Name_ == "_" { + return false + } + return isRegularMemory(f.Typ) + default: + for i := 0; i < n; i++ { + f := st.Fields[i] + if f.Name_ == "_" || !isRegularMemory(f.Typ) || ispaddedfield(st, i) { + return false + } + } + } + } + return true +} + +// ispaddedfield reports whether the i'th field of struct type t is followed +// by padding. +func ispaddedfield(st *structtype, i int) bool { + end := st.Size() + if i+1 < len(st.Fields) { + end = st.Fields[i+1].Offset + } + fd := st.Fields[i] + return fd.Offset+fd.Typ.Size_ != end +} + // ----------------------------------------------------------------------------- diff --git a/ssa/abi/map.go b/ssa/abi/map.go new file mode 100644 index 000000000..e248aa45b --- /dev/null +++ b/ssa/abi/map.go @@ -0,0 +1,547 @@ +package abi + +import ( + "go/token" + "go/types" + "log" + + "github.com/goplus/llgo/internal/abi" +) + +// Builds a type representing a Bucket structure for +// the given map type. This type is not visible to users - +// we include only enough information to generate a correct GC +// program for it. +// Make sure this stays in sync with runtime/map.go. +// +// A "bucket" is a "struct" { +// tophash [BUCKETSIZE]uint8 +// keys [BUCKETSIZE]keyType +// elems [BUCKETSIZE]elemType +// overflow *bucket +// } +const ( + BUCKETSIZE = abi.MapBucketCount + MAXKEYSIZE = abi.MapMaxKeyBytes + MAXELEMSIZE = abi.MapMaxElemBytes +) + +func makefield(name string, t types.Type) *types.Var { + return types.NewField(token.NoPos, nil, name, t, false) +} + +// MapBucketType makes the map bucket type given the type of the map. +func MapBucketType(t *types.Map, sizes types.Sizes) types.Type { + keytype := t.Key() + elemtype := t.Elem() + if sizes.Sizeof(keytype) > MAXKEYSIZE { + keytype = types.NewPointer(keytype) + } + if sizes.Sizeof(elemtype) > MAXELEMSIZE { + elemtype = types.NewPointer(elemtype) + } + + field := make([]*types.Var, 0, 5) + + // The first field is: uint8 topbits[BUCKETSIZE]. + arr := types.NewArray(types.Typ[types.Uint8], BUCKETSIZE) + field = append(field, makefield("topbits", arr)) + + arr = types.NewArray(keytype, BUCKETSIZE) + //arr.SetNoalg(true) + keys := makefield("keys", arr) + field = append(field, keys) + + arr = types.NewArray(elemtype, BUCKETSIZE) + //arr.SetNoalg(true) + elems := makefield("elems", arr) + field = append(field, elems) + + // If keys and elems have no pointers, the map implementation + // can keep a list of overflow pointers on the side so that + // buckets can be marked as having no pointers. + // Arrange for the bucket to have no pointers by changing + // the type of the overflow field to uintptr in this case. + // See comment on hmap.overflow in runtime/map.go. + otyp := types.Typ[types.UnsafePointer] + if !HasPtrData(elemtype) && !HasPtrData(keytype) { + otyp = types.Typ[types.Uintptr] + } + overflow := makefield("overflow", otyp) + field = append(field, overflow) + + // link up fields + bucket := types.NewStruct(field[:], nil) + + // Check invariants that map code depends on. + if !types.Comparable(t.Key()) { + log.Fatalf("unsupported map key type for %v", t) + } + if BUCKETSIZE < 8 { + log.Fatalf("bucket size %d too small for proper alignment %d", BUCKETSIZE, 8) + } + if uint8(sizes.Alignof(keytype)) > BUCKETSIZE { + log.Fatalf("key align too big for %v", t) + } + if uint8(sizes.Alignof(elemtype)) > BUCKETSIZE { + log.Fatalf("elem align %d too big for %v, BUCKETSIZE=%d", sizes.Alignof(elemtype), t, BUCKETSIZE) + } + if sizes.Alignof(keytype) > MAXKEYSIZE { + log.Fatalf("key size too large for %v", t) + } + if sizes.Alignof(elemtype) > MAXELEMSIZE { + log.Fatalf("elem size too large for %v", t) + } + if sizes.Alignof(t.Key()) > MAXKEYSIZE && !isPointer(keytype) { + log.Fatalf("key indirect incorrect for %v", t) + } + if sizes.Alignof(t.Elem()) > MAXELEMSIZE && !isPointer(elemtype) { + log.Fatalf("elem indirect incorrect for %v", t) + } + if sizes.Sizeof(keytype)%sizes.Alignof(keytype) != 0 { + log.Fatalf("key size not a multiple of key align for %v", t) + } + if sizes.Sizeof(elemtype)%sizes.Alignof(elemtype) != 0 { + log.Fatalf("elem size not a multiple of elem align for %v", t) + } + if uint8(sizes.Alignof(bucket))%uint8(sizes.Alignof(keytype)) != 0 { + log.Fatalf("bucket align not multiple of key align %v", t) + } + if uint8(sizes.Alignof(bucket))%uint8(sizes.Alignof(elemtype)) != 0 { + log.Fatalf("bucket align not multiple of elem align %v", t) + } + offs := sizes.Offsetsof(field) + if offs[1]%sizes.Alignof(keytype) != 0 { + log.Fatalf("bad alignment of keys in bmap for %v", t) + } + if offs[2]%sizes.Alignof(elemtype) != 0 { + log.Fatalf("bad alignment of elems in bmap for %v", t) + } + + // // Double-check that overflow field is final memory in struct, + // // with no padding at end. + // if overflow.Offset != bucket.Size()-int64(types.PtrSize) { + // log.Fatalf("bad offset of overflow in bmap for %v, overflow.Offset=%d, bucket.Size()-int64(types.PtrSize)=%d", + // t, overflow.Offset, bucket.Size()-int64(types.PtrSize)) + // } + return bucket +} + +func isPointer(t types.Type) (ok bool) { + _, ok = t.Underlying().(*types.Pointer) + return +} + +func MapTypeFlags(t *types.Map, sizes types.Sizes) (flags int) { + if sizes.Sizeof(t.Key()) > MAXKEYSIZE { + flags |= 1 // indirect key + } + if sizes.Sizeof(t.Elem()) > MAXELEMSIZE { + flags |= 2 // indirect value + } + if IsReflexive(t.Key()) { + flags |= 4 // reflexive key + } + if needkeyupdate(t.Key()) { + flags |= 8 // need key update + } + if hashMightPanic(t.Key()) { + flags |= 16 // hash might panic + } + return +} + +// $GOROOT/src/cmd/compile/internal/reflectdata/reflect.go +// func MapBucketType(t *types.Type) *types.Type { +// if t.MapType().Bucket != nil { +// return t.MapType().Bucket +// } + +// keytype := t.Key() +// elemtype := t.Elem() +// types.CalcSize(keytype) +// types.CalcSize(elemtype) +// if keytype.Size() > MAXKEYSIZE { +// keytype = types.NewPtr(keytype) +// } +// if elemtype.Size() > MAXELEMSIZE { +// elemtype = types.NewPtr(elemtype) +// } + +// field := make([]*types.Field, 0, 5) + +// // The first field is: uint8 topbits[BUCKETSIZE]. +// arr := types.NewArray(types.Types[types.TUINT8], BUCKETSIZE) +// field = append(field, makefield("topbits", arr)) + +// arr = types.NewArray(keytype, BUCKETSIZE) +// arr.SetNoalg(true) +// keys := makefield("keys", arr) +// field = append(field, keys) + +// arr = types.NewArray(elemtype, BUCKETSIZE) +// arr.SetNoalg(true) +// elems := makefield("elems", arr) +// field = append(field, elems) + +// // If keys and elems have no pointers, the map implementation +// // can keep a list of overflow pointers on the side so that +// // buckets can be marked as having no pointers. +// // Arrange for the bucket to have no pointers by changing +// // the type of the overflow field to uintptr in this case. +// // See comment on hmap.overflow in runtime/map.go. +// otyp := types.Types[types.TUNSAFEPTR] +// if !elemtype.HasPointers() && !keytype.HasPointers() { +// otyp = types.Types[types.TUINTPTR] +// } +// overflow := makefield("overflow", otyp) +// field = append(field, overflow) + +// // link up fields +// bucket := types.NewStruct(field[:]) +// bucket.SetNoalg(true) +// types.CalcSize(bucket) + +// // Check invariants that map code depends on. +// if !types.IsComparable(t.Key()) { +// base.Fatalf("unsupported map key type for %v", t) +// } +// if BUCKETSIZE < 8 { +// base.Fatalf("bucket size %d too small for proper alignment %d", BUCKETSIZE, 8) +// } +// if uint8(keytype.Alignment()) > BUCKETSIZE { +// base.Fatalf("key align too big for %v", t) +// } +// if uint8(elemtype.Alignment()) > BUCKETSIZE { +// base.Fatalf("elem align %d too big for %v, BUCKETSIZE=%d", elemtype.Alignment(), t, BUCKETSIZE) +// } +// if keytype.Size() > MAXKEYSIZE { +// base.Fatalf("key size too large for %v", t) +// } +// if elemtype.Size() > MAXELEMSIZE { +// base.Fatalf("elem size too large for %v", t) +// } +// if t.Key().Size() > MAXKEYSIZE && !keytype.IsPtr() { +// base.Fatalf("key indirect incorrect for %v", t) +// } +// if t.Elem().Size() > MAXELEMSIZE && !elemtype.IsPtr() { +// base.Fatalf("elem indirect incorrect for %v", t) +// } +// if keytype.Size()%keytype.Alignment() != 0 { +// base.Fatalf("key size not a multiple of key align for %v", t) +// } +// if elemtype.Size()%elemtype.Alignment() != 0 { +// base.Fatalf("elem size not a multiple of elem align for %v", t) +// } +// if uint8(bucket.Alignment())%uint8(keytype.Alignment()) != 0 { +// base.Fatalf("bucket align not multiple of key align %v", t) +// } +// if uint8(bucket.Alignment())%uint8(elemtype.Alignment()) != 0 { +// base.Fatalf("bucket align not multiple of elem align %v", t) +// } +// if keys.Offset%keytype.Alignment() != 0 { +// base.Fatalf("bad alignment of keys in bmap for %v", t) +// } +// if elems.Offset%elemtype.Alignment() != 0 { +// base.Fatalf("bad alignment of elems in bmap for %v", t) +// } + +// // Double-check that overflow field is final memory in struct, +// // with no padding at end. +// if overflow.Offset != bucket.Size()-int64(types.PtrSize) { +// base.Fatalf("bad offset of overflow in bmap for %v, overflow.Offset=%d, bucket.Size()-int64(types.PtrSize)=%d", +// t, overflow.Offset, bucket.Size()-int64(types.PtrSize)) +// } + +// t.MapType().Bucket = bucket + +// bucket.StructType().Map = t +// return bucket +// } + +// PtrDataSize returns the length in bytes of the prefix of t +// containing pointer data. Anything after this offset is scalar data. +// +// PtrDataSize is only defined for actual Go types. It's an error to +// use it on compiler-internal types (e.g., TSSA, TRESULTS). +func HasPtrData(t types.Type) bool { + switch t := t.Underlying().(type) { + case *types.Basic: + switch t.Kind() { + case types.String: + return true + case types.UnsafePointer: + return true + default: + return false + } + case *types.Pointer: + return true + case *types.Signature, *types.Chan, *types.Map: + return true + case *types.Interface: + return true + case *types.Slice: + return true + case *types.Array: + if t.Len() == 0 { + return false + } + return HasPtrData(t.Elem()) + case *types.Struct: + for i := 0; i < t.NumFields(); i++ { + if HasPtrData(t.Field(i).Type()) { + return true + } + } + return false + default: + log.Fatalf("PtrDataSize: unexpected type, %v", t) + return false + } +} + +// $GOROOT/src/cmd/compile/internal/types/type.go +// func PtrDataSize(t *Type) int64 { +// switch t.Kind() { +// case TBOOL, TINT8, TUINT8, TINT16, TUINT16, TINT32, +// TUINT32, TINT64, TUINT64, TINT, TUINT, +// TUINTPTR, TCOMPLEX64, TCOMPLEX128, TFLOAT32, TFLOAT64: +// return 0 + +// case TPTR: +// if t.Elem().NotInHeap() { +// return 0 +// } +// return int64(PtrSize) + +// case TUNSAFEPTR, TFUNC, TCHAN, TMAP: +// return int64(PtrSize) + +// case TSTRING: +// // struct { byte *str; intgo len; } +// return int64(PtrSize) + +// case TINTER: +// // struct { Itab *tab; void *data; } or +// // struct { Type *type; void *data; } +// // Note: see comment in typebits.Set +// return 2 * int64(PtrSize) + +// case TSLICE: +// if t.Elem().NotInHeap() { +// return 0 +// } +// // struct { byte *array; uintgo len; uintgo cap; } +// return int64(PtrSize) + +// case TARRAY: +// if t.NumElem() == 0 { +// return 0 +// } +// // t.NumElem() > 0 +// size := PtrDataSize(t.Elem()) +// if size == 0 { +// return 0 +// } +// return (t.NumElem()-1)*t.Elem().Size() + size + +// case TSTRUCT: +// // Find the last field that has pointers, if any. +// fs := t.Fields().Slice() +// for i := len(fs) - 1; i >= 0; i-- { +// if size := PtrDataSize(fs[i].Type); size > 0 { +// return fs[i].Offset + size +// } +// } +// return 0 + +// case TSSA: +// if t != TypeInt128 { +// base.Fatalf("PtrDataSize: unexpected ssa type %v", t) +// } +// return 0 + +// default: +// base.Fatalf("PtrDataSize: unexpected type, %v", t) +// return 0 +// } +// } + +// IsReflexive reports whether t has a reflexive equality operator. +// That is, if x==x for all x of type t. +func IsReflexive(t types.Type) bool { + switch t := t.Underlying().(type) { + case *types.Basic: + switch t.Kind() { + case types.Float32, types.Float64, types.Complex64, types.Complex128: + return false + default: + return true + } + case *types.Pointer, *types.Chan: + return true + case *types.Interface: + return false + case *types.Array: + return IsReflexive(t.Elem()) + case *types.Struct: + for i, n := 0, t.NumFields(); i < n; i++ { + if !IsReflexive(t.Field(i).Type()) { + return false + } + } + return true + default: + log.Fatalf("bad type for map key: %v", t) + return false + } +} + +// $GOROOT/src/cmd/compile/internal/types/type.go +// func IsReflexive(t *Type) bool { +// switch t.Kind() { +// case TBOOL, +// TINT, +// TUINT, +// TINT8, +// TUINT8, +// TINT16, +// TUINT16, +// TINT32, +// TUINT32, +// TINT64, +// TUINT64, +// TUINTPTR, +// TPTR, +// TUNSAFEPTR, +// TSTRING, +// TCHAN: +// return true + +// case TFLOAT32, +// TFLOAT64, +// TCOMPLEX64, +// TCOMPLEX128, +// TINTER: +// return false + +// case TARRAY: +// return IsReflexive(t.Elem()) + +// case TSTRUCT: +// for _, t1 := range t.Fields().Slice() { +// if !IsReflexive(t1.Type) { +// return false +// } +// } +// return true + +// default: +// base.Fatalf("bad type for map key: %v", t) +// return false +// } +// } + +// $GOROOT/src/cmd/compile/internal/types/type.go +// needkeyupdate reports whether map updates with t as a key +// need the key to be updated. +func needkeyupdate(t types.Type) bool { + switch t := t.Underlying().(type) { + case *types.Basic: + switch t.Kind() { + case types.Float32, types.Float64, types.Complex64, types.Complex128: + return true // floats and complex can be +0/-0 + case types.String: + return true // strings might have smaller backing stores + default: + return false + } + case *types.Interface: + return true + case *types.Pointer, *types.Chan: + return false + case *types.Array: + return needkeyupdate(t.Elem()) + case *types.Struct: + for i, n := 0, t.NumFields(); i < n; i++ { + if needkeyupdate(t.Field(i).Type()) { + return true + } + } + return false + default: + log.Fatalf("bad type for map key: %v", t) + return true + } +} + +// $GOROOT/src/cmd/compile/internal/reflectdata/reflect.go +// func needkeyupdate(t *types.Type) bool { +// switch t.Kind() { +// case types.TBOOL, types.TINT, types.TUINT, types.TINT8, types.TUINT8, types.TINT16, types.TUINT16, types.TINT32, types.TUINT32, +// types.TINT64, types.TUINT64, types.TUINTPTR, types.TPTR, types.TUNSAFEPTR, types.TCHAN: +// return false + +// case types.TFLOAT32, types.TFLOAT64, types.TCOMPLEX64, types.TCOMPLEX128, // floats and complex can be +0/-0 +// types.TINTER, +// types.TSTRING: // strings might have smaller backing stores +// return true + +// case types.TARRAY: +// return needkeyupdate(t.Elem()) + +// case types.TSTRUCT: +// for _, t1 := range t.Fields().Slice() { +// if needkeyupdate(t1.Type) { +// return true +// } +// } +// return false + +// default: +// base.Fatalf("bad type for map key: %v", t) +// return true +// } +// } + +// hashMightPanic reports whether the hash of a map key of type t might panic. +func hashMightPanic(t types.Type) bool { + switch t := t.Underlying().(type) { + case *types.Interface: + return true + case *types.Array: + return hashMightPanic(t.Elem()) + case *types.Struct: + for i, n := 0, t.NumFields(); i < n; i++ { + if hashMightPanic(t.Field(i).Type()) { + return true + } + } + return false + default: + return false + } +} + +// $GOROOT/src/cmd/compile/internal/reflectdata/reflect.go +// func hashMightPanic(t *types.Type) bool { +// switch t.Kind() { +// case types.TINTER: +// return true + +// case types.TARRAY: +// return hashMightPanic(t.Elem()) + +// case types.TSTRUCT: +// for _, t1 := range t.Fields().Slice() { +// if hashMightPanic(t1.Type) { +// return true +// } +// } +// return false + +// default: +// return false +// } +// } diff --git a/ssa/abitype.go b/ssa/abitype.go index f45c25e38..cbb4769a2 100644 --- a/ssa/abitype.go +++ b/ssa/abitype.go @@ -35,6 +35,12 @@ func (b Builder) abiBasic(t *types.Basic) func() Expr { */ return func() Expr { kind := int(abi.BasicKind(t)) + dk, _, _ := abi.DataKindOf(t, 0, b.Prog.is32Bits) + switch dk { + case abi.Integer, abi.BitCast, abi.Pointer: + const kindDirectIface = 1 << 5 + kind |= kindDirectIface + } return b.InlineCall(b.Pkg.rtFunc("Basic"), b.Prog.Val(kind)) } } @@ -70,6 +76,8 @@ func (b Builder) abiTypeOf(t types.Type) func() Expr { return b.abiArrayOf(t) case *types.Chan: return b.abiChanOf(t) + case *types.Map: + return b.abiMapOf(t) } panic("todo") } @@ -284,6 +292,17 @@ func (b Builder) abiChanOf(t *types.Chan) func() Expr { } } +func (b Builder) abiMapOf(t *types.Map) func() Expr { + key := b.abiTypeOf(t.Key()) + elem := b.abiTypeOf(t.Elem()) + sizes := (*goProgram)(b.Prog) + bucket := b.abiTypeOf(abi.MapBucketType(t, sizes)) + flags := abi.MapTypeFlags(t, sizes) + return func() Expr { + return b.Call(b.Pkg.rtFunc("MapOf"), key(), elem(), bucket(), b.Prog.Val(flags)) + } +} + // func StructField(name string, typ *abi.Type, off uintptr, tag string, embedded bool) // func Struct(pkgPath string, size uintptr, fields []abi.StructField) func (b Builder) abiStructOf(t *types.Struct) func() Expr { @@ -347,19 +366,6 @@ func (p Package) abiTypeInit(g Global, t types.Type, pub bool) { b.SetBlockEx(blks[0], AtEnd, false) } vexpr := tabi() - prog := p.Prog - kind, _, lvl := abi.DataKindOf(t, 0, prog.is32Bits) - switch kind { - case abi.Integer, abi.BitCast: - // abi.Type.Kind_ |= abi.KindDirectIface - const kindDirectIface = 1 << 5 - pkind := b.FieldAddr(vexpr, 6) - b.Store(pkind, b.BinOp(token.OR, b.Load(pkind), Expr{prog.IntVal(kindDirectIface, prog.Byte()).impl, prog.Byte()})) - case abi.Pointer: - if lvl > 0 { - b.InlineCall(b.Pkg.rtFunc("SetDirectIface"), vexpr) - } - } b.Store(expr, vexpr) if pub { b.Jump(blks[1]) @@ -392,6 +398,8 @@ func (b Builder) abiType(t types.Type) Expr { switch t := t.(type) { case *types.Pointer: b.loadType(t.Elem()) + case *types.Array: + b.abiType(t.Elem()) } g := b.loadType(t) return b.Load(g.Expr) diff --git a/ssa/datastruct.go b/ssa/datastruct.go index 2dd0a7f81..101f5c6ff 100644 --- a/ssa/datastruct.go +++ b/ssa/datastruct.go @@ -145,6 +145,18 @@ func (b Builder) SliceCap(x Expr) Expr { return Expr{ptr, b.Prog.Int()} } +func (b Builder) MapLen(x Expr) Expr { + if debugInstr { + log.Printf("MapLen %v\n", x.impl) + } + prog := b.Prog + if x.impl.IsNull() { + return prog.Val(0) + } + x.Type = prog.Pointer(prog.Int()) + return b.Load(x) +} + // ----------------------------------------------------------------------------- // The IndexAddr instruction yields the address of the element at @@ -274,7 +286,7 @@ func (b Builder) checkIndex(idx Expr, max Expr) Expr { // Example printed form: // // t2 = t0[t1] -func (b Builder) Index(x, idx Expr, addr func(Expr) (Expr, bool)) Expr { +func (b Builder) Index(x, idx Expr, takeAddr func() (addr Expr, zero bool)) Expr { if debugInstr { log.Printf("Index %v, %v\n", x.impl, idx.impl) } @@ -293,21 +305,19 @@ func (b Builder) Index(x, idx Expr, addr func(Expr) (Expr, bool)) Expr { max = b.StringLen(x) case *types.Array: telem = prog.Index(x.Type) - if addr != nil { - ptr, zero = addr(x) - } else { - /* - size := SizeOf(prog, telem, t.Len()) - ptr = b.Alloca(size) - b.Store(ptr, x) - */ - panic("unreachable") - } + ptr, zero = takeAddr() max = prog.IntVal(uint64(t.Len()), prog.Int()) } idx = b.checkIndex(idx, max) if zero { - return Expr{llvm.ConstNull(telem.ll), telem} + return prog.Zero(telem) + } + if ptr.IsNil() { + if x.impl.IsConstant() { + return Expr{llvm.ConstExtractElement(x.impl, idx.impl), telem} + } + ptr = b.Alloc(x.Type, false) + b.impl.CreateStore(x.impl, ptr.impl) } pt := prog.Pointer(telem) indices := []llvm.Value{idx.impl} @@ -450,9 +460,12 @@ func (b Builder) MakeMap(t Type, nReserve Expr) (ret Expr) { if debugInstr { log.Printf("MakeMap %v, %v\n", t.RawType(), nReserve.impl) } + if nReserve.IsNil() { + nReserve = b.Prog.Val(0) + } + typ := b.abiType(t.raw.Type) + ret = b.InlineCall(b.Pkg.rtFunc("MakeMap"), typ, nReserve) ret.Type = t - ret.impl = b.InlineCall(b.Pkg.rtFunc("MakeSmallMap")).impl - // TODO(xsw): nReserve return } @@ -471,8 +484,21 @@ func (b Builder) Lookup(x, key Expr, commaOk bool) (ret Expr) { if debugInstr { log.Printf("Lookup %v, %v, %v\n", x.impl, key.impl, commaOk) } - // TODO(xsw) - // panic("todo") + prog := b.Prog + typ := b.abiType(x.raw.Type) + vtyp := prog.Elem(x.Type) + ptr := b.mapKeyPtr(key) + if commaOk { + vals := b.Call(b.Pkg.rtFunc("MapAccess2"), typ, x, ptr) + val := b.Load(Expr{b.impl.CreateExtractValue(vals.impl, 0, ""), prog.Pointer(vtyp)}) + ok := b.impl.CreateExtractValue(vals.impl, 1, "") + t := prog.Struct(vtyp, prog.Bool()) + return b.aggregateValue(t, val.impl, ok) + } else { + val := b.Call(b.Pkg.rtFunc("MapAccess1"), typ, x, ptr) + val.Type = prog.Pointer(vtyp) + ret = b.Load(val) + } return } @@ -489,8 +515,20 @@ func (b Builder) MapUpdate(m, k, v Expr) { if debugInstr { log.Printf("MapUpdate %v[%v] = %v\n", m.impl, k.impl, v.impl) } - // TODO(xsw) - // panic("todo") + typ := b.abiType(m.raw.Type) + ptr := b.mapKeyPtr(k) + ret := b.Call(b.Pkg.rtFunc("MapAssign"), typ, m, ptr) + ret.Type = b.Prog.Pointer(v.Type) + b.Store(ret, v) +} + +// key => unsafe.Pointer +func (b Builder) mapKeyPtr(x Expr) Expr { + typ := x.Type + vtyp := b.Prog.VoidPtr() + vptr := b.AllocU(typ) + b.Store(vptr, x) + return Expr{vptr.impl, vtyp} } // ----------------------------------------------------------------------------- @@ -511,8 +549,11 @@ func (b Builder) Range(x Expr) Expr { switch x.kind { case vkString: return b.InlineCall(b.Pkg.rtFunc("NewStringIter"), x) + case vkMap: + typ := b.abiType(x.raw.Type) + return b.InlineCall(b.Pkg.rtFunc("NewMapIter"), typ, x) } - panic("todo") + panic("unsupport range for " + x.raw.Type.String()) } // The Next instruction reads and advances the (map or string) @@ -533,11 +574,40 @@ func (b Builder) Range(x Expr) Expr { // Example printed form: // // t1 = next t0 -func (b Builder) Next(iter Expr, isString bool) (ret Expr) { +func (b Builder) Next(typ Type, iter Expr, isString bool) Expr { if isString { return b.InlineCall(b.Pkg.rtFunc("StringIterNext"), iter) } - panic("todo") + prog := b.Prog + ktyp := prog.Type(typ.raw.Type.(*types.Map).Key(), InGo) + vtyp := prog.Type(typ.raw.Type.(*types.Map).Elem(), InGo) + rets := b.InlineCall(b.Pkg.rtFunc("MapIterNext"), iter) + ok := b.impl.CreateExtractValue(rets.impl, 0, "") + t := prog.Struct(prog.Bool(), ktyp, vtyp) + blks := b.Func.MakeBlocks(3) + b.If(Expr{ok, prog.Bool()}, blks[0], blks[1]) + b.SetBlockEx(blks[2], AtEnd, false) + phi := b.Phi(t) + phi.AddIncoming(b, blks[:2], func(i int, blk BasicBlock) Expr { + b.SetBlockEx(blk, AtEnd, false) + if i == 0 { + k := b.impl.CreateExtractValue(rets.impl, 1, "") + v := b.impl.CreateExtractValue(rets.impl, 2, "") + valTrue := aggregateValue(b.impl, t.ll, prog.BoolVal(true).impl, + llvm.CreateLoad(b.impl, ktyp.ll, k), + llvm.CreateLoad(b.impl, vtyp.ll, v)) + b.Jump(blks[2]) + return Expr{valTrue, t} + } + valFalse := aggregateValue(b.impl, t.ll, prog.BoolVal(false).impl, + llvm.ConstNull(ktyp.ll), + llvm.ConstNull(vtyp.ll)) + b.Jump(blks[2]) + return Expr{valFalse, t} + }) + b.SetBlockEx(blks[2], AtEnd, false) + b.blk.last = blks[2].last + return phi.Expr } // The MakeChan instruction creates a new channel object and yields a diff --git a/ssa/expr.go b/ssa/expr.go index fa80cdcea..270f73249 100644 --- a/ssa/expr.go +++ b/ssa/expr.go @@ -138,6 +138,8 @@ func (p Program) Zero(t Type) Expr { ret = llvm.ConstStruct(flds, false) case *types.Slice: ret = p.Zero(p.rtType("Slice")).impl + case *types.Array: + ret = llvm.ConstNull(t.ll) case *types.Interface: var name string if u.Empty() { @@ -548,7 +550,7 @@ func (b Builder) BinOp(op token.Token, x, y Expr) Expr { x = b.Field(x, 0) y = b.Field(y, 0) fallthrough - case vkFuncPtr, vkFuncDecl: + case vkFuncPtr, vkFuncDecl, vkChan: switch op { case token.EQL: return Expr{llvm.CreateICmp(b.impl, llvm.IntEQ, x.impl, y.impl), tret} @@ -596,6 +598,13 @@ func (b Builder) BinOp(op token.Token, x, y Expr) Expr { case token.NEQ: return Expr{b.impl.CreateICmp(llvm.IntNE, dx, dy, ""), tret} } + case vkMap: + switch op { + case token.EQL: + return b.Prog.BoolVal(x.impl.IsNull() == y.impl.IsNull()) + case token.NEQ: + return b.Prog.BoolVal(x.impl.IsNull() != y.impl.IsNull()) + } case vkIface, vkEface: toEface := func(x Expr, emtpy bool) Expr { if emtpy { @@ -1005,6 +1014,8 @@ func (b Builder) BuiltinCall(fn string, args ...Expr) (ret Expr) { return b.StringLen(arg) case vkChan: return b.InlineCall(b.Pkg.rtFunc("ChanLen"), arg) + case vkMap: + return b.MapLen(arg) } } case "cap": @@ -1080,6 +1091,21 @@ func (b Builder) BuiltinCall(fn string, args ...Expr) (ret Expr) { return b.StringData(args[0]) // TODO(xsw): check return type case "SliceData": return b.SliceData(args[0]) // TODO(xsw): check return type + case "delete": + if len(args) == 2 && args[0].kind == vkMap { + m := args[0] + t := b.abiType(m.raw.Type) + ptr := b.mapKeyPtr(args[1]) + b.Call(b.Pkg.rtFunc("MapDelete"), t, m, ptr) + return + } + case "clear": + if len(args) == 1 && args[0].kind == vkMap { + m := args[0] + t := b.abiType(m.raw.Type) + b.Call(b.Pkg.rtFunc("MapClear"), t, m) + return + } } panic("todo: " + fn) } @@ -1131,6 +1157,9 @@ func (b Builder) PrintEx(ln bool, args ...Expr) (ret Expr) { case vkChan: fn = "PrintPointer" typ = prog.VoidPtr() + case vkMap: + fn = "PrintPointer" + typ = prog.VoidPtr() default: panic(fmt.Errorf("illegal types for operand: print %v", arg.RawType())) } diff --git a/ssa/interface.go b/ssa/interface.go index 0519742d2..b70eee806 100644 --- a/ssa/interface.go +++ b/ssa/interface.go @@ -179,6 +179,10 @@ func (b Builder) buildVal(typ Type, val llvm.Value, lvl int) Expr { telem := b.Prog.rawType(t.Field(0).Type()) elem := b.buildVal(telem, val, lvl-1) return Expr{aggregateValue(b.impl, typ.ll, elem.impl), typ} + case *types.Array: + telem := b.Prog.rawType(t.Elem()) + elem := b.buildVal(telem, val, lvl-1) + return Expr{llvm.ConstArray(typ.ll, []llvm.Value{elem.impl}), typ} } panic("todo") } diff --git a/ssa/type.go b/ssa/type.go index 3ca4ec509..3b6e85f9d 100644 --- a/ssa/type.go +++ b/ssa/type.go @@ -358,7 +358,7 @@ func (p Program) toType(raw types.Type) Type { case *types.Slice: return &aType{p.rtSlice(), typ, vkSlice} case *types.Map: - return &aType{p.rtMap(), typ, vkMap} + return &aType{llvm.PointerType(p.rtMap(), 0), typ, vkMap} case *types.Struct: ll, kind := p.toLLVMStruct(t) return &aType{ll, typ, kind}