| ... | ... | @@ -917,10 +917,30 @@ test "@addWithOverflow" { |
| 917 | 917 | |
| 918 | 918 | const S = struct { |
| 919 | 919 | fn doTheTest() !void { |
| 920 | | var result: @Vector(4, u8) = undefined; |
| 921 | | var overflow = @addWithOverflow(@Vector(4, u8), @Vector(4, u8){ 250, 250, 250, 250 }, @Vector(4, u8){ 0, 5, 6, 10 }, &result); |
| 922 | | var expected: @Vector(4, bool) = .{ false, false, true, true }; |
| 923 | | try expect(mem.eql(bool, &@as([4]bool, overflow), &@as([4]bool, expected))); |
| 920 | { |
| 921 | var result: @Vector(4, u8) = undefined; |
| 922 | var overflow = @addWithOverflow(@Vector(4, u8), @Vector(4, u8){ 250, 250, 250, 250 }, @Vector(4, u8){ 0, 5, 6, 10 }, &result); |
| 923 | var expected: @Vector(4, bool) = .{ false, false, true, true }; |
| 924 | try expect(mem.eql(bool, &@as([4]bool, overflow), &@as([4]bool, expected))); |
| 925 | } |
| 926 | { |
| 927 | var result: @Vector(4, i8) = undefined; |
| 928 | var overflow = @addWithOverflow(@Vector(4, i8), @Vector(4, i8){ -125, -125, 125, 125 }, @Vector(4, i8){ -3, -4, 2, 3 }, &result); |
| 929 | var expected: @Vector(4, bool) = .{ false, true, false, true }; |
| 930 | try expect(mem.eql(bool, &@as([4]bool, overflow), &@as([4]bool, expected))); |
| 931 | } |
| 932 | { |
| 933 | var result: @Vector(4, u1) = undefined; |
| 934 | var overflow = @addWithOverflow(@Vector(4, u1), @Vector(4, u1){ 0, 0, 1, 1 }, @Vector(4, u1){ 0, 1, 0, 1 }, &result); |
| 935 | var expected: @Vector(4, bool) = .{ false, false, false, true }; |
| 936 | try expect(mem.eql(bool, &@as([4]bool, overflow), &@as([4]bool, expected))); |
| 937 | } |
| 938 | { |
| 939 | var result: @Vector(4, u0) = undefined; |
| 940 | var overflow = @addWithOverflow(@Vector(4, u0), @Vector(4, u0){ 0, 0, 0, 0 }, @Vector(4, u0){ 0, 0, 0, 0 }, &result); |
| 941 | var expected: @Vector(4, bool) = .{ false, false, false, false }; |
| 942 | try expect(mem.eql(bool, &@as([4]bool, overflow), &@as([4]bool, expected))); |
| 943 | } |
| 924 | 944 | } |
| 925 | 945 | }; |
| 926 | 946 | try S.doTheTest(); |
| ... | ... | @@ -940,10 +960,18 @@ test "@subWithOverflow" { |
| 940 | 960 | |
| 941 | 961 | const S = struct { |
| 942 | 962 | fn doTheTest() !void { |
| 943 | | var result: @Vector(4, i8) = undefined; |
| 944 | | var overflow = @subWithOverflow(@Vector(4, i8), @Vector(4, i8){ -120, -120, 120, 120 }, @Vector(4, i8){ 8, 9, -7, -8 }, &result); |
| 945 | | var expected: @Vector(4, bool) = .{ false, true, false, true }; |
| 946 | | try expect(mem.eql(bool, &@as([4]bool, overflow), &@as([4]bool, expected))); |
| 963 | { |
| 964 | var result: @Vector(2, u8) = undefined; |
| 965 | var overflow = @subWithOverflow(@Vector(2, u8), @Vector(2, u8){ 5, 5 }, @Vector(2, u8){ 5, 6 }, &result); |
| 966 | var expected: @Vector(2, bool) = .{ false, true }; |
| 967 | try expect(mem.eql(bool, &@as([2]bool, overflow), &@as([2]bool, expected))); |
| 968 | } |
| 969 | { |
| 970 | var result: @Vector(4, i8) = undefined; |
| 971 | var overflow = @subWithOverflow(@Vector(4, i8), @Vector(4, i8){ -120, -120, 120, 120 }, @Vector(4, i8){ 8, 9, -7, -8 }, &result); |
| 972 | var expected: @Vector(4, bool) = .{ false, true, false, true }; |
| 973 | try expect(mem.eql(bool, &@as([4]bool, overflow), &@as([4]bool, expected))); |
| 974 | } |
| 947 | 975 | } |
| 948 | 976 | }; |
| 949 | 977 | try S.doTheTest(); |