authorgravatar for luuk@degram.devLuuk de Gram <luuk@degram.dev> 2022-04-02 19:09:51+02:00
committergravatar for luuk@degram.devLuuk de Gram <luuk@degram.dev> 2022-04-02 21:54:01+02:00
loga0a587ff85d3785f99c475d9e0d5f1eb9e27bd26
tree87465456c5d1c11249ab7a4e01102d57f67ad8f1
parent2c40b37f79b1b40b5f22e13131064bcab2191f64

wasm: Enable passing behavior tests

This shuffles some tests do ensure the new instructions are tested for the wasm backend, by moving vectors into their own tests as well as move the f16 test cases as those require special operating also.

4 files changed, 54 insertions(+), 15 deletions(-)

test/behavior/floatop.zig+1
......@@ -544,6 +544,7 @@ fn testTrunc() !void {
544544}
545545
546546test "negation f16" {
547 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
547548 if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO
548549 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
549550 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
test/behavior/math.zig-2
......@@ -60,7 +60,6 @@ fn assertFalse(b: bool) !void {
6060}
6161
6262test "@clz" {
63 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
6463 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
6564 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
6665 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
......@@ -137,7 +136,6 @@ fn expectVectorsEqual(a: anytype, b: anytype) !void {
137136}
138137
139138test "@ctz" {
140 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
141139 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
142140 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
143141 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
test/behavior/maximum_minimum.zig+36-6
......@@ -5,7 +5,6 @@ const expect = std.testing.expect;
55const expectEqual = std.testing.expectEqual;
66
77test "@maximum" {
8 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
98 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
109 if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO
1110 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
......@@ -13,9 +12,25 @@ test "@maximum" {
1312
1413 const S = struct {
1514 fn doTheTest() !void {
16 try expect(@as(i32, 10) == @maximum(@as(i32, -3), @as(i32, 10)));
17 try expect(@as(f32, 3.2) == @maximum(@as(f32, 3.2), @as(f32, 0.68)));
15 var x: i32 = 10;
16 var y: f32 = 0.68;
17 try expect(@as(i32, 10) == @maximum(@as(i32, -3), x));
18 try expect(@as(f32, 3.2) == @maximum(@as(f32, 3.2), y));
19 }
20 };
21 try S.doTheTest();
22 comptime try S.doTheTest();
23}
24
25test "@maximum on vectors" {
26 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
27 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
28 if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO
29 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
30 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
1831
32 const S = struct {
33 fn doTheTest() !void {
1934 var a: @Vector(4, i32) = [4]i32{ 2147483647, -2, 30, 40 };
2035 var b: @Vector(4, i32) = [4]i32{ 1, 2147483647, 3, 4 };
2136 var x = @maximum(a, b);
......@@ -37,7 +52,6 @@ test "@maximum" {
3752}
3853
3954test "@minimum" {
40 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
4155 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
4256 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
4357 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
......@@ -45,9 +59,25 @@ test "@minimum" {
4559
4660 const S = struct {
4761 fn doTheTest() !void {
48 try expect(@as(i32, -3) == @minimum(@as(i32, -3), @as(i32, 10)));
49 try expect(@as(f32, 0.68) == @minimum(@as(f32, 3.2), @as(f32, 0.68)));
62 var x: i32 = 10;
63 var y: f32 = 0.68;
64 try expect(@as(i32, -3) == @minimum(@as(i32, -3), x));
65 try expect(@as(f32, 0.68) == @minimum(@as(f32, 3.2), y));
66 }
67 };
68 try S.doTheTest();
69 comptime try S.doTheTest();
70}
71
72test "@minimum for vectors" {
73 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
74 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
75 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
76 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
77 if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO
5078
79 const S = struct {
80 fn doTheTest() !void {
5181 var a: @Vector(4, i32) = [4]i32{ 2147483647, -2, 30, 40 };
5282 var b: @Vector(4, i32) = [4]i32{ 1, 2147483647, 3, 4 };
5383 var x = @minimum(a, b);
test/behavior/muladd.zig+17-7
......@@ -3,7 +3,6 @@ const expect = @import("std").testing.expect;
33
44test "@mulAdd" {
55 if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO
6 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
76 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
87 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
98 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
......@@ -13,12 +12,6 @@ test "@mulAdd" {
1312}
1413
1514fn testMulAdd() !void {
16 {
17 var a: f16 = 5.5;
18 var b: f16 = 2.5;
19 var c: f16 = 6.25;
20 try expect(@mulAdd(f16, a, b, c) == 20);
21 }
2215 {
2316 var a: f32 = 5.5;
2417 var b: f32 = 2.5;
......@@ -33,6 +26,23 @@ fn testMulAdd() !void {
3326 }
3427}
3528
29test "@mulAdd f16" {
30 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
31 if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO
32 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
33 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
34 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
35 comptime try testMulAdd16();
36 try testMulAdd16();
37}
38
39fn testMulAdd16() !void {
40 var a: f16 = 5.5;
41 var b: f16 = 2.5;
42 var c: f16 = 6.25;
43 try expect(@mulAdd(f16, a, b, c) == 20);
44}
45
3646test "@mulAdd f80" {
3747 if (true) {
3848 // https://github.com/ziglang/zig/issues/11030