aboutsummaryrefslogtreecommitdiff
path: root/test/behavior/vector.zig
diff options
context:
space:
mode:
authorVeikka Tuominen <git@vexu.eu>2024-01-02 17:33:41 +0200
committerAndrew Kelley <andrew@ziglang.org>2024-01-06 16:49:41 -0800
commit804cee3b93cb7084c16ee61d3bcb57f7d3c9f0bc (patch)
tree3d8c534b1adc352b248255ef2906ef2bdf11dffc /test/behavior/vector.zig
parent282ff8d3bd4a0d870a98f145aa87039e0409b745 (diff)
downloadzig-804cee3b93cb7084c16ee61d3bcb57f7d3c9f0bc.tar.gz
zig-804cee3b93cb7084c16ee61d3bcb57f7d3c9f0bc.zip
categorize `behavior/bugs/<issueno>.zig` tests
Diffstat (limited to 'test/behavior/vector.zig')
-rw-r--r--test/behavior/vector.zig36
1 files changed, 36 insertions, 0 deletions
diff --git a/test/behavior/vector.zig b/test/behavior/vector.zig
index db42658c43..36dd7ca265 100644
--- a/test/behavior/vector.zig
+++ b/test/behavior/vector.zig
@@ -1530,3 +1530,39 @@ test "index into comptime-known vector is comptime-known" {
const vec: @Vector(2, f16) = [2]f16{ 1.5, 3.5 };
if (vec[0] != 1.5) @compileError("vec should be comptime");
}
+
+test "arithmetic on zero-length vectors" {
+ if (builtin.zig_backend == .stage2_x86) return error.SkipZigTest; // TODO
+ if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
+ if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
+ if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest; // TODO
+ if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
+
+ {
+ const a = @Vector(0, i32){};
+ const b = @Vector(0, i32){};
+ _ = a + b;
+ }
+ {
+ const a = @Vector(0, i32){};
+ const b = @Vector(0, i32){};
+ _ = a - b;
+ }
+}
+
+test "@reduce on bool vector" {
+ if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
+ if (builtin.zig_backend == .stage2_x86) return error.SkipZigTest; // TODO
+ if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
+ if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
+
+ if (comptime builtin.zig_backend == .stage2_llvm and builtin.cpu.arch.endian() == .big) {
+ // https://github.com/ziglang/zig/issues/13782
+ return error.SkipZigTest;
+ }
+
+ const a = @Vector(2, bool){ true, true };
+ const b = @Vector(1, bool){true};
+ try std.testing.expect(@reduce(.And, a));
+ try std.testing.expect(@reduce(.And, b));
+}