diff options
| author | William Sengir <william@sengir.com> | 2022-03-28 10:40:55 -0700 |
|---|---|---|
| committer | Andrew Kelley <andrew@ziglang.org> | 2022-05-16 13:55:26 -0700 |
| commit | bb3532e775bb17fff1630103d4d29a650b7ad5c3 (patch) | |
| tree | 0640803174715ab0b5c3f0b3a505bcc43c47ac06 /test/behavior/vector.zig | |
| parent | 21be3d9166e8ea159ef334243b945bd20ed62652 (diff) | |
| download | zig-bb3532e775bb17fff1630103d4d29a650b7ad5c3.tar.gz zig-bb3532e775bb17fff1630103d4d29a650b7ad5c3.zip | |
stage2: add more vector overflow tests
Diffstat (limited to 'test/behavior/vector.zig')
| -rw-r--r-- | test/behavior/vector.zig | 44 |
1 files changed, 36 insertions, 8 deletions
diff --git a/test/behavior/vector.zig b/test/behavior/vector.zig index e8150dde7a..cbd8787701 100644 --- a/test/behavior/vector.zig +++ b/test/behavior/vector.zig @@ -917,10 +917,30 @@ test "@addWithOverflow" { const S = struct { fn doTheTest() !void { - var result: @Vector(4, u8) = undefined; - var overflow = @addWithOverflow(@Vector(4, u8), @Vector(4, u8){ 250, 250, 250, 250 }, @Vector(4, u8){ 0, 5, 6, 10 }, &result); - var expected: @Vector(4, bool) = .{ false, false, true, true }; - try expect(mem.eql(bool, &@as([4]bool, overflow), &@as([4]bool, expected))); + { + var result: @Vector(4, u8) = undefined; + var overflow = @addWithOverflow(@Vector(4, u8), @Vector(4, u8){ 250, 250, 250, 250 }, @Vector(4, u8){ 0, 5, 6, 10 }, &result); + var expected: @Vector(4, bool) = .{ false, false, true, true }; + try expect(mem.eql(bool, &@as([4]bool, overflow), &@as([4]bool, expected))); + } + { + var result: @Vector(4, i8) = undefined; + var overflow = @addWithOverflow(@Vector(4, i8), @Vector(4, i8){ -125, -125, 125, 125 }, @Vector(4, i8){ -3, -4, 2, 3 }, &result); + var expected: @Vector(4, bool) = .{ false, true, false, true }; + try expect(mem.eql(bool, &@as([4]bool, overflow), &@as([4]bool, expected))); + } + { + var result: @Vector(4, u1) = undefined; + var overflow = @addWithOverflow(@Vector(4, u1), @Vector(4, u1){ 0, 0, 1, 1 }, @Vector(4, u1){ 0, 1, 0, 1 }, &result); + var expected: @Vector(4, bool) = .{ false, false, false, true }; + try expect(mem.eql(bool, &@as([4]bool, overflow), &@as([4]bool, expected))); + } + { + var result: @Vector(4, u0) = undefined; + var overflow = @addWithOverflow(@Vector(4, u0), @Vector(4, u0){ 0, 0, 0, 0 }, @Vector(4, u0){ 0, 0, 0, 0 }, &result); + var expected: @Vector(4, bool) = .{ false, false, false, false }; + try expect(mem.eql(bool, &@as([4]bool, overflow), &@as([4]bool, expected))); + } } }; try S.doTheTest(); @@ -940,10 +960,18 @@ test "@subWithOverflow" { const S = struct { fn doTheTest() !void { - var result: @Vector(4, i8) = undefined; - var overflow = @subWithOverflow(@Vector(4, i8), @Vector(4, i8){ -120, -120, 120, 120 }, @Vector(4, i8){ 8, 9, -7, -8 }, &result); - var expected: @Vector(4, bool) = .{ false, true, false, true }; - try expect(mem.eql(bool, &@as([4]bool, overflow), &@as([4]bool, expected))); + { + var result: @Vector(2, u8) = undefined; + var overflow = @subWithOverflow(@Vector(2, u8), @Vector(2, u8){ 5, 5 }, @Vector(2, u8){ 5, 6 }, &result); + var expected: @Vector(2, bool) = .{ false, true }; + try expect(mem.eql(bool, &@as([2]bool, overflow), &@as([2]bool, expected))); + } + { + var result: @Vector(4, i8) = undefined; + var overflow = @subWithOverflow(@Vector(4, i8), @Vector(4, i8){ -120, -120, 120, 120 }, @Vector(4, i8){ 8, 9, -7, -8 }, &result); + var expected: @Vector(4, bool) = .{ false, true, false, true }; + try expect(mem.eql(bool, &@as([4]bool, overflow), &@as([4]bool, expected))); + } } }; try S.doTheTest(); |
