zig/lib/std/special/compiler_rt/fixunstfti_test.zig
Andrew Kelley c86589a738 disable f128 compiler_rt tests failing on windows
These were never working with native CPU features. In this branch,
we fix native CPU features not being enabled on Windows, and regress
f128 language features. In the llvm10 branch, all this is fixed,
and the tests are re-enabled.
2020-01-23 02:05:24 -05:00

37 lines
1.2 KiB
Zig

const __fixunstfti = @import("fixunstfti.zig").__fixunstfti;
const testing = @import("std").testing;
fn test__fixunstfti(a: f128, expected: u128) void {
const x = __fixunstfti(a);
testing.expect(x == expected);
}
const inf128 = @bitCast(f128, @as(u128, 0x7fff0000000000000000000000000000));
test "fixunstfti" {
if (@import("std").Target.current.isWindows()) {
// TODO https://github.com/ziglang/zig/issues/508
return error.SkipZigTest;
}
test__fixunstfti(inf128, 0xffffffffffffffffffffffffffffffff);
test__fixunstfti(0.0, 0);
test__fixunstfti(0.5, 0);
test__fixunstfti(0.99, 0);
test__fixunstfti(1.0, 1);
test__fixunstfti(1.5, 1);
test__fixunstfti(1.99, 1);
test__fixunstfti(2.0, 2);
test__fixunstfti(2.01, 2);
test__fixunstfti(-0.01, 0);
test__fixunstfti(-0.99, 0);
test__fixunstfti(0x1.p+128, 0xffffffffffffffffffffffffffffffff);
test__fixunstfti(0x1.FFFFFEp+126, 0x7fffff80000000000000000000000000);
test__fixunstfti(0x1.FFFFFEp+127, 0xffffff00000000000000000000000000);
test__fixunstfti(0x1.FFFFFEp+128, 0xffffffffffffffffffffffffffffffff);
test__fixunstfti(0x1.FFFFFEp+129, 0xffffffffffffffffffffffffffffffff);
}