authorgravatar for jhc@dismail.deJimmi Holst Christensen <jhc@dismail.de> 2019-02-13 11:40:32+01:00
committergravatar for jhc@dismail.deJimmi Holst Christensen <jhc@dismail.de> 2019-02-13 11:40:32+01:00
log53297a1bd09d4a4499117c1868d8448f007b12d9
tree5ea60487a2b7193df157640b611776236c704ac9
parentc7b9ab985c6a6a83410e17862609a87ac18e930d

We already support vector bit operators, so let's test it


1 files changed, 14 insertions(+), 0 deletions(-)

test/stage1/behavior/vector.zig+14
...@@ -29,3 +29,17 @@ test "vector float operators" {...@@ -29,3 +29,17 @@ test "vector float operators" {
29 S.doTheTest();29 S.doTheTest();
30 comptime S.doTheTest();30 comptime S.doTheTest();
31}31}
32
33test "vector bit operators" {
34 const S = struct {
35 fn doTheTest() void {
36 const v: @Vector(4, u8) = [4]u8{ 0b10101010, 0b10101010, 0b10101010, 0b10101010 };
37 const x: @Vector(4, u8) = [4]u8{ 0b11110000, 0b00001111, 0b10101010, 0b01010101 };
38 expect(mem.eql(u8, ([4]u8)(v ^ x), [4]u8{ 0b01011010, 0b10100101, 0b00000000, 0b11111111 }));
39 expect(mem.eql(u8, ([4]u8)(v | x), [4]u8{ 0b11111010, 0b10101111, 0b10101010, 0b11111111 }));
40 expect(mem.eql(u8, ([4]u8)(v & x), [4]u8{ 0b10100000, 0b00001010, 0b10101010, 0b00000000 }));
41 }
42 };
43 S.doTheTest();
44 comptime S.doTheTest();
45}