authorgravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2022-03-03 01:23:50-07:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2022-03-03 01:24:26-07:00
log0a4f58490f518a8d139a7c69773276bcc2441825
tree9ce2fc18de2228c91f4e7cd8946e49168058ff16
parent67ba4c5679cf84a81dc92980ef033ef69f442ed4

behavior tests cleanup: promote math.zig


2 files changed, 182 insertions(+), 16 deletions(-)

test/behavior.zig+1-1
......@@ -65,6 +65,7 @@ test {
6565 _ = @import("behavior/int_div.zig");
6666 _ = @import("behavior/inttoptr.zig");
6767 _ = @import("behavior/ir_block_deps.zig");
68 _ = @import("behavior/math.zig");
6869 _ = @import("behavior/member_func.zig");
6970 _ = @import("behavior/muladd.zig");
7071 _ = @import("behavior/namespace_depends_on_compile_var.zig");
......@@ -117,7 +118,6 @@ test {
117118 if (builtin.zig_backend != .stage2_c) {
118119 // Tests that pass for stage1 and the llvm backend.
119120 _ = @import("behavior/atomics.zig");
120 _ = @import("behavior/math.zig");
121121 _ = @import("behavior/maximum_minimum.zig");
122122 _ = @import("behavior/popcount.zig");
123123 _ = @import("behavior/saturating_arithmetic.zig");
test/behavior/math.zig+181-15
......@@ -9,6 +9,10 @@ const mem = std.mem;
99const has_f80_rt = builtin.cpu.arch == .x86_64;
1010
1111test "assignment operators" {
12 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
13 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
14 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
15
1216 var i: u32 = 0;
1317 i += 5;
1418 try expect(i == 5);
......@@ -57,6 +61,12 @@ fn assertFalse(b: bool) !void {
5761}
5862
5963test "@clz" {
64 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
65 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
66 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
67 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
68 if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO
69
6070 try testClz();
6171 comptime try testClz();
6272}
......@@ -75,6 +85,12 @@ fn testOneClz(comptime T: type, x: T) u32 {
7585}
7686
7787test "@clz vectors" {
88 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
89 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
90 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
91 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
92 if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO
93
7894 try testClzVectors();
7995 comptime try testClzVectors();
8096}
......@@ -110,6 +126,12 @@ fn expectVectorsEqual(a: anytype, b: anytype) !void {
110126}
111127
112128test "@ctz" {
129 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
130 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
131 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
132 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
133 if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO
134
113135 try testCtz();
114136 comptime try testCtz();
115137}
......@@ -126,6 +148,12 @@ fn testOneCtz(comptime T: type, x: T) u32 {
126148}
127149
128150test "@ctz vectors" {
151 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
152 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
153 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
154 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
155 if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO
156
129157 if (builtin.zig_backend == .stage2_llvm and builtin.cpu.arch == .aarch64) {
130158 // TODO this is tripping an LLVM assert:
131159 // zig: /home/andy/Downloads/llvm-project-13/llvm/lib/CodeGen/GlobalISel/LegalizerInfo.cpp:198: llvm::LegalizeActionStep llvm::LegalizeRuleSet::apply(const llvm::LegalityQuery&) const: Assertion `mutationIsSane(Rule, Query, Mutation) && "legality mutation invalid for match"' failed.
......@@ -163,6 +191,11 @@ test "const number literal" {
163191const ten = 10;
164192
165193test "float equality" {
194 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
195 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
196 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
197 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
198
166199 const x: f64 = 0.012;
167200 const y: f64 = x + 1.0;
168201
......@@ -179,6 +212,15 @@ test "hex float literal parsing" {
179212 comptime try expect(0x1.0 == 1.0);
180213}
181214
215test "hex float literal within range" {
216 const a = 0x1.0p16383;
217 const b = 0x0.1p16387;
218 const c = 0x1.0p-16382;
219 _ = a;
220 _ = b;
221 _ = c;
222}
223
182224test "quad hex float literal parsing in range" {
183225 const a = 0x1.af23456789bbaaab347645365cdep+5;
184226 const b = 0x1.dedafcff354b6ae9758763545432p-9;
......@@ -218,15 +260,6 @@ test "underscore separator parsing" {
218260 try expect(0x1_2_3_4_5_6_7_8.9_A_B_C_D_E_F_0p-0_0_0_1_0 == 0x12345678.9ABCDEF0p-10);
219261}
220262
221test "hex float literal within range" {
222 const a = 0x1.0p16383;
223 const b = 0x0.1p16387;
224 const c = 0x1.0p-16382;
225 _ = a;
226 _ = b;
227 _ = c;
228}
229
230263test "comptime_int addition" {
231264 comptime {
232265 try expect(35361831660712422535336160538497375248 + 101752735581729509668353361206450473702 == 137114567242441932203689521744947848950);
......@@ -277,6 +310,11 @@ test "comptime_int multi-limb partial shift right" {
277310}
278311
279312test "xor" {
313 if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO
314 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
315 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
316 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
317
280318 try test_xor();
281319 comptime try test_xor();
282320}
......@@ -319,6 +357,11 @@ fn comptimeAdd(comptime a: comptime_int, comptime b: comptime_int) comptime_int
319357}
320358
321359test "binary not" {
360 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
361 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
362 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
363 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
364
322365 try expect(comptime x: {
323366 break :x ~@as(u16, 0b1010101010101010) == 0b0101010101010101;
324367 });
......@@ -333,6 +376,12 @@ fn testBinaryNot(x: u16) !void {
333376}
334377
335378test "division" {
379 if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO
380 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
381 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
382 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
383 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
384
336385 try testDivision();
337386 comptime try testDivision();
338387}
......@@ -427,6 +476,10 @@ fn mod(comptime T: type, a: T, b: T) T {
427476}
428477
429478test "unsigned wrapping" {
479 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
480 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
481 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
482
430483 try testUnsignedWrappingEval(maxInt(u32));
431484 comptime try testUnsignedWrappingEval(maxInt(u32));
432485}
......@@ -438,6 +491,10 @@ fn testUnsignedWrappingEval(x: u32) !void {
438491}
439492
440493test "signed wrapping" {
494 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
495 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
496 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
497
441498 try testSignedWrappingEval(maxInt(i32));
442499 comptime try testSignedWrappingEval(maxInt(i32));
443500}
......@@ -449,6 +506,10 @@ fn testSignedWrappingEval(x: i32) !void {
449506}
450507
451508test "signed negation wrapping" {
509 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
510 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
511 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
512
452513 try testSignedNegationWrappingEval(minInt(i16));
453514 comptime try testSignedNegationWrappingEval(minInt(i16));
454515}
......@@ -459,6 +520,10 @@ fn testSignedNegationWrappingEval(x: i16) !void {
459520}
460521
461522test "unsigned negation wrapping" {
523 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
524 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
525 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
526
462527 try testUnsignedNegationWrappingEval(1);
463528 comptime try testUnsignedNegationWrappingEval(1);
464529}
......@@ -469,6 +534,9 @@ fn testUnsignedNegationWrappingEval(x: u16) !void {
469534}
470535
471536test "unsigned 64-bit division" {
537 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
538 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
539
472540 try test_u64_div();
473541 comptime try test_u64_div();
474542}
......@@ -495,6 +563,10 @@ test "bit shift a u1" {
495563}
496564
497565test "truncating shift right" {
566 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
567 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
568 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
569
498570 try testShrTrunc(maxInt(u16));
499571 comptime try testShrTrunc(maxInt(u16));
500572}
......@@ -504,6 +576,12 @@ fn testShrTrunc(x: u16) !void {
504576}
505577
506578test "f128" {
579 if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO
580 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
581 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
582 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
583 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
584
507585 try test_f128();
508586 comptime try test_f128();
509587}
......@@ -527,6 +605,12 @@ fn should_not_be_zero(x: f128) !void {
527605}
528606
529607test "128-bit multiplication" {
608 if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO
609 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
610 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
611 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
612 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
613
530614 var a: i128 = 3;
531615 var b: i128 = 2;
532616 var c = a * b;
......@@ -534,6 +618,12 @@ test "128-bit multiplication" {
534618}
535619
536620test "@addWithOverflow" {
621 if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO
622 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
623 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
624 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
625 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
626
537627 var result: u8 = undefined;
538628 try expect(@addWithOverflow(u8, 250, 100, &result));
539629 try expect(result == 94);
......@@ -550,6 +640,12 @@ test "@addWithOverflow" {
550640}
551641
552642test "small int addition" {
643 if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO
644 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
645 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
646 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
647 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
648
553649 var x: u2 = 0;
554650 try expect(x == 0);
555651
......@@ -569,6 +665,12 @@ test "small int addition" {
569665}
570666
571667test "@mulWithOverflow" {
668 if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO
669 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
670 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
671 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
672 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
673
572674 var result: u8 = undefined;
573675 try expect(@mulWithOverflow(u8, 86, 3, &result));
574676 try expect(result == 2);
......@@ -585,6 +687,12 @@ test "@mulWithOverflow" {
585687}
586688
587689test "@subWithOverflow" {
690 if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO
691 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
692 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
693 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
694 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
695
588696 var result: u8 = undefined;
589697 try expect(@subWithOverflow(u8, 1, 2, &result));
590698 try expect(result == 255);
......@@ -601,6 +709,12 @@ test "@subWithOverflow" {
601709}
602710
603711test "@shlWithOverflow" {
712 if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO
713 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
714 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
715 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
716 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
717
604718 var result: u16 = undefined;
605719 try expect(@shlWithOverflow(u16, 0b0010111111111111, 3, &result));
606720 try expect(result == 0b0111111111111000);
......@@ -617,6 +731,12 @@ test "@shlWithOverflow" {
617731}
618732
619733test "overflow arithmetic with u0 values" {
734 if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO
735 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
736 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
737 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
738 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
739
620740 var result: u0 = undefined;
621741 try expect(!@addWithOverflow(u0, 0, 0, &result));
622742 try expect(result == 0);
......@@ -629,6 +749,8 @@ test "overflow arithmetic with u0 values" {
629749}
630750
631751test "allow signed integer division/remainder when values are comptime known and positive or exact" {
752 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
753
632754 try expect(5 / 3 == 1);
633755 try expect(-5 / -3 == 1);
634756 try expect(-6 / 3 == -2);
......@@ -636,15 +758,19 @@ test "allow signed integer division/remainder when values are comptime known and
636758 try expect(5 % 3 == 2);
637759 try expect(-6 % 3 == 0);
638760
639 if (builtin.zig_backend != .stage1) {
640 var undef: i32 = undefined;
641 if (0 % undef != 0) {
642 @compileError("0 as numerator should return comptime zero independent of denominator");
643 }
761 var undef: i32 = undefined;
762 if (0 % undef != 0) {
763 @compileError("0 as numerator should return comptime zero independent of denominator");
644764 }
645765}
646766
647767test "quad hex float literal parsing accurate" {
768 if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO
769 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
770 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
771 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
772 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
773
648774 const a: f128 = 0x1.1111222233334444555566667777p+0;
649775
650776 // implied 1 is dropped, with an exponent of 0 (0x3fff) after biasing.
......@@ -735,6 +861,10 @@ test "quad hex float literal parsing accurate" {
735861}
736862
737863test "truncating shift left" {
864 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
865 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
866 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
867
738868 try testShlTrunc(maxInt(u16));
739869 comptime try testShlTrunc(maxInt(u16));
740870}
......@@ -744,6 +874,10 @@ fn testShlTrunc(x: u16) !void {
744874}
745875
746876test "exact shift left" {
877 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
878 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
879 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
880
747881 try testShlExact(0b00110101);
748882 comptime try testShlExact(0b00110101);
749883}
......@@ -753,6 +887,10 @@ fn testShlExact(x: u8) !void {
753887}
754888
755889test "exact shift right" {
890 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
891 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
892 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
893
756894 try testShrExact(0b10110100);
757895 comptime try testShrExact(0b10110100);
758896}
......@@ -762,6 +900,10 @@ fn testShrExact(x: u8) !void {
762900}
763901
764902test "shift left/right on u0 operand" {
903 if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO
904 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
905 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
906
765907 const S = struct {
766908 fn doTheTest() !void {
767909 var x: u0 = 0;
......@@ -803,6 +945,12 @@ fn remdiv(comptime T: type) !void {
803945}
804946
805947test "float remainder division using @rem" {
948 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
949 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
950 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
951 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
952 if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO
953
806954 comptime try frem(f16);
807955 comptime try frem(f32);
808956 comptime try frem(f64);
......@@ -832,6 +980,12 @@ fn frem(comptime T: type) !void {
832980}
833981
834982test "float modulo division using @mod" {
983 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
984 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
985 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
986 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
987 if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO
988
835989 comptime try fmod(f16);
836990 comptime try fmod(f32);
837991 comptime try fmod(f64);
......@@ -861,6 +1015,12 @@ fn fmod(comptime T: type) !void {
8611015}
8621016
8631017test "@sqrt" {
1018 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
1019 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
1020 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
1021 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
1022 if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO
1023
8641024 try testSqrt(f64, 12.0);
8651025 comptime try testSqrt(f64, 12.0);
8661026 try testSqrt(f32, 13.0);
......@@ -1046,6 +1206,12 @@ test "vector integer addition" {
10461206}
10471207
10481208test "NaN comparison" {
1209 if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO
1210 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
1211 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
1212 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
1213 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
1214
10491215 try testNanEqNan(f16);
10501216 try testNanEqNan(f32);
10511217 try testNanEqNan(f64);
......@@ -1055,7 +1221,7 @@ test "NaN comparison" {
10551221 comptime try testNanEqNan(f64);
10561222 comptime try testNanEqNan(f128);
10571223
1058 // TODO make this pass on all targets
1224 // TODO https://github.com/ziglang/zig/issues/11030
10591225 // try testNanEqNan(f80);
10601226 // comptime try testNanEqNan(f80);
10611227}