authorgravatar for liljaanton2001@gmail.comantlilja <liljaanton2001@gmail.com> 2023-07-07 20:41:33+02:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2023-07-12 15:35:57-07:00
loga0ec2266fe2bd8a986795c6634407a6f7df9a50f
tree2b8b917ba2fea35efba7b5c133c1c3432ece78ad
parent16d17addcbc0b217b0b575928a2b2690be81a736

Update tests to new splat syntax


9 files changed, 44 insertions(+), 46 deletions(-)

test/behavior/bitcast.zig+1-1
......@@ -396,7 +396,7 @@ test "bitcast vector to integer and back" {
396396 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
397397
398398 const arr: [16]bool = [_]bool{ true, false } ++ [_]bool{true} ** 14;
399 var x = @splat(16, true);
399 var x: @Vector(16, bool) = @splat(true);
400400 x[1] = false;
401401 try expect(@as(u16, @bitCast(x)) == comptime @as(u16, @bitCast(@as(@Vector(16, bool), arr))));
402402}
test/behavior/cast.zig+1-1
......@@ -639,7 +639,7 @@ test "vector casts" {
639639 }
640640
641641 fn doTheTestFloat() !void {
642 var vec = @splat(2, @as(f32, 1234.0));
642 var vec: @Vector(2, f32) = @splat(1234.0);
643643 var wider: @Vector(2, f64) = vec;
644644 try expect(wider[0] == 1234.0);
645645 try expect(wider[1] == 1234.0);
test/behavior/math.zig+16-10
......@@ -111,13 +111,17 @@ test "@clz vectors" {
111111}
112112
113113fn testClzVectors() !void {
114 const Vu4 = @Vector(64, u4);
115 const Vu8 = @Vector(64, u8);
116 const Vu128 = @Vector(64, u128);
117
114118 @setEvalBranchQuota(10_000);
115 try testOneClzVector(u8, 64, @splat(64, @as(u8, 0b10001010)), @splat(64, @as(u4, 0)));
116 try testOneClzVector(u8, 64, @splat(64, @as(u8, 0b00001010)), @splat(64, @as(u4, 4)));
117 try testOneClzVector(u8, 64, @splat(64, @as(u8, 0b00011010)), @splat(64, @as(u4, 3)));
118 try testOneClzVector(u8, 64, @splat(64, @as(u8, 0b00000000)), @splat(64, @as(u4, 8)));
119 try testOneClzVector(u128, 64, @splat(64, @as(u128, 0xffffffffffffffff)), @splat(64, @as(u8, 64)));
120 try testOneClzVector(u128, 64, @splat(64, @as(u128, 0x10000000000000000)), @splat(64, @as(u8, 63)));
119 try testOneClzVector(u8, 64, @as(Vu8, @splat(0b10001010)), @as(Vu4, @splat(0)));
120 try testOneClzVector(u8, 64, @as(Vu8, @splat(0b00001010)), @as(Vu4, @splat(4)));
121 try testOneClzVector(u8, 64, @as(Vu8, @splat(0b00011010)), @as(Vu4, @splat(3)));
122 try testOneClzVector(u8, 64, @as(Vu8, @splat(0b00000000)), @as(Vu4, @splat(8)));
123 try testOneClzVector(u128, 64, @as(Vu128, @splat(0xffffffffffffffff)), @as(Vu8, @splat(64)));
124 try testOneClzVector(u128, 64, @as(Vu128, @splat(0x10000000000000000)), @as(Vu8, @splat(63)));
121125}
122126
123127fn testOneClzVector(
......@@ -180,11 +184,13 @@ test "@ctz vectors" {
180184}
181185
182186fn testCtzVectors() !void {
187 const Vu4 = @Vector(64, u4);
188 const Vu8 = @Vector(64, u8);
183189 @setEvalBranchQuota(10_000);
184 try testOneCtzVector(u8, 64, @splat(64, @as(u8, 0b10100000)), @splat(64, @as(u4, 5)));
185 try testOneCtzVector(u8, 64, @splat(64, @as(u8, 0b10001010)), @splat(64, @as(u4, 1)));
186 try testOneCtzVector(u8, 64, @splat(64, @as(u8, 0b00000000)), @splat(64, @as(u4, 8)));
187 try testOneCtzVector(u16, 64, @splat(64, @as(u16, 0b00000000)), @splat(64, @as(u5, 16)));
190 try testOneCtzVector(u8, 64, @as(Vu8, @splat(0b10100000)), @as(Vu4, @splat(5)));
191 try testOneCtzVector(u8, 64, @as(Vu8, @splat(0b10001010)), @as(Vu4, @splat(1)));
192 try testOneCtzVector(u8, 64, @as(Vu8, @splat(0b00000000)), @as(Vu4, @splat(8)));
193 try testOneCtzVector(u16, 64, @as(@Vector(64, u16), @splat(0b00000000)), @as(@Vector(64, u5), @splat(16)));
188194}
189195
190196fn testOneCtzVector(
test/behavior/vector.zig+21-18
......@@ -299,8 +299,7 @@ test "vector @splat" {
299299 const S = struct {
300300 fn testForT(comptime N: comptime_int, v: anytype) !void {
301301 const T = @TypeOf(v);
302 var vec = @splat(N, v);
303 try expect(@Vector(N, T) == @TypeOf(vec));
302 var vec: @Vector(N, T) = @splat(v);
304303 var as_array = @as([N]T, vec);
305304 for (as_array) |elem| try expect(v == elem);
306305 }
......@@ -458,26 +457,28 @@ test "vector comparison operators" {
458457 const S = struct {
459458 fn doTheTest() !void {
460459 {
461 var v1: @Vector(4, bool) = [_]bool{ true, false, true, false };
462 var v2: @Vector(4, bool) = [_]bool{ false, true, false, true };
463 try expect(mem.eql(bool, &@as([4]bool, @splat(4, true)), &@as([4]bool, v1 == v1)));
464 try expect(mem.eql(bool, &@as([4]bool, @splat(4, false)), &@as([4]bool, v1 == v2)));
465 try expect(mem.eql(bool, &@as([4]bool, @splat(4, true)), &@as([4]bool, v1 != v2)));
466 try expect(mem.eql(bool, &@as([4]bool, @splat(4, false)), &@as([4]bool, v2 != v2)));
460 const V = @Vector(4, bool);
461 var v1: V = [_]bool{ true, false, true, false };
462 var v2: V = [_]bool{ false, true, false, true };
463 try expect(mem.eql(bool, &@as([4]bool, @as(V, @splat(true))), &@as([4]bool, v1 == v1)));
464 try expect(mem.eql(bool, &@as([4]bool, @as(V, @splat(false))), &@as([4]bool, v1 == v2)));
465 try expect(mem.eql(bool, &@as([4]bool, @as(V, @splat(true))), &@as([4]bool, v1 != v2)));
466 try expect(mem.eql(bool, &@as([4]bool, @as(V, @splat(false))), &@as([4]bool, v2 != v2)));
467467 }
468468 {
469 var v1 = @splat(4, @as(u32, 0xc0ffeeee));
469 const V = @Vector(4, bool);
470 var v1: @Vector(4, u32) = @splat(0xc0ffeeee);
470471 var v2: @Vector(4, c_uint) = v1;
471 var v3 = @splat(4, @as(u32, 0xdeadbeef));
472 try expect(mem.eql(bool, &@as([4]bool, @splat(4, true)), &@as([4]bool, v1 == v2)));
473 try expect(mem.eql(bool, &@as([4]bool, @splat(4, false)), &@as([4]bool, v1 == v3)));
474 try expect(mem.eql(bool, &@as([4]bool, @splat(4, true)), &@as([4]bool, v1 != v3)));
475 try expect(mem.eql(bool, &@as([4]bool, @splat(4, false)), &@as([4]bool, v1 != v2)));
472 var v3: @Vector(4, u32) = @splat(0xdeadbeef);
473 try expect(mem.eql(bool, &@as([4]bool, @as(V, @splat(true))), &@as([4]bool, v1 == v2)));
474 try expect(mem.eql(bool, &@as([4]bool, @as(V, @splat(false))), &@as([4]bool, v1 == v3)));
475 try expect(mem.eql(bool, &@as([4]bool, @as(V, @splat(true))), &@as([4]bool, v1 != v3)));
476 try expect(mem.eql(bool, &@as([4]bool, @as(V, @splat(false))), &@as([4]bool, v1 != v2)));
476477 }
477478 {
478479 // Comptime-known LHS/RHS
479480 var v1: @Vector(4, u32) = [_]u32{ 2, 1, 2, 1 };
480 const v2 = @splat(4, @as(u32, 2));
481 const v2: @Vector(4, u32) = @splat(2);
481482 const v3: @Vector(4, bool) = [_]bool{ true, false, true, false };
482483 try expect(mem.eql(bool, &@as([4]bool, v3), &@as([4]bool, v1 == v2)));
483484 try expect(mem.eql(bool, &@as([4]bool, v3), &@as([4]bool, v2 == v1)));
......@@ -847,8 +848,10 @@ test "vector @reduce comptime" {
847848 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
848849 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
849850
850 const value = @Vector(4, i32){ 1, -1, 1, -1 };
851 const result = value > @splat(4, @as(i32, 0));
851 const V = @Vector(4, i32);
852
853 const value = V{ 1, -1, 1, -1 };
854 const result = value > @as(V, @splat(0));
852855 // result is { true, false, true, false };
853856 try comptime expect(@TypeOf(result) == @Vector(4, bool));
854857 const is_all_true = @reduce(.And, result);
......@@ -1270,7 +1273,7 @@ test "array operands to shuffle are coerced to vectors" {
12701273 const mask = [5]i32{ -1, 0, 1, 2, 3 };
12711274
12721275 var a = [5]u32{ 3, 5, 7, 9, 0 };
1273 var b = @shuffle(u32, a, @splat(5, @as(u24, 0)), mask);
1276 var b = @shuffle(u32, a, @as(@Vector(5, u24), @splat(0)), mask);
12741277 try expectEqual([_]u32{ 0, 3, 5, 7, 9 }, b);
12751278}
12761279
test/cases/compile_errors/bad_splat_type.zig deleted-11
......@@ -1,11 +0,0 @@
1export fn entry() void {
2 const c = 4;
3 var v = @splat(4, c);
4 _ = v;
5}
6
7// error
8// backend=stage2
9// target=native
10//
11// :3:23: error: expected integer, float, bool, or pointer for the vector element type; found 'comptime_int'
test/cases/compile_errors/branch_in_comptime_only_scope_uses_condbr_inline.zig+2-2
......@@ -1,13 +1,13 @@
11pub export fn entry1() void {
22 var x: u32 = 3;
3 _ = @shuffle(u32, [_]u32{0}, @splat(1, @as(u32, 0)), [_]i8{
3 _ = @shuffle(u32, [_]u32{0}, @as(@Vector(1, u32), @splat(0)), [_]i8{
44 if (x > 1) 1 else -1,
55 });
66}
77
88pub export fn entry2() void {
99 var y: ?i8 = -1;
10 _ = @shuffle(u32, [_]u32{0}, @splat(1, @as(u32, 0)), [_]i8{
10 _ = @shuffle(u32, [_]u32{0}, @as(@Vector(1, u32), @splat(0)), [_]i8{
1111 y orelse 1,
1212 });
1313}
test/cases/safety/signed-unsigned vector cast.zig +1-1
......@@ -9,7 +9,7 @@ pub fn panic(message: []const u8, stack_trace: ?*std.builtin.StackTrace, _: ?usi
99}
1010
1111pub fn main() !void {
12 var x = @splat(4, @as(i32, -2147483647));
12 var x: @Vector(4, i32) = @splat(-2147483647);
1313 var y: @Vector(4, u32) = @intCast(x);
1414 _ = y;
1515 return error.TestFailed;
test/cases/safety/truncating vector cast.zig +1-1
......@@ -9,7 +9,7 @@ pub fn panic(message: []const u8, stack_trace: ?*std.builtin.StackTrace, _: ?usi
99}
1010
1111pub fn main() !void {
12 var x = @splat(4, @as(u32, 0xdeadbeef));
12 var x: @Vector(4, u32) = @splat(0xdeadbeef);
1313 var y: @Vector(4, u16) = @intCast(x);
1414 _ = y;
1515 return error.TestFailed;
test/cases/safety/unsigned-signed vector cast.zig +1-1
......@@ -9,7 +9,7 @@ pub fn panic(message: []const u8, stack_trace: ?*std.builtin.StackTrace, _: ?usi
99}
1010
1111pub fn main() !void {
12 var x = @splat(4, @as(u32, 0x80000000));
12 var x: @Vector(4, u32) = @splat(0x80000000);
1313 var y: @Vector(4, i32) = @intCast(x);
1414 _ = y;
1515 return error.TestFailed;