diff options
| author | Jacob Young <jacobly0@users.noreply.github.com> | 2025-11-04 15:47:27 -0500 |
|---|---|---|
| committer | Jacob Young <15544577+jacobly0@users.noreply.github.com> | 2025-11-04 22:45:54 -0500 |
| commit | a6d444c2714f24b7232895cf15282e2287fe445e (patch) | |
| tree | f0c382105c149fb28985ba039fe0bd244f4d4f3f /src/codegen/x86_64/CodeGen.zig | |
| parent | 74900e938a8ea28b6ea7aa35924a2dee9818056b (diff) | |
| download | zig-a6d444c2714f24b7232895cf15282e2287fe445e.tar.gz zig-a6d444c2714f24b7232895cf15282e2287fe445e.zip | |
x86_64: implement split vector stores
Closes #25809
Diffstat (limited to 'src/codegen/x86_64/CodeGen.zig')
| -rw-r--r-- | src/codegen/x86_64/CodeGen.zig | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/src/codegen/x86_64/CodeGen.zig b/src/codegen/x86_64/CodeGen.zig index e826797671..6434079800 100644 --- a/src/codegen/x86_64/CodeGen.zig +++ b/src/codegen/x86_64/CodeGen.zig @@ -183533,6 +183533,10 @@ const Temp = struct { assert(src_regs.len - part_index == std.math.divCeil(u32, src_abi_size, 8) catch unreachable); break :part_ty try cg.pt.intType(.unsigned, @as(u16, 8) * @min(src_abi_size, 8)); }, + .vector_type => |vector_type| try cg.pt.vectorType(.{ + .len = @intCast(@divExact(vector_type.len, src_regs.len)), + .child = vector_type.child, + }), .opt_type => |opt_child| switch (ip.indexToKey(opt_child)) { else => std.debug.panic("{s}: {f}\n", .{ @src().fn_name, src_ty.fmt(cg.pt) }), .ptr_type => |ptr_info| { |
