Skip to content

Commit

Permalink
remove workarounds for Windows native CPU features
Browse files Browse the repository at this point in the history
bug fixed in LLVM 10

closes #508
  • Loading branch information
andrewrk committed Feb 7, 2020
1 parent a157622 commit 9e5b248
Show file tree
Hide file tree
Showing 17 changed files with 1 addition and 84 deletions.
4 changes: 0 additions & 4 deletions lib/std/fmt/parse_float.zig
Original file line number Diff line number Diff line change
Expand Up @@ -382,10 +382,6 @@ pub fn parseFloat(comptime T: type, s: []const u8) !T {
}

test "fmt.parseFloat" {
if (std.Target.current.isWindows()) {
// TODO https://github.com/ziglang/zig/issues/508
return error.SkipZigTest;
}
const testing = std.testing;
const expect = testing.expect;
const expectEqual = testing.expectEqual;
Expand Down
4 changes: 0 additions & 4 deletions lib/std/io/test.zig
Original file line number Diff line number Diff line change
Expand Up @@ -547,10 +547,6 @@ fn testSerializerDeserializer(comptime endian: builtin.Endian, comptime packing:
}

test "Serializer/Deserializer generic" {
if (std.Target.current.isWindows()) {
// TODO https://github.com/ziglang/zig/issues/508
return error.SkipZigTest;
}
try testSerializerDeserializer(builtin.Endian.Big, .Byte);
try testSerializerDeserializer(builtin.Endian.Little, .Byte);
try testSerializerDeserializer(builtin.Endian.Big, .Bit);
Expand Down
4 changes: 0 additions & 4 deletions lib/std/math/fabs.zig
Original file line number Diff line number Diff line change
Expand Up @@ -95,10 +95,6 @@ test "math.fabs64.special" {
}

test "math.fabs128.special" {
if (std.Target.current.isWindows()) {
// TODO https://github.com/ziglang/zig/issues/508
return error.SkipZigTest;
}
expect(math.isPositiveInf(fabs(math.inf(f128))));
expect(math.isPositiveInf(fabs(-math.inf(f128))));
expect(math.isNan(fabs(math.nan(f128))));
Expand Down
12 changes: 0 additions & 12 deletions lib/std/math/isinf.zig
Original file line number Diff line number Diff line change
Expand Up @@ -74,10 +74,6 @@ pub fn isNegativeInf(x: var) bool {
}

test "math.isInf" {
if (std.Target.current.isWindows()) {
// TODO https://github.com/ziglang/zig/issues/508
return error.SkipZigTest;
}
expect(!isInf(@as(f16, 0.0)));
expect(!isInf(@as(f16, -0.0)));
expect(!isInf(@as(f32, 0.0)));
Expand All @@ -97,10 +93,6 @@ test "math.isInf" {
}

test "math.isPositiveInf" {
if (std.Target.current.isWindows()) {
// TODO https://github.com/ziglang/zig/issues/508
return error.SkipZigTest;
}
expect(!isPositiveInf(@as(f16, 0.0)));
expect(!isPositiveInf(@as(f16, -0.0)));
expect(!isPositiveInf(@as(f32, 0.0)));
Expand All @@ -120,10 +112,6 @@ test "math.isPositiveInf" {
}

test "math.isNegativeInf" {
if (std.Target.current.isWindows()) {
// TODO https://github.com/ziglang/zig/issues/508
return error.SkipZigTest;
}
expect(!isNegativeInf(@as(f16, 0.0)));
expect(!isNegativeInf(@as(f16, -0.0)));
expect(!isNegativeInf(@as(f32, 0.0)));
Expand Down
4 changes: 0 additions & 4 deletions lib/std/math/isnan.zig
Original file line number Diff line number Diff line change
Expand Up @@ -16,10 +16,6 @@ pub fn isSignalNan(x: var) bool {
}

test "math.isNan" {
if (std.Target.current.isWindows()) {
// TODO https://github.com/ziglang/zig/issues/508
return error.SkipZigTest;
}
expect(isNan(math.nan(f16)));
expect(isNan(math.nan(f32)));
expect(isNan(math.nan(f64)));
Expand Down
8 changes: 0 additions & 8 deletions lib/std/special/compiler_rt/addXf3_test.zig
Original file line number Diff line number Diff line change
Expand Up @@ -31,10 +31,6 @@ fn test__addtf3(a: f128, b: f128, expected_hi: u64, expected_lo: u64) void {
}

test "addtf3" {
if (@import("std").Target.current.isWindows()) {
// TODO https://github.com/ziglang/zig/issues/508
return error.SkipZigTest;
}
test__addtf3(qnan128, 0x1.23456789abcdefp+5, 0x7fff800000000000, 0x0);

// NaN + any = NaN
Expand Down Expand Up @@ -75,10 +71,6 @@ fn test__subtf3(a: f128, b: f128, expected_hi: u64, expected_lo: u64) void {
}

test "subtf3" {
if (@import("std").Target.current.isWindows()) {
// TODO https://github.com/ziglang/zig/issues/508
return error.SkipZigTest;
}
// qNaN - any = qNaN
test__subtf3(qnan128, 0x1.23456789abcdefp+5, 0x7fff800000000000, 0x0);

Expand Down
4 changes: 0 additions & 4 deletions lib/std/special/compiler_rt/fixtfdi_test.zig
Original file line number Diff line number Diff line change
Expand Up @@ -11,10 +11,6 @@ fn test__fixtfdi(a: f128, expected: i64) void {
}

test "fixtfdi" {
if (@import("std").Target.current.isWindows()) {
// TODO https://github.com/ziglang/zig/issues/508
return error.SkipZigTest;
}
//warn("\n", .{});
test__fixtfdi(-math.f128_max, math.minInt(i64));

Expand Down
4 changes: 0 additions & 4 deletions lib/std/special/compiler_rt/fixtfsi_test.zig
Original file line number Diff line number Diff line change
Expand Up @@ -11,10 +11,6 @@ fn test__fixtfsi(a: f128, expected: i32) void {
}

test "fixtfsi" {
if (@import("std").Target.current.isWindows()) {
// TODO https://github.com/ziglang/zig/issues/508
return error.SkipZigTest;
}
//warn("\n", .{});
test__fixtfsi(-math.f128_max, math.minInt(i32));

Expand Down
4 changes: 0 additions & 4 deletions lib/std/special/compiler_rt/fixtfti_test.zig
Original file line number Diff line number Diff line change
Expand Up @@ -11,10 +11,6 @@ fn test__fixtfti(a: f128, expected: i128) void {
}

test "fixtfti" {
if (@import("std").Target.current.isWindows()) {
// TODO https://github.com/ziglang/zig/issues/508
return error.SkipZigTest;
}
//warn("\n", .{});
test__fixtfti(-math.f128_max, math.minInt(i128));

Expand Down
4 changes: 0 additions & 4 deletions lib/std/special/compiler_rt/fixunstfdi_test.zig
Original file line number Diff line number Diff line change
Expand Up @@ -7,10 +7,6 @@ fn test__fixunstfdi(a: f128, expected: u64) void {
}

test "fixunstfdi" {
if (@import("std").Target.current.isWindows()) {
// TODO https://github.com/ziglang/zig/issues/508
return error.SkipZigTest;
}
test__fixunstfdi(0.0, 0);

test__fixunstfdi(0.5, 0);
Expand Down
4 changes: 0 additions & 4 deletions lib/std/special/compiler_rt/fixunstfsi_test.zig
Original file line number Diff line number Diff line change
Expand Up @@ -9,10 +9,6 @@ fn test__fixunstfsi(a: f128, expected: u32) void {
const inf128 = @bitCast(f128, @as(u128, 0x7fff0000000000000000000000000000));

test "fixunstfsi" {
if (@import("std").Target.current.isWindows()) {
// TODO https://github.com/ziglang/zig/issues/508
return error.SkipZigTest;
}
test__fixunstfsi(inf128, 0xffffffff);
test__fixunstfsi(0, 0x0);
test__fixunstfsi(0x1.23456789abcdefp+5, 0x24);
Expand Down
4 changes: 0 additions & 4 deletions lib/std/special/compiler_rt/fixunstfti_test.zig
Original file line number Diff line number Diff line change
Expand Up @@ -9,10 +9,6 @@ fn test__fixunstfti(a: f128, expected: u128) void {
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);
Expand Down
4 changes: 0 additions & 4 deletions lib/std/special/compiler_rt/floattitf_test.zig
Original file line number Diff line number Diff line change
Expand Up @@ -7,10 +7,6 @@ fn test__floattitf(a: i128, expected: f128) void {
}

test "floattitf" {
if (@import("std").Target.current.isWindows()) {
// TODO https://github.com/ziglang/zig/issues/508
return error.SkipZigTest;
}
test__floattitf(0, 0.0);

test__floattitf(1, 1.0);
Expand Down
4 changes: 0 additions & 4 deletions lib/std/special/compiler_rt/floatuntitf_test.zig
Original file line number Diff line number Diff line change
Expand Up @@ -7,10 +7,6 @@ fn test__floatuntitf(a: u128, expected: f128) void {
}

test "floatuntitf" {
if (@import("std").Target.current.isWindows()) {
// TODO https://github.com/ziglang/zig/issues/508
return error.SkipZigTest;
}
test__floatuntitf(0, 0.0);

test__floatuntitf(1, 1.0);
Expand Down
4 changes: 0 additions & 4 deletions lib/std/special/compiler_rt/mulXf3_test.zig
Original file line number Diff line number Diff line change
Expand Up @@ -44,10 +44,6 @@ fn makeNaN128(rand: u64) f128 {
return float_result;
}
test "multf3" {
if (@import("std").Target.current.isWindows()) {
// TODO https://github.com/ziglang/zig/issues/508
return error.SkipZigTest;
}
// qNaN * any = qNaN
test__multf3(qnan128, 0x1.23456789abcdefp+5, 0x7fff800000000000, 0x0);

Expand Down
8 changes: 0 additions & 8 deletions lib/std/special/compiler_rt/truncXfYf2_test.zig
Original file line number Diff line number Diff line change
Expand Up @@ -151,10 +151,6 @@ fn test__trunctfsf2(a: f128, expected: u32) void {
}

test "trunctfsf2" {
if (@import("std").Target.current.isWindows()) {
// TODO https://github.com/ziglang/zig/issues/508
return error.SkipZigTest;
}
// qnan
test__trunctfsf2(@bitCast(f128, @as(u128, 0x7fff800000000000 << 64)), 0x7fc00000);
// nan
Expand Down Expand Up @@ -190,10 +186,6 @@ fn test__trunctfdf2(a: f128, expected: u64) void {
}

test "trunctfdf2" {
if (@import("std").Target.current.isWindows()) {
// TODO https://github.com/ziglang/zig/issues/508
return error.SkipZigTest;
}
// qnan
test__trunctfdf2(@bitCast(f128, @as(u128, 0x7fff800000000000 << 64)), 0x7ff8000000000000);
// nan
Expand Down
5 changes: 1 addition & 4 deletions src-self-hosted/compilation.zig
Original file line number Diff line number Diff line change
Expand Up @@ -451,14 +451,11 @@ pub const Compilation = struct {

const reloc_mode = if (is_static) llvm.RelocStatic else llvm.RelocPIC;

// LLVM creates invalid binaries on Windows sometimes.
// See https://github.com/ziglang/zig/issues/508
// As a workaround we do not use target native features on Windows.
var target_specific_cpu_args: ?[*:0]u8 = null;
var target_specific_cpu_features: ?[*:0]u8 = null;
defer llvm.DisposeMessage(target_specific_cpu_args);
defer llvm.DisposeMessage(target_specific_cpu_features);
if (target == Target.Native and !target.isWindows()) {
if (target == Target.Native) {
target_specific_cpu_args = llvm.GetHostCPUName() orelse return error.OutOfMemory;
target_specific_cpu_features = llvm.GetNativeFeatures() orelse return error.OutOfMemory;
}
Expand Down

0 comments on commit 9e5b248

Please sign in to comment.