authorgravatar for jacobly@ziglang.orgJacob Young <jacobly@ziglang.org> 2023-07-30 07:49:45-04:00
committergravatar for jacobly@ziglang.orgJacob Young <jacobly@ziglang.org> 2023-07-31 01:58:10-04:00
log9831f272383a66392ebeadbc60d8176f44b3553c
tree996de8b72b2616b193bd9c47e3792fdc3b98dd07
parent817fa3af8631d894004fbdb668da0882836dbe9b

cbe: get behavior tests running on arm

Specifically without linking libc.

12 files changed, 105 insertions(+), 15 deletions(-)

lib/zig.h+76-13
......@@ -1176,10 +1176,10 @@ typedef signed __int128 zig_i128;
11761176
11771177#if zig_little_endian
11781178typedef struct { zig_align(16) uint64_t lo; uint64_t hi; } zig_u128;
1179typedef struct { zig_align(16) uint64_t lo; int64_t hi; } zig_i128;
1179typedef struct { zig_align(16) uint64_t lo; int64_t hi; } zig_i128;
11801180#else
11811181typedef struct { zig_align(16) uint64_t hi; uint64_t lo; } zig_u128;
1182typedef struct { zig_align(16) int64_t hi; uint64_t lo; } zig_i128;
1182typedef struct { zig_align(16) int64_t hi; uint64_t lo; } zig_i128;
11831183#endif
11841184
11851185#define zig_make_u128(hi, lo) ((zig_u128){ .h##i = (hi), .l##o = (lo) })
......@@ -3197,11 +3197,9 @@ zig_convert_builtin(zig_compiler_rt_f16, zig_f16, trunc, zig_f64,
31973197zig_convert_builtin(zig_f16, zig_f16, trunc, zig_f80, zig_f80, 2)
31983198zig_convert_builtin(zig_f16, zig_f16, trunc, zig_f128, zig_f128, 2)
31993199zig_convert_builtin(zig_f32, zig_f32, extend, zig_compiler_rt_f16, zig_f16, 2)
3200zig_convert_builtin(zig_f32, zig_f32, trunc, zig_f64, zig_f64, 2)
32013200zig_convert_builtin(zig_f32, zig_f32, trunc, zig_f80, zig_f80, 2)
32023201zig_convert_builtin(zig_f32, zig_f32, trunc, zig_f128, zig_f128, 2)
32033202zig_convert_builtin(zig_f64, zig_f64, extend, zig_compiler_rt_f16, zig_f16, 2)
3204zig_convert_builtin(zig_f64, zig_f64, extend, zig_f32, zig_f32, 2)
32053203zig_convert_builtin(zig_f64, zig_f64, trunc, zig_f80, zig_f80, 2)
32063204zig_convert_builtin(zig_f64, zig_f64, trunc, zig_f128, zig_f128, 2)
32073205zig_convert_builtin(zig_f80, zig_f80, extend, zig_f16, zig_f16, 2)
......@@ -3213,6 +3211,21 @@ zig_convert_builtin(zig_f128, zig_f128, extend, zig_f32,
32133211zig_convert_builtin(zig_f128, zig_f128, extend, zig_f64, zig_f64, 2)
32143212zig_convert_builtin(zig_f128, zig_f128, extend, zig_f80, zig_f80, 2)
32153213
3214#ifdef __ARM_EABI__
3215
3216zig_extern zig_callconv(pcs("aapcs")) zig_f32 __aeabi_d2f(zig_f64);
3217static inline zig_f32 zig_truncdfsf(zig_f64 arg) { return __aeabi_d2f(arg); }
3218
3219zig_extern zig_callconv(pcs("aapcs")) zig_f64 __aeabi_f2d(zig_f32);
3220static inline zig_f64 zig_extendsfdf(zig_f32 arg) { return __aeabi_f2d(arg); }
3221
3222#else /* __ARM_EABI__ */
3223
3224zig_convert_builtin(zig_f32, zig_f32, trunc, zig_f64, zig_f64, 2)
3225zig_convert_builtin(zig_f64, zig_f64, extend, zig_f32, zig_f32, 2)
3226
3227#endif /* __ARM_EABI__ */
3228
32163229#define zig_float_negate_builtin_0(w, c, sb) \
32173230 zig_expand_concat(zig_xor_, zig_repr_f##w)(arg, zig_make_f##w(-0x0.0p0, c sb))
32183231#define zig_float_negate_builtin_1(w, c, sb) -arg
......@@ -3255,17 +3268,11 @@ zig_float_negate_builtin(128, zig_make_u128, (UINT64_C(1) << 63, UINT64_C(0)))
32553268 return lhs operator rhs; \
32563269 }
32573270
3258#define zig_float_builtins(w) \
3259 zig_convert_builtin( int32_t, int32_t, fix, zig_f##w, zig_f##w, ) \
3260 zig_convert_builtin(uint32_t, uint32_t, fixuns, zig_f##w, zig_f##w, ) \
3271#define zig_common_float_builtins(w) \
32613272 zig_convert_builtin( int64_t, int64_t, fix, zig_f##w, zig_f##w, ) \
3262 zig_convert_builtin(uint64_t, uint64_t, fixuns, zig_f##w, zig_f##w, ) \
32633273 zig_convert_builtin(zig_i128, zig_i128, fix, zig_f##w, zig_f##w, ) \
32643274 zig_convert_builtin(zig_u128, zig_u128, fixuns, zig_f##w, zig_f##w, ) \
3265 zig_convert_builtin(zig_f##w, zig_f##w, float, int32_t, int32_t, ) \
3266 zig_convert_builtin(zig_f##w, zig_f##w, floatun, uint32_t, uint32_t, ) \
32673275 zig_convert_builtin(zig_f##w, zig_f##w, float, int64_t, int64_t, ) \
3268 zig_convert_builtin(zig_f##w, zig_f##w, floatun, uint64_t, uint64_t, ) \
32693276 zig_convert_builtin(zig_f##w, zig_f##w, float, zig_i128, zig_i128, ) \
32703277 zig_convert_builtin(zig_f##w, zig_f##w, floatun, zig_u128, zig_u128, ) \
32713278 zig_expand_concat(zig_float_less_builtin_, zig_has_f##w)(f##w, cmp) \
......@@ -3309,12 +3316,68 @@ zig_float_negate_builtin(128, zig_make_u128, (UINT64_C(1) << 63, UINT64_C(0)))
33093316 static inline zig_f##w zig_mod_f##w(zig_f##w lhs, zig_f##w rhs) { \
33103317 return zig_sub_f##w(lhs, zig_mul_f##w(zig_div_floor_f##w(lhs, rhs), rhs)); \
33113318 }
3319zig_common_float_builtins(16)
3320zig_common_float_builtins(32)
3321zig_common_float_builtins(64)
3322zig_common_float_builtins(80)
3323zig_common_float_builtins(128)
3324
3325#define zig_float_builtins(w) \
3326 zig_convert_builtin( int32_t, int32_t, fix, zig_f##w, zig_f##w, ) \
3327 zig_convert_builtin(uint32_t, uint32_t, fixuns, zig_f##w, zig_f##w, ) \
3328 zig_convert_builtin(uint64_t, uint64_t, fixuns, zig_f##w, zig_f##w, ) \
3329 zig_convert_builtin(zig_f##w, zig_f##w, float, int32_t, int32_t, ) \
3330 zig_convert_builtin(zig_f##w, zig_f##w, floatun, uint32_t, uint32_t, ) \
3331 zig_convert_builtin(zig_f##w, zig_f##w, floatun, uint64_t, uint64_t, )
33123332zig_float_builtins(16)
3313zig_float_builtins(32)
3314zig_float_builtins(64)
33153333zig_float_builtins(80)
33163334zig_float_builtins(128)
33173335
3336#ifdef __ARM_EABI__
3337
3338zig_extern zig_callconv(pcs("aapcs")) int32_t __aeabi_f2iz(zig_f32);
3339static inline int32_t zig_fixsfsi(zig_f32 arg) { return __aeabi_f2iz(arg); }
3340
3341zig_extern zig_callconv(pcs("aapcs")) uint32_t __aeabi_f2uiz(zig_f32);
3342static inline uint32_t zig_fixunssfsi(zig_f32 arg) { return __aeabi_f2uiz(arg); }
3343
3344zig_extern zig_callconv(pcs("aapcs")) uint64_t __aeabi_f2ulz(zig_f32);
3345static inline uint64_t zig_fixunssfdi(zig_f32 arg) { return __aeabi_f2ulz(arg); }
3346
3347zig_extern zig_callconv(pcs("aapcs")) zig_f32 __aeabi_i2f(int32_t);
3348static inline zig_f32 zig_floatsisf(int32_t arg) { return __aeabi_i2f(arg); }
3349
3350zig_extern zig_callconv(pcs("aapcs")) zig_f32 __aeabi_ui2f(uint32_t);
3351static inline zig_f32 zig_floatunsisf(uint32_t arg) { return __aeabi_ui2f(arg); }
3352
3353zig_extern zig_callconv(pcs("aapcs")) zig_f32 __aeabi_ul2f(uint64_t);
3354static inline zig_f32 zig_floatundisf(uint64_t arg) { return __aeabi_ul2f(arg); }
3355
3356zig_extern zig_callconv(pcs("aapcs")) int32_t __aeabi_d2iz(zig_f64);
3357static inline int32_t zig_fixdfsi(zig_f64 arg) { return __aeabi_d2iz(arg); }
3358
3359zig_extern zig_callconv(pcs("aapcs")) uint32_t __aeabi_d2uiz(zig_f64);
3360static inline uint32_t zig_fixunsdfsi(zig_f64 arg) { return __aeabi_d2uiz(arg); }
3361
3362zig_extern zig_callconv(pcs("aapcs")) uint64_t __aeabi_d2ulz(zig_f64);
3363static inline uint64_t zig_fixunsdfdi(zig_f64 arg) { return __aeabi_d2ulz(arg); }
3364
3365zig_extern zig_callconv(pcs("aapcs")) zig_f64 __aeabi_i2d(int32_t);
3366static inline zig_f64 zig_floatsidf(int32_t arg) { return __aeabi_i2d(arg); }
3367
3368zig_extern zig_callconv(pcs("aapcs")) zig_f64 __aeabi_ui2d(uint32_t);
3369static inline zig_f64 zig_floatunsidf(uint32_t arg) { return __aeabi_ui2d(arg); }
3370
3371zig_extern zig_callconv(pcs("aapcs")) zig_f64 __aeabi_ul2d(uint64_t);
3372static inline zig_f64 zig_floatundidf(uint64_t arg) { return __aeabi_ul2d(arg); }
3373
3374#else /* __ARM_EABI__ */
3375
3376zig_float_builtins(32)
3377zig_float_builtins(64)
3378
3379#endif /* __ARM_EABI__ */
3380
33183381/* ============================ Atomics Support ============================= */
33193382
33203383/* Note that atomics should be implemented as macros because most
src/TypedValue.zig+1
......@@ -196,6 +196,7 @@ pub fn print(
196196 .undef => return writer.writeAll("undefined"),
197197 .runtime_value => return writer.writeAll("(runtime value)"),
198198 .simple_value => |simple_value| switch (simple_value) {
199 .void => return writer.writeAll("{}"),
199200 .empty_struct => return printAggregate(ty, val, writer, level, mod),
200201 .generic_poison => return writer.writeAll("(generic poison)"),
201202 else => return writer.writeAll(@tagName(simple_value)),
test/behavior/align.zig+3-2
......@@ -198,11 +198,12 @@ test "alignment and size of structs with 128-bit fields" {
198198
199199 else => return error.SkipZigTest,
200200 };
201 const min_struct_align = if (builtin.zig_backend == .stage2_c) 16 else 0;
201202 comptime {
202 assert(@alignOf(A) == expected.a_align);
203 assert(@alignOf(A) == @max(expected.a_align, min_struct_align));
203204 assert(@sizeOf(A) == expected.a_size);
204205
205 assert(@alignOf(B) == expected.b_align);
206 assert(@alignOf(B) == @max(expected.b_align, min_struct_align));
206207 assert(@sizeOf(B) == expected.b_size);
207208
208209 assert(@alignOf(u128) == expected.u128_align);
test/behavior/cast.zig+2
......@@ -123,6 +123,7 @@ test "@floatFromInt(f80)" {
123123 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
124124 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
125125 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
126 if (builtin.zig_backend == .stage2_c and builtin.cpu.arch == .arm) return error.SkipZigTest;
126127
127128 const S = struct {
128129 fn doTheTest(comptime Int: type) !void {
......@@ -1369,6 +1370,7 @@ test "cast f16 to wider types" {
13691370 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
13701371 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
13711372 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
1373 if (builtin.zig_backend == .stage2_c and builtin.cpu.arch == .arm) return error.SkipZigTest;
13721374
13731375 const S = struct {
13741376 fn doTheTest() !void {
test/behavior/eval.zig+1
......@@ -533,6 +533,7 @@ test "runtime 128 bit integer division" {
533533 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
534534 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
535535 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
536 if (builtin.zig_backend == .stage2_c and builtin.cpu.arch == .arm) return error.SkipZigTest;
536537
537538 var a: u128 = 152313999999999991610955792383;
538539 var b: u128 = 10000000000000000000;
test/behavior/floatop.zig+9
......@@ -554,6 +554,7 @@ test "another, possibly redundant, @fabs test" {
554554 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
555555 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
556556 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
557 if (builtin.zig_backend == .stage2_c and builtin.cpu.arch == .arm) return error.SkipZigTest;
557558
558559 try testFabsLegacy(f128, 12.0);
559560 try comptime testFabsLegacy(f128, 12.0);
......@@ -576,6 +577,7 @@ test "@fabs f80" {
576577 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
577578 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
578579 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
580 if (builtin.zig_backend == .stage2_c and builtin.cpu.arch == .arm) return error.SkipZigTest;
579581
580582 try testFabsLegacy(f80, 12.0);
581583 try comptime testFabsLegacy(f80, 12.0);
......@@ -593,6 +595,7 @@ test "a third @fabs test, surely there should not be three fabs tests" {
593595 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
594596 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
595597 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
598 if (builtin.zig_backend == .stage2_c and builtin.cpu.arch == .arm) return error.SkipZigTest;
596599
597600 inline for ([_]type{ f16, f32, f64, f80, f128, c_longdouble }) |T| {
598601 // normals
......@@ -684,6 +687,7 @@ test "@floor f80" {
684687 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
685688 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
686689 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
690 if (builtin.zig_backend == .stage2_c and builtin.cpu.arch == .arm) return error.SkipZigTest;
687691
688692 if (builtin.zig_backend == .stage2_llvm and builtin.os.tag == .windows) {
689693 // https://github.com/ziglang/zig/issues/12602
......@@ -700,6 +704,7 @@ test "@floor f128" {
700704 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
701705 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
702706 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
707 if (builtin.zig_backend == .stage2_c and builtin.cpu.arch == .arm) return error.SkipZigTest;
703708
704709 try testFloorLegacy(f128, 12.0);
705710 try comptime testFloorLegacy(f128, 12.0);
......@@ -780,6 +785,7 @@ test "@ceil f80" {
780785 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
781786 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
782787 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
788 if (builtin.zig_backend == .stage2_c and builtin.cpu.arch == .arm) return error.SkipZigTest;
783789
784790 if (builtin.zig_backend == .stage2_llvm and builtin.os.tag == .windows) {
785791 // https://github.com/ziglang/zig/issues/12602
......@@ -796,6 +802,7 @@ test "@ceil f128" {
796802 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
797803 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
798804 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
805 if (builtin.zig_backend == .stage2_c and builtin.cpu.arch == .arm) return error.SkipZigTest;
799806
800807 try testCeilLegacy(f128, 12.0);
801808 try comptime testCeilLegacy(f128, 12.0);
......@@ -875,6 +882,7 @@ test "@trunc f80" {
875882 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
876883 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
877884 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
885 if (builtin.zig_backend == .stage2_c and builtin.cpu.arch == .arm) return error.SkipZigTest;
878886
879887 if (builtin.zig_backend == .stage2_llvm and builtin.os.tag == .windows) {
880888 // https://github.com/ziglang/zig/issues/12602
......@@ -897,6 +905,7 @@ test "@trunc f128" {
897905 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
898906 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
899907 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
908 if (builtin.zig_backend == .stage2_c and builtin.cpu.arch == .arm) return error.SkipZigTest;
900909
901910 try testTruncLegacy(f128, 12.0);
902911 try comptime testTruncLegacy(f128, 12.0);
test/behavior/math.zig+4
......@@ -664,6 +664,7 @@ test "128-bit multiplication" {
664664 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
665665 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
666666 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
667 if (builtin.zig_backend == .stage2_c and builtin.cpu.arch == .arm) return error.SkipZigTest;
667668
668669 {
669670 var a: i128 = 3;
......@@ -1311,6 +1312,7 @@ test "remainder division" {
13111312 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
13121313 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
13131314 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
1315 if (builtin.zig_backend == .stage2_c and builtin.cpu.arch == .arm) return error.SkipZigTest;
13141316
13151317 if (builtin.zig_backend == .stage2_llvm and builtin.os.tag == .windows) {
13161318 // https://github.com/ziglang/zig/issues/12602
......@@ -1455,6 +1457,7 @@ test "@round f80" {
14551457 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
14561458 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
14571459 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
1460 if (builtin.zig_backend == .stage2_c and builtin.cpu.arch == .arm) return error.SkipZigTest;
14581461
14591462 try testRound(f80, 12.0);
14601463 try comptime testRound(f80, 12.0);
......@@ -1467,6 +1470,7 @@ test "@round f128" {
14671470 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
14681471 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
14691472 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
1473 if (builtin.zig_backend == .stage2_c and builtin.cpu.arch == .arm) return error.SkipZigTest;
14701474
14711475 try testRound(f128, 12.0);
14721476 try comptime testRound(f128, 12.0);
test/behavior/maximum_minimum.zig+1
......@@ -110,6 +110,7 @@ test "@min/max for floats" {
110110 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
111111 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
112112 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
113 if (builtin.zig_backend == .stage2_c and builtin.cpu.arch == .arm) return error.SkipZigTest;
113114
114115 const S = struct {
115116 fn doTheTest(comptime T: type) !void {
test/behavior/muladd.zig+4
......@@ -56,6 +56,7 @@ test "@mulAdd f80" {
5656 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
5757 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
5858 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
59 if (builtin.zig_backend == .stage2_c and builtin.cpu.arch == .arm) return error.SkipZigTest;
5960
6061 try comptime testMulAdd80();
6162 try testMulAdd80();
......@@ -75,6 +76,7 @@ test "@mulAdd f128" {
7576 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
7677 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
7778 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
79 if (builtin.zig_backend == .stage2_c and builtin.cpu.arch == .arm) return error.SkipZigTest;
7880
7981 try comptime testMulAdd128();
8082 try testMulAdd128();
......@@ -177,6 +179,7 @@ test "vector f80" {
177179 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
178180 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
179181 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
182 if (builtin.zig_backend == .stage2_c and builtin.cpu.arch == .arm) return error.SkipZigTest;
180183
181184 try comptime vector80();
182185 try vector80();
......@@ -201,6 +204,7 @@ test "vector f128" {
201204 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
202205 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
203206 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
207 if (builtin.zig_backend == .stage2_c and builtin.cpu.arch == .arm) return error.SkipZigTest;
204208
205209 try comptime vector128();
206210 try vector128();
test/behavior/saturating_arithmetic.zig+1
......@@ -157,6 +157,7 @@ test "saturating multiplication" {
157157 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
158158 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
159159 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
160 if (builtin.zig_backend == .stage2_c and builtin.cpu.arch == .arm) return error.SkipZigTest;
160161
161162 if (builtin.zig_backend == .stage2_llvm and builtin.cpu.arch == .wasm32) {
162163 // https://github.com/ziglang/zig/issues/9660
test/behavior/struct.zig+1
......@@ -824,6 +824,7 @@ test "non-packed struct with u128 entry in union" {
824824 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
825825 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
826826 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
827 if (builtin.zig_backend == .stage2_c and builtin.cpu.arch == .arm) return error.SkipZigTest;
827828
828829 const U = union(enum) {
829830 Num: u128,
test/behavior/vector.zig+2
......@@ -102,6 +102,7 @@ test "vector float operators" {
102102 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
103103 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
104104 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
105 if (builtin.zig_backend == .stage2_c and builtin.cpu.arch == .arm) return error.SkipZigTest;
105106
106107 inline for ([_]type{ f16, f32, f64, f80, f128 }) |T| {
107108 const S = struct {
......@@ -705,6 +706,7 @@ test "vector reduce operation" {
705706 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
706707 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
707708 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
709 if (builtin.zig_backend == .stage2_c and builtin.cpu.arch == .arm) return error.SkipZigTest;
708710
709711 const S = struct {
710712 fn testReduce(comptime op: std.builtin.ReduceOp, x: anytype, expected: anytype) !void {