| ... | @@ -910,32 +910,52 @@ test "comptime float rem int" { | ... | @@ -910,32 +910,52 @@ test "comptime float rem int" { |
| 910 | } | 910 | } |
| 911 | | 911 | |
| 912 | test "remainder division" { | 912 | test "remainder division" { |
| 913 | if (builtin.zig_backend != .stage1) return error.SkipZigTest; // TODO | 913 | if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO |
| | 914 | if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO |
| | 915 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO |
| | 916 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO |
| | 917 | if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO |
| 914 | | 918 | |
| 915 | comptime try remdiv(f16); | 919 | comptime try remdiv(f16); |
| 916 | comptime try remdiv(f32); | 920 | comptime try remdiv(f32); |
| 917 | comptime try remdiv(f64); | 921 | comptime try remdiv(f64); |
| | 922 | comptime try remdiv(f80); |
| 918 | comptime try remdiv(f128); | 923 | comptime try remdiv(f128); |
| 919 | try remdiv(f16); | 924 | try remdiv(f16); |
| 920 | try remdiv(f64); | 925 | try remdiv(f64); |
| | 926 | try remdiv(f80); |
| 921 | try remdiv(f128); | 927 | try remdiv(f128); |
| 922 | } | 928 | } |
| 923 | | 929 | |
| 924 | fn remdiv(comptime T: type) !void { | 930 | fn remdiv(comptime T: type) !void { |
| 925 | try expect(@as(T, 1) == @as(T, 1) % @as(T, 2)); | 931 | try expect(@as(T, 1) == @as(T, 1) % @as(T, 2)); |
| | 932 | try remdivOne(T, 1, 1, 2); |
| | 933 | |
| 926 | try expect(@as(T, 1) == @as(T, 7) % @as(T, 3)); | 934 | try expect(@as(T, 1) == @as(T, 7) % @as(T, 3)); |
| | 935 | try remdivOne(T, 1, 7, 3); |
| | 936 | } |
| | 937 | |
| | 938 | fn remdivOne(comptime T: type, a: T, b: T, c: T) !void { |
| | 939 | try expect(a == @rem(b, c)); |
| | 940 | try expect(a == @mod(b, c)); |
| 927 | } | 941 | } |
| 928 | | 942 | |
| 929 | test "float remainder division using @rem" { | 943 | test "float remainder division using @rem" { |
| 930 | if (builtin.zig_backend != .stage1) return error.SkipZigTest; // TODO | 944 | if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO |
| | 945 | if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO |
| | 946 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO |
| | 947 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO |
| | 948 | if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO |
| 931 | | 949 | |
| 932 | comptime try frem(f16); | 950 | comptime try frem(f16); |
| 933 | comptime try frem(f32); | 951 | comptime try frem(f32); |
| 934 | comptime try frem(f64); | 952 | comptime try frem(f64); |
| | 953 | comptime try frem(f80); |
| 935 | comptime try frem(f128); | 954 | comptime try frem(f128); |
| 936 | try frem(f16); | 955 | try frem(f16); |
| 937 | try frem(f32); | 956 | try frem(f32); |
| 938 | try frem(f64); | 957 | try frem(f64); |
| | 958 | try frem(f80); |
| 939 | try frem(f128); | 959 | try frem(f128); |
| 940 | } | 960 | } |
| 941 | | 961 | |
| ... | @@ -944,29 +964,40 @@ fn frem(comptime T: type) !void { | ... | @@ -944,29 +964,40 @@ fn frem(comptime T: type) !void { |
| 944 | f16 => 1.0, | 964 | f16 => 1.0, |
| 945 | f32 => 0.001, | 965 | f32 => 0.001, |
| 946 | f64 => 0.00001, | 966 | f64 => 0.00001, |
| | 967 | f80 => 0.000001, |
| 947 | f128 => 0.0000001, | 968 | f128 => 0.0000001, |
| 948 | else => unreachable, | 969 | else => unreachable, |
| 949 | }; | 970 | }; |
| 950 | | 971 | |
| 951 | try expect(@fabs(@rem(@as(T, 6.9), @as(T, 4.0)) - @as(T, 2.9)) < epsilon); | 972 | try fremOne(T, 6.9, 4.0, 2.9, epsilon); |
| 952 | try expect(@fabs(@rem(@as(T, -6.9), @as(T, 4.0)) - @as(T, -2.9)) < epsilon); | 973 | try fremOne(T, -6.9, 4.0, -2.9, epsilon); |
| 953 | try expect(@fabs(@rem(@as(T, -5.0), @as(T, 3.0)) - @as(T, -2.0)) < epsilon); | 974 | try fremOne(T, -5.0, 3.0, -2.0, epsilon); |
| 954 | try expect(@fabs(@rem(@as(T, 3.0), @as(T, 2.0)) - @as(T, 1.0)) < epsilon); | 975 | try fremOne(T, 3.0, 2.0, 1.0, epsilon); |
| 955 | try expect(@fabs(@rem(@as(T, 1.0), @as(T, 2.0)) - @as(T, 1.0)) < epsilon); | 976 | try fremOne(T, 1.0, 2.0, 1.0, epsilon); |
| 956 | try expect(@fabs(@rem(@as(T, 0.0), @as(T, 1.0)) - @as(T, 0.0)) < epsilon); | 977 | try fremOne(T, 0.0, 1.0, 0.0, epsilon); |
| 957 | try expect(@fabs(@rem(@as(T, -0.0), @as(T, 1.0)) - @as(T, -0.0)) < epsilon); | 978 | try fremOne(T, -0.0, 1.0, -0.0, epsilon); |
| | 979 | } |
| | 980 | |
| | 981 | fn fremOne(comptime T: type, a: T, b: T, c: T, epsilon: T) !void { |
| | 982 | try expect(@fabs(@rem(a, b) - c) < epsilon); |
| 958 | } | 983 | } |
| 959 | | 984 | |
| 960 | test "float modulo division using @mod" { | 985 | test "float modulo division using @mod" { |
| 961 | if (builtin.zig_backend != .stage1) return error.SkipZigTest; // TODO | 986 | if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO |
| | 987 | if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO |
| | 988 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO |
| | 989 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO |
| | 990 | if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO |
| 962 | | 991 | |
| 963 | comptime try fmod(f16); | 992 | comptime try fmod(f16); |
| 964 | comptime try fmod(f32); | 993 | comptime try fmod(f32); |
| 965 | comptime try fmod(f64); | 994 | comptime try fmod(f64); |
| | 995 | comptime try fmod(f80); |
| 966 | comptime try fmod(f128); | 996 | comptime try fmod(f128); |
| 967 | try fmod(f16); | 997 | try fmod(f16); |
| 968 | try fmod(f32); | 998 | try fmod(f32); |
| 969 | try fmod(f64); | 999 | try fmod(f64); |
| | 1000 | try fmod(f80); |
| 970 | try fmod(f128); | 1001 | try fmod(f128); |
| 971 | } | 1002 | } |
| 972 | | 1003 | |
| ... | @@ -975,17 +1006,22 @@ fn fmod(comptime T: type) !void { | ... | @@ -975,17 +1006,22 @@ fn fmod(comptime T: type) !void { |
| 975 | f16 => 1.0, | 1006 | f16 => 1.0, |
| 976 | f32 => 0.001, | 1007 | f32 => 0.001, |
| 977 | f64 => 0.00001, | 1008 | f64 => 0.00001, |
| | 1009 | f80 => 0.000001, |
| 978 | f128 => 0.0000001, | 1010 | f128 => 0.0000001, |
| 979 | else => unreachable, | 1011 | else => unreachable, |
| 980 | }; | 1012 | }; |
| 981 | | 1013 | |
| 982 | try expect(@fabs(@mod(@as(T, 6.9), @as(T, 4.0)) - @as(T, 2.9)) < epsilon); | 1014 | try fmodOne(T, 6.9, 4.0, 2.9, epsilon); |
| 983 | try expect(@fabs(@mod(@as(T, -6.9), @as(T, 4.0)) - @as(T, 1.1)) < epsilon); | 1015 | try fmodOne(T, -6.9, 4.0, 1.1, epsilon); |
| 984 | try expect(@fabs(@mod(@as(T, -5.0), @as(T, 3.0)) - @as(T, 1.0)) < epsilon); | 1016 | try fmodOne(T, -5.0, 3.0, 1.0, epsilon); |
| 985 | try expect(@fabs(@mod(@as(T, 3.0), @as(T, 2.0)) - @as(T, 1.0)) < epsilon); | 1017 | try fmodOne(T, 3.0, 2.0, 1.0, epsilon); |
| 986 | try expect(@fabs(@mod(@as(T, 1.0), @as(T, 2.0)) - @as(T, 1.0)) < epsilon); | 1018 | try fmodOne(T, 1.0, 2.0, 1.0, epsilon); |
| 987 | try expect(@fabs(@mod(@as(T, 0.0), @as(T, 1.0)) - @as(T, 0.0)) < epsilon); | 1019 | try fmodOne(T, 0.0, 1.0, 0.0, epsilon); |
| 988 | try expect(@fabs(@mod(@as(T, -0.0), @as(T, 1.0)) - @as(T, -0.0)) < epsilon); | 1020 | try fmodOne(T, -0.0, 1.0, -0.0, epsilon); |
| | 1021 | } |
| | 1022 | |
| | 1023 | fn fmodOne(comptime T: type, a: T, b: T, c: T, epsilon: T) !void { |
| | 1024 | try expect(@fabs(@mod(@as(T, a), @as(T, b)) - @as(T, c)) < epsilon); |
| 989 | } | 1025 | } |
| 990 | | 1026 | |
| 991 | test "@sqrt" { | 1027 | test "@sqrt" { |
| ... | @@ -1037,10 +1073,11 @@ test "@fabs" { | ... | @@ -1037,10 +1073,11 @@ test "@fabs" { |
| 1037 | } | 1073 | } |
| 1038 | | 1074 | |
| 1039 | test "@fabs f80" { | 1075 | test "@fabs f80" { |
| 1040 | if (true) { | 1076 | if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO |
| 1041 | // https://github.com/ziglang/zig/issues/11030 | 1077 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO |
| 1042 | return error.SkipZigTest; | 1078 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO |
| 1043 | } | 1079 | if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO |
| | 1080 | if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO |
| 1044 | | 1081 | |
| 1045 | try testFabs(f80, 12.0); | 1082 | try testFabs(f80, 12.0); |
| 1046 | comptime try testFabs(f80, 12.0); | 1083 | comptime try testFabs(f80, 12.0); |
| ... | @@ -1053,7 +1090,11 @@ fn testFabs(comptime T: type, x: T) !void { | ... | @@ -1053,7 +1090,11 @@ fn testFabs(comptime T: type, x: T) !void { |
| 1053 | } | 1090 | } |
| 1054 | | 1091 | |
| 1055 | test "@floor" { | 1092 | test "@floor" { |
| 1056 | if (builtin.zig_backend != .stage1) return error.SkipZigTest; // TODO | 1093 | if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO |
| | 1094 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO |
| | 1095 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO |
| | 1096 | if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO |
| | 1097 | if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO |
| 1057 | | 1098 | |
| 1058 | try testFloor(f64, 12.0); | 1099 | try testFloor(f64, 12.0); |
| 1059 | comptime try testFloor(f64, 12.0); | 1100 | comptime try testFloor(f64, 12.0); |
| ... | @@ -1069,23 +1110,24 @@ test "@floor" { | ... | @@ -1069,23 +1110,24 @@ test "@floor" { |
| 1069 | } | 1110 | } |
| 1070 | | 1111 | |
| 1071 | test "@floor f80" { | 1112 | test "@floor f80" { |
| 1072 | if (true) { | 1113 | if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO |
| 1073 | // https://github.com/ziglang/zig/issues/11030 | 1114 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO |
| 1074 | return error.SkipZigTest; | 1115 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO |
| 1075 | } | 1116 | if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO |
| | 1117 | if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO |
| | 1118 | |
| 1076 | try testFloor(f80, 12.0); | 1119 | try testFloor(f80, 12.0); |
| 1077 | comptime try testFloor(f80, 12.0); | 1120 | comptime try testFloor(f80, 12.0); |
| 1078 | } | 1121 | } |
| 1079 | | 1122 | |
| 1080 | test "@floor f128" { | 1123 | test "@floor f128" { |
| 1081 | if (builtin.zig_backend == .stage1) { | 1124 | if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO |
| 1082 | // Fails because it incorrectly lowers to a floorl function call. | 1125 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO |
| 1083 | return error.SkipZigTest; | 1126 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO |
| 1084 | } | 1127 | if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO |
| 1085 | | 1128 | if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO |
| 1086 | if (builtin.zig_backend != .stage1) return error.SkipZigTest; // TODO | | |
| 1087 | | 1129 | |
| 1088 | testFloor(f128, 12.0); | 1130 | try testFloor(f128, 12.0); |
| 1089 | comptime try testFloor(f128, 12.0); | 1131 | comptime try testFloor(f128, 12.0); |
| 1090 | } | 1132 | } |
| 1091 | | 1133 | |
| ... | @@ -1096,7 +1138,11 @@ fn testFloor(comptime T: type, x: T) !void { | ... | @@ -1096,7 +1138,11 @@ fn testFloor(comptime T: type, x: T) !void { |
| 1096 | } | 1138 | } |
| 1097 | | 1139 | |
| 1098 | test "@ceil" { | 1140 | test "@ceil" { |
| 1099 | if (builtin.zig_backend != .stage1) return error.SkipZigTest; // TODO | 1141 | if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO |
| | 1142 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO |
| | 1143 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO |
| | 1144 | if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO |
| | 1145 | if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO |
| 1100 | | 1146 | |
| 1101 | try testCeil(f64, 12.0); | 1147 | try testCeil(f64, 12.0); |
| 1102 | comptime try testCeil(f64, 12.0); | 1148 | comptime try testCeil(f64, 12.0); |
| ... | @@ -1112,24 +1158,24 @@ test "@ceil" { | ... | @@ -1112,24 +1158,24 @@ test "@ceil" { |
| 1112 | } | 1158 | } |
| 1113 | | 1159 | |
| 1114 | test "@ceil f80" { | 1160 | test "@ceil f80" { |
| 1115 | if (true) { | 1161 | if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO |
| 1116 | // https://github.com/ziglang/zig/issues/11030 | 1162 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO |
| 1117 | return error.SkipZigTest; | 1163 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO |
| 1118 | } | 1164 | if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO |
| | 1165 | if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO |
| 1119 | | 1166 | |
| 1120 | try testCeil(f80, 12.0); | 1167 | try testCeil(f80, 12.0); |
| 1121 | comptime try testCeil(f80, 12.0); | 1168 | comptime try testCeil(f80, 12.0); |
| 1122 | } | 1169 | } |
| 1123 | | 1170 | |
| 1124 | test "@ceil f128" { | 1171 | test "@ceil f128" { |
| 1125 | if (builtin.zig_backend == .stage1) { | 1172 | if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO |
| 1126 | // Fails because it incorrectly lowers to a ceill function call. | 1173 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO |
| 1127 | return error.SkipZigTest; | 1174 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO |
| 1128 | } | 1175 | if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO |
| 1129 | | 1176 | if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO |
| 1130 | if (builtin.zig_backend != .stage1) return error.SkipZigTest; // TODO | | |
| 1131 | | 1177 | |
| 1132 | testCeil(f128, 12.0); | 1178 | try testCeil(f128, 12.0); |
| 1133 | comptime try testCeil(f128, 12.0); | 1179 | comptime try testCeil(f128, 12.0); |
| 1134 | } | 1180 | } |
| 1135 | | 1181 | |
| ... | @@ -1140,7 +1186,11 @@ fn testCeil(comptime T: type, x: T) !void { | ... | @@ -1140,7 +1186,11 @@ fn testCeil(comptime T: type, x: T) !void { |
| 1140 | } | 1186 | } |
| 1141 | | 1187 | |
| 1142 | test "@trunc" { | 1188 | test "@trunc" { |
| 1143 | if (builtin.zig_backend != .stage1) return error.SkipZigTest; // TODO | 1189 | if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO |
| | 1190 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO |
| | 1191 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO |
| | 1192 | if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO |
| | 1193 | if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO |
| 1144 | | 1194 | |
| 1145 | try testTrunc(f64, 12.0); | 1195 | try testTrunc(f64, 12.0); |
| 1146 | comptime try testTrunc(f64, 12.0); | 1196 | comptime try testTrunc(f64, 12.0); |
| ... | @@ -1156,10 +1206,11 @@ test "@trunc" { | ... | @@ -1156,10 +1206,11 @@ test "@trunc" { |
| 1156 | } | 1206 | } |
| 1157 | | 1207 | |
| 1158 | test "@trunc f80" { | 1208 | test "@trunc f80" { |
| 1159 | if (true) { | 1209 | if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO |
| 1160 | // https://github.com/ziglang/zig/issues/11030 | 1210 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO |
| 1161 | return error.SkipZigTest; | 1211 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO |
| 1162 | } | 1212 | if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO |
| | 1213 | if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO |
| 1163 | | 1214 | |
| 1164 | try testTrunc(f80, 12.0); | 1215 | try testTrunc(f80, 12.0); |
| 1165 | comptime try testTrunc(f80, 12.0); | 1216 | comptime try testTrunc(f80, 12.0); |
| ... | @@ -1172,14 +1223,13 @@ test "@trunc f80" { | ... | @@ -1172,14 +1223,13 @@ test "@trunc f80" { |
| 1172 | } | 1223 | } |
| 1173 | | 1224 | |
| 1174 | test "@trunc f128" { | 1225 | test "@trunc f128" { |
| 1175 | if (builtin.zig_backend == .stage1) { | 1226 | if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO |
| 1176 | // Fails because it incorrectly lowers to a truncl function call. | 1227 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO |
| 1177 | return error.SkipZigTest; | 1228 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO |
| 1178 | } | 1229 | if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO |
| 1179 | | 1230 | if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO |
| 1180 | if (builtin.zig_backend != .stage1) return error.SkipZigTest; // TODO | | |
| 1181 | | 1231 | |
| 1182 | testTrunc(f128, 12.0); | 1232 | try testTrunc(f128, 12.0); |
| 1183 | comptime try testTrunc(f128, 12.0); | 1233 | comptime try testTrunc(f128, 12.0); |
| 1184 | } | 1234 | } |
| 1185 | | 1235 | |
| ... | @@ -1198,7 +1248,11 @@ fn testTrunc(comptime T: type, x: T) !void { | ... | @@ -1198,7 +1248,11 @@ fn testTrunc(comptime T: type, x: T) !void { |
| 1198 | } | 1248 | } |
| 1199 | | 1249 | |
| 1200 | test "@round" { | 1250 | test "@round" { |
| 1201 | if (builtin.zig_backend != .stage1) return error.SkipZigTest; // TODO | 1251 | if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO |
| | 1252 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO |
| | 1253 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO |
| | 1254 | if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO |
| | 1255 | if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO |
| 1202 | | 1256 | |
| 1203 | try testRound(f64, 12.0); | 1257 | try testRound(f64, 12.0); |
| 1204 | comptime try testRound(f64, 12.0); | 1258 | comptime try testRound(f64, 12.0); |
| ... | @@ -1214,24 +1268,24 @@ test "@round" { | ... | @@ -1214,24 +1268,24 @@ test "@round" { |
| 1214 | } | 1268 | } |
| 1215 | | 1269 | |
| 1216 | test "@round f80" { | 1270 | test "@round f80" { |
| 1217 | if (true) { | 1271 | if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO |
| 1218 | // https://github.com/ziglang/zig/issues/11030 | 1272 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO |
| 1219 | return error.SkipZigTest; | 1273 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO |
| 1220 | } | 1274 | if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO |
| | 1275 | if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO |
| 1221 | | 1276 | |
| 1222 | try testRound(f80, 12.0); | 1277 | try testRound(f80, 12.0); |
| 1223 | comptime try testRound(f80, 12.0); | 1278 | comptime try testRound(f80, 12.0); |
| 1224 | } | 1279 | } |
| 1225 | | 1280 | |
| 1226 | test "@round f128" { | 1281 | test "@round f128" { |
| 1227 | if (builtin.zig_backend == .stage1) { | 1282 | if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO |
| 1228 | // Fails because it incorrectly lowers to a roundl function call. | 1283 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO |
| 1229 | return error.SkipZigTest; | 1284 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO |
| 1230 | } | 1285 | if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO |
| 1231 | | 1286 | if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO |
| 1232 | if (builtin.zig_backend != .stage1) return error.SkipZigTest; // TODO | | |
| 1233 | | 1287 | |
| 1234 | testRound(f128, 12.0); | 1288 | try testRound(f128, 12.0); |
| 1235 | comptime try testRound(f128, 12.0); | 1289 | comptime try testRound(f128, 12.0); |
| 1236 | } | 1290 | } |
| 1237 | | 1291 | |
| ... | @@ -1280,10 +1334,12 @@ test "NaN comparison" { | ... | @@ -1280,10 +1334,12 @@ test "NaN comparison" { |
| 1280 | } | 1334 | } |
| 1281 | | 1335 | |
| 1282 | test "NaN comparison f80" { | 1336 | test "NaN comparison f80" { |
| 1283 | if (true) { | 1337 | if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO |
| 1284 | // https://github.com/ziglang/zig/issues/11030 | 1338 | if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO |
| 1285 | return error.SkipZigTest; | 1339 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO |
| 1286 | } | 1340 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO |
| | 1341 | if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO |
| | 1342 | |
| 1287 | try testNanEqNan(f80); | 1343 | try testNanEqNan(f80); |
| 1288 | comptime try testNanEqNan(f80); | 1344 | comptime try testNanEqNan(f80); |
| 1289 | } | 1345 | } |