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:
@@ -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
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user