-
-
Notifications
You must be signed in to change notification settings - Fork 2.6k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
aarch64 llvm 14 regression with vectors: assertion `TmpVec.size() > 1' failed #12012
Comments
Closes ziglang#12012 Closes ziglang#12013 Closes ziglang#10627 Closes ziglang#12027
Closes ziglang#12012 Closes ziglang#12013 Closes ziglang#10627 Closes ziglang#12027
Closes ziglang#12012 Closes ziglang#12013 Closes ziglang#10627 Closes ziglang#12027
Closes ziglang#12012 Closes ziglang#12013 Closes ziglang#10627 Closes ziglang#12027
Closes ziglang#12012 Closes ziglang#12013 Closes ziglang#10627 Closes ziglang#12027
Closes ziglang#12012 Closes ziglang#12013 Closes ziglang#10627 Closes ziglang#12027
Closes ziglang#12012 Closes ziglang#12013 Closes ziglang#10627 Closes ziglang#12027
This has an open issue on LLVM 14 and ARM so it may not work in all situations: ziglang/zig#12012
I'm very new to this but I think this is not regressed anymore as the fix for llvm/llvm-project#56397 landed some time ago in llvm/llvm-project@2483f43. I did the following to confirm this:
Test snippet: (regression.zig) const std = @import("std");
const builtin = @import("builtin");
test "tuple to vector" {
if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
if (builtin.zig_backend == .stage2_llvm and builtin.cpu.arch == .aarch64) {
// Regressed with LLVM 14:
// https://github.com/ziglang/zig/issues/12012
std.debug.print("AARCH64 detected!\n", .{});
// return error.SkipZigTest;
}
const S = struct {
fn doTheTest() !void {
const Vec3 = @Vector(3, i32);
var v: Vec3 = .{ 1, 0, 0 };
for ([_]Vec3{ .{ 0, 1, 0 }, .{ 0, 0, 1 } }) |it| {
v += it;
}
try std.testing.expectEqual(v, Vec3{ 1, 1, 1 });
try std.testing.expectEqual(v, .{ 1, 1, 1 });
}
};
try S.doTheTest();
try comptime S.doTheTest();
} If you want I can open a PR that re-enables the test case. |
Zig Version:
0.10.0-dev.2876+fbd6c8832
This test case regressed with the update from LLVM 13 to 14:
Reduced LLVM IR:
Upstream bug report: llvm/llvm-project#56397
The text was updated successfully, but these errors were encountered: