aboutsummaryrefslogtreecommitdiff
path: root/test/behavior/vector.zig
diff options
context:
space:
mode:
authorAndrew Kelley <andrew@ziglang.org>2022-08-07 22:48:34 -0700
committerAndrew Kelley <andrew@ziglang.org>2022-08-10 16:45:29 -0700
commit4d7f5a1917f569506682bbb6ee5af672ab1fd8e8 (patch)
treeae2070a20f8aab228135891cca9a6e5132edce58 /test/behavior/vector.zig
parent3c4e9b5983e49fa3179adec8e41e3198f3fd66ae (diff)
downloadzig-4d7f5a1917f569506682bbb6ee5af672ab1fd8e8.tar.gz
zig-4d7f5a1917f569506682bbb6ee5af672ab1fd8e8.zip
stage2: fix crash with comptime vector reduce
Diffstat (limited to 'test/behavior/vector.zig')
-rw-r--r--test/behavior/vector.zig17
1 files changed, 17 insertions, 0 deletions
diff --git a/test/behavior/vector.zig b/test/behavior/vector.zig
index c13db2e262..863a8030c0 100644
--- a/test/behavior/vector.zig
+++ b/test/behavior/vector.zig
@@ -807,6 +807,23 @@ test "vector reduce operation" {
comptime try S.doTheTest();
}
+test "vector @reduce comptime" {
+ if (builtin.zig_backend == .stage1) return error.SkipZigTest;
+ if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
+ if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO
+ if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
+ if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
+ if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
+
+ const value = @Vector(4, i32){ 1, -1, 1, -1 };
+ const result = value > @splat(4, @as(i32, 0));
+ // result is { true, false, true, false };
+ comptime try expect(@TypeOf(result) == @Vector(4, bool));
+ const is_all_true = @reduce(.And, result);
+ comptime try expect(@TypeOf(is_all_true) == bool);
+ try expect(is_all_true == false);
+}
+
test "mask parameter of @shuffle is comptime scope" {
if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO