diff options
Diffstat (limited to 'lib/std/special/compiler_rt/fixunstfsi_test.zig')
| -rw-r--r-- | lib/std/special/compiler_rt/fixunstfsi_test.zig | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/lib/std/special/compiler_rt/fixunstfsi_test.zig b/lib/std/special/compiler_rt/fixunstfsi_test.zig new file mode 100644 index 0000000000..e709636912 --- /dev/null +++ b/lib/std/special/compiler_rt/fixunstfsi_test.zig @@ -0,0 +1,22 @@ +const __fixunstfsi = @import("fixunstfsi.zig").__fixunstfsi; +const testing = @import("std").testing; + +fn test__fixunstfsi(a: f128, expected: u32) void { + const x = __fixunstfsi(a); + testing.expect(x == expected); +} + +const inf128 = @bitCast(f128, u128(0x7fff0000000000000000000000000000)); + +test "fixunstfsi" { + test__fixunstfsi(inf128, 0xffffffff); + test__fixunstfsi(0, 0x0); + test__fixunstfsi(0x1.23456789abcdefp+5, 0x24); + test__fixunstfsi(0x1.23456789abcdefp-3, 0x0); + test__fixunstfsi(0x1.23456789abcdefp+20, 0x123456); + test__fixunstfsi(0x1.23456789abcdefp+40, 0xffffffff); + test__fixunstfsi(0x1.23456789abcdefp+256, 0xffffffff); + test__fixunstfsi(-0x1.23456789abcdefp+3, 0x0); + + test__fixunstfsi(0x1.p+32, 0xFFFFFFFF); +} |
