; ModuleID = 'main' source_filename = "main" %"github.com/goplus/llgo/runtime/internal/runtime.Slice" = type { ptr, i64, i64 } %"github.com/goplus/llgo/runtime/internal/runtime.String" = type { ptr, i64 } %"github.com/goplus/llgo/runtime/internal/runtime.eface" = type { ptr, ptr } @main.a = global i64 0, align 8 @main.b = global i64 0, align 8 @"main.init$guard" = global i1 false, align 1 @main.n = global i64 0, align 8 @__llgo_argc = global i32 0, align 4 @__llgo_argv = global ptr null, align 8 @0 = private unnamed_addr constant [5 x i8] c"hello", align 1 @1 = private unnamed_addr constant [3 x i8] c"def", align 1 @_llgo_int = linkonce global ptr null, align 8 @2 = private unnamed_addr constant [4 x i8] c"ABCD", align 1 @3 = private unnamed_addr constant [7 x i8] c"\E4\B8\ADabcd", align 1 @4 = private unnamed_addr constant [3 x i8] c"abc", align 1 @5 = private unnamed_addr constant [3 x i8] c"abd", align 1 @6 = private unnamed_addr constant [2 x i8] c"fn", align 1 define double @main.Float64frombits(i64 %0) { _llgo_0: %1 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocZ"(i64 8) store i64 %0, ptr %1, align 4 %2 = load double, ptr %1, align 8 ret double %2 } define double @main.Inf(i64 %0) { _llgo_0: %1 = icmp sge i64 %0, 0 br i1 %1, label %_llgo_1, label %_llgo_3 _llgo_1: ; preds = %_llgo_0 br label %_llgo_2 _llgo_2: ; preds = %_llgo_3, %_llgo_1 %2 = phi i64 [ 9218868437227405312, %_llgo_1 ], [ -4503599627370496, %_llgo_3 ] %3 = call double @main.Float64frombits(i64 %2) ret double %3 _llgo_3: ; preds = %_llgo_0 br label %_llgo_2 } define i1 @main.IsNaN(double %0) { _llgo_0: %1 = fcmp une double %0, %0 ret i1 %1 } define double @main.NaN() { _llgo_0: %0 = call double @main.Float64frombits(i64 9221120237041090561) ret double %0 } define void @main.demo() { _llgo_0: ret void } define void @main.init() { _llgo_0: %0 = load i1, ptr @"main.init$guard", align 1 br i1 %0, label %_llgo_2, label %_llgo_1 _llgo_1: ; preds = %_llgo_0 store i1 true, ptr @"main.init$guard", align 1 call void @"main.init$after"() store i64 9223372036854775807, ptr @main.a, align 4 store i64 -9223372036854775808, ptr @main.b, align 4 store i64 -1, ptr @main.n, align 4 br label %_llgo_2 _llgo_2: ; preds = %_llgo_1, %_llgo_0 ret void } define i32 @main(i32 %0, ptr %1) { _llgo_0: store i32 %0, ptr @__llgo_argc, align 4 store ptr %1, ptr @__llgo_argv, align 8 call void @"github.com/goplus/llgo/runtime/internal/runtime.init"() call void @main.init() %2 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocZ"(i64 32) %3 = getelementptr inbounds i64, ptr %2, i64 0 store i64 1, ptr %3, align 4 %4 = getelementptr inbounds i64, ptr %2, i64 1 store i64 2, ptr %4, align 4 %5 = getelementptr inbounds i64, ptr %2, i64 2 store i64 3, ptr %5, align 4 %6 = getelementptr inbounds i64, ptr %2, i64 3 store i64 4, ptr %6, align 4 %7 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %2, 0 %8 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %7, i64 4, 1 %9 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %8, i64 4, 2 %10 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocZ"(i64 32) %11 = getelementptr inbounds i64, ptr %10, i64 0 %12 = getelementptr inbounds i64, ptr %10, i64 1 %13 = getelementptr inbounds i64, ptr %10, i64 2 %14 = getelementptr inbounds i64, ptr %10, i64 3 store i64 1, ptr %11, align 4 store i64 2, ptr %12, align 4 store i64 3, ptr %13, align 4 store i64 4, ptr %14, align 4 %15 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocZ"(i64 10) %16 = call %"github.com/goplus/llgo/runtime/internal/runtime.Slice" @"github.com/goplus/llgo/runtime/internal/runtime.NewSlice3"(ptr %15, i64 1, i64 10, i64 0, i64 4, i64 10) %17 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %9, 1 %18 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %9, 2 call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintSlice"(%"github.com/goplus/llgo/runtime/internal/runtime.Slice" %9) call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 32) call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintInt"(i64 %17) call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 32) call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintInt"(i64 %18) call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 10) %19 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %16, 1 %20 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %16, 2 call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintSlice"(%"github.com/goplus/llgo/runtime/internal/runtime.Slice" %16) call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 32) call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintInt"(i64 %19) call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 32) call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintInt"(i64 %20) call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 10) call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintInt"(i64 4) call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 32) call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintInt"(i64 4) call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 32) call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintInt"(i64 4) call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 32) call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintInt"(i64 4) call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 10) %21 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocZ"(i64 32) %22 = getelementptr inbounds i64, ptr %21, i64 0 store i64 1, ptr %22, align 4 %23 = getelementptr inbounds i64, ptr %21, i64 1 store i64 2, ptr %23, align 4 %24 = getelementptr inbounds i64, ptr %21, i64 2 store i64 3, ptr %24, align 4 %25 = getelementptr inbounds i64, ptr %21, i64 3 store i64 4, ptr %25, align 4 %26 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %21, 0 %27 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %26, i64 4, 1 %28 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %27, i64 4, 2 %29 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %28, 1 call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintInt"(i64 %29) call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 32) call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintInt"(i64 4) call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 10) %30 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %9, 2 %31 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %9, 1 %32 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %9, 0 %33 = call %"github.com/goplus/llgo/runtime/internal/runtime.Slice" @"github.com/goplus/llgo/runtime/internal/runtime.NewSlice3"(ptr %32, i64 8, i64 %30, i64 1, i64 %31, i64 %30) %34 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %33, 1 %35 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %9, 2 %36 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %9, 1 %37 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %9, 0 %38 = call %"github.com/goplus/llgo/runtime/internal/runtime.Slice" @"github.com/goplus/llgo/runtime/internal/runtime.NewSlice3"(ptr %37, i64 8, i64 %35, i64 1, i64 %36, i64 %35) %39 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %38, 2 %40 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %9, 2 %41 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %9, 0 %42 = call %"github.com/goplus/llgo/runtime/internal/runtime.Slice" @"github.com/goplus/llgo/runtime/internal/runtime.NewSlice3"(ptr %41, i64 8, i64 %40, i64 1, i64 2, i64 %40) %43 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %42, 1 %44 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %9, 2 %45 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %9, 0 %46 = call %"github.com/goplus/llgo/runtime/internal/runtime.Slice" @"github.com/goplus/llgo/runtime/internal/runtime.NewSlice3"(ptr %45, i64 8, i64 %44, i64 1, i64 2, i64 %44) %47 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %46, 2 %48 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %9, 2 %49 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %9, 0 %50 = call %"github.com/goplus/llgo/runtime/internal/runtime.Slice" @"github.com/goplus/llgo/runtime/internal/runtime.NewSlice3"(ptr %49, i64 8, i64 %48, i64 1, i64 2, i64 2) %51 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %50, 1 %52 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %9, 2 %53 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %9, 0 %54 = call %"github.com/goplus/llgo/runtime/internal/runtime.Slice" @"github.com/goplus/llgo/runtime/internal/runtime.NewSlice3"(ptr %53, i64 8, i64 %52, i64 1, i64 2, i64 2) %55 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %54, 2 call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintInt"(i64 %34) call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 32) call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintInt"(i64 %39) call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 32) call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintInt"(i64 %43) call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 32) call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintInt"(i64 %47) call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 32) call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintInt"(i64 %51) call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 32) call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintInt"(i64 %55) call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 10) %56 = call %"github.com/goplus/llgo/runtime/internal/runtime.Slice" @"github.com/goplus/llgo/runtime/internal/runtime.NewSlice3"(ptr %10, i64 8, i64 4, i64 1, i64 4, i64 4) %57 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %56, 1 %58 = call %"github.com/goplus/llgo/runtime/internal/runtime.Slice" @"github.com/goplus/llgo/runtime/internal/runtime.NewSlice3"(ptr %10, i64 8, i64 4, i64 1, i64 4, i64 4) %59 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %58, 2 %60 = call %"github.com/goplus/llgo/runtime/internal/runtime.Slice" @"github.com/goplus/llgo/runtime/internal/runtime.NewSlice3"(ptr %10, i64 8, i64 4, i64 1, i64 2, i64 4) %61 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %60, 1 %62 = call %"github.com/goplus/llgo/runtime/internal/runtime.Slice" @"github.com/goplus/llgo/runtime/internal/runtime.NewSlice3"(ptr %10, i64 8, i64 4, i64 1, i64 2, i64 4) %63 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %62, 2 %64 = call %"github.com/goplus/llgo/runtime/internal/runtime.Slice" @"github.com/goplus/llgo/runtime/internal/runtime.NewSlice3"(ptr %10, i64 8, i64 4, i64 1, i64 2, i64 2) %65 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %64, 1 %66 = call %"github.com/goplus/llgo/runtime/internal/runtime.Slice" @"github.com/goplus/llgo/runtime/internal/runtime.NewSlice3"(ptr %10, i64 8, i64 4, i64 1, i64 2, i64 2) %67 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %66, 2 call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintInt"(i64 %57) call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 32) call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintInt"(i64 %59) call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 32) call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintInt"(i64 %61) call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 32) call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintInt"(i64 %63) call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 32) call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintInt"(i64 %65) call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 32) call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintInt"(i64 %67) call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 10) %68 = call %"github.com/goplus/llgo/runtime/internal/runtime.String" @"github.com/goplus/llgo/runtime/internal/runtime.StringSlice"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 5 }, i64 1, i64 5) %69 = call %"github.com/goplus/llgo/runtime/internal/runtime.String" @"github.com/goplus/llgo/runtime/internal/runtime.StringSlice"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 5 }, i64 1, i64 2) %70 = call %"github.com/goplus/llgo/runtime/internal/runtime.String" @"github.com/goplus/llgo/runtime/internal/runtime.StringSlice"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 5 }, i64 5, i64 5) %71 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.String" %70, 1 call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintString"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 5 }) call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 32) call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintString"(%"github.com/goplus/llgo/runtime/internal/runtime.String" %68) call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 32) call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintString"(%"github.com/goplus/llgo/runtime/internal/runtime.String" %69) call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 32) call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintInt"(i64 %71) call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 10) %72 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocZ"(i64 32) %73 = getelementptr inbounds i64, ptr %72, i64 0 store i64 5, ptr %73, align 4 %74 = getelementptr inbounds i64, ptr %72, i64 1 store i64 6, ptr %74, align 4 %75 = getelementptr inbounds i64, ptr %72, i64 2 store i64 7, ptr %75, align 4 %76 = getelementptr inbounds i64, ptr %72, i64 3 store i64 8, ptr %76, align 4 %77 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %72, 0 %78 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %77, i64 4, 1 %79 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %78, i64 4, 2 %80 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %79, 0 %81 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %79, 1 %82 = call %"github.com/goplus/llgo/runtime/internal/runtime.Slice" @"github.com/goplus/llgo/runtime/internal/runtime.SliceAppend"(%"github.com/goplus/llgo/runtime/internal/runtime.Slice" %9, ptr %80, i64 %81, i64 8) call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintSlice"(%"github.com/goplus/llgo/runtime/internal/runtime.Slice" %82) call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 10) %83 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocZ"(i64 3) %84 = getelementptr inbounds i8, ptr %83, i64 0 store i8 97, ptr %84, align 1 %85 = getelementptr inbounds i8, ptr %83, i64 1 store i8 98, ptr %85, align 1 %86 = getelementptr inbounds i8, ptr %83, i64 2 store i8 99, ptr %86, align 1 %87 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %83, 0 %88 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %87, i64 3, 1 %89 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %88, i64 3, 2 %90 = call %"github.com/goplus/llgo/runtime/internal/runtime.Slice" @"github.com/goplus/llgo/runtime/internal/runtime.SliceAppend"(%"github.com/goplus/llgo/runtime/internal/runtime.Slice" %89, ptr @1, i64 3, i64 1) call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintSlice"(%"github.com/goplus/llgo/runtime/internal/runtime.Slice" %90) call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 10) %91 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocZ"(i64 16) %92 = load ptr, ptr @_llgo_int, align 8 %93 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %92, 0 %94 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %93, ptr inttoptr (i64 100 to ptr), 1 store %"github.com/goplus/llgo/runtime/internal/runtime.eface" %94, ptr %91, align 8 %95 = load %"github.com/goplus/llgo/runtime/internal/runtime.eface", ptr %91, align 8 %96 = ptrtoint ptr %91 to i64 call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintBool"(i1 true) call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 32) call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintInt"(i64 0) call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 32) call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintInt"(i64 100) call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 32) call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintInt"(i64 -100) call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 32) call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintUint"(i64 255) call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 32) call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintInt"(i64 -100) call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 32) call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintFloat"(double 0.000000e+00) call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 32) call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintFloat"(double 1.005000e+02) call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 32) call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintEface"(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %95) call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 32) call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintPointer"(ptr %91) call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 32) call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintUint"(i64 %96) call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 10) %97 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocZ"(i64 3) %98 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocZ"(i64 8) %99 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %97, 0 %100 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %99, i64 3, 1 %101 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %100, i64 3, 2 %102 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %90, 0 %103 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %90, 1 %104 = call i64 @"github.com/goplus/llgo/runtime/internal/runtime.SliceCopy"(%"github.com/goplus/llgo/runtime/internal/runtime.Slice" %101, ptr %102, i64 %103, i64 1) store i64 %104, ptr %98, align 4 %105 = load i64, ptr %98, align 4 %106 = getelementptr inbounds i8, ptr %97, i64 0 %107 = load i8, ptr %106, align 1 %108 = getelementptr inbounds i8, ptr %97, i64 1 %109 = load i8, ptr %108, align 1 %110 = getelementptr inbounds i8, ptr %97, i64 2 %111 = load i8, ptr %110, align 1 call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintInt"(i64 %105) call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 32) %112 = zext i8 %107 to i64 call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintUint"(i64 %112) call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 32) %113 = zext i8 %109 to i64 call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintUint"(i64 %113) call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 32) %114 = zext i8 %111 to i64 call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintUint"(i64 %114) call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 10) %115 = call %"github.com/goplus/llgo/runtime/internal/runtime.Slice" @"github.com/goplus/llgo/runtime/internal/runtime.NewSlice3"(ptr %97, i64 1, i64 3, i64 1, i64 3, i64 3) %116 = call i64 @"github.com/goplus/llgo/runtime/internal/runtime.SliceCopy"(%"github.com/goplus/llgo/runtime/internal/runtime.Slice" %115, ptr @2, i64 4, i64 1) store i64 %116, ptr %98, align 4 %117 = load i64, ptr %98, align 4 %118 = getelementptr inbounds i8, ptr %97, i64 0 %119 = load i8, ptr %118, align 1 %120 = getelementptr inbounds i8, ptr %97, i64 1 %121 = load i8, ptr %120, align 1 %122 = getelementptr inbounds i8, ptr %97, i64 2 %123 = load i8, ptr %122, align 1 call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintInt"(i64 %117) call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 32) %124 = zext i8 %119 to i64 call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintUint"(i64 %124) call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 32) %125 = zext i8 %121 to i64 call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintUint"(i64 %125) call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 32) %126 = zext i8 %123 to i64 call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintUint"(i64 %126) call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 10) %127 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 8) %128 = getelementptr inbounds { ptr }, ptr %127, i32 0, i32 0 store ptr %98, ptr %128, align 8 %129 = insertvalue { ptr, ptr } { ptr @"main.main$2", ptr undef }, ptr %127, 1 call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintPointer"(ptr @main.demo) call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 32) call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintPointer"(ptr @main.demo) call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 32) call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintPointer"(ptr @"main.main$1") call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 32) %130 = extractvalue { ptr, ptr } %129, 0 call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintPointer"(ptr %130) call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 10) %131 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewStringIter"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @3, i64 7 }) br label %_llgo_1 _llgo_1: ; preds = %_llgo_2, %_llgo_0 %132 = call { i1, i64, i32 } @"github.com/goplus/llgo/runtime/internal/runtime.StringIterNext"(ptr %131) %133 = extractvalue { i1, i64, i32 } %132, 0 br i1 %133, label %_llgo_2, label %_llgo_3 _llgo_2: ; preds = %_llgo_1 %134 = extractvalue { i1, i64, i32 } %132, 1 %135 = extractvalue { i1, i64, i32 } %132, 2 call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintInt"(i64 %134) call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 32) %136 = sext i32 %135 to i64 call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintInt"(i64 %136) call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 10) br label %_llgo_1 _llgo_3: ; preds = %_llgo_1 %137 = call double @main.Inf(i64 1) %138 = call double @main.Inf(i64 -1) %139 = call double @main.NaN() %140 = call double @main.NaN() %141 = call i1 @main.IsNaN(double %140) %142 = call i1 @main.IsNaN(double 1.000000e+00) call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintFloat"(double %137) call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 32) call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintFloat"(double %138) call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 32) call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintFloat"(double %139) call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 32) call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintBool"(i1 %141) call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 32) call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintBool"(i1 %142) call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 10) %143 = call %"github.com/goplus/llgo/runtime/internal/runtime.Slice" @"github.com/goplus/llgo/runtime/internal/runtime.StringToBytes"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @3, i64 7 }) %144 = call %"github.com/goplus/llgo/runtime/internal/runtime.Slice" @"github.com/goplus/llgo/runtime/internal/runtime.StringToRunes"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @3, i64 7 }) call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintSlice"(%"github.com/goplus/llgo/runtime/internal/runtime.Slice" %143) call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 32) call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintSlice"(%"github.com/goplus/llgo/runtime/internal/runtime.Slice" %144) call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 10) %145 = call %"github.com/goplus/llgo/runtime/internal/runtime.String" @"github.com/goplus/llgo/runtime/internal/runtime.StringFromBytes"(%"github.com/goplus/llgo/runtime/internal/runtime.Slice" %143) %146 = call %"github.com/goplus/llgo/runtime/internal/runtime.String" @"github.com/goplus/llgo/runtime/internal/runtime.StringFromRunes"(%"github.com/goplus/llgo/runtime/internal/runtime.Slice" %144) %147 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %143, 0 %148 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %143, 1 %149 = icmp sge i64 3, %148 call void @"github.com/goplus/llgo/runtime/internal/runtime.AssertIndexRange"(i1 %149) %150 = getelementptr inbounds i8, ptr %147, i64 3 %151 = load i8, ptr %150, align 1 %152 = sext i8 %151 to i32 %153 = call %"github.com/goplus/llgo/runtime/internal/runtime.String" @"github.com/goplus/llgo/runtime/internal/runtime.StringFromRune"(i32 %152) %154 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %144, 0 %155 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %144, 1 %156 = icmp sge i64 0, %155 call void @"github.com/goplus/llgo/runtime/internal/runtime.AssertIndexRange"(i1 %156) %157 = getelementptr inbounds i32, ptr %154, i64 0 %158 = load i32, ptr %157, align 4 %159 = call %"github.com/goplus/llgo/runtime/internal/runtime.String" @"github.com/goplus/llgo/runtime/internal/runtime.StringFromRune"(i32 %158) call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintString"(%"github.com/goplus/llgo/runtime/internal/runtime.String" %145) call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 32) call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintString"(%"github.com/goplus/llgo/runtime/internal/runtime.String" %146) call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 32) call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintString"(%"github.com/goplus/llgo/runtime/internal/runtime.String" %153) call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 32) call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintString"(%"github.com/goplus/llgo/runtime/internal/runtime.String" %159) call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 10) %160 = call i1 @"github.com/goplus/llgo/runtime/internal/runtime.StringEqual"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @4, i64 3 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @4, i64 3 }) %161 = call i1 @"github.com/goplus/llgo/runtime/internal/runtime.StringEqual"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @4, i64 3 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @5, i64 3 }) %162 = call i1 @"github.com/goplus/llgo/runtime/internal/runtime.StringEqual"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @4, i64 3 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @5, i64 3 }) %163 = xor i1 %162, true %164 = call i1 @"github.com/goplus/llgo/runtime/internal/runtime.StringLess"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @4, i64 3 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @5, i64 3 }) %165 = call i1 @"github.com/goplus/llgo/runtime/internal/runtime.StringLess"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @5, i64 3 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @4, i64 3 }) %166 = xor i1 %165, true %167 = call i1 @"github.com/goplus/llgo/runtime/internal/runtime.StringLess"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @5, i64 3 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @4, i64 3 }) %168 = call i1 @"github.com/goplus/llgo/runtime/internal/runtime.StringLess"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @4, i64 3 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @5, i64 3 }) %169 = xor i1 %168, true call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintBool"(i1 %160) call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 32) call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintBool"(i1 %161) call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 32) call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintBool"(i1 %163) call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 32) call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintBool"(i1 %164) call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 32) call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintBool"(i1 %166) call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 32) call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintBool"(i1 %167) call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 32) call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintBool"(i1 %169) call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 10) ret i32 0 } define void @"main.main$1"() { _llgo_0: call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintString"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @6, i64 2 }) call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 10) ret void } define void @"main.main$2"(ptr %0) { _llgo_0: %1 = load { ptr }, ptr %0, align 8 %2 = extractvalue { ptr } %1, 0 %3 = load i64, ptr %2, align 4 call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintInt"(i64 %3) call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 10) ret void } declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocZ"(i64) declare void @"github.com/goplus/llgo/runtime/internal/runtime.init"() declare %"github.com/goplus/llgo/runtime/internal/runtime.Slice" @"github.com/goplus/llgo/runtime/internal/runtime.NewSlice3"(ptr, i64, i64, i64, i64, i64) declare void @"github.com/goplus/llgo/runtime/internal/runtime.PrintSlice"(%"github.com/goplus/llgo/runtime/internal/runtime.Slice") declare void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8) declare void @"github.com/goplus/llgo/runtime/internal/runtime.PrintInt"(i64) declare %"github.com/goplus/llgo/runtime/internal/runtime.String" @"github.com/goplus/llgo/runtime/internal/runtime.StringSlice"(%"github.com/goplus/llgo/runtime/internal/runtime.String", i64, i64) declare void @"github.com/goplus/llgo/runtime/internal/runtime.PrintString"(%"github.com/goplus/llgo/runtime/internal/runtime.String") declare %"github.com/goplus/llgo/runtime/internal/runtime.Slice" @"github.com/goplus/llgo/runtime/internal/runtime.SliceAppend"(%"github.com/goplus/llgo/runtime/internal/runtime.Slice", ptr, i64, i64) define void @"main.init$after"() { _llgo_0: %0 = load ptr, ptr @_llgo_int, align 8 %1 = icmp eq ptr %0, null br i1 %1, label %_llgo_1, label %_llgo_2 _llgo_1: ; preds = %_llgo_0 %2 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 34) store ptr %2, ptr @_llgo_int, align 8 br label %_llgo_2 _llgo_2: ; preds = %_llgo_1, %_llgo_0 ret void } declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64) declare void @"github.com/goplus/llgo/runtime/internal/runtime.PrintBool"(i1) declare void @"github.com/goplus/llgo/runtime/internal/runtime.PrintUint"(i64) declare void @"github.com/goplus/llgo/runtime/internal/runtime.PrintFloat"(double) declare void @"github.com/goplus/llgo/runtime/internal/runtime.PrintEface"(%"github.com/goplus/llgo/runtime/internal/runtime.eface") declare void @"github.com/goplus/llgo/runtime/internal/runtime.PrintPointer"(ptr) declare i64 @"github.com/goplus/llgo/runtime/internal/runtime.SliceCopy"(%"github.com/goplus/llgo/runtime/internal/runtime.Slice", ptr, i64, i64) declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64) declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewStringIter"(%"github.com/goplus/llgo/runtime/internal/runtime.String") declare { i1, i64, i32 } @"github.com/goplus/llgo/runtime/internal/runtime.StringIterNext"(ptr) declare %"github.com/goplus/llgo/runtime/internal/runtime.Slice" @"github.com/goplus/llgo/runtime/internal/runtime.StringToBytes"(%"github.com/goplus/llgo/runtime/internal/runtime.String") declare %"github.com/goplus/llgo/runtime/internal/runtime.Slice" @"github.com/goplus/llgo/runtime/internal/runtime.StringToRunes"(%"github.com/goplus/llgo/runtime/internal/runtime.String") declare %"github.com/goplus/llgo/runtime/internal/runtime.String" @"github.com/goplus/llgo/runtime/internal/runtime.StringFromBytes"(%"github.com/goplus/llgo/runtime/internal/runtime.Slice") declare %"github.com/goplus/llgo/runtime/internal/runtime.String" @"github.com/goplus/llgo/runtime/internal/runtime.StringFromRunes"(%"github.com/goplus/llgo/runtime/internal/runtime.Slice") declare void @"github.com/goplus/llgo/runtime/internal/runtime.AssertIndexRange"(i1) declare %"github.com/goplus/llgo/runtime/internal/runtime.String" @"github.com/goplus/llgo/runtime/internal/runtime.StringFromRune"(i32) declare i1 @"github.com/goplus/llgo/runtime/internal/runtime.StringEqual"(%"github.com/goplus/llgo/runtime/internal/runtime.String", %"github.com/goplus/llgo/runtime/internal/runtime.String") declare i1 @"github.com/goplus/llgo/runtime/internal/runtime.StringLess"(%"github.com/goplus/llgo/runtime/internal/runtime.String", %"github.com/goplus/llgo/runtime/internal/runtime.String")