mirror of
https://github.com/ziglang/zig.git
synced 2026-02-21 16:54:52 +00:00
stage2: add more vector overflow tests
This commit is contained in:
parent
21be3d9166
commit
bb3532e775
@ -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();
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user