test: test bitwidths between 1...8 and 8...16 for mul_with_overflow

This commit is contained in:
Jakub Konka
2022-05-05 21:43:31 +02:00
parent 3cef23129a
commit eab5a1bd5a

View File

@@ -690,6 +690,30 @@ test "extensive @mulWithOverflow" {
if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
{
var a: u5 = 3;
var b: u5 = 10;
var res: u5 = undefined;
try expect(!@mulWithOverflow(u5, a, b, &res));
try expect(res == 30);
b = 11;
try expect(@mulWithOverflow(u5, a, b, &res));
try expect(res == 1);
}
{
var a: i5 = 3;
var b: i5 = -5;
var res: i5 = undefined;
try expect(!@mulWithOverflow(i5, a, b, &res));
try expect(res == -15);
b = -6;
try expect(@mulWithOverflow(i5, a, b, &res));
try expect(res == 14);
}
{
var a: u8 = 3;
var b: u8 = 85;
@@ -715,6 +739,30 @@ test "extensive @mulWithOverflow" {
try expect(res == 127);
}
{
var a: u14 = 3;
var b: u14 = 0x1555;
var res: u14 = undefined;
try expect(!@mulWithOverflow(u14, a, b, &res));
try expect(res == 0x3fff);
b = 0x1556;
try expect(@mulWithOverflow(u14, a, b, &res));
try expect(res == 2);
}
{
var a: i14 = 3;
var b: i14 = -0xaaa;
var res: i14 = undefined;
try expect(!@mulWithOverflow(i14, a, b, &res));
try expect(res == -0x1ffe);
b = -0xaab;
try expect(@mulWithOverflow(i14, a, b, &res));
try expect(res == 0x1fff);
}
{
var a: u16 = 3;
var b: u16 = 0x5555;