diff options
| author | Andrew Kelley <andrew@ziglang.org> | 2022-08-07 22:48:34 -0700 |
|---|---|---|
| committer | Andrew Kelley <andrew@ziglang.org> | 2022-08-10 16:45:29 -0700 |
| commit | 4d7f5a1917f569506682bbb6ee5af672ab1fd8e8 (patch) | |
| tree | ae2070a20f8aab228135891cca9a6e5132edce58 /test/behavior/vector.zig | |
| parent | 3c4e9b5983e49fa3179adec8e41e3198f3fd66ae (diff) | |
| download | zig-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.zig | 17 |
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 |
