From 501b43a75b09d0ac6e25936036316612feb2d40b Mon Sep 17 00:00:00 2001 From: Ali Cheraghi Date: Sun, 5 Jul 2026 10:02:39 +0330 Subject: [PATCH] spirv: add alignment info to store ops --- src/codegen/spirv/CodeGen.zig | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/codegen/spirv/CodeGen.zig b/src/codegen/spirv/CodeGen.zig index 329ea763adde6ae390cfa0c6626aa740b9593338..de830baf765ea5fc1a86ce1c69c73af863bc78f3 100644 --- a/src/codegen/spirv/CodeGen.zig +++ b/src/codegen/spirv/CodeGen.zig @@ -4222,6 +4222,8 @@ fn load(cg: *CodeGen, value_ty: Type, ptr_id: Id, options: MemoryOptions) !Id { } fn store(cg: *CodeGen, value_ty: Type, ptr_id: Id, value_id: Id, options: MemoryOptions) !void { + const zcu = cg.zcu; + const alignment: u32 = @intCast(value_ty.abiAlignment(zcu).toByteUnits().?); const bare_value_id = try cg.convertToIndirect(value_ty, value_id); const bare_ty_id = try cg.resolveType(value_ty, .indirect); const store_ty_id = if (cg.needsLayout(options.ptr_address_space, value_ty)) @@ -4232,7 +4234,10 @@ fn store(cg: *CodeGen, value_ty: Type, ptr_id: Id, value_id: Id, options: Memory try cg.body.emit(cg.gpa, .OpStore, .{ .pointer = ptr_id, .object = object_id, - .memory_access = .{ .@"volatile" = options.is_volatile }, + .memory_access = .{ + .@"volatile" = options.is_volatile, + .aligned = .{ .literal_integer = alignment }, + }, }); } -- 2.54.0