authorgravatar for jacobly@ziglang.orgJacob Young <jacobly@ziglang.org> 2025-09-27 17:48:31-04:00
committergravatar for jacobly@ziglang.orgJacob Young <jacobly@ziglang.org> 2025-09-27 18:30:52-04:00
logb206b0626ae8e4fd1c50097d2f376890a48d4518
tree77b03dfcbd1f6507360ab176c14bfcc2f3ebaccc
parent237e8a5a7a9b1b007f177198a52eeb99fb5d1b43

x86_64: fix `@floatFromInt` miscomps


1 files changed, 51 insertions(+), 44 deletions(-)

src/codegen/x86_64/CodeGen.zig+51-44
...@@ -112419,7 +112419,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -112419,7 +112419,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
112419 .dst_temps = .{ .mem, .unused },112419 .dst_temps = .{ .mem, .unused },
112420 .clobbers = .{ .eflags = true },112420 .clobbers = .{ .eflags = true },
112421 .each = .{ .once = &.{112421 .each = .{ .once = &.{
112422 .{ ._, ._, .mov, .tmp0d, .sia(-8, .src0, .add_size), ._, ._ },112422 .{ ._, ._, .mov, .tmp0d, .sia(-8, .src0, .add_unaligned_size_up_8), ._, ._ },
112423 .{ .@"0:", .vp_d, .movsxb, .tmp1y, .memi(.src0q, .tmp0), ._, ._ },112423 .{ .@"0:", .vp_d, .movsxb, .tmp1y, .memi(.src0q, .tmp0), ._, ._ },
112424 .{ ._, .v_ps, .cvtdq2, .tmp1y, .tmp1y, ._, ._ },112424 .{ ._, .v_ps, .cvtdq2, .tmp1y, .tmp1y, ._, ._ },
112425 .{ ._, .v_, .cvtps2ph, .memsi(.dst0x, .@"2", .tmp0), .tmp1y, .rm(.{}), ._ },112425 .{ ._, .v_, .cvtps2ph, .memsi(.dst0x, .@"2", .tmp0), .tmp1y, .rm(.{}), ._ },
...@@ -112449,7 +112449,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -112449,7 +112449,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
112449 .dst_temps = .{ .mem, .unused },112449 .dst_temps = .{ .mem, .unused },
112450 .clobbers = .{ .eflags = true },112450 .clobbers = .{ .eflags = true },
112451 .each = .{ .once = &.{112451 .each = .{ .once = &.{
112452 .{ ._, ._, .mov, .tmp0d, .sia(-4, .src0, .add_size), ._, ._ },112452 .{ ._, ._, .mov, .tmp0d, .sia(-4, .src0, .add_unaligned_size_up_4), ._, ._ },
112453 .{ .@"0:", .vp_d, .movsxb, .tmp1x, .memi(.src0d, .tmp0), ._, ._ },112453 .{ .@"0:", .vp_d, .movsxb, .tmp1x, .memi(.src0d, .tmp0), ._, ._ },
112454 .{ ._, .v_ps, .cvtdq2, .tmp1x, .tmp1x, ._, ._ },112454 .{ ._, .v_ps, .cvtdq2, .tmp1x, .tmp1x, ._, ._ },
112455 .{ ._, .v_, .cvtps2ph, .memsi(.dst0q, .@"2", .tmp0), .tmp1x, .rm(.{}), ._ },112455 .{ ._, .v_, .cvtps2ph, .memsi(.dst0q, .@"2", .tmp0), .tmp1x, .rm(.{}), ._ },
...@@ -112479,7 +112479,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -112479,7 +112479,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
112479 .dst_temps = .{ .mem, .unused },112479 .dst_temps = .{ .mem, .unused },
112480 .clobbers = .{ .eflags = true },112480 .clobbers = .{ .eflags = true },
112481 .each = .{ .once = &.{112481 .each = .{ .once = &.{
112482 .{ ._, ._, .mov, .tmp0d, .sia(-8, .src0, .add_size), ._, ._ },112482 .{ ._, ._, .mov, .tmp0d, .sia(-8, .src0, .add_unaligned_size_up_8), ._, ._ },
112483 .{ .@"0:", .vp_d, .movzxb, .tmp1y, .memi(.src0q, .tmp0), ._, ._ },112483 .{ .@"0:", .vp_d, .movzxb, .tmp1y, .memi(.src0q, .tmp0), ._, ._ },
112484 .{ ._, .v_ps, .cvtdq2, .tmp1y, .tmp1y, ._, ._ },112484 .{ ._, .v_ps, .cvtdq2, .tmp1y, .tmp1y, ._, ._ },
112485 .{ ._, .v_, .cvtps2ph, .memsi(.dst0x, .@"2", .tmp0), .tmp1y, .rm(.{}), ._ },112485 .{ ._, .v_, .cvtps2ph, .memsi(.dst0x, .@"2", .tmp0), .tmp1y, .rm(.{}), ._ },
...@@ -112509,7 +112509,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -112509,7 +112509,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
112509 .dst_temps = .{ .mem, .unused },112509 .dst_temps = .{ .mem, .unused },
112510 .clobbers = .{ .eflags = true },112510 .clobbers = .{ .eflags = true },
112511 .each = .{ .once = &.{112511 .each = .{ .once = &.{
112512 .{ ._, ._, .mov, .tmp0d, .sia(-4, .src0, .add_size), ._, ._ },112512 .{ ._, ._, .mov, .tmp0d, .sia(-4, .src0, .add_unaligned_size_up_4), ._, ._ },
112513 .{ .@"0:", .vp_d, .movzxb, .tmp1x, .memi(.src0d, .tmp0), ._, ._ },112513 .{ .@"0:", .vp_d, .movzxb, .tmp1x, .memi(.src0d, .tmp0), ._, ._ },
112514 .{ ._, .v_ps, .cvtdq2, .tmp1x, .tmp1x, ._, ._ },112514 .{ ._, .v_ps, .cvtdq2, .tmp1x, .tmp1x, ._, ._ },
112515 .{ ._, .v_, .cvtps2ph, .memsi(.dst0q, .@"2", .tmp0), .tmp1x, .rm(.{}), ._ },112515 .{ ._, .v_, .cvtps2ph, .memsi(.dst0q, .@"2", .tmp0), .tmp1x, .rm(.{}), ._ },
...@@ -113103,7 +113103,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -113103,7 +113103,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
113103 .dst_temps = .{ .mem, .unused },113103 .dst_temps = .{ .mem, .unused },
113104 .clobbers = .{ .eflags = true },113104 .clobbers = .{ .eflags = true },
113105 .each = .{ .once = &.{113105 .each = .{ .once = &.{
113106 .{ ._, ._, .mov, .tmp0d, .sia(-16, .src0, .add_size), ._, ._ },113106 .{ ._, ._, .mov, .tmp0d, .sia(-16, .src0, .add_unaligned_size_up_16), ._, ._ },
113107 .{ .@"0:", .vp_d, .movsxw, .tmp1y, .memi(.src0x, .tmp0), ._, ._ },113107 .{ .@"0:", .vp_d, .movsxw, .tmp1y, .memi(.src0x, .tmp0), ._, ._ },
113108 .{ ._, .v_ps, .cvtdq2, .tmp1y, .tmp1y, ._, ._ },113108 .{ ._, .v_ps, .cvtdq2, .tmp1y, .tmp1y, ._, ._ },
113109 .{ ._, .v_, .cvtps2ph, .memi(.dst0x, .tmp0), .tmp1y, .rm(.{}), ._ },113109 .{ ._, .v_, .cvtps2ph, .memi(.dst0x, .tmp0), .tmp1y, .rm(.{}), ._ },
...@@ -113133,7 +113133,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -113133,7 +113133,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
113133 .dst_temps = .{ .mem, .unused },113133 .dst_temps = .{ .mem, .unused },
113134 .clobbers = .{ .eflags = true },113134 .clobbers = .{ .eflags = true },
113135 .each = .{ .once = &.{113135 .each = .{ .once = &.{
113136 .{ ._, ._, .mov, .tmp0d, .sia(-8, .src0, .add_size), ._, ._ },113136 .{ ._, ._, .mov, .tmp0d, .sia(-8, .src0, .add_unaligned_size_up_8), ._, ._ },
113137 .{ .@"0:", .vp_d, .movsxw, .tmp1x, .memi(.src0q, .tmp0), ._, ._ },113137 .{ .@"0:", .vp_d, .movsxw, .tmp1x, .memi(.src0q, .tmp0), ._, ._ },
113138 .{ ._, .v_ps, .cvtdq2, .tmp1x, .tmp1x, ._, ._ },113138 .{ ._, .v_ps, .cvtdq2, .tmp1x, .tmp1x, ._, ._ },
113139 .{ ._, .v_, .cvtps2ph, .memi(.dst0q, .tmp0), .tmp1x, .rm(.{}), ._ },113139 .{ ._, .v_, .cvtps2ph, .memi(.dst0q, .tmp0), .tmp1x, .rm(.{}), ._ },
...@@ -113163,7 +113163,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -113163,7 +113163,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
113163 .dst_temps = .{ .mem, .unused },113163 .dst_temps = .{ .mem, .unused },
113164 .clobbers = .{ .eflags = true },113164 .clobbers = .{ .eflags = true },
113165 .each = .{ .once = &.{113165 .each = .{ .once = &.{
113166 .{ ._, ._, .mov, .tmp0d, .sia(-16, .src0, .add_size), ._, ._ },113166 .{ ._, ._, .mov, .tmp0d, .sia(-16, .src0, .add_unaligned_size_up_16), ._, ._ },
113167 .{ .@"0:", .vp_d, .movzxw, .tmp1y, .memi(.src0x, .tmp0), ._, ._ },113167 .{ .@"0:", .vp_d, .movzxw, .tmp1y, .memi(.src0x, .tmp0), ._, ._ },
113168 .{ ._, .v_ps, .cvtdq2, .tmp1y, .tmp1y, ._, ._ },113168 .{ ._, .v_ps, .cvtdq2, .tmp1y, .tmp1y, ._, ._ },
113169 .{ ._, .v_, .cvtps2ph, .memi(.dst0x, .tmp0), .tmp1y, .rm(.{}), ._ },113169 .{ ._, .v_, .cvtps2ph, .memi(.dst0x, .tmp0), .tmp1y, .rm(.{}), ._ },
...@@ -113193,7 +113193,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -113193,7 +113193,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
113193 .dst_temps = .{ .mem, .unused },113193 .dst_temps = .{ .mem, .unused },
113194 .clobbers = .{ .eflags = true },113194 .clobbers = .{ .eflags = true },
113195 .each = .{ .once = &.{113195 .each = .{ .once = &.{
113196 .{ ._, ._, .mov, .tmp0d, .sia(-8, .src0, .add_size), ._, ._ },113196 .{ ._, ._, .mov, .tmp0d, .sia(-8, .src0, .add_unaligned_size_up_8), ._, ._ },
113197 .{ .@"0:", .vp_d, .movzxw, .tmp1x, .memi(.src0q, .tmp0), ._, ._ },113197 .{ .@"0:", .vp_d, .movzxw, .tmp1x, .memi(.src0q, .tmp0), ._, ._ },
113198 .{ ._, .v_ps, .cvtdq2, .tmp1x, .tmp1x, ._, ._ },113198 .{ ._, .v_ps, .cvtdq2, .tmp1x, .tmp1x, ._, ._ },
113199 .{ ._, .v_, .cvtps2ph, .memi(.dst0q, .tmp0), .tmp1x, .rm(.{}), ._ },113199 .{ ._, .v_, .cvtps2ph, .memi(.dst0q, .tmp0), .tmp1x, .rm(.{}), ._ },
...@@ -113503,7 +113503,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -113503,7 +113503,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
113503 .dst_temps = .{ .mem, .unused },113503 .dst_temps = .{ .mem, .unused },
113504 .clobbers = .{ .eflags = true },113504 .clobbers = .{ .eflags = true },
113505 .each = .{ .once = &.{113505 .each = .{ .once = &.{
113506 .{ ._, ._, .mov, .tmp0d, .sia(-16, .dst0, .add_size), ._, ._ },113506 .{ ._, ._, .mov, .tmp0d, .sia(-16, .dst0, .add_unaligned_size_up_16), ._, ._ },
113507 .{ .@"0:", .v_ps, .cvtdq2, .tmp1y, .memsi(.src0y, .@"2", .tmp0), ._, ._ },113507 .{ .@"0:", .v_ps, .cvtdq2, .tmp1y, .memsi(.src0y, .@"2", .tmp0), ._, ._ },
113508 .{ ._, .v_, .cvtps2ph, .memi(.dst0x, .tmp0), .tmp1y, .rm(.{}), ._ },113508 .{ ._, .v_, .cvtps2ph, .memi(.dst0x, .tmp0), .tmp1y, .rm(.{}), ._ },
113509 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },113509 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
...@@ -113532,7 +113532,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -113532,7 +113532,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
113532 .dst_temps = .{ .mem, .unused },113532 .dst_temps = .{ .mem, .unused },
113533 .clobbers = .{ .eflags = true },113533 .clobbers = .{ .eflags = true },
113534 .each = .{ .once = &.{113534 .each = .{ .once = &.{
113535 .{ ._, ._, .mov, .tmp0d, .sia(-8, .dst0, .add_size), ._, ._ },113535 .{ ._, ._, .mov, .tmp0d, .sia(-8, .dst0, .add_unaligned_size_up_8), ._, ._ },
113536 .{ .@"0:", .v_ps, .cvtdq2, .tmp1x, .memsi(.src0x, .@"2", .tmp0), ._, ._ },113536 .{ .@"0:", .v_ps, .cvtdq2, .tmp1x, .memsi(.src0x, .@"2", .tmp0), ._, ._ },
113537 .{ ._, .v_, .cvtps2ph, .memi(.dst0q, .tmp0), .tmp1x, .rm(.{}), ._ },113537 .{ ._, .v_, .cvtps2ph, .memi(.dst0q, .tmp0), .tmp1x, .rm(.{}), ._ },
113538 .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ },113538 .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ },
...@@ -115546,7 +115546,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -115546,7 +115546,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
115546 .dst_temps = .{ .mem, .unused },115546 .dst_temps = .{ .mem, .unused },
115547 .clobbers = .{ .eflags = true },115547 .clobbers = .{ .eflags = true },
115548 .each = .{ .once = &.{115548 .each = .{ .once = &.{
115549 .{ ._, ._, .mov, .tmp0d, .sia(-8, .src0, .add_size), ._, ._ },115549 .{ ._, ._, .mov, .tmp0d, .sia(-8, .src0, .add_unaligned_size_up_8), ._, ._ },
115550 .{ .@"0:", .vp_d, .movsxb, .tmp1y, .memi(.src0q, .tmp0), ._, ._ },115550 .{ .@"0:", .vp_d, .movsxb, .tmp1y, .memi(.src0q, .tmp0), ._, ._ },
115551 .{ ._, .v_ps, .cvtdq2, .tmp1y, .tmp1y, ._, ._ },115551 .{ ._, .v_ps, .cvtdq2, .tmp1y, .tmp1y, ._, ._ },
115552 .{ ._, .v_ps, .mova, .memsi(.dst0y, .@"4", .tmp0), .tmp1y, ._, ._ },115552 .{ ._, .v_ps, .mova, .memsi(.dst0y, .@"4", .tmp0), .tmp1y, ._, ._ },
...@@ -115576,7 +115576,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -115576,7 +115576,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
115576 .dst_temps = .{ .mem, .unused },115576 .dst_temps = .{ .mem, .unused },
115577 .clobbers = .{ .eflags = true },115577 .clobbers = .{ .eflags = true },
115578 .each = .{ .once = &.{115578 .each = .{ .once = &.{
115579 .{ ._, ._, .mov, .tmp0d, .sia(-4, .src0, .add_size), ._, ._ },115579 .{ ._, ._, .mov, .tmp0d, .sia(-4, .src0, .add_unaligned_size_up_4), ._, ._ },
115580 .{ .@"0:", .vp_d, .movsxb, .tmp1x, .memi(.src0d, .tmp0), ._, ._ },115580 .{ .@"0:", .vp_d, .movsxb, .tmp1x, .memi(.src0d, .tmp0), ._, ._ },
115581 .{ ._, .v_ps, .cvtdq2, .tmp1x, .tmp1x, ._, ._ },115581 .{ ._, .v_ps, .cvtdq2, .tmp1x, .tmp1x, ._, ._ },
115582 .{ ._, .v_ps, .mova, .memsi(.dst0x, .@"4", .tmp0), .tmp1x, ._, ._ },115582 .{ ._, .v_ps, .mova, .memsi(.dst0x, .@"4", .tmp0), .tmp1x, ._, ._ },
...@@ -115606,7 +115606,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -115606,7 +115606,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
115606 .dst_temps = .{ .mem, .unused },115606 .dst_temps = .{ .mem, .unused },
115607 .clobbers = .{ .eflags = true },115607 .clobbers = .{ .eflags = true },
115608 .each = .{ .once = &.{115608 .each = .{ .once = &.{
115609 .{ ._, ._, .mov, .tmp0d, .sia(-4, .src0, .add_size), ._, ._ },115609 .{ ._, ._, .mov, .tmp0d, .sia(-4, .src0, .add_unaligned_size_up_4), ._, ._ },
115610 .{ .@"0:", .p_d, .movsxb, .tmp1x, .memi(.src0d, .tmp0), ._, ._ },115610 .{ .@"0:", .p_d, .movsxb, .tmp1x, .memi(.src0d, .tmp0), ._, ._ },
115611 .{ ._, ._ps, .cvtdq2, .tmp1x, .tmp1x, ._, ._ },115611 .{ ._, ._ps, .cvtdq2, .tmp1x, .tmp1x, ._, ._ },
115612 .{ ._, ._ps, .mova, .memsi(.dst0x, .@"4", .tmp0), .tmp1x, ._, ._ },115612 .{ ._, ._ps, .mova, .memsi(.dst0x, .@"4", .tmp0), .tmp1x, ._, ._ },
...@@ -115636,7 +115636,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -115636,7 +115636,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
115636 .dst_temps = .{ .mem, .unused },115636 .dst_temps = .{ .mem, .unused },
115637 .clobbers = .{ .eflags = true },115637 .clobbers = .{ .eflags = true },
115638 .each = .{ .once = &.{115638 .each = .{ .once = &.{
115639 .{ ._, ._, .mov, .tmp0d, .sia(-8, .src0, .add_size), ._, ._ },115639 .{ ._, ._, .mov, .tmp0d, .sia(-8, .src0, .add_unaligned_size_up_8), ._, ._ },
115640 .{ .@"0:", .vp_d, .movzxb, .tmp1y, .memi(.src0q, .tmp0), ._, ._ },115640 .{ .@"0:", .vp_d, .movzxb, .tmp1y, .memi(.src0q, .tmp0), ._, ._ },
115641 .{ ._, .v_ps, .cvtdq2, .tmp1y, .tmp1y, ._, ._ },115641 .{ ._, .v_ps, .cvtdq2, .tmp1y, .tmp1y, ._, ._ },
115642 .{ ._, .v_ps, .mova, .memsi(.dst0y, .@"4", .tmp0), .tmp1y, ._, ._ },115642 .{ ._, .v_ps, .mova, .memsi(.dst0y, .@"4", .tmp0), .tmp1y, ._, ._ },
...@@ -115666,7 +115666,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -115666,7 +115666,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
115666 .dst_temps = .{ .mem, .unused },115666 .dst_temps = .{ .mem, .unused },
115667 .clobbers = .{ .eflags = true },115667 .clobbers = .{ .eflags = true },
115668 .each = .{ .once = &.{115668 .each = .{ .once = &.{
115669 .{ ._, ._, .mov, .tmp0d, .sia(-4, .src0, .add_size), ._, ._ },115669 .{ ._, ._, .mov, .tmp0d, .sia(-4, .src0, .add_unaligned_size_up_4), ._, ._ },
115670 .{ .@"0:", .vp_d, .movzxb, .tmp1x, .memi(.src0d, .tmp0), ._, ._ },115670 .{ .@"0:", .vp_d, .movzxb, .tmp1x, .memi(.src0d, .tmp0), ._, ._ },
115671 .{ ._, .v_ps, .cvtdq2, .tmp1x, .tmp1x, ._, ._ },115671 .{ ._, .v_ps, .cvtdq2, .tmp1x, .tmp1x, ._, ._ },
115672 .{ ._, .v_ps, .mova, .memsi(.dst0x, .@"4", .tmp0), .tmp1x, ._, ._ },115672 .{ ._, .v_ps, .mova, .memsi(.dst0x, .@"4", .tmp0), .tmp1x, ._, ._ },
...@@ -115696,7 +115696,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -115696,7 +115696,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
115696 .dst_temps = .{ .mem, .unused },115696 .dst_temps = .{ .mem, .unused },
115697 .clobbers = .{ .eflags = true },115697 .clobbers = .{ .eflags = true },
115698 .each = .{ .once = &.{115698 .each = .{ .once = &.{
115699 .{ ._, ._, .mov, .tmp0d, .sia(-4, .src0, .add_size), ._, ._ },115699 .{ ._, ._, .mov, .tmp0d, .sia(-4, .src0, .add_unaligned_size_up_4), ._, ._ },
115700 .{ .@"0:", .p_d, .movzxb, .tmp1x, .memi(.src0d, .tmp0), ._, ._ },115700 .{ .@"0:", .p_d, .movzxb, .tmp1x, .memi(.src0d, .tmp0), ._, ._ },
115701 .{ ._, ._ps, .cvtdq2, .tmp1x, .tmp1x, ._, ._ },115701 .{ ._, ._ps, .cvtdq2, .tmp1x, .tmp1x, ._, ._ },
115702 .{ ._, ._ps, .mova, .memsi(.dst0x, .@"4", .tmp0), .tmp1x, ._, ._ },115702 .{ ._, ._ps, .mova, .memsi(.dst0x, .@"4", .tmp0), .tmp1x, ._, ._ },
...@@ -116052,7 +116052,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -116052,7 +116052,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
116052 .dst_temps = .{ .mem, .unused },116052 .dst_temps = .{ .mem, .unused },
116053 .clobbers = .{ .eflags = true },116053 .clobbers = .{ .eflags = true },
116054 .each = .{ .once = &.{116054 .each = .{ .once = &.{
116055 .{ ._, ._, .mov, .tmp0d, .sia(-16, .src0, .add_size), ._, ._ },116055 .{ ._, ._, .mov, .tmp0d, .sia(-16, .src0, .add_unaligned_size_up_16), ._, ._ },
116056 .{ .@"0:", .vp_d, .movsxw, .tmp1y, .memi(.src0x, .tmp0), ._, ._ },116056 .{ .@"0:", .vp_d, .movsxw, .tmp1y, .memi(.src0x, .tmp0), ._, ._ },
116057 .{ ._, .v_ps, .cvtdq2, .tmp1y, .tmp1y, ._, ._ },116057 .{ ._, .v_ps, .cvtdq2, .tmp1y, .tmp1y, ._, ._ },
116058 .{ ._, .v_ps, .mova, .memsi(.dst0y, .@"2", .tmp0), .tmp1y, ._, ._ },116058 .{ ._, .v_ps, .mova, .memsi(.dst0y, .@"2", .tmp0), .tmp1y, ._, ._ },
...@@ -116082,7 +116082,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -116082,7 +116082,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
116082 .dst_temps = .{ .mem, .unused },116082 .dst_temps = .{ .mem, .unused },
116083 .clobbers = .{ .eflags = true },116083 .clobbers = .{ .eflags = true },
116084 .each = .{ .once = &.{116084 .each = .{ .once = &.{
116085 .{ ._, ._, .mov, .tmp0d, .sia(-8, .src0, .add_size), ._, ._ },116085 .{ ._, ._, .mov, .tmp0d, .sia(-8, .src0, .add_unaligned_size_up_8), ._, ._ },
116086 .{ .@"0:", .vp_d, .movsxw, .tmp1x, .memi(.src0q, .tmp0), ._, ._ },116086 .{ .@"0:", .vp_d, .movsxw, .tmp1x, .memi(.src0q, .tmp0), ._, ._ },
116087 .{ ._, .v_ps, .cvtdq2, .tmp1x, .tmp1x, ._, ._ },116087 .{ ._, .v_ps, .cvtdq2, .tmp1x, .tmp1x, ._, ._ },
116088 .{ ._, .v_ps, .mova, .memsi(.dst0x, .@"2", .tmp0), .tmp1x, ._, ._ },116088 .{ ._, .v_ps, .mova, .memsi(.dst0x, .@"2", .tmp0), .tmp1x, ._, ._ },
...@@ -116112,7 +116112,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -116112,7 +116112,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
116112 .dst_temps = .{ .mem, .unused },116112 .dst_temps = .{ .mem, .unused },
116113 .clobbers = .{ .eflags = true },116113 .clobbers = .{ .eflags = true },
116114 .each = .{ .once = &.{116114 .each = .{ .once = &.{
116115 .{ ._, ._, .mov, .tmp0d, .sia(-8, .src0, .add_size), ._, ._ },116115 .{ ._, ._, .mov, .tmp0d, .sia(-8, .src0, .add_unaligned_size_up_8), ._, ._ },
116116 .{ .@"0:", .p_d, .movsxw, .tmp1x, .memi(.src0q, .tmp0), ._, ._ },116116 .{ .@"0:", .p_d, .movsxw, .tmp1x, .memi(.src0q, .tmp0), ._, ._ },
116117 .{ ._, ._ps, .cvtdq2, .tmp1x, .tmp1x, ._, ._ },116117 .{ ._, ._ps, .cvtdq2, .tmp1x, .tmp1x, ._, ._ },
116118 .{ ._, ._ps, .mova, .memsi(.dst0x, .@"2", .tmp0), .tmp1x, ._, ._ },116118 .{ ._, ._ps, .mova, .memsi(.dst0x, .@"2", .tmp0), .tmp1x, ._, ._ },
...@@ -116142,7 +116142,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -116142,7 +116142,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
116142 .dst_temps = .{ .mem, .unused },116142 .dst_temps = .{ .mem, .unused },
116143 .clobbers = .{ .eflags = true },116143 .clobbers = .{ .eflags = true },
116144 .each = .{ .once = &.{116144 .each = .{ .once = &.{
116145 .{ ._, ._, .mov, .tmp0d, .sia(-16, .src0, .add_size), ._, ._ },116145 .{ ._, ._, .mov, .tmp0d, .sia(-16, .src0, .add_unaligned_size_up_16), ._, ._ },
116146 .{ .@"0:", .vp_d, .movzxw, .tmp1y, .memi(.src0x, .tmp0), ._, ._ },116146 .{ .@"0:", .vp_d, .movzxw, .tmp1y, .memi(.src0x, .tmp0), ._, ._ },
116147 .{ ._, .v_ps, .cvtdq2, .tmp1y, .tmp1y, ._, ._ },116147 .{ ._, .v_ps, .cvtdq2, .tmp1y, .tmp1y, ._, ._ },
116148 .{ ._, .v_ps, .mova, .memsi(.dst0y, .@"2", .tmp0), .tmp1y, ._, ._ },116148 .{ ._, .v_ps, .mova, .memsi(.dst0y, .@"2", .tmp0), .tmp1y, ._, ._ },
...@@ -116172,7 +116172,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -116172,7 +116172,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
116172 .dst_temps = .{ .mem, .unused },116172 .dst_temps = .{ .mem, .unused },
116173 .clobbers = .{ .eflags = true },116173 .clobbers = .{ .eflags = true },
116174 .each = .{ .once = &.{116174 .each = .{ .once = &.{
116175 .{ ._, ._, .mov, .tmp0d, .sia(-8, .src0, .add_size), ._, ._ },116175 .{ ._, ._, .mov, .tmp0d, .sia(-8, .src0, .add_unaligned_size_up_8), ._, ._ },
116176 .{ .@"0:", .vp_d, .movzxw, .tmp1x, .memi(.src0q, .tmp0), ._, ._ },116176 .{ .@"0:", .vp_d, .movzxw, .tmp1x, .memi(.src0q, .tmp0), ._, ._ },
116177 .{ ._, .v_ps, .cvtdq2, .tmp1x, .tmp1x, ._, ._ },116177 .{ ._, .v_ps, .cvtdq2, .tmp1x, .tmp1x, ._, ._ },
116178 .{ ._, .v_ps, .mova, .memsi(.dst0x, .@"2", .tmp0), .tmp1x, ._, ._ },116178 .{ ._, .v_ps, .mova, .memsi(.dst0x, .@"2", .tmp0), .tmp1x, ._, ._ },
...@@ -116202,7 +116202,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -116202,7 +116202,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
116202 .dst_temps = .{ .mem, .unused },116202 .dst_temps = .{ .mem, .unused },
116203 .clobbers = .{ .eflags = true },116203 .clobbers = .{ .eflags = true },
116204 .each = .{ .once = &.{116204 .each = .{ .once = &.{
116205 .{ ._, ._, .mov, .tmp0d, .sia(-8, .src0, .add_size), ._, ._ },116205 .{ ._, ._, .mov, .tmp0d, .sia(-8, .src0, .add_unaligned_size_up_8), ._, ._ },
116206 .{ .@"0:", .p_d, .movzxw, .tmp1x, .memi(.src0q, .tmp0), ._, ._ },116206 .{ .@"0:", .p_d, .movzxw, .tmp1x, .memi(.src0q, .tmp0), ._, ._ },
116207 .{ ._, ._ps, .cvtdq2, .tmp1x, .tmp1x, ._, ._ },116207 .{ ._, ._ps, .cvtdq2, .tmp1x, .tmp1x, ._, ._ },
116208 .{ ._, ._ps, .mova, .memsi(.dst0x, .@"2", .tmp0), .tmp1x, ._, ._ },116208 .{ ._, ._ps, .mova, .memsi(.dst0x, .@"2", .tmp0), .tmp1x, ._, ._ },
...@@ -116392,7 +116392,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -116392,7 +116392,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
116392 .dst_temps = .{ .mem, .unused },116392 .dst_temps = .{ .mem, .unused },
116393 .clobbers = .{ .eflags = true },116393 .clobbers = .{ .eflags = true },
116394 .each = .{ .once = &.{116394 .each = .{ .once = &.{
116395 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_size), ._, ._ },116395 .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_unaligned_size_up_32), ._, ._ },
116396 .{ .@"0:", .v_ps, .cvtdq2, .tmp1y, .memi(.src0y, .tmp0), ._, ._ },116396 .{ .@"0:", .v_ps, .cvtdq2, .tmp1y, .memi(.src0y, .tmp0), ._, ._ },
116397 .{ ._, .v_ps, .mova, .memi(.dst0y, .tmp0), .tmp1y, ._, ._ },116397 .{ ._, .v_ps, .mova, .memi(.dst0y, .tmp0), .tmp1y, ._, ._ },
116398 .{ ._, ._, .sub, .tmp0d, .si(32), ._, ._ },116398 .{ ._, ._, .sub, .tmp0d, .si(32), ._, ._ },
...@@ -116421,7 +116421,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -116421,7 +116421,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
116421 .dst_temps = .{ .mem, .unused },116421 .dst_temps = .{ .mem, .unused },
116422 .clobbers = .{ .eflags = true },116422 .clobbers = .{ .eflags = true },
116423 .each = .{ .once = &.{116423 .each = .{ .once = &.{
116424 .{ ._, ._, .mov, .tmp0d, .sia(-16, .dst0, .add_size), ._, ._ },116424 .{ ._, ._, .mov, .tmp0d, .sia(-16, .dst0, .add_unaligned_size_up_16), ._, ._ },
116425 .{ .@"0:", .v_ps, .cvtdq2, .tmp1x, .memi(.src0x, .tmp0), ._, ._ },116425 .{ .@"0:", .v_ps, .cvtdq2, .tmp1x, .memi(.src0x, .tmp0), ._, ._ },
116426 .{ ._, .v_ps, .mova, .memi(.dst0x, .tmp0), .tmp1x, ._, ._ },116426 .{ ._, .v_ps, .mova, .memi(.dst0x, .tmp0), .tmp1x, ._, ._ },
116427 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },116427 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
...@@ -116450,7 +116450,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -116450,7 +116450,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
116450 .dst_temps = .{ .mem, .unused },116450 .dst_temps = .{ .mem, .unused },
116451 .clobbers = .{ .eflags = true },116451 .clobbers = .{ .eflags = true },
116452 .each = .{ .once = &.{116452 .each = .{ .once = &.{
116453 .{ ._, ._, .mov, .tmp0d, .sia(-16, .dst0, .add_size), ._, ._ },116453 .{ ._, ._, .mov, .tmp0d, .sia(-16, .dst0, .add_unaligned_size_up_16), ._, ._ },
116454 .{ .@"0:", ._ps, .cvtdq2, .tmp1x, .memi(.src0x, .tmp0), ._, ._ },116454 .{ .@"0:", ._ps, .cvtdq2, .tmp1x, .memi(.src0x, .tmp0), ._, ._ },
116455 .{ ._, ._ps, .mova, .memi(.dst0x, .tmp0), .tmp1x, ._, ._ },116455 .{ ._, ._ps, .mova, .memi(.dst0x, .tmp0), .tmp1x, ._, ._ },
116456 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },116456 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
...@@ -118066,7 +118066,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -118066,7 +118066,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
118066 .dst_temps = .{ .mem, .unused },118066 .dst_temps = .{ .mem, .unused },
118067 .clobbers = .{ .eflags = true },118067 .clobbers = .{ .eflags = true },
118068 .each = .{ .once = &.{118068 .each = .{ .once = &.{
118069 .{ ._, ._, .mov, .tmp0d, .sia(-4, .src0, .add_size), ._, ._ },118069 .{ ._, ._, .mov, .tmp0d, .sia(-4, .src0, .add_unaligned_size_up_4), ._, ._ },
118070 .{ .@"0:", .vp_d, .movsxb, .tmp1x, .memi(.src0d, .tmp0), ._, ._ },118070 .{ .@"0:", .vp_d, .movsxb, .tmp1x, .memi(.src0d, .tmp0), ._, ._ },
118071 .{ ._, .v_pd, .cvtdq2, .tmp1y, .tmp1x, ._, ._ },118071 .{ ._, .v_pd, .cvtdq2, .tmp1y, .tmp1x, ._, ._ },
118072 .{ ._, .v_pd, .mova, .memsi(.dst0y, .@"8", .tmp0), .tmp1y, ._, ._ },118072 .{ ._, .v_pd, .mova, .memsi(.dst0y, .@"8", .tmp0), .tmp1y, ._, ._ },
...@@ -118096,7 +118096,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -118096,7 +118096,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
118096 .dst_temps = .{ .mem, .unused },118096 .dst_temps = .{ .mem, .unused },
118097 .clobbers = .{ .eflags = true },118097 .clobbers = .{ .eflags = true },
118098 .each = .{ .once = &.{118098 .each = .{ .once = &.{
118099 .{ ._, ._, .mov, .tmp0d, .sia(-2, .src0, .add_size), ._, ._ },118099 .{ ._, ._, .mov, .tmp0d, .sia(-2, .src0, .add_unaligned_size_up_2), ._, ._ },
118100 .{ .@"0:", .vp_, .xor, .tmp1x, .tmp1x, .tmp1x, ._ },118100 .{ .@"0:", .vp_, .xor, .tmp1x, .tmp1x, .tmp1x, ._ },
118101 .{ ._, .vp_w, .insr, .tmp1x, .tmp1x, .memi(.src0w, .tmp0), .ui(0) },118101 .{ ._, .vp_w, .insr, .tmp1x, .tmp1x, .memi(.src0w, .tmp0), .ui(0) },
118102 .{ ._, .vp_d, .movsxb, .tmp1x, .tmp1d, ._, ._ },118102 .{ ._, .vp_d, .movsxb, .tmp1x, .tmp1d, ._, ._ },
...@@ -118128,7 +118128,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -118128,7 +118128,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
118128 .dst_temps = .{ .mem, .unused },118128 .dst_temps = .{ .mem, .unused },
118129 .clobbers = .{ .eflags = true },118129 .clobbers = .{ .eflags = true },
118130 .each = .{ .once = &.{118130 .each = .{ .once = &.{
118131 .{ ._, ._, .mov, .tmp0d, .sia(-2, .src0, .add_size), ._, ._ },118131 .{ ._, ._, .mov, .tmp0d, .sia(-2, .src0, .add_unaligned_size_up_2), ._, ._ },
118132 .{ .@"0:", .p_, .xor, .tmp1x, .tmp1x, ._, ._ },118132 .{ .@"0:", .p_, .xor, .tmp1x, .tmp1x, ._, ._ },
118133 .{ ._, .p_w, .insr, .tmp1x, .memi(.src0w, .tmp0), .ui(0), ._ },118133 .{ ._, .p_w, .insr, .tmp1x, .memi(.src0w, .tmp0), .ui(0), ._ },
118134 .{ ._, .p_d, .movsxb, .tmp1x, .tmp1d, ._, ._ },118134 .{ ._, .p_d, .movsxb, .tmp1x, .tmp1d, ._, ._ },
...@@ -118160,7 +118160,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -118160,7 +118160,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
118160 .dst_temps = .{ .mem, .unused },118160 .dst_temps = .{ .mem, .unused },
118161 .clobbers = .{ .eflags = true },118161 .clobbers = .{ .eflags = true },
118162 .each = .{ .once = &.{118162 .each = .{ .once = &.{
118163 .{ ._, ._, .mov, .tmp0d, .sia(-4, .src0, .add_size), ._, ._ },118163 .{ ._, ._, .mov, .tmp0d, .sia(-4, .src0, .add_unaligned_size_up_4), ._, ._ },
118164 .{ .@"0:", .vp_d, .movzxb, .tmp1x, .memi(.src0d, .tmp0), ._, ._ },118164 .{ .@"0:", .vp_d, .movzxb, .tmp1x, .memi(.src0d, .tmp0), ._, ._ },
118165 .{ ._, .v_pd, .cvtdq2, .tmp1y, .tmp1x, ._, ._ },118165 .{ ._, .v_pd, .cvtdq2, .tmp1y, .tmp1x, ._, ._ },
118166 .{ ._, .v_pd, .mova, .memsi(.dst0y, .@"8", .tmp0), .tmp1y, ._, ._ },118166 .{ ._, .v_pd, .mova, .memsi(.dst0y, .@"8", .tmp0), .tmp1y, ._, ._ },
...@@ -118190,7 +118190,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -118190,7 +118190,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
118190 .dst_temps = .{ .mem, .unused },118190 .dst_temps = .{ .mem, .unused },
118191 .clobbers = .{ .eflags = true },118191 .clobbers = .{ .eflags = true },
118192 .each = .{ .once = &.{118192 .each = .{ .once = &.{
118193 .{ ._, ._, .mov, .tmp0d, .sia(-2, .src0, .add_size), ._, ._ },118193 .{ ._, ._, .mov, .tmp0d, .sia(-2, .src0, .add_unaligned_size_up_2), ._, ._ },
118194 .{ .@"0:", .vp_, .xor, .tmp1x, .tmp1x, .tmp1x, ._ },118194 .{ .@"0:", .vp_, .xor, .tmp1x, .tmp1x, .tmp1x, ._ },
118195 .{ ._, .vp_w, .insr, .tmp1x, .tmp1x, .memi(.src0w, .tmp0), .ui(0) },118195 .{ ._, .vp_w, .insr, .tmp1x, .tmp1x, .memi(.src0w, .tmp0), .ui(0) },
118196 .{ ._, .vp_d, .movzxb, .tmp1x, .tmp1d, ._, ._ },118196 .{ ._, .vp_d, .movzxb, .tmp1x, .tmp1d, ._, ._ },
...@@ -118222,7 +118222,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -118222,7 +118222,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
118222 .dst_temps = .{ .mem, .unused },118222 .dst_temps = .{ .mem, .unused },
118223 .clobbers = .{ .eflags = true },118223 .clobbers = .{ .eflags = true },
118224 .each = .{ .once = &.{118224 .each = .{ .once = &.{
118225 .{ ._, ._, .mov, .tmp0d, .sia(-2, .src0, .add_size), ._, ._ },118225 .{ ._, ._, .mov, .tmp0d, .sia(-2, .src0, .add_unaligned_size_up_2), ._, ._ },
118226 .{ .@"0:", .p_, .xor, .tmp1x, .tmp1x, ._, ._ },118226 .{ .@"0:", .p_, .xor, .tmp1x, .tmp1x, ._, ._ },
118227 .{ ._, .p_w, .insr, .tmp1x, .memi(.src0w, .tmp0), .ui(0), ._ },118227 .{ ._, .p_w, .insr, .tmp1x, .memi(.src0w, .tmp0), .ui(0), ._ },
118228 .{ ._, .p_d, .movzxb, .tmp1x, .tmp1d, ._, ._ },118228 .{ ._, .p_d, .movzxb, .tmp1x, .tmp1d, ._, ._ },
...@@ -118704,7 +118704,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -118704,7 +118704,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
118704 .dst_temps = .{ .mem, .unused },118704 .dst_temps = .{ .mem, .unused },
118705 .clobbers = .{ .eflags = true },118705 .clobbers = .{ .eflags = true },
118706 .each = .{ .once = &.{118706 .each = .{ .once = &.{
118707 .{ ._, ._, .mov, .tmp0d, .sia(-8, .src0, .add_size), ._, ._ },118707 .{ ._, ._, .mov, .tmp0d, .sia(-8, .src0, .add_unaligned_size_up_8), ._, ._ },
118708 .{ .@"0:", .vp_d, .movsxw, .tmp1x, .memi(.src0q, .tmp0), ._, ._ },118708 .{ .@"0:", .vp_d, .movsxw, .tmp1x, .memi(.src0q, .tmp0), ._, ._ },
118709 .{ ._, .v_pd, .cvtdq2, .tmp1y, .tmp1x, ._, ._ },118709 .{ ._, .v_pd, .cvtdq2, .tmp1y, .tmp1x, ._, ._ },
118710 .{ ._, .v_pd, .mova, .memsi(.dst0y, .@"4", .tmp0), .tmp1y, ._, ._ },118710 .{ ._, .v_pd, .mova, .memsi(.dst0y, .@"4", .tmp0), .tmp1y, ._, ._ },
...@@ -118734,7 +118734,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -118734,7 +118734,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
118734 .dst_temps = .{ .mem, .unused },118734 .dst_temps = .{ .mem, .unused },
118735 .clobbers = .{ .eflags = true },118735 .clobbers = .{ .eflags = true },
118736 .each = .{ .once = &.{118736 .each = .{ .once = &.{
118737 .{ ._, ._, .mov, .tmp0d, .sia(-4, .src0, .add_size), ._, ._ },118737 .{ ._, ._, .mov, .tmp0d, .sia(-4, .src0, .add_unaligned_size_up_4), ._, ._ },
118738 .{ .@"0:", .v_d, .mov, .tmp1x, .memi(.src0d, .tmp0), ._, ._ },118738 .{ .@"0:", .v_d, .mov, .tmp1x, .memi(.src0d, .tmp0), ._, ._ },
118739 .{ ._, .vp_d, .movsxw, .tmp1x, .tmp1q, ._, ._ },118739 .{ ._, .vp_d, .movsxw, .tmp1x, .tmp1q, ._, ._ },
118740 .{ ._, .v_pd, .cvtdq2, .tmp1x, .tmp1q, ._, ._ },118740 .{ ._, .v_pd, .cvtdq2, .tmp1x, .tmp1q, ._, ._ },
...@@ -118765,7 +118765,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -118765,7 +118765,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
118765 .dst_temps = .{ .mem, .unused },118765 .dst_temps = .{ .mem, .unused },
118766 .clobbers = .{ .eflags = true },118766 .clobbers = .{ .eflags = true },
118767 .each = .{ .once = &.{118767 .each = .{ .once = &.{
118768 .{ ._, ._, .mov, .tmp0d, .sia(-4, .src0, .add_size), ._, ._ },118768 .{ ._, ._, .mov, .tmp0d, .sia(-4, .src0, .add_unaligned_size_up_4), ._, ._ },
118769 .{ .@"0:", ._d, .mov, .tmp1x, .memi(.src0d, .tmp0), ._, ._ },118769 .{ .@"0:", ._d, .mov, .tmp1x, .memi(.src0d, .tmp0), ._, ._ },
118770 .{ ._, .p_d, .movsxw, .tmp1x, .tmp1q, ._, ._ },118770 .{ ._, .p_d, .movsxw, .tmp1x, .tmp1q, ._, ._ },
118771 .{ ._, ._pd, .cvtdq2, .tmp1x, .tmp1q, ._, ._ },118771 .{ ._, ._pd, .cvtdq2, .tmp1x, .tmp1q, ._, ._ },
...@@ -118796,7 +118796,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -118796,7 +118796,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
118796 .dst_temps = .{ .mem, .unused },118796 .dst_temps = .{ .mem, .unused },
118797 .clobbers = .{ .eflags = true },118797 .clobbers = .{ .eflags = true },
118798 .each = .{ .once = &.{118798 .each = .{ .once = &.{
118799 .{ ._, ._, .mov, .tmp0d, .sia(-8, .src0, .add_size), ._, ._ },118799 .{ ._, ._, .mov, .tmp0d, .sia(-8, .src0, .add_unaligned_size_up_8), ._, ._ },
118800 .{ .@"0:", .vp_d, .movzxw, .tmp1x, .memi(.src0q, .tmp0), ._, ._ },118800 .{ .@"0:", .vp_d, .movzxw, .tmp1x, .memi(.src0q, .tmp0), ._, ._ },
118801 .{ ._, .v_pd, .cvtdq2, .tmp1y, .tmp1x, ._, ._ },118801 .{ ._, .v_pd, .cvtdq2, .tmp1y, .tmp1x, ._, ._ },
118802 .{ ._, .v_pd, .mova, .memsi(.dst0y, .@"4", .tmp0), .tmp1y, ._, ._ },118802 .{ ._, .v_pd, .mova, .memsi(.dst0y, .@"4", .tmp0), .tmp1y, ._, ._ },
...@@ -118826,7 +118826,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -118826,7 +118826,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
118826 .dst_temps = .{ .mem, .unused },118826 .dst_temps = .{ .mem, .unused },
118827 .clobbers = .{ .eflags = true },118827 .clobbers = .{ .eflags = true },
118828 .each = .{ .once = &.{118828 .each = .{ .once = &.{
118829 .{ ._, ._, .mov, .tmp0d, .sia(-4, .src0, .add_size), ._, ._ },118829 .{ ._, ._, .mov, .tmp0d, .sia(-4, .src0, .add_unaligned_size_up_4), ._, ._ },
118830 .{ .@"0:", .v_d, .mov, .tmp1x, .memi(.src0d, .tmp0), ._, ._ },118830 .{ .@"0:", .v_d, .mov, .tmp1x, .memi(.src0d, .tmp0), ._, ._ },
118831 .{ ._, .vp_d, .movzxw, .tmp1x, .tmp1q, ._, ._ },118831 .{ ._, .vp_d, .movzxw, .tmp1x, .tmp1q, ._, ._ },
118832 .{ ._, .v_pd, .cvtdq2, .tmp1x, .tmp1q, ._, ._ },118832 .{ ._, .v_pd, .cvtdq2, .tmp1x, .tmp1q, ._, ._ },
...@@ -118857,7 +118857,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -118857,7 +118857,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
118857 .dst_temps = .{ .mem, .unused },118857 .dst_temps = .{ .mem, .unused },
118858 .clobbers = .{ .eflags = true },118858 .clobbers = .{ .eflags = true },
118859 .each = .{ .once = &.{118859 .each = .{ .once = &.{
118860 .{ ._, ._, .mov, .tmp0d, .sia(-4, .src0, .add_size), ._, ._ },118860 .{ ._, ._, .mov, .tmp0d, .sia(-4, .src0, .add_unaligned_size_up_4), ._, ._ },
118861 .{ .@"0:", ._d, .mov, .tmp1x, .memi(.src0d, .tmp0), ._, ._ },118861 .{ .@"0:", ._d, .mov, .tmp1x, .memi(.src0d, .tmp0), ._, ._ },
118862 .{ ._, .p_d, .movzxw, .tmp1x, .tmp1q, ._, ._ },118862 .{ ._, .p_d, .movzxw, .tmp1x, .tmp1q, ._, ._ },
118863 .{ ._, ._pd, .cvtdq2, .tmp1x, .tmp1q, ._, ._ },118863 .{ ._, ._pd, .cvtdq2, .tmp1x, .tmp1q, ._, ._ },
...@@ -119110,7 +119110,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -119110,7 +119110,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
119110 .dst_temps = .{ .mem, .unused },119110 .dst_temps = .{ .mem, .unused },
119111 .clobbers = .{ .eflags = true },119111 .clobbers = .{ .eflags = true },
119112 .each = .{ .once = &.{119112 .each = .{ .once = &.{
119113 .{ ._, ._, .mov, .tmp0d, .sia(-16, .src0, .add_size), ._, ._ },119113 .{ ._, ._, .mov, .tmp0d, .sia(-16, .src0, .add_unaligned_size_up_16), ._, ._ },
119114 .{ .@"0:", .v_pd, .cvtdq2, .tmp1y, .memi(.src0x, .tmp0), ._, ._ },119114 .{ .@"0:", .v_pd, .cvtdq2, .tmp1y, .memi(.src0x, .tmp0), ._, ._ },
119115 .{ ._, .v_pd, .mova, .memsi(.dst0y, .@"2", .tmp0), .tmp1y, ._, ._ },119115 .{ ._, .v_pd, .mova, .memsi(.dst0y, .@"2", .tmp0), .tmp1y, ._, ._ },
119116 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },119116 .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ },
...@@ -119139,7 +119139,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -119139,7 +119139,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
119139 .dst_temps = .{ .mem, .unused },119139 .dst_temps = .{ .mem, .unused },
119140 .clobbers = .{ .eflags = true },119140 .clobbers = .{ .eflags = true },
119141 .each = .{ .once = &.{119141 .each = .{ .once = &.{
119142 .{ ._, ._, .mov, .tmp0d, .sia(-8, .src0, .add_size), ._, ._ },119142 .{ ._, ._, .mov, .tmp0d, .sia(-8, .src0, .add_unaligned_size_up_8), ._, ._ },
119143 .{ .@"0:", .v_pd, .cvtdq2, .tmp1x, .memi(.src0q, .tmp0), ._, ._ },119143 .{ .@"0:", .v_pd, .cvtdq2, .tmp1x, .memi(.src0q, .tmp0), ._, ._ },
119144 .{ ._, .v_pd, .mova, .memsi(.dst0x, .@"2", .tmp0), .tmp1x, ._, ._ },119144 .{ ._, .v_pd, .mova, .memsi(.dst0x, .@"2", .tmp0), .tmp1x, ._, ._ },
119145 .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ },119145 .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ },
...@@ -119168,7 +119168,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -119168,7 +119168,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
119168 .dst_temps = .{ .mem, .unused },119168 .dst_temps = .{ .mem, .unused },
119169 .clobbers = .{ .eflags = true },119169 .clobbers = .{ .eflags = true },
119170 .each = .{ .once = &.{119170 .each = .{ .once = &.{
119171 .{ ._, ._, .mov, .tmp0d, .sia(-8, .src0, .add_size), ._, ._ },119171 .{ ._, ._, .mov, .tmp0d, .sia(-8, .src0, .add_unaligned_size_up_8), ._, ._ },
119172 .{ .@"0:", ._pd, .cvtdq2, .tmp1x, .memi(.src0q, .tmp0), ._, ._ },119172 .{ .@"0:", ._pd, .cvtdq2, .tmp1x, .memi(.src0q, .tmp0), ._, ._ },
119173 .{ ._, ._pd, .mova, .memsi(.dst0x, .@"2", .tmp0), .tmp1x, ._, ._ },119173 .{ ._, ._pd, .mova, .memsi(.dst0x, .@"2", .tmp0), .tmp1x, ._, ._ },
119174 .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ },119174 .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ },
...@@ -193468,7 +193468,7 @@ const Select = struct {...@@ -193468,7 +193468,7 @@ const Select = struct {
193468 ref: Ref,193468 ref: Ref,
193469 scale: Memory.Scale = .@"1",193469 scale: Memory.Scale = .@"1",
193470 } = .{ .ref = .none },193470 } = .{ .ref = .none },
193471 unused: u2 = 0,193471 unused: u1 = 0,
193472 },193472 },
193473 imm: i32 = 0,193473 imm: i32 = 0,
193474193474
...@@ -193481,7 +193481,7 @@ const Select = struct {...@@ -193481,7 +193481,7 @@ const Select = struct {
193481 lea,193481 lea,
193482 mem,193482 mem,
193483 };193483 };
193484 const Adjust = packed struct(u11) {193484 const Adjust = packed struct(u12) {
193485 sign: enum(u1) { neg, pos },193485 sign: enum(u1) { neg, pos },
193486 lhs: enum(u6) {193486 lhs: enum(u6) {
193487 none,193487 none,
...@@ -193518,7 +193518,7 @@ const Select = struct {...@@ -193518,7 +193518,7 @@ const Select = struct {
193518 umax_shr_src1,193518 umax_shr_src1,
193519 repeat,193519 repeat,
193520 },193520 },
193521 op: enum(u2) { mul, div, div_8_down, rem_8_mul },193521 op: enum(u3) { mul, div, div_8_down, rem_8_mul, up_2_mul, up_32_mul },
193522 rhs: Memory.Scale,193522 rhs: Memory.Scale,
193523193523
193524 const none: Adjust = .{ .sign = .pos, .lhs = .none, .op = .mul, .rhs = .@"1" };193524 const none: Adjust = .{ .sign = .pos, .lhs = .none, .op = .mul, .rhs = .@"1" };
...@@ -193539,6 +193539,11 @@ const Select = struct {...@@ -193539,6 +193539,11 @@ const Select = struct {
193539 const add_delta_elem_size: Adjust = .{ .sign = .pos, .lhs = .delta_elem_size, .op = .mul, .rhs = .@"1" };193539 const add_delta_elem_size: Adjust = .{ .sign = .pos, .lhs = .delta_elem_size, .op = .mul, .rhs = .@"1" };
193540 const add_delta_elem_size_div_8: Adjust = .{ .sign = .pos, .lhs = .delta_elem_size, .op = .div, .rhs = .@"8" };193540 const add_delta_elem_size_div_8: Adjust = .{ .sign = .pos, .lhs = .delta_elem_size, .op = .div, .rhs = .@"8" };
193541 const add_unaligned_size: Adjust = .{ .sign = .pos, .lhs = .unaligned_size, .op = .mul, .rhs = .@"1" };193541 const add_unaligned_size: Adjust = .{ .sign = .pos, .lhs = .unaligned_size, .op = .mul, .rhs = .@"1" };
193542 const add_unaligned_size_up_2: Adjust = .{ .sign = .pos, .lhs = .unaligned_size, .op = .up_2_mul, .rhs = .@"1" };
193543 const add_unaligned_size_up_4: Adjust = .{ .sign = .pos, .lhs = .unaligned_size, .op = .up_2_mul, .rhs = .@"2" };
193544 const add_unaligned_size_up_8: Adjust = .{ .sign = .pos, .lhs = .unaligned_size, .op = .up_2_mul, .rhs = .@"4" };
193545 const add_unaligned_size_up_16: Adjust = .{ .sign = .pos, .lhs = .unaligned_size, .op = .up_2_mul, .rhs = .@"8" };
193546 const add_unaligned_size_up_32: Adjust = .{ .sign = .pos, .lhs = .unaligned_size, .op = .up_32_mul, .rhs = .@"1" };
193542 const sub_unaligned_size: Adjust = .{ .sign = .neg, .lhs = .unaligned_size, .op = .mul, .rhs = .@"1" };193547 const sub_unaligned_size: Adjust = .{ .sign = .neg, .lhs = .unaligned_size, .op = .mul, .rhs = .@"1" };
193543 const add_unaligned_size_add_elem_size: Adjust = .{ .sign = .pos, .lhs = .unaligned_size_add_elem_size, .op = .mul, .rhs = .@"1" };193548 const add_unaligned_size_add_elem_size: Adjust = .{ .sign = .pos, .lhs = .unaligned_size_add_elem_size, .op = .mul, .rhs = .@"1" };
193544 const add_unaligned_size_sub_elem_size: Adjust = .{ .sign = .pos, .lhs = .unaligned_size_sub_elem_size, .op = .mul, .rhs = .@"1" };193549 const add_unaligned_size_sub_elem_size: Adjust = .{ .sign = .pos, .lhs = .unaligned_size_sub_elem_size, .op = .mul, .rhs = .@"1" };
...@@ -194551,7 +194556,9 @@ const Select = struct {...@@ -194551,7 +194556,9 @@ const Select = struct {
194551 },194556 },
194552 .div => @shrExact(lhs, rhs),194557 .div => @shrExact(lhs, rhs),
194553 .div_8_down => lhs >> 3 & @as(SignedImm, -1) << rhs,194558 .div_8_down => lhs >> 3 & @as(SignedImm, -1) << rhs,
194554 .rem_8_mul => lhs & (@as(SignedImm, 1) << @intCast(@as(u3, 3) + rhs)) - 1,194559 .rem_8_mul => lhs & ((@as(SignedImm, 8) << rhs) - 1),
194560 .up_2_mul => ((lhs - 1) & @as(SignedImm, -2) << rhs) + (@as(SignedImm, 2) << rhs),
194561 .up_32_mul => ((lhs - 1) & @as(SignedImm, -32) << rhs) + (@as(SignedImm, 32) << rhs),
194555 };194562 };
194556 const disp: SignedImm = @bitCast(@as(UnsignedImm, @as(u32, @bitCast(op.imm))));194563 const disp: SignedImm = @bitCast(@as(UnsignedImm, @as(u32, @bitCast(op.imm))));
194557 return switch (op.flags.adjust.sign) {194564 return switch (op.flags.adjust.sign) {