diff options
| author | Andrew Kelley <andrew@ziglang.org> | 2022-07-10 03:06:05 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-07-10 03:06:05 -0400 |
| commit | b88151e0e1553607cbebc197e1111ec4bf53a595 (patch) | |
| tree | cd4f57feae521500fe4eb99a98a798241256d341 /test/behavior | |
| parent | 3f11d1d56d9747de974b00eab1c880bea7972c01 (diff) | |
| parent | f9bf4889264aee387639bb8a35fdf594236b1283 (diff) | |
| download | zig-b88151e0e1553607cbebc197e1111ec4bf53a595.tar.gz zig-b88151e0e1553607cbebc197e1111ec4bf53a595.zip | |
Merge pull request #12001 from ziglang/llvm14
Upgrade to LLVM 14
Diffstat (limited to 'test/behavior')
| -rw-r--r-- | test/behavior/basic.zig | 4 | ||||
| -rw-r--r-- | test/behavior/bugs/9584.zig | 3 | ||||
| -rw-r--r-- | test/behavior/math.zig | 39 | ||||
| -rw-r--r-- | test/behavior/vector.zig | 22 |
4 files changed, 62 insertions, 6 deletions
diff --git a/test/behavior/basic.zig b/test/behavior/basic.zig index 8241579229..5e9187ad3a 100644 --- a/test/behavior/basic.zig +++ b/test/behavior/basic.zig @@ -796,6 +796,10 @@ test "auto created variables have correct alignment" { } test "extern variable with non-pointer opaque type" { + if (builtin.zig_backend == .stage1) { + // Regressed with LLVM 14 + return error.SkipZigTest; + } if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO diff --git a/test/behavior/bugs/9584.zig b/test/behavior/bugs/9584.zig index 709d510072..503a402fed 100644 --- a/test/behavior/bugs/9584.zig +++ b/test/behavior/bugs/9584.zig @@ -35,7 +35,8 @@ pub fn a( _ = flag_a; // With this bug present, `flag_b` would actually contain the value 17. // Note: this bug only presents itself on debug mode. - try std.testing.expect(@ptrCast(*const u8, &flag_b).* == 1); + const flag_b_byte: u8 = @boolToInt(flag_b); + try std.testing.expect(flag_b_byte == 1); } pub fn b(x: *X) !void { diff --git a/test/behavior/math.zig b/test/behavior/math.zig index 2b10996bfb..a0796d386b 100644 --- a/test/behavior/math.zig +++ b/test/behavior/math.zig @@ -161,10 +161,11 @@ test "@ctz vectors" { if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO - if (builtin.zig_backend == .stage2_llvm and builtin.cpu.arch == .aarch64) { - // TODO this is tripping an LLVM assert: - // 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. - // I need to report a zig issue and an llvm issue + if ((builtin.zig_backend == .stage1 or builtin.zig_backend == .stage2_llvm) and + builtin.cpu.arch == .aarch64) + { + // This regressed with LLVM 14: + // https://github.com/ziglang/zig/issues/12013 return error.SkipZigTest; } @@ -1167,6 +1168,11 @@ test "remainder division" { if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO + if (builtin.zig_backend == .stage2_llvm and builtin.cpu.arch == .riscv64) { + // https://github.com/ziglang/zig/issues/12054 + return error.SkipZigTest; + } + comptime try remdiv(f16); comptime try remdiv(f32); comptime try remdiv(f64); @@ -1198,6 +1204,11 @@ test "float remainder division using @rem" { if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO + if (builtin.zig_backend == .stage2_llvm and builtin.cpu.arch == .riscv64) { + // https://github.com/ziglang/zig/issues/12054 + return error.SkipZigTest; + } + comptime try frem(f16); comptime try frem(f32); comptime try frem(f64); @@ -1240,6 +1251,11 @@ test "float modulo division using @mod" { if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO + if (builtin.zig_backend == .stage2_llvm and builtin.cpu.arch == .riscv64) { + // https://github.com/ziglang/zig/issues/12054 + return error.SkipZigTest; + } + comptime try fmod(f16); comptime try fmod(f32); comptime try fmod(f64); @@ -1415,6 +1431,11 @@ test "@ceil f80" { if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO + if (builtin.zig_backend == .stage2_llvm and builtin.cpu.arch == .riscv64) { + // https://github.com/ziglang/zig/issues/12054 + return error.SkipZigTest; + } + try testCeil(f80, 12.0); comptime try testCeil(f80, 12.0); } @@ -1426,6 +1447,11 @@ test "@ceil f128" { if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO + if (builtin.zig_backend == .stage2_llvm and builtin.cpu.arch == .riscv64) { + // https://github.com/ziglang/zig/issues/12054 + return error.SkipZigTest; + } + try testCeil(f128, 12.0); comptime try testCeil(f128, 12.0); } @@ -1574,6 +1600,11 @@ test "NaN comparison" { if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO + if (builtin.zig_backend == .stage2_llvm and builtin.cpu.arch == .riscv64) { + // https://github.com/ziglang/zig/issues/12054 + return error.SkipZigTest; + } + try testNanEqNan(f16); try testNanEqNan(f32); try testNanEqNan(f64); diff --git a/test/behavior/vector.zig b/test/behavior/vector.zig index e355db5166..eb4676310d 100644 --- a/test/behavior/vector.zig +++ b/test/behavior/vector.zig @@ -5,6 +5,12 @@ const math = std.math; const expect = std.testing.expect; test "implicit cast vector to array - bool" { + if (builtin.zig_backend == .stage1) { + // Regressed in LLVM 14: + // https://github.com/llvm/llvm-project/issues/55522 + return error.SkipZigTest; + } + if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO @@ -174,6 +180,14 @@ test "tuple to vector" { if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO + if ((builtin.zig_backend == .stage1 or builtin.zig_backend == .stage2_llvm) and + builtin.cpu.arch == .aarch64) + { + // Regressed with LLVM 14: + // https://github.com/ziglang/zig/issues/12012 + return error.SkipZigTest; + } + const S = struct { fn doTheTest() !void { const Vec3 = @Vector(3, i32); @@ -391,6 +405,12 @@ test "initialize vector which is a struct field" { } test "vector comparison operators" { + if (builtin.zig_backend == .stage1) { + // Regressed in LLVM 14: + // https://github.com/llvm/llvm-project/issues/55522 + return error.SkipZigTest; + } + if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO @@ -1051,7 +1071,7 @@ test "@shlWithOverflow" { test "alignment of vectors" { try expect(@alignOf(@Vector(2, u8)) == 2); - try expect(@alignOf(@Vector(2, u1)) == 2); + try expect(@alignOf(@Vector(2, u1)) == 1); try expect(@alignOf(@Vector(1, u1)) == 1); try expect(@alignOf(@Vector(2, u16)) == 4); } |
