aboutsummaryrefslogtreecommitdiff
path: root/test/behavior/int_div.zig
diff options
context:
space:
mode:
authorJacob Young <jacobly0@users.noreply.github.com>2023-03-07 02:11:49 -0500
committerJacob Young <jacobly0@users.noreply.github.com>2023-03-07 03:00:08 -0500
commitc1d16a2b80e258a126ed496dab09a8a7c26f8468 (patch)
tree61f9e813ef2a078cce08ad216c07a41f80947549 /test/behavior/int_div.zig
parent6218e4004608000ba2e42e07ed1bd56745626820 (diff)
downloadzig-c1d16a2b80e258a126ed496dab09a8a7c26f8468.tar.gz
zig-c1d16a2b80e258a126ed496dab09a8a7c26f8468.zip
compiler_rt: fix rare case in udivei4
Unsigned integers are never less than zero, and so zig helpfully deleted the entire case. :D Closes #14816
Diffstat (limited to 'test/behavior/int_div.zig')
-rw-r--r--test/behavior/int_div.zig20
1 files changed, 20 insertions, 0 deletions
diff --git a/test/behavior/int_div.zig b/test/behavior/int_div.zig
index 6ae794d377..c8b600ba03 100644
--- a/test/behavior/int_div.zig
+++ b/test/behavior/int_div.zig
@@ -91,3 +91,23 @@ fn mod(comptime T: type, a: T, b: T) T {
fn rem(comptime T: type, a: T, b: T) T {
return @rem(a, b);
}
+
+test "large integer division" {
+ if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
+ if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
+ if (builtin.zig_backend == .stage2_c) return error.SkipZigTest;
+ if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest;
+ if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest;
+ if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest;
+
+ {
+ var numerator: u256 = 99999999999999999997315645440;
+ var divisor: u256 = 10000000000000000000000000000;
+ try expect(numerator / divisor == 9);
+ }
+ {
+ var numerator: u256 = 99999999999999999999000000000000000000000;
+ var divisor: u256 = 10000000000000000000000000000000000000000;
+ try expect(numerator / divisor == 9);
+ }
+}