ssa: abiTypeInit kind

This commit is contained in:
visualfc
2024-06-20 22:08:44 +08:00
parent c158169bdf
commit 9ae7d4f2bf
12 changed files with 3082 additions and 3131 deletions

View File

@@ -1515,220 +1515,206 @@ _llgo_0:
_llgo_1: ; preds = %_llgo_0 _llgo_1: ; preds = %_llgo_0
%2 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 13) %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
store ptr %2, ptr @_llgo_float32, align 8 store ptr %2, ptr @_llgo_float32, align 8
br label %_llgo_2 br label %_llgo_2
_llgo_2: ; preds = %_llgo_1, %_llgo_0 _llgo_2: ; preds = %_llgo_1, %_llgo_0
%3 = load ptr, ptr @_llgo_float32, align 8 %6 = load ptr, ptr @_llgo_float64, align 8
%4 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Type", ptr %3, i32 0, i32 6 %7 = icmp eq ptr %6, null
%5 = load i8, ptr %4, align 1 br i1 %7, label %_llgo_3, label %_llgo_4
%6 = or i8 %5, 32
store i8 %6, ptr %4, align 1
%7 = load ptr, ptr @_llgo_float64, align 8
%8 = icmp eq ptr %7, null
br i1 %8, label %_llgo_3, label %_llgo_4
_llgo_3: ; preds = %_llgo_2 _llgo_3: ; preds = %_llgo_2
%9 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 14) %8 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 14)
store ptr %9, ptr @_llgo_float64, align 8 %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
br label %_llgo_4 br label %_llgo_4
_llgo_4: ; preds = %_llgo_3, %_llgo_2 _llgo_4: ; preds = %_llgo_3, %_llgo_2
%10 = load ptr, ptr @_llgo_float64, align 8 %12 = load ptr, ptr @_llgo_string, align 8
%11 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Type", ptr %10, i32 0, i32 6 %13 = icmp eq ptr %12, null
%12 = load i8, ptr %11, align 1 br i1 %13, label %_llgo_5, label %_llgo_6
%13 = or i8 %12, 32
store i8 %13, ptr %11, align 1
%14 = load ptr, ptr @_llgo_string, align 8
%15 = icmp eq ptr %14, null
br i1 %15, label %_llgo_5, label %_llgo_6
_llgo_5: ; preds = %_llgo_4 _llgo_5: ; preds = %_llgo_4
%16 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 24) %14 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 24)
store ptr %16, ptr @_llgo_string, align 8 store ptr %14, ptr @_llgo_string, align 8
br label %_llgo_6 br label %_llgo_6
_llgo_6: ; preds = %_llgo_5, %_llgo_4 _llgo_6: ; preds = %_llgo_5, %_llgo_4
%17 = load ptr, ptr @_llgo_bool, align 8 %15 = load ptr, ptr @_llgo_bool, align 8
%18 = icmp eq ptr %17, null %16 = icmp eq ptr %15, null
br i1 %18, label %_llgo_7, label %_llgo_8 br i1 %16, label %_llgo_7, label %_llgo_8
_llgo_7: ; preds = %_llgo_6 _llgo_7: ; preds = %_llgo_6
%19 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 1) %17 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 1)
store ptr %19, ptr @_llgo_bool, align 8 %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
br label %_llgo_8 br label %_llgo_8
_llgo_8: ; preds = %_llgo_7, %_llgo_6 _llgo_8: ; preds = %_llgo_7, %_llgo_6
%20 = load ptr, ptr @_llgo_bool, align 8 %21 = load ptr, ptr @_llgo_int32, align 8
%21 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Type", ptr %20, i32 0, i32 6 %22 = icmp eq ptr %21, null
%22 = load i8, ptr %21, align 1 br i1 %22, label %_llgo_9, label %_llgo_10
%23 = or i8 %22, 32
store i8 %23, ptr %21, align 1
%24 = load ptr, ptr @_llgo_int32, align 8
%25 = icmp eq ptr %24, null
br i1 %25, label %_llgo_9, label %_llgo_10
_llgo_9: ; preds = %_llgo_8 _llgo_9: ; preds = %_llgo_8
%26 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 5) %23 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 5)
store ptr %26, ptr @_llgo_int32, align 8 %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
br label %_llgo_10 br label %_llgo_10
_llgo_10: ; preds = %_llgo_9, %_llgo_8 _llgo_10: ; preds = %_llgo_9, %_llgo_8
%27 = load ptr, ptr @_llgo_int32, align 8 %27 = load ptr, ptr @_llgo_int8, align 8
%28 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Type", ptr %27, i32 0, i32 6 %28 = icmp eq ptr %27, null
%29 = load i8, ptr %28, align 1 br i1 %28, label %_llgo_11, label %_llgo_12
%30 = or i8 %29, 32
store i8 %30, ptr %28, align 1
%31 = load ptr, ptr @_llgo_int8, align 8
%32 = icmp eq ptr %31, null
br i1 %32, label %_llgo_11, label %_llgo_12
_llgo_11: ; preds = %_llgo_10 _llgo_11: ; preds = %_llgo_10
%33 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 3) %29 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 3)
store ptr %33, ptr @_llgo_int8, align 8 %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
br label %_llgo_12 br label %_llgo_12
_llgo_12: ; preds = %_llgo_11, %_llgo_10 _llgo_12: ; preds = %_llgo_11, %_llgo_10
%34 = load ptr, ptr @_llgo_int8, align 8 %33 = load ptr, ptr @_llgo_int16, align 8
%35 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Type", ptr %34, i32 0, i32 6 %34 = icmp eq ptr %33, null
%36 = load i8, ptr %35, align 1 br i1 %34, label %_llgo_13, label %_llgo_14
%37 = or i8 %36, 32
store i8 %37, ptr %35, align 1
%38 = load ptr, ptr @_llgo_int16, align 8
%39 = icmp eq ptr %38, null
br i1 %39, label %_llgo_13, label %_llgo_14
_llgo_13: ; preds = %_llgo_12 _llgo_13: ; preds = %_llgo_12
%40 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 4) %35 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 4)
store ptr %40, ptr @_llgo_int16, align 8 %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
br label %_llgo_14 br label %_llgo_14
_llgo_14: ; preds = %_llgo_13, %_llgo_12 _llgo_14: ; preds = %_llgo_13, %_llgo_12
%41 = load ptr, ptr @_llgo_int16, align 8 %39 = load ptr, ptr @_llgo_int64, align 8
%40 = icmp eq ptr %39, null
br i1 %40, 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 %42 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Type", ptr %41, i32 0, i32 6
%43 = load i8, ptr %42, align 1 %43 = load i8, ptr %42, align 1
%44 = or i8 %43, 32 %44 = or i8 %43, 32
store i8 %44, ptr %42, align 1 store i8 %44, ptr %42, align 1
%45 = load ptr, ptr @_llgo_int64, align 8 store ptr %41, ptr @_llgo_int64, align 8
%46 = icmp eq ptr %45, null
br i1 %46, label %_llgo_15, label %_llgo_16
_llgo_15: ; preds = %_llgo_14
%47 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 6)
store ptr %47, ptr @_llgo_int64, align 8
br label %_llgo_16 br label %_llgo_16
_llgo_16: ; preds = %_llgo_15, %_llgo_14 _llgo_16: ; preds = %_llgo_15, %_llgo_14
%48 = load ptr, ptr @_llgo_int64, align 8 %45 = load ptr, ptr @_llgo_int, align 8
%49 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Type", ptr %48, i32 0, i32 6 %46 = icmp eq ptr %45, null
%50 = load i8, ptr %49, align 1 br i1 %46, label %_llgo_17, label %_llgo_18
%51 = or i8 %50, 32
store i8 %51, ptr %49, align 1
%52 = load ptr, ptr @_llgo_int, align 8
%53 = icmp eq ptr %52, null
br i1 %53, label %_llgo_17, label %_llgo_18
_llgo_17: ; preds = %_llgo_16 _llgo_17: ; preds = %_llgo_16
%54 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 2) %47 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 2)
store ptr %54, ptr @_llgo_int, align 8 %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
br label %_llgo_18 br label %_llgo_18
_llgo_18: ; preds = %_llgo_17, %_llgo_16 _llgo_18: ; preds = %_llgo_17, %_llgo_16
%55 = load ptr, ptr @_llgo_int, align 8 %51 = load ptr, ptr @_llgo_uint8, align 8
%56 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Type", ptr %55, i32 0, i32 6 %52 = icmp eq ptr %51, null
%57 = load i8, ptr %56, align 1 br i1 %52, label %_llgo_19, label %_llgo_20
%58 = or i8 %57, 32
store i8 %58, ptr %56, align 1
%59 = load ptr, ptr @_llgo_uint8, align 8
%60 = icmp eq ptr %59, null
br i1 %60, label %_llgo_19, label %_llgo_20
_llgo_19: ; preds = %_llgo_18 _llgo_19: ; preds = %_llgo_18
%61 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 8) %53 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 8)
store ptr %61, ptr @_llgo_uint8, align 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
br label %_llgo_20 br label %_llgo_20
_llgo_20: ; preds = %_llgo_19, %_llgo_18 _llgo_20: ; preds = %_llgo_19, %_llgo_18
%62 = load ptr, ptr @_llgo_uint8, align 8 %57 = load ptr, ptr @_llgo_uint16, align 8
%63 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Type", ptr %62, i32 0, i32 6 %58 = icmp eq ptr %57, null
%64 = load i8, ptr %63, align 1 br i1 %58, label %_llgo_21, label %_llgo_22
%65 = or i8 %64, 32
store i8 %65, ptr %63, align 1
%66 = load ptr, ptr @_llgo_uint16, align 8
%67 = icmp eq ptr %66, null
br i1 %67, label %_llgo_21, label %_llgo_22
_llgo_21: ; preds = %_llgo_20 _llgo_21: ; preds = %_llgo_20
%68 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 9) %59 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 9)
store ptr %68, ptr @_llgo_uint16, align 8 %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
br label %_llgo_22 br label %_llgo_22
_llgo_22: ; preds = %_llgo_21, %_llgo_20 _llgo_22: ; preds = %_llgo_21, %_llgo_20
%69 = load ptr, ptr @_llgo_uint16, align 8 %63 = load ptr, ptr @_llgo_uint32, align 8
%70 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Type", ptr %69, i32 0, i32 6 %64 = icmp eq ptr %63, null
%71 = load i8, ptr %70, align 1 br i1 %64, label %_llgo_23, label %_llgo_24
%72 = or i8 %71, 32
store i8 %72, ptr %70, align 1
%73 = load ptr, ptr @_llgo_uint32, align 8
%74 = icmp eq ptr %73, null
br i1 %74, label %_llgo_23, label %_llgo_24
_llgo_23: ; preds = %_llgo_22 _llgo_23: ; preds = %_llgo_22
%75 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 10) %65 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 10)
store ptr %75, ptr @_llgo_uint32, align 8 %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
br label %_llgo_24 br label %_llgo_24
_llgo_24: ; preds = %_llgo_23, %_llgo_22 _llgo_24: ; preds = %_llgo_23, %_llgo_22
%76 = load ptr, ptr @_llgo_uint32, align 8 %69 = load ptr, ptr @_llgo_uint64, align 8
%77 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Type", ptr %76, i32 0, i32 6 %70 = icmp eq ptr %69, null
%78 = load i8, ptr %77, align 1 br i1 %70, label %_llgo_25, label %_llgo_26
%79 = or i8 %78, 32
store i8 %79, ptr %77, align 1
%80 = load ptr, ptr @_llgo_uint64, align 8
%81 = icmp eq ptr %80, null
br i1 %81, label %_llgo_25, label %_llgo_26
_llgo_25: ; preds = %_llgo_24 _llgo_25: ; preds = %_llgo_24
%82 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 11) %71 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 11)
store ptr %82, ptr @_llgo_uint64, align 8 %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
br label %_llgo_26 br label %_llgo_26
_llgo_26: ; preds = %_llgo_25, %_llgo_24 _llgo_26: ; preds = %_llgo_25, %_llgo_24
%83 = load ptr, ptr @_llgo_uint64, align 8 %75 = load ptr, ptr @_llgo_uintptr, align 8
%76 = icmp eq ptr %75, null
br i1 %76, 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
br label %_llgo_28
_llgo_28: ; preds = %_llgo_27, %_llgo_26
%81 = load ptr, ptr @_llgo_uint, align 8
%82 = icmp eq ptr %81, null
br i1 %82, label %_llgo_29, label %_llgo_30
_llgo_29: ; preds = %_llgo_28
%83 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 7)
%84 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Type", ptr %83, i32 0, i32 6 %84 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Type", ptr %83, i32 0, i32 6
%85 = load i8, ptr %84, align 1 %85 = load i8, ptr %84, align 1
%86 = or i8 %85, 32 %86 = or i8 %85, 32
store i8 %86, ptr %84, align 1 store i8 %86, ptr %84, align 1
%87 = load ptr, ptr @_llgo_uintptr, align 8 store ptr %83, ptr @_llgo_uint, align 8
%88 = icmp eq ptr %87, null
br i1 %88, label %_llgo_27, label %_llgo_28
_llgo_27: ; preds = %_llgo_26
%89 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 12)
store ptr %89, ptr @_llgo_uintptr, align 8
br label %_llgo_28
_llgo_28: ; preds = %_llgo_27, %_llgo_26
%90 = load ptr, ptr @_llgo_uintptr, align 8
%91 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Type", ptr %90, i32 0, i32 6
%92 = load i8, ptr %91, align 1
%93 = or i8 %92, 32
store i8 %93, ptr %91, align 1
%94 = load ptr, ptr @_llgo_uint, align 8
%95 = icmp eq ptr %94, null
br i1 %95, label %_llgo_29, label %_llgo_30
_llgo_29: ; preds = %_llgo_28
%96 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 7)
store ptr %96, ptr @_llgo_uint, align 8
br label %_llgo_30 br label %_llgo_30
_llgo_30: ; preds = %_llgo_29, %_llgo_28 _llgo_30: ; preds = %_llgo_29, %_llgo_28
%97 = load ptr, ptr @_llgo_uint, align 8
%98 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Type", ptr %97, i32 0, i32 6
%99 = load i8, ptr %98, align 1
%100 = or i8 %99, 32
store i8 %100, ptr %98, align 1
ret void ret void
} }

View File

@@ -152,22 +152,21 @@ _llgo_0:
_llgo_1: ; preds = %_llgo_0 _llgo_1: ; preds = %_llgo_0
%2 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 2) %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
store ptr %2, ptr @_llgo_int, align 8 store ptr %2, ptr @_llgo_int, align 8
br label %_llgo_2 br label %_llgo_2
_llgo_2: ; preds = %_llgo_1, %_llgo_0 _llgo_2: ; preds = %_llgo_1, %_llgo_0
%3 = load ptr, ptr @_llgo_int, align 8 %6 = load ptr, ptr @_llgo_string, align 8
%4 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Type", ptr %3, i32 0, i32 6 %7 = icmp eq ptr %6, null
%5 = load i8, ptr %4, align 1 br i1 %7, label %_llgo_3, label %_llgo_4
%6 = or i8 %5, 32
store i8 %6, ptr %4, align 1
%7 = load ptr, ptr @_llgo_string, align 8
%8 = icmp eq ptr %7, null
br i1 %8, label %_llgo_3, label %_llgo_4
_llgo_3: ; preds = %_llgo_2 _llgo_3: ; preds = %_llgo_2
%9 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 24) %8 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 24)
store ptr %9, ptr @_llgo_string, align 8 store ptr %8, ptr @_llgo_string, align 8
br label %_llgo_4 br label %_llgo_4
_llgo_4: ; preds = %_llgo_3, %_llgo_2 _llgo_4: ; preds = %_llgo_3, %_llgo_2

View File

@@ -572,217 +572,216 @@ _llgo_2: ; preds = %_llgo_1, %_llgo_0
_llgo_3: ; preds = %_llgo_2 _llgo_3: ; preds = %_llgo_2
%5 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 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
store ptr %5, ptr @_llgo_int, align 8 store ptr %5, ptr @_llgo_int, align 8
br label %_llgo_4 br label %_llgo_4
_llgo_4: ; preds = %_llgo_3, %_llgo_2 _llgo_4: ; preds = %_llgo_3, %_llgo_2
%6 = load ptr, ptr @_llgo_int, align 8 %9 = load ptr, ptr @"_llgo_struct$n1H8J_3prDN3firMwPxBLVTkE5hJ9Di-AqNvaC9jczw", align 8
%7 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Type", ptr %6, i32 0, i32 6 %10 = icmp eq ptr %9, null
%8 = load i8, ptr %7, align 1 br i1 %10, label %_llgo_5, label %_llgo_6
%9 = or i8 %8, 32
store i8 %9, ptr %7, align 1
%10 = load ptr, ptr @"_llgo_struct$n1H8J_3prDN3firMwPxBLVTkE5hJ9Di-AqNvaC9jczw", align 8
%11 = icmp eq ptr %10, null
br i1 %11, label %_llgo_5, label %_llgo_6
_llgo_5: ; preds = %_llgo_4 _llgo_5: ; preds = %_llgo_4
%12 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 %11 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8
%13 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %12, i32 0, i32 0 %12 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %11, i32 0, i32 0
store ptr @3, ptr %13, align 8 store ptr @3, ptr %12, align 8
%14 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %12, i32 0, i32 1 %13 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %11, i32 0, i32 1
store i64 4, ptr %14, align 4 store i64 4, ptr %13, align 4
%15 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %12, align 8 %14 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %11, align 8
%16 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 0) %15 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 0)
%17 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 %16 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8
%18 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %17, i32 0, i32 0 %17 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %16, i32 0, i32 0
store ptr %16, ptr %18, align 8 store ptr %15, ptr %17, align 8
%19 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %17, i32 0, i32 1 %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 store i64 0, ptr %19, align 4
%20 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %17, i32 0, i32 2 %20 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %16, align 8
store i64 0, ptr %20, align 4 %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)
%21 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %17, align 8 store ptr %21, ptr @"_llgo_struct$n1H8J_3prDN3firMwPxBLVTkE5hJ9Di-AqNvaC9jczw", align 8
%22 = call ptr @"github.com/goplus/llgo/internal/runtime.Struct"(%"github.com/goplus/llgo/internal/runtime.String" %15, i64 0, %"github.com/goplus/llgo/internal/runtime.Slice" %21)
store ptr %22, ptr @"_llgo_struct$n1H8J_3prDN3firMwPxBLVTkE5hJ9Di-AqNvaC9jczw", align 8
br label %_llgo_6 br label %_llgo_6
_llgo_6: ; preds = %_llgo_5, %_llgo_4 _llgo_6: ; preds = %_llgo_5, %_llgo_4
%23 = load ptr, ptr @_llgo_main.T, align 8 %22 = load ptr, ptr @_llgo_main.T, align 8
%24 = icmp eq ptr %23, null %23 = icmp eq ptr %22, null
br i1 %24, label %_llgo_7, label %_llgo_8 br i1 %23, label %_llgo_7, label %_llgo_8
_llgo_7: ; preds = %_llgo_6 _llgo_7: ; preds = %_llgo_6
%25 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(i64 25, i64 0, i64 0) %24 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(i64 25, i64 0, i64 0)
store ptr %25, ptr @_llgo_main.T, align 8 store ptr %24, ptr @_llgo_main.T, align 8
br label %_llgo_8 br label %_llgo_8
_llgo_8: ; preds = %_llgo_7, %_llgo_6 _llgo_8: ; preds = %_llgo_7, %_llgo_6
%25 = load ptr, ptr @_llgo_int, align 8
%26 = load ptr, ptr @_llgo_int, align 8 %26 = load ptr, ptr @_llgo_int, align 8
%27 = load ptr, ptr @_llgo_int, align 8 %27 = load ptr, ptr @_llgo_string, align 8
%28 = load ptr, ptr @_llgo_string, align 8 %28 = load ptr, ptr @_llgo_any, align 8
%29 = load ptr, ptr @_llgo_any, align 8 %29 = icmp eq ptr %28, null
%30 = icmp eq ptr %29, null br i1 %29, label %_llgo_9, label %_llgo_10
br i1 %30, label %_llgo_9, label %_llgo_10
_llgo_9: ; preds = %_llgo_8 _llgo_9: ; preds = %_llgo_8
%31 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 0) %30 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 0)
%32 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 %31 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8
%33 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %32, i32 0, i32 0 %32 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %31, i32 0, i32 0
store ptr %31, ptr %33, align 8 store ptr %30, ptr %32, align 8
%34 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %32, i32 0, i32 1 %33 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %31, i32 0, i32 1
store i64 0, ptr %33, align 4
%34 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %31, i32 0, i32 2
store i64 0, ptr %34, align 4 store i64 0, ptr %34, align 4
%35 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %32, i32 0, i32 2 %35 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %31, align 8
store i64 0, ptr %35, align 4 %36 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8
%36 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %32, align 8 %37 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %36, i32 0, i32 0
%37 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 store ptr @3, ptr %37, align 8
%38 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %37, i32 0, i32 0 %38 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %36, i32 0, i32 1
store ptr @3, ptr %38, align 8 store i64 4, ptr %38, align 4
%39 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %37, i32 0, i32 1 %39 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %36, align 8
store i64 4, ptr %39, align 4 %40 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8
%40 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %37, align 8 %41 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %40, i32 0, i32 0
%41 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 store ptr null, ptr %41, align 8
%42 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %41, i32 0, i32 0 %42 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %40, i32 0, i32 1
store ptr null, ptr %42, align 8 store i64 0, ptr %42, align 4
%43 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %41, i32 0, i32 1 %43 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %40, align 8
store i64 0, ptr %43, align 4 %44 = call ptr @"github.com/goplus/llgo/internal/runtime.Interface"(%"github.com/goplus/llgo/internal/runtime.String" %39, %"github.com/goplus/llgo/internal/runtime.String" %43, %"github.com/goplus/llgo/internal/runtime.Slice" %35)
%44 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %41, align 8 store ptr %44, ptr @_llgo_any, align 8
%45 = call ptr @"github.com/goplus/llgo/internal/runtime.Interface"(%"github.com/goplus/llgo/internal/runtime.String" %40, %"github.com/goplus/llgo/internal/runtime.String" %44, %"github.com/goplus/llgo/internal/runtime.Slice" %36)
store ptr %45, ptr @_llgo_any, align 8
br label %_llgo_10 br label %_llgo_10
_llgo_10: ; preds = %_llgo_9, %_llgo_8 _llgo_10: ; preds = %_llgo_9, %_llgo_8
%46 = load ptr, ptr @_llgo_any, align 8 %45 = load ptr, ptr @_llgo_any, align 8
%47 = load ptr, ptr @"_llgo_struct$5D_KhR3tDEp-wpx9caTiVZca43wS-XW6slE9Bsr8rsk", align 8 %46 = load ptr, ptr @"_llgo_struct$5D_KhR3tDEp-wpx9caTiVZca43wS-XW6slE9Bsr8rsk", align 8
%48 = icmp eq ptr %47, null %47 = icmp eq ptr %46, null
br i1 %48, label %_llgo_11, label %_llgo_12 br i1 %47, label %_llgo_11, label %_llgo_12
_llgo_11: ; preds = %_llgo_10 _llgo_11: ; preds = %_llgo_10
%49 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 %48 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8
%50 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %49, i32 0, i32 0 %49 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %48, i32 0, i32 0
store ptr @4, ptr %50, align 8 store ptr @4, ptr %49, align 8
%51 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %49, i32 0, i32 1 %50 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %48, i32 0, i32 1
store i64 1, ptr %51, align 4 store i64 1, ptr %50, align 4
%52 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %49, align 8 %51 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %48, align 8
%53 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 %52 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8
%54 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %53, i32 0, i32 0 %53 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %52, i32 0, i32 0
store ptr null, ptr %54, align 8 store ptr null, ptr %53, align 8
%55 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %53, i32 0, i32 1 %54 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %52, i32 0, i32 1
store i64 0, ptr %55, align 4 store i64 0, ptr %54, align 4
%56 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %53, align 8 %55 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %52, align 8
%57 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %52, ptr %26, i64 0, %"github.com/goplus/llgo/internal/runtime.String" %56, i1 false) %56 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %51, ptr %25, i64 0, %"github.com/goplus/llgo/internal/runtime.String" %55, i1 false)
%58 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 %57 = 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 %58 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %57, i32 0, i32 0
store ptr @5, ptr %59, align 8 store ptr @5, ptr %58, align 8
%60 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %58, i32 0, i32 1 %59 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %57, i32 0, i32 1
store i64 1, ptr %60, align 4 store i64 1, ptr %59, align 4
%61 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %58, align 8 %60 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %57, align 8
%62 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 %61 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8
%63 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %62, i32 0, i32 0 %62 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %61, i32 0, i32 0
store ptr null, ptr %63, align 8 store ptr null, ptr %62, align 8
%64 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %62, i32 0, i32 1 %63 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %61, i32 0, i32 1
store i64 0, ptr %64, align 4 store i64 0, ptr %63, align 4
%65 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %62, align 8 %64 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %61, align 8
%66 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %61, ptr %27, i64 8, %"github.com/goplus/llgo/internal/runtime.String" %65, i1 false) %65 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %60, ptr %26, i64 8, %"github.com/goplus/llgo/internal/runtime.String" %64, i1 false)
%67 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 %66 = 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 %67 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %66, i32 0, i32 0
store ptr @6, ptr %68, align 8 store ptr @6, ptr %67, align 8
%69 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %67, i32 0, i32 1 %68 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %66, i32 0, i32 1
store i64 1, ptr %69, align 4 store i64 1, ptr %68, align 4
%70 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %67, align 8 %69 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %66, align 8
%71 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 %70 = 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 %71 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %70, i32 0, i32 0
store ptr null, ptr %72, align 8 store ptr null, ptr %71, align 8
%73 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %71, i32 0, i32 1 %72 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %70, i32 0, i32 1
store i64 0, ptr %73, align 4 store i64 0, ptr %72, align 4
%74 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %71, align 8 %73 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %70, align 8
%75 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %70, ptr %28, i64 16, %"github.com/goplus/llgo/internal/runtime.String" %74, i1 false) %74 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %69, ptr %27, i64 16, %"github.com/goplus/llgo/internal/runtime.String" %73, i1 false)
%76 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 %75 = 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 %76 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %75, i32 0, i32 0
store ptr @7, ptr %77, align 8 store ptr @7, ptr %76, align 8
%78 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %76, i32 0, i32 1 %77 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %75, i32 0, i32 1
store i64 1, ptr %78, align 4 store i64 1, ptr %77, align 4
%79 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %76, align 8 %78 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %75, align 8
%80 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 %79 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8
%81 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %80, i32 0, i32 0 %80 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %79, i32 0, i32 0
store ptr null, ptr %81, align 8 store ptr null, ptr %80, align 8
%82 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %80, i32 0, i32 1 %81 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %79, i32 0, i32 1
store i64 0, ptr %82, align 4 store i64 0, ptr %81, align 4
%83 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %80, align 8 %82 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %79, align 8
%84 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %79, ptr %46, i64 32, %"github.com/goplus/llgo/internal/runtime.String" %83, i1 false) %83 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %78, ptr %45, i64 32, %"github.com/goplus/llgo/internal/runtime.String" %82, i1 false)
%85 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 %84 = 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 %85 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %84, i32 0, i32 0
store ptr @3, ptr %86, align 8 store ptr @3, ptr %85, align 8
%87 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %85, i32 0, i32 1 %86 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %84, i32 0, i32 1
store i64 4, ptr %87, align 4 store i64 4, ptr %86, align 4
%88 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %85, align 8 %87 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %84, align 8
%89 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 224) %88 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 224)
%90 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %89, i64 0 %89 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %88, i64 0
store %"github.com/goplus/llgo/internal/abi.StructField" %57, ptr %90, align 8 store %"github.com/goplus/llgo/internal/abi.StructField" %56, ptr %89, align 8
%91 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %89, i64 1 %90 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %88, i64 1
store %"github.com/goplus/llgo/internal/abi.StructField" %66, ptr %91, align 8 store %"github.com/goplus/llgo/internal/abi.StructField" %65, ptr %90, align 8
%92 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %89, i64 2 %91 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %88, i64 2
store %"github.com/goplus/llgo/internal/abi.StructField" %75, ptr %92, align 8 store %"github.com/goplus/llgo/internal/abi.StructField" %74, ptr %91, align 8
%93 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %89, i64 3 %92 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %88, i64 3
store %"github.com/goplus/llgo/internal/abi.StructField" %84, ptr %93, align 8 store %"github.com/goplus/llgo/internal/abi.StructField" %83, ptr %92, align 8
%94 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 %93 = 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 %94 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %93, i32 0, i32 0
store ptr %89, ptr %95, align 8 store ptr %88, ptr %94, align 8
%96 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %94, i32 0, i32 1 %95 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %93, i32 0, i32 1
store i64 4, ptr %95, align 4
%96 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %93, i32 0, i32 2
store i64 4, ptr %96, align 4 store i64 4, ptr %96, align 4
%97 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %94, i32 0, i32 2 %97 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %93, align 8
store i64 4, ptr %97, align 4 %98 = call ptr @"github.com/goplus/llgo/internal/runtime.Struct"(%"github.com/goplus/llgo/internal/runtime.String" %87, i64 48, %"github.com/goplus/llgo/internal/runtime.Slice" %97)
%98 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %94, align 8 store ptr %98, ptr @"_llgo_struct$5D_KhR3tDEp-wpx9caTiVZca43wS-XW6slE9Bsr8rsk", align 8
%99 = call ptr @"github.com/goplus/llgo/internal/runtime.Struct"(%"github.com/goplus/llgo/internal/runtime.String" %88, i64 48, %"github.com/goplus/llgo/internal/runtime.Slice" %98)
store ptr %99, ptr @"_llgo_struct$5D_KhR3tDEp-wpx9caTiVZca43wS-XW6slE9Bsr8rsk", align 8
br label %_llgo_12 br label %_llgo_12
_llgo_12: ; preds = %_llgo_11, %_llgo_10 _llgo_12: ; preds = %_llgo_11, %_llgo_10
%100 = load ptr, ptr @"_llgo_struct$5D_KhR3tDEp-wpx9caTiVZca43wS-XW6slE9Bsr8rsk", align 8 %99 = load ptr, ptr @"_llgo_struct$5D_KhR3tDEp-wpx9caTiVZca43wS-XW6slE9Bsr8rsk", align 8
br i1 %24, label %_llgo_13, label %_llgo_14 br i1 %23, label %_llgo_13, label %_llgo_14
_llgo_13: ; preds = %_llgo_12 _llgo_13: ; preds = %_llgo_12
%101 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 %100 = 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 %101 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %100, i32 0, i32 0
store ptr @3, ptr %102, align 8 store ptr @3, ptr %101, align 8
%103 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %101, i32 0, i32 1 %102 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %100, i32 0, i32 1
store i64 4, ptr %103, align 4 store i64 4, ptr %102, align 4
%104 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %101, align 8 %103 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %100, align 8
%105 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 %104 = 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 %105 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %104, i32 0, i32 0
store ptr @8, ptr %106, align 8 store ptr @8, ptr %105, align 8
%107 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %105, i32 0, i32 1 %106 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %104, i32 0, i32 1
store i64 6, ptr %107, align 4 store i64 6, ptr %106, align 4
%108 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %105, align 8 %107 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %104, align 8
call void @"github.com/goplus/llgo/internal/runtime.InitNamed"(ptr %25, %"github.com/goplus/llgo/internal/runtime.String" %104, %"github.com/goplus/llgo/internal/runtime.String" %108, ptr %100, { ptr, i64, i64 } zeroinitializer, { ptr, i64, i64 } zeroinitializer) call void @"github.com/goplus/llgo/internal/runtime.InitNamed"(ptr %24, %"github.com/goplus/llgo/internal/runtime.String" %103, %"github.com/goplus/llgo/internal/runtime.String" %107, ptr %99, { ptr, i64, i64 } zeroinitializer, { ptr, i64, i64 } zeroinitializer)
br label %_llgo_14 br label %_llgo_14
_llgo_14: ; preds = %_llgo_13, %_llgo_12 _llgo_14: ; preds = %_llgo_13, %_llgo_12
%109 = load ptr, ptr @_llgo_main.N, align 8 %108 = load ptr, ptr @_llgo_main.N, align 8
%110 = icmp eq ptr %109, null %109 = icmp eq ptr %108, null
br i1 %110, label %_llgo_15, label %_llgo_16 br i1 %109, label %_llgo_15, label %_llgo_16
_llgo_15: ; preds = %_llgo_14 _llgo_15: ; preds = %_llgo_14
%111 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(i64 25, i64 0, i64 0) %110 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(i64 25, i64 0, i64 0)
store ptr %111, ptr @_llgo_main.N, align 8 store ptr %110, ptr @_llgo_main.N, align 8
br label %_llgo_16 br label %_llgo_16
_llgo_16: ; preds = %_llgo_15, %_llgo_14 _llgo_16: ; preds = %_llgo_15, %_llgo_14
%112 = load ptr, ptr @"_llgo_struct$n1H8J_3prDN3firMwPxBLVTkE5hJ9Di-AqNvaC9jczw", align 8 %111 = load ptr, ptr @"_llgo_struct$n1H8J_3prDN3firMwPxBLVTkE5hJ9Di-AqNvaC9jczw", align 8
br i1 %110, label %_llgo_17, label %_llgo_18 br i1 %109, label %_llgo_17, label %_llgo_18
_llgo_17: ; preds = %_llgo_16 _llgo_17: ; preds = %_llgo_16
%113 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 %112 = 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 %113 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %112, i32 0, i32 0
store ptr @3, ptr %114, align 8 store ptr @3, ptr %113, align 8
%115 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %113, i32 0, i32 1 %114 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %112, i32 0, i32 1
store i64 4, ptr %115, align 4 store i64 4, ptr %114, align 4
%116 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %113, align 8 %115 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %112, align 8
%117 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 %116 = 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 %117 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %116, i32 0, i32 0
store ptr @9, ptr %118, align 8 store ptr @9, ptr %117, align 8
%119 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %117, i32 0, i32 1 %118 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %116, i32 0, i32 1
store i64 6, ptr %119, align 4 store i64 6, ptr %118, align 4
%120 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %117, align 8 %119 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %116, align 8
call void @"github.com/goplus/llgo/internal/runtime.InitNamed"(ptr %111, %"github.com/goplus/llgo/internal/runtime.String" %116, %"github.com/goplus/llgo/internal/runtime.String" %120, ptr %112, { ptr, i64, i64 } zeroinitializer, { ptr, i64, i64 } zeroinitializer) call void @"github.com/goplus/llgo/internal/runtime.InitNamed"(ptr %110, %"github.com/goplus/llgo/internal/runtime.String" %115, %"github.com/goplus/llgo/internal/runtime.String" %119, ptr %111, { ptr, i64, i64 } zeroinitializer, { ptr, i64, i64 } zeroinitializer)
br label %_llgo_18 br label %_llgo_18
_llgo_18: ; preds = %_llgo_17, %_llgo_16 _llgo_18: ; preds = %_llgo_17, %_llgo_16

View File

@@ -677,291 +677,290 @@ _llgo_2: ; preds = %_llgo_1, %_llgo_0
_llgo_3: ; preds = %_llgo_2 _llgo_3: ; preds = %_llgo_2
%25 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 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
store ptr %25, ptr @_llgo_int, align 8 store ptr %25, ptr @_llgo_int, align 8
br label %_llgo_4 br label %_llgo_4
_llgo_4: ; preds = %_llgo_3, %_llgo_2 _llgo_4: ; preds = %_llgo_3, %_llgo_2
%26 = load ptr, ptr @_llgo_int, align 8 %29 = load ptr, ptr @_llgo_int, align 8
%27 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Type", ptr %26, i32 0, i32 6 %30 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8
%28 = load i8, ptr %27, align 1 %31 = icmp eq ptr %30, null
%29 = or i8 %28, 32 br i1 %31, label %_llgo_5, label %_llgo_6
store i8 %29, ptr %27, align 1
%30 = load ptr, ptr @_llgo_int, align 8
%31 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8
%32 = icmp eq ptr %31, null
br i1 %32, label %_llgo_5, label %_llgo_6
_llgo_5: ; preds = %_llgo_4 _llgo_5: ; preds = %_llgo_4
%33 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 0) %32 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 0)
%34 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 %33 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8
%35 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %34, i32 0, i32 0 %34 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %33, i32 0, i32 0
store ptr %33, ptr %35, align 8 store ptr %32, ptr %34, align 8
%36 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %34, i32 0, i32 1 %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 store i64 0, ptr %36, align 4
%37 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %34, i32 0, i32 2 %37 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %33, align 8
store i64 0, ptr %37, align 4 %38 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 8)
%38 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %34, align 8 %39 = getelementptr ptr, ptr %38, i64 0
%39 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 8) store ptr %29, ptr %39, align 8
%40 = getelementptr ptr, ptr %39, i64 0 %40 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8
store ptr %30, ptr %40, align 8 %41 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %40, i32 0, i32 0
%41 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 store ptr %38, ptr %41, align 8
%42 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %41, i32 0, i32 0 %42 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %40, i32 0, i32 1
store ptr %39, ptr %42, align 8 store i64 1, ptr %42, align 4
%43 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %41, i32 0, i32 1 %43 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %40, i32 0, i32 2
store i64 1, ptr %43, align 4 store i64 1, ptr %43, align 4
%44 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %41, i32 0, i32 2 %44 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %40, align 8
store i64 1, ptr %44, align 4 %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)
%45 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %41, align 8 store ptr %45, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8
%46 = call ptr @"github.com/goplus/llgo/internal/runtime.Func"(%"github.com/goplus/llgo/internal/runtime.Slice" %38, %"github.com/goplus/llgo/internal/runtime.Slice" %45, i1 false)
store ptr %46, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8
br label %_llgo_6 br label %_llgo_6
_llgo_6: ; preds = %_llgo_5, %_llgo_4 _llgo_6: ; preds = %_llgo_5, %_llgo_4
%47 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 %46 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8
%48 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 %47 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8
%49 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %48, i32 0, i32 0 %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 %49, align 8 store %"github.com/goplus/llgo/internal/runtime.String" %22, ptr %48, align 8
%50 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %48, i32 0, i32 1 %49 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %47, i32 0, i32 1
store ptr %47, ptr %50, align 8 store ptr %46, ptr %49, align 8
%51 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %48, i32 0, i32 2 %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 store ptr @"main.(*impl).one", ptr %51, align 8
%52 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %48, i32 0, i32 3 %52 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %47, align 8
store ptr @"main.(*impl).one", ptr %52, align 8 %53 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8
%53 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %48, align 8 %54 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %53, i32 0, i32 0
%54 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 store %"github.com/goplus/llgo/internal/runtime.String" %22, ptr %54, align 8
%55 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %54, i32 0, i32 0 %55 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %53, i32 0, i32 1
store %"github.com/goplus/llgo/internal/runtime.String" %22, ptr %55, align 8 store ptr %46, ptr %55, align 8
%56 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %54, i32 0, i32 1 %56 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %53, i32 0, i32 2
store ptr %47, ptr %56, align 8 store ptr @"main.(*impl).one", ptr %56, align 8
%57 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %54, i32 0, i32 2 %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 store ptr @main.impl.one, ptr %57, align 8
%58 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %54, i32 0, i32 3 %58 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %53, align 8
store ptr @main.impl.one, ptr %58, align 8 %59 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8
%59 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %54, align 8 %60 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %59, i32 0, i32 0
%60 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 store ptr @0, ptr %60, align 8
%61 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %60, i32 0, i32 0 %61 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %59, i32 0, i32 1
store ptr @0, ptr %61, align 8 store i64 3, ptr %61, align 4
%62 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %60, i32 0, i32 1 %62 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %59, align 8
store i64 3, ptr %62, align 4 %63 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8
%63 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %60, align 8 %64 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %63, i32 0, i32 0
%64 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 store ptr @4, ptr %64, align 8
%65 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %64, i32 0, i32 0 %65 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %63, i32 0, i32 1
store ptr @4, ptr %65, align 8 store i64 8, ptr %65, align 4
%66 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %64, i32 0, i32 1 %66 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %63, align 8
store i64 8, ptr %66, align 4 %67 = load ptr, ptr @_llgo_string, align 8
%67 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %64, align 8 %68 = icmp eq ptr %67, null
%68 = load ptr, ptr @_llgo_string, align 8 br i1 %68, label %_llgo_7, label %_llgo_8
%69 = icmp eq ptr %68, null
br i1 %69, label %_llgo_7, label %_llgo_8
_llgo_7: ; preds = %_llgo_6 _llgo_7: ; preds = %_llgo_6
%70 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 24) %69 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 24)
store ptr %70, ptr @_llgo_string, align 8 store ptr %69, ptr @_llgo_string, align 8
br label %_llgo_8 br label %_llgo_8
_llgo_8: ; preds = %_llgo_7, %_llgo_6 _llgo_8: ; preds = %_llgo_7, %_llgo_6
%71 = load ptr, ptr @_llgo_string, align 8 %70 = load ptr, ptr @_llgo_string, align 8
%72 = load ptr, ptr @"_llgo_func$zNDVRsWTIpUPKouNUS805RGX--IV9qVK8B31IZbg5to", align 8 %71 = load ptr, ptr @"_llgo_func$zNDVRsWTIpUPKouNUS805RGX--IV9qVK8B31IZbg5to", align 8
%73 = icmp eq ptr %72, null %72 = icmp eq ptr %71, null
br i1 %73, label %_llgo_9, label %_llgo_10 br i1 %72, label %_llgo_9, label %_llgo_10
_llgo_9: ; preds = %_llgo_8 _llgo_9: ; preds = %_llgo_8
%74 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 0) %73 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 0)
%75 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 %74 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8
%76 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %75, i32 0, i32 0 %75 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %74, i32 0, i32 0
store ptr %74, ptr %76, align 8 store ptr %73, ptr %75, align 8
%77 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %75, i32 0, i32 1 %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 store i64 0, ptr %77, align 4
%78 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %75, i32 0, i32 2 %78 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %74, align 8
store i64 0, ptr %78, align 4 %79 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 8)
%79 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %75, align 8 %80 = getelementptr ptr, ptr %79, i64 0
%80 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 8) store ptr %70, ptr %80, align 8
%81 = getelementptr ptr, ptr %80, i64 0 %81 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8
store ptr %71, ptr %81, align 8 %82 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %81, i32 0, i32 0
%82 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 store ptr %79, ptr %82, align 8
%83 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %82, i32 0, i32 0 %83 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %81, i32 0, i32 1
store ptr %80, ptr %83, align 8 store i64 1, ptr %83, align 4
%84 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %82, i32 0, i32 1 %84 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %81, i32 0, i32 2
store i64 1, ptr %84, align 4 store i64 1, ptr %84, align 4
%85 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %82, i32 0, i32 2 %85 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %81, align 8
store i64 1, ptr %85, align 4 %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)
%86 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %82, align 8 store ptr %86, ptr @"_llgo_func$zNDVRsWTIpUPKouNUS805RGX--IV9qVK8B31IZbg5to", align 8
%87 = call ptr @"github.com/goplus/llgo/internal/runtime.Func"(%"github.com/goplus/llgo/internal/runtime.Slice" %79, %"github.com/goplus/llgo/internal/runtime.Slice" %86, i1 false)
store ptr %87, ptr @"_llgo_func$zNDVRsWTIpUPKouNUS805RGX--IV9qVK8B31IZbg5to", align 8
br label %_llgo_10 br label %_llgo_10
_llgo_10: ; preds = %_llgo_9, %_llgo_8 _llgo_10: ; preds = %_llgo_9, %_llgo_8
%88 = load ptr, ptr @"_llgo_func$zNDVRsWTIpUPKouNUS805RGX--IV9qVK8B31IZbg5to", align 8 %87 = load ptr, ptr @"_llgo_func$zNDVRsWTIpUPKouNUS805RGX--IV9qVK8B31IZbg5to", align 8
%89 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 %88 = 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 %89 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %88, i32 0, i32 0
store %"github.com/goplus/llgo/internal/runtime.String" %67, ptr %90, align 8 store %"github.com/goplus/llgo/internal/runtime.String" %66, ptr %89, align 8
%91 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %89, i32 0, i32 1 %90 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %88, i32 0, i32 1
store ptr %88, ptr %91, align 8 store ptr %87, ptr %90, align 8
%92 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %89, i32 0, i32 2 %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 store ptr @"main.(*impl).two", ptr %92, align 8
%93 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %89, i32 0, i32 3 %93 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %88, align 8
store ptr @"main.(*impl).two", ptr %93, align 8 %94 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8
%94 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %89, align 8 %95 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %94, i32 0, i32 0
%95 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 store %"github.com/goplus/llgo/internal/runtime.String" %66, ptr %95, align 8
%96 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %95, i32 0, i32 0 %96 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %94, i32 0, i32 1
store %"github.com/goplus/llgo/internal/runtime.String" %67, ptr %96, align 8 store ptr %87, ptr %96, align 8
%97 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %95, i32 0, i32 1 %97 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %94, i32 0, i32 2
store ptr %88, ptr %97, align 8 store ptr @"main.(*impl).two", ptr %97, align 8
%98 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %95, i32 0, i32 2 %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 store ptr @main.impl.two, ptr %98, align 8
%99 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %95, i32 0, i32 3 %99 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %94, align 8
store ptr @main.impl.two, ptr %99, align 8 %100 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 80)
%100 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %95, align 8 %101 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %100, i64 0
%101 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 80) store %"github.com/goplus/llgo/internal/abi.Method" %58, ptr %101, align 8
%102 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %101, i64 0 %102 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %100, i64 1
store %"github.com/goplus/llgo/internal/abi.Method" %59, ptr %102, align 8 store %"github.com/goplus/llgo/internal/abi.Method" %99, ptr %102, align 8
%103 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %101, i64 1 %103 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8
store %"github.com/goplus/llgo/internal/abi.Method" %100, ptr %103, align 8 %104 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %103, i32 0, i32 0
%104 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 store ptr %100, ptr %104, align 8
%105 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %104, i32 0, i32 0 %105 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %103, i32 0, i32 1
store ptr %101, ptr %105, align 8 store i64 2, ptr %105, align 4
%106 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %104, i32 0, i32 1 %106 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %103, i32 0, i32 2
store i64 2, ptr %106, align 4 store i64 2, ptr %106, align 4
%107 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %104, i32 0, i32 2 %107 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %103, align 8
store i64 2, ptr %107, align 4 %108 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 80)
%108 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %104, align 8 %109 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %108, i64 0
%109 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 80) store %"github.com/goplus/llgo/internal/abi.Method" %52, ptr %109, align 8
%110 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %109, i64 0 %110 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %108, i64 1
store %"github.com/goplus/llgo/internal/abi.Method" %53, ptr %110, align 8 store %"github.com/goplus/llgo/internal/abi.Method" %93, ptr %110, align 8
%111 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %109, i64 1 %111 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8
store %"github.com/goplus/llgo/internal/abi.Method" %94, ptr %111, align 8 %112 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %111, i32 0, i32 0
%112 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 store ptr %108, ptr %112, align 8
%113 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %112, i32 0, i32 0 %113 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %111, i32 0, i32 1
store ptr %109, ptr %113, align 8 store i64 2, ptr %113, align 4
%114 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %112, i32 0, i32 1 %114 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %111, i32 0, i32 2
store i64 2, ptr %114, align 4 store i64 2, ptr %114, align 4
%115 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %112, i32 0, i32 2 %115 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %111, align 8
store i64 2, ptr %115, align 4 %116 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8
%116 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %112, align 8 %117 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %116, i32 0, i32 0
%117 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 store ptr @1, ptr %117, align 8
%118 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %117, i32 0, i32 0 %118 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %116, i32 0, i32 1
store ptr @1, ptr %118, align 8 store i64 4, ptr %118, align 4
%119 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %117, i32 0, i32 1 %119 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %116, align 8
store i64 4, ptr %119, align 4 %120 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8
%120 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %117, align 8 %121 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %120, i32 0, i32 0
%121 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 store ptr @5, ptr %121, align 8
%122 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %121, i32 0, i32 0 %122 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %120, i32 0, i32 1
store ptr @5, ptr %122, align 8 store i64 9, ptr %122, align 4
%123 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %121, i32 0, i32 1 %123 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %120, align 8
store i64 9, ptr %123, align 4 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 %"github.com/goplus/llgo/internal/runtime.String", ptr %121, align 8 %124 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8
call void @"github.com/goplus/llgo/internal/runtime.InitNamed"(ptr %0, %"github.com/goplus/llgo/internal/runtime.String" %120, %"github.com/goplus/llgo/internal/runtime.String" %124, ptr %14, %"github.com/goplus/llgo/internal/runtime.Slice" %108, %"github.com/goplus/llgo/internal/runtime.Slice" %116) %125 = load ptr, ptr @"_llgo_func$zNDVRsWTIpUPKouNUS805RGX--IV9qVK8B31IZbg5to", align 8
%125 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 %126 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8
%126 = load ptr, ptr @"_llgo_func$zNDVRsWTIpUPKouNUS805RGX--IV9qVK8B31IZbg5to", align 8 %127 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %126, i32 0, i32 0
%127 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 store ptr @3, ptr %127, align 8
%128 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %127, i32 0, i32 0 %128 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %126, i32 0, i32 1
store ptr @3, ptr %128, align 8 store i64 8, ptr %128, align 4
%129 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %127, i32 0, i32 1 %129 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %126, align 8
store i64 8, ptr %129, align 4 %130 = alloca %"github.com/goplus/llgo/internal/abi.Imethod", align 8
%130 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %127, align 8 %131 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Imethod", ptr %130, i32 0, i32 0
%131 = alloca %"github.com/goplus/llgo/internal/abi.Imethod", align 8 store %"github.com/goplus/llgo/internal/runtime.String" %129, ptr %131, align 8
%132 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Imethod", ptr %131, i32 0, i32 0 %132 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Imethod", ptr %130, i32 0, i32 1
store %"github.com/goplus/llgo/internal/runtime.String" %130, ptr %132, align 8 store ptr %124, ptr %132, align 8
%133 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Imethod", ptr %131, i32 0, i32 1 %133 = load %"github.com/goplus/llgo/internal/abi.Imethod", ptr %130, align 8
store ptr %125, ptr %133, align 8 %134 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8
%134 = load %"github.com/goplus/llgo/internal/abi.Imethod", ptr %131, align 8 %135 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %134, i32 0, i32 0
%135 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 store ptr @4, ptr %135, align 8
%136 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %135, i32 0, i32 0 %136 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %134, i32 0, i32 1
store ptr @4, ptr %136, align 8 store i64 8, ptr %136, align 4
%137 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %135, i32 0, i32 1 %137 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %134, align 8
store i64 8, ptr %137, align 4 %138 = alloca %"github.com/goplus/llgo/internal/abi.Imethod", align 8
%138 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %135, align 8 %139 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Imethod", ptr %138, i32 0, i32 0
%139 = alloca %"github.com/goplus/llgo/internal/abi.Imethod", align 8 store %"github.com/goplus/llgo/internal/runtime.String" %137, ptr %139, align 8
%140 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Imethod", ptr %139, i32 0, i32 0 %140 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Imethod", ptr %138, i32 0, i32 1
store %"github.com/goplus/llgo/internal/runtime.String" %138, ptr %140, align 8 store ptr %125, ptr %140, align 8
%141 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Imethod", ptr %139, i32 0, i32 1 %141 = load %"github.com/goplus/llgo/internal/abi.Imethod", ptr %138, align 8
store ptr %126, ptr %141, align 8 %142 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 48)
%142 = load %"github.com/goplus/llgo/internal/abi.Imethod", ptr %139, align 8 %143 = getelementptr %"github.com/goplus/llgo/internal/abi.Imethod", ptr %142, i64 0
%143 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 48) store %"github.com/goplus/llgo/internal/abi.Imethod" %133, ptr %143, align 8
%144 = getelementptr %"github.com/goplus/llgo/internal/abi.Imethod", ptr %143, i64 0 %144 = getelementptr %"github.com/goplus/llgo/internal/abi.Imethod", ptr %142, i64 1
store %"github.com/goplus/llgo/internal/abi.Imethod" %134, ptr %144, align 8 store %"github.com/goplus/llgo/internal/abi.Imethod" %141, ptr %144, align 8
%145 = getelementptr %"github.com/goplus/llgo/internal/abi.Imethod", ptr %143, i64 1 %145 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8
store %"github.com/goplus/llgo/internal/abi.Imethod" %142, ptr %145, align 8 %146 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %145, i32 0, i32 0
%146 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 store ptr %142, ptr %146, align 8
%147 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %146, i32 0, i32 0 %147 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %145, i32 0, i32 1
store ptr %143, ptr %147, align 8 store i64 2, ptr %147, align 4
%148 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %146, i32 0, i32 1 %148 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %145, i32 0, i32 2
store i64 2, ptr %148, align 4 store i64 2, ptr %148, align 4
%149 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %146, i32 0, i32 2 %149 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %145, align 8
store i64 2, ptr %149, align 4 %150 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8
%150 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %146, align 8 %151 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %150, i32 0, i32 0
%151 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 store ptr @1, ptr %151, align 8
%152 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %151, i32 0, i32 0 %152 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %150, i32 0, i32 1
store ptr @1, ptr %152, align 8 store i64 4, ptr %152, align 4
%153 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %151, i32 0, i32 1 %153 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %150, align 8
store i64 4, ptr %153, align 4 %154 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8
%154 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %151, align 8 %155 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %154, i32 0, i32 0
%155 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 store ptr null, ptr %155, align 8
%156 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %155, i32 0, i32 0 %156 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %154, i32 0, i32 1
store ptr null, ptr %156, align 8 store i64 0, ptr %156, align 4
%157 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %155, i32 0, i32 1 %157 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %154, align 8
store i64 0, ptr %157, align 4 %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)
%158 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %155, align 8 store ptr %158, ptr @"main.iface$zZ89tENb5h_KNjvpxf1TXPfaWFYn0IZrZwyVf42lRtA", align 8
%159 = call ptr @"github.com/goplus/llgo/internal/runtime.Interface"(%"github.com/goplus/llgo/internal/runtime.String" %154, %"github.com/goplus/llgo/internal/runtime.String" %158, %"github.com/goplus/llgo/internal/runtime.Slice" %150) %159 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8
store ptr %159, ptr @"main.iface$zZ89tENb5h_KNjvpxf1TXPfaWFYn0IZrZwyVf42lRtA", align 8 %160 = load ptr, ptr @"_llgo_func$zNDVRsWTIpUPKouNUS805RGX--IV9qVK8B31IZbg5to", align 8
%160 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 %161 = load ptr, ptr @_llgo_main.I, align 8
%161 = load ptr, ptr @"_llgo_func$zNDVRsWTIpUPKouNUS805RGX--IV9qVK8B31IZbg5to", align 8 %162 = icmp eq ptr %161, null
%162 = load ptr, ptr @_llgo_main.I, align 8 br i1 %162, label %_llgo_11, label %_llgo_12
%163 = icmp eq ptr %162, null
br i1 %163, label %_llgo_11, label %_llgo_12
_llgo_11: ; preds = %_llgo_10 _llgo_11: ; preds = %_llgo_10
%164 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 %163 = 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 %164 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %163, i32 0, i32 0
store ptr @3, ptr %165, align 8 store ptr @3, ptr %164, align 8
%166 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %164, i32 0, i32 1 %165 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %163, i32 0, i32 1
store i64 8, ptr %166, align 4 store i64 8, ptr %165, align 4
%167 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %164, align 8 %166 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %163, align 8
%168 = alloca %"github.com/goplus/llgo/internal/abi.Imethod", align 8 %167 = alloca %"github.com/goplus/llgo/internal/abi.Imethod", align 8
%169 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Imethod", ptr %168, i32 0, i32 0 %168 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Imethod", ptr %167, i32 0, i32 0
store %"github.com/goplus/llgo/internal/runtime.String" %167, ptr %169, align 8 store %"github.com/goplus/llgo/internal/runtime.String" %166, ptr %168, align 8
%170 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Imethod", ptr %168, i32 0, i32 1 %169 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Imethod", ptr %167, i32 0, i32 1
store ptr %160, ptr %170, align 8 store ptr %159, ptr %169, align 8
%171 = load %"github.com/goplus/llgo/internal/abi.Imethod", ptr %168, align 8 %170 = load %"github.com/goplus/llgo/internal/abi.Imethod", ptr %167, align 8
%172 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 %171 = 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 %172 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %171, i32 0, i32 0
store ptr @4, ptr %173, align 8 store ptr @4, ptr %172, align 8
%174 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %172, i32 0, i32 1 %173 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %171, i32 0, i32 1
store i64 8, ptr %174, align 4 store i64 8, ptr %173, align 4
%175 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %172, align 8 %174 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %171, align 8
%176 = alloca %"github.com/goplus/llgo/internal/abi.Imethod", align 8 %175 = alloca %"github.com/goplus/llgo/internal/abi.Imethod", align 8
%177 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Imethod", ptr %176, i32 0, i32 0 %176 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Imethod", ptr %175, i32 0, i32 0
store %"github.com/goplus/llgo/internal/runtime.String" %175, ptr %177, align 8 store %"github.com/goplus/llgo/internal/runtime.String" %174, ptr %176, align 8
%178 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Imethod", ptr %176, i32 0, i32 1 %177 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Imethod", ptr %175, i32 0, i32 1
store ptr %161, ptr %178, align 8 store ptr %160, ptr %177, align 8
%179 = load %"github.com/goplus/llgo/internal/abi.Imethod", ptr %176, align 8 %178 = load %"github.com/goplus/llgo/internal/abi.Imethod", ptr %175, align 8
%180 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 48) %179 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 48)
%181 = getelementptr %"github.com/goplus/llgo/internal/abi.Imethod", ptr %180, i64 0 %180 = getelementptr %"github.com/goplus/llgo/internal/abi.Imethod", ptr %179, i64 0
store %"github.com/goplus/llgo/internal/abi.Imethod" %171, ptr %181, align 8 store %"github.com/goplus/llgo/internal/abi.Imethod" %170, ptr %180, align 8
%182 = getelementptr %"github.com/goplus/llgo/internal/abi.Imethod", ptr %180, i64 1 %181 = getelementptr %"github.com/goplus/llgo/internal/abi.Imethod", ptr %179, i64 1
store %"github.com/goplus/llgo/internal/abi.Imethod" %179, ptr %182, align 8 store %"github.com/goplus/llgo/internal/abi.Imethod" %178, ptr %181, align 8
%183 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 %182 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8
%184 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %183, i32 0, i32 0 %183 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %182, i32 0, i32 0
store ptr %180, ptr %184, align 8 store ptr %179, ptr %183, align 8
%185 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %183, i32 0, i32 1 %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 store i64 2, ptr %185, align 4
%186 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %183, i32 0, i32 2 %186 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %182, align 8
store i64 2, ptr %186, align 4 %187 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8
%187 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %183, align 8 %188 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %187, i32 0, i32 0
%188 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 store ptr @1, ptr %188, align 8
%189 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %188, i32 0, i32 0 %189 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %187, i32 0, i32 1
store ptr @1, ptr %189, align 8 store i64 4, ptr %189, align 4
%190 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %188, i32 0, i32 1 %190 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %187, align 8
store i64 4, ptr %190, align 4 %191 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8
%191 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %188, align 8 %192 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %191, i32 0, i32 0
%192 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 store ptr @6, ptr %192, align 8
%193 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %192, i32 0, i32 0 %193 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %191, i32 0, i32 1
store ptr @6, ptr %193, align 8 store i64 6, ptr %193, align 4
%194 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %192, i32 0, i32 1 %194 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %191, align 8
store i64 6, ptr %194, align 4 %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)
%195 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %192, align 8 store ptr %195, ptr @_llgo_main.I, align 8
%196 = call ptr @"github.com/goplus/llgo/internal/runtime.Interface"(%"github.com/goplus/llgo/internal/runtime.String" %191, %"github.com/goplus/llgo/internal/runtime.String" %195, %"github.com/goplus/llgo/internal/runtime.Slice" %187)
store ptr %196, ptr @_llgo_main.I, align 8
br label %_llgo_12 br label %_llgo_12
_llgo_12: ; preds = %_llgo_11, %_llgo_10 _llgo_12: ; preds = %_llgo_11, %_llgo_10

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -251,99 +251,96 @@ _llgo_0:
_llgo_1: ; preds = %_llgo_0 _llgo_1: ; preds = %_llgo_0
%2 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 2) %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
store ptr %2, ptr @_llgo_int, align 8 store ptr %2, ptr @_llgo_int, align 8
br label %_llgo_2 br label %_llgo_2
_llgo_2: ; preds = %_llgo_1, %_llgo_0 _llgo_2: ; preds = %_llgo_1, %_llgo_0
%3 = load ptr, ptr @_llgo_int, align 8 %6 = load ptr, ptr @_llgo_int, align 8
%4 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Type", ptr %3, i32 0, i32 6 %7 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8
%5 = load i8, ptr %4, align 1 %8 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %7, i32 0, i32 0
%6 = or i8 %5, 32 store ptr @0, ptr %8, align 8
store i8 %6, ptr %4, align 1 %9 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %7, i32 0, i32 1
%7 = load ptr, ptr @_llgo_int, align 8 store i64 1, ptr %9, align 4
%8 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 %10 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %7, align 8
%9 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %8, i32 0, i32 0 %11 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8
store ptr @0, ptr %9, align 8 %12 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %11, i32 0, i32 0
%10 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %8, i32 0, i32 1 store ptr null, ptr %12, align 8
store i64 1, ptr %10, align 4 %13 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %11, i32 0, i32 1
%11 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %8, align 8 store i64 0, ptr %13, align 4
%12 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 %14 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %11, align 8
%13 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %12, i32 0, i32 0 %15 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %10, ptr %6, i64 0, %"github.com/goplus/llgo/internal/runtime.String" %14, i1 false)
store ptr null, ptr %13, align 8 %16 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8
%14 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %12, i32 0, i32 1 %17 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %16, i32 0, i32 0
store i64 0, ptr %14, align 4 store ptr @1, ptr %17, align 8
%15 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %12, align 8 %18 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %16, i32 0, i32 1
%16 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %11, ptr %7, i64 0, %"github.com/goplus/llgo/internal/runtime.String" %15, i1 false) store i64 4, ptr %18, align 4
%17 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 %19 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %16, align 8
%18 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %17, i32 0, i32 0 %20 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 56)
store ptr @1, ptr %18, align 8 %21 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %20, i64 0
%19 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %17, i32 0, i32 1 store %"github.com/goplus/llgo/internal/abi.StructField" %15, ptr %21, align 8
store i64 4, ptr %19, align 4 %22 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8
%20 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %17, align 8 %23 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %22, i32 0, i32 0
%21 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 56) store ptr %20, ptr %23, align 8
%22 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %21, i64 0 %24 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %22, i32 0, i32 1
store %"github.com/goplus/llgo/internal/abi.StructField" %16, ptr %22, align 8 store i64 1, ptr %24, align 4
%23 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 %25 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %22, i32 0, i32 2
%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 store i64 1, ptr %25, align 4
%26 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %23, i32 0, i32 2 %26 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %22, align 8
store i64 1, ptr %26, align 4 %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)
%27 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %23, align 8 %28 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Type", ptr %27, i32 0, i32 6
%28 = call ptr @"github.com/goplus/llgo/internal/runtime.Struct"(%"github.com/goplus/llgo/internal/runtime.String" %20, i64 8, %"github.com/goplus/llgo/internal/runtime.Slice" %27) %29 = load i8, ptr %28, align 1
store ptr %28, ptr @"main.struct$MYpsoM99ZwFY087IpUOkIw1zjBA_sgFXVodmn1m-G88", align 8 %30 = or i8 %29, 32
%29 = load ptr, ptr @"main.struct$MYpsoM99ZwFY087IpUOkIw1zjBA_sgFXVodmn1m-G88", align 8 store i8 %30, ptr %28, align 1
%30 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Type", ptr %29, i32 0, i32 6 store ptr %27, ptr @"main.struct$MYpsoM99ZwFY087IpUOkIw1zjBA_sgFXVodmn1m-G88", align 8
%31 = load i8, ptr %30, align 1 %31 = load ptr, ptr @_llgo_int, align 8
%32 = or i8 %31, 32 %32 = load ptr, ptr @"_llgo_struct$K-dZ9QotZfVPz2a0YdRa9vmZUuDXPTqZOlMShKEDJtk", align 8
store i8 %32, ptr %30, align 1 %33 = icmp eq ptr %32, null
%33 = load ptr, ptr @_llgo_int, align 8 br i1 %33, label %_llgo_3, label %_llgo_4
%34 = load ptr, ptr @"_llgo_struct$K-dZ9QotZfVPz2a0YdRa9vmZUuDXPTqZOlMShKEDJtk", align 8
%35 = icmp eq ptr %34, null
br i1 %35, label %_llgo_3, label %_llgo_4
_llgo_3: ; preds = %_llgo_2 _llgo_3: ; preds = %_llgo_2
%36 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 %34 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8
%37 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %36, i32 0, i32 0 %35 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %34, i32 0, i32 0
store ptr @3, ptr %37, align 8 store ptr @3, ptr %35, align 8
%38 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %36, i32 0, i32 1 %36 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %34, i32 0, i32 1
store i64 1, ptr %38, align 4 store i64 1, ptr %36, align 4
%39 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %36, align 8 %37 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %34, align 8
%40 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 %38 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8
%41 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %40, i32 0, i32 0 %39 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %38, i32 0, i32 0
store ptr null, ptr %41, align 8 store ptr null, ptr %39, align 8
%42 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %40, i32 0, i32 1 %40 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %38, i32 0, i32 1
store i64 0, ptr %42, align 4 store i64 0, ptr %40, align 4
%43 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %40, align 8 %41 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %38, align 8
%44 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %39, ptr %33, i64 0, %"github.com/goplus/llgo/internal/runtime.String" %43, i1 false) %42 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %37, ptr %31, i64 0, %"github.com/goplus/llgo/internal/runtime.String" %41, i1 false)
%45 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 %43 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8
%46 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %45, i32 0, i32 0 %44 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %43, i32 0, i32 0
store ptr @1, ptr %46, align 8 store ptr @1, ptr %44, align 8
%47 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %45, i32 0, i32 1 %45 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %43, i32 0, i32 1
store i64 4, ptr %47, align 4 store i64 4, ptr %45, align 4
%48 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %45, align 8 %46 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %43, align 8
%49 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 56) %47 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 56)
%50 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %49, i64 0 %48 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %47, i64 0
store %"github.com/goplus/llgo/internal/abi.StructField" %44, ptr %50, align 8 store %"github.com/goplus/llgo/internal/abi.StructField" %42, ptr %48, align 8
%51 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 %49 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8
%52 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %51, i32 0, i32 0 %50 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %49, i32 0, i32 0
store ptr %49, ptr %52, align 8 store ptr %47, ptr %50, align 8
%53 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %51, i32 0, i32 1 %51 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %49, i32 0, i32 1
store i64 1, ptr %53, align 4 store i64 1, ptr %51, align 4
%54 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %51, i32 0, i32 2 %52 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %49, i32 0, i32 2
store i64 1, ptr %54, align 4 store i64 1, ptr %52, align 4
%55 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %51, align 8 %53 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %49, align 8
%56 = call ptr @"github.com/goplus/llgo/internal/runtime.Struct"(%"github.com/goplus/llgo/internal/runtime.String" %48, i64 8, %"github.com/goplus/llgo/internal/runtime.Slice" %55) %54 = call ptr @"github.com/goplus/llgo/internal/runtime.Struct"(%"github.com/goplus/llgo/internal/runtime.String" %46, i64 8, %"github.com/goplus/llgo/internal/runtime.Slice" %53)
store ptr %56, ptr @"_llgo_struct$K-dZ9QotZfVPz2a0YdRa9vmZUuDXPTqZOlMShKEDJtk", align 8 %55 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Type", ptr %54, i32 0, i32 6
%56 = load i8, ptr %55, align 1
%57 = or i8 %56, 32
store i8 %57, ptr %55, align 1
store ptr %54, ptr @"_llgo_struct$K-dZ9QotZfVPz2a0YdRa9vmZUuDXPTqZOlMShKEDJtk", align 8
br label %_llgo_4 br label %_llgo_4
_llgo_4: ; preds = %_llgo_3, %_llgo_2 _llgo_4: ; preds = %_llgo_3, %_llgo_2
%57 = load ptr, ptr @"_llgo_struct$K-dZ9QotZfVPz2a0YdRa9vmZUuDXPTqZOlMShKEDJtk", align 8
%58 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Type", ptr %57, i32 0, i32 6
%59 = load i8, ptr %58, align 1
%60 = or i8 %59, 32
store i8 %60, ptr %58, align 1
ret void ret void
} }

View File

@@ -197,255 +197,253 @@ _llgo_2: ; preds = %_llgo_1, %_llgo_0
_llgo_3: ; preds = %_llgo_2 _llgo_3: ; preds = %_llgo_2
%5 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 8) %5 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 8)
%6 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Type", ptr %5, i32 0, i32 6
%7 = load i8, ptr %6, align 1
%8 = or i8 %7, 32
store i8 %8, ptr %6, align 1
store ptr %5, ptr @_llgo_byte, align 8 store ptr %5, ptr @_llgo_byte, align 8
br label %_llgo_4 br label %_llgo_4
_llgo_4: ; preds = %_llgo_3, %_llgo_2 _llgo_4: ; preds = %_llgo_3, %_llgo_2
%6 = load ptr, ptr @_llgo_byte, align 8 %9 = load ptr, ptr @_llgo_byte, align 8
%7 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Type", ptr %6, i32 0, i32 6 %10 = load ptr, ptr @"*_llgo_byte", align 8
%8 = load i8, ptr %7, align 1 %11 = icmp eq ptr %10, null
%9 = or i8 %8, 32 br i1 %11, label %_llgo_5, label %_llgo_6
store i8 %9, ptr %7, align 1
%10 = load ptr, ptr @_llgo_byte, align 8
%11 = load ptr, ptr @"*_llgo_byte", align 8
%12 = icmp eq ptr %11, null
br i1 %12, label %_llgo_5, label %_llgo_6
_llgo_5: ; preds = %_llgo_4 _llgo_5: ; preds = %_llgo_4
%13 = call ptr @"github.com/goplus/llgo/internal/runtime.PointerTo"(ptr %10) %12 = call ptr @"github.com/goplus/llgo/internal/runtime.PointerTo"(ptr %9)
store ptr %13, ptr @"*_llgo_byte", align 8 store ptr %12, ptr @"*_llgo_byte", align 8
br label %_llgo_6 br label %_llgo_6
_llgo_6: ; preds = %_llgo_5, %_llgo_4 _llgo_6: ; preds = %_llgo_5, %_llgo_4
%14 = load ptr, ptr @"*_llgo_byte", align 8 %13 = load ptr, ptr @"*_llgo_byte", align 8
%15 = load ptr, ptr @_llgo_float32, align 8 %14 = load ptr, ptr @_llgo_float32, align 8
%16 = icmp eq ptr %15, null %15 = icmp eq ptr %14, null
br i1 %16, label %_llgo_7, label %_llgo_8 br i1 %15, label %_llgo_7, label %_llgo_8
_llgo_7: ; preds = %_llgo_6 _llgo_7: ; preds = %_llgo_6
%17 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 13) %16 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 13)
store ptr %17, ptr @_llgo_float32, align 8 %17 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Type", ptr %16, i32 0, i32 6
%18 = load i8, ptr %17, align 1
%19 = or i8 %18, 32
store i8 %19, ptr %17, align 1
store ptr %16, ptr @_llgo_float32, align 8
br label %_llgo_8 br label %_llgo_8
_llgo_8: ; preds = %_llgo_7, %_llgo_6 _llgo_8: ; preds = %_llgo_7, %_llgo_6
%18 = load ptr, ptr @_llgo_float32, align 8 %20 = load ptr, ptr @_llgo_float32, align 8
%19 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Type", ptr %18, i32 0, i32 6 %21 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8
%20 = load i8, ptr %19, align 1 %22 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %21, i32 0, i32 0
%21 = or i8 %20, 32 store ptr @0, ptr %22, align 8
store i8 %21, ptr %19, align 1 %23 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %21, i32 0, i32 1
%22 = load ptr, ptr @_llgo_float32, align 8 store i64 2, ptr %23, align 4
%23 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 %24 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %21, align 8
%24 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %23, i32 0, i32 0 %25 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8
store ptr @0, ptr %24, align 8 %26 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %25, i32 0, i32 0
%25 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %23, i32 0, i32 1 store ptr null, ptr %26, align 8
store i64 2, ptr %25, align 4 %27 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %25, i32 0, i32 1
%26 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %23, align 8 store i64 0, ptr %27, align 4
%27 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 %28 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %25, align 8
%28 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %27, i32 0, i32 0 %29 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %24, ptr %13, i64 0, %"github.com/goplus/llgo/internal/runtime.String" %28, i1 false)
store ptr null, ptr %28, align 8 %30 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8
%29 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %27, i32 0, i32 1 %31 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %30, i32 0, i32 0
store i64 0, ptr %29, align 4 store ptr @1, ptr %31, align 8
%30 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %27, align 8 %32 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %30, i32 0, i32 1
%31 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %26, ptr %14, i64 0, %"github.com/goplus/llgo/internal/runtime.String" %30, i1 false) store i64 1, ptr %32, align 4
%32 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 %33 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %30, align 8
%33 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %32, i32 0, i32 0 %34 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8
store ptr @1, ptr %33, align 8 %35 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %34, i32 0, i32 0
%34 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %32, i32 0, i32 1 store ptr null, ptr %35, align 8
store i64 1, ptr %34, align 4 %36 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %34, i32 0, i32 1
%35 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %32, align 8 store i64 0, ptr %36, align 4
%36 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 %37 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %34, align 8
%37 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %36, i32 0, i32 0 %38 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %33, ptr %20, i64 8, %"github.com/goplus/llgo/internal/runtime.String" %37, i1 false)
store ptr null, ptr %37, align 8 %39 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8
%38 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %36, i32 0, i32 1 %40 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %39, i32 0, i32 0
store i64 0, ptr %38, align 4 store ptr @2, ptr %40, align 8
%39 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %36, align 8 %41 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %39, i32 0, i32 1
%40 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %35, ptr %22, i64 8, %"github.com/goplus/llgo/internal/runtime.String" %39, i1 false) store i64 4, ptr %41, align 4
%41 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 %42 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %39, align 8
%42 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %41, i32 0, i32 0 %43 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 112)
store ptr @2, ptr %42, align 8 %44 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %43, i64 0
%43 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %41, i32 0, i32 1 store %"github.com/goplus/llgo/internal/abi.StructField" %29, ptr %44, align 8
store i64 4, ptr %43, align 4 %45 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %43, i64 1
%44 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %41, align 8 store %"github.com/goplus/llgo/internal/abi.StructField" %38, ptr %45, align 8
%45 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 112) %46 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8
%46 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %45, i64 0 %47 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %46, i32 0, i32 0
store %"github.com/goplus/llgo/internal/abi.StructField" %31, ptr %46, align 8 store ptr %43, ptr %47, align 8
%47 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %45, i64 1 %48 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %46, i32 0, i32 1
store %"github.com/goplus/llgo/internal/abi.StructField" %40, ptr %47, align 8 store i64 2, ptr %48, align 4
%48 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 %49 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %46, i32 0, i32 2
%49 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %48, i32 0, i32 0 store i64 2, ptr %49, align 4
store ptr %45, ptr %49, align 8 %50 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %46, align 8
%50 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %48, i32 0, i32 1 %51 = call ptr @"github.com/goplus/llgo/internal/runtime.Struct"(%"github.com/goplus/llgo/internal/runtime.String" %42, i64 16, %"github.com/goplus/llgo/internal/runtime.Slice" %50)
store i64 2, ptr %50, align 4 store ptr %51, ptr @"main.struct$qQwZyFy_4JRalRxVVsVD8R09X5t58tWjTrtJPtHbEjs", align 8
%51 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %48, i32 0, i32 2 %52 = load ptr, ptr @"main.struct$qQwZyFy_4JRalRxVVsVD8R09X5t58tWjTrtJPtHbEjs", align 8
store i64 2, ptr %51, align 4
%52 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %48, align 8
%53 = call ptr @"github.com/goplus/llgo/internal/runtime.Struct"(%"github.com/goplus/llgo/internal/runtime.String" %44, i64 16, %"github.com/goplus/llgo/internal/runtime.Slice" %52)
store ptr %53, ptr @"main.struct$qQwZyFy_4JRalRxVVsVD8R09X5t58tWjTrtJPtHbEjs", align 8
%54 = load ptr, ptr @"main.struct$qQwZyFy_4JRalRxVVsVD8R09X5t58tWjTrtJPtHbEjs", align 8
br i1 %1, label %_llgo_9, label %_llgo_10 br i1 %1, label %_llgo_9, label %_llgo_10
_llgo_9: ; preds = %_llgo_8 _llgo_9: ; preds = %_llgo_8
%55 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 %53 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8
%56 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %55, i32 0, i32 0 %54 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %53, i32 0, i32 0
store ptr @3, ptr %56, align 8 store ptr @3, ptr %54, align 8
%57 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %55, i32 0, i32 1 %55 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %53, i32 0, i32 1
store i64 2, ptr %57, align 4 store i64 2, ptr %55, align 4
%58 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %55, align 8 %56 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %53, align 8
%59 = load ptr, ptr @"*_llgo_byte", align 8 %57 = load ptr, ptr @"*_llgo_byte", align 8
%60 = load ptr, ptr @"_llgo_func$NfGSLZ1QiKRoFkKeqYSXE5hUU5bpeteSJKrbMNUzYRE", align 8 %58 = load ptr, ptr @"_llgo_func$NfGSLZ1QiKRoFkKeqYSXE5hUU5bpeteSJKrbMNUzYRE", align 8
%61 = icmp eq ptr %60, null %59 = icmp eq ptr %58, null
br i1 %61, label %_llgo_11, label %_llgo_12 br i1 %59, label %_llgo_11, label %_llgo_12
_llgo_10: ; preds = %_llgo_12, %_llgo_8 _llgo_10: ; preds = %_llgo_12, %_llgo_8
%62 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(i64 25, i64 0, i64 0) %60 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(i64 25, i64 0, i64 0)
store ptr %62, ptr @_llgo_main.bar, align 8 store ptr %60, ptr @_llgo_main.bar, align 8
%63 = load ptr, ptr @"*_llgo_byte", align 8 %61 = load ptr, ptr @"*_llgo_byte", align 8
%64 = load ptr, ptr @_llgo_float32, align 8 %62 = load ptr, ptr @_llgo_float32, align 8
%65 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 %63 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8
%66 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %65, i32 0, i32 0 %64 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %63, i32 0, i32 0
store ptr @0, ptr %66, align 8 store ptr @0, ptr %64, align 8
%67 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %65, i32 0, i32 1 %65 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %63, i32 0, i32 1
store i64 2, ptr %67, align 4 store i64 2, ptr %65, align 4
%68 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %65, align 8 %66 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %63, align 8
%69 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 %67 = 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 %68 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %67, i32 0, i32 0
store ptr null, ptr %70, align 8 store ptr null, ptr %68, align 8
%71 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %69, i32 0, i32 1 %69 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %67, i32 0, i32 1
store i64 0, ptr %71, align 4 store i64 0, ptr %69, align 4
%72 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %69, align 8 %70 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %67, align 8
%73 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %68, ptr %63, i64 0, %"github.com/goplus/llgo/internal/runtime.String" %72, i1 false) %71 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %66, ptr %61, i64 0, %"github.com/goplus/llgo/internal/runtime.String" %70, i1 false)
%74 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 %72 = 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 %73 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %72, i32 0, i32 0
store ptr @6, ptr %75, align 8 store ptr @6, ptr %73, align 8
%76 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %74, i32 0, i32 1 %74 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %72, i32 0, i32 1
store i64 1, ptr %76, align 4 store i64 1, ptr %74, align 4
%77 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %74, align 8 %75 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %72, align 8
%78 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 %76 = 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 %77 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %76, i32 0, i32 0
store ptr null, ptr %79, align 8 store ptr null, ptr %77, align 8
%80 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %78, i32 0, i32 1 %78 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %76, i32 0, i32 1
store i64 0, ptr %80, align 4 store i64 0, ptr %78, align 4
%81 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %78, align 8 %79 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %76, align 8
%82 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %77, ptr %64, i64 8, %"github.com/goplus/llgo/internal/runtime.String" %81, i1 false) %80 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %75, ptr %62, i64 8, %"github.com/goplus/llgo/internal/runtime.String" %79, i1 false)
%83 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 %81 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8
%84 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %83, i32 0, i32 0 %82 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %81, i32 0, i32 0
store ptr @2, ptr %84, align 8 store ptr @2, ptr %82, align 8
%85 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %83, i32 0, i32 1 %83 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %81, i32 0, i32 1
store i64 4, ptr %85, align 4 store i64 4, ptr %83, align 4
%86 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %83, align 8 %84 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %81, align 8
%87 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 112) %85 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 112)
%88 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %87, i64 0 %86 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %85, i64 0
store %"github.com/goplus/llgo/internal/abi.StructField" %73, ptr %88, align 8 store %"github.com/goplus/llgo/internal/abi.StructField" %71, ptr %86, align 8
%89 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %87, i64 1 %87 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %85, i64 1
store %"github.com/goplus/llgo/internal/abi.StructField" %82, ptr %89, align 8 store %"github.com/goplus/llgo/internal/abi.StructField" %80, ptr %87, align 8
%90 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 %88 = 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 %89 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %88, i32 0, i32 0
store ptr %87, ptr %91, align 8 store ptr %85, ptr %89, align 8
%92 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %90, i32 0, i32 1 %90 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %88, i32 0, i32 1
store i64 2, ptr %92, align 4 store i64 2, ptr %90, align 4
%93 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %90, i32 0, i32 2 %91 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %88, i32 0, i32 2
store i64 2, ptr %93, align 4 store i64 2, ptr %91, align 4
%94 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %90, align 8 %92 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %88, align 8
%95 = call ptr @"github.com/goplus/llgo/internal/runtime.Struct"(%"github.com/goplus/llgo/internal/runtime.String" %86, i64 16, %"github.com/goplus/llgo/internal/runtime.Slice" %94) %93 = call ptr @"github.com/goplus/llgo/internal/runtime.Struct"(%"github.com/goplus/llgo/internal/runtime.String" %84, i64 16, %"github.com/goplus/llgo/internal/runtime.Slice" %92)
store ptr %95, ptr @"main.struct$Ci43nzKYkRLddRL_N4mkykxLXfJlqJGS5n04LKThPNo", align 8 store ptr %93, ptr @"main.struct$Ci43nzKYkRLddRL_N4mkykxLXfJlqJGS5n04LKThPNo", align 8
%96 = load ptr, ptr @"main.struct$Ci43nzKYkRLddRL_N4mkykxLXfJlqJGS5n04LKThPNo", align 8 %94 = load ptr, ptr @"main.struct$Ci43nzKYkRLddRL_N4mkykxLXfJlqJGS5n04LKThPNo", align 8
%97 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 %95 = 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 %96 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %95, i32 0, i32 0
store ptr @2, ptr %98, align 8 store ptr @2, ptr %96, align 8
%99 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %97, i32 0, i32 1 %97 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %95, i32 0, i32 1
store i64 4, ptr %99, align 4 store i64 4, ptr %97, align 4
%100 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %97, align 8 %98 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %95, align 8
%101 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 %99 = 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 %100 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %99, i32 0, i32 0
store ptr @7, ptr %102, align 8 store ptr @7, ptr %100, align 8
%103 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %101, i32 0, i32 1 %101 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %99, i32 0, i32 1
store i64 8, ptr %103, align 4 store i64 8, ptr %101, align 4
%104 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %101, align 8 %102 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %99, align 8
call void @"github.com/goplus/llgo/internal/runtime.InitNamed"(ptr %62, %"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) call void @"github.com/goplus/llgo/internal/runtime.InitNamed"(ptr %60, %"github.com/goplus/llgo/internal/runtime.String" %98, %"github.com/goplus/llgo/internal/runtime.String" %102, ptr %94, { ptr, i64, i64 } zeroinitializer, { ptr, i64, i64 } zeroinitializer)
ret void ret void
_llgo_11: ; preds = %_llgo_9 _llgo_11: ; preds = %_llgo_9
%105 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 0) %103 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 0)
%106 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 %104 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8
%107 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %106, i32 0, i32 0 %105 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %104, i32 0, i32 0
store ptr %105, ptr %107, align 8 store ptr %103, ptr %105, align 8
%108 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %106, i32 0, i32 1 %106 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %104, i32 0, i32 1
store i64 0, ptr %108, align 4 store i64 0, ptr %106, align 4
%109 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %106, i32 0, i32 2 %107 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %104, i32 0, i32 2
store i64 0, ptr %109, align 4 store i64 0, ptr %107, align 4
%110 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %106, align 8 %108 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %104, align 8
%111 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 8) %109 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 8)
%112 = getelementptr ptr, ptr %111, i64 0 %110 = getelementptr ptr, ptr %109, i64 0
store ptr %59, ptr %112, align 8 store ptr %57, ptr %110, align 8
%113 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 %111 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8
%114 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %113, i32 0, i32 0 %112 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %111, i32 0, i32 0
store ptr %111, ptr %114, align 8 store ptr %109, ptr %112, align 8
%115 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %113, i32 0, i32 1 %113 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %111, i32 0, i32 1
store i64 1, ptr %115, align 4 store i64 1, ptr %113, align 4
%116 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %113, i32 0, i32 2 %114 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %111, i32 0, i32 2
store i64 1, ptr %116, align 4 store i64 1, ptr %114, align 4
%117 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %113, align 8 %115 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %111, align 8
%118 = call ptr @"github.com/goplus/llgo/internal/runtime.Func"(%"github.com/goplus/llgo/internal/runtime.Slice" %110, %"github.com/goplus/llgo/internal/runtime.Slice" %117, i1 false) %116 = call ptr @"github.com/goplus/llgo/internal/runtime.Func"(%"github.com/goplus/llgo/internal/runtime.Slice" %108, %"github.com/goplus/llgo/internal/runtime.Slice" %115, i1 false)
store ptr %118, ptr @"_llgo_func$NfGSLZ1QiKRoFkKeqYSXE5hUU5bpeteSJKrbMNUzYRE", align 8 store ptr %116, ptr @"_llgo_func$NfGSLZ1QiKRoFkKeqYSXE5hUU5bpeteSJKrbMNUzYRE", align 8
br label %_llgo_12 br label %_llgo_12
_llgo_12: ; preds = %_llgo_11, %_llgo_9 _llgo_12: ; preds = %_llgo_11, %_llgo_9
%119 = load ptr, ptr @"_llgo_func$NfGSLZ1QiKRoFkKeqYSXE5hUU5bpeteSJKrbMNUzYRE", align 8 %117 = load ptr, ptr @"_llgo_func$NfGSLZ1QiKRoFkKeqYSXE5hUU5bpeteSJKrbMNUzYRE", align 8
%120 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 %118 = 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 %119 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %118, i32 0, i32 0
store %"github.com/goplus/llgo/internal/runtime.String" %58, ptr %121, align 8 store %"github.com/goplus/llgo/internal/runtime.String" %56, ptr %119, align 8
%122 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %120, i32 0, i32 1 %120 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %118, i32 0, i32 1
store ptr %119, ptr %122, align 8 store ptr %117, ptr %120, align 8
%123 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %120, i32 0, i32 2 %121 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %118, i32 0, i32 2
store ptr @"github.com/goplus/llgo/cl/internal/foo.(*Foo).Pb", ptr %123, align 8 store ptr @"github.com/goplus/llgo/cl/internal/foo.(*Foo).Pb", ptr %121, align 8
%124 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %120, i32 0, i32 3 %122 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %118, i32 0, i32 3
store ptr @"github.com/goplus/llgo/cl/internal/foo.(*Foo).Pb", ptr %124, align 8 store ptr @"github.com/goplus/llgo/cl/internal/foo.(*Foo).Pb", ptr %122, align 8
%125 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %120, align 8 %123 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %118, align 8
%126 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 %124 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8
%127 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %126, i32 0, i32 0 %125 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %124, i32 0, i32 0
store %"github.com/goplus/llgo/internal/runtime.String" %58, ptr %127, align 8 store %"github.com/goplus/llgo/internal/runtime.String" %56, ptr %125, align 8
%128 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %126, i32 0, i32 1 %126 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %124, i32 0, i32 1
store ptr %119, ptr %128, align 8 store ptr %117, ptr %126, align 8
%129 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %126, i32 0, i32 2 %127 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %124, i32 0, i32 2
store ptr @"github.com/goplus/llgo/cl/internal/foo.(*Foo).Pb", ptr %129, align 8 store ptr @"github.com/goplus/llgo/cl/internal/foo.(*Foo).Pb", ptr %127, align 8
%130 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %126, i32 0, i32 3 %128 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %124, i32 0, i32 3
store ptr @"github.com/goplus/llgo/cl/internal/foo.Foo.Pb", ptr %130, align 8 store ptr @"github.com/goplus/llgo/cl/internal/foo.Foo.Pb", ptr %128, align 8
%131 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %126, align 8 %129 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %124, align 8
%132 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 40) %130 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 40)
%133 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %132, i64 0 %131 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %130, i64 0
store %"github.com/goplus/llgo/internal/abi.Method" %131, ptr %133, align 8 store %"github.com/goplus/llgo/internal/abi.Method" %129, ptr %131, align 8
%134 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 %132 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8
%135 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %134, i32 0, i32 0 %133 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %132, i32 0, i32 0
store ptr %132, ptr %135, align 8 store ptr %130, ptr %133, align 8
%136 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %134, i32 0, i32 1 %134 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %132, i32 0, i32 1
store i64 1, ptr %136, align 4 store i64 1, ptr %134, align 4
%137 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %134, i32 0, i32 2 %135 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %132, i32 0, i32 2
store i64 1, ptr %137, align 4 store i64 1, ptr %135, align 4
%138 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %134, align 8 %136 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %132, align 8
%139 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 40) %137 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 40)
%140 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %139, i64 0 %138 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %137, i64 0
store %"github.com/goplus/llgo/internal/abi.Method" %125, ptr %140, align 8 store %"github.com/goplus/llgo/internal/abi.Method" %123, ptr %138, align 8
%141 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 %139 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8
%142 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %141, i32 0, i32 0 %140 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %139, i32 0, i32 0
store ptr %139, ptr %142, align 8 store ptr %137, ptr %140, align 8
%143 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %141, i32 0, i32 1 %141 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %139, i32 0, i32 1
store i64 1, ptr %143, align 4 store i64 1, ptr %141, align 4
%144 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %141, i32 0, i32 2 %142 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %139, i32 0, i32 2
store i64 1, ptr %144, align 4 store i64 1, ptr %142, align 4
%145 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %141, align 8 %143 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %139, align 8
%146 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 %144 = 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 %145 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %144, i32 0, i32 0
store ptr @4, ptr %147, align 8 store ptr @4, ptr %145, align 8
%148 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %146, i32 0, i32 1 %146 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %144, i32 0, i32 1
store i64 38, ptr %148, align 4 store i64 38, ptr %146, align 4
%149 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %146, align 8 %147 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %144, align 8
%150 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 %148 = 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 %149 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %148, i32 0, i32 0
store ptr @5, ptr %151, align 8 store ptr @5, ptr %149, align 8
%152 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %150, i32 0, i32 1 %150 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %148, i32 0, i32 1
store i64 42, ptr %152, align 4 store i64 42, ptr %150, align 4
%153 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %150, align 8 %151 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %148, align 8
call void @"github.com/goplus/llgo/internal/runtime.InitNamed"(ptr %2, %"github.com/goplus/llgo/internal/runtime.String" %149, %"github.com/goplus/llgo/internal/runtime.String" %153, ptr %54, %"github.com/goplus/llgo/internal/runtime.Slice" %138, %"github.com/goplus/llgo/internal/runtime.Slice" %145) call void @"github.com/goplus/llgo/internal/runtime.InitNamed"(ptr %2, %"github.com/goplus/llgo/internal/runtime.String" %147, %"github.com/goplus/llgo/internal/runtime.String" %151, ptr %52, %"github.com/goplus/llgo/internal/runtime.Slice" %136, %"github.com/goplus/llgo/internal/runtime.Slice" %143)
br label %_llgo_10 br label %_llgo_10
} }

View File

@@ -132,51 +132,49 @@ _llgo_0:
_llgo_1: ; preds = %_llgo_0 _llgo_1: ; preds = %_llgo_0
%2 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 3) %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
store ptr %2, ptr @_llgo_int8, align 8 store ptr %2, ptr @_llgo_int8, align 8
br label %_llgo_2 br label %_llgo_2
_llgo_2: ; preds = %_llgo_1, %_llgo_0 _llgo_2: ; preds = %_llgo_1, %_llgo_0
%3 = load ptr, ptr @_llgo_int8, align 8 %6 = load ptr, ptr @_llgo_int8, align 8
%4 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Type", ptr %3, i32 0, i32 6 %7 = load ptr, ptr @"*_llgo_int8", align 8
%5 = load i8, ptr %4, align 1 %8 = icmp eq ptr %7, null
%6 = or i8 %5, 32 br i1 %8, label %_llgo_3, label %_llgo_4
store i8 %6, ptr %4, align 1
%7 = load ptr, ptr @_llgo_int8, align 8
%8 = load ptr, ptr @"*_llgo_int8", align 8
%9 = icmp eq ptr %8, null
br i1 %9, label %_llgo_3, label %_llgo_4
_llgo_3: ; preds = %_llgo_2 _llgo_3: ; preds = %_llgo_2
%10 = call ptr @"github.com/goplus/llgo/internal/runtime.PointerTo"(ptr %7) %9 = call ptr @"github.com/goplus/llgo/internal/runtime.PointerTo"(ptr %6)
store ptr %10, ptr @"*_llgo_int8", align 8 store ptr %9, ptr @"*_llgo_int8", align 8
br label %_llgo_4 br label %_llgo_4
_llgo_4: ; preds = %_llgo_3, %_llgo_2 _llgo_4: ; preds = %_llgo_3, %_llgo_2
%11 = load ptr, ptr @_llgo_string, align 8 %10 = load ptr, ptr @_llgo_string, align 8
%12 = icmp eq ptr %11, null %11 = icmp eq ptr %10, null
br i1 %12, label %_llgo_5, label %_llgo_6 br i1 %11, label %_llgo_5, label %_llgo_6
_llgo_5: ; preds = %_llgo_4 _llgo_5: ; preds = %_llgo_4
%13 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 24) %12 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 24)
store ptr %13, ptr @_llgo_string, align 8 store ptr %12, ptr @_llgo_string, align 8
br label %_llgo_6 br label %_llgo_6
_llgo_6: ; preds = %_llgo_5, %_llgo_4 _llgo_6: ; preds = %_llgo_5, %_llgo_4
%14 = load ptr, ptr @_llgo_int, align 8 %13 = load ptr, ptr @_llgo_int, align 8
%15 = icmp eq ptr %14, null %14 = icmp eq ptr %13, null
br i1 %15, label %_llgo_7, label %_llgo_8 br i1 %14, label %_llgo_7, label %_llgo_8
_llgo_7: ; preds = %_llgo_6 _llgo_7: ; preds = %_llgo_6
%16 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 2) %15 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 2)
store ptr %16, ptr @_llgo_int, align 8 %16 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Type", ptr %15, i32 0, i32 6
%17 = load i8, ptr %16, align 1
%18 = or i8 %17, 32
store i8 %18, ptr %16, align 1
store ptr %15, ptr @_llgo_int, align 8
br label %_llgo_8 br label %_llgo_8
_llgo_8: ; preds = %_llgo_7, %_llgo_6 _llgo_8: ; preds = %_llgo_7, %_llgo_6
%17 = load ptr, ptr @_llgo_int, align 8
%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
ret void ret void
} }

View File

@@ -668,15 +668,14 @@ _llgo_0:
_llgo_1: ; preds = %_llgo_0 _llgo_1: ; preds = %_llgo_0
%2 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 2) %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
store ptr %2, ptr @_llgo_int, align 8 store ptr %2, ptr @_llgo_int, align 8
br label %_llgo_2 br label %_llgo_2
_llgo_2: ; preds = %_llgo_1, %_llgo_0 _llgo_2: ; preds = %_llgo_1, %_llgo_0
%3 = load ptr, ptr @_llgo_int, align 8
%4 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Type", ptr %3, i32 0, i32 6
%5 = load i8, ptr %4, align 1
%6 = or i8 %5, 32
store i8 %6, ptr %4, align 1
ret void ret void
} }

View File

@@ -498,401 +498,387 @@ _llgo_0:
_llgo_1: ; preds = %_llgo_0 _llgo_1: ; preds = %_llgo_0
%2 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 1) %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
store ptr %2, ptr @_llgo_bool, align 8 store ptr %2, ptr @_llgo_bool, align 8
br label %_llgo_2 br label %_llgo_2
_llgo_2: ; preds = %_llgo_1, %_llgo_0 _llgo_2: ; preds = %_llgo_1, %_llgo_0
%3 = load ptr, ptr @_llgo_bool, align 8 %6 = load ptr, ptr @_llgo_int, align 8
%4 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Type", ptr %3, i32 0, i32 6 %7 = icmp eq ptr %6, null
%5 = load i8, ptr %4, align 1 br i1 %7, label %_llgo_3, label %_llgo_4
%6 = or i8 %5, 32
store i8 %6, ptr %4, align 1
%7 = load ptr, ptr @_llgo_int, align 8
%8 = icmp eq ptr %7, null
br i1 %8, label %_llgo_3, label %_llgo_4
_llgo_3: ; preds = %_llgo_2 _llgo_3: ; preds = %_llgo_2
%9 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 2) %8 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 2)
store ptr %9, ptr @_llgo_int, align 8 %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
br label %_llgo_4 br label %_llgo_4
_llgo_4: ; preds = %_llgo_3, %_llgo_2 _llgo_4: ; preds = %_llgo_3, %_llgo_2
%10 = load ptr, ptr @_llgo_int, align 8 %12 = load ptr, ptr @_llgo_int8, align 8
%11 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Type", ptr %10, i32 0, i32 6 %13 = icmp eq ptr %12, null
%12 = load i8, ptr %11, align 1 br i1 %13, label %_llgo_5, label %_llgo_6
%13 = or i8 %12, 32
store i8 %13, ptr %11, align 1
%14 = load ptr, ptr @_llgo_int8, align 8
%15 = icmp eq ptr %14, null
br i1 %15, label %_llgo_5, label %_llgo_6
_llgo_5: ; preds = %_llgo_4 _llgo_5: ; preds = %_llgo_4
%16 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 3) %14 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 3)
store ptr %16, ptr @_llgo_int8, align 8 %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
br label %_llgo_6 br label %_llgo_6
_llgo_6: ; preds = %_llgo_5, %_llgo_4 _llgo_6: ; preds = %_llgo_5, %_llgo_4
%17 = load ptr, ptr @_llgo_int8, align 8 %18 = load ptr, ptr @_llgo_int16, align 8
%18 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Type", ptr %17, i32 0, i32 6 %19 = icmp eq ptr %18, null
%19 = load i8, ptr %18, align 1 br i1 %19, label %_llgo_7, label %_llgo_8
%20 = or i8 %19, 32
store i8 %20, ptr %18, align 1
%21 = load ptr, ptr @_llgo_int16, align 8
%22 = icmp eq ptr %21, null
br i1 %22, label %_llgo_7, label %_llgo_8
_llgo_7: ; preds = %_llgo_6 _llgo_7: ; preds = %_llgo_6
%23 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 4) %20 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 4)
store ptr %23, ptr @_llgo_int16, align 8 %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
br label %_llgo_8 br label %_llgo_8
_llgo_8: ; preds = %_llgo_7, %_llgo_6 _llgo_8: ; preds = %_llgo_7, %_llgo_6
%24 = load ptr, ptr @_llgo_int16, align 8 %24 = load ptr, ptr @_llgo_int32, align 8
%25 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Type", ptr %24, i32 0, i32 6 %25 = icmp eq ptr %24, null
%26 = load i8, ptr %25, align 1 br i1 %25, label %_llgo_9, label %_llgo_10
%27 = or i8 %26, 32
store i8 %27, ptr %25, align 1
%28 = load ptr, ptr @_llgo_int32, align 8
%29 = icmp eq ptr %28, null
br i1 %29, label %_llgo_9, label %_llgo_10
_llgo_9: ; preds = %_llgo_8 _llgo_9: ; preds = %_llgo_8
%30 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 5) %26 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 5)
store ptr %30, ptr @_llgo_int32, align 8 %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
br label %_llgo_10 br label %_llgo_10
_llgo_10: ; preds = %_llgo_9, %_llgo_8 _llgo_10: ; preds = %_llgo_9, %_llgo_8
%31 = load ptr, ptr @_llgo_int32, align 8 %30 = load ptr, ptr @_llgo_int64, align 8
%32 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Type", ptr %31, i32 0, i32 6 %31 = icmp eq ptr %30, null
%33 = load i8, ptr %32, align 1 br i1 %31, label %_llgo_11, label %_llgo_12
%34 = or i8 %33, 32
store i8 %34, ptr %32, align 1
%35 = load ptr, ptr @_llgo_int64, align 8
%36 = icmp eq ptr %35, null
br i1 %36, label %_llgo_11, label %_llgo_12
_llgo_11: ; preds = %_llgo_10 _llgo_11: ; preds = %_llgo_10
%37 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 6) %32 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 6)
store ptr %37, ptr @_llgo_int64, align 8 %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
br label %_llgo_12 br label %_llgo_12
_llgo_12: ; preds = %_llgo_11, %_llgo_10 _llgo_12: ; preds = %_llgo_11, %_llgo_10
%38 = load ptr, ptr @_llgo_int64, align 8 %36 = load ptr, ptr @_llgo_uint, align 8
%37 = icmp eq ptr %36, null
br i1 %37, 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 %39 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Type", ptr %38, i32 0, i32 6
%40 = load i8, ptr %39, align 1 %40 = load i8, ptr %39, align 1
%41 = or i8 %40, 32 %41 = or i8 %40, 32
store i8 %41, ptr %39, align 1 store i8 %41, ptr %39, align 1
%42 = load ptr, ptr @_llgo_uint, align 8 store ptr %38, ptr @_llgo_uint, align 8
%43 = icmp eq ptr %42, null
br i1 %43, label %_llgo_13, label %_llgo_14
_llgo_13: ; preds = %_llgo_12
%44 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 7)
store ptr %44, ptr @_llgo_uint, align 8
br label %_llgo_14 br label %_llgo_14
_llgo_14: ; preds = %_llgo_13, %_llgo_12 _llgo_14: ; preds = %_llgo_13, %_llgo_12
%45 = load ptr, ptr @_llgo_uint, align 8 %42 = load ptr, ptr @_llgo_uint8, align 8
%46 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Type", ptr %45, i32 0, i32 6 %43 = icmp eq ptr %42, null
%47 = load i8, ptr %46, align 1 br i1 %43, label %_llgo_15, label %_llgo_16
%48 = or i8 %47, 32
store i8 %48, ptr %46, align 1
%49 = load ptr, ptr @_llgo_uint8, align 8
%50 = icmp eq ptr %49, null
br i1 %50, label %_llgo_15, label %_llgo_16
_llgo_15: ; preds = %_llgo_14 _llgo_15: ; preds = %_llgo_14
%51 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 8) %44 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 8)
store ptr %51, ptr @_llgo_uint8, align 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
br label %_llgo_16 br label %_llgo_16
_llgo_16: ; preds = %_llgo_15, %_llgo_14 _llgo_16: ; preds = %_llgo_15, %_llgo_14
%52 = load ptr, ptr @_llgo_uint8, align 8 %48 = load ptr, ptr @_llgo_uint16, align 8
%53 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Type", ptr %52, i32 0, i32 6 %49 = icmp eq ptr %48, null
%54 = load i8, ptr %53, align 1 br i1 %49, label %_llgo_17, label %_llgo_18
%55 = or i8 %54, 32
store i8 %55, ptr %53, align 1
%56 = load ptr, ptr @_llgo_uint16, align 8
%57 = icmp eq ptr %56, null
br i1 %57, label %_llgo_17, label %_llgo_18
_llgo_17: ; preds = %_llgo_16 _llgo_17: ; preds = %_llgo_16
%58 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 9) %50 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 9)
store ptr %58, ptr @_llgo_uint16, align 8 %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
br label %_llgo_18 br label %_llgo_18
_llgo_18: ; preds = %_llgo_17, %_llgo_16 _llgo_18: ; preds = %_llgo_17, %_llgo_16
%59 = load ptr, ptr @_llgo_uint16, align 8 %54 = load ptr, ptr @_llgo_uint32, align 8
%60 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Type", ptr %59, i32 0, i32 6 %55 = icmp eq ptr %54, null
%61 = load i8, ptr %60, align 1 br i1 %55, label %_llgo_19, label %_llgo_20
%62 = or i8 %61, 32
store i8 %62, ptr %60, align 1
%63 = load ptr, ptr @_llgo_uint32, align 8
%64 = icmp eq ptr %63, null
br i1 %64, label %_llgo_19, label %_llgo_20
_llgo_19: ; preds = %_llgo_18 _llgo_19: ; preds = %_llgo_18
%65 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 10) %56 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 10)
store ptr %65, ptr @_llgo_uint32, align 8 %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
br label %_llgo_20 br label %_llgo_20
_llgo_20: ; preds = %_llgo_19, %_llgo_18 _llgo_20: ; preds = %_llgo_19, %_llgo_18
%66 = load ptr, ptr @_llgo_uint32, align 8 %60 = load ptr, ptr @_llgo_uint64, align 8
%67 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Type", ptr %66, i32 0, i32 6 %61 = icmp eq ptr %60, null
%68 = load i8, ptr %67, align 1 br i1 %61, label %_llgo_21, label %_llgo_22
%69 = or i8 %68, 32
store i8 %69, ptr %67, align 1
%70 = load ptr, ptr @_llgo_uint64, align 8
%71 = icmp eq ptr %70, null
br i1 %71, label %_llgo_21, label %_llgo_22
_llgo_21: ; preds = %_llgo_20 _llgo_21: ; preds = %_llgo_20
%72 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 11) %62 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 11)
store ptr %72, ptr @_llgo_uint64, align 8 %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
br label %_llgo_22 br label %_llgo_22
_llgo_22: ; preds = %_llgo_21, %_llgo_20 _llgo_22: ; preds = %_llgo_21, %_llgo_20
%73 = load ptr, ptr @_llgo_uint64, align 8 %66 = load ptr, ptr @_llgo_uintptr, align 8
%74 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Type", ptr %73, i32 0, i32 6 %67 = icmp eq ptr %66, null
%75 = load i8, ptr %74, align 1 br i1 %67, label %_llgo_23, label %_llgo_24
%76 = or i8 %75, 32
store i8 %76, ptr %74, align 1
%77 = load ptr, ptr @_llgo_uintptr, align 8
%78 = icmp eq ptr %77, null
br i1 %78, label %_llgo_23, label %_llgo_24
_llgo_23: ; preds = %_llgo_22 _llgo_23: ; preds = %_llgo_22
%79 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 12) %68 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 12)
store ptr %79, ptr @_llgo_uintptr, align 8 %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
br label %_llgo_24 br label %_llgo_24
_llgo_24: ; preds = %_llgo_23, %_llgo_22 _llgo_24: ; preds = %_llgo_23, %_llgo_22
%80 = load ptr, ptr @_llgo_uintptr, align 8 %72 = load ptr, ptr @_llgo_float32, align 8
%73 = icmp eq ptr %72, null
br i1 %73, 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
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
_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 %81 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Type", ptr %80, i32 0, i32 6
%82 = load i8, ptr %81, align 1 %82 = load i8, ptr %81, align 1
%83 = or i8 %82, 32 %83 = or i8 %82, 32
store i8 %83, ptr %81, align 1 store i8 %83, ptr %81, align 1
%84 = load ptr, ptr @_llgo_float32, align 8 store ptr %80, ptr @_llgo_float64, align 8
%85 = icmp eq ptr %84, null
br i1 %85, label %_llgo_25, label %_llgo_26
_llgo_25: ; preds = %_llgo_24
%86 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 13)
store ptr %86, ptr @_llgo_float32, align 8
br label %_llgo_26
_llgo_26: ; preds = %_llgo_25, %_llgo_24
%87 = load ptr, ptr @_llgo_float32, align 8
%88 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Type", ptr %87, i32 0, i32 6
%89 = load i8, ptr %88, align 1
%90 = or i8 %89, 32
store i8 %90, ptr %88, align 1
%91 = load ptr, ptr @_llgo_float64, align 8
%92 = icmp eq ptr %91, null
br i1 %92, label %_llgo_27, label %_llgo_28
_llgo_27: ; preds = %_llgo_26
%93 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 14)
store ptr %93, ptr @_llgo_float64, align 8
br label %_llgo_28 br label %_llgo_28
_llgo_28: ; preds = %_llgo_27, %_llgo_26 _llgo_28: ; preds = %_llgo_27, %_llgo_26
%94 = load ptr, ptr @_llgo_float64, align 8 %84 = load ptr, ptr @_llgo_int, align 8
%95 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Type", ptr %94, i32 0, i32 6 %85 = load ptr, ptr @"[10]_llgo_int", align 8
%96 = load i8, ptr %95, align 1 %86 = icmp eq ptr %85, null
%97 = or i8 %96, 32 br i1 %86, label %_llgo_29, label %_llgo_30
store i8 %97, ptr %95, align 1
%98 = load ptr, ptr @_llgo_int, align 8
%99 = load ptr, ptr @"[10]_llgo_int", align 8
%100 = icmp eq ptr %99, null
br i1 %100, label %_llgo_29, label %_llgo_30
_llgo_29: ; preds = %_llgo_28 _llgo_29: ; preds = %_llgo_28
%101 = call ptr @"github.com/goplus/llgo/internal/runtime.ArrayOf"(i64 10, ptr %98) %87 = call ptr @"github.com/goplus/llgo/internal/runtime.ArrayOf"(i64 10, ptr %84)
store ptr %101, ptr @"[10]_llgo_int", align 8 store ptr %87, ptr @"[10]_llgo_int", align 8
br label %_llgo_30 br label %_llgo_30
_llgo_30: ; preds = %_llgo_29, %_llgo_28 _llgo_30: ; preds = %_llgo_29, %_llgo_28
%102 = load ptr, ptr @"_llgo_func$2_iS07vIlF2_rZqWB5eU0IvP_9HviM4MYZNkXZDvbac", align 8 %88 = load ptr, ptr @"_llgo_func$2_iS07vIlF2_rZqWB5eU0IvP_9HviM4MYZNkXZDvbac", align 8
%103 = icmp eq ptr %102, null %89 = icmp eq ptr %88, null
br i1 %103, label %_llgo_31, label %_llgo_32 br i1 %89, label %_llgo_31, label %_llgo_32
_llgo_31: ; preds = %_llgo_30 _llgo_31: ; preds = %_llgo_30
%104 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 0) %90 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 0)
%105 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 %91 = 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 %92 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %91, i32 0, i32 0
store ptr %104, ptr %106, align 8 store ptr %90, ptr %92, align 8
%107 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %105, i32 0, i32 1 %93 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %91, i32 0, i32 1
store i64 0, ptr %107, align 4 store i64 0, ptr %93, align 4
%108 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %105, i32 0, i32 2 %94 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %91, i32 0, i32 2
store i64 0, ptr %108, align 4 store i64 0, ptr %94, align 4
%109 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %105, align 8 %95 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %91, align 8
%110 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 0) %96 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 0)
%111 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 %97 = 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 %98 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %97, i32 0, i32 0
store ptr %110, ptr %112, align 8 store ptr %96, ptr %98, align 8
%113 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %111, i32 0, i32 1 %99 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %97, i32 0, i32 1
store i64 0, ptr %113, align 4 store i64 0, ptr %99, align 4
%114 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %111, i32 0, i32 2 %100 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %97, i32 0, i32 2
store i64 0, ptr %114, align 4 store i64 0, ptr %100, align 4
%115 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %111, align 8 %101 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %97, align 8
%116 = call ptr @"github.com/goplus/llgo/internal/runtime.Func"(%"github.com/goplus/llgo/internal/runtime.Slice" %109, %"github.com/goplus/llgo/internal/runtime.Slice" %115, i1 false) %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 %116, ptr @"_llgo_func$2_iS07vIlF2_rZqWB5eU0IvP_9HviM4MYZNkXZDvbac", align 8 store ptr %102, ptr @"_llgo_func$2_iS07vIlF2_rZqWB5eU0IvP_9HviM4MYZNkXZDvbac", align 8
br label %_llgo_32 br label %_llgo_32
_llgo_32: ; preds = %_llgo_31, %_llgo_30 _llgo_32: ; preds = %_llgo_31, %_llgo_30
%117 = load ptr, ptr @_llgo_int, align 8 %103 = load ptr, ptr @_llgo_int, align 8
%118 = load ptr, ptr @"*_llgo_int", align 8 %104 = load ptr, ptr @"*_llgo_int", align 8
%119 = icmp eq ptr %118, null %105 = icmp eq ptr %104, null
br i1 %119, label %_llgo_33, label %_llgo_34 br i1 %105, label %_llgo_33, label %_llgo_34
_llgo_33: ; preds = %_llgo_32 _llgo_33: ; preds = %_llgo_32
%120 = call ptr @"github.com/goplus/llgo/internal/runtime.PointerTo"(ptr %117) %106 = call ptr @"github.com/goplus/llgo/internal/runtime.PointerTo"(ptr %103)
store ptr %120, ptr @"*_llgo_int", align 8 store ptr %106, ptr @"*_llgo_int", align 8
br label %_llgo_34 br label %_llgo_34
_llgo_34: ; preds = %_llgo_33, %_llgo_32 _llgo_34: ; preds = %_llgo_33, %_llgo_32
%121 = load ptr, ptr @_llgo_int, align 8 %107 = load ptr, ptr @_llgo_int, align 8
%122 = load ptr, ptr @"[]_llgo_int", align 8 %108 = load ptr, ptr @"[]_llgo_int", align 8
%123 = icmp eq ptr %122, null %109 = icmp eq ptr %108, null
br i1 %123, label %_llgo_35, label %_llgo_36 br i1 %109, label %_llgo_35, label %_llgo_36
_llgo_35: ; preds = %_llgo_34 _llgo_35: ; preds = %_llgo_34
%124 = call ptr @"github.com/goplus/llgo/internal/runtime.SliceOf"(ptr %121) %110 = call ptr @"github.com/goplus/llgo/internal/runtime.SliceOf"(ptr %107)
store ptr %124, ptr @"[]_llgo_int", align 8 store ptr %110, ptr @"[]_llgo_int", align 8
br label %_llgo_36 br label %_llgo_36
_llgo_36: ; preds = %_llgo_35, %_llgo_34 _llgo_36: ; preds = %_llgo_35, %_llgo_34
%125 = load ptr, ptr @_llgo_string, align 8 %111 = load ptr, ptr @_llgo_string, align 8
%126 = icmp eq ptr %125, null %112 = icmp eq ptr %111, null
br i1 %126, label %_llgo_37, label %_llgo_38 br i1 %112, label %_llgo_37, label %_llgo_38
_llgo_37: ; preds = %_llgo_36 _llgo_37: ; preds = %_llgo_36
%127 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 24) %113 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 24)
store ptr %127, ptr @_llgo_string, align 8 store ptr %113, ptr @_llgo_string, align 8
br label %_llgo_38 br label %_llgo_38
_llgo_38: ; preds = %_llgo_37, %_llgo_36 _llgo_38: ; preds = %_llgo_37, %_llgo_36
%128 = load ptr, ptr @_llgo_int8, align 8 %114 = load ptr, ptr @_llgo_int8, align 8
%129 = load ptr, ptr @_llgo_int, align 8 %115 = load ptr, ptr @_llgo_int, align 8
%130 = load ptr, ptr @_llgo_int, align 8 %116 = load ptr, ptr @_llgo_int, align 8
%131 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 %117 = 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 %118 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %117, i32 0, i32 0
store ptr @4, ptr %132, align 8 store ptr @4, ptr %118, align 8
%133 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %131, i32 0, i32 1 %119 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %117, i32 0, i32 1
store i64 1, ptr %133, align 4 store i64 1, ptr %119, align 4
%134 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %131, align 8 %120 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %117, align 8
%121 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8
%122 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %121, i32 0, i32 0
store ptr null, ptr %122, align 8
%123 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %121, i32 0, i32 1
store i64 0, ptr %123, align 4
%124 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %121, align 8
%125 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %120, ptr %114, i64 0, %"github.com/goplus/llgo/internal/runtime.String" %124, i1 false)
%126 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8
%127 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %126, i32 0, i32 0
store ptr @5, ptr %127, align 8
%128 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %126, i32 0, i32 1
store i64 1, ptr %128, align 4
%129 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %126, align 8
%130 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8
%131 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %130, i32 0, i32 0
store ptr null, ptr %131, align 8
%132 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %130, i32 0, i32 1
store i64 0, ptr %132, align 4
%133 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %130, align 8
%134 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %129, ptr %115, i64 8, %"github.com/goplus/llgo/internal/runtime.String" %133, i1 false)
%135 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 %135 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8
%136 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %135, i32 0, i32 0 %136 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %135, i32 0, i32 0
store ptr null, ptr %136, align 8 store ptr @6, ptr %136, align 8
%137 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %135, i32 0, i32 1 %137 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %135, i32 0, i32 1
store i64 0, ptr %137, align 4 store i64 1, ptr %137, align 4
%138 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %135, align 8 %138 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %135, align 8
%139 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %134, ptr %128, i64 0, %"github.com/goplus/llgo/internal/runtime.String" %138, i1 false) %139 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8
%140 = 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
%141 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %140, i32 0, i32 0 store ptr null, ptr %140, align 8
store ptr @5, ptr %141, align 8 %141 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %139, i32 0, i32 1
%142 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %140, i32 0, i32 1 store i64 0, ptr %141, align 4
store i64 1, ptr %142, align 4 %142 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %139, align 8
%143 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %140, align 8 %143 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %138, ptr %116, i64 16, %"github.com/goplus/llgo/internal/runtime.String" %142, i1 false)
%144 = alloca %"github.com/goplus/llgo/internal/runtime.String", 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 %145 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %144, i32 0, i32 0
store ptr null, ptr %145, align 8 store ptr @7, ptr %145, align 8
%146 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %144, i32 0, i32 1 %146 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %144, i32 0, i32 1
store i64 0, ptr %146, align 4 store i64 4, ptr %146, align 4
%147 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %144, align 8 %147 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %144, align 8
%148 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %143, ptr %129, i64 8, %"github.com/goplus/llgo/internal/runtime.String" %147, i1 false) %148 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 168)
%149 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 %149 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %148, i64 0
%150 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %149, i32 0, i32 0 store %"github.com/goplus/llgo/internal/abi.StructField" %125, ptr %149, align 8
store ptr @6, ptr %150, align 8 %150 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %148, i64 1
%151 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %149, i32 0, i32 1 store %"github.com/goplus/llgo/internal/abi.StructField" %134, ptr %150, align 8
store i64 1, ptr %151, align 4 %151 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %148, i64 2
%152 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %149, align 8 store %"github.com/goplus/llgo/internal/abi.StructField" %143, ptr %151, align 8
%153 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 %152 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8
%154 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %153, i32 0, i32 0 %153 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %152, i32 0, i32 0
store ptr null, ptr %154, align 8 store ptr %148, ptr %153, align 8
%155 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %153, i32 0, i32 1 %154 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %152, i32 0, i32 1
store i64 0, ptr %155, align 4 store i64 3, ptr %154, align 4
%156 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %153, align 8 %155 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %152, i32 0, i32 2
%157 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %152, ptr %130, i64 16, %"github.com/goplus/llgo/internal/runtime.String" %156, i1 false) store i64 3, ptr %155, align 4
%158 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 %156 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %152, align 8
%159 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %158, i32 0, i32 0 %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 @7, ptr %159, align 8 store ptr %157, ptr @"main.struct$RKbUG45GE4henGMAdmt0Rju0JptyR8NsX7IZLsOI0OM", align 8
%160 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %158, i32 0, i32 1 %158 = load ptr, ptr @_llgo_main.T, align 8
store i64 4, ptr %160, align 4 %159 = icmp eq ptr %158, null
%161 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %158, align 8 br i1 %159, label %_llgo_39, label %_llgo_40
%162 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 168)
%163 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %162, i64 0
store %"github.com/goplus/llgo/internal/abi.StructField" %139, ptr %163, align 8
%164 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %162, i64 1
store %"github.com/goplus/llgo/internal/abi.StructField" %148, ptr %164, align 8
%165 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %162, i64 2
store %"github.com/goplus/llgo/internal/abi.StructField" %157, 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 %162, ptr %167, align 8
%168 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %166, i32 0, i32 1
store i64 3, ptr %168, align 4
%169 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %166, i32 0, i32 2
store i64 3, ptr %169, align 4
%170 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %166, align 8
%171 = call ptr @"github.com/goplus/llgo/internal/runtime.Struct"(%"github.com/goplus/llgo/internal/runtime.String" %161, i64 24, %"github.com/goplus/llgo/internal/runtime.Slice" %170)
store ptr %171, ptr @"main.struct$RKbUG45GE4henGMAdmt0Rju0JptyR8NsX7IZLsOI0OM", align 8
%172 = load ptr, ptr @_llgo_main.T, align 8
%173 = icmp eq ptr %172, null
br i1 %173, label %_llgo_39, label %_llgo_40
_llgo_39: ; preds = %_llgo_38 _llgo_39: ; preds = %_llgo_38
%174 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(i64 24, i64 0, i64 1) %160 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(i64 24, i64 0, i64 1)
store ptr %174, ptr @_llgo_main.T, align 8 store ptr %160, ptr @_llgo_main.T, align 8
br label %_llgo_40 br label %_llgo_40
_llgo_40: ; preds = %_llgo_39, %_llgo_38 _llgo_40: ; preds = %_llgo_39, %_llgo_38
%175 = load ptr, ptr @_llgo_string, align 8 %161 = load ptr, ptr @_llgo_string, align 8
br i1 %173, label %_llgo_41, label %_llgo_42 br i1 %159, label %_llgo_41, label %_llgo_42
_llgo_41: ; preds = %_llgo_40 _llgo_41: ; preds = %_llgo_40
%176 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 %162 = 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 %163 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %162, i32 0, i32 0
store ptr @8, ptr %177, align 8 store ptr @8, ptr %163, align 8
%178 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %176, i32 0, i32 1 %164 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %162, i32 0, i32 1
store i64 6, ptr %178, align 4 store i64 6, ptr %164, align 4
%179 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %176, align 8 %165 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %162, align 8
%180 = load ptr, ptr @"_llgo_func$2_iS07vIlF2_rZqWB5eU0IvP_9HviM4MYZNkXZDvbac", align 8 %166 = load ptr, ptr @"_llgo_func$2_iS07vIlF2_rZqWB5eU0IvP_9HviM4MYZNkXZDvbac", align 8
%181 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8 %167 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8
%182 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %181, i32 0, i32 0 %168 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %167, i32 0, i32 0
store %"github.com/goplus/llgo/internal/runtime.String" %179, ptr %182, align 8 store %"github.com/goplus/llgo/internal/runtime.String" %165, ptr %168, align 8
%183 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %181, i32 0, i32 1 %169 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %167, i32 0, i32 1
store ptr %180, ptr %183, align 8 store ptr %166, ptr %169, align 8
%184 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %181, i32 0, i32 2 %170 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %167, i32 0, i32 2
store ptr @"main.(*T).Invoke", ptr %184, align 8 store ptr @"main.(*T).Invoke", ptr %170, align 8
%185 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %181, i32 0, i32 3 %171 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %167, i32 0, i32 3
store ptr @"main.(*T).Invoke", ptr %185, align 8 store ptr @"main.(*T).Invoke", ptr %171, align 8
%186 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %181, align 8 %172 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %167, align 8
%187 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 40) %173 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 40)
%188 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %187, i64 0 %174 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %173, i64 0
store %"github.com/goplus/llgo/internal/abi.Method" %186, ptr %188, align 8 store %"github.com/goplus/llgo/internal/abi.Method" %172, ptr %174, align 8
%189 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8 %175 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8
%190 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %189, i32 0, i32 0 %176 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %175, i32 0, i32 0
store ptr %187, ptr %190, align 8 store ptr %173, ptr %176, align 8
%191 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %189, i32 0, i32 1 %177 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %175, i32 0, i32 1
store i64 1, ptr %191, align 4 store i64 1, ptr %177, align 4
%192 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %189, i32 0, i32 2 %178 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %175, i32 0, i32 2
store i64 1, ptr %192, align 4 store i64 1, ptr %178, align 4
%193 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %189, align 8 %179 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %175, align 8
%194 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 %180 = 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 %181 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %180, i32 0, i32 0
store ptr @7, ptr %195, align 8 store ptr @7, ptr %181, align 8
%196 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %194, i32 0, i32 1 %182 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %180, i32 0, i32 1
store i64 4, ptr %196, align 4 store i64 4, ptr %182, align 4
%197 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %194, align 8 %183 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %180, align 8
%198 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8 %184 = 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 %185 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %184, i32 0, i32 0
store ptr @9, ptr %199, align 8 store ptr @9, ptr %185, align 8
%200 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %198, i32 0, i32 1 %186 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %184, i32 0, i32 1
store i64 6, ptr %200, align 4 store i64 6, ptr %186, align 4
%201 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %198, align 8 %187 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %184, align 8
call void @"github.com/goplus/llgo/internal/runtime.InitNamed"(ptr %174, %"github.com/goplus/llgo/internal/runtime.String" %197, %"github.com/goplus/llgo/internal/runtime.String" %201, ptr %175, { ptr, i64, i64 } zeroinitializer, %"github.com/goplus/llgo/internal/runtime.Slice" %193) 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)
br label %_llgo_42 br label %_llgo_42
_llgo_42: ; preds = %_llgo_41, %_llgo_40 _llgo_42: ; preds = %_llgo_41, %_llgo_40

View File

@@ -311,20 +311,20 @@ func (p Package) abiTypeInit(g Global, t types.Type, pub bool) {
b.SetBlockEx(blks[0], AtEnd, false) b.SetBlockEx(blks[0], AtEnd, false)
} }
vexpr := tabi() vexpr := tabi()
b.Store(expr, vexpr)
if pub {
b.Jump(blks[1])
b.SetBlockEx(blks[1], AtEnd, false)
b.blk.last = blks[1].last
}
prog := p.Prog prog := p.Prog
kind, _, _ := abi.DataKindOf(t, 0, prog.is32Bits) kind, _, _ := abi.DataKindOf(t, 0, prog.is32Bits)
if kind == abi.Integer || kind == abi.BitCast { if kind == abi.Integer || kind == abi.BitCast {
// abi.Type.Kind_ |= abi.KindDirectIface // abi.Type.Kind_ |= abi.KindDirectIface
const kindDirectIface = 1 << 5 const kindDirectIface = 1 << 5
pkind := b.FieldAddr(b.Load(expr), 6) pkind := b.FieldAddr(vexpr, 6)
b.Store(pkind, b.BinOp(token.OR, b.Load(pkind), Expr{prog.IntVal(kindDirectIface, prog.Byte()).impl, prog.Byte()})) b.Store(pkind, b.BinOp(token.OR, b.Load(pkind), Expr{prog.IntVal(kindDirectIface, prog.Byte()).impl, prog.Byte()}))
} }
b.Store(expr, vexpr)
if pub {
b.Jump(blks[1])
b.SetBlockEx(blks[1], AtEnd, false)
b.blk.last = blks[1].last
}
if t, ok := t.(*types.Named); ok { if t, ok := t.(*types.Named); ok {
// skip interface // skip interface