mirror of
https://github.com/c3lang/c3c.git
synced 2026-02-27 12:01:16 +00:00
0.5.3: Single-module not respected. Fix issue with compiler defined types. Fix optimization levels for projects. Use GEP i8 on offsets. Optimize foreach on len 1 arrays. Move panic blocks last. Fix generic module wildcard imports. Deprecate init_temp / init_new. Fix issue with macro vaarg and untyped lists. Fix extern const globals.
This commit is contained in:
committed by
Christoffer Lerno
parent
e91f6e268e
commit
deb4cc7c4b
@@ -56,34 +56,34 @@ entry:
|
||||
%b = alloca [8 x i8], align 1
|
||||
%varargslots = alloca [3 x %"any*"], align 16
|
||||
%taddr = alloca i32, align 4
|
||||
%taddr13 = alloca i32, align 4
|
||||
%taddr16 = alloca i8, align 1
|
||||
%taddr30 = alloca i32, align 4
|
||||
%taddr34 = alloca i8, align 1
|
||||
%retparam = alloca i64, align 8
|
||||
%varargslots17 = alloca [3 x %"any*"], align 16
|
||||
%taddr19 = alloca i32, align 4
|
||||
%taddr22 = alloca i32, align 4
|
||||
%taddr25 = alloca i8, align 1
|
||||
%retparam26 = alloca i64, align 8
|
||||
%varargslots27 = alloca [3 x %"any*"], align 16
|
||||
%taddr35 = alloca i32, align 4
|
||||
%varargslots36 = alloca [3 x %"any*"], align 16
|
||||
%taddr39 = alloca i32, align 4
|
||||
%taddr43 = alloca i32, align 4
|
||||
%taddr45 = alloca i8, align 1
|
||||
%retparam46 = alloca i64, align 8
|
||||
%varargslots61 = alloca [3 x %"any*"], align 16
|
||||
%taddr63 = alloca i32, align 4
|
||||
%taddr66 = alloca i32, align 4
|
||||
%taddr69 = alloca i8, align 1
|
||||
%retparam70 = alloca i64, align 8
|
||||
%varargslots71 = alloca [3 x %"any*"], align 16
|
||||
%taddr73 = alloca i32, align 4
|
||||
%taddr76 = alloca i32, align 4
|
||||
%taddr79 = alloca i8, align 1
|
||||
%taddr48 = alloca i8, align 1
|
||||
%retparam50 = alloca i64, align 8
|
||||
%varargslots51 = alloca [3 x %"any*"], align 16
|
||||
%taddr62 = alloca i32, align 4
|
||||
%taddr74 = alloca i32, align 4
|
||||
%taddr78 = alloca i8, align 1
|
||||
%retparam80 = alloca i64, align 8
|
||||
%varargslots81 = alloca [3 x %"any*"], align 16
|
||||
%taddr89 = alloca i32, align 4
|
||||
%taddr97 = alloca i32, align 4
|
||||
%taddr99 = alloca i8, align 1
|
||||
%retparam100 = alloca i64, align 8
|
||||
%varargslots111 = alloca [3 x %"any*"], align 16
|
||||
%taddr113 = alloca i32, align 4
|
||||
%taddr116 = alloca i32, align 4
|
||||
%taddr120 = alloca i8, align 1
|
||||
%retparam122 = alloca i64, align 8
|
||||
%varargslots123 = alloca [3 x %"any*"], align 16
|
||||
%taddr126 = alloca i32, align 4
|
||||
%taddr130 = alloca i32, align 4
|
||||
%taddr135 = alloca i8, align 1
|
||||
%retparam137 = alloca i64, align 8
|
||||
%varargslots138 = alloca [3 x %"any*"], align 16
|
||||
%taddr149 = alloca i32, align 4
|
||||
%taddr161 = alloca i32, align 4
|
||||
%taddr165 = alloca i8, align 1
|
||||
%retparam167 = alloca i64, align 8
|
||||
store i64 0, ptr %x, align 8
|
||||
%zext = zext i32 %0 to i64
|
||||
%1 = and i64 %zext, 4294967295
|
||||
@@ -97,362 +97,349 @@ entry:
|
||||
store i64 %5, ptr %x, align 8
|
||||
call void @llvm.memcpy.p0.p0.i32(ptr align 8 %y, ptr align 8 @.__const, i32 16, i1 false)
|
||||
call void @llvm.memcpy.p0.p0.i32(ptr align 8 %d, ptr align 8 @.__const.1, i32 16, i1 false)
|
||||
%6 = getelementptr inbounds [8 x i8], ptr %b, i64 0, i64 0
|
||||
store i8 0, ptr %6, align 1
|
||||
%7 = getelementptr inbounds [8 x i8], ptr %b, i64 0, i64 1
|
||||
store i8 0, ptr %7, align 1
|
||||
%8 = getelementptr inbounds [8 x i8], ptr %b, i64 0, i64 2
|
||||
store i8 0, ptr %8, align 1
|
||||
%9 = getelementptr inbounds [8 x i8], ptr %b, i64 0, i64 3
|
||||
store i8 0, ptr %9, align 1
|
||||
%10 = getelementptr inbounds [8 x i8], ptr %b, i64 0, i64 4
|
||||
store i8 0, ptr %10, align 1
|
||||
%11 = getelementptr inbounds [8 x i8], ptr %b, i64 0, i64 5
|
||||
store i8 0, ptr %11, align 1
|
||||
%12 = getelementptr inbounds [8 x i8], ptr %b, i64 0, i64 6
|
||||
store i8 0, ptr %12, align 1
|
||||
%13 = getelementptr inbounds [8 x i8], ptr %b, i64 0, i64 7
|
||||
store i8 0, ptr %13, align 1
|
||||
%14 = getelementptr inbounds [8 x i8], ptr %b, i64 0, i64 0
|
||||
store i8 0, ptr %14, align 1
|
||||
%15 = getelementptr inbounds [8 x i8], ptr %b, i64 0, i64 1
|
||||
store i8 0, ptr %15, align 1
|
||||
%16 = getelementptr inbounds [8 x i8], ptr %b, i64 0, i64 2
|
||||
store i8 0, ptr %16, align 1
|
||||
%17 = getelementptr inbounds [8 x i8], ptr %b, i64 0, i64 3
|
||||
store i8 0, ptr %17, align 1
|
||||
%18 = getelementptr inbounds [8 x i8], ptr %b, i64 0, i64 4
|
||||
store i8 0, ptr %18, align 1
|
||||
%19 = getelementptr inbounds [8 x i8], ptr %b, i64 0, i64 5
|
||||
store i8 0, ptr %19, align 1
|
||||
%20 = getelementptr inbounds [8 x i8], ptr %b, i64 0, i64 6
|
||||
store i8 0, ptr %20, align 1
|
||||
%21 = getelementptr inbounds [8 x i8], ptr %b, i64 0, i64 7
|
||||
store i8 0, ptr %21, align 1
|
||||
%22 = getelementptr inbounds [8 x i8], ptr %b, i64 0, i64 0
|
||||
store i8 0, ptr %b, align 1
|
||||
%ptradd = getelementptr inbounds i8, ptr %b, i64 1
|
||||
store i8 0, ptr %ptradd, align 1
|
||||
%ptradd2 = getelementptr inbounds i8, ptr %b, i64 2
|
||||
store i8 0, ptr %ptradd2, align 1
|
||||
%ptradd3 = getelementptr inbounds i8, ptr %b, i64 3
|
||||
store i8 0, ptr %ptradd3, align 1
|
||||
%ptradd4 = getelementptr inbounds i8, ptr %b, i64 4
|
||||
store i8 0, ptr %ptradd4, align 1
|
||||
%ptradd5 = getelementptr inbounds i8, ptr %b, i64 5
|
||||
store i8 0, ptr %ptradd5, align 1
|
||||
%ptradd6 = getelementptr inbounds i8, ptr %b, i64 6
|
||||
store i8 0, ptr %ptradd6, align 1
|
||||
%ptradd7 = getelementptr inbounds i8, ptr %b, i64 7
|
||||
store i8 0, ptr %ptradd7, align 1
|
||||
store i8 0, ptr %b, align 1
|
||||
%ptradd8 = getelementptr inbounds i8, ptr %b, i64 1
|
||||
store i8 0, ptr %ptradd8, align 1
|
||||
%ptradd9 = getelementptr inbounds i8, ptr %b, i64 2
|
||||
store i8 0, ptr %ptradd9, align 1
|
||||
%ptradd10 = getelementptr inbounds i8, ptr %b, i64 3
|
||||
store i8 0, ptr %ptradd10, align 1
|
||||
%ptradd11 = getelementptr inbounds i8, ptr %b, i64 4
|
||||
store i8 0, ptr %ptradd11, align 1
|
||||
%ptradd12 = getelementptr inbounds i8, ptr %b, i64 5
|
||||
store i8 0, ptr %ptradd12, align 1
|
||||
%ptradd13 = getelementptr inbounds i8, ptr %b, i64 6
|
||||
store i8 0, ptr %ptradd13, align 1
|
||||
%ptradd14 = getelementptr inbounds i8, ptr %b, i64 7
|
||||
store i8 0, ptr %ptradd14, align 1
|
||||
%trunc = trunc i32 %0 to i8
|
||||
store i8 %trunc, ptr %22, align 1
|
||||
store i8 %trunc, ptr %b, align 1
|
||||
%lshrl = lshr i32 %0, 8
|
||||
%23 = getelementptr inbounds [8 x i8], ptr %b, i64 0, i64 1
|
||||
%trunc2 = trunc i32 %lshrl to i8
|
||||
store i8 %trunc2, ptr %23, align 1
|
||||
%lshrl3 = lshr i32 %lshrl, 8
|
||||
%24 = getelementptr inbounds [8 x i8], ptr %b, i64 0, i64 2
|
||||
%trunc4 = trunc i32 %lshrl3 to i8
|
||||
store i8 %trunc4, ptr %24, align 1
|
||||
%lshrl5 = lshr i32 %lshrl3, 8
|
||||
%25 = getelementptr inbounds [8 x i8], ptr %b, i64 0, i64 3
|
||||
%trunc6 = trunc i32 %lshrl5 to i8
|
||||
store i8 %trunc6, ptr %25, align 1
|
||||
%lshrl7 = lshr i32 %lshrl5, 8
|
||||
%lt8 = icmp slt i32 %0, 100
|
||||
%26 = zext i1 %lt8 to i8
|
||||
%shl9 = shl i8 %26, 7
|
||||
%27 = getelementptr inbounds [8 x i8], ptr %b, i64 0, i64 7
|
||||
%28 = load i8, ptr %27, align 1
|
||||
%29 = and i8 %28, 127
|
||||
%30 = or i8 %29, %shl9
|
||||
store i8 %30, ptr %27, align 1
|
||||
%31 = load i64, ptr %x, align 8
|
||||
%32 = and i64 4294967295, %31
|
||||
%trunc10 = trunc i64 %32 to i32
|
||||
store i32 %trunc10, ptr %taddr, align 4
|
||||
%33 = insertvalue %"any*" undef, ptr %taddr, 0
|
||||
%34 = insertvalue %"any*" %33, i64 ptrtoint (ptr @"$ct.uint" to i64), 1
|
||||
%35 = getelementptr inbounds [3 x %"any*"], ptr %varargslots, i64 0, i64 0
|
||||
store %"any*" %34, ptr %35, align 16
|
||||
%36 = load i64, ptr %x, align 8
|
||||
%lshrl11 = lshr i64 %36, 32
|
||||
%37 = and i64 2147483647, %lshrl11
|
||||
%trunc12 = trunc i64 %37 to i32
|
||||
store i32 %trunc12, ptr %taddr13, align 4
|
||||
%38 = insertvalue %"any*" undef, ptr %taddr13, 0
|
||||
%39 = insertvalue %"any*" %38, i64 ptrtoint (ptr @"$ct.uint" to i64), 1
|
||||
%40 = getelementptr inbounds [3 x %"any*"], ptr %varargslots, i64 0, i64 1
|
||||
store %"any*" %39, ptr %40, align 16
|
||||
%41 = load i64, ptr %x, align 8
|
||||
%lshrl14 = lshr i64 %41, 63
|
||||
%42 = and i64 1, %lshrl14
|
||||
%trunc15 = trunc i64 %42 to i8
|
||||
store i8 %trunc15, ptr %taddr16, align 1
|
||||
%43 = insertvalue %"any*" undef, ptr %taddr16, 0
|
||||
%44 = insertvalue %"any*" %43, i64 ptrtoint (ptr @"$ct.bool" to i64), 1
|
||||
%45 = getelementptr inbounds [3 x %"any*"], ptr %varargslots, i64 0, i64 2
|
||||
store %"any*" %44, ptr %45, align 16
|
||||
%46 = call i64 @std.io.printfn(ptr %retparam, ptr @.str, i64 8, ptr %varargslots, i64 3)
|
||||
%47 = getelementptr inbounds %Abc, ptr %y, i32 0, i32 1
|
||||
%48 = load i64, ptr %47, align 8
|
||||
%49 = and i64 4294967295, %48
|
||||
%trunc18 = trunc i64 %49 to i32
|
||||
store i32 %trunc18, ptr %taddr19, align 4
|
||||
%50 = insertvalue %"any*" undef, ptr %taddr19, 0
|
||||
%51 = insertvalue %"any*" %50, i64 ptrtoint (ptr @"$ct.uint" to i64), 1
|
||||
%52 = getelementptr inbounds [3 x %"any*"], ptr %varargslots17, i64 0, i64 0
|
||||
store %"any*" %51, ptr %52, align 16
|
||||
%53 = getelementptr inbounds %Abc, ptr %y, i32 0, i32 1
|
||||
%54 = load i64, ptr %53, align 8
|
||||
%lshrl20 = lshr i64 %54, 32
|
||||
%55 = and i64 2147483647, %lshrl20
|
||||
%trunc21 = trunc i64 %55 to i32
|
||||
store i32 %trunc21, ptr %taddr22, align 4
|
||||
%56 = insertvalue %"any*" undef, ptr %taddr22, 0
|
||||
%57 = insertvalue %"any*" %56, i64 ptrtoint (ptr @"$ct.uint" to i64), 1
|
||||
%58 = getelementptr inbounds [3 x %"any*"], ptr %varargslots17, i64 0, i64 1
|
||||
store %"any*" %57, ptr %58, align 16
|
||||
%59 = getelementptr inbounds %Abc, ptr %y, i32 0, i32 1
|
||||
%60 = load i64, ptr %59, align 8
|
||||
%lshrl23 = lshr i64 %60, 63
|
||||
%61 = and i64 1, %lshrl23
|
||||
%trunc24 = trunc i64 %61 to i8
|
||||
store i8 %trunc24, ptr %taddr25, align 1
|
||||
%62 = insertvalue %"any*" undef, ptr %taddr25, 0
|
||||
%63 = insertvalue %"any*" %62, i64 ptrtoint (ptr @"$ct.bool" to i64), 1
|
||||
%64 = getelementptr inbounds [3 x %"any*"], ptr %varargslots17, i64 0, i64 2
|
||||
store %"any*" %63, ptr %64, align 16
|
||||
%65 = call i64 @std.io.printfn(ptr %retparam26, ptr @.str.2, i64 8, ptr %varargslots17, i64 3)
|
||||
%66 = getelementptr inbounds [8 x i8], ptr %b, i64 0, i64 0
|
||||
%67 = load i8, ptr %66, align 1
|
||||
%zext28 = zext i8 %67 to i32
|
||||
%68 = getelementptr inbounds [8 x i8], ptr %b, i64 0, i64 1
|
||||
%69 = load i8, ptr %68, align 1
|
||||
%zext29 = zext i8 %69 to i32
|
||||
%shl30 = shl i32 %zext29, 8
|
||||
%70 = or i32 %shl30, %zext28
|
||||
%71 = getelementptr inbounds [8 x i8], ptr %b, i64 0, i64 2
|
||||
%72 = load i8, ptr %71, align 1
|
||||
%zext31 = zext i8 %72 to i32
|
||||
%shl32 = shl i32 %zext31, 16
|
||||
%73 = or i32 %shl32, %70
|
||||
%74 = getelementptr inbounds [8 x i8], ptr %b, i64 0, i64 3
|
||||
%75 = load i8, ptr %74, align 1
|
||||
%zext33 = zext i8 %75 to i32
|
||||
%shl34 = shl i32 %zext33, 24
|
||||
%76 = or i32 %shl34, %73
|
||||
store i32 %76, ptr %taddr35, align 4
|
||||
%77 = insertvalue %"any*" undef, ptr %taddr35, 0
|
||||
%78 = insertvalue %"any*" %77, i64 ptrtoint (ptr @"$ct.uint" to i64), 1
|
||||
%79 = getelementptr inbounds [3 x %"any*"], ptr %varargslots27, i64 0, i64 0
|
||||
store %"any*" %78, ptr %79, align 16
|
||||
%80 = getelementptr inbounds [8 x i8], ptr %b, i64 0, i64 4
|
||||
%81 = load i8, ptr %80, align 1
|
||||
%zext36 = zext i8 %81 to i32
|
||||
%82 = getelementptr inbounds [8 x i8], ptr %b, i64 0, i64 5
|
||||
%83 = load i8, ptr %82, align 1
|
||||
%zext37 = zext i8 %83 to i32
|
||||
%shl38 = shl i32 %zext37, 8
|
||||
%84 = or i32 %shl38, %zext36
|
||||
%85 = getelementptr inbounds [8 x i8], ptr %b, i64 0, i64 6
|
||||
%86 = load i8, ptr %85, align 1
|
||||
%zext39 = zext i8 %86 to i32
|
||||
%shl40 = shl i32 %zext39, 16
|
||||
%87 = or i32 %shl40, %84
|
||||
%88 = getelementptr inbounds [8 x i8], ptr %b, i64 0, i64 7
|
||||
%89 = load i8, ptr %88, align 1
|
||||
%zext41 = zext i8 %89 to i32
|
||||
%shl42 = shl i32 %zext41, 24
|
||||
%90 = or i32 %shl42, %87
|
||||
%91 = and i32 2147483647, %90
|
||||
store i32 %91, ptr %taddr43, align 4
|
||||
%92 = insertvalue %"any*" undef, ptr %taddr43, 0
|
||||
%93 = insertvalue %"any*" %92, i64 ptrtoint (ptr @"$ct.uint" to i64), 1
|
||||
%94 = getelementptr inbounds [3 x %"any*"], ptr %varargslots27, i64 0, i64 1
|
||||
store %"any*" %93, ptr %94, align 16
|
||||
%95 = getelementptr inbounds [8 x i8], ptr %b, i64 0, i64 7
|
||||
%96 = load i8, ptr %95, align 1
|
||||
%lshrl44 = lshr i8 %96, 7
|
||||
%97 = trunc i8 %lshrl44 to i1
|
||||
%98 = zext i1 %97 to i8
|
||||
store i8 %98, ptr %taddr45, align 1
|
||||
%99 = insertvalue %"any*" undef, ptr %taddr45, 0
|
||||
%100 = insertvalue %"any*" %99, i64 ptrtoint (ptr @"$ct.bool" to i64), 1
|
||||
%101 = getelementptr inbounds [3 x %"any*"], ptr %varargslots27, i64 0, i64 2
|
||||
store %"any*" %100, ptr %101, align 16
|
||||
%102 = call i64 @std.io.printfn(ptr %retparam46, ptr @.str.3, i64 8, ptr %varargslots27, i64 3)
|
||||
%ptradd15 = getelementptr inbounds i8, ptr %b, i64 1
|
||||
%trunc16 = trunc i32 %lshrl to i8
|
||||
store i8 %trunc16, ptr %ptradd15, align 1
|
||||
%lshrl17 = lshr i32 %lshrl, 8
|
||||
%ptradd18 = getelementptr inbounds i8, ptr %b, i64 2
|
||||
%trunc19 = trunc i32 %lshrl17 to i8
|
||||
store i8 %trunc19, ptr %ptradd18, align 1
|
||||
%lshrl20 = lshr i32 %lshrl17, 8
|
||||
%ptradd21 = getelementptr inbounds i8, ptr %b, i64 3
|
||||
%trunc22 = trunc i32 %lshrl20 to i8
|
||||
store i8 %trunc22, ptr %ptradd21, align 1
|
||||
%lshrl23 = lshr i32 %lshrl20, 8
|
||||
%lt24 = icmp slt i32 %0, 100
|
||||
%6 = zext i1 %lt24 to i8
|
||||
%shl25 = shl i8 %6, 7
|
||||
%ptradd26 = getelementptr inbounds i8, ptr %b, i64 7
|
||||
%7 = load i8, ptr %ptradd26, align 1
|
||||
%8 = and i8 %7, 127
|
||||
%9 = or i8 %8, %shl25
|
||||
store i8 %9, ptr %ptradd26, align 1
|
||||
%10 = load i64, ptr %x, align 8
|
||||
%11 = and i64 4294967295, %10
|
||||
%trunc27 = trunc i64 %11 to i32
|
||||
store i32 %trunc27, ptr %taddr, align 4
|
||||
%12 = insertvalue %"any*" undef, ptr %taddr, 0
|
||||
%13 = insertvalue %"any*" %12, i64 ptrtoint (ptr @"$ct.uint" to i64), 1
|
||||
store %"any*" %13, ptr %varargslots, align 16
|
||||
%14 = load i64, ptr %x, align 8
|
||||
%lshrl28 = lshr i64 %14, 32
|
||||
%15 = and i64 2147483647, %lshrl28
|
||||
%trunc29 = trunc i64 %15 to i32
|
||||
store i32 %trunc29, ptr %taddr30, align 4
|
||||
%16 = insertvalue %"any*" undef, ptr %taddr30, 0
|
||||
%17 = insertvalue %"any*" %16, i64 ptrtoint (ptr @"$ct.uint" to i64), 1
|
||||
%ptradd31 = getelementptr inbounds i8, ptr %varargslots, i64 16
|
||||
store %"any*" %17, ptr %ptradd31, align 16
|
||||
%18 = load i64, ptr %x, align 8
|
||||
%lshrl32 = lshr i64 %18, 63
|
||||
%19 = and i64 1, %lshrl32
|
||||
%trunc33 = trunc i64 %19 to i8
|
||||
store i8 %trunc33, ptr %taddr34, align 1
|
||||
%20 = insertvalue %"any*" undef, ptr %taddr34, 0
|
||||
%21 = insertvalue %"any*" %20, i64 ptrtoint (ptr @"$ct.bool" to i64), 1
|
||||
%ptradd35 = getelementptr inbounds i8, ptr %varargslots, i64 32
|
||||
store %"any*" %21, ptr %ptradd35, align 16
|
||||
%22 = call i64 @std.io.printfn(ptr %retparam, ptr @.str, i64 8, ptr %varargslots, i64 3)
|
||||
%ptradd37 = getelementptr inbounds i8, ptr %y, i64 8
|
||||
%23 = load i64, ptr %ptradd37, align 8
|
||||
%24 = and i64 4294967295, %23
|
||||
%trunc38 = trunc i64 %24 to i32
|
||||
store i32 %trunc38, ptr %taddr39, align 4
|
||||
%25 = insertvalue %"any*" undef, ptr %taddr39, 0
|
||||
%26 = insertvalue %"any*" %25, i64 ptrtoint (ptr @"$ct.uint" to i64), 1
|
||||
store %"any*" %26, ptr %varargslots36, align 16
|
||||
%ptradd40 = getelementptr inbounds i8, ptr %y, i64 8
|
||||
%27 = load i64, ptr %ptradd40, align 8
|
||||
%lshrl41 = lshr i64 %27, 32
|
||||
%28 = and i64 2147483647, %lshrl41
|
||||
%trunc42 = trunc i64 %28 to i32
|
||||
store i32 %trunc42, ptr %taddr43, align 4
|
||||
%29 = insertvalue %"any*" undef, ptr %taddr43, 0
|
||||
%30 = insertvalue %"any*" %29, i64 ptrtoint (ptr @"$ct.uint" to i64), 1
|
||||
%ptradd44 = getelementptr inbounds i8, ptr %varargslots36, i64 16
|
||||
store %"any*" %30, ptr %ptradd44, align 16
|
||||
%ptradd45 = getelementptr inbounds i8, ptr %y, i64 8
|
||||
%31 = load i64, ptr %ptradd45, align 8
|
||||
%lshrl46 = lshr i64 %31, 63
|
||||
%32 = and i64 1, %lshrl46
|
||||
%trunc47 = trunc i64 %32 to i8
|
||||
store i8 %trunc47, ptr %taddr48, align 1
|
||||
%33 = insertvalue %"any*" undef, ptr %taddr48, 0
|
||||
%34 = insertvalue %"any*" %33, i64 ptrtoint (ptr @"$ct.bool" to i64), 1
|
||||
%ptradd49 = getelementptr inbounds i8, ptr %varargslots36, i64 32
|
||||
store %"any*" %34, ptr %ptradd49, align 16
|
||||
%35 = call i64 @std.io.printfn(ptr %retparam50, ptr @.str.2, i64 8, ptr %varargslots36, i64 3)
|
||||
%36 = load i8, ptr %b, align 1
|
||||
%zext52 = zext i8 %36 to i32
|
||||
%ptradd53 = getelementptr inbounds i8, ptr %b, i64 1
|
||||
%37 = load i8, ptr %ptradd53, align 1
|
||||
%zext54 = zext i8 %37 to i32
|
||||
%shl55 = shl i32 %zext54, 8
|
||||
%38 = or i32 %shl55, %zext52
|
||||
%ptradd56 = getelementptr inbounds i8, ptr %b, i64 2
|
||||
%39 = load i8, ptr %ptradd56, align 1
|
||||
%zext57 = zext i8 %39 to i32
|
||||
%shl58 = shl i32 %zext57, 16
|
||||
%40 = or i32 %shl58, %38
|
||||
%ptradd59 = getelementptr inbounds i8, ptr %b, i64 3
|
||||
%41 = load i8, ptr %ptradd59, align 1
|
||||
%zext60 = zext i8 %41 to i32
|
||||
%shl61 = shl i32 %zext60, 24
|
||||
%42 = or i32 %shl61, %40
|
||||
store i32 %42, ptr %taddr62, align 4
|
||||
%43 = insertvalue %"any*" undef, ptr %taddr62, 0
|
||||
%44 = insertvalue %"any*" %43, i64 ptrtoint (ptr @"$ct.uint" to i64), 1
|
||||
store %"any*" %44, ptr %varargslots51, align 16
|
||||
%ptradd63 = getelementptr inbounds i8, ptr %b, i64 4
|
||||
%45 = load i8, ptr %ptradd63, align 1
|
||||
%zext64 = zext i8 %45 to i32
|
||||
%ptradd65 = getelementptr inbounds i8, ptr %b, i64 5
|
||||
%46 = load i8, ptr %ptradd65, align 1
|
||||
%zext66 = zext i8 %46 to i32
|
||||
%shl67 = shl i32 %zext66, 8
|
||||
%47 = or i32 %shl67, %zext64
|
||||
%ptradd68 = getelementptr inbounds i8, ptr %b, i64 6
|
||||
%48 = load i8, ptr %ptradd68, align 1
|
||||
%zext69 = zext i8 %48 to i32
|
||||
%shl70 = shl i32 %zext69, 16
|
||||
%49 = or i32 %shl70, %47
|
||||
%ptradd71 = getelementptr inbounds i8, ptr %b, i64 7
|
||||
%50 = load i8, ptr %ptradd71, align 1
|
||||
%zext72 = zext i8 %50 to i32
|
||||
%shl73 = shl i32 %zext72, 24
|
||||
%51 = or i32 %shl73, %49
|
||||
%52 = and i32 2147483647, %51
|
||||
store i32 %52, ptr %taddr74, align 4
|
||||
%53 = insertvalue %"any*" undef, ptr %taddr74, 0
|
||||
%54 = insertvalue %"any*" %53, i64 ptrtoint (ptr @"$ct.uint" to i64), 1
|
||||
%ptradd75 = getelementptr inbounds i8, ptr %varargslots51, i64 16
|
||||
store %"any*" %54, ptr %ptradd75, align 16
|
||||
%ptradd76 = getelementptr inbounds i8, ptr %b, i64 7
|
||||
%55 = load i8, ptr %ptradd76, align 1
|
||||
%lshrl77 = lshr i8 %55, 7
|
||||
%56 = trunc i8 %lshrl77 to i1
|
||||
%57 = zext i1 %56 to i8
|
||||
store i8 %57, ptr %taddr78, align 1
|
||||
%58 = insertvalue %"any*" undef, ptr %taddr78, 0
|
||||
%59 = insertvalue %"any*" %58, i64 ptrtoint (ptr @"$ct.bool" to i64), 1
|
||||
%ptradd79 = getelementptr inbounds i8, ptr %varargslots51, i64 32
|
||||
store %"any*" %59, ptr %ptradd79, align 16
|
||||
%60 = call i64 @std.io.printfn(ptr %retparam80, ptr @.str.3, i64 8, ptr %varargslots51, i64 3)
|
||||
%add = add i32 %0, 1
|
||||
%zext47 = zext i32 %add to i64
|
||||
%103 = and i64 %zext47, 4294967295
|
||||
%104 = and i64 %103, -9223372032559808513
|
||||
%105 = or i64 %104, 4294967296
|
||||
%zext81 = zext i32 %add to i64
|
||||
%61 = and i64 %zext81, 4294967295
|
||||
%62 = and i64 %61, -9223372032559808513
|
||||
%63 = or i64 %62, 4294967296
|
||||
%gt = icmp sgt i32 %0, 100
|
||||
%106 = zext i1 %gt to i8
|
||||
%zext48 = zext i8 %106 to i64
|
||||
%shl49 = shl i64 %zext48, 63
|
||||
%107 = and i64 %shl49, -9223372036854775808
|
||||
%108 = and i64 %105, 9223372036854775807
|
||||
%109 = or i64 %108, %107
|
||||
store i64 %109, ptr %x, align 8
|
||||
%110 = getelementptr inbounds %Abc, ptr %y, i32 0, i32 1
|
||||
store i64 -9223371989610135519, ptr %110, align 8
|
||||
%111 = getelementptr inbounds [8 x i8], ptr %b, i64 0, i64 0
|
||||
store i8 0, ptr %111, align 1
|
||||
%112 = getelementptr inbounds [8 x i8], ptr %b, i64 0, i64 1
|
||||
store i8 0, ptr %112, align 1
|
||||
%113 = getelementptr inbounds [8 x i8], ptr %b, i64 0, i64 2
|
||||
store i8 0, ptr %113, align 1
|
||||
%114 = getelementptr inbounds [8 x i8], ptr %b, i64 0, i64 3
|
||||
store i8 0, ptr %114, align 1
|
||||
%115 = getelementptr inbounds [8 x i8], ptr %b, i64 0, i64 4
|
||||
store i8 0, ptr %115, align 1
|
||||
%116 = getelementptr inbounds [8 x i8], ptr %b, i64 0, i64 5
|
||||
store i8 0, ptr %116, align 1
|
||||
%117 = getelementptr inbounds [8 x i8], ptr %b, i64 0, i64 6
|
||||
store i8 0, ptr %117, align 1
|
||||
%118 = getelementptr inbounds [8 x i8], ptr %b, i64 0, i64 7
|
||||
store i8 0, ptr %118, align 1
|
||||
%add50 = add i32 %0, 1
|
||||
%119 = getelementptr inbounds [8 x i8], ptr %b, i64 0, i64 0
|
||||
%trunc51 = trunc i32 %add50 to i8
|
||||
store i8 %trunc51, ptr %119, align 1
|
||||
%lshrl52 = lshr i32 %add50, 8
|
||||
%120 = getelementptr inbounds [8 x i8], ptr %b, i64 0, i64 1
|
||||
%trunc53 = trunc i32 %lshrl52 to i8
|
||||
store i8 %trunc53, ptr %120, align 1
|
||||
%lshrl54 = lshr i32 %lshrl52, 8
|
||||
%121 = getelementptr inbounds [8 x i8], ptr %b, i64 0, i64 2
|
||||
%trunc55 = trunc i32 %lshrl54 to i8
|
||||
store i8 %trunc55, ptr %121, align 1
|
||||
%lshrl56 = lshr i32 %lshrl54, 8
|
||||
%122 = getelementptr inbounds [8 x i8], ptr %b, i64 0, i64 3
|
||||
%trunc57 = trunc i32 %lshrl56 to i8
|
||||
store i8 %trunc57, ptr %122, align 1
|
||||
%lshrl58 = lshr i32 %lshrl56, 8
|
||||
%123 = getelementptr inbounds [8 x i8], ptr %b, i64 0, i64 4
|
||||
store i8 1, ptr %123, align 1
|
||||
%124 = getelementptr inbounds [8 x i8], ptr %b, i64 0, i64 5
|
||||
store i8 0, ptr %124, align 1
|
||||
%125 = getelementptr inbounds [8 x i8], ptr %b, i64 0, i64 6
|
||||
store i8 0, ptr %125, align 1
|
||||
%126 = getelementptr inbounds [8 x i8], ptr %b, i64 0, i64 7
|
||||
%127 = load i8, ptr %126, align 1
|
||||
%128 = and i8 %127, -128
|
||||
store i8 %128, ptr %126, align 1
|
||||
%gt59 = icmp sgt i32 %0, 100
|
||||
%129 = zext i1 %gt59 to i8
|
||||
%shl60 = shl i8 %129, 7
|
||||
%130 = getelementptr inbounds [8 x i8], ptr %b, i64 0, i64 7
|
||||
%131 = load i8, ptr %130, align 1
|
||||
%132 = and i8 %131, 127
|
||||
%133 = or i8 %132, %shl60
|
||||
store i8 %133, ptr %130, align 1
|
||||
%134 = load i64, ptr %x, align 8
|
||||
%135 = and i64 4294967295, %134
|
||||
%trunc62 = trunc i64 %135 to i32
|
||||
store i32 %trunc62, ptr %taddr63, align 4
|
||||
%136 = insertvalue %"any*" undef, ptr %taddr63, 0
|
||||
%137 = insertvalue %"any*" %136, i64 ptrtoint (ptr @"$ct.uint" to i64), 1
|
||||
%138 = getelementptr inbounds [3 x %"any*"], ptr %varargslots61, i64 0, i64 0
|
||||
store %"any*" %137, ptr %138, align 16
|
||||
%139 = load i64, ptr %x, align 8
|
||||
%lshrl64 = lshr i64 %139, 32
|
||||
%140 = and i64 2147483647, %lshrl64
|
||||
%trunc65 = trunc i64 %140 to i32
|
||||
store i32 %trunc65, ptr %taddr66, align 4
|
||||
%141 = insertvalue %"any*" undef, ptr %taddr66, 0
|
||||
%142 = insertvalue %"any*" %141, i64 ptrtoint (ptr @"$ct.uint" to i64), 1
|
||||
%143 = getelementptr inbounds [3 x %"any*"], ptr %varargslots61, i64 0, i64 1
|
||||
store %"any*" %142, ptr %143, align 16
|
||||
%144 = load i64, ptr %x, align 8
|
||||
%lshrl67 = lshr i64 %144, 63
|
||||
%145 = and i64 1, %lshrl67
|
||||
%trunc68 = trunc i64 %145 to i8
|
||||
store i8 %trunc68, ptr %taddr69, align 1
|
||||
%146 = insertvalue %"any*" undef, ptr %taddr69, 0
|
||||
%147 = insertvalue %"any*" %146, i64 ptrtoint (ptr @"$ct.bool" to i64), 1
|
||||
%148 = getelementptr inbounds [3 x %"any*"], ptr %varargslots61, i64 0, i64 2
|
||||
store %"any*" %147, ptr %148, align 16
|
||||
%149 = call i64 @std.io.printfn(ptr %retparam70, ptr @.str.4, i64 8, ptr %varargslots61, i64 3)
|
||||
%150 = getelementptr inbounds %Abc, ptr %y, i32 0, i32 1
|
||||
%151 = load i64, ptr %150, align 8
|
||||
%152 = and i64 4294967295, %151
|
||||
%trunc72 = trunc i64 %152 to i32
|
||||
store i32 %trunc72, ptr %taddr73, align 4
|
||||
%153 = insertvalue %"any*" undef, ptr %taddr73, 0
|
||||
%154 = insertvalue %"any*" %153, i64 ptrtoint (ptr @"$ct.uint" to i64), 1
|
||||
%155 = getelementptr inbounds [3 x %"any*"], ptr %varargslots71, i64 0, i64 0
|
||||
store %"any*" %154, ptr %155, align 16
|
||||
%156 = getelementptr inbounds %Abc, ptr %y, i32 0, i32 1
|
||||
%157 = load i64, ptr %156, align 8
|
||||
%lshrl74 = lshr i64 %157, 32
|
||||
%158 = and i64 2147483647, %lshrl74
|
||||
%trunc75 = trunc i64 %158 to i32
|
||||
store i32 %trunc75, ptr %taddr76, align 4
|
||||
%159 = insertvalue %"any*" undef, ptr %taddr76, 0
|
||||
%160 = insertvalue %"any*" %159, i64 ptrtoint (ptr @"$ct.uint" to i64), 1
|
||||
%161 = getelementptr inbounds [3 x %"any*"], ptr %varargslots71, i64 0, i64 1
|
||||
store %"any*" %160, ptr %161, align 16
|
||||
%162 = getelementptr inbounds %Abc, ptr %y, i32 0, i32 1
|
||||
%163 = load i64, ptr %162, align 8
|
||||
%lshrl77 = lshr i64 %163, 63
|
||||
%164 = and i64 1, %lshrl77
|
||||
%trunc78 = trunc i64 %164 to i8
|
||||
store i8 %trunc78, ptr %taddr79, align 1
|
||||
%165 = insertvalue %"any*" undef, ptr %taddr79, 0
|
||||
%166 = insertvalue %"any*" %165, i64 ptrtoint (ptr @"$ct.bool" to i64), 1
|
||||
%167 = getelementptr inbounds [3 x %"any*"], ptr %varargslots71, i64 0, i64 2
|
||||
store %"any*" %166, ptr %167, align 16
|
||||
%168 = call i64 @std.io.printfn(ptr %retparam80, ptr @.str.5, i64 8, ptr %varargslots71, i64 3)
|
||||
%169 = getelementptr inbounds [8 x i8], ptr %b, i64 0, i64 0
|
||||
%170 = load i8, ptr %169, align 1
|
||||
%zext82 = zext i8 %170 to i32
|
||||
%171 = getelementptr inbounds [8 x i8], ptr %b, i64 0, i64 1
|
||||
%172 = load i8, ptr %171, align 1
|
||||
%zext83 = zext i8 %172 to i32
|
||||
%shl84 = shl i32 %zext83, 8
|
||||
%173 = or i32 %shl84, %zext82
|
||||
%174 = getelementptr inbounds [8 x i8], ptr %b, i64 0, i64 2
|
||||
%175 = load i8, ptr %174, align 1
|
||||
%zext85 = zext i8 %175 to i32
|
||||
%shl86 = shl i32 %zext85, 16
|
||||
%176 = or i32 %shl86, %173
|
||||
%177 = getelementptr inbounds [8 x i8], ptr %b, i64 0, i64 3
|
||||
%178 = load i8, ptr %177, align 1
|
||||
%zext87 = zext i8 %178 to i32
|
||||
%shl88 = shl i32 %zext87, 24
|
||||
%179 = or i32 %shl88, %176
|
||||
store i32 %179, ptr %taddr89, align 4
|
||||
%180 = insertvalue %"any*" undef, ptr %taddr89, 0
|
||||
%181 = insertvalue %"any*" %180, i64 ptrtoint (ptr @"$ct.uint" to i64), 1
|
||||
%182 = getelementptr inbounds [3 x %"any*"], ptr %varargslots81, i64 0, i64 0
|
||||
store %"any*" %181, ptr %182, align 16
|
||||
%183 = getelementptr inbounds [8 x i8], ptr %b, i64 0, i64 4
|
||||
%184 = load i8, ptr %183, align 1
|
||||
%zext90 = zext i8 %184 to i32
|
||||
%185 = getelementptr inbounds [8 x i8], ptr %b, i64 0, i64 5
|
||||
%186 = load i8, ptr %185, align 1
|
||||
%zext91 = zext i8 %186 to i32
|
||||
%shl92 = shl i32 %zext91, 8
|
||||
%187 = or i32 %shl92, %zext90
|
||||
%188 = getelementptr inbounds [8 x i8], ptr %b, i64 0, i64 6
|
||||
%189 = load i8, ptr %188, align 1
|
||||
%zext93 = zext i8 %189 to i32
|
||||
%shl94 = shl i32 %zext93, 16
|
||||
%190 = or i32 %shl94, %187
|
||||
%191 = getelementptr inbounds [8 x i8], ptr %b, i64 0, i64 7
|
||||
%192 = load i8, ptr %191, align 1
|
||||
%zext95 = zext i8 %192 to i32
|
||||
%shl96 = shl i32 %zext95, 24
|
||||
%193 = or i32 %shl96, %190
|
||||
%194 = and i32 2147483647, %193
|
||||
store i32 %194, ptr %taddr97, align 4
|
||||
%195 = insertvalue %"any*" undef, ptr %taddr97, 0
|
||||
%196 = insertvalue %"any*" %195, i64 ptrtoint (ptr @"$ct.uint" to i64), 1
|
||||
%197 = getelementptr inbounds [3 x %"any*"], ptr %varargslots81, i64 0, i64 1
|
||||
store %"any*" %196, ptr %197, align 16
|
||||
%198 = getelementptr inbounds [8 x i8], ptr %b, i64 0, i64 7
|
||||
%199 = load i8, ptr %198, align 1
|
||||
%lshrl98 = lshr i8 %199, 7
|
||||
%200 = trunc i8 %lshrl98 to i1
|
||||
%201 = zext i1 %200 to i8
|
||||
store i8 %201, ptr %taddr99, align 1
|
||||
%202 = insertvalue %"any*" undef, ptr %taddr99, 0
|
||||
%203 = insertvalue %"any*" %202, i64 ptrtoint (ptr @"$ct.bool" to i64), 1
|
||||
%204 = getelementptr inbounds [3 x %"any*"], ptr %varargslots81, i64 0, i64 2
|
||||
store %"any*" %203, ptr %204, align 16
|
||||
%205 = call i64 @std.io.printfn(ptr %retparam100, ptr @.str.6, i64 8, ptr %varargslots81, i64 3)
|
||||
%64 = zext i1 %gt to i8
|
||||
%zext82 = zext i8 %64 to i64
|
||||
%shl83 = shl i64 %zext82, 63
|
||||
%65 = and i64 %shl83, -9223372036854775808
|
||||
%66 = and i64 %63, 9223372036854775807
|
||||
%67 = or i64 %66, %65
|
||||
store i64 %67, ptr %x, align 8
|
||||
%ptradd84 = getelementptr inbounds i8, ptr %y, i64 8
|
||||
store i64 -9223371989610135519, ptr %ptradd84, align 8
|
||||
store i8 0, ptr %b, align 1
|
||||
%ptradd85 = getelementptr inbounds i8, ptr %b, i64 1
|
||||
store i8 0, ptr %ptradd85, align 1
|
||||
%ptradd86 = getelementptr inbounds i8, ptr %b, i64 2
|
||||
store i8 0, ptr %ptradd86, align 1
|
||||
%ptradd87 = getelementptr inbounds i8, ptr %b, i64 3
|
||||
store i8 0, ptr %ptradd87, align 1
|
||||
%ptradd88 = getelementptr inbounds i8, ptr %b, i64 4
|
||||
store i8 0, ptr %ptradd88, align 1
|
||||
%ptradd89 = getelementptr inbounds i8, ptr %b, i64 5
|
||||
store i8 0, ptr %ptradd89, align 1
|
||||
%ptradd90 = getelementptr inbounds i8, ptr %b, i64 6
|
||||
store i8 0, ptr %ptradd90, align 1
|
||||
%ptradd91 = getelementptr inbounds i8, ptr %b, i64 7
|
||||
store i8 0, ptr %ptradd91, align 1
|
||||
%add92 = add i32 %0, 1
|
||||
%trunc93 = trunc i32 %add92 to i8
|
||||
store i8 %trunc93, ptr %b, align 1
|
||||
%lshrl94 = lshr i32 %add92, 8
|
||||
%ptradd95 = getelementptr inbounds i8, ptr %b, i64 1
|
||||
%trunc96 = trunc i32 %lshrl94 to i8
|
||||
store i8 %trunc96, ptr %ptradd95, align 1
|
||||
%lshrl97 = lshr i32 %lshrl94, 8
|
||||
%ptradd98 = getelementptr inbounds i8, ptr %b, i64 2
|
||||
%trunc99 = trunc i32 %lshrl97 to i8
|
||||
store i8 %trunc99, ptr %ptradd98, align 1
|
||||
%lshrl100 = lshr i32 %lshrl97, 8
|
||||
%ptradd101 = getelementptr inbounds i8, ptr %b, i64 3
|
||||
%trunc102 = trunc i32 %lshrl100 to i8
|
||||
store i8 %trunc102, ptr %ptradd101, align 1
|
||||
%lshrl103 = lshr i32 %lshrl100, 8
|
||||
%ptradd104 = getelementptr inbounds i8, ptr %b, i64 4
|
||||
store i8 1, ptr %ptradd104, align 1
|
||||
%ptradd105 = getelementptr inbounds i8, ptr %b, i64 5
|
||||
store i8 0, ptr %ptradd105, align 1
|
||||
%ptradd106 = getelementptr inbounds i8, ptr %b, i64 6
|
||||
store i8 0, ptr %ptradd106, align 1
|
||||
%ptradd107 = getelementptr inbounds i8, ptr %b, i64 7
|
||||
%68 = load i8, ptr %ptradd107, align 1
|
||||
%69 = and i8 %68, -128
|
||||
store i8 %69, ptr %ptradd107, align 1
|
||||
%gt108 = icmp sgt i32 %0, 100
|
||||
%70 = zext i1 %gt108 to i8
|
||||
%shl109 = shl i8 %70, 7
|
||||
%ptradd110 = getelementptr inbounds i8, ptr %b, i64 7
|
||||
%71 = load i8, ptr %ptradd110, align 1
|
||||
%72 = and i8 %71, 127
|
||||
%73 = or i8 %72, %shl109
|
||||
store i8 %73, ptr %ptradd110, align 1
|
||||
%74 = load i64, ptr %x, align 8
|
||||
%75 = and i64 4294967295, %74
|
||||
%trunc112 = trunc i64 %75 to i32
|
||||
store i32 %trunc112, ptr %taddr113, align 4
|
||||
%76 = insertvalue %"any*" undef, ptr %taddr113, 0
|
||||
%77 = insertvalue %"any*" %76, i64 ptrtoint (ptr @"$ct.uint" to i64), 1
|
||||
store %"any*" %77, ptr %varargslots111, align 16
|
||||
%78 = load i64, ptr %x, align 8
|
||||
%lshrl114 = lshr i64 %78, 32
|
||||
%79 = and i64 2147483647, %lshrl114
|
||||
%trunc115 = trunc i64 %79 to i32
|
||||
store i32 %trunc115, ptr %taddr116, align 4
|
||||
%80 = insertvalue %"any*" undef, ptr %taddr116, 0
|
||||
%81 = insertvalue %"any*" %80, i64 ptrtoint (ptr @"$ct.uint" to i64), 1
|
||||
%ptradd117 = getelementptr inbounds i8, ptr %varargslots111, i64 16
|
||||
store %"any*" %81, ptr %ptradd117, align 16
|
||||
%82 = load i64, ptr %x, align 8
|
||||
%lshrl118 = lshr i64 %82, 63
|
||||
%83 = and i64 1, %lshrl118
|
||||
%trunc119 = trunc i64 %83 to i8
|
||||
store i8 %trunc119, ptr %taddr120, align 1
|
||||
%84 = insertvalue %"any*" undef, ptr %taddr120, 0
|
||||
%85 = insertvalue %"any*" %84, i64 ptrtoint (ptr @"$ct.bool" to i64), 1
|
||||
%ptradd121 = getelementptr inbounds i8, ptr %varargslots111, i64 32
|
||||
store %"any*" %85, ptr %ptradd121, align 16
|
||||
%86 = call i64 @std.io.printfn(ptr %retparam122, ptr @.str.4, i64 8, ptr %varargslots111, i64 3)
|
||||
%ptradd124 = getelementptr inbounds i8, ptr %y, i64 8
|
||||
%87 = load i64, ptr %ptradd124, align 8
|
||||
%88 = and i64 4294967295, %87
|
||||
%trunc125 = trunc i64 %88 to i32
|
||||
store i32 %trunc125, ptr %taddr126, align 4
|
||||
%89 = insertvalue %"any*" undef, ptr %taddr126, 0
|
||||
%90 = insertvalue %"any*" %89, i64 ptrtoint (ptr @"$ct.uint" to i64), 1
|
||||
store %"any*" %90, ptr %varargslots123, align 16
|
||||
%ptradd127 = getelementptr inbounds i8, ptr %y, i64 8
|
||||
%91 = load i64, ptr %ptradd127, align 8
|
||||
%lshrl128 = lshr i64 %91, 32
|
||||
%92 = and i64 2147483647, %lshrl128
|
||||
%trunc129 = trunc i64 %92 to i32
|
||||
store i32 %trunc129, ptr %taddr130, align 4
|
||||
%93 = insertvalue %"any*" undef, ptr %taddr130, 0
|
||||
%94 = insertvalue %"any*" %93, i64 ptrtoint (ptr @"$ct.uint" to i64), 1
|
||||
%ptradd131 = getelementptr inbounds i8, ptr %varargslots123, i64 16
|
||||
store %"any*" %94, ptr %ptradd131, align 16
|
||||
%ptradd132 = getelementptr inbounds i8, ptr %y, i64 8
|
||||
%95 = load i64, ptr %ptradd132, align 8
|
||||
%lshrl133 = lshr i64 %95, 63
|
||||
%96 = and i64 1, %lshrl133
|
||||
%trunc134 = trunc i64 %96 to i8
|
||||
store i8 %trunc134, ptr %taddr135, align 1
|
||||
%97 = insertvalue %"any*" undef, ptr %taddr135, 0
|
||||
%98 = insertvalue %"any*" %97, i64 ptrtoint (ptr @"$ct.bool" to i64), 1
|
||||
%ptradd136 = getelementptr inbounds i8, ptr %varargslots123, i64 32
|
||||
store %"any*" %98, ptr %ptradd136, align 16
|
||||
%99 = call i64 @std.io.printfn(ptr %retparam137, ptr @.str.5, i64 8, ptr %varargslots123, i64 3)
|
||||
%100 = load i8, ptr %b, align 1
|
||||
%zext139 = zext i8 %100 to i32
|
||||
%ptradd140 = getelementptr inbounds i8, ptr %b, i64 1
|
||||
%101 = load i8, ptr %ptradd140, align 1
|
||||
%zext141 = zext i8 %101 to i32
|
||||
%shl142 = shl i32 %zext141, 8
|
||||
%102 = or i32 %shl142, %zext139
|
||||
%ptradd143 = getelementptr inbounds i8, ptr %b, i64 2
|
||||
%103 = load i8, ptr %ptradd143, align 1
|
||||
%zext144 = zext i8 %103 to i32
|
||||
%shl145 = shl i32 %zext144, 16
|
||||
%104 = or i32 %shl145, %102
|
||||
%ptradd146 = getelementptr inbounds i8, ptr %b, i64 3
|
||||
%105 = load i8, ptr %ptradd146, align 1
|
||||
%zext147 = zext i8 %105 to i32
|
||||
%shl148 = shl i32 %zext147, 24
|
||||
%106 = or i32 %shl148, %104
|
||||
store i32 %106, ptr %taddr149, align 4
|
||||
%107 = insertvalue %"any*" undef, ptr %taddr149, 0
|
||||
%108 = insertvalue %"any*" %107, i64 ptrtoint (ptr @"$ct.uint" to i64), 1
|
||||
store %"any*" %108, ptr %varargslots138, align 16
|
||||
%ptradd150 = getelementptr inbounds i8, ptr %b, i64 4
|
||||
%109 = load i8, ptr %ptradd150, align 1
|
||||
%zext151 = zext i8 %109 to i32
|
||||
%ptradd152 = getelementptr inbounds i8, ptr %b, i64 5
|
||||
%110 = load i8, ptr %ptradd152, align 1
|
||||
%zext153 = zext i8 %110 to i32
|
||||
%shl154 = shl i32 %zext153, 8
|
||||
%111 = or i32 %shl154, %zext151
|
||||
%ptradd155 = getelementptr inbounds i8, ptr %b, i64 6
|
||||
%112 = load i8, ptr %ptradd155, align 1
|
||||
%zext156 = zext i8 %112 to i32
|
||||
%shl157 = shl i32 %zext156, 16
|
||||
%113 = or i32 %shl157, %111
|
||||
%ptradd158 = getelementptr inbounds i8, ptr %b, i64 7
|
||||
%114 = load i8, ptr %ptradd158, align 1
|
||||
%zext159 = zext i8 %114 to i32
|
||||
%shl160 = shl i32 %zext159, 24
|
||||
%115 = or i32 %shl160, %113
|
||||
%116 = and i32 2147483647, %115
|
||||
store i32 %116, ptr %taddr161, align 4
|
||||
%117 = insertvalue %"any*" undef, ptr %taddr161, 0
|
||||
%118 = insertvalue %"any*" %117, i64 ptrtoint (ptr @"$ct.uint" to i64), 1
|
||||
%ptradd162 = getelementptr inbounds i8, ptr %varargslots138, i64 16
|
||||
store %"any*" %118, ptr %ptradd162, align 16
|
||||
%ptradd163 = getelementptr inbounds i8, ptr %b, i64 7
|
||||
%119 = load i8, ptr %ptradd163, align 1
|
||||
%lshrl164 = lshr i8 %119, 7
|
||||
%120 = trunc i8 %lshrl164 to i1
|
||||
%121 = zext i1 %120 to i8
|
||||
store i8 %121, ptr %taddr165, align 1
|
||||
%122 = insertvalue %"any*" undef, ptr %taddr165, 0
|
||||
%123 = insertvalue %"any*" %122, i64 ptrtoint (ptr @"$ct.bool" to i64), 1
|
||||
%ptradd166 = getelementptr inbounds i8, ptr %varargslots138, i64 32
|
||||
store %"any*" %123, ptr %ptradd166, align 16
|
||||
%124 = call i64 @std.io.printfn(ptr %retparam167, ptr @.str.6, i64 8, ptr %varargslots138, i64 3)
|
||||
ret void
|
||||
}
|
||||
|
||||
|
||||
; Function Attrs:
|
||||
define void @test.main() #0 {
|
||||
entry:
|
||||
call void @test.hello(i32 12)
|
||||
|
||||
Reference in New Issue
Block a user