| ... | @@ -689,12 +689,24 @@ test "f128 at compile time is lossy" { | ... | @@ -689,12 +689,24 @@ test "f128 at compile time is lossy" { |
| 689 | } | 689 | } |
| 690 | | 690 | |
| 691 | test "comptime fixed-width float zero divided by zero produces NaN" { | 691 | test "comptime fixed-width float zero divided by zero produces NaN" { |
| | 692 | if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO |
| | 693 | if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO |
| | 694 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO |
| | 695 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO |
| | 696 | if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO |
| | 697 | |
| 692 | inline for (.{ f16, f32, f64, f80, f128 }) |F| { | 698 | inline for (.{ f16, f32, f64, f80, f128 }) |F| { |
| 693 | try expect(math.isNan(@as(F, 0) / @as(F, 0))); | 699 | try expect(math.isNan(@as(F, 0) / @as(F, 0))); |
| 694 | } | 700 | } |
| 695 | } | 701 | } |
| 696 | | 702 | |
| 697 | test "comptime fixed-width float non-zero divided by zero produces signed Inf" { | 703 | test "comptime fixed-width float non-zero divided by zero produces signed Inf" { |
| | 704 | if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO |
| | 705 | if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO |
| | 706 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO |
| | 707 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO |
| | 708 | if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO |
| | 709 | |
| 698 | inline for (.{ f16, f32, f64, f80, f128 }) |F| { | 710 | inline for (.{ f16, f32, f64, f80, f128 }) |F| { |
| 699 | const pos = @as(F, 1) / @as(F, 0); | 711 | const pos = @as(F, 1) / @as(F, 0); |
| 700 | const neg = @as(F, -1) / @as(F, 0); | 712 | const neg = @as(F, -1) / @as(F, 0); |