authorgravatar for robin@voetter.nlRobin Voetter <robin@voetter.nl> 2024-04-05 23:22:34+02:00
committergravatar for noreply@github.comGitHub <noreply@github.com> 2024-04-05 23:22:34+02:00
logdf1f8b0ae6ee493262f4244e3af0fb604ccd0a0f
tree275f53047eefa8c319b4bd2b8982397e0a93c0ad
parente5d900268a1d969dcaf4f2d657e96a5a5f217e7b
parent14e371872399c87e24d38a6774b98646d3d7ab71
signaturebadge-check Signed by PGP key B5690EEEBB952194

Merge pull request #19539 from alichraghi/spirv

spirv: make behavior tests passing

3 files changed, 18 insertions(+), 0 deletions(-)

src/codegen/spirv.zig+3
...@@ -1102,6 +1102,9 @@ const DeclGen = struct {...@@ -1102,6 +1102,9 @@ const DeclGen = struct {
1102 fn constantPtr(self: *DeclGen, ptr_ty: Type, ptr_val: Value) Error!IdRef {1102 fn constantPtr(self: *DeclGen, ptr_ty: Type, ptr_val: Value) Error!IdRef {
1103 const result_ty_ref = try self.resolveType(ptr_ty, .direct);1103 const result_ty_ref = try self.resolveType(ptr_ty, .direct);
1104 const mod = self.module;1104 const mod = self.module;
1105
1106 if (ptr_val.isUndef(mod)) return self.spv.constUndef(result_ty_ref);
1107
1105 switch (mod.intern_pool.indexToKey(ptr_val.toIntern()).ptr.addr) {1108 switch (mod.intern_pool.indexToKey(ptr_val.toIntern()).ptr.addr) {
1106 .decl => |decl| return try self.constantDeclRef(ptr_ty, decl),1109 .decl => |decl| return try self.constantDeclRef(ptr_ty, decl),
1107 .anon_decl => |anon_decl| return try self.constantAnonDeclRef(ptr_ty, anon_decl),1110 .anon_decl => |anon_decl| return try self.constantAnonDeclRef(ptr_ty, anon_decl),
test/behavior/array.zig+2
...@@ -946,6 +946,8 @@ test "union that needs padding bytes inside an array" {...@@ -946,6 +946,8 @@ test "union that needs padding bytes inside an array" {
946}946}
947947
948test "runtime index of array of zero-bit values" {948test "runtime index of array of zero-bit values" {
949 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
950
949 var runtime: struct { array: [1]void, index: usize } = undefined;951 var runtime: struct { array: [1]void, index: usize } = undefined;
950 runtime = .{ .array = .{{}}, .index = 0 };952 runtime = .{ .array = .{{}}, .index = 0 };
951 const result = struct { index: usize, value: void }{953 const result = struct { index: usize, value: void }{
test/behavior/field_parent_ptr.zig+13
...@@ -268,6 +268,8 @@ test "@fieldParentPtr extern struct" {...@@ -268,6 +268,8 @@ test "@fieldParentPtr extern struct" {
268}268}
269269
270test "@fieldParentPtr extern struct first zero-bit field" {270test "@fieldParentPtr extern struct first zero-bit field" {
271 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
272
271 const C = extern struct {273 const C = extern struct {
272 a: u0 = 0,274 a: u0 = 0,
273 b: f32 = 3.14,275 b: f32 = 3.14,
...@@ -369,6 +371,8 @@ test "@fieldParentPtr extern struct first zero-bit field" {...@@ -369,6 +371,8 @@ test "@fieldParentPtr extern struct first zero-bit field" {
369}371}
370372
371test "@fieldParentPtr extern struct middle zero-bit field" {373test "@fieldParentPtr extern struct middle zero-bit field" {
374 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
375
372 const C = extern struct {376 const C = extern struct {
373 a: f32 = 3.14,377 a: f32 = 3.14,
374 b: u0 = 0,378 b: u0 = 0,
...@@ -470,6 +474,8 @@ test "@fieldParentPtr extern struct middle zero-bit field" {...@@ -470,6 +474,8 @@ test "@fieldParentPtr extern struct middle zero-bit field" {
470}474}
471475
472test "@fieldParentPtr extern struct last zero-bit field" {476test "@fieldParentPtr extern struct last zero-bit field" {
477 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
478
473 const C = extern struct {479 const C = extern struct {
474 a: f32 = 3.14,480 a: f32 = 3.14,
475 b: i32 = 12345,481 b: i32 = 12345,
...@@ -574,6 +580,7 @@ test "@fieldParentPtr unaligned packed struct" {...@@ -574,6 +580,7 @@ test "@fieldParentPtr unaligned packed struct" {
574 if (builtin.zig_backend == .stage2_c) return error.SkipZigTest;580 if (builtin.zig_backend == .stage2_c) return error.SkipZigTest;
575 if (builtin.zig_backend == .stage2_llvm) return error.SkipZigTest;581 if (builtin.zig_backend == .stage2_llvm) return error.SkipZigTest;
576 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest;582 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest;
583 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
577584
578 const C = packed struct {585 const C = packed struct {
579 a: bool = true,586 a: bool = true,
...@@ -711,6 +718,7 @@ test "@fieldParentPtr aligned packed struct" {...@@ -711,6 +718,7 @@ test "@fieldParentPtr aligned packed struct" {
711 if (builtin.zig_backend == .stage2_c) return error.SkipZigTest;718 if (builtin.zig_backend == .stage2_c) return error.SkipZigTest;
712 if (builtin.zig_backend == .stage2_llvm) return error.SkipZigTest;719 if (builtin.zig_backend == .stage2_llvm) return error.SkipZigTest;
713 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest;720 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest;
721 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
714722
715 const C = packed struct {723 const C = packed struct {
716 a: f32 = 3.14,724 a: f32 = 3.14,
...@@ -847,6 +855,7 @@ test "@fieldParentPtr aligned packed struct" {...@@ -847,6 +855,7 @@ test "@fieldParentPtr aligned packed struct" {
847test "@fieldParentPtr nested packed struct" {855test "@fieldParentPtr nested packed struct" {
848 if (builtin.zig_backend == .stage2_llvm) return error.SkipZigTest;856 if (builtin.zig_backend == .stage2_llvm) return error.SkipZigTest;
849 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest;857 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest;
858 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
850859
851 {860 {
852 const C = packed struct {861 const C = packed struct {
...@@ -1008,6 +1017,7 @@ test "@fieldParentPtr nested packed struct" {...@@ -1008,6 +1017,7 @@ test "@fieldParentPtr nested packed struct" {
1008test "@fieldParentPtr packed struct first zero-bit field" {1017test "@fieldParentPtr packed struct first zero-bit field" {
1009 if (builtin.zig_backend == .stage2_llvm) return error.SkipZigTest;1018 if (builtin.zig_backend == .stage2_llvm) return error.SkipZigTest;
1010 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest;1019 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest;
1020 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
10111021
1012 const C = packed struct {1022 const C = packed struct {
1013 a: u0 = 0,1023 a: u0 = 0,
...@@ -1112,6 +1122,7 @@ test "@fieldParentPtr packed struct first zero-bit field" {...@@ -1112,6 +1122,7 @@ test "@fieldParentPtr packed struct first zero-bit field" {
1112test "@fieldParentPtr packed struct middle zero-bit field" {1122test "@fieldParentPtr packed struct middle zero-bit field" {
1113 if (builtin.zig_backend == .stage2_llvm) return error.SkipZigTest;1123 if (builtin.zig_backend == .stage2_llvm) return error.SkipZigTest;
1114 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest;1124 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest;
1125 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
11151126
1116 const C = packed struct {1127 const C = packed struct {
1117 a: f32 = 3.14,1128 a: f32 = 3.14,
...@@ -1216,6 +1227,7 @@ test "@fieldParentPtr packed struct middle zero-bit field" {...@@ -1216,6 +1227,7 @@ test "@fieldParentPtr packed struct middle zero-bit field" {
1216test "@fieldParentPtr packed struct last zero-bit field" {1227test "@fieldParentPtr packed struct last zero-bit field" {
1217 if (builtin.zig_backend == .stage2_llvm) return error.SkipZigTest;1228 if (builtin.zig_backend == .stage2_llvm) return error.SkipZigTest;
1218 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest;1229 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest;
1230 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
12191231
1220 const C = packed struct {1232 const C = packed struct {
1221 a: f32 = 3.14,1233 a: f32 = 3.14,
...@@ -1718,6 +1730,7 @@ test "@fieldParentPtr extern union" {...@@ -1718,6 +1730,7 @@ test "@fieldParentPtr extern union" {
17181730
1719test "@fieldParentPtr packed union" {1731test "@fieldParentPtr packed union" {
1720 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest;1732 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest;
1733 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
17211734
1722 const C = packed union {1735 const C = packed union {
1723 a: bool,1736 a: bool,