mirror of
https://codeberg.org/ziglang/zig.git
synced 2026-05-28 20:06:38 +03:00
Sema: remove all_vector_instructions logic
Backends can instead ask legalization on a per-instruction basis.
This commit is contained in:
@@ -28,6 +28,10 @@ const SpvAssembler = @import("spirv/Assembler.zig");
|
||||
|
||||
const InstMap = std.AutoHashMapUnmanaged(Air.Inst.Index, IdRef);
|
||||
|
||||
pub inline fn legalizeFeatures(_: *const std.Target) *const Air.Legalize.Features {
|
||||
return comptime &.initEmpty();
|
||||
}
|
||||
|
||||
pub const zig_call_abi_ver = 3;
|
||||
pub const big_int_bits = 32;
|
||||
|
||||
@@ -3380,6 +3384,10 @@ const NavGen = struct {
|
||||
const zcu = self.pt.zcu;
|
||||
const bin_op = self.air.instructions.items(.data)[@intFromEnum(inst)].bin_op;
|
||||
|
||||
if (self.typeOf(bin_op.lhs).isVector(zcu) and !self.typeOf(bin_op.rhs).isVector(zcu)) {
|
||||
return self.fail("vector shift with scalar rhs", .{});
|
||||
}
|
||||
|
||||
const base = try self.temporary(bin_op.lhs);
|
||||
const shift = try self.temporary(bin_op.rhs);
|
||||
|
||||
@@ -3866,6 +3874,10 @@ const NavGen = struct {
|
||||
const ty_pl = self.air.instructions.items(.data)[@intFromEnum(inst)].ty_pl;
|
||||
const extra = self.air.extraData(Air.Bin, ty_pl.payload).data;
|
||||
|
||||
if (self.typeOf(extra.lhs).isVector(zcu) and !self.typeOf(extra.rhs).isVector(zcu)) {
|
||||
return self.fail("vector shift with scalar rhs", .{});
|
||||
}
|
||||
|
||||
const base = try self.temporary(extra.lhs);
|
||||
const shift = try self.temporary(extra.rhs);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user