aboutsummaryrefslogtreecommitdiff
path: root/src/codegen/c/Type.zig
diff options
context:
space:
mode:
authorJacob Young <jacobly0@users.noreply.github.com>2025-05-12 06:46:38 -0400
committerJacob Young <jacobly0@users.noreply.github.com>2025-05-17 02:08:41 -0400
commit6d68a494c8a5abf86c406a82c0f744a999084abe (patch)
tree1d6c6da9b80e4b38779569a3c7f29b8846430372 /src/codegen/c/Type.zig
parent6dbf1c7682f446d5684fbfafd5274361ac6b64cf (diff)
downloadzig-6d68a494c8a5abf86c406a82c0f744a999084abe.tar.gz
zig-6d68a494c8a5abf86c406a82c0f744a999084abe.zip
x86_64: rewrite vector `+|`
Diffstat (limited to 'src/codegen/c/Type.zig')
-rw-r--r--src/codegen/c/Type.zig45
1 files changed, 45 insertions, 0 deletions
diff --git a/src/codegen/c/Type.zig b/src/codegen/c/Type.zig
index 0b3066f9bd..06250b7532 100644
--- a/src/codegen/c/Type.zig
+++ b/src/codegen/c/Type.zig
@@ -1443,6 +1443,21 @@ pub const Pool = struct {
return pool.fromFields(allocator, .@"struct", &fields, kind);
},
+ .vector_8_i8_type => {
+ const vector_ctype = try pool.getVector(allocator, .{
+ .elem_ctype = .i8,
+ .len = 8,
+ });
+ if (!kind.isParameter()) return vector_ctype;
+ var fields = [_]Info.Field{
+ .{
+ .name = .{ .index = .array },
+ .ctype = vector_ctype,
+ .alignas = AlignAs.fromAbiAlignment(Type.i8.abiAlignment(zcu)),
+ },
+ };
+ return pool.fromFields(allocator, .@"struct", &fields, kind);
+ },
.vector_16_i8_type => {
const vector_ctype = try pool.getVector(allocator, .{
.elem_ctype = .i8,
@@ -1563,6 +1578,21 @@ pub const Pool = struct {
};
return pool.fromFields(allocator, .@"struct", &fields, kind);
},
+ .vector_4_i16_type => {
+ const vector_ctype = try pool.getVector(allocator, .{
+ .elem_ctype = .i16,
+ .len = 4,
+ });
+ if (!kind.isParameter()) return vector_ctype;
+ var fields = [_]Info.Field{
+ .{
+ .name = .{ .index = .array },
+ .ctype = vector_ctype,
+ .alignas = AlignAs.fromAbiAlignment(Type.i16.abiAlignment(zcu)),
+ },
+ };
+ return pool.fromFields(allocator, .@"struct", &fields, kind);
+ },
.vector_8_i16_type => {
const vector_ctype = try pool.getVector(allocator, .{
.elem_ctype = .i16,
@@ -1593,6 +1623,21 @@ pub const Pool = struct {
};
return pool.fromFields(allocator, .@"struct", &fields, kind);
},
+ .vector_4_u16_type => {
+ const vector_ctype = try pool.getVector(allocator, .{
+ .elem_ctype = .u16,
+ .len = 4,
+ });
+ if (!kind.isParameter()) return vector_ctype;
+ var fields = [_]Info.Field{
+ .{
+ .name = .{ .index = .array },
+ .ctype = vector_ctype,
+ .alignas = AlignAs.fromAbiAlignment(Type.u16.abiAlignment(zcu)),
+ },
+ };
+ return pool.fromFields(allocator, .@"struct", &fields, kind);
+ },
.vector_8_u16_type => {
const vector_ctype = try pool.getVector(allocator, .{
.elem_ctype = .u16,