aboutsummaryrefslogtreecommitdiff
path: root/src/codegen/c/Type.zig
diff options
context:
space:
mode:
authorAndrew Kelley <andrew@ziglang.org>2025-05-18 14:36:33 -0400
committerGitHub <noreply@github.com>2025-05-18 14:36:33 -0400
commitb77e6013422a6e7066a14dbe82e8512636ba13d2 (patch)
tree0ce64ba78449b0cfdee7d926fb1f3c35ad364e7f /src/codegen/c/Type.zig
parent74a3ae492797b1b2cf1936f0c91560585efdf6c6 (diff)
parenta4eabd39794014c871670937155c94e11fce991b (diff)
downloadzig-b77e6013422a6e7066a14dbe82e8512636ba13d2.tar.gz
zig-b77e6013422a6e7066a14dbe82e8512636ba13d2.zip
Merge pull request #23834 from jacobly0/x86_64-rewrite
x86_64: finish rewriting scalar overflow and saturate operations
Diffstat (limited to 'src/codegen/c/Type.zig')
-rw-r--r--src/codegen/c/Type.zig60
1 files changed, 60 insertions, 0 deletions
diff --git a/src/codegen/c/Type.zig b/src/codegen/c/Type.zig
index 0b3066f9bd..98edeb54a6 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,
@@ -1743,6 +1788,21 @@ pub const Pool = struct {
};
return pool.fromFields(allocator, .@"struct", &fields, kind);
},
+ .vector_2_u128_type => {
+ const vector_ctype = try pool.getVector(allocator, .{
+ .elem_ctype = .u128,
+ .len = 2,
+ });
+ if (!kind.isParameter()) return vector_ctype;
+ var fields = [_]Info.Field{
+ .{
+ .name = .{ .index = .array },
+ .ctype = vector_ctype,
+ .alignas = AlignAs.fromAbiAlignment(Type.u128.abiAlignment(zcu)),
+ },
+ };
+ return pool.fromFields(allocator, .@"struct", &fields, kind);
+ },
.vector_4_f16_type => {
const vector_ctype = try pool.getVector(allocator, .{
.elem_ctype = .f16,