fix(ir): reflection builtins on an Any read its runtime tag, not payload [F0.8]

`type_name` / `type_is_unsigned` on an `Any` argument unconditionally read
the Any's payload as a TypeId index. That is correct only when the Any holds
a Type value (`{ .any, tid }`); for an Any holding a runtime *value*
(`av : Any = 6`, tag s64, payload 6) it returned `types[6]` — `type_name(av)`
gave "u8" and `type_is_unsigned(av)` gave true.

Both backends now branch on the Any's runtime type-tag: tag == `.any` → the
box is a Type value, use the payload as the TypeId; otherwise the tag IS the
held value's type. So `type_name(av)` → "s64", `type_is_unsigned(av)` → false,
while `type_name(type_of(x))` still names the held type. The `{}` formatter is
unchanged (it already passed `type_of(val)`, a proper Type value).

- src/ir/interp.zig: shared `Value.reflectTypeId` tag-branching resolver; the
  `type_name` / `type_is_unsigned` interp arms route through it.
- src/backend/llvm/ops.zig: shared `Ops.reflectArgTypeId` emits
  extractvalue-tag / icmp-eq-.any / select for the runtime path; both
  reflection arms route through it. The two backends agree.
- examples/0164-types-reflection-any-tag.sx: regression pinning type_name /
  type_is_unsigned / print on an Any holding a value vs a Type.
- src/ir/interp.test.zig: unit test for `reflectTypeId`.
- 22 .ir snapshots: the new select appears in every std-importing program's
  IR (any_to_string embeds these builtins) — benign, verified structurally
  identical apart from the three new instructions.
- issues/0090, specs.md: documented the Any-tag rule.
This commit is contained in:
agra
2026-06-05 12:09:52 +03:00
parent b053c64149
commit 5f64ee4426
31 changed files with 3379 additions and 3105 deletions

View File

@@ -0,0 +1,43 @@
// Reflection builtins on an `Any` consult the Any's runtime TYPE-TAG,
// not its raw payload.
//
// An `Any` is both a type AND a value: it can hold a runtime *value*
// (whose runtime tag names the value's type) or a *Type value* (the
// `{ .any, tid }` shape `type_of` / a `Type` literal produce). A
// reflection builtin must branch on the tag:
// - holds a value → report the type OF that value (the tag).
// - holds a Type → name the held type (the payload).
//
// Regression (issue 0090, attempt 3): `type_name` / `type_is_unsigned`
// used to read an Any's payload as a TypeId index unconditionally, so
// `type_name(av)` for `av : Any = 6` returned `u8` (types[6]) and
// `type_is_unsigned(av)` returned true. Both now read the runtime tag.
#import "modules/std.sx";
main :: () {
// Any holding a VALUE — reflection names the value's type.
av : Any = 6; // 6 is s64
print("type_name(av)={}\n", type_name(av));
print("type_is_unsigned(av)={}\n", type_is_unsigned(av));
print("print(av)={}\n", av); // formatter already used the tag
u : u32 = 7;
au : Any = u;
print("type_name(au)={}\n", type_name(au));
print("type_is_unsigned(au)={}\n", type_is_unsigned(au));
print("print(au)={}\n", au);
sv : Any = "hi";
print("type_name(sv)={}\n", type_name(sv));
// Any holding a TYPE value — reflection names the held type.
x : u64 = 9;
at : Any = type_of(x);
print("type_name(at)={}\n", type_name(at));
print("type_is_unsigned(at)={}\n", type_is_unsigned(at));
print("print(at)={}\n", at);
// A direct runtime Type value is unchanged.
print("type_is_unsigned(type_of(x))={}\n", type_is_unsigned(type_of(x)));
}

View File

@@ -1247,8 +1247,11 @@ match.arm.38: ; preds = %entry
match.arm.39: ; preds = %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry
%loadN = load { i64, i64 }, ptr %allocaN, align 8
%tiu.tid = extractvalue { i64, i64 } %loadN, 1
%tiu.gep = getelementptr inbounds [89 x i1], ptr @__sx_type_is_unsigned, i64 0, i64 %tiu.tid
%refl.tag = extractvalue { i64, i64 } %loadN, 0
%refl.val = extractvalue { i64, i64 } %loadN, 1
%refl.istype = icmp eq i64 %refl.tag, 13
%refl.tid = select i1 %refl.istype, i64 %refl.val, i64 %refl.tag
%tiu.gep = getelementptr inbounds [89 x i1], ptr @__sx_type_is_unsigned, i64 0, i64 %refl.tid
%tiu.load = load i1, ptr %tiu.gep, align 1
br i1 %tiu.load, label %if.then.53, label %if.else.54
@@ -1370,8 +1373,11 @@ match.arm.50: ; No predecessors!
match.arm.51: ; preds = %entry
%loadN = load { i64, i64 }, ptr %alloca, align 8
%tn.tid = extractvalue { i64, i64 } %loadN, 1
%tn.gep = getelementptr inbounds [89 x { ptr, i64 }], ptr @__sx_type_names, i64 0, i64 %tn.tid
%refl.tag36 = extractvalue { i64, i64 } %loadN, 0
%refl.val37 = extractvalue { i64, i64 } %loadN, 1
%refl.istype38 = icmp eq i64 %refl.tag36, 13
%refl.tid39 = select i1 %refl.istype38, i64 %refl.val37, i64 %refl.tag36
%tn.gep = getelementptr inbounds [89 x { ptr, i64 }], ptr @__sx_type_names, i64 0, i64 %refl.tid39
%tn.load = load { ptr, i64 }, ptr %tn.gep, align 8
store { ptr, i64 } %tn.load, ptr %allocaN, align 8
br label %match.merge.37
@@ -1381,15 +1387,15 @@ match.unr.52: ; preds = %entry
if.then.53: ; preds = %match.arm.39
%loadN = load { i64, i64 }, ptr %alloca, align 8
%ua.raw37 = extractvalue { i64, i64 } %loadN, 1
%callN = call { ptr, i64 } @uint_to_string(ptr %0, i64 %ua.raw37)
%ua.raw41 = extractvalue { i64, i64 } %loadN, 1
%callN = call { ptr, i64 } @uint_to_string(ptr %0, i64 %ua.raw41)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %if.merge.55
if.else.54: ; preds = %match.arm.39
%loadN = load { i64, i64 }, ptr %alloca, align 8
%ua.raw40 = extractvalue { i64, i64 } %loadN, 1
%callN = call { ptr, i64 } @int_to_string(ptr %0, i64 %ua.raw40)
%ua.raw44 = extractvalue { i64, i64 } %loadN, 1
%callN = call { ptr, i64 } @int_to_string(ptr %0, i64 %ua.raw44)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %if.merge.55
@@ -1397,16 +1403,16 @@ if.merge.55: ; preds = %if.else.54, %if.the
br label %match.merge.37
f32.unbox.81: ; preds = %match.arm.42
%ua.raw42 = extractvalue { i64, i64 } %loadN, 1
%trN = trunc i64 %ua.raw42 to i32
%ua.raw46 = extractvalue { i64, i64 } %loadN, 1
%trN = trunc i64 %ua.raw46 to i32
%iNf = bitcast i32 %trN to float
%fpext = fpext float %iNf to double
store double %fpext, ptr %allocaN, align 8
br label %float.merge.83
f64.unbox.82: ; preds = %match.arm.42
%ua.raw43 = extractvalue { i64, i64 } %loadN, 1
%iNd = bitcast i64 %ua.raw43 to double
%ua.raw47 = extractvalue { i64, i64 } %loadN, 1
%iNd = bitcast i64 %ua.raw47 to double
store double %iNd, ptr %allocaN, align 8
br label %float.merge.83
@@ -1426,98 +1432,98 @@ dispatch.default.95: ; preds = %match.arm.43
br label %dispatch.merge.94
dispatch.case.96: ; preds = %match.arm.43
%ua.raw47 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr48 = inttoptr i64 %ua.raw47 to ptr
%ua.load49 = load { { ptr, i64 }, i32, i32, { ptr, i64 } }, ptr %ua.ptr48, align 8
%callN = call { ptr, i64 } @struct_to_string__Source_Location(ptr %0, { { ptr, i64 }, i32, i32, { ptr, i64 } } %ua.load49)
%ua.raw51 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr52 = inttoptr i64 %ua.raw51 to ptr
%ua.load53 = load { { ptr, i64 }, i32, i32, { ptr, i64 } }, ptr %ua.ptr52, align 8
%callN = call { ptr, i64 } @struct_to_string__Source_Location(ptr %0, { { ptr, i64 }, i32, i32, { ptr, i64 } } %ua.load53)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.94
dispatch.case.97: ; preds = %match.arm.43
%ua.raw51 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr52 = inttoptr i64 %ua.raw51 to ptr
%ua.load53 = load { ptr, ptr, ptr }, ptr %ua.ptr52, align 8
%callN = call { ptr, i64 } @struct_to_string__Allocator(ptr %0, { ptr, ptr, ptr } %ua.load53)
%ua.raw55 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr56 = inttoptr i64 %ua.raw55 to ptr
%ua.load57 = load { ptr, ptr, ptr }, ptr %ua.ptr56, align 8
%callN = call { ptr, i64 } @struct_to_string__Allocator(ptr %0, { ptr, ptr, ptr } %ua.load57)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.94
dispatch.case.98: ; preds = %match.arm.43
%ua.raw55 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr56 = inttoptr i64 %ua.raw55 to ptr
%ua.load57 = load {}, ptr %ua.ptr56, align 1
%callN = call { ptr, i64 } @struct_to_string__CAllocator(ptr %0, {} %ua.load57)
%ua.raw59 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr60 = inttoptr i64 %ua.raw59 to ptr
%ua.load61 = load {}, ptr %ua.ptr60, align 1
%callN = call { ptr, i64 } @struct_to_string__CAllocator(ptr %0, {} %ua.load61)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.94
dispatch.case.99: ; preds = %match.arm.43
%ua.raw59 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr60 = inttoptr i64 %ua.raw59 to ptr
%ua.load61 = load { i64 }, ptr %ua.ptr60, align 8
%callN = call { ptr, i64 } @struct_to_string__GPA(ptr %0, { i64 } %ua.load61)
%ua.raw63 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr64 = inttoptr i64 %ua.raw63 to ptr
%ua.load65 = load { i64 }, ptr %ua.ptr64, align 8
%callN = call { ptr, i64 } @struct_to_string__GPA(ptr %0, { i64 } %ua.load65)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.94
dispatch.case.100: ; preds = %match.arm.43
%ua.raw63 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr64 = inttoptr i64 %ua.raw63 to ptr
%ua.load65 = load { ptr, i64 }, ptr %ua.ptr64, align 8
%callN = call { ptr, i64 } @struct_to_string__ArenaChunk(ptr %0, { ptr, i64 } %ua.load65)
%ua.raw67 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr68 = inttoptr i64 %ua.raw67 to ptr
%ua.load69 = load { ptr, i64 }, ptr %ua.ptr68, align 8
%callN = call { ptr, i64 } @struct_to_string__ArenaChunk(ptr %0, { ptr, i64 } %ua.load69)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.94
dispatch.case.101: ; preds = %match.arm.43
%ua.raw67 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr68 = inttoptr i64 %ua.raw67 to ptr
%ua.load69 = load { ptr, i64, { ptr, ptr, ptr } }, ptr %ua.ptr68, align 8
%callN = call { ptr, i64 } @struct_to_string__Arena(ptr %0, { ptr, i64, { ptr, ptr, ptr } } %ua.load69)
%ua.raw71 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr72 = inttoptr i64 %ua.raw71 to ptr
%ua.load73 = load { ptr, i64, { ptr, ptr, ptr } }, ptr %ua.ptr72, align 8
%callN = call { ptr, i64 } @struct_to_string__Arena(ptr %0, { ptr, i64, { ptr, ptr, ptr } } %ua.load73)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.94
dispatch.case.102: ; preds = %match.arm.43
%ua.raw71 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr72 = inttoptr i64 %ua.raw71 to ptr
%ua.load73 = load { ptr, i64, i64 }, ptr %ua.ptr72, align 8
%callN = call { ptr, i64 } @struct_to_string__BufAlloc(ptr %0, { ptr, i64, i64 } %ua.load73)
%ua.raw75 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr76 = inttoptr i64 %ua.raw75 to ptr
%ua.load77 = load { ptr, i64, i64 }, ptr %ua.ptr76, align 8
%callN = call { ptr, i64 } @struct_to_string__BufAlloc(ptr %0, { ptr, i64, i64 } %ua.load77)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.94
dispatch.case.103: ; preds = %match.arm.43
%ua.raw75 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr76 = inttoptr i64 %ua.raw75 to ptr
%ua.load77 = load { { ptr, ptr, ptr }, i64, i64, i64 }, ptr %ua.ptr76, align 8
%callN = call { ptr, i64 } @struct_to_string__TrackingAllocator(ptr %0, { { ptr, ptr, ptr }, i64, i64, i64 } %ua.load77)
%ua.raw79 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr80 = inttoptr i64 %ua.raw79 to ptr
%ua.load81 = load { { ptr, ptr, ptr }, i64, i64, i64 }, ptr %ua.ptr80, align 8
%callN = call { ptr, i64 } @struct_to_string__TrackingAllocator(ptr %0, { { ptr, ptr, ptr }, i64, i64, i64 } %ua.load81)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.94
dispatch.case.104: ; preds = %match.arm.43
%ua.raw79 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr80 = inttoptr i64 %ua.raw79 to ptr
%ua.load81 = load { { ptr, ptr, ptr }, ptr }, ptr %ua.ptr80, align 8
%callN = call { ptr, i64 } @struct_to_string__Context(ptr %0, { { ptr, ptr, ptr }, ptr } %ua.load81)
%ua.raw83 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr84 = inttoptr i64 %ua.raw83 to ptr
%ua.load85 = load { { ptr, ptr, ptr }, ptr }, ptr %ua.ptr84, align 8
%callN = call { ptr, i64 } @struct_to_string__Context(ptr %0, { { ptr, ptr, ptr }, ptr } %ua.load85)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.94
dispatch.case.105: ; preds = %match.arm.43
%ua.raw83 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr84 = inttoptr i64 %ua.raw83 to ptr
%ua.load85 = load {}, ptr %ua.ptr84, align 1
%callN = call { ptr, i64 } @struct_to_string__BuildOptions(ptr %0, {} %ua.load85)
%ua.raw87 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr88 = inttoptr i64 %ua.raw87 to ptr
%ua.load89 = load {}, ptr %ua.ptr88, align 1
%callN = call { ptr, i64 } @struct_to_string__BuildOptions(ptr %0, {} %ua.load89)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.94
dispatch.case.106: ; preds = %match.arm.43
%ua.raw87 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr88 = inttoptr i64 %ua.raw87 to ptr
%ua.load89 = load { i32, i32 }, ptr %ua.ptr88, align 4
%callN = call { ptr, i64 } @struct_to_string__Point(ptr %0, { i32, i32 } %ua.load89)
%ua.raw91 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr92 = inttoptr i64 %ua.raw91 to ptr
%ua.load93 = load { i32, i32 }, ptr %ua.ptr92, align 4
%callN = call { ptr, i64 } @struct_to_string__Point(ptr %0, { i32, i32 } %ua.load93)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.94
dispatch.case.107: ; preds = %match.arm.43
%ua.raw91 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr92 = inttoptr i64 %ua.raw91 to ptr
%ua.load93 = load { float, float }, ptr %ua.ptr92, align 4
%callN = call { ptr, i64 } @struct_to_string__Shape.rect(ptr %0, { float, float } %ua.load93)
%ua.raw95 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr96 = inttoptr i64 %ua.raw95 to ptr
%ua.load97 = load { float, float }, ptr %ua.ptr96, align 4
%callN = call { ptr, i64 } @struct_to_string__Shape.rect(ptr %0, { float, float } %ua.load97)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.94
@@ -1531,22 +1537,22 @@ dispatch.default.169: ; preds = %match.arm.44
br label %dispatch.merge.168
dispatch.case.170: ; preds = %match.arm.44
%ua.raw96 = extractvalue { i64, i64 } %loadN, 1
%callN = call { ptr, i64 } @enum_to_string__OperatingSystem(ptr %0, i64 %ua.raw96)
%ua.raw100 = extractvalue { i64, i64 } %loadN, 1
%callN = call { ptr, i64 } @enum_to_string__OperatingSystem(ptr %0, i64 %ua.raw100)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.168
dispatch.case.171: ; preds = %match.arm.44
%ua.raw98 = extractvalue { i64, i64 } %loadN, 1
%callN = call { ptr, i64 } @enum_to_string__Architecture(ptr %0, i64 %ua.raw98)
%ua.raw102 = extractvalue { i64, i64 } %loadN, 1
%callN = call { ptr, i64 } @enum_to_string__Architecture(ptr %0, i64 %ua.raw102)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.168
dispatch.case.172: ; preds = %match.arm.44
%ua.raw100 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr101 = inttoptr i64 %ua.raw100 to ptr
%ua.load102 = load { i64, [8 x i8] }, ptr %ua.ptr101, align 8
%callN = call { ptr, i64 } @enum_to_string__Shape(ptr %0, { i64, [8 x i8] } %ua.load102)
%ua.raw104 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr105 = inttoptr i64 %ua.raw104 to ptr
%ua.load106 = load { i64, [8 x i8] }, ptr %ua.ptr105, align 8
%callN = call { ptr, i64 } @enum_to_string__Shape(ptr %0, { i64, [8 x i8] } %ua.load106)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.168
@@ -1560,26 +1566,26 @@ dispatch.default.180: ; preds = %match.arm.47
br label %dispatch.merge.179
dispatch.case.181: ; preds = %match.arm.47
%ua.raw105 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr106 = inttoptr i64 %ua.raw105 to ptr
%ua.load107 = load [4 x i64], ptr %ua.ptr106, align 8
%callN = call { ptr, i64 } @array_to_string__AR_4_s64(ptr %0, [4 x i64] %ua.load107)
%ua.raw109 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr110 = inttoptr i64 %ua.raw109 to ptr
%ua.load111 = load [4 x i64], ptr %ua.ptr110, align 8
%callN = call { ptr, i64 } @array_to_string__AR_4_s64(ptr %0, [4 x i64] %ua.load111)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.179
dispatch.case.182: ; preds = %match.arm.47
%ua.raw109 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr110 = inttoptr i64 %ua.raw109 to ptr
%ua.load111 = load [2 x { i64, i64 }], ptr %ua.ptr110, align 8
%callN = call { ptr, i64 } @array_to_string__AR_2_Any(ptr %0, [2 x { i64, i64 }] %ua.load111)
%ua.raw113 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr114 = inttoptr i64 %ua.raw113 to ptr
%ua.load115 = load [2 x { i64, i64 }], ptr %ua.ptr114, align 8
%callN = call { ptr, i64 } @array_to_string__AR_2_Any(ptr %0, [2 x { i64, i64 }] %ua.load115)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.179
dispatch.case.183: ; preds = %match.arm.47
%ua.raw113 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr114 = inttoptr i64 %ua.raw113 to ptr
%ua.load115 = load [1 x { i64, i64 }], ptr %ua.ptr114, align 8
%callN = call { ptr, i64 } @array_to_string__AR_1_Any(ptr %0, [1 x { i64, i64 }] %ua.load115)
%ua.raw117 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr118 = inttoptr i64 %ua.raw117 to ptr
%ua.load119 = load [1 x { i64, i64 }], ptr %ua.ptr118, align 8
%callN = call { ptr, i64 } @array_to_string__AR_1_Any(ptr %0, [1 x { i64, i64 }] %ua.load119)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.179
@@ -1593,18 +1599,18 @@ dispatch.default.200: ; preds = %match.arm.48
br label %dispatch.merge.199
dispatch.case.201: ; preds = %match.arm.48
%ua.raw118 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr119 = inttoptr i64 %ua.raw118 to ptr
%ua.load120 = load { ptr, i64 }, ptr %ua.ptr119, align 8
%callN = call { ptr, i64 } @slice_to_string__string(ptr %0, { ptr, i64 } %ua.load120)
%ua.raw122 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr123 = inttoptr i64 %ua.raw122 to ptr
%ua.load124 = load { ptr, i64 }, ptr %ua.ptr123, align 8
%callN = call { ptr, i64 } @slice_to_string__string(ptr %0, { ptr, i64 } %ua.load124)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.199
dispatch.case.202: ; preds = %match.arm.48
%ua.raw122 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr123 = inttoptr i64 %ua.raw122 to ptr
%ua.load124 = load { ptr, i64 }, ptr %ua.ptr123, align 8
%callN = call { ptr, i64 } @slice_to_string__Any(ptr %0, { ptr, i64 } %ua.load124)
%ua.raw126 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr127 = inttoptr i64 %ua.raw126 to ptr
%ua.load128 = load { ptr, i64 }, ptr %ua.ptr127, align 8
%callN = call { ptr, i64 } @slice_to_string__Any(ptr %0, { ptr, i64 } %ua.load128)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.199
@@ -1618,149 +1624,149 @@ dispatch.default.214: ; preds = %match.arm.49
br label %dispatch.merge.213
dispatch.case.215: ; preds = %match.arm.49
%ua.raw127 = extractvalue { i64, i64 } %loadN, 1
%iNp = inttoptr i64 %ua.raw127 to ptr
%ua.raw131 = extractvalue { i64, i64 } %loadN, 1
%iNp = inttoptr i64 %ua.raw131 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_void(ptr %0, ptr %iNp)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.213
dispatch.case.216: ; preds = %match.arm.49
%ua.raw129 = extractvalue { i64, i64 } %loadN, 1
%iNp130 = inttoptr i64 %ua.raw129 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_CAllocator(ptr %0, ptr %iNp130)
%ua.raw133 = extractvalue { i64, i64 } %loadN, 1
%iNp134 = inttoptr i64 %ua.raw133 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_CAllocator(ptr %0, ptr %iNp134)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.213
dispatch.case.217: ; preds = %match.arm.49
%ua.raw132 = extractvalue { i64, i64 } %loadN, 1
%iNp133 = inttoptr i64 %ua.raw132 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_GPA(ptr %0, ptr %iNp133)
%ua.raw136 = extractvalue { i64, i64 } %loadN, 1
%iNp137 = inttoptr i64 %ua.raw136 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_GPA(ptr %0, ptr %iNp137)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.213
dispatch.case.218: ; preds = %match.arm.49
%ua.raw135 = extractvalue { i64, i64 } %loadN, 1
%iNp136 = inttoptr i64 %ua.raw135 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_ArenaChunk(ptr %0, ptr %iNp136)
%ua.raw139 = extractvalue { i64, i64 } %loadN, 1
%iNp140 = inttoptr i64 %ua.raw139 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_ArenaChunk(ptr %0, ptr %iNp140)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.213
dispatch.case.219: ; preds = %match.arm.49
%ua.raw138 = extractvalue { i64, i64 } %loadN, 1
%iNp139 = inttoptr i64 %ua.raw138 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_Arena(ptr %0, ptr %iNp139)
%ua.raw142 = extractvalue { i64, i64 } %loadN, 1
%iNp143 = inttoptr i64 %ua.raw142 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_Arena(ptr %0, ptr %iNp143)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.213
dispatch.case.220: ; preds = %match.arm.49
%ua.raw141 = extractvalue { i64, i64 } %loadN, 1
%iNp142 = inttoptr i64 %ua.raw141 to ptr
%callN = call { ptr, i64 } @pointer_to_string__mptr_u8(ptr %0, ptr %iNp142)
%ua.raw145 = extractvalue { i64, i64 } %loadN, 1
%iNp146 = inttoptr i64 %ua.raw145 to ptr
%callN = call { ptr, i64 } @pointer_to_string__mptr_u8(ptr %0, ptr %iNp146)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.213
dispatch.case.221: ; preds = %match.arm.49
%ua.raw144 = extractvalue { i64, i64 } %loadN, 1
%iNp145 = inttoptr i64 %ua.raw144 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_BufAlloc(ptr %0, ptr %iNp145)
%ua.raw148 = extractvalue { i64, i64 } %loadN, 1
%iNp149 = inttoptr i64 %ua.raw148 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_BufAlloc(ptr %0, ptr %iNp149)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.213
dispatch.case.222: ; preds = %match.arm.49
%ua.raw147 = extractvalue { i64, i64 } %loadN, 1
%iNp148 = inttoptr i64 %ua.raw147 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_TrackingAllocator(ptr %0, ptr %iNp148)
%ua.raw151 = extractvalue { i64, i64 } %loadN, 1
%iNp152 = inttoptr i64 %ua.raw151 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_TrackingAllocator(ptr %0, ptr %iNp152)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.213
dispatch.case.223: ; preds = %match.arm.49
%ua.raw150 = extractvalue { i64, i64 } %loadN, 1
%iNp151 = inttoptr i64 %ua.raw150 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_ptr_CAllocator(ptr %0, ptr %iNp151)
%ua.raw154 = extractvalue { i64, i64 } %loadN, 1
%iNp155 = inttoptr i64 %ua.raw154 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_ptr_CAllocator(ptr %0, ptr %iNp155)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.213
dispatch.case.224: ; preds = %match.arm.49
%ua.raw153 = extractvalue { i64, i64 } %loadN, 1
%iNp154 = inttoptr i64 %ua.raw153 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_s64(ptr %0, ptr %iNp154)
%ua.raw157 = extractvalue { i64, i64 } %loadN, 1
%iNp158 = inttoptr i64 %ua.raw157 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_s64(ptr %0, ptr %iNp158)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.213
dispatch.case.225: ; preds = %match.arm.49
%ua.raw156 = extractvalue { i64, i64 } %loadN, 1
%iNp157 = inttoptr i64 %ua.raw156 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_ptr_void(ptr %0, ptr %iNp157)
%ua.raw160 = extractvalue { i64, i64 } %loadN, 1
%iNp161 = inttoptr i64 %ua.raw160 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_ptr_void(ptr %0, ptr %iNp161)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.213
dispatch.case.226: ; preds = %match.arm.49
%ua.raw159 = extractvalue { i64, i64 } %loadN, 1
%iNp160 = inttoptr i64 %ua.raw159 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_string(ptr %0, ptr %iNp160)
%ua.raw163 = extractvalue { i64, i64 } %loadN, 1
%iNp164 = inttoptr i64 %ua.raw163 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_string(ptr %0, ptr %iNp164)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.213
dispatch.case.227: ; preds = %match.arm.49
%ua.raw162 = extractvalue { i64, i64 } %loadN, 1
%iNp163 = inttoptr i64 %ua.raw162 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_Any(ptr %0, ptr %iNp163)
%ua.raw166 = extractvalue { i64, i64 } %loadN, 1
%iNp167 = inttoptr i64 %ua.raw166 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_Any(ptr %0, ptr %iNp167)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.213
dispatch.case.228: ; preds = %match.arm.49
%ua.raw165 = extractvalue { i64, i64 } %loadN, 1
%iNp166 = inttoptr i64 %ua.raw165 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_SL_Any(ptr %0, ptr %iNp166)
%ua.raw169 = extractvalue { i64, i64 } %loadN, 1
%iNp170 = inttoptr i64 %ua.raw169 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_SL_Any(ptr %0, ptr %iNp170)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.213
dispatch.case.229: ; preds = %match.arm.49
%ua.raw168 = extractvalue { i64, i64 } %loadN, 1
%iNp169 = inttoptr i64 %ua.raw168 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_u8(ptr %0, ptr %iNp169)
%ua.raw172 = extractvalue { i64, i64 } %loadN, 1
%iNp173 = inttoptr i64 %ua.raw172 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_u8(ptr %0, ptr %iNp173)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.213
dispatch.case.230: ; preds = %match.arm.49
%ua.raw171 = extractvalue { i64, i64 } %loadN, 1
%iNp172 = inttoptr i64 %ua.raw171 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_bool(ptr %0, ptr %iNp172)
%ua.raw175 = extractvalue { i64, i64 } %loadN, 1
%iNp176 = inttoptr i64 %ua.raw175 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_bool(ptr %0, ptr %iNp176)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.213
dispatch.case.231: ; preds = %match.arm.49
%ua.raw174 = extractvalue { i64, i64 } %loadN, 1
%iNp175 = inttoptr i64 %ua.raw174 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_Point(ptr %0, ptr %iNp175)
%ua.raw178 = extractvalue { i64, i64 } %loadN, 1
%iNp179 = inttoptr i64 %ua.raw178 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_Point(ptr %0, ptr %iNp179)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.213
dispatch.case.232: ; preds = %match.arm.49
%ua.raw177 = extractvalue { i64, i64 } %loadN, 1
%iNp178 = inttoptr i64 %ua.raw177 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_s32(ptr %0, ptr %iNp178)
%ua.raw181 = extractvalue { i64, i64 } %loadN, 1
%iNp182 = inttoptr i64 %ua.raw181 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_s32(ptr %0, ptr %iNp182)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.213
dispatch.case.233: ; preds = %match.arm.49
%ua.raw180 = extractvalue { i64, i64 } %loadN, 1
%iNp181 = inttoptr i64 %ua.raw180 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_AR_2_Any(ptr %0, ptr %iNp181)
%ua.raw184 = extractvalue { i64, i64 } %loadN, 1
%iNp185 = inttoptr i64 %ua.raw184 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_AR_2_Any(ptr %0, ptr %iNp185)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.213
dispatch.case.234: ; preds = %match.arm.49
%ua.raw183 = extractvalue { i64, i64 } %loadN, 1
%iNp184 = inttoptr i64 %ua.raw183 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_Shape(ptr %0, ptr %iNp184)
%ua.raw187 = extractvalue { i64, i64 } %loadN, 1
%iNp188 = inttoptr i64 %ua.raw187 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_Shape(ptr %0, ptr %iNp188)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.213
dispatch.case.235: ; preds = %match.arm.49
%ua.raw186 = extractvalue { i64, i64 } %loadN, 1
%iNp187 = inttoptr i64 %ua.raw186 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_AR_1_Any(ptr %0, ptr %iNp187)
%ua.raw190 = extractvalue { i64, i64 } %loadN, 1
%iNp191 = inttoptr i64 %ua.raw190 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_AR_1_Any(ptr %0, ptr %iNp191)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.213
}

View File

@@ -1210,8 +1210,11 @@ match.arm.38: ; preds = %entry
match.arm.39: ; preds = %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry
%loadN = load { i64, i64 }, ptr %allocaN, align 8
%tiu.tid = extractvalue { i64, i64 } %loadN, 1
%tiu.gep = getelementptr inbounds [81 x i1], ptr @__sx_type_is_unsigned, i64 0, i64 %tiu.tid
%refl.tag = extractvalue { i64, i64 } %loadN, 0
%refl.val = extractvalue { i64, i64 } %loadN, 1
%refl.istype = icmp eq i64 %refl.tag, 13
%refl.tid = select i1 %refl.istype, i64 %refl.val, i64 %refl.tag
%tiu.gep = getelementptr inbounds [81 x i1], ptr @__sx_type_is_unsigned, i64 0, i64 %refl.tid
%tiu.load = load i1, ptr %tiu.gep, align 1
br i1 %tiu.load, label %if.then.53, label %if.else.54
@@ -1328,8 +1331,11 @@ match.arm.50: ; No predecessors!
match.arm.51: ; preds = %entry
%loadN = load { i64, i64 }, ptr %alloca, align 8
%tn.tid = extractvalue { i64, i64 } %loadN, 1
%tn.gep = getelementptr inbounds [81 x { ptr, i64 }], ptr @__sx_type_names, i64 0, i64 %tn.tid
%refl.tag36 = extractvalue { i64, i64 } %loadN, 0
%refl.val37 = extractvalue { i64, i64 } %loadN, 1
%refl.istype38 = icmp eq i64 %refl.tag36, 13
%refl.tid39 = select i1 %refl.istype38, i64 %refl.val37, i64 %refl.tag36
%tn.gep = getelementptr inbounds [81 x { ptr, i64 }], ptr @__sx_type_names, i64 0, i64 %refl.tid39
%tn.load = load { ptr, i64 }, ptr %tn.gep, align 8
store { ptr, i64 } %tn.load, ptr %allocaN, align 8
br label %match.merge.37
@@ -1339,15 +1345,15 @@ match.unr.52: ; preds = %entry
if.then.53: ; preds = %match.arm.39
%loadN = load { i64, i64 }, ptr %alloca, align 8
%ua.raw37 = extractvalue { i64, i64 } %loadN, 1
%callN = call { ptr, i64 } @uint_to_string(ptr %0, i64 %ua.raw37)
%ua.raw41 = extractvalue { i64, i64 } %loadN, 1
%callN = call { ptr, i64 } @uint_to_string(ptr %0, i64 %ua.raw41)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %if.merge.55
if.else.54: ; preds = %match.arm.39
%loadN = load { i64, i64 }, ptr %alloca, align 8
%ua.raw40 = extractvalue { i64, i64 } %loadN, 1
%callN = call { ptr, i64 } @int_to_string(ptr %0, i64 %ua.raw40)
%ua.raw44 = extractvalue { i64, i64 } %loadN, 1
%callN = call { ptr, i64 } @int_to_string(ptr %0, i64 %ua.raw44)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %if.merge.55
@@ -1355,16 +1361,16 @@ if.merge.55: ; preds = %if.else.54, %if.the
br label %match.merge.37
f32.unbox.81: ; preds = %match.arm.42
%ua.raw42 = extractvalue { i64, i64 } %loadN, 1
%trN = trunc i64 %ua.raw42 to i32
%ua.raw46 = extractvalue { i64, i64 } %loadN, 1
%trN = trunc i64 %ua.raw46 to i32
%iNf = bitcast i32 %trN to float
%fpext = fpext float %iNf to double
store double %fpext, ptr %allocaN, align 8
br label %float.merge.83
f64.unbox.82: ; preds = %match.arm.42
%ua.raw43 = extractvalue { i64, i64 } %loadN, 1
%iNd = bitcast i64 %ua.raw43 to double
%ua.raw47 = extractvalue { i64, i64 } %loadN, 1
%iNd = bitcast i64 %ua.raw47 to double
store double %iNd, ptr %allocaN, align 8
br label %float.merge.83
@@ -1384,90 +1390,90 @@ dispatch.default.95: ; preds = %match.arm.43
br label %dispatch.merge.94
dispatch.case.96: ; preds = %match.arm.43
%ua.raw47 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr48 = inttoptr i64 %ua.raw47 to ptr
%ua.load49 = load { { ptr, i64 }, i32, i32, { ptr, i64 } }, ptr %ua.ptr48, align 8
%callN = call { ptr, i64 } @struct_to_string__Source_Location(ptr %0, { { ptr, i64 }, i32, i32, { ptr, i64 } } %ua.load49)
%ua.raw51 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr52 = inttoptr i64 %ua.raw51 to ptr
%ua.load53 = load { { ptr, i64 }, i32, i32, { ptr, i64 } }, ptr %ua.ptr52, align 8
%callN = call { ptr, i64 } @struct_to_string__Source_Location(ptr %0, { { ptr, i64 }, i32, i32, { ptr, i64 } } %ua.load53)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.94
dispatch.case.97: ; preds = %match.arm.43
%ua.raw51 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr52 = inttoptr i64 %ua.raw51 to ptr
%ua.load53 = load { ptr, ptr, ptr }, ptr %ua.ptr52, align 8
%callN = call { ptr, i64 } @struct_to_string__Allocator(ptr %0, { ptr, ptr, ptr } %ua.load53)
%ua.raw55 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr56 = inttoptr i64 %ua.raw55 to ptr
%ua.load57 = load { ptr, ptr, ptr }, ptr %ua.ptr56, align 8
%callN = call { ptr, i64 } @struct_to_string__Allocator(ptr %0, { ptr, ptr, ptr } %ua.load57)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.94
dispatch.case.98: ; preds = %match.arm.43
%ua.raw55 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr56 = inttoptr i64 %ua.raw55 to ptr
%ua.load57 = load {}, ptr %ua.ptr56, align 1
%callN = call { ptr, i64 } @struct_to_string__CAllocator(ptr %0, {} %ua.load57)
%ua.raw59 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr60 = inttoptr i64 %ua.raw59 to ptr
%ua.load61 = load {}, ptr %ua.ptr60, align 1
%callN = call { ptr, i64 } @struct_to_string__CAllocator(ptr %0, {} %ua.load61)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.94
dispatch.case.99: ; preds = %match.arm.43
%ua.raw59 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr60 = inttoptr i64 %ua.raw59 to ptr
%ua.load61 = load { i64 }, ptr %ua.ptr60, align 8
%callN = call { ptr, i64 } @struct_to_string__GPA(ptr %0, { i64 } %ua.load61)
%ua.raw63 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr64 = inttoptr i64 %ua.raw63 to ptr
%ua.load65 = load { i64 }, ptr %ua.ptr64, align 8
%callN = call { ptr, i64 } @struct_to_string__GPA(ptr %0, { i64 } %ua.load65)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.94
dispatch.case.100: ; preds = %match.arm.43
%ua.raw63 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr64 = inttoptr i64 %ua.raw63 to ptr
%ua.load65 = load { ptr, i64 }, ptr %ua.ptr64, align 8
%callN = call { ptr, i64 } @struct_to_string__ArenaChunk(ptr %0, { ptr, i64 } %ua.load65)
%ua.raw67 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr68 = inttoptr i64 %ua.raw67 to ptr
%ua.load69 = load { ptr, i64 }, ptr %ua.ptr68, align 8
%callN = call { ptr, i64 } @struct_to_string__ArenaChunk(ptr %0, { ptr, i64 } %ua.load69)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.94
dispatch.case.101: ; preds = %match.arm.43
%ua.raw67 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr68 = inttoptr i64 %ua.raw67 to ptr
%ua.load69 = load { ptr, i64, { ptr, ptr, ptr } }, ptr %ua.ptr68, align 8
%callN = call { ptr, i64 } @struct_to_string__Arena(ptr %0, { ptr, i64, { ptr, ptr, ptr } } %ua.load69)
%ua.raw71 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr72 = inttoptr i64 %ua.raw71 to ptr
%ua.load73 = load { ptr, i64, { ptr, ptr, ptr } }, ptr %ua.ptr72, align 8
%callN = call { ptr, i64 } @struct_to_string__Arena(ptr %0, { ptr, i64, { ptr, ptr, ptr } } %ua.load73)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.94
dispatch.case.102: ; preds = %match.arm.43
%ua.raw71 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr72 = inttoptr i64 %ua.raw71 to ptr
%ua.load73 = load { ptr, i64, i64 }, ptr %ua.ptr72, align 8
%callN = call { ptr, i64 } @struct_to_string__BufAlloc(ptr %0, { ptr, i64, i64 } %ua.load73)
%ua.raw75 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr76 = inttoptr i64 %ua.raw75 to ptr
%ua.load77 = load { ptr, i64, i64 }, ptr %ua.ptr76, align 8
%callN = call { ptr, i64 } @struct_to_string__BufAlloc(ptr %0, { ptr, i64, i64 } %ua.load77)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.94
dispatch.case.103: ; preds = %match.arm.43
%ua.raw75 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr76 = inttoptr i64 %ua.raw75 to ptr
%ua.load77 = load { { ptr, ptr, ptr }, i64, i64, i64 }, ptr %ua.ptr76, align 8
%callN = call { ptr, i64 } @struct_to_string__TrackingAllocator(ptr %0, { { ptr, ptr, ptr }, i64, i64, i64 } %ua.load77)
%ua.raw79 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr80 = inttoptr i64 %ua.raw79 to ptr
%ua.load81 = load { { ptr, ptr, ptr }, i64, i64, i64 }, ptr %ua.ptr80, align 8
%callN = call { ptr, i64 } @struct_to_string__TrackingAllocator(ptr %0, { { ptr, ptr, ptr }, i64, i64, i64 } %ua.load81)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.94
dispatch.case.104: ; preds = %match.arm.43
%ua.raw79 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr80 = inttoptr i64 %ua.raw79 to ptr
%ua.load81 = load { { ptr, ptr, ptr }, ptr }, ptr %ua.ptr80, align 8
%callN = call { ptr, i64 } @struct_to_string__Context(ptr %0, { { ptr, ptr, ptr }, ptr } %ua.load81)
%ua.raw83 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr84 = inttoptr i64 %ua.raw83 to ptr
%ua.load85 = load { { ptr, ptr, ptr }, ptr }, ptr %ua.ptr84, align 8
%callN = call { ptr, i64 } @struct_to_string__Context(ptr %0, { { ptr, ptr, ptr }, ptr } %ua.load85)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.94
dispatch.case.105: ; preds = %match.arm.43
%ua.raw83 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr84 = inttoptr i64 %ua.raw83 to ptr
%ua.load85 = load {}, ptr %ua.ptr84, align 1
%callN = call { ptr, i64 } @struct_to_string__BuildOptions(ptr %0, {} %ua.load85)
%ua.raw87 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr88 = inttoptr i64 %ua.raw87 to ptr
%ua.load89 = load {}, ptr %ua.ptr88, align 1
%callN = call { ptr, i64 } @struct_to_string__BuildOptions(ptr %0, {} %ua.load89)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.94
dispatch.case.106: ; preds = %match.arm.43
%ua.raw87 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr88 = inttoptr i64 %ua.raw87 to ptr
%ua.load89 = load { i32, i32 }, ptr %ua.ptr88, align 4
%callN = call { ptr, i64 } @struct_to_string__Point(ptr %0, { i32, i32 } %ua.load89)
%ua.raw91 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr92 = inttoptr i64 %ua.raw91 to ptr
%ua.load93 = load { i32, i32 }, ptr %ua.ptr92, align 4
%callN = call { ptr, i64 } @struct_to_string__Point(ptr %0, { i32, i32 } %ua.load93)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.94
@@ -1481,14 +1487,14 @@ dispatch.default.163: ; preds = %match.arm.44
br label %dispatch.merge.162
dispatch.case.164: ; preds = %match.arm.44
%ua.raw92 = extractvalue { i64, i64 } %loadN, 1
%callN = call { ptr, i64 } @enum_to_string__OperatingSystem(ptr %0, i64 %ua.raw92)
%ua.raw96 = extractvalue { i64, i64 } %loadN, 1
%callN = call { ptr, i64 } @enum_to_string__OperatingSystem(ptr %0, i64 %ua.raw96)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.162
dispatch.case.165: ; preds = %match.arm.44
%ua.raw94 = extractvalue { i64, i64 } %loadN, 1
%callN = call { ptr, i64 } @enum_to_string__Architecture(ptr %0, i64 %ua.raw94)
%ua.raw98 = extractvalue { i64, i64 } %loadN, 1
%callN = call { ptr, i64 } @enum_to_string__Architecture(ptr %0, i64 %ua.raw98)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.162
@@ -1502,18 +1508,18 @@ dispatch.default.171: ; preds = %match.arm.47
br label %dispatch.merge.170
dispatch.case.172: ; preds = %match.arm.47
%ua.raw97 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr98 = inttoptr i64 %ua.raw97 to ptr
%ua.load99 = load [4 x i64], ptr %ua.ptr98, align 8
%callN = call { ptr, i64 } @array_to_string__AR_4_s64(ptr %0, [4 x i64] %ua.load99)
%ua.raw101 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr102 = inttoptr i64 %ua.raw101 to ptr
%ua.load103 = load [4 x i64], ptr %ua.ptr102, align 8
%callN = call { ptr, i64 } @array_to_string__AR_4_s64(ptr %0, [4 x i64] %ua.load103)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.170
dispatch.case.173: ; preds = %match.arm.47
%ua.raw101 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr102 = inttoptr i64 %ua.raw101 to ptr
%ua.load103 = load [1 x { i64, i64 }], ptr %ua.ptr102, align 8
%callN = call { ptr, i64 } @array_to_string__AR_1_Any(ptr %0, [1 x { i64, i64 }] %ua.load103)
%ua.raw105 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr106 = inttoptr i64 %ua.raw105 to ptr
%ua.load107 = load [1 x { i64, i64 }], ptr %ua.ptr106, align 8
%callN = call { ptr, i64 } @array_to_string__AR_1_Any(ptr %0, [1 x { i64, i64 }] %ua.load107)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.170
@@ -1527,18 +1533,18 @@ dispatch.default.185: ; preds = %match.arm.48
br label %dispatch.merge.184
dispatch.case.186: ; preds = %match.arm.48
%ua.raw106 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr107 = inttoptr i64 %ua.raw106 to ptr
%ua.load108 = load { ptr, i64 }, ptr %ua.ptr107, align 8
%callN = call { ptr, i64 } @slice_to_string__string(ptr %0, { ptr, i64 } %ua.load108)
%ua.raw110 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr111 = inttoptr i64 %ua.raw110 to ptr
%ua.load112 = load { ptr, i64 }, ptr %ua.ptr111, align 8
%callN = call { ptr, i64 } @slice_to_string__string(ptr %0, { ptr, i64 } %ua.load112)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.184
dispatch.case.187: ; preds = %match.arm.48
%ua.raw110 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr111 = inttoptr i64 %ua.raw110 to ptr
%ua.load112 = load { ptr, i64 }, ptr %ua.ptr111, align 8
%callN = call { ptr, i64 } @slice_to_string__Any(ptr %0, { ptr, i64 } %ua.load112)
%ua.raw114 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr115 = inttoptr i64 %ua.raw114 to ptr
%ua.load116 = load { ptr, i64 }, ptr %ua.ptr115, align 8
%callN = call { ptr, i64 } @slice_to_string__Any(ptr %0, { ptr, i64 } %ua.load116)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.184
@@ -1552,135 +1558,135 @@ dispatch.default.199: ; preds = %match.arm.49
br label %dispatch.merge.198
dispatch.case.200: ; preds = %match.arm.49
%ua.raw115 = extractvalue { i64, i64 } %loadN, 1
%iNp = inttoptr i64 %ua.raw115 to ptr
%ua.raw119 = extractvalue { i64, i64 } %loadN, 1
%iNp = inttoptr i64 %ua.raw119 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_void(ptr %0, ptr %iNp)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.198
dispatch.case.201: ; preds = %match.arm.49
%ua.raw117 = extractvalue { i64, i64 } %loadN, 1
%iNp118 = inttoptr i64 %ua.raw117 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_CAllocator(ptr %0, ptr %iNp118)
%ua.raw121 = extractvalue { i64, i64 } %loadN, 1
%iNp122 = inttoptr i64 %ua.raw121 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_CAllocator(ptr %0, ptr %iNp122)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.198
dispatch.case.202: ; preds = %match.arm.49
%ua.raw120 = extractvalue { i64, i64 } %loadN, 1
%iNp121 = inttoptr i64 %ua.raw120 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_GPA(ptr %0, ptr %iNp121)
%ua.raw124 = extractvalue { i64, i64 } %loadN, 1
%iNp125 = inttoptr i64 %ua.raw124 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_GPA(ptr %0, ptr %iNp125)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.198
dispatch.case.203: ; preds = %match.arm.49
%ua.raw123 = extractvalue { i64, i64 } %loadN, 1
%iNp124 = inttoptr i64 %ua.raw123 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_ArenaChunk(ptr %0, ptr %iNp124)
%ua.raw127 = extractvalue { i64, i64 } %loadN, 1
%iNp128 = inttoptr i64 %ua.raw127 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_ArenaChunk(ptr %0, ptr %iNp128)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.198
dispatch.case.204: ; preds = %match.arm.49
%ua.raw126 = extractvalue { i64, i64 } %loadN, 1
%iNp127 = inttoptr i64 %ua.raw126 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_Arena(ptr %0, ptr %iNp127)
%ua.raw130 = extractvalue { i64, i64 } %loadN, 1
%iNp131 = inttoptr i64 %ua.raw130 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_Arena(ptr %0, ptr %iNp131)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.198
dispatch.case.205: ; preds = %match.arm.49
%ua.raw129 = extractvalue { i64, i64 } %loadN, 1
%iNp130 = inttoptr i64 %ua.raw129 to ptr
%callN = call { ptr, i64 } @pointer_to_string__mptr_u8(ptr %0, ptr %iNp130)
%ua.raw133 = extractvalue { i64, i64 } %loadN, 1
%iNp134 = inttoptr i64 %ua.raw133 to ptr
%callN = call { ptr, i64 } @pointer_to_string__mptr_u8(ptr %0, ptr %iNp134)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.198
dispatch.case.206: ; preds = %match.arm.49
%ua.raw132 = extractvalue { i64, i64 } %loadN, 1
%iNp133 = inttoptr i64 %ua.raw132 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_BufAlloc(ptr %0, ptr %iNp133)
%ua.raw136 = extractvalue { i64, i64 } %loadN, 1
%iNp137 = inttoptr i64 %ua.raw136 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_BufAlloc(ptr %0, ptr %iNp137)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.198
dispatch.case.207: ; preds = %match.arm.49
%ua.raw135 = extractvalue { i64, i64 } %loadN, 1
%iNp136 = inttoptr i64 %ua.raw135 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_TrackingAllocator(ptr %0, ptr %iNp136)
%ua.raw139 = extractvalue { i64, i64 } %loadN, 1
%iNp140 = inttoptr i64 %ua.raw139 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_TrackingAllocator(ptr %0, ptr %iNp140)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.198
dispatch.case.208: ; preds = %match.arm.49
%ua.raw138 = extractvalue { i64, i64 } %loadN, 1
%iNp139 = inttoptr i64 %ua.raw138 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_ptr_CAllocator(ptr %0, ptr %iNp139)
%ua.raw142 = extractvalue { i64, i64 } %loadN, 1
%iNp143 = inttoptr i64 %ua.raw142 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_ptr_CAllocator(ptr %0, ptr %iNp143)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.198
dispatch.case.209: ; preds = %match.arm.49
%ua.raw141 = extractvalue { i64, i64 } %loadN, 1
%iNp142 = inttoptr i64 %ua.raw141 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_s64(ptr %0, ptr %iNp142)
%ua.raw145 = extractvalue { i64, i64 } %loadN, 1
%iNp146 = inttoptr i64 %ua.raw145 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_s64(ptr %0, ptr %iNp146)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.198
dispatch.case.210: ; preds = %match.arm.49
%ua.raw144 = extractvalue { i64, i64 } %loadN, 1
%iNp145 = inttoptr i64 %ua.raw144 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_ptr_void(ptr %0, ptr %iNp145)
%ua.raw148 = extractvalue { i64, i64 } %loadN, 1
%iNp149 = inttoptr i64 %ua.raw148 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_ptr_void(ptr %0, ptr %iNp149)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.198
dispatch.case.211: ; preds = %match.arm.49
%ua.raw147 = extractvalue { i64, i64 } %loadN, 1
%iNp148 = inttoptr i64 %ua.raw147 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_string(ptr %0, ptr %iNp148)
%ua.raw151 = extractvalue { i64, i64 } %loadN, 1
%iNp152 = inttoptr i64 %ua.raw151 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_string(ptr %0, ptr %iNp152)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.198
dispatch.case.212: ; preds = %match.arm.49
%ua.raw150 = extractvalue { i64, i64 } %loadN, 1
%iNp151 = inttoptr i64 %ua.raw150 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_Any(ptr %0, ptr %iNp151)
%ua.raw154 = extractvalue { i64, i64 } %loadN, 1
%iNp155 = inttoptr i64 %ua.raw154 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_Any(ptr %0, ptr %iNp155)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.198
dispatch.case.213: ; preds = %match.arm.49
%ua.raw153 = extractvalue { i64, i64 } %loadN, 1
%iNp154 = inttoptr i64 %ua.raw153 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_SL_Any(ptr %0, ptr %iNp154)
%ua.raw157 = extractvalue { i64, i64 } %loadN, 1
%iNp158 = inttoptr i64 %ua.raw157 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_SL_Any(ptr %0, ptr %iNp158)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.198
dispatch.case.214: ; preds = %match.arm.49
%ua.raw156 = extractvalue { i64, i64 } %loadN, 1
%iNp157 = inttoptr i64 %ua.raw156 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_u8(ptr %0, ptr %iNp157)
%ua.raw160 = extractvalue { i64, i64 } %loadN, 1
%iNp161 = inttoptr i64 %ua.raw160 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_u8(ptr %0, ptr %iNp161)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.198
dispatch.case.215: ; preds = %match.arm.49
%ua.raw159 = extractvalue { i64, i64 } %loadN, 1
%iNp160 = inttoptr i64 %ua.raw159 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_bool(ptr %0, ptr %iNp160)
%ua.raw163 = extractvalue { i64, i64 } %loadN, 1
%iNp164 = inttoptr i64 %ua.raw163 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_bool(ptr %0, ptr %iNp164)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.198
dispatch.case.216: ; preds = %match.arm.49
%ua.raw162 = extractvalue { i64, i64 } %loadN, 1
%iNp163 = inttoptr i64 %ua.raw162 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_Point(ptr %0, ptr %iNp163)
%ua.raw166 = extractvalue { i64, i64 } %loadN, 1
%iNp167 = inttoptr i64 %ua.raw166 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_Point(ptr %0, ptr %iNp167)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.198
dispatch.case.217: ; preds = %match.arm.49
%ua.raw165 = extractvalue { i64, i64 } %loadN, 1
%iNp166 = inttoptr i64 %ua.raw165 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_s32(ptr %0, ptr %iNp166)
%ua.raw169 = extractvalue { i64, i64 } %loadN, 1
%iNp170 = inttoptr i64 %ua.raw169 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_s32(ptr %0, ptr %iNp170)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.198
dispatch.case.218: ; preds = %match.arm.49
%ua.raw168 = extractvalue { i64, i64 } %loadN, 1
%iNp169 = inttoptr i64 %ua.raw168 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_AR_1_Any(ptr %0, ptr %iNp169)
%ua.raw172 = extractvalue { i64, i64 } %loadN, 1
%iNp173 = inttoptr i64 %ua.raw172 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_AR_1_Any(ptr %0, ptr %iNp173)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.198
}

View File

@@ -1171,8 +1171,11 @@ match.arm.38: ; preds = %entry
match.arm.39: ; preds = %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry
%loadN = load { i64, i64 }, ptr %allocaN, align 8
%tiu.tid = extractvalue { i64, i64 } %loadN, 1
%tiu.gep = getelementptr inbounds [74 x i1], ptr @__sx_type_is_unsigned, i64 0, i64 %tiu.tid
%refl.tag = extractvalue { i64, i64 } %loadN, 0
%refl.val = extractvalue { i64, i64 } %loadN, 1
%refl.istype = icmp eq i64 %refl.tag, 13
%refl.tid = select i1 %refl.istype, i64 %refl.val, i64 %refl.tag
%tiu.gep = getelementptr inbounds [74 x i1], ptr @__sx_type_is_unsigned, i64 0, i64 %refl.tid
%tiu.load = load i1, ptr %tiu.gep, align 1
br i1 %tiu.load, label %if.then.53, label %if.else.54
@@ -1281,8 +1284,11 @@ match.arm.50: ; No predecessors!
match.arm.51: ; preds = %entry
%loadN = load { i64, i64 }, ptr %alloca, align 8
%tn.tid = extractvalue { i64, i64 } %loadN, 1
%tn.gep = getelementptr inbounds [74 x { ptr, i64 }], ptr @__sx_type_names, i64 0, i64 %tn.tid
%refl.tag32 = extractvalue { i64, i64 } %loadN, 0
%refl.val33 = extractvalue { i64, i64 } %loadN, 1
%refl.istype34 = icmp eq i64 %refl.tag32, 13
%refl.tid35 = select i1 %refl.istype34, i64 %refl.val33, i64 %refl.tag32
%tn.gep = getelementptr inbounds [74 x { ptr, i64 }], ptr @__sx_type_names, i64 0, i64 %refl.tid35
%tn.load = load { ptr, i64 }, ptr %tn.gep, align 8
store { ptr, i64 } %tn.load, ptr %allocaN, align 8
br label %match.merge.37
@@ -1292,15 +1298,15 @@ match.unr.52: ; preds = %entry
if.then.53: ; preds = %match.arm.39
%loadN = load { i64, i64 }, ptr %alloca, align 8
%ua.raw33 = extractvalue { i64, i64 } %loadN, 1
%callN = call { ptr, i64 } @uint_to_string(ptr %0, i64 %ua.raw33)
%ua.raw37 = extractvalue { i64, i64 } %loadN, 1
%callN = call { ptr, i64 } @uint_to_string(ptr %0, i64 %ua.raw37)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %if.merge.55
if.else.54: ; preds = %match.arm.39
%loadN = load { i64, i64 }, ptr %alloca, align 8
%ua.raw36 = extractvalue { i64, i64 } %loadN, 1
%callN = call { ptr, i64 } @int_to_string(ptr %0, i64 %ua.raw36)
%ua.raw40 = extractvalue { i64, i64 } %loadN, 1
%callN = call { ptr, i64 } @int_to_string(ptr %0, i64 %ua.raw40)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %if.merge.55
@@ -1308,16 +1314,16 @@ if.merge.55: ; preds = %if.else.54, %if.the
br label %match.merge.37
f32.unbox.81: ; preds = %match.arm.42
%ua.raw38 = extractvalue { i64, i64 } %loadN, 1
%trN = trunc i64 %ua.raw38 to i32
%ua.raw42 = extractvalue { i64, i64 } %loadN, 1
%trN = trunc i64 %ua.raw42 to i32
%iNf = bitcast i32 %trN to float
%fpext = fpext float %iNf to double
store double %fpext, ptr %allocaN, align 8
br label %float.merge.83
f64.unbox.82: ; preds = %match.arm.42
%ua.raw39 = extractvalue { i64, i64 } %loadN, 1
%iNd = bitcast i64 %ua.raw39 to double
%ua.raw43 = extractvalue { i64, i64 } %loadN, 1
%iNd = bitcast i64 %ua.raw43 to double
store double %iNd, ptr %allocaN, align 8
br label %float.merge.83
@@ -1337,74 +1343,74 @@ dispatch.default.95: ; preds = %match.arm.43
br label %dispatch.merge.94
dispatch.case.96: ; preds = %match.arm.43
%ua.raw43 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr44 = inttoptr i64 %ua.raw43 to ptr
%ua.load45 = load { { ptr, i64 }, i32, i32, { ptr, i64 } }, ptr %ua.ptr44, align 8
%callN = call { ptr, i64 } @struct_to_string__Source_Location(ptr %0, { { ptr, i64 }, i32, i32, { ptr, i64 } } %ua.load45)
%ua.raw47 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr48 = inttoptr i64 %ua.raw47 to ptr
%ua.load49 = load { { ptr, i64 }, i32, i32, { ptr, i64 } }, ptr %ua.ptr48, align 8
%callN = call { ptr, i64 } @struct_to_string__Source_Location(ptr %0, { { ptr, i64 }, i32, i32, { ptr, i64 } } %ua.load49)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.94
dispatch.case.97: ; preds = %match.arm.43
%ua.raw47 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr48 = inttoptr i64 %ua.raw47 to ptr
%ua.load49 = load { ptr, ptr, ptr }, ptr %ua.ptr48, align 8
%callN = call { ptr, i64 } @struct_to_string__Allocator(ptr %0, { ptr, ptr, ptr } %ua.load49)
%ua.raw51 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr52 = inttoptr i64 %ua.raw51 to ptr
%ua.load53 = load { ptr, ptr, ptr }, ptr %ua.ptr52, align 8
%callN = call { ptr, i64 } @struct_to_string__Allocator(ptr %0, { ptr, ptr, ptr } %ua.load53)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.94
dispatch.case.98: ; preds = %match.arm.43
%ua.raw51 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr52 = inttoptr i64 %ua.raw51 to ptr
%ua.load53 = load {}, ptr %ua.ptr52, align 1
%callN = call { ptr, i64 } @struct_to_string__CAllocator(ptr %0, {} %ua.load53)
%ua.raw55 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr56 = inttoptr i64 %ua.raw55 to ptr
%ua.load57 = load {}, ptr %ua.ptr56, align 1
%callN = call { ptr, i64 } @struct_to_string__CAllocator(ptr %0, {} %ua.load57)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.94
dispatch.case.99: ; preds = %match.arm.43
%ua.raw55 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr56 = inttoptr i64 %ua.raw55 to ptr
%ua.load57 = load { i64 }, ptr %ua.ptr56, align 8
%callN = call { ptr, i64 } @struct_to_string__GPA(ptr %0, { i64 } %ua.load57)
%ua.raw59 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr60 = inttoptr i64 %ua.raw59 to ptr
%ua.load61 = load { i64 }, ptr %ua.ptr60, align 8
%callN = call { ptr, i64 } @struct_to_string__GPA(ptr %0, { i64 } %ua.load61)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.94
dispatch.case.100: ; preds = %match.arm.43
%ua.raw59 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr60 = inttoptr i64 %ua.raw59 to ptr
%ua.load61 = load { ptr, i64 }, ptr %ua.ptr60, align 8
%callN = call { ptr, i64 } @struct_to_string__ArenaChunk(ptr %0, { ptr, i64 } %ua.load61)
%ua.raw63 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr64 = inttoptr i64 %ua.raw63 to ptr
%ua.load65 = load { ptr, i64 }, ptr %ua.ptr64, align 8
%callN = call { ptr, i64 } @struct_to_string__ArenaChunk(ptr %0, { ptr, i64 } %ua.load65)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.94
dispatch.case.101: ; preds = %match.arm.43
%ua.raw63 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr64 = inttoptr i64 %ua.raw63 to ptr
%ua.load65 = load { ptr, i64, { ptr, ptr, ptr } }, ptr %ua.ptr64, align 8
%callN = call { ptr, i64 } @struct_to_string__Arena(ptr %0, { ptr, i64, { ptr, ptr, ptr } } %ua.load65)
%ua.raw67 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr68 = inttoptr i64 %ua.raw67 to ptr
%ua.load69 = load { ptr, i64, { ptr, ptr, ptr } }, ptr %ua.ptr68, align 8
%callN = call { ptr, i64 } @struct_to_string__Arena(ptr %0, { ptr, i64, { ptr, ptr, ptr } } %ua.load69)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.94
dispatch.case.102: ; preds = %match.arm.43
%ua.raw67 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr68 = inttoptr i64 %ua.raw67 to ptr
%ua.load69 = load { ptr, i64, i64 }, ptr %ua.ptr68, align 8
%callN = call { ptr, i64 } @struct_to_string__BufAlloc(ptr %0, { ptr, i64, i64 } %ua.load69)
%ua.raw71 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr72 = inttoptr i64 %ua.raw71 to ptr
%ua.load73 = load { ptr, i64, i64 }, ptr %ua.ptr72, align 8
%callN = call { ptr, i64 } @struct_to_string__BufAlloc(ptr %0, { ptr, i64, i64 } %ua.load73)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.94
dispatch.case.103: ; preds = %match.arm.43
%ua.raw71 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr72 = inttoptr i64 %ua.raw71 to ptr
%ua.load73 = load { { ptr, ptr, ptr }, i64, i64, i64 }, ptr %ua.ptr72, align 8
%callN = call { ptr, i64 } @struct_to_string__TrackingAllocator(ptr %0, { { ptr, ptr, ptr }, i64, i64, i64 } %ua.load73)
%ua.raw75 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr76 = inttoptr i64 %ua.raw75 to ptr
%ua.load77 = load { { ptr, ptr, ptr }, i64, i64, i64 }, ptr %ua.ptr76, align 8
%callN = call { ptr, i64 } @struct_to_string__TrackingAllocator(ptr %0, { { ptr, ptr, ptr }, i64, i64, i64 } %ua.load77)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.94
dispatch.case.104: ; preds = %match.arm.43
%ua.raw75 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr76 = inttoptr i64 %ua.raw75 to ptr
%ua.load77 = load { { ptr, ptr, ptr }, ptr }, ptr %ua.ptr76, align 8
%callN = call { ptr, i64 } @struct_to_string__Context(ptr %0, { { ptr, ptr, ptr }, ptr } %ua.load77)
%ua.raw79 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr80 = inttoptr i64 %ua.raw79 to ptr
%ua.load81 = load { { ptr, ptr, ptr }, ptr }, ptr %ua.ptr80, align 8
%callN = call { ptr, i64 } @struct_to_string__Context(ptr %0, { { ptr, ptr, ptr }, ptr } %ua.load81)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.94
@@ -1418,26 +1424,26 @@ dispatch.default.151: ; preds = %match.arm.47
br label %dispatch.merge.150
dispatch.case.152: ; preds = %match.arm.47
%ua.raw80 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr81 = inttoptr i64 %ua.raw80 to ptr
%ua.load82 = load [4 x i64], ptr %ua.ptr81, align 8
%callN = call { ptr, i64 } @array_to_string__AR_4_s64(ptr %0, [4 x i64] %ua.load82)
%ua.raw84 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr85 = inttoptr i64 %ua.raw84 to ptr
%ua.load86 = load [4 x i64], ptr %ua.ptr85, align 8
%callN = call { ptr, i64 } @array_to_string__AR_4_s64(ptr %0, [4 x i64] %ua.load86)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.150
dispatch.case.153: ; preds = %match.arm.47
%ua.raw84 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr85 = inttoptr i64 %ua.raw84 to ptr
%ua.load86 = load [1 x { i64, i64 }], ptr %ua.ptr85, align 8
%callN = call { ptr, i64 } @array_to_string__AR_1_Any(ptr %0, [1 x { i64, i64 }] %ua.load86)
%ua.raw88 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr89 = inttoptr i64 %ua.raw88 to ptr
%ua.load90 = load [1 x { i64, i64 }], ptr %ua.ptr89, align 8
%callN = call { ptr, i64 } @array_to_string__AR_1_Any(ptr %0, [1 x { i64, i64 }] %ua.load90)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.150
dispatch.case.154: ; preds = %match.arm.47
%ua.raw88 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr89 = inttoptr i64 %ua.raw88 to ptr
%ua.load90 = load [3 x { i64, i64 }], ptr %ua.ptr89, align 8
%callN = call { ptr, i64 } @array_to_string__AR_3_Any(ptr %0, [3 x { i64, i64 }] %ua.load90)
%ua.raw92 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr93 = inttoptr i64 %ua.raw92 to ptr
%ua.load94 = load [3 x { i64, i64 }], ptr %ua.ptr93, align 8
%callN = call { ptr, i64 } @array_to_string__AR_3_Any(ptr %0, [3 x { i64, i64 }] %ua.load94)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.150
@@ -1451,18 +1457,18 @@ dispatch.default.171: ; preds = %match.arm.48
br label %dispatch.merge.170
dispatch.case.172: ; preds = %match.arm.48
%ua.raw93 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr94 = inttoptr i64 %ua.raw93 to ptr
%ua.load95 = load { ptr, i64 }, ptr %ua.ptr94, align 8
%callN = call { ptr, i64 } @slice_to_string__string(ptr %0, { ptr, i64 } %ua.load95)
%ua.raw97 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr98 = inttoptr i64 %ua.raw97 to ptr
%ua.load99 = load { ptr, i64 }, ptr %ua.ptr98, align 8
%callN = call { ptr, i64 } @slice_to_string__string(ptr %0, { ptr, i64 } %ua.load99)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.170
dispatch.case.173: ; preds = %match.arm.48
%ua.raw97 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr98 = inttoptr i64 %ua.raw97 to ptr
%ua.load99 = load { ptr, i64 }, ptr %ua.ptr98, align 8
%callN = call { ptr, i64 } @slice_to_string__Any(ptr %0, { ptr, i64 } %ua.load99)
%ua.raw101 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr102 = inttoptr i64 %ua.raw101 to ptr
%ua.load103 = load { ptr, i64 }, ptr %ua.ptr102, align 8
%callN = call { ptr, i64 } @slice_to_string__Any(ptr %0, { ptr, i64 } %ua.load103)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.170
@@ -1476,135 +1482,135 @@ dispatch.default.185: ; preds = %match.arm.49
br label %dispatch.merge.184
dispatch.case.186: ; preds = %match.arm.49
%ua.raw102 = extractvalue { i64, i64 } %loadN, 1
%iNp = inttoptr i64 %ua.raw102 to ptr
%ua.raw106 = extractvalue { i64, i64 } %loadN, 1
%iNp = inttoptr i64 %ua.raw106 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_void(ptr %0, ptr %iNp)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.184
dispatch.case.187: ; preds = %match.arm.49
%ua.raw104 = extractvalue { i64, i64 } %loadN, 1
%iNp105 = inttoptr i64 %ua.raw104 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_CAllocator(ptr %0, ptr %iNp105)
%ua.raw108 = extractvalue { i64, i64 } %loadN, 1
%iNp109 = inttoptr i64 %ua.raw108 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_CAllocator(ptr %0, ptr %iNp109)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.184
dispatch.case.188: ; preds = %match.arm.49
%ua.raw107 = extractvalue { i64, i64 } %loadN, 1
%iNp108 = inttoptr i64 %ua.raw107 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_GPA(ptr %0, ptr %iNp108)
%ua.raw111 = extractvalue { i64, i64 } %loadN, 1
%iNp112 = inttoptr i64 %ua.raw111 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_GPA(ptr %0, ptr %iNp112)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.184
dispatch.case.189: ; preds = %match.arm.49
%ua.raw110 = extractvalue { i64, i64 } %loadN, 1
%iNp111 = inttoptr i64 %ua.raw110 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_ArenaChunk(ptr %0, ptr %iNp111)
%ua.raw114 = extractvalue { i64, i64 } %loadN, 1
%iNp115 = inttoptr i64 %ua.raw114 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_ArenaChunk(ptr %0, ptr %iNp115)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.184
dispatch.case.190: ; preds = %match.arm.49
%ua.raw113 = extractvalue { i64, i64 } %loadN, 1
%iNp114 = inttoptr i64 %ua.raw113 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_Arena(ptr %0, ptr %iNp114)
%ua.raw117 = extractvalue { i64, i64 } %loadN, 1
%iNp118 = inttoptr i64 %ua.raw117 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_Arena(ptr %0, ptr %iNp118)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.184
dispatch.case.191: ; preds = %match.arm.49
%ua.raw116 = extractvalue { i64, i64 } %loadN, 1
%iNp117 = inttoptr i64 %ua.raw116 to ptr
%callN = call { ptr, i64 } @pointer_to_string__mptr_u8(ptr %0, ptr %iNp117)
%ua.raw120 = extractvalue { i64, i64 } %loadN, 1
%iNp121 = inttoptr i64 %ua.raw120 to ptr
%callN = call { ptr, i64 } @pointer_to_string__mptr_u8(ptr %0, ptr %iNp121)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.184
dispatch.case.192: ; preds = %match.arm.49
%ua.raw119 = extractvalue { i64, i64 } %loadN, 1
%iNp120 = inttoptr i64 %ua.raw119 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_BufAlloc(ptr %0, ptr %iNp120)
%ua.raw123 = extractvalue { i64, i64 } %loadN, 1
%iNp124 = inttoptr i64 %ua.raw123 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_BufAlloc(ptr %0, ptr %iNp124)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.184
dispatch.case.193: ; preds = %match.arm.49
%ua.raw122 = extractvalue { i64, i64 } %loadN, 1
%iNp123 = inttoptr i64 %ua.raw122 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_TrackingAllocator(ptr %0, ptr %iNp123)
%ua.raw126 = extractvalue { i64, i64 } %loadN, 1
%iNp127 = inttoptr i64 %ua.raw126 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_TrackingAllocator(ptr %0, ptr %iNp127)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.184
dispatch.case.194: ; preds = %match.arm.49
%ua.raw125 = extractvalue { i64, i64 } %loadN, 1
%iNp126 = inttoptr i64 %ua.raw125 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_ptr_CAllocator(ptr %0, ptr %iNp126)
%ua.raw129 = extractvalue { i64, i64 } %loadN, 1
%iNp130 = inttoptr i64 %ua.raw129 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_ptr_CAllocator(ptr %0, ptr %iNp130)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.184
dispatch.case.195: ; preds = %match.arm.49
%ua.raw128 = extractvalue { i64, i64 } %loadN, 1
%iNp129 = inttoptr i64 %ua.raw128 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_s64(ptr %0, ptr %iNp129)
%ua.raw132 = extractvalue { i64, i64 } %loadN, 1
%iNp133 = inttoptr i64 %ua.raw132 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_s64(ptr %0, ptr %iNp133)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.184
dispatch.case.196: ; preds = %match.arm.49
%ua.raw131 = extractvalue { i64, i64 } %loadN, 1
%iNp132 = inttoptr i64 %ua.raw131 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_ptr_void(ptr %0, ptr %iNp132)
%ua.raw135 = extractvalue { i64, i64 } %loadN, 1
%iNp136 = inttoptr i64 %ua.raw135 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_ptr_void(ptr %0, ptr %iNp136)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.184
dispatch.case.197: ; preds = %match.arm.49
%ua.raw134 = extractvalue { i64, i64 } %loadN, 1
%iNp135 = inttoptr i64 %ua.raw134 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_s32(ptr %0, ptr %iNp135)
%ua.raw138 = extractvalue { i64, i64 } %loadN, 1
%iNp139 = inttoptr i64 %ua.raw138 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_s32(ptr %0, ptr %iNp139)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.184
dispatch.case.198: ; preds = %match.arm.49
%ua.raw137 = extractvalue { i64, i64 } %loadN, 1
%iNp138 = inttoptr i64 %ua.raw137 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_string(ptr %0, ptr %iNp138)
%ua.raw141 = extractvalue { i64, i64 } %loadN, 1
%iNp142 = inttoptr i64 %ua.raw141 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_string(ptr %0, ptr %iNp142)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.184
dispatch.case.199: ; preds = %match.arm.49
%ua.raw140 = extractvalue { i64, i64 } %loadN, 1
%iNp141 = inttoptr i64 %ua.raw140 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_Any(ptr %0, ptr %iNp141)
%ua.raw144 = extractvalue { i64, i64 } %loadN, 1
%iNp145 = inttoptr i64 %ua.raw144 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_Any(ptr %0, ptr %iNp145)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.184
dispatch.case.200: ; preds = %match.arm.49
%ua.raw143 = extractvalue { i64, i64 } %loadN, 1
%iNp144 = inttoptr i64 %ua.raw143 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_AR_1_Any(ptr %0, ptr %iNp144)
%ua.raw147 = extractvalue { i64, i64 } %loadN, 1
%iNp148 = inttoptr i64 %ua.raw147 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_AR_1_Any(ptr %0, ptr %iNp148)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.184
dispatch.case.201: ; preds = %match.arm.49
%ua.raw146 = extractvalue { i64, i64 } %loadN, 1
%iNp147 = inttoptr i64 %ua.raw146 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_SL_Any(ptr %0, ptr %iNp147)
%ua.raw150 = extractvalue { i64, i64 } %loadN, 1
%iNp151 = inttoptr i64 %ua.raw150 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_SL_Any(ptr %0, ptr %iNp151)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.184
dispatch.case.202: ; preds = %match.arm.49
%ua.raw149 = extractvalue { i64, i64 } %loadN, 1
%iNp150 = inttoptr i64 %ua.raw149 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_u8(ptr %0, ptr %iNp150)
%ua.raw153 = extractvalue { i64, i64 } %loadN, 1
%iNp154 = inttoptr i64 %ua.raw153 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_u8(ptr %0, ptr %iNp154)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.184
dispatch.case.203: ; preds = %match.arm.49
%ua.raw152 = extractvalue { i64, i64 } %loadN, 1
%iNp153 = inttoptr i64 %ua.raw152 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_bool(ptr %0, ptr %iNp153)
%ua.raw156 = extractvalue { i64, i64 } %loadN, 1
%iNp157 = inttoptr i64 %ua.raw156 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_bool(ptr %0, ptr %iNp157)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.184
dispatch.case.204: ; preds = %match.arm.49
%ua.raw155 = extractvalue { i64, i64 } %loadN, 1
%iNp156 = inttoptr i64 %ua.raw155 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_AR_3_Any(ptr %0, ptr %iNp156)
%ua.raw159 = extractvalue { i64, i64 } %loadN, 1
%iNp160 = inttoptr i64 %ua.raw159 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_AR_3_Any(ptr %0, ptr %iNp160)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.184
}

View File

@@ -1149,8 +1149,11 @@ match.arm.43: ; preds = %entry
match.arm.44: ; preds = %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry
%loadN = load { i64, i64 }, ptr %allocaN, align 8
%tiu.tid = extractvalue { i64, i64 } %loadN, 1
%tiu.gep = getelementptr inbounds [71 x i1], ptr @__sx_type_is_unsigned, i64 0, i64 %tiu.tid
%refl.tag = extractvalue { i64, i64 } %loadN, 0
%refl.val = extractvalue { i64, i64 } %loadN, 1
%refl.istype = icmp eq i64 %refl.tag, 13
%refl.tid = select i1 %refl.istype, i64 %refl.val, i64 %refl.tag
%tiu.gep = getelementptr inbounds [71 x i1], ptr @__sx_type_is_unsigned, i64 0, i64 %refl.tid
%tiu.load = load i1, ptr %tiu.gep, align 1
br i1 %tiu.load, label %if.then.58, label %if.else.59
@@ -1257,8 +1260,11 @@ match.arm.55: ; No predecessors!
match.arm.56: ; preds = %entry
%loadN = load { i64, i64 }, ptr %alloca, align 8
%tn.tid = extractvalue { i64, i64 } %loadN, 1
%tn.gep = getelementptr inbounds [71 x { ptr, i64 }], ptr @__sx_type_names, i64 0, i64 %tn.tid
%refl.tag32 = extractvalue { i64, i64 } %loadN, 0
%refl.val33 = extractvalue { i64, i64 } %loadN, 1
%refl.istype34 = icmp eq i64 %refl.tag32, 13
%refl.tid35 = select i1 %refl.istype34, i64 %refl.val33, i64 %refl.tag32
%tn.gep = getelementptr inbounds [71 x { ptr, i64 }], ptr @__sx_type_names, i64 0, i64 %refl.tid35
%tn.load = load { ptr, i64 }, ptr %tn.gep, align 8
store { ptr, i64 } %tn.load, ptr %allocaN, align 8
br label %match.merge.42
@@ -1268,15 +1274,15 @@ match.unr.57: ; preds = %entry
if.then.58: ; preds = %match.arm.44
%loadN = load { i64, i64 }, ptr %alloca, align 8
%ua.raw33 = extractvalue { i64, i64 } %loadN, 1
%callN = call { ptr, i64 } @uint_to_string(ptr %0, i64 %ua.raw33)
%ua.raw37 = extractvalue { i64, i64 } %loadN, 1
%callN = call { ptr, i64 } @uint_to_string(ptr %0, i64 %ua.raw37)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %if.merge.60
if.else.59: ; preds = %match.arm.44
%loadN = load { i64, i64 }, ptr %alloca, align 8
%ua.raw36 = extractvalue { i64, i64 } %loadN, 1
%callN = call { ptr, i64 } @int_to_string(ptr %0, i64 %ua.raw36)
%ua.raw40 = extractvalue { i64, i64 } %loadN, 1
%callN = call { ptr, i64 } @int_to_string(ptr %0, i64 %ua.raw40)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %if.merge.60
@@ -1284,16 +1290,16 @@ if.merge.60: ; preds = %if.else.59, %if.the
br label %match.merge.42
f32.unbox.86: ; preds = %match.arm.47
%ua.raw38 = extractvalue { i64, i64 } %loadN, 1
%trN = trunc i64 %ua.raw38 to i32
%ua.raw42 = extractvalue { i64, i64 } %loadN, 1
%trN = trunc i64 %ua.raw42 to i32
%iNf = bitcast i32 %trN to float
%fpext = fpext float %iNf to double
store double %fpext, ptr %allocaN, align 8
br label %float.merge.88
f64.unbox.87: ; preds = %match.arm.47
%ua.raw39 = extractvalue { i64, i64 } %loadN, 1
%iNd = bitcast i64 %ua.raw39 to double
%ua.raw43 = extractvalue { i64, i64 } %loadN, 1
%iNd = bitcast i64 %ua.raw43 to double
store double %iNd, ptr %allocaN, align 8
br label %float.merge.88
@@ -1313,74 +1319,74 @@ dispatch.default.100: ; preds = %match.arm.48
br label %dispatch.merge.99
dispatch.case.101: ; preds = %match.arm.48
%ua.raw43 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr44 = inttoptr i64 %ua.raw43 to ptr
%ua.load45 = load { { ptr, i64 }, i32, i32, { ptr, i64 } }, ptr %ua.ptr44, align 8
%callN = call { ptr, i64 } @struct_to_string__Source_Location(ptr %0, { { ptr, i64 }, i32, i32, { ptr, i64 } } %ua.load45)
%ua.raw47 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr48 = inttoptr i64 %ua.raw47 to ptr
%ua.load49 = load { { ptr, i64 }, i32, i32, { ptr, i64 } }, ptr %ua.ptr48, align 8
%callN = call { ptr, i64 } @struct_to_string__Source_Location(ptr %0, { { ptr, i64 }, i32, i32, { ptr, i64 } } %ua.load49)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.99
dispatch.case.102: ; preds = %match.arm.48
%ua.raw47 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr48 = inttoptr i64 %ua.raw47 to ptr
%ua.load49 = load { ptr, ptr, ptr }, ptr %ua.ptr48, align 8
%callN = call { ptr, i64 } @struct_to_string__Allocator(ptr %0, { ptr, ptr, ptr } %ua.load49)
%ua.raw51 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr52 = inttoptr i64 %ua.raw51 to ptr
%ua.load53 = load { ptr, ptr, ptr }, ptr %ua.ptr52, align 8
%callN = call { ptr, i64 } @struct_to_string__Allocator(ptr %0, { ptr, ptr, ptr } %ua.load53)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.99
dispatch.case.103: ; preds = %match.arm.48
%ua.raw51 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr52 = inttoptr i64 %ua.raw51 to ptr
%ua.load53 = load {}, ptr %ua.ptr52, align 1
%callN = call { ptr, i64 } @struct_to_string__CAllocator(ptr %0, {} %ua.load53)
%ua.raw55 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr56 = inttoptr i64 %ua.raw55 to ptr
%ua.load57 = load {}, ptr %ua.ptr56, align 1
%callN = call { ptr, i64 } @struct_to_string__CAllocator(ptr %0, {} %ua.load57)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.99
dispatch.case.104: ; preds = %match.arm.48
%ua.raw55 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr56 = inttoptr i64 %ua.raw55 to ptr
%ua.load57 = load { i64 }, ptr %ua.ptr56, align 8
%callN = call { ptr, i64 } @struct_to_string__GPA(ptr %0, { i64 } %ua.load57)
%ua.raw59 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr60 = inttoptr i64 %ua.raw59 to ptr
%ua.load61 = load { i64 }, ptr %ua.ptr60, align 8
%callN = call { ptr, i64 } @struct_to_string__GPA(ptr %0, { i64 } %ua.load61)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.99
dispatch.case.105: ; preds = %match.arm.48
%ua.raw59 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr60 = inttoptr i64 %ua.raw59 to ptr
%ua.load61 = load { ptr, i64 }, ptr %ua.ptr60, align 8
%callN = call { ptr, i64 } @struct_to_string__ArenaChunk(ptr %0, { ptr, i64 } %ua.load61)
%ua.raw63 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr64 = inttoptr i64 %ua.raw63 to ptr
%ua.load65 = load { ptr, i64 }, ptr %ua.ptr64, align 8
%callN = call { ptr, i64 } @struct_to_string__ArenaChunk(ptr %0, { ptr, i64 } %ua.load65)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.99
dispatch.case.106: ; preds = %match.arm.48
%ua.raw63 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr64 = inttoptr i64 %ua.raw63 to ptr
%ua.load65 = load { ptr, i64, { ptr, ptr, ptr } }, ptr %ua.ptr64, align 8
%callN = call { ptr, i64 } @struct_to_string__Arena(ptr %0, { ptr, i64, { ptr, ptr, ptr } } %ua.load65)
%ua.raw67 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr68 = inttoptr i64 %ua.raw67 to ptr
%ua.load69 = load { ptr, i64, { ptr, ptr, ptr } }, ptr %ua.ptr68, align 8
%callN = call { ptr, i64 } @struct_to_string__Arena(ptr %0, { ptr, i64, { ptr, ptr, ptr } } %ua.load69)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.99
dispatch.case.107: ; preds = %match.arm.48
%ua.raw67 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr68 = inttoptr i64 %ua.raw67 to ptr
%ua.load69 = load { ptr, i64, i64 }, ptr %ua.ptr68, align 8
%callN = call { ptr, i64 } @struct_to_string__BufAlloc(ptr %0, { ptr, i64, i64 } %ua.load69)
%ua.raw71 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr72 = inttoptr i64 %ua.raw71 to ptr
%ua.load73 = load { ptr, i64, i64 }, ptr %ua.ptr72, align 8
%callN = call { ptr, i64 } @struct_to_string__BufAlloc(ptr %0, { ptr, i64, i64 } %ua.load73)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.99
dispatch.case.108: ; preds = %match.arm.48
%ua.raw71 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr72 = inttoptr i64 %ua.raw71 to ptr
%ua.load73 = load { { ptr, ptr, ptr }, i64, i64, i64 }, ptr %ua.ptr72, align 8
%callN = call { ptr, i64 } @struct_to_string__TrackingAllocator(ptr %0, { { ptr, ptr, ptr }, i64, i64, i64 } %ua.load73)
%ua.raw75 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr76 = inttoptr i64 %ua.raw75 to ptr
%ua.load77 = load { { ptr, ptr, ptr }, i64, i64, i64 }, ptr %ua.ptr76, align 8
%callN = call { ptr, i64 } @struct_to_string__TrackingAllocator(ptr %0, { { ptr, ptr, ptr }, i64, i64, i64 } %ua.load77)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.99
dispatch.case.109: ; preds = %match.arm.48
%ua.raw75 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr76 = inttoptr i64 %ua.raw75 to ptr
%ua.load77 = load { { ptr, ptr, ptr }, ptr }, ptr %ua.ptr76, align 8
%callN = call { ptr, i64 } @struct_to_string__Context(ptr %0, { { ptr, ptr, ptr }, ptr } %ua.load77)
%ua.raw79 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr80 = inttoptr i64 %ua.raw79 to ptr
%ua.load81 = load { { ptr, ptr, ptr }, ptr }, ptr %ua.ptr80, align 8
%callN = call { ptr, i64 } @struct_to_string__Context(ptr %0, { { ptr, ptr, ptr }, ptr } %ua.load81)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.99
@@ -1394,18 +1400,18 @@ dispatch.default.156: ; preds = %match.arm.52
br label %dispatch.merge.155
dispatch.case.157: ; preds = %match.arm.52
%ua.raw80 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr81 = inttoptr i64 %ua.raw80 to ptr
%ua.load82 = load [4 x i64], ptr %ua.ptr81, align 8
%callN = call { ptr, i64 } @array_to_string__AR_4_s64(ptr %0, [4 x i64] %ua.load82)
%ua.raw84 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr85 = inttoptr i64 %ua.raw84 to ptr
%ua.load86 = load [4 x i64], ptr %ua.ptr85, align 8
%callN = call { ptr, i64 } @array_to_string__AR_4_s64(ptr %0, [4 x i64] %ua.load86)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.155
dispatch.case.158: ; preds = %match.arm.52
%ua.raw84 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr85 = inttoptr i64 %ua.raw84 to ptr
%ua.load86 = load [1 x { i64, i64 }], ptr %ua.ptr85, align 8
%callN = call { ptr, i64 } @array_to_string__AR_1_Any(ptr %0, [1 x { i64, i64 }] %ua.load86)
%ua.raw88 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr89 = inttoptr i64 %ua.raw88 to ptr
%ua.load90 = load [1 x { i64, i64 }], ptr %ua.ptr89, align 8
%callN = call { ptr, i64 } @array_to_string__AR_1_Any(ptr %0, [1 x { i64, i64 }] %ua.load90)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.155
@@ -1419,18 +1425,18 @@ dispatch.default.170: ; preds = %match.arm.53
br label %dispatch.merge.169
dispatch.case.171: ; preds = %match.arm.53
%ua.raw89 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr90 = inttoptr i64 %ua.raw89 to ptr
%ua.load91 = load { ptr, i64 }, ptr %ua.ptr90, align 8
%callN = call { ptr, i64 } @slice_to_string__string(ptr %0, { ptr, i64 } %ua.load91)
%ua.raw93 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr94 = inttoptr i64 %ua.raw93 to ptr
%ua.load95 = load { ptr, i64 }, ptr %ua.ptr94, align 8
%callN = call { ptr, i64 } @slice_to_string__string(ptr %0, { ptr, i64 } %ua.load95)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.169
dispatch.case.172: ; preds = %match.arm.53
%ua.raw93 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr94 = inttoptr i64 %ua.raw93 to ptr
%ua.load95 = load { ptr, i64 }, ptr %ua.ptr94, align 8
%callN = call { ptr, i64 } @slice_to_string__Any(ptr %0, { ptr, i64 } %ua.load95)
%ua.raw97 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr98 = inttoptr i64 %ua.raw97 to ptr
%ua.load99 = load { ptr, i64 }, ptr %ua.ptr98, align 8
%callN = call { ptr, i64 } @slice_to_string__Any(ptr %0, { ptr, i64 } %ua.load99)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.169
@@ -1444,128 +1450,128 @@ dispatch.default.184: ; preds = %match.arm.54
br label %dispatch.merge.183
dispatch.case.185: ; preds = %match.arm.54
%ua.raw98 = extractvalue { i64, i64 } %loadN, 1
%iNp = inttoptr i64 %ua.raw98 to ptr
%ua.raw102 = extractvalue { i64, i64 } %loadN, 1
%iNp = inttoptr i64 %ua.raw102 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_void(ptr %0, ptr %iNp)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.183
dispatch.case.186: ; preds = %match.arm.54
%ua.raw100 = extractvalue { i64, i64 } %loadN, 1
%iNp101 = inttoptr i64 %ua.raw100 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_CAllocator(ptr %0, ptr %iNp101)
%ua.raw104 = extractvalue { i64, i64 } %loadN, 1
%iNp105 = inttoptr i64 %ua.raw104 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_CAllocator(ptr %0, ptr %iNp105)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.183
dispatch.case.187: ; preds = %match.arm.54
%ua.raw103 = extractvalue { i64, i64 } %loadN, 1
%iNp104 = inttoptr i64 %ua.raw103 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_GPA(ptr %0, ptr %iNp104)
%ua.raw107 = extractvalue { i64, i64 } %loadN, 1
%iNp108 = inttoptr i64 %ua.raw107 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_GPA(ptr %0, ptr %iNp108)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.183
dispatch.case.188: ; preds = %match.arm.54
%ua.raw106 = extractvalue { i64, i64 } %loadN, 1
%iNp107 = inttoptr i64 %ua.raw106 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_ArenaChunk(ptr %0, ptr %iNp107)
%ua.raw110 = extractvalue { i64, i64 } %loadN, 1
%iNp111 = inttoptr i64 %ua.raw110 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_ArenaChunk(ptr %0, ptr %iNp111)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.183
dispatch.case.189: ; preds = %match.arm.54
%ua.raw109 = extractvalue { i64, i64 } %loadN, 1
%iNp110 = inttoptr i64 %ua.raw109 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_Arena(ptr %0, ptr %iNp110)
%ua.raw113 = extractvalue { i64, i64 } %loadN, 1
%iNp114 = inttoptr i64 %ua.raw113 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_Arena(ptr %0, ptr %iNp114)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.183
dispatch.case.190: ; preds = %match.arm.54
%ua.raw112 = extractvalue { i64, i64 } %loadN, 1
%iNp113 = inttoptr i64 %ua.raw112 to ptr
%callN = call { ptr, i64 } @pointer_to_string__mptr_u8(ptr %0, ptr %iNp113)
%ua.raw116 = extractvalue { i64, i64 } %loadN, 1
%iNp117 = inttoptr i64 %ua.raw116 to ptr
%callN = call { ptr, i64 } @pointer_to_string__mptr_u8(ptr %0, ptr %iNp117)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.183
dispatch.case.191: ; preds = %match.arm.54
%ua.raw115 = extractvalue { i64, i64 } %loadN, 1
%iNp116 = inttoptr i64 %ua.raw115 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_BufAlloc(ptr %0, ptr %iNp116)
%ua.raw119 = extractvalue { i64, i64 } %loadN, 1
%iNp120 = inttoptr i64 %ua.raw119 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_BufAlloc(ptr %0, ptr %iNp120)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.183
dispatch.case.192: ; preds = %match.arm.54
%ua.raw118 = extractvalue { i64, i64 } %loadN, 1
%iNp119 = inttoptr i64 %ua.raw118 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_TrackingAllocator(ptr %0, ptr %iNp119)
%ua.raw122 = extractvalue { i64, i64 } %loadN, 1
%iNp123 = inttoptr i64 %ua.raw122 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_TrackingAllocator(ptr %0, ptr %iNp123)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.183
dispatch.case.193: ; preds = %match.arm.54
%ua.raw121 = extractvalue { i64, i64 } %loadN, 1
%iNp122 = inttoptr i64 %ua.raw121 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_ptr_CAllocator(ptr %0, ptr %iNp122)
%ua.raw125 = extractvalue { i64, i64 } %loadN, 1
%iNp126 = inttoptr i64 %ua.raw125 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_ptr_CAllocator(ptr %0, ptr %iNp126)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.183
dispatch.case.194: ; preds = %match.arm.54
%ua.raw124 = extractvalue { i64, i64 } %loadN, 1
%iNp125 = inttoptr i64 %ua.raw124 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_s64(ptr %0, ptr %iNp125)
%ua.raw128 = extractvalue { i64, i64 } %loadN, 1
%iNp129 = inttoptr i64 %ua.raw128 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_s64(ptr %0, ptr %iNp129)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.183
dispatch.case.195: ; preds = %match.arm.54
%ua.raw127 = extractvalue { i64, i64 } %loadN, 1
%iNp128 = inttoptr i64 %ua.raw127 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_ptr_void(ptr %0, ptr %iNp128)
%ua.raw131 = extractvalue { i64, i64 } %loadN, 1
%iNp132 = inttoptr i64 %ua.raw131 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_ptr_void(ptr %0, ptr %iNp132)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.183
dispatch.case.196: ; preds = %match.arm.54
%ua.raw130 = extractvalue { i64, i64 } %loadN, 1
%iNp131 = inttoptr i64 %ua.raw130 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_f32(ptr %0, ptr %iNp131)
%ua.raw134 = extractvalue { i64, i64 } %loadN, 1
%iNp135 = inttoptr i64 %ua.raw134 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_f32(ptr %0, ptr %iNp135)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.183
dispatch.case.197: ; preds = %match.arm.54
%ua.raw133 = extractvalue { i64, i64 } %loadN, 1
%iNp134 = inttoptr i64 %ua.raw133 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_string(ptr %0, ptr %iNp134)
%ua.raw137 = extractvalue { i64, i64 } %loadN, 1
%iNp138 = inttoptr i64 %ua.raw137 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_string(ptr %0, ptr %iNp138)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.183
dispatch.case.198: ; preds = %match.arm.54
%ua.raw136 = extractvalue { i64, i64 } %loadN, 1
%iNp137 = inttoptr i64 %ua.raw136 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_Any(ptr %0, ptr %iNp137)
%ua.raw140 = extractvalue { i64, i64 } %loadN, 1
%iNp141 = inttoptr i64 %ua.raw140 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_Any(ptr %0, ptr %iNp141)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.183
dispatch.case.199: ; preds = %match.arm.54
%ua.raw139 = extractvalue { i64, i64 } %loadN, 1
%iNp140 = inttoptr i64 %ua.raw139 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_AR_1_Any(ptr %0, ptr %iNp140)
%ua.raw143 = extractvalue { i64, i64 } %loadN, 1
%iNp144 = inttoptr i64 %ua.raw143 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_AR_1_Any(ptr %0, ptr %iNp144)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.183
dispatch.case.200: ; preds = %match.arm.54
%ua.raw142 = extractvalue { i64, i64 } %loadN, 1
%iNp143 = inttoptr i64 %ua.raw142 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_SL_Any(ptr %0, ptr %iNp143)
%ua.raw146 = extractvalue { i64, i64 } %loadN, 1
%iNp147 = inttoptr i64 %ua.raw146 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_SL_Any(ptr %0, ptr %iNp147)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.183
dispatch.case.201: ; preds = %match.arm.54
%ua.raw145 = extractvalue { i64, i64 } %loadN, 1
%iNp146 = inttoptr i64 %ua.raw145 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_u8(ptr %0, ptr %iNp146)
%ua.raw149 = extractvalue { i64, i64 } %loadN, 1
%iNp150 = inttoptr i64 %ua.raw149 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_u8(ptr %0, ptr %iNp150)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.183
dispatch.case.202: ; preds = %match.arm.54
%ua.raw148 = extractvalue { i64, i64 } %loadN, 1
%iNp149 = inttoptr i64 %ua.raw148 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_bool(ptr %0, ptr %iNp149)
%ua.raw152 = extractvalue { i64, i64 } %loadN, 1
%iNp153 = inttoptr i64 %ua.raw152 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_bool(ptr %0, ptr %iNp153)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.183
}

View File

@@ -0,0 +1 @@
0

View File

@@ -0,0 +1 @@

View File

@@ -0,0 +1,11 @@
type_name(av)=s64
type_is_unsigned(av)=false
print(av)=6
type_name(au)=u32
type_is_unsigned(au)=true
print(au)=7
type_name(sv)=string
type_name(at)=u64
type_is_unsigned(at)=true
print(at)=u64
type_is_unsigned(type_of(x))=true

View File

@@ -1150,8 +1150,11 @@ match.arm.38: ; preds = %entry
match.arm.39: ; preds = %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry
%loadN = load { i64, i64 }, ptr %allocaN, align 8
%tiu.tid = extractvalue { i64, i64 } %loadN, 1
%tiu.gep = getelementptr inbounds [70 x i1], ptr @__sx_type_is_unsigned, i64 0, i64 %tiu.tid
%refl.tag = extractvalue { i64, i64 } %loadN, 0
%refl.val = extractvalue { i64, i64 } %loadN, 1
%refl.istype = icmp eq i64 %refl.tag, 13
%refl.tid = select i1 %refl.istype, i64 %refl.val, i64 %refl.tag
%tiu.gep = getelementptr inbounds [70 x i1], ptr @__sx_type_is_unsigned, i64 0, i64 %refl.tid
%tiu.load = load i1, ptr %tiu.gep, align 1
br i1 %tiu.load, label %if.then.53, label %if.else.54
@@ -1258,8 +1261,11 @@ match.arm.50: ; No predecessors!
match.arm.51: ; preds = %entry
%loadN = load { i64, i64 }, ptr %alloca, align 8
%tn.tid = extractvalue { i64, i64 } %loadN, 1
%tn.gep = getelementptr inbounds [70 x { ptr, i64 }], ptr @__sx_type_names, i64 0, i64 %tn.tid
%refl.tag32 = extractvalue { i64, i64 } %loadN, 0
%refl.val33 = extractvalue { i64, i64 } %loadN, 1
%refl.istype34 = icmp eq i64 %refl.tag32, 13
%refl.tid35 = select i1 %refl.istype34, i64 %refl.val33, i64 %refl.tag32
%tn.gep = getelementptr inbounds [70 x { ptr, i64 }], ptr @__sx_type_names, i64 0, i64 %refl.tid35
%tn.load = load { ptr, i64 }, ptr %tn.gep, align 8
store { ptr, i64 } %tn.load, ptr %allocaN, align 8
br label %match.merge.37
@@ -1269,15 +1275,15 @@ match.unr.52: ; preds = %entry
if.then.53: ; preds = %match.arm.39
%loadN = load { i64, i64 }, ptr %alloca, align 8
%ua.raw33 = extractvalue { i64, i64 } %loadN, 1
%callN = call { ptr, i64 } @uint_to_string(ptr %0, i64 %ua.raw33)
%ua.raw37 = extractvalue { i64, i64 } %loadN, 1
%callN = call { ptr, i64 } @uint_to_string(ptr %0, i64 %ua.raw37)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %if.merge.55
if.else.54: ; preds = %match.arm.39
%loadN = load { i64, i64 }, ptr %alloca, align 8
%ua.raw36 = extractvalue { i64, i64 } %loadN, 1
%callN = call { ptr, i64 } @int_to_string(ptr %0, i64 %ua.raw36)
%ua.raw40 = extractvalue { i64, i64 } %loadN, 1
%callN = call { ptr, i64 } @int_to_string(ptr %0, i64 %ua.raw40)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %if.merge.55
@@ -1285,16 +1291,16 @@ if.merge.55: ; preds = %if.else.54, %if.the
br label %match.merge.37
f32.unbox.81: ; preds = %match.arm.42
%ua.raw38 = extractvalue { i64, i64 } %loadN, 1
%trN = trunc i64 %ua.raw38 to i32
%ua.raw42 = extractvalue { i64, i64 } %loadN, 1
%trN = trunc i64 %ua.raw42 to i32
%iNf = bitcast i32 %trN to float
%fpext = fpext float %iNf to double
store double %fpext, ptr %allocaN, align 8
br label %float.merge.83
f64.unbox.82: ; preds = %match.arm.42
%ua.raw39 = extractvalue { i64, i64 } %loadN, 1
%iNd = bitcast i64 %ua.raw39 to double
%ua.raw43 = extractvalue { i64, i64 } %loadN, 1
%iNd = bitcast i64 %ua.raw43 to double
store double %iNd, ptr %allocaN, align 8
br label %float.merge.83
@@ -1314,74 +1320,74 @@ dispatch.default.95: ; preds = %match.arm.43
br label %dispatch.merge.94
dispatch.case.96: ; preds = %match.arm.43
%ua.raw43 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr44 = inttoptr i64 %ua.raw43 to ptr
%ua.load45 = load { { ptr, i64 }, i32, i32, { ptr, i64 } }, ptr %ua.ptr44, align 8
%callN = call { ptr, i64 } @struct_to_string__Source_Location(ptr %0, { { ptr, i64 }, i32, i32, { ptr, i64 } } %ua.load45)
%ua.raw47 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr48 = inttoptr i64 %ua.raw47 to ptr
%ua.load49 = load { { ptr, i64 }, i32, i32, { ptr, i64 } }, ptr %ua.ptr48, align 8
%callN = call { ptr, i64 } @struct_to_string__Source_Location(ptr %0, { { ptr, i64 }, i32, i32, { ptr, i64 } } %ua.load49)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.94
dispatch.case.97: ; preds = %match.arm.43
%ua.raw47 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr48 = inttoptr i64 %ua.raw47 to ptr
%ua.load49 = load { ptr, ptr, ptr }, ptr %ua.ptr48, align 8
%callN = call { ptr, i64 } @struct_to_string__Allocator(ptr %0, { ptr, ptr, ptr } %ua.load49)
%ua.raw51 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr52 = inttoptr i64 %ua.raw51 to ptr
%ua.load53 = load { ptr, ptr, ptr }, ptr %ua.ptr52, align 8
%callN = call { ptr, i64 } @struct_to_string__Allocator(ptr %0, { ptr, ptr, ptr } %ua.load53)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.94
dispatch.case.98: ; preds = %match.arm.43
%ua.raw51 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr52 = inttoptr i64 %ua.raw51 to ptr
%ua.load53 = load {}, ptr %ua.ptr52, align 1
%callN = call { ptr, i64 } @struct_to_string__CAllocator(ptr %0, {} %ua.load53)
%ua.raw55 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr56 = inttoptr i64 %ua.raw55 to ptr
%ua.load57 = load {}, ptr %ua.ptr56, align 1
%callN = call { ptr, i64 } @struct_to_string__CAllocator(ptr %0, {} %ua.load57)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.94
dispatch.case.99: ; preds = %match.arm.43
%ua.raw55 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr56 = inttoptr i64 %ua.raw55 to ptr
%ua.load57 = load { i64 }, ptr %ua.ptr56, align 8
%callN = call { ptr, i64 } @struct_to_string__GPA(ptr %0, { i64 } %ua.load57)
%ua.raw59 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr60 = inttoptr i64 %ua.raw59 to ptr
%ua.load61 = load { i64 }, ptr %ua.ptr60, align 8
%callN = call { ptr, i64 } @struct_to_string__GPA(ptr %0, { i64 } %ua.load61)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.94
dispatch.case.100: ; preds = %match.arm.43
%ua.raw59 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr60 = inttoptr i64 %ua.raw59 to ptr
%ua.load61 = load { ptr, i64 }, ptr %ua.ptr60, align 8
%callN = call { ptr, i64 } @struct_to_string__ArenaChunk(ptr %0, { ptr, i64 } %ua.load61)
%ua.raw63 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr64 = inttoptr i64 %ua.raw63 to ptr
%ua.load65 = load { ptr, i64 }, ptr %ua.ptr64, align 8
%callN = call { ptr, i64 } @struct_to_string__ArenaChunk(ptr %0, { ptr, i64 } %ua.load65)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.94
dispatch.case.101: ; preds = %match.arm.43
%ua.raw63 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr64 = inttoptr i64 %ua.raw63 to ptr
%ua.load65 = load { ptr, i64, { ptr, ptr, ptr } }, ptr %ua.ptr64, align 8
%callN = call { ptr, i64 } @struct_to_string__Arena(ptr %0, { ptr, i64, { ptr, ptr, ptr } } %ua.load65)
%ua.raw67 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr68 = inttoptr i64 %ua.raw67 to ptr
%ua.load69 = load { ptr, i64, { ptr, ptr, ptr } }, ptr %ua.ptr68, align 8
%callN = call { ptr, i64 } @struct_to_string__Arena(ptr %0, { ptr, i64, { ptr, ptr, ptr } } %ua.load69)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.94
dispatch.case.102: ; preds = %match.arm.43
%ua.raw67 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr68 = inttoptr i64 %ua.raw67 to ptr
%ua.load69 = load { ptr, i64, i64 }, ptr %ua.ptr68, align 8
%callN = call { ptr, i64 } @struct_to_string__BufAlloc(ptr %0, { ptr, i64, i64 } %ua.load69)
%ua.raw71 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr72 = inttoptr i64 %ua.raw71 to ptr
%ua.load73 = load { ptr, i64, i64 }, ptr %ua.ptr72, align 8
%callN = call { ptr, i64 } @struct_to_string__BufAlloc(ptr %0, { ptr, i64, i64 } %ua.load73)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.94
dispatch.case.103: ; preds = %match.arm.43
%ua.raw71 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr72 = inttoptr i64 %ua.raw71 to ptr
%ua.load73 = load { { ptr, ptr, ptr }, i64, i64, i64 }, ptr %ua.ptr72, align 8
%callN = call { ptr, i64 } @struct_to_string__TrackingAllocator(ptr %0, { { ptr, ptr, ptr }, i64, i64, i64 } %ua.load73)
%ua.raw75 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr76 = inttoptr i64 %ua.raw75 to ptr
%ua.load77 = load { { ptr, ptr, ptr }, i64, i64, i64 }, ptr %ua.ptr76, align 8
%callN = call { ptr, i64 } @struct_to_string__TrackingAllocator(ptr %0, { { ptr, ptr, ptr }, i64, i64, i64 } %ua.load77)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.94
dispatch.case.104: ; preds = %match.arm.43
%ua.raw75 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr76 = inttoptr i64 %ua.raw75 to ptr
%ua.load77 = load { { ptr, ptr, ptr }, ptr }, ptr %ua.ptr76, align 8
%callN = call { ptr, i64 } @struct_to_string__Context(ptr %0, { { ptr, ptr, ptr }, ptr } %ua.load77)
%ua.raw79 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr80 = inttoptr i64 %ua.raw79 to ptr
%ua.load81 = load { { ptr, ptr, ptr }, ptr }, ptr %ua.ptr80, align 8
%callN = call { ptr, i64 } @struct_to_string__Context(ptr %0, { { ptr, ptr, ptr }, ptr } %ua.load81)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.94
@@ -1395,18 +1401,18 @@ dispatch.default.151: ; preds = %match.arm.47
br label %dispatch.merge.150
dispatch.case.152: ; preds = %match.arm.47
%ua.raw80 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr81 = inttoptr i64 %ua.raw80 to ptr
%ua.load82 = load [4 x i64], ptr %ua.ptr81, align 8
%callN = call { ptr, i64 } @array_to_string__AR_4_s64(ptr %0, [4 x i64] %ua.load82)
%ua.raw84 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr85 = inttoptr i64 %ua.raw84 to ptr
%ua.load86 = load [4 x i64], ptr %ua.ptr85, align 8
%callN = call { ptr, i64 } @array_to_string__AR_4_s64(ptr %0, [4 x i64] %ua.load86)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.150
dispatch.case.153: ; preds = %match.arm.47
%ua.raw84 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr85 = inttoptr i64 %ua.raw84 to ptr
%ua.load86 = load [1 x { i64, i64 }], ptr %ua.ptr85, align 8
%callN = call { ptr, i64 } @array_to_string__AR_1_Any(ptr %0, [1 x { i64, i64 }] %ua.load86)
%ua.raw88 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr89 = inttoptr i64 %ua.raw88 to ptr
%ua.load90 = load [1 x { i64, i64 }], ptr %ua.ptr89, align 8
%callN = call { ptr, i64 } @array_to_string__AR_1_Any(ptr %0, [1 x { i64, i64 }] %ua.load90)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.150
@@ -1420,18 +1426,18 @@ dispatch.default.165: ; preds = %match.arm.48
br label %dispatch.merge.164
dispatch.case.166: ; preds = %match.arm.48
%ua.raw89 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr90 = inttoptr i64 %ua.raw89 to ptr
%ua.load91 = load { ptr, i64 }, ptr %ua.ptr90, align 8
%callN = call { ptr, i64 } @slice_to_string__string(ptr %0, { ptr, i64 } %ua.load91)
%ua.raw93 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr94 = inttoptr i64 %ua.raw93 to ptr
%ua.load95 = load { ptr, i64 }, ptr %ua.ptr94, align 8
%callN = call { ptr, i64 } @slice_to_string__string(ptr %0, { ptr, i64 } %ua.load95)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.164
dispatch.case.167: ; preds = %match.arm.48
%ua.raw93 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr94 = inttoptr i64 %ua.raw93 to ptr
%ua.load95 = load { ptr, i64 }, ptr %ua.ptr94, align 8
%callN = call { ptr, i64 } @slice_to_string__Any(ptr %0, { ptr, i64 } %ua.load95)
%ua.raw97 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr98 = inttoptr i64 %ua.raw97 to ptr
%ua.load99 = load { ptr, i64 }, ptr %ua.ptr98, align 8
%callN = call { ptr, i64 } @slice_to_string__Any(ptr %0, { ptr, i64 } %ua.load99)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.164
@@ -1445,128 +1451,128 @@ dispatch.default.179: ; preds = %match.arm.49
br label %dispatch.merge.178
dispatch.case.180: ; preds = %match.arm.49
%ua.raw98 = extractvalue { i64, i64 } %loadN, 1
%iNp = inttoptr i64 %ua.raw98 to ptr
%ua.raw102 = extractvalue { i64, i64 } %loadN, 1
%iNp = inttoptr i64 %ua.raw102 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_void(ptr %0, ptr %iNp)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.178
dispatch.case.181: ; preds = %match.arm.49
%ua.raw100 = extractvalue { i64, i64 } %loadN, 1
%iNp101 = inttoptr i64 %ua.raw100 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_CAllocator(ptr %0, ptr %iNp101)
%ua.raw104 = extractvalue { i64, i64 } %loadN, 1
%iNp105 = inttoptr i64 %ua.raw104 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_CAllocator(ptr %0, ptr %iNp105)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.178
dispatch.case.182: ; preds = %match.arm.49
%ua.raw103 = extractvalue { i64, i64 } %loadN, 1
%iNp104 = inttoptr i64 %ua.raw103 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_GPA(ptr %0, ptr %iNp104)
%ua.raw107 = extractvalue { i64, i64 } %loadN, 1
%iNp108 = inttoptr i64 %ua.raw107 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_GPA(ptr %0, ptr %iNp108)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.178
dispatch.case.183: ; preds = %match.arm.49
%ua.raw106 = extractvalue { i64, i64 } %loadN, 1
%iNp107 = inttoptr i64 %ua.raw106 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_ArenaChunk(ptr %0, ptr %iNp107)
%ua.raw110 = extractvalue { i64, i64 } %loadN, 1
%iNp111 = inttoptr i64 %ua.raw110 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_ArenaChunk(ptr %0, ptr %iNp111)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.178
dispatch.case.184: ; preds = %match.arm.49
%ua.raw109 = extractvalue { i64, i64 } %loadN, 1
%iNp110 = inttoptr i64 %ua.raw109 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_Arena(ptr %0, ptr %iNp110)
%ua.raw113 = extractvalue { i64, i64 } %loadN, 1
%iNp114 = inttoptr i64 %ua.raw113 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_Arena(ptr %0, ptr %iNp114)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.178
dispatch.case.185: ; preds = %match.arm.49
%ua.raw112 = extractvalue { i64, i64 } %loadN, 1
%iNp113 = inttoptr i64 %ua.raw112 to ptr
%callN = call { ptr, i64 } @pointer_to_string__mptr_u8(ptr %0, ptr %iNp113)
%ua.raw116 = extractvalue { i64, i64 } %loadN, 1
%iNp117 = inttoptr i64 %ua.raw116 to ptr
%callN = call { ptr, i64 } @pointer_to_string__mptr_u8(ptr %0, ptr %iNp117)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.178
dispatch.case.186: ; preds = %match.arm.49
%ua.raw115 = extractvalue { i64, i64 } %loadN, 1
%iNp116 = inttoptr i64 %ua.raw115 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_BufAlloc(ptr %0, ptr %iNp116)
%ua.raw119 = extractvalue { i64, i64 } %loadN, 1
%iNp120 = inttoptr i64 %ua.raw119 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_BufAlloc(ptr %0, ptr %iNp120)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.178
dispatch.case.187: ; preds = %match.arm.49
%ua.raw118 = extractvalue { i64, i64 } %loadN, 1
%iNp119 = inttoptr i64 %ua.raw118 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_TrackingAllocator(ptr %0, ptr %iNp119)
%ua.raw122 = extractvalue { i64, i64 } %loadN, 1
%iNp123 = inttoptr i64 %ua.raw122 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_TrackingAllocator(ptr %0, ptr %iNp123)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.178
dispatch.case.188: ; preds = %match.arm.49
%ua.raw121 = extractvalue { i64, i64 } %loadN, 1
%iNp122 = inttoptr i64 %ua.raw121 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_ptr_CAllocator(ptr %0, ptr %iNp122)
%ua.raw125 = extractvalue { i64, i64 } %loadN, 1
%iNp126 = inttoptr i64 %ua.raw125 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_ptr_CAllocator(ptr %0, ptr %iNp126)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.178
dispatch.case.189: ; preds = %match.arm.49
%ua.raw124 = extractvalue { i64, i64 } %loadN, 1
%iNp125 = inttoptr i64 %ua.raw124 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_s64(ptr %0, ptr %iNp125)
%ua.raw128 = extractvalue { i64, i64 } %loadN, 1
%iNp129 = inttoptr i64 %ua.raw128 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_s64(ptr %0, ptr %iNp129)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.178
dispatch.case.190: ; preds = %match.arm.49
%ua.raw127 = extractvalue { i64, i64 } %loadN, 1
%iNp128 = inttoptr i64 %ua.raw127 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_ptr_void(ptr %0, ptr %iNp128)
%ua.raw131 = extractvalue { i64, i64 } %loadN, 1
%iNp132 = inttoptr i64 %ua.raw131 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_ptr_void(ptr %0, ptr %iNp132)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.178
dispatch.case.191: ; preds = %match.arm.49
%ua.raw130 = extractvalue { i64, i64 } %loadN, 1
%iNp131 = inttoptr i64 %ua.raw130 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_string(ptr %0, ptr %iNp131)
%ua.raw134 = extractvalue { i64, i64 } %loadN, 1
%iNp135 = inttoptr i64 %ua.raw134 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_string(ptr %0, ptr %iNp135)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.178
dispatch.case.192: ; preds = %match.arm.49
%ua.raw133 = extractvalue { i64, i64 } %loadN, 1
%iNp134 = inttoptr i64 %ua.raw133 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_Any(ptr %0, ptr %iNp134)
%ua.raw137 = extractvalue { i64, i64 } %loadN, 1
%iNp138 = inttoptr i64 %ua.raw137 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_Any(ptr %0, ptr %iNp138)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.178
dispatch.case.193: ; preds = %match.arm.49
%ua.raw136 = extractvalue { i64, i64 } %loadN, 1
%iNp137 = inttoptr i64 %ua.raw136 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_AR_1_Any(ptr %0, ptr %iNp137)
%ua.raw140 = extractvalue { i64, i64 } %loadN, 1
%iNp141 = inttoptr i64 %ua.raw140 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_AR_1_Any(ptr %0, ptr %iNp141)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.178
dispatch.case.194: ; preds = %match.arm.49
%ua.raw139 = extractvalue { i64, i64 } %loadN, 1
%iNp140 = inttoptr i64 %ua.raw139 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_SL_Any(ptr %0, ptr %iNp140)
%ua.raw143 = extractvalue { i64, i64 } %loadN, 1
%iNp144 = inttoptr i64 %ua.raw143 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_SL_Any(ptr %0, ptr %iNp144)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.178
dispatch.case.195: ; preds = %match.arm.49
%ua.raw142 = extractvalue { i64, i64 } %loadN, 1
%iNp143 = inttoptr i64 %ua.raw142 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_u8(ptr %0, ptr %iNp143)
%ua.raw146 = extractvalue { i64, i64 } %loadN, 1
%iNp147 = inttoptr i64 %ua.raw146 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_u8(ptr %0, ptr %iNp147)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.178
dispatch.case.196: ; preds = %match.arm.49
%ua.raw145 = extractvalue { i64, i64 } %loadN, 1
%iNp146 = inttoptr i64 %ua.raw145 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_bool(ptr %0, ptr %iNp146)
%ua.raw149 = extractvalue { i64, i64 } %loadN, 1
%iNp150 = inttoptr i64 %ua.raw149 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_bool(ptr %0, ptr %iNp150)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.178
dispatch.case.197: ; preds = %match.arm.49
%ua.raw148 = extractvalue { i64, i64 } %loadN, 1
%iNp149 = inttoptr i64 %ua.raw148 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_f64(ptr %0, ptr %iNp149)
%ua.raw152 = extractvalue { i64, i64 } %loadN, 1
%iNp153 = inttoptr i64 %ua.raw152 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_f64(ptr %0, ptr %iNp153)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.178
}

View File

@@ -1303,8 +1303,11 @@ match.arm.38: ; preds = %entry
match.arm.39: ; preds = %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry
%loadN = load { i64, i64 }, ptr %allocaN, align 8
%tiu.tid = extractvalue { i64, i64 } %loadN, 1
%tiu.gep = getelementptr inbounds [97 x i1], ptr @__sx_type_is_unsigned, i64 0, i64 %tiu.tid
%refl.tag = extractvalue { i64, i64 } %loadN, 0
%refl.val = extractvalue { i64, i64 } %loadN, 1
%refl.istype = icmp eq i64 %refl.tag, 13
%refl.tid = select i1 %refl.istype, i64 %refl.val, i64 %refl.tag
%tiu.gep = getelementptr inbounds [97 x i1], ptr @__sx_type_is_unsigned, i64 0, i64 %refl.tid
%tiu.load = load i1, ptr %tiu.gep, align 1
br i1 %tiu.load, label %if.then.53, label %if.else.54
@@ -1437,8 +1440,11 @@ match.arm.50: ; No predecessors!
match.arm.51: ; preds = %entry
%loadN = load { i64, i64 }, ptr %alloca, align 8
%tn.tid = extractvalue { i64, i64 } %loadN, 1
%tn.gep = getelementptr inbounds [97 x { ptr, i64 }], ptr @__sx_type_names, i64 0, i64 %tn.tid
%refl.tag40 = extractvalue { i64, i64 } %loadN, 0
%refl.val41 = extractvalue { i64, i64 } %loadN, 1
%refl.istype42 = icmp eq i64 %refl.tag40, 13
%refl.tid43 = select i1 %refl.istype42, i64 %refl.val41, i64 %refl.tag40
%tn.gep = getelementptr inbounds [97 x { ptr, i64 }], ptr @__sx_type_names, i64 0, i64 %refl.tid43
%tn.load = load { ptr, i64 }, ptr %tn.gep, align 8
store { ptr, i64 } %tn.load, ptr %allocaN, align 8
br label %match.merge.37
@@ -1448,15 +1454,15 @@ match.unr.52: ; preds = %entry
if.then.53: ; preds = %match.arm.39
%loadN = load { i64, i64 }, ptr %alloca, align 8
%ua.raw41 = extractvalue { i64, i64 } %loadN, 1
%callN = call { ptr, i64 } @uint_to_string(ptr %0, i64 %ua.raw41)
%ua.raw45 = extractvalue { i64, i64 } %loadN, 1
%callN = call { ptr, i64 } @uint_to_string(ptr %0, i64 %ua.raw45)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %if.merge.55
if.else.54: ; preds = %match.arm.39
%loadN = load { i64, i64 }, ptr %alloca, align 8
%ua.raw44 = extractvalue { i64, i64 } %loadN, 1
%callN = call { ptr, i64 } @int_to_string(ptr %0, i64 %ua.raw44)
%ua.raw48 = extractvalue { i64, i64 } %loadN, 1
%callN = call { ptr, i64 } @int_to_string(ptr %0, i64 %ua.raw48)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %if.merge.55
@@ -1464,16 +1470,16 @@ if.merge.55: ; preds = %if.else.54, %if.the
br label %match.merge.37
f32.unbox.81: ; preds = %match.arm.42
%ua.raw46 = extractvalue { i64, i64 } %loadN, 1
%trN = trunc i64 %ua.raw46 to i32
%ua.raw50 = extractvalue { i64, i64 } %loadN, 1
%trN = trunc i64 %ua.raw50 to i32
%iNf = bitcast i32 %trN to float
%fpext = fpext float %iNf to double
store double %fpext, ptr %allocaN, align 8
br label %float.merge.83
f64.unbox.82: ; preds = %match.arm.42
%ua.raw47 = extractvalue { i64, i64 } %loadN, 1
%iNd = bitcast i64 %ua.raw47 to double
%ua.raw51 = extractvalue { i64, i64 } %loadN, 1
%iNd = bitcast i64 %ua.raw51 to double
store double %iNd, ptr %allocaN, align 8
br label %float.merge.83
@@ -1493,122 +1499,122 @@ dispatch.default.95: ; preds = %match.arm.43
br label %dispatch.merge.94
dispatch.case.96: ; preds = %match.arm.43
%ua.raw51 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr52 = inttoptr i64 %ua.raw51 to ptr
%ua.load53 = load { { ptr, i64 }, i32, i32, { ptr, i64 } }, ptr %ua.ptr52, align 8
%callN = call { ptr, i64 } @struct_to_string__Source_Location(ptr %0, { { ptr, i64 }, i32, i32, { ptr, i64 } } %ua.load53)
%ua.raw55 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr56 = inttoptr i64 %ua.raw55 to ptr
%ua.load57 = load { { ptr, i64 }, i32, i32, { ptr, i64 } }, ptr %ua.ptr56, align 8
%callN = call { ptr, i64 } @struct_to_string__Source_Location(ptr %0, { { ptr, i64 }, i32, i32, { ptr, i64 } } %ua.load57)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.94
dispatch.case.97: ; preds = %match.arm.43
%ua.raw55 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr56 = inttoptr i64 %ua.raw55 to ptr
%ua.load57 = load { ptr, ptr, ptr }, ptr %ua.ptr56, align 8
%callN = call { ptr, i64 } @struct_to_string__Allocator(ptr %0, { ptr, ptr, ptr } %ua.load57)
%ua.raw59 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr60 = inttoptr i64 %ua.raw59 to ptr
%ua.load61 = load { ptr, ptr, ptr }, ptr %ua.ptr60, align 8
%callN = call { ptr, i64 } @struct_to_string__Allocator(ptr %0, { ptr, ptr, ptr } %ua.load61)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.94
dispatch.case.98: ; preds = %match.arm.43
%ua.raw59 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr60 = inttoptr i64 %ua.raw59 to ptr
%ua.load61 = load {}, ptr %ua.ptr60, align 1
%callN = call { ptr, i64 } @struct_to_string__CAllocator(ptr %0, {} %ua.load61)
%ua.raw63 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr64 = inttoptr i64 %ua.raw63 to ptr
%ua.load65 = load {}, ptr %ua.ptr64, align 1
%callN = call { ptr, i64 } @struct_to_string__CAllocator(ptr %0, {} %ua.load65)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.94
dispatch.case.99: ; preds = %match.arm.43
%ua.raw63 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr64 = inttoptr i64 %ua.raw63 to ptr
%ua.load65 = load { i64 }, ptr %ua.ptr64, align 8
%callN = call { ptr, i64 } @struct_to_string__GPA(ptr %0, { i64 } %ua.load65)
%ua.raw67 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr68 = inttoptr i64 %ua.raw67 to ptr
%ua.load69 = load { i64 }, ptr %ua.ptr68, align 8
%callN = call { ptr, i64 } @struct_to_string__GPA(ptr %0, { i64 } %ua.load69)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.94
dispatch.case.100: ; preds = %match.arm.43
%ua.raw67 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr68 = inttoptr i64 %ua.raw67 to ptr
%ua.load69 = load { ptr, i64 }, ptr %ua.ptr68, align 8
%callN = call { ptr, i64 } @struct_to_string__ArenaChunk(ptr %0, { ptr, i64 } %ua.load69)
%ua.raw71 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr72 = inttoptr i64 %ua.raw71 to ptr
%ua.load73 = load { ptr, i64 }, ptr %ua.ptr72, align 8
%callN = call { ptr, i64 } @struct_to_string__ArenaChunk(ptr %0, { ptr, i64 } %ua.load73)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.94
dispatch.case.101: ; preds = %match.arm.43
%ua.raw71 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr72 = inttoptr i64 %ua.raw71 to ptr
%ua.load73 = load { ptr, i64, { ptr, ptr, ptr } }, ptr %ua.ptr72, align 8
%callN = call { ptr, i64 } @struct_to_string__Arena(ptr %0, { ptr, i64, { ptr, ptr, ptr } } %ua.load73)
%ua.raw75 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr76 = inttoptr i64 %ua.raw75 to ptr
%ua.load77 = load { ptr, i64, { ptr, ptr, ptr } }, ptr %ua.ptr76, align 8
%callN = call { ptr, i64 } @struct_to_string__Arena(ptr %0, { ptr, i64, { ptr, ptr, ptr } } %ua.load77)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.94
dispatch.case.102: ; preds = %match.arm.43
%ua.raw75 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr76 = inttoptr i64 %ua.raw75 to ptr
%ua.load77 = load { ptr, i64, i64 }, ptr %ua.ptr76, align 8
%callN = call { ptr, i64 } @struct_to_string__BufAlloc(ptr %0, { ptr, i64, i64 } %ua.load77)
%ua.raw79 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr80 = inttoptr i64 %ua.raw79 to ptr
%ua.load81 = load { ptr, i64, i64 }, ptr %ua.ptr80, align 8
%callN = call { ptr, i64 } @struct_to_string__BufAlloc(ptr %0, { ptr, i64, i64 } %ua.load81)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.94
dispatch.case.103: ; preds = %match.arm.43
%ua.raw79 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr80 = inttoptr i64 %ua.raw79 to ptr
%ua.load81 = load { { ptr, ptr, ptr }, i64, i64, i64 }, ptr %ua.ptr80, align 8
%callN = call { ptr, i64 } @struct_to_string__TrackingAllocator(ptr %0, { { ptr, ptr, ptr }, i64, i64, i64 } %ua.load81)
%ua.raw83 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr84 = inttoptr i64 %ua.raw83 to ptr
%ua.load85 = load { { ptr, ptr, ptr }, i64, i64, i64 }, ptr %ua.ptr84, align 8
%callN = call { ptr, i64 } @struct_to_string__TrackingAllocator(ptr %0, { { ptr, ptr, ptr }, i64, i64, i64 } %ua.load85)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.94
dispatch.case.104: ; preds = %match.arm.43
%ua.raw83 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr84 = inttoptr i64 %ua.raw83 to ptr
%ua.load85 = load { { ptr, ptr, ptr }, ptr }, ptr %ua.ptr84, align 8
%callN = call { ptr, i64 } @struct_to_string__Context(ptr %0, { { ptr, ptr, ptr }, ptr } %ua.load85)
%ua.raw87 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr88 = inttoptr i64 %ua.raw87 to ptr
%ua.load89 = load { { ptr, ptr, ptr }, ptr }, ptr %ua.ptr88, align 8
%callN = call { ptr, i64 } @struct_to_string__Context(ptr %0, { { ptr, ptr, ptr }, ptr } %ua.load89)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.94
dispatch.case.105: ; preds = %match.arm.43
%ua.raw87 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr88 = inttoptr i64 %ua.raw87 to ptr
%ua.load89 = load { [16 x float] }, ptr %ua.ptr88, align 4
%callN = call { ptr, i64 } @struct_to_string__Mat4(ptr %0, { [16 x float] } %ua.load89)
%ua.raw91 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr92 = inttoptr i64 %ua.raw91 to ptr
%ua.load93 = load { [16 x float] }, ptr %ua.ptr92, align 4
%callN = call { ptr, i64 } @struct_to_string__Mat4(ptr %0, { [16 x float] } %ua.load93)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.94
dispatch.case.106: ; preds = %match.arm.43
%ua.raw91 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr92 = inttoptr i64 %ua.raw91 to ptr
%ua.load93 = load { float, float }, ptr %ua.ptr92, align 4
%callN = call { ptr, i64 } @struct_to_string__Vec2(ptr %0, { float, float } %ua.load93)
%ua.raw95 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr96 = inttoptr i64 %ua.raw95 to ptr
%ua.load97 = load { float, float }, ptr %ua.ptr96, align 4
%callN = call { ptr, i64 } @struct_to_string__Vec2(ptr %0, { float, float } %ua.load97)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.94
dispatch.case.107: ; preds = %match.arm.43
%ua.raw95 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr96 = inttoptr i64 %ua.raw95 to ptr
%ua.load97 = load { <3 x float> }, ptr %ua.ptr96, align 16
%callN = call { ptr, i64 } @struct_to_string__Vec__3__f32(ptr %0, { <3 x float> } %ua.load97)
%ua.raw99 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr100 = inttoptr i64 %ua.raw99 to ptr
%ua.load101 = load { <3 x float> }, ptr %ua.ptr100, align 16
%callN = call { ptr, i64 } @struct_to_string__Vec__3__f32(ptr %0, { <3 x float> } %ua.load101)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.94
dispatch.case.108: ; preds = %match.arm.43
%ua.raw99 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr100 = inttoptr i64 %ua.raw99 to ptr
%ua.load101 = load { <3 x float> }, ptr %ua.ptr100, align 16
%callN = call { ptr, i64 } @struct_to_string__Vec3(ptr %0, { <3 x float> } %ua.load101)
%ua.raw103 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr104 = inttoptr i64 %ua.raw103 to ptr
%ua.load105 = load { <3 x float> }, ptr %ua.ptr104, align 16
%callN = call { ptr, i64 } @struct_to_string__Vec3(ptr %0, { <3 x float> } %ua.load105)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.94
dispatch.case.109: ; preds = %match.arm.43
%ua.raw103 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr104 = inttoptr i64 %ua.raw103 to ptr
%ua.load105 = load { i32, i32 }, ptr %ua.ptr104, align 4
%callN = call { ptr, i64 } @struct_to_string__Complex__u32(ptr %0, { i32, i32 } %ua.load105)
%ua.raw107 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr108 = inttoptr i64 %ua.raw107 to ptr
%ua.load109 = load { i32, i32 }, ptr %ua.ptr108, align 4
%callN = call { ptr, i64 } @struct_to_string__Complex__u32(ptr %0, { i32, i32 } %ua.load109)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.94
dispatch.case.110: ; preds = %match.arm.43
%ua.raw107 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr108 = inttoptr i64 %ua.raw107 to ptr
%ua.load109 = load { i32, i32 }, ptr %ua.ptr108, align 4
%callN = call { ptr, i64 } @struct_to_string__Foo(ptr %0, { i32, i32 } %ua.load109)
%ua.raw111 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr112 = inttoptr i64 %ua.raw111 to ptr
%ua.load113 = load { i32, i32 }, ptr %ua.ptr112, align 4
%callN = call { ptr, i64 } @struct_to_string__Foo(ptr %0, { i32, i32 } %ua.load113)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.94
@@ -1622,10 +1628,10 @@ dispatch.default.187: ; preds = %match.arm.44
br label %dispatch.merge.186
dispatch.case.188: ; preds = %match.arm.44
%ua.raw112 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr113 = inttoptr i64 %ua.raw112 to ptr
%ua.load114 = load { i64, [4 x i8] }, ptr %ua.ptr113, align 8
%callN = call { ptr, i64 } @enum_to_string__Sx__f32(ptr %0, { i64, [4 x i8] } %ua.load114)
%ua.raw116 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr117 = inttoptr i64 %ua.raw116 to ptr
%ua.load118 = load { i64, [4 x i8] }, ptr %ua.ptr117, align 8
%callN = call { ptr, i64 } @enum_to_string__Sx__f32(ptr %0, { i64, [4 x i8] } %ua.load118)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.186
@@ -1639,10 +1645,10 @@ dispatch.default.192: ; preds = %match.arm.46
br label %dispatch.merge.191
dispatch.case.193: ; preds = %match.arm.46
%ua.raw117 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr118 = inttoptr i64 %ua.raw117 to ptr
%ua.load119 = load <3 x float>, ptr %ua.ptr118, align 16
%callN = call { ptr, i64 } @vector_to_string__vec_3_f32(ptr %0, <3 x float> %ua.load119)
%ua.raw121 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr122 = inttoptr i64 %ua.raw121 to ptr
%ua.load123 = load <3 x float>, ptr %ua.ptr122, align 16
%callN = call { ptr, i64 } @vector_to_string__vec_3_f32(ptr %0, <3 x float> %ua.load123)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.191
@@ -1656,34 +1662,34 @@ dispatch.default.200: ; preds = %match.arm.47
br label %dispatch.merge.199
dispatch.case.201: ; preds = %match.arm.47
%ua.raw122 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr123 = inttoptr i64 %ua.raw122 to ptr
%ua.load124 = load [4 x i64], ptr %ua.ptr123, align 8
%callN = call { ptr, i64 } @array_to_string__AR_4_s64(ptr %0, [4 x i64] %ua.load124)
%ua.raw126 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr127 = inttoptr i64 %ua.raw126 to ptr
%ua.load128 = load [4 x i64], ptr %ua.ptr127, align 8
%callN = call { ptr, i64 } @array_to_string__AR_4_s64(ptr %0, [4 x i64] %ua.load128)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.199
dispatch.case.202: ; preds = %match.arm.47
%ua.raw126 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr127 = inttoptr i64 %ua.raw126 to ptr
%ua.load128 = load [16 x float], ptr %ua.ptr127, align 4
%callN = call { ptr, i64 } @array_to_string__AR_16_f32(ptr %0, [16 x float] %ua.load128)
%ua.raw130 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr131 = inttoptr i64 %ua.raw130 to ptr
%ua.load132 = load [16 x float], ptr %ua.ptr131, align 4
%callN = call { ptr, i64 } @array_to_string__AR_16_f32(ptr %0, [16 x float] %ua.load132)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.199
dispatch.case.203: ; preds = %match.arm.47
%ua.raw130 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr131 = inttoptr i64 %ua.raw130 to ptr
%ua.load132 = load [1 x { i64, i64 }], ptr %ua.ptr131, align 8
%callN = call { ptr, i64 } @array_to_string__AR_1_Any(ptr %0, [1 x { i64, i64 }] %ua.load132)
%ua.raw134 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr135 = inttoptr i64 %ua.raw134 to ptr
%ua.load136 = load [1 x { i64, i64 }], ptr %ua.ptr135, align 8
%callN = call { ptr, i64 } @array_to_string__AR_1_Any(ptr %0, [1 x { i64, i64 }] %ua.load136)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.199
dispatch.case.204: ; preds = %match.arm.47
%ua.raw134 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr135 = inttoptr i64 %ua.raw134 to ptr
%ua.load136 = load [5 x float], ptr %ua.ptr135, align 4
%callN = call { ptr, i64 } @array_to_string__AR_5_f32(ptr %0, [5 x float] %ua.load136)
%ua.raw138 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr139 = inttoptr i64 %ua.raw138 to ptr
%ua.load140 = load [5 x float], ptr %ua.ptr139, align 4
%callN = call { ptr, i64 } @array_to_string__AR_5_f32(ptr %0, [5 x float] %ua.load140)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.199
@@ -1697,18 +1703,18 @@ dispatch.default.226: ; preds = %match.arm.48
br label %dispatch.merge.225
dispatch.case.227: ; preds = %match.arm.48
%ua.raw139 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr140 = inttoptr i64 %ua.raw139 to ptr
%ua.load141 = load { ptr, i64 }, ptr %ua.ptr140, align 8
%callN = call { ptr, i64 } @slice_to_string__string(ptr %0, { ptr, i64 } %ua.load141)
%ua.raw143 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr144 = inttoptr i64 %ua.raw143 to ptr
%ua.load145 = load { ptr, i64 }, ptr %ua.ptr144, align 8
%callN = call { ptr, i64 } @slice_to_string__string(ptr %0, { ptr, i64 } %ua.load145)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.225
dispatch.case.228: ; preds = %match.arm.48
%ua.raw143 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr144 = inttoptr i64 %ua.raw143 to ptr
%ua.load145 = load { ptr, i64 }, ptr %ua.ptr144, align 8
%callN = call { ptr, i64 } @slice_to_string__Any(ptr %0, { ptr, i64 } %ua.load145)
%ua.raw147 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr148 = inttoptr i64 %ua.raw147 to ptr
%ua.load149 = load { ptr, i64 }, ptr %ua.ptr148, align 8
%callN = call { ptr, i64 } @slice_to_string__Any(ptr %0, { ptr, i64 } %ua.load149)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.225
@@ -1722,170 +1728,170 @@ dispatch.default.240: ; preds = %match.arm.49
br label %dispatch.merge.239
dispatch.case.241: ; preds = %match.arm.49
%ua.raw148 = extractvalue { i64, i64 } %loadN, 1
%iNp = inttoptr i64 %ua.raw148 to ptr
%ua.raw152 = extractvalue { i64, i64 } %loadN, 1
%iNp = inttoptr i64 %ua.raw152 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_void(ptr %0, ptr %iNp)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.239
dispatch.case.242: ; preds = %match.arm.49
%ua.raw150 = extractvalue { i64, i64 } %loadN, 1
%iNp151 = inttoptr i64 %ua.raw150 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_CAllocator(ptr %0, ptr %iNp151)
%ua.raw154 = extractvalue { i64, i64 } %loadN, 1
%iNp155 = inttoptr i64 %ua.raw154 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_CAllocator(ptr %0, ptr %iNp155)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.239
dispatch.case.243: ; preds = %match.arm.49
%ua.raw153 = extractvalue { i64, i64 } %loadN, 1
%iNp154 = inttoptr i64 %ua.raw153 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_GPA(ptr %0, ptr %iNp154)
%ua.raw157 = extractvalue { i64, i64 } %loadN, 1
%iNp158 = inttoptr i64 %ua.raw157 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_GPA(ptr %0, ptr %iNp158)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.239
dispatch.case.244: ; preds = %match.arm.49
%ua.raw156 = extractvalue { i64, i64 } %loadN, 1
%iNp157 = inttoptr i64 %ua.raw156 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_ArenaChunk(ptr %0, ptr %iNp157)
%ua.raw160 = extractvalue { i64, i64 } %loadN, 1
%iNp161 = inttoptr i64 %ua.raw160 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_ArenaChunk(ptr %0, ptr %iNp161)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.239
dispatch.case.245: ; preds = %match.arm.49
%ua.raw159 = extractvalue { i64, i64 } %loadN, 1
%iNp160 = inttoptr i64 %ua.raw159 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_Arena(ptr %0, ptr %iNp160)
%ua.raw163 = extractvalue { i64, i64 } %loadN, 1
%iNp164 = inttoptr i64 %ua.raw163 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_Arena(ptr %0, ptr %iNp164)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.239
dispatch.case.246: ; preds = %match.arm.49
%ua.raw162 = extractvalue { i64, i64 } %loadN, 1
%iNp163 = inttoptr i64 %ua.raw162 to ptr
%callN = call { ptr, i64 } @pointer_to_string__mptr_u8(ptr %0, ptr %iNp163)
%ua.raw166 = extractvalue { i64, i64 } %loadN, 1
%iNp167 = inttoptr i64 %ua.raw166 to ptr
%callN = call { ptr, i64 } @pointer_to_string__mptr_u8(ptr %0, ptr %iNp167)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.239
dispatch.case.247: ; preds = %match.arm.49
%ua.raw165 = extractvalue { i64, i64 } %loadN, 1
%iNp166 = inttoptr i64 %ua.raw165 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_BufAlloc(ptr %0, ptr %iNp166)
%ua.raw169 = extractvalue { i64, i64 } %loadN, 1
%iNp170 = inttoptr i64 %ua.raw169 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_BufAlloc(ptr %0, ptr %iNp170)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.239
dispatch.case.248: ; preds = %match.arm.49
%ua.raw168 = extractvalue { i64, i64 } %loadN, 1
%iNp169 = inttoptr i64 %ua.raw168 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_TrackingAllocator(ptr %0, ptr %iNp169)
%ua.raw172 = extractvalue { i64, i64 } %loadN, 1
%iNp173 = inttoptr i64 %ua.raw172 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_TrackingAllocator(ptr %0, ptr %iNp173)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.239
dispatch.case.249: ; preds = %match.arm.49
%ua.raw171 = extractvalue { i64, i64 } %loadN, 1
%iNp172 = inttoptr i64 %ua.raw171 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_ptr_CAllocator(ptr %0, ptr %iNp172)
%ua.raw175 = extractvalue { i64, i64 } %loadN, 1
%iNp176 = inttoptr i64 %ua.raw175 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_ptr_CAllocator(ptr %0, ptr %iNp176)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.239
dispatch.case.250: ; preds = %match.arm.49
%ua.raw174 = extractvalue { i64, i64 } %loadN, 1
%iNp175 = inttoptr i64 %ua.raw174 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_s64(ptr %0, ptr %iNp175)
%ua.raw178 = extractvalue { i64, i64 } %loadN, 1
%iNp179 = inttoptr i64 %ua.raw178 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_s64(ptr %0, ptr %iNp179)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.239
dispatch.case.251: ; preds = %match.arm.49
%ua.raw177 = extractvalue { i64, i64 } %loadN, 1
%iNp178 = inttoptr i64 %ua.raw177 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_ptr_void(ptr %0, ptr %iNp178)
%ua.raw181 = extractvalue { i64, i64 } %loadN, 1
%iNp182 = inttoptr i64 %ua.raw181 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_ptr_void(ptr %0, ptr %iNp182)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.239
dispatch.case.252: ; preds = %match.arm.49
%ua.raw180 = extractvalue { i64, i64 } %loadN, 1
%iNp181 = inttoptr i64 %ua.raw180 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_Vec3(ptr %0, ptr %iNp181)
%ua.raw184 = extractvalue { i64, i64 } %loadN, 1
%iNp185 = inttoptr i64 %ua.raw184 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_Vec3(ptr %0, ptr %iNp185)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.239
dispatch.case.253: ; preds = %match.arm.49
%ua.raw183 = extractvalue { i64, i64 } %loadN, 1
%iNp184 = inttoptr i64 %ua.raw183 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_string(ptr %0, ptr %iNp184)
%ua.raw187 = extractvalue { i64, i64 } %loadN, 1
%iNp188 = inttoptr i64 %ua.raw187 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_string(ptr %0, ptr %iNp188)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.239
dispatch.case.254: ; preds = %match.arm.49
%ua.raw186 = extractvalue { i64, i64 } %loadN, 1
%iNp187 = inttoptr i64 %ua.raw186 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_Any(ptr %0, ptr %iNp187)
%ua.raw190 = extractvalue { i64, i64 } %loadN, 1
%iNp191 = inttoptr i64 %ua.raw190 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_Any(ptr %0, ptr %iNp191)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.239
dispatch.case.255: ; preds = %match.arm.49
%ua.raw189 = extractvalue { i64, i64 } %loadN, 1
%iNp190 = inttoptr i64 %ua.raw189 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_AR_1_Any(ptr %0, ptr %iNp190)
%ua.raw193 = extractvalue { i64, i64 } %loadN, 1
%iNp194 = inttoptr i64 %ua.raw193 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_AR_1_Any(ptr %0, ptr %iNp194)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.239
dispatch.case.256: ; preds = %match.arm.49
%ua.raw192 = extractvalue { i64, i64 } %loadN, 1
%iNp193 = inttoptr i64 %ua.raw192 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_SL_Any(ptr %0, ptr %iNp193)
%ua.raw196 = extractvalue { i64, i64 } %loadN, 1
%iNp197 = inttoptr i64 %ua.raw196 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_SL_Any(ptr %0, ptr %iNp197)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.239
dispatch.case.257: ; preds = %match.arm.49
%ua.raw195 = extractvalue { i64, i64 } %loadN, 1
%iNp196 = inttoptr i64 %ua.raw195 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_u8(ptr %0, ptr %iNp196)
%ua.raw199 = extractvalue { i64, i64 } %loadN, 1
%iNp200 = inttoptr i64 %ua.raw199 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_u8(ptr %0, ptr %iNp200)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.239
dispatch.case.258: ; preds = %match.arm.49
%ua.raw198 = extractvalue { i64, i64 } %loadN, 1
%iNp199 = inttoptr i64 %ua.raw198 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_bool(ptr %0, ptr %iNp199)
%ua.raw202 = extractvalue { i64, i64 } %loadN, 1
%iNp203 = inttoptr i64 %ua.raw202 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_bool(ptr %0, ptr %iNp203)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.239
dispatch.case.259: ; preds = %match.arm.49
%ua.raw201 = extractvalue { i64, i64 } %loadN, 1
%iNp202 = inttoptr i64 %ua.raw201 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_f32(ptr %0, ptr %iNp202)
%ua.raw205 = extractvalue { i64, i64 } %loadN, 1
%iNp206 = inttoptr i64 %ua.raw205 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_f32(ptr %0, ptr %iNp206)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.239
dispatch.case.260: ; preds = %match.arm.49
%ua.raw204 = extractvalue { i64, i64 } %loadN, 1
%iNp205 = inttoptr i64 %ua.raw204 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_vec_3_f32(ptr %0, ptr %iNp205)
%ua.raw208 = extractvalue { i64, i64 } %loadN, 1
%iNp209 = inttoptr i64 %ua.raw208 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_vec_3_f32(ptr %0, ptr %iNp209)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.239
dispatch.case.261: ; preds = %match.arm.49
%ua.raw207 = extractvalue { i64, i64 } %loadN, 1
%iNp208 = inttoptr i64 %ua.raw207 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_AR_5_f32(ptr %0, ptr %iNp208)
%ua.raw211 = extractvalue { i64, i64 } %loadN, 1
%iNp212 = inttoptr i64 %ua.raw211 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_AR_5_f32(ptr %0, ptr %iNp212)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.239
dispatch.case.262: ; preds = %match.arm.49
%ua.raw210 = extractvalue { i64, i64 } %loadN, 1
%iNp211 = inttoptr i64 %ua.raw210 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_Foo(ptr %0, ptr %iNp211)
%ua.raw214 = extractvalue { i64, i64 } %loadN, 1
%iNp215 = inttoptr i64 %ua.raw214 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_Foo(ptr %0, ptr %iNp215)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.239
dispatch.case.263: ; preds = %match.arm.49
%ua.raw213 = extractvalue { i64, i64 } %loadN, 1
%iNp214 = inttoptr i64 %ua.raw213 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_f64(ptr %0, ptr %iNp214)
%ua.raw217 = extractvalue { i64, i64 } %loadN, 1
%iNp218 = inttoptr i64 %ua.raw217 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_f64(ptr %0, ptr %iNp218)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.239
dispatch.case.264: ; preds = %match.arm.49
%ua.raw216 = extractvalue { i64, i64 } %loadN, 1
%iNp217 = inttoptr i64 %ua.raw216 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_Sx__f32(ptr %0, ptr %iNp217)
%ua.raw220 = extractvalue { i64, i64 } %loadN, 1
%iNp221 = inttoptr i64 %ua.raw220 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_Sx__f32(ptr %0, ptr %iNp221)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.239
}

View File

@@ -1161,8 +1161,11 @@ match.arm.38: ; preds = %entry
match.arm.39: ; preds = %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry
%loadN = load { i64, i64 }, ptr %allocaN, align 8
%tiu.tid = extractvalue { i64, i64 } %loadN, 1
%tiu.gep = getelementptr inbounds [74 x i1], ptr @__sx_type_is_unsigned, i64 0, i64 %tiu.tid
%refl.tag = extractvalue { i64, i64 } %loadN, 0
%refl.val = extractvalue { i64, i64 } %loadN, 1
%refl.istype = icmp eq i64 %refl.tag, 13
%refl.tid = select i1 %refl.istype, i64 %refl.val, i64 %refl.tag
%tiu.gep = getelementptr inbounds [74 x i1], ptr @__sx_type_is_unsigned, i64 0, i64 %refl.tid
%tiu.load = load i1, ptr %tiu.gep, align 1
br i1 %tiu.load, label %if.then.53, label %if.else.54
@@ -1270,8 +1273,11 @@ match.arm.50: ; No predecessors!
match.arm.51: ; preds = %entry
%loadN = load { i64, i64 }, ptr %alloca, align 8
%tn.tid = extractvalue { i64, i64 } %loadN, 1
%tn.gep = getelementptr inbounds [74 x { ptr, i64 }], ptr @__sx_type_names, i64 0, i64 %tn.tid
%refl.tag32 = extractvalue { i64, i64 } %loadN, 0
%refl.val33 = extractvalue { i64, i64 } %loadN, 1
%refl.istype34 = icmp eq i64 %refl.tag32, 13
%refl.tid35 = select i1 %refl.istype34, i64 %refl.val33, i64 %refl.tag32
%tn.gep = getelementptr inbounds [74 x { ptr, i64 }], ptr @__sx_type_names, i64 0, i64 %refl.tid35
%tn.load = load { ptr, i64 }, ptr %tn.gep, align 8
store { ptr, i64 } %tn.load, ptr %allocaN, align 8
br label %match.merge.37
@@ -1281,15 +1287,15 @@ match.unr.52: ; preds = %entry
if.then.53: ; preds = %match.arm.39
%loadN = load { i64, i64 }, ptr %alloca, align 8
%ua.raw33 = extractvalue { i64, i64 } %loadN, 1
%callN = call { ptr, i64 } @uint_to_string(ptr %0, i64 %ua.raw33)
%ua.raw37 = extractvalue { i64, i64 } %loadN, 1
%callN = call { ptr, i64 } @uint_to_string(ptr %0, i64 %ua.raw37)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %if.merge.55
if.else.54: ; preds = %match.arm.39
%loadN = load { i64, i64 }, ptr %alloca, align 8
%ua.raw36 = extractvalue { i64, i64 } %loadN, 1
%callN = call { ptr, i64 } @int_to_string(ptr %0, i64 %ua.raw36)
%ua.raw40 = extractvalue { i64, i64 } %loadN, 1
%callN = call { ptr, i64 } @int_to_string(ptr %0, i64 %ua.raw40)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %if.merge.55
@@ -1297,16 +1303,16 @@ if.merge.55: ; preds = %if.else.54, %if.the
br label %match.merge.37
f32.unbox.81: ; preds = %match.arm.42
%ua.raw38 = extractvalue { i64, i64 } %loadN, 1
%trN = trunc i64 %ua.raw38 to i32
%ua.raw42 = extractvalue { i64, i64 } %loadN, 1
%trN = trunc i64 %ua.raw42 to i32
%iNf = bitcast i32 %trN to float
%fpext = fpext float %iNf to double
store double %fpext, ptr %allocaN, align 8
br label %float.merge.83
f64.unbox.82: ; preds = %match.arm.42
%ua.raw39 = extractvalue { i64, i64 } %loadN, 1
%iNd = bitcast i64 %ua.raw39 to double
%ua.raw43 = extractvalue { i64, i64 } %loadN, 1
%iNd = bitcast i64 %ua.raw43 to double
store double %iNd, ptr %allocaN, align 8
br label %float.merge.83
@@ -1326,74 +1332,74 @@ dispatch.default.95: ; preds = %match.arm.43
br label %dispatch.merge.94
dispatch.case.96: ; preds = %match.arm.43
%ua.raw43 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr44 = inttoptr i64 %ua.raw43 to ptr
%ua.load45 = load { { ptr, i64 }, i32, i32, { ptr, i64 } }, ptr %ua.ptr44, align 8
%callN = call { ptr, i64 } @struct_to_string__Source_Location(ptr %0, { { ptr, i64 }, i32, i32, { ptr, i64 } } %ua.load45)
%ua.raw47 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr48 = inttoptr i64 %ua.raw47 to ptr
%ua.load49 = load { { ptr, i64 }, i32, i32, { ptr, i64 } }, ptr %ua.ptr48, align 8
%callN = call { ptr, i64 } @struct_to_string__Source_Location(ptr %0, { { ptr, i64 }, i32, i32, { ptr, i64 } } %ua.load49)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.94
dispatch.case.97: ; preds = %match.arm.43
%ua.raw47 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr48 = inttoptr i64 %ua.raw47 to ptr
%ua.load49 = load { ptr, ptr, ptr }, ptr %ua.ptr48, align 8
%callN = call { ptr, i64 } @struct_to_string__Allocator(ptr %0, { ptr, ptr, ptr } %ua.load49)
%ua.raw51 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr52 = inttoptr i64 %ua.raw51 to ptr
%ua.load53 = load { ptr, ptr, ptr }, ptr %ua.ptr52, align 8
%callN = call { ptr, i64 } @struct_to_string__Allocator(ptr %0, { ptr, ptr, ptr } %ua.load53)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.94
dispatch.case.98: ; preds = %match.arm.43
%ua.raw51 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr52 = inttoptr i64 %ua.raw51 to ptr
%ua.load53 = load {}, ptr %ua.ptr52, align 1
%callN = call { ptr, i64 } @struct_to_string__CAllocator(ptr %0, {} %ua.load53)
%ua.raw55 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr56 = inttoptr i64 %ua.raw55 to ptr
%ua.load57 = load {}, ptr %ua.ptr56, align 1
%callN = call { ptr, i64 } @struct_to_string__CAllocator(ptr %0, {} %ua.load57)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.94
dispatch.case.99: ; preds = %match.arm.43
%ua.raw55 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr56 = inttoptr i64 %ua.raw55 to ptr
%ua.load57 = load { i64 }, ptr %ua.ptr56, align 8
%callN = call { ptr, i64 } @struct_to_string__GPA(ptr %0, { i64 } %ua.load57)
%ua.raw59 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr60 = inttoptr i64 %ua.raw59 to ptr
%ua.load61 = load { i64 }, ptr %ua.ptr60, align 8
%callN = call { ptr, i64 } @struct_to_string__GPA(ptr %0, { i64 } %ua.load61)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.94
dispatch.case.100: ; preds = %match.arm.43
%ua.raw59 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr60 = inttoptr i64 %ua.raw59 to ptr
%ua.load61 = load { ptr, i64 }, ptr %ua.ptr60, align 8
%callN = call { ptr, i64 } @struct_to_string__ArenaChunk(ptr %0, { ptr, i64 } %ua.load61)
%ua.raw63 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr64 = inttoptr i64 %ua.raw63 to ptr
%ua.load65 = load { ptr, i64 }, ptr %ua.ptr64, align 8
%callN = call { ptr, i64 } @struct_to_string__ArenaChunk(ptr %0, { ptr, i64 } %ua.load65)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.94
dispatch.case.101: ; preds = %match.arm.43
%ua.raw63 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr64 = inttoptr i64 %ua.raw63 to ptr
%ua.load65 = load { ptr, i64, { ptr, ptr, ptr } }, ptr %ua.ptr64, align 8
%callN = call { ptr, i64 } @struct_to_string__Arena(ptr %0, { ptr, i64, { ptr, ptr, ptr } } %ua.load65)
%ua.raw67 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr68 = inttoptr i64 %ua.raw67 to ptr
%ua.load69 = load { ptr, i64, { ptr, ptr, ptr } }, ptr %ua.ptr68, align 8
%callN = call { ptr, i64 } @struct_to_string__Arena(ptr %0, { ptr, i64, { ptr, ptr, ptr } } %ua.load69)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.94
dispatch.case.102: ; preds = %match.arm.43
%ua.raw67 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr68 = inttoptr i64 %ua.raw67 to ptr
%ua.load69 = load { ptr, i64, i64 }, ptr %ua.ptr68, align 8
%callN = call { ptr, i64 } @struct_to_string__BufAlloc(ptr %0, { ptr, i64, i64 } %ua.load69)
%ua.raw71 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr72 = inttoptr i64 %ua.raw71 to ptr
%ua.load73 = load { ptr, i64, i64 }, ptr %ua.ptr72, align 8
%callN = call { ptr, i64 } @struct_to_string__BufAlloc(ptr %0, { ptr, i64, i64 } %ua.load73)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.94
dispatch.case.103: ; preds = %match.arm.43
%ua.raw71 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr72 = inttoptr i64 %ua.raw71 to ptr
%ua.load73 = load { { ptr, ptr, ptr }, i64, i64, i64 }, ptr %ua.ptr72, align 8
%callN = call { ptr, i64 } @struct_to_string__TrackingAllocator(ptr %0, { { ptr, ptr, ptr }, i64, i64, i64 } %ua.load73)
%ua.raw75 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr76 = inttoptr i64 %ua.raw75 to ptr
%ua.load77 = load { { ptr, ptr, ptr }, i64, i64, i64 }, ptr %ua.ptr76, align 8
%callN = call { ptr, i64 } @struct_to_string__TrackingAllocator(ptr %0, { { ptr, ptr, ptr }, i64, i64, i64 } %ua.load77)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.94
dispatch.case.104: ; preds = %match.arm.43
%ua.raw75 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr76 = inttoptr i64 %ua.raw75 to ptr
%ua.load77 = load { { ptr, ptr, ptr }, ptr }, ptr %ua.ptr76, align 8
%callN = call { ptr, i64 } @struct_to_string__Context(ptr %0, { { ptr, ptr, ptr }, ptr } %ua.load77)
%ua.raw79 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr80 = inttoptr i64 %ua.raw79 to ptr
%ua.load81 = load { { ptr, ptr, ptr }, ptr }, ptr %ua.ptr80, align 8
%callN = call { ptr, i64 } @struct_to_string__Context(ptr %0, { { ptr, ptr, ptr }, ptr } %ua.load81)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.94
@@ -1407,18 +1413,18 @@ dispatch.default.151: ; preds = %match.arm.47
br label %dispatch.merge.150
dispatch.case.152: ; preds = %match.arm.47
%ua.raw80 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr81 = inttoptr i64 %ua.raw80 to ptr
%ua.load82 = load [4 x i64], ptr %ua.ptr81, align 8
%callN = call { ptr, i64 } @array_to_string__AR_4_s64(ptr %0, [4 x i64] %ua.load82)
%ua.raw84 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr85 = inttoptr i64 %ua.raw84 to ptr
%ua.load86 = load [4 x i64], ptr %ua.ptr85, align 8
%callN = call { ptr, i64 } @array_to_string__AR_4_s64(ptr %0, [4 x i64] %ua.load86)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.150
dispatch.case.153: ; preds = %match.arm.47
%ua.raw84 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr85 = inttoptr i64 %ua.raw84 to ptr
%ua.load86 = load [1 x { i64, i64 }], ptr %ua.ptr85, align 8
%callN = call { ptr, i64 } @array_to_string__AR_1_Any(ptr %0, [1 x { i64, i64 }] %ua.load86)
%ua.raw88 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr89 = inttoptr i64 %ua.raw88 to ptr
%ua.load90 = load [1 x { i64, i64 }], ptr %ua.ptr89, align 8
%callN = call { ptr, i64 } @array_to_string__AR_1_Any(ptr %0, [1 x { i64, i64 }] %ua.load90)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.150
@@ -1432,18 +1438,18 @@ dispatch.default.165: ; preds = %match.arm.48
br label %dispatch.merge.164
dispatch.case.166: ; preds = %match.arm.48
%ua.raw89 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr90 = inttoptr i64 %ua.raw89 to ptr
%ua.load91 = load { ptr, i64 }, ptr %ua.ptr90, align 8
%callN = call { ptr, i64 } @slice_to_string__string(ptr %0, { ptr, i64 } %ua.load91)
%ua.raw93 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr94 = inttoptr i64 %ua.raw93 to ptr
%ua.load95 = load { ptr, i64 }, ptr %ua.ptr94, align 8
%callN = call { ptr, i64 } @slice_to_string__string(ptr %0, { ptr, i64 } %ua.load95)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.164
dispatch.case.167: ; preds = %match.arm.48
%ua.raw93 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr94 = inttoptr i64 %ua.raw93 to ptr
%ua.load95 = load { ptr, i64 }, ptr %ua.ptr94, align 8
%callN = call { ptr, i64 } @slice_to_string__Any(ptr %0, { ptr, i64 } %ua.load95)
%ua.raw97 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr98 = inttoptr i64 %ua.raw97 to ptr
%ua.load99 = load { ptr, i64 }, ptr %ua.ptr98, align 8
%callN = call { ptr, i64 } @slice_to_string__Any(ptr %0, { ptr, i64 } %ua.load99)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.164
@@ -1457,135 +1463,135 @@ dispatch.default.179: ; preds = %match.arm.49
br label %dispatch.merge.178
dispatch.case.180: ; preds = %match.arm.49
%ua.raw98 = extractvalue { i64, i64 } %loadN, 1
%iNp = inttoptr i64 %ua.raw98 to ptr
%ua.raw102 = extractvalue { i64, i64 } %loadN, 1
%iNp = inttoptr i64 %ua.raw102 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_void(ptr %0, ptr %iNp)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.178
dispatch.case.181: ; preds = %match.arm.49
%ua.raw100 = extractvalue { i64, i64 } %loadN, 1
%iNp101 = inttoptr i64 %ua.raw100 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_CAllocator(ptr %0, ptr %iNp101)
%ua.raw104 = extractvalue { i64, i64 } %loadN, 1
%iNp105 = inttoptr i64 %ua.raw104 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_CAllocator(ptr %0, ptr %iNp105)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.178
dispatch.case.182: ; preds = %match.arm.49
%ua.raw103 = extractvalue { i64, i64 } %loadN, 1
%iNp104 = inttoptr i64 %ua.raw103 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_GPA(ptr %0, ptr %iNp104)
%ua.raw107 = extractvalue { i64, i64 } %loadN, 1
%iNp108 = inttoptr i64 %ua.raw107 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_GPA(ptr %0, ptr %iNp108)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.178
dispatch.case.183: ; preds = %match.arm.49
%ua.raw106 = extractvalue { i64, i64 } %loadN, 1
%iNp107 = inttoptr i64 %ua.raw106 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_ArenaChunk(ptr %0, ptr %iNp107)
%ua.raw110 = extractvalue { i64, i64 } %loadN, 1
%iNp111 = inttoptr i64 %ua.raw110 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_ArenaChunk(ptr %0, ptr %iNp111)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.178
dispatch.case.184: ; preds = %match.arm.49
%ua.raw109 = extractvalue { i64, i64 } %loadN, 1
%iNp110 = inttoptr i64 %ua.raw109 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_Arena(ptr %0, ptr %iNp110)
%ua.raw113 = extractvalue { i64, i64 } %loadN, 1
%iNp114 = inttoptr i64 %ua.raw113 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_Arena(ptr %0, ptr %iNp114)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.178
dispatch.case.185: ; preds = %match.arm.49
%ua.raw112 = extractvalue { i64, i64 } %loadN, 1
%iNp113 = inttoptr i64 %ua.raw112 to ptr
%callN = call { ptr, i64 } @pointer_to_string__mptr_u8(ptr %0, ptr %iNp113)
%ua.raw116 = extractvalue { i64, i64 } %loadN, 1
%iNp117 = inttoptr i64 %ua.raw116 to ptr
%callN = call { ptr, i64 } @pointer_to_string__mptr_u8(ptr %0, ptr %iNp117)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.178
dispatch.case.186: ; preds = %match.arm.49
%ua.raw115 = extractvalue { i64, i64 } %loadN, 1
%iNp116 = inttoptr i64 %ua.raw115 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_BufAlloc(ptr %0, ptr %iNp116)
%ua.raw119 = extractvalue { i64, i64 } %loadN, 1
%iNp120 = inttoptr i64 %ua.raw119 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_BufAlloc(ptr %0, ptr %iNp120)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.178
dispatch.case.187: ; preds = %match.arm.49
%ua.raw118 = extractvalue { i64, i64 } %loadN, 1
%iNp119 = inttoptr i64 %ua.raw118 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_TrackingAllocator(ptr %0, ptr %iNp119)
%ua.raw122 = extractvalue { i64, i64 } %loadN, 1
%iNp123 = inttoptr i64 %ua.raw122 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_TrackingAllocator(ptr %0, ptr %iNp123)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.178
dispatch.case.188: ; preds = %match.arm.49
%ua.raw121 = extractvalue { i64, i64 } %loadN, 1
%iNp122 = inttoptr i64 %ua.raw121 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_ptr_CAllocator(ptr %0, ptr %iNp122)
%ua.raw125 = extractvalue { i64, i64 } %loadN, 1
%iNp126 = inttoptr i64 %ua.raw125 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_ptr_CAllocator(ptr %0, ptr %iNp126)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.178
dispatch.case.189: ; preds = %match.arm.49
%ua.raw124 = extractvalue { i64, i64 } %loadN, 1
%iNp125 = inttoptr i64 %ua.raw124 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_s64(ptr %0, ptr %iNp125)
%ua.raw128 = extractvalue { i64, i64 } %loadN, 1
%iNp129 = inttoptr i64 %ua.raw128 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_s64(ptr %0, ptr %iNp129)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.178
dispatch.case.190: ; preds = %match.arm.49
%ua.raw127 = extractvalue { i64, i64 } %loadN, 1
%iNp128 = inttoptr i64 %ua.raw127 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_ptr_void(ptr %0, ptr %iNp128)
%ua.raw131 = extractvalue { i64, i64 } %loadN, 1
%iNp132 = inttoptr i64 %ua.raw131 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_ptr_void(ptr %0, ptr %iNp132)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.178
dispatch.case.191: ; preds = %match.arm.49
%ua.raw130 = extractvalue { i64, i64 } %loadN, 1
%iNp131 = inttoptr i64 %ua.raw130 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_fn_s32_s32__s32(ptr %0, ptr %iNp131)
%ua.raw134 = extractvalue { i64, i64 } %loadN, 1
%iNp135 = inttoptr i64 %ua.raw134 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_fn_s32_s32__s32(ptr %0, ptr %iNp135)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.178
dispatch.case.192: ; preds = %match.arm.49
%ua.raw133 = extractvalue { i64, i64 } %loadN, 1
%iNp134 = inttoptr i64 %ua.raw133 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_s32(ptr %0, ptr %iNp134)
%ua.raw137 = extractvalue { i64, i64 } %loadN, 1
%iNp138 = inttoptr i64 %ua.raw137 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_s32(ptr %0, ptr %iNp138)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.178
dispatch.case.193: ; preds = %match.arm.49
%ua.raw136 = extractvalue { i64, i64 } %loadN, 1
%iNp137 = inttoptr i64 %ua.raw136 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_string(ptr %0, ptr %iNp137)
%ua.raw140 = extractvalue { i64, i64 } %loadN, 1
%iNp141 = inttoptr i64 %ua.raw140 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_string(ptr %0, ptr %iNp141)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.178
dispatch.case.194: ; preds = %match.arm.49
%ua.raw139 = extractvalue { i64, i64 } %loadN, 1
%iNp140 = inttoptr i64 %ua.raw139 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_Any(ptr %0, ptr %iNp140)
%ua.raw143 = extractvalue { i64, i64 } %loadN, 1
%iNp144 = inttoptr i64 %ua.raw143 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_Any(ptr %0, ptr %iNp144)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.178
dispatch.case.195: ; preds = %match.arm.49
%ua.raw142 = extractvalue { i64, i64 } %loadN, 1
%iNp143 = inttoptr i64 %ua.raw142 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_AR_1_Any(ptr %0, ptr %iNp143)
%ua.raw146 = extractvalue { i64, i64 } %loadN, 1
%iNp147 = inttoptr i64 %ua.raw146 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_AR_1_Any(ptr %0, ptr %iNp147)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.178
dispatch.case.196: ; preds = %match.arm.49
%ua.raw145 = extractvalue { i64, i64 } %loadN, 1
%iNp146 = inttoptr i64 %ua.raw145 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_SL_Any(ptr %0, ptr %iNp146)
%ua.raw149 = extractvalue { i64, i64 } %loadN, 1
%iNp150 = inttoptr i64 %ua.raw149 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_SL_Any(ptr %0, ptr %iNp150)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.178
dispatch.case.197: ; preds = %match.arm.49
%ua.raw148 = extractvalue { i64, i64 } %loadN, 1
%iNp149 = inttoptr i64 %ua.raw148 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_u8(ptr %0, ptr %iNp149)
%ua.raw152 = extractvalue { i64, i64 } %loadN, 1
%iNp153 = inttoptr i64 %ua.raw152 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_u8(ptr %0, ptr %iNp153)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.178
dispatch.case.198: ; preds = %match.arm.49
%ua.raw151 = extractvalue { i64, i64 } %loadN, 1
%iNp152 = inttoptr i64 %ua.raw151 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_bool(ptr %0, ptr %iNp152)
%ua.raw155 = extractvalue { i64, i64 } %loadN, 1
%iNp156 = inttoptr i64 %ua.raw155 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_bool(ptr %0, ptr %iNp156)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.178
}

View File

@@ -1238,8 +1238,11 @@ match.arm.38: ; preds = %entry
match.arm.39: ; preds = %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry
%loadN = load { i64, i64 }, ptr %allocaN, align 8
%tiu.tid = extractvalue { i64, i64 } %loadN, 1
%tiu.gep = getelementptr inbounds [75 x i1], ptr @__sx_type_is_unsigned, i64 0, i64 %tiu.tid
%refl.tag = extractvalue { i64, i64 } %loadN, 0
%refl.val = extractvalue { i64, i64 } %loadN, 1
%refl.istype = icmp eq i64 %refl.tag, 13
%refl.tid = select i1 %refl.istype, i64 %refl.val, i64 %refl.tag
%tiu.gep = getelementptr inbounds [75 x i1], ptr @__sx_type_is_unsigned, i64 0, i64 %refl.tid
%tiu.load = load i1, ptr %tiu.gep, align 1
br i1 %tiu.load, label %if.then.53, label %if.else.54
@@ -1349,8 +1352,11 @@ match.arm.50: ; No predecessors!
match.arm.51: ; preds = %entry
%loadN = load { i64, i64 }, ptr %alloca, align 8
%tn.tid = extractvalue { i64, i64 } %loadN, 1
%tn.gep = getelementptr inbounds [75 x { ptr, i64 }], ptr @__sx_type_names, i64 0, i64 %tn.tid
%refl.tag32 = extractvalue { i64, i64 } %loadN, 0
%refl.val33 = extractvalue { i64, i64 } %loadN, 1
%refl.istype34 = icmp eq i64 %refl.tag32, 13
%refl.tid35 = select i1 %refl.istype34, i64 %refl.val33, i64 %refl.tag32
%tn.gep = getelementptr inbounds [75 x { ptr, i64 }], ptr @__sx_type_names, i64 0, i64 %refl.tid35
%tn.load = load { ptr, i64 }, ptr %tn.gep, align 8
store { ptr, i64 } %tn.load, ptr %allocaN, align 8
br label %match.merge.37
@@ -1360,15 +1366,15 @@ match.unr.52: ; preds = %entry
if.then.53: ; preds = %match.arm.39
%loadN = load { i64, i64 }, ptr %alloca, align 8
%ua.raw33 = extractvalue { i64, i64 } %loadN, 1
%callN = call { ptr, i64 } @uint_to_string(ptr %0, i64 %ua.raw33)
%ua.raw37 = extractvalue { i64, i64 } %loadN, 1
%callN = call { ptr, i64 } @uint_to_string(ptr %0, i64 %ua.raw37)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %if.merge.55
if.else.54: ; preds = %match.arm.39
%loadN = load { i64, i64 }, ptr %alloca, align 8
%ua.raw36 = extractvalue { i64, i64 } %loadN, 1
%callN = call { ptr, i64 } @int_to_string(ptr %0, i64 %ua.raw36)
%ua.raw40 = extractvalue { i64, i64 } %loadN, 1
%callN = call { ptr, i64 } @int_to_string(ptr %0, i64 %ua.raw40)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %if.merge.55
@@ -1376,16 +1382,16 @@ if.merge.55: ; preds = %if.else.54, %if.the
br label %match.merge.37
f32.unbox.81: ; preds = %match.arm.42
%ua.raw38 = extractvalue { i64, i64 } %loadN, 1
%trN = trunc i64 %ua.raw38 to i32
%ua.raw42 = extractvalue { i64, i64 } %loadN, 1
%trN = trunc i64 %ua.raw42 to i32
%iNf = bitcast i32 %trN to float
%fpext = fpext float %iNf to double
store double %fpext, ptr %allocaN, align 8
br label %float.merge.83
f64.unbox.82: ; preds = %match.arm.42
%ua.raw39 = extractvalue { i64, i64 } %loadN, 1
%iNd = bitcast i64 %ua.raw39 to double
%ua.raw43 = extractvalue { i64, i64 } %loadN, 1
%iNd = bitcast i64 %ua.raw43 to double
store double %iNd, ptr %allocaN, align 8
br label %float.merge.83
@@ -1405,82 +1411,82 @@ dispatch.default.95: ; preds = %match.arm.43
br label %dispatch.merge.94
dispatch.case.96: ; preds = %match.arm.43
%ua.raw43 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr44 = inttoptr i64 %ua.raw43 to ptr
%ua.load45 = load { ptr, ptr }, ptr %ua.ptr44, align 8
%callN = call { ptr, i64 } @struct_to_string__Lerpable(ptr %0, { ptr, ptr } %ua.load45)
%ua.raw47 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr48 = inttoptr i64 %ua.raw47 to ptr
%ua.load49 = load { ptr, ptr }, ptr %ua.ptr48, align 8
%callN = call { ptr, i64 } @struct_to_string__Lerpable(ptr %0, { ptr, ptr } %ua.load49)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.94
dispatch.case.97: ; preds = %match.arm.43
%ua.raw47 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr48 = inttoptr i64 %ua.raw47 to ptr
%ua.load49 = load { { ptr, i64 }, i32, i32, { ptr, i64 } }, ptr %ua.ptr48, align 8
%callN = call { ptr, i64 } @struct_to_string__Source_Location(ptr %0, { { ptr, i64 }, i32, i32, { ptr, i64 } } %ua.load49)
%ua.raw51 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr52 = inttoptr i64 %ua.raw51 to ptr
%ua.load53 = load { { ptr, i64 }, i32, i32, { ptr, i64 } }, ptr %ua.ptr52, align 8
%callN = call { ptr, i64 } @struct_to_string__Source_Location(ptr %0, { { ptr, i64 }, i32, i32, { ptr, i64 } } %ua.load53)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.94
dispatch.case.98: ; preds = %match.arm.43
%ua.raw51 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr52 = inttoptr i64 %ua.raw51 to ptr
%ua.load53 = load { ptr, ptr, ptr }, ptr %ua.ptr52, align 8
%callN = call { ptr, i64 } @struct_to_string__Allocator(ptr %0, { ptr, ptr, ptr } %ua.load53)
%ua.raw55 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr56 = inttoptr i64 %ua.raw55 to ptr
%ua.load57 = load { ptr, ptr, ptr }, ptr %ua.ptr56, align 8
%callN = call { ptr, i64 } @struct_to_string__Allocator(ptr %0, { ptr, ptr, ptr } %ua.load57)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.94
dispatch.case.99: ; preds = %match.arm.43
%ua.raw55 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr56 = inttoptr i64 %ua.raw55 to ptr
%ua.load57 = load {}, ptr %ua.ptr56, align 1
%callN = call { ptr, i64 } @struct_to_string__CAllocator(ptr %0, {} %ua.load57)
%ua.raw59 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr60 = inttoptr i64 %ua.raw59 to ptr
%ua.load61 = load {}, ptr %ua.ptr60, align 1
%callN = call { ptr, i64 } @struct_to_string__CAllocator(ptr %0, {} %ua.load61)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.94
dispatch.case.100: ; preds = %match.arm.43
%ua.raw59 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr60 = inttoptr i64 %ua.raw59 to ptr
%ua.load61 = load { i64 }, ptr %ua.ptr60, align 8
%callN = call { ptr, i64 } @struct_to_string__GPA(ptr %0, { i64 } %ua.load61)
%ua.raw63 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr64 = inttoptr i64 %ua.raw63 to ptr
%ua.load65 = load { i64 }, ptr %ua.ptr64, align 8
%callN = call { ptr, i64 } @struct_to_string__GPA(ptr %0, { i64 } %ua.load65)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.94
dispatch.case.101: ; preds = %match.arm.43
%ua.raw63 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr64 = inttoptr i64 %ua.raw63 to ptr
%ua.load65 = load { ptr, i64 }, ptr %ua.ptr64, align 8
%callN = call { ptr, i64 } @struct_to_string__ArenaChunk(ptr %0, { ptr, i64 } %ua.load65)
%ua.raw67 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr68 = inttoptr i64 %ua.raw67 to ptr
%ua.load69 = load { ptr, i64 }, ptr %ua.ptr68, align 8
%callN = call { ptr, i64 } @struct_to_string__ArenaChunk(ptr %0, { ptr, i64 } %ua.load69)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.94
dispatch.case.102: ; preds = %match.arm.43
%ua.raw67 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr68 = inttoptr i64 %ua.raw67 to ptr
%ua.load69 = load { ptr, i64, { ptr, ptr, ptr } }, ptr %ua.ptr68, align 8
%callN = call { ptr, i64 } @struct_to_string__Arena(ptr %0, { ptr, i64, { ptr, ptr, ptr } } %ua.load69)
%ua.raw71 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr72 = inttoptr i64 %ua.raw71 to ptr
%ua.load73 = load { ptr, i64, { ptr, ptr, ptr } }, ptr %ua.ptr72, align 8
%callN = call { ptr, i64 } @struct_to_string__Arena(ptr %0, { ptr, i64, { ptr, ptr, ptr } } %ua.load73)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.94
dispatch.case.103: ; preds = %match.arm.43
%ua.raw71 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr72 = inttoptr i64 %ua.raw71 to ptr
%ua.load73 = load { ptr, i64, i64 }, ptr %ua.ptr72, align 8
%callN = call { ptr, i64 } @struct_to_string__BufAlloc(ptr %0, { ptr, i64, i64 } %ua.load73)
%ua.raw75 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr76 = inttoptr i64 %ua.raw75 to ptr
%ua.load77 = load { ptr, i64, i64 }, ptr %ua.ptr76, align 8
%callN = call { ptr, i64 } @struct_to_string__BufAlloc(ptr %0, { ptr, i64, i64 } %ua.load77)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.94
dispatch.case.104: ; preds = %match.arm.43
%ua.raw75 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr76 = inttoptr i64 %ua.raw75 to ptr
%ua.load77 = load { { ptr, ptr, ptr }, i64, i64, i64 }, ptr %ua.ptr76, align 8
%callN = call { ptr, i64 } @struct_to_string__TrackingAllocator(ptr %0, { { ptr, ptr, ptr }, i64, i64, i64 } %ua.load77)
%ua.raw79 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr80 = inttoptr i64 %ua.raw79 to ptr
%ua.load81 = load { { ptr, ptr, ptr }, i64, i64, i64 }, ptr %ua.ptr80, align 8
%callN = call { ptr, i64 } @struct_to_string__TrackingAllocator(ptr %0, { { ptr, ptr, ptr }, i64, i64, i64 } %ua.load81)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.94
dispatch.case.105: ; preds = %match.arm.43
%ua.raw79 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr80 = inttoptr i64 %ua.raw79 to ptr
%ua.load81 = load { { ptr, ptr, ptr }, ptr }, ptr %ua.ptr80, align 8
%callN = call { ptr, i64 } @struct_to_string__Context(ptr %0, { { ptr, ptr, ptr }, ptr } %ua.load81)
%ua.raw83 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr84 = inttoptr i64 %ua.raw83 to ptr
%ua.load85 = load { { ptr, ptr, ptr }, ptr }, ptr %ua.ptr84, align 8
%callN = call { ptr, i64 } @struct_to_string__Context(ptr %0, { { ptr, ptr, ptr }, ptr } %ua.load85)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.94
@@ -1494,18 +1500,18 @@ dispatch.default.157: ; preds = %match.arm.47
br label %dispatch.merge.156
dispatch.case.158: ; preds = %match.arm.47
%ua.raw84 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr85 = inttoptr i64 %ua.raw84 to ptr
%ua.load86 = load [4 x i64], ptr %ua.ptr85, align 8
%callN = call { ptr, i64 } @array_to_string__AR_4_s64(ptr %0, [4 x i64] %ua.load86)
%ua.raw88 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr89 = inttoptr i64 %ua.raw88 to ptr
%ua.load90 = load [4 x i64], ptr %ua.ptr89, align 8
%callN = call { ptr, i64 } @array_to_string__AR_4_s64(ptr %0, [4 x i64] %ua.load90)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.156
dispatch.case.159: ; preds = %match.arm.47
%ua.raw88 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr89 = inttoptr i64 %ua.raw88 to ptr
%ua.load90 = load [1 x { i64, i64 }], ptr %ua.ptr89, align 8
%callN = call { ptr, i64 } @array_to_string__AR_1_Any(ptr %0, [1 x { i64, i64 }] %ua.load90)
%ua.raw92 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr93 = inttoptr i64 %ua.raw92 to ptr
%ua.load94 = load [1 x { i64, i64 }], ptr %ua.ptr93, align 8
%callN = call { ptr, i64 } @array_to_string__AR_1_Any(ptr %0, [1 x { i64, i64 }] %ua.load94)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.156
@@ -1519,18 +1525,18 @@ dispatch.default.171: ; preds = %match.arm.48
br label %dispatch.merge.170
dispatch.case.172: ; preds = %match.arm.48
%ua.raw93 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr94 = inttoptr i64 %ua.raw93 to ptr
%ua.load95 = load { ptr, i64 }, ptr %ua.ptr94, align 8
%callN = call { ptr, i64 } @slice_to_string__string(ptr %0, { ptr, i64 } %ua.load95)
%ua.raw97 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr98 = inttoptr i64 %ua.raw97 to ptr
%ua.load99 = load { ptr, i64 }, ptr %ua.ptr98, align 8
%callN = call { ptr, i64 } @slice_to_string__string(ptr %0, { ptr, i64 } %ua.load99)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.170
dispatch.case.173: ; preds = %match.arm.48
%ua.raw97 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr98 = inttoptr i64 %ua.raw97 to ptr
%ua.load99 = load { ptr, i64 }, ptr %ua.ptr98, align 8
%callN = call { ptr, i64 } @slice_to_string__Any(ptr %0, { ptr, i64 } %ua.load99)
%ua.raw101 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr102 = inttoptr i64 %ua.raw101 to ptr
%ua.load103 = load { ptr, i64 }, ptr %ua.ptr102, align 8
%callN = call { ptr, i64 } @slice_to_string__Any(ptr %0, { ptr, i64 } %ua.load103)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.170
@@ -1544,142 +1550,142 @@ dispatch.default.185: ; preds = %match.arm.49
br label %dispatch.merge.184
dispatch.case.186: ; preds = %match.arm.49
%ua.raw102 = extractvalue { i64, i64 } %loadN, 1
%iNp = inttoptr i64 %ua.raw102 to ptr
%ua.raw106 = extractvalue { i64, i64 } %loadN, 1
%iNp = inttoptr i64 %ua.raw106 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_void(ptr %0, ptr %iNp)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.184
dispatch.case.187: ; preds = %match.arm.49
%ua.raw104 = extractvalue { i64, i64 } %loadN, 1
%iNp105 = inttoptr i64 %ua.raw104 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_CAllocator(ptr %0, ptr %iNp105)
%ua.raw108 = extractvalue { i64, i64 } %loadN, 1
%iNp109 = inttoptr i64 %ua.raw108 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_CAllocator(ptr %0, ptr %iNp109)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.184
dispatch.case.188: ; preds = %match.arm.49
%ua.raw107 = extractvalue { i64, i64 } %loadN, 1
%iNp108 = inttoptr i64 %ua.raw107 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_GPA(ptr %0, ptr %iNp108)
%ua.raw111 = extractvalue { i64, i64 } %loadN, 1
%iNp112 = inttoptr i64 %ua.raw111 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_GPA(ptr %0, ptr %iNp112)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.184
dispatch.case.189: ; preds = %match.arm.49
%ua.raw110 = extractvalue { i64, i64 } %loadN, 1
%iNp111 = inttoptr i64 %ua.raw110 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_ArenaChunk(ptr %0, ptr %iNp111)
%ua.raw114 = extractvalue { i64, i64 } %loadN, 1
%iNp115 = inttoptr i64 %ua.raw114 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_ArenaChunk(ptr %0, ptr %iNp115)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.184
dispatch.case.190: ; preds = %match.arm.49
%ua.raw113 = extractvalue { i64, i64 } %loadN, 1
%iNp114 = inttoptr i64 %ua.raw113 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_Arena(ptr %0, ptr %iNp114)
%ua.raw117 = extractvalue { i64, i64 } %loadN, 1
%iNp118 = inttoptr i64 %ua.raw117 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_Arena(ptr %0, ptr %iNp118)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.184
dispatch.case.191: ; preds = %match.arm.49
%ua.raw116 = extractvalue { i64, i64 } %loadN, 1
%iNp117 = inttoptr i64 %ua.raw116 to ptr
%callN = call { ptr, i64 } @pointer_to_string__mptr_u8(ptr %0, ptr %iNp117)
%ua.raw120 = extractvalue { i64, i64 } %loadN, 1
%iNp121 = inttoptr i64 %ua.raw120 to ptr
%callN = call { ptr, i64 } @pointer_to_string__mptr_u8(ptr %0, ptr %iNp121)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.184
dispatch.case.192: ; preds = %match.arm.49
%ua.raw119 = extractvalue { i64, i64 } %loadN, 1
%iNp120 = inttoptr i64 %ua.raw119 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_BufAlloc(ptr %0, ptr %iNp120)
%ua.raw123 = extractvalue { i64, i64 } %loadN, 1
%iNp124 = inttoptr i64 %ua.raw123 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_BufAlloc(ptr %0, ptr %iNp124)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.184
dispatch.case.193: ; preds = %match.arm.49
%ua.raw122 = extractvalue { i64, i64 } %loadN, 1
%iNp123 = inttoptr i64 %ua.raw122 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_TrackingAllocator(ptr %0, ptr %iNp123)
%ua.raw126 = extractvalue { i64, i64 } %loadN, 1
%iNp127 = inttoptr i64 %ua.raw126 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_TrackingAllocator(ptr %0, ptr %iNp127)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.184
dispatch.case.194: ; preds = %match.arm.49
%ua.raw125 = extractvalue { i64, i64 } %loadN, 1
%iNp126 = inttoptr i64 %ua.raw125 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_ptr_CAllocator(ptr %0, ptr %iNp126)
%ua.raw129 = extractvalue { i64, i64 } %loadN, 1
%iNp130 = inttoptr i64 %ua.raw129 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_ptr_CAllocator(ptr %0, ptr %iNp130)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.184
dispatch.case.195: ; preds = %match.arm.49
%ua.raw128 = extractvalue { i64, i64 } %loadN, 1
%iNp129 = inttoptr i64 %ua.raw128 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_s64(ptr %0, ptr %iNp129)
%ua.raw132 = extractvalue { i64, i64 } %loadN, 1
%iNp133 = inttoptr i64 %ua.raw132 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_s64(ptr %0, ptr %iNp133)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.184
dispatch.case.196: ; preds = %match.arm.49
%ua.raw131 = extractvalue { i64, i64 } %loadN, 1
%iNp132 = inttoptr i64 %ua.raw131 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_ptr_void(ptr %0, ptr %iNp132)
%ua.raw135 = extractvalue { i64, i64 } %loadN, 1
%iNp136 = inttoptr i64 %ua.raw135 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_ptr_void(ptr %0, ptr %iNp136)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.184
dispatch.case.197: ; preds = %match.arm.49
%ua.raw134 = extractvalue { i64, i64 } %loadN, 1
%iNp135 = inttoptr i64 %ua.raw134 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_f32(ptr %0, ptr %iNp135)
%ua.raw138 = extractvalue { i64, i64 } %loadN, 1
%iNp139 = inttoptr i64 %ua.raw138 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_f32(ptr %0, ptr %iNp139)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.184
dispatch.case.198: ; preds = %match.arm.49
%ua.raw137 = extractvalue { i64, i64 } %loadN, 1
%iNp138 = inttoptr i64 %ua.raw137 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_string(ptr %0, ptr %iNp138)
%ua.raw141 = extractvalue { i64, i64 } %loadN, 1
%iNp142 = inttoptr i64 %ua.raw141 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_string(ptr %0, ptr %iNp142)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.184
dispatch.case.199: ; preds = %match.arm.49
%ua.raw140 = extractvalue { i64, i64 } %loadN, 1
%iNp141 = inttoptr i64 %ua.raw140 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_Any(ptr %0, ptr %iNp141)
%ua.raw144 = extractvalue { i64, i64 } %loadN, 1
%iNp145 = inttoptr i64 %ua.raw144 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_Any(ptr %0, ptr %iNp145)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.184
dispatch.case.200: ; preds = %match.arm.49
%ua.raw143 = extractvalue { i64, i64 } %loadN, 1
%iNp144 = inttoptr i64 %ua.raw143 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_AR_1_Any(ptr %0, ptr %iNp144)
%ua.raw147 = extractvalue { i64, i64 } %loadN, 1
%iNp148 = inttoptr i64 %ua.raw147 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_AR_1_Any(ptr %0, ptr %iNp148)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.184
dispatch.case.201: ; preds = %match.arm.49
%ua.raw146 = extractvalue { i64, i64 } %loadN, 1
%iNp147 = inttoptr i64 %ua.raw146 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_SL_Any(ptr %0, ptr %iNp147)
%ua.raw150 = extractvalue { i64, i64 } %loadN, 1
%iNp151 = inttoptr i64 %ua.raw150 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_SL_Any(ptr %0, ptr %iNp151)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.184
dispatch.case.202: ; preds = %match.arm.49
%ua.raw149 = extractvalue { i64, i64 } %loadN, 1
%iNp150 = inttoptr i64 %ua.raw149 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_u8(ptr %0, ptr %iNp150)
%ua.raw153 = extractvalue { i64, i64 } %loadN, 1
%iNp154 = inttoptr i64 %ua.raw153 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_u8(ptr %0, ptr %iNp154)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.184
dispatch.case.203: ; preds = %match.arm.49
%ua.raw152 = extractvalue { i64, i64 } %loadN, 1
%iNp153 = inttoptr i64 %ua.raw152 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_bool(ptr %0, ptr %iNp153)
%ua.raw156 = extractvalue { i64, i64 } %loadN, 1
%iNp157 = inttoptr i64 %ua.raw156 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_bool(ptr %0, ptr %iNp157)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.184
dispatch.case.204: ; preds = %match.arm.49
%ua.raw155 = extractvalue { i64, i64 } %loadN, 1
%iNp156 = inttoptr i64 %ua.raw155 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_ptr_f32(ptr %0, ptr %iNp156)
%ua.raw159 = extractvalue { i64, i64 } %loadN, 1
%iNp160 = inttoptr i64 %ua.raw159 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_ptr_f32(ptr %0, ptr %iNp160)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.184
dispatch.case.205: ; preds = %match.arm.49
%ua.raw158 = extractvalue { i64, i64 } %loadN, 1
%iNp159 = inttoptr i64 %ua.raw158 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_Lerpable(ptr %0, ptr %iNp159)
%ua.raw162 = extractvalue { i64, i64 } %loadN, 1
%iNp163 = inttoptr i64 %ua.raw162 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_Lerpable(ptr %0, ptr %iNp163)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.184
}

View File

@@ -1250,8 +1250,11 @@ match.arm.38: ; preds = %entry
match.arm.39: ; preds = %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry
%loadN = load { i64, i64 }, ptr %allocaN, align 8
%tiu.tid = extractvalue { i64, i64 } %loadN, 1
%tiu.gep = getelementptr inbounds [89 x i1], ptr @__sx_type_is_unsigned, i64 0, i64 %tiu.tid
%refl.tag = extractvalue { i64, i64 } %loadN, 0
%refl.val = extractvalue { i64, i64 } %loadN, 1
%refl.istype = icmp eq i64 %refl.tag, 13
%refl.tid = select i1 %refl.istype, i64 %refl.val, i64 %refl.tag
%tiu.gep = getelementptr inbounds [89 x i1], ptr @__sx_type_is_unsigned, i64 0, i64 %refl.tid
%tiu.load = load i1, ptr %tiu.gep, align 1
br i1 %tiu.load, label %if.then.53, label %if.else.54
@@ -1371,8 +1374,11 @@ match.arm.50: ; No predecessors!
match.arm.51: ; preds = %entry
%loadN = load { i64, i64 }, ptr %alloca, align 8
%tn.tid = extractvalue { i64, i64 } %loadN, 1
%tn.gep = getelementptr inbounds [89 x { ptr, i64 }], ptr @__sx_type_names, i64 0, i64 %tn.tid
%refl.tag32 = extractvalue { i64, i64 } %loadN, 0
%refl.val33 = extractvalue { i64, i64 } %loadN, 1
%refl.istype34 = icmp eq i64 %refl.tag32, 13
%refl.tid35 = select i1 %refl.istype34, i64 %refl.val33, i64 %refl.tag32
%tn.gep = getelementptr inbounds [89 x { ptr, i64 }], ptr @__sx_type_names, i64 0, i64 %refl.tid35
%tn.load = load { ptr, i64 }, ptr %tn.gep, align 8
store { ptr, i64 } %tn.load, ptr %allocaN, align 8
br label %match.merge.37
@@ -1382,15 +1388,15 @@ match.unr.52: ; preds = %entry
if.then.53: ; preds = %match.arm.39
%loadN = load { i64, i64 }, ptr %alloca, align 8
%ua.raw33 = extractvalue { i64, i64 } %loadN, 1
%callN = call { ptr, i64 } @uint_to_string(ptr %0, i64 %ua.raw33)
%ua.raw37 = extractvalue { i64, i64 } %loadN, 1
%callN = call { ptr, i64 } @uint_to_string(ptr %0, i64 %ua.raw37)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %if.merge.55
if.else.54: ; preds = %match.arm.39
%loadN = load { i64, i64 }, ptr %alloca, align 8
%ua.raw36 = extractvalue { i64, i64 } %loadN, 1
%callN = call { ptr, i64 } @int_to_string(ptr %0, i64 %ua.raw36)
%ua.raw40 = extractvalue { i64, i64 } %loadN, 1
%callN = call { ptr, i64 } @int_to_string(ptr %0, i64 %ua.raw40)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %if.merge.55
@@ -1398,16 +1404,16 @@ if.merge.55: ; preds = %if.else.54, %if.the
br label %match.merge.37
f32.unbox.81: ; preds = %match.arm.42
%ua.raw38 = extractvalue { i64, i64 } %loadN, 1
%trN = trunc i64 %ua.raw38 to i32
%ua.raw42 = extractvalue { i64, i64 } %loadN, 1
%trN = trunc i64 %ua.raw42 to i32
%iNf = bitcast i32 %trN to float
%fpext = fpext float %iNf to double
store double %fpext, ptr %allocaN, align 8
br label %float.merge.83
f64.unbox.82: ; preds = %match.arm.42
%ua.raw39 = extractvalue { i64, i64 } %loadN, 1
%iNd = bitcast i64 %ua.raw39 to double
%ua.raw43 = extractvalue { i64, i64 } %loadN, 1
%iNd = bitcast i64 %ua.raw43 to double
store double %iNd, ptr %allocaN, align 8
br label %float.merge.83
@@ -1427,122 +1433,122 @@ dispatch.default.95: ; preds = %match.arm.43
br label %dispatch.merge.94
dispatch.case.96: ; preds = %match.arm.43
%ua.raw43 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr44 = inttoptr i64 %ua.raw43 to ptr
%ua.load45 = load { { ptr, i64 }, i32, i32, { ptr, i64 } }, ptr %ua.ptr44, align 8
%callN = call { ptr, i64 } @struct_to_string__Source_Location(ptr %0, { { ptr, i64 }, i32, i32, { ptr, i64 } } %ua.load45)
%ua.raw47 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr48 = inttoptr i64 %ua.raw47 to ptr
%ua.load49 = load { { ptr, i64 }, i32, i32, { ptr, i64 } }, ptr %ua.ptr48, align 8
%callN = call { ptr, i64 } @struct_to_string__Source_Location(ptr %0, { { ptr, i64 }, i32, i32, { ptr, i64 } } %ua.load49)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.94
dispatch.case.97: ; preds = %match.arm.43
%ua.raw47 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr48 = inttoptr i64 %ua.raw47 to ptr
%ua.load49 = load { ptr, ptr, ptr }, ptr %ua.ptr48, align 8
%callN = call { ptr, i64 } @struct_to_string__Allocator(ptr %0, { ptr, ptr, ptr } %ua.load49)
%ua.raw51 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr52 = inttoptr i64 %ua.raw51 to ptr
%ua.load53 = load { ptr, ptr, ptr }, ptr %ua.ptr52, align 8
%callN = call { ptr, i64 } @struct_to_string__Allocator(ptr %0, { ptr, ptr, ptr } %ua.load53)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.94
dispatch.case.98: ; preds = %match.arm.43
%ua.raw51 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr52 = inttoptr i64 %ua.raw51 to ptr
%ua.load53 = load {}, ptr %ua.ptr52, align 1
%callN = call { ptr, i64 } @struct_to_string__CAllocator(ptr %0, {} %ua.load53)
%ua.raw55 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr56 = inttoptr i64 %ua.raw55 to ptr
%ua.load57 = load {}, ptr %ua.ptr56, align 1
%callN = call { ptr, i64 } @struct_to_string__CAllocator(ptr %0, {} %ua.load57)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.94
dispatch.case.99: ; preds = %match.arm.43
%ua.raw55 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr56 = inttoptr i64 %ua.raw55 to ptr
%ua.load57 = load { i64 }, ptr %ua.ptr56, align 8
%callN = call { ptr, i64 } @struct_to_string__GPA(ptr %0, { i64 } %ua.load57)
%ua.raw59 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr60 = inttoptr i64 %ua.raw59 to ptr
%ua.load61 = load { i64 }, ptr %ua.ptr60, align 8
%callN = call { ptr, i64 } @struct_to_string__GPA(ptr %0, { i64 } %ua.load61)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.94
dispatch.case.100: ; preds = %match.arm.43
%ua.raw59 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr60 = inttoptr i64 %ua.raw59 to ptr
%ua.load61 = load { ptr, i64 }, ptr %ua.ptr60, align 8
%callN = call { ptr, i64 } @struct_to_string__ArenaChunk(ptr %0, { ptr, i64 } %ua.load61)
%ua.raw63 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr64 = inttoptr i64 %ua.raw63 to ptr
%ua.load65 = load { ptr, i64 }, ptr %ua.ptr64, align 8
%callN = call { ptr, i64 } @struct_to_string__ArenaChunk(ptr %0, { ptr, i64 } %ua.load65)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.94
dispatch.case.101: ; preds = %match.arm.43
%ua.raw63 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr64 = inttoptr i64 %ua.raw63 to ptr
%ua.load65 = load { ptr, i64, { ptr, ptr, ptr } }, ptr %ua.ptr64, align 8
%callN = call { ptr, i64 } @struct_to_string__Arena(ptr %0, { ptr, i64, { ptr, ptr, ptr } } %ua.load65)
%ua.raw67 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr68 = inttoptr i64 %ua.raw67 to ptr
%ua.load69 = load { ptr, i64, { ptr, ptr, ptr } }, ptr %ua.ptr68, align 8
%callN = call { ptr, i64 } @struct_to_string__Arena(ptr %0, { ptr, i64, { ptr, ptr, ptr } } %ua.load69)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.94
dispatch.case.102: ; preds = %match.arm.43
%ua.raw67 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr68 = inttoptr i64 %ua.raw67 to ptr
%ua.load69 = load { ptr, i64, i64 }, ptr %ua.ptr68, align 8
%callN = call { ptr, i64 } @struct_to_string__BufAlloc(ptr %0, { ptr, i64, i64 } %ua.load69)
%ua.raw71 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr72 = inttoptr i64 %ua.raw71 to ptr
%ua.load73 = load { ptr, i64, i64 }, ptr %ua.ptr72, align 8
%callN = call { ptr, i64 } @struct_to_string__BufAlloc(ptr %0, { ptr, i64, i64 } %ua.load73)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.94
dispatch.case.103: ; preds = %match.arm.43
%ua.raw71 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr72 = inttoptr i64 %ua.raw71 to ptr
%ua.load73 = load { { ptr, ptr, ptr }, i64, i64, i64 }, ptr %ua.ptr72, align 8
%callN = call { ptr, i64 } @struct_to_string__TrackingAllocator(ptr %0, { { ptr, ptr, ptr }, i64, i64, i64 } %ua.load73)
%ua.raw75 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr76 = inttoptr i64 %ua.raw75 to ptr
%ua.load77 = load { { ptr, ptr, ptr }, i64, i64, i64 }, ptr %ua.ptr76, align 8
%callN = call { ptr, i64 } @struct_to_string__TrackingAllocator(ptr %0, { { ptr, ptr, ptr }, i64, i64, i64 } %ua.load77)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.94
dispatch.case.104: ; preds = %match.arm.43
%ua.raw75 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr76 = inttoptr i64 %ua.raw75 to ptr
%ua.load77 = load { { ptr, ptr, ptr }, ptr }, ptr %ua.ptr76, align 8
%callN = call { ptr, i64 } @struct_to_string__Context(ptr %0, { { ptr, ptr, ptr }, ptr } %ua.load77)
%ua.raw79 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr80 = inttoptr i64 %ua.raw79 to ptr
%ua.load81 = load { { ptr, ptr, ptr }, ptr }, ptr %ua.ptr80, align 8
%callN = call { ptr, i64 } @struct_to_string__Context(ptr %0, { { ptr, ptr, ptr }, ptr } %ua.load81)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.94
dispatch.case.105: ; preds = %match.arm.43
%ua.raw79 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr80 = inttoptr i64 %ua.raw79 to ptr
%ua.load81 = load { i64 }, ptr %ua.ptr80, align 8
%callN = call { ptr, i64 } @struct_to_string__IntCell(ptr %0, { i64 } %ua.load81)
%ua.raw83 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr84 = inttoptr i64 %ua.raw83 to ptr
%ua.load85 = load { i64 }, ptr %ua.ptr84, align 8
%callN = call { ptr, i64 } @struct_to_string__IntCell(ptr %0, { i64 } %ua.load85)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.94
dispatch.case.106: ; preds = %match.arm.43
%ua.raw83 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr84 = inttoptr i64 %ua.raw83 to ptr
%ua.load85 = load { { ptr, i64 } }, ptr %ua.ptr84, align 8
%callN = call { ptr, i64 } @struct_to_string__StrCell(ptr %0, { { ptr, i64 } } %ua.load85)
%ua.raw87 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr88 = inttoptr i64 %ua.raw87 to ptr
%ua.load89 = load { { ptr, i64 } }, ptr %ua.ptr88, align 8
%callN = call { ptr, i64 } @struct_to_string__StrCell(ptr %0, { { ptr, i64 } } %ua.load89)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.94
dispatch.case.107: ; preds = %match.arm.43
%ua.raw87 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr88 = inttoptr i64 %ua.raw87 to ptr
%ua.load89 = load { ptr, ptr }, ptr %ua.ptr88, align 8
%callN = call { ptr, i64 } @struct_to_string__VL__s64(ptr %0, { ptr, ptr } %ua.load89)
%ua.raw91 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr92 = inttoptr i64 %ua.raw91 to ptr
%ua.load93 = load { ptr, ptr }, ptr %ua.ptr92, align 8
%callN = call { ptr, i64 } @struct_to_string__VL__s64(ptr %0, { ptr, ptr } %ua.load93)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.94
dispatch.case.108: ; preds = %match.arm.43
%ua.raw91 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr92 = inttoptr i64 %ua.raw91 to ptr
%ua.load93 = load { ptr }, ptr %ua.ptr92, align 8
%callN = call { ptr, i64 } @struct_to_string____VL__s64__Vtable(ptr %0, { ptr } %ua.load93)
%ua.raw95 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr96 = inttoptr i64 %ua.raw95 to ptr
%ua.load97 = load { ptr }, ptr %ua.ptr96, align 8
%callN = call { ptr, i64 } @struct_to_string____VL__s64__Vtable(ptr %0, { ptr } %ua.load97)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.94
dispatch.case.109: ; preds = %match.arm.43
%ua.raw95 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr96 = inttoptr i64 %ua.raw95 to ptr
%ua.load97 = load { ptr, ptr }, ptr %ua.ptr96, align 8
%callN = call { ptr, i64 } @struct_to_string__VL__string(ptr %0, { ptr, ptr } %ua.load97)
%ua.raw99 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr100 = inttoptr i64 %ua.raw99 to ptr
%ua.load101 = load { ptr, ptr }, ptr %ua.ptr100, align 8
%callN = call { ptr, i64 } @struct_to_string__VL__string(ptr %0, { ptr, ptr } %ua.load101)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.94
dispatch.case.110: ; preds = %match.arm.43
%ua.raw99 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr100 = inttoptr i64 %ua.raw99 to ptr
%ua.load101 = load { ptr }, ptr %ua.ptr100, align 8
%callN = call { ptr, i64 } @struct_to_string____VL__string__Vtable(ptr %0, { ptr } %ua.load101)
%ua.raw103 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr104 = inttoptr i64 %ua.raw103 to ptr
%ua.load105 = load { ptr }, ptr %ua.ptr104, align 8
%callN = call { ptr, i64 } @struct_to_string____VL__string__Vtable(ptr %0, { ptr } %ua.load105)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.94
@@ -1556,18 +1562,18 @@ dispatch.default.187: ; preds = %match.arm.47
br label %dispatch.merge.186
dispatch.case.188: ; preds = %match.arm.47
%ua.raw104 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr105 = inttoptr i64 %ua.raw104 to ptr
%ua.load106 = load [4 x i64], ptr %ua.ptr105, align 8
%callN = call { ptr, i64 } @array_to_string__AR_4_s64(ptr %0, [4 x i64] %ua.load106)
%ua.raw108 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr109 = inttoptr i64 %ua.raw108 to ptr
%ua.load110 = load [4 x i64], ptr %ua.ptr109, align 8
%callN = call { ptr, i64 } @array_to_string__AR_4_s64(ptr %0, [4 x i64] %ua.load110)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.186
dispatch.case.189: ; preds = %match.arm.47
%ua.raw108 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr109 = inttoptr i64 %ua.raw108 to ptr
%ua.load110 = load [1 x { i64, i64 }], ptr %ua.ptr109, align 8
%callN = call { ptr, i64 } @array_to_string__AR_1_Any(ptr %0, [1 x { i64, i64 }] %ua.load110)
%ua.raw112 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr113 = inttoptr i64 %ua.raw112 to ptr
%ua.load114 = load [1 x { i64, i64 }], ptr %ua.ptr113, align 8
%callN = call { ptr, i64 } @array_to_string__AR_1_Any(ptr %0, [1 x { i64, i64 }] %ua.load114)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.186
@@ -1581,18 +1587,18 @@ dispatch.default.201: ; preds = %match.arm.48
br label %dispatch.merge.200
dispatch.case.202: ; preds = %match.arm.48
%ua.raw113 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr114 = inttoptr i64 %ua.raw113 to ptr
%ua.load115 = load { ptr, i64 }, ptr %ua.ptr114, align 8
%callN = call { ptr, i64 } @slice_to_string__string(ptr %0, { ptr, i64 } %ua.load115)
%ua.raw117 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr118 = inttoptr i64 %ua.raw117 to ptr
%ua.load119 = load { ptr, i64 }, ptr %ua.ptr118, align 8
%callN = call { ptr, i64 } @slice_to_string__string(ptr %0, { ptr, i64 } %ua.load119)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.200
dispatch.case.203: ; preds = %match.arm.48
%ua.raw117 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr118 = inttoptr i64 %ua.raw117 to ptr
%ua.load119 = load { ptr, i64 }, ptr %ua.ptr118, align 8
%callN = call { ptr, i64 } @slice_to_string__Any(ptr %0, { ptr, i64 } %ua.load119)
%ua.raw121 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr122 = inttoptr i64 %ua.raw121 to ptr
%ua.load123 = load { ptr, i64 }, ptr %ua.ptr122, align 8
%callN = call { ptr, i64 } @slice_to_string__Any(ptr %0, { ptr, i64 } %ua.load123)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.200
@@ -1606,177 +1612,177 @@ dispatch.default.215: ; preds = %match.arm.49
br label %dispatch.merge.214
dispatch.case.216: ; preds = %match.arm.49
%ua.raw122 = extractvalue { i64, i64 } %loadN, 1
%iNp = inttoptr i64 %ua.raw122 to ptr
%ua.raw126 = extractvalue { i64, i64 } %loadN, 1
%iNp = inttoptr i64 %ua.raw126 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_void(ptr %0, ptr %iNp)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.214
dispatch.case.217: ; preds = %match.arm.49
%ua.raw124 = extractvalue { i64, i64 } %loadN, 1
%iNp125 = inttoptr i64 %ua.raw124 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_CAllocator(ptr %0, ptr %iNp125)
%ua.raw128 = extractvalue { i64, i64 } %loadN, 1
%iNp129 = inttoptr i64 %ua.raw128 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_CAllocator(ptr %0, ptr %iNp129)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.214
dispatch.case.218: ; preds = %match.arm.49
%ua.raw127 = extractvalue { i64, i64 } %loadN, 1
%iNp128 = inttoptr i64 %ua.raw127 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_GPA(ptr %0, ptr %iNp128)
%ua.raw131 = extractvalue { i64, i64 } %loadN, 1
%iNp132 = inttoptr i64 %ua.raw131 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_GPA(ptr %0, ptr %iNp132)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.214
dispatch.case.219: ; preds = %match.arm.49
%ua.raw130 = extractvalue { i64, i64 } %loadN, 1
%iNp131 = inttoptr i64 %ua.raw130 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_ArenaChunk(ptr %0, ptr %iNp131)
%ua.raw134 = extractvalue { i64, i64 } %loadN, 1
%iNp135 = inttoptr i64 %ua.raw134 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_ArenaChunk(ptr %0, ptr %iNp135)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.214
dispatch.case.220: ; preds = %match.arm.49
%ua.raw133 = extractvalue { i64, i64 } %loadN, 1
%iNp134 = inttoptr i64 %ua.raw133 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_Arena(ptr %0, ptr %iNp134)
%ua.raw137 = extractvalue { i64, i64 } %loadN, 1
%iNp138 = inttoptr i64 %ua.raw137 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_Arena(ptr %0, ptr %iNp138)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.214
dispatch.case.221: ; preds = %match.arm.49
%ua.raw136 = extractvalue { i64, i64 } %loadN, 1
%iNp137 = inttoptr i64 %ua.raw136 to ptr
%callN = call { ptr, i64 } @pointer_to_string__mptr_u8(ptr %0, ptr %iNp137)
%ua.raw140 = extractvalue { i64, i64 } %loadN, 1
%iNp141 = inttoptr i64 %ua.raw140 to ptr
%callN = call { ptr, i64 } @pointer_to_string__mptr_u8(ptr %0, ptr %iNp141)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.214
dispatch.case.222: ; preds = %match.arm.49
%ua.raw139 = extractvalue { i64, i64 } %loadN, 1
%iNp140 = inttoptr i64 %ua.raw139 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_BufAlloc(ptr %0, ptr %iNp140)
%ua.raw143 = extractvalue { i64, i64 } %loadN, 1
%iNp144 = inttoptr i64 %ua.raw143 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_BufAlloc(ptr %0, ptr %iNp144)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.214
dispatch.case.223: ; preds = %match.arm.49
%ua.raw142 = extractvalue { i64, i64 } %loadN, 1
%iNp143 = inttoptr i64 %ua.raw142 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_TrackingAllocator(ptr %0, ptr %iNp143)
%ua.raw146 = extractvalue { i64, i64 } %loadN, 1
%iNp147 = inttoptr i64 %ua.raw146 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_TrackingAllocator(ptr %0, ptr %iNp147)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.214
dispatch.case.224: ; preds = %match.arm.49
%ua.raw145 = extractvalue { i64, i64 } %loadN, 1
%iNp146 = inttoptr i64 %ua.raw145 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_IntCell(ptr %0, ptr %iNp146)
%ua.raw149 = extractvalue { i64, i64 } %loadN, 1
%iNp150 = inttoptr i64 %ua.raw149 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_IntCell(ptr %0, ptr %iNp150)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.214
dispatch.case.225: ; preds = %match.arm.49
%ua.raw148 = extractvalue { i64, i64 } %loadN, 1
%iNp149 = inttoptr i64 %ua.raw148 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_StrCell(ptr %0, ptr %iNp149)
%ua.raw152 = extractvalue { i64, i64 } %loadN, 1
%iNp153 = inttoptr i64 %ua.raw152 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_StrCell(ptr %0, ptr %iNp153)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.214
dispatch.case.226: ; preds = %match.arm.49
%ua.raw151 = extractvalue { i64, i64 } %loadN, 1
%iNp152 = inttoptr i64 %ua.raw151 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_ptr_CAllocator(ptr %0, ptr %iNp152)
%ua.raw155 = extractvalue { i64, i64 } %loadN, 1
%iNp156 = inttoptr i64 %ua.raw155 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_ptr_CAllocator(ptr %0, ptr %iNp156)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.214
dispatch.case.227: ; preds = %match.arm.49
%ua.raw154 = extractvalue { i64, i64 } %loadN, 1
%iNp155 = inttoptr i64 %ua.raw154 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_s64(ptr %0, ptr %iNp155)
%ua.raw158 = extractvalue { i64, i64 } %loadN, 1
%iNp159 = inttoptr i64 %ua.raw158 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_s64(ptr %0, ptr %iNp159)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.214
dispatch.case.228: ; preds = %match.arm.49
%ua.raw157 = extractvalue { i64, i64 } %loadN, 1
%iNp158 = inttoptr i64 %ua.raw157 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_ptr_void(ptr %0, ptr %iNp158)
%ua.raw161 = extractvalue { i64, i64 } %loadN, 1
%iNp162 = inttoptr i64 %ua.raw161 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_ptr_void(ptr %0, ptr %iNp162)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.214
dispatch.case.229: ; preds = %match.arm.49
%ua.raw160 = extractvalue { i64, i64 } %loadN, 1
%iNp161 = inttoptr i64 %ua.raw160 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_VL__s64(ptr %0, ptr %iNp161)
%ua.raw164 = extractvalue { i64, i64 } %loadN, 1
%iNp165 = inttoptr i64 %ua.raw164 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_VL__s64(ptr %0, ptr %iNp165)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.214
dispatch.case.230: ; preds = %match.arm.49
%ua.raw163 = extractvalue { i64, i64 } %loadN, 1
%iNp164 = inttoptr i64 %ua.raw163 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_ptr_IntCell(ptr %0, ptr %iNp164)
%ua.raw167 = extractvalue { i64, i64 } %loadN, 1
%iNp168 = inttoptr i64 %ua.raw167 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_ptr_IntCell(ptr %0, ptr %iNp168)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.214
dispatch.case.231: ; preds = %match.arm.49
%ua.raw166 = extractvalue { i64, i64 } %loadN, 1
%iNp167 = inttoptr i64 %ua.raw166 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr___VL__s64__Vtable(ptr %0, ptr %iNp167)
%ua.raw170 = extractvalue { i64, i64 } %loadN, 1
%iNp171 = inttoptr i64 %ua.raw170 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr___VL__s64__Vtable(ptr %0, ptr %iNp171)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.214
dispatch.case.232: ; preds = %match.arm.49
%ua.raw169 = extractvalue { i64, i64 } %loadN, 1
%iNp170 = inttoptr i64 %ua.raw169 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_string(ptr %0, ptr %iNp170)
%ua.raw173 = extractvalue { i64, i64 } %loadN, 1
%iNp174 = inttoptr i64 %ua.raw173 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_string(ptr %0, ptr %iNp174)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.214
dispatch.case.233: ; preds = %match.arm.49
%ua.raw172 = extractvalue { i64, i64 } %loadN, 1
%iNp173 = inttoptr i64 %ua.raw172 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_Any(ptr %0, ptr %iNp173)
%ua.raw176 = extractvalue { i64, i64 } %loadN, 1
%iNp177 = inttoptr i64 %ua.raw176 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_Any(ptr %0, ptr %iNp177)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.214
dispatch.case.234: ; preds = %match.arm.49
%ua.raw175 = extractvalue { i64, i64 } %loadN, 1
%iNp176 = inttoptr i64 %ua.raw175 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_AR_1_Any(ptr %0, ptr %iNp176)
%ua.raw179 = extractvalue { i64, i64 } %loadN, 1
%iNp180 = inttoptr i64 %ua.raw179 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_AR_1_Any(ptr %0, ptr %iNp180)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.214
dispatch.case.235: ; preds = %match.arm.49
%ua.raw178 = extractvalue { i64, i64 } %loadN, 1
%iNp179 = inttoptr i64 %ua.raw178 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_SL_Any(ptr %0, ptr %iNp179)
%ua.raw182 = extractvalue { i64, i64 } %loadN, 1
%iNp183 = inttoptr i64 %ua.raw182 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_SL_Any(ptr %0, ptr %iNp183)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.214
dispatch.case.236: ; preds = %match.arm.49
%ua.raw181 = extractvalue { i64, i64 } %loadN, 1
%iNp182 = inttoptr i64 %ua.raw181 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_u8(ptr %0, ptr %iNp182)
%ua.raw185 = extractvalue { i64, i64 } %loadN, 1
%iNp186 = inttoptr i64 %ua.raw185 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_u8(ptr %0, ptr %iNp186)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.214
dispatch.case.237: ; preds = %match.arm.49
%ua.raw184 = extractvalue { i64, i64 } %loadN, 1
%iNp185 = inttoptr i64 %ua.raw184 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_bool(ptr %0, ptr %iNp185)
%ua.raw188 = extractvalue { i64, i64 } %loadN, 1
%iNp189 = inttoptr i64 %ua.raw188 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_bool(ptr %0, ptr %iNp189)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.214
dispatch.case.238: ; preds = %match.arm.49
%ua.raw187 = extractvalue { i64, i64 } %loadN, 1
%iNp188 = inttoptr i64 %ua.raw187 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_VL__string(ptr %0, ptr %iNp188)
%ua.raw191 = extractvalue { i64, i64 } %loadN, 1
%iNp192 = inttoptr i64 %ua.raw191 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_VL__string(ptr %0, ptr %iNp192)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.214
dispatch.case.239: ; preds = %match.arm.49
%ua.raw190 = extractvalue { i64, i64 } %loadN, 1
%iNp191 = inttoptr i64 %ua.raw190 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_ptr_StrCell(ptr %0, ptr %iNp191)
%ua.raw194 = extractvalue { i64, i64 } %loadN, 1
%iNp195 = inttoptr i64 %ua.raw194 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_ptr_StrCell(ptr %0, ptr %iNp195)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.214
dispatch.case.240: ; preds = %match.arm.49
%ua.raw193 = extractvalue { i64, i64 } %loadN, 1
%iNp194 = inttoptr i64 %ua.raw193 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr___VL__string__Vtable(ptr %0, ptr %iNp194)
%ua.raw197 = extractvalue { i64, i64 } %loadN, 1
%iNp198 = inttoptr i64 %ua.raw197 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr___VL__string__Vtable(ptr %0, ptr %iNp198)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.214
}

View File

@@ -1256,8 +1256,11 @@ match.arm.38: ; preds = %entry
match.arm.39: ; preds = %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry
%loadN = load { i64, i64 }, ptr %allocaN, align 8
%tiu.tid = extractvalue { i64, i64 } %loadN, 1
%tiu.gep = getelementptr inbounds [94 x i1], ptr @__sx_type_is_unsigned, i64 0, i64 %tiu.tid
%refl.tag = extractvalue { i64, i64 } %loadN, 0
%refl.val = extractvalue { i64, i64 } %loadN, 1
%refl.istype = icmp eq i64 %refl.tag, 13
%refl.tid = select i1 %refl.istype, i64 %refl.val, i64 %refl.tag
%tiu.gep = getelementptr inbounds [94 x i1], ptr @__sx_type_is_unsigned, i64 0, i64 %refl.tid
%tiu.load = load i1, ptr %tiu.gep, align 1
br i1 %tiu.load, label %if.then.53, label %if.else.54
@@ -1378,8 +1381,11 @@ match.arm.50: ; No predecessors!
match.arm.51: ; preds = %entry
%loadN = load { i64, i64 }, ptr %alloca, align 8
%tn.tid = extractvalue { i64, i64 } %loadN, 1
%tn.gep = getelementptr inbounds [94 x { ptr, i64 }], ptr @__sx_type_names, i64 0, i64 %tn.tid
%refl.tag32 = extractvalue { i64, i64 } %loadN, 0
%refl.val33 = extractvalue { i64, i64 } %loadN, 1
%refl.istype34 = icmp eq i64 %refl.tag32, 13
%refl.tid35 = select i1 %refl.istype34, i64 %refl.val33, i64 %refl.tag32
%tn.gep = getelementptr inbounds [94 x { ptr, i64 }], ptr @__sx_type_names, i64 0, i64 %refl.tid35
%tn.load = load { ptr, i64 }, ptr %tn.gep, align 8
store { ptr, i64 } %tn.load, ptr %allocaN, align 8
br label %match.merge.37
@@ -1389,15 +1395,15 @@ match.unr.52: ; preds = %entry
if.then.53: ; preds = %match.arm.39
%loadN = load { i64, i64 }, ptr %alloca, align 8
%ua.raw33 = extractvalue { i64, i64 } %loadN, 1
%callN = call { ptr, i64 } @uint_to_string(ptr %0, i64 %ua.raw33)
%ua.raw37 = extractvalue { i64, i64 } %loadN, 1
%callN = call { ptr, i64 } @uint_to_string(ptr %0, i64 %ua.raw37)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %if.merge.55
if.else.54: ; preds = %match.arm.39
%loadN = load { i64, i64 }, ptr %alloca, align 8
%ua.raw36 = extractvalue { i64, i64 } %loadN, 1
%callN = call { ptr, i64 } @int_to_string(ptr %0, i64 %ua.raw36)
%ua.raw40 = extractvalue { i64, i64 } %loadN, 1
%callN = call { ptr, i64 } @int_to_string(ptr %0, i64 %ua.raw40)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %if.merge.55
@@ -1405,16 +1411,16 @@ if.merge.55: ; preds = %if.else.54, %if.the
br label %match.merge.37
f32.unbox.81: ; preds = %match.arm.42
%ua.raw38 = extractvalue { i64, i64 } %loadN, 1
%trN = trunc i64 %ua.raw38 to i32
%ua.raw42 = extractvalue { i64, i64 } %loadN, 1
%trN = trunc i64 %ua.raw42 to i32
%iNf = bitcast i32 %trN to float
%fpext = fpext float %iNf to double
store double %fpext, ptr %allocaN, align 8
br label %float.merge.83
f64.unbox.82: ; preds = %match.arm.42
%ua.raw39 = extractvalue { i64, i64 } %loadN, 1
%iNd = bitcast i64 %ua.raw39 to double
%ua.raw43 = extractvalue { i64, i64 } %loadN, 1
%iNd = bitcast i64 %ua.raw43 to double
store double %iNd, ptr %allocaN, align 8
br label %float.merge.83
@@ -1434,130 +1440,130 @@ dispatch.default.95: ; preds = %match.arm.43
br label %dispatch.merge.94
dispatch.case.96: ; preds = %match.arm.43
%ua.raw43 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr44 = inttoptr i64 %ua.raw43 to ptr
%ua.load45 = load { { ptr, i64 }, i32, i32, { ptr, i64 } }, ptr %ua.ptr44, align 8
%callN = call { ptr, i64 } @struct_to_string__Source_Location(ptr %0, { { ptr, i64 }, i32, i32, { ptr, i64 } } %ua.load45)
%ua.raw47 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr48 = inttoptr i64 %ua.raw47 to ptr
%ua.load49 = load { { ptr, i64 }, i32, i32, { ptr, i64 } }, ptr %ua.ptr48, align 8
%callN = call { ptr, i64 } @struct_to_string__Source_Location(ptr %0, { { ptr, i64 }, i32, i32, { ptr, i64 } } %ua.load49)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.94
dispatch.case.97: ; preds = %match.arm.43
%ua.raw47 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr48 = inttoptr i64 %ua.raw47 to ptr
%ua.load49 = load { ptr, ptr, ptr }, ptr %ua.ptr48, align 8
%callN = call { ptr, i64 } @struct_to_string__Allocator(ptr %0, { ptr, ptr, ptr } %ua.load49)
%ua.raw51 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr52 = inttoptr i64 %ua.raw51 to ptr
%ua.load53 = load { ptr, ptr, ptr }, ptr %ua.ptr52, align 8
%callN = call { ptr, i64 } @struct_to_string__Allocator(ptr %0, { ptr, ptr, ptr } %ua.load53)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.94
dispatch.case.98: ; preds = %match.arm.43
%ua.raw51 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr52 = inttoptr i64 %ua.raw51 to ptr
%ua.load53 = load {}, ptr %ua.ptr52, align 1
%callN = call { ptr, i64 } @struct_to_string__CAllocator(ptr %0, {} %ua.load53)
%ua.raw55 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr56 = inttoptr i64 %ua.raw55 to ptr
%ua.load57 = load {}, ptr %ua.ptr56, align 1
%callN = call { ptr, i64 } @struct_to_string__CAllocator(ptr %0, {} %ua.load57)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.94
dispatch.case.99: ; preds = %match.arm.43
%ua.raw55 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr56 = inttoptr i64 %ua.raw55 to ptr
%ua.load57 = load { i64 }, ptr %ua.ptr56, align 8
%callN = call { ptr, i64 } @struct_to_string__GPA(ptr %0, { i64 } %ua.load57)
%ua.raw59 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr60 = inttoptr i64 %ua.raw59 to ptr
%ua.load61 = load { i64 }, ptr %ua.ptr60, align 8
%callN = call { ptr, i64 } @struct_to_string__GPA(ptr %0, { i64 } %ua.load61)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.94
dispatch.case.100: ; preds = %match.arm.43
%ua.raw59 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr60 = inttoptr i64 %ua.raw59 to ptr
%ua.load61 = load { ptr, i64 }, ptr %ua.ptr60, align 8
%callN = call { ptr, i64 } @struct_to_string__ArenaChunk(ptr %0, { ptr, i64 } %ua.load61)
%ua.raw63 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr64 = inttoptr i64 %ua.raw63 to ptr
%ua.load65 = load { ptr, i64 }, ptr %ua.ptr64, align 8
%callN = call { ptr, i64 } @struct_to_string__ArenaChunk(ptr %0, { ptr, i64 } %ua.load65)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.94
dispatch.case.101: ; preds = %match.arm.43
%ua.raw63 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr64 = inttoptr i64 %ua.raw63 to ptr
%ua.load65 = load { ptr, i64, { ptr, ptr, ptr } }, ptr %ua.ptr64, align 8
%callN = call { ptr, i64 } @struct_to_string__Arena(ptr %0, { ptr, i64, { ptr, ptr, ptr } } %ua.load65)
%ua.raw67 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr68 = inttoptr i64 %ua.raw67 to ptr
%ua.load69 = load { ptr, i64, { ptr, ptr, ptr } }, ptr %ua.ptr68, align 8
%callN = call { ptr, i64 } @struct_to_string__Arena(ptr %0, { ptr, i64, { ptr, ptr, ptr } } %ua.load69)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.94
dispatch.case.102: ; preds = %match.arm.43
%ua.raw67 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr68 = inttoptr i64 %ua.raw67 to ptr
%ua.load69 = load { ptr, i64, i64 }, ptr %ua.ptr68, align 8
%callN = call { ptr, i64 } @struct_to_string__BufAlloc(ptr %0, { ptr, i64, i64 } %ua.load69)
%ua.raw71 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr72 = inttoptr i64 %ua.raw71 to ptr
%ua.load73 = load { ptr, i64, i64 }, ptr %ua.ptr72, align 8
%callN = call { ptr, i64 } @struct_to_string__BufAlloc(ptr %0, { ptr, i64, i64 } %ua.load73)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.94
dispatch.case.103: ; preds = %match.arm.43
%ua.raw71 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr72 = inttoptr i64 %ua.raw71 to ptr
%ua.load73 = load { { ptr, ptr, ptr }, i64, i64, i64 }, ptr %ua.ptr72, align 8
%callN = call { ptr, i64 } @struct_to_string__TrackingAllocator(ptr %0, { { ptr, ptr, ptr }, i64, i64, i64 } %ua.load73)
%ua.raw75 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr76 = inttoptr i64 %ua.raw75 to ptr
%ua.load77 = load { { ptr, ptr, ptr }, i64, i64, i64 }, ptr %ua.ptr76, align 8
%callN = call { ptr, i64 } @struct_to_string__TrackingAllocator(ptr %0, { { ptr, ptr, ptr }, i64, i64, i64 } %ua.load77)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.94
dispatch.case.104: ; preds = %match.arm.43
%ua.raw75 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr76 = inttoptr i64 %ua.raw75 to ptr
%ua.load77 = load { { ptr, ptr, ptr }, ptr }, ptr %ua.ptr76, align 8
%callN = call { ptr, i64 } @struct_to_string__Context(ptr %0, { { ptr, ptr, ptr }, ptr } %ua.load77)
%ua.raw79 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr80 = inttoptr i64 %ua.raw79 to ptr
%ua.load81 = load { { ptr, ptr, ptr }, ptr }, ptr %ua.ptr80, align 8
%callN = call { ptr, i64 } @struct_to_string__Context(ptr %0, { { ptr, ptr, ptr }, ptr } %ua.load81)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.94
dispatch.case.105: ; preds = %match.arm.43
%ua.raw79 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr80 = inttoptr i64 %ua.raw79 to ptr
%ua.load81 = load { i64 }, ptr %ua.ptr80, align 8
%callN = call { ptr, i64 } @struct_to_string__IntCell(ptr %0, { i64 } %ua.load81)
%ua.raw83 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr84 = inttoptr i64 %ua.raw83 to ptr
%ua.load85 = load { i64 }, ptr %ua.ptr84, align 8
%callN = call { ptr, i64 } @struct_to_string__IntCell(ptr %0, { i64 } %ua.load85)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.94
dispatch.case.106: ; preds = %match.arm.43
%ua.raw83 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr84 = inttoptr i64 %ua.raw83 to ptr
%ua.load85 = load {}, ptr %ua.ptr84, align 1
%callN = call { ptr, i64 } @struct_to_string__R(ptr %0, {} %ua.load85)
%ua.raw87 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr88 = inttoptr i64 %ua.raw87 to ptr
%ua.load89 = load {}, ptr %ua.ptr88, align 1
%callN = call { ptr, i64 } @struct_to_string__R(ptr %0, {} %ua.load89)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.94
dispatch.case.107: ; preds = %match.arm.43
%ua.raw87 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr88 = inttoptr i64 %ua.raw87 to ptr
%ua.load89 = load {}, ptr %ua.ptr88, align 1
%callN = call { ptr, i64 } @struct_to_string__Combined(ptr %0, {} %ua.load89)
%ua.raw91 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr92 = inttoptr i64 %ua.raw91 to ptr
%ua.load93 = load {}, ptr %ua.ptr92, align 1
%callN = call { ptr, i64 } @struct_to_string__Combined(ptr %0, {} %ua.load93)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.94
dispatch.case.108: ; preds = %match.arm.43
%ua.raw91 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr92 = inttoptr i64 %ua.raw91 to ptr
%ua.load93 = load { ptr, ptr }, ptr %ua.ptr92, align 8
%callN = call { ptr, i64 } @struct_to_string__VL__s64(ptr %0, { ptr, ptr } %ua.load93)
%ua.raw95 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr96 = inttoptr i64 %ua.raw95 to ptr
%ua.load97 = load { ptr, ptr }, ptr %ua.ptr96, align 8
%callN = call { ptr, i64 } @struct_to_string__VL__s64(ptr %0, { ptr, ptr } %ua.load97)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.94
dispatch.case.109: ; preds = %match.arm.43
%ua.raw95 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr96 = inttoptr i64 %ua.raw95 to ptr
%ua.load97 = load { ptr }, ptr %ua.ptr96, align 8
%callN = call { ptr, i64 } @struct_to_string____VL__s64__Vtable(ptr %0, { ptr } %ua.load97)
%ua.raw99 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr100 = inttoptr i64 %ua.raw99 to ptr
%ua.load101 = load { ptr }, ptr %ua.ptr100, align 8
%callN = call { ptr, i64 } @struct_to_string____VL__s64__Vtable(ptr %0, { ptr } %ua.load101)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.94
dispatch.case.110: ; preds = %match.arm.43
%ua.raw99 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr100 = inttoptr i64 %ua.raw99 to ptr
%ua.load101 = load {}, ptr %ua.ptr100, align 1
%callN = call { ptr, i64 } @struct_to_string__VL(ptr %0, {} %ua.load101)
%ua.raw103 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr104 = inttoptr i64 %ua.raw103 to ptr
%ua.load105 = load {}, ptr %ua.ptr104, align 1
%callN = call { ptr, i64 } @struct_to_string__VL(ptr %0, {} %ua.load105)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.94
dispatch.case.111: ; preds = %match.arm.43
%ua.raw103 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr104 = inttoptr i64 %ua.raw103 to ptr
%ua.load105 = load { { { ptr, ptr } }, i64 }, ptr %ua.ptr104, align 8
%callN = call { ptr, i64 } @struct_to_string__Combined__s64__s64(ptr %0, { { { ptr, ptr } }, i64 } %ua.load105)
%ua.raw107 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr108 = inttoptr i64 %ua.raw107 to ptr
%ua.load109 = load { { { ptr, ptr } }, i64 }, ptr %ua.ptr108, align 8
%callN = call { ptr, i64 } @struct_to_string__Combined__s64__s64(ptr %0, { { { ptr, ptr } }, i64 } %ua.load109)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.94
@@ -1571,18 +1577,18 @@ dispatch.default.193: ; preds = %match.arm.47
br label %dispatch.merge.192
dispatch.case.194: ; preds = %match.arm.47
%ua.raw108 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr109 = inttoptr i64 %ua.raw108 to ptr
%ua.load110 = load [4 x i64], ptr %ua.ptr109, align 8
%callN = call { ptr, i64 } @array_to_string__AR_4_s64(ptr %0, [4 x i64] %ua.load110)
%ua.raw112 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr113 = inttoptr i64 %ua.raw112 to ptr
%ua.load114 = load [4 x i64], ptr %ua.ptr113, align 8
%callN = call { ptr, i64 } @array_to_string__AR_4_s64(ptr %0, [4 x i64] %ua.load114)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.192
dispatch.case.195: ; preds = %match.arm.47
%ua.raw112 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr113 = inttoptr i64 %ua.raw112 to ptr
%ua.load114 = load [1 x { i64, i64 }], ptr %ua.ptr113, align 8
%callN = call { ptr, i64 } @array_to_string__AR_1_Any(ptr %0, [1 x { i64, i64 }] %ua.load114)
%ua.raw116 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr117 = inttoptr i64 %ua.raw116 to ptr
%ua.load118 = load [1 x { i64, i64 }], ptr %ua.ptr117, align 8
%callN = call { ptr, i64 } @array_to_string__AR_1_Any(ptr %0, [1 x { i64, i64 }] %ua.load118)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.192
@@ -1596,26 +1602,26 @@ dispatch.default.207: ; preds = %match.arm.48
br label %dispatch.merge.206
dispatch.case.208: ; preds = %match.arm.48
%ua.raw117 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr118 = inttoptr i64 %ua.raw117 to ptr
%ua.load119 = load { ptr, i64 }, ptr %ua.ptr118, align 8
%callN = call { ptr, i64 } @slice_to_string__string(ptr %0, { ptr, i64 } %ua.load119)
%ua.raw121 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr122 = inttoptr i64 %ua.raw121 to ptr
%ua.load123 = load { ptr, i64 }, ptr %ua.ptr122, align 8
%callN = call { ptr, i64 } @slice_to_string__string(ptr %0, { ptr, i64 } %ua.load123)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.206
dispatch.case.209: ; preds = %match.arm.48
%ua.raw121 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr122 = inttoptr i64 %ua.raw121 to ptr
%ua.load123 = load { ptr, i64 }, ptr %ua.ptr122, align 8
%callN = call { ptr, i64 } @slice_to_string__VL(ptr %0, { ptr, i64 } %ua.load123)
%ua.raw125 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr126 = inttoptr i64 %ua.raw125 to ptr
%ua.load127 = load { ptr, i64 }, ptr %ua.ptr126, align 8
%callN = call { ptr, i64 } @slice_to_string__VL(ptr %0, { ptr, i64 } %ua.load127)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.206
dispatch.case.210: ; preds = %match.arm.48
%ua.raw125 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr126 = inttoptr i64 %ua.raw125 to ptr
%ua.load127 = load { ptr, i64 }, ptr %ua.ptr126, align 8
%callN = call { ptr, i64 } @slice_to_string__Any(ptr %0, { ptr, i64 } %ua.load127)
%ua.raw129 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr130 = inttoptr i64 %ua.raw129 to ptr
%ua.load131 = load { ptr, i64 }, ptr %ua.ptr130, align 8
%callN = call { ptr, i64 } @slice_to_string__Any(ptr %0, { ptr, i64 } %ua.load131)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.206
@@ -1629,170 +1635,170 @@ dispatch.default.227: ; preds = %match.arm.49
br label %dispatch.merge.226
dispatch.case.228: ; preds = %match.arm.49
%ua.raw130 = extractvalue { i64, i64 } %loadN, 1
%iNp = inttoptr i64 %ua.raw130 to ptr
%ua.raw134 = extractvalue { i64, i64 } %loadN, 1
%iNp = inttoptr i64 %ua.raw134 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_void(ptr %0, ptr %iNp)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.226
dispatch.case.229: ; preds = %match.arm.49
%ua.raw132 = extractvalue { i64, i64 } %loadN, 1
%iNp133 = inttoptr i64 %ua.raw132 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_CAllocator(ptr %0, ptr %iNp133)
%ua.raw136 = extractvalue { i64, i64 } %loadN, 1
%iNp137 = inttoptr i64 %ua.raw136 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_CAllocator(ptr %0, ptr %iNp137)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.226
dispatch.case.230: ; preds = %match.arm.49
%ua.raw135 = extractvalue { i64, i64 } %loadN, 1
%iNp136 = inttoptr i64 %ua.raw135 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_GPA(ptr %0, ptr %iNp136)
%ua.raw139 = extractvalue { i64, i64 } %loadN, 1
%iNp140 = inttoptr i64 %ua.raw139 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_GPA(ptr %0, ptr %iNp140)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.226
dispatch.case.231: ; preds = %match.arm.49
%ua.raw138 = extractvalue { i64, i64 } %loadN, 1
%iNp139 = inttoptr i64 %ua.raw138 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_ArenaChunk(ptr %0, ptr %iNp139)
%ua.raw142 = extractvalue { i64, i64 } %loadN, 1
%iNp143 = inttoptr i64 %ua.raw142 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_ArenaChunk(ptr %0, ptr %iNp143)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.226
dispatch.case.232: ; preds = %match.arm.49
%ua.raw141 = extractvalue { i64, i64 } %loadN, 1
%iNp142 = inttoptr i64 %ua.raw141 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_Arena(ptr %0, ptr %iNp142)
%ua.raw145 = extractvalue { i64, i64 } %loadN, 1
%iNp146 = inttoptr i64 %ua.raw145 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_Arena(ptr %0, ptr %iNp146)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.226
dispatch.case.233: ; preds = %match.arm.49
%ua.raw144 = extractvalue { i64, i64 } %loadN, 1
%iNp145 = inttoptr i64 %ua.raw144 to ptr
%callN = call { ptr, i64 } @pointer_to_string__mptr_u8(ptr %0, ptr %iNp145)
%ua.raw148 = extractvalue { i64, i64 } %loadN, 1
%iNp149 = inttoptr i64 %ua.raw148 to ptr
%callN = call { ptr, i64 } @pointer_to_string__mptr_u8(ptr %0, ptr %iNp149)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.226
dispatch.case.234: ; preds = %match.arm.49
%ua.raw147 = extractvalue { i64, i64 } %loadN, 1
%iNp148 = inttoptr i64 %ua.raw147 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_BufAlloc(ptr %0, ptr %iNp148)
%ua.raw151 = extractvalue { i64, i64 } %loadN, 1
%iNp152 = inttoptr i64 %ua.raw151 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_BufAlloc(ptr %0, ptr %iNp152)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.226
dispatch.case.235: ; preds = %match.arm.49
%ua.raw150 = extractvalue { i64, i64 } %loadN, 1
%iNp151 = inttoptr i64 %ua.raw150 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_TrackingAllocator(ptr %0, ptr %iNp151)
%ua.raw154 = extractvalue { i64, i64 } %loadN, 1
%iNp155 = inttoptr i64 %ua.raw154 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_TrackingAllocator(ptr %0, ptr %iNp155)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.226
dispatch.case.236: ; preds = %match.arm.49
%ua.raw153 = extractvalue { i64, i64 } %loadN, 1
%iNp154 = inttoptr i64 %ua.raw153 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_IntCell(ptr %0, ptr %iNp154)
%ua.raw157 = extractvalue { i64, i64 } %loadN, 1
%iNp158 = inttoptr i64 %ua.raw157 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_IntCell(ptr %0, ptr %iNp158)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.226
dispatch.case.237: ; preds = %match.arm.49
%ua.raw156 = extractvalue { i64, i64 } %loadN, 1
%iNp157 = inttoptr i64 %ua.raw156 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_ptr_CAllocator(ptr %0, ptr %iNp157)
%ua.raw160 = extractvalue { i64, i64 } %loadN, 1
%iNp161 = inttoptr i64 %ua.raw160 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_ptr_CAllocator(ptr %0, ptr %iNp161)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.226
dispatch.case.238: ; preds = %match.arm.49
%ua.raw159 = extractvalue { i64, i64 } %loadN, 1
%iNp160 = inttoptr i64 %ua.raw159 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_s64(ptr %0, ptr %iNp160)
%ua.raw163 = extractvalue { i64, i64 } %loadN, 1
%iNp164 = inttoptr i64 %ua.raw163 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_s64(ptr %0, ptr %iNp164)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.226
dispatch.case.239: ; preds = %match.arm.49
%ua.raw162 = extractvalue { i64, i64 } %loadN, 1
%iNp163 = inttoptr i64 %ua.raw162 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_ptr_void(ptr %0, ptr %iNp163)
%ua.raw166 = extractvalue { i64, i64 } %loadN, 1
%iNp167 = inttoptr i64 %ua.raw166 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_ptr_void(ptr %0, ptr %iNp167)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.226
dispatch.case.240: ; preds = %match.arm.49
%ua.raw165 = extractvalue { i64, i64 } %loadN, 1
%iNp166 = inttoptr i64 %ua.raw165 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_Any(ptr %0, ptr %iNp166)
%ua.raw169 = extractvalue { i64, i64 } %loadN, 1
%iNp170 = inttoptr i64 %ua.raw169 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_Any(ptr %0, ptr %iNp170)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.226
dispatch.case.241: ; preds = %match.arm.49
%ua.raw168 = extractvalue { i64, i64 } %loadN, 1
%iNp169 = inttoptr i64 %ua.raw168 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_AR_1_Any(ptr %0, ptr %iNp169)
%ua.raw172 = extractvalue { i64, i64 } %loadN, 1
%iNp173 = inttoptr i64 %ua.raw172 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_AR_1_Any(ptr %0, ptr %iNp173)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.226
dispatch.case.242: ; preds = %match.arm.49
%ua.raw171 = extractvalue { i64, i64 } %loadN, 1
%iNp172 = inttoptr i64 %ua.raw171 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_SL_Any(ptr %0, ptr %iNp172)
%ua.raw175 = extractvalue { i64, i64 } %loadN, 1
%iNp176 = inttoptr i64 %ua.raw175 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_SL_Any(ptr %0, ptr %iNp176)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.226
dispatch.case.243: ; preds = %match.arm.49
%ua.raw174 = extractvalue { i64, i64 } %loadN, 1
%iNp175 = inttoptr i64 %ua.raw174 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_Combined__s64__s64(ptr %0, ptr %iNp175)
%ua.raw178 = extractvalue { i64, i64 } %loadN, 1
%iNp179 = inttoptr i64 %ua.raw178 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_Combined__s64__s64(ptr %0, ptr %iNp179)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.226
dispatch.case.244: ; preds = %match.arm.49
%ua.raw177 = extractvalue { i64, i64 } %loadN, 1
%iNp178 = inttoptr i64 %ua.raw177 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_ptr_IntCell(ptr %0, ptr %iNp178)
%ua.raw181 = extractvalue { i64, i64 } %loadN, 1
%iNp182 = inttoptr i64 %ua.raw181 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_ptr_IntCell(ptr %0, ptr %iNp182)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.226
dispatch.case.245: ; preds = %match.arm.49
%ua.raw180 = extractvalue { i64, i64 } %loadN, 1
%iNp181 = inttoptr i64 %ua.raw180 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr___VL__s64__Vtable(ptr %0, ptr %iNp181)
%ua.raw184 = extractvalue { i64, i64 } %loadN, 1
%iNp185 = inttoptr i64 %ua.raw184 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr___VL__s64__Vtable(ptr %0, ptr %iNp185)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.226
dispatch.case.246: ; preds = %match.arm.49
%ua.raw183 = extractvalue { i64, i64 } %loadN, 1
%iNp184 = inttoptr i64 %ua.raw183 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_tu_VL__s64(ptr %0, ptr %iNp184)
%ua.raw187 = extractvalue { i64, i64 } %loadN, 1
%iNp188 = inttoptr i64 %ua.raw187 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_tu_VL__s64(ptr %0, ptr %iNp188)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.226
dispatch.case.247: ; preds = %match.arm.49
%ua.raw186 = extractvalue { i64, i64 } %loadN, 1
%iNp187 = inttoptr i64 %ua.raw186 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_ptr_Combined__s64__s64(ptr %0, ptr %iNp187)
%ua.raw190 = extractvalue { i64, i64 } %loadN, 1
%iNp191 = inttoptr i64 %ua.raw190 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_ptr_Combined__s64__s64(ptr %0, ptr %iNp191)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.226
dispatch.case.248: ; preds = %match.arm.49
%ua.raw189 = extractvalue { i64, i64 } %loadN, 1
%iNp190 = inttoptr i64 %ua.raw189 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_VL__s64(ptr %0, ptr %iNp190)
%ua.raw193 = extractvalue { i64, i64 } %loadN, 1
%iNp194 = inttoptr i64 %ua.raw193 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_VL__s64(ptr %0, ptr %iNp194)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.226
dispatch.case.249: ; preds = %match.arm.49
%ua.raw192 = extractvalue { i64, i64 } %loadN, 1
%iNp193 = inttoptr i64 %ua.raw192 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_string(ptr %0, ptr %iNp193)
%ua.raw196 = extractvalue { i64, i64 } %loadN, 1
%iNp197 = inttoptr i64 %ua.raw196 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_string(ptr %0, ptr %iNp197)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.226
dispatch.case.250: ; preds = %match.arm.49
%ua.raw195 = extractvalue { i64, i64 } %loadN, 1
%iNp196 = inttoptr i64 %ua.raw195 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_u8(ptr %0, ptr %iNp196)
%ua.raw199 = extractvalue { i64, i64 } %loadN, 1
%iNp200 = inttoptr i64 %ua.raw199 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_u8(ptr %0, ptr %iNp200)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.226
dispatch.case.251: ; preds = %match.arm.49
%ua.raw198 = extractvalue { i64, i64 } %loadN, 1
%iNp199 = inttoptr i64 %ua.raw198 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_bool(ptr %0, ptr %iNp199)
%ua.raw202 = extractvalue { i64, i64 } %loadN, 1
%iNp203 = inttoptr i64 %ua.raw202 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_bool(ptr %0, ptr %iNp203)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.226
}

View File

@@ -1330,8 +1330,11 @@ match.arm.38: ; preds = %entry
match.arm.39: ; preds = %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry
%loadN = load { i64, i64 }, ptr %allocaN, align 8
%tiu.tid = extractvalue { i64, i64 } %loadN, 1
%tiu.gep = getelementptr inbounds [102 x i1], ptr @__sx_type_is_unsigned, i64 0, i64 %tiu.tid
%refl.tag = extractvalue { i64, i64 } %loadN, 0
%refl.val = extractvalue { i64, i64 } %loadN, 1
%refl.istype = icmp eq i64 %refl.tag, 13
%refl.tid = select i1 %refl.istype, i64 %refl.val, i64 %refl.tag
%tiu.gep = getelementptr inbounds [102 x i1], ptr @__sx_type_is_unsigned, i64 0, i64 %refl.tid
%tiu.load = load i1, ptr %tiu.gep, align 1
br i1 %tiu.load, label %if.then.53, label %if.else.54
@@ -1462,8 +1465,11 @@ match.arm.50: ; No predecessors!
match.arm.51: ; preds = %entry
%loadN = load { i64, i64 }, ptr %alloca, align 8
%tn.tid = extractvalue { i64, i64 } %loadN, 1
%tn.gep = getelementptr inbounds [102 x { ptr, i64 }], ptr @__sx_type_names, i64 0, i64 %tn.tid
%refl.tag36 = extractvalue { i64, i64 } %loadN, 0
%refl.val37 = extractvalue { i64, i64 } %loadN, 1
%refl.istype38 = icmp eq i64 %refl.tag36, 13
%refl.tid39 = select i1 %refl.istype38, i64 %refl.val37, i64 %refl.tag36
%tn.gep = getelementptr inbounds [102 x { ptr, i64 }], ptr @__sx_type_names, i64 0, i64 %refl.tid39
%tn.load = load { ptr, i64 }, ptr %tn.gep, align 8
store { ptr, i64 } %tn.load, ptr %allocaN, align 8
br label %match.merge.37
@@ -1473,15 +1479,15 @@ match.unr.52: ; preds = %entry
if.then.53: ; preds = %match.arm.39
%loadN = load { i64, i64 }, ptr %alloca, align 8
%ua.raw37 = extractvalue { i64, i64 } %loadN, 1
%callN = call { ptr, i64 } @uint_to_string(ptr %0, i64 %ua.raw37)
%ua.raw41 = extractvalue { i64, i64 } %loadN, 1
%callN = call { ptr, i64 } @uint_to_string(ptr %0, i64 %ua.raw41)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %if.merge.55
if.else.54: ; preds = %match.arm.39
%loadN = load { i64, i64 }, ptr %alloca, align 8
%ua.raw40 = extractvalue { i64, i64 } %loadN, 1
%callN = call { ptr, i64 } @int_to_string(ptr %0, i64 %ua.raw40)
%ua.raw44 = extractvalue { i64, i64 } %loadN, 1
%callN = call { ptr, i64 } @int_to_string(ptr %0, i64 %ua.raw44)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %if.merge.55
@@ -1489,16 +1495,16 @@ if.merge.55: ; preds = %if.else.54, %if.the
br label %match.merge.37
f32.unbox.81: ; preds = %match.arm.42
%ua.raw42 = extractvalue { i64, i64 } %loadN, 1
%trN = trunc i64 %ua.raw42 to i32
%ua.raw46 = extractvalue { i64, i64 } %loadN, 1
%trN = trunc i64 %ua.raw46 to i32
%iNf = bitcast i32 %trN to float
%fpext = fpext float %iNf to double
store double %fpext, ptr %allocaN, align 8
br label %float.merge.83
f64.unbox.82: ; preds = %match.arm.42
%ua.raw43 = extractvalue { i64, i64 } %loadN, 1
%iNd = bitcast i64 %ua.raw43 to double
%ua.raw47 = extractvalue { i64, i64 } %loadN, 1
%iNd = bitcast i64 %ua.raw47 to double
store double %iNd, ptr %allocaN, align 8
br label %float.merge.83
@@ -1518,146 +1524,146 @@ dispatch.default.95: ; preds = %match.arm.43
br label %dispatch.merge.94
dispatch.case.96: ; preds = %match.arm.43
%ua.raw47 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr48 = inttoptr i64 %ua.raw47 to ptr
%ua.load49 = load { { ptr, i64 }, i32, i32, { ptr, i64 } }, ptr %ua.ptr48, align 8
%callN = call { ptr, i64 } @struct_to_string__Source_Location(ptr %0, { { ptr, i64 }, i32, i32, { ptr, i64 } } %ua.load49)
%ua.raw51 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr52 = inttoptr i64 %ua.raw51 to ptr
%ua.load53 = load { { ptr, i64 }, i32, i32, { ptr, i64 } }, ptr %ua.ptr52, align 8
%callN = call { ptr, i64 } @struct_to_string__Source_Location(ptr %0, { { ptr, i64 }, i32, i32, { ptr, i64 } } %ua.load53)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.94
dispatch.case.97: ; preds = %match.arm.43
%ua.raw51 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr52 = inttoptr i64 %ua.raw51 to ptr
%ua.load53 = load { ptr, ptr, ptr }, ptr %ua.ptr52, align 8
%callN = call { ptr, i64 } @struct_to_string__Allocator(ptr %0, { ptr, ptr, ptr } %ua.load53)
%ua.raw55 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr56 = inttoptr i64 %ua.raw55 to ptr
%ua.load57 = load { ptr, ptr, ptr }, ptr %ua.ptr56, align 8
%callN = call { ptr, i64 } @struct_to_string__Allocator(ptr %0, { ptr, ptr, ptr } %ua.load57)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.94
dispatch.case.98: ; preds = %match.arm.43
%ua.raw55 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr56 = inttoptr i64 %ua.raw55 to ptr
%ua.load57 = load {}, ptr %ua.ptr56, align 1
%callN = call { ptr, i64 } @struct_to_string__CAllocator(ptr %0, {} %ua.load57)
%ua.raw59 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr60 = inttoptr i64 %ua.raw59 to ptr
%ua.load61 = load {}, ptr %ua.ptr60, align 1
%callN = call { ptr, i64 } @struct_to_string__CAllocator(ptr %0, {} %ua.load61)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.94
dispatch.case.99: ; preds = %match.arm.43
%ua.raw59 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr60 = inttoptr i64 %ua.raw59 to ptr
%ua.load61 = load { i64 }, ptr %ua.ptr60, align 8
%callN = call { ptr, i64 } @struct_to_string__GPA(ptr %0, { i64 } %ua.load61)
%ua.raw63 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr64 = inttoptr i64 %ua.raw63 to ptr
%ua.load65 = load { i64 }, ptr %ua.ptr64, align 8
%callN = call { ptr, i64 } @struct_to_string__GPA(ptr %0, { i64 } %ua.load65)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.94
dispatch.case.100: ; preds = %match.arm.43
%ua.raw63 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr64 = inttoptr i64 %ua.raw63 to ptr
%ua.load65 = load { ptr, i64 }, ptr %ua.ptr64, align 8
%callN = call { ptr, i64 } @struct_to_string__ArenaChunk(ptr %0, { ptr, i64 } %ua.load65)
%ua.raw67 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr68 = inttoptr i64 %ua.raw67 to ptr
%ua.load69 = load { ptr, i64 }, ptr %ua.ptr68, align 8
%callN = call { ptr, i64 } @struct_to_string__ArenaChunk(ptr %0, { ptr, i64 } %ua.load69)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.94
dispatch.case.101: ; preds = %match.arm.43
%ua.raw67 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr68 = inttoptr i64 %ua.raw67 to ptr
%ua.load69 = load { ptr, i64, { ptr, ptr, ptr } }, ptr %ua.ptr68, align 8
%callN = call { ptr, i64 } @struct_to_string__Arena(ptr %0, { ptr, i64, { ptr, ptr, ptr } } %ua.load69)
%ua.raw71 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr72 = inttoptr i64 %ua.raw71 to ptr
%ua.load73 = load { ptr, i64, { ptr, ptr, ptr } }, ptr %ua.ptr72, align 8
%callN = call { ptr, i64 } @struct_to_string__Arena(ptr %0, { ptr, i64, { ptr, ptr, ptr } } %ua.load73)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.94
dispatch.case.102: ; preds = %match.arm.43
%ua.raw71 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr72 = inttoptr i64 %ua.raw71 to ptr
%ua.load73 = load { ptr, i64, i64 }, ptr %ua.ptr72, align 8
%callN = call { ptr, i64 } @struct_to_string__BufAlloc(ptr %0, { ptr, i64, i64 } %ua.load73)
%ua.raw75 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr76 = inttoptr i64 %ua.raw75 to ptr
%ua.load77 = load { ptr, i64, i64 }, ptr %ua.ptr76, align 8
%callN = call { ptr, i64 } @struct_to_string__BufAlloc(ptr %0, { ptr, i64, i64 } %ua.load77)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.94
dispatch.case.103: ; preds = %match.arm.43
%ua.raw75 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr76 = inttoptr i64 %ua.raw75 to ptr
%ua.load77 = load { { ptr, ptr, ptr }, i64, i64, i64 }, ptr %ua.ptr76, align 8
%callN = call { ptr, i64 } @struct_to_string__TrackingAllocator(ptr %0, { { ptr, ptr, ptr }, i64, i64, i64 } %ua.load77)
%ua.raw79 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr80 = inttoptr i64 %ua.raw79 to ptr
%ua.load81 = load { { ptr, ptr, ptr }, i64, i64, i64 }, ptr %ua.ptr80, align 8
%callN = call { ptr, i64 } @struct_to_string__TrackingAllocator(ptr %0, { { ptr, ptr, ptr }, i64, i64, i64 } %ua.load81)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.94
dispatch.case.104: ; preds = %match.arm.43
%ua.raw79 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr80 = inttoptr i64 %ua.raw79 to ptr
%ua.load81 = load { { ptr, ptr, ptr }, ptr }, ptr %ua.ptr80, align 8
%callN = call { ptr, i64 } @struct_to_string__Context(ptr %0, { { ptr, ptr, ptr }, ptr } %ua.load81)
%ua.raw83 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr84 = inttoptr i64 %ua.raw83 to ptr
%ua.load85 = load { { ptr, ptr, ptr }, ptr }, ptr %ua.ptr84, align 8
%callN = call { ptr, i64 } @struct_to_string__Context(ptr %0, { { ptr, ptr, ptr }, ptr } %ua.load85)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.94
dispatch.case.105: ; preds = %match.arm.43
%ua.raw83 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr84 = inttoptr i64 %ua.raw83 to ptr
%ua.load85 = load {}, ptr %ua.ptr84, align 1
%callN = call { ptr, i64 } @struct_to_string__BuildOptions(ptr %0, {} %ua.load85)
%ua.raw87 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr88 = inttoptr i64 %ua.raw87 to ptr
%ua.load89 = load {}, ptr %ua.ptr88, align 1
%callN = call { ptr, i64 } @struct_to_string__BuildOptions(ptr %0, {} %ua.load89)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.94
dispatch.case.106: ; preds = %match.arm.43
%ua.raw87 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr88 = inttoptr i64 %ua.raw87 to ptr
%ua.load89 = load { i32, i32 }, ptr %ua.ptr88, align 4
%callN = call { ptr, i64 } @struct_to_string__Point(ptr %0, { i32, i32 } %ua.load89)
%ua.raw91 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr92 = inttoptr i64 %ua.raw91 to ptr
%ua.load93 = load { i32, i32 }, ptr %ua.ptr92, align 4
%callN = call { ptr, i64 } @struct_to_string__Point(ptr %0, { i32, i32 } %ua.load93)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.94
dispatch.case.107: ; preds = %match.arm.43
%ua.raw91 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr92 = inttoptr i64 %ua.raw91 to ptr
%ua.load93 = load { ptr, ptr }, ptr %ua.ptr92, align 8
%callN = call { ptr, i64 } @struct_to_string__Counter(ptr %0, { ptr, ptr } %ua.load93)
%ua.raw95 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr96 = inttoptr i64 %ua.raw95 to ptr
%ua.load97 = load { ptr, ptr }, ptr %ua.ptr96, align 8
%callN = call { ptr, i64 } @struct_to_string__Counter(ptr %0, { ptr, ptr } %ua.load97)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.94
dispatch.case.108: ; preds = %match.arm.43
%ua.raw95 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr96 = inttoptr i64 %ua.raw95 to ptr
%ua.load97 = load { ptr, ptr }, ptr %ua.ptr96, align 8
%callN = call { ptr, i64 } @struct_to_string____Counter__Vtable(ptr %0, { ptr, ptr } %ua.load97)
%ua.raw99 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr100 = inttoptr i64 %ua.raw99 to ptr
%ua.load101 = load { ptr, ptr }, ptr %ua.ptr100, align 8
%callN = call { ptr, i64 } @struct_to_string____Counter__Vtable(ptr %0, { ptr, ptr } %ua.load101)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.94
dispatch.case.109: ; preds = %match.arm.43
%ua.raw99 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr100 = inttoptr i64 %ua.raw99 to ptr
%ua.load101 = load { ptr, ptr }, ptr %ua.ptr100, align 8
%callN = call { ptr, i64 } @struct_to_string__Summable(ptr %0, { ptr, ptr } %ua.load101)
%ua.raw103 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr104 = inttoptr i64 %ua.raw103 to ptr
%ua.load105 = load { ptr, ptr }, ptr %ua.ptr104, align 8
%callN = call { ptr, i64 } @struct_to_string__Summable(ptr %0, { ptr, ptr } %ua.load105)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.94
dispatch.case.110: ; preds = %match.arm.43
%ua.raw103 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr104 = inttoptr i64 %ua.raw103 to ptr
%ua.load105 = load { ptr }, ptr %ua.ptr104, align 8
%callN = call { ptr, i64 } @struct_to_string____Summable__Vtable(ptr %0, { ptr } %ua.load105)
%ua.raw107 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr108 = inttoptr i64 %ua.raw107 to ptr
%ua.load109 = load { ptr }, ptr %ua.ptr108, align 8
%callN = call { ptr, i64 } @struct_to_string____Summable__Vtable(ptr %0, { ptr } %ua.load109)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.94
dispatch.case.111: ; preds = %match.arm.43
%ua.raw107 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr108 = inttoptr i64 %ua.raw107 to ptr
%ua.load109 = load { i32 }, ptr %ua.ptr108, align 4
%callN = call { ptr, i64 } @struct_to_string__SimpleCounter(ptr %0, { i32 } %ua.load109)
%ua.raw111 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr112 = inttoptr i64 %ua.raw111 to ptr
%ua.load113 = load { i32 }, ptr %ua.ptr112, align 4
%callN = call { ptr, i64 } @struct_to_string__SimpleCounter(ptr %0, { i32 } %ua.load113)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.94
dispatch.case.112: ; preds = %match.arm.43
%ua.raw111 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr112 = inttoptr i64 %ua.raw111 to ptr
%ua.load113 = load { ptr, ptr, ptr }, ptr %ua.ptr112, align 8
%callN = call { ptr, i64 } @struct_to_string__Adder(ptr %0, { ptr, ptr, ptr } %ua.load113)
%ua.raw115 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr116 = inttoptr i64 %ua.raw115 to ptr
%ua.load117 = load { ptr, ptr, ptr }, ptr %ua.ptr116, align 8
%callN = call { ptr, i64 } @struct_to_string__Adder(ptr %0, { ptr, ptr, ptr } %ua.load117)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.94
dispatch.case.113: ; preds = %match.arm.43
%ua.raw115 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr116 = inttoptr i64 %ua.raw115 to ptr
%ua.load117 = load { i32 }, ptr %ua.ptr116, align 4
%callN = call { ptr, i64 } @struct_to_string__Accumulator(ptr %0, { i32 } %ua.load117)
%ua.raw119 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr120 = inttoptr i64 %ua.raw119 to ptr
%ua.load121 = load { i32 }, ptr %ua.ptr120, align 4
%callN = call { ptr, i64 } @struct_to_string__Accumulator(ptr %0, { i32 } %ua.load121)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.94
@@ -1671,14 +1677,14 @@ dispatch.default.205: ; preds = %match.arm.44
br label %dispatch.merge.204
dispatch.case.206: ; preds = %match.arm.44
%ua.raw120 = extractvalue { i64, i64 } %loadN, 1
%callN = call { ptr, i64 } @enum_to_string__OperatingSystem(ptr %0, i64 %ua.raw120)
%ua.raw124 = extractvalue { i64, i64 } %loadN, 1
%callN = call { ptr, i64 } @enum_to_string__OperatingSystem(ptr %0, i64 %ua.raw124)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.204
dispatch.case.207: ; preds = %match.arm.44
%ua.raw122 = extractvalue { i64, i64 } %loadN, 1
%callN = call { ptr, i64 } @enum_to_string__Architecture(ptr %0, i64 %ua.raw122)
%ua.raw126 = extractvalue { i64, i64 } %loadN, 1
%callN = call { ptr, i64 } @enum_to_string__Architecture(ptr %0, i64 %ua.raw126)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.204
@@ -1692,18 +1698,18 @@ dispatch.default.213: ; preds = %match.arm.47
br label %dispatch.merge.212
dispatch.case.214: ; preds = %match.arm.47
%ua.raw125 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr126 = inttoptr i64 %ua.raw125 to ptr
%ua.load127 = load [4 x i64], ptr %ua.ptr126, align 8
%callN = call { ptr, i64 } @array_to_string__AR_4_s64(ptr %0, [4 x i64] %ua.load127)
%ua.raw129 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr130 = inttoptr i64 %ua.raw129 to ptr
%ua.load131 = load [4 x i64], ptr %ua.ptr130, align 8
%callN = call { ptr, i64 } @array_to_string__AR_4_s64(ptr %0, [4 x i64] %ua.load131)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.212
dispatch.case.215: ; preds = %match.arm.47
%ua.raw129 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr130 = inttoptr i64 %ua.raw129 to ptr
%ua.load131 = load [1 x { i64, i64 }], ptr %ua.ptr130, align 8
%callN = call { ptr, i64 } @array_to_string__AR_1_Any(ptr %0, [1 x { i64, i64 }] %ua.load131)
%ua.raw133 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr134 = inttoptr i64 %ua.raw133 to ptr
%ua.load135 = load [1 x { i64, i64 }], ptr %ua.ptr134, align 8
%callN = call { ptr, i64 } @array_to_string__AR_1_Any(ptr %0, [1 x { i64, i64 }] %ua.load135)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.212
@@ -1717,18 +1723,18 @@ dispatch.default.227: ; preds = %match.arm.48
br label %dispatch.merge.226
dispatch.case.228: ; preds = %match.arm.48
%ua.raw134 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr135 = inttoptr i64 %ua.raw134 to ptr
%ua.load136 = load { ptr, i64 }, ptr %ua.ptr135, align 8
%callN = call { ptr, i64 } @slice_to_string__string(ptr %0, { ptr, i64 } %ua.load136)
%ua.raw138 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr139 = inttoptr i64 %ua.raw138 to ptr
%ua.load140 = load { ptr, i64 }, ptr %ua.ptr139, align 8
%callN = call { ptr, i64 } @slice_to_string__string(ptr %0, { ptr, i64 } %ua.load140)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.226
dispatch.case.229: ; preds = %match.arm.48
%ua.raw138 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr139 = inttoptr i64 %ua.raw138 to ptr
%ua.load140 = load { ptr, i64 }, ptr %ua.ptr139, align 8
%callN = call { ptr, i64 } @slice_to_string__Any(ptr %0, { ptr, i64 } %ua.load140)
%ua.raw142 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr143 = inttoptr i64 %ua.raw142 to ptr
%ua.load144 = load { ptr, i64 }, ptr %ua.ptr143, align 8
%callN = call { ptr, i64 } @slice_to_string__Any(ptr %0, { ptr, i64 } %ua.load144)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.226
@@ -1742,184 +1748,184 @@ dispatch.default.241: ; preds = %match.arm.49
br label %dispatch.merge.240
dispatch.case.242: ; preds = %match.arm.49
%ua.raw143 = extractvalue { i64, i64 } %loadN, 1
%iNp = inttoptr i64 %ua.raw143 to ptr
%ua.raw147 = extractvalue { i64, i64 } %loadN, 1
%iNp = inttoptr i64 %ua.raw147 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_void(ptr %0, ptr %iNp)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.240
dispatch.case.243: ; preds = %match.arm.49
%ua.raw145 = extractvalue { i64, i64 } %loadN, 1
%iNp146 = inttoptr i64 %ua.raw145 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_CAllocator(ptr %0, ptr %iNp146)
%ua.raw149 = extractvalue { i64, i64 } %loadN, 1
%iNp150 = inttoptr i64 %ua.raw149 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_CAllocator(ptr %0, ptr %iNp150)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.240
dispatch.case.244: ; preds = %match.arm.49
%ua.raw148 = extractvalue { i64, i64 } %loadN, 1
%iNp149 = inttoptr i64 %ua.raw148 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_GPA(ptr %0, ptr %iNp149)
%ua.raw152 = extractvalue { i64, i64 } %loadN, 1
%iNp153 = inttoptr i64 %ua.raw152 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_GPA(ptr %0, ptr %iNp153)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.240
dispatch.case.245: ; preds = %match.arm.49
%ua.raw151 = extractvalue { i64, i64 } %loadN, 1
%iNp152 = inttoptr i64 %ua.raw151 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_ArenaChunk(ptr %0, ptr %iNp152)
%ua.raw155 = extractvalue { i64, i64 } %loadN, 1
%iNp156 = inttoptr i64 %ua.raw155 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_ArenaChunk(ptr %0, ptr %iNp156)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.240
dispatch.case.246: ; preds = %match.arm.49
%ua.raw154 = extractvalue { i64, i64 } %loadN, 1
%iNp155 = inttoptr i64 %ua.raw154 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_Arena(ptr %0, ptr %iNp155)
%ua.raw158 = extractvalue { i64, i64 } %loadN, 1
%iNp159 = inttoptr i64 %ua.raw158 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_Arena(ptr %0, ptr %iNp159)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.240
dispatch.case.247: ; preds = %match.arm.49
%ua.raw157 = extractvalue { i64, i64 } %loadN, 1
%iNp158 = inttoptr i64 %ua.raw157 to ptr
%callN = call { ptr, i64 } @pointer_to_string__mptr_u8(ptr %0, ptr %iNp158)
%ua.raw161 = extractvalue { i64, i64 } %loadN, 1
%iNp162 = inttoptr i64 %ua.raw161 to ptr
%callN = call { ptr, i64 } @pointer_to_string__mptr_u8(ptr %0, ptr %iNp162)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.240
dispatch.case.248: ; preds = %match.arm.49
%ua.raw160 = extractvalue { i64, i64 } %loadN, 1
%iNp161 = inttoptr i64 %ua.raw160 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_BufAlloc(ptr %0, ptr %iNp161)
%ua.raw164 = extractvalue { i64, i64 } %loadN, 1
%iNp165 = inttoptr i64 %ua.raw164 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_BufAlloc(ptr %0, ptr %iNp165)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.240
dispatch.case.249: ; preds = %match.arm.49
%ua.raw163 = extractvalue { i64, i64 } %loadN, 1
%iNp164 = inttoptr i64 %ua.raw163 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_TrackingAllocator(ptr %0, ptr %iNp164)
%ua.raw167 = extractvalue { i64, i64 } %loadN, 1
%iNp168 = inttoptr i64 %ua.raw167 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_TrackingAllocator(ptr %0, ptr %iNp168)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.240
dispatch.case.250: ; preds = %match.arm.49
%ua.raw166 = extractvalue { i64, i64 } %loadN, 1
%iNp167 = inttoptr i64 %ua.raw166 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_SimpleCounter(ptr %0, ptr %iNp167)
%ua.raw170 = extractvalue { i64, i64 } %loadN, 1
%iNp171 = inttoptr i64 %ua.raw170 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_SimpleCounter(ptr %0, ptr %iNp171)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.240
dispatch.case.251: ; preds = %match.arm.49
%ua.raw169 = extractvalue { i64, i64 } %loadN, 1
%iNp170 = inttoptr i64 %ua.raw169 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_Point(ptr %0, ptr %iNp170)
%ua.raw173 = extractvalue { i64, i64 } %loadN, 1
%iNp174 = inttoptr i64 %ua.raw173 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_Point(ptr %0, ptr %iNp174)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.240
dispatch.case.252: ; preds = %match.arm.49
%ua.raw172 = extractvalue { i64, i64 } %loadN, 1
%iNp173 = inttoptr i64 %ua.raw172 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_Accumulator(ptr %0, ptr %iNp173)
%ua.raw176 = extractvalue { i64, i64 } %loadN, 1
%iNp177 = inttoptr i64 %ua.raw176 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_Accumulator(ptr %0, ptr %iNp177)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.240
dispatch.case.253: ; preds = %match.arm.49
%ua.raw175 = extractvalue { i64, i64 } %loadN, 1
%iNp176 = inttoptr i64 %ua.raw175 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_ptr_CAllocator(ptr %0, ptr %iNp176)
%ua.raw179 = extractvalue { i64, i64 } %loadN, 1
%iNp180 = inttoptr i64 %ua.raw179 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_ptr_CAllocator(ptr %0, ptr %iNp180)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.240
dispatch.case.254: ; preds = %match.arm.49
%ua.raw178 = extractvalue { i64, i64 } %loadN, 1
%iNp179 = inttoptr i64 %ua.raw178 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_s64(ptr %0, ptr %iNp179)
%ua.raw182 = extractvalue { i64, i64 } %loadN, 1
%iNp183 = inttoptr i64 %ua.raw182 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_s64(ptr %0, ptr %iNp183)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.240
dispatch.case.255: ; preds = %match.arm.49
%ua.raw181 = extractvalue { i64, i64 } %loadN, 1
%iNp182 = inttoptr i64 %ua.raw181 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_ptr_void(ptr %0, ptr %iNp182)
%ua.raw185 = extractvalue { i64, i64 } %loadN, 1
%iNp186 = inttoptr i64 %ua.raw185 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_ptr_void(ptr %0, ptr %iNp186)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.240
dispatch.case.256: ; preds = %match.arm.49
%ua.raw184 = extractvalue { i64, i64 } %loadN, 1
%iNp185 = inttoptr i64 %ua.raw184 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_string(ptr %0, ptr %iNp185)
%ua.raw188 = extractvalue { i64, i64 } %loadN, 1
%iNp189 = inttoptr i64 %ua.raw188 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_string(ptr %0, ptr %iNp189)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.240
dispatch.case.257: ; preds = %match.arm.49
%ua.raw187 = extractvalue { i64, i64 } %loadN, 1
%iNp188 = inttoptr i64 %ua.raw187 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_Any(ptr %0, ptr %iNp188)
%ua.raw191 = extractvalue { i64, i64 } %loadN, 1
%iNp192 = inttoptr i64 %ua.raw191 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_Any(ptr %0, ptr %iNp192)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.240
dispatch.case.258: ; preds = %match.arm.49
%ua.raw190 = extractvalue { i64, i64 } %loadN, 1
%iNp191 = inttoptr i64 %ua.raw190 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_SL_Any(ptr %0, ptr %iNp191)
%ua.raw194 = extractvalue { i64, i64 } %loadN, 1
%iNp195 = inttoptr i64 %ua.raw194 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_SL_Any(ptr %0, ptr %iNp195)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.240
dispatch.case.259: ; preds = %match.arm.49
%ua.raw193 = extractvalue { i64, i64 } %loadN, 1
%iNp194 = inttoptr i64 %ua.raw193 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_u8(ptr %0, ptr %iNp194)
%ua.raw197 = extractvalue { i64, i64 } %loadN, 1
%iNp198 = inttoptr i64 %ua.raw197 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_u8(ptr %0, ptr %iNp198)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.240
dispatch.case.260: ; preds = %match.arm.49
%ua.raw196 = extractvalue { i64, i64 } %loadN, 1
%iNp197 = inttoptr i64 %ua.raw196 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_bool(ptr %0, ptr %iNp197)
%ua.raw200 = extractvalue { i64, i64 } %loadN, 1
%iNp201 = inttoptr i64 %ua.raw200 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_bool(ptr %0, ptr %iNp201)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.240
dispatch.case.261: ; preds = %match.arm.49
%ua.raw199 = extractvalue { i64, i64 } %loadN, 1
%iNp200 = inttoptr i64 %ua.raw199 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_Counter(ptr %0, ptr %iNp200)
%ua.raw203 = extractvalue { i64, i64 } %loadN, 1
%iNp204 = inttoptr i64 %ua.raw203 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_Counter(ptr %0, ptr %iNp204)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.240
dispatch.case.262: ; preds = %match.arm.49
%ua.raw202 = extractvalue { i64, i64 } %loadN, 1
%iNp203 = inttoptr i64 %ua.raw202 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_ptr_SimpleCounter(ptr %0, ptr %iNp203)
%ua.raw206 = extractvalue { i64, i64 } %loadN, 1
%iNp207 = inttoptr i64 %ua.raw206 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_ptr_SimpleCounter(ptr %0, ptr %iNp207)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.240
dispatch.case.263: ; preds = %match.arm.49
%ua.raw205 = extractvalue { i64, i64 } %loadN, 1
%iNp206 = inttoptr i64 %ua.raw205 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_s32(ptr %0, ptr %iNp206)
%ua.raw209 = extractvalue { i64, i64 } %loadN, 1
%iNp210 = inttoptr i64 %ua.raw209 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_s32(ptr %0, ptr %iNp210)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.240
dispatch.case.264: ; preds = %match.arm.49
%ua.raw208 = extractvalue { i64, i64 } %loadN, 1
%iNp209 = inttoptr i64 %ua.raw208 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr___Counter__Vtable(ptr %0, ptr %iNp209)
%ua.raw212 = extractvalue { i64, i64 } %loadN, 1
%iNp213 = inttoptr i64 %ua.raw212 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr___Counter__Vtable(ptr %0, ptr %iNp213)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.240
dispatch.case.265: ; preds = %match.arm.49
%ua.raw211 = extractvalue { i64, i64 } %loadN, 1
%iNp212 = inttoptr i64 %ua.raw211 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_AR_1_Any(ptr %0, ptr %iNp212)
%ua.raw215 = extractvalue { i64, i64 } %loadN, 1
%iNp216 = inttoptr i64 %ua.raw215 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_AR_1_Any(ptr %0, ptr %iNp216)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.240
dispatch.case.266: ; preds = %match.arm.49
%ua.raw214 = extractvalue { i64, i64 } %loadN, 1
%iNp215 = inttoptr i64 %ua.raw214 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_Adder(ptr %0, ptr %iNp215)
%ua.raw218 = extractvalue { i64, i64 } %loadN, 1
%iNp219 = inttoptr i64 %ua.raw218 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_Adder(ptr %0, ptr %iNp219)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.240
dispatch.case.267: ; preds = %match.arm.49
%ua.raw217 = extractvalue { i64, i64 } %loadN, 1
%iNp218 = inttoptr i64 %ua.raw217 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_ptr_Accumulator(ptr %0, ptr %iNp218)
%ua.raw221 = extractvalue { i64, i64 } %loadN, 1
%iNp222 = inttoptr i64 %ua.raw221 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_ptr_Accumulator(ptr %0, ptr %iNp222)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.240
}

View File

@@ -1176,8 +1176,11 @@ match.arm.38: ; preds = %entry
match.arm.39: ; preds = %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry
%loadN = load { i64, i64 }, ptr %allocaN, align 8
%tiu.tid = extractvalue { i64, i64 } %loadN, 1
%tiu.gep = getelementptr inbounds [78 x i1], ptr @__sx_type_is_unsigned, i64 0, i64 %tiu.tid
%refl.tag = extractvalue { i64, i64 } %loadN, 0
%refl.val = extractvalue { i64, i64 } %loadN, 1
%refl.istype = icmp eq i64 %refl.tag, 13
%refl.tid = select i1 %refl.istype, i64 %refl.val, i64 %refl.tag
%tiu.gep = getelementptr inbounds [78 x i1], ptr @__sx_type_is_unsigned, i64 0, i64 %refl.tid
%tiu.load = load i1, ptr %tiu.gep, align 1
br i1 %tiu.load, label %if.then.53, label %if.else.54
@@ -1289,8 +1292,11 @@ match.arm.50: ; No predecessors!
match.arm.51: ; preds = %entry
%loadN = load { i64, i64 }, ptr %alloca, align 8
%tn.tid = extractvalue { i64, i64 } %loadN, 1
%tn.gep = getelementptr inbounds [78 x { ptr, i64 }], ptr @__sx_type_names, i64 0, i64 %tn.tid
%refl.tag32 = extractvalue { i64, i64 } %loadN, 0
%refl.val33 = extractvalue { i64, i64 } %loadN, 1
%refl.istype34 = icmp eq i64 %refl.tag32, 13
%refl.tid35 = select i1 %refl.istype34, i64 %refl.val33, i64 %refl.tag32
%tn.gep = getelementptr inbounds [78 x { ptr, i64 }], ptr @__sx_type_names, i64 0, i64 %refl.tid35
%tn.load = load { ptr, i64 }, ptr %tn.gep, align 8
store { ptr, i64 } %tn.load, ptr %allocaN, align 8
br label %match.merge.37
@@ -1300,15 +1306,15 @@ match.unr.52: ; preds = %entry
if.then.53: ; preds = %match.arm.39
%loadN = load { i64, i64 }, ptr %alloca, align 8
%ua.raw33 = extractvalue { i64, i64 } %loadN, 1
%callN = call { ptr, i64 } @uint_to_string(ptr %0, i64 %ua.raw33)
%ua.raw37 = extractvalue { i64, i64 } %loadN, 1
%callN = call { ptr, i64 } @uint_to_string(ptr %0, i64 %ua.raw37)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %if.merge.55
if.else.54: ; preds = %match.arm.39
%loadN = load { i64, i64 }, ptr %alloca, align 8
%ua.raw36 = extractvalue { i64, i64 } %loadN, 1
%callN = call { ptr, i64 } @int_to_string(ptr %0, i64 %ua.raw36)
%ua.raw40 = extractvalue { i64, i64 } %loadN, 1
%callN = call { ptr, i64 } @int_to_string(ptr %0, i64 %ua.raw40)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %if.merge.55
@@ -1316,16 +1322,16 @@ if.merge.55: ; preds = %if.else.54, %if.the
br label %match.merge.37
f32.unbox.81: ; preds = %match.arm.42
%ua.raw38 = extractvalue { i64, i64 } %loadN, 1
%trN = trunc i64 %ua.raw38 to i32
%ua.raw42 = extractvalue { i64, i64 } %loadN, 1
%trN = trunc i64 %ua.raw42 to i32
%iNf = bitcast i32 %trN to float
%fpext = fpext float %iNf to double
store double %fpext, ptr %allocaN, align 8
br label %float.merge.83
f64.unbox.82: ; preds = %match.arm.42
%ua.raw39 = extractvalue { i64, i64 } %loadN, 1
%iNd = bitcast i64 %ua.raw39 to double
%ua.raw43 = extractvalue { i64, i64 } %loadN, 1
%iNd = bitcast i64 %ua.raw43 to double
store double %iNd, ptr %allocaN, align 8
br label %float.merge.83
@@ -1345,74 +1351,74 @@ dispatch.default.95: ; preds = %match.arm.43
br label %dispatch.merge.94
dispatch.case.96: ; preds = %match.arm.43
%ua.raw43 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr44 = inttoptr i64 %ua.raw43 to ptr
%ua.load45 = load { { ptr, i64 }, i32, i32, { ptr, i64 } }, ptr %ua.ptr44, align 8
%callN = call { ptr, i64 } @struct_to_string__Source_Location(ptr %0, { { ptr, i64 }, i32, i32, { ptr, i64 } } %ua.load45)
%ua.raw47 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr48 = inttoptr i64 %ua.raw47 to ptr
%ua.load49 = load { { ptr, i64 }, i32, i32, { ptr, i64 } }, ptr %ua.ptr48, align 8
%callN = call { ptr, i64 } @struct_to_string__Source_Location(ptr %0, { { ptr, i64 }, i32, i32, { ptr, i64 } } %ua.load49)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.94
dispatch.case.97: ; preds = %match.arm.43
%ua.raw47 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr48 = inttoptr i64 %ua.raw47 to ptr
%ua.load49 = load { ptr, ptr, ptr }, ptr %ua.ptr48, align 8
%callN = call { ptr, i64 } @struct_to_string__Allocator(ptr %0, { ptr, ptr, ptr } %ua.load49)
%ua.raw51 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr52 = inttoptr i64 %ua.raw51 to ptr
%ua.load53 = load { ptr, ptr, ptr }, ptr %ua.ptr52, align 8
%callN = call { ptr, i64 } @struct_to_string__Allocator(ptr %0, { ptr, ptr, ptr } %ua.load53)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.94
dispatch.case.98: ; preds = %match.arm.43
%ua.raw51 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr52 = inttoptr i64 %ua.raw51 to ptr
%ua.load53 = load {}, ptr %ua.ptr52, align 1
%callN = call { ptr, i64 } @struct_to_string__CAllocator(ptr %0, {} %ua.load53)
%ua.raw55 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr56 = inttoptr i64 %ua.raw55 to ptr
%ua.load57 = load {}, ptr %ua.ptr56, align 1
%callN = call { ptr, i64 } @struct_to_string__CAllocator(ptr %0, {} %ua.load57)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.94
dispatch.case.99: ; preds = %match.arm.43
%ua.raw55 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr56 = inttoptr i64 %ua.raw55 to ptr
%ua.load57 = load { i64 }, ptr %ua.ptr56, align 8
%callN = call { ptr, i64 } @struct_to_string__GPA(ptr %0, { i64 } %ua.load57)
%ua.raw59 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr60 = inttoptr i64 %ua.raw59 to ptr
%ua.load61 = load { i64 }, ptr %ua.ptr60, align 8
%callN = call { ptr, i64 } @struct_to_string__GPA(ptr %0, { i64 } %ua.load61)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.94
dispatch.case.100: ; preds = %match.arm.43
%ua.raw59 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr60 = inttoptr i64 %ua.raw59 to ptr
%ua.load61 = load { ptr, i64 }, ptr %ua.ptr60, align 8
%callN = call { ptr, i64 } @struct_to_string__ArenaChunk(ptr %0, { ptr, i64 } %ua.load61)
%ua.raw63 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr64 = inttoptr i64 %ua.raw63 to ptr
%ua.load65 = load { ptr, i64 }, ptr %ua.ptr64, align 8
%callN = call { ptr, i64 } @struct_to_string__ArenaChunk(ptr %0, { ptr, i64 } %ua.load65)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.94
dispatch.case.101: ; preds = %match.arm.43
%ua.raw63 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr64 = inttoptr i64 %ua.raw63 to ptr
%ua.load65 = load { ptr, i64, { ptr, ptr, ptr } }, ptr %ua.ptr64, align 8
%callN = call { ptr, i64 } @struct_to_string__Arena(ptr %0, { ptr, i64, { ptr, ptr, ptr } } %ua.load65)
%ua.raw67 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr68 = inttoptr i64 %ua.raw67 to ptr
%ua.load69 = load { ptr, i64, { ptr, ptr, ptr } }, ptr %ua.ptr68, align 8
%callN = call { ptr, i64 } @struct_to_string__Arena(ptr %0, { ptr, i64, { ptr, ptr, ptr } } %ua.load69)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.94
dispatch.case.102: ; preds = %match.arm.43
%ua.raw67 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr68 = inttoptr i64 %ua.raw67 to ptr
%ua.load69 = load { ptr, i64, i64 }, ptr %ua.ptr68, align 8
%callN = call { ptr, i64 } @struct_to_string__BufAlloc(ptr %0, { ptr, i64, i64 } %ua.load69)
%ua.raw71 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr72 = inttoptr i64 %ua.raw71 to ptr
%ua.load73 = load { ptr, i64, i64 }, ptr %ua.ptr72, align 8
%callN = call { ptr, i64 } @struct_to_string__BufAlloc(ptr %0, { ptr, i64, i64 } %ua.load73)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.94
dispatch.case.103: ; preds = %match.arm.43
%ua.raw71 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr72 = inttoptr i64 %ua.raw71 to ptr
%ua.load73 = load { { ptr, ptr, ptr }, i64, i64, i64 }, ptr %ua.ptr72, align 8
%callN = call { ptr, i64 } @struct_to_string__TrackingAllocator(ptr %0, { { ptr, ptr, ptr }, i64, i64, i64 } %ua.load73)
%ua.raw75 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr76 = inttoptr i64 %ua.raw75 to ptr
%ua.load77 = load { { ptr, ptr, ptr }, i64, i64, i64 }, ptr %ua.ptr76, align 8
%callN = call { ptr, i64 } @struct_to_string__TrackingAllocator(ptr %0, { { ptr, ptr, ptr }, i64, i64, i64 } %ua.load77)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.94
dispatch.case.104: ; preds = %match.arm.43
%ua.raw75 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr76 = inttoptr i64 %ua.raw75 to ptr
%ua.load77 = load { { ptr, ptr, ptr }, ptr }, ptr %ua.ptr76, align 8
%callN = call { ptr, i64 } @struct_to_string__Context(ptr %0, { { ptr, ptr, ptr }, ptr } %ua.load77)
%ua.raw79 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr80 = inttoptr i64 %ua.raw79 to ptr
%ua.load81 = load { { ptr, ptr, ptr }, ptr }, ptr %ua.ptr80, align 8
%callN = call { ptr, i64 } @struct_to_string__Context(ptr %0, { { ptr, ptr, ptr }, ptr } %ua.load81)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.94
@@ -1426,42 +1432,42 @@ dispatch.default.151: ; preds = %match.arm.47
br label %dispatch.merge.150
dispatch.case.152: ; preds = %match.arm.47
%ua.raw80 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr81 = inttoptr i64 %ua.raw80 to ptr
%ua.load82 = load [4 x i64], ptr %ua.ptr81, align 8
%callN = call { ptr, i64 } @array_to_string__AR_4_s64(ptr %0, [4 x i64] %ua.load82)
%ua.raw84 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr85 = inttoptr i64 %ua.raw84 to ptr
%ua.load86 = load [4 x i64], ptr %ua.ptr85, align 8
%callN = call { ptr, i64 } @array_to_string__AR_4_s64(ptr %0, [4 x i64] %ua.load86)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.150
dispatch.case.153: ; preds = %match.arm.47
%ua.raw84 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr85 = inttoptr i64 %ua.raw84 to ptr
%ua.load86 = load [1 x { i64, i64 }], ptr %ua.ptr85, align 8
%callN = call { ptr, i64 } @array_to_string__AR_1_Any(ptr %0, [1 x { i64, i64 }] %ua.load86)
%ua.raw88 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr89 = inttoptr i64 %ua.raw88 to ptr
%ua.load90 = load [1 x { i64, i64 }], ptr %ua.ptr89, align 8
%callN = call { ptr, i64 } @array_to_string__AR_1_Any(ptr %0, [1 x { i64, i64 }] %ua.load90)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.150
dispatch.case.154: ; preds = %match.arm.47
%ua.raw88 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr89 = inttoptr i64 %ua.raw88 to ptr
%ua.load90 = load [3 x { i64, i64 }], ptr %ua.ptr89, align 8
%callN = call { ptr, i64 } @array_to_string__AR_3_Any(ptr %0, [3 x { i64, i64 }] %ua.load90)
%ua.raw92 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr93 = inttoptr i64 %ua.raw92 to ptr
%ua.load94 = load [3 x { i64, i64 }], ptr %ua.ptr93, align 8
%callN = call { ptr, i64 } @array_to_string__AR_3_Any(ptr %0, [3 x { i64, i64 }] %ua.load94)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.150
dispatch.case.155: ; preds = %match.arm.47
%ua.raw92 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr93 = inttoptr i64 %ua.raw92 to ptr
%ua.load94 = load [2 x { i64, i64 }], ptr %ua.ptr93, align 8
%callN = call { ptr, i64 } @array_to_string__AR_2_Any(ptr %0, [2 x { i64, i64 }] %ua.load94)
%ua.raw96 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr97 = inttoptr i64 %ua.raw96 to ptr
%ua.load98 = load [2 x { i64, i64 }], ptr %ua.ptr97, align 8
%callN = call { ptr, i64 } @array_to_string__AR_2_Any(ptr %0, [2 x { i64, i64 }] %ua.load98)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.150
dispatch.case.156: ; preds = %match.arm.47
%ua.raw96 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr97 = inttoptr i64 %ua.raw96 to ptr
%ua.load98 = load [5 x { i64, i64 }], ptr %ua.ptr97, align 8
%callN = call { ptr, i64 } @array_to_string__AR_5_Any(ptr %0, [5 x { i64, i64 }] %ua.load98)
%ua.raw100 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr101 = inttoptr i64 %ua.raw100 to ptr
%ua.load102 = load [5 x { i64, i64 }], ptr %ua.ptr101, align 8
%callN = call { ptr, i64 } @array_to_string__AR_5_Any(ptr %0, [5 x { i64, i64 }] %ua.load102)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.150
@@ -1475,18 +1481,18 @@ dispatch.default.183: ; preds = %match.arm.48
br label %dispatch.merge.182
dispatch.case.184: ; preds = %match.arm.48
%ua.raw101 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr102 = inttoptr i64 %ua.raw101 to ptr
%ua.load103 = load { ptr, i64 }, ptr %ua.ptr102, align 8
%callN = call { ptr, i64 } @slice_to_string__string(ptr %0, { ptr, i64 } %ua.load103)
%ua.raw105 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr106 = inttoptr i64 %ua.raw105 to ptr
%ua.load107 = load { ptr, i64 }, ptr %ua.ptr106, align 8
%callN = call { ptr, i64 } @slice_to_string__string(ptr %0, { ptr, i64 } %ua.load107)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.182
dispatch.case.185: ; preds = %match.arm.48
%ua.raw105 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr106 = inttoptr i64 %ua.raw105 to ptr
%ua.load107 = load { ptr, i64 }, ptr %ua.ptr106, align 8
%callN = call { ptr, i64 } @slice_to_string__Any(ptr %0, { ptr, i64 } %ua.load107)
%ua.raw109 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr110 = inttoptr i64 %ua.raw109 to ptr
%ua.load111 = load { ptr, i64 }, ptr %ua.ptr110, align 8
%callN = call { ptr, i64 } @slice_to_string__Any(ptr %0, { ptr, i64 } %ua.load111)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.182
@@ -1500,142 +1506,142 @@ dispatch.default.197: ; preds = %match.arm.49
br label %dispatch.merge.196
dispatch.case.198: ; preds = %match.arm.49
%ua.raw110 = extractvalue { i64, i64 } %loadN, 1
%iNp = inttoptr i64 %ua.raw110 to ptr
%ua.raw114 = extractvalue { i64, i64 } %loadN, 1
%iNp = inttoptr i64 %ua.raw114 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_void(ptr %0, ptr %iNp)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.196
dispatch.case.199: ; preds = %match.arm.49
%ua.raw112 = extractvalue { i64, i64 } %loadN, 1
%iNp113 = inttoptr i64 %ua.raw112 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_CAllocator(ptr %0, ptr %iNp113)
%ua.raw116 = extractvalue { i64, i64 } %loadN, 1
%iNp117 = inttoptr i64 %ua.raw116 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_CAllocator(ptr %0, ptr %iNp117)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.196
dispatch.case.200: ; preds = %match.arm.49
%ua.raw115 = extractvalue { i64, i64 } %loadN, 1
%iNp116 = inttoptr i64 %ua.raw115 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_GPA(ptr %0, ptr %iNp116)
%ua.raw119 = extractvalue { i64, i64 } %loadN, 1
%iNp120 = inttoptr i64 %ua.raw119 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_GPA(ptr %0, ptr %iNp120)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.196
dispatch.case.201: ; preds = %match.arm.49
%ua.raw118 = extractvalue { i64, i64 } %loadN, 1
%iNp119 = inttoptr i64 %ua.raw118 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_ArenaChunk(ptr %0, ptr %iNp119)
%ua.raw122 = extractvalue { i64, i64 } %loadN, 1
%iNp123 = inttoptr i64 %ua.raw122 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_ArenaChunk(ptr %0, ptr %iNp123)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.196
dispatch.case.202: ; preds = %match.arm.49
%ua.raw121 = extractvalue { i64, i64 } %loadN, 1
%iNp122 = inttoptr i64 %ua.raw121 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_Arena(ptr %0, ptr %iNp122)
%ua.raw125 = extractvalue { i64, i64 } %loadN, 1
%iNp126 = inttoptr i64 %ua.raw125 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_Arena(ptr %0, ptr %iNp126)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.196
dispatch.case.203: ; preds = %match.arm.49
%ua.raw124 = extractvalue { i64, i64 } %loadN, 1
%iNp125 = inttoptr i64 %ua.raw124 to ptr
%callN = call { ptr, i64 } @pointer_to_string__mptr_u8(ptr %0, ptr %iNp125)
%ua.raw128 = extractvalue { i64, i64 } %loadN, 1
%iNp129 = inttoptr i64 %ua.raw128 to ptr
%callN = call { ptr, i64 } @pointer_to_string__mptr_u8(ptr %0, ptr %iNp129)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.196
dispatch.case.204: ; preds = %match.arm.49
%ua.raw127 = extractvalue { i64, i64 } %loadN, 1
%iNp128 = inttoptr i64 %ua.raw127 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_BufAlloc(ptr %0, ptr %iNp128)
%ua.raw131 = extractvalue { i64, i64 } %loadN, 1
%iNp132 = inttoptr i64 %ua.raw131 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_BufAlloc(ptr %0, ptr %iNp132)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.196
dispatch.case.205: ; preds = %match.arm.49
%ua.raw130 = extractvalue { i64, i64 } %loadN, 1
%iNp131 = inttoptr i64 %ua.raw130 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_TrackingAllocator(ptr %0, ptr %iNp131)
%ua.raw134 = extractvalue { i64, i64 } %loadN, 1
%iNp135 = inttoptr i64 %ua.raw134 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_TrackingAllocator(ptr %0, ptr %iNp135)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.196
dispatch.case.206: ; preds = %match.arm.49
%ua.raw133 = extractvalue { i64, i64 } %loadN, 1
%iNp134 = inttoptr i64 %ua.raw133 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_ptr_CAllocator(ptr %0, ptr %iNp134)
%ua.raw137 = extractvalue { i64, i64 } %loadN, 1
%iNp138 = inttoptr i64 %ua.raw137 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_ptr_CAllocator(ptr %0, ptr %iNp138)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.196
dispatch.case.207: ; preds = %match.arm.49
%ua.raw136 = extractvalue { i64, i64 } %loadN, 1
%iNp137 = inttoptr i64 %ua.raw136 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_s64(ptr %0, ptr %iNp137)
%ua.raw140 = extractvalue { i64, i64 } %loadN, 1
%iNp141 = inttoptr i64 %ua.raw140 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_s64(ptr %0, ptr %iNp141)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.196
dispatch.case.208: ; preds = %match.arm.49
%ua.raw139 = extractvalue { i64, i64 } %loadN, 1
%iNp140 = inttoptr i64 %ua.raw139 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_ptr_void(ptr %0, ptr %iNp140)
%ua.raw143 = extractvalue { i64, i64 } %loadN, 1
%iNp144 = inttoptr i64 %ua.raw143 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_ptr_void(ptr %0, ptr %iNp144)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.196
dispatch.case.209: ; preds = %match.arm.49
%ua.raw142 = extractvalue { i64, i64 } %loadN, 1
%iNp143 = inttoptr i64 %ua.raw142 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_Any(ptr %0, ptr %iNp143)
%ua.raw146 = extractvalue { i64, i64 } %loadN, 1
%iNp147 = inttoptr i64 %ua.raw146 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_Any(ptr %0, ptr %iNp147)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.196
dispatch.case.210: ; preds = %match.arm.49
%ua.raw145 = extractvalue { i64, i64 } %loadN, 1
%iNp146 = inttoptr i64 %ua.raw145 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_SL_Any(ptr %0, ptr %iNp146)
%ua.raw149 = extractvalue { i64, i64 } %loadN, 1
%iNp150 = inttoptr i64 %ua.raw149 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_SL_Any(ptr %0, ptr %iNp150)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.196
dispatch.case.211: ; preds = %match.arm.49
%ua.raw148 = extractvalue { i64, i64 } %loadN, 1
%iNp149 = inttoptr i64 %ua.raw148 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_AR_1_Any(ptr %0, ptr %iNp149)
%ua.raw152 = extractvalue { i64, i64 } %loadN, 1
%iNp153 = inttoptr i64 %ua.raw152 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_AR_1_Any(ptr %0, ptr %iNp153)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.196
dispatch.case.212: ; preds = %match.arm.49
%ua.raw151 = extractvalue { i64, i64 } %loadN, 1
%iNp152 = inttoptr i64 %ua.raw151 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_AR_3_Any(ptr %0, ptr %iNp152)
%ua.raw155 = extractvalue { i64, i64 } %loadN, 1
%iNp156 = inttoptr i64 %ua.raw155 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_AR_3_Any(ptr %0, ptr %iNp156)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.196
dispatch.case.213: ; preds = %match.arm.49
%ua.raw154 = extractvalue { i64, i64 } %loadN, 1
%iNp155 = inttoptr i64 %ua.raw154 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_string(ptr %0, ptr %iNp155)
%ua.raw158 = extractvalue { i64, i64 } %loadN, 1
%iNp159 = inttoptr i64 %ua.raw158 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_string(ptr %0, ptr %iNp159)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.196
dispatch.case.214: ; preds = %match.arm.49
%ua.raw157 = extractvalue { i64, i64 } %loadN, 1
%iNp158 = inttoptr i64 %ua.raw157 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_bool(ptr %0, ptr %iNp158)
%ua.raw161 = extractvalue { i64, i64 } %loadN, 1
%iNp162 = inttoptr i64 %ua.raw161 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_bool(ptr %0, ptr %iNp162)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.196
dispatch.case.215: ; preds = %match.arm.49
%ua.raw160 = extractvalue { i64, i64 } %loadN, 1
%iNp161 = inttoptr i64 %ua.raw160 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_AR_2_Any(ptr %0, ptr %iNp161)
%ua.raw164 = extractvalue { i64, i64 } %loadN, 1
%iNp165 = inttoptr i64 %ua.raw164 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_AR_2_Any(ptr %0, ptr %iNp165)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.196
dispatch.case.216: ; preds = %match.arm.49
%ua.raw163 = extractvalue { i64, i64 } %loadN, 1
%iNp164 = inttoptr i64 %ua.raw163 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_AR_5_Any(ptr %0, ptr %iNp164)
%ua.raw167 = extractvalue { i64, i64 } %loadN, 1
%iNp168 = inttoptr i64 %ua.raw167 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_AR_5_Any(ptr %0, ptr %iNp168)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.196
dispatch.case.217: ; preds = %match.arm.49
%ua.raw166 = extractvalue { i64, i64 } %loadN, 1
%iNp167 = inttoptr i64 %ua.raw166 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_u8(ptr %0, ptr %iNp167)
%ua.raw170 = extractvalue { i64, i64 } %loadN, 1
%iNp171 = inttoptr i64 %ua.raw170 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_u8(ptr %0, ptr %iNp171)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.196
}

View File

@@ -1153,8 +1153,11 @@ match.arm.38: ; preds = %entry
match.arm.39: ; preds = %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry
%loadN = load { i64, i64 }, ptr %allocaN, align 8
%tiu.tid = extractvalue { i64, i64 } %loadN, 1
%tiu.gep = getelementptr inbounds [72 x i1], ptr @__sx_type_is_unsigned, i64 0, i64 %tiu.tid
%refl.tag = extractvalue { i64, i64 } %loadN, 0
%refl.val = extractvalue { i64, i64 } %loadN, 1
%refl.istype = icmp eq i64 %refl.tag, 13
%refl.tid = select i1 %refl.istype, i64 %refl.val, i64 %refl.tag
%tiu.gep = getelementptr inbounds [72 x i1], ptr @__sx_type_is_unsigned, i64 0, i64 %refl.tid
%tiu.load = load i1, ptr %tiu.gep, align 1
br i1 %tiu.load, label %if.then.53, label %if.else.54
@@ -1262,8 +1265,11 @@ match.arm.50: ; No predecessors!
match.arm.51: ; preds = %entry
%loadN = load { i64, i64 }, ptr %alloca, align 8
%tn.tid = extractvalue { i64, i64 } %loadN, 1
%tn.gep = getelementptr inbounds [72 x { ptr, i64 }], ptr @__sx_type_names, i64 0, i64 %tn.tid
%refl.tag32 = extractvalue { i64, i64 } %loadN, 0
%refl.val33 = extractvalue { i64, i64 } %loadN, 1
%refl.istype34 = icmp eq i64 %refl.tag32, 13
%refl.tid35 = select i1 %refl.istype34, i64 %refl.val33, i64 %refl.tag32
%tn.gep = getelementptr inbounds [72 x { ptr, i64 }], ptr @__sx_type_names, i64 0, i64 %refl.tid35
%tn.load = load { ptr, i64 }, ptr %tn.gep, align 8
store { ptr, i64 } %tn.load, ptr %allocaN, align 8
br label %match.merge.37
@@ -1273,15 +1279,15 @@ match.unr.52: ; preds = %entry
if.then.53: ; preds = %match.arm.39
%loadN = load { i64, i64 }, ptr %alloca, align 8
%ua.raw33 = extractvalue { i64, i64 } %loadN, 1
%callN = call { ptr, i64 } @uint_to_string(ptr %0, i64 %ua.raw33)
%ua.raw37 = extractvalue { i64, i64 } %loadN, 1
%callN = call { ptr, i64 } @uint_to_string(ptr %0, i64 %ua.raw37)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %if.merge.55
if.else.54: ; preds = %match.arm.39
%loadN = load { i64, i64 }, ptr %alloca, align 8
%ua.raw36 = extractvalue { i64, i64 } %loadN, 1
%callN = call { ptr, i64 } @int_to_string(ptr %0, i64 %ua.raw36)
%ua.raw40 = extractvalue { i64, i64 } %loadN, 1
%callN = call { ptr, i64 } @int_to_string(ptr %0, i64 %ua.raw40)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %if.merge.55
@@ -1289,16 +1295,16 @@ if.merge.55: ; preds = %if.else.54, %if.the
br label %match.merge.37
f32.unbox.81: ; preds = %match.arm.42
%ua.raw38 = extractvalue { i64, i64 } %loadN, 1
%trN = trunc i64 %ua.raw38 to i32
%ua.raw42 = extractvalue { i64, i64 } %loadN, 1
%trN = trunc i64 %ua.raw42 to i32
%iNf = bitcast i32 %trN to float
%fpext = fpext float %iNf to double
store double %fpext, ptr %allocaN, align 8
br label %float.merge.83
f64.unbox.82: ; preds = %match.arm.42
%ua.raw39 = extractvalue { i64, i64 } %loadN, 1
%iNd = bitcast i64 %ua.raw39 to double
%ua.raw43 = extractvalue { i64, i64 } %loadN, 1
%iNd = bitcast i64 %ua.raw43 to double
store double %iNd, ptr %allocaN, align 8
br label %float.merge.83
@@ -1318,74 +1324,74 @@ dispatch.default.95: ; preds = %match.arm.43
br label %dispatch.merge.94
dispatch.case.96: ; preds = %match.arm.43
%ua.raw43 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr44 = inttoptr i64 %ua.raw43 to ptr
%ua.load45 = load { { ptr, i64 }, i32, i32, { ptr, i64 } }, ptr %ua.ptr44, align 8
%callN = call { ptr, i64 } @struct_to_string__Source_Location(ptr %0, { { ptr, i64 }, i32, i32, { ptr, i64 } } %ua.load45)
%ua.raw47 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr48 = inttoptr i64 %ua.raw47 to ptr
%ua.load49 = load { { ptr, i64 }, i32, i32, { ptr, i64 } }, ptr %ua.ptr48, align 8
%callN = call { ptr, i64 } @struct_to_string__Source_Location(ptr %0, { { ptr, i64 }, i32, i32, { ptr, i64 } } %ua.load49)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.94
dispatch.case.97: ; preds = %match.arm.43
%ua.raw47 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr48 = inttoptr i64 %ua.raw47 to ptr
%ua.load49 = load { ptr, ptr, ptr }, ptr %ua.ptr48, align 8
%callN = call { ptr, i64 } @struct_to_string__Allocator(ptr %0, { ptr, ptr, ptr } %ua.load49)
%ua.raw51 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr52 = inttoptr i64 %ua.raw51 to ptr
%ua.load53 = load { ptr, ptr, ptr }, ptr %ua.ptr52, align 8
%callN = call { ptr, i64 } @struct_to_string__Allocator(ptr %0, { ptr, ptr, ptr } %ua.load53)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.94
dispatch.case.98: ; preds = %match.arm.43
%ua.raw51 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr52 = inttoptr i64 %ua.raw51 to ptr
%ua.load53 = load {}, ptr %ua.ptr52, align 1
%callN = call { ptr, i64 } @struct_to_string__CAllocator(ptr %0, {} %ua.load53)
%ua.raw55 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr56 = inttoptr i64 %ua.raw55 to ptr
%ua.load57 = load {}, ptr %ua.ptr56, align 1
%callN = call { ptr, i64 } @struct_to_string__CAllocator(ptr %0, {} %ua.load57)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.94
dispatch.case.99: ; preds = %match.arm.43
%ua.raw55 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr56 = inttoptr i64 %ua.raw55 to ptr
%ua.load57 = load { i64 }, ptr %ua.ptr56, align 8
%callN = call { ptr, i64 } @struct_to_string__GPA(ptr %0, { i64 } %ua.load57)
%ua.raw59 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr60 = inttoptr i64 %ua.raw59 to ptr
%ua.load61 = load { i64 }, ptr %ua.ptr60, align 8
%callN = call { ptr, i64 } @struct_to_string__GPA(ptr %0, { i64 } %ua.load61)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.94
dispatch.case.100: ; preds = %match.arm.43
%ua.raw59 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr60 = inttoptr i64 %ua.raw59 to ptr
%ua.load61 = load { ptr, i64 }, ptr %ua.ptr60, align 8
%callN = call { ptr, i64 } @struct_to_string__ArenaChunk(ptr %0, { ptr, i64 } %ua.load61)
%ua.raw63 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr64 = inttoptr i64 %ua.raw63 to ptr
%ua.load65 = load { ptr, i64 }, ptr %ua.ptr64, align 8
%callN = call { ptr, i64 } @struct_to_string__ArenaChunk(ptr %0, { ptr, i64 } %ua.load65)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.94
dispatch.case.101: ; preds = %match.arm.43
%ua.raw63 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr64 = inttoptr i64 %ua.raw63 to ptr
%ua.load65 = load { ptr, i64, { ptr, ptr, ptr } }, ptr %ua.ptr64, align 8
%callN = call { ptr, i64 } @struct_to_string__Arena(ptr %0, { ptr, i64, { ptr, ptr, ptr } } %ua.load65)
%ua.raw67 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr68 = inttoptr i64 %ua.raw67 to ptr
%ua.load69 = load { ptr, i64, { ptr, ptr, ptr } }, ptr %ua.ptr68, align 8
%callN = call { ptr, i64 } @struct_to_string__Arena(ptr %0, { ptr, i64, { ptr, ptr, ptr } } %ua.load69)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.94
dispatch.case.102: ; preds = %match.arm.43
%ua.raw67 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr68 = inttoptr i64 %ua.raw67 to ptr
%ua.load69 = load { ptr, i64, i64 }, ptr %ua.ptr68, align 8
%callN = call { ptr, i64 } @struct_to_string__BufAlloc(ptr %0, { ptr, i64, i64 } %ua.load69)
%ua.raw71 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr72 = inttoptr i64 %ua.raw71 to ptr
%ua.load73 = load { ptr, i64, i64 }, ptr %ua.ptr72, align 8
%callN = call { ptr, i64 } @struct_to_string__BufAlloc(ptr %0, { ptr, i64, i64 } %ua.load73)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.94
dispatch.case.103: ; preds = %match.arm.43
%ua.raw71 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr72 = inttoptr i64 %ua.raw71 to ptr
%ua.load73 = load { { ptr, ptr, ptr }, i64, i64, i64 }, ptr %ua.ptr72, align 8
%callN = call { ptr, i64 } @struct_to_string__TrackingAllocator(ptr %0, { { ptr, ptr, ptr }, i64, i64, i64 } %ua.load73)
%ua.raw75 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr76 = inttoptr i64 %ua.raw75 to ptr
%ua.load77 = load { { ptr, ptr, ptr }, i64, i64, i64 }, ptr %ua.ptr76, align 8
%callN = call { ptr, i64 } @struct_to_string__TrackingAllocator(ptr %0, { { ptr, ptr, ptr }, i64, i64, i64 } %ua.load77)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.94
dispatch.case.104: ; preds = %match.arm.43
%ua.raw75 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr76 = inttoptr i64 %ua.raw75 to ptr
%ua.load77 = load { { ptr, ptr, ptr }, ptr }, ptr %ua.ptr76, align 8
%callN = call { ptr, i64 } @struct_to_string__Context(ptr %0, { { ptr, ptr, ptr }, ptr } %ua.load77)
%ua.raw79 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr80 = inttoptr i64 %ua.raw79 to ptr
%ua.load81 = load { { ptr, ptr, ptr }, ptr }, ptr %ua.ptr80, align 8
%callN = call { ptr, i64 } @struct_to_string__Context(ptr %0, { { ptr, ptr, ptr }, ptr } %ua.load81)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.94
@@ -1399,26 +1405,26 @@ dispatch.default.151: ; preds = %match.arm.47
br label %dispatch.merge.150
dispatch.case.152: ; preds = %match.arm.47
%ua.raw80 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr81 = inttoptr i64 %ua.raw80 to ptr
%ua.load82 = load [4 x i64], ptr %ua.ptr81, align 8
%callN = call { ptr, i64 } @array_to_string__AR_4_s64(ptr %0, [4 x i64] %ua.load82)
%ua.raw84 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr85 = inttoptr i64 %ua.raw84 to ptr
%ua.load86 = load [4 x i64], ptr %ua.ptr85, align 8
%callN = call { ptr, i64 } @array_to_string__AR_4_s64(ptr %0, [4 x i64] %ua.load86)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.150
dispatch.case.153: ; preds = %match.arm.47
%ua.raw84 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr85 = inttoptr i64 %ua.raw84 to ptr
%ua.load86 = load [3 x { i64, i64 }], ptr %ua.ptr85, align 8
%callN = call { ptr, i64 } @array_to_string__AR_3_Any(ptr %0, [3 x { i64, i64 }] %ua.load86)
%ua.raw88 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr89 = inttoptr i64 %ua.raw88 to ptr
%ua.load90 = load [3 x { i64, i64 }], ptr %ua.ptr89, align 8
%callN = call { ptr, i64 } @array_to_string__AR_3_Any(ptr %0, [3 x { i64, i64 }] %ua.load90)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.150
dispatch.case.154: ; preds = %match.arm.47
%ua.raw88 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr89 = inttoptr i64 %ua.raw88 to ptr
%ua.load90 = load [1 x { i64, i64 }], ptr %ua.ptr89, align 8
%callN = call { ptr, i64 } @array_to_string__AR_1_Any(ptr %0, [1 x { i64, i64 }] %ua.load90)
%ua.raw92 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr93 = inttoptr i64 %ua.raw92 to ptr
%ua.load94 = load [1 x { i64, i64 }], ptr %ua.ptr93, align 8
%callN = call { ptr, i64 } @array_to_string__AR_1_Any(ptr %0, [1 x { i64, i64 }] %ua.load94)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.150
@@ -1432,18 +1438,18 @@ dispatch.default.171: ; preds = %match.arm.48
br label %dispatch.merge.170
dispatch.case.172: ; preds = %match.arm.48
%ua.raw93 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr94 = inttoptr i64 %ua.raw93 to ptr
%ua.load95 = load { ptr, i64 }, ptr %ua.ptr94, align 8
%callN = call { ptr, i64 } @slice_to_string__string(ptr %0, { ptr, i64 } %ua.load95)
%ua.raw97 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr98 = inttoptr i64 %ua.raw97 to ptr
%ua.load99 = load { ptr, i64 }, ptr %ua.ptr98, align 8
%callN = call { ptr, i64 } @slice_to_string__string(ptr %0, { ptr, i64 } %ua.load99)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.170
dispatch.case.173: ; preds = %match.arm.48
%ua.raw97 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr98 = inttoptr i64 %ua.raw97 to ptr
%ua.load99 = load { ptr, i64 }, ptr %ua.ptr98, align 8
%callN = call { ptr, i64 } @slice_to_string__Any(ptr %0, { ptr, i64 } %ua.load99)
%ua.raw101 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr102 = inttoptr i64 %ua.raw101 to ptr
%ua.load103 = load { ptr, i64 }, ptr %ua.ptr102, align 8
%callN = call { ptr, i64 } @slice_to_string__Any(ptr %0, { ptr, i64 } %ua.load103)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.170
@@ -1457,128 +1463,128 @@ dispatch.default.185: ; preds = %match.arm.49
br label %dispatch.merge.184
dispatch.case.186: ; preds = %match.arm.49
%ua.raw102 = extractvalue { i64, i64 } %loadN, 1
%iNp = inttoptr i64 %ua.raw102 to ptr
%ua.raw106 = extractvalue { i64, i64 } %loadN, 1
%iNp = inttoptr i64 %ua.raw106 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_void(ptr %0, ptr %iNp)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.184
dispatch.case.187: ; preds = %match.arm.49
%ua.raw104 = extractvalue { i64, i64 } %loadN, 1
%iNp105 = inttoptr i64 %ua.raw104 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_CAllocator(ptr %0, ptr %iNp105)
%ua.raw108 = extractvalue { i64, i64 } %loadN, 1
%iNp109 = inttoptr i64 %ua.raw108 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_CAllocator(ptr %0, ptr %iNp109)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.184
dispatch.case.188: ; preds = %match.arm.49
%ua.raw107 = extractvalue { i64, i64 } %loadN, 1
%iNp108 = inttoptr i64 %ua.raw107 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_GPA(ptr %0, ptr %iNp108)
%ua.raw111 = extractvalue { i64, i64 } %loadN, 1
%iNp112 = inttoptr i64 %ua.raw111 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_GPA(ptr %0, ptr %iNp112)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.184
dispatch.case.189: ; preds = %match.arm.49
%ua.raw110 = extractvalue { i64, i64 } %loadN, 1
%iNp111 = inttoptr i64 %ua.raw110 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_ArenaChunk(ptr %0, ptr %iNp111)
%ua.raw114 = extractvalue { i64, i64 } %loadN, 1
%iNp115 = inttoptr i64 %ua.raw114 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_ArenaChunk(ptr %0, ptr %iNp115)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.184
dispatch.case.190: ; preds = %match.arm.49
%ua.raw113 = extractvalue { i64, i64 } %loadN, 1
%iNp114 = inttoptr i64 %ua.raw113 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_Arena(ptr %0, ptr %iNp114)
%ua.raw117 = extractvalue { i64, i64 } %loadN, 1
%iNp118 = inttoptr i64 %ua.raw117 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_Arena(ptr %0, ptr %iNp118)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.184
dispatch.case.191: ; preds = %match.arm.49
%ua.raw116 = extractvalue { i64, i64 } %loadN, 1
%iNp117 = inttoptr i64 %ua.raw116 to ptr
%callN = call { ptr, i64 } @pointer_to_string__mptr_u8(ptr %0, ptr %iNp117)
%ua.raw120 = extractvalue { i64, i64 } %loadN, 1
%iNp121 = inttoptr i64 %ua.raw120 to ptr
%callN = call { ptr, i64 } @pointer_to_string__mptr_u8(ptr %0, ptr %iNp121)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.184
dispatch.case.192: ; preds = %match.arm.49
%ua.raw119 = extractvalue { i64, i64 } %loadN, 1
%iNp120 = inttoptr i64 %ua.raw119 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_BufAlloc(ptr %0, ptr %iNp120)
%ua.raw123 = extractvalue { i64, i64 } %loadN, 1
%iNp124 = inttoptr i64 %ua.raw123 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_BufAlloc(ptr %0, ptr %iNp124)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.184
dispatch.case.193: ; preds = %match.arm.49
%ua.raw122 = extractvalue { i64, i64 } %loadN, 1
%iNp123 = inttoptr i64 %ua.raw122 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_TrackingAllocator(ptr %0, ptr %iNp123)
%ua.raw126 = extractvalue { i64, i64 } %loadN, 1
%iNp127 = inttoptr i64 %ua.raw126 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_TrackingAllocator(ptr %0, ptr %iNp127)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.184
dispatch.case.194: ; preds = %match.arm.49
%ua.raw125 = extractvalue { i64, i64 } %loadN, 1
%iNp126 = inttoptr i64 %ua.raw125 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_ptr_CAllocator(ptr %0, ptr %iNp126)
%ua.raw129 = extractvalue { i64, i64 } %loadN, 1
%iNp130 = inttoptr i64 %ua.raw129 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_ptr_CAllocator(ptr %0, ptr %iNp130)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.184
dispatch.case.195: ; preds = %match.arm.49
%ua.raw128 = extractvalue { i64, i64 } %loadN, 1
%iNp129 = inttoptr i64 %ua.raw128 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_s64(ptr %0, ptr %iNp129)
%ua.raw132 = extractvalue { i64, i64 } %loadN, 1
%iNp133 = inttoptr i64 %ua.raw132 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_s64(ptr %0, ptr %iNp133)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.184
dispatch.case.196: ; preds = %match.arm.49
%ua.raw131 = extractvalue { i64, i64 } %loadN, 1
%iNp132 = inttoptr i64 %ua.raw131 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_ptr_void(ptr %0, ptr %iNp132)
%ua.raw135 = extractvalue { i64, i64 } %loadN, 1
%iNp136 = inttoptr i64 %ua.raw135 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_ptr_void(ptr %0, ptr %iNp136)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.184
dispatch.case.197: ; preds = %match.arm.49
%ua.raw134 = extractvalue { i64, i64 } %loadN, 1
%iNp135 = inttoptr i64 %ua.raw134 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_Any(ptr %0, ptr %iNp135)
%ua.raw138 = extractvalue { i64, i64 } %loadN, 1
%iNp139 = inttoptr i64 %ua.raw138 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_Any(ptr %0, ptr %iNp139)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.184
dispatch.case.198: ; preds = %match.arm.49
%ua.raw137 = extractvalue { i64, i64 } %loadN, 1
%iNp138 = inttoptr i64 %ua.raw137 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_AR_3_Any(ptr %0, ptr %iNp138)
%ua.raw141 = extractvalue { i64, i64 } %loadN, 1
%iNp142 = inttoptr i64 %ua.raw141 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_AR_3_Any(ptr %0, ptr %iNp142)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.184
dispatch.case.199: ; preds = %match.arm.49
%ua.raw140 = extractvalue { i64, i64 } %loadN, 1
%iNp141 = inttoptr i64 %ua.raw140 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_SL_Any(ptr %0, ptr %iNp141)
%ua.raw144 = extractvalue { i64, i64 } %loadN, 1
%iNp145 = inttoptr i64 %ua.raw144 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_SL_Any(ptr %0, ptr %iNp145)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.184
dispatch.case.200: ; preds = %match.arm.49
%ua.raw143 = extractvalue { i64, i64 } %loadN, 1
%iNp144 = inttoptr i64 %ua.raw143 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_string(ptr %0, ptr %iNp144)
%ua.raw147 = extractvalue { i64, i64 } %loadN, 1
%iNp148 = inttoptr i64 %ua.raw147 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_string(ptr %0, ptr %iNp148)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.184
dispatch.case.201: ; preds = %match.arm.49
%ua.raw146 = extractvalue { i64, i64 } %loadN, 1
%iNp147 = inttoptr i64 %ua.raw146 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_AR_1_Any(ptr %0, ptr %iNp147)
%ua.raw150 = extractvalue { i64, i64 } %loadN, 1
%iNp151 = inttoptr i64 %ua.raw150 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_AR_1_Any(ptr %0, ptr %iNp151)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.184
dispatch.case.202: ; preds = %match.arm.49
%ua.raw149 = extractvalue { i64, i64 } %loadN, 1
%iNp150 = inttoptr i64 %ua.raw149 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_u8(ptr %0, ptr %iNp150)
%ua.raw153 = extractvalue { i64, i64 } %loadN, 1
%iNp154 = inttoptr i64 %ua.raw153 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_u8(ptr %0, ptr %iNp154)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.184
dispatch.case.203: ; preds = %match.arm.49
%ua.raw152 = extractvalue { i64, i64 } %loadN, 1
%iNp153 = inttoptr i64 %ua.raw152 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_bool(ptr %0, ptr %iNp153)
%ua.raw156 = extractvalue { i64, i64 } %loadN, 1
%iNp157 = inttoptr i64 %ua.raw156 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_bool(ptr %0, ptr %iNp157)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.184
}

View File

@@ -1156,8 +1156,11 @@ match.arm.38: ; preds = %entry
match.arm.39: ; preds = %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry
%loadN = load { i64, i64 }, ptr %allocaN, align 8
%tiu.tid = extractvalue { i64, i64 } %loadN, 1
%tiu.gep = getelementptr inbounds [70 x i1], ptr @__sx_type_is_unsigned, i64 0, i64 %tiu.tid
%refl.tag = extractvalue { i64, i64 } %loadN, 0
%refl.val = extractvalue { i64, i64 } %loadN, 1
%refl.istype = icmp eq i64 %refl.tag, 13
%refl.tid = select i1 %refl.istype, i64 %refl.val, i64 %refl.tag
%tiu.gep = getelementptr inbounds [70 x i1], ptr @__sx_type_is_unsigned, i64 0, i64 %refl.tid
%tiu.load = load i1, ptr %tiu.gep, align 1
br i1 %tiu.load, label %if.then.53, label %if.else.54
@@ -1264,8 +1267,11 @@ match.arm.50: ; No predecessors!
match.arm.51: ; preds = %entry
%loadN = load { i64, i64 }, ptr %alloca, align 8
%tn.tid = extractvalue { i64, i64 } %loadN, 1
%tn.gep = getelementptr inbounds [70 x { ptr, i64 }], ptr @__sx_type_names, i64 0, i64 %tn.tid
%refl.tag32 = extractvalue { i64, i64 } %loadN, 0
%refl.val33 = extractvalue { i64, i64 } %loadN, 1
%refl.istype34 = icmp eq i64 %refl.tag32, 13
%refl.tid35 = select i1 %refl.istype34, i64 %refl.val33, i64 %refl.tag32
%tn.gep = getelementptr inbounds [70 x { ptr, i64 }], ptr @__sx_type_names, i64 0, i64 %refl.tid35
%tn.load = load { ptr, i64 }, ptr %tn.gep, align 8
store { ptr, i64 } %tn.load, ptr %allocaN, align 8
br label %match.merge.37
@@ -1275,15 +1281,15 @@ match.unr.52: ; preds = %entry
if.then.53: ; preds = %match.arm.39
%loadN = load { i64, i64 }, ptr %alloca, align 8
%ua.raw33 = extractvalue { i64, i64 } %loadN, 1
%callN = call { ptr, i64 } @uint_to_string(ptr %0, i64 %ua.raw33)
%ua.raw37 = extractvalue { i64, i64 } %loadN, 1
%callN = call { ptr, i64 } @uint_to_string(ptr %0, i64 %ua.raw37)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %if.merge.55
if.else.54: ; preds = %match.arm.39
%loadN = load { i64, i64 }, ptr %alloca, align 8
%ua.raw36 = extractvalue { i64, i64 } %loadN, 1
%callN = call { ptr, i64 } @int_to_string(ptr %0, i64 %ua.raw36)
%ua.raw40 = extractvalue { i64, i64 } %loadN, 1
%callN = call { ptr, i64 } @int_to_string(ptr %0, i64 %ua.raw40)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %if.merge.55
@@ -1291,16 +1297,16 @@ if.merge.55: ; preds = %if.else.54, %if.the
br label %match.merge.37
f32.unbox.81: ; preds = %match.arm.42
%ua.raw38 = extractvalue { i64, i64 } %loadN, 1
%trN = trunc i64 %ua.raw38 to i32
%ua.raw42 = extractvalue { i64, i64 } %loadN, 1
%trN = trunc i64 %ua.raw42 to i32
%iNf = bitcast i32 %trN to float
%fpext = fpext float %iNf to double
store double %fpext, ptr %allocaN, align 8
br label %float.merge.83
f64.unbox.82: ; preds = %match.arm.42
%ua.raw39 = extractvalue { i64, i64 } %loadN, 1
%iNd = bitcast i64 %ua.raw39 to double
%ua.raw43 = extractvalue { i64, i64 } %loadN, 1
%iNd = bitcast i64 %ua.raw43 to double
store double %iNd, ptr %allocaN, align 8
br label %float.merge.83
@@ -1320,74 +1326,74 @@ dispatch.default.95: ; preds = %match.arm.43
br label %dispatch.merge.94
dispatch.case.96: ; preds = %match.arm.43
%ua.raw43 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr44 = inttoptr i64 %ua.raw43 to ptr
%ua.load45 = load { { ptr, i64 }, i32, i32, { ptr, i64 } }, ptr %ua.ptr44, align 8
%callN = call { ptr, i64 } @struct_to_string__Source_Location(ptr %0, { { ptr, i64 }, i32, i32, { ptr, i64 } } %ua.load45)
%ua.raw47 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr48 = inttoptr i64 %ua.raw47 to ptr
%ua.load49 = load { { ptr, i64 }, i32, i32, { ptr, i64 } }, ptr %ua.ptr48, align 8
%callN = call { ptr, i64 } @struct_to_string__Source_Location(ptr %0, { { ptr, i64 }, i32, i32, { ptr, i64 } } %ua.load49)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.94
dispatch.case.97: ; preds = %match.arm.43
%ua.raw47 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr48 = inttoptr i64 %ua.raw47 to ptr
%ua.load49 = load { ptr, ptr, ptr }, ptr %ua.ptr48, align 8
%callN = call { ptr, i64 } @struct_to_string__Allocator(ptr %0, { ptr, ptr, ptr } %ua.load49)
%ua.raw51 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr52 = inttoptr i64 %ua.raw51 to ptr
%ua.load53 = load { ptr, ptr, ptr }, ptr %ua.ptr52, align 8
%callN = call { ptr, i64 } @struct_to_string__Allocator(ptr %0, { ptr, ptr, ptr } %ua.load53)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.94
dispatch.case.98: ; preds = %match.arm.43
%ua.raw51 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr52 = inttoptr i64 %ua.raw51 to ptr
%ua.load53 = load {}, ptr %ua.ptr52, align 1
%callN = call { ptr, i64 } @struct_to_string__CAllocator(ptr %0, {} %ua.load53)
%ua.raw55 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr56 = inttoptr i64 %ua.raw55 to ptr
%ua.load57 = load {}, ptr %ua.ptr56, align 1
%callN = call { ptr, i64 } @struct_to_string__CAllocator(ptr %0, {} %ua.load57)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.94
dispatch.case.99: ; preds = %match.arm.43
%ua.raw55 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr56 = inttoptr i64 %ua.raw55 to ptr
%ua.load57 = load { i64 }, ptr %ua.ptr56, align 8
%callN = call { ptr, i64 } @struct_to_string__GPA(ptr %0, { i64 } %ua.load57)
%ua.raw59 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr60 = inttoptr i64 %ua.raw59 to ptr
%ua.load61 = load { i64 }, ptr %ua.ptr60, align 8
%callN = call { ptr, i64 } @struct_to_string__GPA(ptr %0, { i64 } %ua.load61)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.94
dispatch.case.100: ; preds = %match.arm.43
%ua.raw59 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr60 = inttoptr i64 %ua.raw59 to ptr
%ua.load61 = load { ptr, i64 }, ptr %ua.ptr60, align 8
%callN = call { ptr, i64 } @struct_to_string__ArenaChunk(ptr %0, { ptr, i64 } %ua.load61)
%ua.raw63 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr64 = inttoptr i64 %ua.raw63 to ptr
%ua.load65 = load { ptr, i64 }, ptr %ua.ptr64, align 8
%callN = call { ptr, i64 } @struct_to_string__ArenaChunk(ptr %0, { ptr, i64 } %ua.load65)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.94
dispatch.case.101: ; preds = %match.arm.43
%ua.raw63 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr64 = inttoptr i64 %ua.raw63 to ptr
%ua.load65 = load { ptr, i64, { ptr, ptr, ptr } }, ptr %ua.ptr64, align 8
%callN = call { ptr, i64 } @struct_to_string__Arena(ptr %0, { ptr, i64, { ptr, ptr, ptr } } %ua.load65)
%ua.raw67 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr68 = inttoptr i64 %ua.raw67 to ptr
%ua.load69 = load { ptr, i64, { ptr, ptr, ptr } }, ptr %ua.ptr68, align 8
%callN = call { ptr, i64 } @struct_to_string__Arena(ptr %0, { ptr, i64, { ptr, ptr, ptr } } %ua.load69)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.94
dispatch.case.102: ; preds = %match.arm.43
%ua.raw67 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr68 = inttoptr i64 %ua.raw67 to ptr
%ua.load69 = load { ptr, i64, i64 }, ptr %ua.ptr68, align 8
%callN = call { ptr, i64 } @struct_to_string__BufAlloc(ptr %0, { ptr, i64, i64 } %ua.load69)
%ua.raw71 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr72 = inttoptr i64 %ua.raw71 to ptr
%ua.load73 = load { ptr, i64, i64 }, ptr %ua.ptr72, align 8
%callN = call { ptr, i64 } @struct_to_string__BufAlloc(ptr %0, { ptr, i64, i64 } %ua.load73)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.94
dispatch.case.103: ; preds = %match.arm.43
%ua.raw71 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr72 = inttoptr i64 %ua.raw71 to ptr
%ua.load73 = load { { ptr, ptr, ptr }, i64, i64, i64 }, ptr %ua.ptr72, align 8
%callN = call { ptr, i64 } @struct_to_string__TrackingAllocator(ptr %0, { { ptr, ptr, ptr }, i64, i64, i64 } %ua.load73)
%ua.raw75 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr76 = inttoptr i64 %ua.raw75 to ptr
%ua.load77 = load { { ptr, ptr, ptr }, i64, i64, i64 }, ptr %ua.ptr76, align 8
%callN = call { ptr, i64 } @struct_to_string__TrackingAllocator(ptr %0, { { ptr, ptr, ptr }, i64, i64, i64 } %ua.load77)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.94
dispatch.case.104: ; preds = %match.arm.43
%ua.raw75 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr76 = inttoptr i64 %ua.raw75 to ptr
%ua.load77 = load { { ptr, ptr, ptr }, ptr }, ptr %ua.ptr76, align 8
%callN = call { ptr, i64 } @struct_to_string__Context(ptr %0, { { ptr, ptr, ptr }, ptr } %ua.load77)
%ua.raw79 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr80 = inttoptr i64 %ua.raw79 to ptr
%ua.load81 = load { { ptr, ptr, ptr }, ptr }, ptr %ua.ptr80, align 8
%callN = call { ptr, i64 } @struct_to_string__Context(ptr %0, { { ptr, ptr, ptr }, ptr } %ua.load81)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.94
@@ -1401,18 +1407,18 @@ dispatch.default.151: ; preds = %match.arm.47
br label %dispatch.merge.150
dispatch.case.152: ; preds = %match.arm.47
%ua.raw80 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr81 = inttoptr i64 %ua.raw80 to ptr
%ua.load82 = load [4 x i64], ptr %ua.ptr81, align 8
%callN = call { ptr, i64 } @array_to_string__AR_4_s64(ptr %0, [4 x i64] %ua.load82)
%ua.raw84 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr85 = inttoptr i64 %ua.raw84 to ptr
%ua.load86 = load [4 x i64], ptr %ua.ptr85, align 8
%callN = call { ptr, i64 } @array_to_string__AR_4_s64(ptr %0, [4 x i64] %ua.load86)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.150
dispatch.case.153: ; preds = %match.arm.47
%ua.raw84 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr85 = inttoptr i64 %ua.raw84 to ptr
%ua.load86 = load [1 x { i64, i64 }], ptr %ua.ptr85, align 8
%callN = call { ptr, i64 } @array_to_string__AR_1_Any(ptr %0, [1 x { i64, i64 }] %ua.load86)
%ua.raw88 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr89 = inttoptr i64 %ua.raw88 to ptr
%ua.load90 = load [1 x { i64, i64 }], ptr %ua.ptr89, align 8
%callN = call { ptr, i64 } @array_to_string__AR_1_Any(ptr %0, [1 x { i64, i64 }] %ua.load90)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.150
@@ -1426,18 +1432,18 @@ dispatch.default.165: ; preds = %match.arm.48
br label %dispatch.merge.164
dispatch.case.166: ; preds = %match.arm.48
%ua.raw89 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr90 = inttoptr i64 %ua.raw89 to ptr
%ua.load91 = load { ptr, i64 }, ptr %ua.ptr90, align 8
%callN = call { ptr, i64 } @slice_to_string__string(ptr %0, { ptr, i64 } %ua.load91)
%ua.raw93 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr94 = inttoptr i64 %ua.raw93 to ptr
%ua.load95 = load { ptr, i64 }, ptr %ua.ptr94, align 8
%callN = call { ptr, i64 } @slice_to_string__string(ptr %0, { ptr, i64 } %ua.load95)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.164
dispatch.case.167: ; preds = %match.arm.48
%ua.raw93 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr94 = inttoptr i64 %ua.raw93 to ptr
%ua.load95 = load { ptr, i64 }, ptr %ua.ptr94, align 8
%callN = call { ptr, i64 } @slice_to_string__Any(ptr %0, { ptr, i64 } %ua.load95)
%ua.raw97 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr98 = inttoptr i64 %ua.raw97 to ptr
%ua.load99 = load { ptr, i64 }, ptr %ua.ptr98, align 8
%callN = call { ptr, i64 } @slice_to_string__Any(ptr %0, { ptr, i64 } %ua.load99)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.164
@@ -1451,128 +1457,128 @@ dispatch.default.179: ; preds = %match.arm.49
br label %dispatch.merge.178
dispatch.case.180: ; preds = %match.arm.49
%ua.raw98 = extractvalue { i64, i64 } %loadN, 1
%iNp = inttoptr i64 %ua.raw98 to ptr
%ua.raw102 = extractvalue { i64, i64 } %loadN, 1
%iNp = inttoptr i64 %ua.raw102 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_void(ptr %0, ptr %iNp)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.178
dispatch.case.181: ; preds = %match.arm.49
%ua.raw100 = extractvalue { i64, i64 } %loadN, 1
%iNp101 = inttoptr i64 %ua.raw100 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_CAllocator(ptr %0, ptr %iNp101)
%ua.raw104 = extractvalue { i64, i64 } %loadN, 1
%iNp105 = inttoptr i64 %ua.raw104 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_CAllocator(ptr %0, ptr %iNp105)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.178
dispatch.case.182: ; preds = %match.arm.49
%ua.raw103 = extractvalue { i64, i64 } %loadN, 1
%iNp104 = inttoptr i64 %ua.raw103 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_GPA(ptr %0, ptr %iNp104)
%ua.raw107 = extractvalue { i64, i64 } %loadN, 1
%iNp108 = inttoptr i64 %ua.raw107 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_GPA(ptr %0, ptr %iNp108)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.178
dispatch.case.183: ; preds = %match.arm.49
%ua.raw106 = extractvalue { i64, i64 } %loadN, 1
%iNp107 = inttoptr i64 %ua.raw106 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_ArenaChunk(ptr %0, ptr %iNp107)
%ua.raw110 = extractvalue { i64, i64 } %loadN, 1
%iNp111 = inttoptr i64 %ua.raw110 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_ArenaChunk(ptr %0, ptr %iNp111)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.178
dispatch.case.184: ; preds = %match.arm.49
%ua.raw109 = extractvalue { i64, i64 } %loadN, 1
%iNp110 = inttoptr i64 %ua.raw109 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_Arena(ptr %0, ptr %iNp110)
%ua.raw113 = extractvalue { i64, i64 } %loadN, 1
%iNp114 = inttoptr i64 %ua.raw113 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_Arena(ptr %0, ptr %iNp114)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.178
dispatch.case.185: ; preds = %match.arm.49
%ua.raw112 = extractvalue { i64, i64 } %loadN, 1
%iNp113 = inttoptr i64 %ua.raw112 to ptr
%callN = call { ptr, i64 } @pointer_to_string__mptr_u8(ptr %0, ptr %iNp113)
%ua.raw116 = extractvalue { i64, i64 } %loadN, 1
%iNp117 = inttoptr i64 %ua.raw116 to ptr
%callN = call { ptr, i64 } @pointer_to_string__mptr_u8(ptr %0, ptr %iNp117)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.178
dispatch.case.186: ; preds = %match.arm.49
%ua.raw115 = extractvalue { i64, i64 } %loadN, 1
%iNp116 = inttoptr i64 %ua.raw115 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_BufAlloc(ptr %0, ptr %iNp116)
%ua.raw119 = extractvalue { i64, i64 } %loadN, 1
%iNp120 = inttoptr i64 %ua.raw119 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_BufAlloc(ptr %0, ptr %iNp120)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.178
dispatch.case.187: ; preds = %match.arm.49
%ua.raw118 = extractvalue { i64, i64 } %loadN, 1
%iNp119 = inttoptr i64 %ua.raw118 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_TrackingAllocator(ptr %0, ptr %iNp119)
%ua.raw122 = extractvalue { i64, i64 } %loadN, 1
%iNp123 = inttoptr i64 %ua.raw122 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_TrackingAllocator(ptr %0, ptr %iNp123)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.178
dispatch.case.188: ; preds = %match.arm.49
%ua.raw121 = extractvalue { i64, i64 } %loadN, 1
%iNp122 = inttoptr i64 %ua.raw121 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_ptr_CAllocator(ptr %0, ptr %iNp122)
%ua.raw125 = extractvalue { i64, i64 } %loadN, 1
%iNp126 = inttoptr i64 %ua.raw125 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_ptr_CAllocator(ptr %0, ptr %iNp126)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.178
dispatch.case.189: ; preds = %match.arm.49
%ua.raw124 = extractvalue { i64, i64 } %loadN, 1
%iNp125 = inttoptr i64 %ua.raw124 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_s64(ptr %0, ptr %iNp125)
%ua.raw128 = extractvalue { i64, i64 } %loadN, 1
%iNp129 = inttoptr i64 %ua.raw128 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_s64(ptr %0, ptr %iNp129)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.178
dispatch.case.190: ; preds = %match.arm.49
%ua.raw127 = extractvalue { i64, i64 } %loadN, 1
%iNp128 = inttoptr i64 %ua.raw127 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_ptr_void(ptr %0, ptr %iNp128)
%ua.raw131 = extractvalue { i64, i64 } %loadN, 1
%iNp132 = inttoptr i64 %ua.raw131 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_ptr_void(ptr %0, ptr %iNp132)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.178
dispatch.case.191: ; preds = %match.arm.49
%ua.raw130 = extractvalue { i64, i64 } %loadN, 1
%iNp131 = inttoptr i64 %ua.raw130 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_Any(ptr %0, ptr %iNp131)
%ua.raw134 = extractvalue { i64, i64 } %loadN, 1
%iNp135 = inttoptr i64 %ua.raw134 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_Any(ptr %0, ptr %iNp135)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.178
dispatch.case.192: ; preds = %match.arm.49
%ua.raw133 = extractvalue { i64, i64 } %loadN, 1
%iNp134 = inttoptr i64 %ua.raw133 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_AR_1_Any(ptr %0, ptr %iNp134)
%ua.raw137 = extractvalue { i64, i64 } %loadN, 1
%iNp138 = inttoptr i64 %ua.raw137 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_AR_1_Any(ptr %0, ptr %iNp138)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.178
dispatch.case.193: ; preds = %match.arm.49
%ua.raw136 = extractvalue { i64, i64 } %loadN, 1
%iNp137 = inttoptr i64 %ua.raw136 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_SL_Any(ptr %0, ptr %iNp137)
%ua.raw140 = extractvalue { i64, i64 } %loadN, 1
%iNp141 = inttoptr i64 %ua.raw140 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_SL_Any(ptr %0, ptr %iNp141)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.178
dispatch.case.194: ; preds = %match.arm.49
%ua.raw139 = extractvalue { i64, i64 } %loadN, 1
%iNp140 = inttoptr i64 %ua.raw139 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_string(ptr %0, ptr %iNp140)
%ua.raw143 = extractvalue { i64, i64 } %loadN, 1
%iNp144 = inttoptr i64 %ua.raw143 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_string(ptr %0, ptr %iNp144)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.178
dispatch.case.195: ; preds = %match.arm.49
%ua.raw142 = extractvalue { i64, i64 } %loadN, 1
%iNp143 = inttoptr i64 %ua.raw142 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_u8(ptr %0, ptr %iNp143)
%ua.raw146 = extractvalue { i64, i64 } %loadN, 1
%iNp147 = inttoptr i64 %ua.raw146 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_u8(ptr %0, ptr %iNp147)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.178
dispatch.case.196: ; preds = %match.arm.49
%ua.raw145 = extractvalue { i64, i64 } %loadN, 1
%iNp146 = inttoptr i64 %ua.raw145 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_bool(ptr %0, ptr %iNp146)
%ua.raw149 = extractvalue { i64, i64 } %loadN, 1
%iNp150 = inttoptr i64 %ua.raw149 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_bool(ptr %0, ptr %iNp150)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.178
dispatch.case.197: ; preds = %match.arm.49
%ua.raw148 = extractvalue { i64, i64 } %loadN, 1
%iNp149 = inttoptr i64 %ua.raw148 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_f64(ptr %0, ptr %iNp149)
%ua.raw152 = extractvalue { i64, i64 } %loadN, 1
%iNp153 = inttoptr i64 %ua.raw152 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_f64(ptr %0, ptr %iNp153)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.178
}

View File

@@ -1226,8 +1226,11 @@ match.arm.38: ; preds = %entry
match.arm.39: ; preds = %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry
%loadN = load { i64, i64 }, ptr %allocaN, align 8
%tiu.tid = extractvalue { i64, i64 } %loadN, 1
%tiu.gep = getelementptr inbounds [86 x i1], ptr @__sx_type_is_unsigned, i64 0, i64 %tiu.tid
%refl.tag = extractvalue { i64, i64 } %loadN, 0
%refl.val = extractvalue { i64, i64 } %loadN, 1
%refl.istype = icmp eq i64 %refl.tag, 13
%refl.tid = select i1 %refl.istype, i64 %refl.val, i64 %refl.tag
%tiu.gep = getelementptr inbounds [86 x i1], ptr @__sx_type_is_unsigned, i64 0, i64 %refl.tid
%tiu.load = load i1, ptr %tiu.gep, align 1
br i1 %tiu.load, label %if.then.53, label %if.else.54
@@ -1344,8 +1347,11 @@ match.arm.50: ; No predecessors!
match.arm.51: ; preds = %entry
%loadN = load { i64, i64 }, ptr %alloca, align 8
%tn.tid = extractvalue { i64, i64 } %loadN, 1
%tn.gep = getelementptr inbounds [86 x { ptr, i64 }], ptr @__sx_type_names, i64 0, i64 %tn.tid
%refl.tag32 = extractvalue { i64, i64 } %loadN, 0
%refl.val33 = extractvalue { i64, i64 } %loadN, 1
%refl.istype34 = icmp eq i64 %refl.tag32, 13
%refl.tid35 = select i1 %refl.istype34, i64 %refl.val33, i64 %refl.tag32
%tn.gep = getelementptr inbounds [86 x { ptr, i64 }], ptr @__sx_type_names, i64 0, i64 %refl.tid35
%tn.load = load { ptr, i64 }, ptr %tn.gep, align 8
store { ptr, i64 } %tn.load, ptr %allocaN, align 8
br label %match.merge.37
@@ -1355,15 +1361,15 @@ match.unr.52: ; preds = %entry
if.then.53: ; preds = %match.arm.39
%loadN = load { i64, i64 }, ptr %alloca, align 8
%ua.raw33 = extractvalue { i64, i64 } %loadN, 1
%callN = call { ptr, i64 } @uint_to_string(ptr %0, i64 %ua.raw33)
%ua.raw37 = extractvalue { i64, i64 } %loadN, 1
%callN = call { ptr, i64 } @uint_to_string(ptr %0, i64 %ua.raw37)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %if.merge.55
if.else.54: ; preds = %match.arm.39
%loadN = load { i64, i64 }, ptr %alloca, align 8
%ua.raw36 = extractvalue { i64, i64 } %loadN, 1
%callN = call { ptr, i64 } @int_to_string(ptr %0, i64 %ua.raw36)
%ua.raw40 = extractvalue { i64, i64 } %loadN, 1
%callN = call { ptr, i64 } @int_to_string(ptr %0, i64 %ua.raw40)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %if.merge.55
@@ -1371,16 +1377,16 @@ if.merge.55: ; preds = %if.else.54, %if.the
br label %match.merge.37
f32.unbox.81: ; preds = %match.arm.42
%ua.raw38 = extractvalue { i64, i64 } %loadN, 1
%trN = trunc i64 %ua.raw38 to i32
%ua.raw42 = extractvalue { i64, i64 } %loadN, 1
%trN = trunc i64 %ua.raw42 to i32
%iNf = bitcast i32 %trN to float
%fpext = fpext float %iNf to double
store double %fpext, ptr %allocaN, align 8
br label %float.merge.83
f64.unbox.82: ; preds = %match.arm.42
%ua.raw39 = extractvalue { i64, i64 } %loadN, 1
%iNd = bitcast i64 %ua.raw39 to double
%ua.raw43 = extractvalue { i64, i64 } %loadN, 1
%iNd = bitcast i64 %ua.raw43 to double
store double %iNd, ptr %allocaN, align 8
br label %float.merge.83
@@ -1400,106 +1406,106 @@ dispatch.default.95: ; preds = %match.arm.43
br label %dispatch.merge.94
dispatch.case.96: ; preds = %match.arm.43
%ua.raw43 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr44 = inttoptr i64 %ua.raw43 to ptr
%ua.load45 = load { { ptr, i64 }, i32, i32, { ptr, i64 } }, ptr %ua.ptr44, align 8
%callN = call { ptr, i64 } @struct_to_string__Source_Location(ptr %0, { { ptr, i64 }, i32, i32, { ptr, i64 } } %ua.load45)
%ua.raw47 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr48 = inttoptr i64 %ua.raw47 to ptr
%ua.load49 = load { { ptr, i64 }, i32, i32, { ptr, i64 } }, ptr %ua.ptr48, align 8
%callN = call { ptr, i64 } @struct_to_string__Source_Location(ptr %0, { { ptr, i64 }, i32, i32, { ptr, i64 } } %ua.load49)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.94
dispatch.case.97: ; preds = %match.arm.43
%ua.raw47 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr48 = inttoptr i64 %ua.raw47 to ptr
%ua.load49 = load { ptr, ptr, ptr }, ptr %ua.ptr48, align 8
%callN = call { ptr, i64 } @struct_to_string__Allocator(ptr %0, { ptr, ptr, ptr } %ua.load49)
%ua.raw51 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr52 = inttoptr i64 %ua.raw51 to ptr
%ua.load53 = load { ptr, ptr, ptr }, ptr %ua.ptr52, align 8
%callN = call { ptr, i64 } @struct_to_string__Allocator(ptr %0, { ptr, ptr, ptr } %ua.load53)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.94
dispatch.case.98: ; preds = %match.arm.43
%ua.raw51 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr52 = inttoptr i64 %ua.raw51 to ptr
%ua.load53 = load {}, ptr %ua.ptr52, align 1
%callN = call { ptr, i64 } @struct_to_string__CAllocator(ptr %0, {} %ua.load53)
%ua.raw55 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr56 = inttoptr i64 %ua.raw55 to ptr
%ua.load57 = load {}, ptr %ua.ptr56, align 1
%callN = call { ptr, i64 } @struct_to_string__CAllocator(ptr %0, {} %ua.load57)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.94
dispatch.case.99: ; preds = %match.arm.43
%ua.raw55 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr56 = inttoptr i64 %ua.raw55 to ptr
%ua.load57 = load { i64 }, ptr %ua.ptr56, align 8
%callN = call { ptr, i64 } @struct_to_string__GPA(ptr %0, { i64 } %ua.load57)
%ua.raw59 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr60 = inttoptr i64 %ua.raw59 to ptr
%ua.load61 = load { i64 }, ptr %ua.ptr60, align 8
%callN = call { ptr, i64 } @struct_to_string__GPA(ptr %0, { i64 } %ua.load61)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.94
dispatch.case.100: ; preds = %match.arm.43
%ua.raw59 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr60 = inttoptr i64 %ua.raw59 to ptr
%ua.load61 = load { ptr, i64 }, ptr %ua.ptr60, align 8
%callN = call { ptr, i64 } @struct_to_string__ArenaChunk(ptr %0, { ptr, i64 } %ua.load61)
%ua.raw63 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr64 = inttoptr i64 %ua.raw63 to ptr
%ua.load65 = load { ptr, i64 }, ptr %ua.ptr64, align 8
%callN = call { ptr, i64 } @struct_to_string__ArenaChunk(ptr %0, { ptr, i64 } %ua.load65)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.94
dispatch.case.101: ; preds = %match.arm.43
%ua.raw63 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr64 = inttoptr i64 %ua.raw63 to ptr
%ua.load65 = load { ptr, i64, { ptr, ptr, ptr } }, ptr %ua.ptr64, align 8
%callN = call { ptr, i64 } @struct_to_string__Arena(ptr %0, { ptr, i64, { ptr, ptr, ptr } } %ua.load65)
%ua.raw67 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr68 = inttoptr i64 %ua.raw67 to ptr
%ua.load69 = load { ptr, i64, { ptr, ptr, ptr } }, ptr %ua.ptr68, align 8
%callN = call { ptr, i64 } @struct_to_string__Arena(ptr %0, { ptr, i64, { ptr, ptr, ptr } } %ua.load69)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.94
dispatch.case.102: ; preds = %match.arm.43
%ua.raw67 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr68 = inttoptr i64 %ua.raw67 to ptr
%ua.load69 = load { ptr, i64, i64 }, ptr %ua.ptr68, align 8
%callN = call { ptr, i64 } @struct_to_string__BufAlloc(ptr %0, { ptr, i64, i64 } %ua.load69)
%ua.raw71 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr72 = inttoptr i64 %ua.raw71 to ptr
%ua.load73 = load { ptr, i64, i64 }, ptr %ua.ptr72, align 8
%callN = call { ptr, i64 } @struct_to_string__BufAlloc(ptr %0, { ptr, i64, i64 } %ua.load73)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.94
dispatch.case.103: ; preds = %match.arm.43
%ua.raw71 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr72 = inttoptr i64 %ua.raw71 to ptr
%ua.load73 = load { { ptr, ptr, ptr }, i64, i64, i64 }, ptr %ua.ptr72, align 8
%callN = call { ptr, i64 } @struct_to_string__TrackingAllocator(ptr %0, { { ptr, ptr, ptr }, i64, i64, i64 } %ua.load73)
%ua.raw75 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr76 = inttoptr i64 %ua.raw75 to ptr
%ua.load77 = load { { ptr, ptr, ptr }, i64, i64, i64 }, ptr %ua.ptr76, align 8
%callN = call { ptr, i64 } @struct_to_string__TrackingAllocator(ptr %0, { { ptr, ptr, ptr }, i64, i64, i64 } %ua.load77)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.94
dispatch.case.104: ; preds = %match.arm.43
%ua.raw75 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr76 = inttoptr i64 %ua.raw75 to ptr
%ua.load77 = load { { ptr, ptr, ptr }, ptr }, ptr %ua.ptr76, align 8
%callN = call { ptr, i64 } @struct_to_string__Context(ptr %0, { { ptr, ptr, ptr }, ptr } %ua.load77)
%ua.raw79 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr80 = inttoptr i64 %ua.raw79 to ptr
%ua.load81 = load { { ptr, ptr, ptr }, ptr }, ptr %ua.ptr80, align 8
%callN = call { ptr, i64 } @struct_to_string__Context(ptr %0, { { ptr, ptr, ptr }, ptr } %ua.load81)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.94
dispatch.case.105: ; preds = %match.arm.43
%ua.raw79 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr80 = inttoptr i64 %ua.raw79 to ptr
%ua.load81 = load { ptr, ptr }, ptr %ua.ptr80, align 8
%callN = call { ptr, i64 } @struct_to_string__Greeter(ptr %0, { ptr, ptr } %ua.load81)
%ua.raw83 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr84 = inttoptr i64 %ua.raw83 to ptr
%ua.load85 = load { ptr, ptr }, ptr %ua.ptr84, align 8
%callN = call { ptr, i64 } @struct_to_string__Greeter(ptr %0, { ptr, ptr } %ua.load85)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.94
dispatch.case.106: ; preds = %match.arm.43
%ua.raw83 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr84 = inttoptr i64 %ua.raw83 to ptr
%ua.load85 = load { ptr }, ptr %ua.ptr84, align 8
%callN = call { ptr, i64 } @struct_to_string____Greeter__Vtable(ptr %0, { ptr } %ua.load85)
%ua.raw87 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr88 = inttoptr i64 %ua.raw87 to ptr
%ua.load89 = load { ptr }, ptr %ua.ptr88, align 8
%callN = call { ptr, i64 } @struct_to_string____Greeter__Vtable(ptr %0, { ptr } %ua.load89)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.94
dispatch.case.107: ; preds = %match.arm.43
%ua.raw87 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr88 = inttoptr i64 %ua.raw87 to ptr
%ua.load89 = load { i64 }, ptr %ua.ptr88, align 8
%callN = call { ptr, i64 } @struct_to_string__Dog(ptr %0, { i64 } %ua.load89)
%ua.raw91 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr92 = inttoptr i64 %ua.raw91 to ptr
%ua.load93 = load { i64 }, ptr %ua.ptr92, align 8
%callN = call { ptr, i64 } @struct_to_string__Dog(ptr %0, { i64 } %ua.load93)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.94
dispatch.case.108: ; preds = %match.arm.43
%ua.raw91 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr92 = inttoptr i64 %ua.raw91 to ptr
%ua.load93 = load { i64 }, ptr %ua.ptr92, align 8
%callN = call { ptr, i64 } @struct_to_string__Cat(ptr %0, { i64 } %ua.load93)
%ua.raw95 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr96 = inttoptr i64 %ua.raw95 to ptr
%ua.load97 = load { i64 }, ptr %ua.ptr96, align 8
%callN = call { ptr, i64 } @struct_to_string__Cat(ptr %0, { i64 } %ua.load97)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.94
@@ -1513,26 +1519,26 @@ dispatch.default.175: ; preds = %match.arm.47
br label %dispatch.merge.174
dispatch.case.176: ; preds = %match.arm.47
%ua.raw96 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr97 = inttoptr i64 %ua.raw96 to ptr
%ua.load98 = load [4 x i64], ptr %ua.ptr97, align 8
%callN = call { ptr, i64 } @array_to_string__AR_4_s64(ptr %0, [4 x i64] %ua.load98)
%ua.raw100 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr101 = inttoptr i64 %ua.raw100 to ptr
%ua.load102 = load [4 x i64], ptr %ua.ptr101, align 8
%callN = call { ptr, i64 } @array_to_string__AR_4_s64(ptr %0, [4 x i64] %ua.load102)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.174
dispatch.case.177: ; preds = %match.arm.47
%ua.raw100 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr101 = inttoptr i64 %ua.raw100 to ptr
%ua.load102 = load [2 x { i64, i64 }], ptr %ua.ptr101, align 8
%callN = call { ptr, i64 } @array_to_string__AR_2_Any(ptr %0, [2 x { i64, i64 }] %ua.load102)
%ua.raw104 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr105 = inttoptr i64 %ua.raw104 to ptr
%ua.load106 = load [2 x { i64, i64 }], ptr %ua.ptr105, align 8
%callN = call { ptr, i64 } @array_to_string__AR_2_Any(ptr %0, [2 x { i64, i64 }] %ua.load106)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.174
dispatch.case.178: ; preds = %match.arm.47
%ua.raw104 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr105 = inttoptr i64 %ua.raw104 to ptr
%ua.load106 = load [1 x { i64, i64 }], ptr %ua.ptr105, align 8
%callN = call { ptr, i64 } @array_to_string__AR_1_Any(ptr %0, [1 x { i64, i64 }] %ua.load106)
%ua.raw108 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr109 = inttoptr i64 %ua.raw108 to ptr
%ua.load110 = load [1 x { i64, i64 }], ptr %ua.ptr109, align 8
%callN = call { ptr, i64 } @array_to_string__AR_1_Any(ptr %0, [1 x { i64, i64 }] %ua.load110)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.174
@@ -1546,26 +1552,26 @@ dispatch.default.195: ; preds = %match.arm.48
br label %dispatch.merge.194
dispatch.case.196: ; preds = %match.arm.48
%ua.raw109 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr110 = inttoptr i64 %ua.raw109 to ptr
%ua.load111 = load { ptr, i64 }, ptr %ua.ptr110, align 8
%callN = call { ptr, i64 } @slice_to_string__string(ptr %0, { ptr, i64 } %ua.load111)
%ua.raw113 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr114 = inttoptr i64 %ua.raw113 to ptr
%ua.load115 = load { ptr, i64 }, ptr %ua.ptr114, align 8
%callN = call { ptr, i64 } @slice_to_string__string(ptr %0, { ptr, i64 } %ua.load115)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.194
dispatch.case.197: ; preds = %match.arm.48
%ua.raw113 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr114 = inttoptr i64 %ua.raw113 to ptr
%ua.load115 = load { ptr, i64 }, ptr %ua.ptr114, align 8
%callN = call { ptr, i64 } @slice_to_string__Greeter(ptr %0, { ptr, i64 } %ua.load115)
%ua.raw117 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr118 = inttoptr i64 %ua.raw117 to ptr
%ua.load119 = load { ptr, i64 }, ptr %ua.ptr118, align 8
%callN = call { ptr, i64 } @slice_to_string__Greeter(ptr %0, { ptr, i64 } %ua.load119)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.194
dispatch.case.198: ; preds = %match.arm.48
%ua.raw117 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr118 = inttoptr i64 %ua.raw117 to ptr
%ua.load119 = load { ptr, i64 }, ptr %ua.ptr118, align 8
%callN = call { ptr, i64 } @slice_to_string__Any(ptr %0, { ptr, i64 } %ua.load119)
%ua.raw121 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr122 = inttoptr i64 %ua.raw121 to ptr
%ua.load123 = load { ptr, i64 }, ptr %ua.ptr122, align 8
%callN = call { ptr, i64 } @slice_to_string__Any(ptr %0, { ptr, i64 } %ua.load123)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.194
@@ -1579,156 +1585,156 @@ dispatch.default.215: ; preds = %match.arm.49
br label %dispatch.merge.214
dispatch.case.216: ; preds = %match.arm.49
%ua.raw122 = extractvalue { i64, i64 } %loadN, 1
%iNp = inttoptr i64 %ua.raw122 to ptr
%ua.raw126 = extractvalue { i64, i64 } %loadN, 1
%iNp = inttoptr i64 %ua.raw126 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_void(ptr %0, ptr %iNp)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.214
dispatch.case.217: ; preds = %match.arm.49
%ua.raw124 = extractvalue { i64, i64 } %loadN, 1
%iNp125 = inttoptr i64 %ua.raw124 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_CAllocator(ptr %0, ptr %iNp125)
%ua.raw128 = extractvalue { i64, i64 } %loadN, 1
%iNp129 = inttoptr i64 %ua.raw128 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_CAllocator(ptr %0, ptr %iNp129)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.214
dispatch.case.218: ; preds = %match.arm.49
%ua.raw127 = extractvalue { i64, i64 } %loadN, 1
%iNp128 = inttoptr i64 %ua.raw127 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_GPA(ptr %0, ptr %iNp128)
%ua.raw131 = extractvalue { i64, i64 } %loadN, 1
%iNp132 = inttoptr i64 %ua.raw131 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_GPA(ptr %0, ptr %iNp132)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.214
dispatch.case.219: ; preds = %match.arm.49
%ua.raw130 = extractvalue { i64, i64 } %loadN, 1
%iNp131 = inttoptr i64 %ua.raw130 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_ArenaChunk(ptr %0, ptr %iNp131)
%ua.raw134 = extractvalue { i64, i64 } %loadN, 1
%iNp135 = inttoptr i64 %ua.raw134 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_ArenaChunk(ptr %0, ptr %iNp135)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.214
dispatch.case.220: ; preds = %match.arm.49
%ua.raw133 = extractvalue { i64, i64 } %loadN, 1
%iNp134 = inttoptr i64 %ua.raw133 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_Arena(ptr %0, ptr %iNp134)
%ua.raw137 = extractvalue { i64, i64 } %loadN, 1
%iNp138 = inttoptr i64 %ua.raw137 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_Arena(ptr %0, ptr %iNp138)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.214
dispatch.case.221: ; preds = %match.arm.49
%ua.raw136 = extractvalue { i64, i64 } %loadN, 1
%iNp137 = inttoptr i64 %ua.raw136 to ptr
%callN = call { ptr, i64 } @pointer_to_string__mptr_u8(ptr %0, ptr %iNp137)
%ua.raw140 = extractvalue { i64, i64 } %loadN, 1
%iNp141 = inttoptr i64 %ua.raw140 to ptr
%callN = call { ptr, i64 } @pointer_to_string__mptr_u8(ptr %0, ptr %iNp141)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.214
dispatch.case.222: ; preds = %match.arm.49
%ua.raw139 = extractvalue { i64, i64 } %loadN, 1
%iNp140 = inttoptr i64 %ua.raw139 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_BufAlloc(ptr %0, ptr %iNp140)
%ua.raw143 = extractvalue { i64, i64 } %loadN, 1
%iNp144 = inttoptr i64 %ua.raw143 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_BufAlloc(ptr %0, ptr %iNp144)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.214
dispatch.case.223: ; preds = %match.arm.49
%ua.raw142 = extractvalue { i64, i64 } %loadN, 1
%iNp143 = inttoptr i64 %ua.raw142 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_TrackingAllocator(ptr %0, ptr %iNp143)
%ua.raw146 = extractvalue { i64, i64 } %loadN, 1
%iNp147 = inttoptr i64 %ua.raw146 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_TrackingAllocator(ptr %0, ptr %iNp147)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.214
dispatch.case.224: ; preds = %match.arm.49
%ua.raw145 = extractvalue { i64, i64 } %loadN, 1
%iNp146 = inttoptr i64 %ua.raw145 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_Dog(ptr %0, ptr %iNp146)
%ua.raw149 = extractvalue { i64, i64 } %loadN, 1
%iNp150 = inttoptr i64 %ua.raw149 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_Dog(ptr %0, ptr %iNp150)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.214
dispatch.case.225: ; preds = %match.arm.49
%ua.raw148 = extractvalue { i64, i64 } %loadN, 1
%iNp149 = inttoptr i64 %ua.raw148 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_Cat(ptr %0, ptr %iNp149)
%ua.raw152 = extractvalue { i64, i64 } %loadN, 1
%iNp153 = inttoptr i64 %ua.raw152 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_Cat(ptr %0, ptr %iNp153)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.214
dispatch.case.226: ; preds = %match.arm.49
%ua.raw151 = extractvalue { i64, i64 } %loadN, 1
%iNp152 = inttoptr i64 %ua.raw151 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_ptr_CAllocator(ptr %0, ptr %iNp152)
%ua.raw155 = extractvalue { i64, i64 } %loadN, 1
%iNp156 = inttoptr i64 %ua.raw155 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_ptr_CAllocator(ptr %0, ptr %iNp156)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.214
dispatch.case.227: ; preds = %match.arm.49
%ua.raw154 = extractvalue { i64, i64 } %loadN, 1
%iNp155 = inttoptr i64 %ua.raw154 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_s64(ptr %0, ptr %iNp155)
%ua.raw158 = extractvalue { i64, i64 } %loadN, 1
%iNp159 = inttoptr i64 %ua.raw158 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_s64(ptr %0, ptr %iNp159)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.214
dispatch.case.228: ; preds = %match.arm.49
%ua.raw157 = extractvalue { i64, i64 } %loadN, 1
%iNp158 = inttoptr i64 %ua.raw157 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_ptr_void(ptr %0, ptr %iNp158)
%ua.raw161 = extractvalue { i64, i64 } %loadN, 1
%iNp162 = inttoptr i64 %ua.raw161 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_ptr_void(ptr %0, ptr %iNp162)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.214
dispatch.case.229: ; preds = %match.arm.49
%ua.raw160 = extractvalue { i64, i64 } %loadN, 1
%iNp161 = inttoptr i64 %ua.raw160 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_Any(ptr %0, ptr %iNp161)
%ua.raw164 = extractvalue { i64, i64 } %loadN, 1
%iNp165 = inttoptr i64 %ua.raw164 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_Any(ptr %0, ptr %iNp165)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.214
dispatch.case.230: ; preds = %match.arm.49
%ua.raw163 = extractvalue { i64, i64 } %loadN, 1
%iNp164 = inttoptr i64 %ua.raw163 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_AR_2_Any(ptr %0, ptr %iNp164)
%ua.raw167 = extractvalue { i64, i64 } %loadN, 1
%iNp168 = inttoptr i64 %ua.raw167 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_AR_2_Any(ptr %0, ptr %iNp168)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.214
dispatch.case.231: ; preds = %match.arm.49
%ua.raw166 = extractvalue { i64, i64 } %loadN, 1
%iNp167 = inttoptr i64 %ua.raw166 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_SL_Any(ptr %0, ptr %iNp167)
%ua.raw170 = extractvalue { i64, i64 } %loadN, 1
%iNp171 = inttoptr i64 %ua.raw170 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_SL_Any(ptr %0, ptr %iNp171)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.214
dispatch.case.232: ; preds = %match.arm.49
%ua.raw169 = extractvalue { i64, i64 } %loadN, 1
%iNp170 = inttoptr i64 %ua.raw169 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_ptr_Dog(ptr %0, ptr %iNp170)
%ua.raw173 = extractvalue { i64, i64 } %loadN, 1
%iNp174 = inttoptr i64 %ua.raw173 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_ptr_Dog(ptr %0, ptr %iNp174)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.214
dispatch.case.233: ; preds = %match.arm.49
%ua.raw172 = extractvalue { i64, i64 } %loadN, 1
%iNp173 = inttoptr i64 %ua.raw172 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_ptr_Cat(ptr %0, ptr %iNp173)
%ua.raw176 = extractvalue { i64, i64 } %loadN, 1
%iNp177 = inttoptr i64 %ua.raw176 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_ptr_Cat(ptr %0, ptr %iNp177)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.214
dispatch.case.234: ; preds = %match.arm.49
%ua.raw175 = extractvalue { i64, i64 } %loadN, 1
%iNp176 = inttoptr i64 %ua.raw175 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_string(ptr %0, ptr %iNp176)
%ua.raw179 = extractvalue { i64, i64 } %loadN, 1
%iNp180 = inttoptr i64 %ua.raw179 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_string(ptr %0, ptr %iNp180)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.214
dispatch.case.235: ; preds = %match.arm.49
%ua.raw178 = extractvalue { i64, i64 } %loadN, 1
%iNp179 = inttoptr i64 %ua.raw178 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_AR_1_Any(ptr %0, ptr %iNp179)
%ua.raw182 = extractvalue { i64, i64 } %loadN, 1
%iNp183 = inttoptr i64 %ua.raw182 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_AR_1_Any(ptr %0, ptr %iNp183)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.214
dispatch.case.236: ; preds = %match.arm.49
%ua.raw181 = extractvalue { i64, i64 } %loadN, 1
%iNp182 = inttoptr i64 %ua.raw181 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_u8(ptr %0, ptr %iNp182)
%ua.raw185 = extractvalue { i64, i64 } %loadN, 1
%iNp186 = inttoptr i64 %ua.raw185 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_u8(ptr %0, ptr %iNp186)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.214
dispatch.case.237: ; preds = %match.arm.49
%ua.raw184 = extractvalue { i64, i64 } %loadN, 1
%iNp185 = inttoptr i64 %ua.raw184 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_bool(ptr %0, ptr %iNp185)
%ua.raw188 = extractvalue { i64, i64 } %loadN, 1
%iNp189 = inttoptr i64 %ua.raw188 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_bool(ptr %0, ptr %iNp189)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.214
}

View File

@@ -1252,8 +1252,11 @@ match.arm.50: ; preds = %entry
match.arm.51: ; preds = %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry
%loadN = load { i64, i64 }, ptr %allocaN, align 8
%tiu.tid = extractvalue { i64, i64 } %loadN, 1
%tiu.gep = getelementptr inbounds [87 x i1], ptr @__sx_type_is_unsigned, i64 0, i64 %tiu.tid
%refl.tag = extractvalue { i64, i64 } %loadN, 0
%refl.val = extractvalue { i64, i64 } %loadN, 1
%refl.istype = icmp eq i64 %refl.tag, 13
%refl.tid = select i1 %refl.istype, i64 %refl.val, i64 %refl.tag
%tiu.gep = getelementptr inbounds [87 x i1], ptr @__sx_type_is_unsigned, i64 0, i64 %refl.tid
%tiu.load = load i1, ptr %tiu.gep, align 1
br i1 %tiu.load, label %if.then.65, label %if.else.66
@@ -1376,8 +1379,11 @@ match.arm.62: ; preds = %entry
match.arm.63: ; preds = %entry
%loadN = load { i64, i64 }, ptr %alloca, align 8
%tn.tid = extractvalue { i64, i64 } %loadN, 1
%tn.gep = getelementptr inbounds [87 x { ptr, i64 }], ptr @__sx_type_names, i64 0, i64 %tn.tid
%refl.tag36 = extractvalue { i64, i64 } %loadN, 0
%refl.val37 = extractvalue { i64, i64 } %loadN, 1
%refl.istype38 = icmp eq i64 %refl.tag36, 13
%refl.tid39 = select i1 %refl.istype38, i64 %refl.val37, i64 %refl.tag36
%tn.gep = getelementptr inbounds [87 x { ptr, i64 }], ptr @__sx_type_names, i64 0, i64 %refl.tid39
%tn.load = load { ptr, i64 }, ptr %tn.gep, align 8
store { ptr, i64 } %tn.load, ptr %allocaN, align 8
br label %match.merge.49
@@ -1387,15 +1393,15 @@ match.unr.64: ; preds = %entry
if.then.65: ; preds = %match.arm.51
%loadN = load { i64, i64 }, ptr %alloca, align 8
%ua.raw37 = extractvalue { i64, i64 } %loadN, 1
%callN = call { ptr, i64 } @uint_to_string(ptr %0, i64 %ua.raw37)
%ua.raw41 = extractvalue { i64, i64 } %loadN, 1
%callN = call { ptr, i64 } @uint_to_string(ptr %0, i64 %ua.raw41)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %if.merge.67
if.else.66: ; preds = %match.arm.51
%loadN = load { i64, i64 }, ptr %alloca, align 8
%ua.raw40 = extractvalue { i64, i64 } %loadN, 1
%callN = call { ptr, i64 } @int_to_string(ptr %0, i64 %ua.raw40)
%ua.raw44 = extractvalue { i64, i64 } %loadN, 1
%callN = call { ptr, i64 } @int_to_string(ptr %0, i64 %ua.raw44)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %if.merge.67
@@ -1403,16 +1409,16 @@ if.merge.67: ; preds = %if.else.66, %if.the
br label %match.merge.49
f32.unbox.93: ; preds = %match.arm.54
%ua.raw42 = extractvalue { i64, i64 } %loadN, 1
%trN = trunc i64 %ua.raw42 to i32
%ua.raw46 = extractvalue { i64, i64 } %loadN, 1
%trN = trunc i64 %ua.raw46 to i32
%iNf = bitcast i32 %trN to float
%fpext = fpext float %iNf to double
store double %fpext, ptr %allocaN, align 8
br label %float.merge.95
f64.unbox.94: ; preds = %match.arm.54
%ua.raw43 = extractvalue { i64, i64 } %loadN, 1
%iNd = bitcast i64 %ua.raw43 to double
%ua.raw47 = extractvalue { i64, i64 } %loadN, 1
%iNd = bitcast i64 %ua.raw47 to double
store double %iNd, ptr %allocaN, align 8
br label %float.merge.95
@@ -1432,106 +1438,106 @@ dispatch.default.107: ; preds = %match.arm.55
br label %dispatch.merge.106
dispatch.case.108: ; preds = %match.arm.55
%ua.raw47 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr48 = inttoptr i64 %ua.raw47 to ptr
%ua.load49 = load { { ptr, i64 }, i32, i32, { ptr, i64 } }, ptr %ua.ptr48, align 8
%callN = call { ptr, i64 } @struct_to_string__Source_Location(ptr %0, { { ptr, i64 }, i32, i32, { ptr, i64 } } %ua.load49)
%ua.raw51 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr52 = inttoptr i64 %ua.raw51 to ptr
%ua.load53 = load { { ptr, i64 }, i32, i32, { ptr, i64 } }, ptr %ua.ptr52, align 8
%callN = call { ptr, i64 } @struct_to_string__Source_Location(ptr %0, { { ptr, i64 }, i32, i32, { ptr, i64 } } %ua.load53)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.106
dispatch.case.109: ; preds = %match.arm.55
%ua.raw51 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr52 = inttoptr i64 %ua.raw51 to ptr
%ua.load53 = load { ptr, ptr, ptr }, ptr %ua.ptr52, align 8
%callN = call { ptr, i64 } @struct_to_string__Allocator(ptr %0, { ptr, ptr, ptr } %ua.load53)
%ua.raw55 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr56 = inttoptr i64 %ua.raw55 to ptr
%ua.load57 = load { ptr, ptr, ptr }, ptr %ua.ptr56, align 8
%callN = call { ptr, i64 } @struct_to_string__Allocator(ptr %0, { ptr, ptr, ptr } %ua.load57)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.106
dispatch.case.110: ; preds = %match.arm.55
%ua.raw55 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr56 = inttoptr i64 %ua.raw55 to ptr
%ua.load57 = load {}, ptr %ua.ptr56, align 1
%callN = call { ptr, i64 } @struct_to_string__CAllocator(ptr %0, {} %ua.load57)
%ua.raw59 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr60 = inttoptr i64 %ua.raw59 to ptr
%ua.load61 = load {}, ptr %ua.ptr60, align 1
%callN = call { ptr, i64 } @struct_to_string__CAllocator(ptr %0, {} %ua.load61)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.106
dispatch.case.111: ; preds = %match.arm.55
%ua.raw59 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr60 = inttoptr i64 %ua.raw59 to ptr
%ua.load61 = load { i64 }, ptr %ua.ptr60, align 8
%callN = call { ptr, i64 } @struct_to_string__GPA(ptr %0, { i64 } %ua.load61)
%ua.raw63 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr64 = inttoptr i64 %ua.raw63 to ptr
%ua.load65 = load { i64 }, ptr %ua.ptr64, align 8
%callN = call { ptr, i64 } @struct_to_string__GPA(ptr %0, { i64 } %ua.load65)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.106
dispatch.case.112: ; preds = %match.arm.55
%ua.raw63 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr64 = inttoptr i64 %ua.raw63 to ptr
%ua.load65 = load { ptr, i64 }, ptr %ua.ptr64, align 8
%callN = call { ptr, i64 } @struct_to_string__ArenaChunk(ptr %0, { ptr, i64 } %ua.load65)
%ua.raw67 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr68 = inttoptr i64 %ua.raw67 to ptr
%ua.load69 = load { ptr, i64 }, ptr %ua.ptr68, align 8
%callN = call { ptr, i64 } @struct_to_string__ArenaChunk(ptr %0, { ptr, i64 } %ua.load69)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.106
dispatch.case.113: ; preds = %match.arm.55
%ua.raw67 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr68 = inttoptr i64 %ua.raw67 to ptr
%ua.load69 = load { ptr, i64, { ptr, ptr, ptr } }, ptr %ua.ptr68, align 8
%callN = call { ptr, i64 } @struct_to_string__Arena(ptr %0, { ptr, i64, { ptr, ptr, ptr } } %ua.load69)
%ua.raw71 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr72 = inttoptr i64 %ua.raw71 to ptr
%ua.load73 = load { ptr, i64, { ptr, ptr, ptr } }, ptr %ua.ptr72, align 8
%callN = call { ptr, i64 } @struct_to_string__Arena(ptr %0, { ptr, i64, { ptr, ptr, ptr } } %ua.load73)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.106
dispatch.case.114: ; preds = %match.arm.55
%ua.raw71 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr72 = inttoptr i64 %ua.raw71 to ptr
%ua.load73 = load { ptr, i64, i64 }, ptr %ua.ptr72, align 8
%callN = call { ptr, i64 } @struct_to_string__BufAlloc(ptr %0, { ptr, i64, i64 } %ua.load73)
%ua.raw75 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr76 = inttoptr i64 %ua.raw75 to ptr
%ua.load77 = load { ptr, i64, i64 }, ptr %ua.ptr76, align 8
%callN = call { ptr, i64 } @struct_to_string__BufAlloc(ptr %0, { ptr, i64, i64 } %ua.load77)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.106
dispatch.case.115: ; preds = %match.arm.55
%ua.raw75 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr76 = inttoptr i64 %ua.raw75 to ptr
%ua.load77 = load { { ptr, ptr, ptr }, i64, i64, i64 }, ptr %ua.ptr76, align 8
%callN = call { ptr, i64 } @struct_to_string__TrackingAllocator(ptr %0, { { ptr, ptr, ptr }, i64, i64, i64 } %ua.load77)
%ua.raw79 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr80 = inttoptr i64 %ua.raw79 to ptr
%ua.load81 = load { { ptr, ptr, ptr }, i64, i64, i64 }, ptr %ua.ptr80, align 8
%callN = call { ptr, i64 } @struct_to_string__TrackingAllocator(ptr %0, { { ptr, ptr, ptr }, i64, i64, i64 } %ua.load81)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.106
dispatch.case.116: ; preds = %match.arm.55
%ua.raw79 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr80 = inttoptr i64 %ua.raw79 to ptr
%ua.load81 = load { { ptr, ptr, ptr }, ptr }, ptr %ua.ptr80, align 8
%callN = call { ptr, i64 } @struct_to_string__Context(ptr %0, { { ptr, ptr, ptr }, ptr } %ua.load81)
%ua.raw83 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr84 = inttoptr i64 %ua.raw83 to ptr
%ua.load85 = load { { ptr, ptr, ptr }, ptr }, ptr %ua.ptr84, align 8
%callN = call { ptr, i64 } @struct_to_string__Context(ptr %0, { { ptr, ptr, ptr }, ptr } %ua.load85)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.106
dispatch.case.117: ; preds = %match.arm.55
%ua.raw83 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr84 = inttoptr i64 %ua.raw83 to ptr
%ua.load85 = load { { float, i1 }, { float, i1 } }, ptr %ua.ptr84, align 4
%callN = call { ptr, i64 } @struct_to_string__ProposedSize(ptr %0, { { float, i1 }, { float, i1 } } %ua.load85)
%ua.raw87 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr88 = inttoptr i64 %ua.raw87 to ptr
%ua.load89 = load { { float, i1 }, { float, i1 } }, ptr %ua.ptr88, align 4
%callN = call { ptr, i64 } @struct_to_string__ProposedSize(ptr %0, { { float, i1 }, { float, i1 } } %ua.load89)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.106
dispatch.case.118: ; preds = %match.arm.55
%ua.raw87 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr88 = inttoptr i64 %ua.raw87 to ptr
%ua.load89 = load { ptr, ptr }, ptr %ua.ptr88, align 8
%callN = call { ptr, i64 } @struct_to_string__Sizable(ptr %0, { ptr, ptr } %ua.load89)
%ua.raw91 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr92 = inttoptr i64 %ua.raw91 to ptr
%ua.load93 = load { ptr, ptr }, ptr %ua.ptr92, align 8
%callN = call { ptr, i64 } @struct_to_string__Sizable(ptr %0, { ptr, ptr } %ua.load93)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.106
dispatch.case.119: ; preds = %match.arm.55
%ua.raw91 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr92 = inttoptr i64 %ua.raw91 to ptr
%ua.load93 = load { ptr }, ptr %ua.ptr92, align 8
%callN = call { ptr, i64 } @struct_to_string____Sizable__Vtable(ptr %0, { ptr } %ua.load93)
%ua.raw95 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr96 = inttoptr i64 %ua.raw95 to ptr
%ua.load97 = load { ptr }, ptr %ua.ptr96, align 8
%callN = call { ptr, i64 } @struct_to_string____Sizable__Vtable(ptr %0, { ptr } %ua.load97)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.106
dispatch.case.120: ; preds = %match.arm.55
%ua.raw95 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr96 = inttoptr i64 %ua.raw95 to ptr
%ua.load97 = load {}, ptr %ua.ptr96, align 1
%callN = call { ptr, i64 } @struct_to_string__Widget(ptr %0, {} %ua.load97)
%ua.raw99 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr100 = inttoptr i64 %ua.raw99 to ptr
%ua.load101 = load {}, ptr %ua.ptr100, align 1
%callN = call { ptr, i64 } @struct_to_string__Widget(ptr %0, {} %ua.load101)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.106
@@ -1545,18 +1551,18 @@ dispatch.default.187: ; preds = %match.arm.59
br label %dispatch.merge.186
dispatch.case.188: ; preds = %match.arm.59
%ua.raw100 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr101 = inttoptr i64 %ua.raw100 to ptr
%ua.load102 = load [4 x i64], ptr %ua.ptr101, align 8
%callN = call { ptr, i64 } @array_to_string__AR_4_s64(ptr %0, [4 x i64] %ua.load102)
%ua.raw104 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr105 = inttoptr i64 %ua.raw104 to ptr
%ua.load106 = load [4 x i64], ptr %ua.ptr105, align 8
%callN = call { ptr, i64 } @array_to_string__AR_4_s64(ptr %0, [4 x i64] %ua.load106)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.186
dispatch.case.189: ; preds = %match.arm.59
%ua.raw104 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr105 = inttoptr i64 %ua.raw104 to ptr
%ua.load106 = load [1 x { i64, i64 }], ptr %ua.ptr105, align 8
%callN = call { ptr, i64 } @array_to_string__AR_1_Any(ptr %0, [1 x { i64, i64 }] %ua.load106)
%ua.raw108 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr109 = inttoptr i64 %ua.raw108 to ptr
%ua.load110 = load [1 x { i64, i64 }], ptr %ua.ptr109, align 8
%callN = call { ptr, i64 } @array_to_string__AR_1_Any(ptr %0, [1 x { i64, i64 }] %ua.load110)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.186
@@ -1570,18 +1576,18 @@ dispatch.default.201: ; preds = %match.arm.60
br label %dispatch.merge.200
dispatch.case.202: ; preds = %match.arm.60
%ua.raw109 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr110 = inttoptr i64 %ua.raw109 to ptr
%ua.load111 = load { ptr, i64 }, ptr %ua.ptr110, align 8
%callN = call { ptr, i64 } @slice_to_string__string(ptr %0, { ptr, i64 } %ua.load111)
%ua.raw113 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr114 = inttoptr i64 %ua.raw113 to ptr
%ua.load115 = load { ptr, i64 }, ptr %ua.ptr114, align 8
%callN = call { ptr, i64 } @slice_to_string__string(ptr %0, { ptr, i64 } %ua.load115)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.200
dispatch.case.203: ; preds = %match.arm.60
%ua.raw113 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr114 = inttoptr i64 %ua.raw113 to ptr
%ua.load115 = load { ptr, i64 }, ptr %ua.ptr114, align 8
%callN = call { ptr, i64 } @slice_to_string__Any(ptr %0, { ptr, i64 } %ua.load115)
%ua.raw117 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr118 = inttoptr i64 %ua.raw117 to ptr
%ua.load119 = load { ptr, i64 }, ptr %ua.ptr118, align 8
%callN = call { ptr, i64 } @slice_to_string__Any(ptr %0, { ptr, i64 } %ua.load119)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.200
@@ -1595,170 +1601,170 @@ dispatch.default.215: ; preds = %match.arm.61
br label %dispatch.merge.214
dispatch.case.216: ; preds = %match.arm.61
%ua.raw118 = extractvalue { i64, i64 } %loadN, 1
%iNp = inttoptr i64 %ua.raw118 to ptr
%ua.raw122 = extractvalue { i64, i64 } %loadN, 1
%iNp = inttoptr i64 %ua.raw122 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_void(ptr %0, ptr %iNp)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.214
dispatch.case.217: ; preds = %match.arm.61
%ua.raw120 = extractvalue { i64, i64 } %loadN, 1
%iNp121 = inttoptr i64 %ua.raw120 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_CAllocator(ptr %0, ptr %iNp121)
%ua.raw124 = extractvalue { i64, i64 } %loadN, 1
%iNp125 = inttoptr i64 %ua.raw124 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_CAllocator(ptr %0, ptr %iNp125)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.214
dispatch.case.218: ; preds = %match.arm.61
%ua.raw123 = extractvalue { i64, i64 } %loadN, 1
%iNp124 = inttoptr i64 %ua.raw123 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_GPA(ptr %0, ptr %iNp124)
%ua.raw127 = extractvalue { i64, i64 } %loadN, 1
%iNp128 = inttoptr i64 %ua.raw127 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_GPA(ptr %0, ptr %iNp128)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.214
dispatch.case.219: ; preds = %match.arm.61
%ua.raw126 = extractvalue { i64, i64 } %loadN, 1
%iNp127 = inttoptr i64 %ua.raw126 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_ArenaChunk(ptr %0, ptr %iNp127)
%ua.raw130 = extractvalue { i64, i64 } %loadN, 1
%iNp131 = inttoptr i64 %ua.raw130 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_ArenaChunk(ptr %0, ptr %iNp131)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.214
dispatch.case.220: ; preds = %match.arm.61
%ua.raw129 = extractvalue { i64, i64 } %loadN, 1
%iNp130 = inttoptr i64 %ua.raw129 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_Arena(ptr %0, ptr %iNp130)
%ua.raw133 = extractvalue { i64, i64 } %loadN, 1
%iNp134 = inttoptr i64 %ua.raw133 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_Arena(ptr %0, ptr %iNp134)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.214
dispatch.case.221: ; preds = %match.arm.61
%ua.raw132 = extractvalue { i64, i64 } %loadN, 1
%iNp133 = inttoptr i64 %ua.raw132 to ptr
%callN = call { ptr, i64 } @pointer_to_string__mptr_u8(ptr %0, ptr %iNp133)
%ua.raw136 = extractvalue { i64, i64 } %loadN, 1
%iNp137 = inttoptr i64 %ua.raw136 to ptr
%callN = call { ptr, i64 } @pointer_to_string__mptr_u8(ptr %0, ptr %iNp137)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.214
dispatch.case.222: ; preds = %match.arm.61
%ua.raw135 = extractvalue { i64, i64 } %loadN, 1
%iNp136 = inttoptr i64 %ua.raw135 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_BufAlloc(ptr %0, ptr %iNp136)
%ua.raw139 = extractvalue { i64, i64 } %loadN, 1
%iNp140 = inttoptr i64 %ua.raw139 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_BufAlloc(ptr %0, ptr %iNp140)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.214
dispatch.case.223: ; preds = %match.arm.61
%ua.raw138 = extractvalue { i64, i64 } %loadN, 1
%iNp139 = inttoptr i64 %ua.raw138 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_TrackingAllocator(ptr %0, ptr %iNp139)
%ua.raw142 = extractvalue { i64, i64 } %loadN, 1
%iNp143 = inttoptr i64 %ua.raw142 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_TrackingAllocator(ptr %0, ptr %iNp143)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.214
dispatch.case.224: ; preds = %match.arm.61
%ua.raw141 = extractvalue { i64, i64 } %loadN, 1
%iNp142 = inttoptr i64 %ua.raw141 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_Widget(ptr %0, ptr %iNp142)
%ua.raw145 = extractvalue { i64, i64 } %loadN, 1
%iNp146 = inttoptr i64 %ua.raw145 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_Widget(ptr %0, ptr %iNp146)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.214
dispatch.case.225: ; preds = %match.arm.61
%ua.raw144 = extractvalue { i64, i64 } %loadN, 1
%iNp145 = inttoptr i64 %ua.raw144 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_ptr_CAllocator(ptr %0, ptr %iNp145)
%ua.raw148 = extractvalue { i64, i64 } %loadN, 1
%iNp149 = inttoptr i64 %ua.raw148 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_ptr_CAllocator(ptr %0, ptr %iNp149)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.214
dispatch.case.226: ; preds = %match.arm.61
%ua.raw147 = extractvalue { i64, i64 } %loadN, 1
%iNp148 = inttoptr i64 %ua.raw147 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_s64(ptr %0, ptr %iNp148)
%ua.raw151 = extractvalue { i64, i64 } %loadN, 1
%iNp152 = inttoptr i64 %ua.raw151 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_s64(ptr %0, ptr %iNp152)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.214
dispatch.case.227: ; preds = %match.arm.61
%ua.raw150 = extractvalue { i64, i64 } %loadN, 1
%iNp151 = inttoptr i64 %ua.raw150 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_ptr_void(ptr %0, ptr %iNp151)
%ua.raw154 = extractvalue { i64, i64 } %loadN, 1
%iNp155 = inttoptr i64 %ua.raw154 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_ptr_void(ptr %0, ptr %iNp155)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.214
dispatch.case.228: ; preds = %match.arm.61
%ua.raw153 = extractvalue { i64, i64 } %loadN, 1
%iNp154 = inttoptr i64 %ua.raw153 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_string(ptr %0, ptr %iNp154)
%ua.raw157 = extractvalue { i64, i64 } %loadN, 1
%iNp158 = inttoptr i64 %ua.raw157 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_string(ptr %0, ptr %iNp158)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.214
dispatch.case.229: ; preds = %match.arm.61
%ua.raw156 = extractvalue { i64, i64 } %loadN, 1
%iNp157 = inttoptr i64 %ua.raw156 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_Any(ptr %0, ptr %iNp157)
%ua.raw160 = extractvalue { i64, i64 } %loadN, 1
%iNp161 = inttoptr i64 %ua.raw160 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_Any(ptr %0, ptr %iNp161)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.214
dispatch.case.230: ; preds = %match.arm.61
%ua.raw159 = extractvalue { i64, i64 } %loadN, 1
%iNp160 = inttoptr i64 %ua.raw159 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_SL_Any(ptr %0, ptr %iNp160)
%ua.raw163 = extractvalue { i64, i64 } %loadN, 1
%iNp164 = inttoptr i64 %ua.raw163 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_SL_Any(ptr %0, ptr %iNp164)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.214
dispatch.case.231: ; preds = %match.arm.61
%ua.raw162 = extractvalue { i64, i64 } %loadN, 1
%iNp163 = inttoptr i64 %ua.raw162 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_u8(ptr %0, ptr %iNp163)
%ua.raw166 = extractvalue { i64, i64 } %loadN, 1
%iNp167 = inttoptr i64 %ua.raw166 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_u8(ptr %0, ptr %iNp167)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.214
dispatch.case.232: ; preds = %match.arm.61
%ua.raw165 = extractvalue { i64, i64 } %loadN, 1
%iNp166 = inttoptr i64 %ua.raw165 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_bool(ptr %0, ptr %iNp166)
%ua.raw169 = extractvalue { i64, i64 } %loadN, 1
%iNp170 = inttoptr i64 %ua.raw169 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_bool(ptr %0, ptr %iNp170)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.214
dispatch.case.233: ; preds = %match.arm.61
%ua.raw168 = extractvalue { i64, i64 } %loadN, 1
%iNp169 = inttoptr i64 %ua.raw168 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_ProposedSize(ptr %0, ptr %iNp169)
%ua.raw172 = extractvalue { i64, i64 } %loadN, 1
%iNp173 = inttoptr i64 %ua.raw172 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_ProposedSize(ptr %0, ptr %iNp173)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.214
dispatch.case.234: ; preds = %match.arm.61
%ua.raw171 = extractvalue { i64, i64 } %loadN, 1
%iNp172 = inttoptr i64 %ua.raw171 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_f32(ptr %0, ptr %iNp172)
%ua.raw175 = extractvalue { i64, i64 } %loadN, 1
%iNp176 = inttoptr i64 %ua.raw175 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_f32(ptr %0, ptr %iNp176)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.214
dispatch.case.235: ; preds = %match.arm.61
%ua.raw174 = extractvalue { i64, i64 } %loadN, 1
%iNp175 = inttoptr i64 %ua.raw174 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_f64(ptr %0, ptr %iNp175)
%ua.raw178 = extractvalue { i64, i64 } %loadN, 1
%iNp179 = inttoptr i64 %ua.raw178 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_f64(ptr %0, ptr %iNp179)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.214
dispatch.case.236: ; preds = %match.arm.61
%ua.raw177 = extractvalue { i64, i64 } %loadN, 1
%iNp178 = inttoptr i64 %ua.raw177 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_AR_1_Any(ptr %0, ptr %iNp178)
%ua.raw181 = extractvalue { i64, i64 } %loadN, 1
%iNp182 = inttoptr i64 %ua.raw181 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_AR_1_Any(ptr %0, ptr %iNp182)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.214
dispatch.case.237: ; preds = %match.arm.61
%ua.raw180 = extractvalue { i64, i64 } %loadN, 1
%iNp181 = inttoptr i64 %ua.raw180 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_Sizable(ptr %0, ptr %iNp181)
%ua.raw184 = extractvalue { i64, i64 } %loadN, 1
%iNp185 = inttoptr i64 %ua.raw184 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_Sizable(ptr %0, ptr %iNp185)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.214
dispatch.case.238: ; preds = %match.arm.61
%ua.raw183 = extractvalue { i64, i64 } %loadN, 1
%iNp184 = inttoptr i64 %ua.raw183 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_ptr_Widget(ptr %0, ptr %iNp184)
%ua.raw187 = extractvalue { i64, i64 } %loadN, 1
%iNp188 = inttoptr i64 %ua.raw187 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_ptr_Widget(ptr %0, ptr %iNp188)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.214
dispatch.case.239: ; preds = %match.arm.61
%ua.raw186 = extractvalue { i64, i64 } %loadN, 1
%iNp187 = inttoptr i64 %ua.raw186 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr___Sizable__Vtable(ptr %0, ptr %iNp187)
%ua.raw190 = extractvalue { i64, i64 } %loadN, 1
%iNp191 = inttoptr i64 %ua.raw190 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr___Sizable__Vtable(ptr %0, ptr %iNp191)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.214
@@ -1772,10 +1778,10 @@ dispatch.default.326: ; preds = %match.arm.62
br label %dispatch.merge.325
dispatch.case.327: ; preds = %match.arm.62
%ua.raw190 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr191 = inttoptr i64 %ua.raw190 to ptr
%ua.load192 = load { float, i1 }, ptr %ua.ptr191, align 4
%callN = call { ptr, i64 } @optional_to_string__opt_f32(ptr %0, { float, i1 } %ua.load192)
%ua.raw194 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr195 = inttoptr i64 %ua.raw194 to ptr
%ua.load196 = load { float, i1 }, ptr %ua.ptr195, align 4
%callN = call { ptr, i64 } @optional_to_string__opt_f32(ptr %0, { float, i1 } %ua.load196)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.325
}

View File

@@ -1173,8 +1173,11 @@ match.arm.38: ; preds = %entry
match.arm.39: ; preds = %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry
%loadN = load { i64, i64 }, ptr %allocaN, align 8
%tiu.tid = extractvalue { i64, i64 } %loadN, 1
%tiu.gep = getelementptr inbounds [78 x i1], ptr @__sx_type_is_unsigned, i64 0, i64 %tiu.tid
%refl.tag = extractvalue { i64, i64 } %loadN, 0
%refl.val = extractvalue { i64, i64 } %loadN, 1
%refl.istype = icmp eq i64 %refl.tag, 13
%refl.tid = select i1 %refl.istype, i64 %refl.val, i64 %refl.tag
%tiu.gep = getelementptr inbounds [78 x i1], ptr @__sx_type_is_unsigned, i64 0, i64 %refl.tid
%tiu.load = load i1, ptr %tiu.gep, align 1
br i1 %tiu.load, label %if.then.53, label %if.else.54
@@ -1290,8 +1293,11 @@ match.arm.50: ; preds = %entry, %entry, %ent
match.arm.51: ; preds = %entry
%loadN = load { i64, i64 }, ptr %alloca, align 8
%tn.tid = extractvalue { i64, i64 } %loadN, 1
%tn.gep = getelementptr inbounds [78 x { ptr, i64 }], ptr @__sx_type_names, i64 0, i64 %tn.tid
%refl.tag36 = extractvalue { i64, i64 } %loadN, 0
%refl.val37 = extractvalue { i64, i64 } %loadN, 1
%refl.istype38 = icmp eq i64 %refl.tag36, 13
%refl.tid39 = select i1 %refl.istype38, i64 %refl.val37, i64 %refl.tag36
%tn.gep = getelementptr inbounds [78 x { ptr, i64 }], ptr @__sx_type_names, i64 0, i64 %refl.tid39
%tn.load = load { ptr, i64 }, ptr %tn.gep, align 8
store { ptr, i64 } %tn.load, ptr %allocaN, align 8
br label %match.merge.37
@@ -1301,15 +1307,15 @@ match.unr.52: ; preds = %entry
if.then.53: ; preds = %match.arm.39
%loadN = load { i64, i64 }, ptr %alloca, align 8
%ua.raw37 = extractvalue { i64, i64 } %loadN, 1
%callN = call { ptr, i64 } @uint_to_string(ptr %0, i64 %ua.raw37)
%ua.raw41 = extractvalue { i64, i64 } %loadN, 1
%callN = call { ptr, i64 } @uint_to_string(ptr %0, i64 %ua.raw41)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %if.merge.55
if.else.54: ; preds = %match.arm.39
%loadN = load { i64, i64 }, ptr %alloca, align 8
%ua.raw40 = extractvalue { i64, i64 } %loadN, 1
%callN = call { ptr, i64 } @int_to_string(ptr %0, i64 %ua.raw40)
%ua.raw44 = extractvalue { i64, i64 } %loadN, 1
%callN = call { ptr, i64 } @int_to_string(ptr %0, i64 %ua.raw44)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %if.merge.55
@@ -1317,16 +1323,16 @@ if.merge.55: ; preds = %if.else.54, %if.the
br label %match.merge.37
f32.unbox.81: ; preds = %match.arm.42
%ua.raw42 = extractvalue { i64, i64 } %loadN, 1
%trN = trunc i64 %ua.raw42 to i32
%ua.raw46 = extractvalue { i64, i64 } %loadN, 1
%trN = trunc i64 %ua.raw46 to i32
%iNf = bitcast i32 %trN to float
%fpext = fpext float %iNf to double
store double %fpext, ptr %allocaN, align 8
br label %float.merge.83
f64.unbox.82: ; preds = %match.arm.42
%ua.raw43 = extractvalue { i64, i64 } %loadN, 1
%iNd = bitcast i64 %ua.raw43 to double
%ua.raw47 = extractvalue { i64, i64 } %loadN, 1
%iNd = bitcast i64 %ua.raw47 to double
store double %iNd, ptr %allocaN, align 8
br label %float.merge.83
@@ -1346,82 +1352,82 @@ dispatch.default.95: ; preds = %match.arm.43
br label %dispatch.merge.94
dispatch.case.96: ; preds = %match.arm.43
%ua.raw47 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr48 = inttoptr i64 %ua.raw47 to ptr
%ua.load49 = load { { ptr, i64 }, i32, i32, { ptr, i64 } }, ptr %ua.ptr48, align 8
%callN = call { ptr, i64 } @struct_to_string__Source_Location(ptr %0, { { ptr, i64 }, i32, i32, { ptr, i64 } } %ua.load49)
%ua.raw51 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr52 = inttoptr i64 %ua.raw51 to ptr
%ua.load53 = load { { ptr, i64 }, i32, i32, { ptr, i64 } }, ptr %ua.ptr52, align 8
%callN = call { ptr, i64 } @struct_to_string__Source_Location(ptr %0, { { ptr, i64 }, i32, i32, { ptr, i64 } } %ua.load53)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.94
dispatch.case.97: ; preds = %match.arm.43
%ua.raw51 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr52 = inttoptr i64 %ua.raw51 to ptr
%ua.load53 = load { ptr, ptr, ptr }, ptr %ua.ptr52, align 8
%callN = call { ptr, i64 } @struct_to_string__Allocator(ptr %0, { ptr, ptr, ptr } %ua.load53)
%ua.raw55 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr56 = inttoptr i64 %ua.raw55 to ptr
%ua.load57 = load { ptr, ptr, ptr }, ptr %ua.ptr56, align 8
%callN = call { ptr, i64 } @struct_to_string__Allocator(ptr %0, { ptr, ptr, ptr } %ua.load57)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.94
dispatch.case.98: ; preds = %match.arm.43
%ua.raw55 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr56 = inttoptr i64 %ua.raw55 to ptr
%ua.load57 = load {}, ptr %ua.ptr56, align 1
%callN = call { ptr, i64 } @struct_to_string__CAllocator(ptr %0, {} %ua.load57)
%ua.raw59 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr60 = inttoptr i64 %ua.raw59 to ptr
%ua.load61 = load {}, ptr %ua.ptr60, align 1
%callN = call { ptr, i64 } @struct_to_string__CAllocator(ptr %0, {} %ua.load61)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.94
dispatch.case.99: ; preds = %match.arm.43
%ua.raw59 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr60 = inttoptr i64 %ua.raw59 to ptr
%ua.load61 = load { i64 }, ptr %ua.ptr60, align 8
%callN = call { ptr, i64 } @struct_to_string__GPA(ptr %0, { i64 } %ua.load61)
%ua.raw63 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr64 = inttoptr i64 %ua.raw63 to ptr
%ua.load65 = load { i64 }, ptr %ua.ptr64, align 8
%callN = call { ptr, i64 } @struct_to_string__GPA(ptr %0, { i64 } %ua.load65)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.94
dispatch.case.100: ; preds = %match.arm.43
%ua.raw63 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr64 = inttoptr i64 %ua.raw63 to ptr
%ua.load65 = load { ptr, i64 }, ptr %ua.ptr64, align 8
%callN = call { ptr, i64 } @struct_to_string__ArenaChunk(ptr %0, { ptr, i64 } %ua.load65)
%ua.raw67 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr68 = inttoptr i64 %ua.raw67 to ptr
%ua.load69 = load { ptr, i64 }, ptr %ua.ptr68, align 8
%callN = call { ptr, i64 } @struct_to_string__ArenaChunk(ptr %0, { ptr, i64 } %ua.load69)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.94
dispatch.case.101: ; preds = %match.arm.43
%ua.raw67 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr68 = inttoptr i64 %ua.raw67 to ptr
%ua.load69 = load { ptr, i64, { ptr, ptr, ptr } }, ptr %ua.ptr68, align 8
%callN = call { ptr, i64 } @struct_to_string__Arena(ptr %0, { ptr, i64, { ptr, ptr, ptr } } %ua.load69)
%ua.raw71 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr72 = inttoptr i64 %ua.raw71 to ptr
%ua.load73 = load { ptr, i64, { ptr, ptr, ptr } }, ptr %ua.ptr72, align 8
%callN = call { ptr, i64 } @struct_to_string__Arena(ptr %0, { ptr, i64, { ptr, ptr, ptr } } %ua.load73)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.94
dispatch.case.102: ; preds = %match.arm.43
%ua.raw71 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr72 = inttoptr i64 %ua.raw71 to ptr
%ua.load73 = load { ptr, i64, i64 }, ptr %ua.ptr72, align 8
%callN = call { ptr, i64 } @struct_to_string__BufAlloc(ptr %0, { ptr, i64, i64 } %ua.load73)
%ua.raw75 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr76 = inttoptr i64 %ua.raw75 to ptr
%ua.load77 = load { ptr, i64, i64 }, ptr %ua.ptr76, align 8
%callN = call { ptr, i64 } @struct_to_string__BufAlloc(ptr %0, { ptr, i64, i64 } %ua.load77)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.94
dispatch.case.103: ; preds = %match.arm.43
%ua.raw75 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr76 = inttoptr i64 %ua.raw75 to ptr
%ua.load77 = load { { ptr, ptr, ptr }, i64, i64, i64 }, ptr %ua.ptr76, align 8
%callN = call { ptr, i64 } @struct_to_string__TrackingAllocator(ptr %0, { { ptr, ptr, ptr }, i64, i64, i64 } %ua.load77)
%ua.raw79 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr80 = inttoptr i64 %ua.raw79 to ptr
%ua.load81 = load { { ptr, ptr, ptr }, i64, i64, i64 }, ptr %ua.ptr80, align 8
%callN = call { ptr, i64 } @struct_to_string__TrackingAllocator(ptr %0, { { ptr, ptr, ptr }, i64, i64, i64 } %ua.load81)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.94
dispatch.case.104: ; preds = %match.arm.43
%ua.raw79 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr80 = inttoptr i64 %ua.raw79 to ptr
%ua.load81 = load { { ptr, ptr, ptr }, ptr }, ptr %ua.ptr80, align 8
%callN = call { ptr, i64 } @struct_to_string__Context(ptr %0, { { ptr, ptr, ptr }, ptr } %ua.load81)
%ua.raw83 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr84 = inttoptr i64 %ua.raw83 to ptr
%ua.load85 = load { { ptr, ptr, ptr }, ptr }, ptr %ua.ptr84, align 8
%callN = call { ptr, i64 } @struct_to_string__Context(ptr %0, { { ptr, ptr, ptr }, ptr } %ua.load85)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.94
dispatch.case.105: ; preds = %match.arm.43
%ua.raw83 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr84 = inttoptr i64 %ua.raw83 to ptr
%ua.load85 = load { { i64, i1 }, { { ptr, i64 }, i1 }, { i1, i1 } }, ptr %ua.ptr84, align 8
%callN = call { ptr, i64 } @struct_to_string__S(ptr %0, { { i64, i1 }, { { ptr, i64 }, i1 }, { i1, i1 } } %ua.load85)
%ua.raw87 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr88 = inttoptr i64 %ua.raw87 to ptr
%ua.load89 = load { { i64, i1 }, { { ptr, i64 }, i1 }, { i1, i1 } }, ptr %ua.ptr88, align 8
%callN = call { ptr, i64 } @struct_to_string__S(ptr %0, { { i64, i1 }, { { ptr, i64 }, i1 }, { i1, i1 } } %ua.load89)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.94
@@ -1435,18 +1441,18 @@ dispatch.default.157: ; preds = %match.arm.47
br label %dispatch.merge.156
dispatch.case.158: ; preds = %match.arm.47
%ua.raw88 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr89 = inttoptr i64 %ua.raw88 to ptr
%ua.load90 = load [4 x i64], ptr %ua.ptr89, align 8
%callN = call { ptr, i64 } @array_to_string__AR_4_s64(ptr %0, [4 x i64] %ua.load90)
%ua.raw92 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr93 = inttoptr i64 %ua.raw92 to ptr
%ua.load94 = load [4 x i64], ptr %ua.ptr93, align 8
%callN = call { ptr, i64 } @array_to_string__AR_4_s64(ptr %0, [4 x i64] %ua.load94)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.156
dispatch.case.159: ; preds = %match.arm.47
%ua.raw92 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr93 = inttoptr i64 %ua.raw92 to ptr
%ua.load94 = load [1 x { i64, i64 }], ptr %ua.ptr93, align 8
%callN = call { ptr, i64 } @array_to_string__AR_1_Any(ptr %0, [1 x { i64, i64 }] %ua.load94)
%ua.raw96 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr97 = inttoptr i64 %ua.raw96 to ptr
%ua.load98 = load [1 x { i64, i64 }], ptr %ua.ptr97, align 8
%callN = call { ptr, i64 } @array_to_string__AR_1_Any(ptr %0, [1 x { i64, i64 }] %ua.load98)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.156
@@ -1460,18 +1466,18 @@ dispatch.default.171: ; preds = %match.arm.48
br label %dispatch.merge.170
dispatch.case.172: ; preds = %match.arm.48
%ua.raw97 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr98 = inttoptr i64 %ua.raw97 to ptr
%ua.load99 = load { ptr, i64 }, ptr %ua.ptr98, align 8
%callN = call { ptr, i64 } @slice_to_string__string(ptr %0, { ptr, i64 } %ua.load99)
%ua.raw101 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr102 = inttoptr i64 %ua.raw101 to ptr
%ua.load103 = load { ptr, i64 }, ptr %ua.ptr102, align 8
%callN = call { ptr, i64 } @slice_to_string__string(ptr %0, { ptr, i64 } %ua.load103)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.170
dispatch.case.173: ; preds = %match.arm.48
%ua.raw101 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr102 = inttoptr i64 %ua.raw101 to ptr
%ua.load103 = load { ptr, i64 }, ptr %ua.ptr102, align 8
%callN = call { ptr, i64 } @slice_to_string__Any(ptr %0, { ptr, i64 } %ua.load103)
%ua.raw105 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr106 = inttoptr i64 %ua.raw105 to ptr
%ua.load107 = load { ptr, i64 }, ptr %ua.ptr106, align 8
%callN = call { ptr, i64 } @slice_to_string__Any(ptr %0, { ptr, i64 } %ua.load107)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.170
@@ -1485,128 +1491,128 @@ dispatch.default.185: ; preds = %match.arm.49
br label %dispatch.merge.184
dispatch.case.186: ; preds = %match.arm.49
%ua.raw106 = extractvalue { i64, i64 } %loadN, 1
%iNp = inttoptr i64 %ua.raw106 to ptr
%ua.raw110 = extractvalue { i64, i64 } %loadN, 1
%iNp = inttoptr i64 %ua.raw110 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_void(ptr %0, ptr %iNp)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.184
dispatch.case.187: ; preds = %match.arm.49
%ua.raw108 = extractvalue { i64, i64 } %loadN, 1
%iNp109 = inttoptr i64 %ua.raw108 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_CAllocator(ptr %0, ptr %iNp109)
%ua.raw112 = extractvalue { i64, i64 } %loadN, 1
%iNp113 = inttoptr i64 %ua.raw112 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_CAllocator(ptr %0, ptr %iNp113)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.184
dispatch.case.188: ; preds = %match.arm.49
%ua.raw111 = extractvalue { i64, i64 } %loadN, 1
%iNp112 = inttoptr i64 %ua.raw111 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_GPA(ptr %0, ptr %iNp112)
%ua.raw115 = extractvalue { i64, i64 } %loadN, 1
%iNp116 = inttoptr i64 %ua.raw115 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_GPA(ptr %0, ptr %iNp116)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.184
dispatch.case.189: ; preds = %match.arm.49
%ua.raw114 = extractvalue { i64, i64 } %loadN, 1
%iNp115 = inttoptr i64 %ua.raw114 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_ArenaChunk(ptr %0, ptr %iNp115)
%ua.raw118 = extractvalue { i64, i64 } %loadN, 1
%iNp119 = inttoptr i64 %ua.raw118 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_ArenaChunk(ptr %0, ptr %iNp119)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.184
dispatch.case.190: ; preds = %match.arm.49
%ua.raw117 = extractvalue { i64, i64 } %loadN, 1
%iNp118 = inttoptr i64 %ua.raw117 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_Arena(ptr %0, ptr %iNp118)
%ua.raw121 = extractvalue { i64, i64 } %loadN, 1
%iNp122 = inttoptr i64 %ua.raw121 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_Arena(ptr %0, ptr %iNp122)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.184
dispatch.case.191: ; preds = %match.arm.49
%ua.raw120 = extractvalue { i64, i64 } %loadN, 1
%iNp121 = inttoptr i64 %ua.raw120 to ptr
%callN = call { ptr, i64 } @pointer_to_string__mptr_u8(ptr %0, ptr %iNp121)
%ua.raw124 = extractvalue { i64, i64 } %loadN, 1
%iNp125 = inttoptr i64 %ua.raw124 to ptr
%callN = call { ptr, i64 } @pointer_to_string__mptr_u8(ptr %0, ptr %iNp125)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.184
dispatch.case.192: ; preds = %match.arm.49
%ua.raw123 = extractvalue { i64, i64 } %loadN, 1
%iNp124 = inttoptr i64 %ua.raw123 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_BufAlloc(ptr %0, ptr %iNp124)
%ua.raw127 = extractvalue { i64, i64 } %loadN, 1
%iNp128 = inttoptr i64 %ua.raw127 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_BufAlloc(ptr %0, ptr %iNp128)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.184
dispatch.case.193: ; preds = %match.arm.49
%ua.raw126 = extractvalue { i64, i64 } %loadN, 1
%iNp127 = inttoptr i64 %ua.raw126 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_TrackingAllocator(ptr %0, ptr %iNp127)
%ua.raw130 = extractvalue { i64, i64 } %loadN, 1
%iNp131 = inttoptr i64 %ua.raw130 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_TrackingAllocator(ptr %0, ptr %iNp131)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.184
dispatch.case.194: ; preds = %match.arm.49
%ua.raw129 = extractvalue { i64, i64 } %loadN, 1
%iNp130 = inttoptr i64 %ua.raw129 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_ptr_CAllocator(ptr %0, ptr %iNp130)
%ua.raw133 = extractvalue { i64, i64 } %loadN, 1
%iNp134 = inttoptr i64 %ua.raw133 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_ptr_CAllocator(ptr %0, ptr %iNp134)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.184
dispatch.case.195: ; preds = %match.arm.49
%ua.raw132 = extractvalue { i64, i64 } %loadN, 1
%iNp133 = inttoptr i64 %ua.raw132 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_s64(ptr %0, ptr %iNp133)
%ua.raw136 = extractvalue { i64, i64 } %loadN, 1
%iNp137 = inttoptr i64 %ua.raw136 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_s64(ptr %0, ptr %iNp137)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.184
dispatch.case.196: ; preds = %match.arm.49
%ua.raw135 = extractvalue { i64, i64 } %loadN, 1
%iNp136 = inttoptr i64 %ua.raw135 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_ptr_void(ptr %0, ptr %iNp136)
%ua.raw139 = extractvalue { i64, i64 } %loadN, 1
%iNp140 = inttoptr i64 %ua.raw139 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_ptr_void(ptr %0, ptr %iNp140)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.184
dispatch.case.197: ; preds = %match.arm.49
%ua.raw138 = extractvalue { i64, i64 } %loadN, 1
%iNp139 = inttoptr i64 %ua.raw138 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_S(ptr %0, ptr %iNp139)
%ua.raw142 = extractvalue { i64, i64 } %loadN, 1
%iNp143 = inttoptr i64 %ua.raw142 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_S(ptr %0, ptr %iNp143)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.184
dispatch.case.198: ; preds = %match.arm.49
%ua.raw141 = extractvalue { i64, i64 } %loadN, 1
%iNp142 = inttoptr i64 %ua.raw141 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_string(ptr %0, ptr %iNp142)
%ua.raw145 = extractvalue { i64, i64 } %loadN, 1
%iNp146 = inttoptr i64 %ua.raw145 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_string(ptr %0, ptr %iNp146)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.184
dispatch.case.199: ; preds = %match.arm.49
%ua.raw144 = extractvalue { i64, i64 } %loadN, 1
%iNp145 = inttoptr i64 %ua.raw144 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_Any(ptr %0, ptr %iNp145)
%ua.raw148 = extractvalue { i64, i64 } %loadN, 1
%iNp149 = inttoptr i64 %ua.raw148 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_Any(ptr %0, ptr %iNp149)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.184
dispatch.case.200: ; preds = %match.arm.49
%ua.raw147 = extractvalue { i64, i64 } %loadN, 1
%iNp148 = inttoptr i64 %ua.raw147 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_AR_1_Any(ptr %0, ptr %iNp148)
%ua.raw151 = extractvalue { i64, i64 } %loadN, 1
%iNp152 = inttoptr i64 %ua.raw151 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_AR_1_Any(ptr %0, ptr %iNp152)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.184
dispatch.case.201: ; preds = %match.arm.49
%ua.raw150 = extractvalue { i64, i64 } %loadN, 1
%iNp151 = inttoptr i64 %ua.raw150 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_SL_Any(ptr %0, ptr %iNp151)
%ua.raw154 = extractvalue { i64, i64 } %loadN, 1
%iNp155 = inttoptr i64 %ua.raw154 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_SL_Any(ptr %0, ptr %iNp155)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.184
dispatch.case.202: ; preds = %match.arm.49
%ua.raw153 = extractvalue { i64, i64 } %loadN, 1
%iNp154 = inttoptr i64 %ua.raw153 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_u8(ptr %0, ptr %iNp154)
%ua.raw157 = extractvalue { i64, i64 } %loadN, 1
%iNp158 = inttoptr i64 %ua.raw157 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_u8(ptr %0, ptr %iNp158)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.184
dispatch.case.203: ; preds = %match.arm.49
%ua.raw156 = extractvalue { i64, i64 } %loadN, 1
%iNp157 = inttoptr i64 %ua.raw156 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_bool(ptr %0, ptr %iNp157)
%ua.raw160 = extractvalue { i64, i64 } %loadN, 1
%iNp161 = inttoptr i64 %ua.raw160 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_bool(ptr %0, ptr %iNp161)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.184
@@ -1620,26 +1626,26 @@ dispatch.default.272: ; preds = %match.arm.50
br label %dispatch.merge.271
dispatch.case.273: ; preds = %match.arm.50
%ua.raw160 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr161 = inttoptr i64 %ua.raw160 to ptr
%ua.load162 = load { i64, i1 }, ptr %ua.ptr161, align 8
%callN = call { ptr, i64 } @optional_to_string__opt_s64(ptr %0, { i64, i1 } %ua.load162)
%ua.raw164 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr165 = inttoptr i64 %ua.raw164 to ptr
%ua.load166 = load { i64, i1 }, ptr %ua.ptr165, align 8
%callN = call { ptr, i64 } @optional_to_string__opt_s64(ptr %0, { i64, i1 } %ua.load166)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.271
dispatch.case.274: ; preds = %match.arm.50
%ua.raw164 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr165 = inttoptr i64 %ua.raw164 to ptr
%ua.load166 = load { { ptr, i64 }, i1 }, ptr %ua.ptr165, align 8
%callN = call { ptr, i64 } @optional_to_string__opt_string(ptr %0, { { ptr, i64 }, i1 } %ua.load166)
%ua.raw168 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr169 = inttoptr i64 %ua.raw168 to ptr
%ua.load170 = load { { ptr, i64 }, i1 }, ptr %ua.ptr169, align 8
%callN = call { ptr, i64 } @optional_to_string__opt_string(ptr %0, { { ptr, i64 }, i1 } %ua.load170)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.271
dispatch.case.275: ; preds = %match.arm.50
%ua.raw168 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr169 = inttoptr i64 %ua.raw168 to ptr
%ua.load170 = load { i1, i1 }, ptr %ua.ptr169, align 1
%callN = call { ptr, i64 } @optional_to_string__opt_bool(ptr %0, { i1, i1 } %ua.load170)
%ua.raw172 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr173 = inttoptr i64 %ua.raw172 to ptr
%ua.load174 = load { i1, i1 }, ptr %ua.ptr173, align 1
%callN = call { ptr, i64 } @optional_to_string__opt_bool(ptr %0, { i1, i1 } %ua.load174)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.271
}

View File

@@ -1168,8 +1168,11 @@ match.arm.48: ; preds = %entry
match.arm.49: ; preds = %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry
%loadN = load { i64, i64 }, ptr %allocaN, align 8
%tiu.tid = extractvalue { i64, i64 } %loadN, 1
%tiu.gep = getelementptr inbounds [75 x i1], ptr @__sx_type_is_unsigned, i64 0, i64 %tiu.tid
%refl.tag = extractvalue { i64, i64 } %loadN, 0
%refl.val = extractvalue { i64, i64 } %loadN, 1
%refl.istype = icmp eq i64 %refl.tag, 13
%refl.tid = select i1 %refl.istype, i64 %refl.val, i64 %refl.tag
%tiu.gep = getelementptr inbounds [75 x i1], ptr @__sx_type_is_unsigned, i64 0, i64 %refl.tid
%tiu.load = load i1, ptr %tiu.gep, align 1
br i1 %tiu.load, label %if.then.63, label %if.else.64
@@ -1287,8 +1290,11 @@ match.arm.60: ; No predecessors!
match.arm.61: ; preds = %entry
%loadN = load { i64, i64 }, ptr %alloca, align 8
%tn.tid = extractvalue { i64, i64 } %loadN, 1
%tn.gep = getelementptr inbounds [75 x { ptr, i64 }], ptr @__sx_type_names, i64 0, i64 %tn.tid
%refl.tag37 = extractvalue { i64, i64 } %loadN, 0
%refl.val38 = extractvalue { i64, i64 } %loadN, 1
%refl.istype39 = icmp eq i64 %refl.tag37, 13
%refl.tid40 = select i1 %refl.istype39, i64 %refl.val38, i64 %refl.tag37
%tn.gep = getelementptr inbounds [75 x { ptr, i64 }], ptr @__sx_type_names, i64 0, i64 %refl.tid40
%tn.load = load { ptr, i64 }, ptr %tn.gep, align 8
store { ptr, i64 } %tn.load, ptr %allocaN, align 8
br label %match.merge.47
@@ -1298,15 +1304,15 @@ match.unr.62: ; preds = %entry
if.then.63: ; preds = %match.arm.49
%loadN = load { i64, i64 }, ptr %alloca, align 8
%ua.raw38 = extractvalue { i64, i64 } %loadN, 1
%callN = call { ptr, i64 } @uint_to_string(ptr %0, i64 %ua.raw38)
%ua.raw42 = extractvalue { i64, i64 } %loadN, 1
%callN = call { ptr, i64 } @uint_to_string(ptr %0, i64 %ua.raw42)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %if.merge.65
if.else.64: ; preds = %match.arm.49
%loadN = load { i64, i64 }, ptr %alloca, align 8
%ua.raw41 = extractvalue { i64, i64 } %loadN, 1
%callN = call { ptr, i64 } @int_to_string(ptr %0, i64 %ua.raw41)
%ua.raw45 = extractvalue { i64, i64 } %loadN, 1
%callN = call { ptr, i64 } @int_to_string(ptr %0, i64 %ua.raw45)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %if.merge.65
@@ -1314,16 +1320,16 @@ if.merge.65: ; preds = %if.else.64, %if.the
br label %match.merge.47
f32.unbox.91: ; preds = %match.arm.52
%ua.raw43 = extractvalue { i64, i64 } %loadN, 1
%trN = trunc i64 %ua.raw43 to i32
%ua.raw47 = extractvalue { i64, i64 } %loadN, 1
%trN = trunc i64 %ua.raw47 to i32
%iNf = bitcast i32 %trN to float
%fpext = fpext float %iNf to double
store double %fpext, ptr %allocaN, align 8
br label %float.merge.93
f64.unbox.92: ; preds = %match.arm.52
%ua.raw44 = extractvalue { i64, i64 } %loadN, 1
%iNd = bitcast i64 %ua.raw44 to double
%ua.raw48 = extractvalue { i64, i64 } %loadN, 1
%iNd = bitcast i64 %ua.raw48 to double
store double %iNd, ptr %allocaN, align 8
br label %float.merge.93
@@ -1343,74 +1349,74 @@ dispatch.default.105: ; preds = %match.arm.53
br label %dispatch.merge.104
dispatch.case.106: ; preds = %match.arm.53
%ua.raw48 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr49 = inttoptr i64 %ua.raw48 to ptr
%ua.load50 = load { { ptr, i64 }, i32, i32, { ptr, i64 } }, ptr %ua.ptr49, align 8
%callN = call { ptr, i64 } @struct_to_string__Source_Location(ptr %0, { { ptr, i64 }, i32, i32, { ptr, i64 } } %ua.load50)
%ua.raw52 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr53 = inttoptr i64 %ua.raw52 to ptr
%ua.load54 = load { { ptr, i64 }, i32, i32, { ptr, i64 } }, ptr %ua.ptr53, align 8
%callN = call { ptr, i64 } @struct_to_string__Source_Location(ptr %0, { { ptr, i64 }, i32, i32, { ptr, i64 } } %ua.load54)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.104
dispatch.case.107: ; preds = %match.arm.53
%ua.raw52 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr53 = inttoptr i64 %ua.raw52 to ptr
%ua.load54 = load { ptr, ptr, ptr }, ptr %ua.ptr53, align 8
%callN = call { ptr, i64 } @struct_to_string__Allocator(ptr %0, { ptr, ptr, ptr } %ua.load54)
%ua.raw56 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr57 = inttoptr i64 %ua.raw56 to ptr
%ua.load58 = load { ptr, ptr, ptr }, ptr %ua.ptr57, align 8
%callN = call { ptr, i64 } @struct_to_string__Allocator(ptr %0, { ptr, ptr, ptr } %ua.load58)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.104
dispatch.case.108: ; preds = %match.arm.53
%ua.raw56 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr57 = inttoptr i64 %ua.raw56 to ptr
%ua.load58 = load {}, ptr %ua.ptr57, align 1
%callN = call { ptr, i64 } @struct_to_string__CAllocator(ptr %0, {} %ua.load58)
%ua.raw60 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr61 = inttoptr i64 %ua.raw60 to ptr
%ua.load62 = load {}, ptr %ua.ptr61, align 1
%callN = call { ptr, i64 } @struct_to_string__CAllocator(ptr %0, {} %ua.load62)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.104
dispatch.case.109: ; preds = %match.arm.53
%ua.raw60 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr61 = inttoptr i64 %ua.raw60 to ptr
%ua.load62 = load { i64 }, ptr %ua.ptr61, align 8
%callN = call { ptr, i64 } @struct_to_string__GPA(ptr %0, { i64 } %ua.load62)
%ua.raw64 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr65 = inttoptr i64 %ua.raw64 to ptr
%ua.load66 = load { i64 }, ptr %ua.ptr65, align 8
%callN = call { ptr, i64 } @struct_to_string__GPA(ptr %0, { i64 } %ua.load66)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.104
dispatch.case.110: ; preds = %match.arm.53
%ua.raw64 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr65 = inttoptr i64 %ua.raw64 to ptr
%ua.load66 = load { ptr, i64 }, ptr %ua.ptr65, align 8
%callN = call { ptr, i64 } @struct_to_string__ArenaChunk(ptr %0, { ptr, i64 } %ua.load66)
%ua.raw68 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr69 = inttoptr i64 %ua.raw68 to ptr
%ua.load70 = load { ptr, i64 }, ptr %ua.ptr69, align 8
%callN = call { ptr, i64 } @struct_to_string__ArenaChunk(ptr %0, { ptr, i64 } %ua.load70)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.104
dispatch.case.111: ; preds = %match.arm.53
%ua.raw68 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr69 = inttoptr i64 %ua.raw68 to ptr
%ua.load70 = load { ptr, i64, { ptr, ptr, ptr } }, ptr %ua.ptr69, align 8
%callN = call { ptr, i64 } @struct_to_string__Arena(ptr %0, { ptr, i64, { ptr, ptr, ptr } } %ua.load70)
%ua.raw72 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr73 = inttoptr i64 %ua.raw72 to ptr
%ua.load74 = load { ptr, i64, { ptr, ptr, ptr } }, ptr %ua.ptr73, align 8
%callN = call { ptr, i64 } @struct_to_string__Arena(ptr %0, { ptr, i64, { ptr, ptr, ptr } } %ua.load74)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.104
dispatch.case.112: ; preds = %match.arm.53
%ua.raw72 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr73 = inttoptr i64 %ua.raw72 to ptr
%ua.load74 = load { ptr, i64, i64 }, ptr %ua.ptr73, align 8
%callN = call { ptr, i64 } @struct_to_string__BufAlloc(ptr %0, { ptr, i64, i64 } %ua.load74)
%ua.raw76 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr77 = inttoptr i64 %ua.raw76 to ptr
%ua.load78 = load { ptr, i64, i64 }, ptr %ua.ptr77, align 8
%callN = call { ptr, i64 } @struct_to_string__BufAlloc(ptr %0, { ptr, i64, i64 } %ua.load78)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.104
dispatch.case.113: ; preds = %match.arm.53
%ua.raw76 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr77 = inttoptr i64 %ua.raw76 to ptr
%ua.load78 = load { { ptr, ptr, ptr }, i64, i64, i64 }, ptr %ua.ptr77, align 8
%callN = call { ptr, i64 } @struct_to_string__TrackingAllocator(ptr %0, { { ptr, ptr, ptr }, i64, i64, i64 } %ua.load78)
%ua.raw80 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr81 = inttoptr i64 %ua.raw80 to ptr
%ua.load82 = load { { ptr, ptr, ptr }, i64, i64, i64 }, ptr %ua.ptr81, align 8
%callN = call { ptr, i64 } @struct_to_string__TrackingAllocator(ptr %0, { { ptr, ptr, ptr }, i64, i64, i64 } %ua.load82)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.104
dispatch.case.114: ; preds = %match.arm.53
%ua.raw80 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr81 = inttoptr i64 %ua.raw80 to ptr
%ua.load82 = load { { ptr, ptr, ptr }, ptr }, ptr %ua.ptr81, align 8
%callN = call { ptr, i64 } @struct_to_string__Context(ptr %0, { { ptr, ptr, ptr }, ptr } %ua.load82)
%ua.raw84 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr85 = inttoptr i64 %ua.raw84 to ptr
%ua.load86 = load { { ptr, ptr, ptr }, ptr }, ptr %ua.ptr85, align 8
%callN = call { ptr, i64 } @struct_to_string__Context(ptr %0, { { ptr, ptr, ptr }, ptr } %ua.load86)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.104
@@ -1424,18 +1430,18 @@ dispatch.default.161: ; preds = %match.arm.57
br label %dispatch.merge.160
dispatch.case.162: ; preds = %match.arm.57
%ua.raw85 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr86 = inttoptr i64 %ua.raw85 to ptr
%ua.load87 = load [4 x i64], ptr %ua.ptr86, align 8
%callN = call { ptr, i64 } @array_to_string__AR_4_s64(ptr %0, [4 x i64] %ua.load87)
%ua.raw89 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr90 = inttoptr i64 %ua.raw89 to ptr
%ua.load91 = load [4 x i64], ptr %ua.ptr90, align 8
%callN = call { ptr, i64 } @array_to_string__AR_4_s64(ptr %0, [4 x i64] %ua.load91)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.160
dispatch.case.163: ; preds = %match.arm.57
%ua.raw89 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr90 = inttoptr i64 %ua.raw89 to ptr
%ua.load91 = load [1 x { i64, i64 }], ptr %ua.ptr90, align 8
%callN = call { ptr, i64 } @array_to_string__AR_1_Any(ptr %0, [1 x { i64, i64 }] %ua.load91)
%ua.raw93 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr94 = inttoptr i64 %ua.raw93 to ptr
%ua.load95 = load [1 x { i64, i64 }], ptr %ua.ptr94, align 8
%callN = call { ptr, i64 } @array_to_string__AR_1_Any(ptr %0, [1 x { i64, i64 }] %ua.load95)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.160
@@ -1449,18 +1455,18 @@ dispatch.default.175: ; preds = %match.arm.58
br label %dispatch.merge.174
dispatch.case.176: ; preds = %match.arm.58
%ua.raw94 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr95 = inttoptr i64 %ua.raw94 to ptr
%ua.load96 = load { ptr, i64 }, ptr %ua.ptr95, align 8
%callN = call { ptr, i64 } @slice_to_string__string(ptr %0, { ptr, i64 } %ua.load96)
%ua.raw98 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr99 = inttoptr i64 %ua.raw98 to ptr
%ua.load100 = load { ptr, i64 }, ptr %ua.ptr99, align 8
%callN = call { ptr, i64 } @slice_to_string__string(ptr %0, { ptr, i64 } %ua.load100)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.174
dispatch.case.177: ; preds = %match.arm.58
%ua.raw98 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr99 = inttoptr i64 %ua.raw98 to ptr
%ua.load100 = load { ptr, i64 }, ptr %ua.ptr99, align 8
%callN = call { ptr, i64 } @slice_to_string__Any(ptr %0, { ptr, i64 } %ua.load100)
%ua.raw102 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr103 = inttoptr i64 %ua.raw102 to ptr
%ua.load104 = load { ptr, i64 }, ptr %ua.ptr103, align 8
%callN = call { ptr, i64 } @slice_to_string__Any(ptr %0, { ptr, i64 } %ua.load104)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.174
@@ -1474,135 +1480,135 @@ dispatch.default.189: ; preds = %match.arm.59
br label %dispatch.merge.188
dispatch.case.190: ; preds = %match.arm.59
%ua.raw103 = extractvalue { i64, i64 } %loadN, 1
%iNp = inttoptr i64 %ua.raw103 to ptr
%ua.raw107 = extractvalue { i64, i64 } %loadN, 1
%iNp = inttoptr i64 %ua.raw107 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_void(ptr %0, ptr %iNp)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.188
dispatch.case.191: ; preds = %match.arm.59
%ua.raw105 = extractvalue { i64, i64 } %loadN, 1
%iNp106 = inttoptr i64 %ua.raw105 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_CAllocator(ptr %0, ptr %iNp106)
%ua.raw109 = extractvalue { i64, i64 } %loadN, 1
%iNp110 = inttoptr i64 %ua.raw109 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_CAllocator(ptr %0, ptr %iNp110)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.188
dispatch.case.192: ; preds = %match.arm.59
%ua.raw108 = extractvalue { i64, i64 } %loadN, 1
%iNp109 = inttoptr i64 %ua.raw108 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_GPA(ptr %0, ptr %iNp109)
%ua.raw112 = extractvalue { i64, i64 } %loadN, 1
%iNp113 = inttoptr i64 %ua.raw112 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_GPA(ptr %0, ptr %iNp113)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.188
dispatch.case.193: ; preds = %match.arm.59
%ua.raw111 = extractvalue { i64, i64 } %loadN, 1
%iNp112 = inttoptr i64 %ua.raw111 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_ArenaChunk(ptr %0, ptr %iNp112)
%ua.raw115 = extractvalue { i64, i64 } %loadN, 1
%iNp116 = inttoptr i64 %ua.raw115 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_ArenaChunk(ptr %0, ptr %iNp116)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.188
dispatch.case.194: ; preds = %match.arm.59
%ua.raw114 = extractvalue { i64, i64 } %loadN, 1
%iNp115 = inttoptr i64 %ua.raw114 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_Arena(ptr %0, ptr %iNp115)
%ua.raw118 = extractvalue { i64, i64 } %loadN, 1
%iNp119 = inttoptr i64 %ua.raw118 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_Arena(ptr %0, ptr %iNp119)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.188
dispatch.case.195: ; preds = %match.arm.59
%ua.raw117 = extractvalue { i64, i64 } %loadN, 1
%iNp118 = inttoptr i64 %ua.raw117 to ptr
%callN = call { ptr, i64 } @pointer_to_string__mptr_u8(ptr %0, ptr %iNp118)
%ua.raw121 = extractvalue { i64, i64 } %loadN, 1
%iNp122 = inttoptr i64 %ua.raw121 to ptr
%callN = call { ptr, i64 } @pointer_to_string__mptr_u8(ptr %0, ptr %iNp122)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.188
dispatch.case.196: ; preds = %match.arm.59
%ua.raw120 = extractvalue { i64, i64 } %loadN, 1
%iNp121 = inttoptr i64 %ua.raw120 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_BufAlloc(ptr %0, ptr %iNp121)
%ua.raw124 = extractvalue { i64, i64 } %loadN, 1
%iNp125 = inttoptr i64 %ua.raw124 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_BufAlloc(ptr %0, ptr %iNp125)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.188
dispatch.case.197: ; preds = %match.arm.59
%ua.raw123 = extractvalue { i64, i64 } %loadN, 1
%iNp124 = inttoptr i64 %ua.raw123 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_TrackingAllocator(ptr %0, ptr %iNp124)
%ua.raw127 = extractvalue { i64, i64 } %loadN, 1
%iNp128 = inttoptr i64 %ua.raw127 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_TrackingAllocator(ptr %0, ptr %iNp128)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.188
dispatch.case.198: ; preds = %match.arm.59
%ua.raw126 = extractvalue { i64, i64 } %loadN, 1
%iNp127 = inttoptr i64 %ua.raw126 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_ptr_CAllocator(ptr %0, ptr %iNp127)
%ua.raw130 = extractvalue { i64, i64 } %loadN, 1
%iNp131 = inttoptr i64 %ua.raw130 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_ptr_CAllocator(ptr %0, ptr %iNp131)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.188
dispatch.case.199: ; preds = %match.arm.59
%ua.raw129 = extractvalue { i64, i64 } %loadN, 1
%iNp130 = inttoptr i64 %ua.raw129 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_s64(ptr %0, ptr %iNp130)
%ua.raw133 = extractvalue { i64, i64 } %loadN, 1
%iNp134 = inttoptr i64 %ua.raw133 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_s64(ptr %0, ptr %iNp134)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.188
dispatch.case.200: ; preds = %match.arm.59
%ua.raw132 = extractvalue { i64, i64 } %loadN, 1
%iNp133 = inttoptr i64 %ua.raw132 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_ptr_void(ptr %0, ptr %iNp133)
%ua.raw136 = extractvalue { i64, i64 } %loadN, 1
%iNp137 = inttoptr i64 %ua.raw136 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_ptr_void(ptr %0, ptr %iNp137)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.188
dispatch.case.201: ; preds = %match.arm.59
%ua.raw135 = extractvalue { i64, i64 } %loadN, 1
%iNp136 = inttoptr i64 %ua.raw135 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_s32(ptr %0, ptr %iNp136)
%ua.raw139 = extractvalue { i64, i64 } %loadN, 1
%iNp140 = inttoptr i64 %ua.raw139 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_s32(ptr %0, ptr %iNp140)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.188
dispatch.case.202: ; preds = %match.arm.59
%ua.raw138 = extractvalue { i64, i64 } %loadN, 1
%iNp139 = inttoptr i64 %ua.raw138 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_error_set(ptr %0, ptr %iNp139)
%ua.raw142 = extractvalue { i64, i64 } %loadN, 1
%iNp143 = inttoptr i64 %ua.raw142 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_error_set(ptr %0, ptr %iNp143)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.188
dispatch.case.203: ; preds = %match.arm.59
%ua.raw141 = extractvalue { i64, i64 } %loadN, 1
%iNp142 = inttoptr i64 %ua.raw141 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_string(ptr %0, ptr %iNp142)
%ua.raw145 = extractvalue { i64, i64 } %loadN, 1
%iNp146 = inttoptr i64 %ua.raw145 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_string(ptr %0, ptr %iNp146)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.188
dispatch.case.204: ; preds = %match.arm.59
%ua.raw144 = extractvalue { i64, i64 } %loadN, 1
%iNp145 = inttoptr i64 %ua.raw144 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_Any(ptr %0, ptr %iNp145)
%ua.raw148 = extractvalue { i64, i64 } %loadN, 1
%iNp149 = inttoptr i64 %ua.raw148 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_Any(ptr %0, ptr %iNp149)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.188
dispatch.case.205: ; preds = %match.arm.59
%ua.raw147 = extractvalue { i64, i64 } %loadN, 1
%iNp148 = inttoptr i64 %ua.raw147 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_AR_1_Any(ptr %0, ptr %iNp148)
%ua.raw151 = extractvalue { i64, i64 } %loadN, 1
%iNp152 = inttoptr i64 %ua.raw151 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_AR_1_Any(ptr %0, ptr %iNp152)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.188
dispatch.case.206: ; preds = %match.arm.59
%ua.raw150 = extractvalue { i64, i64 } %loadN, 1
%iNp151 = inttoptr i64 %ua.raw150 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_SL_Any(ptr %0, ptr %iNp151)
%ua.raw154 = extractvalue { i64, i64 } %loadN, 1
%iNp155 = inttoptr i64 %ua.raw154 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_SL_Any(ptr %0, ptr %iNp155)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.188
dispatch.case.207: ; preds = %match.arm.59
%ua.raw153 = extractvalue { i64, i64 } %loadN, 1
%iNp154 = inttoptr i64 %ua.raw153 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_u8(ptr %0, ptr %iNp154)
%ua.raw157 = extractvalue { i64, i64 } %loadN, 1
%iNp158 = inttoptr i64 %ua.raw157 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_u8(ptr %0, ptr %iNp158)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.188
dispatch.case.208: ; preds = %match.arm.59
%ua.raw156 = extractvalue { i64, i64 } %loadN, 1
%iNp157 = inttoptr i64 %ua.raw156 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_bool(ptr %0, ptr %iNp157)
%ua.raw160 = extractvalue { i64, i64 } %loadN, 1
%iNp161 = inttoptr i64 %ua.raw160 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_bool(ptr %0, ptr %iNp161)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.188
}

View File

@@ -1175,8 +1175,11 @@ match.arm.50: ; preds = %entry
match.arm.51: ; preds = %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry
%loadN = load { i64, i64 }, ptr %allocaN, align 8
%tiu.tid = extractvalue { i64, i64 } %loadN, 1
%tiu.gep = getelementptr inbounds [76 x i1], ptr @__sx_type_is_unsigned, i64 0, i64 %tiu.tid
%refl.tag = extractvalue { i64, i64 } %loadN, 0
%refl.val = extractvalue { i64, i64 } %loadN, 1
%refl.istype = icmp eq i64 %refl.tag, 13
%refl.tid = select i1 %refl.istype, i64 %refl.val, i64 %refl.tag
%tiu.gep = getelementptr inbounds [76 x i1], ptr @__sx_type_is_unsigned, i64 0, i64 %refl.tid
%tiu.load = load i1, ptr %tiu.gep, align 1
br i1 %tiu.load, label %if.then.65, label %if.else.66
@@ -1294,8 +1297,11 @@ match.arm.62: ; No predecessors!
match.arm.63: ; preds = %entry
%loadN = load { i64, i64 }, ptr %alloca, align 8
%tn.tid = extractvalue { i64, i64 } %loadN, 1
%tn.gep = getelementptr inbounds [76 x { ptr, i64 }], ptr @__sx_type_names, i64 0, i64 %tn.tid
%refl.tag37 = extractvalue { i64, i64 } %loadN, 0
%refl.val38 = extractvalue { i64, i64 } %loadN, 1
%refl.istype39 = icmp eq i64 %refl.tag37, 13
%refl.tid40 = select i1 %refl.istype39, i64 %refl.val38, i64 %refl.tag37
%tn.gep = getelementptr inbounds [76 x { ptr, i64 }], ptr @__sx_type_names, i64 0, i64 %refl.tid40
%tn.load = load { ptr, i64 }, ptr %tn.gep, align 8
store { ptr, i64 } %tn.load, ptr %allocaN, align 8
br label %match.merge.49
@@ -1305,15 +1311,15 @@ match.unr.64: ; preds = %entry
if.then.65: ; preds = %match.arm.51
%loadN = load { i64, i64 }, ptr %alloca, align 8
%ua.raw38 = extractvalue { i64, i64 } %loadN, 1
%callN = call { ptr, i64 } @uint_to_string(ptr %0, i64 %ua.raw38)
%ua.raw42 = extractvalue { i64, i64 } %loadN, 1
%callN = call { ptr, i64 } @uint_to_string(ptr %0, i64 %ua.raw42)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %if.merge.67
if.else.66: ; preds = %match.arm.51
%loadN = load { i64, i64 }, ptr %alloca, align 8
%ua.raw41 = extractvalue { i64, i64 } %loadN, 1
%callN = call { ptr, i64 } @int_to_string(ptr %0, i64 %ua.raw41)
%ua.raw45 = extractvalue { i64, i64 } %loadN, 1
%callN = call { ptr, i64 } @int_to_string(ptr %0, i64 %ua.raw45)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %if.merge.67
@@ -1321,16 +1327,16 @@ if.merge.67: ; preds = %if.else.66, %if.the
br label %match.merge.49
f32.unbox.93: ; preds = %match.arm.54
%ua.raw43 = extractvalue { i64, i64 } %loadN, 1
%trN = trunc i64 %ua.raw43 to i32
%ua.raw47 = extractvalue { i64, i64 } %loadN, 1
%trN = trunc i64 %ua.raw47 to i32
%iNf = bitcast i32 %trN to float
%fpext = fpext float %iNf to double
store double %fpext, ptr %allocaN, align 8
br label %float.merge.95
f64.unbox.94: ; preds = %match.arm.54
%ua.raw44 = extractvalue { i64, i64 } %loadN, 1
%iNd = bitcast i64 %ua.raw44 to double
%ua.raw48 = extractvalue { i64, i64 } %loadN, 1
%iNd = bitcast i64 %ua.raw48 to double
store double %iNd, ptr %allocaN, align 8
br label %float.merge.95
@@ -1350,74 +1356,74 @@ dispatch.default.107: ; preds = %match.arm.55
br label %dispatch.merge.106
dispatch.case.108: ; preds = %match.arm.55
%ua.raw48 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr49 = inttoptr i64 %ua.raw48 to ptr
%ua.load50 = load { { ptr, i64 }, i32, i32, { ptr, i64 } }, ptr %ua.ptr49, align 8
%callN = call { ptr, i64 } @struct_to_string__Source_Location(ptr %0, { { ptr, i64 }, i32, i32, { ptr, i64 } } %ua.load50)
%ua.raw52 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr53 = inttoptr i64 %ua.raw52 to ptr
%ua.load54 = load { { ptr, i64 }, i32, i32, { ptr, i64 } }, ptr %ua.ptr53, align 8
%callN = call { ptr, i64 } @struct_to_string__Source_Location(ptr %0, { { ptr, i64 }, i32, i32, { ptr, i64 } } %ua.load54)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.106
dispatch.case.109: ; preds = %match.arm.55
%ua.raw52 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr53 = inttoptr i64 %ua.raw52 to ptr
%ua.load54 = load { ptr, ptr, ptr }, ptr %ua.ptr53, align 8
%callN = call { ptr, i64 } @struct_to_string__Allocator(ptr %0, { ptr, ptr, ptr } %ua.load54)
%ua.raw56 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr57 = inttoptr i64 %ua.raw56 to ptr
%ua.load58 = load { ptr, ptr, ptr }, ptr %ua.ptr57, align 8
%callN = call { ptr, i64 } @struct_to_string__Allocator(ptr %0, { ptr, ptr, ptr } %ua.load58)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.106
dispatch.case.110: ; preds = %match.arm.55
%ua.raw56 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr57 = inttoptr i64 %ua.raw56 to ptr
%ua.load58 = load {}, ptr %ua.ptr57, align 1
%callN = call { ptr, i64 } @struct_to_string__CAllocator(ptr %0, {} %ua.load58)
%ua.raw60 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr61 = inttoptr i64 %ua.raw60 to ptr
%ua.load62 = load {}, ptr %ua.ptr61, align 1
%callN = call { ptr, i64 } @struct_to_string__CAllocator(ptr %0, {} %ua.load62)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.106
dispatch.case.111: ; preds = %match.arm.55
%ua.raw60 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr61 = inttoptr i64 %ua.raw60 to ptr
%ua.load62 = load { i64 }, ptr %ua.ptr61, align 8
%callN = call { ptr, i64 } @struct_to_string__GPA(ptr %0, { i64 } %ua.load62)
%ua.raw64 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr65 = inttoptr i64 %ua.raw64 to ptr
%ua.load66 = load { i64 }, ptr %ua.ptr65, align 8
%callN = call { ptr, i64 } @struct_to_string__GPA(ptr %0, { i64 } %ua.load66)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.106
dispatch.case.112: ; preds = %match.arm.55
%ua.raw64 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr65 = inttoptr i64 %ua.raw64 to ptr
%ua.load66 = load { ptr, i64 }, ptr %ua.ptr65, align 8
%callN = call { ptr, i64 } @struct_to_string__ArenaChunk(ptr %0, { ptr, i64 } %ua.load66)
%ua.raw68 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr69 = inttoptr i64 %ua.raw68 to ptr
%ua.load70 = load { ptr, i64 }, ptr %ua.ptr69, align 8
%callN = call { ptr, i64 } @struct_to_string__ArenaChunk(ptr %0, { ptr, i64 } %ua.load70)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.106
dispatch.case.113: ; preds = %match.arm.55
%ua.raw68 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr69 = inttoptr i64 %ua.raw68 to ptr
%ua.load70 = load { ptr, i64, { ptr, ptr, ptr } }, ptr %ua.ptr69, align 8
%callN = call { ptr, i64 } @struct_to_string__Arena(ptr %0, { ptr, i64, { ptr, ptr, ptr } } %ua.load70)
%ua.raw72 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr73 = inttoptr i64 %ua.raw72 to ptr
%ua.load74 = load { ptr, i64, { ptr, ptr, ptr } }, ptr %ua.ptr73, align 8
%callN = call { ptr, i64 } @struct_to_string__Arena(ptr %0, { ptr, i64, { ptr, ptr, ptr } } %ua.load74)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.106
dispatch.case.114: ; preds = %match.arm.55
%ua.raw72 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr73 = inttoptr i64 %ua.raw72 to ptr
%ua.load74 = load { ptr, i64, i64 }, ptr %ua.ptr73, align 8
%callN = call { ptr, i64 } @struct_to_string__BufAlloc(ptr %0, { ptr, i64, i64 } %ua.load74)
%ua.raw76 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr77 = inttoptr i64 %ua.raw76 to ptr
%ua.load78 = load { ptr, i64, i64 }, ptr %ua.ptr77, align 8
%callN = call { ptr, i64 } @struct_to_string__BufAlloc(ptr %0, { ptr, i64, i64 } %ua.load78)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.106
dispatch.case.115: ; preds = %match.arm.55
%ua.raw76 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr77 = inttoptr i64 %ua.raw76 to ptr
%ua.load78 = load { { ptr, ptr, ptr }, i64, i64, i64 }, ptr %ua.ptr77, align 8
%callN = call { ptr, i64 } @struct_to_string__TrackingAllocator(ptr %0, { { ptr, ptr, ptr }, i64, i64, i64 } %ua.load78)
%ua.raw80 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr81 = inttoptr i64 %ua.raw80 to ptr
%ua.load82 = load { { ptr, ptr, ptr }, i64, i64, i64 }, ptr %ua.ptr81, align 8
%callN = call { ptr, i64 } @struct_to_string__TrackingAllocator(ptr %0, { { ptr, ptr, ptr }, i64, i64, i64 } %ua.load82)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.106
dispatch.case.116: ; preds = %match.arm.55
%ua.raw80 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr81 = inttoptr i64 %ua.raw80 to ptr
%ua.load82 = load { { ptr, ptr, ptr }, ptr }, ptr %ua.ptr81, align 8
%callN = call { ptr, i64 } @struct_to_string__Context(ptr %0, { { ptr, ptr, ptr }, ptr } %ua.load82)
%ua.raw84 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr85 = inttoptr i64 %ua.raw84 to ptr
%ua.load86 = load { { ptr, ptr, ptr }, ptr }, ptr %ua.ptr85, align 8
%callN = call { ptr, i64 } @struct_to_string__Context(ptr %0, { { ptr, ptr, ptr }, ptr } %ua.load86)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.106
@@ -1431,18 +1437,18 @@ dispatch.default.163: ; preds = %match.arm.59
br label %dispatch.merge.162
dispatch.case.164: ; preds = %match.arm.59
%ua.raw85 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr86 = inttoptr i64 %ua.raw85 to ptr
%ua.load87 = load [4 x i64], ptr %ua.ptr86, align 8
%callN = call { ptr, i64 } @array_to_string__AR_4_s64(ptr %0, [4 x i64] %ua.load87)
%ua.raw89 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr90 = inttoptr i64 %ua.raw89 to ptr
%ua.load91 = load [4 x i64], ptr %ua.ptr90, align 8
%callN = call { ptr, i64 } @array_to_string__AR_4_s64(ptr %0, [4 x i64] %ua.load91)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.162
dispatch.case.165: ; preds = %match.arm.59
%ua.raw89 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr90 = inttoptr i64 %ua.raw89 to ptr
%ua.load91 = load [1 x { i64, i64 }], ptr %ua.ptr90, align 8
%callN = call { ptr, i64 } @array_to_string__AR_1_Any(ptr %0, [1 x { i64, i64 }] %ua.load91)
%ua.raw93 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr94 = inttoptr i64 %ua.raw93 to ptr
%ua.load95 = load [1 x { i64, i64 }], ptr %ua.ptr94, align 8
%callN = call { ptr, i64 } @array_to_string__AR_1_Any(ptr %0, [1 x { i64, i64 }] %ua.load95)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.162
@@ -1456,18 +1462,18 @@ dispatch.default.177: ; preds = %match.arm.60
br label %dispatch.merge.176
dispatch.case.178: ; preds = %match.arm.60
%ua.raw94 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr95 = inttoptr i64 %ua.raw94 to ptr
%ua.load96 = load { ptr, i64 }, ptr %ua.ptr95, align 8
%callN = call { ptr, i64 } @slice_to_string__string(ptr %0, { ptr, i64 } %ua.load96)
%ua.raw98 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr99 = inttoptr i64 %ua.raw98 to ptr
%ua.load100 = load { ptr, i64 }, ptr %ua.ptr99, align 8
%callN = call { ptr, i64 } @slice_to_string__string(ptr %0, { ptr, i64 } %ua.load100)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.176
dispatch.case.179: ; preds = %match.arm.60
%ua.raw98 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr99 = inttoptr i64 %ua.raw98 to ptr
%ua.load100 = load { ptr, i64 }, ptr %ua.ptr99, align 8
%callN = call { ptr, i64 } @slice_to_string__Any(ptr %0, { ptr, i64 } %ua.load100)
%ua.raw102 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr103 = inttoptr i64 %ua.raw102 to ptr
%ua.load104 = load { ptr, i64 }, ptr %ua.ptr103, align 8
%callN = call { ptr, i64 } @slice_to_string__Any(ptr %0, { ptr, i64 } %ua.load104)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.176
@@ -1481,135 +1487,135 @@ dispatch.default.191: ; preds = %match.arm.61
br label %dispatch.merge.190
dispatch.case.192: ; preds = %match.arm.61
%ua.raw103 = extractvalue { i64, i64 } %loadN, 1
%iNp = inttoptr i64 %ua.raw103 to ptr
%ua.raw107 = extractvalue { i64, i64 } %loadN, 1
%iNp = inttoptr i64 %ua.raw107 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_void(ptr %0, ptr %iNp)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.190
dispatch.case.193: ; preds = %match.arm.61
%ua.raw105 = extractvalue { i64, i64 } %loadN, 1
%iNp106 = inttoptr i64 %ua.raw105 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_CAllocator(ptr %0, ptr %iNp106)
%ua.raw109 = extractvalue { i64, i64 } %loadN, 1
%iNp110 = inttoptr i64 %ua.raw109 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_CAllocator(ptr %0, ptr %iNp110)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.190
dispatch.case.194: ; preds = %match.arm.61
%ua.raw108 = extractvalue { i64, i64 } %loadN, 1
%iNp109 = inttoptr i64 %ua.raw108 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_GPA(ptr %0, ptr %iNp109)
%ua.raw112 = extractvalue { i64, i64 } %loadN, 1
%iNp113 = inttoptr i64 %ua.raw112 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_GPA(ptr %0, ptr %iNp113)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.190
dispatch.case.195: ; preds = %match.arm.61
%ua.raw111 = extractvalue { i64, i64 } %loadN, 1
%iNp112 = inttoptr i64 %ua.raw111 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_ArenaChunk(ptr %0, ptr %iNp112)
%ua.raw115 = extractvalue { i64, i64 } %loadN, 1
%iNp116 = inttoptr i64 %ua.raw115 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_ArenaChunk(ptr %0, ptr %iNp116)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.190
dispatch.case.196: ; preds = %match.arm.61
%ua.raw114 = extractvalue { i64, i64 } %loadN, 1
%iNp115 = inttoptr i64 %ua.raw114 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_Arena(ptr %0, ptr %iNp115)
%ua.raw118 = extractvalue { i64, i64 } %loadN, 1
%iNp119 = inttoptr i64 %ua.raw118 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_Arena(ptr %0, ptr %iNp119)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.190
dispatch.case.197: ; preds = %match.arm.61
%ua.raw117 = extractvalue { i64, i64 } %loadN, 1
%iNp118 = inttoptr i64 %ua.raw117 to ptr
%callN = call { ptr, i64 } @pointer_to_string__mptr_u8(ptr %0, ptr %iNp118)
%ua.raw121 = extractvalue { i64, i64 } %loadN, 1
%iNp122 = inttoptr i64 %ua.raw121 to ptr
%callN = call { ptr, i64 } @pointer_to_string__mptr_u8(ptr %0, ptr %iNp122)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.190
dispatch.case.198: ; preds = %match.arm.61
%ua.raw120 = extractvalue { i64, i64 } %loadN, 1
%iNp121 = inttoptr i64 %ua.raw120 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_BufAlloc(ptr %0, ptr %iNp121)
%ua.raw124 = extractvalue { i64, i64 } %loadN, 1
%iNp125 = inttoptr i64 %ua.raw124 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_BufAlloc(ptr %0, ptr %iNp125)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.190
dispatch.case.199: ; preds = %match.arm.61
%ua.raw123 = extractvalue { i64, i64 } %loadN, 1
%iNp124 = inttoptr i64 %ua.raw123 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_TrackingAllocator(ptr %0, ptr %iNp124)
%ua.raw127 = extractvalue { i64, i64 } %loadN, 1
%iNp128 = inttoptr i64 %ua.raw127 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_TrackingAllocator(ptr %0, ptr %iNp128)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.190
dispatch.case.200: ; preds = %match.arm.61
%ua.raw126 = extractvalue { i64, i64 } %loadN, 1
%iNp127 = inttoptr i64 %ua.raw126 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_ptr_CAllocator(ptr %0, ptr %iNp127)
%ua.raw130 = extractvalue { i64, i64 } %loadN, 1
%iNp131 = inttoptr i64 %ua.raw130 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_ptr_CAllocator(ptr %0, ptr %iNp131)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.190
dispatch.case.201: ; preds = %match.arm.61
%ua.raw129 = extractvalue { i64, i64 } %loadN, 1
%iNp130 = inttoptr i64 %ua.raw129 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_s64(ptr %0, ptr %iNp130)
%ua.raw133 = extractvalue { i64, i64 } %loadN, 1
%iNp134 = inttoptr i64 %ua.raw133 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_s64(ptr %0, ptr %iNp134)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.190
dispatch.case.202: ; preds = %match.arm.61
%ua.raw132 = extractvalue { i64, i64 } %loadN, 1
%iNp133 = inttoptr i64 %ua.raw132 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_ptr_void(ptr %0, ptr %iNp133)
%ua.raw136 = extractvalue { i64, i64 } %loadN, 1
%iNp137 = inttoptr i64 %ua.raw136 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_ptr_void(ptr %0, ptr %iNp137)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.190
dispatch.case.203: ; preds = %match.arm.61
%ua.raw135 = extractvalue { i64, i64 } %loadN, 1
%iNp136 = inttoptr i64 %ua.raw135 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_s32(ptr %0, ptr %iNp136)
%ua.raw139 = extractvalue { i64, i64 } %loadN, 1
%iNp140 = inttoptr i64 %ua.raw139 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_s32(ptr %0, ptr %iNp140)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.190
dispatch.case.204: ; preds = %match.arm.61
%ua.raw138 = extractvalue { i64, i64 } %loadN, 1
%iNp139 = inttoptr i64 %ua.raw138 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_error_set(ptr %0, ptr %iNp139)
%ua.raw142 = extractvalue { i64, i64 } %loadN, 1
%iNp143 = inttoptr i64 %ua.raw142 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_error_set(ptr %0, ptr %iNp143)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.190
dispatch.case.205: ; preds = %match.arm.61
%ua.raw141 = extractvalue { i64, i64 } %loadN, 1
%iNp142 = inttoptr i64 %ua.raw141 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_string(ptr %0, ptr %iNp142)
%ua.raw145 = extractvalue { i64, i64 } %loadN, 1
%iNp146 = inttoptr i64 %ua.raw145 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_string(ptr %0, ptr %iNp146)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.190
dispatch.case.206: ; preds = %match.arm.61
%ua.raw144 = extractvalue { i64, i64 } %loadN, 1
%iNp145 = inttoptr i64 %ua.raw144 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_Any(ptr %0, ptr %iNp145)
%ua.raw148 = extractvalue { i64, i64 } %loadN, 1
%iNp149 = inttoptr i64 %ua.raw148 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_Any(ptr %0, ptr %iNp149)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.190
dispatch.case.207: ; preds = %match.arm.61
%ua.raw147 = extractvalue { i64, i64 } %loadN, 1
%iNp148 = inttoptr i64 %ua.raw147 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_AR_1_Any(ptr %0, ptr %iNp148)
%ua.raw151 = extractvalue { i64, i64 } %loadN, 1
%iNp152 = inttoptr i64 %ua.raw151 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_AR_1_Any(ptr %0, ptr %iNp152)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.190
dispatch.case.208: ; preds = %match.arm.61
%ua.raw150 = extractvalue { i64, i64 } %loadN, 1
%iNp151 = inttoptr i64 %ua.raw150 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_SL_Any(ptr %0, ptr %iNp151)
%ua.raw154 = extractvalue { i64, i64 } %loadN, 1
%iNp155 = inttoptr i64 %ua.raw154 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_SL_Any(ptr %0, ptr %iNp155)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.190
dispatch.case.209: ; preds = %match.arm.61
%ua.raw153 = extractvalue { i64, i64 } %loadN, 1
%iNp154 = inttoptr i64 %ua.raw153 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_u8(ptr %0, ptr %iNp154)
%ua.raw157 = extractvalue { i64, i64 } %loadN, 1
%iNp158 = inttoptr i64 %ua.raw157 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_u8(ptr %0, ptr %iNp158)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.190
dispatch.case.210: ; preds = %match.arm.61
%ua.raw156 = extractvalue { i64, i64 } %loadN, 1
%iNp157 = inttoptr i64 %ua.raw156 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_bool(ptr %0, ptr %iNp157)
%ua.raw160 = extractvalue { i64, i64 } %loadN, 1
%iNp161 = inttoptr i64 %ua.raw160 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_bool(ptr %0, ptr %iNp161)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.190
}

View File

@@ -1170,8 +1170,11 @@ match.arm.68: ; preds = %entry
match.arm.69: ; preds = %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry
%loadN = load { i64, i64 }, ptr %allocaN, align 8
%tiu.tid = extractvalue { i64, i64 } %loadN, 1
%tiu.gep = getelementptr inbounds [75 x i1], ptr @__sx_type_is_unsigned, i64 0, i64 %tiu.tid
%refl.tag = extractvalue { i64, i64 } %loadN, 0
%refl.val = extractvalue { i64, i64 } %loadN, 1
%refl.istype = icmp eq i64 %refl.tag, 13
%refl.tid = select i1 %refl.istype, i64 %refl.val, i64 %refl.tag
%tiu.gep = getelementptr inbounds [75 x i1], ptr @__sx_type_is_unsigned, i64 0, i64 %refl.tid
%tiu.load = load i1, ptr %tiu.gep, align 1
br i1 %tiu.load, label %if.then.83, label %if.else.84
@@ -1289,8 +1292,11 @@ match.arm.80: ; No predecessors!
match.arm.81: ; preds = %entry
%loadN = load { i64, i64 }, ptr %alloca, align 8
%tn.tid = extractvalue { i64, i64 } %loadN, 1
%tn.gep = getelementptr inbounds [75 x { ptr, i64 }], ptr @__sx_type_names, i64 0, i64 %tn.tid
%refl.tag37 = extractvalue { i64, i64 } %loadN, 0
%refl.val38 = extractvalue { i64, i64 } %loadN, 1
%refl.istype39 = icmp eq i64 %refl.tag37, 13
%refl.tid40 = select i1 %refl.istype39, i64 %refl.val38, i64 %refl.tag37
%tn.gep = getelementptr inbounds [75 x { ptr, i64 }], ptr @__sx_type_names, i64 0, i64 %refl.tid40
%tn.load = load { ptr, i64 }, ptr %tn.gep, align 8
store { ptr, i64 } %tn.load, ptr %allocaN, align 8
br label %match.merge.67
@@ -1300,15 +1306,15 @@ match.unr.82: ; preds = %entry
if.then.83: ; preds = %match.arm.69
%loadN = load { i64, i64 }, ptr %alloca, align 8
%ua.raw38 = extractvalue { i64, i64 } %loadN, 1
%callN = call { ptr, i64 } @uint_to_string(ptr %0, i64 %ua.raw38)
%ua.raw42 = extractvalue { i64, i64 } %loadN, 1
%callN = call { ptr, i64 } @uint_to_string(ptr %0, i64 %ua.raw42)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %if.merge.85
if.else.84: ; preds = %match.arm.69
%loadN = load { i64, i64 }, ptr %alloca, align 8
%ua.raw41 = extractvalue { i64, i64 } %loadN, 1
%callN = call { ptr, i64 } @int_to_string(ptr %0, i64 %ua.raw41)
%ua.raw45 = extractvalue { i64, i64 } %loadN, 1
%callN = call { ptr, i64 } @int_to_string(ptr %0, i64 %ua.raw45)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %if.merge.85
@@ -1316,16 +1322,16 @@ if.merge.85: ; preds = %if.else.84, %if.the
br label %match.merge.67
f32.unbox.111: ; preds = %match.arm.72
%ua.raw43 = extractvalue { i64, i64 } %loadN, 1
%trN = trunc i64 %ua.raw43 to i32
%ua.raw47 = extractvalue { i64, i64 } %loadN, 1
%trN = trunc i64 %ua.raw47 to i32
%iNf = bitcast i32 %trN to float
%fpext = fpext float %iNf to double
store double %fpext, ptr %allocaN, align 8
br label %float.merge.113
f64.unbox.112: ; preds = %match.arm.72
%ua.raw44 = extractvalue { i64, i64 } %loadN, 1
%iNd = bitcast i64 %ua.raw44 to double
%ua.raw48 = extractvalue { i64, i64 } %loadN, 1
%iNd = bitcast i64 %ua.raw48 to double
store double %iNd, ptr %allocaN, align 8
br label %float.merge.113
@@ -1345,74 +1351,74 @@ dispatch.default.125: ; preds = %match.arm.73
br label %dispatch.merge.124
dispatch.case.126: ; preds = %match.arm.73
%ua.raw48 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr49 = inttoptr i64 %ua.raw48 to ptr
%ua.load50 = load { { ptr, i64 }, i32, i32, { ptr, i64 } }, ptr %ua.ptr49, align 8
%callN = call { ptr, i64 } @struct_to_string__Source_Location(ptr %0, { { ptr, i64 }, i32, i32, { ptr, i64 } } %ua.load50)
%ua.raw52 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr53 = inttoptr i64 %ua.raw52 to ptr
%ua.load54 = load { { ptr, i64 }, i32, i32, { ptr, i64 } }, ptr %ua.ptr53, align 8
%callN = call { ptr, i64 } @struct_to_string__Source_Location(ptr %0, { { ptr, i64 }, i32, i32, { ptr, i64 } } %ua.load54)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.124
dispatch.case.127: ; preds = %match.arm.73
%ua.raw52 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr53 = inttoptr i64 %ua.raw52 to ptr
%ua.load54 = load { ptr, ptr, ptr }, ptr %ua.ptr53, align 8
%callN = call { ptr, i64 } @struct_to_string__Allocator(ptr %0, { ptr, ptr, ptr } %ua.load54)
%ua.raw56 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr57 = inttoptr i64 %ua.raw56 to ptr
%ua.load58 = load { ptr, ptr, ptr }, ptr %ua.ptr57, align 8
%callN = call { ptr, i64 } @struct_to_string__Allocator(ptr %0, { ptr, ptr, ptr } %ua.load58)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.124
dispatch.case.128: ; preds = %match.arm.73
%ua.raw56 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr57 = inttoptr i64 %ua.raw56 to ptr
%ua.load58 = load {}, ptr %ua.ptr57, align 1
%callN = call { ptr, i64 } @struct_to_string__CAllocator(ptr %0, {} %ua.load58)
%ua.raw60 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr61 = inttoptr i64 %ua.raw60 to ptr
%ua.load62 = load {}, ptr %ua.ptr61, align 1
%callN = call { ptr, i64 } @struct_to_string__CAllocator(ptr %0, {} %ua.load62)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.124
dispatch.case.129: ; preds = %match.arm.73
%ua.raw60 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr61 = inttoptr i64 %ua.raw60 to ptr
%ua.load62 = load { i64 }, ptr %ua.ptr61, align 8
%callN = call { ptr, i64 } @struct_to_string__GPA(ptr %0, { i64 } %ua.load62)
%ua.raw64 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr65 = inttoptr i64 %ua.raw64 to ptr
%ua.load66 = load { i64 }, ptr %ua.ptr65, align 8
%callN = call { ptr, i64 } @struct_to_string__GPA(ptr %0, { i64 } %ua.load66)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.124
dispatch.case.130: ; preds = %match.arm.73
%ua.raw64 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr65 = inttoptr i64 %ua.raw64 to ptr
%ua.load66 = load { ptr, i64 }, ptr %ua.ptr65, align 8
%callN = call { ptr, i64 } @struct_to_string__ArenaChunk(ptr %0, { ptr, i64 } %ua.load66)
%ua.raw68 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr69 = inttoptr i64 %ua.raw68 to ptr
%ua.load70 = load { ptr, i64 }, ptr %ua.ptr69, align 8
%callN = call { ptr, i64 } @struct_to_string__ArenaChunk(ptr %0, { ptr, i64 } %ua.load70)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.124
dispatch.case.131: ; preds = %match.arm.73
%ua.raw68 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr69 = inttoptr i64 %ua.raw68 to ptr
%ua.load70 = load { ptr, i64, { ptr, ptr, ptr } }, ptr %ua.ptr69, align 8
%callN = call { ptr, i64 } @struct_to_string__Arena(ptr %0, { ptr, i64, { ptr, ptr, ptr } } %ua.load70)
%ua.raw72 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr73 = inttoptr i64 %ua.raw72 to ptr
%ua.load74 = load { ptr, i64, { ptr, ptr, ptr } }, ptr %ua.ptr73, align 8
%callN = call { ptr, i64 } @struct_to_string__Arena(ptr %0, { ptr, i64, { ptr, ptr, ptr } } %ua.load74)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.124
dispatch.case.132: ; preds = %match.arm.73
%ua.raw72 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr73 = inttoptr i64 %ua.raw72 to ptr
%ua.load74 = load { ptr, i64, i64 }, ptr %ua.ptr73, align 8
%callN = call { ptr, i64 } @struct_to_string__BufAlloc(ptr %0, { ptr, i64, i64 } %ua.load74)
%ua.raw76 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr77 = inttoptr i64 %ua.raw76 to ptr
%ua.load78 = load { ptr, i64, i64 }, ptr %ua.ptr77, align 8
%callN = call { ptr, i64 } @struct_to_string__BufAlloc(ptr %0, { ptr, i64, i64 } %ua.load78)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.124
dispatch.case.133: ; preds = %match.arm.73
%ua.raw76 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr77 = inttoptr i64 %ua.raw76 to ptr
%ua.load78 = load { { ptr, ptr, ptr }, i64, i64, i64 }, ptr %ua.ptr77, align 8
%callN = call { ptr, i64 } @struct_to_string__TrackingAllocator(ptr %0, { { ptr, ptr, ptr }, i64, i64, i64 } %ua.load78)
%ua.raw80 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr81 = inttoptr i64 %ua.raw80 to ptr
%ua.load82 = load { { ptr, ptr, ptr }, i64, i64, i64 }, ptr %ua.ptr81, align 8
%callN = call { ptr, i64 } @struct_to_string__TrackingAllocator(ptr %0, { { ptr, ptr, ptr }, i64, i64, i64 } %ua.load82)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.124
dispatch.case.134: ; preds = %match.arm.73
%ua.raw80 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr81 = inttoptr i64 %ua.raw80 to ptr
%ua.load82 = load { { ptr, ptr, ptr }, ptr }, ptr %ua.ptr81, align 8
%callN = call { ptr, i64 } @struct_to_string__Context(ptr %0, { { ptr, ptr, ptr }, ptr } %ua.load82)
%ua.raw84 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr85 = inttoptr i64 %ua.raw84 to ptr
%ua.load86 = load { { ptr, ptr, ptr }, ptr }, ptr %ua.ptr85, align 8
%callN = call { ptr, i64 } @struct_to_string__Context(ptr %0, { { ptr, ptr, ptr }, ptr } %ua.load86)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.124
@@ -1426,18 +1432,18 @@ dispatch.default.181: ; preds = %match.arm.77
br label %dispatch.merge.180
dispatch.case.182: ; preds = %match.arm.77
%ua.raw85 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr86 = inttoptr i64 %ua.raw85 to ptr
%ua.load87 = load [4 x i64], ptr %ua.ptr86, align 8
%callN = call { ptr, i64 } @array_to_string__AR_4_s64(ptr %0, [4 x i64] %ua.load87)
%ua.raw89 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr90 = inttoptr i64 %ua.raw89 to ptr
%ua.load91 = load [4 x i64], ptr %ua.ptr90, align 8
%callN = call { ptr, i64 } @array_to_string__AR_4_s64(ptr %0, [4 x i64] %ua.load91)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.180
dispatch.case.183: ; preds = %match.arm.77
%ua.raw89 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr90 = inttoptr i64 %ua.raw89 to ptr
%ua.load91 = load [1 x { i64, i64 }], ptr %ua.ptr90, align 8
%callN = call { ptr, i64 } @array_to_string__AR_1_Any(ptr %0, [1 x { i64, i64 }] %ua.load91)
%ua.raw93 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr94 = inttoptr i64 %ua.raw93 to ptr
%ua.load95 = load [1 x { i64, i64 }], ptr %ua.ptr94, align 8
%callN = call { ptr, i64 } @array_to_string__AR_1_Any(ptr %0, [1 x { i64, i64 }] %ua.load95)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.180
@@ -1451,18 +1457,18 @@ dispatch.default.195: ; preds = %match.arm.78
br label %dispatch.merge.194
dispatch.case.196: ; preds = %match.arm.78
%ua.raw94 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr95 = inttoptr i64 %ua.raw94 to ptr
%ua.load96 = load { ptr, i64 }, ptr %ua.ptr95, align 8
%callN = call { ptr, i64 } @slice_to_string__string(ptr %0, { ptr, i64 } %ua.load96)
%ua.raw98 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr99 = inttoptr i64 %ua.raw98 to ptr
%ua.load100 = load { ptr, i64 }, ptr %ua.ptr99, align 8
%callN = call { ptr, i64 } @slice_to_string__string(ptr %0, { ptr, i64 } %ua.load100)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.194
dispatch.case.197: ; preds = %match.arm.78
%ua.raw98 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr99 = inttoptr i64 %ua.raw98 to ptr
%ua.load100 = load { ptr, i64 }, ptr %ua.ptr99, align 8
%callN = call { ptr, i64 } @slice_to_string__Any(ptr %0, { ptr, i64 } %ua.load100)
%ua.raw102 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr103 = inttoptr i64 %ua.raw102 to ptr
%ua.load104 = load { ptr, i64 }, ptr %ua.ptr103, align 8
%callN = call { ptr, i64 } @slice_to_string__Any(ptr %0, { ptr, i64 } %ua.load104)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.194
@@ -1476,135 +1482,135 @@ dispatch.default.209: ; preds = %match.arm.79
br label %dispatch.merge.208
dispatch.case.210: ; preds = %match.arm.79
%ua.raw103 = extractvalue { i64, i64 } %loadN, 1
%iNp = inttoptr i64 %ua.raw103 to ptr
%ua.raw107 = extractvalue { i64, i64 } %loadN, 1
%iNp = inttoptr i64 %ua.raw107 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_void(ptr %0, ptr %iNp)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.208
dispatch.case.211: ; preds = %match.arm.79
%ua.raw105 = extractvalue { i64, i64 } %loadN, 1
%iNp106 = inttoptr i64 %ua.raw105 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_CAllocator(ptr %0, ptr %iNp106)
%ua.raw109 = extractvalue { i64, i64 } %loadN, 1
%iNp110 = inttoptr i64 %ua.raw109 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_CAllocator(ptr %0, ptr %iNp110)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.208
dispatch.case.212: ; preds = %match.arm.79
%ua.raw108 = extractvalue { i64, i64 } %loadN, 1
%iNp109 = inttoptr i64 %ua.raw108 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_GPA(ptr %0, ptr %iNp109)
%ua.raw112 = extractvalue { i64, i64 } %loadN, 1
%iNp113 = inttoptr i64 %ua.raw112 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_GPA(ptr %0, ptr %iNp113)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.208
dispatch.case.213: ; preds = %match.arm.79
%ua.raw111 = extractvalue { i64, i64 } %loadN, 1
%iNp112 = inttoptr i64 %ua.raw111 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_ArenaChunk(ptr %0, ptr %iNp112)
%ua.raw115 = extractvalue { i64, i64 } %loadN, 1
%iNp116 = inttoptr i64 %ua.raw115 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_ArenaChunk(ptr %0, ptr %iNp116)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.208
dispatch.case.214: ; preds = %match.arm.79
%ua.raw114 = extractvalue { i64, i64 } %loadN, 1
%iNp115 = inttoptr i64 %ua.raw114 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_Arena(ptr %0, ptr %iNp115)
%ua.raw118 = extractvalue { i64, i64 } %loadN, 1
%iNp119 = inttoptr i64 %ua.raw118 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_Arena(ptr %0, ptr %iNp119)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.208
dispatch.case.215: ; preds = %match.arm.79
%ua.raw117 = extractvalue { i64, i64 } %loadN, 1
%iNp118 = inttoptr i64 %ua.raw117 to ptr
%callN = call { ptr, i64 } @pointer_to_string__mptr_u8(ptr %0, ptr %iNp118)
%ua.raw121 = extractvalue { i64, i64 } %loadN, 1
%iNp122 = inttoptr i64 %ua.raw121 to ptr
%callN = call { ptr, i64 } @pointer_to_string__mptr_u8(ptr %0, ptr %iNp122)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.208
dispatch.case.216: ; preds = %match.arm.79
%ua.raw120 = extractvalue { i64, i64 } %loadN, 1
%iNp121 = inttoptr i64 %ua.raw120 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_BufAlloc(ptr %0, ptr %iNp121)
%ua.raw124 = extractvalue { i64, i64 } %loadN, 1
%iNp125 = inttoptr i64 %ua.raw124 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_BufAlloc(ptr %0, ptr %iNp125)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.208
dispatch.case.217: ; preds = %match.arm.79
%ua.raw123 = extractvalue { i64, i64 } %loadN, 1
%iNp124 = inttoptr i64 %ua.raw123 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_TrackingAllocator(ptr %0, ptr %iNp124)
%ua.raw127 = extractvalue { i64, i64 } %loadN, 1
%iNp128 = inttoptr i64 %ua.raw127 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_TrackingAllocator(ptr %0, ptr %iNp128)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.208
dispatch.case.218: ; preds = %match.arm.79
%ua.raw126 = extractvalue { i64, i64 } %loadN, 1
%iNp127 = inttoptr i64 %ua.raw126 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_ptr_CAllocator(ptr %0, ptr %iNp127)
%ua.raw130 = extractvalue { i64, i64 } %loadN, 1
%iNp131 = inttoptr i64 %ua.raw130 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_ptr_CAllocator(ptr %0, ptr %iNp131)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.208
dispatch.case.219: ; preds = %match.arm.79
%ua.raw129 = extractvalue { i64, i64 } %loadN, 1
%iNp130 = inttoptr i64 %ua.raw129 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_s64(ptr %0, ptr %iNp130)
%ua.raw133 = extractvalue { i64, i64 } %loadN, 1
%iNp134 = inttoptr i64 %ua.raw133 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_s64(ptr %0, ptr %iNp134)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.208
dispatch.case.220: ; preds = %match.arm.79
%ua.raw132 = extractvalue { i64, i64 } %loadN, 1
%iNp133 = inttoptr i64 %ua.raw132 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_ptr_void(ptr %0, ptr %iNp133)
%ua.raw136 = extractvalue { i64, i64 } %loadN, 1
%iNp137 = inttoptr i64 %ua.raw136 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_ptr_void(ptr %0, ptr %iNp137)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.208
dispatch.case.221: ; preds = %match.arm.79
%ua.raw135 = extractvalue { i64, i64 } %loadN, 1
%iNp136 = inttoptr i64 %ua.raw135 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_s32(ptr %0, ptr %iNp136)
%ua.raw139 = extractvalue { i64, i64 } %loadN, 1
%iNp140 = inttoptr i64 %ua.raw139 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_s32(ptr %0, ptr %iNp140)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.208
dispatch.case.222: ; preds = %match.arm.79
%ua.raw138 = extractvalue { i64, i64 } %loadN, 1
%iNp139 = inttoptr i64 %ua.raw138 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_error_set(ptr %0, ptr %iNp139)
%ua.raw142 = extractvalue { i64, i64 } %loadN, 1
%iNp143 = inttoptr i64 %ua.raw142 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_error_set(ptr %0, ptr %iNp143)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.208
dispatch.case.223: ; preds = %match.arm.79
%ua.raw141 = extractvalue { i64, i64 } %loadN, 1
%iNp142 = inttoptr i64 %ua.raw141 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_string(ptr %0, ptr %iNp142)
%ua.raw145 = extractvalue { i64, i64 } %loadN, 1
%iNp146 = inttoptr i64 %ua.raw145 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_string(ptr %0, ptr %iNp146)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.208
dispatch.case.224: ; preds = %match.arm.79
%ua.raw144 = extractvalue { i64, i64 } %loadN, 1
%iNp145 = inttoptr i64 %ua.raw144 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_Any(ptr %0, ptr %iNp145)
%ua.raw148 = extractvalue { i64, i64 } %loadN, 1
%iNp149 = inttoptr i64 %ua.raw148 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_Any(ptr %0, ptr %iNp149)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.208
dispatch.case.225: ; preds = %match.arm.79
%ua.raw147 = extractvalue { i64, i64 } %loadN, 1
%iNp148 = inttoptr i64 %ua.raw147 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_AR_1_Any(ptr %0, ptr %iNp148)
%ua.raw151 = extractvalue { i64, i64 } %loadN, 1
%iNp152 = inttoptr i64 %ua.raw151 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_AR_1_Any(ptr %0, ptr %iNp152)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.208
dispatch.case.226: ; preds = %match.arm.79
%ua.raw150 = extractvalue { i64, i64 } %loadN, 1
%iNp151 = inttoptr i64 %ua.raw150 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_SL_Any(ptr %0, ptr %iNp151)
%ua.raw154 = extractvalue { i64, i64 } %loadN, 1
%iNp155 = inttoptr i64 %ua.raw154 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_SL_Any(ptr %0, ptr %iNp155)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.208
dispatch.case.227: ; preds = %match.arm.79
%ua.raw153 = extractvalue { i64, i64 } %loadN, 1
%iNp154 = inttoptr i64 %ua.raw153 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_u8(ptr %0, ptr %iNp154)
%ua.raw157 = extractvalue { i64, i64 } %loadN, 1
%iNp158 = inttoptr i64 %ua.raw157 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_u8(ptr %0, ptr %iNp158)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.208
dispatch.case.228: ; preds = %match.arm.79
%ua.raw156 = extractvalue { i64, i64 } %loadN, 1
%iNp157 = inttoptr i64 %ua.raw156 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_bool(ptr %0, ptr %iNp157)
%ua.raw160 = extractvalue { i64, i64 } %loadN, 1
%iNp161 = inttoptr i64 %ua.raw160 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_bool(ptr %0, ptr %iNp161)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.208
}

View File

@@ -1296,8 +1296,11 @@ match.arm.46: ; preds = %entry
match.arm.47: ; preds = %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry
%loadN = load { i64, i64 }, ptr %allocaN, align 8
%tiu.tid = extractvalue { i64, i64 } %loadN, 1
%tiu.gep = getelementptr inbounds [94 x i1], ptr @__sx_type_is_unsigned, i64 0, i64 %tiu.tid
%refl.tag = extractvalue { i64, i64 } %loadN, 0
%refl.val = extractvalue { i64, i64 } %loadN, 1
%refl.istype = icmp eq i64 %refl.tag, 13
%refl.tid = select i1 %refl.istype, i64 %refl.val, i64 %refl.tag
%tiu.gep = getelementptr inbounds [94 x i1], ptr @__sx_type_is_unsigned, i64 0, i64 %refl.tid
%tiu.load = load i1, ptr %tiu.gep, align 1
br i1 %tiu.load, label %if.then.61, label %if.else.62
@@ -1420,8 +1423,11 @@ match.arm.58: ; No predecessors!
match.arm.59: ; preds = %entry
%loadN = load { i64, i64 }, ptr %alloca, align 8
%tn.tid = extractvalue { i64, i64 } %loadN, 1
%tn.gep = getelementptr inbounds [94 x { ptr, i64 }], ptr @__sx_type_names, i64 0, i64 %tn.tid
%refl.tag36 = extractvalue { i64, i64 } %loadN, 0
%refl.val37 = extractvalue { i64, i64 } %loadN, 1
%refl.istype38 = icmp eq i64 %refl.tag36, 13
%refl.tid39 = select i1 %refl.istype38, i64 %refl.val37, i64 %refl.tag36
%tn.gep = getelementptr inbounds [94 x { ptr, i64 }], ptr @__sx_type_names, i64 0, i64 %refl.tid39
%tn.load = load { ptr, i64 }, ptr %tn.gep, align 8
store { ptr, i64 } %tn.load, ptr %allocaN, align 8
br label %match.merge.45
@@ -1431,15 +1437,15 @@ match.unr.60: ; preds = %entry
if.then.61: ; preds = %match.arm.47
%loadN = load { i64, i64 }, ptr %alloca, align 8
%ua.raw37 = extractvalue { i64, i64 } %loadN, 1
%callN = call { ptr, i64 } @uint_to_string(ptr %0, i64 %ua.raw37)
%ua.raw41 = extractvalue { i64, i64 } %loadN, 1
%callN = call { ptr, i64 } @uint_to_string(ptr %0, i64 %ua.raw41)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %if.merge.63
if.else.62: ; preds = %match.arm.47
%loadN = load { i64, i64 }, ptr %alloca, align 8
%ua.raw40 = extractvalue { i64, i64 } %loadN, 1
%callN = call { ptr, i64 } @int_to_string(ptr %0, i64 %ua.raw40)
%ua.raw44 = extractvalue { i64, i64 } %loadN, 1
%callN = call { ptr, i64 } @int_to_string(ptr %0, i64 %ua.raw44)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %if.merge.63
@@ -1447,16 +1453,16 @@ if.merge.63: ; preds = %if.else.62, %if.the
br label %match.merge.45
f32.unbox.89: ; preds = %match.arm.50
%ua.raw42 = extractvalue { i64, i64 } %loadN, 1
%trN = trunc i64 %ua.raw42 to i32
%ua.raw46 = extractvalue { i64, i64 } %loadN, 1
%trN = trunc i64 %ua.raw46 to i32
%iNf = bitcast i32 %trN to float
%fpext = fpext float %iNf to double
store double %fpext, ptr %allocaN, align 8
br label %float.merge.91
f64.unbox.90: ; preds = %match.arm.50
%ua.raw43 = extractvalue { i64, i64 } %loadN, 1
%iNd = bitcast i64 %ua.raw43 to double
%ua.raw47 = extractvalue { i64, i64 } %loadN, 1
%iNd = bitcast i64 %ua.raw47 to double
store double %iNd, ptr %allocaN, align 8
br label %float.merge.91
@@ -1476,106 +1482,106 @@ dispatch.default.103: ; preds = %match.arm.51
br label %dispatch.merge.102
dispatch.case.104: ; preds = %match.arm.51
%ua.raw47 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr48 = inttoptr i64 %ua.raw47 to ptr
%ua.load49 = load { { ptr, i64 }, i32, i32, { ptr, i64 } }, ptr %ua.ptr48, align 8
%callN = call { ptr, i64 } @struct_to_string__Source_Location(ptr %0, { { ptr, i64 }, i32, i32, { ptr, i64 } } %ua.load49)
%ua.raw51 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr52 = inttoptr i64 %ua.raw51 to ptr
%ua.load53 = load { { ptr, i64 }, i32, i32, { ptr, i64 } }, ptr %ua.ptr52, align 8
%callN = call { ptr, i64 } @struct_to_string__Source_Location(ptr %0, { { ptr, i64 }, i32, i32, { ptr, i64 } } %ua.load53)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.102
dispatch.case.105: ; preds = %match.arm.51
%ua.raw51 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr52 = inttoptr i64 %ua.raw51 to ptr
%ua.load53 = load { ptr, ptr, ptr }, ptr %ua.ptr52, align 8
%callN = call { ptr, i64 } @struct_to_string__Allocator(ptr %0, { ptr, ptr, ptr } %ua.load53)
%ua.raw55 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr56 = inttoptr i64 %ua.raw55 to ptr
%ua.load57 = load { ptr, ptr, ptr }, ptr %ua.ptr56, align 8
%callN = call { ptr, i64 } @struct_to_string__Allocator(ptr %0, { ptr, ptr, ptr } %ua.load57)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.102
dispatch.case.106: ; preds = %match.arm.51
%ua.raw55 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr56 = inttoptr i64 %ua.raw55 to ptr
%ua.load57 = load {}, ptr %ua.ptr56, align 1
%callN = call { ptr, i64 } @struct_to_string__CAllocator(ptr %0, {} %ua.load57)
%ua.raw59 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr60 = inttoptr i64 %ua.raw59 to ptr
%ua.load61 = load {}, ptr %ua.ptr60, align 1
%callN = call { ptr, i64 } @struct_to_string__CAllocator(ptr %0, {} %ua.load61)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.102
dispatch.case.107: ; preds = %match.arm.51
%ua.raw59 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr60 = inttoptr i64 %ua.raw59 to ptr
%ua.load61 = load { i64 }, ptr %ua.ptr60, align 8
%callN = call { ptr, i64 } @struct_to_string__GPA(ptr %0, { i64 } %ua.load61)
%ua.raw63 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr64 = inttoptr i64 %ua.raw63 to ptr
%ua.load65 = load { i64 }, ptr %ua.ptr64, align 8
%callN = call { ptr, i64 } @struct_to_string__GPA(ptr %0, { i64 } %ua.load65)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.102
dispatch.case.108: ; preds = %match.arm.51
%ua.raw63 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr64 = inttoptr i64 %ua.raw63 to ptr
%ua.load65 = load { ptr, i64 }, ptr %ua.ptr64, align 8
%callN = call { ptr, i64 } @struct_to_string__ArenaChunk(ptr %0, { ptr, i64 } %ua.load65)
%ua.raw67 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr68 = inttoptr i64 %ua.raw67 to ptr
%ua.load69 = load { ptr, i64 }, ptr %ua.ptr68, align 8
%callN = call { ptr, i64 } @struct_to_string__ArenaChunk(ptr %0, { ptr, i64 } %ua.load69)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.102
dispatch.case.109: ; preds = %match.arm.51
%ua.raw67 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr68 = inttoptr i64 %ua.raw67 to ptr
%ua.load69 = load { ptr, i64, { ptr, ptr, ptr } }, ptr %ua.ptr68, align 8
%callN = call { ptr, i64 } @struct_to_string__Arena(ptr %0, { ptr, i64, { ptr, ptr, ptr } } %ua.load69)
%ua.raw71 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr72 = inttoptr i64 %ua.raw71 to ptr
%ua.load73 = load { ptr, i64, { ptr, ptr, ptr } }, ptr %ua.ptr72, align 8
%callN = call { ptr, i64 } @struct_to_string__Arena(ptr %0, { ptr, i64, { ptr, ptr, ptr } } %ua.load73)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.102
dispatch.case.110: ; preds = %match.arm.51
%ua.raw71 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr72 = inttoptr i64 %ua.raw71 to ptr
%ua.load73 = load { ptr, i64, i64 }, ptr %ua.ptr72, align 8
%callN = call { ptr, i64 } @struct_to_string__BufAlloc(ptr %0, { ptr, i64, i64 } %ua.load73)
%ua.raw75 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr76 = inttoptr i64 %ua.raw75 to ptr
%ua.load77 = load { ptr, i64, i64 }, ptr %ua.ptr76, align 8
%callN = call { ptr, i64 } @struct_to_string__BufAlloc(ptr %0, { ptr, i64, i64 } %ua.load77)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.102
dispatch.case.111: ; preds = %match.arm.51
%ua.raw75 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr76 = inttoptr i64 %ua.raw75 to ptr
%ua.load77 = load { { ptr, ptr, ptr }, i64, i64, i64 }, ptr %ua.ptr76, align 8
%callN = call { ptr, i64 } @struct_to_string__TrackingAllocator(ptr %0, { { ptr, ptr, ptr }, i64, i64, i64 } %ua.load77)
%ua.raw79 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr80 = inttoptr i64 %ua.raw79 to ptr
%ua.load81 = load { { ptr, ptr, ptr }, i64, i64, i64 }, ptr %ua.ptr80, align 8
%callN = call { ptr, i64 } @struct_to_string__TrackingAllocator(ptr %0, { { ptr, ptr, ptr }, i64, i64, i64 } %ua.load81)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.102
dispatch.case.112: ; preds = %match.arm.51
%ua.raw79 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr80 = inttoptr i64 %ua.raw79 to ptr
%ua.load81 = load { { ptr, ptr, ptr }, ptr }, ptr %ua.ptr80, align 8
%callN = call { ptr, i64 } @struct_to_string__Context(ptr %0, { { ptr, ptr, ptr }, ptr } %ua.load81)
%ua.raw83 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr84 = inttoptr i64 %ua.raw83 to ptr
%ua.load85 = load { { ptr, ptr, ptr }, ptr }, ptr %ua.ptr84, align 8
%callN = call { ptr, i64 } @struct_to_string__Context(ptr %0, { { ptr, ptr, ptr }, ptr } %ua.load85)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.102
dispatch.case.113: ; preds = %match.arm.51
%ua.raw83 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr84 = inttoptr i64 %ua.raw83 to ptr
%ua.load85 = load {}, ptr %ua.ptr84, align 1
%callN = call { ptr, i64 } @struct_to_string__BuildOptions(ptr %0, {} %ua.load85)
%ua.raw87 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr88 = inttoptr i64 %ua.raw87 to ptr
%ua.load89 = load {}, ptr %ua.ptr88, align 1
%callN = call { ptr, i64 } @struct_to_string__BuildOptions(ptr %0, {} %ua.load89)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.102
dispatch.case.114: ; preds = %match.arm.51
%ua.raw87 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr88 = inttoptr i64 %ua.raw87 to ptr
%ua.load89 = load {}, ptr %ua.ptr88, align 1
%callN = call { ptr, i64 } @struct_to_string__NSString(ptr %0, {} %ua.load89)
%ua.raw91 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr92 = inttoptr i64 %ua.raw91 to ptr
%ua.load93 = load {}, ptr %ua.ptr92, align 1
%callN = call { ptr, i64 } @struct_to_string__NSString(ptr %0, {} %ua.load93)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.102
dispatch.case.115: ; preds = %match.arm.51
%ua.raw91 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr92 = inttoptr i64 %ua.raw91 to ptr
%ua.load93 = load {}, ptr %ua.ptr92, align 1
%callN = call { ptr, i64 } @struct_to_string__SxBox(ptr %0, {} %ua.load93)
%ua.raw95 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr96 = inttoptr i64 %ua.raw95 to ptr
%ua.load97 = load {}, ptr %ua.ptr96, align 1
%callN = call { ptr, i64 } @struct_to_string__SxBox(ptr %0, {} %ua.load97)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.102
dispatch.case.116: ; preds = %match.arm.51
%ua.raw95 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr96 = inttoptr i64 %ua.raw95 to ptr
%ua.load97 = load { { ptr, ptr, ptr }, i32, i32, i32 }, ptr %ua.ptr96, align 8
%callN = call { ptr, i64 } @struct_to_string____SxBoxState(ptr %0, { { ptr, ptr, ptr }, i32, i32, i32 } %ua.load97)
%ua.raw99 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr100 = inttoptr i64 %ua.raw99 to ptr
%ua.load101 = load { { ptr, ptr, ptr }, i32, i32, i32 }, ptr %ua.ptr100, align 8
%callN = call { ptr, i64 } @struct_to_string____SxBoxState(ptr %0, { { ptr, ptr, ptr }, i32, i32, i32 } %ua.load101)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.102
@@ -1589,14 +1595,14 @@ dispatch.default.183: ; preds = %match.arm.52
br label %dispatch.merge.182
dispatch.case.184: ; preds = %match.arm.52
%ua.raw100 = extractvalue { i64, i64 } %loadN, 1
%callN = call { ptr, i64 } @enum_to_string__OperatingSystem(ptr %0, i64 %ua.raw100)
%ua.raw104 = extractvalue { i64, i64 } %loadN, 1
%callN = call { ptr, i64 } @enum_to_string__OperatingSystem(ptr %0, i64 %ua.raw104)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.182
dispatch.case.185: ; preds = %match.arm.52
%ua.raw102 = extractvalue { i64, i64 } %loadN, 1
%callN = call { ptr, i64 } @enum_to_string__Architecture(ptr %0, i64 %ua.raw102)
%ua.raw106 = extractvalue { i64, i64 } %loadN, 1
%callN = call { ptr, i64 } @enum_to_string__Architecture(ptr %0, i64 %ua.raw106)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.182
@@ -1610,26 +1616,26 @@ dispatch.default.191: ; preds = %match.arm.55
br label %dispatch.merge.190
dispatch.case.192: ; preds = %match.arm.55
%ua.raw105 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr106 = inttoptr i64 %ua.raw105 to ptr
%ua.load107 = load [4 x i64], ptr %ua.ptr106, align 8
%callN = call { ptr, i64 } @array_to_string__AR_4_s64(ptr %0, [4 x i64] %ua.load107)
%ua.raw109 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr110 = inttoptr i64 %ua.raw109 to ptr
%ua.load111 = load [4 x i64], ptr %ua.ptr110, align 8
%callN = call { ptr, i64 } @array_to_string__AR_4_s64(ptr %0, [4 x i64] %ua.load111)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.190
dispatch.case.193: ; preds = %match.arm.55
%ua.raw109 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr110 = inttoptr i64 %ua.raw109 to ptr
%ua.load111 = load [1 x { i64, i64 }], ptr %ua.ptr110, align 8
%callN = call { ptr, i64 } @array_to_string__AR_1_Any(ptr %0, [1 x { i64, i64 }] %ua.load111)
%ua.raw113 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr114 = inttoptr i64 %ua.raw113 to ptr
%ua.load115 = load [1 x { i64, i64 }], ptr %ua.ptr114, align 8
%callN = call { ptr, i64 } @array_to_string__AR_1_Any(ptr %0, [1 x { i64, i64 }] %ua.load115)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.190
dispatch.case.194: ; preds = %match.arm.55
%ua.raw113 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr114 = inttoptr i64 %ua.raw113 to ptr
%ua.load115 = load [3 x { i64, i64 }], ptr %ua.ptr114, align 8
%callN = call { ptr, i64 } @array_to_string__AR_3_Any(ptr %0, [3 x { i64, i64 }] %ua.load115)
%ua.raw117 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr118 = inttoptr i64 %ua.raw117 to ptr
%ua.load119 = load [3 x { i64, i64 }], ptr %ua.ptr118, align 8
%callN = call { ptr, i64 } @array_to_string__AR_3_Any(ptr %0, [3 x { i64, i64 }] %ua.load119)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.190
@@ -1643,18 +1649,18 @@ dispatch.default.211: ; preds = %match.arm.56
br label %dispatch.merge.210
dispatch.case.212: ; preds = %match.arm.56
%ua.raw118 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr119 = inttoptr i64 %ua.raw118 to ptr
%ua.load120 = load { ptr, i64 }, ptr %ua.ptr119, align 8
%callN = call { ptr, i64 } @slice_to_string__string(ptr %0, { ptr, i64 } %ua.load120)
%ua.raw122 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr123 = inttoptr i64 %ua.raw122 to ptr
%ua.load124 = load { ptr, i64 }, ptr %ua.ptr123, align 8
%callN = call { ptr, i64 } @slice_to_string__string(ptr %0, { ptr, i64 } %ua.load124)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.210
dispatch.case.213: ; preds = %match.arm.56
%ua.raw122 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr123 = inttoptr i64 %ua.raw122 to ptr
%ua.load124 = load { ptr, i64 }, ptr %ua.ptr123, align 8
%callN = call { ptr, i64 } @slice_to_string__Any(ptr %0, { ptr, i64 } %ua.load124)
%ua.raw126 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr127 = inttoptr i64 %ua.raw126 to ptr
%ua.load128 = load { ptr, i64 }, ptr %ua.ptr127, align 8
%callN = call { ptr, i64 } @slice_to_string__Any(ptr %0, { ptr, i64 } %ua.load128)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.210
@@ -1668,156 +1674,156 @@ dispatch.default.225: ; preds = %match.arm.57
br label %dispatch.merge.224
dispatch.case.226: ; preds = %match.arm.57
%ua.raw127 = extractvalue { i64, i64 } %loadN, 1
%iNp = inttoptr i64 %ua.raw127 to ptr
%ua.raw131 = extractvalue { i64, i64 } %loadN, 1
%iNp = inttoptr i64 %ua.raw131 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_void(ptr %0, ptr %iNp)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.224
dispatch.case.227: ; preds = %match.arm.57
%ua.raw129 = extractvalue { i64, i64 } %loadN, 1
%iNp130 = inttoptr i64 %ua.raw129 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_CAllocator(ptr %0, ptr %iNp130)
%ua.raw133 = extractvalue { i64, i64 } %loadN, 1
%iNp134 = inttoptr i64 %ua.raw133 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_CAllocator(ptr %0, ptr %iNp134)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.224
dispatch.case.228: ; preds = %match.arm.57
%ua.raw132 = extractvalue { i64, i64 } %loadN, 1
%iNp133 = inttoptr i64 %ua.raw132 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_GPA(ptr %0, ptr %iNp133)
%ua.raw136 = extractvalue { i64, i64 } %loadN, 1
%iNp137 = inttoptr i64 %ua.raw136 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_GPA(ptr %0, ptr %iNp137)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.224
dispatch.case.229: ; preds = %match.arm.57
%ua.raw135 = extractvalue { i64, i64 } %loadN, 1
%iNp136 = inttoptr i64 %ua.raw135 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_ArenaChunk(ptr %0, ptr %iNp136)
%ua.raw139 = extractvalue { i64, i64 } %loadN, 1
%iNp140 = inttoptr i64 %ua.raw139 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_ArenaChunk(ptr %0, ptr %iNp140)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.224
dispatch.case.230: ; preds = %match.arm.57
%ua.raw138 = extractvalue { i64, i64 } %loadN, 1
%iNp139 = inttoptr i64 %ua.raw138 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_Arena(ptr %0, ptr %iNp139)
%ua.raw142 = extractvalue { i64, i64 } %loadN, 1
%iNp143 = inttoptr i64 %ua.raw142 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_Arena(ptr %0, ptr %iNp143)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.224
dispatch.case.231: ; preds = %match.arm.57
%ua.raw141 = extractvalue { i64, i64 } %loadN, 1
%iNp142 = inttoptr i64 %ua.raw141 to ptr
%callN = call { ptr, i64 } @pointer_to_string__mptr_u8(ptr %0, ptr %iNp142)
%ua.raw145 = extractvalue { i64, i64 } %loadN, 1
%iNp146 = inttoptr i64 %ua.raw145 to ptr
%callN = call { ptr, i64 } @pointer_to_string__mptr_u8(ptr %0, ptr %iNp146)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.224
dispatch.case.232: ; preds = %match.arm.57
%ua.raw144 = extractvalue { i64, i64 } %loadN, 1
%iNp145 = inttoptr i64 %ua.raw144 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_BufAlloc(ptr %0, ptr %iNp145)
%ua.raw148 = extractvalue { i64, i64 } %loadN, 1
%iNp149 = inttoptr i64 %ua.raw148 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_BufAlloc(ptr %0, ptr %iNp149)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.224
dispatch.case.233: ; preds = %match.arm.57
%ua.raw147 = extractvalue { i64, i64 } %loadN, 1
%iNp148 = inttoptr i64 %ua.raw147 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_TrackingAllocator(ptr %0, ptr %iNp148)
%ua.raw151 = extractvalue { i64, i64 } %loadN, 1
%iNp152 = inttoptr i64 %ua.raw151 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_TrackingAllocator(ptr %0, ptr %iNp152)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.224
dispatch.case.234: ; preds = %match.arm.57
%ua.raw150 = extractvalue { i64, i64 } %loadN, 1
%iNp151 = inttoptr i64 %ua.raw150 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_NSString(ptr %0, ptr %iNp151)
%ua.raw154 = extractvalue { i64, i64 } %loadN, 1
%iNp155 = inttoptr i64 %ua.raw154 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_NSString(ptr %0, ptr %iNp155)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.224
dispatch.case.235: ; preds = %match.arm.57
%ua.raw153 = extractvalue { i64, i64 } %loadN, 1
%iNp154 = inttoptr i64 %ua.raw153 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_ptr_CAllocator(ptr %0, ptr %iNp154)
%ua.raw157 = extractvalue { i64, i64 } %loadN, 1
%iNp158 = inttoptr i64 %ua.raw157 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_ptr_CAllocator(ptr %0, ptr %iNp158)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.224
dispatch.case.236: ; preds = %match.arm.57
%ua.raw156 = extractvalue { i64, i64 } %loadN, 1
%iNp157 = inttoptr i64 %ua.raw156 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_s64(ptr %0, ptr %iNp157)
%ua.raw160 = extractvalue { i64, i64 } %loadN, 1
%iNp161 = inttoptr i64 %ua.raw160 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_s64(ptr %0, ptr %iNp161)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.224
dispatch.case.237: ; preds = %match.arm.57
%ua.raw159 = extractvalue { i64, i64 } %loadN, 1
%iNp160 = inttoptr i64 %ua.raw159 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_ptr_void(ptr %0, ptr %iNp160)
%ua.raw163 = extractvalue { i64, i64 } %loadN, 1
%iNp164 = inttoptr i64 %ua.raw163 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_ptr_void(ptr %0, ptr %iNp164)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.224
dispatch.case.238: ; preds = %match.arm.57
%ua.raw162 = extractvalue { i64, i64 } %loadN, 1
%iNp163 = inttoptr i64 %ua.raw162 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_SxBox(ptr %0, ptr %iNp163)
%ua.raw166 = extractvalue { i64, i64 } %loadN, 1
%iNp167 = inttoptr i64 %ua.raw166 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_SxBox(ptr %0, ptr %iNp167)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.224
dispatch.case.239: ; preds = %match.arm.57
%ua.raw165 = extractvalue { i64, i64 } %loadN, 1
%iNp166 = inttoptr i64 %ua.raw165 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_ptr_SxBox(ptr %0, ptr %iNp166)
%ua.raw169 = extractvalue { i64, i64 } %loadN, 1
%iNp170 = inttoptr i64 %ua.raw169 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_ptr_SxBox(ptr %0, ptr %iNp170)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.224
dispatch.case.240: ; preds = %match.arm.57
%ua.raw168 = extractvalue { i64, i64 } %loadN, 1
%iNp169 = inttoptr i64 %ua.raw168 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_s32(ptr %0, ptr %iNp169)
%ua.raw172 = extractvalue { i64, i64 } %loadN, 1
%iNp173 = inttoptr i64 %ua.raw172 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_s32(ptr %0, ptr %iNp173)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.224
dispatch.case.241: ; preds = %match.arm.57
%ua.raw171 = extractvalue { i64, i64 } %loadN, 1
%iNp172 = inttoptr i64 %ua.raw171 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_string(ptr %0, ptr %iNp172)
%ua.raw175 = extractvalue { i64, i64 } %loadN, 1
%iNp176 = inttoptr i64 %ua.raw175 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_string(ptr %0, ptr %iNp176)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.224
dispatch.case.242: ; preds = %match.arm.57
%ua.raw174 = extractvalue { i64, i64 } %loadN, 1
%iNp175 = inttoptr i64 %ua.raw174 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_Any(ptr %0, ptr %iNp175)
%ua.raw178 = extractvalue { i64, i64 } %loadN, 1
%iNp179 = inttoptr i64 %ua.raw178 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_Any(ptr %0, ptr %iNp179)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.224
dispatch.case.243: ; preds = %match.arm.57
%ua.raw177 = extractvalue { i64, i64 } %loadN, 1
%iNp178 = inttoptr i64 %ua.raw177 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_SL_Any(ptr %0, ptr %iNp178)
%ua.raw181 = extractvalue { i64, i64 } %loadN, 1
%iNp182 = inttoptr i64 %ua.raw181 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_SL_Any(ptr %0, ptr %iNp182)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.224
dispatch.case.244: ; preds = %match.arm.57
%ua.raw180 = extractvalue { i64, i64 } %loadN, 1
%iNp181 = inttoptr i64 %ua.raw180 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_u8(ptr %0, ptr %iNp181)
%ua.raw184 = extractvalue { i64, i64 } %loadN, 1
%iNp185 = inttoptr i64 %ua.raw184 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_u8(ptr %0, ptr %iNp185)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.224
dispatch.case.245: ; preds = %match.arm.57
%ua.raw183 = extractvalue { i64, i64 } %loadN, 1
%iNp184 = inttoptr i64 %ua.raw183 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_bool(ptr %0, ptr %iNp184)
%ua.raw187 = extractvalue { i64, i64 } %loadN, 1
%iNp188 = inttoptr i64 %ua.raw187 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_bool(ptr %0, ptr %iNp188)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.224
dispatch.case.246: ; preds = %match.arm.57
%ua.raw186 = extractvalue { i64, i64 } %loadN, 1
%iNp187 = inttoptr i64 %ua.raw186 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_AR_1_Any(ptr %0, ptr %iNp187)
%ua.raw190 = extractvalue { i64, i64 } %loadN, 1
%iNp191 = inttoptr i64 %ua.raw190 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_AR_1_Any(ptr %0, ptr %iNp191)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.224
dispatch.case.247: ; preds = %match.arm.57
%ua.raw189 = extractvalue { i64, i64 } %loadN, 1
%iNp190 = inttoptr i64 %ua.raw189 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_AR_3_Any(ptr %0, ptr %iNp190)
%ua.raw193 = extractvalue { i64, i64 } %loadN, 1
%iNp194 = inttoptr i64 %ua.raw193 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_AR_3_Any(ptr %0, ptr %iNp194)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.224
}

View File

@@ -1235,8 +1235,11 @@ match.arm.38: ; preds = %entry
match.arm.39: ; preds = %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry
%loadN = load { i64, i64 }, ptr %allocaN, align 8
%tiu.tid = extractvalue { i64, i64 } %loadN, 1
%tiu.gep = getelementptr inbounds [86 x i1], ptr @__sx_type_is_unsigned, i64 0, i64 %tiu.tid
%refl.tag = extractvalue { i64, i64 } %loadN, 0
%refl.val = extractvalue { i64, i64 } %loadN, 1
%refl.istype = icmp eq i64 %refl.tag, 13
%refl.tid = select i1 %refl.istype, i64 %refl.val, i64 %refl.tag
%tiu.gep = getelementptr inbounds [86 x i1], ptr @__sx_type_is_unsigned, i64 0, i64 %refl.tid
%tiu.load = load i1, ptr %tiu.gep, align 1
br i1 %tiu.load, label %if.then.53, label %if.else.54
@@ -1356,8 +1359,11 @@ match.arm.50: ; No predecessors!
match.arm.51: ; preds = %entry
%loadN = load { i64, i64 }, ptr %alloca, align 8
%tn.tid = extractvalue { i64, i64 } %loadN, 1
%tn.gep = getelementptr inbounds [86 x { ptr, i64 }], ptr @__sx_type_names, i64 0, i64 %tn.tid
%refl.tag36 = extractvalue { i64, i64 } %loadN, 0
%refl.val37 = extractvalue { i64, i64 } %loadN, 1
%refl.istype38 = icmp eq i64 %refl.tag36, 13
%refl.tid39 = select i1 %refl.istype38, i64 %refl.val37, i64 %refl.tag36
%tn.gep = getelementptr inbounds [86 x { ptr, i64 }], ptr @__sx_type_names, i64 0, i64 %refl.tid39
%tn.load = load { ptr, i64 }, ptr %tn.gep, align 8
store { ptr, i64 } %tn.load, ptr %allocaN, align 8
br label %match.merge.37
@@ -1367,15 +1373,15 @@ match.unr.52: ; preds = %entry
if.then.53: ; preds = %match.arm.39
%loadN = load { i64, i64 }, ptr %alloca, align 8
%ua.raw37 = extractvalue { i64, i64 } %loadN, 1
%callN = call { ptr, i64 } @uint_to_string(ptr %0, i64 %ua.raw37)
%ua.raw41 = extractvalue { i64, i64 } %loadN, 1
%callN = call { ptr, i64 } @uint_to_string(ptr %0, i64 %ua.raw41)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %if.merge.55
if.else.54: ; preds = %match.arm.39
%loadN = load { i64, i64 }, ptr %alloca, align 8
%ua.raw40 = extractvalue { i64, i64 } %loadN, 1
%callN = call { ptr, i64 } @int_to_string(ptr %0, i64 %ua.raw40)
%ua.raw44 = extractvalue { i64, i64 } %loadN, 1
%callN = call { ptr, i64 } @int_to_string(ptr %0, i64 %ua.raw44)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %if.merge.55
@@ -1383,16 +1389,16 @@ if.merge.55: ; preds = %if.else.54, %if.the
br label %match.merge.37
f32.unbox.81: ; preds = %match.arm.42
%ua.raw42 = extractvalue { i64, i64 } %loadN, 1
%trN = trunc i64 %ua.raw42 to i32
%ua.raw46 = extractvalue { i64, i64 } %loadN, 1
%trN = trunc i64 %ua.raw46 to i32
%iNf = bitcast i32 %trN to float
%fpext = fpext float %iNf to double
store double %fpext, ptr %allocaN, align 8
br label %float.merge.83
f64.unbox.82: ; preds = %match.arm.42
%ua.raw43 = extractvalue { i64, i64 } %loadN, 1
%iNd = bitcast i64 %ua.raw43 to double
%ua.raw47 = extractvalue { i64, i64 } %loadN, 1
%iNd = bitcast i64 %ua.raw47 to double
store double %iNd, ptr %allocaN, align 8
br label %float.merge.83
@@ -1412,98 +1418,98 @@ dispatch.default.95: ; preds = %match.arm.43
br label %dispatch.merge.94
dispatch.case.96: ; preds = %match.arm.43
%ua.raw47 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr48 = inttoptr i64 %ua.raw47 to ptr
%ua.load49 = load { { ptr, i64 }, i32, i32, { ptr, i64 } }, ptr %ua.ptr48, align 8
%callN = call { ptr, i64 } @struct_to_string__Source_Location(ptr %0, { { ptr, i64 }, i32, i32, { ptr, i64 } } %ua.load49)
%ua.raw51 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr52 = inttoptr i64 %ua.raw51 to ptr
%ua.load53 = load { { ptr, i64 }, i32, i32, { ptr, i64 } }, ptr %ua.ptr52, align 8
%callN = call { ptr, i64 } @struct_to_string__Source_Location(ptr %0, { { ptr, i64 }, i32, i32, { ptr, i64 } } %ua.load53)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.94
dispatch.case.97: ; preds = %match.arm.43
%ua.raw51 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr52 = inttoptr i64 %ua.raw51 to ptr
%ua.load53 = load { ptr, ptr, ptr }, ptr %ua.ptr52, align 8
%callN = call { ptr, i64 } @struct_to_string__Allocator(ptr %0, { ptr, ptr, ptr } %ua.load53)
%ua.raw55 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr56 = inttoptr i64 %ua.raw55 to ptr
%ua.load57 = load { ptr, ptr, ptr }, ptr %ua.ptr56, align 8
%callN = call { ptr, i64 } @struct_to_string__Allocator(ptr %0, { ptr, ptr, ptr } %ua.load57)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.94
dispatch.case.98: ; preds = %match.arm.43
%ua.raw55 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr56 = inttoptr i64 %ua.raw55 to ptr
%ua.load57 = load {}, ptr %ua.ptr56, align 1
%callN = call { ptr, i64 } @struct_to_string__CAllocator(ptr %0, {} %ua.load57)
%ua.raw59 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr60 = inttoptr i64 %ua.raw59 to ptr
%ua.load61 = load {}, ptr %ua.ptr60, align 1
%callN = call { ptr, i64 } @struct_to_string__CAllocator(ptr %0, {} %ua.load61)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.94
dispatch.case.99: ; preds = %match.arm.43
%ua.raw59 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr60 = inttoptr i64 %ua.raw59 to ptr
%ua.load61 = load { i64 }, ptr %ua.ptr60, align 8
%callN = call { ptr, i64 } @struct_to_string__GPA(ptr %0, { i64 } %ua.load61)
%ua.raw63 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr64 = inttoptr i64 %ua.raw63 to ptr
%ua.load65 = load { i64 }, ptr %ua.ptr64, align 8
%callN = call { ptr, i64 } @struct_to_string__GPA(ptr %0, { i64 } %ua.load65)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.94
dispatch.case.100: ; preds = %match.arm.43
%ua.raw63 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr64 = inttoptr i64 %ua.raw63 to ptr
%ua.load65 = load { ptr, i64 }, ptr %ua.ptr64, align 8
%callN = call { ptr, i64 } @struct_to_string__ArenaChunk(ptr %0, { ptr, i64 } %ua.load65)
%ua.raw67 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr68 = inttoptr i64 %ua.raw67 to ptr
%ua.load69 = load { ptr, i64 }, ptr %ua.ptr68, align 8
%callN = call { ptr, i64 } @struct_to_string__ArenaChunk(ptr %0, { ptr, i64 } %ua.load69)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.94
dispatch.case.101: ; preds = %match.arm.43
%ua.raw67 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr68 = inttoptr i64 %ua.raw67 to ptr
%ua.load69 = load { ptr, i64, { ptr, ptr, ptr } }, ptr %ua.ptr68, align 8
%callN = call { ptr, i64 } @struct_to_string__Arena(ptr %0, { ptr, i64, { ptr, ptr, ptr } } %ua.load69)
%ua.raw71 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr72 = inttoptr i64 %ua.raw71 to ptr
%ua.load73 = load { ptr, i64, { ptr, ptr, ptr } }, ptr %ua.ptr72, align 8
%callN = call { ptr, i64 } @struct_to_string__Arena(ptr %0, { ptr, i64, { ptr, ptr, ptr } } %ua.load73)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.94
dispatch.case.102: ; preds = %match.arm.43
%ua.raw71 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr72 = inttoptr i64 %ua.raw71 to ptr
%ua.load73 = load { ptr, i64, i64 }, ptr %ua.ptr72, align 8
%callN = call { ptr, i64 } @struct_to_string__BufAlloc(ptr %0, { ptr, i64, i64 } %ua.load73)
%ua.raw75 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr76 = inttoptr i64 %ua.raw75 to ptr
%ua.load77 = load { ptr, i64, i64 }, ptr %ua.ptr76, align 8
%callN = call { ptr, i64 } @struct_to_string__BufAlloc(ptr %0, { ptr, i64, i64 } %ua.load77)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.94
dispatch.case.103: ; preds = %match.arm.43
%ua.raw75 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr76 = inttoptr i64 %ua.raw75 to ptr
%ua.load77 = load { { ptr, ptr, ptr }, i64, i64, i64 }, ptr %ua.ptr76, align 8
%callN = call { ptr, i64 } @struct_to_string__TrackingAllocator(ptr %0, { { ptr, ptr, ptr }, i64, i64, i64 } %ua.load77)
%ua.raw79 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr80 = inttoptr i64 %ua.raw79 to ptr
%ua.load81 = load { { ptr, ptr, ptr }, i64, i64, i64 }, ptr %ua.ptr80, align 8
%callN = call { ptr, i64 } @struct_to_string__TrackingAllocator(ptr %0, { { ptr, ptr, ptr }, i64, i64, i64 } %ua.load81)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.94
dispatch.case.104: ; preds = %match.arm.43
%ua.raw79 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr80 = inttoptr i64 %ua.raw79 to ptr
%ua.load81 = load { { ptr, ptr, ptr }, ptr }, ptr %ua.ptr80, align 8
%callN = call { ptr, i64 } @struct_to_string__Context(ptr %0, { { ptr, ptr, ptr }, ptr } %ua.load81)
%ua.raw83 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr84 = inttoptr i64 %ua.raw83 to ptr
%ua.load85 = load { { ptr, ptr, ptr }, ptr }, ptr %ua.ptr84, align 8
%callN = call { ptr, i64 } @struct_to_string__Context(ptr %0, { { ptr, ptr, ptr }, ptr } %ua.load85)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.94
dispatch.case.105: ; preds = %match.arm.43
%ua.raw83 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr84 = inttoptr i64 %ua.raw83 to ptr
%ua.load85 = load {}, ptr %ua.ptr84, align 1
%callN = call { ptr, i64 } @struct_to_string__BuildOptions(ptr %0, {} %ua.load85)
%ua.raw87 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr88 = inttoptr i64 %ua.raw87 to ptr
%ua.load89 = load {}, ptr %ua.ptr88, align 1
%callN = call { ptr, i64 } @struct_to_string__BuildOptions(ptr %0, {} %ua.load89)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.94
dispatch.case.106: ; preds = %match.arm.43
%ua.raw87 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr88 = inttoptr i64 %ua.raw87 to ptr
%ua.load89 = load {}, ptr %ua.ptr88, align 1
%callN = call { ptr, i64 } @struct_to_string__NSString(ptr %0, {} %ua.load89)
%ua.raw91 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr92 = inttoptr i64 %ua.raw91 to ptr
%ua.load93 = load {}, ptr %ua.ptr92, align 1
%callN = call { ptr, i64 } @struct_to_string__NSString(ptr %0, {} %ua.load93)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.94
dispatch.case.107: ; preds = %match.arm.43
%ua.raw91 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr92 = inttoptr i64 %ua.raw91 to ptr
%ua.load93 = load { i64, i64, i64 }, ptr %ua.ptr92, align 8
%callN = call { ptr, i64 } @struct_to_string__Triple(ptr %0, { i64, i64, i64 } %ua.load93)
%ua.raw95 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr96 = inttoptr i64 %ua.raw95 to ptr
%ua.load97 = load { i64, i64, i64 }, ptr %ua.ptr96, align 8
%callN = call { ptr, i64 } @struct_to_string__Triple(ptr %0, { i64, i64, i64 } %ua.load97)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.94
@@ -1517,14 +1523,14 @@ dispatch.default.169: ; preds = %match.arm.44
br label %dispatch.merge.168
dispatch.case.170: ; preds = %match.arm.44
%ua.raw96 = extractvalue { i64, i64 } %loadN, 1
%callN = call { ptr, i64 } @enum_to_string__OperatingSystem(ptr %0, i64 %ua.raw96)
%ua.raw100 = extractvalue { i64, i64 } %loadN, 1
%callN = call { ptr, i64 } @enum_to_string__OperatingSystem(ptr %0, i64 %ua.raw100)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.168
dispatch.case.171: ; preds = %match.arm.44
%ua.raw98 = extractvalue { i64, i64 } %loadN, 1
%callN = call { ptr, i64 } @enum_to_string__Architecture(ptr %0, i64 %ua.raw98)
%ua.raw102 = extractvalue { i64, i64 } %loadN, 1
%callN = call { ptr, i64 } @enum_to_string__Architecture(ptr %0, i64 %ua.raw102)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.168
@@ -1538,26 +1544,26 @@ dispatch.default.177: ; preds = %match.arm.47
br label %dispatch.merge.176
dispatch.case.178: ; preds = %match.arm.47
%ua.raw101 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr102 = inttoptr i64 %ua.raw101 to ptr
%ua.load103 = load [4 x i64], ptr %ua.ptr102, align 8
%callN = call { ptr, i64 } @array_to_string__AR_4_s64(ptr %0, [4 x i64] %ua.load103)
%ua.raw105 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr106 = inttoptr i64 %ua.raw105 to ptr
%ua.load107 = load [4 x i64], ptr %ua.ptr106, align 8
%callN = call { ptr, i64 } @array_to_string__AR_4_s64(ptr %0, [4 x i64] %ua.load107)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.176
dispatch.case.179: ; preds = %match.arm.47
%ua.raw105 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr106 = inttoptr i64 %ua.raw105 to ptr
%ua.load107 = load [1 x { i64, i64 }], ptr %ua.ptr106, align 8
%callN = call { ptr, i64 } @array_to_string__AR_1_Any(ptr %0, [1 x { i64, i64 }] %ua.load107)
%ua.raw109 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr110 = inttoptr i64 %ua.raw109 to ptr
%ua.load111 = load [1 x { i64, i64 }], ptr %ua.ptr110, align 8
%callN = call { ptr, i64 } @array_to_string__AR_1_Any(ptr %0, [1 x { i64, i64 }] %ua.load111)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.176
dispatch.case.180: ; preds = %match.arm.47
%ua.raw109 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr110 = inttoptr i64 %ua.raw109 to ptr
%ua.load111 = load [3 x { i64, i64 }], ptr %ua.ptr110, align 8
%callN = call { ptr, i64 } @array_to_string__AR_3_Any(ptr %0, [3 x { i64, i64 }] %ua.load111)
%ua.raw113 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr114 = inttoptr i64 %ua.raw113 to ptr
%ua.load115 = load [3 x { i64, i64 }], ptr %ua.ptr114, align 8
%callN = call { ptr, i64 } @array_to_string__AR_3_Any(ptr %0, [3 x { i64, i64 }] %ua.load115)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.176
@@ -1571,18 +1577,18 @@ dispatch.default.197: ; preds = %match.arm.48
br label %dispatch.merge.196
dispatch.case.198: ; preds = %match.arm.48
%ua.raw114 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr115 = inttoptr i64 %ua.raw114 to ptr
%ua.load116 = load { ptr, i64 }, ptr %ua.ptr115, align 8
%callN = call { ptr, i64 } @slice_to_string__string(ptr %0, { ptr, i64 } %ua.load116)
%ua.raw118 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr119 = inttoptr i64 %ua.raw118 to ptr
%ua.load120 = load { ptr, i64 }, ptr %ua.ptr119, align 8
%callN = call { ptr, i64 } @slice_to_string__string(ptr %0, { ptr, i64 } %ua.load120)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.196
dispatch.case.199: ; preds = %match.arm.48
%ua.raw118 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr119 = inttoptr i64 %ua.raw118 to ptr
%ua.load120 = load { ptr, i64 }, ptr %ua.ptr119, align 8
%callN = call { ptr, i64 } @slice_to_string__Any(ptr %0, { ptr, i64 } %ua.load120)
%ua.raw122 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr123 = inttoptr i64 %ua.raw122 to ptr
%ua.load124 = load { ptr, i64 }, ptr %ua.ptr123, align 8
%callN = call { ptr, i64 } @slice_to_string__Any(ptr %0, { ptr, i64 } %ua.load124)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.196
@@ -1596,142 +1602,142 @@ dispatch.default.211: ; preds = %match.arm.49
br label %dispatch.merge.210
dispatch.case.212: ; preds = %match.arm.49
%ua.raw123 = extractvalue { i64, i64 } %loadN, 1
%iNp = inttoptr i64 %ua.raw123 to ptr
%ua.raw127 = extractvalue { i64, i64 } %loadN, 1
%iNp = inttoptr i64 %ua.raw127 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_void(ptr %0, ptr %iNp)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.210
dispatch.case.213: ; preds = %match.arm.49
%ua.raw125 = extractvalue { i64, i64 } %loadN, 1
%iNp126 = inttoptr i64 %ua.raw125 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_CAllocator(ptr %0, ptr %iNp126)
%ua.raw129 = extractvalue { i64, i64 } %loadN, 1
%iNp130 = inttoptr i64 %ua.raw129 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_CAllocator(ptr %0, ptr %iNp130)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.210
dispatch.case.214: ; preds = %match.arm.49
%ua.raw128 = extractvalue { i64, i64 } %loadN, 1
%iNp129 = inttoptr i64 %ua.raw128 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_GPA(ptr %0, ptr %iNp129)
%ua.raw132 = extractvalue { i64, i64 } %loadN, 1
%iNp133 = inttoptr i64 %ua.raw132 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_GPA(ptr %0, ptr %iNp133)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.210
dispatch.case.215: ; preds = %match.arm.49
%ua.raw131 = extractvalue { i64, i64 } %loadN, 1
%iNp132 = inttoptr i64 %ua.raw131 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_ArenaChunk(ptr %0, ptr %iNp132)
%ua.raw135 = extractvalue { i64, i64 } %loadN, 1
%iNp136 = inttoptr i64 %ua.raw135 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_ArenaChunk(ptr %0, ptr %iNp136)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.210
dispatch.case.216: ; preds = %match.arm.49
%ua.raw134 = extractvalue { i64, i64 } %loadN, 1
%iNp135 = inttoptr i64 %ua.raw134 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_Arena(ptr %0, ptr %iNp135)
%ua.raw138 = extractvalue { i64, i64 } %loadN, 1
%iNp139 = inttoptr i64 %ua.raw138 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_Arena(ptr %0, ptr %iNp139)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.210
dispatch.case.217: ; preds = %match.arm.49
%ua.raw137 = extractvalue { i64, i64 } %loadN, 1
%iNp138 = inttoptr i64 %ua.raw137 to ptr
%callN = call { ptr, i64 } @pointer_to_string__mptr_u8(ptr %0, ptr %iNp138)
%ua.raw141 = extractvalue { i64, i64 } %loadN, 1
%iNp142 = inttoptr i64 %ua.raw141 to ptr
%callN = call { ptr, i64 } @pointer_to_string__mptr_u8(ptr %0, ptr %iNp142)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.210
dispatch.case.218: ; preds = %match.arm.49
%ua.raw140 = extractvalue { i64, i64 } %loadN, 1
%iNp141 = inttoptr i64 %ua.raw140 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_BufAlloc(ptr %0, ptr %iNp141)
%ua.raw144 = extractvalue { i64, i64 } %loadN, 1
%iNp145 = inttoptr i64 %ua.raw144 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_BufAlloc(ptr %0, ptr %iNp145)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.210
dispatch.case.219: ; preds = %match.arm.49
%ua.raw143 = extractvalue { i64, i64 } %loadN, 1
%iNp144 = inttoptr i64 %ua.raw143 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_TrackingAllocator(ptr %0, ptr %iNp144)
%ua.raw147 = extractvalue { i64, i64 } %loadN, 1
%iNp148 = inttoptr i64 %ua.raw147 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_TrackingAllocator(ptr %0, ptr %iNp148)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.210
dispatch.case.220: ; preds = %match.arm.49
%ua.raw146 = extractvalue { i64, i64 } %loadN, 1
%iNp147 = inttoptr i64 %ua.raw146 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_NSString(ptr %0, ptr %iNp147)
%ua.raw150 = extractvalue { i64, i64 } %loadN, 1
%iNp151 = inttoptr i64 %ua.raw150 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_NSString(ptr %0, ptr %iNp151)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.210
dispatch.case.221: ; preds = %match.arm.49
%ua.raw149 = extractvalue { i64, i64 } %loadN, 1
%iNp150 = inttoptr i64 %ua.raw149 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_ptr_CAllocator(ptr %0, ptr %iNp150)
%ua.raw153 = extractvalue { i64, i64 } %loadN, 1
%iNp154 = inttoptr i64 %ua.raw153 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_ptr_CAllocator(ptr %0, ptr %iNp154)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.210
dispatch.case.222: ; preds = %match.arm.49
%ua.raw152 = extractvalue { i64, i64 } %loadN, 1
%iNp153 = inttoptr i64 %ua.raw152 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_s64(ptr %0, ptr %iNp153)
%ua.raw156 = extractvalue { i64, i64 } %loadN, 1
%iNp157 = inttoptr i64 %ua.raw156 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_s64(ptr %0, ptr %iNp157)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.210
dispatch.case.223: ; preds = %match.arm.49
%ua.raw155 = extractvalue { i64, i64 } %loadN, 1
%iNp156 = inttoptr i64 %ua.raw155 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_ptr_void(ptr %0, ptr %iNp156)
%ua.raw159 = extractvalue { i64, i64 } %loadN, 1
%iNp160 = inttoptr i64 %ua.raw159 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_ptr_void(ptr %0, ptr %iNp160)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.210
dispatch.case.224: ; preds = %match.arm.49
%ua.raw158 = extractvalue { i64, i64 } %loadN, 1
%iNp159 = inttoptr i64 %ua.raw158 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_bool(ptr %0, ptr %iNp159)
%ua.raw162 = extractvalue { i64, i64 } %loadN, 1
%iNp163 = inttoptr i64 %ua.raw162 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_bool(ptr %0, ptr %iNp163)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.210
dispatch.case.225: ; preds = %match.arm.49
%ua.raw161 = extractvalue { i64, i64 } %loadN, 1
%iNp162 = inttoptr i64 %ua.raw161 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_string(ptr %0, ptr %iNp162)
%ua.raw165 = extractvalue { i64, i64 } %loadN, 1
%iNp166 = inttoptr i64 %ua.raw165 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_string(ptr %0, ptr %iNp166)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.210
dispatch.case.226: ; preds = %match.arm.49
%ua.raw164 = extractvalue { i64, i64 } %loadN, 1
%iNp165 = inttoptr i64 %ua.raw164 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_Any(ptr %0, ptr %iNp165)
%ua.raw168 = extractvalue { i64, i64 } %loadN, 1
%iNp169 = inttoptr i64 %ua.raw168 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_Any(ptr %0, ptr %iNp169)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.210
dispatch.case.227: ; preds = %match.arm.49
%ua.raw167 = extractvalue { i64, i64 } %loadN, 1
%iNp168 = inttoptr i64 %ua.raw167 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_AR_1_Any(ptr %0, ptr %iNp168)
%ua.raw171 = extractvalue { i64, i64 } %loadN, 1
%iNp172 = inttoptr i64 %ua.raw171 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_AR_1_Any(ptr %0, ptr %iNp172)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.210
dispatch.case.228: ; preds = %match.arm.49
%ua.raw170 = extractvalue { i64, i64 } %loadN, 1
%iNp171 = inttoptr i64 %ua.raw170 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_SL_Any(ptr %0, ptr %iNp171)
%ua.raw174 = extractvalue { i64, i64 } %loadN, 1
%iNp175 = inttoptr i64 %ua.raw174 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_SL_Any(ptr %0, ptr %iNp175)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.210
dispatch.case.229: ; preds = %match.arm.49
%ua.raw173 = extractvalue { i64, i64 } %loadN, 1
%iNp174 = inttoptr i64 %ua.raw173 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_u8(ptr %0, ptr %iNp174)
%ua.raw177 = extractvalue { i64, i64 } %loadN, 1
%iNp178 = inttoptr i64 %ua.raw177 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_u8(ptr %0, ptr %iNp178)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.210
dispatch.case.230: ; preds = %match.arm.49
%ua.raw176 = extractvalue { i64, i64 } %loadN, 1
%iNp177 = inttoptr i64 %ua.raw176 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_Triple(ptr %0, ptr %iNp177)
%ua.raw180 = extractvalue { i64, i64 } %loadN, 1
%iNp181 = inttoptr i64 %ua.raw180 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_Triple(ptr %0, ptr %iNp181)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.210
dispatch.case.231: ; preds = %match.arm.49
%ua.raw179 = extractvalue { i64, i64 } %loadN, 1
%iNp180 = inttoptr i64 %ua.raw179 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_AR_3_Any(ptr %0, ptr %iNp180)
%ua.raw183 = extractvalue { i64, i64 } %loadN, 1
%iNp184 = inttoptr i64 %ua.raw183 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_AR_3_Any(ptr %0, ptr %iNp184)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.210
}