Commit a26f1768d8

Bingwu Zhang <xtex@aosc.io>
2025-03-16 02:02:34
x86_64: add behavior test for packed store
1 parent c62fb11
Changed files (1)
test
test/behavior/packed-struct.zig
@@ -1335,3 +1335,31 @@ test "assign packed struct initialized with RLS to packed struct literal field"
     try expect(outer.inner.x == x);
     try expect(outer.x == x);
 }
+
+test "packed struct store of comparison result" {
+    if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
+
+    const S1 = packed struct {
+        val1: u3,
+        val2: u3,
+    };
+    const S2 = packed struct {
+        a: bool,
+        b: bool,
+    };
+
+    var A: S1 = .{ .val1 = 1, .val2 = 1 };
+    A.val2 += 1;
+    try expectEqual(1, A.val1);
+    try expectEqual(2, A.val2);
+    try expect((A.val2 & 1) != 1);
+    const result1: S2 = .{ .a = (A.val2 & 1) != 1, .b = (A.val1 & 1) != 1 };
+    try expect(result1.a);
+    try expect(!result1.b);
+
+    try expect((A.val2 == 3) == false);
+    try expect((A.val2 == 2) == true);
+    const result2: S2 = .{ .a = !(A.val2 == 3), .b = (A.val1 == 2) };
+    try expect(result2.a);
+    try expect(!result2.b);
+}