authorgravatar for alex@alexrp.comAlex Rønne Petersen <alex@alexrp.com> 2025-04-11 17:40:47+02:00
committergravatar for noreply@github.comGitHub <noreply@github.com> 2025-04-11 17:40:47+02:00
log90084f4ae329c89466bc8c74bd6e00db3f2a3803
tree513dbd4b21e20bac2e75046395ab9e5babefc837
parentc82e1fe880629beea5660c675cfc698807205601
parent27cfff8f448628c36b88e8e36eb22e4f631620a0
signaturebadge-check Signed by PGP key B5690EEEBB952194

Merge pull request #23483 from alexrp/target-int-functions

compiler: Move int size/alignment functions to `std.Target` and `std.zig.target`

31 files changed, 364 insertions(+), 333 deletions(-)

lib/compiler/aro/aro/Compilation.zig+1-1
...@@ -1087,7 +1087,7 @@ pub fn fixedEnumTagSpecifier(comp: *const Compilation) ?Type.Specifier {...@@ -1087,7 +1087,7 @@ pub fn fixedEnumTagSpecifier(comp: *const Compilation) ?Type.Specifier {
1087}1087}
10881088
1089pub fn getCharSignedness(comp: *const Compilation) std.builtin.Signedness {1089pub fn getCharSignedness(comp: *const Compilation) std.builtin.Signedness {
1090 return comp.langopts.char_signedness_override orelse comp.target.charSignedness();1090 return comp.langopts.char_signedness_override orelse comp.target.cCharSignedness();
1091}1091}
10921092
1093/// Add built-in aro headers directory to system include paths1093/// Add built-in aro headers directory to system include paths
lib/compiler_rt/divmodei4.zig+10-8
...@@ -33,18 +33,20 @@ fn divmod(q: ?[]u32, r: ?[]u32, u: []u32, v: []u32) !void {...@@ -33,18 +33,20 @@ fn divmod(q: ?[]u32, r: ?[]u32, u: []u32, v: []u32) !void {
33 if (r) |x| if (u_sign < 0) neg(x);33 if (r) |x| if (u_sign < 0) neg(x);
34}34}
3535
36pub fn __divei4(r_q: [*]u32, u_p: [*]u32, v_p: [*]u32, bits: usize) callconv(.c) void {36pub fn __divei4(q_p: [*]u8, u_p: [*]u8, v_p: [*]u8, bits: usize) callconv(.c) void {
37 @setRuntimeSafety(builtin.is_test);37 @setRuntimeSafety(builtin.is_test);
38 const u = u_p[0 .. std.math.divCeil(usize, bits, 32) catch unreachable];38 const byte_size = std.zig.target.intByteSize(builtin.target, @intCast(bits));
39 const v = v_p[0 .. std.math.divCeil(usize, bits, 32) catch unreachable];39 const q: []u32 = @ptrCast(@alignCast(q_p[0..byte_size]));
40 const q = r_q[0 .. std.math.divCeil(usize, bits, 32) catch unreachable];40 const u: []u32 = @ptrCast(@alignCast(u_p[0..byte_size]));
41 const v: []u32 = @ptrCast(@alignCast(v_p[0..byte_size]));
41 @call(.always_inline, divmod, .{ q, null, u, v }) catch unreachable;42 @call(.always_inline, divmod, .{ q, null, u, v }) catch unreachable;
42}43}
4344
44pub fn __modei4(r_p: [*]u32, u_p: [*]u32, v_p: [*]u32, bits: usize) callconv(.c) void {45pub fn __modei4(r_p: [*]u8, u_p: [*]u8, v_p: [*]u8, bits: usize) callconv(.c) void {
45 @setRuntimeSafety(builtin.is_test);46 @setRuntimeSafety(builtin.is_test);
46 const u = u_p[0 .. std.math.divCeil(usize, bits, 32) catch unreachable];47 const byte_size = std.zig.target.intByteSize(builtin.target, @intCast(bits));
47 const v = v_p[0 .. std.math.divCeil(usize, bits, 32) catch unreachable];48 const r: []u32 = @ptrCast(@alignCast(r_p[0..byte_size]));
48 const r = r_p[0 .. std.math.divCeil(usize, bits, 32) catch unreachable];49 const u: []u32 = @ptrCast(@alignCast(u_p[0..byte_size]));
50 const v: []u32 = @ptrCast(@alignCast(v_p[0..byte_size]));
49 @call(.always_inline, divmod, .{ null, r, u, v }) catch unreachable;51 @call(.always_inline, divmod, .{ null, r, u, v }) catch unreachable;
50}52}
lib/compiler_rt/fixdfei.zig+7-5
...@@ -1,6 +1,7 @@...@@ -1,6 +1,7 @@
1const divCeil = @import("std").math.divCeil;1const std = @import("std");
2const common = @import("./common.zig");2const builtin = @import("builtin");
3const bigIntFromFloat = @import("./int_from_float.zig").bigIntFromFloat;3const common = @import("common.zig");
4const bigIntFromFloat = @import("int_from_float.zig").bigIntFromFloat;
45
5pub const panic = common.panic;6pub const panic = common.panic;
67
...@@ -8,6 +9,7 @@ comptime {...@@ -8,6 +9,7 @@ comptime {
8 @export(&__fixdfei, .{ .name = "__fixdfei", .linkage = common.linkage, .visibility = common.visibility });9 @export(&__fixdfei, .{ .name = "__fixdfei", .linkage = common.linkage, .visibility = common.visibility });
9}10}
1011
11pub fn __fixdfei(r: [*]u32, bits: usize, a: f64) callconv(.c) void {12pub fn __fixdfei(r: [*]u8, bits: usize, a: f64) callconv(.c) void {
12 return bigIntFromFloat(.signed, r[0 .. divCeil(usize, bits, 32) catch unreachable], a);13 const byte_size = std.zig.target.intByteSize(builtin.target, @intCast(bits));
14 return bigIntFromFloat(.signed, @ptrCast(@alignCast(r[0..byte_size])), a);
13}15}
lib/compiler_rt/fixhfei.zig+7-5
...@@ -1,6 +1,7 @@...@@ -1,6 +1,7 @@
1const divCeil = @import("std").math.divCeil;1const std = @import("std");
2const common = @import("./common.zig");2const builtin = @import("builtin");
3const bigIntFromFloat = @import("./int_from_float.zig").bigIntFromFloat;3const common = @import("common.zig");
4const bigIntFromFloat = @import("int_from_float.zig").bigIntFromFloat;
45
5pub const panic = common.panic;6pub const panic = common.panic;
67
...@@ -8,6 +9,7 @@ comptime {...@@ -8,6 +9,7 @@ comptime {
8 @export(&__fixhfei, .{ .name = "__fixhfei", .linkage = common.linkage, .visibility = common.visibility });9 @export(&__fixhfei, .{ .name = "__fixhfei", .linkage = common.linkage, .visibility = common.visibility });
9}10}
1011
11pub fn __fixhfei(r: [*]u32, bits: usize, a: f16) callconv(.c) void {12pub fn __fixhfei(r: [*]u8, bits: usize, a: f16) callconv(.c) void {
12 return bigIntFromFloat(.signed, r[0 .. divCeil(usize, bits, 32) catch unreachable], a);13 const byte_size = std.zig.target.intByteSize(builtin.target, @intCast(bits));
14 return bigIntFromFloat(.signed, @ptrCast(@alignCast(r[0..byte_size])), a);
13}15}
lib/compiler_rt/fixsfei.zig+7-5
...@@ -1,6 +1,7 @@...@@ -1,6 +1,7 @@
1const divCeil = @import("std").math.divCeil;1const std = @import("std");
2const common = @import("./common.zig");2const builtin = @import("builtin");
3const bigIntFromFloat = @import("./int_from_float.zig").bigIntFromFloat;3const common = @import("common.zig");
4const bigIntFromFloat = @import("int_from_float.zig").bigIntFromFloat;
45
5pub const panic = common.panic;6pub const panic = common.panic;
67
...@@ -8,6 +9,7 @@ comptime {...@@ -8,6 +9,7 @@ comptime {
8 @export(&__fixsfei, .{ .name = "__fixsfei", .linkage = common.linkage, .visibility = common.visibility });9 @export(&__fixsfei, .{ .name = "__fixsfei", .linkage = common.linkage, .visibility = common.visibility });
9}10}
1011
11pub fn __fixsfei(r: [*]u32, bits: usize, a: f32) callconv(.c) void {12pub fn __fixsfei(r: [*]u8, bits: usize, a: f32) callconv(.c) void {
12 return bigIntFromFloat(.signed, r[0 .. divCeil(usize, bits, 32) catch unreachable], a);13 const byte_size = std.zig.target.intByteSize(builtin.target, @intCast(bits));
14 return bigIntFromFloat(.signed, @ptrCast(@alignCast(r[0..byte_size])), a);
13}15}
lib/compiler_rt/fixtfei.zig+7-5
...@@ -1,6 +1,7 @@...@@ -1,6 +1,7 @@
1const divCeil = @import("std").math.divCeil;1const std = @import("std");
2const common = @import("./common.zig");2const builtin = @import("builtin");
3const bigIntFromFloat = @import("./int_from_float.zig").bigIntFromFloat;3const common = @import("common.zig");
4const bigIntFromFloat = @import("int_from_float.zig").bigIntFromFloat;
45
5pub const panic = common.panic;6pub const panic = common.panic;
67
...@@ -8,6 +9,7 @@ comptime {...@@ -8,6 +9,7 @@ comptime {
8 @export(&__fixtfei, .{ .name = "__fixtfei", .linkage = common.linkage, .visibility = common.visibility });9 @export(&__fixtfei, .{ .name = "__fixtfei", .linkage = common.linkage, .visibility = common.visibility });
9}10}
1011
11pub fn __fixtfei(r: [*]u32, bits: usize, a: f128) callconv(.c) void {12pub fn __fixtfei(r: [*]u8, bits: usize, a: f128) callconv(.c) void {
12 return bigIntFromFloat(.signed, r[0 .. divCeil(usize, bits, 32) catch unreachable], a);13 const byte_size = std.zig.target.intByteSize(builtin.target, @intCast(bits));
14 return bigIntFromFloat(.signed, @ptrCast(@alignCast(r[0..byte_size])), a);
13}15}
lib/compiler_rt/fixunsdfei.zig+7-5
...@@ -1,6 +1,7 @@...@@ -1,6 +1,7 @@
1const divCeil = @import("std").math.divCeil;1const std = @import("std");
2const common = @import("./common.zig");2const builtin = @import("builtin");
3const bigIntFromFloat = @import("./int_from_float.zig").bigIntFromFloat;3const common = @import("common.zig");
4const bigIntFromFloat = @import("int_from_float.zig").bigIntFromFloat;
45
5pub const panic = common.panic;6pub const panic = common.panic;
67
...@@ -8,6 +9,7 @@ comptime {...@@ -8,6 +9,7 @@ comptime {
8 @export(&__fixunsdfei, .{ .name = "__fixunsdfei", .linkage = common.linkage, .visibility = common.visibility });9 @export(&__fixunsdfei, .{ .name = "__fixunsdfei", .linkage = common.linkage, .visibility = common.visibility });
9}10}
1011
11pub fn __fixunsdfei(r: [*]u32, bits: usize, a: f64) callconv(.c) void {12pub fn __fixunsdfei(r: [*]u8, bits: usize, a: f64) callconv(.c) void {
12 return bigIntFromFloat(.unsigned, r[0 .. divCeil(usize, bits, 32) catch unreachable], a);13 const byte_size = std.zig.target.intByteSize(builtin.target, @intCast(bits));
14 return bigIntFromFloat(.unsigned, @ptrCast(@alignCast(r[0..byte_size])), a);
13}15}
lib/compiler_rt/fixunshfei.zig+7-5
...@@ -1,6 +1,7 @@...@@ -1,6 +1,7 @@
1const divCeil = @import("std").math.divCeil;1const std = @import("std");
2const common = @import("./common.zig");2const builtin = @import("builtin");
3const bigIntFromFloat = @import("./int_from_float.zig").bigIntFromFloat;3const common = @import("common.zig");
4const bigIntFromFloat = @import("int_from_float.zig").bigIntFromFloat;
45
5pub const panic = common.panic;6pub const panic = common.panic;
67
...@@ -8,6 +9,7 @@ comptime {...@@ -8,6 +9,7 @@ comptime {
8 @export(&__fixunshfei, .{ .name = "__fixunshfei", .linkage = common.linkage, .visibility = common.visibility });9 @export(&__fixunshfei, .{ .name = "__fixunshfei", .linkage = common.linkage, .visibility = common.visibility });
9}10}
1011
11pub fn __fixunshfei(r: [*]u32, bits: usize, a: f16) callconv(.c) void {12pub fn __fixunshfei(r: [*]u8, bits: usize, a: f16) callconv(.c) void {
12 return bigIntFromFloat(.unsigned, r[0 .. divCeil(usize, bits, 32) catch unreachable], a);13 const byte_size = std.zig.target.intByteSize(builtin.target, @intCast(bits));
14 return bigIntFromFloat(.unsigned, @ptrCast(@alignCast(r[0..byte_size])), a);
13}15}
lib/compiler_rt/fixunssfei.zig+7-5
...@@ -1,6 +1,7 @@...@@ -1,6 +1,7 @@
1const divCeil = @import("std").math.divCeil;1const std = @import("std");
2const common = @import("./common.zig");2const builtin = @import("builtin");
3const bigIntFromFloat = @import("./int_from_float.zig").bigIntFromFloat;3const common = @import("common.zig");
4const bigIntFromFloat = @import("int_from_float.zig").bigIntFromFloat;
45
5pub const panic = common.panic;6pub const panic = common.panic;
67
...@@ -8,6 +9,7 @@ comptime {...@@ -8,6 +9,7 @@ comptime {
8 @export(&__fixunssfei, .{ .name = "__fixunssfei", .linkage = common.linkage, .visibility = common.visibility });9 @export(&__fixunssfei, .{ .name = "__fixunssfei", .linkage = common.linkage, .visibility = common.visibility });
9}10}
1011
11pub fn __fixunssfei(r: [*]u32, bits: usize, a: f32) callconv(.c) void {12pub fn __fixunssfei(r: [*]u8, bits: usize, a: f32) callconv(.c) void {
12 return bigIntFromFloat(.unsigned, r[0 .. divCeil(usize, bits, 32) catch unreachable], a);13 const byte_size = std.zig.target.intByteSize(builtin.target, @intCast(bits));
14 return bigIntFromFloat(.unsigned, @ptrCast(@alignCast(r[0..byte_size])), a);
13}15}
lib/compiler_rt/fixunstfei.zig+7-5
...@@ -1,6 +1,7 @@...@@ -1,6 +1,7 @@
1const divCeil = @import("std").math.divCeil;1const std = @import("std");
2const common = @import("./common.zig");2const builtin = @import("builtin");
3const bigIntFromFloat = @import("./int_from_float.zig").bigIntFromFloat;3const common = @import("common.zig");
4const bigIntFromFloat = @import("int_from_float.zig").bigIntFromFloat;
45
5pub const panic = common.panic;6pub const panic = common.panic;
67
...@@ -8,6 +9,7 @@ comptime {...@@ -8,6 +9,7 @@ comptime {
8 @export(&__fixunstfei, .{ .name = "__fixunstfei", .linkage = common.linkage, .visibility = common.visibility });9 @export(&__fixunstfei, .{ .name = "__fixunstfei", .linkage = common.linkage, .visibility = common.visibility });
9}10}
1011
11pub fn __fixunstfei(r: [*]u32, bits: usize, a: f128) callconv(.c) void {12pub fn __fixunstfei(r: [*]u8, bits: usize, a: f128) callconv(.c) void {
12 return bigIntFromFloat(.unsigned, r[0 .. divCeil(usize, bits, 32) catch unreachable], a);13 const byte_size = std.zig.target.intByteSize(builtin.target, @intCast(bits));
14 return bigIntFromFloat(.unsigned, @ptrCast(@alignCast(r[0..byte_size])), a);
13}15}
lib/compiler_rt/fixunsxfei.zig+7-5
...@@ -1,6 +1,7 @@...@@ -1,6 +1,7 @@
1const divCeil = @import("std").math.divCeil;1const std = @import("std");
2const common = @import("./common.zig");2const builtin = @import("builtin");
3const bigIntFromFloat = @import("./int_from_float.zig").bigIntFromFloat;3const common = @import("common.zig");
4const bigIntFromFloat = @import("int_from_float.zig").bigIntFromFloat;
45
5pub const panic = common.panic;6pub const panic = common.panic;
67
...@@ -8,6 +9,7 @@ comptime {...@@ -8,6 +9,7 @@ comptime {
8 @export(&__fixunsxfei, .{ .name = "__fixunsxfei", .linkage = common.linkage, .visibility = common.visibility });9 @export(&__fixunsxfei, .{ .name = "__fixunsxfei", .linkage = common.linkage, .visibility = common.visibility });
9}10}
1011
11pub fn __fixunsxfei(r: [*]u32, bits: usize, a: f80) callconv(.c) void {12pub fn __fixunsxfei(r: [*]u8, bits: usize, a: f80) callconv(.c) void {
12 return bigIntFromFloat(.unsigned, r[0 .. divCeil(usize, bits, 32) catch unreachable], a);13 const byte_size = std.zig.target.intByteSize(builtin.target, @intCast(bits));
14 return bigIntFromFloat(.unsigned, @ptrCast(@alignCast(r[0..byte_size])), a);
13}15}
lib/compiler_rt/fixxfei.zig+7-5
...@@ -1,6 +1,7 @@...@@ -1,6 +1,7 @@
1const divCeil = @import("std").math.divCeil;1const std = @import("std");
2const common = @import("./common.zig");2const builtin = @import("builtin");
3const bigIntFromFloat = @import("./int_from_float.zig").bigIntFromFloat;3const common = @import("common.zig");
4const bigIntFromFloat = @import("int_from_float.zig").bigIntFromFloat;
45
5pub const panic = common.panic;6pub const panic = common.panic;
67
...@@ -8,6 +9,7 @@ comptime {...@@ -8,6 +9,7 @@ comptime {
8 @export(&__fixxfei, .{ .name = "__fixxfei", .linkage = common.linkage, .visibility = common.visibility });9 @export(&__fixxfei, .{ .name = "__fixxfei", .linkage = common.linkage, .visibility = common.visibility });
9}10}
1011
11pub fn __fixxfei(r: [*]u32, bits: usize, a: f80) callconv(.c) void {12pub fn __fixxfei(r: [*]u8, bits: usize, a: f80) callconv(.c) void {
12 return bigIntFromFloat(.signed, r[0 .. divCeil(usize, bits, 32) catch unreachable], a);13 const byte_size = std.zig.target.intByteSize(builtin.target, @intCast(bits));
14 return bigIntFromFloat(.signed, @ptrCast(@alignCast(r[0..byte_size])), a);
13}15}
lib/compiler_rt/float_from_int_test.zig+1-5
...@@ -1,8 +1,6 @@...@@ -1,8 +1,6 @@
1const std = @import("std");1const std = @import("std");
2const builtin = @import("builtin");
3const testing = std.testing;2const testing = std.testing;
4const math = std.math;3const math = std.math;
5const endian = builtin.cpu.arch.endian();
64
7const __floatunsihf = @import("floatunsihf.zig").__floatunsihf;5const __floatunsihf = @import("floatunsihf.zig").__floatunsihf;
86
...@@ -237,12 +235,10 @@ test "floatuntisf" {...@@ -237,12 +235,10 @@ test "floatuntisf" {
237235
238fn test_floateisf(expected: u32, comptime T: type, a: T) !void {236fn test_floateisf(expected: u32, comptime T: type, a: T) !void {
239 const int = @typeInfo(T).int;237 const int = @typeInfo(T).int;
240 var a_buf: [@divExact(int.bits, 32)]u32 = undefined;
241 std.mem.writeInt(T, std.mem.asBytes(&a_buf), a, endian);
242 const r = switch (int.signedness) {238 const r = switch (int.signedness) {
243 .signed => __floateisf,239 .signed => __floateisf,
244 .unsigned => __floatuneisf,240 .unsigned => __floatuneisf,
245 }(&a_buf, int.bits);241 }(@ptrCast(&a), int.bits);
246 try testing.expect(expected == @as(u32, @bitCast(r)));242 try testing.expect(expected == @as(u32, @bitCast(r)));
247}243}
248244
lib/compiler_rt/floateidf.zig+7-5
...@@ -1,6 +1,7 @@...@@ -1,6 +1,7 @@
1const divCeil = @import("std").math.divCeil;1const std = @import("std");
2const common = @import("./common.zig");2const builtin = @import("builtin");
3const floatFromBigInt = @import("./float_from_int.zig").floatFromBigInt;3const common = @import("common.zig");
4const floatFromBigInt = @import("float_from_int.zig").floatFromBigInt;
45
5pub const panic = common.panic;6pub const panic = common.panic;
67
...@@ -8,6 +9,7 @@ comptime {...@@ -8,6 +9,7 @@ comptime {
8 @export(&__floateidf, .{ .name = "__floateidf", .linkage = common.linkage, .visibility = common.visibility });9 @export(&__floateidf, .{ .name = "__floateidf", .linkage = common.linkage, .visibility = common.visibility });
9}10}
1011
11pub fn __floateidf(a: [*]const u32, bits: usize) callconv(.c) f64 {12pub fn __floateidf(a: [*]const u8, bits: usize) callconv(.c) f64 {
12 return floatFromBigInt(f64, .signed, a[0 .. divCeil(usize, bits, 32) catch unreachable]);13 const byte_size = std.zig.target.intByteSize(builtin.target, @intCast(bits));
14 return floatFromBigInt(f64, .signed, @ptrCast(@alignCast(a[0..byte_size])));
13}15}
lib/compiler_rt/floateihf.zig+7-5
...@@ -1,6 +1,7 @@...@@ -1,6 +1,7 @@
1const divCeil = @import("std").math.divCeil;1const std = @import("std");
2const common = @import("./common.zig");2const builtin = @import("builtin");
3const floatFromBigInt = @import("./float_from_int.zig").floatFromBigInt;3const common = @import("common.zig");
4const floatFromBigInt = @import("float_from_int.zig").floatFromBigInt;
45
5pub const panic = common.panic;6pub const panic = common.panic;
67
...@@ -8,6 +9,7 @@ comptime {...@@ -8,6 +9,7 @@ comptime {
8 @export(&__floateihf, .{ .name = "__floateihf", .linkage = common.linkage, .visibility = common.visibility });9 @export(&__floateihf, .{ .name = "__floateihf", .linkage = common.linkage, .visibility = common.visibility });
9}10}
1011
11pub fn __floateihf(a: [*]const u32, bits: usize) callconv(.c) f16 {12pub fn __floateihf(a: [*]const u8, bits: usize) callconv(.c) f16 {
12 return floatFromBigInt(f16, .signed, a[0 .. divCeil(usize, bits, 32) catch unreachable]);13 const byte_size = std.zig.target.intByteSize(builtin.target, @intCast(bits));
14 return floatFromBigInt(f16, .signed, @ptrCast(@alignCast(a[0..byte_size])));
13}15}
lib/compiler_rt/floateisf.zig+7-5
...@@ -1,6 +1,7 @@...@@ -1,6 +1,7 @@
1const divCeil = @import("std").math.divCeil;1const std = @import("std");
2const common = @import("./common.zig");2const builtin = @import("builtin");
3const floatFromBigInt = @import("./float_from_int.zig").floatFromBigInt;3const common = @import("common.zig");
4const floatFromBigInt = @import("float_from_int.zig").floatFromBigInt;
45
5pub const panic = common.panic;6pub const panic = common.panic;
67
...@@ -8,6 +9,7 @@ comptime {...@@ -8,6 +9,7 @@ comptime {
8 @export(&__floateisf, .{ .name = "__floateisf", .linkage = common.linkage, .visibility = common.visibility });9 @export(&__floateisf, .{ .name = "__floateisf", .linkage = common.linkage, .visibility = common.visibility });
9}10}
1011
11pub fn __floateisf(a: [*]const u32, bits: usize) callconv(.c) f32 {12pub fn __floateisf(a: [*]const u8, bits: usize) callconv(.c) f32 {
12 return floatFromBigInt(f32, .signed, a[0 .. divCeil(usize, bits, 32) catch unreachable]);13 const byte_size = std.zig.target.intByteSize(builtin.target, @intCast(bits));
14 return floatFromBigInt(f32, .signed, @ptrCast(@alignCast(a[0..byte_size])));
13}15}
lib/compiler_rt/floateitf.zig+7-5
...@@ -1,6 +1,7 @@...@@ -1,6 +1,7 @@
1const divCeil = @import("std").math.divCeil;1const std = @import("std");
2const common = @import("./common.zig");2const builtin = @import("builtin");
3const floatFromBigInt = @import("./float_from_int.zig").floatFromBigInt;3const common = @import("common.zig");
4const floatFromBigInt = @import("float_from_int.zig").floatFromBigInt;
45
5pub const panic = common.panic;6pub const panic = common.panic;
67
...@@ -8,6 +9,7 @@ comptime {...@@ -8,6 +9,7 @@ comptime {
8 @export(&__floateitf, .{ .name = "__floateitf", .linkage = common.linkage, .visibility = common.visibility });9 @export(&__floateitf, .{ .name = "__floateitf", .linkage = common.linkage, .visibility = common.visibility });
9}10}
1011
11pub fn __floateitf(a: [*]const u32, bits: usize) callconv(.c) f128 {12pub fn __floateitf(a: [*]const u8, bits: usize) callconv(.c) f128 {
12 return floatFromBigInt(f128, .signed, a[0 .. divCeil(usize, bits, 32) catch unreachable]);13 const byte_size = std.zig.target.intByteSize(builtin.target, @intCast(bits));
14 return floatFromBigInt(f128, .signed, @ptrCast(@alignCast(a[0..byte_size])));
13}15}
lib/compiler_rt/floateixf.zig+7-5
...@@ -1,6 +1,7 @@...@@ -1,6 +1,7 @@
1const divCeil = @import("std").math.divCeil;1const std = @import("std");
2const common = @import("./common.zig");2const builtin = @import("builtin");
3const floatFromBigInt = @import("./float_from_int.zig").floatFromBigInt;3const common = @import("common.zig");
4const floatFromBigInt = @import("float_from_int.zig").floatFromBigInt;
45
5pub const panic = common.panic;6pub const panic = common.panic;
67
...@@ -8,6 +9,7 @@ comptime {...@@ -8,6 +9,7 @@ comptime {
8 @export(&__floateixf, .{ .name = "__floateixf", .linkage = common.linkage, .visibility = common.visibility });9 @export(&__floateixf, .{ .name = "__floateixf", .linkage = common.linkage, .visibility = common.visibility });
9}10}
1011
11pub fn __floateixf(a: [*]const u32, bits: usize) callconv(.c) f80 {12pub fn __floateixf(a: [*]const u8, bits: usize) callconv(.c) f80 {
12 return floatFromBigInt(f80, .signed, a[0 .. divCeil(usize, bits, 32) catch unreachable]);13 const byte_size = std.zig.target.intByteSize(builtin.target, @intCast(bits));
14 return floatFromBigInt(f80, .signed, @ptrCast(@alignCast(a[0..byte_size])));
13}15}
lib/compiler_rt/floatuneidf.zig+7-5
...@@ -1,6 +1,7 @@...@@ -1,6 +1,7 @@
1const divCeil = @import("std").math.divCeil;1const std = @import("std");
2const common = @import("./common.zig");2const builtin = @import("builtin");
3const floatFromBigInt = @import("./float_from_int.zig").floatFromBigInt;3const common = @import("common.zig");
4const floatFromBigInt = @import("float_from_int.zig").floatFromBigInt;
45
5pub const panic = common.panic;6pub const panic = common.panic;
67
...@@ -8,6 +9,7 @@ comptime {...@@ -8,6 +9,7 @@ comptime {
8 @export(&__floatuneidf, .{ .name = "__floatuneidf", .linkage = common.linkage, .visibility = common.visibility });9 @export(&__floatuneidf, .{ .name = "__floatuneidf", .linkage = common.linkage, .visibility = common.visibility });
9}10}
1011
11pub fn __floatuneidf(a: [*]const u32, bits: usize) callconv(.c) f64 {12pub fn __floatuneidf(a: [*]const u8, bits: usize) callconv(.c) f64 {
12 return floatFromBigInt(f64, .unsigned, a[0 .. divCeil(usize, bits, 32) catch unreachable]);13 const byte_size = std.zig.target.intByteSize(builtin.target, @intCast(bits));
14 return floatFromBigInt(f64, .unsigned, @ptrCast(@alignCast(a[0..byte_size])));
13}15}
lib/compiler_rt/floatuneihf.zig+7-5
...@@ -1,6 +1,7 @@...@@ -1,6 +1,7 @@
1const divCeil = @import("std").math.divCeil;1const std = @import("std");
2const common = @import("./common.zig");2const builtin = @import("builtin");
3const floatFromBigInt = @import("./float_from_int.zig").floatFromBigInt;3const common = @import("common.zig");
4const floatFromBigInt = @import("float_from_int.zig").floatFromBigInt;
45
5pub const panic = common.panic;6pub const panic = common.panic;
67
...@@ -8,6 +9,7 @@ comptime {...@@ -8,6 +9,7 @@ comptime {
8 @export(&__floatuneihf, .{ .name = "__floatuneihf", .linkage = common.linkage, .visibility = common.visibility });9 @export(&__floatuneihf, .{ .name = "__floatuneihf", .linkage = common.linkage, .visibility = common.visibility });
9}10}
1011
11pub fn __floatuneihf(a: [*]const u32, bits: usize) callconv(.c) f16 {12pub fn __floatuneihf(a: [*]const u8, bits: usize) callconv(.c) f16 {
12 return floatFromBigInt(f16, .unsigned, a[0 .. divCeil(usize, bits, 32) catch unreachable]);13 const byte_size = std.zig.target.intByteSize(builtin.target, @intCast(bits));
14 return floatFromBigInt(f16, .unsigned, @ptrCast(@alignCast(a[0..byte_size])));
13}15}
lib/compiler_rt/floatuneisf.zig+7-5
...@@ -1,6 +1,7 @@...@@ -1,6 +1,7 @@
1const divCeil = @import("std").math.divCeil;1const std = @import("std");
2const common = @import("./common.zig");2const builtin = @import("builtin");
3const floatFromBigInt = @import("./float_from_int.zig").floatFromBigInt;3const common = @import("common.zig");
4const floatFromBigInt = @import("float_from_int.zig").floatFromBigInt;
45
5pub const panic = common.panic;6pub const panic = common.panic;
67
...@@ -8,6 +9,7 @@ comptime {...@@ -8,6 +9,7 @@ comptime {
8 @export(&__floatuneisf, .{ .name = "__floatuneisf", .linkage = common.linkage, .visibility = common.visibility });9 @export(&__floatuneisf, .{ .name = "__floatuneisf", .linkage = common.linkage, .visibility = common.visibility });
9}10}
1011
11pub fn __floatuneisf(a: [*]const u32, bits: usize) callconv(.c) f32 {12pub fn __floatuneisf(a: [*]const u8, bits: usize) callconv(.c) f32 {
12 return floatFromBigInt(f32, .unsigned, a[0 .. divCeil(usize, bits, 32) catch unreachable]);13 const byte_size = std.zig.target.intByteSize(builtin.target, @intCast(bits));
14 return floatFromBigInt(f32, .unsigned, @ptrCast(@alignCast(a[0..byte_size])));
13}15}
lib/compiler_rt/floatuneitf.zig+7-5
...@@ -1,6 +1,7 @@...@@ -1,6 +1,7 @@
1const divCeil = @import("std").math.divCeil;1const std = @import("std");
2const common = @import("./common.zig");2const builtin = @import("builtin");
3const floatFromBigInt = @import("./float_from_int.zig").floatFromBigInt;3const common = @import("common.zig");
4const floatFromBigInt = @import("float_from_int.zig").floatFromBigInt;
45
5pub const panic = common.panic;6pub const panic = common.panic;
67
...@@ -8,6 +9,7 @@ comptime {...@@ -8,6 +9,7 @@ comptime {
8 @export(&__floatuneitf, .{ .name = "__floatuneitf", .linkage = common.linkage, .visibility = common.visibility });9 @export(&__floatuneitf, .{ .name = "__floatuneitf", .linkage = common.linkage, .visibility = common.visibility });
9}10}
1011
11pub fn __floatuneitf(a: [*]const u32, bits: usize) callconv(.c) f128 {12pub fn __floatuneitf(a: [*]const u8, bits: usize) callconv(.c) f128 {
12 return floatFromBigInt(f128, .unsigned, a[0 .. divCeil(usize, bits, 32) catch unreachable]);13 const byte_size = std.zig.target.intByteSize(builtin.target, @intCast(bits));
14 return floatFromBigInt(f128, .unsigned, @ptrCast(@alignCast(a[0..byte_size])));
13}15}
lib/compiler_rt/floatuneixf.zig+7-5
...@@ -1,6 +1,7 @@...@@ -1,6 +1,7 @@
1const divCeil = @import("std").math.divCeil;1const std = @import("std");
2const common = @import("./common.zig");2const builtin = @import("builtin");
3const floatFromBigInt = @import("./float_from_int.zig").floatFromBigInt;3const common = @import("common.zig");
4const floatFromBigInt = @import("float_from_int.zig").floatFromBigInt;
45
5pub const panic = common.panic;6pub const panic = common.panic;
67
...@@ -8,6 +9,7 @@ comptime {...@@ -8,6 +9,7 @@ comptime {
8 @export(&__floatuneixf, .{ .name = "__floatuneixf", .linkage = common.linkage, .visibility = common.visibility });9 @export(&__floatuneixf, .{ .name = "__floatuneixf", .linkage = common.linkage, .visibility = common.visibility });
9}10}
1011
11pub fn __floatuneixf(a: [*]const u32, bits: usize) callconv(.c) f80 {12pub fn __floatuneixf(a: [*]const u8, bits: usize) callconv(.c) f80 {
12 return floatFromBigInt(f80, .unsigned, a[0 .. divCeil(usize, bits, 32) catch unreachable]);13 const byte_size = std.zig.target.intByteSize(builtin.target, @intCast(bits));
14 return floatFromBigInt(f80, .unsigned, @ptrCast(@alignCast(a[0..byte_size])));
13}15}
lib/compiler_rt/int_from_float_test.zig+6-12
...@@ -1,8 +1,6 @@...@@ -1,8 +1,6 @@
1const std = @import("std");1const std = @import("std");
2const builtin = @import("builtin");
3const testing = std.testing;2const testing = std.testing;
4const math = std.math;3const math = std.math;
5const endian = builtin.cpu.arch.endian();
64
7const __fixunshfti = @import("fixunshfti.zig").__fixunshfti;5const __fixunshfti = @import("fixunshfti.zig").__fixunshfti;
8const __fixunsxfti = @import("fixunsxfti.zig").__fixunsxfti;6const __fixunsxfti = @import("fixunsxfti.zig").__fixunsxfti;
...@@ -350,14 +348,12 @@ test "fixunssfti" {...@@ -350,14 +348,12 @@ test "fixunssfti" {
350348
351fn test_fixsfei(comptime T: type, expected: T, a: f32) !void {349fn test_fixsfei(comptime T: type, expected: T, a: f32) !void {
352 const int = @typeInfo(T).int;350 const int = @typeInfo(T).int;
353 var expected_buf: [@divExact(int.bits, 32)]u32 = undefined;351 var actual: T = undefined;
354 std.mem.writeInt(T, std.mem.asBytes(&expected_buf), expected, endian);
355 var actual_buf: [@divExact(int.bits, 32)]u32 = undefined;
356 _ = switch (int.signedness) {352 _ = switch (int.signedness) {
357 .signed => __fixsfei,353 .signed => __fixsfei,
358 .unsigned => __fixunssfei,354 .unsigned => __fixunssfei,
359 }(&actual_buf, int.bits, a);355 }(@ptrCast(&actual), int.bits, a);
360 try testing.expect(std.mem.eql(u32, &expected_buf, &actual_buf));356 try testing.expect(expected == actual);
361}357}
362358
363test "fixsfei" {359test "fixsfei" {
...@@ -685,14 +681,12 @@ test "fixunsdfti" {...@@ -685,14 +681,12 @@ test "fixunsdfti" {
685681
686fn test_fixdfei(comptime T: type, expected: T, a: f64) !void {682fn test_fixdfei(comptime T: type, expected: T, a: f64) !void {
687 const int = @typeInfo(T).int;683 const int = @typeInfo(T).int;
688 var expected_buf: [@divExact(int.bits, 32)]u32 = undefined;684 var actual: T = undefined;
689 std.mem.writeInt(T, std.mem.asBytes(&expected_buf), expected, endian);
690 var actual_buf: [@divExact(int.bits, 32)]u32 = undefined;
691 _ = switch (int.signedness) {685 _ = switch (int.signedness) {
692 .signed => __fixdfei,686 .signed => __fixdfei,
693 .unsigned => __fixunsdfei,687 .unsigned => __fixunsdfei,
694 }(&actual_buf, int.bits, a);688 }(@ptrCast(&actual), int.bits, a);
695 try testing.expect(std.mem.eql(u32, &expected_buf, &actual_buf));689 try testing.expect(expected == actual);
696}690}
697691
698test "fixdfei" {692test "fixdfei" {
lib/compiler_rt/udivmodei4.zig+10-8
...@@ -112,19 +112,21 @@ pub fn divmod(q: ?[]u32, r: ?[]u32, u: []const u32, v: []const u32) !void {...@@ -112,19 +112,21 @@ pub fn divmod(q: ?[]u32, r: ?[]u32, u: []const u32, v: []const u32) !void {
112 }112 }
113}113}
114114
115pub fn __udivei4(r_q: [*]u32, u_p: [*]const u32, v_p: [*]const u32, bits: usize) callconv(.c) void {115pub fn __udivei4(q_p: [*]u8, u_p: [*]const u8, v_p: [*]const u8, bits: usize) callconv(.c) void {
116 @setRuntimeSafety(builtin.is_test);116 @setRuntimeSafety(builtin.is_test);
117 const u = u_p[0 .. std.math.divCeil(usize, bits, 32) catch unreachable];117 const byte_size = std.zig.target.intByteSize(builtin.target, @intCast(bits));
118 const v = v_p[0 .. std.math.divCeil(usize, bits, 32) catch unreachable];118 const q: []u32 = @ptrCast(@alignCast(q_p[0..byte_size]));
119 const q = r_q[0 .. std.math.divCeil(usize, bits, 32) catch unreachable];119 const u: []const u32 = @ptrCast(@alignCast(u_p[0..byte_size]));
120 const v: []const u32 = @ptrCast(@alignCast(v_p[0..byte_size]));
120 @call(.always_inline, divmod, .{ q, null, u, v }) catch unreachable;121 @call(.always_inline, divmod, .{ q, null, u, v }) catch unreachable;
121}122}
122123
123pub fn __umodei4(r_p: [*]u32, u_p: [*]const u32, v_p: [*]const u32, bits: usize) callconv(.c) void {124pub fn __umodei4(r_p: [*]u8, u_p: [*]const u8, v_p: [*]const u8, bits: usize) callconv(.c) void {
124 @setRuntimeSafety(builtin.is_test);125 @setRuntimeSafety(builtin.is_test);
125 const u = u_p[0 .. std.math.divCeil(usize, bits, 32) catch unreachable];126 const byte_size = std.zig.target.intByteSize(builtin.target, @intCast(bits));
126 const v = v_p[0 .. std.math.divCeil(usize, bits, 32) catch unreachable];127 const r: []u32 = @ptrCast(@alignCast(r_p[0..byte_size]));
127 const r = r_p[0 .. std.math.divCeil(usize, bits, 32) catch unreachable];128 const u: []const u32 = @ptrCast(@alignCast(u_p[0..byte_size]));
129 const v: []const u32 = @ptrCast(@alignCast(v_p[0..byte_size]));
128 @call(.always_inline, divmod, .{ null, r, u, v }) catch unreachable;130 @call(.always_inline, divmod, .{ null, r, u, v }) catch unreachable;
129}131}
130132
lib/std/Target.zig+63-1
...@@ -2695,7 +2695,7 @@ pub fn stackAlignment(target: Target) u16 {...@@ -2695,7 +2695,7 @@ pub fn stackAlignment(target: Target) u16 {
2695/// Default signedness of `char` for the native C compiler for this target2695/// Default signedness of `char` for the native C compiler for this target
2696/// Note that char signedness is implementation-defined and many compilers provide2696/// Note that char signedness is implementation-defined and many compilers provide
2697/// an option to override the default signedness e.g. GCC's -funsigned-char / -fsigned-char2697/// an option to override the default signedness e.g. GCC's -funsigned-char / -fsigned-char
2698pub fn charSignedness(target: Target) std.builtin.Signedness {2698pub fn cCharSignedness(target: Target) std.builtin.Signedness {
2699 if (target.os.tag.isDarwin() or target.os.tag == .windows or target.os.tag == .uefi) return .signed;2699 if (target.os.tag.isDarwin() or target.os.tag == .windows or target.os.tag == .uefi) return .signed;
27002700
2701 return switch (target.cpu.arch) {2701 return switch (target.cpu.arch) {
...@@ -3273,6 +3273,68 @@ pub fn cTypePreferredAlignment(target: Target, c_type: CType) u16 {...@@ -3273,6 +3273,68 @@ pub fn cTypePreferredAlignment(target: Target, c_type: CType) u16 {
3273 );3273 );
3274}3274}
32753275
3276pub fn cMaxIntAlignment(target: std.Target) u16 {
3277 return switch (target.cpu.arch) {
3278 .avr => 1,
3279
3280 .msp430 => 2,
3281
3282 .xcore,
3283 .propeller,
3284 => 4,
3285
3286 .amdgcn,
3287 .arm,
3288 .armeb,
3289 .thumb,
3290 .thumbeb,
3291 .lanai,
3292 .hexagon,
3293 .mips,
3294 .mipsel,
3295 .powerpc,
3296 .powerpcle,
3297 .riscv32,
3298 .s390x,
3299 => 8,
3300
3301 // Even LLVMABIAlignmentOfType(i128) agrees on these targets.
3302 .aarch64,
3303 .aarch64_be,
3304 .bpfel,
3305 .bpfeb,
3306 .mips64,
3307 .mips64el,
3308 .nvptx,
3309 .nvptx64,
3310 .powerpc64,
3311 .powerpc64le,
3312 .riscv64,
3313 .sparc,
3314 .sparc64,
3315 .wasm32,
3316 .wasm64,
3317 .x86,
3318 .x86_64,
3319 => 16,
3320
3321 // Below this comment are unverified but based on the fact that C requires
3322 // int128_t to be 16 bytes aligned, it's a safe default.
3323 .arc,
3324 .csky,
3325 .kalimba,
3326 .loongarch32,
3327 .loongarch64,
3328 .m68k,
3329 .spirv,
3330 .spirv32,
3331 .spirv64,
3332 .ve,
3333 .xtensa,
3334 => 16,
3335 };
3336}
3337
3276pub fn cCallingConvention(target: Target) ?std.builtin.CallingConvention {3338pub fn cCallingConvention(target: Target) ?std.builtin.CallingConvention {
3277 return switch (target.cpu.arch) {3339 return switch (target.cpu.arch) {
3278 .x86_64 => switch (target.os.tag) {3340 .x86_64 => switch (target.os.tag) {
lib/std/zig/target.zig+32
...@@ -352,6 +352,38 @@ fn eqlIgnoreCase(ignore_case: bool, a: []const u8, b: []const u8) bool {...@@ -352,6 +352,38 @@ fn eqlIgnoreCase(ignore_case: bool, a: []const u8, b: []const u8) bool {
352 }352 }
353}353}
354354
355pub fn intByteSize(target: std.Target, bits: u16) u19 {
356 return std.mem.alignForward(u19, @intCast((@as(u17, bits) + 7) / 8), intAlignment(target, bits));
357}
358
359pub fn intAlignment(target: std.Target, bits: u16) u16 {
360 return switch (target.cpu.arch) {
361 .x86 => switch (bits) {
362 0 => 0,
363 1...8 => 1,
364 9...16 => 2,
365 17...32 => 4,
366 33...64 => switch (target.os.tag) {
367 .uefi, .windows => 8,
368 else => 4,
369 },
370 else => 16,
371 },
372 .x86_64 => switch (bits) {
373 0 => 0,
374 1...8 => 1,
375 9...16 => 2,
376 17...32 => 4,
377 33...64 => 8,
378 else => 16,
379 },
380 else => return @min(
381 std.math.ceilPowerOfTwoPromote(u16, @as(u16, @intCast((@as(u17, bits) + 7) / 8))),
382 target.cMaxIntAlignment(),
383 ),
384 };
385}
386
355const std = @import("std");387const std = @import("std");
356const assert = std.debug.assert;388const assert = std.debug.assert;
357const Allocator = std.mem.Allocator;389const Allocator = std.mem.Allocator;
src/Type.zig+10-104
...@@ -968,7 +968,7 @@ pub fn abiAlignmentInner(...@@ -968,7 +968,7 @@ pub fn abiAlignmentInner(
968 else => switch (ip.indexToKey(ty.toIntern())) {968 else => switch (ip.indexToKey(ty.toIntern())) {
969 .int_type => |int_type| {969 .int_type => |int_type| {
970 if (int_type.bits == 0) return .{ .scalar = .@"1" };970 if (int_type.bits == 0) return .{ .scalar = .@"1" };
971 return .{ .scalar = intAbiAlignment(int_type.bits, target) };971 return .{ .scalar = .fromByteUnits(std.zig.target.intAlignment(target, int_type.bits)) };
972 },972 },
973 .ptr_type, .anyframe_type => {973 .ptr_type, .anyframe_type => {
974 return .{ .scalar = ptrAbiAlignment(target) };974 return .{ .scalar = ptrAbiAlignment(target) };
...@@ -1021,7 +1021,7 @@ pub fn abiAlignmentInner(...@@ -1021,7 +1021,7 @@ pub fn abiAlignmentInner(
1021 .error_set_type, .inferred_error_set_type => {1021 .error_set_type, .inferred_error_set_type => {
1022 const bits = zcu.errorSetBits();1022 const bits = zcu.errorSetBits();
1023 if (bits == 0) return .{ .scalar = .@"1" };1023 if (bits == 0) return .{ .scalar = .@"1" };
1024 return .{ .scalar = intAbiAlignment(bits, target) };1024 return .{ .scalar = .fromByteUnits(std.zig.target.intAlignment(target, bits)) };
1025 },1025 },
10261026
1027 // represents machine code; not a pointer1027 // represents machine code; not a pointer
...@@ -1034,7 +1034,7 @@ pub fn abiAlignmentInner(...@@ -1034,7 +1034,7 @@ pub fn abiAlignmentInner(
10341034
1035 .usize,1035 .usize,
1036 .isize,1036 .isize,
1037 => return .{ .scalar = intAbiAlignment(target.ptrBitWidth(), target) },1037 => return .{ .scalar = .fromByteUnits(std.zig.target.intAlignment(target, target.ptrBitWidth())) },
10381038
1039 .c_char => return .{ .scalar = cTypeAlign(target, .char) },1039 .c_char => return .{ .scalar = cTypeAlign(target, .char) },
1040 .c_short => return .{ .scalar = cTypeAlign(target, .short) },1040 .c_short => return .{ .scalar = cTypeAlign(target, .short) },
...@@ -1065,7 +1065,7 @@ pub fn abiAlignmentInner(...@@ -1065,7 +1065,7 @@ pub fn abiAlignmentInner(
1065 .anyerror, .adhoc_inferred_error_set => {1065 .anyerror, .adhoc_inferred_error_set => {
1066 const bits = zcu.errorSetBits();1066 const bits = zcu.errorSetBits();
1067 if (bits == 0) return .{ .scalar = .@"1" };1067 if (bits == 0) return .{ .scalar = .@"1" };
1068 return .{ .scalar = intAbiAlignment(bits, target) };1068 return .{ .scalar = .fromByteUnits(std.zig.target.intAlignment(target, bits)) };
1069 },1069 },
10701070
1071 .void,1071 .void,
...@@ -1297,7 +1297,7 @@ pub fn abiSizeInner(...@@ -1297,7 +1297,7 @@ pub fn abiSizeInner(
1297 else => switch (ip.indexToKey(ty.toIntern())) {1297 else => switch (ip.indexToKey(ty.toIntern())) {
1298 .int_type => |int_type| {1298 .int_type => |int_type| {
1299 if (int_type.bits == 0) return .{ .scalar = 0 };1299 if (int_type.bits == 0) return .{ .scalar = 0 };
1300 return .{ .scalar = intAbiSize(int_type.bits, target) };1300 return .{ .scalar = std.zig.target.intByteSize(target, int_type.bits) };
1301 },1301 },
1302 .ptr_type => |ptr_type| switch (ptr_type.flags.size) {1302 .ptr_type => |ptr_type| switch (ptr_type.flags.size) {
1303 .slice => return .{ .scalar = @divExact(target.ptrBitWidth(), 8) * 2 },1303 .slice => return .{ .scalar = @divExact(target.ptrBitWidth(), 8) * 2 },
...@@ -1359,7 +1359,7 @@ pub fn abiSizeInner(...@@ -1359,7 +1359,7 @@ pub fn abiSizeInner(
1359 .error_set_type, .inferred_error_set_type => {1359 .error_set_type, .inferred_error_set_type => {
1360 const bits = zcu.errorSetBits();1360 const bits = zcu.errorSetBits();
1361 if (bits == 0) return .{ .scalar = 0 };1361 if (bits == 0) return .{ .scalar = 0 };
1362 return .{ .scalar = intAbiSize(bits, target) };1362 return .{ .scalar = std.zig.target.intByteSize(target, bits) };
1363 },1363 },
13641364
1365 .error_union_type => |error_union_type| {1365 .error_union_type => |error_union_type| {
...@@ -1452,7 +1452,7 @@ pub fn abiSizeInner(...@@ -1452,7 +1452,7 @@ pub fn abiSizeInner(
1452 .anyerror, .adhoc_inferred_error_set => {1452 .anyerror, .adhoc_inferred_error_set => {
1453 const bits = zcu.errorSetBits();1453 const bits = zcu.errorSetBits();
1454 if (bits == 0) return .{ .scalar = 0 };1454 if (bits == 0) return .{ .scalar = 0 };
1455 return .{ .scalar = intAbiSize(bits, target) };1455 return .{ .scalar = std.zig.target.intByteSize(target, bits) };
1456 },1456 },
14571457
1458 .noreturn => unreachable,1458 .noreturn => unreachable,
...@@ -1606,100 +1606,6 @@ pub fn ptrAbiAlignment(target: Target) Alignment {...@@ -1606,100 +1606,6 @@ pub fn ptrAbiAlignment(target: Target) Alignment {
1606 return Alignment.fromNonzeroByteUnits(@divExact(target.ptrBitWidth(), 8));1606 return Alignment.fromNonzeroByteUnits(@divExact(target.ptrBitWidth(), 8));
1607}1607}
16081608
1609pub fn intAbiSize(bits: u16, target: Target) u64 {
1610 return intAbiAlignment(bits, target).forward(@as(u16, @intCast((@as(u17, bits) + 7) / 8)));
1611}
1612
1613pub fn intAbiAlignment(bits: u16, target: Target) Alignment {
1614 return switch (target.cpu.arch) {
1615 .x86 => switch (bits) {
1616 0 => .none,
1617 1...8 => .@"1",
1618 9...16 => .@"2",
1619 17...32 => .@"4",
1620 33...64 => switch (target.os.tag) {
1621 .uefi, .windows => .@"8",
1622 else => .@"4",
1623 },
1624 else => .@"16",
1625 },
1626 .x86_64 => switch (bits) {
1627 0 => .none,
1628 1...8 => .@"1",
1629 9...16 => .@"2",
1630 17...32 => .@"4",
1631 33...64 => .@"8",
1632 else => .@"16",
1633 },
1634 else => return Alignment.fromByteUnits(@min(
1635 std.math.ceilPowerOfTwoPromote(u16, @as(u16, @intCast((@as(u17, bits) + 7) / 8))),
1636 maxIntAlignment(target),
1637 )),
1638 };
1639}
1640
1641pub fn maxIntAlignment(target: std.Target) u16 {
1642 return switch (target.cpu.arch) {
1643 .avr => 1,
1644
1645 .msp430 => 2,
1646
1647 .xcore,
1648 .propeller,
1649 => 4,
1650
1651 .amdgcn,
1652 .arm,
1653 .armeb,
1654 .thumb,
1655 .thumbeb,
1656 .lanai,
1657 .hexagon,
1658 .mips,
1659 .mipsel,
1660 .powerpc,
1661 .powerpcle,
1662 .riscv32,
1663 .s390x,
1664 => 8,
1665
1666 // Even LLVMABIAlignmentOfType(i128) agrees on these targets.
1667 .aarch64,
1668 .aarch64_be,
1669 .bpfel,
1670 .bpfeb,
1671 .mips64,
1672 .mips64el,
1673 .nvptx,
1674 .nvptx64,
1675 .powerpc64,
1676 .powerpc64le,
1677 .riscv64,
1678 .sparc,
1679 .sparc64,
1680 .wasm32,
1681 .wasm64,
1682 .x86,
1683 .x86_64,
1684 => 16,
1685
1686 // Below this comment are unverified but based on the fact that C requires
1687 // int128_t to be 16 bytes aligned, it's a safe default.
1688 .arc,
1689 .csky,
1690 .kalimba,
1691 .loongarch32,
1692 .loongarch64,
1693 .m68k,
1694 .spirv,
1695 .spirv32,
1696 .spirv64,
1697 .ve,
1698 .xtensa,
1699 => 16,
1700 };
1701}
1702
1703pub fn bitSize(ty: Type, zcu: *const Zcu) u64 {1609pub fn bitSize(ty: Type, zcu: *const Zcu) u64 {
1704 return bitSizeInner(ty, .normal, zcu, {}) catch unreachable;1610 return bitSizeInner(ty, .normal, zcu, {}) catch unreachable;
1705}1611}
...@@ -2331,7 +2237,7 @@ pub fn isInt(self: Type, zcu: *const Zcu) bool {...@@ -2331,7 +2237,7 @@ pub fn isInt(self: Type, zcu: *const Zcu) bool {
2331/// Returns true if and only if the type is a fixed-width, signed integer.2237/// Returns true if and only if the type is a fixed-width, signed integer.
2332pub fn isSignedInt(ty: Type, zcu: *const Zcu) bool {2238pub fn isSignedInt(ty: Type, zcu: *const Zcu) bool {
2333 return switch (ty.toIntern()) {2239 return switch (ty.toIntern()) {
2334 .c_char_type => zcu.getTarget().charSignedness() == .signed,2240 .c_char_type => zcu.getTarget().cCharSignedness() == .signed,
2335 .isize_type, .c_short_type, .c_int_type, .c_long_type, .c_longlong_type => true,2241 .isize_type, .c_short_type, .c_int_type, .c_long_type, .c_longlong_type => true,
2336 else => switch (zcu.intern_pool.indexToKey(ty.toIntern())) {2242 else => switch (zcu.intern_pool.indexToKey(ty.toIntern())) {
2337 .int_type => |int_type| int_type.signedness == .signed,2243 .int_type => |int_type| int_type.signedness == .signed,
...@@ -2343,7 +2249,7 @@ pub fn isSignedInt(ty: Type, zcu: *const Zcu) bool {...@@ -2343,7 +2249,7 @@ pub fn isSignedInt(ty: Type, zcu: *const Zcu) bool {
2343/// Returns true if and only if the type is a fixed-width, unsigned integer.2249/// Returns true if and only if the type is a fixed-width, unsigned integer.
2344pub fn isUnsignedInt(ty: Type, zcu: *const Zcu) bool {2250pub fn isUnsignedInt(ty: Type, zcu: *const Zcu) bool {
2345 return switch (ty.toIntern()) {2251 return switch (ty.toIntern()) {
2346 .c_char_type => zcu.getTarget().charSignedness() == .unsigned,2252 .c_char_type => zcu.getTarget().cCharSignedness() == .unsigned,
2347 .usize_type, .c_ushort_type, .c_uint_type, .c_ulong_type, .c_ulonglong_type => true,2253 .usize_type, .c_ushort_type, .c_uint_type, .c_ulong_type, .c_ulonglong_type => true,
2348 else => switch (zcu.intern_pool.indexToKey(ty.toIntern())) {2254 else => switch (zcu.intern_pool.indexToKey(ty.toIntern())) {
2349 .int_type => |int_type| int_type.signedness == .unsigned,2255 .int_type => |int_type| int_type.signedness == .unsigned,
...@@ -2374,7 +2280,7 @@ pub fn intInfo(starting_ty: Type, zcu: *const Zcu) InternPool.Key.IntType {...@@ -2374,7 +2280,7 @@ pub fn intInfo(starting_ty: Type, zcu: *const Zcu) InternPool.Key.IntType {
2374 },2280 },
2375 .usize_type => return .{ .signedness = .unsigned, .bits = target.ptrBitWidth() },2281 .usize_type => return .{ .signedness = .unsigned, .bits = target.ptrBitWidth() },
2376 .isize_type => return .{ .signedness = .signed, .bits = target.ptrBitWidth() },2282 .isize_type => return .{ .signedness = .signed, .bits = target.ptrBitWidth() },
2377 .c_char_type => return .{ .signedness = zcu.getTarget().charSignedness(), .bits = target.cTypeBitSize(.char) },2283 .c_char_type => return .{ .signedness = zcu.getTarget().cCharSignedness(), .bits = target.cTypeBitSize(.char) },
2378 .c_short_type => return .{ .signedness = .signed, .bits = target.cTypeBitSize(.short) },2284 .c_short_type => return .{ .signedness = .signed, .bits = target.cTypeBitSize(.short) },
2379 .c_ushort_type => return .{ .signedness = .unsigned, .bits = target.cTypeBitSize(.ushort) },2285 .c_ushort_type => return .{ .signedness = .unsigned, .bits = target.cTypeBitSize(.ushort) },
2380 .c_int_type => return .{ .signedness = .signed, .bits = target.cTypeBitSize(.int) },2286 .c_int_type => return .{ .signedness = .signed, .bits = target.cTypeBitSize(.int) },
src/arch/x86_64/CodeGen.zig+83-85
...@@ -15995,7 +15995,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -15995,7 +15995,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
15995 .{ ._, ._, .lea, .tmp0p, .mem(.dst0), ._, ._ },15995 .{ ._, ._, .lea, .tmp0p, .mem(.dst0), ._, ._ },
15996 .{ ._, ._, .lea, .tmp1p, .mem(.src0), ._, ._ },15996 .{ ._, ._, .lea, .tmp1p, .mem(.src0), ._, ._ },
15997 .{ ._, ._, .lea, .tmp2p, .mem(.src1), ._, ._ },15997 .{ ._, ._, .lea, .tmp2p, .mem(.src1), ._, ._ },
15998 .{ ._, ._, .mov, .tmp3d, .sa(.src0, .add_8_size), ._, ._ },15998 .{ ._, ._, .mov, .tmp3d, .sa(.src0, .add_bit_size), ._, ._ },
15999 .{ ._, ._, .call, .tmp4d, ._, ._, ._ },15999 .{ ._, ._, .call, .tmp4d, ._, ._, ._ },
16000 } },16000 } },
16001 }, .{16001 }, .{
...@@ -16028,7 +16028,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -16028,7 +16028,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
16028 .{ ._, ._, .lea, .tmp0p, .mem(.dst0), ._, ._ },16028 .{ ._, ._, .lea, .tmp0p, .mem(.dst0), ._, ._ },
16029 .{ ._, ._, .lea, .tmp1p, .mem(.src0), ._, ._ },16029 .{ ._, ._, .lea, .tmp1p, .mem(.src0), ._, ._ },
16030 .{ ._, ._, .lea, .tmp2p, .mem(.src1), ._, ._ },16030 .{ ._, ._, .lea, .tmp2p, .mem(.src1), ._, ._ },
16031 .{ ._, ._, .mov, .tmp3d, .sa(.src0, .add_8_size), ._, ._ },16031 .{ ._, ._, .mov, .tmp3d, .sa(.src0, .add_bit_size), ._, ._ },
16032 .{ ._, ._, .call, .tmp4d, ._, ._, ._ },16032 .{ ._, ._, .call, .tmp4d, ._, ._, ._ },
16033 } },16033 } },
16034 }, .{16034 }, .{
...@@ -16468,7 +16468,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -16468,7 +16468,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
16468 .{ .@"0:", ._, .lea, .tmp1p, .memia(.dst0, .tmp0, .add_unaligned_size), ._, ._ },16468 .{ .@"0:", ._, .lea, .tmp1p, .memia(.dst0, .tmp0, .add_unaligned_size), ._, ._ },
16469 .{ ._, ._, .lea, .tmp2p, .memia(.src0, .tmp0, .add_unaligned_size), ._, ._ },16469 .{ ._, ._, .lea, .tmp2p, .memia(.src0, .tmp0, .add_unaligned_size), ._, ._ },
16470 .{ ._, ._, .lea, .tmp3p, .memia(.src1, .tmp0, .add_unaligned_size), ._, ._ },16470 .{ ._, ._, .lea, .tmp3p, .memia(.src1, .tmp0, .add_unaligned_size), ._, ._ },
16471 .{ ._, ._, .mov, .tmp4d, .sa(.src0, .add_8_elem_size), ._, ._ },16471 .{ ._, ._, .mov, .tmp4d, .sa(.src0, .add_bit_size), ._, ._ },
16472 .{ ._, ._, .call, .tmp5d, ._, ._, ._ },16472 .{ ._, ._, .call, .tmp5d, ._, ._, ._ },
16473 .{ ._, ._, .add, .tmp0p, .sa(.src0, .add_elem_size), ._, ._ },16473 .{ ._, ._, .add, .tmp0p, .sa(.src0, .add_elem_size), ._, ._ },
16474 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },16474 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
...@@ -16504,7 +16504,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -16504,7 +16504,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
16504 .{ .@"0:", ._, .lea, .tmp1p, .memia(.dst0, .tmp0, .add_unaligned_size), ._, ._ },16504 .{ .@"0:", ._, .lea, .tmp1p, .memia(.dst0, .tmp0, .add_unaligned_size), ._, ._ },
16505 .{ ._, ._, .lea, .tmp2p, .memia(.src0, .tmp0, .add_unaligned_size), ._, ._ },16505 .{ ._, ._, .lea, .tmp2p, .memia(.src0, .tmp0, .add_unaligned_size), ._, ._ },
16506 .{ ._, ._, .lea, .tmp3p, .memia(.src1, .tmp0, .add_unaligned_size), ._, ._ },16506 .{ ._, ._, .lea, .tmp3p, .memia(.src1, .tmp0, .add_unaligned_size), ._, ._ },
16507 .{ ._, ._, .mov, .tmp4d, .sa(.src0, .add_8_elem_size), ._, ._ },16507 .{ ._, ._, .mov, .tmp4d, .sa(.src0, .add_bit_size), ._, ._ },
16508 .{ ._, ._, .call, .tmp5d, ._, ._, ._ },16508 .{ ._, ._, .call, .tmp5d, ._, ._, ._ },
16509 .{ ._, ._, .add, .tmp0p, .sa(.src0, .add_elem_size), ._, ._ },16509 .{ ._, ._, .add, .tmp0p, .sa(.src0, .add_elem_size), ._, ._ },
16510 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },16510 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
...@@ -72598,7 +72598,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -72598,7 +72598,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
72598 .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ },72598 .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ },
72599 .{ .@"0:", .v_ps, .xor, .tmp4x, .tmp4x, .tmp4x, ._ },72599 .{ .@"0:", .v_ps, .xor, .tmp4x, .tmp4x, .tmp4x, ._ },
72600 .{ ._, ._, .mov, .tmp2p, .tmp1p, ._, ._ },72600 .{ ._, ._, .mov, .tmp2p, .tmp1p, ._, ._ },
72601 .{ ._, ._, .mov, .tmp3d, .sa(.dst0, .add_8_elem_size), ._, ._ },72601 .{ ._, ._, .mov, .tmp3d, .sa(.dst0, .add_bit_size), ._, ._ },
72602 .{ ._, .vp_w, .insr, .tmp4x, .tmp4x, .memia(.src0w, .tmp0, .add_unaligned_size), .ui(0) },72602 .{ ._, .vp_w, .insr, .tmp4x, .tmp4x, .memia(.src0w, .tmp0, .add_unaligned_size), .ui(0) },
72603 .{ ._, ._, .call, .tmp5d, ._, ._, ._ },72603 .{ ._, ._, .call, .tmp5d, ._, ._, ._ },
72604 .{ ._, ._, .lea, .tmp1p, .leaa(.tmp1, .add_dst0_elem_size), ._, ._ },72604 .{ ._, ._, .lea, .tmp1p, .leaa(.tmp1, .add_dst0_elem_size), ._, ._ },
...@@ -72633,7 +72633,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -72633,7 +72633,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
72633 .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ },72633 .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ },
72634 .{ .@"0:", .v_ps, .xor, .tmp4x, .tmp4x, .tmp4x, ._ },72634 .{ .@"0:", .v_ps, .xor, .tmp4x, .tmp4x, .tmp4x, ._ },
72635 .{ ._, ._, .mov, .tmp2p, .tmp1p, ._, ._ },72635 .{ ._, ._, .mov, .tmp2p, .tmp1p, ._, ._ },
72636 .{ ._, ._, .mov, .tmp3d, .sa(.dst0, .add_8_elem_size), ._, ._ },72636 .{ ._, ._, .mov, .tmp3d, .sa(.dst0, .add_bit_size), ._, ._ },
72637 .{ ._, .vp_w, .insr, .tmp4x, .tmp4x, .memia(.src0w, .tmp0, .add_unaligned_size), .ui(0) },72637 .{ ._, .vp_w, .insr, .tmp4x, .tmp4x, .memia(.src0w, .tmp0, .add_unaligned_size), .ui(0) },
72638 .{ ._, ._, .call, .tmp5d, ._, ._, ._ },72638 .{ ._, ._, .call, .tmp5d, ._, ._, ._ },
72639 .{ ._, ._, .lea, .tmp1p, .leaa(.tmp1, .add_dst0_elem_size), ._, ._ },72639 .{ ._, ._, .lea, .tmp1p, .leaa(.tmp1, .add_dst0_elem_size), ._, ._ },
...@@ -72668,7 +72668,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -72668,7 +72668,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
72668 .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ },72668 .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ },
72669 .{ .@"0:", ._ps, .xor, .tmp4x, .tmp4x, ._, ._ },72669 .{ .@"0:", ._ps, .xor, .tmp4x, .tmp4x, ._, ._ },
72670 .{ ._, ._, .mov, .tmp2p, .tmp1p, ._, ._ },72670 .{ ._, ._, .mov, .tmp2p, .tmp1p, ._, ._ },
72671 .{ ._, ._, .mov, .tmp3d, .sa(.dst0, .add_8_elem_size), ._, ._ },72671 .{ ._, ._, .mov, .tmp3d, .sa(.dst0, .add_bit_size), ._, ._ },
72672 .{ ._, .p_w, .insr, .tmp4x, .memia(.src0w, .tmp0, .add_unaligned_size), .ui(0), ._ },72672 .{ ._, .p_w, .insr, .tmp4x, .memia(.src0w, .tmp0, .add_unaligned_size), .ui(0), ._ },
72673 .{ ._, ._, .call, .tmp5d, ._, ._, ._ },72673 .{ ._, ._, .call, .tmp5d, ._, ._, ._ },
72674 .{ ._, ._, .lea, .tmp1p, .leaa(.tmp1, .add_dst0_elem_size), ._, ._ },72674 .{ ._, ._, .lea, .tmp1p, .leaa(.tmp1, .add_dst0_elem_size), ._, ._ },
...@@ -72703,7 +72703,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -72703,7 +72703,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
72703 .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ },72703 .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ },
72704 .{ .@"0:", ._ps, .xor, .tmp4x, .tmp4x, ._, ._ },72704 .{ .@"0:", ._ps, .xor, .tmp4x, .tmp4x, ._, ._ },
72705 .{ ._, ._, .mov, .tmp2p, .tmp1p, ._, ._ },72705 .{ ._, ._, .mov, .tmp2p, .tmp1p, ._, ._ },
72706 .{ ._, ._, .mov, .tmp3d, .sa(.dst0, .add_8_elem_size), ._, ._ },72706 .{ ._, ._, .mov, .tmp3d, .sa(.dst0, .add_bit_size), ._, ._ },
72707 .{ ._, .p_w, .insr, .tmp4x, .memia(.src0w, .tmp0, .add_unaligned_size), .ui(0), ._ },72707 .{ ._, .p_w, .insr, .tmp4x, .memia(.src0w, .tmp0, .add_unaligned_size), .ui(0), ._ },
72708 .{ ._, ._, .call, .tmp5d, ._, ._, ._ },72708 .{ ._, ._, .call, .tmp5d, ._, ._, ._ },
72709 .{ ._, ._, .lea, .tmp1p, .leaa(.tmp1, .add_dst0_elem_size), ._, ._ },72709 .{ ._, ._, .lea, .tmp1p, .leaa(.tmp1, .add_dst0_elem_size), ._, ._ },
...@@ -72739,7 +72739,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -72739,7 +72739,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
72739 .{ .@"0:", ._, .movzx, .tmp3d, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ },72739 .{ .@"0:", ._, .movzx, .tmp3d, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ },
72740 .{ ._, ._, .mov, .tmp2p, .tmp1p, ._, ._ },72740 .{ ._, ._, .mov, .tmp2p, .tmp1p, ._, ._ },
72741 .{ ._, ._, .mov, .tmp4d, .tmp3d, ._, ._ },72741 .{ ._, ._, .mov, .tmp4d, .tmp3d, ._, ._ },
72742 .{ ._, ._, .mov, .tmp3d, .sa(.dst0, .add_8_elem_size), ._, ._ },72742 .{ ._, ._, .mov, .tmp3d, .sa(.dst0, .add_bit_size), ._, ._ },
72743 .{ ._, ._ss, .mov, .tmp5x, .tmp4d, ._, ._ },72743 .{ ._, ._ss, .mov, .tmp5x, .tmp4d, ._, ._ },
72744 .{ ._, ._, .call, .tmp6d, ._, ._, ._ },72744 .{ ._, ._, .call, .tmp6d, ._, ._, ._ },
72745 .{ ._, ._, .lea, .tmp1p, .leaa(.tmp1, .add_dst0_elem_size), ._, ._ },72745 .{ ._, ._, .lea, .tmp1p, .leaa(.tmp1, .add_dst0_elem_size), ._, ._ },
...@@ -72775,7 +72775,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -72775,7 +72775,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
72775 .{ .@"0:", ._, .movzx, .tmp3d, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ },72775 .{ .@"0:", ._, .movzx, .tmp3d, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ },
72776 .{ ._, ._, .mov, .tmp2p, .tmp1p, ._, ._ },72776 .{ ._, ._, .mov, .tmp2p, .tmp1p, ._, ._ },
72777 .{ ._, ._, .mov, .tmp4d, .tmp3d, ._, ._ },72777 .{ ._, ._, .mov, .tmp4d, .tmp3d, ._, ._ },
72778 .{ ._, ._, .mov, .tmp3d, .sa(.dst0, .add_8_elem_size), ._, ._ },72778 .{ ._, ._, .mov, .tmp3d, .sa(.dst0, .add_bit_size), ._, ._ },
72779 .{ ._, ._ss, .mov, .tmp5x, .tmp4d, ._, ._ },72779 .{ ._, ._ss, .mov, .tmp5x, .tmp4d, ._, ._ },
72780 .{ ._, ._, .call, .tmp6d, ._, ._, ._ },72780 .{ ._, ._, .call, .tmp6d, ._, ._, ._ },
72781 .{ ._, ._, .lea, .tmp1p, .leaa(.tmp1, .add_dst0_elem_size), ._, ._ },72781 .{ ._, ._, .lea, .tmp1p, .leaa(.tmp1, .add_dst0_elem_size), ._, ._ },
...@@ -74166,7 +74166,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -74166,7 +74166,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
74166 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },74166 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },
74167 .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ },74167 .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ },
74168 .{ .@"0:", ._, .mov, .tmp2p, .tmp1p, ._, ._ },74168 .{ .@"0:", ._, .mov, .tmp2p, .tmp1p, ._, ._ },
74169 .{ ._, ._, .mov, .tmp3d, .sa(.dst0, .add_8_elem_size), ._, ._ },74169 .{ ._, ._, .mov, .tmp3d, .sa(.dst0, .add_bit_size), ._, ._ },
74170 .{ ._, .v_ss, .mov, .tmp4x, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ },74170 .{ ._, .v_ss, .mov, .tmp4x, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ },
74171 .{ ._, ._, .call, .tmp5d, ._, ._, ._ },74171 .{ ._, ._, .call, .tmp5d, ._, ._, ._ },
74172 .{ ._, ._, .lea, .tmp1p, .leaa(.tmp1, .add_dst0_elem_size), ._, ._ },74172 .{ ._, ._, .lea, .tmp1p, .leaa(.tmp1, .add_dst0_elem_size), ._, ._ },
...@@ -74200,7 +74200,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -74200,7 +74200,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
74200 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },74200 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },
74201 .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ },74201 .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ },
74202 .{ .@"0:", ._, .mov, .tmp2p, .tmp1p, ._, ._ },74202 .{ .@"0:", ._, .mov, .tmp2p, .tmp1p, ._, ._ },
74203 .{ ._, ._, .mov, .tmp3d, .sa(.dst0, .add_8_elem_size), ._, ._ },74203 .{ ._, ._, .mov, .tmp3d, .sa(.dst0, .add_bit_size), ._, ._ },
74204 .{ ._, .v_ss, .mov, .tmp4x, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ },74204 .{ ._, .v_ss, .mov, .tmp4x, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ },
74205 .{ ._, ._, .call, .tmp5d, ._, ._, ._ },74205 .{ ._, ._, .call, .tmp5d, ._, ._, ._ },
74206 .{ ._, ._, .lea, .tmp1p, .leaa(.tmp1, .add_dst0_elem_size), ._, ._ },74206 .{ ._, ._, .lea, .tmp1p, .leaa(.tmp1, .add_dst0_elem_size), ._, ._ },
...@@ -74234,7 +74234,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -74234,7 +74234,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
74234 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },74234 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },
74235 .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ },74235 .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ },
74236 .{ .@"0:", ._, .mov, .tmp2p, .tmp1p, ._, ._ },74236 .{ .@"0:", ._, .mov, .tmp2p, .tmp1p, ._, ._ },
74237 .{ ._, ._, .mov, .tmp3d, .sa(.dst0, .add_8_elem_size), ._, ._ },74237 .{ ._, ._, .mov, .tmp3d, .sa(.dst0, .add_bit_size), ._, ._ },
74238 .{ ._, ._ss, .mov, .tmp4x, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ },74238 .{ ._, ._ss, .mov, .tmp4x, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ },
74239 .{ ._, ._, .call, .tmp5d, ._, ._, ._ },74239 .{ ._, ._, .call, .tmp5d, ._, ._, ._ },
74240 .{ ._, ._, .lea, .tmp1p, .leaa(.tmp1, .add_dst0_elem_size), ._, ._ },74240 .{ ._, ._, .lea, .tmp1p, .leaa(.tmp1, .add_dst0_elem_size), ._, ._ },
...@@ -74268,7 +74268,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -74268,7 +74268,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
74268 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },74268 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },
74269 .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ },74269 .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ },
74270 .{ .@"0:", ._, .mov, .tmp2p, .tmp1p, ._, ._ },74270 .{ .@"0:", ._, .mov, .tmp2p, .tmp1p, ._, ._ },
74271 .{ ._, ._, .mov, .tmp3d, .sa(.dst0, .add_8_elem_size), ._, ._ },74271 .{ ._, ._, .mov, .tmp3d, .sa(.dst0, .add_bit_size), ._, ._ },
74272 .{ ._, ._ss, .mov, .tmp4x, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ },74272 .{ ._, ._ss, .mov, .tmp4x, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ },
74273 .{ ._, ._, .call, .tmp5d, ._, ._, ._ },74273 .{ ._, ._, .call, .tmp5d, ._, ._, ._ },
74274 .{ ._, ._, .lea, .tmp1p, .leaa(.tmp1, .add_dst0_elem_size), ._, ._ },74274 .{ ._, ._, .lea, .tmp1p, .leaa(.tmp1, .add_dst0_elem_size), ._, ._ },
...@@ -74626,7 +74626,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -74626,7 +74626,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
74626 .clobbers = .{ .eflags = true, .caller_preserved = .ccc },74626 .clobbers = .{ .eflags = true, .caller_preserved = .ccc },
74627 .each = .{ .once = &.{74627 .each = .{ .once = &.{
74628 .{ ._, ._, .lea, .tmp0p, .mem(.dst0), ._, ._ },74628 .{ ._, ._, .lea, .tmp0p, .mem(.dst0), ._, ._ },
74629 .{ ._, ._, .mov, .tmp1d, .sa(.dst0, .add_8_size), ._, ._ },74629 .{ ._, ._, .mov, .tmp1d, .sa(.dst0, .add_bit_size), ._, ._ },
74630 .{ ._, ._, .call, .tmp2d, ._, ._, ._ },74630 .{ ._, ._, .call, .tmp2d, ._, ._, ._ },
74631 } },74631 } },
74632 }, .{74632 }, .{
...@@ -74654,7 +74654,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -74654,7 +74654,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
74654 .clobbers = .{ .eflags = true, .caller_preserved = .ccc },74654 .clobbers = .{ .eflags = true, .caller_preserved = .ccc },
74655 .each = .{ .once = &.{74655 .each = .{ .once = &.{
74656 .{ ._, ._, .lea, .tmp0p, .mem(.dst0), ._, ._ },74656 .{ ._, ._, .lea, .tmp0p, .mem(.dst0), ._, ._ },
74657 .{ ._, ._, .mov, .tmp1d, .sa(.dst0, .add_8_size), ._, ._ },74657 .{ ._, ._, .mov, .tmp1d, .sa(.dst0, .add_bit_size), ._, ._ },
74658 .{ ._, ._, .call, .tmp2d, ._, ._, ._ },74658 .{ ._, ._, .call, .tmp2d, ._, ._, ._ },
74659 } },74659 } },
74660 }, .{74660 }, .{
...@@ -76322,7 +76322,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -76322,7 +76322,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
76322 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },76322 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },
76323 .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ },76323 .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ },
76324 .{ .@"0:", ._, .mov, .tmp2p, .tmp1p, ._, ._ },76324 .{ .@"0:", ._, .mov, .tmp2p, .tmp1p, ._, ._ },
76325 .{ ._, ._, .mov, .tmp3d, .sa(.dst0, .add_8_elem_size), ._, ._ },76325 .{ ._, ._, .mov, .tmp3d, .sa(.dst0, .add_bit_size), ._, ._ },
76326 .{ ._, .v_sd, .mov, .tmp4x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ },76326 .{ ._, .v_sd, .mov, .tmp4x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ },
76327 .{ ._, ._, .call, .tmp5d, ._, ._, ._ },76327 .{ ._, ._, .call, .tmp5d, ._, ._, ._ },
76328 .{ ._, ._, .lea, .tmp1p, .leaa(.tmp1, .add_dst0_elem_size), ._, ._ },76328 .{ ._, ._, .lea, .tmp1p, .leaa(.tmp1, .add_dst0_elem_size), ._, ._ },
...@@ -76356,7 +76356,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -76356,7 +76356,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
76356 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },76356 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },
76357 .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ },76357 .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ },
76358 .{ .@"0:", ._, .mov, .tmp2p, .tmp1p, ._, ._ },76358 .{ .@"0:", ._, .mov, .tmp2p, .tmp1p, ._, ._ },
76359 .{ ._, ._, .mov, .tmp3d, .sa(.dst0, .add_8_elem_size), ._, ._ },76359 .{ ._, ._, .mov, .tmp3d, .sa(.dst0, .add_bit_size), ._, ._ },
76360 .{ ._, .v_sd, .mov, .tmp4x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ },76360 .{ ._, .v_sd, .mov, .tmp4x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ },
76361 .{ ._, ._, .call, .tmp5d, ._, ._, ._ },76361 .{ ._, ._, .call, .tmp5d, ._, ._, ._ },
76362 .{ ._, ._, .lea, .tmp1p, .leaa(.tmp1, .add_dst0_elem_size), ._, ._ },76362 .{ ._, ._, .lea, .tmp1p, .leaa(.tmp1, .add_dst0_elem_size), ._, ._ },
...@@ -76390,7 +76390,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -76390,7 +76390,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
76390 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },76390 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },
76391 .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ },76391 .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ },
76392 .{ .@"0:", ._, .mov, .tmp2p, .tmp1p, ._, ._ },76392 .{ .@"0:", ._, .mov, .tmp2p, .tmp1p, ._, ._ },
76393 .{ ._, ._, .mov, .tmp3d, .sa(.dst0, .add_8_elem_size), ._, ._ },76393 .{ ._, ._, .mov, .tmp3d, .sa(.dst0, .add_bit_size), ._, ._ },
76394 .{ ._, ._sd, .mov, .tmp4x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ },76394 .{ ._, ._sd, .mov, .tmp4x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ },
76395 .{ ._, ._, .call, .tmp5d, ._, ._, ._ },76395 .{ ._, ._, .call, .tmp5d, ._, ._, ._ },
76396 .{ ._, ._, .lea, .tmp1p, .leaa(.tmp1, .add_dst0_elem_size), ._, ._ },76396 .{ ._, ._, .lea, .tmp1p, .leaa(.tmp1, .add_dst0_elem_size), ._, ._ },
...@@ -76424,7 +76424,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -76424,7 +76424,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
76424 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },76424 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },
76425 .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ },76425 .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ },
76426 .{ .@"0:", ._, .mov, .tmp2p, .tmp1p, ._, ._ },76426 .{ .@"0:", ._, .mov, .tmp2p, .tmp1p, ._, ._ },
76427 .{ ._, ._, .mov, .tmp3d, .sa(.dst0, .add_8_elem_size), ._, ._ },76427 .{ ._, ._, .mov, .tmp3d, .sa(.dst0, .add_bit_size), ._, ._ },
76428 .{ ._, ._sd, .mov, .tmp4x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ },76428 .{ ._, ._sd, .mov, .tmp4x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ },
76429 .{ ._, ._, .call, .tmp5d, ._, ._, ._ },76429 .{ ._, ._, .call, .tmp5d, ._, ._, ._ },
76430 .{ ._, ._, .lea, .tmp1p, .leaa(.tmp1, .add_dst0_elem_size), ._, ._ },76430 .{ ._, ._, .lea, .tmp1p, .leaa(.tmp1, .add_dst0_elem_size), ._, ._ },
...@@ -76459,7 +76459,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -76459,7 +76459,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
76459 .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ },76459 .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ },
76460 .{ .@"0:", ._ps, .xor, .tmp4x, .tmp4x, ._, ._ },76460 .{ .@"0:", ._ps, .xor, .tmp4x, .tmp4x, ._, ._ },
76461 .{ ._, ._, .mov, .tmp2p, .tmp1p, ._, ._ },76461 .{ ._, ._, .mov, .tmp2p, .tmp1p, ._, ._ },
76462 .{ ._, ._, .mov, .tmp3d, .sa(.dst0, .add_8_elem_size), ._, ._ },76462 .{ ._, ._, .mov, .tmp3d, .sa(.dst0, .add_bit_size), ._, ._ },
76463 .{ ._, ._ps, .movl, .tmp4x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ },76463 .{ ._, ._ps, .movl, .tmp4x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ },
76464 .{ ._, ._, .call, .tmp5d, ._, ._, ._ },76464 .{ ._, ._, .call, .tmp5d, ._, ._, ._ },
76465 .{ ._, ._, .lea, .tmp1p, .leaa(.tmp1, .add_dst0_elem_size), ._, ._ },76465 .{ ._, ._, .lea, .tmp1p, .leaa(.tmp1, .add_dst0_elem_size), ._, ._ },
...@@ -76494,7 +76494,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -76494,7 +76494,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
76494 .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ },76494 .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ },
76495 .{ .@"0:", ._ps, .xor, .tmp4x, .tmp4x, ._, ._ },76495 .{ .@"0:", ._ps, .xor, .tmp4x, .tmp4x, ._, ._ },
76496 .{ ._, ._, .mov, .tmp2p, .tmp1p, ._, ._ },76496 .{ ._, ._, .mov, .tmp2p, .tmp1p, ._, ._ },
76497 .{ ._, ._, .mov, .tmp3d, .sa(.dst0, .add_8_elem_size), ._, ._ },76497 .{ ._, ._, .mov, .tmp3d, .sa(.dst0, .add_bit_size), ._, ._ },
76498 .{ ._, ._ps, .movl, .tmp4x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ },76498 .{ ._, ._ps, .movl, .tmp4x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ },
76499 .{ ._, ._, .call, .tmp5d, ._, ._, ._ },76499 .{ ._, ._, .call, .tmp5d, ._, ._, ._ },
76500 .{ ._, ._, .lea, .tmp1p, .leaa(.tmp1, .add_dst0_elem_size), ._, ._ },76500 .{ ._, ._, .lea, .tmp1p, .leaa(.tmp1, .add_dst0_elem_size), ._, ._ },
...@@ -77437,7 +77437,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -77437,7 +77437,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
77437 .clobbers = .{ .eflags = true, .caller_preserved = .ccc },77437 .clobbers = .{ .eflags = true, .caller_preserved = .ccc },
77438 .each = .{ .once = &.{77438 .each = .{ .once = &.{
77439 .{ ._, ._, .lea, .tmp0p, .mem(.dst0), ._, ._ },77439 .{ ._, ._, .lea, .tmp0p, .mem(.dst0), ._, ._ },
77440 .{ ._, ._, .mov, .tmp1d, .sa(.dst0, .add_8_size), ._, ._ },77440 .{ ._, ._, .mov, .tmp1d, .sa(.dst0, .add_bit_size), ._, ._ },
77441 .{ ._, .v_dqa, .mov, .tmp2x, .src0x, ._, ._ },77441 .{ ._, .v_dqa, .mov, .tmp2x, .src0x, ._, ._ },
77442 .{ ._, .v_dqa, .mov, .tmp3x, .tmp2x, ._, ._ },77442 .{ ._, .v_dqa, .mov, .tmp3x, .tmp2x, ._, ._ },
77443 .{ ._, ._, .call, .tmp4d, ._, ._, ._ },77443 .{ ._, ._, .call, .tmp4d, ._, ._, ._ },
...@@ -77467,7 +77467,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -77467,7 +77467,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
77467 .clobbers = .{ .eflags = true, .caller_preserved = .ccc },77467 .clobbers = .{ .eflags = true, .caller_preserved = .ccc },
77468 .each = .{ .once = &.{77468 .each = .{ .once = &.{
77469 .{ ._, ._, .lea, .tmp0p, .mem(.dst0), ._, ._ },77469 .{ ._, ._, .lea, .tmp0p, .mem(.dst0), ._, ._ },
77470 .{ ._, ._, .mov, .tmp1d, .sa(.dst0, .add_8_size), ._, ._ },77470 .{ ._, ._, .mov, .tmp1d, .sa(.dst0, .add_bit_size), ._, ._ },
77471 .{ ._, .v_dqa, .mov, .tmp2x, .src0x, ._, ._ },77471 .{ ._, .v_dqa, .mov, .tmp2x, .src0x, ._, ._ },
77472 .{ ._, .v_dqa, .mov, .tmp3x, .tmp2x, ._, ._ },77472 .{ ._, .v_dqa, .mov, .tmp3x, .tmp2x, ._, ._ },
77473 .{ ._, ._, .call, .tmp4d, ._, ._, ._ },77473 .{ ._, ._, .call, .tmp4d, ._, ._, ._ },
...@@ -77497,7 +77497,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -77497,7 +77497,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
77497 .clobbers = .{ .eflags = true, .caller_preserved = .ccc },77497 .clobbers = .{ .eflags = true, .caller_preserved = .ccc },
77498 .each = .{ .once = &.{77498 .each = .{ .once = &.{
77499 .{ ._, ._, .lea, .tmp0p, .mem(.dst0), ._, ._ },77499 .{ ._, ._, .lea, .tmp0p, .mem(.dst0), ._, ._ },
77500 .{ ._, ._, .mov, .tmp1d, .sa(.dst0, .add_8_size), ._, ._ },77500 .{ ._, ._, .mov, .tmp1d, .sa(.dst0, .add_bit_size), ._, ._ },
77501 .{ ._, ._dqa, .mov, .tmp2x, .src0x, ._, ._ },77501 .{ ._, ._dqa, .mov, .tmp2x, .src0x, ._, ._ },
77502 .{ ._, ._dqa, .mov, .tmp3x, .tmp2x, ._, ._ },77502 .{ ._, ._dqa, .mov, .tmp3x, .tmp2x, ._, ._ },
77503 .{ ._, ._, .call, .tmp4d, ._, ._, ._ },77503 .{ ._, ._, .call, .tmp4d, ._, ._, ._ },
...@@ -77527,7 +77527,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -77527,7 +77527,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
77527 .clobbers = .{ .eflags = true, .caller_preserved = .ccc },77527 .clobbers = .{ .eflags = true, .caller_preserved = .ccc },
77528 .each = .{ .once = &.{77528 .each = .{ .once = &.{
77529 .{ ._, ._, .lea, .tmp0p, .mem(.dst0), ._, ._ },77529 .{ ._, ._, .lea, .tmp0p, .mem(.dst0), ._, ._ },
77530 .{ ._, ._, .mov, .tmp1d, .sa(.dst0, .add_8_size), ._, ._ },77530 .{ ._, ._, .mov, .tmp1d, .sa(.dst0, .add_bit_size), ._, ._ },
77531 .{ ._, ._dqa, .mov, .tmp2x, .src0x, ._, ._ },77531 .{ ._, ._dqa, .mov, .tmp2x, .src0x, ._, ._ },
77532 .{ ._, ._dqa, .mov, .tmp3x, .tmp2x, ._, ._ },77532 .{ ._, ._dqa, .mov, .tmp3x, .tmp2x, ._, ._ },
77533 .{ ._, ._, .call, .tmp4d, ._, ._, ._ },77533 .{ ._, ._, .call, .tmp4d, ._, ._, ._ },
...@@ -77557,7 +77557,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -77557,7 +77557,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
77557 .clobbers = .{ .eflags = true, .caller_preserved = .ccc },77557 .clobbers = .{ .eflags = true, .caller_preserved = .ccc },
77558 .each = .{ .once = &.{77558 .each = .{ .once = &.{
77559 .{ ._, ._, .lea, .tmp0p, .mem(.dst0), ._, ._ },77559 .{ ._, ._, .lea, .tmp0p, .mem(.dst0), ._, ._ },
77560 .{ ._, ._, .mov, .tmp1d, .sa(.dst0, .add_8_size), ._, ._ },77560 .{ ._, ._, .mov, .tmp1d, .sa(.dst0, .add_bit_size), ._, ._ },
77561 .{ ._, ._ps, .mova, .tmp2x, .src0x, ._, ._ },77561 .{ ._, ._ps, .mova, .tmp2x, .src0x, ._, ._ },
77562 .{ ._, ._ps, .mova, .tmp3x, .tmp2x, ._, ._ },77562 .{ ._, ._ps, .mova, .tmp3x, .tmp2x, ._, ._ },
77563 .{ ._, ._, .call, .tmp4d, ._, ._, ._ },77563 .{ ._, ._, .call, .tmp4d, ._, ._, ._ },
...@@ -77587,7 +77587,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -77587,7 +77587,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
77587 .clobbers = .{ .eflags = true, .caller_preserved = .ccc },77587 .clobbers = .{ .eflags = true, .caller_preserved = .ccc },
77588 .each = .{ .once = &.{77588 .each = .{ .once = &.{
77589 .{ ._, ._, .lea, .tmp0p, .mem(.dst0), ._, ._ },77589 .{ ._, ._, .lea, .tmp0p, .mem(.dst0), ._, ._ },
77590 .{ ._, ._, .mov, .tmp1d, .sa(.dst0, .add_8_size), ._, ._ },77590 .{ ._, ._, .mov, .tmp1d, .sa(.dst0, .add_bit_size), ._, ._ },
77591 .{ ._, ._ps, .mova, .tmp2x, .src0x, ._, ._ },77591 .{ ._, ._ps, .mova, .tmp2x, .src0x, ._, ._ },
77592 .{ ._, ._ps, .mova, .tmp3x, .tmp2x, ._, ._ },77592 .{ ._, ._ps, .mova, .tmp3x, .tmp2x, ._, ._ },
77593 .{ ._, ._, .call, .tmp4d, ._, ._, ._ },77593 .{ ._, ._, .call, .tmp4d, ._, ._, ._ },
...@@ -77620,7 +77620,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -77620,7 +77620,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
77620 .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ },77620 .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ },
77621 .{ .@"0:", .v_dqa, .mov, .tmp4x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ },77621 .{ .@"0:", .v_dqa, .mov, .tmp4x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ },
77622 .{ ._, ._, .mov, .tmp2p, .tmp1p, ._, ._ },77622 .{ ._, ._, .mov, .tmp2p, .tmp1p, ._, ._ },
77623 .{ ._, ._, .mov, .tmp3d, .sa(.dst0, .add_8_elem_size), ._, ._ },77623 .{ ._, ._, .mov, .tmp3d, .sa(.dst0, .add_bit_size), ._, ._ },
77624 .{ ._, .v_dqa, .mov, .tmp5x, .tmp4x, ._, ._ },77624 .{ ._, .v_dqa, .mov, .tmp5x, .tmp4x, ._, ._ },
77625 .{ ._, ._, .call, .tmp6d, ._, ._, ._ },77625 .{ ._, ._, .call, .tmp6d, ._, ._, ._ },
77626 .{ ._, ._, .lea, .tmp1p, .leaa(.tmp1, .add_dst0_elem_size), ._, ._ },77626 .{ ._, ._, .lea, .tmp1p, .leaa(.tmp1, .add_dst0_elem_size), ._, ._ },
...@@ -77655,7 +77655,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -77655,7 +77655,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
77655 .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ },77655 .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ },
77656 .{ .@"0:", .v_dqa, .mov, .tmp4x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ },77656 .{ .@"0:", .v_dqa, .mov, .tmp4x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ },
77657 .{ ._, ._, .mov, .tmp2p, .tmp1p, ._, ._ },77657 .{ ._, ._, .mov, .tmp2p, .tmp1p, ._, ._ },
77658 .{ ._, ._, .mov, .tmp3d, .sa(.dst0, .add_8_elem_size), ._, ._ },77658 .{ ._, ._, .mov, .tmp3d, .sa(.dst0, .add_bit_size), ._, ._ },
77659 .{ ._, .v_dqa, .mov, .tmp5x, .tmp4x, ._, ._ },77659 .{ ._, .v_dqa, .mov, .tmp5x, .tmp4x, ._, ._ },
77660 .{ ._, ._, .call, .tmp6d, ._, ._, ._ },77660 .{ ._, ._, .call, .tmp6d, ._, ._, ._ },
77661 .{ ._, ._, .lea, .tmp1p, .leaa(.tmp1, .add_dst0_elem_size), ._, ._ },77661 .{ ._, ._, .lea, .tmp1p, .leaa(.tmp1, .add_dst0_elem_size), ._, ._ },
...@@ -77690,7 +77690,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -77690,7 +77690,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
77690 .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ },77690 .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ },
77691 .{ .@"0:", ._dqa, .mov, .tmp4x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ },77691 .{ .@"0:", ._dqa, .mov, .tmp4x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ },
77692 .{ ._, ._, .mov, .tmp2p, .tmp1p, ._, ._ },77692 .{ ._, ._, .mov, .tmp2p, .tmp1p, ._, ._ },
77693 .{ ._, ._, .mov, .tmp3d, .sa(.dst0, .add_8_elem_size), ._, ._ },77693 .{ ._, ._, .mov, .tmp3d, .sa(.dst0, .add_bit_size), ._, ._ },
77694 .{ ._, ._dqa, .mov, .tmp5x, .tmp4x, ._, ._ },77694 .{ ._, ._dqa, .mov, .tmp5x, .tmp4x, ._, ._ },
77695 .{ ._, ._, .call, .tmp6d, ._, ._, ._ },77695 .{ ._, ._, .call, .tmp6d, ._, ._, ._ },
77696 .{ ._, ._, .lea, .tmp1p, .leaa(.tmp1, .add_dst0_elem_size), ._, ._ },77696 .{ ._, ._, .lea, .tmp1p, .leaa(.tmp1, .add_dst0_elem_size), ._, ._ },
...@@ -77725,7 +77725,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -77725,7 +77725,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
77725 .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ },77725 .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ },
77726 .{ .@"0:", ._dqa, .mov, .tmp4x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ },77726 .{ .@"0:", ._dqa, .mov, .tmp4x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ },
77727 .{ ._, ._, .mov, .tmp2p, .tmp1p, ._, ._ },77727 .{ ._, ._, .mov, .tmp2p, .tmp1p, ._, ._ },
77728 .{ ._, ._, .mov, .tmp3d, .sa(.dst0, .add_8_elem_size), ._, ._ },77728 .{ ._, ._, .mov, .tmp3d, .sa(.dst0, .add_bit_size), ._, ._ },
77729 .{ ._, ._dqa, .mov, .tmp5x, .tmp4x, ._, ._ },77729 .{ ._, ._dqa, .mov, .tmp5x, .tmp4x, ._, ._ },
77730 .{ ._, ._, .call, .tmp6d, ._, ._, ._ },77730 .{ ._, ._, .call, .tmp6d, ._, ._, ._ },
77731 .{ ._, ._, .lea, .tmp1p, .leaa(.tmp1, .add_dst0_elem_size), ._, ._ },77731 .{ ._, ._, .lea, .tmp1p, .leaa(.tmp1, .add_dst0_elem_size), ._, ._ },
...@@ -77760,7 +77760,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -77760,7 +77760,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
77760 .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ },77760 .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ },
77761 .{ .@"0:", ._ps, .mova, .tmp4x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ },77761 .{ .@"0:", ._ps, .mova, .tmp4x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ },
77762 .{ ._, ._, .mov, .tmp2p, .tmp1p, ._, ._ },77762 .{ ._, ._, .mov, .tmp2p, .tmp1p, ._, ._ },
77763 .{ ._, ._, .mov, .tmp3d, .sa(.dst0, .add_8_elem_size), ._, ._ },77763 .{ ._, ._, .mov, .tmp3d, .sa(.dst0, .add_bit_size), ._, ._ },
77764 .{ ._, ._ps, .mova, .tmp5x, .tmp4x, ._, ._ },77764 .{ ._, ._ps, .mova, .tmp5x, .tmp4x, ._, ._ },
77765 .{ ._, ._, .call, .tmp6d, ._, ._, ._ },77765 .{ ._, ._, .call, .tmp6d, ._, ._, ._ },
77766 .{ ._, ._, .lea, .tmp1p, .leaa(.tmp1, .add_dst0_elem_size), ._, ._ },77766 .{ ._, ._, .lea, .tmp1p, .leaa(.tmp1, .add_dst0_elem_size), ._, ._ },
...@@ -77795,7 +77795,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -77795,7 +77795,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
77795 .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ },77795 .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ },
77796 .{ .@"0:", ._ps, .mova, .tmp4x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ },77796 .{ .@"0:", ._ps, .mova, .tmp4x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ },
77797 .{ ._, ._, .mov, .tmp2p, .tmp1p, ._, ._ },77797 .{ ._, ._, .mov, .tmp2p, .tmp1p, ._, ._ },
77798 .{ ._, ._, .mov, .tmp3d, .sa(.dst0, .add_8_elem_size), ._, ._ },77798 .{ ._, ._, .mov, .tmp3d, .sa(.dst0, .add_bit_size), ._, ._ },
77799 .{ ._, ._ps, .mova, .tmp5x, .tmp4x, ._, ._ },77799 .{ ._, ._ps, .mova, .tmp5x, .tmp4x, ._, ._ },
77800 .{ ._, ._, .call, .tmp6d, ._, ._, ._ },77800 .{ ._, ._, .call, .tmp6d, ._, ._, ._ },
77801 .{ ._, ._, .lea, .tmp1p, .leaa(.tmp1, .add_dst0_elem_size), ._, ._ },77801 .{ ._, ._, .lea, .tmp1p, .leaa(.tmp1, .add_dst0_elem_size), ._, ._ },
...@@ -78838,7 +78838,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -78838,7 +78838,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
78838 .clobbers = .{ .eflags = true, .caller_preserved = .ccc },78838 .clobbers = .{ .eflags = true, .caller_preserved = .ccc },
78839 .each = .{ .once = &.{78839 .each = .{ .once = &.{
78840 .{ ._, ._, .lea, .tmp0p, .mem(.dst0), ._, ._ },78840 .{ ._, ._, .lea, .tmp0p, .mem(.dst0), ._, ._ },
78841 .{ ._, ._, .mov, .tmp1d, .sa(.dst0, .add_8_size), ._, ._ },78841 .{ ._, ._, .mov, .tmp1d, .sa(.dst0, .add_bit_size), ._, ._ },
78842 .{ ._, ._, .call, .tmp2d, ._, ._, ._ },78842 .{ ._, ._, .call, .tmp2d, ._, ._, ._ },
78843 } },78843 } },
78844 }, .{78844 }, .{
...@@ -78866,7 +78866,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -78866,7 +78866,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
78866 .clobbers = .{ .eflags = true, .caller_preserved = .ccc },78866 .clobbers = .{ .eflags = true, .caller_preserved = .ccc },
78867 .each = .{ .once = &.{78867 .each = .{ .once = &.{
78868 .{ ._, ._, .lea, .tmp0p, .mem(.dst0), ._, ._ },78868 .{ ._, ._, .lea, .tmp0p, .mem(.dst0), ._, ._ },
78869 .{ ._, ._, .mov, .tmp1d, .sa(.dst0, .add_8_size), ._, ._ },78869 .{ ._, ._, .mov, .tmp1d, .sa(.dst0, .add_bit_size), ._, ._ },
78870 .{ ._, ._, .call, .tmp2d, ._, ._, ._ },78870 .{ ._, ._, .call, .tmp2d, ._, ._, ._ },
78871 } },78871 } },
78872 }, .{78872 }, .{
...@@ -78896,7 +78896,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -78896,7 +78896,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
78896 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },78896 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },
78897 .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ },78897 .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ },
78898 .{ .@"0:", ._, .mov, .tmp2p, .tmp1p, ._, ._ },78898 .{ .@"0:", ._, .mov, .tmp2p, .tmp1p, ._, ._ },
78899 .{ ._, ._, .mov, .tmp3d, .sa(.dst0, .add_8_elem_size), ._, ._ },78899 .{ ._, ._, .mov, .tmp3d, .sa(.dst0, .add_bit_size), ._, ._ },
78900 .{ ._, .v_dqa, .mov, .tmp4x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ },78900 .{ ._, .v_dqa, .mov, .tmp4x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ },
78901 .{ ._, ._, .call, .tmp5d, ._, ._, ._ },78901 .{ ._, ._, .call, .tmp5d, ._, ._, ._ },
78902 .{ ._, ._, .lea, .tmp1p, .leaa(.tmp1, .add_dst0_elem_size), ._, ._ },78902 .{ ._, ._, .lea, .tmp1p, .leaa(.tmp1, .add_dst0_elem_size), ._, ._ },
...@@ -78930,7 +78930,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -78930,7 +78930,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
78930 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },78930 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },
78931 .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ },78931 .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ },
78932 .{ .@"0:", ._, .mov, .tmp2p, .tmp1p, ._, ._ },78932 .{ .@"0:", ._, .mov, .tmp2p, .tmp1p, ._, ._ },
78933 .{ ._, ._, .mov, .tmp3d, .sa(.dst0, .add_8_elem_size), ._, ._ },78933 .{ ._, ._, .mov, .tmp3d, .sa(.dst0, .add_bit_size), ._, ._ },
78934 .{ ._, .v_dqa, .mov, .tmp4x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ },78934 .{ ._, .v_dqa, .mov, .tmp4x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ },
78935 .{ ._, ._, .call, .tmp5d, ._, ._, ._ },78935 .{ ._, ._, .call, .tmp5d, ._, ._, ._ },
78936 .{ ._, ._, .lea, .tmp1p, .leaa(.tmp1, .add_dst0_elem_size), ._, ._ },78936 .{ ._, ._, .lea, .tmp1p, .leaa(.tmp1, .add_dst0_elem_size), ._, ._ },
...@@ -78964,7 +78964,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -78964,7 +78964,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
78964 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },78964 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },
78965 .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ },78965 .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ },
78966 .{ .@"0:", ._, .mov, .tmp2p, .tmp1p, ._, ._ },78966 .{ .@"0:", ._, .mov, .tmp2p, .tmp1p, ._, ._ },
78967 .{ ._, ._, .mov, .tmp3d, .sa(.dst0, .add_8_elem_size), ._, ._ },78967 .{ ._, ._, .mov, .tmp3d, .sa(.dst0, .add_bit_size), ._, ._ },
78968 .{ ._, ._dqa, .mov, .tmp4x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ },78968 .{ ._, ._dqa, .mov, .tmp4x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ },
78969 .{ ._, ._, .call, .tmp5d, ._, ._, ._ },78969 .{ ._, ._, .call, .tmp5d, ._, ._, ._ },
78970 .{ ._, ._, .lea, .tmp1p, .leaa(.tmp1, .add_dst0_elem_size), ._, ._ },78970 .{ ._, ._, .lea, .tmp1p, .leaa(.tmp1, .add_dst0_elem_size), ._, ._ },
...@@ -78998,7 +78998,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -78998,7 +78998,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
78998 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },78998 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },
78999 .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ },78999 .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ },
79000 .{ .@"0:", ._, .mov, .tmp2p, .tmp1p, ._, ._ },79000 .{ .@"0:", ._, .mov, .tmp2p, .tmp1p, ._, ._ },
79001 .{ ._, ._, .mov, .tmp3d, .sa(.dst0, .add_8_elem_size), ._, ._ },79001 .{ ._, ._, .mov, .tmp3d, .sa(.dst0, .add_bit_size), ._, ._ },
79002 .{ ._, ._dqa, .mov, .tmp4x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ },79002 .{ ._, ._dqa, .mov, .tmp4x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ },
79003 .{ ._, ._, .call, .tmp5d, ._, ._, ._ },79003 .{ ._, ._, .call, .tmp5d, ._, ._, ._ },
79004 .{ ._, ._, .lea, .tmp1p, .leaa(.tmp1, .add_dst0_elem_size), ._, ._ },79004 .{ ._, ._, .lea, .tmp1p, .leaa(.tmp1, .add_dst0_elem_size), ._, ._ },
...@@ -79032,7 +79032,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -79032,7 +79032,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
79032 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },79032 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },
79033 .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ },79033 .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ },
79034 .{ .@"0:", ._, .mov, .tmp2p, .tmp1p, ._, ._ },79034 .{ .@"0:", ._, .mov, .tmp2p, .tmp1p, ._, ._ },
79035 .{ ._, ._, .mov, .tmp3d, .sa(.dst0, .add_8_elem_size), ._, ._ },79035 .{ ._, ._, .mov, .tmp3d, .sa(.dst0, .add_bit_size), ._, ._ },
79036 .{ ._, ._ps, .mova, .tmp4x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ },79036 .{ ._, ._ps, .mova, .tmp4x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ },
79037 .{ ._, ._, .call, .tmp5d, ._, ._, ._ },79037 .{ ._, ._, .call, .tmp5d, ._, ._, ._ },
79038 .{ ._, ._, .lea, .tmp1p, .leaa(.tmp1, .add_dst0_elem_size), ._, ._ },79038 .{ ._, ._, .lea, .tmp1p, .leaa(.tmp1, .add_dst0_elem_size), ._, ._ },
...@@ -79066,7 +79066,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -79066,7 +79066,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
79066 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },79066 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },
79067 .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ },79067 .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ },
79068 .{ .@"0:", ._, .mov, .tmp2p, .tmp1p, ._, ._ },79068 .{ .@"0:", ._, .mov, .tmp2p, .tmp1p, ._, ._ },
79069 .{ ._, ._, .mov, .tmp3d, .sa(.dst0, .add_8_elem_size), ._, ._ },79069 .{ ._, ._, .mov, .tmp3d, .sa(.dst0, .add_bit_size), ._, ._ },
79070 .{ ._, ._ps, .mova, .tmp4x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ },79070 .{ ._, ._ps, .mova, .tmp4x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ },
79071 .{ ._, ._, .call, .tmp5d, ._, ._, ._ },79071 .{ ._, ._, .call, .tmp5d, ._, ._, ._ },
79072 .{ ._, ._, .lea, .tmp1p, .leaa(.tmp1, .add_dst0_elem_size), ._, ._ },79072 .{ ._, ._, .lea, .tmp1p, .leaa(.tmp1, .add_dst0_elem_size), ._, ._ },
...@@ -79581,7 +79581,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -79581,7 +79581,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
79581 .clobbers = .{ .eflags = true, .caller_preserved = .ccc },79581 .clobbers = .{ .eflags = true, .caller_preserved = .ccc },
79582 .each = .{ .once = &.{79582 .each = .{ .once = &.{
79583 .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ },79583 .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ },
79584 .{ ._, ._, .mov, .tmp1d, .sa(.src0, .add_8_size), ._, ._ },79584 .{ ._, ._, .mov, .tmp1d, .sa(.src0, .add_bit_size), ._, ._ },
79585 .{ ._, ._, .call, .tmp2d, ._, ._, ._ },79585 .{ ._, ._, .call, .tmp2d, ._, ._, ._ },
79586 } },79586 } },
79587 }, .{79587 }, .{
...@@ -79609,7 +79609,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -79609,7 +79609,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
79609 .clobbers = .{ .eflags = true, .caller_preserved = .ccc },79609 .clobbers = .{ .eflags = true, .caller_preserved = .ccc },
79610 .each = .{ .once = &.{79610 .each = .{ .once = &.{
79611 .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ },79611 .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ },
79612 .{ ._, ._, .mov, .tmp1d, .sa(.src0, .add_8_size), ._, ._ },79612 .{ ._, ._, .mov, .tmp1d, .sa(.src0, .add_bit_size), ._, ._ },
79613 .{ ._, ._, .call, .tmp2d, ._, ._, ._ },79613 .{ ._, ._, .call, .tmp2d, ._, ._, ._ },
79614 } },79614 } },
79615 }, .{79615 }, .{
...@@ -81638,7 +81638,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -81638,7 +81638,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
81638 .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ },81638 .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ },
81639 .{ ._, ._, .mov, .tmp1p, .sa(.dst0, .sub_unaligned_size), ._, ._ },81639 .{ ._, ._, .mov, .tmp1p, .sa(.dst0, .sub_unaligned_size), ._, ._ },
81640 .{ .@"0:", ._, .mov, .tmp2p, .tmp0p, ._, ._ },81640 .{ .@"0:", ._, .mov, .tmp2p, .tmp0p, ._, ._ },
81641 .{ ._, ._, .mov, .tmp3d, .sa(.src0, .add_8_elem_size), ._, ._ },81641 .{ ._, ._, .mov, .tmp3d, .sa(.src0, .add_bit_size), ._, ._ },
81642 .{ ._, ._, .call, .tmp4d, ._, ._, ._ },81642 .{ ._, ._, .call, .tmp4d, ._, ._, ._ },
81643 .{ ._, .vp_w, .extr, .memia(.dst0w, .tmp1, .add_unaligned_size), .tmp5x, .ui(0), ._ },81643 .{ ._, .vp_w, .extr, .memia(.dst0w, .tmp1, .add_unaligned_size), .tmp5x, .ui(0), ._ },
81644 .{ ._, ._, .lea, .tmp0p, .leaa(.tmp0, .add_src0_elem_size), ._, ._ },81644 .{ ._, ._, .lea, .tmp0p, .leaa(.tmp0, .add_src0_elem_size), ._, ._ },
...@@ -81672,7 +81672,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -81672,7 +81672,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
81672 .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ },81672 .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ },
81673 .{ ._, ._, .mov, .tmp1p, .sa(.dst0, .sub_unaligned_size), ._, ._ },81673 .{ ._, ._, .mov, .tmp1p, .sa(.dst0, .sub_unaligned_size), ._, ._ },
81674 .{ .@"0:", ._, .mov, .tmp2p, .tmp0p, ._, ._ },81674 .{ .@"0:", ._, .mov, .tmp2p, .tmp0p, ._, ._ },
81675 .{ ._, ._, .mov, .tmp3d, .sa(.src0, .add_8_elem_size), ._, ._ },81675 .{ ._, ._, .mov, .tmp3d, .sa(.src0, .add_bit_size), ._, ._ },
81676 .{ ._, ._, .call, .tmp4d, ._, ._, ._ },81676 .{ ._, ._, .call, .tmp4d, ._, ._, ._ },
81677 .{ ._, .p_w, .extr, .memia(.dst0w, .tmp1, .add_unaligned_size), .tmp5x, .ui(0), ._ },81677 .{ ._, .p_w, .extr, .memia(.dst0w, .tmp1, .add_unaligned_size), .tmp5x, .ui(0), ._ },
81678 .{ ._, ._, .lea, .tmp0p, .leaa(.tmp0, .add_src0_elem_size), ._, ._ },81678 .{ ._, ._, .lea, .tmp0p, .leaa(.tmp0, .add_src0_elem_size), ._, ._ },
...@@ -81706,7 +81706,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -81706,7 +81706,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
81706 .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ },81706 .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ },
81707 .{ ._, ._, .mov, .tmp1p, .sa(.dst0, .sub_unaligned_size), ._, ._ },81707 .{ ._, ._, .mov, .tmp1p, .sa(.dst0, .sub_unaligned_size), ._, ._ },
81708 .{ .@"0:", ._, .mov, .tmp2p, .tmp0p, ._, ._ },81708 .{ .@"0:", ._, .mov, .tmp2p, .tmp0p, ._, ._ },
81709 .{ ._, ._, .mov, .tmp3d, .sa(.src0, .add_8_elem_size), ._, ._ },81709 .{ ._, ._, .mov, .tmp3d, .sa(.src0, .add_bit_size), ._, ._ },
81710 .{ ._, ._, .call, .tmp4d, ._, ._, ._ },81710 .{ ._, ._, .call, .tmp4d, ._, ._, ._ },
81711 .{ ._, .p_w, .extr, .tmp2d, .tmp5x, .ui(0), ._ },81711 .{ ._, .p_w, .extr, .tmp2d, .tmp5x, .ui(0), ._ },
81712 .{ ._, ._, .mov, .memia(.dst0w, .tmp1, .add_unaligned_size), .tmp2w, ._, ._ },81712 .{ ._, ._, .mov, .memia(.dst0w, .tmp1, .add_unaligned_size), .tmp2w, ._, ._ },
...@@ -81741,7 +81741,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -81741,7 +81741,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
81741 .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ },81741 .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ },
81742 .{ ._, ._, .mov, .tmp1p, .sa(.dst0, .sub_unaligned_size), ._, ._ },81742 .{ ._, ._, .mov, .tmp1p, .sa(.dst0, .sub_unaligned_size), ._, ._ },
81743 .{ .@"0:", ._, .mov, .tmp2p, .tmp0p, ._, ._ },81743 .{ .@"0:", ._, .mov, .tmp2p, .tmp0p, ._, ._ },
81744 .{ ._, ._, .mov, .tmp3d, .sa(.src0, .add_8_elem_size), ._, ._ },81744 .{ ._, ._, .mov, .tmp3d, .sa(.src0, .add_bit_size), ._, ._ },
81745 .{ ._, ._, .call, .tmp4d, ._, ._, ._ },81745 .{ ._, ._, .call, .tmp4d, ._, ._, ._ },
81746 .{ ._, ._ss, .mov, .tmp6d, .tmp5d, ._, ._ },81746 .{ ._, ._ss, .mov, .tmp6d, .tmp5d, ._, ._ },
81747 .{ ._, ._, .mov, .tmp2d, .tmp6d, ._, ._ },81747 .{ ._, ._, .mov, .tmp2d, .tmp6d, ._, ._ },
...@@ -81777,7 +81777,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -81777,7 +81777,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
81777 .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ },81777 .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ },
81778 .{ ._, ._, .mov, .tmp1p, .sa(.dst0, .sub_unaligned_size), ._, ._ },81778 .{ ._, ._, .mov, .tmp1p, .sa(.dst0, .sub_unaligned_size), ._, ._ },
81779 .{ .@"0:", ._, .mov, .tmp2p, .tmp0p, ._, ._ },81779 .{ .@"0:", ._, .mov, .tmp2p, .tmp0p, ._, ._ },
81780 .{ ._, ._, .mov, .tmp3d, .sa(.src0, .add_8_elem_size), ._, ._ },81780 .{ ._, ._, .mov, .tmp3d, .sa(.src0, .add_bit_size), ._, ._ },
81781 .{ ._, ._, .call, .tmp4d, ._, ._, ._ },81781 .{ ._, ._, .call, .tmp4d, ._, ._, ._ },
81782 .{ ._, .vp_w, .extr, .memia(.dst0w, .tmp1, .add_unaligned_size), .tmp5x, .ui(0), ._ },81782 .{ ._, .vp_w, .extr, .memia(.dst0w, .tmp1, .add_unaligned_size), .tmp5x, .ui(0), ._ },
81783 .{ ._, ._, .lea, .tmp0p, .leaa(.tmp0, .add_src0_elem_size), ._, ._ },81783 .{ ._, ._, .lea, .tmp0p, .leaa(.tmp0, .add_src0_elem_size), ._, ._ },
...@@ -81811,7 +81811,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -81811,7 +81811,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
81811 .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ },81811 .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ },
81812 .{ ._, ._, .mov, .tmp1p, .sa(.dst0, .sub_unaligned_size), ._, ._ },81812 .{ ._, ._, .mov, .tmp1p, .sa(.dst0, .sub_unaligned_size), ._, ._ },
81813 .{ .@"0:", ._, .mov, .tmp2p, .tmp0p, ._, ._ },81813 .{ .@"0:", ._, .mov, .tmp2p, .tmp0p, ._, ._ },
81814 .{ ._, ._, .mov, .tmp3d, .sa(.src0, .add_8_elem_size), ._, ._ },81814 .{ ._, ._, .mov, .tmp3d, .sa(.src0, .add_bit_size), ._, ._ },
81815 .{ ._, ._, .call, .tmp4d, ._, ._, ._ },81815 .{ ._, ._, .call, .tmp4d, ._, ._, ._ },
81816 .{ ._, .p_w, .extr, .memia(.dst0w, .tmp1, .add_unaligned_size), .tmp5x, .ui(0), ._ },81816 .{ ._, .p_w, .extr, .memia(.dst0w, .tmp1, .add_unaligned_size), .tmp5x, .ui(0), ._ },
81817 .{ ._, ._, .lea, .tmp0p, .leaa(.tmp0, .add_src0_elem_size), ._, ._ },81817 .{ ._, ._, .lea, .tmp0p, .leaa(.tmp0, .add_src0_elem_size), ._, ._ },
...@@ -81845,7 +81845,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -81845,7 +81845,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
81845 .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ },81845 .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ },
81846 .{ ._, ._, .mov, .tmp1p, .sa(.dst0, .sub_unaligned_size), ._, ._ },81846 .{ ._, ._, .mov, .tmp1p, .sa(.dst0, .sub_unaligned_size), ._, ._ },
81847 .{ .@"0:", ._, .mov, .tmp2p, .tmp0p, ._, ._ },81847 .{ .@"0:", ._, .mov, .tmp2p, .tmp0p, ._, ._ },
81848 .{ ._, ._, .mov, .tmp3d, .sa(.src0, .add_8_elem_size), ._, ._ },81848 .{ ._, ._, .mov, .tmp3d, .sa(.src0, .add_bit_size), ._, ._ },
81849 .{ ._, ._, .call, .tmp4d, ._, ._, ._ },81849 .{ ._, ._, .call, .tmp4d, ._, ._, ._ },
81850 .{ ._, .p_w, .extr, .tmp2d, .tmp5x, .ui(0), ._ },81850 .{ ._, .p_w, .extr, .tmp2d, .tmp5x, .ui(0), ._ },
81851 .{ ._, ._, .mov, .memia(.dst0w, .tmp1, .add_unaligned_size), .tmp2w, ._, ._ },81851 .{ ._, ._, .mov, .memia(.dst0w, .tmp1, .add_unaligned_size), .tmp2w, ._, ._ },
...@@ -81880,7 +81880,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -81880,7 +81880,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
81880 .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ },81880 .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ },
81881 .{ ._, ._, .mov, .tmp1p, .sa(.dst0, .sub_unaligned_size), ._, ._ },81881 .{ ._, ._, .mov, .tmp1p, .sa(.dst0, .sub_unaligned_size), ._, ._ },
81882 .{ .@"0:", ._, .mov, .tmp2p, .tmp0p, ._, ._ },81882 .{ .@"0:", ._, .mov, .tmp2p, .tmp0p, ._, ._ },
81883 .{ ._, ._, .mov, .tmp3d, .sa(.src0, .add_8_elem_size), ._, ._ },81883 .{ ._, ._, .mov, .tmp3d, .sa(.src0, .add_bit_size), ._, ._ },
81884 .{ ._, ._, .call, .tmp4d, ._, ._, ._ },81884 .{ ._, ._, .call, .tmp4d, ._, ._, ._ },
81885 .{ ._, ._ss, .mov, .tmp6d, .tmp5d, ._, ._ },81885 .{ ._, ._ss, .mov, .tmp6d, .tmp5d, ._, ._ },
81886 .{ ._, ._, .mov, .tmp2d, .tmp6d, ._, ._ },81886 .{ ._, ._, .mov, .tmp2d, .tmp6d, ._, ._ },
...@@ -82358,7 +82358,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -82358,7 +82358,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
82358 .clobbers = .{ .eflags = true, .caller_preserved = .ccc },82358 .clobbers = .{ .eflags = true, .caller_preserved = .ccc },
82359 .each = .{ .once = &.{82359 .each = .{ .once = &.{
82360 .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ },82360 .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ },
82361 .{ ._, ._, .mov, .tmp1d, .sa(.src0, .add_8_size), ._, ._ },82361 .{ ._, ._, .mov, .tmp1d, .sa(.src0, .add_bit_size), ._, ._ },
82362 .{ ._, ._, .call, .tmp2d, ._, ._, ._ },82362 .{ ._, ._, .call, .tmp2d, ._, ._, ._ },
82363 } },82363 } },
82364 }, .{82364 }, .{
...@@ -82386,7 +82386,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -82386,7 +82386,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
82386 .clobbers = .{ .eflags = true, .caller_preserved = .ccc },82386 .clobbers = .{ .eflags = true, .caller_preserved = .ccc },
82387 .each = .{ .once = &.{82387 .each = .{ .once = &.{
82388 .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ },82388 .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ },
82389 .{ ._, ._, .mov, .tmp1d, .sa(.src0, .add_8_size), ._, ._ },82389 .{ ._, ._, .mov, .tmp1d, .sa(.src0, .add_bit_size), ._, ._ },
82390 .{ ._, ._, .call, .tmp2d, ._, ._, ._ },82390 .{ ._, ._, .call, .tmp2d, ._, ._, ._ },
82391 } },82391 } },
82392 }, .{82392 }, .{
...@@ -83892,7 +83892,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -83892,7 +83892,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
83892 .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ },83892 .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ },
83893 .{ ._, ._, .mov, .tmp1p, .sa(.dst0, .sub_unaligned_size), ._, ._ },83893 .{ ._, ._, .mov, .tmp1p, .sa(.dst0, .sub_unaligned_size), ._, ._ },
83894 .{ .@"0:", ._, .mov, .tmp2p, .tmp0p, ._, ._ },83894 .{ .@"0:", ._, .mov, .tmp2p, .tmp0p, ._, ._ },
83895 .{ ._, ._, .mov, .tmp3d, .sa(.src0, .add_8_elem_size), ._, ._ },83895 .{ ._, ._, .mov, .tmp3d, .sa(.src0, .add_bit_size), ._, ._ },
83896 .{ ._, ._, .call, .tmp4d, ._, ._, ._ },83896 .{ ._, ._, .call, .tmp4d, ._, ._, ._ },
83897 .{ ._, .v_ss, .mov, .memia(.dst0d, .tmp1, .add_unaligned_size), .tmp5x, ._, ._ },83897 .{ ._, .v_ss, .mov, .memia(.dst0d, .tmp1, .add_unaligned_size), .tmp5x, ._, ._ },
83898 .{ ._, ._, .lea, .tmp0p, .leaa(.tmp0, .add_src0_elem_size), ._, ._ },83898 .{ ._, ._, .lea, .tmp0p, .leaa(.tmp0, .add_src0_elem_size), ._, ._ },
...@@ -83926,7 +83926,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -83926,7 +83926,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
83926 .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ },83926 .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ },
83927 .{ ._, ._, .mov, .tmp1p, .sa(.dst0, .sub_unaligned_size), ._, ._ },83927 .{ ._, ._, .mov, .tmp1p, .sa(.dst0, .sub_unaligned_size), ._, ._ },
83928 .{ .@"0:", ._, .mov, .tmp2p, .tmp0p, ._, ._ },83928 .{ .@"0:", ._, .mov, .tmp2p, .tmp0p, ._, ._ },
83929 .{ ._, ._, .mov, .tmp3d, .sa(.src0, .add_8_elem_size), ._, ._ },83929 .{ ._, ._, .mov, .tmp3d, .sa(.src0, .add_bit_size), ._, ._ },
83930 .{ ._, ._, .call, .tmp4d, ._, ._, ._ },83930 .{ ._, ._, .call, .tmp4d, ._, ._, ._ },
83931 .{ ._, ._ss, .mov, .memia(.dst0d, .tmp1, .add_unaligned_size), .tmp5x, ._, ._ },83931 .{ ._, ._ss, .mov, .memia(.dst0d, .tmp1, .add_unaligned_size), .tmp5x, ._, ._ },
83932 .{ ._, ._, .lea, .tmp0p, .leaa(.tmp0, .add_src0_elem_size), ._, ._ },83932 .{ ._, ._, .lea, .tmp0p, .leaa(.tmp0, .add_src0_elem_size), ._, ._ },
...@@ -83960,7 +83960,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -83960,7 +83960,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
83960 .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ },83960 .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ },
83961 .{ ._, ._, .mov, .tmp1p, .sa(.dst0, .sub_unaligned_size), ._, ._ },83961 .{ ._, ._, .mov, .tmp1p, .sa(.dst0, .sub_unaligned_size), ._, ._ },
83962 .{ .@"0:", ._, .mov, .tmp2p, .tmp0p, ._, ._ },83962 .{ .@"0:", ._, .mov, .tmp2p, .tmp0p, ._, ._ },
83963 .{ ._, ._, .mov, .tmp3d, .sa(.src0, .add_8_elem_size), ._, ._ },83963 .{ ._, ._, .mov, .tmp3d, .sa(.src0, .add_bit_size), ._, ._ },
83964 .{ ._, ._, .call, .tmp4d, ._, ._, ._ },83964 .{ ._, ._, .call, .tmp4d, ._, ._, ._ },
83965 .{ ._, .v_ss, .mov, .memia(.dst0d, .tmp1, .add_unaligned_size), .tmp5x, ._, ._ },83965 .{ ._, .v_ss, .mov, .memia(.dst0d, .tmp1, .add_unaligned_size), .tmp5x, ._, ._ },
83966 .{ ._, ._, .lea, .tmp0p, .leaa(.tmp0, .add_src0_elem_size), ._, ._ },83966 .{ ._, ._, .lea, .tmp0p, .leaa(.tmp0, .add_src0_elem_size), ._, ._ },
...@@ -83994,7 +83994,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -83994,7 +83994,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
83994 .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ },83994 .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ },
83995 .{ ._, ._, .mov, .tmp1p, .sa(.dst0, .sub_unaligned_size), ._, ._ },83995 .{ ._, ._, .mov, .tmp1p, .sa(.dst0, .sub_unaligned_size), ._, ._ },
83996 .{ .@"0:", ._, .mov, .tmp2p, .tmp0p, ._, ._ },83996 .{ .@"0:", ._, .mov, .tmp2p, .tmp0p, ._, ._ },
83997 .{ ._, ._, .mov, .tmp3d, .sa(.src0, .add_8_elem_size), ._, ._ },83997 .{ ._, ._, .mov, .tmp3d, .sa(.src0, .add_bit_size), ._, ._ },
83998 .{ ._, ._, .call, .tmp4d, ._, ._, ._ },83998 .{ ._, ._, .call, .tmp4d, ._, ._, ._ },
83999 .{ ._, ._ss, .mov, .memia(.dst0d, .tmp1, .add_unaligned_size), .tmp5x, ._, ._ },83999 .{ ._, ._ss, .mov, .memia(.dst0d, .tmp1, .add_unaligned_size), .tmp5x, ._, ._ },
84000 .{ ._, ._, .lea, .tmp0p, .leaa(.tmp0, .add_src0_elem_size), ._, ._ },84000 .{ ._, ._, .lea, .tmp0p, .leaa(.tmp0, .add_src0_elem_size), ._, ._ },
...@@ -84688,7 +84688,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -84688,7 +84688,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
84688 .clobbers = .{ .eflags = true, .caller_preserved = .ccc },84688 .clobbers = .{ .eflags = true, .caller_preserved = .ccc },
84689 .each = .{ .once = &.{84689 .each = .{ .once = &.{
84690 .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ },84690 .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ },
84691 .{ ._, ._, .mov, .tmp1d, .sa(.src0, .add_8_size), ._, ._ },84691 .{ ._, ._, .mov, .tmp1d, .sa(.src0, .add_bit_size), ._, ._ },
84692 .{ ._, ._, .call, .tmp2d, ._, ._, ._ },84692 .{ ._, ._, .call, .tmp2d, ._, ._, ._ },
84693 } },84693 } },
84694 }, .{84694 }, .{
...@@ -84716,7 +84716,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -84716,7 +84716,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
84716 .clobbers = .{ .eflags = true, .caller_preserved = .ccc },84716 .clobbers = .{ .eflags = true, .caller_preserved = .ccc },
84717 .each = .{ .once = &.{84717 .each = .{ .once = &.{
84718 .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ },84718 .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ },
84719 .{ ._, ._, .mov, .tmp1d, .sa(.src0, .add_8_size), ._, ._ },84719 .{ ._, ._, .mov, .tmp1d, .sa(.src0, .add_bit_size), ._, ._ },
84720 .{ ._, ._, .call, .tmp2d, ._, ._, ._ },84720 .{ ._, ._, .call, .tmp2d, ._, ._, ._ },
84721 } },84721 } },
84722 }, .{84722 }, .{
...@@ -86579,7 +86579,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -86579,7 +86579,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
86579 .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ },86579 .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ },
86580 .{ ._, ._, .mov, .tmp1p, .sa(.dst0, .sub_unaligned_size), ._, ._ },86580 .{ ._, ._, .mov, .tmp1p, .sa(.dst0, .sub_unaligned_size), ._, ._ },
86581 .{ .@"0:", ._, .mov, .tmp2p, .tmp0p, ._, ._ },86581 .{ .@"0:", ._, .mov, .tmp2p, .tmp0p, ._, ._ },
86582 .{ ._, ._, .mov, .tmp3d, .sa(.src0, .add_8_elem_size), ._, ._ },86582 .{ ._, ._, .mov, .tmp3d, .sa(.src0, .add_bit_size), ._, ._ },
86583 .{ ._, ._, .call, .tmp4d, ._, ._, ._ },86583 .{ ._, ._, .call, .tmp4d, ._, ._, ._ },
86584 .{ ._, .v_sd, .mov, .memia(.dst0q, .tmp1, .add_unaligned_size), .tmp5x, ._, ._ },86584 .{ ._, .v_sd, .mov, .memia(.dst0q, .tmp1, .add_unaligned_size), .tmp5x, ._, ._ },
86585 .{ ._, ._, .lea, .tmp0p, .leaa(.tmp0, .add_src0_elem_size), ._, ._ },86585 .{ ._, ._, .lea, .tmp0p, .leaa(.tmp0, .add_src0_elem_size), ._, ._ },
...@@ -86613,7 +86613,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -86613,7 +86613,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
86613 .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ },86613 .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ },
86614 .{ ._, ._, .mov, .tmp1p, .sa(.dst0, .sub_unaligned_size), ._, ._ },86614 .{ ._, ._, .mov, .tmp1p, .sa(.dst0, .sub_unaligned_size), ._, ._ },
86615 .{ .@"0:", ._, .mov, .tmp2p, .tmp0p, ._, ._ },86615 .{ .@"0:", ._, .mov, .tmp2p, .tmp0p, ._, ._ },
86616 .{ ._, ._, .mov, .tmp3d, .sa(.src0, .add_8_elem_size), ._, ._ },86616 .{ ._, ._, .mov, .tmp3d, .sa(.src0, .add_bit_size), ._, ._ },
86617 .{ ._, ._, .call, .tmp4d, ._, ._, ._ },86617 .{ ._, ._, .call, .tmp4d, ._, ._, ._ },
86618 .{ ._, ._sd, .mov, .memia(.dst0q, .tmp1, .add_unaligned_size), .tmp5x, ._, ._ },86618 .{ ._, ._sd, .mov, .memia(.dst0q, .tmp1, .add_unaligned_size), .tmp5x, ._, ._ },
86619 .{ ._, ._, .lea, .tmp0p, .leaa(.tmp0, .add_src0_elem_size), ._, ._ },86619 .{ ._, ._, .lea, .tmp0p, .leaa(.tmp0, .add_src0_elem_size), ._, ._ },
...@@ -86647,7 +86647,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -86647,7 +86647,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
86647 .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ },86647 .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ },
86648 .{ ._, ._, .mov, .tmp1p, .sa(.dst0, .sub_unaligned_size), ._, ._ },86648 .{ ._, ._, .mov, .tmp1p, .sa(.dst0, .sub_unaligned_size), ._, ._ },
86649 .{ .@"0:", ._, .mov, .tmp2p, .tmp0p, ._, ._ },86649 .{ .@"0:", ._, .mov, .tmp2p, .tmp0p, ._, ._ },
86650 .{ ._, ._, .mov, .tmp3d, .sa(.src0, .add_8_elem_size), ._, ._ },86650 .{ ._, ._, .mov, .tmp3d, .sa(.src0, .add_bit_size), ._, ._ },
86651 .{ ._, ._, .call, .tmp4d, ._, ._, ._ },86651 .{ ._, ._, .call, .tmp4d, ._, ._, ._ },
86652 .{ ._, ._ps, .movl, .memia(.dst0q, .tmp1, .add_unaligned_size), .tmp5x, ._, ._ },86652 .{ ._, ._ps, .movl, .memia(.dst0q, .tmp1, .add_unaligned_size), .tmp5x, ._, ._ },
86653 .{ ._, ._, .lea, .tmp0p, .leaa(.tmp0, .add_src0_elem_size), ._, ._ },86653 .{ ._, ._, .lea, .tmp0p, .leaa(.tmp0, .add_src0_elem_size), ._, ._ },
...@@ -86681,7 +86681,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -86681,7 +86681,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
86681 .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ },86681 .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ },
86682 .{ ._, ._, .mov, .tmp1p, .sa(.dst0, .sub_unaligned_size), ._, ._ },86682 .{ ._, ._, .mov, .tmp1p, .sa(.dst0, .sub_unaligned_size), ._, ._ },
86683 .{ .@"0:", ._, .mov, .tmp2p, .tmp0p, ._, ._ },86683 .{ .@"0:", ._, .mov, .tmp2p, .tmp0p, ._, ._ },
86684 .{ ._, ._, .mov, .tmp3d, .sa(.src0, .add_8_elem_size), ._, ._ },86684 .{ ._, ._, .mov, .tmp3d, .sa(.src0, .add_bit_size), ._, ._ },
86685 .{ ._, ._, .call, .tmp4d, ._, ._, ._ },86685 .{ ._, ._, .call, .tmp4d, ._, ._, ._ },
86686 .{ ._, .v_sd, .mov, .memia(.dst0q, .tmp1, .add_unaligned_size), .tmp5x, ._, ._ },86686 .{ ._, .v_sd, .mov, .memia(.dst0q, .tmp1, .add_unaligned_size), .tmp5x, ._, ._ },
86687 .{ ._, ._, .lea, .tmp0p, .leaa(.tmp0, .add_src0_elem_size), ._, ._ },86687 .{ ._, ._, .lea, .tmp0p, .leaa(.tmp0, .add_src0_elem_size), ._, ._ },
...@@ -86715,7 +86715,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -86715,7 +86715,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
86715 .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ },86715 .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ },
86716 .{ ._, ._, .mov, .tmp1p, .sa(.dst0, .sub_unaligned_size), ._, ._ },86716 .{ ._, ._, .mov, .tmp1p, .sa(.dst0, .sub_unaligned_size), ._, ._ },
86717 .{ .@"0:", ._, .mov, .tmp2p, .tmp0p, ._, ._ },86717 .{ .@"0:", ._, .mov, .tmp2p, .tmp0p, ._, ._ },
86718 .{ ._, ._, .mov, .tmp3d, .sa(.src0, .add_8_elem_size), ._, ._ },86718 .{ ._, ._, .mov, .tmp3d, .sa(.src0, .add_bit_size), ._, ._ },
86719 .{ ._, ._, .call, .tmp4d, ._, ._, ._ },86719 .{ ._, ._, .call, .tmp4d, ._, ._, ._ },
86720 .{ ._, ._sd, .mov, .memia(.dst0q, .tmp1, .add_unaligned_size), .tmp5x, ._, ._ },86720 .{ ._, ._sd, .mov, .memia(.dst0q, .tmp1, .add_unaligned_size), .tmp5x, ._, ._ },
86721 .{ ._, ._, .lea, .tmp0p, .leaa(.tmp0, .add_src0_elem_size), ._, ._ },86721 .{ ._, ._, .lea, .tmp0p, .leaa(.tmp0, .add_src0_elem_size), ._, ._ },
...@@ -86749,7 +86749,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -86749,7 +86749,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
86749 .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ },86749 .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ },
86750 .{ ._, ._, .mov, .tmp1p, .sa(.dst0, .sub_unaligned_size), ._, ._ },86750 .{ ._, ._, .mov, .tmp1p, .sa(.dst0, .sub_unaligned_size), ._, ._ },
86751 .{ .@"0:", ._, .mov, .tmp2p, .tmp0p, ._, ._ },86751 .{ .@"0:", ._, .mov, .tmp2p, .tmp0p, ._, ._ },
86752 .{ ._, ._, .mov, .tmp3d, .sa(.src0, .add_8_elem_size), ._, ._ },86752 .{ ._, ._, .mov, .tmp3d, .sa(.src0, .add_bit_size), ._, ._ },
86753 .{ ._, ._, .call, .tmp4d, ._, ._, ._ },86753 .{ ._, ._, .call, .tmp4d, ._, ._, ._ },
86754 .{ ._, ._ps, .movl, .memia(.dst0q, .tmp1, .add_unaligned_size), .tmp5x, ._, ._ },86754 .{ ._, ._ps, .movl, .memia(.dst0q, .tmp1, .add_unaligned_size), .tmp5x, ._, ._ },
86755 .{ ._, ._, .lea, .tmp0p, .leaa(.tmp0, .add_src0_elem_size), ._, ._ },86755 .{ ._, ._, .lea, .tmp0p, .leaa(.tmp0, .add_src0_elem_size), ._, ._ },
...@@ -87050,7 +87050,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -87050,7 +87050,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
87050 .clobbers = .{ .eflags = true, .caller_preserved = .ccc },87050 .clobbers = .{ .eflags = true, .caller_preserved = .ccc },
87051 .each = .{ .once = &.{87051 .each = .{ .once = &.{
87052 .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ },87052 .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ },
87053 .{ ._, ._, .mov, .tmp1d, .sa(.src0, .add_8_size), ._, ._ },87053 .{ ._, ._, .mov, .tmp1d, .sa(.src0, .add_bit_size), ._, ._ },
87054 .{ ._, ._, .call, .tmp2d, ._, ._, ._ },87054 .{ ._, ._, .call, .tmp2d, ._, ._, ._ },
87055 } },87055 } },
87056 }, .{87056 }, .{
...@@ -87078,7 +87078,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -87078,7 +87078,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
87078 .clobbers = .{ .eflags = true, .caller_preserved = .ccc },87078 .clobbers = .{ .eflags = true, .caller_preserved = .ccc },
87079 .each = .{ .once = &.{87079 .each = .{ .once = &.{
87080 .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ },87080 .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ },
87081 .{ ._, ._, .mov, .tmp1d, .sa(.src0, .add_8_size), ._, ._ },87081 .{ ._, ._, .mov, .tmp1d, .sa(.src0, .add_bit_size), ._, ._ },
87082 .{ ._, ._, .call, .tmp2d, ._, ._, ._ },87082 .{ ._, ._, .call, .tmp2d, ._, ._, ._ },
87083 } },87083 } },
87084 }, .{87084 }, .{
...@@ -87721,7 +87721,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -87721,7 +87721,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
87721 .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ },87721 .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ },
87722 .{ ._, ._, .mov, .tmp1p, .sa(.dst0, .sub_unaligned_size), ._, ._ },87722 .{ ._, ._, .mov, .tmp1p, .sa(.dst0, .sub_unaligned_size), ._, ._ },
87723 .{ .@"0:", ._, .mov, .tmp2p, .tmp0p, ._, ._ },87723 .{ .@"0:", ._, .mov, .tmp2p, .tmp0p, ._, ._ },
87724 .{ ._, ._, .mov, .tmp3d, .sa(.src0, .add_8_elem_size), ._, ._ },87724 .{ ._, ._, .mov, .tmp3d, .sa(.src0, .add_bit_size), ._, ._ },
87725 .{ ._, ._, .call, .tmp4d, ._, ._, ._ },87725 .{ ._, ._, .call, .tmp4d, ._, ._, ._ },
87726 .{ .pseudo, .f_cstp, .de, ._, ._, ._, ._ },87726 .{ .pseudo, .f_cstp, .de, ._, ._, ._, ._ },
87727 .{ ._, .f_p, .st, .memia(.dst0t, .tmp1, .add_unaligned_size), ._, ._, ._ },87727 .{ ._, .f_p, .st, .memia(.dst0t, .tmp1, .add_unaligned_size), ._, ._, ._ },
...@@ -87756,7 +87756,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -87756,7 +87756,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
87756 .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ },87756 .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ },
87757 .{ ._, ._, .mov, .tmp1p, .sa(.dst0, .sub_unaligned_size), ._, ._ },87757 .{ ._, ._, .mov, .tmp1p, .sa(.dst0, .sub_unaligned_size), ._, ._ },
87758 .{ .@"0:", ._, .mov, .tmp2p, .tmp0p, ._, ._ },87758 .{ .@"0:", ._, .mov, .tmp2p, .tmp0p, ._, ._ },
87759 .{ ._, ._, .mov, .tmp3d, .sa(.src0, .add_8_elem_size), ._, ._ },87759 .{ ._, ._, .mov, .tmp3d, .sa(.src0, .add_bit_size), ._, ._ },
87760 .{ ._, ._, .call, .tmp4d, ._, ._, ._ },87760 .{ ._, ._, .call, .tmp4d, ._, ._, ._ },
87761 .{ .pseudo, .f_cstp, .de, ._, ._, ._, ._ },87761 .{ .pseudo, .f_cstp, .de, ._, ._, ._, ._ },
87762 .{ ._, .f_p, .st, .memia(.dst0t, .tmp1, .add_unaligned_size), ._, ._, ._ },87762 .{ ._, .f_p, .st, .memia(.dst0t, .tmp1, .add_unaligned_size), ._, ._, ._ },
...@@ -88057,7 +88057,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -88057,7 +88057,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
88057 .clobbers = .{ .eflags = true, .caller_preserved = .ccc },88057 .clobbers = .{ .eflags = true, .caller_preserved = .ccc },
88058 .each = .{ .once = &.{88058 .each = .{ .once = &.{
88059 .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ },88059 .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ },
88060 .{ ._, ._, .mov, .tmp1d, .sa(.src0, .add_8_size), ._, ._ },88060 .{ ._, ._, .mov, .tmp1d, .sa(.src0, .add_bit_size), ._, ._ },
88061 .{ ._, ._, .call, .tmp2d, ._, ._, ._ },88061 .{ ._, ._, .call, .tmp2d, ._, ._, ._ },
88062 } },88062 } },
88063 }, .{88063 }, .{
...@@ -88085,7 +88085,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -88085,7 +88085,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
88085 .clobbers = .{ .eflags = true, .caller_preserved = .ccc },88085 .clobbers = .{ .eflags = true, .caller_preserved = .ccc },
88086 .each = .{ .once = &.{88086 .each = .{ .once = &.{
88087 .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ },88087 .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ },
88088 .{ ._, ._, .mov, .tmp1d, .sa(.src0, .add_8_size), ._, ._ },88088 .{ ._, ._, .mov, .tmp1d, .sa(.src0, .add_bit_size), ._, ._ },
88089 .{ ._, ._, .call, .tmp2d, ._, ._, ._ },88089 .{ ._, ._, .call, .tmp2d, ._, ._, ._ },
88090 } },88090 } },
88091 }, .{88091 }, .{
...@@ -89261,7 +89261,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -89261,7 +89261,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
89261 .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ },89261 .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ },
89262 .{ ._, ._, .mov, .tmp1p, .sa(.dst0, .sub_unaligned_size), ._, ._ },89262 .{ ._, ._, .mov, .tmp1p, .sa(.dst0, .sub_unaligned_size), ._, ._ },
89263 .{ .@"0:", ._, .mov, .tmp2p, .tmp0p, ._, ._ },89263 .{ .@"0:", ._, .mov, .tmp2p, .tmp0p, ._, ._ },
89264 .{ ._, ._, .mov, .tmp3d, .sa(.src0, .add_8_elem_size), ._, ._ },89264 .{ ._, ._, .mov, .tmp3d, .sa(.src0, .add_bit_size), ._, ._ },
89265 .{ ._, ._, .call, .tmp4d, ._, ._, ._ },89265 .{ ._, ._, .call, .tmp4d, ._, ._, ._ },
89266 .{ ._, .v_dqa, .mov, .memia(.dst0x, .tmp1, .add_unaligned_size), .tmp5x, ._, ._ },89266 .{ ._, .v_dqa, .mov, .memia(.dst0x, .tmp1, .add_unaligned_size), .tmp5x, ._, ._ },
89267 .{ ._, ._, .lea, .tmp0p, .leaa(.tmp0, .add_src0_elem_size), ._, ._ },89267 .{ ._, ._, .lea, .tmp0p, .leaa(.tmp0, .add_src0_elem_size), ._, ._ },
...@@ -89295,7 +89295,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -89295,7 +89295,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
89295 .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ },89295 .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ },
89296 .{ ._, ._, .mov, .tmp1p, .sa(.dst0, .sub_unaligned_size), ._, ._ },89296 .{ ._, ._, .mov, .tmp1p, .sa(.dst0, .sub_unaligned_size), ._, ._ },
89297 .{ .@"0:", ._, .mov, .tmp2p, .tmp0p, ._, ._ },89297 .{ .@"0:", ._, .mov, .tmp2p, .tmp0p, ._, ._ },
89298 .{ ._, ._, .mov, .tmp3d, .sa(.src0, .add_8_elem_size), ._, ._ },89298 .{ ._, ._, .mov, .tmp3d, .sa(.src0, .add_bit_size), ._, ._ },
89299 .{ ._, ._, .call, .tmp4d, ._, ._, ._ },89299 .{ ._, ._, .call, .tmp4d, ._, ._, ._ },
89300 .{ ._, ._dqa, .mov, .memia(.dst0x, .tmp1, .add_unaligned_size), .tmp5x, ._, ._ },89300 .{ ._, ._dqa, .mov, .memia(.dst0x, .tmp1, .add_unaligned_size), .tmp5x, ._, ._ },
89301 .{ ._, ._, .lea, .tmp0p, .leaa(.tmp0, .add_src0_elem_size), ._, ._ },89301 .{ ._, ._, .lea, .tmp0p, .leaa(.tmp0, .add_src0_elem_size), ._, ._ },
...@@ -89329,7 +89329,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -89329,7 +89329,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
89329 .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ },89329 .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ },
89330 .{ ._, ._, .mov, .tmp1p, .sa(.dst0, .sub_unaligned_size), ._, ._ },89330 .{ ._, ._, .mov, .tmp1p, .sa(.dst0, .sub_unaligned_size), ._, ._ },
89331 .{ .@"0:", ._, .mov, .tmp2p, .tmp0p, ._, ._ },89331 .{ .@"0:", ._, .mov, .tmp2p, .tmp0p, ._, ._ },
89332 .{ ._, ._, .mov, .tmp3d, .sa(.src0, .add_8_elem_size), ._, ._ },89332 .{ ._, ._, .mov, .tmp3d, .sa(.src0, .add_bit_size), ._, ._ },
89333 .{ ._, ._, .call, .tmp4d, ._, ._, ._ },89333 .{ ._, ._, .call, .tmp4d, ._, ._, ._ },
89334 .{ ._, ._ps, .mova, .memia(.dst0x, .tmp1, .add_unaligned_size), .tmp5x, ._, ._ },89334 .{ ._, ._ps, .mova, .memia(.dst0x, .tmp1, .add_unaligned_size), .tmp5x, ._, ._ },
89335 .{ ._, ._, .lea, .tmp0p, .leaa(.tmp0, .add_src0_elem_size), ._, ._ },89335 .{ ._, ._, .lea, .tmp0p, .leaa(.tmp0, .add_src0_elem_size), ._, ._ },
...@@ -89363,7 +89363,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -89363,7 +89363,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
89363 .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ },89363 .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ },
89364 .{ ._, ._, .mov, .tmp1p, .sa(.dst0, .sub_unaligned_size), ._, ._ },89364 .{ ._, ._, .mov, .tmp1p, .sa(.dst0, .sub_unaligned_size), ._, ._ },
89365 .{ .@"0:", ._, .mov, .tmp2p, .tmp0p, ._, ._ },89365 .{ .@"0:", ._, .mov, .tmp2p, .tmp0p, ._, ._ },
89366 .{ ._, ._, .mov, .tmp3d, .sa(.src0, .add_8_elem_size), ._, ._ },89366 .{ ._, ._, .mov, .tmp3d, .sa(.src0, .add_bit_size), ._, ._ },
89367 .{ ._, ._, .call, .tmp4d, ._, ._, ._ },89367 .{ ._, ._, .call, .tmp4d, ._, ._, ._ },
89368 .{ ._, .v_dqa, .mov, .memia(.dst0x, .tmp1, .add_unaligned_size), .tmp5x, ._, ._ },89368 .{ ._, .v_dqa, .mov, .memia(.dst0x, .tmp1, .add_unaligned_size), .tmp5x, ._, ._ },
89369 .{ ._, ._, .lea, .tmp0p, .leaa(.tmp0, .add_src0_elem_size), ._, ._ },89369 .{ ._, ._, .lea, .tmp0p, .leaa(.tmp0, .add_src0_elem_size), ._, ._ },
...@@ -89397,7 +89397,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -89397,7 +89397,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
89397 .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ },89397 .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ },
89398 .{ ._, ._, .mov, .tmp1p, .sa(.dst0, .sub_unaligned_size), ._, ._ },89398 .{ ._, ._, .mov, .tmp1p, .sa(.dst0, .sub_unaligned_size), ._, ._ },
89399 .{ .@"0:", ._, .mov, .tmp2p, .tmp0p, ._, ._ },89399 .{ .@"0:", ._, .mov, .tmp2p, .tmp0p, ._, ._ },
89400 .{ ._, ._, .mov, .tmp3d, .sa(.src0, .add_8_elem_size), ._, ._ },89400 .{ ._, ._, .mov, .tmp3d, .sa(.src0, .add_bit_size), ._, ._ },
89401 .{ ._, ._, .call, .tmp4d, ._, ._, ._ },89401 .{ ._, ._, .call, .tmp4d, ._, ._, ._ },
89402 .{ ._, ._dqa, .mov, .memia(.dst0x, .tmp1, .add_unaligned_size), .tmp5x, ._, ._ },89402 .{ ._, ._dqa, .mov, .memia(.dst0x, .tmp1, .add_unaligned_size), .tmp5x, ._, ._ },
89403 .{ ._, ._, .lea, .tmp0p, .leaa(.tmp0, .add_src0_elem_size), ._, ._ },89403 .{ ._, ._, .lea, .tmp0p, .leaa(.tmp0, .add_src0_elem_size), ._, ._ },
...@@ -89431,7 +89431,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -89431,7 +89431,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
89431 .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ },89431 .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ },
89432 .{ ._, ._, .mov, .tmp1p, .sa(.dst0, .sub_unaligned_size), ._, ._ },89432 .{ ._, ._, .mov, .tmp1p, .sa(.dst0, .sub_unaligned_size), ._, ._ },
89433 .{ .@"0:", ._, .mov, .tmp2p, .tmp0p, ._, ._ },89433 .{ .@"0:", ._, .mov, .tmp2p, .tmp0p, ._, ._ },
89434 .{ ._, ._, .mov, .tmp3d, .sa(.src0, .add_8_elem_size), ._, ._ },89434 .{ ._, ._, .mov, .tmp3d, .sa(.src0, .add_bit_size), ._, ._ },
89435 .{ ._, ._, .call, .tmp4d, ._, ._, ._ },89435 .{ ._, ._, .call, .tmp4d, ._, ._, ._ },
89436 .{ ._, ._ps, .mova, .memia(.dst0x, .tmp1, .add_unaligned_size), .tmp5x, ._, ._ },89436 .{ ._, ._ps, .mova, .memia(.dst0x, .tmp1, .add_unaligned_size), .tmp5x, ._, ._ },
89437 .{ ._, ._, .lea, .tmp0p, .leaa(.tmp0, .add_src0_elem_size), ._, ._ },89437 .{ ._, ._, .lea, .tmp0p, .leaa(.tmp0, .add_src0_elem_size), ._, ._ },
...@@ -109873,7 +109873,7 @@ fn intInfo(cg: *CodeGen, ty: Type) ?std.builtin.Type.Int {...@@ -109873,7 +109873,7 @@ fn intInfo(cg: *CodeGen, ty: Type) ?std.builtin.Type.Int {
109873 .anyerror => .{ .signedness = .unsigned, .bits = zcu.errorSetBits() },109873 .anyerror => .{ .signedness = .unsigned, .bits = zcu.errorSetBits() },
109874 .isize => .{ .signedness = .signed, .bits = cg.target.ptrBitWidth() },109874 .isize => .{ .signedness = .signed, .bits = cg.target.ptrBitWidth() },
109875 .usize => .{ .signedness = .unsigned, .bits = cg.target.ptrBitWidth() },109875 .usize => .{ .signedness = .unsigned, .bits = cg.target.ptrBitWidth() },
109876 .c_char => .{ .signedness = cg.target.charSignedness(), .bits = cg.target.cTypeBitSize(.char) },109876 .c_char => .{ .signedness = cg.target.cCharSignedness(), .bits = cg.target.cTypeBitSize(.char) },
109877 .c_short => .{ .signedness = .signed, .bits = cg.target.cTypeBitSize(.short) },109877 .c_short => .{ .signedness = .signed, .bits = cg.target.cTypeBitSize(.short) },
109878 .c_ushort => .{ .signedness = .unsigned, .bits = cg.target.cTypeBitSize(.short) },109878 .c_ushort => .{ .signedness = .unsigned, .bits = cg.target.cTypeBitSize(.short) },
109879 .c_int => .{ .signedness = .signed, .bits = cg.target.cTypeBitSize(.int) },109879 .c_int => .{ .signedness = .signed, .bits = cg.target.cTypeBitSize(.int) },
...@@ -114554,7 +114554,7 @@ const Temp = struct {...@@ -114554,7 +114554,7 @@ const Temp = struct {
114554 .{ ._, ._, .lea, .tmp0p, .mem(.dst0), ._, ._ },114554 .{ ._, ._, .lea, .tmp0p, .mem(.dst0), ._, ._ },
114555 .{ ._, ._, .lea, .tmp1p, .mem(.src0), ._, ._ },114555 .{ ._, ._, .lea, .tmp1p, .mem(.src0), ._, ._ },
114556 .{ ._, ._, .lea, .tmp2p, .mem(.src1), ._, ._ },114556 .{ ._, ._, .lea, .tmp2p, .mem(.src1), ._, ._ },
114557 .{ ._, ._, .mov, .tmp3d, .sa(.src0, .add_8_size), ._, ._ },114557 .{ ._, ._, .mov, .tmp3d, .sa(.src0, .add_bit_size), ._, ._ },
114558 .{ ._, ._, .call, .tmp4d, ._, ._, ._ },114558 .{ ._, ._, .call, .tmp4d, ._, ._, ._ },
114559 } },114559 } },
114560 }, .{114560 }, .{
...@@ -114587,7 +114587,7 @@ const Temp = struct {...@@ -114587,7 +114587,7 @@ const Temp = struct {
114587 .{ ._, ._, .lea, .tmp0p, .mem(.dst0), ._, ._ },114587 .{ ._, ._, .lea, .tmp0p, .mem(.dst0), ._, ._ },
114588 .{ ._, ._, .lea, .tmp1p, .mem(.src0), ._, ._ },114588 .{ ._, ._, .lea, .tmp1p, .mem(.src0), ._, ._ },
114589 .{ ._, ._, .lea, .tmp2p, .mem(.src1), ._, ._ },114589 .{ ._, ._, .lea, .tmp2p, .mem(.src1), ._, ._ },
114590 .{ ._, ._, .mov, .tmp3d, .sa(.src0, .add_8_size), ._, ._ },114590 .{ ._, ._, .mov, .tmp3d, .sa(.src0, .add_bit_size), ._, ._ },
114591 .{ ._, ._, .call, .tmp4d, ._, ._, ._ },114591 .{ ._, ._, .call, .tmp4d, ._, ._, ._ },
114592 } },114592 } },
114593 }, .{114593 }, .{
...@@ -115027,7 +115027,7 @@ const Temp = struct {...@@ -115027,7 +115027,7 @@ const Temp = struct {
115027 .{ .@"0:", ._, .lea, .tmp1p, .memia(.dst0, .tmp0, .add_unaligned_size), ._, ._ },115027 .{ .@"0:", ._, .lea, .tmp1p, .memia(.dst0, .tmp0, .add_unaligned_size), ._, ._ },
115028 .{ ._, ._, .lea, .tmp2p, .memia(.src0, .tmp0, .add_unaligned_size), ._, ._ },115028 .{ ._, ._, .lea, .tmp2p, .memia(.src0, .tmp0, .add_unaligned_size), ._, ._ },
115029 .{ ._, ._, .lea, .tmp3p, .memia(.src1, .tmp0, .add_unaligned_size), ._, ._ },115029 .{ ._, ._, .lea, .tmp3p, .memia(.src1, .tmp0, .add_unaligned_size), ._, ._ },
115030 .{ ._, ._, .mov, .tmp4d, .sa(.src0, .add_8_elem_size), ._, ._ },115030 .{ ._, ._, .mov, .tmp4d, .sa(.src0, .add_bit_size), ._, ._ },
115031 .{ ._, ._, .call, .tmp5d, ._, ._, ._ },115031 .{ ._, ._, .call, .tmp5d, ._, ._, ._ },
115032 .{ ._, ._, .add, .tmp0p, .sa(.src0, .add_elem_size), ._, ._ },115032 .{ ._, ._, .add, .tmp0p, .sa(.src0, .add_elem_size), ._, ._ },
115033 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },115033 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
...@@ -115063,7 +115063,7 @@ const Temp = struct {...@@ -115063,7 +115063,7 @@ const Temp = struct {
115063 .{ .@"0:", ._, .lea, .tmp1p, .memia(.dst0, .tmp0, .add_unaligned_size), ._, ._ },115063 .{ .@"0:", ._, .lea, .tmp1p, .memia(.dst0, .tmp0, .add_unaligned_size), ._, ._ },
115064 .{ ._, ._, .lea, .tmp2p, .memia(.src0, .tmp0, .add_unaligned_size), ._, ._ },115064 .{ ._, ._, .lea, .tmp2p, .memia(.src0, .tmp0, .add_unaligned_size), ._, ._ },
115065 .{ ._, ._, .lea, .tmp3p, .memia(.src1, .tmp0, .add_unaligned_size), ._, ._ },115065 .{ ._, ._, .lea, .tmp3p, .memia(.src1, .tmp0, .add_unaligned_size), ._, ._ },
115066 .{ ._, ._, .mov, .tmp4d, .sa(.src0, .add_8_elem_size), ._, ._ },115066 .{ ._, ._, .mov, .tmp4d, .sa(.src0, .add_bit_size), ._, ._ },
115067 .{ ._, ._, .call, .tmp5d, ._, ._, ._ },115067 .{ ._, ._, .call, .tmp5d, ._, ._, ._ },
115068 .{ ._, ._, .add, .tmp0p, .sa(.src0, .add_elem_size), ._, ._ },115068 .{ ._, ._, .add, .tmp0p, .sa(.src0, .add_elem_size), ._, ._ },
115069 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },115069 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
...@@ -116414,7 +116414,6 @@ const Select = struct {...@@ -116414,7 +116414,6 @@ const Select = struct {
116414 const none: Adjust = .{ .sign = .pos, .lhs = .none, .op = .mul, .rhs = .@"1" };116414 const none: Adjust = .{ .sign = .pos, .lhs = .none, .op = .mul, .rhs = .@"1" };
116415 const sub_ptr_size: Adjust = .{ .sign = .neg, .lhs = .ptr_size, .op = .mul, .rhs = .@"1" };116415 const sub_ptr_size: Adjust = .{ .sign = .neg, .lhs = .ptr_size, .op = .mul, .rhs = .@"1" };
116416 const add_ptr_bit_size: Adjust = .{ .sign = .pos, .lhs = .ptr_bit_size, .op = .mul, .rhs = .@"1" };116416 const add_ptr_bit_size: Adjust = .{ .sign = .pos, .lhs = .ptr_bit_size, .op = .mul, .rhs = .@"1" };
116417 const add_8_size: Adjust = .{ .sign = .pos, .lhs = .size, .op = .mul, .rhs = .@"8" };
116418 const add_size: Adjust = .{ .sign = .pos, .lhs = .size, .op = .mul, .rhs = .@"1" };116417 const add_size: Adjust = .{ .sign = .pos, .lhs = .size, .op = .mul, .rhs = .@"1" };
116419 const add_size_div_4: Adjust = .{ .sign = .pos, .lhs = .size, .op = .div, .rhs = .@"4" };116418 const add_size_div_4: Adjust = .{ .sign = .pos, .lhs = .size, .op = .div, .rhs = .@"4" };
116420 const add_size_div_8: Adjust = .{ .sign = .pos, .lhs = .size, .op = .div, .rhs = .@"8" };116419 const add_size_div_8: Adjust = .{ .sign = .pos, .lhs = .size, .op = .div, .rhs = .@"8" };
...@@ -116446,7 +116445,6 @@ const Select = struct {...@@ -116446,7 +116445,6 @@ const Select = struct {
116446 const add_2_len: Adjust = .{ .sign = .pos, .lhs = .len, .op = .mul, .rhs = .@"2" };116445 const add_2_len: Adjust = .{ .sign = .pos, .lhs = .len, .op = .mul, .rhs = .@"2" };
116447 const add_len: Adjust = .{ .sign = .pos, .lhs = .len, .op = .mul, .rhs = .@"1" };116446 const add_len: Adjust = .{ .sign = .pos, .lhs = .len, .op = .mul, .rhs = .@"1" };
116448 const sub_len: Adjust = .{ .sign = .neg, .lhs = .len, .op = .mul, .rhs = .@"1" };116447 const sub_len: Adjust = .{ .sign = .neg, .lhs = .len, .op = .mul, .rhs = .@"1" };
116449 const add_8_elem_size: Adjust = .{ .sign = .pos, .lhs = .elem_size, .op = .mul, .rhs = .@"8" };
116450 const add_elem_size: Adjust = .{ .sign = .pos, .lhs = .elem_size, .op = .mul, .rhs = .@"1" };116448 const add_elem_size: Adjust = .{ .sign = .pos, .lhs = .elem_size, .op = .mul, .rhs = .@"1" };
116451 const add_elem_size_div_8: Adjust = .{ .sign = .pos, .lhs = .elem_size, .op = .div, .rhs = .@"8" };116449 const add_elem_size_div_8: Adjust = .{ .sign = .pos, .lhs = .elem_size, .op = .div, .rhs = .@"8" };
116452 const sub_elem_size_div_8: Adjust = .{ .sign = .neg, .lhs = .elem_size, .op = .div, .rhs = .@"8" };116450 const sub_elem_size_div_8: Adjust = .{ .sign = .neg, .lhs = .elem_size, .op = .div, .rhs = .@"8" };
src/codegen/c/Type.zig+7-8
...@@ -78,7 +78,7 @@ pub fn isInteger(ctype: CType) bool {...@@ -78,7 +78,7 @@ pub fn isInteger(ctype: CType) bool {
7878
79pub fn signedness(ctype: CType, mod: *Module) std.builtin.Signedness {79pub fn signedness(ctype: CType, mod: *Module) std.builtin.Signedness {
80 return switch (ctype.index) {80 return switch (ctype.index) {
81 .char => mod.resolved_target.result.charSignedness(),81 .char => mod.resolved_target.result.cCharSignedness(),
82 .@"signed char",82 .@"signed char",
83 .short,83 .short,
84 .int,84 .int,
...@@ -1319,10 +1319,9 @@ pub const Pool = struct {...@@ -1319,10 +1319,9 @@ pub const Pool = struct {
1319 },1319 },
1320 else => {1320 else => {
1321 const target = &mod.resolved_target.result;1321 const target = &mod.resolved_target.result;
1322 const abi_align = Type.intAbiAlignment(int_info.bits, target.*);1322 const abi_align_bytes = std.zig.target.intAlignment(target.*, int_info.bits);
1323 const abi_align_bytes = abi_align.toByteUnits().?;
1324 const array_ctype = try pool.getArray(allocator, .{1323 const array_ctype = try pool.getArray(allocator, .{
1325 .len = @divExact(Type.intAbiSize(int_info.bits, target.*), abi_align_bytes),1324 .len = @divExact(std.zig.target.intByteSize(target.*, int_info.bits), abi_align_bytes),
1326 .elem_ctype = try pool.fromIntInfo(allocator, .{1325 .elem_ctype = try pool.fromIntInfo(allocator, .{
1327 .signedness = .unsigned,1326 .signedness = .unsigned,
1328 .bits = @intCast(abi_align_bytes * 8),1327 .bits = @intCast(abi_align_bytes * 8),
...@@ -1333,7 +1332,7 @@ pub const Pool = struct {...@@ -1333,7 +1332,7 @@ pub const Pool = struct {
1333 .{1332 .{
1334 .name = .{ .index = .array },1333 .name = .{ .index = .array },
1335 .ctype = array_ctype,1334 .ctype = array_ctype,
1336 .alignas = AlignAs.fromAbiAlignment(abi_align),1335 .alignas = AlignAs.fromAbiAlignment(.fromByteUnits(abi_align_bytes)),
1337 },1336 },
1338 };1337 };
1339 return pool.fromFields(allocator, .@"struct", &fields, kind);1338 return pool.fromFields(allocator, .@"struct", &fields, kind);
...@@ -1437,7 +1436,7 @@ pub const Pool = struct {...@@ -1437,7 +1436,7 @@ pub const Pool = struct {
1437 .name = .{ .index = .len },1436 .name = .{ .index = .len },
1438 .ctype = .usize,1437 .ctype = .usize,
1439 .alignas = AlignAs.fromAbiAlignment(1438 .alignas = AlignAs.fromAbiAlignment(
1440 Type.intAbiAlignment(target.ptrBitWidth(), target.*),1439 .fromByteUnits(std.zig.target.intAlignment(target.*, target.ptrBitWidth())),
1441 ),1440 ),
1442 },1441 },
1443 };1442 };
...@@ -1937,7 +1936,7 @@ pub const Pool = struct {...@@ -1937,7 +1936,7 @@ pub const Pool = struct {
1937 .name = .{ .index = .len },1936 .name = .{ .index = .len },
1938 .ctype = .usize,1937 .ctype = .usize,
1939 .alignas = AlignAs.fromAbiAlignment(1938 .alignas = AlignAs.fromAbiAlignment(
1940 Type.intAbiAlignment(target.ptrBitWidth(), target.*),1939 .fromByteUnits(std.zig.target.intAlignment(target.*, target.ptrBitWidth())),
1941 ),1940 ),
1942 },1941 },
1943 };1942 };
...@@ -2057,7 +2056,7 @@ pub const Pool = struct {...@@ -2057,7 +2056,7 @@ pub const Pool = struct {
2057 .name = .{ .index = .@"error" },2056 .name = .{ .index = .@"error" },
2058 .ctype = error_set_ctype,2057 .ctype = error_set_ctype,
2059 .alignas = AlignAs.fromAbiAlignment(2058 .alignas = AlignAs.fromAbiAlignment(
2060 Type.intAbiAlignment(error_set_bits, target.*),2059 .fromByteUnits(std.zig.target.intAlignment(target.*, error_set_bits)),
2061 ),2060 ),
2062 },2061 },
2063 .{2062 .{
src/link/C.zig+1-1
...@@ -396,7 +396,7 @@ fn abiDefines(self: *C, target: std.Target) !std.ArrayList(u8) {...@@ -396,7 +396,7 @@ fn abiDefines(self: *C, target: std.Target) !std.ArrayList(u8) {
396 else => {},396 else => {},
397 }397 }
398 try writer.print("#define ZIG_TARGET_MAX_INT_ALIGNMENT {d}\n", .{398 try writer.print("#define ZIG_TARGET_MAX_INT_ALIGNMENT {d}\n", .{
399 Type.maxIntAlignment(target),399 target.cMaxIntAlignment(),
400 });400 });
401 return defines;401 return defines;
402}402}