| author | |
| committer | |
| log | e20d2b3151607fe078b43331ea27d5b34f95360b |
| tree | ba23d07445cbedb81404b7fc02647be281be3f2f |
| parent | 3d22327b2392050e088c8b6d5c21ae31bbd0cd90 |
4 files changed, 59 insertions(+), 65 deletions(-)
lib/include/zig.h+49-41| ... | ... | @@ -216,7 +216,6 @@ typedef signed long int zig_c_long; |
| 216 | 216 | typedef unsigned long int zig_c_ulong; |
| 217 | 217 | typedef signed long long int zig_c_longlong; |
| 218 | 218 | typedef unsigned long long int zig_c_ulonglong; |
| 219 | typedef long double zig_c_longdouble; | |
| 220 | 219 | |
| 221 | 220 | typedef uint8_t zig_u8; |
| 222 | 221 | typedef int8_t zig_i8; |
| ... | ... | @@ -255,120 +254,111 @@ typedef int64_t zig_i64; |
| 255 | 254 | #define zig_minInt_i64 INT64_MIN |
| 256 | 255 | #define zig_maxInt_i64 INT64_MAX |
| 257 | 256 | |
| 257 | #define zig_builtin_f16(name) __##name##h | |
| 258 | #define zig_builtin_constant_f16(name) zig_suffix_f16(__builtin_##name) | |
| 258 | 259 | #if FLT_MANT_DIG == 11 |
| 259 | 260 | typedef float zig_f16; |
| 260 | 261 | #define zig_suffix_f16(x) x##f |
| 261 | #define zig_builtin_f16(name) __builtin_##name##f | |
| 262 | 262 | #elif DBL_MANT_DIG == 11 |
| 263 | 263 | typedef double zig_f16; |
| 264 | 264 | #define zig_suffix_f16(x) x |
| 265 | #define zig_builtin_f16(name) __builtin_##name | |
| 266 | 265 | #elif LDBL_MANT_DIG == 11 |
| 267 | 266 | typedef long double zig_f16; |
| 268 | 267 | #define zig_suffix_f16(x) x##l |
| 269 | #define zig_builtin_f16(name) __builtin_##name##l | |
| 270 | 268 | #elif FLT16_MANT_DIG == 11 |
| 271 | 269 | typedef _Float16 zig_f16; |
| 272 | 270 | #define zig_suffix_f16(x) x##f16 |
| 273 | #define zig_builtin_f16(name) __builtin_##name | |
| 274 | 271 | #elif defined(__SIZEOF_FP16__) |
| 275 | 272 | typedef __fp16 zig_f16; |
| 276 | #define zig_suffix_f16(x) x | |
| 277 | #define zig_builtin_f16(name) __builtin_##name | |
| 273 | #define zig_suffix_f16(x) x##f16 | |
| 278 | 274 | #endif |
| 279 | 275 | |
| 276 | #define zig_builtin_f32(name) name##f | |
| 277 | #define zig_builtin_constant_f32(name) zig_suffix_f32(__builtin_##name) | |
| 280 | 278 | #if FLT_MANT_DIG == 24 |
| 281 | 279 | typedef float zig_f32; |
| 282 | 280 | #define zig_suffix_f32(x) x##f |
| 283 | #define zig_builtin_f32(name) __builtin_##name##f | |
| 284 | 281 | #elif DBL_MANT_DIG == 24 |
| 285 | 282 | typedef double zig_f32; |
| 286 | 283 | #define zig_suffix_f32(x) x |
| 287 | #define zig_builtin_f32(name) __builtin_##name | |
| 288 | 284 | #elif LDBL_MANT_DIG == 24 |
| 289 | 285 | typedef long double zig_f32; |
| 290 | 286 | #define zig_suffix_f32(x) x##l |
| 291 | #define zig_builtin_f32(name) __builtin_##name##l | |
| 292 | 287 | #elif FLT32_MANT_DIG == 24 |
| 293 | 288 | typedef _Float32 zig_f32; |
| 294 | 289 | #define zig_suffix_f32(x) x##f32 |
| 295 | #define zig_builtin_f32(name) __builtin_##name | |
| 296 | 290 | #endif |
| 297 | 291 | |
| 292 | #define zig_builtin_f64(name) name | |
| 293 | #define zig_builtin_constant_f64(name) zig_suffix_f64(__builtin_##name) | |
| 298 | 294 | #if FLT_MANT_DIG == 53 |
| 299 | 295 | typedef float zig_f64; |
| 300 | 296 | #define zig_suffix_f64(x) x##f |
| 301 | #define zig_builtin_f64(name) __builtin_##name##f | |
| 302 | 297 | #elif DBL_MANT_DIG == 53 |
| 303 | 298 | typedef double zig_f64; |
| 304 | 299 | #define zig_suffix_f64(x) x |
| 305 | #define zig_builtin_f64(name) __builtin_##name | |
| 306 | 300 | #elif LDBL_MANT_DIG == 53 |
| 307 | 301 | typedef long double zig_f64; |
| 308 | 302 | #define zig_suffix_f64(x) x##l |
| 309 | #define zig_builtin_f64(name) __builtin_##name##l | |
| 310 | 303 | #elif FLT64_MANT_DIG == 53 |
| 311 | 304 | typedef _Float64 zig_f64; |
| 312 | 305 | #define zig_suffix_f64(x) x##f64 |
| 313 | #define zig_builtin_f64(name) __builtin_##name##l | |
| 314 | 306 | #elif FLT32X_MANT_DIG == 53 |
| 315 | 307 | typedef _Float32x zig_f64; |
| 316 | 308 | #define zig_suffix_f64(x) x##f32x |
| 317 | #define zig_builtin_f64(name) __builtin_##name##l | |
| 318 | 309 | #endif |
| 319 | 310 | |
| 311 | #define zig_builtin_f80(name) __##name##x | |
| 312 | #define zig_builtin_constant_f80(name) zig_suffix_f80(__builtin_##name) | |
| 320 | 313 | #if FLT_MANT_DIG == 64 |
| 321 | 314 | typedef float zig_f80; |
| 322 | 315 | #define zig_suffix_f80(x) x##f |
| 323 | #define zig_builtin_f80(name) __builtin_##name##f | |
| 324 | 316 | #elif DBL_MANT_DIG == 64 |
| 325 | 317 | typedef double zig_f80; |
| 326 | 318 | #define zig_suffix_f80(x) x |
| 327 | #define zig_builtin_f80(name) __builtin_##name | |
| 328 | 319 | #elif LDBL_MANT_DIG == 64 |
| 329 | 320 | typedef long double zig_f80; |
| 330 | 321 | #define zig_suffix_f80(x) x##l |
| 331 | #define zig_builtin_f80(name) __builtin_##name##l | |
| 332 | 322 | #elif FLT80_MANT_DIG == 64 |
| 333 | 323 | typedef _Float80 zig_f80; |
| 334 | 324 | #define zig_suffix_f80(x) x##f80 |
| 335 | #define zig_builtin_f80(name) __builtin_##name##l | |
| 336 | 325 | #elif FLT64X_MANT_DIG == 64 |
| 337 | 326 | typedef _Float64x zig_f80; |
| 338 | 327 | #define zig_suffix_f80(x) x##f64x |
| 339 | #define zig_builtin_f80(name) __builtin_##name##l | |
| 340 | 328 | #elif defined(__SIZEOF_FLOAT80__) |
| 341 | 329 | typedef __float80 zig_f80; |
| 342 | 330 | #define zig_suffix_f80(x) x##l |
| 343 | #define zig_builtin_f80(name) __builtin_##name##l | |
| 344 | 331 | #endif |
| 345 | 332 | |
| 333 | #define zig_builtin_f128(name) name##q | |
| 334 | #define zig_builtin_constant_f128(name) zig_suffix_f80(__builtin_##name) | |
| 346 | 335 | #if FLT_MANT_DIG == 113 |
| 347 | 336 | typedef float zig_f128; |
| 348 | 337 | #define zig_suffix_f128(x) x##f |
| 349 | #define zig_builtin_f128(name) __builtin_##name##f | |
| 350 | 338 | #elif DBL_MANT_DIG == 113 |
| 351 | 339 | typedef double zig_f128; |
| 352 | 340 | #define zig_suffix_f128(x) x |
| 353 | #define zig_builtin_f128(name) __builtin_##name | |
| 354 | 341 | #elif LDBL_MANT_DIG == 113 |
| 355 | 342 | typedef long double zig_f128; |
| 356 | 343 | #define zig_suffix_f128(x) x##l |
| 357 | #define zig_builtin_f128(name) __builtin_##name##l | |
| 358 | 344 | #elif FLT128_MANT_DIG == 113 |
| 359 | 345 | typedef _Float128 zig_f128; |
| 360 | 346 | #define zig_suffix_f128(x) x##f128 |
| 361 | #define zig_builtin_f128(name) __builtin_##name##l | |
| 362 | 347 | #elif FLT64X_MANT_DIG == 113 |
| 363 | 348 | typedef _Float64x zig_f128; |
| 364 | 349 | #define zig_suffix_f128(x) x##f64x |
| 365 | #define zig_builtin_f128(name) __builtin_##name##l | |
| 366 | 350 | #elif defined(__SIZEOF_FLOAT128__) |
| 367 | 351 | typedef __float128 zig_f128; |
| 368 | #define zig_suffix_f128(x) x##l | |
| 369 | #define zig_builtin_f128(name) __builtin_##name##l | |
| 352 | #define zig_suffix_f128(x) x##q | |
| 353 | #undef zig_builtin_constant_f128 | |
| 354 | #define zig_builtin_constant_f128(name) __builtin_##name##f128 | |
| 370 | 355 | #endif |
| 371 | 356 | |
| 357 | typedef long double zig_c_longdouble; | |
| 358 | #define zig_suffix_c_longdouble(x) x##l | |
| 359 | #define zig_builtin_c_longdouble(name) zig_suffix_c_longdouble(name) | |
| 360 | #define zig_builtin_constant_c_longdouble(name) zig_suffix_c_longdouble(__builtin_##name) | |
| 361 | ||
| 372 | 362 | zig_extern_c void *memcpy (void *zig_restrict, void const *zig_restrict, zig_usize); |
| 373 | 363 | zig_extern_c void *memset (void *, int, zig_usize); |
| 374 | 364 | |
| ... | ... | @@ -1476,20 +1466,38 @@ static inline zig_i128 zig_bit_reverse_i128(zig_i128 val, zig_u8 bits) { |
| 1476 | 1466 | |
| 1477 | 1467 | /* ========================== Float Point Routines ========================== */ |
| 1478 | 1468 | |
| 1479 | #define zig_float_builtins(w) \ | |
| 1480 | static inline zig_f##w zig_div_trunc_f##w(zig_f##w lhs, zig_f##w rhs) { \ | |
| 1481 | return zig_builtin_f##w(trunc)(lhs / rhs); \ | |
| 1469 | #define zig_float_builtins(Type) \ | |
| 1470 | zig_extern_c zig_##Type zig_builtin_##Type(sqrt)(zig_##Type); \ | |
| 1471 | zig_extern_c zig_##Type zig_builtin_##Type(sin)(zig_##Type); \ | |
| 1472 | zig_extern_c zig_##Type zig_builtin_##Type(cos)(zig_##Type); \ | |
| 1473 | zig_extern_c zig_##Type zig_builtin_##Type(tan)(zig_##Type); \ | |
| 1474 | zig_extern_c zig_##Type zig_builtin_##Type(exp)(zig_##Type); \ | |
| 1475 | zig_extern_c zig_##Type zig_builtin_##Type(exp2)(zig_##Type); \ | |
| 1476 | zig_extern_c zig_##Type zig_builtin_##Type(log)(zig_##Type); \ | |
| 1477 | zig_extern_c zig_##Type zig_builtin_##Type(log2)(zig_##Type); \ | |
| 1478 | zig_extern_c zig_##Type zig_builtin_##Type(log10)(zig_##Type); \ | |
| 1479 | zig_extern_c zig_##Type zig_builtin_##Type(fabs)(zig_##Type); \ | |
| 1480 | zig_extern_c zig_##Type zig_builtin_##Type(floor)(zig_##Type); \ | |
| 1481 | zig_extern_c zig_##Type zig_builtin_##Type(ceil)(zig_##Type); \ | |
| 1482 | zig_extern_c zig_##Type zig_builtin_##Type(round)(zig_##Type); \ | |
| 1483 | zig_extern_c zig_##Type zig_builtin_##Type(trunc)(zig_##Type); \ | |
| 1484 | zig_extern_c zig_##Type zig_builtin_##Type(fmod)(zig_##Type, zig_##Type); \ | |
| 1485 | zig_extern_c zig_##Type zig_builtin_##Type(fma)(zig_##Type, zig_##Type, zig_##Type); \ | |
| 1486 | \ | |
| 1487 | static inline zig_##Type zig_div_trunc_##Type(zig_##Type lhs, zig_##Type rhs) { \ | |
| 1488 | return zig_builtin_##Type(trunc)(lhs / rhs); \ | |
| 1482 | 1489 | } \ |
| 1483 | 1490 | \ |
| 1484 | static inline zig_f##w zig_div_floor_f##w(zig_f##w lhs, zig_f##w rhs) { \ | |
| 1485 | return zig_builtin_f##w(floor)(lhs / rhs); \ | |
| 1491 | static inline zig_##Type zig_div_floor_##Type(zig_##Type lhs, zig_##Type rhs) { \ | |
| 1492 | return zig_builtin_##Type(floor)(lhs / rhs); \ | |
| 1486 | 1493 | } \ |
| 1487 | 1494 | \ |
| 1488 | static inline zig_f##w zig_mod_f##w(zig_f##w lhs, zig_f##w rhs) { \ | |
| 1489 | return lhs - zig_div_floor_f##w(lhs, rhs) * rhs; \ | |
| 1495 | static inline zig_##Type zig_mod_##Type(zig_##Type lhs, zig_##Type rhs) { \ | |
| 1496 | return lhs - zig_div_floor_##Type(lhs, rhs) * rhs; \ | |
| 1490 | 1497 | } |
| 1491 | zig_float_builtins(16) | |
| 1492 | zig_float_builtins(32) | |
| 1493 | zig_float_builtins(64) | |
| 1494 | zig_float_builtins(80) | |
| 1495 | zig_float_builtins(128) | |
| 1498 | zig_float_builtins(f16) | |
| 1499 | zig_float_builtins(f32) | |
| 1500 | zig_float_builtins(f64) | |
| 1501 | zig_float_builtins(f80) | |
| 1502 | zig_float_builtins(f128) | |
| 1503 | zig_float_builtins(c_longdouble) |
src/codegen/c.zig+10-10| ... | ... | @@ -798,7 +798,7 @@ pub const DeclGen = struct { |
| 798 | 798 | "inf" |
| 799 | 799 | else |
| 800 | 800 | unreachable; |
| 801 | try writer.writeAll("zig_builtin_"); | |
| 801 | try writer.writeAll("zig_builtin_constant_"); | |
| 802 | 802 | try dg.renderTypeForBuiltinFnName(writer, ty); |
| 803 | 803 | try writer.writeByte('('); |
| 804 | 804 | try writer.writeAll(operation); |
| ... | ... | @@ -2006,18 +2006,16 @@ pub const DeclGen = struct { |
| 2006 | 2006 | |
| 2007 | 2007 | fn renderTypeForBuiltinFnName(dg: *DeclGen, writer: anytype, ty: Type) !void { |
| 2008 | 2008 | const target = dg.module.getTarget(); |
| 2009 | const c_bits = if (ty.isAbiInt()) c_bits: { | |
| 2009 | if (ty.isAbiInt()) { | |
| 2010 | 2010 | const int_info = ty.intInfo(target); |
| 2011 | try writer.writeByte(signAbbrev(int_info.signedness)); | |
| 2012 | break :c_bits toCIntBits(int_info.bits) orelse | |
| 2011 | const c_bits = toCIntBits(int_info.bits) orelse | |
| 2013 | 2012 | return dg.fail("TODO: C backend: implement integer types larger than 128 bits", .{}); |
| 2014 | } else if (ty.isRuntimeFloat()) c_bits: { | |
| 2015 | try writer.writeByte('f'); | |
| 2016 | break :c_bits ty.floatBits(target); | |
| 2013 | try writer.print("{c}{d}", .{ signAbbrev(int_info.signedness), c_bits }); | |
| 2014 | } else if (ty.isRuntimeFloat()) { | |
| 2015 | try ty.print(writer, dg.module); | |
| 2017 | 2016 | } else return dg.fail("TODO: CBE: implement renderTypeForBuiltinFnName for type {}", .{ |
| 2018 | 2017 | ty.fmt(dg.module), |
| 2019 | 2018 | }); |
| 2020 | try writer.print("{d}", .{c_bits}); | |
| 2021 | 2019 | } |
| 2022 | 2020 | |
| 2023 | 2021 | fn renderBuiltinInfo(dg: *DeclGen, writer: anytype, ty: Type, info: BuiltinInfo) !void { |
| ... | ... | @@ -3077,7 +3075,8 @@ fn airBinOp( |
| 3077 | 3075 | |
| 3078 | 3076 | const operand_ty = f.air.typeOf(bin_op.lhs); |
| 3079 | 3077 | const target = f.object.dg.module.getTarget(); |
| 3080 | if (operand_ty.bitSize(target) > 64) return try airBinBuiltinCall(f, inst, operation, info); | |
| 3078 | if (operand_ty.isInt() and operand_ty.bitSize(target) > 64) | |
| 3079 | return try airBinBuiltinCall(f, inst, operation, info); | |
| 3081 | 3080 | |
| 3082 | 3081 | const inst_ty = f.air.typeOfIndex(inst); |
| 3083 | 3082 | const lhs = try f.resolveInst(bin_op.lhs); |
| ... | ... | @@ -3104,7 +3103,8 @@ fn airCmpOp(f: *Function, inst: Air.Inst.Index, operator: []const u8) !CValue { |
| 3104 | 3103 | |
| 3105 | 3104 | const operand_ty = f.air.typeOf(bin_op.lhs); |
| 3106 | 3105 | const target = f.object.dg.module.getTarget(); |
| 3107 | if (operand_ty.bitSize(target) > 64) return try airCmpBuiltinCall(f, inst, operator); | |
| 3106 | if (operand_ty.isInt() and operand_ty.bitSize(target) > 64) | |
| 3107 | return try airCmpBuiltinCall(f, inst, operator); | |
| 3108 | 3108 | |
| 3109 | 3109 | const inst_ty = f.air.typeOfIndex(inst); |
| 3110 | 3110 | const lhs = try f.resolveInst(bin_op.lhs); |
test/behavior/cast.zig-1| ... | ... | @@ -1379,7 +1379,6 @@ test "pointer to empty struct literal to mutable slice" { |
| 1379 | 1379 | } |
| 1380 | 1380 | |
| 1381 | 1381 | test "coerce between pointers of compatible differently-named floats" { |
| 1382 | if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO | |
| 1383 | 1382 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO |
| 1384 | 1383 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO |
| 1385 | 1384 | if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO |
test/behavior/math.zig-13| ... | ... | @@ -990,7 +990,6 @@ test "allow signed integer division/remainder when values are comptime-known and |
| 990 | 990 | } |
| 991 | 991 | |
| 992 | 992 | test "quad hex float literal parsing accurate" { |
| 993 | if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO | |
| 994 | 993 | if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO |
| 995 | 994 | if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO |
| 996 | 995 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO |
| ... | ... | @@ -1178,7 +1177,6 @@ fn remdivOne(comptime T: type, a: T, b: T, c: T) !void { |
| 1178 | 1177 | |
| 1179 | 1178 | test "float remainder division using @rem" { |
| 1180 | 1179 | if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO |
| 1181 | if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO | |
| 1182 | 1180 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO |
| 1183 | 1181 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO |
| 1184 | 1182 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO |
| ... | ... | @@ -1222,7 +1220,6 @@ fn fremOne(comptime T: type, a: T, b: T, c: T, epsilon: T) !void { |
| 1222 | 1220 | |
| 1223 | 1221 | test "float modulo division using @mod" { |
| 1224 | 1222 | if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO |
| 1225 | if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO | |
| 1226 | 1223 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO |
| 1227 | 1224 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO |
| 1228 | 1225 | if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO |
| ... | ... | @@ -1349,7 +1346,6 @@ test "@floor f80" { |
| 1349 | 1346 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO |
| 1350 | 1347 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO |
| 1351 | 1348 | if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO |
| 1352 | if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO | |
| 1353 | 1349 | if (builtin.zig_backend == .stage2_llvm and builtin.os.tag == .windows) return error.SkipZigTest; // https://github.com/ziglang/zig/issues/12602 |
| 1354 | 1350 | |
| 1355 | 1351 | try testFloor(f80, 12.0); |
| ... | ... | @@ -1361,7 +1357,6 @@ test "@floor f128" { |
| 1361 | 1357 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO |
| 1362 | 1358 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO |
| 1363 | 1359 | if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO |
| 1364 | if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO | |
| 1365 | 1360 | |
| 1366 | 1361 | try testFloor(f128, 12.0); |
| 1367 | 1362 | comptime try testFloor(f128, 12.0); |
| ... | ... | @@ -1397,7 +1392,6 @@ test "@ceil f80" { |
| 1397 | 1392 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO |
| 1398 | 1393 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO |
| 1399 | 1394 | if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO |
| 1400 | if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO | |
| 1401 | 1395 | if (builtin.zig_backend == .stage2_llvm and builtin.os.tag == .windows) return error.SkipZigTest; // https://github.com/ziglang/zig/issues/12602 |
| 1402 | 1396 | |
| 1403 | 1397 | try testCeil(f80, 12.0); |
| ... | ... | @@ -1409,7 +1403,6 @@ test "@ceil f128" { |
| 1409 | 1403 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO |
| 1410 | 1404 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO |
| 1411 | 1405 | if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO |
| 1412 | if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO | |
| 1413 | 1406 | |
| 1414 | 1407 | try testCeil(f128, 12.0); |
| 1415 | 1408 | comptime try testCeil(f128, 12.0); |
| ... | ... | @@ -1445,7 +1438,6 @@ test "@trunc f80" { |
| 1445 | 1438 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO |
| 1446 | 1439 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO |
| 1447 | 1440 | if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO |
| 1448 | if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO | |
| 1449 | 1441 | if (builtin.zig_backend == .stage2_llvm and builtin.os.tag == .windows) return error.SkipZigTest; // https://github.com/ziglang/zig/issues/12602 |
| 1450 | 1442 | |
| 1451 | 1443 | try testTrunc(f80, 12.0); |
| ... | ... | @@ -1463,7 +1455,6 @@ test "@trunc f128" { |
| 1463 | 1455 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO |
| 1464 | 1456 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO |
| 1465 | 1457 | if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO |
| 1466 | if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO | |
| 1467 | 1458 | |
| 1468 | 1459 | try testTrunc(f128, 12.0); |
| 1469 | 1460 | comptime try testTrunc(f128, 12.0); |
| ... | ... | @@ -1507,7 +1498,6 @@ test "@round f80" { |
| 1507 | 1498 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO |
| 1508 | 1499 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO |
| 1509 | 1500 | if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO |
| 1510 | if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO | |
| 1511 | 1501 | if (builtin.zig_backend == .stage2_llvm and builtin.os.tag == .windows) return error.SkipZigTest; // https://github.com/ziglang/zig/issues/12602 |
| 1512 | 1502 | |
| 1513 | 1503 | try testRound(f80, 12.0); |
| ... | ... | @@ -1519,7 +1509,6 @@ test "@round f128" { |
| 1519 | 1509 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO |
| 1520 | 1510 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO |
| 1521 | 1511 | if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO |
| 1522 | if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO | |
| 1523 | 1512 | |
| 1524 | 1513 | try testRound(f128, 12.0); |
| 1525 | 1514 | comptime try testRound(f128, 12.0); |
| ... | ... | @@ -1553,7 +1542,6 @@ test "vector integer addition" { |
| 1553 | 1542 | } |
| 1554 | 1543 | |
| 1555 | 1544 | test "NaN comparison" { |
| 1556 | if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO | |
| 1557 | 1545 | if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO |
| 1558 | 1546 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO |
| 1559 | 1547 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO |
| ... | ... | @@ -1570,7 +1558,6 @@ test "NaN comparison" { |
| 1570 | 1558 | } |
| 1571 | 1559 | |
| 1572 | 1560 | test "NaN comparison f80" { |
| 1573 | if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO | |
| 1574 | 1561 | if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO |
| 1575 | 1562 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO |
| 1576 | 1563 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO |