aboutsummaryrefslogtreecommitdiff
path: root/test/behavior/math.zig
diff options
context:
space:
mode:
authorDaniele Cocca <daniele.cocca@gmail.com>2022-03-11 11:48:11 +0000
committerDaniele Cocca <daniele.cocca@gmail.com>2022-03-11 23:12:15 +0000
commit226fcd7c709ec664c5d883042cf7beb3026f66cb (patch)
tree200bd4f31e1328d7a94a106a437d3d0ebd0b9569 /test/behavior/math.zig
parent6dcfbfbfb2103082603f34fd5bd7c26616eda8c1 (diff)
downloadzig-226fcd7c709ec664c5d883042cf7beb3026f66cb.tar.gz
zig-226fcd7c709ec664c5d883042cf7beb3026f66cb.zip
CBE: implement clz, ctz for ints <= 128 bits
Diffstat (limited to 'test/behavior/math.zig')
-rw-r--r--test/behavior/math.zig16
1 files changed, 14 insertions, 2 deletions
diff --git a/test/behavior/math.zig b/test/behavior/math.zig
index e06d1bf01a..a8daac54b5 100644
--- a/test/behavior/math.zig
+++ b/test/behavior/math.zig
@@ -65,7 +65,6 @@ test "@clz" {
if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
- if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO
try testClz();
comptime try testClz();
@@ -76,6 +75,20 @@ fn testClz() !void {
try expect(testOneClz(u8, 0b00001010) == 4);
try expect(testOneClz(u8, 0b00011010) == 3);
try expect(testOneClz(u8, 0b00000000) == 8);
+}
+
+test "@clz big ints" {
+ if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
+ if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
+ if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
+ if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
+ if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO
+
+ try testClzBigInts();
+ comptime try testClzBigInts();
+}
+
+fn testClzBigInts() !void {
try expect(testOneClz(u128, 0xffffffffffffffff) == 64);
try expect(testOneClz(u128, 0x10000000000000000) == 63);
}
@@ -130,7 +143,6 @@ test "@ctz" {
if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
- if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO
try testCtz();
comptime try testCtz();