fn test__shlo_limb64(comptime T: type, a: T, shift: u16, expected: struct
fn test__shlo_limb64(comptime T: type, a: T, shift: u16, expected: struct { T, bool }) !void { const int_info = @typeInfo(T).int; const is_signed = int_info.signedness == .signed; var a_limbs = asLimbs(a); var out: Limbs(T) = undefined; const overflow = __shlo_limb64(&out, &a_limbs, shift, is_signed, int_info.bits); const expected_limbs = asLimbs(expected[0]); try testing.expectEqual(expected_limbs, out); try testing.expectEqual(expected[1], overflow); }