| ... | ... | @@ -2389,7 +2389,7 @@ fn genBodyBlock(self: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 2389 | 2389 | } |
| 2390 | 2390 | |
| 2391 | 2391 | fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 2392 | | @setEvalBranchQuota(23_100); |
| 2392 | @setEvalBranchQuota(23_600); |
| 2393 | 2393 | const pt = cg.pt; |
| 2394 | 2394 | const zcu = pt.zcu; |
| 2395 | 2395 | const ip = &zcu.intern_pool; |
| ... | ... | @@ -2427,7 +2427,6 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 2427 | 2427 | // zig fmt: off |
| 2428 | 2428 | .select => try cg.airSelect(inst), |
| 2429 | 2429 | .shuffle => try cg.airShuffle(inst), |
| 2430 | | .reduce_optimized => try cg.airReduce(inst), |
| 2431 | 2430 | // zig fmt: on |
| 2432 | 2431 | |
| 2433 | 2432 | .arg => if (cg.debug_output != .none) { |
| ... | ... | @@ -67795,7 +67794,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 67795 | 67794 | .clobbers = .{ .eflags = true }, |
| 67796 | 67795 | .each = .{ .once = &.{ |
| 67797 | 67796 | .{ ._, ._, .xor, .dst0d, .dst0d, ._, ._ }, |
| 67798 | | .{ ._, ._, .movbe, .dst0w, .src0w, ._, ._ }, |
| 67797 | .{ ._, ._be, .mov, .dst0w, .src0w, ._, ._ }, |
| 67799 | 67798 | } }, |
| 67800 | 67799 | }, .{ |
| 67801 | 67800 | .src_constraints = .{ .{ .exact_int = 16 }, .any, .any }, |
| ... | ... | @@ -67815,7 +67814,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 67815 | 67814 | }, |
| 67816 | 67815 | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, |
| 67817 | 67816 | .each = .{ .once = &.{ |
| 67818 | | .{ ._, ._, .movbe, .dst0d, .src0d, ._, ._ }, |
| 67817 | .{ ._, ._be, .mov, .dst0d, .src0d, ._, ._ }, |
| 67819 | 67818 | } }, |
| 67820 | 67819 | }, .{ |
| 67821 | 67820 | .src_constraints = .{ .{ .exact_int = 32 }, .any, .any }, |
| ... | ... | @@ -67824,7 +67823,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 67824 | 67823 | }, |
| 67825 | 67824 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| 67826 | 67825 | .each = .{ .once = &.{ |
| 67827 | | .{ ._, ._, .bswap, .dst0d, ._, ._, ._ }, |
| 67826 | .{ ._, .b_, .swap, .dst0d, ._, ._, ._ }, |
| 67828 | 67827 | } }, |
| 67829 | 67828 | }, .{ |
| 67830 | 67829 | .required_features = .{ .movbe, null, null, null }, |
| ... | ... | @@ -67835,7 +67834,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 67835 | 67834 | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, |
| 67836 | 67835 | .clobbers = .{ .eflags = true }, |
| 67837 | 67836 | .each = .{ .once = &.{ |
| 67838 | | .{ ._, ._, .movbe, .dst0d, .src0d, ._, ._ }, |
| 67837 | .{ ._, ._be, .mov, .dst0d, .src0d, ._, ._ }, |
| 67839 | 67838 | .{ ._, ._r, .sa, .dst0d, .uia(32, .src0, .sub_bit_size), ._, ._ }, |
| 67840 | 67839 | } }, |
| 67841 | 67840 | }, .{ |
| ... | ... | @@ -67846,7 +67845,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 67846 | 67845 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| 67847 | 67846 | .clobbers = .{ .eflags = true }, |
| 67848 | 67847 | .each = .{ .once = &.{ |
| 67849 | | .{ ._, ._, .bswap, .dst0d, ._, ._, ._ }, |
| 67848 | .{ ._, .b_, .swap, .dst0d, ._, ._, ._ }, |
| 67850 | 67849 | .{ ._, ._r, .sa, .dst0d, .uia(32, .src0, .sub_bit_size), ._, ._ }, |
| 67851 | 67850 | } }, |
| 67852 | 67851 | }, .{ |
| ... | ... | @@ -67858,7 +67857,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 67858 | 67857 | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, |
| 67859 | 67858 | .clobbers = .{ .eflags = true }, |
| 67860 | 67859 | .each = .{ .once = &.{ |
| 67861 | | .{ ._, ._, .movbe, .dst0d, .src0d, ._, ._ }, |
| 67860 | .{ ._, ._be, .mov, .dst0d, .src0d, ._, ._ }, |
| 67862 | 67861 | .{ ._, ._r, .sh, .dst0d, .uia(32, .src0, .sub_bit_size), ._, ._ }, |
| 67863 | 67862 | } }, |
| 67864 | 67863 | }, .{ |
| ... | ... | @@ -67869,7 +67868,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 67869 | 67868 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| 67870 | 67869 | .clobbers = .{ .eflags = true }, |
| 67871 | 67870 | .each = .{ .once = &.{ |
| 67872 | | .{ ._, ._, .bswap, .dst0d, ._, ._, ._ }, |
| 67871 | .{ ._, .b_, .swap, .dst0d, ._, ._, ._ }, |
| 67873 | 67872 | .{ ._, ._r, .sh, .dst0d, .uia(32, .src0, .sub_bit_size), ._, ._ }, |
| 67874 | 67873 | } }, |
| 67875 | 67874 | }, .{ |
| ... | ... | @@ -67880,7 +67879,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 67880 | 67879 | }, |
| 67881 | 67880 | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, |
| 67882 | 67881 | .each = .{ .once = &.{ |
| 67883 | | .{ ._, ._, .movbe, .dst0q, .src0q, ._, ._ }, |
| 67882 | .{ ._, ._be, .mov, .dst0q, .src0q, ._, ._ }, |
| 67884 | 67883 | } }, |
| 67885 | 67884 | }, .{ |
| 67886 | 67885 | .src_constraints = .{ .{ .exact_int = 64 }, .any, .any }, |
| ... | ... | @@ -67889,7 +67888,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 67889 | 67888 | }, |
| 67890 | 67889 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| 67891 | 67890 | .each = .{ .once = &.{ |
| 67892 | | .{ ._, ._, .bswap, .dst0q, ._, ._, ._ }, |
| 67891 | .{ ._, .b_, .swap, .dst0q, ._, ._, ._ }, |
| 67893 | 67892 | } }, |
| 67894 | 67893 | }, .{ |
| 67895 | 67894 | .required_features = .{ .movbe, null, null, null }, |
| ... | ... | @@ -67900,7 +67899,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 67900 | 67899 | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, |
| 67901 | 67900 | .clobbers = .{ .eflags = true }, |
| 67902 | 67901 | .each = .{ .once = &.{ |
| 67903 | | .{ ._, ._, .movbe, .dst0q, .src0q, ._, ._ }, |
| 67902 | .{ ._, ._be, .mov, .dst0q, .src0q, ._, ._ }, |
| 67904 | 67903 | .{ ._, ._r, .sa, .dst0q, .uia(64, .src0, .sub_bit_size), ._, ._ }, |
| 67905 | 67904 | } }, |
| 67906 | 67905 | }, .{ |
| ... | ... | @@ -67911,7 +67910,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 67911 | 67910 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| 67912 | 67911 | .clobbers = .{ .eflags = true }, |
| 67913 | 67912 | .each = .{ .once = &.{ |
| 67914 | | .{ ._, ._, .bswap, .dst0q, ._, ._, ._ }, |
| 67913 | .{ ._, .b_, .swap, .dst0q, ._, ._, ._ }, |
| 67915 | 67914 | .{ ._, ._r, .sa, .dst0q, .uia(64, .src0, .sub_bit_size), ._, ._ }, |
| 67916 | 67915 | } }, |
| 67917 | 67916 | }, .{ |
| ... | ... | @@ -67923,7 +67922,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 67923 | 67922 | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, |
| 67924 | 67923 | .clobbers = .{ .eflags = true }, |
| 67925 | 67924 | .each = .{ .once = &.{ |
| 67926 | | .{ ._, ._, .movbe, .dst0q, .src0q, ._, ._ }, |
| 67925 | .{ ._, ._be, .mov, .dst0q, .src0q, ._, ._ }, |
| 67927 | 67926 | .{ ._, ._r, .sh, .dst0q, .uia(64, .src0, .sub_bit_size), ._, ._ }, |
| 67928 | 67927 | } }, |
| 67929 | 67928 | }, .{ |
| ... | ... | @@ -67934,7 +67933,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 67934 | 67933 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| 67935 | 67934 | .clobbers = .{ .eflags = true }, |
| 67936 | 67935 | .each = .{ .once = &.{ |
| 67937 | | .{ ._, ._, .bswap, .dst0q, ._, ._, ._ }, |
| 67936 | .{ ._, .b_, .swap, .dst0q, ._, ._, ._ }, |
| 67938 | 67937 | .{ ._, ._r, .sh, .dst0q, .uia(64, .src0, .sub_bit_size), ._, ._ }, |
| 67939 | 67938 | } }, |
| 67940 | 67939 | }, .{ |
| ... | ... | @@ -67962,7 +67961,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 67962 | 67961 | .{ ._, ._, .mov, .tmp0d, .sia(-8, .dst0, .add_size), ._, ._ }, |
| 67963 | 67962 | .{ ._, ._, .lea, .tmp1p, .mem(.src0), ._, ._ }, |
| 67964 | 67963 | .{ .@"0:", ._, .mov, .tmp2q, .lea(.tmp1q), ._, ._ }, |
| 67965 | | .{ ._, ._, .movbe, .memi(.dst0q, .tmp0), .tmp2q, ._, ._ }, |
| 67964 | .{ ._, ._be, .mov, .memi(.dst0q, .tmp0), .tmp2q, ._, ._ }, |
| 67966 | 67965 | .{ ._, ._, .lea, .tmp1p, .lead(.tmp1, 8), ._, ._ }, |
| 67967 | 67966 | .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ }, |
| 67968 | 67967 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| ... | ... | @@ -67992,7 +67991,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 67992 | 67991 | .{ ._, ._, .mov, .tmp0d, .sia(-8, .dst0, .add_size), ._, ._ }, |
| 67993 | 67992 | .{ ._, ._, .lea, .tmp1p, .mem(.src0), ._, ._ }, |
| 67994 | 67993 | .{ .@"0:", ._, .mov, .tmp2q, .lea(.tmp1q), ._, ._ }, |
| 67995 | | .{ ._, ._, .bswap, .tmp2q, ._, ._, ._ }, |
| 67994 | .{ ._, .b_, .swap, .tmp2q, ._, ._, ._ }, |
| 67996 | 67995 | .{ ._, ._, .mov, .memi(.dst0q, .tmp0), .tmp2q, ._, ._ }, |
| 67997 | 67996 | .{ ._, ._, .lea, .tmp1p, .lead(.tmp1, 8), ._, ._ }, |
| 67998 | 67997 | .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ }, |
| ... | ... | @@ -68026,7 +68025,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 68026 | 68025 | .{ ._, ._r, .sa, .tmp2q, .ui(63), ._, ._ }, |
| 68027 | 68026 | .{ ._, ._, .mov, .memad(.dst0q, .add_size, -8), .tmp2q, ._, ._ }, |
| 68028 | 68027 | .{ .@"0:", ._, .mov, .tmp2q, .lea(.tmp1q), ._, ._ }, |
| 68029 | | .{ ._, ._, .movbe, .memi(.dst0q, .tmp0), .tmp2q, ._, ._ }, |
| 68028 | .{ ._, ._be, .mov, .memi(.dst0q, .tmp0), .tmp2q, ._, ._ }, |
| 68030 | 68029 | .{ ._, ._, .lea, .tmp1p, .lead(.tmp1, 8), ._, ._ }, |
| 68031 | 68030 | .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ }, |
| 68032 | 68031 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| ... | ... | @@ -68059,7 +68058,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 68059 | 68058 | .{ ._, ._r, .sa, .tmp2q, .ui(63), ._, ._ }, |
| 68060 | 68059 | .{ ._, ._, .mov, .memad(.dst0q, .add_size, -8), .tmp2q, ._, ._ }, |
| 68061 | 68060 | .{ .@"0:", ._, .mov, .tmp2q, .lea(.tmp1q), ._, ._ }, |
| 68062 | | .{ ._, ._, .bswap, .tmp2q, ._, ._, ._ }, |
| 68061 | .{ ._, .b_, .swap, .tmp2q, ._, ._, ._ }, |
| 68063 | 68062 | .{ ._, ._, .mov, .memi(.dst0q, .tmp0), .tmp2q, ._, ._ }, |
| 68064 | 68063 | .{ ._, ._, .lea, .tmp1p, .lead(.tmp1, 8), ._, ._ }, |
| 68065 | 68064 | .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ }, |
| ... | ... | @@ -68091,7 +68090,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 68091 | 68090 | .{ ._, ._, .lea, .tmp1p, .mem(.src0), ._, ._ }, |
| 68092 | 68091 | .{ ._, ._, .mov, .memad(.dst0q, .add_size, -8), .si(0), ._, ._ }, |
| 68093 | 68092 | .{ .@"0:", ._, .mov, .tmp2q, .lea(.tmp1q), ._, ._ }, |
| 68094 | | .{ ._, ._, .movbe, .memi(.dst0q, .tmp0), .tmp2q, ._, ._ }, |
| 68093 | .{ ._, ._be, .mov, .memi(.dst0q, .tmp0), .tmp2q, ._, ._ }, |
| 68095 | 68094 | .{ ._, ._, .lea, .tmp1p, .lead(.tmp1, 8), ._, ._ }, |
| 68096 | 68095 | .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ }, |
| 68097 | 68096 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| ... | ... | @@ -68122,7 +68121,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 68122 | 68121 | .{ ._, ._, .lea, .tmp1p, .mem(.src0), ._, ._ }, |
| 68123 | 68122 | .{ ._, ._, .mov, .memad(.dst0q, .add_size, -8), .si(0), ._, ._ }, |
| 68124 | 68123 | .{ .@"0:", ._, .mov, .tmp2q, .lea(.tmp1q), ._, ._ }, |
| 68125 | | .{ ._, ._, .bswap, .tmp2q, ._, ._, ._ }, |
| 68124 | .{ ._, .b_, .swap, .tmp2q, ._, ._, ._ }, |
| 68126 | 68125 | .{ ._, ._, .mov, .memi(.dst0q, .tmp0), .tmp2q, ._, ._ }, |
| 68127 | 68126 | .{ ._, ._, .lea, .tmp1p, .lead(.tmp1, 8), ._, ._ }, |
| 68128 | 68127 | .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ }, |
| ... | ... | @@ -68155,7 +68154,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 68155 | 68154 | .{ ._, ._, .movsx, .tmp2q, .mem(.src0b), ._, ._ }, |
| 68156 | 68155 | .{ ._, ._r, .sa, .tmp2q, .ui(63), ._, ._ }, |
| 68157 | 68156 | .{ ._, ._, .mov, .memad(.dst0q, .add_size, -8), .tmp2q, ._, ._ }, |
| 68158 | | .{ .@"0:", ._, .movbe, .tmp3q, .lea(.tmp1q), ._, ._ }, |
| 68157 | .{ .@"0:", ._be, .mov, .tmp3q, .lea(.tmp1q), ._, ._ }, |
| 68159 | 68158 | .{ ._, ._, .mov, .tmp4q, .tmp3q, ._, ._ }, |
| 68160 | 68159 | .{ ._, ._rd, .sh, .tmp3q, .tmp2q, .uia(64, .src0, .sub_bit_size_rem_64), ._ }, |
| 68161 | 68160 | .{ ._, ._, .mov, .tmp2q, .tmp4q, ._, ._ }, |
| ... | ... | @@ -68192,7 +68191,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 68192 | 68191 | .{ ._, ._r, .sa, .tmp2q, .ui(63), ._, ._ }, |
| 68193 | 68192 | .{ ._, ._, .mov, .memad(.dst0q, .add_size, -8), .tmp2q, ._, ._ }, |
| 68194 | 68193 | .{ .@"0:", ._, .mov, .tmp3q, .lea(.tmp1q), ._, ._ }, |
| 68195 | | .{ ._, ._, .bswap, .tmp3q, ._, ._, ._ }, |
| 68194 | .{ ._, .b_, .swap, .tmp3q, ._, ._, ._ }, |
| 68196 | 68195 | .{ ._, ._, .mov, .tmp4q, .tmp3q, ._, ._ }, |
| 68197 | 68196 | .{ ._, ._rd, .sh, .tmp3q, .tmp2q, .uia(64, .src0, .sub_bit_size_rem_64), ._ }, |
| 68198 | 68197 | .{ ._, ._, .mov, .tmp2q, .tmp4q, ._, ._ }, |
| ... | ... | @@ -68227,7 +68226,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 68227 | 68226 | .{ ._, ._, .lea, .tmp1p, .mem(.src0), ._, ._ }, |
| 68228 | 68227 | .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ }, |
| 68229 | 68228 | .{ ._, ._, .mov, .memad(.dst0q, .add_size, -8), .tmp2q, ._, ._ }, |
| 68230 | | .{ .@"0:", ._, .movbe, .tmp3q, .lea(.tmp1q), ._, ._ }, |
| 68229 | .{ .@"0:", ._be, .mov, .tmp3q, .lea(.tmp1q), ._, ._ }, |
| 68231 | 68230 | .{ ._, ._, .mov, .tmp4q, .tmp3q, ._, ._ }, |
| 68232 | 68231 | .{ ._, ._rd, .sh, .tmp3q, .tmp2q, .uia(64, .src0, .sub_bit_size_rem_64), ._ }, |
| 68233 | 68232 | .{ ._, ._, .mov, .tmp2q, .tmp4q, ._, ._ }, |
| ... | ... | @@ -68263,7 +68262,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 68263 | 68262 | .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ }, |
| 68264 | 68263 | .{ ._, ._, .mov, .memad(.dst0q, .add_size, -8), .tmp2q, ._, ._ }, |
| 68265 | 68264 | .{ .@"0:", ._, .mov, .tmp3q, .lea(.tmp1q), ._, ._ }, |
| 68266 | | .{ ._, ._, .bswap, .tmp3q, ._, ._, ._ }, |
| 68265 | .{ ._, .b_, .swap, .tmp3q, ._, ._, ._ }, |
| 68267 | 68266 | .{ ._, ._, .mov, .tmp4q, .tmp3q, ._, ._ }, |
| 68268 | 68267 | .{ ._, ._rd, .sh, .tmp3q, .tmp2q, .uia(64, .src0, .sub_bit_size_rem_64), ._ }, |
| 68269 | 68268 | .{ ._, ._, .mov, .tmp2q, .tmp4q, ._, ._ }, |
| ... | ... | @@ -68298,7 +68297,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 68298 | 68297 | .{ ._, ._, .lea, .tmp1p, .mem(.src0), ._, ._ }, |
| 68299 | 68298 | .{ ._, ._, .movsx, .tmp2q, .mem(.src0b), ._, ._ }, |
| 68300 | 68299 | .{ ._, ._r, .sa, .tmp2q, .ui(63), ._, ._ }, |
| 68301 | | .{ .@"0:", ._, .movbe, .tmp3q, .lea(.tmp1q), ._, ._ }, |
| 68300 | .{ .@"0:", ._be, .mov, .tmp3q, .lea(.tmp1q), ._, ._ }, |
| 68302 | 68301 | .{ ._, ._, .mov, .tmp4q, .tmp3q, ._, ._ }, |
| 68303 | 68302 | .{ ._, ._rd, .sh, .tmp3q, .tmp2q, .uia(64, .src0, .sub_bit_size_rem_64), ._ }, |
| 68304 | 68303 | .{ ._, ._, .mov, .tmp2q, .tmp4q, ._, ._ }, |
| ... | ... | @@ -68334,7 +68333,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 68334 | 68333 | .{ ._, ._, .movsx, .tmp2q, .mem(.src0b), ._, ._ }, |
| 68335 | 68334 | .{ ._, ._r, .sa, .tmp2q, .ui(63), ._, ._ }, |
| 68336 | 68335 | .{ .@"0:", ._, .mov, .tmp3q, .lea(.tmp1q), ._, ._ }, |
| 68337 | | .{ ._, ._, .bswap, .tmp3q, ._, ._, ._ }, |
| 68336 | .{ ._, .b_, .swap, .tmp3q, ._, ._, ._ }, |
| 68338 | 68337 | .{ ._, ._, .mov, .tmp4q, .tmp3q, ._, ._ }, |
| 68339 | 68338 | .{ ._, ._rd, .sh, .tmp3q, .tmp2q, .uia(64, .src0, .sub_bit_size_rem_64), ._ }, |
| 68340 | 68339 | .{ ._, ._, .mov, .tmp2q, .tmp4q, ._, ._ }, |
| ... | ... | @@ -68368,7 +68367,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 68368 | 68367 | .{ ._, ._, .mov, .tmp0d, .sia(-8, .dst0, .add_size), ._, ._ }, |
| 68369 | 68368 | .{ ._, ._, .lea, .tmp1p, .mem(.src0), ._, ._ }, |
| 68370 | 68369 | .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ }, |
| 68371 | | .{ .@"0:", ._, .movbe, .tmp3q, .lea(.tmp1q), ._, ._ }, |
| 68370 | .{ .@"0:", ._be, .mov, .tmp3q, .lea(.tmp1q), ._, ._ }, |
| 68372 | 68371 | .{ ._, ._, .mov, .tmp4q, .tmp3q, ._, ._ }, |
| 68373 | 68372 | .{ ._, ._rd, .sh, .tmp3q, .tmp2q, .uia(64, .src0, .sub_bit_size_rem_64), ._ }, |
| 68374 | 68373 | .{ ._, ._, .mov, .tmp2q, .tmp4q, ._, ._ }, |
| ... | ... | @@ -68403,7 +68402,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 68403 | 68402 | .{ ._, ._, .lea, .tmp1p, .mem(.src0), ._, ._ }, |
| 68404 | 68403 | .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ }, |
| 68405 | 68404 | .{ .@"0:", ._, .mov, .tmp3q, .lea(.tmp1q), ._, ._ }, |
| 68406 | | .{ ._, ._, .bswap, .tmp3q, ._, ._, ._ }, |
| 68405 | .{ ._, .b_, .swap, .tmp3q, ._, ._, ._ }, |
| 68407 | 68406 | .{ ._, ._, .mov, .tmp4q, .tmp3q, ._, ._ }, |
| 68408 | 68407 | .{ ._, ._rd, .sh, .tmp3q, .tmp2q, .uia(64, .src0, .sub_bit_size_rem_64), ._ }, |
| 68409 | 68408 | .{ ._, ._, .mov, .tmp2q, .tmp4q, ._, ._ }, |
| ... | ... | @@ -69742,7 +69741,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 69742 | 69741 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| 69743 | 69742 | .clobbers = .{ .eflags = true }, |
| 69744 | 69743 | .each = .{ .once = &.{ |
| 69745 | | .{ ._, ._, .bswap, .src0d, ._, ._, ._ }, |
| 69744 | .{ ._, .b_, .swap, .src0d, ._, ._, ._ }, |
| 69746 | 69745 | .{ ._, ._, .mov, .tmp0d, .src0d, ._, ._ }, |
| 69747 | 69746 | .{ ._, ._r, .sh, .src0d, .ui(4), ._, ._ }, |
| 69748 | 69747 | .{ ._, ._l, .sh, .tmp0d, .ui(4), ._, ._ }, |
| ... | ... | @@ -69897,7 +69896,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 69897 | 69896 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| 69898 | 69897 | .clobbers = .{ .eflags = true }, |
| 69899 | 69898 | .each = .{ .once = &.{ |
| 69900 | | .{ ._, ._, .bswap, .src0d, ._, ._, ._ }, |
| 69899 | .{ ._, .b_, .swap, .src0d, ._, ._, ._ }, |
| 69901 | 69900 | .{ ._, ._, .mov, .tmp0d, .src0d, ._, ._ }, |
| 69902 | 69901 | .{ ._, ._r, .sh, .src0d, .ui(4), ._, ._ }, |
| 69903 | 69902 | .{ ._, ._l, .sh, .tmp0d, .ui(4), ._, ._ }, |
| ... | ... | @@ -70053,7 +70052,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 70053 | 70052 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| 70054 | 70053 | .clobbers = .{ .eflags = true }, |
| 70055 | 70054 | .each = .{ .once = &.{ |
| 70056 | | .{ ._, ._, .bswap, .src0d, ._, ._, ._ }, |
| 70055 | .{ ._, .b_, .swap, .src0d, ._, ._, ._ }, |
| 70057 | 70056 | .{ ._, ._, .mov, .tmp0d, .src0d, ._, ._ }, |
| 70058 | 70057 | .{ ._, ._r, .sh, .src0d, .ui(4), ._, ._ }, |
| 70059 | 70058 | .{ ._, ._l, .sh, .tmp0d, .ui(4), ._, ._ }, |
| ... | ... | @@ -70150,7 +70149,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 70150 | 70149 | .{ ._, ._, .lea, .dst0p, .mem(.tmp0), ._, ._ }, |
| 70151 | 70150 | .{ ._, ._b, .gf2p8affineq, .src0x, .lea(.dst0x), .ui(0), ._ }, |
| 70152 | 70151 | .{ ._, ._q, .mov, .dst0q, .src0x, ._, ._ }, |
| 70153 | | .{ ._, ._, .bswap, .dst0q, ._, ._, ._ }, |
| 70152 | .{ ._, .b_, .swap, .dst0q, ._, ._, ._ }, |
| 70154 | 70153 | } }, |
| 70155 | 70154 | }, .{ |
| 70156 | 70155 | .required_features = .{ .@"64bit", null, null, null }, |
| ... | ... | @@ -70174,7 +70173,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 70174 | 70173 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| 70175 | 70174 | .clobbers = .{ .eflags = true }, |
| 70176 | 70175 | .each = .{ .once = &.{ |
| 70177 | | .{ ._, ._, .bswap, .src0q, ._, ._, ._ }, |
| 70176 | .{ ._, .b_, .swap, .src0q, ._, ._, ._ }, |
| 70178 | 70177 | .{ ._, ._, .mov, .tmp0q, .src0q, ._, ._ }, |
| 70179 | 70178 | .{ ._, ._, .mov, .tmp1q, .uia(0b00001111000011110000111100001111, .none, .repeat), ._, ._ }, |
| 70180 | 70179 | .{ ._, ._, .@"and", .tmp0q, .tmp1q, ._, ._ }, |
| ... | ... | @@ -70222,7 +70221,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 70222 | 70221 | .{ ._, ._, .lea, .dst0p, .mem(.tmp0), ._, ._ }, |
| 70223 | 70222 | .{ ._, .v_b, .gf2p8affineq, .tmp1x, .src0x, .lea(.dst0x), .ui(0) }, |
| 70224 | 70223 | .{ ._, .v_q, .mov, .dst0q, .tmp1x, ._, ._ }, |
| 70225 | | .{ ._, ._, .bswap, .dst0q, ._, ._, ._ }, |
| 70224 | .{ ._, .b_, .swap, .dst0q, ._, ._, ._ }, |
| 70226 | 70225 | .{ ._, ._r, .sa, .dst0q, .uia(64, .dst0, .sub_bit_size), ._, ._ }, |
| 70227 | 70226 | } }, |
| 70228 | 70227 | }, .{ |
| ... | ... | @@ -70250,7 +70249,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 70250 | 70249 | .{ ._, ._, .lea, .dst0p, .mem(.tmp0), ._, ._ }, |
| 70251 | 70250 | .{ ._, ._b, .gf2p8affineq, .src0x, .lea(.dst0x), .ui(0), ._ }, |
| 70252 | 70251 | .{ ._, ._q, .mov, .dst0q, .src0x, ._, ._ }, |
| 70253 | | .{ ._, ._, .bswap, .dst0q, ._, ._, ._ }, |
| 70252 | .{ ._, .b_, .swap, .dst0q, ._, ._, ._ }, |
| 70254 | 70253 | .{ ._, ._r, .sa, .dst0q, .uia(64, .dst0, .sub_bit_size), ._, ._ }, |
| 70255 | 70254 | } }, |
| 70256 | 70255 | }, .{ |
| ... | ... | @@ -70275,7 +70274,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 70275 | 70274 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| 70276 | 70275 | .clobbers = .{ .eflags = true }, |
| 70277 | 70276 | .each = .{ .once = &.{ |
| 70278 | | .{ ._, ._, .bswap, .src0q, ._, ._, ._ }, |
| 70277 | .{ ._, .b_, .swap, .src0q, ._, ._, ._ }, |
| 70279 | 70278 | .{ ._, ._, .mov, .tmp0q, .src0q, ._, ._ }, |
| 70280 | 70279 | .{ ._, ._, .mov, .tmp1q, .uia(0b00001111000011110000111100001111, .none, .repeat), ._, ._ }, |
| 70281 | 70280 | .{ ._, ._, .@"and", .tmp0q, .tmp1q, ._, ._ }, |
| ... | ... | @@ -70378,7 +70377,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 70378 | 70377 | .{ ._, ._, .lea, .dst0p, .mem(.tmp0), ._, ._ }, |
| 70379 | 70378 | .{ ._, ._b, .gf2p8affineq, .src0x, .lea(.dst0x), .ui(0), ._ }, |
| 70380 | 70379 | .{ ._, ._q, .mov, .dst0q, .src0x, ._, ._ }, |
| 70381 | | .{ ._, ._, .bswap, .dst0q, ._, ._, ._ }, |
| 70380 | .{ ._, .b_, .swap, .dst0q, ._, ._, ._ }, |
| 70382 | 70381 | .{ ._, ._r, .sh, .dst0q, .uia(64, .dst0, .sub_bit_size), ._, ._ }, |
| 70383 | 70382 | } }, |
| 70384 | 70383 | }, .{ |
| ... | ... | @@ -70403,7 +70402,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 70403 | 70402 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| 70404 | 70403 | .clobbers = .{ .eflags = true }, |
| 70405 | 70404 | .each = .{ .once = &.{ |
| 70406 | | .{ ._, ._, .bswap, .src0q, ._, ._, ._ }, |
| 70405 | .{ ._, .b_, .swap, .src0q, ._, ._, ._ }, |
| 70407 | 70406 | .{ ._, ._, .mov, .tmp0q, .src0q, ._, ._ }, |
| 70408 | 70407 | .{ ._, ._, .mov, .tmp1q, .uia(0b00001111000011110000111100001111, .none, .repeat), ._, ._ }, |
| 70409 | 70408 | .{ ._, ._, .@"and", .tmp0q, .tmp1q, ._, ._ }, |
| ... | ... | @@ -70646,10 +70645,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 70646 | 70645 | }, |
| 70647 | 70646 | .extra_temps = .{ |
| 70648 | 70647 | .{ .type = .vector_32_u8, .kind = .forward_bits_mem }, |
| 70649 | | .{ .type = .vector_32_u8, .kind = .{ .pshufb_bswap_mem = .{ .repeat = 2, .size = .xword } } }, |
| 70648 | .{ .type = .vector_16_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .xword } } }, |
| 70650 | 70649 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 70651 | | .unused, |
| 70652 | | .unused, |
| 70650 | .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } }, |
| 70651 | .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } }, |
| 70653 | 70652 | .unused, |
| 70654 | 70653 | .unused, |
| 70655 | 70654 | .unused, |
| ... | ... | @@ -70661,9 +70660,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 70661 | 70660 | .each = .{ .once = &.{ |
| 70662 | 70661 | .{ ._, ._, .lea, .tmp2p, .mem(.tmp0), ._, ._ }, |
| 70663 | 70662 | .{ ._, .v_b, .gf2p8affineq, .dst0y, .src0y, .lea(.tmp2y), .ui(0) }, |
| 70663 | .{ ._, .v_f128, .extract, .tmp3x, .dst0y, .ui(1), ._ }, |
| 70664 | 70664 | .{ ._, ._, .lea, .tmp2p, .mem(.tmp1), ._, ._ }, |
| 70665 | | .{ ._, .vp_b, .shuf, .dst0y, .dst0y, .lea(.tmp2y), ._ }, |
| 70666 | | .{ ._, .v_pd, .perm, .dst0y, .dst0y, .ui(0b01_00_11_10), ._ }, |
| 70665 | .{ ._, .v_dqa, .mov, .tmp4x, .lea(.tmp2x), ._, ._ }, |
| 70666 | .{ ._, .vp_b, .shuf, .dst0x, .dst0x, .tmp4x, ._ }, |
| 70667 | .{ ._, .vp_b, .shuf, .tmp3x, .tmp3x, .tmp4x, ._ }, |
| 70668 | .{ ._, .v_f128, .insert, .dst0y, .tmp3y, .dst0x, .ui(1) }, |
| 70667 | 70669 | } }, |
| 70668 | 70670 | }, .{ |
| 70669 | 70671 | .required_features = .{ .avx2, .gfni, null, null }, |
| ... | ... | @@ -70701,42 +70703,6 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 70701 | 70703 | .{ ._, ._, .sub, .tmp0d, .si(32), ._, ._ }, |
| 70702 | 70704 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 70703 | 70705 | } }, |
| 70704 | | }, .{ |
| 70705 | | .required_features = .{ .avx, .gfni, null, null }, |
| 70706 | | .src_constraints = .{ .{ .exact_remainder_int = .{ .of = .yword, .is = 256 } }, .any, .any }, |
| 70707 | | .patterns = &.{ |
| 70708 | | .{ .src = .{ .to_mem, .none, .none } }, |
| 70709 | | }, |
| 70710 | | .extra_temps = .{ |
| 70711 | | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 70712 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 70713 | | .{ .type = .vector_32_u8, .kind = .forward_bits_mem }, |
| 70714 | | .{ .type = .vector_32_u8, .kind = .{ .pshufb_bswap_mem = .{ .repeat = 2, .size = .xword } } }, |
| 70715 | | .{ .type = .vector_32_u8, .kind = .{ .rc = .sse } }, |
| 70716 | | .{ .type = .vector_32_u8, .kind = .{ .rc = .sse } }, |
| 70717 | | .{ .type = .vector_32_u8, .kind = .{ .rc = .sse } }, |
| 70718 | | .unused, |
| 70719 | | .unused, |
| 70720 | | .unused, |
| 70721 | | .unused, |
| 70722 | | }, |
| 70723 | | .dst_temps = .{ .mem, .unused }, |
| 70724 | | .clobbers = .{ .eflags = true }, |
| 70725 | | .each = .{ .once = &.{ |
| 70726 | | .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ }, |
| 70727 | | .{ ._, .v_dqa, .mov, .tmp4y, .lea(.tmp0y), ._, ._ }, |
| 70728 | | .{ ._, ._, .lea, .tmp0p, .mem(.tmp3), ._, ._ }, |
| 70729 | | .{ ._, .v_dqa, .mov, .tmp5y, .lea(.tmp0y), ._, ._ }, |
| 70730 | | .{ ._, ._, .mov, .tmp0d, .sia(-32, .dst0, .add_size), ._, ._ }, |
| 70731 | | .{ ._, ._, .lea, .tmp1p, .mem(.src0), ._, ._ }, |
| 70732 | | .{ .@"0:", .v_pd, .perm, .tmp6y, .lea(.tmp1y), .ui(0b01_00_11_10), ._ }, |
| 70733 | | .{ ._, .v_b, .gf2p8affineq, .tmp6y, .tmp6y, .tmp4y, .ui(0) }, |
| 70734 | | .{ ._, .vp_b, .shuf, .tmp6y, .tmp6y, .tmp5y, ._ }, |
| 70735 | | .{ ._, .v_dqu, .mov, .memi(.dst0y, .tmp0), .tmp6y, ._, ._ }, |
| 70736 | | .{ ._, ._, .lea, .tmp1p, .lead(.tmp1, 32), ._, ._ }, |
| 70737 | | .{ ._, ._, .sub, .tmp0d, .si(32), ._, ._ }, |
| 70738 | | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 70739 | | } }, |
| 70740 | 70706 | }, .{ |
| 70741 | 70707 | .required_features = .{ .avx, .gfni, null, null }, |
| 70742 | 70708 | .src_constraints = .{ .{ .exact_remainder_int = .{ .of = .xword, .is = 128 } }, .any, .any }, |
| ... | ... | @@ -70819,7 +70785,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 70819 | 70785 | .{ ._, ._l, .sh, .tmp6q, .ui(1), ._, ._ }, |
| 70820 | 70786 | .{ ._, ._, .@"and", .tmp5q, .tmp4q, ._, ._ }, |
| 70821 | 70787 | .{ ._, ._, .@"or", .tmp5q, .tmp6q, ._, ._ }, |
| 70822 | | .{ ._, ._, .movbe, .memi(.dst0q, .tmp0), .tmp5q, ._, ._ }, |
| 70788 | .{ ._, ._be, .mov, .memi(.dst0q, .tmp0), .tmp5q, ._, ._ }, |
| 70823 | 70789 | .{ ._, ._, .lea, .tmp1p, .lead(.tmp1, 8), ._, ._ }, |
| 70824 | 70790 | .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ }, |
| 70825 | 70791 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| ... | ... | @@ -70870,7 +70836,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 70870 | 70836 | .{ ._, ._l, .sh, .tmp6q, .ui(1), ._, ._ }, |
| 70871 | 70837 | .{ ._, ._, .@"and", .tmp5q, .tmp4q, ._, ._ }, |
| 70872 | 70838 | .{ ._, ._, .@"or", .tmp5q, .tmp6q, ._, ._ }, |
| 70873 | | .{ ._, ._, .bswap, .tmp5q, ._, ._, ._ }, |
| 70839 | .{ ._, .b_, .swap, .tmp5q, ._, ._, ._ }, |
| 70874 | 70840 | .{ ._, ._, .mov, .memi(.dst0q, .tmp0), .tmp5q, ._, ._ }, |
| 70875 | 70841 | .{ ._, ._, .lea, .tmp1p, .lead(.tmp1, 8), ._, ._ }, |
| 70876 | 70842 | .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ }, |
| ... | ... | @@ -70926,7 +70892,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 70926 | 70892 | .{ ._, ._l, .sh, .tmp6q, .ui(1), ._, ._ }, |
| 70927 | 70893 | .{ ._, ._, .@"and", .tmp5q, .tmp4q, ._, ._ }, |
| 70928 | 70894 | .{ ._, ._, .@"or", .tmp5q, .tmp6q, ._, ._ }, |
| 70929 | | .{ ._, ._, .movbe, .memi(.dst0q, .tmp0), .tmp5q, ._, ._ }, |
| 70895 | .{ ._, ._be, .mov, .memi(.dst0q, .tmp0), .tmp5q, ._, ._ }, |
| 70930 | 70896 | .{ ._, ._, .lea, .tmp1p, .lead(.tmp1, 8), ._, ._ }, |
| 70931 | 70897 | .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ }, |
| 70932 | 70898 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| ... | ... | @@ -70981,7 +70947,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 70981 | 70947 | .{ ._, ._l, .sh, .tmp6q, .ui(1), ._, ._ }, |
| 70982 | 70948 | .{ ._, ._, .@"and", .tmp5q, .tmp4q, ._, ._ }, |
| 70983 | 70949 | .{ ._, ._, .@"or", .tmp5q, .tmp6q, ._, ._ }, |
| 70984 | | .{ ._, ._, .bswap, .tmp5q, ._, ._, ._ }, |
| 70950 | .{ ._, .b_, .swap, .tmp5q, ._, ._, ._ }, |
| 70985 | 70951 | .{ ._, ._, .mov, .memi(.dst0q, .tmp0), .tmp5q, ._, ._ }, |
| 70986 | 70952 | .{ ._, ._, .lea, .tmp1p, .lead(.tmp1, 8), ._, ._ }, |
| 70987 | 70953 | .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ }, |
| ... | ... | @@ -71034,7 +71000,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 71034 | 71000 | .{ ._, ._l, .sh, .tmp6q, .ui(1), ._, ._ }, |
| 71035 | 71001 | .{ ._, ._, .@"and", .tmp5q, .tmp4q, ._, ._ }, |
| 71036 | 71002 | .{ ._, ._, .@"or", .tmp5q, .tmp6q, ._, ._ }, |
| 71037 | | .{ ._, ._, .movbe, .memi(.dst0q, .tmp0), .tmp5q, ._, ._ }, |
| 71003 | .{ ._, ._be, .mov, .memi(.dst0q, .tmp0), .tmp5q, ._, ._ }, |
| 71038 | 71004 | .{ ._, ._, .lea, .tmp1p, .lead(.tmp1, 8), ._, ._ }, |
| 71039 | 71005 | .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ }, |
| 71040 | 71006 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| ... | ... | @@ -71068,7 +71034,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 71068 | 71034 | .{ ._, ._, .mov, .tmp3q, .uia(0b00110011001100110011001100110011, .none, .repeat), ._, ._ }, |
| 71069 | 71035 | .{ ._, ._, .mov, .tmp4q, .uia(0b01010101010101010101010101010101, .none, .repeat), ._, ._ }, |
| 71070 | 71036 | .{ .@"0:", ._, .mov, .tmp5q, .lea(.tmp1q), ._, ._ }, |
| 71071 | | .{ ._, ._, .bswap, .tmp5q, ._, ._, ._ }, |
| 71037 | .{ ._, .b_, .swap, .tmp5q, ._, ._, ._ }, |
| 71072 | 71038 | .{ ._, ._, .mov, .tmp6q, .tmp5q, ._, ._ }, |
| 71073 | 71039 | .{ ._, ._, .@"and", .tmp6q, .tmp2q, ._, ._ }, |
| 71074 | 71040 | .{ ._, ._r, .sh, .tmp5q, .ui(4), ._, ._ }, |
| ... | ... | @@ -71123,7 +71089,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 71123 | 71089 | .{ ._, ._, .mov, .tmp3q, .uia(0b00001111000011110000111100001111, .none, .repeat), ._, ._ }, |
| 71124 | 71090 | .{ ._, ._, .mov, .tmp4q, .uia(0b00110011001100110011001100110011, .none, .repeat), ._, ._ }, |
| 71125 | 71091 | .{ ._, ._, .mov, .tmp5q, .uia(0b01010101010101010101010101010101, .none, .repeat), ._, ._ }, |
| 71126 | | .{ .@"0:", ._, .movbe, .tmp6q, .lea(.tmp1q), ._, ._ }, |
| 71092 | .{ .@"0:", ._be, .mov, .tmp6q, .lea(.tmp1q), ._, ._ }, |
| 71127 | 71093 | .{ ._, ._, .mov, .tmp7q, .tmp6q, ._, ._ }, |
| 71128 | 71094 | .{ ._, ._, .@"and", .tmp7q, .tmp3q, ._, ._ }, |
| 71129 | 71095 | .{ ._, ._r, .sh, .tmp6q, .ui(4), ._, ._ }, |
| ... | ... | @@ -71182,7 +71148,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 71182 | 71148 | .{ ._, ._, .mov, .tmp4q, .uia(0b00110011001100110011001100110011, .none, .repeat), ._, ._ }, |
| 71183 | 71149 | .{ ._, ._, .mov, .tmp5q, .uia(0b01010101010101010101010101010101, .none, .repeat), ._, ._ }, |
| 71184 | 71150 | .{ .@"0:", ._, .mov, .tmp6q, .lea(.tmp1q), ._, ._ }, |
| 71185 | | .{ ._, ._, .bswap, .tmp6q, ._, ._, ._ }, |
| 71151 | .{ ._, .b_, .swap, .tmp6q, ._, ._, ._ }, |
| 71186 | 71152 | .{ ._, ._, .mov, .tmp7q, .tmp6q, ._, ._ }, |
| 71187 | 71153 | .{ ._, ._, .@"and", .tmp7q, .tmp3q, ._, ._ }, |
| 71188 | 71154 | .{ ._, ._r, .sh, .tmp6q, .ui(4), ._, ._ }, |
| ... | ... | @@ -71238,7 +71204,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 71238 | 71204 | .{ ._, ._, .mov, .tmp3q, .uia(0b00001111000011110000111100001111, .none, .repeat), ._, ._ }, |
| 71239 | 71205 | .{ ._, ._, .mov, .tmp4q, .uia(0b00110011001100110011001100110011, .none, .repeat), ._, ._ }, |
| 71240 | 71206 | .{ ._, ._, .mov, .tmp5q, .uia(0b01010101010101010101010101010101, .none, .repeat), ._, ._ }, |
| 71241 | | .{ .@"0:", ._, .movbe, .tmp6q, .lea(.tmp1q), ._, ._ }, |
| 71207 | .{ .@"0:", ._be, .mov, .tmp6q, .lea(.tmp1q), ._, ._ }, |
| 71242 | 71208 | .{ ._, ._, .mov, .tmp7q, .tmp6q, ._, ._ }, |
| 71243 | 71209 | .{ ._, ._, .@"and", .tmp7q, .tmp3q, ._, ._ }, |
| 71244 | 71210 | .{ ._, ._r, .sh, .tmp6q, .ui(4), ._, ._ }, |
| ... | ... | @@ -71295,7 +71261,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 71295 | 71261 | .{ ._, ._, .mov, .tmp4q, .uia(0b00110011001100110011001100110011, .none, .repeat), ._, ._ }, |
| 71296 | 71262 | .{ ._, ._, .mov, .tmp5q, .uia(0b01010101010101010101010101010101, .none, .repeat), ._, ._ }, |
| 71297 | 71263 | .{ .@"0:", ._, .mov, .tmp6q, .lea(.tmp1q), ._, ._ }, |
| 71298 | | .{ ._, ._, .bswap, .tmp6q, ._, ._, ._ }, |
| 71264 | .{ ._, .b_, .swap, .tmp6q, ._, ._, ._ }, |
| 71299 | 71265 | .{ ._, ._, .mov, .tmp7q, .tmp6q, ._, ._ }, |
| 71300 | 71266 | .{ ._, ._, .@"and", .tmp7q, .tmp3q, ._, ._ }, |
| 71301 | 71267 | .{ ._, ._r, .sh, .tmp6q, .ui(4), ._, ._ }, |
| ... | ... | @@ -71352,7 +71318,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 71352 | 71318 | .{ ._, ._, .mov, .tmp3q, .uia(0b00001111000011110000111100001111, .none, .repeat), ._, ._ }, |
| 71353 | 71319 | .{ ._, ._, .mov, .tmp4q, .uia(0b00110011001100110011001100110011, .none, .repeat), ._, ._ }, |
| 71354 | 71320 | .{ ._, ._, .mov, .tmp5q, .uia(0b01010101010101010101010101010101, .none, .repeat), ._, ._ }, |
| 71355 | | .{ .@"0:", ._, .movbe, .tmp6q, .lea(.tmp1q), ._, ._ }, |
| 71321 | .{ .@"0:", ._be, .mov, .tmp6q, .lea(.tmp1q), ._, ._ }, |
| 71356 | 71322 | .{ ._, ._, .mov, .tmp7q, .tmp6q, ._, ._ }, |
| 71357 | 71323 | .{ ._, ._, .@"and", .tmp7q, .tmp3q, ._, ._ }, |
| 71358 | 71324 | .{ ._, ._r, .sh, .tmp6q, .ui(4), ._, ._ }, |
| ... | ... | @@ -71410,7 +71376,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 71410 | 71376 | .{ ._, ._, .mov, .tmp4q, .uia(0b00110011001100110011001100110011, .none, .repeat), ._, ._ }, |
| 71411 | 71377 | .{ ._, ._, .mov, .tmp5q, .uia(0b01010101010101010101010101010101, .none, .repeat), ._, ._ }, |
| 71412 | 71378 | .{ .@"0:", ._, .mov, .tmp6q, .lea(.tmp1q), ._, ._ }, |
| 71413 | | .{ ._, ._, .bswap, .tmp6q, ._, ._, ._ }, |
| 71379 | .{ ._, .b_, .swap, .tmp6q, ._, ._, ._ }, |
| 71414 | 71380 | .{ ._, ._, .mov, .tmp7q, .tmp6q, ._, ._ }, |
| 71415 | 71381 | .{ ._, ._, .@"and", .tmp7q, .tmp3q, ._, ._ }, |
| 71416 | 71382 | .{ ._, ._r, .sh, .tmp6q, .ui(4), ._, ._ }, |
| ... | ... | @@ -71465,7 +71431,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 71465 | 71431 | .{ ._, ._, .mov, .tmp3q, .uia(0b00001111000011110000111100001111, .none, .repeat), ._, ._ }, |
| 71466 | 71432 | .{ ._, ._, .mov, .tmp4q, .uia(0b00110011001100110011001100110011, .none, .repeat), ._, ._ }, |
| 71467 | 71433 | .{ ._, ._, .mov, .tmp5q, .uia(0b01010101010101010101010101010101, .none, .repeat), ._, ._ }, |
| 71468 | | .{ .@"0:", ._, .movbe, .tmp6q, .lea(.tmp1q), ._, ._ }, |
| 71434 | .{ .@"0:", ._be, .mov, .tmp6q, .lea(.tmp1q), ._, ._ }, |
| 71469 | 71435 | .{ ._, ._, .mov, .tmp7q, .tmp6q, ._, ._ }, |
| 71470 | 71436 | .{ ._, ._, .@"and", .tmp7q, .tmp3q, ._, ._ }, |
| 71471 | 71437 | .{ ._, ._r, .sh, .tmp6q, .ui(4), ._, ._ }, |
| ... | ... | @@ -71521,7 +71487,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 71521 | 71487 | .{ ._, ._, .mov, .tmp4q, .uia(0b00110011001100110011001100110011, .none, .repeat), ._, ._ }, |
| 71522 | 71488 | .{ ._, ._, .mov, .tmp5q, .uia(0b01010101010101010101010101010101, .none, .repeat), ._, ._ }, |
| 71523 | 71489 | .{ .@"0:", ._, .mov, .tmp6q, .lea(.tmp1q), ._, ._ }, |
| 71524 | | .{ ._, ._, .bswap, .tmp6q, ._, ._, ._ }, |
| 71490 | .{ ._, .b_, .swap, .tmp6q, ._, ._, ._ }, |
| 71525 | 71491 | .{ ._, ._, .mov, .tmp7q, .tmp6q, ._, ._ }, |
| 71526 | 71492 | .{ ._, ._, .@"and", .tmp7q, .tmp3q, ._, ._ }, |
| 71527 | 71493 | .{ ._, ._r, .sh, .tmp6q, .ui(4), ._, ._ }, |
| ... | ... | @@ -98883,7 +98849,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 98883 | 98849 | .clobbers = .{ .eflags = true }, |
| 98884 | 98850 | .each = .{ .once = &.{ |
| 98885 | 98851 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 98886 | | .{ ._, .v_dqa, .mov, .tmp2x, .lea(.tmp0x), ._, ._ }, |
| 98852 | .{ ._, .v_ps, .mova, .tmp2x, .lea(.tmp0x), ._, ._ }, |
| 98887 | 98853 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 98888 | 98854 | .{ .@"0:", .v_ps, .cvtph2, .tmp3x, .memsia(.src0q, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| 98889 | 98855 | .{ ._, .v_, .cvttps2dq, .tmp3x, .tmp3x, ._, ._ }, |
| ... | ... | @@ -118968,26 +118934,6 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 118968 | 118934 | } }, |
| 118969 | 118935 | } }, |
| 118970 | 118936 | } ++ [_]Select.Case{ .{ |
| 118971 | | .required_features = .{ .sse, null, null, null }, |
| 118972 | | .dst_constraints = .{ .{ .int = .byte }, .any }, |
| 118973 | | .src_constraints = .{ .{ .vec_len = 1 }, .any, .any }, |
| 118974 | | .patterns = &.{ |
| 118975 | | .{ .src = .{ .mut_mem, .none, .none } }, |
| 118976 | | .{ .src = .{ .mut_gpr, .none, .none } }, |
| 118977 | | .{ .src = .{ .to_mut_sse, .none, .none } }, |
| 118978 | | }, |
| 118979 | | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| 118980 | | .each = .{ .once = &.{} }, |
| 118981 | | }, .{ |
| 118982 | | .dst_constraints = .{ .{ .int = .byte }, .any }, |
| 118983 | | .src_constraints = .{ .{ .vec_len = 1 }, .any, .any }, |
| 118984 | | .patterns = &.{ |
| 118985 | | .{ .src = .{ .mut_mem, .none, .none } }, |
| 118986 | | .{ .src = .{ .to_mut_gpr, .none, .none } }, |
| 118987 | | }, |
| 118988 | | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| 118989 | | .each = .{ .once = &.{} }, |
| 118990 | | }, .{ |
| 118991 | 118937 | .required_features = .{ .avx, null, null, null }, |
| 118992 | 118938 | .dst_constraints = .{ .{ .int = .byte }, .any }, |
| 118993 | 118939 | .src_constraints = .{ .{ .scalar_int = .{ .of = .word, .is = .byte } }, .any, .any }, |
| ... | ... | @@ -119627,7 +119573,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 119627 | 119573 | .unused, |
| 119628 | 119574 | .unused, |
| 119629 | 119575 | }, |
| 119630 | | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 119576 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 119631 | 119577 | .each = .{ .once = &.{ |
| 119632 | 119578 | .{ ._, .v_dqa, .mov, .dst0y, .mem(.src0y), ._, ._ }, |
| 119633 | 119579 | .{ ._, .vp_, mir_tag, .dst0y, .dst0y, .memd(.src0y, 32), ._ }, |
| ... | ... | @@ -119669,7 +119615,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 119669 | 119615 | .unused, |
| 119670 | 119616 | .unused, |
| 119671 | 119617 | }, |
| 119672 | | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 119618 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 119673 | 119619 | .each = .{ .once = &.{ |
| 119674 | 119620 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 119675 | 119621 | .{ ._, .v_dqa, .mov, .dst0y, .mem(.src0y), ._, ._ }, |
| ... | ... | @@ -119717,6 +119663,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 119717 | 119663 | .unused, |
| 119718 | 119664 | }, |
| 119719 | 119665 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 119666 | .clobbers = .{ .eflags = true }, |
| 119720 | 119667 | .each = .{ .once = &.{ |
| 119721 | 119668 | .{ ._, ._, .mov, .tmp0d, .sia(-64, .src0, .add_unaligned_size), ._, ._ }, |
| 119722 | 119669 | .{ ._, .v_dqa, .mov, .dst0y, .memad(.src0y, .add_unaligned_size, -32), ._, ._ }, |
| ... | ... | @@ -119755,6 +119702,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 119755 | 119702 | .unused, |
| 119756 | 119703 | }, |
| 119757 | 119704 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 119705 | .clobbers = .{ .eflags = true }, |
| 119758 | 119706 | .each = .{ .once = &.{ |
| 119759 | 119707 | .{ ._, ._, .mov, .tmp0d, .sia(-64, .src0, .add_unaligned_size), ._, ._ }, |
| 119760 | 119708 | .{ ._, .v_ps, .mova, .dst0y, .memad(.src0y, .add_unaligned_size, -32), ._, ._ }, |
| ... | ... | @@ -119793,6 +119741,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 119793 | 119741 | .unused, |
| 119794 | 119742 | }, |
| 119795 | 119743 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 119744 | .clobbers = .{ .eflags = true }, |
| 119796 | 119745 | .each = .{ .once = &.{ |
| 119797 | 119746 | .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_unaligned_size), ._, ._ }, |
| 119798 | 119747 | .{ ._, ._dqa, .mov, .dst0x, .memad(.src0x, .add_unaligned_size, -16), ._, ._ }, |
| ... | ... | @@ -119838,6 +119787,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 119838 | 119787 | .unused, |
| 119839 | 119788 | }, |
| 119840 | 119789 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 119790 | .clobbers = .{ .eflags = true }, |
| 119841 | 119791 | .each = .{ .once = &.{ |
| 119842 | 119792 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 119843 | 119793 | .{ ._, .v_dqa, .mov, .dst0y, .lea(.tmp0y), ._, ._ }, |
| ... | ... | @@ -119897,6 +119847,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 119897 | 119847 | .unused, |
| 119898 | 119848 | }, |
| 119899 | 119849 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 119850 | .clobbers = .{ .eflags = true }, |
| 119900 | 119851 | .each = .{ .once = &.{ |
| 119901 | 119852 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 119902 | 119853 | .{ ._, .v_dqa, .mov, .dst0y, .lea(.tmp0y), ._, ._ }, |
| ... | ... | @@ -119948,6 +119899,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 119948 | 119899 | .unused, |
| 119949 | 119900 | }, |
| 119950 | 119901 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 119902 | .clobbers = .{ .eflags = true }, |
| 119951 | 119903 | .each = .{ .once = &.{ |
| 119952 | 119904 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 119953 | 119905 | .{ ._, .v_ps, .mova, .dst0y, .lea(.tmp0y), ._, ._ }, |
| ... | ... | @@ -119999,6 +119951,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 119999 | 119951 | .unused, |
| 120000 | 119952 | }, |
| 120001 | 119953 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 119954 | .clobbers = .{ .eflags = true }, |
| 120002 | 119955 | .each = .{ .once = &.{ |
| 120003 | 119956 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 120004 | 119957 | .{ ._, ._dqa, .mov, .dst0x, .lea(.tmp0x), ._, ._ }, |
| ... | ... | @@ -120025,7 +119978,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 120025 | 119978 | }, .{ |
| 120026 | 119979 | .required_features = .{ .slow_incdec, null, null, null }, |
| 120027 | 119980 | .dst_constraints = .{ .{ .int = .byte }, .any }, |
| 120028 | | .src_constraints = .{ .{ .unaligned_multiple_scalar_int = .{ .of = .byte, .is = .byte } }, .any, .any }, |
| 119981 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .byte, .is = .byte } }, .any, .any }, |
| 120029 | 119982 | .patterns = &.{ |
| 120030 | 119983 | .{ .src = .{ .to_mem, .none, .none } }, |
| 120031 | 119984 | }, |
| ... | ... | @@ -120053,7 +120006,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 120053 | 120006 | } }, |
| 120054 | 120007 | }, .{ |
| 120055 | 120008 | .dst_constraints = .{ .{ .int = .byte }, .any }, |
| 120056 | | .src_constraints = .{ .{ .unaligned_multiple_scalar_int = .{ .of = .byte, .is = .byte } }, .any, .any }, |
| 120009 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .byte, .is = .byte } }, .any, .any }, |
| 120057 | 120010 | .patterns = &.{ |
| 120058 | 120011 | .{ .src = .{ .to_mem, .none, .none } }, |
| 120059 | 120012 | }, |
| ... | ... | @@ -120079,26 +120032,6 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 120079 | 120032 | .{ ._, ._c, .de, .tmp0d, ._, ._, ._ }, |
| 120080 | 120033 | .{ ._, ._ns, .j, .@"0b", ._, ._, ._ }, |
| 120081 | 120034 | } }, |
| 120082 | | }, .{ |
| 120083 | | .required_features = .{ .sse, null, null, null }, |
| 120084 | | .dst_constraints = .{ .{ .int = .word }, .any }, |
| 120085 | | .src_constraints = .{ .{ .vec_len = 1 }, .any, .any }, |
| 120086 | | .patterns = &.{ |
| 120087 | | .{ .src = .{ .mut_mem, .none, .none } }, |
| 120088 | | .{ .src = .{ .mut_gpr, .none, .none } }, |
| 120089 | | .{ .src = .{ .to_mut_sse, .none, .none } }, |
| 120090 | | }, |
| 120091 | | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| 120092 | | .each = .{ .once = &.{} }, |
| 120093 | | }, .{ |
| 120094 | | .dst_constraints = .{ .{ .int = .word }, .any }, |
| 120095 | | .src_constraints = .{ .{ .vec_len = 1 }, .any, .any }, |
| 120096 | | .patterns = &.{ |
| 120097 | | .{ .src = .{ .mut_mem, .none, .none } }, |
| 120098 | | .{ .src = .{ .to_mut_gpr, .none, .none } }, |
| 120099 | | }, |
| 120100 | | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| 120101 | | .each = .{ .once = &.{} }, |
| 120102 | 120035 | }, .{ |
| 120103 | 120036 | .required_features = .{ .avx, null, null, null }, |
| 120104 | 120037 | .dst_constraints = .{ .{ .int = .word }, .any }, |
| ... | ... | @@ -120573,7 +120506,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 120573 | 120506 | .unused, |
| 120574 | 120507 | .unused, |
| 120575 | 120508 | }, |
| 120576 | | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 120509 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 120577 | 120510 | .each = .{ .once = &.{ |
| 120578 | 120511 | .{ ._, .v_dqa, .mov, .dst0y, .mem(.src0y), ._, ._ }, |
| 120579 | 120512 | .{ ._, .vp_, mir_tag, .dst0y, .dst0y, .memd(.src0y, 32), ._ }, |
| ... | ... | @@ -120613,7 +120546,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 120613 | 120546 | .unused, |
| 120614 | 120547 | .unused, |
| 120615 | 120548 | }, |
| 120616 | | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 120549 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 120617 | 120550 | .each = .{ .once = &.{ |
| 120618 | 120551 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 120619 | 120552 | .{ ._, .v_dqa, .mov, .dst0y, .mem(.src0y), ._, ._ }, |
| ... | ... | @@ -120659,6 +120592,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 120659 | 120592 | .unused, |
| 120660 | 120593 | }, |
| 120661 | 120594 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 120595 | .clobbers = .{ .eflags = true }, |
| 120662 | 120596 | .each = .{ .once = &.{ |
| 120663 | 120597 | .{ ._, ._, .mov, .tmp0d, .sia(-64, .src0, .add_unaligned_size), ._, ._ }, |
| 120664 | 120598 | .{ ._, .v_dqa, .mov, .dst0y, .memad(.src0y, .add_unaligned_size, -32), ._, ._ }, |
| ... | ... | @@ -120695,6 +120629,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 120695 | 120629 | .unused, |
| 120696 | 120630 | }, |
| 120697 | 120631 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 120632 | .clobbers = .{ .eflags = true }, |
| 120698 | 120633 | .each = .{ .once = &.{ |
| 120699 | 120634 | .{ ._, ._, .mov, .tmp0d, .sia(-64, .src0, .add_unaligned_size), ._, ._ }, |
| 120700 | 120635 | .{ ._, .v_ps, .mova, .dst0y, .memad(.src0y, .add_unaligned_size, -32), ._, ._ }, |
| ... | ... | @@ -120731,6 +120666,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 120731 | 120666 | .unused, |
| 120732 | 120667 | }, |
| 120733 | 120668 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 120669 | .clobbers = .{ .eflags = true }, |
| 120734 | 120670 | .each = .{ .once = &.{ |
| 120735 | 120671 | .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_unaligned_size), ._, ._ }, |
| 120736 | 120672 | .{ ._, ._dqa, .mov, .dst0x, .memad(.src0x, .add_unaligned_size, -16), ._, ._ }, |
| ... | ... | @@ -120773,6 +120709,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 120773 | 120709 | .unused, |
| 120774 | 120710 | }, |
| 120775 | 120711 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 120712 | .clobbers = .{ .eflags = true }, |
| 120776 | 120713 | .each = .{ .once = &.{ |
| 120777 | 120714 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 120778 | 120715 | .{ ._, .v_dqa, .mov, .dst0y, .lea(.tmp0y), ._, ._ }, |
| ... | ... | @@ -120830,6 +120767,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 120830 | 120767 | .unused, |
| 120831 | 120768 | }, |
| 120832 | 120769 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 120770 | .clobbers = .{ .eflags = true }, |
| 120833 | 120771 | .each = .{ .once = &.{ |
| 120834 | 120772 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 120835 | 120773 | .{ ._, .v_dqa, .mov, .dst0y, .lea(.tmp0y), ._, ._ }, |
| ... | ... | @@ -120879,6 +120817,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 120879 | 120817 | .unused, |
| 120880 | 120818 | }, |
| 120881 | 120819 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 120820 | .clobbers = .{ .eflags = true }, |
| 120882 | 120821 | .each = .{ .once = &.{ |
| 120883 | 120822 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 120884 | 120823 | .{ ._, .v_ps, .mova, .dst0y, .lea(.tmp0y), ._, ._ }, |
| ... | ... | @@ -120928,6 +120867,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 120928 | 120867 | .unused, |
| 120929 | 120868 | }, |
| 120930 | 120869 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 120870 | .clobbers = .{ .eflags = true }, |
| 120931 | 120871 | .each = .{ .once = &.{ |
| 120932 | 120872 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 120933 | 120873 | .{ ._, ._dqa, .mov, .dst0x, .lea(.tmp0x), ._, ._ }, |
| ... | ... | @@ -120950,7 +120890,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 120950 | 120890 | } }, |
| 120951 | 120891 | }, .{ |
| 120952 | 120892 | .dst_constraints = .{ .{ .int = .word }, .any }, |
| 120953 | | .src_constraints = .{ .{ .unaligned_multiple_scalar_int = .{ .of = .word, .is = .word } }, .any, .any }, |
| 120893 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .word, .is = .word } }, .any, .any }, |
| 120954 | 120894 | .patterns = &.{ |
| 120955 | 120895 | .{ .src = .{ .to_mem, .none, .none } }, |
| 120956 | 120896 | }, |
| ... | ... | @@ -120976,26 +120916,6 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 120976 | 120916 | .{ ._, ._, .sub, .tmp0d, .si(2), ._, ._ }, |
| 120977 | 120917 | .{ ._, ._nb, .j, .@"0b", ._, ._, ._ }, |
| 120978 | 120918 | } }, |
| 120979 | | }, .{ |
| 120980 | | .required_features = .{ .sse, null, null, null }, |
| 120981 | | .dst_constraints = .{ .{ .int = .dword }, .any }, |
| 120982 | | .src_constraints = .{ .{ .vec_len = 1 }, .any, .any }, |
| 120983 | | .patterns = &.{ |
| 120984 | | .{ .src = .{ .mut_mem, .none, .none } }, |
| 120985 | | .{ .src = .{ .mut_gpr, .none, .none } }, |
| 120986 | | .{ .src = .{ .to_mut_sse, .none, .none } }, |
| 120987 | | }, |
| 120988 | | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| 120989 | | .each = .{ .once = &.{} }, |
| 120990 | | }, .{ |
| 120991 | | .dst_constraints = .{ .{ .int = .dword }, .any }, |
| 120992 | | .src_constraints = .{ .{ .vec_len = 1 }, .any, .any }, |
| 120993 | | .patterns = &.{ |
| 120994 | | .{ .src = .{ .mut_mem, .none, .none } }, |
| 120995 | | .{ .src = .{ .to_mut_gpr, .none, .none } }, |
| 120996 | | }, |
| 120997 | | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| 120998 | | .each = .{ .once = &.{} }, |
| 120999 | 120919 | }, .{ |
| 121000 | 120920 | .required_features = .{ .avx, null, null, null }, |
| 121001 | 120921 | .dst_constraints = .{ .{ .int = .dword }, .any }, |
| ... | ... | @@ -121316,7 +121236,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 121316 | 121236 | .unused, |
| 121317 | 121237 | .unused, |
| 121318 | 121238 | }, |
| 121319 | | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 121239 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 121320 | 121240 | .each = .{ .once = &.{ |
| 121321 | 121241 | .{ ._, .v_dqa, .mov, .dst0y, .mem(.src0y), ._, ._ }, |
| 121322 | 121242 | .{ ._, .vp_, mir_tag, .dst0y, .dst0y, .memd(.src0y, 32), ._ }, |
| ... | ... | @@ -121354,7 +121274,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 121354 | 121274 | .unused, |
| 121355 | 121275 | .unused, |
| 121356 | 121276 | }, |
| 121357 | | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 121277 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 121358 | 121278 | .each = .{ .once = &.{ |
| 121359 | 121279 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 121360 | 121280 | .{ ._, .v_dqa, .mov, .dst0y, .mem(.src0y), ._, ._ }, |
| ... | ... | @@ -121398,6 +121318,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 121398 | 121318 | .unused, |
| 121399 | 121319 | }, |
| 121400 | 121320 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 121321 | .clobbers = .{ .eflags = true }, |
| 121401 | 121322 | .each = .{ .once = &.{ |
| 121402 | 121323 | .{ ._, ._, .mov, .tmp0d, .sia(-64, .src0, .add_unaligned_size), ._, ._ }, |
| 121403 | 121324 | .{ ._, .v_dqa, .mov, .dst0y, .memad(.src0y, .add_unaligned_size, -32), ._, ._ }, |
| ... | ... | @@ -121432,6 +121353,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 121432 | 121353 | .unused, |
| 121433 | 121354 | }, |
| 121434 | 121355 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 121356 | .clobbers = .{ .eflags = true }, |
| 121435 | 121357 | .each = .{ .once = &.{ |
| 121436 | 121358 | .{ ._, ._, .mov, .tmp0d, .sia(-64, .src0, .add_unaligned_size), ._, ._ }, |
| 121437 | 121359 | .{ ._, .v_ps, .mova, .dst0y, .memad(.src0y, .add_unaligned_size, -32), ._, ._ }, |
| ... | ... | @@ -121466,6 +121388,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 121466 | 121388 | .unused, |
| 121467 | 121389 | }, |
| 121468 | 121390 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 121391 | .clobbers = .{ .eflags = true }, |
| 121469 | 121392 | .each = .{ .once = &.{ |
| 121470 | 121393 | .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_unaligned_size), ._, ._ }, |
| 121471 | 121394 | .{ ._, ._dqa, .mov, .dst0x, .memad(.src0x, .add_unaligned_size, -16), ._, ._ }, |
| ... | ... | @@ -121505,6 +121428,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 121505 | 121428 | .unused, |
| 121506 | 121429 | }, |
| 121507 | 121430 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 121431 | .clobbers = .{ .eflags = true }, |
| 121508 | 121432 | .each = .{ .once = &.{ |
| 121509 | 121433 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 121510 | 121434 | .{ ._, .v_dqa, .mov, .dst0y, .lea(.tmp0y), ._, ._ }, |
| ... | ... | @@ -121560,6 +121484,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 121560 | 121484 | .unused, |
| 121561 | 121485 | }, |
| 121562 | 121486 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 121487 | .clobbers = .{ .eflags = true }, |
| 121563 | 121488 | .each = .{ .once = &.{ |
| 121564 | 121489 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 121565 | 121490 | .{ ._, .v_dqa, .mov, .dst0y, .lea(.tmp0y), ._, ._ }, |
| ... | ... | @@ -121607,6 +121532,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 121607 | 121532 | .unused, |
| 121608 | 121533 | }, |
| 121609 | 121534 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 121535 | .clobbers = .{ .eflags = true }, |
| 121610 | 121536 | .each = .{ .once = &.{ |
| 121611 | 121537 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 121612 | 121538 | .{ ._, .v_ps, .mova, .dst0y, .lea(.tmp0y), ._, ._ }, |
| ... | ... | @@ -121654,6 +121580,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 121654 | 121580 | .unused, |
| 121655 | 121581 | }, |
| 121656 | 121582 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 121583 | .clobbers = .{ .eflags = true }, |
| 121657 | 121584 | .each = .{ .once = &.{ |
| 121658 | 121585 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 121659 | 121586 | .{ ._, ._dqa, .mov, .dst0x, .lea(.tmp0x), ._, ._ }, |
| ... | ... | @@ -121673,7 +121600,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 121673 | 121600 | } }, |
| 121674 | 121601 | }, .{ |
| 121675 | 121602 | .dst_constraints = .{ .{ .int = .dword }, .any }, |
| 121676 | | .src_constraints = .{ .{ .unaligned_multiple_scalar_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 121603 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 121677 | 121604 | .patterns = &.{ |
| 121678 | 121605 | .{ .src = .{ .to_mem, .none, .none } }, |
| 121679 | 121606 | }, |
| ... | ... | @@ -121699,27 +121626,6 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 121699 | 121626 | .{ ._, ._, .sub, .tmp0d, .si(4), ._, ._ }, |
| 121700 | 121627 | .{ ._, ._nb, .j, .@"0b", ._, ._, ._ }, |
| 121701 | 121628 | } }, |
| 121702 | | }, .{ |
| 121703 | | .required_features = .{ .sse, null, null, null }, |
| 121704 | | .dst_constraints = .{ .{ .int = .qword }, .any }, |
| 121705 | | .src_constraints = .{ .{ .vec_len = 1 }, .any, .any }, |
| 121706 | | .patterns = &.{ |
| 121707 | | .{ .src = .{ .mut_mem, .none, .none } }, |
| 121708 | | .{ .src = .{ .mut_gpr, .none, .none } }, |
| 121709 | | .{ .src = .{ .to_mut_sse, .none, .none } }, |
| 121710 | | }, |
| 121711 | | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| 121712 | | .each = .{ .once = &.{} }, |
| 121713 | | }, .{ |
| 121714 | | .required_features = .{ .@"64bit", null, null, null }, |
| 121715 | | .dst_constraints = .{ .{ .int = .qword }, .any }, |
| 121716 | | .src_constraints = .{ .{ .vec_len = 1 }, .any, .any }, |
| 121717 | | .patterns = &.{ |
| 121718 | | .{ .src = .{ .mut_mem, .none, .none } }, |
| 121719 | | .{ .src = .{ .to_mut_gpr, .none, .none } }, |
| 121720 | | }, |
| 121721 | | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| 121722 | | .each = .{ .once = &.{} }, |
| 121723 | 121629 | }, .{ |
| 121724 | 121630 | .required_features = .{ .avx, null, null, null }, |
| 121725 | 121631 | .dst_constraints = .{ .{ .int = .qword }, .any }, |
| ... | ... | @@ -121898,7 +121804,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 121898 | 121804 | .unused, |
| 121899 | 121805 | .unused, |
| 121900 | 121806 | }, |
| 121901 | | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 121807 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 121902 | 121808 | .each = .{ .once = &.{ |
| 121903 | 121809 | .{ ._, .v_dqa, .mov, .dst0y, .mem(.src0y), ._, ._ }, |
| 121904 | 121810 | .{ ._, .vp_, mir_tag, .dst0y, .dst0y, .memd(.src0y, 32), ._ }, |
| ... | ... | @@ -121934,7 +121840,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 121934 | 121840 | .unused, |
| 121935 | 121841 | .unused, |
| 121936 | 121842 | }, |
| 121937 | | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 121843 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 121938 | 121844 | .each = .{ .once = &.{ |
| 121939 | 121845 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 121940 | 121846 | .{ ._, .v_dqa, .mov, .dst0y, .mem(.src0y), ._, ._ }, |
| ... | ... | @@ -121976,6 +121882,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 121976 | 121882 | .unused, |
| 121977 | 121883 | }, |
| 121978 | 121884 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 121885 | .clobbers = .{ .eflags = true }, |
| 121979 | 121886 | .each = .{ .once = &.{ |
| 121980 | 121887 | .{ ._, ._, .mov, .tmp0d, .sia(-64, .src0, .add_unaligned_size), ._, ._ }, |
| 121981 | 121888 | .{ ._, .v_dqa, .mov, .dst0y, .memad(.src0y, .add_unaligned_size, -32), ._, ._ }, |
| ... | ... | @@ -122008,6 +121915,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 122008 | 121915 | .unused, |
| 122009 | 121916 | }, |
| 122010 | 121917 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 121918 | .clobbers = .{ .eflags = true }, |
| 122011 | 121919 | .each = .{ .once = &.{ |
| 122012 | 121920 | .{ ._, ._, .mov, .tmp0d, .sia(-64, .src0, .add_unaligned_size), ._, ._ }, |
| 122013 | 121921 | .{ ._, .v_ps, .mova, .dst0y, .memad(.src0y, .add_unaligned_size, -32), ._, ._ }, |
| ... | ... | @@ -122040,6 +121948,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 122040 | 121948 | .unused, |
| 122041 | 121949 | }, |
| 122042 | 121950 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 121951 | .clobbers = .{ .eflags = true }, |
| 122043 | 121952 | .each = .{ .once = &.{ |
| 122044 | 121953 | .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_unaligned_size), ._, ._ }, |
| 122045 | 121954 | .{ ._, ._dqa, .mov, .dst0x, .memad(.src0x, .add_unaligned_size, -16), ._, ._ }, |
| ... | ... | @@ -122077,6 +121986,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 122077 | 121986 | .unused, |
| 122078 | 121987 | }, |
| 122079 | 121988 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 121989 | .clobbers = .{ .eflags = true }, |
| 122080 | 121990 | .each = .{ .once = &.{ |
| 122081 | 121991 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 122082 | 121992 | .{ ._, .v_dqa, .mov, .dst0y, .lea(.tmp0y), ._, ._ }, |
| ... | ... | @@ -122130,6 +122040,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 122130 | 122040 | .unused, |
| 122131 | 122041 | }, |
| 122132 | 122042 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 122043 | .clobbers = .{ .eflags = true }, |
| 122133 | 122044 | .each = .{ .once = &.{ |
| 122134 | 122045 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 122135 | 122046 | .{ ._, .v_dqa, .mov, .dst0y, .lea(.tmp0y), ._, ._ }, |
| ... | ... | @@ -122175,6 +122086,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 122175 | 122086 | .unused, |
| 122176 | 122087 | }, |
| 122177 | 122088 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 122089 | .clobbers = .{ .eflags = true }, |
| 122178 | 122090 | .each = .{ .once = &.{ |
| 122179 | 122091 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 122180 | 122092 | .{ ._, .v_ps, .mova, .dst0y, .lea(.tmp0y), ._, ._ }, |
| ... | ... | @@ -122220,6 +122132,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 122220 | 122132 | .unused, |
| 122221 | 122133 | }, |
| 122222 | 122134 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 122135 | .clobbers = .{ .eflags = true }, |
| 122223 | 122136 | .each = .{ .once = &.{ |
| 122224 | 122137 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 122225 | 122138 | .{ ._, ._dqa, .mov, .dst0x, .lea(.tmp0x), ._, ._ }, |
| ... | ... | @@ -122238,7 +122151,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 122238 | 122151 | }, .{ |
| 122239 | 122152 | .required_features = .{ .@"64bit", null, null, null }, |
| 122240 | 122153 | .dst_constraints = .{ .{ .int = .qword }, .any }, |
| 122241 | | .src_constraints = .{ .{ .unaligned_multiple_scalar_int = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 122154 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 122242 | 122155 | .patterns = &.{ |
| 122243 | 122156 | .{ .src = .{ .to_mem, .none, .none } }, |
| 122244 | 122157 | }, |
| ... | ... | @@ -122264,25 +122177,6 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 122264 | 122177 | .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ }, |
| 122265 | 122178 | .{ ._, ._nb, .j, .@"0b", ._, ._, ._ }, |
| 122266 | 122179 | } }, |
| 122267 | | }, .{ |
| 122268 | | .required_features = .{ .sse, null, null, null }, |
| 122269 | | .dst_constraints = .{ .{ .int = .xword }, .any }, |
| 122270 | | .src_constraints = .{ .{ .vec_len = 1 }, .any, .any }, |
| 122271 | | .patterns = &.{ |
| 122272 | | .{ .src = .{ .mut_mem, .none, .none } }, |
| 122273 | | .{ .src = .{ .mut_gpr, .none, .none } }, |
| 122274 | | .{ .src = .{ .to_mut_sse, .none, .none } }, |
| 122275 | | }, |
| 122276 | | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| 122277 | | .each = .{ .once = &.{} }, |
| 122278 | | }, .{ |
| 122279 | | .dst_constraints = .{ .{ .int = .xword }, .any }, |
| 122280 | | .src_constraints = .{ .{ .vec_len = 1 }, .any, .any }, |
| 122281 | | .patterns = &.{ |
| 122282 | | .{ .src = .{ .to_mut_mem, .none, .none } }, |
| 122283 | | }, |
| 122284 | | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| 122285 | | .each = .{ .once = &.{} }, |
| 122286 | 122180 | }, .{ |
| 122287 | 122181 | .required_features = .{ .avx2, null, null, null }, |
| 122288 | 122182 | .dst_constraints = .{ .{ .int = .xword }, .any }, |
| ... | ... | @@ -122353,7 +122247,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 122353 | 122247 | .unused, |
| 122354 | 122248 | .unused, |
| 122355 | 122249 | }, |
| 122356 | | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 122250 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 122357 | 122251 | .each = .{ .once = &.{ |
| 122358 | 122252 | .{ ._, .v_dqa, .mov, .dst0y, .mem(.src0y), ._, ._ }, |
| 122359 | 122253 | .{ ._, .vp_, mir_tag, .dst0y, .dst0y, .memd(.src0y, 32), ._ }, |
| ... | ... | @@ -122408,6 +122302,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 122408 | 122302 | .unused, |
| 122409 | 122303 | }, |
| 122410 | 122304 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 122305 | .clobbers = .{ .eflags = true }, |
| 122411 | 122306 | .each = .{ .once = &.{ |
| 122412 | 122307 | .{ ._, ._, .mov, .tmp0d, .sia(-64, .src0, .add_unaligned_size), ._, ._ }, |
| 122413 | 122308 | .{ ._, .v_dqa, .mov, .dst0y, .memad(.src0y, .add_unaligned_size, -32), ._, ._ }, |
| ... | ... | @@ -122438,6 +122333,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 122438 | 122333 | .unused, |
| 122439 | 122334 | }, |
| 122440 | 122335 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 122336 | .clobbers = .{ .eflags = true }, |
| 122441 | 122337 | .each = .{ .once = &.{ |
| 122442 | 122338 | .{ ._, ._, .mov, .tmp0d, .sia(-64, .src0, .add_unaligned_size), ._, ._ }, |
| 122443 | 122339 | .{ ._, .v_ps, .mova, .dst0y, .memad(.src0y, .add_unaligned_size, -32), ._, ._ }, |
| ... | ... | @@ -122450,7 +122346,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 122450 | 122346 | }, .{ |
| 122451 | 122347 | .required_features = .{ .sse2, null, null, null }, |
| 122452 | 122348 | .dst_constraints = .{ .{ .int = .xword }, .any }, |
| 122453 | | .src_constraints = .{ .{ .unaligned_multiple_scalar_int = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 122349 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 122454 | 122350 | .patterns = &.{ |
| 122455 | 122351 | .{ .src = .{ .to_mem, .none, .none } }, |
| 122456 | 122352 | }, |
| ... | ... | @@ -122468,6 +122364,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 122468 | 122364 | .unused, |
| 122469 | 122365 | }, |
| 122470 | 122366 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 122367 | .clobbers = .{ .eflags = true }, |
| 122471 | 122368 | .each = .{ .once = &.{ |
| 122472 | 122369 | .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_unaligned_size), ._, ._ }, |
| 122473 | 122370 | .{ ._, ._dqa, .mov, .dst0x, .memad(.src0x, .add_unaligned_size, -16), ._, ._ }, |
| ... | ... | @@ -122503,6 +122400,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 122503 | 122400 | .unused, |
| 122504 | 122401 | }, |
| 122505 | 122402 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 122403 | .clobbers = .{ .eflags = true }, |
| 122506 | 122404 | .each = .{ .once = &.{ |
| 122507 | 122405 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 122508 | 122406 | .{ ._, .v_dqa, .mov, .dst0y, .lea(.tmp0y), ._, ._ }, |
| ... | ... | @@ -122554,6 +122452,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 122554 | 122452 | .unused, |
| 122555 | 122453 | }, |
| 122556 | 122454 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 122455 | .clobbers = .{ .eflags = true }, |
| 122557 | 122456 | .each = .{ .once = &.{ |
| 122558 | 122457 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 122559 | 122458 | .{ ._, .v_dqa, .mov, .dst0y, .lea(.tmp0y), ._, ._ }, |
| ... | ... | @@ -122597,6 +122496,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 122597 | 122496 | .unused, |
| 122598 | 122497 | }, |
| 122599 | 122498 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 122499 | .clobbers = .{ .eflags = true }, |
| 122600 | 122500 | .each = .{ .once = &.{ |
| 122601 | 122501 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 122602 | 122502 | .{ ._, .v_ps, .mova, .dst0y, .lea(.tmp0y), ._, ._ }, |
| ... | ... | @@ -122640,6 +122540,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 122640 | 122540 | .unused, |
| 122641 | 122541 | }, |
| 122642 | 122542 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 122543 | .clobbers = .{ .eflags = true }, |
| 122643 | 122544 | .each = .{ .once = &.{ |
| 122644 | 122545 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 122645 | 122546 | .{ ._, ._dqa, .mov, .dst0x, .lea(.tmp0x), ._, ._ }, |
| ... | ... | @@ -122653,25 +122554,6 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 122653 | 122554 | .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ }, |
| 122654 | 122555 | .{ ._, ._nb, .j, .@"0b", ._, ._, ._ }, |
| 122655 | 122556 | } }, |
| 122656 | | }, .{ |
| 122657 | | .required_features = .{ .avx, null, null, null }, |
| 122658 | | .dst_constraints = .{ .{ .int = .yword }, .any }, |
| 122659 | | .src_constraints = .{ .{ .vec_len = 1 }, .any, .any }, |
| 122660 | | .patterns = &.{ |
| 122661 | | .{ .src = .{ .mut_mem, .none, .none } }, |
| 122662 | | .{ .src = .{ .mut_gpr, .none, .none } }, |
| 122663 | | .{ .src = .{ .to_mut_sse, .none, .none } }, |
| 122664 | | }, |
| 122665 | | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| 122666 | | .each = .{ .once = &.{} }, |
| 122667 | | }, .{ |
| 122668 | | .dst_constraints = .{ .{ .int = .yword }, .any }, |
| 122669 | | .src_constraints = .{ .{ .vec_len = 1 }, .any, .any }, |
| 122670 | | .patterns = &.{ |
| 122671 | | .{ .src = .{ .to_mut_mem, .none, .none } }, |
| 122672 | | }, |
| 122673 | | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| 122674 | | .each = .{ .once = &.{} }, |
| 122675 | 122557 | }, .{ |
| 122676 | 122558 | .required_features = .{ .avx512f, null, null, null }, |
| 122677 | 122559 | .dst_constraints = .{ .{ .int = .yword }, .any }, |
| ... | ... | @@ -122679,7 +122561,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 122679 | 122561 | .patterns = &.{ |
| 122680 | 122562 | .{ .src = .{ .to_mem, .none, .none } }, |
| 122681 | 122563 | }, |
| 122682 | | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 122564 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 122683 | 122565 | .each = .{ .once = &.{ |
| 122684 | 122566 | .{ ._, .v_dqa, .mov, .dst0y, .mem(.src0y), ._, ._ }, |
| 122685 | 122567 | .{ ._, .vp_, mir_tag, .dst0y, .dst0y, .memd(.src0y, 32), ._ }, |
| ... | ... | @@ -122687,7 +122569,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 122687 | 122569 | }, .{ |
| 122688 | 122570 | .required_features = .{ .avx2, null, null, null }, |
| 122689 | 122571 | .dst_constraints = .{ .{ .int = .yword }, .any }, |
| 122690 | | .src_constraints = .{ .{ .unaligned_multiple_scalar_int = .{ .of = .yword, .is = .yword } }, .any, .any }, |
| 122572 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .yword, .is = .yword } }, .any, .any }, |
| 122691 | 122573 | .patterns = &.{ |
| 122692 | 122574 | .{ .src = .{ .to_mem, .none, .none } }, |
| 122693 | 122575 | }, |
| ... | ... | @@ -122705,6 +122587,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 122705 | 122587 | .unused, |
| 122706 | 122588 | }, |
| 122707 | 122589 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 122590 | .clobbers = .{ .eflags = true }, |
| 122708 | 122591 | .each = .{ .once = &.{ |
| 122709 | 122592 | .{ ._, ._, .mov, .tmp0d, .sia(-64, .src0, .add_unaligned_size), ._, ._ }, |
| 122710 | 122593 | .{ ._, .v_dqa, .mov, .dst0y, .memad(.src0y, .add_unaligned_size, -32), ._, ._ }, |
| ... | ... | @@ -122715,7 +122598,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 122715 | 122598 | }, .{ |
| 122716 | 122599 | .required_features = .{ .avx, null, null, null }, |
| 122717 | 122600 | .dst_constraints = .{ .{ .int = .yword }, .any }, |
| 122718 | | .src_constraints = .{ .{ .unaligned_multiple_scalar_int = .{ .of = .yword, .is = .yword } }, .any, .any }, |
| 122601 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .yword, .is = .yword } }, .any, .any }, |
| 122719 | 122602 | .patterns = &.{ |
| 122720 | 122603 | .{ .src = .{ .to_mem, .none, .none } }, |
| 122721 | 122604 | }, |
| ... | ... | @@ -122733,6 +122616,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 122733 | 122616 | .unused, |
| 122734 | 122617 | }, |
| 122735 | 122618 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 122619 | .clobbers = .{ .eflags = true }, |
| 122736 | 122620 | .each = .{ .once = &.{ |
| 122737 | 122621 | .{ ._, ._, .mov, .tmp0d, .sia(-64, .src0, .add_unaligned_size), ._, ._ }, |
| 122738 | 122622 | .{ ._, .v_ps, .mova, .dst0y, .memad(.src0y, .add_unaligned_size, -32), ._, ._ }, |
| ... | ... | @@ -122768,6 +122652,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 122768 | 122652 | .unused, |
| 122769 | 122653 | }, |
| 122770 | 122654 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 122655 | .clobbers = .{ .eflags = true }, |
| 122771 | 122656 | .each = .{ .once = &.{ |
| 122772 | 122657 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 122773 | 122658 | .{ ._, .v_dqa, .mov, .dst0y, .lea(.tmp0y), ._, ._ }, |
| ... | ... | @@ -122817,6 +122702,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 122817 | 122702 | .unused, |
| 122818 | 122703 | }, |
| 122819 | 122704 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 122705 | .clobbers = .{ .eflags = true }, |
| 122820 | 122706 | .each = .{ .once = &.{ |
| 122821 | 122707 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 122822 | 122708 | .{ ._, .v_dqa, .mov, .dst0y, .lea(.tmp0y), ._, ._ }, |
| ... | ... | @@ -122858,6 +122744,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 122858 | 122744 | .unused, |
| 122859 | 122745 | }, |
| 122860 | 122746 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 122747 | .clobbers = .{ .eflags = true }, |
| 122861 | 122748 | .each = .{ .once = &.{ |
| 122862 | 122749 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 122863 | 122750 | .{ ._, .v_ps, .mova, .dst0y, .lea(.tmp0y), ._, ._ }, |
| ... | ... | @@ -122871,14 +122758,6 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 122871 | 122758 | .{ ._, ._, .sub, .tmp0d, .si(32), ._, ._ }, |
| 122872 | 122759 | .{ ._, ._nb, .j, .@"0b", ._, ._, ._ }, |
| 122873 | 122760 | } }, |
| 122874 | | }, .{ |
| 122875 | | .dst_constraints = .{ .any_int, .any }, |
| 122876 | | .src_constraints = .{ .{ .vec_len = 1 }, .any, .any }, |
| 122877 | | .patterns = &.{ |
| 122878 | | .{ .src = .{ .to_mut_mem, .none, .none } }, |
| 122879 | | }, |
| 122880 | | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| 122881 | | .each = .{ .once = &.{} }, |
| 122882 | 122761 | }, .{ |
| 122883 | 122762 | .required_features = .{ .@"64bit", null, null, null }, |
| 122884 | 122763 | .dst_constraints = .{ .{ .remainder_int = .{ .of = .qword, .is = .qword } }, .any }, |
| ... | ... | @@ -122920,26 +122799,6 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 122920 | 122799 | }, |
| 122921 | 122800 | .Min, .Max => unreachable, |
| 122922 | 122801 | .Add => comptime &.{ .{ |
| 122923 | | .required_features = .{ .sse, null, null, null }, |
| 122924 | | .dst_constraints = .{ .{ .int = .byte }, .any }, |
| 122925 | | .src_constraints = .{ .{ .vec_len = 1 }, .any, .any }, |
| 122926 | | .patterns = &.{ |
| 122927 | | .{ .src = .{ .mut_mem, .none, .none } }, |
| 122928 | | .{ .src = .{ .mut_gpr, .none, .none } }, |
| 122929 | | .{ .src = .{ .to_mut_sse, .none, .none } }, |
| 122930 | | }, |
| 122931 | | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| 122932 | | .each = .{ .once = &.{} }, |
| 122933 | | }, .{ |
| 122934 | | .dst_constraints = .{ .{ .int = .byte }, .any }, |
| 122935 | | .src_constraints = .{ .{ .vec_len = 1 }, .any, .any }, |
| 122936 | | .patterns = &.{ |
| 122937 | | .{ .src = .{ .mut_mem, .none, .none } }, |
| 122938 | | .{ .src = .{ .to_mut_gpr, .none, .none } }, |
| 122939 | | }, |
| 122940 | | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| 122941 | | .each = .{ .once = &.{} }, |
| 122942 | | }, .{ |
| 122943 | 122802 | .required_features = .{ .avx, null, null, null }, |
| 122944 | 122803 | .dst_constraints = .{ .{ .int = .byte }, .any }, |
| 122945 | 122804 | .src_constraints = .{ .{ .scalar_int = .{ .of = .word, .is = .byte } }, .any, .any }, |
| ... | ... | @@ -123513,7 +123372,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 123513 | 123372 | .unused, |
| 123514 | 123373 | .unused, |
| 123515 | 123374 | }, |
| 123516 | | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 123375 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 123517 | 123376 | .each = .{ .once = &.{ |
| 123518 | 123377 | .{ ._, .v_dqa, .mov, .dst0y, .mem(.src0y), ._, ._ }, |
| 123519 | 123378 | .{ ._, .vp_b, .add, .dst0y, .dst0y, .memd(.src0y, 32), ._ }, |
| ... | ... | @@ -123548,7 +123407,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 123548 | 123407 | .unused, |
| 123549 | 123408 | .unused, |
| 123550 | 123409 | }, |
| 123551 | | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 123410 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 123552 | 123411 | .each = .{ .once = &.{ |
| 123553 | 123412 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 123554 | 123413 | .{ ._, .v_dqa, .mov, .dst0y, .mem(.src0y), ._, ._ }, |
| ... | ... | @@ -123588,6 +123447,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 123588 | 123447 | .unused, |
| 123589 | 123448 | }, |
| 123590 | 123449 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 123450 | .clobbers = .{ .eflags = true }, |
| 123591 | 123451 | .each = .{ .once = &.{ |
| 123592 | 123452 | .{ ._, ._, .mov, .tmp0d, .sia(-64, .src0, .add_unaligned_size), ._, ._ }, |
| 123593 | 123453 | .{ ._, .v_dqa, .mov, .dst0y, .memad(.src0y, .add_unaligned_size, -32), ._, ._ }, |
| ... | ... | @@ -123626,6 +123486,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 123626 | 123486 | .unused, |
| 123627 | 123487 | }, |
| 123628 | 123488 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 123489 | .clobbers = .{ .eflags = true }, |
| 123629 | 123490 | .each = .{ .once = &.{ |
| 123630 | 123491 | .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_unaligned_size), ._, ._ }, |
| 123631 | 123492 | .{ ._, .v_dqa, .mov, .dst0x, .memad(.src0x, .add_unaligned_size, -16), ._, ._ }, |
| ... | ... | @@ -123662,6 +123523,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 123662 | 123523 | .unused, |
| 123663 | 123524 | }, |
| 123664 | 123525 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 123526 | .clobbers = .{ .eflags = true }, |
| 123665 | 123527 | .each = .{ .once = &.{ |
| 123666 | 123528 | .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_unaligned_size), ._, ._ }, |
| 123667 | 123529 | .{ ._, ._dqa, .mov, .dst0x, .memad(.src0x, .add_unaligned_size, -16), ._, ._ }, |
| ... | ... | @@ -123700,6 +123562,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 123700 | 123562 | .unused, |
| 123701 | 123563 | }, |
| 123702 | 123564 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 123565 | .clobbers = .{ .eflags = true }, |
| 123703 | 123566 | .each = .{ .once = &.{ |
| 123704 | 123567 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 123705 | 123568 | .{ ._, .v_dqa, .mov, .dst0y, .lea(.tmp0y), ._, ._ }, |
| ... | ... | @@ -123744,6 +123607,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 123744 | 123607 | .unused, |
| 123745 | 123608 | }, |
| 123746 | 123609 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 123610 | .clobbers = .{ .eflags = true }, |
| 123747 | 123611 | .each = .{ .once = &.{ |
| 123748 | 123612 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 123749 | 123613 | .{ ._, .v_dqa, .mov, .dst0y, .lea(.tmp0y), ._, ._ }, |
| ... | ... | @@ -123784,6 +123648,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 123784 | 123648 | .unused, |
| 123785 | 123649 | }, |
| 123786 | 123650 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 123651 | .clobbers = .{ .eflags = true }, |
| 123787 | 123652 | .each = .{ .once = &.{ |
| 123788 | 123653 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 123789 | 123654 | .{ ._, .v_ps, .mova, .dst0y, .lea(.tmp0y), ._, ._ }, |
| ... | ... | @@ -123824,6 +123689,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 123824 | 123689 | .unused, |
| 123825 | 123690 | }, |
| 123826 | 123691 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 123692 | .clobbers = .{ .eflags = true }, |
| 123827 | 123693 | .each = .{ .once = &.{ |
| 123828 | 123694 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 123829 | 123695 | .{ ._, ._dqa, .mov, .dst0x, .lea(.tmp0x), ._, ._ }, |
| ... | ... | @@ -123846,7 +123712,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 123846 | 123712 | }, .{ |
| 123847 | 123713 | .required_features = .{ .slow_incdec, null, null, null }, |
| 123848 | 123714 | .dst_constraints = .{ .{ .int = .byte }, .any }, |
| 123849 | | .src_constraints = .{ .{ .unaligned_multiple_scalar_int = .{ .of = .byte, .is = .byte } }, .any, .any }, |
| 123715 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .byte, .is = .byte } }, .any, .any }, |
| 123850 | 123716 | .patterns = &.{ |
| 123851 | 123717 | .{ .src = .{ .to_mem, .none, .none } }, |
| 123852 | 123718 | }, |
| ... | ... | @@ -123874,7 +123740,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 123874 | 123740 | } }, |
| 123875 | 123741 | }, .{ |
| 123876 | 123742 | .dst_constraints = .{ .{ .int = .byte }, .any }, |
| 123877 | | .src_constraints = .{ .{ .unaligned_multiple_scalar_int = .{ .of = .byte, .is = .byte } }, .any, .any }, |
| 123743 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .byte, .is = .byte } }, .any, .any }, |
| 123878 | 123744 | .patterns = &.{ |
| 123879 | 123745 | .{ .src = .{ .to_mem, .none, .none } }, |
| 123880 | 123746 | }, |
| ... | ... | @@ -123901,25 +123767,16 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 123901 | 123767 | .{ ._, ._ns, .j, .@"0b", ._, ._, ._ }, |
| 123902 | 123768 | } }, |
| 123903 | 123769 | }, .{ |
| 123904 | | .required_features = .{ .sse, null, null, null }, |
| 123905 | | .dst_constraints = .{ .{ .int = .word }, .any }, |
| 123906 | | .src_constraints = .{ .{ .vec_len = 1 }, .any, .any }, |
| 123907 | | .patterns = &.{ |
| 123908 | | .{ .src = .{ .mut_mem, .none, .none } }, |
| 123909 | | .{ .src = .{ .mut_gpr, .none, .none } }, |
| 123910 | | .{ .src = .{ .to_mut_sse, .none, .none } }, |
| 123911 | | }, |
| 123912 | | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| 123913 | | .each = .{ .once = &.{} }, |
| 123914 | | }, .{ |
| 123770 | .required_features = .{ .avx, .fast_hops, null, null }, |
| 123915 | 123771 | .dst_constraints = .{ .{ .int = .word }, .any }, |
| 123916 | | .src_constraints = .{ .{ .vec_len = 1 }, .any, .any }, |
| 123772 | .src_constraints = .{ .{ .scalar_int = .{ .of = .dword, .is = .word } }, .any, .any }, |
| 123917 | 123773 | .patterns = &.{ |
| 123918 | | .{ .src = .{ .mut_mem, .none, .none } }, |
| 123919 | | .{ .src = .{ .to_mut_gpr, .none, .none } }, |
| 123774 | .{ .src = .{ .to_sse, .none, .none } }, |
| 123920 | 123775 | }, |
| 123921 | | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| 123922 | | .each = .{ .once = &.{} }, |
| 123776 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 123777 | .each = .{ .once = &.{ |
| 123778 | .{ ._, .vph_w, .add, .dst0x, .src0x, .src0x, ._ }, |
| 123779 | } }, |
| 123923 | 123780 | }, .{ |
| 123924 | 123781 | .required_features = .{ .avx, null, null, null }, |
| 123925 | 123782 | .dst_constraints = .{ .{ .int = .word }, .any }, |
| ... | ... | @@ -123945,6 +123802,17 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 123945 | 123802 | .{ ._, .vp_d, .srl, .tmp0x, .src0x, .ui(16), ._ }, |
| 123946 | 123803 | .{ ._, .vp_w, .add, .dst0x, .src0x, .tmp0x, ._ }, |
| 123947 | 123804 | } }, |
| 123805 | }, .{ |
| 123806 | .required_features = .{ .ssse3, .fast_hops, null, null }, |
| 123807 | .dst_constraints = .{ .{ .int = .word }, .any }, |
| 123808 | .src_constraints = .{ .{ .scalar_int = .{ .of = .dword, .is = .word } }, .any, .any }, |
| 123809 | .patterns = &.{ |
| 123810 | .{ .src = .{ .to_mut_sse, .none, .none } }, |
| 123811 | }, |
| 123812 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| 123813 | .each = .{ .once = &.{ |
| 123814 | .{ ._, .ph_w, .add, .dst0x, .src0x, ._, ._ }, |
| 123815 | } }, |
| 123948 | 123816 | }, .{ |
| 123949 | 123817 | .required_features = .{ .sse2, null, null, null }, |
| 123950 | 123818 | .dst_constraints = .{ .{ .int = .word }, .any }, |
| ... | ... | @@ -123971,6 +123839,18 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 123971 | 123839 | .{ ._, .p_d, .srl, .tmp0x, .ui(16), ._, ._ }, |
| 123972 | 123840 | .{ ._, .p_w, .add, .dst0x, .tmp0x, ._, ._ }, |
| 123973 | 123841 | } }, |
| 123842 | }, .{ |
| 123843 | .required_features = .{ .avx, .fast_hops, null, null }, |
| 123844 | .dst_constraints = .{ .{ .int = .word }, .any }, |
| 123845 | .src_constraints = .{ .{ .exact_scalar_int = .{ .of = .qword, .is = .word } }, .any, .any }, |
| 123846 | .patterns = &.{ |
| 123847 | .{ .src = .{ .to_sse, .none, .none } }, |
| 123848 | }, |
| 123849 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 123850 | .each = .{ .once = &.{ |
| 123851 | .{ ._, .vph_w, .add, .dst0x, .src0x, .src0x, ._ }, |
| 123852 | .{ ._, .vph_w, .add, .dst0x, .dst0x, .dst0x, ._ }, |
| 123853 | } }, |
| 123974 | 123854 | }, .{ |
| 123975 | 123855 | .required_features = .{ .avx, null, null, null }, |
| 123976 | 123856 | .dst_constraints = .{ .{ .int = .word }, .any }, |
| ... | ... | @@ -123998,6 +123878,18 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 123998 | 123878 | .{ ._, .vp_d, .srl, .tmp0x, .dst0x, .ui(16), ._ }, |
| 123999 | 123879 | .{ ._, .vp_w, .add, .dst0x, .dst0x, .tmp0x, ._ }, |
| 124000 | 123880 | } }, |
| 123881 | }, .{ |
| 123882 | .required_features = .{ .ssse3, .fast_hops, null, null }, |
| 123883 | .dst_constraints = .{ .{ .int = .word }, .any }, |
| 123884 | .src_constraints = .{ .{ .exact_scalar_int = .{ .of = .qword, .is = .word } }, .any, .any }, |
| 123885 | .patterns = &.{ |
| 123886 | .{ .src = .{ .to_mut_sse, .none, .none } }, |
| 123887 | }, |
| 123888 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| 123889 | .each = .{ .once = &.{ |
| 123890 | .{ ._, .ph_w, .add, .dst0x, .src0x, ._, ._ }, |
| 123891 | .{ ._, .ph_w, .add, .dst0x, .dst0x, ._, ._ }, |
| 123892 | } }, |
| 124001 | 123893 | }, .{ |
| 124002 | 123894 | .required_features = .{ .sse2, null, null, null }, |
| 124003 | 123895 | .dst_constraints = .{ .{ .int = .word }, .any }, |
| ... | ... | @@ -124026,6 +123918,32 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 124026 | 123918 | .{ ._, .p_d, .srl, .tmp0x, .ui(16), ._, ._ }, |
| 124027 | 123919 | .{ ._, .p_w, .add, .dst0x, .tmp0x, ._, ._ }, |
| 124028 | 123920 | } }, |
| 123921 | }, .{ |
| 123922 | .required_features = .{ .avx, .fast_hops, null, null }, |
| 123923 | .dst_constraints = .{ .{ .int = .word }, .any }, |
| 123924 | .src_constraints = .{ .{ .scalar_int = .{ .of = .qword, .is = .word } }, .any, .any }, |
| 123925 | .patterns = &.{ |
| 123926 | .{ .src = .{ .to_sse, .none, .none } }, |
| 123927 | }, |
| 123928 | .extra_temps = .{ |
| 123929 | .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } }, |
| 123930 | .unused, |
| 123931 | .unused, |
| 123932 | .unused, |
| 123933 | .unused, |
| 123934 | .unused, |
| 123935 | .unused, |
| 123936 | .unused, |
| 123937 | .unused, |
| 123938 | .unused, |
| 123939 | .unused, |
| 123940 | }, |
| 123941 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 123942 | .each = .{ .once = &.{ |
| 123943 | .{ ._, .vph_w, .add, .tmp0x, .src0x, .src0x, ._ }, |
| 123944 | .{ ._, .vp_d, .shuf, .dst0x, .src0x, .ui(0b01_01_01_01), ._ }, |
| 123945 | .{ ._, .vp_w, .add, .dst0x, .tmp0x, .dst0x, ._ }, |
| 123946 | } }, |
| 124029 | 123947 | }, .{ |
| 124030 | 123948 | .required_features = .{ .avx, null, null, null }, |
| 124031 | 123949 | .dst_constraints = .{ .{ .int = .word }, .any }, |
| ... | ... | @@ -124053,6 +123971,32 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 124053 | 123971 | .{ ._, .vp_d, .srl, .dst0x, .src0x, .ui(16), ._ }, |
| 124054 | 123972 | .{ ._, .vp_w, .add, .dst0x, .tmp0x, .dst0x, ._ }, |
| 124055 | 123973 | } }, |
| 123974 | }, .{ |
| 123975 | .required_features = .{ .ssse3, .fast_hops, null, null }, |
| 123976 | .dst_constraints = .{ .{ .int = .word }, .any }, |
| 123977 | .src_constraints = .{ .{ .scalar_int = .{ .of = .qword, .is = .word } }, .any, .any }, |
| 123978 | .patterns = &.{ |
| 123979 | .{ .src = .{ .to_mut_sse, .none, .none } }, |
| 123980 | }, |
| 123981 | .extra_temps = .{ |
| 123982 | .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } }, |
| 123983 | .unused, |
| 123984 | .unused, |
| 123985 | .unused, |
| 123986 | .unused, |
| 123987 | .unused, |
| 123988 | .unused, |
| 123989 | .unused, |
| 123990 | .unused, |
| 123991 | .unused, |
| 123992 | .unused, |
| 123993 | }, |
| 123994 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| 123995 | .each = .{ .once = &.{ |
| 123996 | .{ ._, .p_d, .shuf, .tmp0x, .src0x, .ui(0b01_01_01_01), ._ }, |
| 123997 | .{ ._, .ph_w, .add, .dst0x, .src0x, ._, ._ }, |
| 123998 | .{ ._, .p_w, .add, .dst0x, .tmp0x, ._, ._ }, |
| 123999 | } }, |
| 124056 | 124000 | }, .{ |
| 124057 | 124001 | .required_features = .{ .sse2, null, null, null }, |
| 124058 | 124002 | .dst_constraints = .{ .{ .int = .word }, .any }, |
| ... | ... | @@ -124080,6 +124024,19 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 124080 | 124024 | .{ ._, .p_d, .srl, .dst0x, .ui(16), ._, ._ }, |
| 124081 | 124025 | .{ ._, .p_w, .add, .dst0x, .tmp0x, ._, ._ }, |
| 124082 | 124026 | } }, |
| 124027 | }, .{ |
| 124028 | .required_features = .{ .avx, .fast_hops, null, null }, |
| 124029 | .dst_constraints = .{ .{ .int = .word }, .any }, |
| 124030 | .src_constraints = .{ .{ .exact_scalar_int = .{ .of = .xword, .is = .word } }, .any, .any }, |
| 124031 | .patterns = &.{ |
| 124032 | .{ .src = .{ .to_sse, .none, .none } }, |
| 124033 | }, |
| 124034 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 124035 | .each = .{ .once = &.{ |
| 124036 | .{ ._, .vph_w, .add, .dst0x, .src0x, .src0x, ._ }, |
| 124037 | .{ ._, .vph_w, .add, .dst0x, .dst0x, .dst0x, ._ }, |
| 124038 | .{ ._, .vph_w, .add, .dst0x, .dst0x, .dst0x, ._ }, |
| 124039 | } }, |
| 124083 | 124040 | }, .{ |
| 124084 | 124041 | .required_features = .{ .avx, null, null, null }, |
| 124085 | 124042 | .dst_constraints = .{ .{ .int = .word }, .any }, |
| ... | ... | @@ -124109,6 +124066,19 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 124109 | 124066 | .{ ._, .vp_d, .srl, .tmp0x, .dst0x, .ui(16), ._ }, |
| 124110 | 124067 | .{ ._, .vp_w, .add, .dst0x, .dst0x, .tmp0x, ._ }, |
| 124111 | 124068 | } }, |
| 124069 | }, .{ |
| 124070 | .required_features = .{ .ssse3, .fast_hops, null, null }, |
| 124071 | .dst_constraints = .{ .{ .int = .word }, .any }, |
| 124072 | .src_constraints = .{ .{ .exact_scalar_int = .{ .of = .xword, .is = .word } }, .any, .any }, |
| 124073 | .patterns = &.{ |
| 124074 | .{ .src = .{ .to_mut_sse, .none, .none } }, |
| 124075 | }, |
| 124076 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| 124077 | .each = .{ .once = &.{ |
| 124078 | .{ ._, .ph_w, .add, .dst0x, .src0x, ._, ._ }, |
| 124079 | .{ ._, .ph_w, .add, .dst0x, .dst0x, ._, ._ }, |
| 124080 | .{ ._, .ph_w, .add, .dst0x, .dst0x, ._, ._ }, |
| 124081 | } }, |
| 124112 | 124082 | }, .{ |
| 124113 | 124083 | .required_features = .{ .sse2, null, null, null }, |
| 124114 | 124084 | .dst_constraints = .{ .{ .int = .word }, .any }, |
| ... | ... | @@ -124139,6 +124109,34 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 124139 | 124109 | .{ ._, .p_d, .srl, .tmp0x, .ui(16), ._, ._ }, |
| 124140 | 124110 | .{ ._, .p_w, .add, .dst0x, .tmp0x, ._, ._ }, |
| 124141 | 124111 | } }, |
| 124112 | }, .{ |
| 124113 | .required_features = .{ .avx, .fast_hops, null, null }, |
| 124114 | .dst_constraints = .{ .{ .int = .word }, .any }, |
| 124115 | .src_constraints = .{ .{ .scalar_int = .{ .of = .xword, .is = .word } }, .any, .any }, |
| 124116 | .patterns = &.{ |
| 124117 | .{ .src = .{ .to_sse, .none, .none } }, |
| 124118 | }, |
| 124119 | .extra_temps = .{ |
| 124120 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 124121 | .{ .type = .vector_16_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } }, |
| 124122 | .unused, |
| 124123 | .unused, |
| 124124 | .unused, |
| 124125 | .unused, |
| 124126 | .unused, |
| 124127 | .unused, |
| 124128 | .unused, |
| 124129 | .unused, |
| 124130 | .unused, |
| 124131 | }, |
| 124132 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 124133 | .each = .{ .once = &.{ |
| 124134 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 124135 | .{ ._, .vp_, .@"and", .dst0x, .src0x, .lea(.tmp0x), ._ }, |
| 124136 | .{ ._, .vph_w, .add, .dst0x, .dst0x, .dst0x, ._ }, |
| 124137 | .{ ._, .vph_w, .add, .dst0x, .dst0x, .dst0x, ._ }, |
| 124138 | .{ ._, .vph_w, .add, .dst0x, .dst0x, .dst0x, ._ }, |
| 124139 | } }, |
| 124142 | 124140 | }, .{ |
| 124143 | 124141 | .required_features = .{ .avx, null, null, null }, |
| 124144 | 124142 | .dst_constraints = .{ .{ .int = .word }, .any }, |
| ... | ... | @@ -124170,6 +124168,34 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 124170 | 124168 | .{ ._, .vp_d, .srl, .tmp2x, .dst0x, .ui(16), ._ }, |
| 124171 | 124169 | .{ ._, .vp_w, .add, .dst0x, .dst0x, .tmp2x, ._ }, |
| 124172 | 124170 | } }, |
| 124171 | }, .{ |
| 124172 | .required_features = .{ .ssse3, .fast_hops, null, null }, |
| 124173 | .dst_constraints = .{ .{ .int = .word }, .any }, |
| 124174 | .src_constraints = .{ .{ .scalar_int = .{ .of = .xword, .is = .word } }, .any, .any }, |
| 124175 | .patterns = &.{ |
| 124176 | .{ .src = .{ .to_mut_sse, .none, .none } }, |
| 124177 | }, |
| 124178 | .extra_temps = .{ |
| 124179 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 124180 | .{ .type = .vector_16_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } }, |
| 124181 | .unused, |
| 124182 | .unused, |
| 124183 | .unused, |
| 124184 | .unused, |
| 124185 | .unused, |
| 124186 | .unused, |
| 124187 | .unused, |
| 124188 | .unused, |
| 124189 | .unused, |
| 124190 | }, |
| 124191 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| 124192 | .each = .{ .once = &.{ |
| 124193 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 124194 | .{ ._, .p_, .@"and", .dst0x, .lea(.tmp0x), ._, ._ }, |
| 124195 | .{ ._, .ph_w, .add, .dst0x, .dst0x, ._, ._ }, |
| 124196 | .{ ._, .ph_w, .add, .dst0x, .dst0x, ._, ._ }, |
| 124197 | .{ ._, .ph_w, .add, .dst0x, .dst0x, ._, ._ }, |
| 124198 | } }, |
| 124173 | 124199 | }, .{ |
| 124174 | 124200 | .required_features = .{ .sse2, null, null, null }, |
| 124175 | 124201 | .dst_constraints = .{ .{ .int = .word }, .any }, |
| ... | ... | @@ -124202,6 +124228,21 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 124202 | 124228 | .{ ._, .p_d, .srl, .tmp2x, .ui(16), ._, ._ }, |
| 124203 | 124229 | .{ ._, .p_w, .add, .dst0x, .tmp2x, ._, ._ }, |
| 124204 | 124230 | } }, |
| 124231 | }, .{ |
| 124232 | .required_features = .{ .avx2, .fast_hops, null, null }, |
| 124233 | .dst_constraints = .{ .{ .int = .word }, .any }, |
| 124234 | .src_constraints = .{ .{ .exact_scalar_int = .{ .of = .yword, .is = .word } }, .any, .any }, |
| 124235 | .patterns = &.{ |
| 124236 | .{ .src = .{ .to_sse, .none, .none } }, |
| 124237 | }, |
| 124238 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 124239 | .each = .{ .once = &.{ |
| 124240 | .{ ._, .v_i128, .extract, .dst0x, .src0y, .ui(1), ._ }, |
| 124241 | .{ ._, .vp_w, .add, .dst0x, .src0x, .dst0x, ._ }, |
| 124242 | .{ ._, .vph_w, .add, .dst0x, .dst0x, .dst0x, ._ }, |
| 124243 | .{ ._, .vph_w, .add, .dst0x, .dst0x, .dst0x, ._ }, |
| 124244 | .{ ._, .vph_w, .add, .dst0x, .dst0x, .dst0x, ._ }, |
| 124245 | } }, |
| 124205 | 124246 | }, .{ |
| 124206 | 124247 | .required_features = .{ .avx2, null, null, null }, |
| 124207 | 124248 | .dst_constraints = .{ .{ .int = .word }, .any }, |
| ... | ... | @@ -124233,6 +124274,21 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 124233 | 124274 | .{ ._, .vp_d, .srl, .tmp0x, .dst0x, .ui(16), ._ }, |
| 124234 | 124275 | .{ ._, .vp_w, .add, .dst0x, .dst0x, .tmp0x, ._ }, |
| 124235 | 124276 | } }, |
| 124277 | }, .{ |
| 124278 | .required_features = .{ .avx, .fast_hops, null, null }, |
| 124279 | .dst_constraints = .{ .{ .int = .word }, .any }, |
| 124280 | .src_constraints = .{ .{ .exact_scalar_int = .{ .of = .yword, .is = .word } }, .any, .any }, |
| 124281 | .patterns = &.{ |
| 124282 | .{ .src = .{ .to_sse, .none, .none } }, |
| 124283 | }, |
| 124284 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 124285 | .each = .{ .once = &.{ |
| 124286 | .{ ._, .v_f128, .extract, .dst0x, .src0y, .ui(1), ._ }, |
| 124287 | .{ ._, .vp_w, .add, .dst0x, .src0x, .dst0x, ._ }, |
| 124288 | .{ ._, .vph_w, .add, .dst0x, .dst0x, .dst0x, ._ }, |
| 124289 | .{ ._, .vph_w, .add, .dst0x, .dst0x, .dst0x, ._ }, |
| 124290 | .{ ._, .vph_w, .add, .dst0x, .dst0x, .dst0x, ._ }, |
| 124291 | } }, |
| 124236 | 124292 | }, .{ |
| 124237 | 124293 | .required_features = .{ .avx, null, null, null }, |
| 124238 | 124294 | .dst_constraints = .{ .{ .int = .word }, .any }, |
| ... | ... | @@ -124264,6 +124320,36 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 124264 | 124320 | .{ ._, .vp_d, .srl, .tmp0x, .dst0x, .ui(16), ._ }, |
| 124265 | 124321 | .{ ._, .vp_w, .add, .dst0x, .dst0x, .tmp0x, ._ }, |
| 124266 | 124322 | } }, |
| 124323 | }, .{ |
| 124324 | .required_features = .{ .avx2, .fast_hops, null, null }, |
| 124325 | .dst_constraints = .{ .{ .int = .word }, .any }, |
| 124326 | .src_constraints = .{ .{ .scalar_int = .{ .of = .yword, .is = .word } }, .any, .any }, |
| 124327 | .patterns = &.{ |
| 124328 | .{ .src = .{ .to_sse, .none, .none } }, |
| 124329 | }, |
| 124330 | .extra_temps = .{ |
| 124331 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 124332 | .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } }, |
| 124333 | .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } }, |
| 124334 | .unused, |
| 124335 | .unused, |
| 124336 | .unused, |
| 124337 | .unused, |
| 124338 | .unused, |
| 124339 | .unused, |
| 124340 | .unused, |
| 124341 | .unused, |
| 124342 | }, |
| 124343 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 124344 | .each = .{ .once = &.{ |
| 124345 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 124346 | .{ ._, .vp_, .@"and", .dst0y, .src0y, .lea(.tmp0y), ._ }, |
| 124347 | .{ ._, .v_i128, .extract, .tmp2x, .dst0y, .ui(1), ._ }, |
| 124348 | .{ ._, .vp_w, .add, .dst0x, .dst0x, .tmp2x, ._ }, |
| 124349 | .{ ._, .vph_w, .add, .dst0x, .dst0x, .dst0x, ._ }, |
| 124350 | .{ ._, .vph_w, .add, .dst0x, .dst0x, .dst0x, ._ }, |
| 124351 | .{ ._, .vph_w, .add, .dst0x, .dst0x, .dst0x, ._ }, |
| 124352 | } }, |
| 124267 | 124353 | }, .{ |
| 124268 | 124354 | .required_features = .{ .avx2, null, null, null }, |
| 124269 | 124355 | .dst_constraints = .{ .{ .int = .word }, .any }, |
| ... | ... | @@ -124297,6 +124383,36 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 124297 | 124383 | .{ ._, .vp_d, .srl, .tmp2x, .dst0x, .ui(16), ._ }, |
| 124298 | 124384 | .{ ._, .vp_w, .add, .dst0x, .dst0x, .tmp2x, ._ }, |
| 124299 | 124385 | } }, |
| 124386 | }, .{ |
| 124387 | .required_features = .{ .avx, .fast_hops, null, null }, |
| 124388 | .dst_constraints = .{ .{ .int = .word }, .any }, |
| 124389 | .src_constraints = .{ .{ .scalar_int = .{ .of = .yword, .is = .word } }, .any, .any }, |
| 124390 | .patterns = &.{ |
| 124391 | .{ .src = .{ .to_sse, .none, .none } }, |
| 124392 | }, |
| 124393 | .extra_temps = .{ |
| 124394 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 124395 | .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } }, |
| 124396 | .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } }, |
| 124397 | .unused, |
| 124398 | .unused, |
| 124399 | .unused, |
| 124400 | .unused, |
| 124401 | .unused, |
| 124402 | .unused, |
| 124403 | .unused, |
| 124404 | .unused, |
| 124405 | }, |
| 124406 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 124407 | .each = .{ .once = &.{ |
| 124408 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 124409 | .{ ._, .v_ps, .@"and", .dst0y, .src0y, .lea(.tmp0y), ._ }, |
| 124410 | .{ ._, .v_f128, .extract, .tmp2x, .dst0y, .ui(1), ._ }, |
| 124411 | .{ ._, .vp_w, .add, .dst0x, .dst0x, .tmp2x, ._ }, |
| 124412 | .{ ._, .vph_w, .add, .dst0x, .dst0x, .dst0x, ._ }, |
| 124413 | .{ ._, .vph_w, .add, .dst0x, .dst0x, .dst0x, ._ }, |
| 124414 | .{ ._, .vph_w, .add, .dst0x, .dst0x, .dst0x, ._ }, |
| 124415 | } }, |
| 124300 | 124416 | }, .{ |
| 124301 | 124417 | .required_features = .{ .avx, null, null, null }, |
| 124302 | 124418 | .dst_constraints = .{ .{ .int = .word }, .any }, |
| ... | ... | @@ -124350,7 +124466,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 124350 | 124466 | .unused, |
| 124351 | 124467 | .unused, |
| 124352 | 124468 | }, |
| 124353 | | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 124469 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 124354 | 124470 | .each = .{ .once = &.{ |
| 124355 | 124471 | .{ ._, .v_dqa, .mov, .dst0y, .mem(.src0y), ._, ._ }, |
| 124356 | 124472 | .{ ._, .vp_w, .add, .dst0y, .dst0y, .memd(.src0y, 32), ._ }, |
| ... | ... | @@ -124383,7 +124499,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 124383 | 124499 | .unused, |
| 124384 | 124500 | .unused, |
| 124385 | 124501 | }, |
| 124386 | | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 124502 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 124387 | 124503 | .each = .{ .once = &.{ |
| 124388 | 124504 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 124389 | 124505 | .{ ._, .v_dqa, .mov, .dst0y, .mem(.src0y), ._, ._ }, |
| ... | ... | @@ -124400,6 +124516,40 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 124400 | 124516 | .{ ._, .vp_d, .srl, .tmp2x, .dst0x, .ui(16), ._ }, |
| 124401 | 124517 | .{ ._, .vp_w, .add, .dst0x, .dst0x, .tmp2x, ._ }, |
| 124402 | 124518 | } }, |
| 124519 | }, .{ |
| 124520 | .required_features = .{ .avx2, .fast_hops, null, null }, |
| 124521 | .dst_constraints = .{ .{ .int = .word }, .any }, |
| 124522 | .src_constraints = .{ .{ .unaligned_multiple_scalar_int = .{ .of = .yword, .is = .word } }, .any, .any }, |
| 124523 | .patterns = &.{ |
| 124524 | .{ .src = .{ .to_mem, .none, .none } }, |
| 124525 | }, |
| 124526 | .extra_temps = .{ |
| 124527 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 124528 | .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } }, |
| 124529 | .unused, |
| 124530 | .unused, |
| 124531 | .unused, |
| 124532 | .unused, |
| 124533 | .unused, |
| 124534 | .unused, |
| 124535 | .unused, |
| 124536 | .unused, |
| 124537 | .unused, |
| 124538 | }, |
| 124539 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 124540 | .clobbers = .{ .eflags = true }, |
| 124541 | .each = .{ .once = &.{ |
| 124542 | .{ ._, ._, .mov, .tmp0d, .sia(-64, .src0, .add_unaligned_size), ._, ._ }, |
| 124543 | .{ ._, .v_dqa, .mov, .dst0y, .memad(.src0y, .add_unaligned_size, -32), ._, ._ }, |
| 124544 | .{ .@"0:", .vp_w, .add, .dst0y, .dst0y, .memi(.src0y, .tmp0), ._ }, |
| 124545 | .{ ._, ._, .sub, .tmp0d, .si(32), ._, ._ }, |
| 124546 | .{ ._, ._nb, .j, .@"0b", ._, ._, ._ }, |
| 124547 | .{ ._, .v_i128, .extract, .tmp1x, .dst0y, .ui(1), ._ }, |
| 124548 | .{ ._, .vp_w, .add, .dst0x, .dst0x, .tmp1x, ._ }, |
| 124549 | .{ ._, .vph_w, .add, .dst0x, .dst0x, .dst0x, ._ }, |
| 124550 | .{ ._, .vph_w, .add, .dst0x, .dst0x, .dst0x, ._ }, |
| 124551 | .{ ._, .vph_w, .add, .dst0x, .dst0x, .dst0x, ._ }, |
| 124552 | } }, |
| 124403 | 124553 | }, .{ |
| 124404 | 124554 | .required_features = .{ .avx2, null, null, null }, |
| 124405 | 124555 | .dst_constraints = .{ .{ .int = .word }, .any }, |
| ... | ... | @@ -124421,6 +124571,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 124421 | 124571 | .unused, |
| 124422 | 124572 | }, |
| 124423 | 124573 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 124574 | .clobbers = .{ .eflags = true }, |
| 124424 | 124575 | .each = .{ .once = &.{ |
| 124425 | 124576 | .{ ._, ._, .mov, .tmp0d, .sia(-64, .src0, .add_unaligned_size), ._, ._ }, |
| 124426 | 124577 | .{ ._, .v_dqa, .mov, .dst0y, .memad(.src0y, .add_unaligned_size, -32), ._, ._ }, |
| ... | ... | @@ -124436,6 +124587,38 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 124436 | 124587 | .{ ._, .vp_d, .srl, .tmp1x, .dst0x, .ui(16), ._ }, |
| 124437 | 124588 | .{ ._, .vp_w, .add, .dst0x, .dst0x, .tmp1x, ._ }, |
| 124438 | 124589 | } }, |
| 124590 | }, .{ |
| 124591 | .required_features = .{ .avx, .fast_hops, null, null }, |
| 124592 | .dst_constraints = .{ .{ .int = .word }, .any }, |
| 124593 | .src_constraints = .{ .{ .unaligned_multiple_scalar_int = .{ .of = .xword, .is = .word } }, .any, .any }, |
| 124594 | .patterns = &.{ |
| 124595 | .{ .src = .{ .to_mem, .none, .none } }, |
| 124596 | }, |
| 124597 | .extra_temps = .{ |
| 124598 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 124599 | .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } }, |
| 124600 | .unused, |
| 124601 | .unused, |
| 124602 | .unused, |
| 124603 | .unused, |
| 124604 | .unused, |
| 124605 | .unused, |
| 124606 | .unused, |
| 124607 | .unused, |
| 124608 | .unused, |
| 124609 | }, |
| 124610 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 124611 | .clobbers = .{ .eflags = true }, |
| 124612 | .each = .{ .once = &.{ |
| 124613 | .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_unaligned_size), ._, ._ }, |
| 124614 | .{ ._, .v_dqa, .mov, .dst0x, .memad(.src0x, .add_unaligned_size, -16), ._, ._ }, |
| 124615 | .{ .@"0:", .vp_w, .add, .dst0x, .dst0x, .memi(.src0x, .tmp0), ._ }, |
| 124616 | .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ }, |
| 124617 | .{ ._, ._nb, .j, .@"0b", ._, ._, ._ }, |
| 124618 | .{ ._, .vph_w, .add, .dst0x, .dst0x, .tmp1x, ._ }, |
| 124619 | .{ ._, .vph_w, .add, .dst0x, .dst0x, .dst0x, ._ }, |
| 124620 | .{ ._, .vph_w, .add, .dst0x, .dst0x, .dst0x, ._ }, |
| 124621 | } }, |
| 124439 | 124622 | }, .{ |
| 124440 | 124623 | .required_features = .{ .avx, null, null, null }, |
| 124441 | 124624 | .dst_constraints = .{ .{ .int = .word }, .any }, |
| ... | ... | @@ -124457,6 +124640,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 124457 | 124640 | .unused, |
| 124458 | 124641 | }, |
| 124459 | 124642 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 124643 | .clobbers = .{ .eflags = true }, |
| 124460 | 124644 | .each = .{ .once = &.{ |
| 124461 | 124645 | .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_unaligned_size), ._, ._ }, |
| 124462 | 124646 | .{ ._, .v_dqa, .mov, .dst0x, .memad(.src0x, .add_unaligned_size, -16), ._, ._ }, |
| ... | ... | @@ -124470,6 +124654,38 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 124470 | 124654 | .{ ._, .vp_d, .srl, .tmp1x, .dst0x, .ui(16), ._ }, |
| 124471 | 124655 | .{ ._, .vp_w, .add, .dst0x, .dst0x, .tmp1x, ._ }, |
| 124472 | 124656 | } }, |
| 124657 | }, .{ |
| 124658 | .required_features = .{ .ssse3, .fast_hops, null, null }, |
| 124659 | .dst_constraints = .{ .{ .int = .word }, .any }, |
| 124660 | .src_constraints = .{ .{ .unaligned_multiple_scalar_int = .{ .of = .xword, .is = .word } }, .any, .any }, |
| 124661 | .patterns = &.{ |
| 124662 | .{ .src = .{ .to_mem, .none, .none } }, |
| 124663 | }, |
| 124664 | .extra_temps = .{ |
| 124665 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 124666 | .unused, |
| 124667 | .unused, |
| 124668 | .unused, |
| 124669 | .unused, |
| 124670 | .unused, |
| 124671 | .unused, |
| 124672 | .unused, |
| 124673 | .unused, |
| 124674 | .unused, |
| 124675 | .unused, |
| 124676 | }, |
| 124677 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 124678 | .clobbers = .{ .eflags = true }, |
| 124679 | .each = .{ .once = &.{ |
| 124680 | .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_unaligned_size), ._, ._ }, |
| 124681 | .{ ._, ._dqa, .mov, .dst0x, .memad(.src0x, .add_unaligned_size, -16), ._, ._ }, |
| 124682 | .{ .@"0:", .p_w, .add, .dst0x, .memi(.src0x, .tmp0), ._, ._ }, |
| 124683 | .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ }, |
| 124684 | .{ ._, ._nb, .j, .@"0b", ._, ._, ._ }, |
| 124685 | .{ ._, .ph_w, .add, .dst0x, .dst0x, ._, ._ }, |
| 124686 | .{ ._, .ph_w, .add, .dst0x, .dst0x, ._, ._ }, |
| 124687 | .{ ._, .ph_w, .add, .dst0x, .dst0x, ._, ._ }, |
| 124688 | } }, |
| 124473 | 124689 | }, .{ |
| 124474 | 124690 | .required_features = .{ .sse2, null, null, null }, |
| 124475 | 124691 | .dst_constraints = .{ .{ .int = .word }, .any }, |
| ... | ... | @@ -124491,6 +124707,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 124491 | 124707 | .unused, |
| 124492 | 124708 | }, |
| 124493 | 124709 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 124710 | .clobbers = .{ .eflags = true }, |
| 124494 | 124711 | .each = .{ .once = &.{ |
| 124495 | 124712 | .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_unaligned_size), ._, ._ }, |
| 124496 | 124713 | .{ ._, ._dqa, .mov, .dst0x, .memad(.src0x, .add_unaligned_size, -16), ._, ._ }, |
| ... | ... | @@ -124526,6 +124743,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 124526 | 124743 | .unused, |
| 124527 | 124744 | }, |
| 124528 | 124745 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 124746 | .clobbers = .{ .eflags = true }, |
| 124529 | 124747 | .each = .{ .once = &.{ |
| 124530 | 124748 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 124531 | 124749 | .{ ._, .v_dqa, .mov, .dst0y, .lea(.tmp0y), ._, ._ }, |
| ... | ... | @@ -124547,6 +124765,42 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 124547 | 124765 | .{ ._, .vp_d, .srl, .tmp2x, .dst0x, .ui(16), ._ }, |
| 124548 | 124766 | .{ ._, .vp_w, .add, .dst0x, .dst0x, .tmp2x, ._ }, |
| 124549 | 124767 | } }, |
| 124768 | }, .{ |
| 124769 | .required_features = .{ .avx2, .fast_hops, null, null }, |
| 124770 | .dst_constraints = .{ .{ .int = .word }, .any }, |
| 124771 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .yword, .is = .word } }, .any, .any }, |
| 124772 | .patterns = &.{ |
| 124773 | .{ .src = .{ .to_mem, .none, .none } }, |
| 124774 | }, |
| 124775 | .extra_temps = .{ |
| 124776 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 124777 | .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } }, |
| 124778 | .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } }, |
| 124779 | .unused, |
| 124780 | .unused, |
| 124781 | .unused, |
| 124782 | .unused, |
| 124783 | .unused, |
| 124784 | .unused, |
| 124785 | .unused, |
| 124786 | .unused, |
| 124787 | }, |
| 124788 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 124789 | .clobbers = .{ .eflags = true }, |
| 124790 | .each = .{ .once = &.{ |
| 124791 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 124792 | .{ ._, .v_dqa, .mov, .dst0y, .lea(.tmp0y), ._, ._ }, |
| 124793 | .{ ._, ._, .mov, .tmp0d, .sia(-64, .src0, .add_size), ._, ._ }, |
| 124794 | .{ ._, .vp_, .@"and", .dst0y, .dst0y, .memad(.src0y, .add_size, -32), ._ }, |
| 124795 | .{ .@"0:", .vp_w, .add, .dst0y, .dst0y, .memi(.src0y, .tmp0), ._ }, |
| 124796 | .{ ._, ._, .sub, .tmp0d, .si(32), ._, ._ }, |
| 124797 | .{ ._, ._nb, .j, .@"0b", ._, ._, ._ }, |
| 124798 | .{ ._, .v_i128, .extract, .tmp2x, .dst0y, .ui(1), ._ }, |
| 124799 | .{ ._, .vp_w, .add, .dst0x, .dst0x, .tmp2x, ._ }, |
| 124800 | .{ ._, .vph_w, .add, .dst0x, .dst0x, .dst0x, ._ }, |
| 124801 | .{ ._, .vph_w, .add, .dst0x, .dst0x, .dst0x, ._ }, |
| 124802 | .{ ._, .vph_w, .add, .dst0x, .dst0x, .dst0x, ._ }, |
| 124803 | } }, |
| 124550 | 124804 | }, .{ |
| 124551 | 124805 | .required_features = .{ .avx2, null, null, null }, |
| 124552 | 124806 | .dst_constraints = .{ .{ .int = .word }, .any }, |
| ... | ... | @@ -124568,6 +124822,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 124568 | 124822 | .unused, |
| 124569 | 124823 | }, |
| 124570 | 124824 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 124825 | .clobbers = .{ .eflags = true }, |
| 124571 | 124826 | .each = .{ .once = &.{ |
| 124572 | 124827 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 124573 | 124828 | .{ ._, .v_dqa, .mov, .dst0y, .lea(.tmp0y), ._, ._ }, |
| ... | ... | @@ -124585,6 +124840,42 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 124585 | 124840 | .{ ._, .vp_d, .srl, .tmp2x, .dst0x, .ui(16), ._ }, |
| 124586 | 124841 | .{ ._, .vp_w, .add, .dst0x, .dst0x, .tmp2x, ._ }, |
| 124587 | 124842 | } }, |
| 124843 | }, .{ |
| 124844 | .required_features = .{ .avx, .fast_hops, null, null }, |
| 124845 | .dst_constraints = .{ .{ .int = .word }, .any }, |
| 124846 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .yword, .is = .word } }, .any, .any }, |
| 124847 | .patterns = &.{ |
| 124848 | .{ .src = .{ .to_mem, .none, .none } }, |
| 124849 | }, |
| 124850 | .extra_temps = .{ |
| 124851 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 124852 | .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } }, |
| 124853 | .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } }, |
| 124854 | .unused, |
| 124855 | .unused, |
| 124856 | .unused, |
| 124857 | .unused, |
| 124858 | .unused, |
| 124859 | .unused, |
| 124860 | .unused, |
| 124861 | .unused, |
| 124862 | }, |
| 124863 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 124864 | .clobbers = .{ .eflags = true }, |
| 124865 | .each = .{ .once = &.{ |
| 124866 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 124867 | .{ ._, .v_ps, .mova, .dst0y, .lea(.tmp0y), ._, ._ }, |
| 124868 | .{ ._, ._, .mov, .tmp0d, .sia(-48, .src0, .add_size), ._, ._ }, |
| 124869 | .{ ._, .v_ps, .@"and", .dst0y, .dst0y, .memad(.src0y, .add_size, -32), ._ }, |
| 124870 | .{ ._, .v_f128, .extract, .tmp2x, .dst0y, .ui(1), ._ }, |
| 124871 | .{ ._, .vp_w, .add, .dst0x, .dst0x, .tmp2x, ._ }, |
| 124872 | .{ .@"0:", .vp_w, .add, .dst0x, .dst0x, .memi(.src0x, .tmp0), ._ }, |
| 124873 | .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ }, |
| 124874 | .{ ._, ._nb, .j, .@"0b", ._, ._, ._ }, |
| 124875 | .{ ._, .vph_w, .add, .dst0x, .dst0x, .dst0x, ._ }, |
| 124876 | .{ ._, .vph_w, .add, .dst0x, .dst0x, .dst0x, ._ }, |
| 124877 | .{ ._, .vph_w, .add, .dst0x, .dst0x, .dst0x, ._ }, |
| 124878 | } }, |
| 124588 | 124879 | }, .{ |
| 124589 | 124880 | .required_features = .{ .avx, null, null, null }, |
| 124590 | 124881 | .dst_constraints = .{ .{ .int = .word }, .any }, |
| ... | ... | @@ -124606,6 +124897,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 124606 | 124897 | .unused, |
| 124607 | 124898 | }, |
| 124608 | 124899 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 124900 | .clobbers = .{ .eflags = true }, |
| 124609 | 124901 | .each = .{ .once = &.{ |
| 124610 | 124902 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 124611 | 124903 | .{ ._, .v_ps, .mova, .dst0y, .lea(.tmp0y), ._, ._ }, |
| ... | ... | @@ -124623,6 +124915,40 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 124623 | 124915 | .{ ._, .vp_d, .srl, .tmp2x, .dst0x, .ui(16), ._ }, |
| 124624 | 124916 | .{ ._, .vp_w, .add, .dst0x, .dst0x, .tmp2x, ._ }, |
| 124625 | 124917 | } }, |
| 124918 | }, .{ |
| 124919 | .required_features = .{ .ssse3, .fast_hops, null, null }, |
| 124920 | .dst_constraints = .{ .{ .int = .word }, .any }, |
| 124921 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .xword, .is = .word } }, .any, .any }, |
| 124922 | .patterns = &.{ |
| 124923 | .{ .src = .{ .to_mem, .none, .none } }, |
| 124924 | }, |
| 124925 | .extra_temps = .{ |
| 124926 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 124927 | .{ .type = .vector_16_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } }, |
| 124928 | .unused, |
| 124929 | .unused, |
| 124930 | .unused, |
| 124931 | .unused, |
| 124932 | .unused, |
| 124933 | .unused, |
| 124934 | .unused, |
| 124935 | .unused, |
| 124936 | .unused, |
| 124937 | }, |
| 124938 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 124939 | .clobbers = .{ .eflags = true }, |
| 124940 | .each = .{ .once = &.{ |
| 124941 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 124942 | .{ ._, ._dqa, .mov, .dst0x, .lea(.tmp0x), ._, ._ }, |
| 124943 | .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_size), ._, ._ }, |
| 124944 | .{ ._, .p_, .@"and", .dst0x, .memad(.src0x, .add_size, -16), ._, ._ }, |
| 124945 | .{ .@"0:", .p_w, .add, .dst0x, .memi(.src0x, .tmp0), ._, ._ }, |
| 124946 | .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ }, |
| 124947 | .{ ._, ._nb, .j, .@"0b", ._, ._, ._ }, |
| 124948 | .{ ._, .ph_w, .add, .dst0x, .dst0x, ._, ._ }, |
| 124949 | .{ ._, .ph_w, .add, .dst0x, .dst0x, ._, ._ }, |
| 124950 | .{ ._, .ph_w, .add, .dst0x, .dst0x, ._, ._ }, |
| 124951 | } }, |
| 124626 | 124952 | }, .{ |
| 124627 | 124953 | .required_features = .{ .sse2, null, null, null }, |
| 124628 | 124954 | .dst_constraints = .{ .{ .int = .word }, .any }, |
| ... | ... | @@ -124644,6 +124970,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 124644 | 124970 | .unused, |
| 124645 | 124971 | }, |
| 124646 | 124972 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 124973 | .clobbers = .{ .eflags = true }, |
| 124647 | 124974 | .each = .{ .once = &.{ |
| 124648 | 124975 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 124649 | 124976 | .{ ._, ._dqa, .mov, .dst0x, .lea(.tmp0x), ._, ._ }, |
| ... | ... | @@ -124662,7 +124989,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 124662 | 124989 | } }, |
| 124663 | 124990 | }, .{ |
| 124664 | 124991 | .dst_constraints = .{ .{ .int = .word }, .any }, |
| 124665 | | .src_constraints = .{ .{ .unaligned_multiple_scalar_int = .{ .of = .word, .is = .word } }, .any, .any }, |
| 124992 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .word, .is = .word } }, .any, .any }, |
| 124666 | 124993 | .patterns = &.{ |
| 124667 | 124994 | .{ .src = .{ .to_mem, .none, .none } }, |
| 124668 | 124995 | }, |
| ... | ... | @@ -124689,25 +125016,16 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 124689 | 125016 | .{ ._, ._nb, .j, .@"0b", ._, ._, ._ }, |
| 124690 | 125017 | } }, |
| 124691 | 125018 | }, .{ |
| 124692 | | .required_features = .{ .sse, null, null, null }, |
| 125019 | .required_features = .{ .avx, .fast_hops, null, null }, |
| 124693 | 125020 | .dst_constraints = .{ .{ .int = .dword }, .any }, |
| 124694 | | .src_constraints = .{ .{ .vec_len = 1 }, .any, .any }, |
| 124695 | | .patterns = &.{ |
| 124696 | | .{ .src = .{ .mut_mem, .none, .none } }, |
| 124697 | | .{ .src = .{ .mut_gpr, .none, .none } }, |
| 124698 | | .{ .src = .{ .to_mut_sse, .none, .none } }, |
| 124699 | | }, |
| 124700 | | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| 124701 | | .each = .{ .once = &.{} }, |
| 124702 | | }, .{ |
| 124703 | | .dst_constraints = .{ .{ .int = .dword }, .any }, |
| 124704 | | .src_constraints = .{ .{ .vec_len = 1 }, .any, .any }, |
| 125021 | .src_constraints = .{ .{ .scalar_int = .{ .of = .qword, .is = .dword } }, .any, .any }, |
| 124705 | 125022 | .patterns = &.{ |
| 124706 | | .{ .src = .{ .mut_mem, .none, .none } }, |
| 124707 | | .{ .src = .{ .to_mut_gpr, .none, .none } }, |
| 125023 | .{ .src = .{ .to_sse, .none, .none } }, |
| 124708 | 125024 | }, |
| 124709 | | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| 124710 | | .each = .{ .once = &.{} }, |
| 125025 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 125026 | .each = .{ .once = &.{ |
| 125027 | .{ ._, .vph_d, .add, .dst0x, .src0x, .src0x, ._ }, |
| 125028 | } }, |
| 124711 | 125029 | }, .{ |
| 124712 | 125030 | .required_features = .{ .avx, null, null, null }, |
| 124713 | 125031 | .dst_constraints = .{ .{ .int = .dword }, .any }, |
| ... | ... | @@ -124733,6 +125051,17 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 124733 | 125051 | .{ ._, .vp_d, .shuf, .tmp0x, .src0x, .ui(0b01_01_01_01), ._ }, |
| 124734 | 125052 | .{ ._, .vp_d, .add, .dst0x, .src0x, .tmp0x, ._ }, |
| 124735 | 125053 | } }, |
| 125054 | }, .{ |
| 125055 | .required_features = .{ .ssse3, .fast_hops, null, null }, |
| 125056 | .dst_constraints = .{ .{ .int = .dword }, .any }, |
| 125057 | .src_constraints = .{ .{ .scalar_int = .{ .of = .qword, .is = .dword } }, .any, .any }, |
| 125058 | .patterns = &.{ |
| 125059 | .{ .src = .{ .to_mut_sse, .none, .none } }, |
| 125060 | }, |
| 125061 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| 125062 | .each = .{ .once = &.{ |
| 125063 | .{ ._, .ph_d, .add, .dst0x, .src0x, ._, ._ }, |
| 125064 | } }, |
| 124736 | 125065 | }, .{ |
| 124737 | 125066 | .required_features = .{ .sse2, null, null, null }, |
| 124738 | 125067 | .dst_constraints = .{ .{ .int = .dword }, .any }, |
| ... | ... | @@ -124758,6 +125087,18 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 124758 | 125087 | .{ ._, .p_d, .shuf, .tmp0x, .src0x, .ui(0b01_01_01_01), ._ }, |
| 124759 | 125088 | .{ ._, .p_d, .add, .dst0x, .tmp0x, ._, ._ }, |
| 124760 | 125089 | } }, |
| 125090 | }, .{ |
| 125091 | .required_features = .{ .avx, .fast_hops, null, null }, |
| 125092 | .dst_constraints = .{ .{ .int = .dword }, .any }, |
| 125093 | .src_constraints = .{ .{ .exact_scalar_int = .{ .of = .xword, .is = .dword } }, .any, .any }, |
| 125094 | .patterns = &.{ |
| 125095 | .{ .src = .{ .to_sse, .none, .none } }, |
| 125096 | }, |
| 125097 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 125098 | .each = .{ .once = &.{ |
| 125099 | .{ ._, .vph_d, .add, .dst0x, .src0x, .src0x, ._ }, |
| 125100 | .{ ._, .vph_d, .add, .dst0x, .dst0x, .dst0x, ._ }, |
| 125101 | } }, |
| 124761 | 125102 | }, .{ |
| 124762 | 125103 | .required_features = .{ .avx, null, null, null }, |
| 124763 | 125104 | .dst_constraints = .{ .{ .int = .dword }, .any }, |
| ... | ... | @@ -124785,6 +125126,18 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 124785 | 125126 | .{ ._, .vp_d, .shuf, .tmp0x, .dst0x, .ui(0b01_01_01_01), ._ }, |
| 124786 | 125127 | .{ ._, .vp_d, .add, .dst0x, .dst0x, .tmp0x, ._ }, |
| 124787 | 125128 | } }, |
| 125129 | }, .{ |
| 125130 | .required_features = .{ .ssse3, .fast_hops, null, null }, |
| 125131 | .dst_constraints = .{ .{ .int = .dword }, .any }, |
| 125132 | .src_constraints = .{ .{ .exact_scalar_int = .{ .of = .xword, .is = .dword } }, .any, .any }, |
| 125133 | .patterns = &.{ |
| 125134 | .{ .src = .{ .to_mut_sse, .none, .none } }, |
| 125135 | }, |
| 125136 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| 125137 | .each = .{ .once = &.{ |
| 125138 | .{ ._, .ph_d, .add, .dst0x, .src0x, ._, ._ }, |
| 125139 | .{ ._, .ph_d, .add, .dst0x, .dst0x, ._, ._ }, |
| 125140 | } }, |
| 124788 | 125141 | }, .{ |
| 124789 | 125142 | .required_features = .{ .sse2, null, null, null }, |
| 124790 | 125143 | .dst_constraints = .{ .{ .int = .dword }, .any }, |
| ... | ... | @@ -124812,6 +125165,32 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 124812 | 125165 | .{ ._, .p_d, .shuf, .tmp0x, .dst0x, .ui(0b01_01_01_01), ._ }, |
| 124813 | 125166 | .{ ._, .p_d, .add, .dst0x, .tmp0x, ._, ._ }, |
| 124814 | 125167 | } }, |
| 125168 | }, .{ |
| 125169 | .required_features = .{ .avx, .fast_hops, null, null }, |
| 125170 | .dst_constraints = .{ .{ .int = .dword }, .any }, |
| 125171 | .src_constraints = .{ .{ .scalar_int = .{ .of = .xword, .is = .dword } }, .any, .any }, |
| 125172 | .patterns = &.{ |
| 125173 | .{ .src = .{ .to_sse, .none, .none } }, |
| 125174 | }, |
| 125175 | .extra_temps = .{ |
| 125176 | .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } }, |
| 125177 | .unused, |
| 125178 | .unused, |
| 125179 | .unused, |
| 125180 | .unused, |
| 125181 | .unused, |
| 125182 | .unused, |
| 125183 | .unused, |
| 125184 | .unused, |
| 125185 | .unused, |
| 125186 | .unused, |
| 125187 | }, |
| 125188 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 125189 | .each = .{ .once = &.{ |
| 125190 | .{ ._, .vph_d, .add, .tmp0x, .src0x, .src0x, ._ }, |
| 125191 | .{ ._, .vp_d, .shuf, .dst0x, .src0x, .ui(0b11_10_11_10), ._ }, |
| 125192 | .{ ._, .vp_d, .add, .dst0x, .tmp0x, .dst0x, ._ }, |
| 125193 | } }, |
| 124815 | 125194 | }, .{ |
| 124816 | 125195 | .required_features = .{ .avx, null, null, null }, |
| 124817 | 125196 | .dst_constraints = .{ .{ .int = .dword }, .any }, |
| ... | ... | @@ -124839,6 +125218,32 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 124839 | 125218 | .{ ._, .vp_d, .shuf, .dst0x, .src0x, .ui(0b01_01_01_01), ._ }, |
| 124840 | 125219 | .{ ._, .vp_d, .add, .dst0x, .tmp0x, .dst0x, ._ }, |
| 124841 | 125220 | } }, |
| 125221 | }, .{ |
| 125222 | .required_features = .{ .ssse3, .fast_hops, null, null }, |
| 125223 | .dst_constraints = .{ .{ .int = .dword }, .any }, |
| 125224 | .src_constraints = .{ .{ .scalar_int = .{ .of = .xword, .is = .dword } }, .any, .any }, |
| 125225 | .patterns = &.{ |
| 125226 | .{ .src = .{ .to_mut_sse, .none, .none } }, |
| 125227 | }, |
| 125228 | .extra_temps = .{ |
| 125229 | .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } }, |
| 125230 | .unused, |
| 125231 | .unused, |
| 125232 | .unused, |
| 125233 | .unused, |
| 125234 | .unused, |
| 125235 | .unused, |
| 125236 | .unused, |
| 125237 | .unused, |
| 125238 | .unused, |
| 125239 | .unused, |
| 125240 | }, |
| 125241 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| 125242 | .each = .{ .once = &.{ |
| 125243 | .{ ._, .p_d, .shuf, .tmp0x, .src0x, .ui(0b11_10_11_10), ._ }, |
| 125244 | .{ ._, .ph_d, .add, .dst0x, .src0x, ._, ._ }, |
| 125245 | .{ ._, .p_d, .add, .dst0x, .tmp0x, ._, ._ }, |
| 125246 | } }, |
| 124842 | 125247 | }, .{ |
| 124843 | 125248 | .required_features = .{ .sse2, null, null, null }, |
| 124844 | 125249 | .dst_constraints = .{ .{ .int = .dword }, .any }, |
| ... | ... | @@ -124866,6 +125271,20 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 124866 | 125271 | .{ ._, .p_d, .shuf, .dst0x, .src0x, .ui(0b01_01_01_01), ._ }, |
| 124867 | 125272 | .{ ._, .p_d, .add, .dst0x, .tmp0x, ._, ._ }, |
| 124868 | 125273 | } }, |
| 125274 | }, .{ |
| 125275 | .required_features = .{ .avx2, .fast_hops, null, null }, |
| 125276 | .dst_constraints = .{ .{ .int = .dword }, .any }, |
| 125277 | .src_constraints = .{ .{ .exact_scalar_int = .{ .of = .yword, .is = .dword } }, .any, .any }, |
| 125278 | .patterns = &.{ |
| 125279 | .{ .src = .{ .to_sse, .none, .none } }, |
| 125280 | }, |
| 125281 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 125282 | .each = .{ .once = &.{ |
| 125283 | .{ ._, .v_i128, .extract, .dst0x, .src0y, .ui(1), ._ }, |
| 125284 | .{ ._, .vp_d, .add, .dst0x, .src0x, .dst0x, ._ }, |
| 125285 | .{ ._, .vph_d, .add, .dst0x, .dst0x, .dst0x, ._ }, |
| 125286 | .{ ._, .vph_d, .add, .dst0x, .dst0x, .dst0x, ._ }, |
| 125287 | } }, |
| 124869 | 125288 | }, .{ |
| 124870 | 125289 | .required_features = .{ .avx2, null, null, null }, |
| 124871 | 125290 | .dst_constraints = .{ .{ .int = .dword }, .any }, |
| ... | ... | @@ -124895,6 +125314,20 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 124895 | 125314 | .{ ._, .vp_d, .shuf, .tmp0x, .dst0x, .ui(0b01_01_01_01), ._ }, |
| 124896 | 125315 | .{ ._, .vp_d, .add, .dst0x, .dst0x, .tmp0x, ._ }, |
| 124897 | 125316 | } }, |
| 125317 | }, .{ |
| 125318 | .required_features = .{ .avx, .fast_hops, null, null }, |
| 125319 | .dst_constraints = .{ .{ .int = .dword }, .any }, |
| 125320 | .src_constraints = .{ .{ .exact_scalar_int = .{ .of = .yword, .is = .dword } }, .any, .any }, |
| 125321 | .patterns = &.{ |
| 125322 | .{ .src = .{ .to_sse, .none, .none } }, |
| 125323 | }, |
| 125324 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 125325 | .each = .{ .once = &.{ |
| 125326 | .{ ._, .v_f128, .extract, .dst0x, .src0y, .ui(1), ._ }, |
| 125327 | .{ ._, .vp_d, .add, .dst0x, .src0x, .dst0x, ._ }, |
| 125328 | .{ ._, .vph_d, .add, .dst0x, .dst0x, .dst0x, ._ }, |
| 125329 | .{ ._, .vph_d, .add, .dst0x, .dst0x, .dst0x, ._ }, |
| 125330 | } }, |
| 124898 | 125331 | }, .{ |
| 124899 | 125332 | .required_features = .{ .avx, null, null, null }, |
| 124900 | 125333 | .dst_constraints = .{ .{ .int = .dword }, .any }, |
| ... | ... | @@ -124924,6 +125357,35 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 124924 | 125357 | .{ ._, .vp_d, .shuf, .tmp0x, .dst0x, .ui(0b01_01_01_01), ._ }, |
| 124925 | 125358 | .{ ._, .vp_d, .add, .dst0x, .dst0x, .tmp0x, ._ }, |
| 124926 | 125359 | } }, |
| 125360 | }, .{ |
| 125361 | .required_features = .{ .avx2, .fast_hops, null, null }, |
| 125362 | .dst_constraints = .{ .{ .int = .dword }, .any }, |
| 125363 | .src_constraints = .{ .{ .scalar_int = .{ .of = .yword, .is = .dword } }, .any, .any }, |
| 125364 | .patterns = &.{ |
| 125365 | .{ .src = .{ .to_sse, .none, .none } }, |
| 125366 | }, |
| 125367 | .extra_temps = .{ |
| 125368 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 125369 | .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } }, |
| 125370 | .{ .type = .vector_8_u32, .kind = .{ .rc = .sse } }, |
| 125371 | .unused, |
| 125372 | .unused, |
| 125373 | .unused, |
| 125374 | .unused, |
| 125375 | .unused, |
| 125376 | .unused, |
| 125377 | .unused, |
| 125378 | .unused, |
| 125379 | }, |
| 125380 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 125381 | .each = .{ .once = &.{ |
| 125382 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 125383 | .{ ._, .vp_, .@"and", .dst0y, .src0y, .lea(.tmp0y), ._ }, |
| 125384 | .{ ._, .v_i128, .extract, .tmp2x, .dst0y, .ui(1), ._ }, |
| 125385 | .{ ._, .vp_d, .add, .dst0x, .dst0x, .tmp2x, ._ }, |
| 125386 | .{ ._, .vph_d, .add, .dst0x, .dst0x, .dst0x, ._ }, |
| 125387 | .{ ._, .vph_d, .add, .dst0x, .dst0x, .dst0x, ._ }, |
| 125388 | } }, |
| 124927 | 125389 | }, .{ |
| 124928 | 125390 | .required_features = .{ .avx2, null, null, null }, |
| 124929 | 125391 | .dst_constraints = .{ .{ .int = .dword }, .any }, |
| ... | ... | @@ -124955,6 +125417,35 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 124955 | 125417 | .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b01_01_01_01), ._ }, |
| 124956 | 125418 | .{ ._, .vp_d, .add, .dst0x, .dst0x, .tmp2x, ._ }, |
| 124957 | 125419 | } }, |
| 125420 | }, .{ |
| 125421 | .required_features = .{ .avx, .fast_hops, null, null }, |
| 125422 | .dst_constraints = .{ .{ .int = .dword }, .any }, |
| 125423 | .src_constraints = .{ .{ .scalar_int = .{ .of = .yword, .is = .dword } }, .any, .any }, |
| 125424 | .patterns = &.{ |
| 125425 | .{ .src = .{ .to_sse, .none, .none } }, |
| 125426 | }, |
| 125427 | .extra_temps = .{ |
| 125428 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 125429 | .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } }, |
| 125430 | .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } }, |
| 125431 | .unused, |
| 125432 | .unused, |
| 125433 | .unused, |
| 125434 | .unused, |
| 125435 | .unused, |
| 125436 | .unused, |
| 125437 | .unused, |
| 125438 | .unused, |
| 125439 | }, |
| 125440 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 125441 | .each = .{ .once = &.{ |
| 125442 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 125443 | .{ ._, .v_ps, .@"and", .dst0y, .src0y, .lea(.tmp0y), ._ }, |
| 125444 | .{ ._, .v_f128, .extract, .tmp2x, .dst0y, .ui(1), ._ }, |
| 125445 | .{ ._, .vp_d, .add, .dst0x, .dst0x, .tmp2x, ._ }, |
| 125446 | .{ ._, .vph_d, .add, .dst0x, .dst0x, .dst0x, ._ }, |
| 125447 | .{ ._, .vph_d, .add, .dst0x, .dst0x, .dst0x, ._ }, |
| 125448 | } }, |
| 124958 | 125449 | }, .{ |
| 124959 | 125450 | .required_features = .{ .avx, null, null, null }, |
| 124960 | 125451 | .dst_constraints = .{ .{ .int = .dword }, .any }, |
| ... | ... | @@ -125006,7 +125497,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 125006 | 125497 | .unused, |
| 125007 | 125498 | .unused, |
| 125008 | 125499 | }, |
| 125009 | | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 125500 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 125501 | .clobbers = .{ .eflags = true }, |
| 125010 | 125502 | .each = .{ .once = &.{ |
| 125011 | 125503 | .{ ._, .v_dqa, .mov, .dst0y, .mem(.src0y), ._, ._ }, |
| 125012 | 125504 | .{ ._, .vp_d, .add, .dst0y, .dst0y, .memd(.src0y, 32), ._ }, |
| ... | ... | @@ -125037,7 +125529,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 125037 | 125529 | .unused, |
| 125038 | 125530 | .unused, |
| 125039 | 125531 | }, |
| 125040 | | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 125532 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 125533 | .clobbers = .{ .eflags = true }, |
| 125041 | 125534 | .each = .{ .once = &.{ |
| 125042 | 125535 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 125043 | 125536 | .{ ._, .v_dqa, .mov, .dst0y, .mem(.src0y), ._, ._ }, |
| ... | ... | @@ -125052,6 +125545,39 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 125052 | 125545 | .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b01_01_01_01), ._ }, |
| 125053 | 125546 | .{ ._, .vp_d, .add, .dst0x, .dst0x, .tmp2x, ._ }, |
| 125054 | 125547 | } }, |
| 125548 | }, .{ |
| 125549 | .required_features = .{ .avx2, .fast_hops, null, null }, |
| 125550 | .dst_constraints = .{ .{ .int = .dword }, .any }, |
| 125551 | .src_constraints = .{ .{ .unaligned_multiple_scalar_int = .{ .of = .yword, .is = .dword } }, .any, .any }, |
| 125552 | .patterns = &.{ |
| 125553 | .{ .src = .{ .to_mem, .none, .none } }, |
| 125554 | }, |
| 125555 | .extra_temps = .{ |
| 125556 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 125557 | .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } }, |
| 125558 | .unused, |
| 125559 | .unused, |
| 125560 | .unused, |
| 125561 | .unused, |
| 125562 | .unused, |
| 125563 | .unused, |
| 125564 | .unused, |
| 125565 | .unused, |
| 125566 | .unused, |
| 125567 | }, |
| 125568 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 125569 | .clobbers = .{ .eflags = true }, |
| 125570 | .each = .{ .once = &.{ |
| 125571 | .{ ._, ._, .mov, .tmp0d, .sia(-64, .src0, .add_unaligned_size), ._, ._ }, |
| 125572 | .{ ._, .v_dqa, .mov, .dst0y, .memad(.src0y, .add_unaligned_size, -32), ._, ._ }, |
| 125573 | .{ .@"0:", .vp_d, .add, .dst0y, .dst0y, .memi(.src0y, .tmp0), ._ }, |
| 125574 | .{ ._, ._, .sub, .tmp0d, .si(32), ._, ._ }, |
| 125575 | .{ ._, ._nb, .j, .@"0b", ._, ._, ._ }, |
| 125576 | .{ ._, .v_i128, .extract, .tmp1x, .dst0y, .ui(1), ._ }, |
| 125577 | .{ ._, .vp_d, .add, .dst0x, .dst0x, .tmp1x, ._ }, |
| 125578 | .{ ._, .vph_d, .add, .dst0x, .dst0x, .dst0x, ._ }, |
| 125579 | .{ ._, .vph_d, .add, .dst0x, .dst0x, .dst0x, ._ }, |
| 125580 | } }, |
| 125055 | 125581 | }, .{ |
| 125056 | 125582 | .required_features = .{ .avx2, null, null, null }, |
| 125057 | 125583 | .dst_constraints = .{ .{ .int = .dword }, .any }, |
| ... | ... | @@ -125073,6 +125599,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 125073 | 125599 | .unused, |
| 125074 | 125600 | }, |
| 125075 | 125601 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 125602 | .clobbers = .{ .eflags = true }, |
| 125076 | 125603 | .each = .{ .once = &.{ |
| 125077 | 125604 | .{ ._, ._, .mov, .tmp0d, .sia(-64, .src0, .add_unaligned_size), ._, ._ }, |
| 125078 | 125605 | .{ ._, .v_dqa, .mov, .dst0y, .memad(.src0y, .add_unaligned_size, -32), ._, ._ }, |
| ... | ... | @@ -125086,6 +125613,37 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 125086 | 125613 | .{ ._, .vp_d, .shuf, .tmp1x, .dst0x, .ui(0b01_01_01_01), ._ }, |
| 125087 | 125614 | .{ ._, .vp_d, .add, .dst0x, .dst0x, .tmp1x, ._ }, |
| 125088 | 125615 | } }, |
| 125616 | }, .{ |
| 125617 | .required_features = .{ .avx, .fast_hops, null, null }, |
| 125618 | .dst_constraints = .{ .{ .int = .dword }, .any }, |
| 125619 | .src_constraints = .{ .{ .unaligned_multiple_scalar_int = .{ .of = .xword, .is = .dword } }, .any, .any }, |
| 125620 | .patterns = &.{ |
| 125621 | .{ .src = .{ .to_mem, .none, .none } }, |
| 125622 | }, |
| 125623 | .extra_temps = .{ |
| 125624 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 125625 | .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } }, |
| 125626 | .unused, |
| 125627 | .unused, |
| 125628 | .unused, |
| 125629 | .unused, |
| 125630 | .unused, |
| 125631 | .unused, |
| 125632 | .unused, |
| 125633 | .unused, |
| 125634 | .unused, |
| 125635 | }, |
| 125636 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 125637 | .clobbers = .{ .eflags = true }, |
| 125638 | .each = .{ .once = &.{ |
| 125639 | .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_unaligned_size), ._, ._ }, |
| 125640 | .{ ._, .v_dqa, .mov, .dst0x, .memad(.src0x, .add_unaligned_size, -16), ._, ._ }, |
| 125641 | .{ .@"0:", .vp_d, .add, .dst0x, .dst0x, .memi(.src0x, .tmp0), ._ }, |
| 125642 | .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ }, |
| 125643 | .{ ._, ._nb, .j, .@"0b", ._, ._, ._ }, |
| 125644 | .{ ._, .vph_d, .add, .dst0x, .dst0x, .tmp1x, ._ }, |
| 125645 | .{ ._, .vph_d, .add, .dst0x, .dst0x, .dst0x, ._ }, |
| 125646 | } }, |
| 125089 | 125647 | }, .{ |
| 125090 | 125648 | .required_features = .{ .avx, null, null, null }, |
| 125091 | 125649 | .dst_constraints = .{ .{ .int = .dword }, .any }, |
| ... | ... | @@ -125107,6 +125665,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 125107 | 125665 | .unused, |
| 125108 | 125666 | }, |
| 125109 | 125667 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 125668 | .clobbers = .{ .eflags = true }, |
| 125110 | 125669 | .each = .{ .once = &.{ |
| 125111 | 125670 | .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_unaligned_size), ._, ._ }, |
| 125112 | 125671 | .{ ._, .v_dqa, .mov, .dst0x, .memad(.src0x, .add_unaligned_size, -16), ._, ._ }, |
| ... | ... | @@ -125118,6 +125677,37 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 125118 | 125677 | .{ ._, .vp_d, .shuf, .tmp1x, .dst0x, .ui(0b01_01_01_01), ._ }, |
| 125119 | 125678 | .{ ._, .vp_d, .add, .dst0x, .dst0x, .tmp1x, ._ }, |
| 125120 | 125679 | } }, |
| 125680 | }, .{ |
| 125681 | .required_features = .{ .ssse3, .fast_hops, null, null }, |
| 125682 | .dst_constraints = .{ .{ .int = .dword }, .any }, |
| 125683 | .src_constraints = .{ .{ .unaligned_multiple_scalar_int = .{ .of = .xword, .is = .dword } }, .any, .any }, |
| 125684 | .patterns = &.{ |
| 125685 | .{ .src = .{ .to_mem, .none, .none } }, |
| 125686 | }, |
| 125687 | .extra_temps = .{ |
| 125688 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 125689 | .unused, |
| 125690 | .unused, |
| 125691 | .unused, |
| 125692 | .unused, |
| 125693 | .unused, |
| 125694 | .unused, |
| 125695 | .unused, |
| 125696 | .unused, |
| 125697 | .unused, |
| 125698 | .unused, |
| 125699 | }, |
| 125700 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 125701 | .clobbers = .{ .eflags = true }, |
| 125702 | .each = .{ .once = &.{ |
| 125703 | .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_unaligned_size), ._, ._ }, |
| 125704 | .{ ._, ._dqa, .mov, .dst0x, .memad(.src0x, .add_unaligned_size, -16), ._, ._ }, |
| 125705 | .{ .@"0:", .p_d, .add, .dst0x, .memi(.src0x, .tmp0), ._, ._ }, |
| 125706 | .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ }, |
| 125707 | .{ ._, ._nb, .j, .@"0b", ._, ._, ._ }, |
| 125708 | .{ ._, .ph_d, .add, .dst0x, .dst0x, ._, ._ }, |
| 125709 | .{ ._, .ph_d, .add, .dst0x, .dst0x, ._, ._ }, |
| 125710 | } }, |
| 125121 | 125711 | }, .{ |
| 125122 | 125712 | .required_features = .{ .sse2, null, null, null }, |
| 125123 | 125713 | .dst_constraints = .{ .{ .int = .dword }, .any }, |
| ... | ... | @@ -125139,6 +125729,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 125139 | 125729 | .unused, |
| 125140 | 125730 | }, |
| 125141 | 125731 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 125732 | .clobbers = .{ .eflags = true }, |
| 125142 | 125733 | .each = .{ .once = &.{ |
| 125143 | 125734 | .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_unaligned_size), ._, ._ }, |
| 125144 | 125735 | .{ ._, ._dqa, .mov, .dst0x, .memad(.src0x, .add_unaligned_size, -16), ._, ._ }, |
| ... | ... | @@ -125171,6 +125762,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 125171 | 125762 | .unused, |
| 125172 | 125763 | }, |
| 125173 | 125764 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 125765 | .clobbers = .{ .eflags = true }, |
| 125174 | 125766 | .each = .{ .once = &.{ |
| 125175 | 125767 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 125176 | 125768 | .{ ._, .v_dqa, .mov, .dst0y, .lea(.tmp0y), ._, ._ }, |
| ... | ... | @@ -125190,6 +125782,41 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 125190 | 125782 | .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b01_01_01_01), ._ }, |
| 125191 | 125783 | .{ ._, .vp_d, .add, .dst0x, .dst0x, .tmp2x, ._ }, |
| 125192 | 125784 | } }, |
| 125785 | }, .{ |
| 125786 | .required_features = .{ .avx2, .fast_hops, null, null }, |
| 125787 | .dst_constraints = .{ .{ .int = .dword }, .any }, |
| 125788 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .yword, .is = .dword } }, .any, .any }, |
| 125789 | .patterns = &.{ |
| 125790 | .{ .src = .{ .to_mem, .none, .none } }, |
| 125791 | }, |
| 125792 | .extra_temps = .{ |
| 125793 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 125794 | .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } }, |
| 125795 | .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } }, |
| 125796 | .unused, |
| 125797 | .unused, |
| 125798 | .unused, |
| 125799 | .unused, |
| 125800 | .unused, |
| 125801 | .unused, |
| 125802 | .unused, |
| 125803 | .unused, |
| 125804 | }, |
| 125805 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 125806 | .clobbers = .{ .eflags = true }, |
| 125807 | .each = .{ .once = &.{ |
| 125808 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 125809 | .{ ._, .v_dqa, .mov, .dst0y, .lea(.tmp0y), ._, ._ }, |
| 125810 | .{ ._, ._, .mov, .tmp0d, .sia(-64, .src0, .add_size), ._, ._ }, |
| 125811 | .{ ._, .vp_, .@"and", .dst0y, .dst0y, .memad(.src0y, .add_size, -32), ._ }, |
| 125812 | .{ .@"0:", .vp_d, .add, .dst0y, .dst0y, .memi(.src0y, .tmp0), ._ }, |
| 125813 | .{ ._, ._, .sub, .tmp0d, .si(32), ._, ._ }, |
| 125814 | .{ ._, ._nb, .j, .@"0b", ._, ._, ._ }, |
| 125815 | .{ ._, .v_i128, .extract, .tmp2x, .dst0y, .ui(1), ._ }, |
| 125816 | .{ ._, .vp_d, .add, .dst0x, .dst0x, .tmp2x, ._ }, |
| 125817 | .{ ._, .vph_d, .add, .dst0x, .dst0x, .dst0x, ._ }, |
| 125818 | .{ ._, .vph_d, .add, .dst0x, .dst0x, .dst0x, ._ }, |
| 125819 | } }, |
| 125193 | 125820 | }, .{ |
| 125194 | 125821 | .required_features = .{ .avx2, null, null, null }, |
| 125195 | 125822 | .dst_constraints = .{ .{ .int = .dword }, .any }, |
| ... | ... | @@ -125211,6 +125838,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 125211 | 125838 | .unused, |
| 125212 | 125839 | }, |
| 125213 | 125840 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 125841 | .clobbers = .{ .eflags = true }, |
| 125214 | 125842 | .each = .{ .once = &.{ |
| 125215 | 125843 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 125216 | 125844 | .{ ._, .v_dqa, .mov, .dst0y, .lea(.tmp0y), ._, ._ }, |
| ... | ... | @@ -125226,6 +125854,41 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 125226 | 125854 | .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b01_01_01_01), ._ }, |
| 125227 | 125855 | .{ ._, .vp_d, .add, .dst0x, .dst0x, .tmp2x, ._ }, |
| 125228 | 125856 | } }, |
| 125857 | }, .{ |
| 125858 | .required_features = .{ .avx, .fast_hops, null, null }, |
| 125859 | .dst_constraints = .{ .{ .int = .dword }, .any }, |
| 125860 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .yword, .is = .dword } }, .any, .any }, |
| 125861 | .patterns = &.{ |
| 125862 | .{ .src = .{ .to_mem, .none, .none } }, |
| 125863 | }, |
| 125864 | .extra_temps = .{ |
| 125865 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 125866 | .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } }, |
| 125867 | .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } }, |
| 125868 | .unused, |
| 125869 | .unused, |
| 125870 | .unused, |
| 125871 | .unused, |
| 125872 | .unused, |
| 125873 | .unused, |
| 125874 | .unused, |
| 125875 | .unused, |
| 125876 | }, |
| 125877 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 125878 | .clobbers = .{ .eflags = true }, |
| 125879 | .each = .{ .once = &.{ |
| 125880 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 125881 | .{ ._, .v_ps, .mova, .dst0y, .lea(.tmp0y), ._, ._ }, |
| 125882 | .{ ._, ._, .mov, .tmp0d, .sia(-48, .src0, .add_size), ._, ._ }, |
| 125883 | .{ ._, .v_ps, .@"and", .dst0y, .dst0y, .memad(.src0y, .add_size, -32), ._ }, |
| 125884 | .{ ._, .v_f128, .extract, .tmp2x, .dst0y, .ui(1), ._ }, |
| 125885 | .{ ._, .vp_d, .add, .dst0x, .dst0x, .tmp2x, ._ }, |
| 125886 | .{ .@"0:", .vp_d, .add, .dst0x, .dst0x, .memi(.src0x, .tmp0), ._ }, |
| 125887 | .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ }, |
| 125888 | .{ ._, ._nb, .j, .@"0b", ._, ._, ._ }, |
| 125889 | .{ ._, .vph_d, .add, .dst0x, .dst0x, .dst0x, ._ }, |
| 125890 | .{ ._, .vph_d, .add, .dst0x, .dst0x, .dst0x, ._ }, |
| 125891 | } }, |
| 125229 | 125892 | }, .{ |
| 125230 | 125893 | .required_features = .{ .avx, null, null, null }, |
| 125231 | 125894 | .dst_constraints = .{ .{ .int = .dword }, .any }, |
| ... | ... | @@ -125262,6 +125925,39 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 125262 | 125925 | .{ ._, .vp_d, .shuf, .tmp2x, .dst0x, .ui(0b01_01_01_01), ._ }, |
| 125263 | 125926 | .{ ._, .vp_d, .add, .dst0x, .dst0x, .tmp2x, ._ }, |
| 125264 | 125927 | } }, |
| 125928 | }, .{ |
| 125929 | .required_features = .{ .ssse3, .fast_hops, null, null }, |
| 125930 | .dst_constraints = .{ .{ .int = .dword }, .any }, |
| 125931 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .xword, .is = .dword } }, .any, .any }, |
| 125932 | .patterns = &.{ |
| 125933 | .{ .src = .{ .to_mem, .none, .none } }, |
| 125934 | }, |
| 125935 | .extra_temps = .{ |
| 125936 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 125937 | .{ .type = .vector_16_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } }, |
| 125938 | .unused, |
| 125939 | .unused, |
| 125940 | .unused, |
| 125941 | .unused, |
| 125942 | .unused, |
| 125943 | .unused, |
| 125944 | .unused, |
| 125945 | .unused, |
| 125946 | .unused, |
| 125947 | }, |
| 125948 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 125949 | .clobbers = .{ .eflags = true }, |
| 125950 | .each = .{ .once = &.{ |
| 125951 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 125952 | .{ ._, ._dqa, .mov, .dst0x, .lea(.tmp0x), ._, ._ }, |
| 125953 | .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_size), ._, ._ }, |
| 125954 | .{ ._, .p_, .@"and", .dst0x, .memad(.src0x, .add_size, -16), ._, ._ }, |
| 125955 | .{ .@"0:", .p_d, .add, .dst0x, .memi(.src0x, .tmp0), ._, ._ }, |
| 125956 | .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ }, |
| 125957 | .{ ._, ._nb, .j, .@"0b", ._, ._, ._ }, |
| 125958 | .{ ._, .ph_d, .add, .dst0x, .dst0x, ._, ._ }, |
| 125959 | .{ ._, .ph_d, .add, .dst0x, .dst0x, ._, ._ }, |
| 125960 | } }, |
| 125265 | 125961 | }, .{ |
| 125266 | 125962 | .required_features = .{ .sse2, null, null, null }, |
| 125267 | 125963 | .dst_constraints = .{ .{ .int = .dword }, .any }, |
| ... | ... | @@ -125283,6 +125979,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 125283 | 125979 | .unused, |
| 125284 | 125980 | }, |
| 125285 | 125981 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 125982 | .clobbers = .{ .eflags = true }, |
| 125286 | 125983 | .each = .{ .once = &.{ |
| 125287 | 125984 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 125288 | 125985 | .{ ._, ._dqa, .mov, .dst0x, .lea(.tmp0x), ._, ._ }, |
| ... | ... | @@ -125298,7 +125995,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 125298 | 125995 | } }, |
| 125299 | 125996 | }, .{ |
| 125300 | 125997 | .dst_constraints = .{ .{ .int = .dword }, .any }, |
| 125301 | | .src_constraints = .{ .{ .unaligned_multiple_scalar_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 125998 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 125302 | 125999 | .patterns = &.{ |
| 125303 | 126000 | .{ .src = .{ .to_mem, .none, .none } }, |
| 125304 | 126001 | }, |
| ... | ... | @@ -125324,27 +126021,6 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 125324 | 126021 | .{ ._, ._, .sub, .tmp0d, .si(4), ._, ._ }, |
| 125325 | 126022 | .{ ._, ._nb, .j, .@"0b", ._, ._, ._ }, |
| 125326 | 126023 | } }, |
| 125327 | | }, .{ |
| 125328 | | .required_features = .{ .sse, null, null, null }, |
| 125329 | | .dst_constraints = .{ .{ .int = .qword }, .any }, |
| 125330 | | .src_constraints = .{ .{ .vec_len = 1 }, .any, .any }, |
| 125331 | | .patterns = &.{ |
| 125332 | | .{ .src = .{ .mut_mem, .none, .none } }, |
| 125333 | | .{ .src = .{ .mut_gpr, .none, .none } }, |
| 125334 | | .{ .src = .{ .to_mut_sse, .none, .none } }, |
| 125335 | | }, |
| 125336 | | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| 125337 | | .each = .{ .once = &.{} }, |
| 125338 | | }, .{ |
| 125339 | | .required_features = .{ .@"64bit", null, null, null }, |
| 125340 | | .dst_constraints = .{ .{ .int = .qword }, .any }, |
| 125341 | | .src_constraints = .{ .{ .vec_len = 1 }, .any, .any }, |
| 125342 | | .patterns = &.{ |
| 125343 | | .{ .src = .{ .mut_mem, .none, .none } }, |
| 125344 | | .{ .src = .{ .to_mut_gpr, .none, .none } }, |
| 125345 | | }, |
| 125346 | | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| 125347 | | .each = .{ .once = &.{} }, |
| 125348 | 126024 | }, .{ |
| 125349 | 126025 | .required_features = .{ .avx, null, null, null }, |
| 125350 | 126026 | .dst_constraints = .{ .{ .int = .qword }, .any }, |
| ... | ... | @@ -125523,7 +126199,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 125523 | 126199 | .unused, |
| 125524 | 126200 | .unused, |
| 125525 | 126201 | }, |
| 125526 | | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 126202 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 125527 | 126203 | .each = .{ .once = &.{ |
| 125528 | 126204 | .{ ._, .v_dqa, .mov, .dst0y, .mem(.src0y), ._, ._ }, |
| 125529 | 126205 | .{ ._, .vp_q, .add, .dst0y, .dst0y, .memd(.src0y, 32), ._ }, |
| ... | ... | @@ -125552,7 +126228,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 125552 | 126228 | .unused, |
| 125553 | 126229 | .unused, |
| 125554 | 126230 | }, |
| 125555 | | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 126231 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 125556 | 126232 | .each = .{ .once = &.{ |
| 125557 | 126233 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 125558 | 126234 | .{ ._, .v_dqa, .mov, .dst0y, .mem(.src0y), ._, ._ }, |
| ... | ... | @@ -125586,6 +126262,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 125586 | 126262 | .unused, |
| 125587 | 126263 | }, |
| 125588 | 126264 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 126265 | .clobbers = .{ .eflags = true }, |
| 125589 | 126266 | .each = .{ .once = &.{ |
| 125590 | 126267 | .{ ._, ._, .mov, .tmp0d, .sia(-64, .src0, .add_unaligned_size), ._, ._ }, |
| 125591 | 126268 | .{ ._, .v_dqa, .mov, .dst0y, .memad(.src0y, .add_unaligned_size, -32), ._, ._ }, |
| ... | ... | @@ -125618,6 +126295,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 125618 | 126295 | .unused, |
| 125619 | 126296 | }, |
| 125620 | 126297 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 126298 | .clobbers = .{ .eflags = true }, |
| 125621 | 126299 | .each = .{ .once = &.{ |
| 125622 | 126300 | .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_unaligned_size), ._, ._ }, |
| 125623 | 126301 | .{ ._, .v_dqa, .mov, .dst0x, .memad(.src0x, .add_unaligned_size, -16), ._, ._ }, |
| ... | ... | @@ -125648,6 +126326,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 125648 | 126326 | .unused, |
| 125649 | 126327 | }, |
| 125650 | 126328 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 126329 | .clobbers = .{ .eflags = true }, |
| 125651 | 126330 | .each = .{ .once = &.{ |
| 125652 | 126331 | .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_unaligned_size), ._, ._ }, |
| 125653 | 126332 | .{ ._, ._dqa, .mov, .dst0x, .memad(.src0x, .add_unaligned_size, -16), ._, ._ }, |
| ... | ... | @@ -125678,6 +126357,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 125678 | 126357 | .unused, |
| 125679 | 126358 | }, |
| 125680 | 126359 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 126360 | .clobbers = .{ .eflags = true }, |
| 125681 | 126361 | .each = .{ .once = &.{ |
| 125682 | 126362 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 125683 | 126363 | .{ ._, .v_dqa, .mov, .dst0y, .lea(.tmp0y), ._, ._ }, |
| ... | ... | @@ -125716,6 +126396,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 125716 | 126396 | .unused, |
| 125717 | 126397 | }, |
| 125718 | 126398 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 126399 | .clobbers = .{ .eflags = true }, |
| 125719 | 126400 | .each = .{ .once = &.{ |
| 125720 | 126401 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 125721 | 126402 | .{ ._, .v_dqa, .mov, .dst0y, .lea(.tmp0y), ._, ._ }, |
| ... | ... | @@ -125750,6 +126431,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 125750 | 126431 | .unused, |
| 125751 | 126432 | }, |
| 125752 | 126433 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 126434 | .clobbers = .{ .eflags = true }, |
| 125753 | 126435 | .each = .{ .once = &.{ |
| 125754 | 126436 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 125755 | 126437 | .{ ._, .v_ps, .mova, .dst0y, .lea(.tmp0y), ._, ._ }, |
| ... | ... | @@ -125784,6 +126466,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 125784 | 126466 | .unused, |
| 125785 | 126467 | }, |
| 125786 | 126468 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 126469 | .clobbers = .{ .eflags = true }, |
| 125787 | 126470 | .each = .{ .once = &.{ |
| 125788 | 126471 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 125789 | 126472 | .{ ._, ._dqa, .mov, .dst0x, .lea(.tmp0x), ._, ._ }, |
| ... | ... | @@ -125798,7 +126481,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 125798 | 126481 | }, .{ |
| 125799 | 126482 | .required_features = .{ .@"64bit", null, null, null }, |
| 125800 | 126483 | .dst_constraints = .{ .{ .int = .qword }, .any }, |
| 125801 | | .src_constraints = .{ .{ .unaligned_multiple_scalar_int = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 126484 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 125802 | 126485 | .patterns = &.{ |
| 125803 | 126486 | .{ .src = .{ .to_mem, .none, .none } }, |
| 125804 | 126487 | }, |
| ... | ... | @@ -125824,52 +126507,6 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 125824 | 126507 | .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ }, |
| 125825 | 126508 | .{ ._, ._nb, .j, .@"0b", ._, ._, ._ }, |
| 125826 | 126509 | } }, |
| 125827 | | }, .{ |
| 125828 | | .required_features = .{ .sse, null, null, null }, |
| 125829 | | .dst_constraints = .{ .{ .int = .xword }, .any }, |
| 125830 | | .src_constraints = .{ .{ .vec_len = 1 }, .any, .any }, |
| 125831 | | .patterns = &.{ |
| 125832 | | .{ .src = .{ .mut_mem, .none, .none } }, |
| 125833 | | .{ .src = .{ .mut_gpr, .none, .none } }, |
| 125834 | | .{ .src = .{ .to_mut_sse, .none, .none } }, |
| 125835 | | }, |
| 125836 | | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| 125837 | | .each = .{ .once = &.{} }, |
| 125838 | | }, .{ |
| 125839 | | .dst_constraints = .{ .{ .int = .xword }, .any }, |
| 125840 | | .src_constraints = .{ .{ .vec_len = 1 }, .any, .any }, |
| 125841 | | .patterns = &.{ |
| 125842 | | .{ .src = .{ .to_mut_mem, .none, .none } }, |
| 125843 | | }, |
| 125844 | | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| 125845 | | .each = .{ .once = &.{} }, |
| 125846 | | }, .{ |
| 125847 | | .required_features = .{ .avx, null, null, null }, |
| 125848 | | .dst_constraints = .{ .{ .int = .yword }, .any }, |
| 125849 | | .src_constraints = .{ .{ .vec_len = 1 }, .any, .any }, |
| 125850 | | .patterns = &.{ |
| 125851 | | .{ .src = .{ .mut_mem, .none, .none } }, |
| 125852 | | .{ .src = .{ .mut_gpr, .none, .none } }, |
| 125853 | | .{ .src = .{ .to_mut_sse, .none, .none } }, |
| 125854 | | }, |
| 125855 | | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| 125856 | | .each = .{ .once = &.{} }, |
| 125857 | | }, .{ |
| 125858 | | .dst_constraints = .{ .{ .int = .yword }, .any }, |
| 125859 | | .src_constraints = .{ .{ .vec_len = 1 }, .any, .any }, |
| 125860 | | .patterns = &.{ |
| 125861 | | .{ .src = .{ .to_mut_mem, .none, .none } }, |
| 125862 | | }, |
| 125863 | | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| 125864 | | .each = .{ .once = &.{} }, |
| 125865 | | }, .{ |
| 125866 | | .dst_constraints = .{ .any_int, .any }, |
| 125867 | | .src_constraints = .{ .{ .vec_len = 1 }, .any, .any }, |
| 125868 | | .patterns = &.{ |
| 125869 | | .{ .src = .{ .to_mut_mem, .none, .none } }, |
| 125870 | | }, |
| 125871 | | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| 125872 | | .each = .{ .once = &.{} }, |
| 125873 | 126510 | }, .{ |
| 125874 | 126511 | .required_features = .{ .@"64bit", null, null, null }, |
| 125875 | 126512 | .dst_constraints = .{ .{ .remainder_int = .{ .of = .qword, .is = .qword } }, .any }, |
| ... | ... | @@ -125910,26 +126547,6 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 125910 | 126547 | } }, |
| 125911 | 126548 | } }, |
| 125912 | 126549 | .Mul => comptime &.{ .{ |
| 125913 | | .required_features = .{ .sse, null, null, null }, |
| 125914 | | .dst_constraints = .{ .{ .int = .byte }, .any }, |
| 125915 | | .src_constraints = .{ .{ .vec_len = 1 }, .any, .any }, |
| 125916 | | .patterns = &.{ |
| 125917 | | .{ .src = .{ .mut_mem, .none, .none } }, |
| 125918 | | .{ .src = .{ .mut_gpr, .none, .none } }, |
| 125919 | | .{ .src = .{ .to_mut_sse, .none, .none } }, |
| 125920 | | }, |
| 125921 | | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| 125922 | | .each = .{ .once = &.{} }, |
| 125923 | | }, .{ |
| 125924 | | .dst_constraints = .{ .{ .int = .byte }, .any }, |
| 125925 | | .src_constraints = .{ .{ .vec_len = 1 }, .any, .any }, |
| 125926 | | .patterns = &.{ |
| 125927 | | .{ .src = .{ .mut_mem, .none, .none } }, |
| 125928 | | .{ .src = .{ .to_mut_gpr, .none, .none } }, |
| 125929 | | }, |
| 125930 | | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| 125931 | | .each = .{ .once = &.{} }, |
| 125932 | | }, .{ |
| 125933 | 126550 | .required_features = .{ .avx, null, null, null }, |
| 125934 | 126551 | .dst_constraints = .{ .{ .int = .byte }, .any }, |
| 125935 | 126552 | .src_constraints = .{ .{ .scalar_int = .{ .of = .word, .is = .byte } }, .any, .any }, |
| ... | ... | @@ -126528,7 +127145,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 126528 | 127145 | .unused, |
| 126529 | 127146 | .unused, |
| 126530 | 127147 | }, |
| 126531 | | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 127148 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 126532 | 127149 | .each = .{ .once = &.{ |
| 126533 | 127150 | .{ ._, .v_dqa, .mov, .dst0y, .mem(.src0y), ._, ._ }, |
| 126534 | 127151 | .{ ._, .v_dqa, .mov, .tmp0y, .memd(.src0y, 32), ._, ._ }, |
| ... | ... | @@ -126566,7 +127183,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 126566 | 127183 | .unused, |
| 126567 | 127184 | .unused, |
| 126568 | 127185 | }, |
| 126569 | | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 127186 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 126570 | 127187 | .each = .{ .once = &.{ |
| 126571 | 127188 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 126572 | 127189 | .{ ._, .v_dqa, .mov, .dst0y, .lea(.tmp0y), ._, ._ }, |
| ... | ... | @@ -126610,6 +127227,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 126610 | 127227 | .unused, |
| 126611 | 127228 | }, |
| 126612 | 127229 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 127230 | .clobbers = .{ .eflags = true }, |
| 126613 | 127231 | .each = .{ .once = &.{ |
| 126614 | 127232 | .{ ._, ._, .mov, .tmp0d, .sia(-48, .src0, .add_unaligned_size), ._, ._ }, |
| 126615 | 127233 | .{ ._, .v_dqa, .mov, .dst0y, .memad(.src0y, .add_unaligned_size, -32), ._, ._ }, |
| ... | ... | @@ -126649,6 +127267,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 126649 | 127267 | .unused, |
| 126650 | 127268 | }, |
| 126651 | 127269 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 127270 | .clobbers = .{ .eflags = true }, |
| 126652 | 127271 | .each = .{ .once = &.{ |
| 126653 | 127272 | .{ ._, ._, .mov, .tmp0d, .sia(-24, .src0, .add_unaligned_size), ._, ._ }, |
| 126654 | 127273 | .{ ._, .v_dqa, .mov, .dst0x, .memad(.src0x, .add_unaligned_size, -16), ._, ._ }, |
| ... | ... | @@ -126686,6 +127305,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 126686 | 127305 | .unused, |
| 126687 | 127306 | }, |
| 126688 | 127307 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 127308 | .clobbers = .{ .eflags = true }, |
| 126689 | 127309 | .each = .{ .once = &.{ |
| 126690 | 127310 | .{ ._, ._, .mov, .tmp0d, .sia(-24, .src0, .add_unaligned_size), ._, ._ }, |
| 126691 | 127311 | .{ ._, ._dqa, .mov, .dst0x, .memad(.src0x, .add_unaligned_size, -16), ._, ._ }, |
| ... | ... | @@ -126725,6 +127345,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 126725 | 127345 | .unused, |
| 126726 | 127346 | }, |
| 126727 | 127347 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 127348 | .clobbers = .{ .eflags = true }, |
| 126728 | 127349 | .each = .{ .once = &.{ |
| 126729 | 127350 | .{ ._, ._, .mov, .tmp0d, .sia(-24, .src0, .add_unaligned_size), ._, ._ }, |
| 126730 | 127351 | .{ ._, ._dqa, .mov, .dst0x, .memad(.src0x, .add_unaligned_size, -16), ._, ._ }, |
| ... | ... | @@ -126765,6 +127386,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 126765 | 127386 | .unused, |
| 126766 | 127387 | }, |
| 126767 | 127388 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 127389 | .clobbers = .{ .eflags = true }, |
| 126768 | 127390 | .each = .{ .once = &.{ |
| 126769 | 127391 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 126770 | 127392 | .{ ._, .v_dqa, .mov, .dst0y, .lea(.tmp0y), ._, ._ }, |
| ... | ... | @@ -126815,6 +127437,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 126815 | 127437 | .unused, |
| 126816 | 127438 | }, |
| 126817 | 127439 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 127440 | .clobbers = .{ .eflags = true }, |
| 126818 | 127441 | .each = .{ .once = &.{ |
| 126819 | 127442 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 126820 | 127443 | .{ ._, .v_dqa, .mov, .tmp2y, .lea(.tmp0y), ._, ._ }, |
| ... | ... | @@ -126857,6 +127480,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 126857 | 127480 | .unused, |
| 126858 | 127481 | }, |
| 126859 | 127482 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 127483 | .clobbers = .{ .eflags = true }, |
| 126860 | 127484 | .each = .{ .once = &.{ |
| 126861 | 127485 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 126862 | 127486 | .{ ._, .v_ps, .mova, .tmp2y, .lea(.tmp0y), ._, ._ }, |
| ... | ... | @@ -126903,6 +127527,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 126903 | 127527 | .unused, |
| 126904 | 127528 | }, |
| 126905 | 127529 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 127530 | .clobbers = .{ .eflags = true }, |
| 126906 | 127531 | .each = .{ .once = &.{ |
| 126907 | 127532 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 126908 | 127533 | .{ ._, ._dqa, .mov, .tmp2x, .lea(.tmp0x), ._, ._ }, |
| ... | ... | @@ -126946,6 +127571,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 126946 | 127571 | .unused, |
| 126947 | 127572 | }, |
| 126948 | 127573 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 127574 | .clobbers = .{ .eflags = true }, |
| 126949 | 127575 | .each = .{ .once = &.{ |
| 126950 | 127576 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 126951 | 127577 | .{ ._, ._dqa, .mov, .tmp2x, .lea(.tmp0x), ._, ._ }, |
| ... | ... | @@ -126972,7 +127598,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 126972 | 127598 | }, .{ |
| 126973 | 127599 | .required_features = .{ .slow_incdec, null, null, null }, |
| 126974 | 127600 | .dst_constraints = .{ .{ .int = .byte }, .any }, |
| 126975 | | .src_constraints = .{ .{ .unaligned_multiple_scalar_int = .{ .of = .byte, .is = .byte } }, .any, .any }, |
| 127601 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .byte, .is = .byte } }, .any, .any }, |
| 126976 | 127602 | .patterns = &.{ |
| 126977 | 127603 | .{ .src = .{ .to_mem, .none, .none } }, |
| 126978 | 127604 | }, |
| ... | ... | @@ -127000,7 +127626,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 127000 | 127626 | } }, |
| 127001 | 127627 | }, .{ |
| 127002 | 127628 | .dst_constraints = .{ .{ .int = .byte }, .any }, |
| 127003 | | .src_constraints = .{ .{ .unaligned_multiple_scalar_int = .{ .of = .byte, .is = .byte } }, .any, .any }, |
| 127629 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .byte, .is = .byte } }, .any, .any }, |
| 127004 | 127630 | .patterns = &.{ |
| 127005 | 127631 | .{ .src = .{ .to_mem, .none, .none } }, |
| 127006 | 127632 | }, |
| ... | ... | @@ -127026,26 +127652,6 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 127026 | 127652 | .{ ._, ._c, .de, .tmp0d, ._, ._, ._ }, |
| 127027 | 127653 | .{ ._, ._ns, .j, .@"0b", ._, ._, ._ }, |
| 127028 | 127654 | } }, |
| 127029 | | }, .{ |
| 127030 | | .required_features = .{ .sse, null, null, null }, |
| 127031 | | .dst_constraints = .{ .{ .int = .word }, .any }, |
| 127032 | | .src_constraints = .{ .{ .vec_len = 1 }, .any, .any }, |
| 127033 | | .patterns = &.{ |
| 127034 | | .{ .src = .{ .mut_mem, .none, .none } }, |
| 127035 | | .{ .src = .{ .mut_gpr, .none, .none } }, |
| 127036 | | .{ .src = .{ .to_mut_sse, .none, .none } }, |
| 127037 | | }, |
| 127038 | | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| 127039 | | .each = .{ .once = &.{} }, |
| 127040 | | }, .{ |
| 127041 | | .dst_constraints = .{ .{ .int = .word }, .any }, |
| 127042 | | .src_constraints = .{ .{ .vec_len = 1 }, .any, .any }, |
| 127043 | | .patterns = &.{ |
| 127044 | | .{ .src = .{ .mut_mem, .none, .none } }, |
| 127045 | | .{ .src = .{ .to_mut_gpr, .none, .none } }, |
| 127046 | | }, |
| 127047 | | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| 127048 | | .each = .{ .once = &.{} }, |
| 127049 | 127655 | }, .{ |
| 127050 | 127656 | .required_features = .{ .avx, null, null, null }, |
| 127051 | 127657 | .dst_constraints = .{ .{ .int = .word }, .any }, |
| ... | ... | @@ -127489,7 +128095,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 127489 | 128095 | .unused, |
| 127490 | 128096 | .unused, |
| 127491 | 128097 | }, |
| 127492 | | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 128098 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 127493 | 128099 | .each = .{ .once = &.{ |
| 127494 | 128100 | .{ ._, .v_dqa, .mov, .dst0y, .mem(.src0y), ._, ._ }, |
| 127495 | 128101 | .{ ._, .vp_w, .mull, .dst0y, .dst0y, .memd(.src0y, 32), ._ }, |
| ... | ... | @@ -127522,7 +128128,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 127522 | 128128 | .unused, |
| 127523 | 128129 | .unused, |
| 127524 | 128130 | }, |
| 127525 | | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 128131 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 127526 | 128132 | .each = .{ .once = &.{ |
| 127527 | 128133 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 127528 | 128134 | .{ ._, .v_dqa, .mov, .dst0y, .lea(.tmp0y), ._, ._ }, |
| ... | ... | @@ -127562,6 +128168,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 127562 | 128168 | .unused, |
| 127563 | 128169 | }, |
| 127564 | 128170 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 128171 | .clobbers = .{ .eflags = true }, |
| 127565 | 128172 | .each = .{ .once = &.{ |
| 127566 | 128173 | .{ ._, ._, .mov, .tmp0d, .sia(-64, .src0, .add_unaligned_size), ._, ._ }, |
| 127567 | 128174 | .{ ._, .v_dqa, .mov, .dst0y, .memad(.src0y, .add_unaligned_size, -32), ._, ._ }, |
| ... | ... | @@ -127598,6 +128205,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 127598 | 128205 | .unused, |
| 127599 | 128206 | }, |
| 127600 | 128207 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 128208 | .clobbers = .{ .eflags = true }, |
| 127601 | 128209 | .each = .{ .once = &.{ |
| 127602 | 128210 | .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_unaligned_size), ._, ._ }, |
| 127603 | 128211 | .{ ._, .v_dqa, .mov, .dst0x, .memad(.src0x, .add_unaligned_size, -16), ._, ._ }, |
| ... | ... | @@ -127632,6 +128240,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 127632 | 128240 | .unused, |
| 127633 | 128241 | }, |
| 127634 | 128242 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 128243 | .clobbers = .{ .eflags = true }, |
| 127635 | 128244 | .each = .{ .once = &.{ |
| 127636 | 128245 | .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_unaligned_size), ._, ._ }, |
| 127637 | 128246 | .{ ._, ._dqa, .mov, .dst0x, .memad(.src0x, .add_unaligned_size, -16), ._, ._ }, |
| ... | ... | @@ -127667,6 +128276,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 127667 | 128276 | .unused, |
| 127668 | 128277 | }, |
| 127669 | 128278 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 128279 | .clobbers = .{ .eflags = true }, |
| 127670 | 128280 | .each = .{ .once = &.{ |
| 127671 | 128281 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 127672 | 128282 | .{ ._, .v_dqa, .mov, .dst0y, .lea(.tmp0y), ._, ._ }, |
| ... | ... | @@ -127711,6 +128321,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 127711 | 128321 | .unused, |
| 127712 | 128322 | }, |
| 127713 | 128323 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 128324 | .clobbers = .{ .eflags = true }, |
| 127714 | 128325 | .each = .{ .once = &.{ |
| 127715 | 128326 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 127716 | 128327 | .{ ._, .v_dqa, .mov, .tmp2y, .lea(.tmp0y), ._, ._ }, |
| ... | ... | @@ -127750,6 +128361,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 127750 | 128361 | .unused, |
| 127751 | 128362 | }, |
| 127752 | 128363 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 128364 | .clobbers = .{ .eflags = true }, |
| 127753 | 128365 | .each = .{ .once = &.{ |
| 127754 | 128366 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 127755 | 128367 | .{ ._, .v_ps, .mova, .tmp2y, .lea(.tmp0y), ._, ._ }, |
| ... | ... | @@ -127791,6 +128403,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 127791 | 128403 | .unused, |
| 127792 | 128404 | }, |
| 127793 | 128405 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 128406 | .clobbers = .{ .eflags = true }, |
| 127794 | 128407 | .each = .{ .once = &.{ |
| 127795 | 128408 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 127796 | 128409 | .{ ._, ._dqa, .mov, .tmp2x, .lea(.tmp0x), ._, ._ }, |
| ... | ... | @@ -127811,7 +128424,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 127811 | 128424 | } }, |
| 127812 | 128425 | }, .{ |
| 127813 | 128426 | .dst_constraints = .{ .{ .int = .word }, .any }, |
| 127814 | | .src_constraints = .{ .{ .unaligned_multiple_scalar_int = .{ .of = .word, .is = .word } }, .any, .any }, |
| 128427 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .word, .is = .word } }, .any, .any }, |
| 127815 | 128428 | .patterns = &.{ |
| 127816 | 128429 | .{ .src = .{ .to_mem, .none, .none } }, |
| 127817 | 128430 | }, |
| ... | ... | @@ -127837,26 +128450,6 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 127837 | 128450 | .{ ._, ._, .sub, .tmp0d, .si(2), ._, ._ }, |
| 127838 | 128451 | .{ ._, ._nb, .j, .@"0b", ._, ._, ._ }, |
| 127839 | 128452 | } }, |
| 127840 | | }, .{ |
| 127841 | | .required_features = .{ .sse, null, null, null }, |
| 127842 | | .dst_constraints = .{ .{ .int = .dword }, .any }, |
| 127843 | | .src_constraints = .{ .{ .vec_len = 1 }, .any, .any }, |
| 127844 | | .patterns = &.{ |
| 127845 | | .{ .src = .{ .mut_mem, .none, .none } }, |
| 127846 | | .{ .src = .{ .mut_gpr, .none, .none } }, |
| 127847 | | .{ .src = .{ .to_mut_sse, .none, .none } }, |
| 127848 | | }, |
| 127849 | | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| 127850 | | .each = .{ .once = &.{} }, |
| 127851 | | }, .{ |
| 127852 | | .dst_constraints = .{ .{ .int = .dword }, .any }, |
| 127853 | | .src_constraints = .{ .{ .vec_len = 1 }, .any, .any }, |
| 127854 | | .patterns = &.{ |
| 127855 | | .{ .src = .{ .mut_mem, .none, .none } }, |
| 127856 | | .{ .src = .{ .to_mut_gpr, .none, .none } }, |
| 127857 | | }, |
| 127858 | | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| 127859 | | .each = .{ .once = &.{} }, |
| 127860 | 128453 | }, .{ |
| 127861 | 128454 | .required_features = .{ .avx, null, null, null }, |
| 127862 | 128455 | .dst_constraints = .{ .{ .int = .dword }, .any }, |
| ... | ... | @@ -128163,7 +128756,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 128163 | 128756 | .unused, |
| 128164 | 128757 | .unused, |
| 128165 | 128758 | }, |
| 128166 | | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 128759 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 128167 | 128760 | .each = .{ .once = &.{ |
| 128168 | 128761 | .{ ._, .v_dqa, .mov, .dst0y, .mem(.src0y), ._, ._ }, |
| 128169 | 128762 | .{ ._, .vp_d, .mull, .dst0y, .dst0y, .memd(.src0y, 32), ._ }, |
| ... | ... | @@ -128194,7 +128787,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 128194 | 128787 | .unused, |
| 128195 | 128788 | .unused, |
| 128196 | 128789 | }, |
| 128197 | | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 128790 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 128198 | 128791 | .each = .{ .once = &.{ |
| 128199 | 128792 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 128200 | 128793 | .{ ._, .v_dqa, .mov, .dst0y, .lea(.tmp0y), ._, ._ }, |
| ... | ... | @@ -128232,6 +128825,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 128232 | 128825 | .unused, |
| 128233 | 128826 | }, |
| 128234 | 128827 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 128828 | .clobbers = .{ .eflags = true }, |
| 128235 | 128829 | .each = .{ .once = &.{ |
| 128236 | 128830 | .{ ._, ._, .mov, .tmp0d, .sia(-64, .src0, .add_unaligned_size), ._, ._ }, |
| 128237 | 128831 | .{ ._, .v_dqa, .mov, .dst0y, .memad(.src0y, .add_unaligned_size, -32), ._, ._ }, |
| ... | ... | @@ -128266,6 +128860,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 128266 | 128860 | .unused, |
| 128267 | 128861 | }, |
| 128268 | 128862 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 128863 | .clobbers = .{ .eflags = true }, |
| 128269 | 128864 | .each = .{ .once = &.{ |
| 128270 | 128865 | .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_unaligned_size), ._, ._ }, |
| 128271 | 128866 | .{ ._, .v_dqa, .mov, .dst0x, .memad(.src0x, .add_unaligned_size, -16), ._, ._ }, |
| ... | ... | @@ -128298,6 +128893,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 128298 | 128893 | .unused, |
| 128299 | 128894 | }, |
| 128300 | 128895 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 128896 | .clobbers = .{ .eflags = true }, |
| 128301 | 128897 | .each = .{ .once = &.{ |
| 128302 | 128898 | .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_unaligned_size), ._, ._ }, |
| 128303 | 128899 | .{ ._, ._dqa, .mov, .dst0x, .memad(.src0x, .add_unaligned_size, -16), ._, ._ }, |
| ... | ... | @@ -128330,6 +128926,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 128330 | 128926 | .unused, |
| 128331 | 128927 | }, |
| 128332 | 128928 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 128929 | .clobbers = .{ .eflags = true }, |
| 128333 | 128930 | .each = .{ .once = &.{ |
| 128334 | 128931 | .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_unaligned_size), ._, ._ }, |
| 128335 | 128932 | .{ ._, ._dqa, .mov, .dst0x, .memad(.src0x, .add_unaligned_size, -16), ._, ._ }, |
| ... | ... | @@ -128365,6 +128962,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 128365 | 128962 | .unused, |
| 128366 | 128963 | }, |
| 128367 | 128964 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 128965 | .clobbers = .{ .eflags = true }, |
| 128368 | 128966 | .each = .{ .once = &.{ |
| 128369 | 128967 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 128370 | 128968 | .{ ._, .v_dqa, .mov, .dst0y, .lea(.tmp0y), ._, ._ }, |
| ... | ... | @@ -128407,6 +129005,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 128407 | 129005 | .unused, |
| 128408 | 129006 | }, |
| 128409 | 129007 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 129008 | .clobbers = .{ .eflags = true }, |
| 128410 | 129009 | .each = .{ .once = &.{ |
| 128411 | 129010 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 128412 | 129011 | .{ ._, .v_dqa, .mov, .tmp2y, .lea(.tmp0y), ._, ._ }, |
| ... | ... | @@ -128444,6 +129043,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 128444 | 129043 | .unused, |
| 128445 | 129044 | }, |
| 128446 | 129045 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 129046 | .clobbers = .{ .eflags = true }, |
| 128447 | 129047 | .each = .{ .once = &.{ |
| 128448 | 129048 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 128449 | 129049 | .{ ._, .v_ps, .mova, .tmp2y, .lea(.tmp0y), ._, ._ }, |
| ... | ... | @@ -128483,6 +129083,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 128483 | 129083 | .unused, |
| 128484 | 129084 | }, |
| 128485 | 129085 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 129086 | .clobbers = .{ .eflags = true }, |
| 128486 | 129087 | .each = .{ .once = &.{ |
| 128487 | 129088 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 128488 | 129089 | .{ ._, ._dqa, .mov, .tmp2x, .lea(.tmp0x), ._, ._ }, |
| ... | ... | @@ -128519,6 +129120,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 128519 | 129120 | .unused, |
| 128520 | 129121 | }, |
| 128521 | 129122 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 129123 | .clobbers = .{ .eflags = true }, |
| 128522 | 129124 | .each = .{ .once = &.{ |
| 128523 | 129125 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 128524 | 129126 | .{ ._, ._dqa, .mov, .tmp2x, .lea(.tmp0x), ._, ._ }, |
| ... | ... | @@ -128539,7 +129141,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 128539 | 129141 | } }, |
| 128540 | 129142 | }, .{ |
| 128541 | 129143 | .dst_constraints = .{ .{ .int = .dword }, .any }, |
| 128542 | | .src_constraints = .{ .{ .unaligned_multiple_scalar_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 129144 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 128543 | 129145 | .patterns = &.{ |
| 128544 | 129146 | .{ .src = .{ .to_mem, .none, .none } }, |
| 128545 | 129147 | }, |
| ... | ... | @@ -128565,31 +129167,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 128565 | 129167 | .{ ._, ._, .sub, .tmp0d, .si(4), ._, ._ }, |
| 128566 | 129168 | .{ ._, ._nb, .j, .@"0b", ._, ._, ._ }, |
| 128567 | 129169 | } }, |
| 128568 | | }, .{ |
| 128569 | | .required_features = .{ .sse, null, null, null }, |
| 128570 | | .dst_constraints = .{ .{ .int = .qword }, .any }, |
| 128571 | | .src_constraints = .{ .{ .vec_len = 1 }, .any, .any }, |
| 128572 | | .patterns = &.{ |
| 128573 | | .{ .src = .{ .mut_mem, .none, .none } }, |
| 128574 | | .{ .src = .{ .mut_gpr, .none, .none } }, |
| 128575 | | .{ .src = .{ .to_mut_sse, .none, .none } }, |
| 128576 | | }, |
| 128577 | | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| 128578 | | .each = .{ .once = &.{} }, |
| 128579 | | }, .{ |
| 128580 | | .required_features = .{ .@"64bit", null, null, null }, |
| 128581 | | .dst_constraints = .{ .{ .int = .qword }, .any }, |
| 128582 | | .src_constraints = .{ .{ .vec_len = 1 }, .any, .any }, |
| 128583 | | .patterns = &.{ |
| 128584 | | .{ .src = .{ .mut_mem, .none, .none } }, |
| 128585 | | .{ .src = .{ .to_mut_gpr, .none, .none } }, |
| 128586 | | }, |
| 128587 | | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| 128588 | | .each = .{ .once = &.{} }, |
| 128589 | 129170 | }, .{ |
| 128590 | 129171 | .required_features = .{ .@"64bit", null, null, null }, |
| 128591 | 129172 | .dst_constraints = .{ .{ .int = .qword }, .any }, |
| 128592 | | .src_constraints = .{ .{ .unaligned_multiple_scalar_int = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 129173 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 128593 | 129174 | .patterns = &.{ |
| 128594 | 129175 | .{ .src = .{ .to_mem, .none, .none } }, |
| 128595 | 129176 | }, |
| ... | ... | @@ -128615,52 +129196,6 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 128615 | 129196 | .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ }, |
| 128616 | 129197 | .{ ._, ._nb, .j, .@"0b", ._, ._, ._ }, |
| 128617 | 129198 | } }, |
| 128618 | | }, .{ |
| 128619 | | .required_features = .{ .sse, null, null, null }, |
| 128620 | | .dst_constraints = .{ .{ .int = .xword }, .any }, |
| 128621 | | .src_constraints = .{ .{ .vec_len = 1 }, .any, .any }, |
| 128622 | | .patterns = &.{ |
| 128623 | | .{ .src = .{ .mut_mem, .none, .none } }, |
| 128624 | | .{ .src = .{ .mut_gpr, .none, .none } }, |
| 128625 | | .{ .src = .{ .to_mut_sse, .none, .none } }, |
| 128626 | | }, |
| 128627 | | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| 128628 | | .each = .{ .once = &.{} }, |
| 128629 | | }, .{ |
| 128630 | | .dst_constraints = .{ .{ .int = .xword }, .any }, |
| 128631 | | .src_constraints = .{ .{ .vec_len = 1 }, .any, .any }, |
| 128632 | | .patterns = &.{ |
| 128633 | | .{ .src = .{ .to_mut_mem, .none, .none } }, |
| 128634 | | }, |
| 128635 | | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| 128636 | | .each = .{ .once = &.{} }, |
| 128637 | | }, .{ |
| 128638 | | .required_features = .{ .avx, null, null, null }, |
| 128639 | | .dst_constraints = .{ .{ .int = .yword }, .any }, |
| 128640 | | .src_constraints = .{ .{ .vec_len = 1 }, .any, .any }, |
| 128641 | | .patterns = &.{ |
| 128642 | | .{ .src = .{ .mut_mem, .none, .none } }, |
| 128643 | | .{ .src = .{ .mut_gpr, .none, .none } }, |
| 128644 | | .{ .src = .{ .to_mut_sse, .none, .none } }, |
| 128645 | | }, |
| 128646 | | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| 128647 | | .each = .{ .once = &.{} }, |
| 128648 | | }, .{ |
| 128649 | | .dst_constraints = .{ .{ .int = .yword }, .any }, |
| 128650 | | .src_constraints = .{ .{ .vec_len = 1 }, .any, .any }, |
| 128651 | | .patterns = &.{ |
| 128652 | | .{ .src = .{ .to_mut_mem, .none, .none } }, |
| 128653 | | }, |
| 128654 | | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| 128655 | | .each = .{ .once = &.{} }, |
| 128656 | | }, .{ |
| 128657 | | .dst_constraints = .{ .any_int, .any }, |
| 128658 | | .src_constraints = .{ .{ .vec_len = 1 }, .any, .any }, |
| 128659 | | .patterns = &.{ |
| 128660 | | .{ .src = .{ .to_mut_mem, .none, .none } }, |
| 128661 | | }, |
| 128662 | | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| 128663 | | .each = .{ .once = &.{} }, |
| 128664 | 129199 | }, .{ |
| 128665 | 129200 | .required_features = .{ .@"64bit", .bmi2, .adx, null }, |
| 128666 | 129201 | .dst_constraints = .{ .{ .remainder_int = .{ .of = .qword, .is = .qword } }, .any }, |
| ... | ... | @@ -128937,6 +129472,2289 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 128937 | 129472 | } |
| 128938 | 129473 | try res[0].finish(inst, &.{reduce.operand}, &ops, cg); |
| 128939 | 129474 | }, |
| 129475 | .reduce_optimized => |air_tag| if (use_old) try cg.airReduce(inst) else fallback: { |
| 129476 | const reduce = air_datas[@intFromEnum(inst)].reduce; |
| 129477 | switch (reduce.operation) { |
| 129478 | .And, .Or, .Xor => unreachable, |
| 129479 | .Min, .Max => break :fallback try cg.airReduce(inst), |
| 129480 | .Add => {}, |
| 129481 | .Mul => break :fallback try cg.airReduce(inst), |
| 129482 | } |
| 129483 | var ops = try cg.tempsFromOperands(inst, .{reduce.operand}); |
| 129484 | var res: [1]Temp = undefined; |
| 129485 | cg.select(&res, &.{cg.typeOfIndex(inst)}, &ops, switch (reduce.operation) { |
| 129486 | .And, .Or, .Xor => unreachable, |
| 129487 | .Min, .Max => unreachable, |
| 129488 | .Add => comptime &.{ .{ |
| 129489 | .required_features = .{ .f16c, .fast_hops, null, null }, |
| 129490 | .dst_constraints = .{ .{ .float = .word }, .any }, |
| 129491 | .src_constraints = .{ .{ .exact_scalar_float = .{ .of = .dword, .is = .word } }, .any, .any }, |
| 129492 | .patterns = &.{ |
| 129493 | .{ .src = .{ .mem, .none, .none } }, |
| 129494 | .{ .src = .{ .to_sse, .none, .none } }, |
| 129495 | }, |
| 129496 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 129497 | .each = .{ .once = &.{ |
| 129498 | .{ ._, .v_ps, .cvtph2, .dst0x, .src0q, ._, ._ }, |
| 129499 | .{ ._, .vh_ps, .add, .dst0x, .dst0x, .dst0x, ._ }, |
| 129500 | .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ }, |
| 129501 | } }, |
| 129502 | }, .{ |
| 129503 | .required_features = .{ .f16c, null, null, null }, |
| 129504 | .dst_constraints = .{ .{ .float = .word }, .any }, |
| 129505 | .src_constraints = .{ .{ .exact_scalar_float = .{ .of = .dword, .is = .word } }, .any, .any }, |
| 129506 | .patterns = &.{ |
| 129507 | .{ .src = .{ .mem, .none, .none } }, |
| 129508 | .{ .src = .{ .to_sse, .none, .none } }, |
| 129509 | }, |
| 129510 | .extra_temps = .{ |
| 129511 | .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } }, |
| 129512 | .unused, |
| 129513 | .unused, |
| 129514 | .unused, |
| 129515 | .unused, |
| 129516 | .unused, |
| 129517 | .unused, |
| 129518 | .unused, |
| 129519 | .unused, |
| 129520 | .unused, |
| 129521 | .unused, |
| 129522 | }, |
| 129523 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 129524 | .each = .{ .once = &.{ |
| 129525 | .{ ._, .v_ps, .cvtph2, .dst0x, .src0q, ._, ._ }, |
| 129526 | .{ ._, .v_ps, .shuf, .tmp0x, .dst0x, .dst0x, .ui(0b01_01_01_01) }, |
| 129527 | .{ ._, .v_ss, .add, .dst0x, .dst0x, .tmp0x, ._ }, |
| 129528 | .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ }, |
| 129529 | } }, |
| 129530 | }, .{ |
| 129531 | .required_features = .{ .f16c, .fast_hops, null, null }, |
| 129532 | .dst_constraints = .{ .{ .float = .word }, .any }, |
| 129533 | .src_constraints = .{ .{ .exclusive_scalar_float = .{ .of = .qword, .is = .word } }, .any, .any }, |
| 129534 | .patterns = &.{ |
| 129535 | .{ .src = .{ .mem, .none, .none } }, |
| 129536 | .{ .src = .{ .to_sse, .none, .none } }, |
| 129537 | }, |
| 129538 | .extra_temps = .{ |
| 129539 | .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } }, |
| 129540 | .unused, |
| 129541 | .unused, |
| 129542 | .unused, |
| 129543 | .unused, |
| 129544 | .unused, |
| 129545 | .unused, |
| 129546 | .unused, |
| 129547 | .unused, |
| 129548 | .unused, |
| 129549 | .unused, |
| 129550 | }, |
| 129551 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 129552 | .each = .{ .once = &.{ |
| 129553 | .{ ._, .v_ps, .cvtph2, .dst0x, .src0q, ._, ._ }, |
| 129554 | .{ ._, .vh_ps, .add, .tmp0x, .dst0x, .dst0x, ._ }, |
| 129555 | .{ ._, .v_ps, .shuf, .dst0x, .dst0x, .dst0x, .ui(0b11_10_11_10) }, |
| 129556 | .{ ._, .v_ss, .add, .dst0x, .tmp0x, .dst0x, ._ }, |
| 129557 | .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ }, |
| 129558 | } }, |
| 129559 | }, .{ |
| 129560 | .required_features = .{ .f16c, null, null, null }, |
| 129561 | .dst_constraints = .{ .{ .float = .word }, .any }, |
| 129562 | .src_constraints = .{ .{ .exclusive_scalar_float = .{ .of = .qword, .is = .word } }, .any, .any }, |
| 129563 | .patterns = &.{ |
| 129564 | .{ .src = .{ .mem, .none, .none } }, |
| 129565 | .{ .src = .{ .to_sse, .none, .none } }, |
| 129566 | }, |
| 129567 | .extra_temps = .{ |
| 129568 | .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } }, |
| 129569 | .unused, |
| 129570 | .unused, |
| 129571 | .unused, |
| 129572 | .unused, |
| 129573 | .unused, |
| 129574 | .unused, |
| 129575 | .unused, |
| 129576 | .unused, |
| 129577 | .unused, |
| 129578 | .unused, |
| 129579 | }, |
| 129580 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 129581 | .each = .{ .once = &.{ |
| 129582 | .{ ._, .v_ps, .cvtph2, .dst0x, .src0q, ._, ._ }, |
| 129583 | .{ ._, .v_ps, .shuf, .tmp0x, .dst0x, .dst0x, .ui(0b11_10_11_10) }, |
| 129584 | .{ ._, .v_ss, .add, .dst0x, .dst0x, .tmp0x, ._ }, |
| 129585 | .{ ._, .v_ps, .shuf, .tmp0x, .dst0x, .dst0x, .ui(0b01_01_01_01) }, |
| 129586 | .{ ._, .v_ss, .add, .dst0x, .dst0x, .tmp0x, ._ }, |
| 129587 | .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ }, |
| 129588 | } }, |
| 129589 | }, .{ |
| 129590 | .required_features = .{ .f16c, .fast_hops, null, null }, |
| 129591 | .dst_constraints = .{ .{ .float = .word }, .any }, |
| 129592 | .src_constraints = .{ .{ .exact_scalar_float = .{ .of = .qword, .is = .word } }, .any, .any }, |
| 129593 | .patterns = &.{ |
| 129594 | .{ .src = .{ .mem, .none, .none } }, |
| 129595 | .{ .src = .{ .to_sse, .none, .none } }, |
| 129596 | }, |
| 129597 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 129598 | .each = .{ .once = &.{ |
| 129599 | .{ ._, .v_ps, .cvtph2, .dst0x, .src0q, ._, ._ }, |
| 129600 | .{ ._, .vh_ps, .add, .dst0x, .dst0x, .dst0x, ._ }, |
| 129601 | .{ ._, .vh_ps, .add, .dst0x, .dst0x, .dst0x, ._ }, |
| 129602 | .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ }, |
| 129603 | } }, |
| 129604 | }, .{ |
| 129605 | .required_features = .{ .f16c, null, null, null }, |
| 129606 | .dst_constraints = .{ .{ .float = .word }, .any }, |
| 129607 | .src_constraints = .{ .{ .exact_scalar_float = .{ .of = .qword, .is = .word } }, .any, .any }, |
| 129608 | .patterns = &.{ |
| 129609 | .{ .src = .{ .mem, .none, .none } }, |
| 129610 | .{ .src = .{ .to_sse, .none, .none } }, |
| 129611 | }, |
| 129612 | .extra_temps = .{ |
| 129613 | .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } }, |
| 129614 | .unused, |
| 129615 | .unused, |
| 129616 | .unused, |
| 129617 | .unused, |
| 129618 | .unused, |
| 129619 | .unused, |
| 129620 | .unused, |
| 129621 | .unused, |
| 129622 | .unused, |
| 129623 | .unused, |
| 129624 | }, |
| 129625 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 129626 | .each = .{ .once = &.{ |
| 129627 | .{ ._, .v_ps, .cvtph2, .dst0x, .src0q, ._, ._ }, |
| 129628 | .{ ._, .v_ps, .shuf, .tmp0x, .dst0x, .dst0x, .ui(0b11_10_11_10) }, |
| 129629 | .{ ._, .v_ps, .add, .dst0x, .dst0x, .tmp0x, ._ }, |
| 129630 | .{ ._, .v_ps, .shuf, .tmp0x, .dst0x, .dst0x, .ui(0b01_01_01_01) }, |
| 129631 | .{ ._, .v_ss, .add, .dst0x, .dst0x, .tmp0x, ._ }, |
| 129632 | .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ }, |
| 129633 | } }, |
| 129634 | }, .{ |
| 129635 | .required_features = .{ .f16c, .fast_hops, null, null }, |
| 129636 | .dst_constraints = .{ .{ .float = .word }, .any }, |
| 129637 | .src_constraints = .{ .{ .exclusive_scalar_float = .{ .of = .xword, .is = .word } }, .any, .any }, |
| 129638 | .patterns = &.{ |
| 129639 | .{ .src = .{ .to_sse, .none, .none } }, |
| 129640 | }, |
| 129641 | .extra_temps = .{ |
| 129642 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 129643 | .{ .type = .vector_16_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } }, |
| 129644 | .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } }, |
| 129645 | .unused, |
| 129646 | .unused, |
| 129647 | .unused, |
| 129648 | .unused, |
| 129649 | .unused, |
| 129650 | .unused, |
| 129651 | .unused, |
| 129652 | .unused, |
| 129653 | }, |
| 129654 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 129655 | .each = .{ .once = &.{ |
| 129656 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 129657 | .{ ._, .v_ps, .@"and", .dst0x, .src0x, .lea(.tmp0x), ._ }, |
| 129658 | .{ ._, .v_ps, .cvtph2, .dst0y, .dst0x, ._, ._ }, |
| 129659 | .{ ._, .vh_ps, .add, .dst0y, .dst0y, .dst0y, ._ }, |
| 129660 | .{ ._, .vh_ps, .add, .dst0y, .dst0y, .dst0y, ._ }, |
| 129661 | .{ ._, .v_f128, .extract, .tmp2x, .dst0y, .ui(1), ._ }, |
| 129662 | .{ ._, .v_ss, .add, .dst0x, .dst0x, .tmp2x, ._ }, |
| 129663 | .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ }, |
| 129664 | } }, |
| 129665 | }, .{ |
| 129666 | .required_features = .{ .f16c, null, null, null }, |
| 129667 | .dst_constraints = .{ .{ .float = .word }, .any }, |
| 129668 | .src_constraints = .{ .{ .exclusive_scalar_float = .{ .of = .xword, .is = .word } }, .any, .any }, |
| 129669 | .patterns = &.{ |
| 129670 | .{ .src = .{ .to_sse, .none, .none } }, |
| 129671 | }, |
| 129672 | .extra_temps = .{ |
| 129673 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 129674 | .{ .type = .vector_16_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } }, |
| 129675 | .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } }, |
| 129676 | .unused, |
| 129677 | .unused, |
| 129678 | .unused, |
| 129679 | .unused, |
| 129680 | .unused, |
| 129681 | .unused, |
| 129682 | .unused, |
| 129683 | .unused, |
| 129684 | }, |
| 129685 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 129686 | .each = .{ .once = &.{ |
| 129687 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 129688 | .{ ._, .v_ps, .@"and", .dst0x, .src0x, .lea(.tmp0x), ._ }, |
| 129689 | .{ ._, .v_ps, .cvtph2, .dst0y, .dst0x, ._, ._ }, |
| 129690 | .{ ._, .v_f128, .extract, .tmp2x, .dst0y, .ui(1), ._ }, |
| 129691 | .{ ._, .v_ps, .add, .dst0x, .dst0x, .tmp2x, ._ }, |
| 129692 | .{ ._, .v_ps, .shuf, .tmp2x, .dst0x, .dst0x, .ui(0b11_10_11_10) }, |
| 129693 | .{ ._, .v_ps, .add, .dst0x, .dst0x, .tmp2x, ._ }, |
| 129694 | .{ ._, .v_ps, .shuf, .tmp2x, .dst0x, .dst0x, .ui(0b01_01_01_01) }, |
| 129695 | .{ ._, .v_ss, .add, .dst0x, .dst0x, .tmp2x, ._ }, |
| 129696 | .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ }, |
| 129697 | } }, |
| 129698 | }, .{ |
| 129699 | .required_features = .{ .f16c, .fast_hops, null, null }, |
| 129700 | .dst_constraints = .{ .{ .float = .word }, .any }, |
| 129701 | .src_constraints = .{ .{ .exact_scalar_float = .{ .of = .xword, .is = .word } }, .any, .any }, |
| 129702 | .patterns = &.{ |
| 129703 | .{ .src = .{ .mem, .none, .none } }, |
| 129704 | .{ .src = .{ .to_sse, .none, .none } }, |
| 129705 | }, |
| 129706 | .extra_temps = .{ |
| 129707 | .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } }, |
| 129708 | .unused, |
| 129709 | .unused, |
| 129710 | .unused, |
| 129711 | .unused, |
| 129712 | .unused, |
| 129713 | .unused, |
| 129714 | .unused, |
| 129715 | .unused, |
| 129716 | .unused, |
| 129717 | .unused, |
| 129718 | }, |
| 129719 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 129720 | .each = .{ .once = &.{ |
| 129721 | .{ ._, .v_ps, .cvtph2, .dst0y, .src0x, ._, ._ }, |
| 129722 | .{ ._, .vh_ps, .add, .dst0y, .dst0y, .dst0y, ._ }, |
| 129723 | .{ ._, .vh_ps, .add, .dst0y, .dst0y, .dst0y, ._ }, |
| 129724 | .{ ._, .v_f128, .extract, .tmp0x, .dst0y, .ui(1), ._ }, |
| 129725 | .{ ._, .v_ss, .add, .dst0x, .dst0x, .tmp0x, ._ }, |
| 129726 | .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ }, |
| 129727 | } }, |
| 129728 | }, .{ |
| 129729 | .required_features = .{ .f16c, null, null, null }, |
| 129730 | .dst_constraints = .{ .{ .float = .word }, .any }, |
| 129731 | .src_constraints = .{ .{ .exact_scalar_float = .{ .of = .xword, .is = .word } }, .any, .any }, |
| 129732 | .patterns = &.{ |
| 129733 | .{ .src = .{ .mem, .none, .none } }, |
| 129734 | .{ .src = .{ .to_sse, .none, .none } }, |
| 129735 | }, |
| 129736 | .extra_temps = .{ |
| 129737 | .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } }, |
| 129738 | .unused, |
| 129739 | .unused, |
| 129740 | .unused, |
| 129741 | .unused, |
| 129742 | .unused, |
| 129743 | .unused, |
| 129744 | .unused, |
| 129745 | .unused, |
| 129746 | .unused, |
| 129747 | .unused, |
| 129748 | }, |
| 129749 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 129750 | .each = .{ .once = &.{ |
| 129751 | .{ ._, .v_ps, .cvtph2, .dst0y, .src0x, ._, ._ }, |
| 129752 | .{ ._, .v_f128, .extract, .tmp0x, .dst0y, .ui(1), ._ }, |
| 129753 | .{ ._, .v_ps, .add, .dst0x, .dst0x, .tmp0x, ._ }, |
| 129754 | .{ ._, .v_ps, .shuf, .tmp0x, .dst0x, .dst0x, .ui(0b11_10_11_10) }, |
| 129755 | .{ ._, .v_ps, .add, .dst0x, .dst0x, .tmp0x, ._ }, |
| 129756 | .{ ._, .v_ps, .shuf, .tmp0x, .dst0x, .dst0x, .ui(0b01_01_01_01) }, |
| 129757 | .{ ._, .v_ss, .add, .dst0x, .dst0x, .tmp0x, ._ }, |
| 129758 | .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ }, |
| 129759 | } }, |
| 129760 | }, .{ |
| 129761 | .required_features = .{ .f16c, .fast_hops, null, null }, |
| 129762 | .dst_constraints = .{ .{ .float = .word }, .any }, |
| 129763 | .src_constraints = .{ .{ .exclusive_scalar_float = .{ .of = .yword, .is = .word } }, .any, .any }, |
| 129764 | .patterns = &.{ |
| 129765 | .{ .src = .{ .to_sse, .none, .none } }, |
| 129766 | }, |
| 129767 | .extra_temps = .{ |
| 129768 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 129769 | .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } }, |
| 129770 | .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } }, |
| 129771 | .unused, |
| 129772 | .unused, |
| 129773 | .unused, |
| 129774 | .unused, |
| 129775 | .unused, |
| 129776 | .unused, |
| 129777 | .unused, |
| 129778 | .unused, |
| 129779 | }, |
| 129780 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 129781 | .each = .{ .once = &.{ |
| 129782 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 129783 | .{ ._, .v_ps, .@"and", .dst0y, .src0y, .lea(.tmp0y), ._ }, |
| 129784 | .{ ._, .v_f128, .extract, .tmp2x, .dst0y, .ui(1), ._ }, |
| 129785 | .{ ._, .v_ps, .cvtph2, .dst0y, .dst0x, ._, ._ }, |
| 129786 | .{ ._, .v_ps, .cvtph2, .tmp2y, .tmp2x, ._, ._ }, |
| 129787 | .{ ._, .v_ps, .add, .dst0y, .dst0y, .tmp2y, ._ }, |
| 129788 | .{ ._, .vh_ps, .add, .dst0y, .dst0y, .dst0y, ._ }, |
| 129789 | .{ ._, .vh_ps, .add, .dst0y, .dst0y, .dst0y, ._ }, |
| 129790 | .{ ._, .v_f128, .extract, .tmp2x, .dst0y, .ui(1), ._ }, |
| 129791 | .{ ._, .v_ss, .add, .dst0x, .dst0x, .tmp2x, ._ }, |
| 129792 | .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ }, |
| 129793 | } }, |
| 129794 | }, .{ |
| 129795 | .required_features = .{ .f16c, null, null, null }, |
| 129796 | .dst_constraints = .{ .{ .float = .word }, .any }, |
| 129797 | .src_constraints = .{ .{ .exclusive_scalar_float = .{ .of = .yword, .is = .word } }, .any, .any }, |
| 129798 | .patterns = &.{ |
| 129799 | .{ .src = .{ .to_sse, .none, .none } }, |
| 129800 | }, |
| 129801 | .extra_temps = .{ |
| 129802 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 129803 | .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } }, |
| 129804 | .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } }, |
| 129805 | .unused, |
| 129806 | .unused, |
| 129807 | .unused, |
| 129808 | .unused, |
| 129809 | .unused, |
| 129810 | .unused, |
| 129811 | .unused, |
| 129812 | .unused, |
| 129813 | }, |
| 129814 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 129815 | .each = .{ .once = &.{ |
| 129816 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 129817 | .{ ._, .v_ps, .@"and", .dst0y, .src0y, .lea(.tmp0y), ._ }, |
| 129818 | .{ ._, .v_f128, .extract, .tmp2x, .dst0y, .ui(1), ._ }, |
| 129819 | .{ ._, .v_ps, .cvtph2, .dst0y, .dst0x, ._, ._ }, |
| 129820 | .{ ._, .v_ps, .cvtph2, .tmp2y, .tmp2x, ._, ._ }, |
| 129821 | .{ ._, .v_ps, .add, .dst0y, .dst0y, .tmp2y, ._ }, |
| 129822 | .{ ._, .v_f128, .extract, .tmp2x, .dst0y, .ui(1), ._ }, |
| 129823 | .{ ._, .v_ps, .add, .dst0x, .dst0x, .tmp2x, ._ }, |
| 129824 | .{ ._, .v_ps, .shuf, .tmp2x, .dst0x, .dst0x, .ui(0b11_10_11_10) }, |
| 129825 | .{ ._, .v_ps, .add, .dst0x, .dst0x, .tmp2x, ._ }, |
| 129826 | .{ ._, .v_ps, .shuf, .tmp2x, .dst0x, .dst0x, .ui(0b01_01_01_01) }, |
| 129827 | .{ ._, .v_ss, .add, .dst0x, .dst0x, .tmp2x, ._ }, |
| 129828 | .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ }, |
| 129829 | } }, |
| 129830 | }, .{ |
| 129831 | .required_features = .{ .f16c, .fast_hops, null, null }, |
| 129832 | .dst_constraints = .{ .{ .float = .word }, .any }, |
| 129833 | .src_constraints = .{ .{ .exact_scalar_float = .{ .of = .yword, .is = .word } }, .any, .any }, |
| 129834 | .patterns = &.{ |
| 129835 | .{ .src = .{ .to_sse, .none, .none } }, |
| 129836 | }, |
| 129837 | .extra_temps = .{ |
| 129838 | .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } }, |
| 129839 | .unused, |
| 129840 | .unused, |
| 129841 | .unused, |
| 129842 | .unused, |
| 129843 | .unused, |
| 129844 | .unused, |
| 129845 | .unused, |
| 129846 | .unused, |
| 129847 | .unused, |
| 129848 | .unused, |
| 129849 | }, |
| 129850 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 129851 | .each = .{ .once = &.{ |
| 129852 | .{ ._, .v_f128, .extract, .tmp0x, .src0y, .ui(1), ._ }, |
| 129853 | .{ ._, .v_ps, .cvtph2, .dst0y, .src0x, ._, ._ }, |
| 129854 | .{ ._, .v_ps, .cvtph2, .tmp0y, .tmp0x, ._, ._ }, |
| 129855 | .{ ._, .v_ps, .add, .dst0y, .dst0y, .tmp0y, ._ }, |
| 129856 | .{ ._, .vh_ps, .add, .dst0y, .dst0y, .dst0y, ._ }, |
| 129857 | .{ ._, .vh_ps, .add, .dst0y, .dst0y, .dst0y, ._ }, |
| 129858 | .{ ._, .v_f128, .extract, .tmp0x, .dst0y, .ui(1), ._ }, |
| 129859 | .{ ._, .v_ss, .add, .dst0x, .dst0x, .tmp0x, ._ }, |
| 129860 | .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ }, |
| 129861 | } }, |
| 129862 | }, .{ |
| 129863 | .required_features = .{ .f16c, null, null, null }, |
| 129864 | .dst_constraints = .{ .{ .float = .word }, .any }, |
| 129865 | .src_constraints = .{ .{ .exact_scalar_float = .{ .of = .yword, .is = .word } }, .any, .any }, |
| 129866 | .patterns = &.{ |
| 129867 | .{ .src = .{ .to_sse, .none, .none } }, |
| 129868 | }, |
| 129869 | .extra_temps = .{ |
| 129870 | .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } }, |
| 129871 | .unused, |
| 129872 | .unused, |
| 129873 | .unused, |
| 129874 | .unused, |
| 129875 | .unused, |
| 129876 | .unused, |
| 129877 | .unused, |
| 129878 | .unused, |
| 129879 | .unused, |
| 129880 | .unused, |
| 129881 | }, |
| 129882 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 129883 | .each = .{ .once = &.{ |
| 129884 | .{ ._, .v_f128, .extract, .tmp0x, .src0y, .ui(1), ._ }, |
| 129885 | .{ ._, .v_ps, .cvtph2, .dst0y, .src0x, ._, ._ }, |
| 129886 | .{ ._, .v_ps, .cvtph2, .tmp0y, .tmp0x, ._, ._ }, |
| 129887 | .{ ._, .v_ps, .add, .dst0y, .dst0y, .tmp0y, ._ }, |
| 129888 | .{ ._, .v_f128, .extract, .tmp0x, .dst0y, .ui(1), ._ }, |
| 129889 | .{ ._, .v_ps, .add, .dst0x, .dst0x, .tmp0x, ._ }, |
| 129890 | .{ ._, .v_ps, .shuf, .tmp0x, .dst0x, .dst0x, .ui(0b11_10_11_10) }, |
| 129891 | .{ ._, .v_ps, .add, .dst0x, .dst0x, .tmp0x, ._ }, |
| 129892 | .{ ._, .v_ps, .shuf, .tmp0x, .dst0x, .dst0x, .ui(0b01_01_01_01) }, |
| 129893 | .{ ._, .v_ss, .add, .dst0x, .dst0x, .tmp0x, ._ }, |
| 129894 | .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ }, |
| 129895 | } }, |
| 129896 | }, .{ |
| 129897 | .required_features = .{ .avx512f, .f16c, null, null }, |
| 129898 | .dst_constraints = .{ .{ .float = .word }, .any }, |
| 129899 | .src_constraints = .{ .{ .exclusive_scalar_float = .{ .of = .zword, .is = .word } }, .any, .any }, |
| 129900 | .patterns = &.{ |
| 129901 | .{ .src = .{ .to_mem, .none, .none } }, |
| 129902 | }, |
| 129903 | .extra_temps = .{ |
| 129904 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 129905 | .{ .type = .vector_64_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } }, |
| 129906 | .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } }, |
| 129907 | .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } }, |
| 129908 | .unused, |
| 129909 | .unused, |
| 129910 | .unused, |
| 129911 | .unused, |
| 129912 | .unused, |
| 129913 | .unused, |
| 129914 | .unused, |
| 129915 | }, |
| 129916 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 129917 | .each = .{ .once = &.{ |
| 129918 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 129919 | .{ ._, .v_ps, .mova, .dst0y, .lea(.tmp0y), ._, ._ }, |
| 129920 | .{ ._, .v_ps, .mova, .tmp2y, .lead(.tmp0y, 32), ._, ._ }, |
| 129921 | .{ ._, .v_ps, .@"and", .tmp2y, .tmp2y, .memd(.src0y, 32), ._ }, |
| 129922 | .{ ._, .v_ps, .@"and", .dst0y, .dst0y, .mem(.src0y), ._ }, |
| 129923 | .{ ._, .v_f128, .extract, .tmp3x, .tmp2y, .ui(1), ._ }, |
| 129924 | .{ ._, .v_ps, .cvtph2, .tmp2y, .tmp2x, ._, ._ }, |
| 129925 | .{ ._, .v_ps, .cvtph2, .tmp3y, .tmp3x, ._, ._ }, |
| 129926 | .{ ._, .v_ps, .add, .tmp2y, .tmp2y, .tmp3y, ._ }, |
| 129927 | .{ ._, .v_f128, .extract, .tmp3x, .dst0y, .ui(1), ._ }, |
| 129928 | .{ ._, .v_ps, .cvtph2, .dst0y, .dst0x, ._, ._ }, |
| 129929 | .{ ._, .v_ps, .cvtph2, .tmp3y, .tmp3x, ._, ._ }, |
| 129930 | .{ ._, .v_ps, .add, .dst0y, .dst0y, .tmp3y, ._ }, |
| 129931 | .{ ._, .v_ps, .add, .dst0y, .dst0y, .tmp2y, ._ }, |
| 129932 | .{ ._, .v_f128, .extract, .tmp2x, .dst0y, .ui(1), ._ }, |
| 129933 | .{ ._, .v_ps, .add, .dst0x, .dst0x, .tmp2x, ._ }, |
| 129934 | .{ ._, .v_ps, .shuf, .tmp2x, .dst0x, .dst0x, .ui(0b11_10_11_10) }, |
| 129935 | .{ ._, .v_ps, .add, .dst0x, .dst0x, .tmp2x, ._ }, |
| 129936 | .{ ._, .v_ps, .shuf, .tmp2x, .dst0x, .dst0x, .ui(0b01_01_01_01) }, |
| 129937 | .{ ._, .v_ss, .add, .dst0x, .dst0x, .tmp2x, ._ }, |
| 129938 | .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ }, |
| 129939 | } }, |
| 129940 | }, .{ |
| 129941 | .required_features = .{ .avx512f, .f16c, null, null }, |
| 129942 | .dst_constraints = .{ .{ .float = .word }, .any }, |
| 129943 | .src_constraints = .{ .{ .exact_scalar_float = .{ .of = .zword, .is = .word } }, .any, .any }, |
| 129944 | .patterns = &.{ |
| 129945 | .{ .src = .{ .to_mem, .none, .none } }, |
| 129946 | }, |
| 129947 | .extra_temps = .{ |
| 129948 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 129949 | .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } }, |
| 129950 | .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } }, |
| 129951 | .unused, |
| 129952 | .unused, |
| 129953 | .unused, |
| 129954 | .unused, |
| 129955 | .unused, |
| 129956 | .unused, |
| 129957 | .unused, |
| 129958 | .unused, |
| 129959 | }, |
| 129960 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 129961 | .each = .{ .once = &.{ |
| 129962 | .{ ._, .v_ps, .mova, .tmp1y, .memd(.src0y, 32), ._, ._ }, |
| 129963 | .{ ._, .v_ps, .mova, .dst0y, .mem(.src0y), ._, ._ }, |
| 129964 | .{ ._, .v_f128, .extract, .tmp2x, .tmp1y, .ui(1), ._ }, |
| 129965 | .{ ._, .v_ps, .cvtph2, .tmp1y, .tmp1x, ._, ._ }, |
| 129966 | .{ ._, .v_ps, .cvtph2, .tmp2y, .tmp2x, ._, ._ }, |
| 129967 | .{ ._, .v_ps, .add, .tmp1y, .tmp1y, .tmp2y, ._ }, |
| 129968 | .{ ._, .v_f128, .extract, .tmp2x, .dst0y, .ui(1), ._ }, |
| 129969 | .{ ._, .v_ps, .cvtph2, .dst0y, .dst0x, ._, ._ }, |
| 129970 | .{ ._, .v_ps, .cvtph2, .tmp2y, .tmp2x, ._, ._ }, |
| 129971 | .{ ._, .v_ps, .add, .dst0y, .dst0y, .tmp2y, ._ }, |
| 129972 | .{ ._, .v_ps, .add, .dst0y, .dst0y, .tmp1y, ._ }, |
| 129973 | .{ ._, .v_f128, .extract, .tmp1x, .dst0y, .ui(1), ._ }, |
| 129974 | .{ ._, .v_ps, .add, .dst0x, .dst0x, .tmp1x, ._ }, |
| 129975 | .{ ._, .v_ps, .shuf, .tmp1x, .dst0x, .dst0x, .ui(0b11_10_11_10) }, |
| 129976 | .{ ._, .v_ps, .add, .dst0x, .dst0x, .tmp1x, ._ }, |
| 129977 | .{ ._, .v_ps, .shuf, .tmp1x, .dst0x, .dst0x, .ui(0b01_01_01_01) }, |
| 129978 | .{ ._, .v_ss, .add, .dst0x, .dst0x, .tmp1x, ._ }, |
| 129979 | .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ }, |
| 129980 | } }, |
| 129981 | }, .{ |
| 129982 | .required_features = .{ .f16c, .fast_hops, null, null }, |
| 129983 | .dst_constraints = .{ .{ .float = .word }, .any }, |
| 129984 | .src_constraints = .{ .{ .unaligned_multiple_scalar_float = .{ .of = .xword, .is = .word } }, .any, .any }, |
| 129985 | .patterns = &.{ |
| 129986 | .{ .src = .{ .to_mem, .none, .none } }, |
| 129987 | }, |
| 129988 | .extra_temps = .{ |
| 129989 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 129990 | .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } }, |
| 129991 | .unused, |
| 129992 | .unused, |
| 129993 | .unused, |
| 129994 | .unused, |
| 129995 | .unused, |
| 129996 | .unused, |
| 129997 | .unused, |
| 129998 | .unused, |
| 129999 | .unused, |
| 130000 | }, |
| 130001 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 130002 | .clobbers = .{ .eflags = true }, |
| 130003 | .each = .{ .once = &.{ |
| 130004 | .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_unaligned_size), ._, ._ }, |
| 130005 | .{ ._, .v_ps, .cvtph2, .dst0y, .memad(.src0x, .add_unaligned_size, -16), ._, ._ }, |
| 130006 | .{ .@"0:", .v_ps, .cvtph2, .tmp1y, .memi(.src0x, .tmp0), ._, ._ }, |
| 130007 | .{ ._, .v_ps, .add, .dst0y, .dst0y, .tmp1y, ._ }, |
| 130008 | .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ }, |
| 130009 | .{ ._, ._nb, .j, .@"0b", ._, ._, ._ }, |
| 130010 | .{ ._, .vh_ps, .add, .dst0y, .dst0y, .dst0y, ._ }, |
| 130011 | .{ ._, .vh_ps, .add, .dst0y, .dst0y, .dst0y, ._ }, |
| 130012 | .{ ._, .v_f128, .extract, .tmp1x, .dst0y, .ui(1), ._ }, |
| 130013 | .{ ._, .v_ss, .add, .dst0x, .dst0x, .tmp1x, ._ }, |
| 130014 | .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ }, |
| 130015 | } }, |
| 130016 | }, .{ |
| 130017 | .required_features = .{ .f16c, null, null, null }, |
| 130018 | .dst_constraints = .{ .{ .float = .word }, .any }, |
| 130019 | .src_constraints = .{ .{ .unaligned_multiple_scalar_float = .{ .of = .xword, .is = .word } }, .any, .any }, |
| 130020 | .patterns = &.{ |
| 130021 | .{ .src = .{ .to_mem, .none, .none } }, |
| 130022 | }, |
| 130023 | .extra_temps = .{ |
| 130024 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 130025 | .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } }, |
| 130026 | .unused, |
| 130027 | .unused, |
| 130028 | .unused, |
| 130029 | .unused, |
| 130030 | .unused, |
| 130031 | .unused, |
| 130032 | .unused, |
| 130033 | .unused, |
| 130034 | .unused, |
| 130035 | }, |
| 130036 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 130037 | .clobbers = .{ .eflags = true }, |
| 130038 | .each = .{ .once = &.{ |
| 130039 | .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_unaligned_size), ._, ._ }, |
| 130040 | .{ ._, .v_ps, .cvtph2, .dst0y, .memad(.src0x, .add_unaligned_size, -16), ._, ._ }, |
| 130041 | .{ .@"0:", .v_ps, .cvtph2, .tmp1y, .memi(.src0x, .tmp0), ._, ._ }, |
| 130042 | .{ ._, .v_ps, .add, .dst0y, .dst0y, .tmp1y, ._ }, |
| 130043 | .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ }, |
| 130044 | .{ ._, ._nb, .j, .@"0b", ._, ._, ._ }, |
| 130045 | .{ ._, .v_f128, .extract, .tmp1x, .dst0y, .ui(1), ._ }, |
| 130046 | .{ ._, .v_ps, .add, .dst0x, .dst0x, .tmp1x, ._ }, |
| 130047 | .{ ._, .v_ps, .shuf, .tmp1x, .dst0x, .dst0x, .ui(0b11_10_11_10) }, |
| 130048 | .{ ._, .v_ps, .add, .dst0x, .dst0x, .tmp1x, ._ }, |
| 130049 | .{ ._, .v_ps, .shuf, .tmp1x, .dst0x, .dst0x, .ui(0b01_01_01_01) }, |
| 130050 | .{ ._, .v_ss, .add, .dst0x, .dst0x, .tmp1x, ._ }, |
| 130051 | .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ }, |
| 130052 | } }, |
| 130053 | }, .{ |
| 130054 | .required_features = .{ .avx512f, .f16c, null, null }, |
| 130055 | .dst_constraints = .{ .{ .float = .word }, .any }, |
| 130056 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .zword, .is = .word } }, .any, .any }, |
| 130057 | .patterns = &.{ |
| 130058 | .{ .src = .{ .to_mem, .none, .none } }, |
| 130059 | }, |
| 130060 | .extra_temps = .{ |
| 130061 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 130062 | .{ .type = .vector_64_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } }, |
| 130063 | .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } }, |
| 130064 | .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } }, |
| 130065 | .unused, |
| 130066 | .unused, |
| 130067 | .unused, |
| 130068 | .unused, |
| 130069 | .unused, |
| 130070 | .unused, |
| 130071 | .unused, |
| 130072 | }, |
| 130073 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 130074 | .clobbers = .{ .eflags = true }, |
| 130075 | .each = .{ .once = &.{ |
| 130076 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 130077 | .{ ._, .v_ps, .mova, .dst0y, .lea(.tmp0y), ._, ._ }, |
| 130078 | .{ ._, .v_ps, .mova, .tmp2y, .lead(.tmp0y, 32), ._, ._ }, |
| 130079 | .{ ._, ._, .mov, .tmp0d, .sia(-80, .src0, .add_size), ._, ._ }, |
| 130080 | .{ ._, .v_ps, .@"and", .tmp2y, .tmp2y, .memad(.src0y, .add_size, -32), ._ }, |
| 130081 | .{ ._, .v_ps, .@"and", .dst0y, .dst0y, .memad(.src0y, .add_size, -64), ._ }, |
| 130082 | .{ ._, .v_f128, .extract, .tmp3x, .tmp2y, .ui(1), ._ }, |
| 130083 | .{ ._, .v_ps, .cvtph2, .tmp2y, .tmp2x, ._, ._ }, |
| 130084 | .{ ._, .v_ps, .cvtph2, .tmp3y, .tmp3x, ._, ._ }, |
| 130085 | .{ ._, .v_ps, .add, .tmp2y, .tmp2y, .tmp3y, ._ }, |
| 130086 | .{ ._, .v_f128, .extract, .tmp3x, .dst0y, .ui(1), ._ }, |
| 130087 | .{ ._, .v_ps, .cvtph2, .dst0y, .dst0x, ._, ._ }, |
| 130088 | .{ ._, .v_ps, .cvtph2, .tmp3y, .tmp3x, ._, ._ }, |
| 130089 | .{ ._, .v_ps, .add, .dst0y, .dst0y, .tmp3y, ._ }, |
| 130090 | .{ ._, .v_ps, .add, .dst0y, .dst0y, .tmp2y, ._ }, |
| 130091 | .{ .@"0:", .v_ps, .cvtph2, .tmp2y, .memi(.src0x, .tmp0), ._, ._ }, |
| 130092 | .{ ._, .v_ps, .add, .dst0y, .dst0y, .tmp2y, ._ }, |
| 130093 | .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ }, |
| 130094 | .{ ._, ._nb, .j, .@"0b", ._, ._, ._ }, |
| 130095 | .{ ._, .v_f128, .extract, .tmp2x, .dst0y, .ui(1), ._ }, |
| 130096 | .{ ._, .v_ps, .add, .dst0x, .dst0x, .tmp2x, ._ }, |
| 130097 | .{ ._, .v_ps, .shuf, .tmp2x, .dst0x, .dst0x, .ui(0b11_10_11_10) }, |
| 130098 | .{ ._, .v_ps, .add, .dst0x, .dst0x, .tmp2x, ._ }, |
| 130099 | .{ ._, .v_ps, .shuf, .tmp2x, .dst0x, .dst0x, .ui(0b01_01_01_01) }, |
| 130100 | .{ ._, .v_ss, .add, .dst0x, .dst0x, .tmp2x, ._ }, |
| 130101 | .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ }, |
| 130102 | } }, |
| 130103 | }, .{ |
| 130104 | .required_features = .{ .f16c, .fast_hops, null, null }, |
| 130105 | .dst_constraints = .{ .{ .float = .word }, .any }, |
| 130106 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .yword, .is = .word } }, .any, .any }, |
| 130107 | .patterns = &.{ |
| 130108 | .{ .src = .{ .to_mem, .none, .none } }, |
| 130109 | }, |
| 130110 | .extra_temps = .{ |
| 130111 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 130112 | .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } }, |
| 130113 | .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } }, |
| 130114 | .unused, |
| 130115 | .unused, |
| 130116 | .unused, |
| 130117 | .unused, |
| 130118 | .unused, |
| 130119 | .unused, |
| 130120 | .unused, |
| 130121 | .unused, |
| 130122 | }, |
| 130123 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 130124 | .clobbers = .{ .eflags = true }, |
| 130125 | .each = .{ .once = &.{ |
| 130126 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 130127 | .{ ._, .v_ps, .mova, .dst0y, .lea(.tmp0y), ._, ._ }, |
| 130128 | .{ ._, ._, .mov, .tmp0d, .sia(-48, .src0, .add_size), ._, ._ }, |
| 130129 | .{ ._, .v_ps, .@"and", .dst0y, .dst0y, .memad(.src0y, .add_size, -32), ._ }, |
| 130130 | .{ ._, .v_f128, .extract, .tmp2x, .dst0y, .ui(1), ._ }, |
| 130131 | .{ ._, .v_ps, .cvtph2, .dst0y, .dst0x, ._, ._ }, |
| 130132 | .{ ._, .v_ps, .cvtph2, .tmp2y, .tmp2x, ._, ._ }, |
| 130133 | .{ ._, .v_ps, .add, .dst0y, .dst0y, .tmp2y, ._ }, |
| 130134 | .{ .@"0:", .v_ps, .cvtph2, .tmp2y, .memi(.src0x, .tmp0), ._, ._ }, |
| 130135 | .{ ._, .v_ps, .add, .dst0y, .dst0y, .tmp2y, ._ }, |
| 130136 | .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ }, |
| 130137 | .{ ._, ._nb, .j, .@"0b", ._, ._, ._ }, |
| 130138 | .{ ._, .vh_ps, .add, .dst0y, .dst0y, .dst0y, ._ }, |
| 130139 | .{ ._, .vh_ps, .add, .dst0y, .dst0y, .dst0y, ._ }, |
| 130140 | .{ ._, .v_f128, .extract, .tmp2x, .dst0y, .ui(1), ._ }, |
| 130141 | .{ ._, .v_ss, .add, .dst0x, .dst0x, .tmp2x, ._ }, |
| 130142 | .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ }, |
| 130143 | } }, |
| 130144 | }, .{ |
| 130145 | .required_features = .{ .f16c, null, null, null }, |
| 130146 | .dst_constraints = .{ .{ .float = .word }, .any }, |
| 130147 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .yword, .is = .word } }, .any, .any }, |
| 130148 | .patterns = &.{ |
| 130149 | .{ .src = .{ .to_mem, .none, .none } }, |
| 130150 | }, |
| 130151 | .extra_temps = .{ |
| 130152 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 130153 | .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } }, |
| 130154 | .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } }, |
| 130155 | .unused, |
| 130156 | .unused, |
| 130157 | .unused, |
| 130158 | .unused, |
| 130159 | .unused, |
| 130160 | .unused, |
| 130161 | .unused, |
| 130162 | .unused, |
| 130163 | }, |
| 130164 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 130165 | .clobbers = .{ .eflags = true }, |
| 130166 | .each = .{ .once = &.{ |
| 130167 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 130168 | .{ ._, .v_ps, .mova, .dst0y, .lea(.tmp0y), ._, ._ }, |
| 130169 | .{ ._, ._, .mov, .tmp0d, .sia(-48, .src0, .add_size), ._, ._ }, |
| 130170 | .{ ._, .v_ps, .@"and", .dst0y, .dst0y, .memad(.src0y, .add_size, -32), ._ }, |
| 130171 | .{ ._, .v_f128, .extract, .tmp2x, .dst0y, .ui(1), ._ }, |
| 130172 | .{ ._, .v_ps, .cvtph2, .dst0y, .dst0x, ._, ._ }, |
| 130173 | .{ ._, .v_ps, .cvtph2, .tmp2y, .tmp2x, ._, ._ }, |
| 130174 | .{ ._, .v_ps, .add, .dst0y, .dst0y, .tmp2y, ._ }, |
| 130175 | .{ .@"0:", .v_ps, .cvtph2, .tmp2y, .memi(.src0x, .tmp0), ._, ._ }, |
| 130176 | .{ ._, .v_ps, .add, .dst0y, .dst0y, .tmp2y, ._ }, |
| 130177 | .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ }, |
| 130178 | .{ ._, ._nb, .j, .@"0b", ._, ._, ._ }, |
| 130179 | .{ ._, .v_f128, .extract, .tmp2x, .dst0y, .ui(1), ._ }, |
| 130180 | .{ ._, .v_ps, .add, .dst0x, .dst0x, .tmp2x, ._ }, |
| 130181 | .{ ._, .v_ps, .shuf, .tmp2x, .dst0x, .dst0x, .ui(0b11_10_11_10) }, |
| 130182 | .{ ._, .v_ps, .add, .dst0x, .dst0x, .tmp2x, ._ }, |
| 130183 | .{ ._, .v_ps, .shuf, .tmp2x, .dst0x, .dst0x, .ui(0b01_01_01_01) }, |
| 130184 | .{ ._, .v_ss, .add, .dst0x, .dst0x, .tmp2x, ._ }, |
| 130185 | .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ }, |
| 130186 | } }, |
| 130187 | }, .{ |
| 130188 | .required_features = .{ .avx, null, null, null }, |
| 130189 | .dst_constraints = .{ .{ .float = .word }, .any }, |
| 130190 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any, .any }, |
| 130191 | .patterns = &.{ |
| 130192 | .{ .src = .{ .to_mem, .none, .none } }, |
| 130193 | }, |
| 130194 | .call_frame = .{ .alignment = .@"16" }, |
| 130195 | .extra_temps = .{ |
| 130196 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 130197 | .{ .type = .f16, .kind = .{ .reg = .xmm1 } }, |
| 130198 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__addhf3" } } }, |
| 130199 | .unused, |
| 130200 | .unused, |
| 130201 | .unused, |
| 130202 | .unused, |
| 130203 | .unused, |
| 130204 | .unused, |
| 130205 | .unused, |
| 130206 | .unused, |
| 130207 | }, |
| 130208 | .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, |
| 130209 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 130210 | .each = .{ .once = &.{ |
| 130211 | .{ ._, .vp_, .xor, .dst0x, .dst0x, .dst0x, ._ }, |
| 130212 | .{ ._, ._, .mov, .tmp0d, .sia(-4, .src0, .add_unaligned_size), ._, ._ }, |
| 130213 | .{ ._, .vp_w, .insr, .dst0x, .dst0x, .memad(.src0w, .add_unaligned_size, -2), .ui(0) }, |
| 130214 | .{ .@"0:", .vp_, .xor, .tmp1x, .tmp1x, .tmp1x, ._ }, |
| 130215 | .{ ._, .vp_w, .insr, .tmp1x, .tmp1x, .memi(.src0w, .tmp0), .ui(0) }, |
| 130216 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 130217 | .{ ._, ._, .sub, .tmp0d, .si(2), ._, ._ }, |
| 130218 | .{ ._, ._nb, .j, .@"0b", ._, ._, ._ }, |
| 130219 | } }, |
| 130220 | }, .{ |
| 130221 | .required_features = .{ .sse2, null, null, null }, |
| 130222 | .dst_constraints = .{ .{ .float = .word }, .any }, |
| 130223 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any, .any }, |
| 130224 | .patterns = &.{ |
| 130225 | .{ .src = .{ .to_mem, .none, .none } }, |
| 130226 | }, |
| 130227 | .call_frame = .{ .alignment = .@"16" }, |
| 130228 | .extra_temps = .{ |
| 130229 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 130230 | .{ .type = .f16, .kind = .{ .reg = .xmm1 } }, |
| 130231 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__addhf3" } } }, |
| 130232 | .unused, |
| 130233 | .unused, |
| 130234 | .unused, |
| 130235 | .unused, |
| 130236 | .unused, |
| 130237 | .unused, |
| 130238 | .unused, |
| 130239 | .unused, |
| 130240 | }, |
| 130241 | .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, |
| 130242 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 130243 | .each = .{ .once = &.{ |
| 130244 | .{ ._, .p_, .xor, .dst0x, .dst0x, ._, ._ }, |
| 130245 | .{ ._, ._, .mov, .tmp0d, .sia(-4, .src0, .add_unaligned_size), ._, ._ }, |
| 130246 | .{ ._, .p_w, .insr, .dst0x, .memad(.src0w, .add_unaligned_size, -2), .ui(0), ._ }, |
| 130247 | .{ .@"0:", .p_, .xor, .tmp1x, .tmp1x, ._, ._ }, |
| 130248 | .{ ._, .p_w, .insr, .tmp1x, .memi(.src0w, .tmp0), .ui(0), ._ }, |
| 130249 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 130250 | .{ ._, ._, .sub, .tmp0d, .si(2), ._, ._ }, |
| 130251 | .{ ._, ._nb, .j, .@"0b", ._, ._, ._ }, |
| 130252 | } }, |
| 130253 | }, .{ |
| 130254 | .required_features = .{ .sse, null, null, null }, |
| 130255 | .dst_constraints = .{ .{ .float = .word }, .any }, |
| 130256 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any, .any }, |
| 130257 | .patterns = &.{ |
| 130258 | .{ .src = .{ .to_mem, .none, .none } }, |
| 130259 | }, |
| 130260 | .call_frame = .{ .alignment = .@"16" }, |
| 130261 | .extra_temps = .{ |
| 130262 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 130263 | .{ .type = .f16, .kind = .{ .reg = .ax } }, |
| 130264 | .{ .type = .f32, .kind = .mem }, |
| 130265 | .{ .type = .f16, .kind = .{ .reg = .xmm1 } }, |
| 130266 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__addhf3" } } }, |
| 130267 | .unused, |
| 130268 | .unused, |
| 130269 | .unused, |
| 130270 | .unused, |
| 130271 | .unused, |
| 130272 | .unused, |
| 130273 | }, |
| 130274 | .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, |
| 130275 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 130276 | .each = .{ .once = &.{ |
| 130277 | .{ ._, ._ps, .xor, .dst0x, .dst0x, ._, ._ }, |
| 130278 | .{ ._, ._, .mov, .tmp0d, .sia(-4, .src0, .add_unaligned_size), ._, ._ }, |
| 130279 | .{ ._, ._, .movzx, .tmp1d, .memad(.src0w, .add_unaligned_size, -2), ._, ._ }, |
| 130280 | .{ ._, ._, .mov, .mem(.tmp2d), .tmp1d, ._, ._ }, |
| 130281 | .{ ._, ._ss, .mov, .dst0x, .mem(.tmp2d), ._, ._ }, |
| 130282 | .{ .@"0:", ._ps, .xor, .tmp3x, .tmp3x, ._, ._ }, |
| 130283 | .{ ._, ._ss, .mov, .tmp3x, .memi(.src0d, .tmp0), ._, ._ }, |
| 130284 | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, |
| 130285 | .{ ._, ._, .sub, .tmp0d, .si(2), ._, ._ }, |
| 130286 | .{ ._, ._nb, .j, .@"0b", ._, ._, ._ }, |
| 130287 | } }, |
| 130288 | }, .{ |
| 130289 | .required_features = .{ .avx, .fast_hops, null, null }, |
| 130290 | .dst_constraints = .{ .{ .float = .dword }, .any }, |
| 130291 | .src_constraints = .{ .{ .exact_scalar_float = .{ .of = .qword, .is = .dword } }, .any, .any }, |
| 130292 | .patterns = &.{ |
| 130293 | .{ .src = .{ .to_sse, .none, .none } }, |
| 130294 | }, |
| 130295 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 130296 | .each = .{ .once = &.{ |
| 130297 | .{ ._, .vh_ps, .add, .dst0x, .src0x, .src0x, ._ }, |
| 130298 | } }, |
| 130299 | }, .{ |
| 130300 | .required_features = .{ .avx, null, null, null }, |
| 130301 | .dst_constraints = .{ .{ .float = .dword }, .any }, |
| 130302 | .src_constraints = .{ .{ .exact_scalar_float = .{ .of = .qword, .is = .dword } }, .any, .any }, |
| 130303 | .patterns = &.{ |
| 130304 | .{ .src = .{ .to_sse, .none, .none } }, |
| 130305 | }, |
| 130306 | .extra_temps = .{ |
| 130307 | .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } }, |
| 130308 | .unused, |
| 130309 | .unused, |
| 130310 | .unused, |
| 130311 | .unused, |
| 130312 | .unused, |
| 130313 | .unused, |
| 130314 | .unused, |
| 130315 | .unused, |
| 130316 | .unused, |
| 130317 | .unused, |
| 130318 | }, |
| 130319 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 130320 | .each = .{ .once = &.{ |
| 130321 | .{ ._, .v_ps, .shuf, .tmp0x, .src0x, .src0x, .ui(0b01_01_01_01) }, |
| 130322 | .{ ._, .v_ss, .add, .dst0x, .src0x, .tmp0x, ._ }, |
| 130323 | } }, |
| 130324 | }, .{ |
| 130325 | .required_features = .{ .sse3, .fast_hops, null, null }, |
| 130326 | .dst_constraints = .{ .{ .float = .dword }, .any }, |
| 130327 | .src_constraints = .{ .{ .exact_scalar_float = .{ .of = .qword, .is = .dword } }, .any, .any }, |
| 130328 | .patterns = &.{ |
| 130329 | .{ .src = .{ .to_mut_sse, .none, .none } }, |
| 130330 | }, |
| 130331 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| 130332 | .each = .{ .once = &.{ |
| 130333 | .{ ._, .h_ps, .add, .dst0x, .src0x, ._, ._ }, |
| 130334 | } }, |
| 130335 | }, .{ |
| 130336 | .required_features = .{ .sse, null, null, null }, |
| 130337 | .dst_constraints = .{ .{ .float = .dword }, .any }, |
| 130338 | .src_constraints = .{ .{ .exact_scalar_float = .{ .of = .qword, .is = .dword } }, .any, .any }, |
| 130339 | .patterns = &.{ |
| 130340 | .{ .src = .{ .to_mut_sse, .none, .none } }, |
| 130341 | }, |
| 130342 | .extra_temps = .{ |
| 130343 | .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } }, |
| 130344 | .unused, |
| 130345 | .unused, |
| 130346 | .unused, |
| 130347 | .unused, |
| 130348 | .unused, |
| 130349 | .unused, |
| 130350 | .unused, |
| 130351 | .unused, |
| 130352 | .unused, |
| 130353 | .unused, |
| 130354 | }, |
| 130355 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| 130356 | .each = .{ .once = &.{ |
| 130357 | .{ ._, ._ps, .mova, .tmp0x, .src0x, ._, ._ }, |
| 130358 | .{ ._, ._ps, .shuf, .tmp0x, .tmp0x, .ui(0b01_01_01_01), ._ }, |
| 130359 | .{ ._, ._ss, .add, .dst0x, .tmp0x, ._, ._ }, |
| 130360 | } }, |
| 130361 | }, .{ |
| 130362 | .required_features = .{ .avx, .fast_hops, null, null }, |
| 130363 | .dst_constraints = .{ .{ .float = .dword }, .any }, |
| 130364 | .src_constraints = .{ .{ .exclusive_scalar_float = .{ .of = .xword, .is = .dword } }, .any, .any }, |
| 130365 | .patterns = &.{ |
| 130366 | .{ .src = .{ .to_sse, .none, .none } }, |
| 130367 | }, |
| 130368 | .extra_temps = .{ |
| 130369 | .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } }, |
| 130370 | .unused, |
| 130371 | .unused, |
| 130372 | .unused, |
| 130373 | .unused, |
| 130374 | .unused, |
| 130375 | .unused, |
| 130376 | .unused, |
| 130377 | .unused, |
| 130378 | .unused, |
| 130379 | .unused, |
| 130380 | }, |
| 130381 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 130382 | .each = .{ .once = &.{ |
| 130383 | .{ ._, .vh_ps, .add, .tmp0x, .src0x, .src0x, ._ }, |
| 130384 | .{ ._, .v_ps, .movhl, .dst0x, .src0x, .src0x, ._ }, |
| 130385 | .{ ._, .v_ss, .add, .dst0x, .tmp0x, .dst0x, ._ }, |
| 130386 | } }, |
| 130387 | }, .{ |
| 130388 | .required_features = .{ .avx, null, null, null }, |
| 130389 | .dst_constraints = .{ .{ .float = .dword }, .any }, |
| 130390 | .src_constraints = .{ .{ .exclusive_scalar_float = .{ .of = .xword, .is = .dword } }, .any, .any }, |
| 130391 | .patterns = &.{ |
| 130392 | .{ .src = .{ .to_sse, .none, .none } }, |
| 130393 | }, |
| 130394 | .extra_temps = .{ |
| 130395 | .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } }, |
| 130396 | .unused, |
| 130397 | .unused, |
| 130398 | .unused, |
| 130399 | .unused, |
| 130400 | .unused, |
| 130401 | .unused, |
| 130402 | .unused, |
| 130403 | .unused, |
| 130404 | .unused, |
| 130405 | .unused, |
| 130406 | }, |
| 130407 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 130408 | .each = .{ .once = &.{ |
| 130409 | .{ ._, .v_ps, .movhl, .tmp0x, .src0x, .src0x, ._ }, |
| 130410 | .{ ._, .v_ps, .add, .tmp0x, .src0x, .tmp0x, ._ }, |
| 130411 | .{ ._, .v_ps, .shuf, .dst0x, .src0x, .src0x, .ui(0b01_01_01_01) }, |
| 130412 | .{ ._, .v_ss, .add, .dst0x, .tmp0x, .dst0x, ._ }, |
| 130413 | } }, |
| 130414 | }, .{ |
| 130415 | .required_features = .{ .sse3, .fast_hops, null, null }, |
| 130416 | .dst_constraints = .{ .{ .float = .dword }, .any }, |
| 130417 | .src_constraints = .{ .{ .exclusive_scalar_float = .{ .of = .xword, .is = .dword } }, .any, .any }, |
| 130418 | .patterns = &.{ |
| 130419 | .{ .src = .{ .to_mut_sse, .none, .none } }, |
| 130420 | }, |
| 130421 | .extra_temps = .{ |
| 130422 | .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } }, |
| 130423 | .unused, |
| 130424 | .unused, |
| 130425 | .unused, |
| 130426 | .unused, |
| 130427 | .unused, |
| 130428 | .unused, |
| 130429 | .unused, |
| 130430 | .unused, |
| 130431 | .unused, |
| 130432 | .unused, |
| 130433 | }, |
| 130434 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| 130435 | .each = .{ .once = &.{ |
| 130436 | .{ ._, ._ps, .xor, .tmp0x, .tmp0x, ._, ._ }, |
| 130437 | .{ ._, ._ps, .movhl, .tmp0x, .src0x, ._, ._ }, |
| 130438 | .{ ._, .h_ps, .add, .dst0x, .src0x, ._, ._ }, |
| 130439 | .{ ._, ._ss, .add, .dst0x, .tmp0x, ._, ._ }, |
| 130440 | } }, |
| 130441 | }, .{ |
| 130442 | .required_features = .{ .sse, null, null, null }, |
| 130443 | .dst_constraints = .{ .{ .float = .dword }, .any }, |
| 130444 | .src_constraints = .{ .{ .exclusive_scalar_float = .{ .of = .xword, .is = .dword } }, .any, .any }, |
| 130445 | .patterns = &.{ |
| 130446 | .{ .src = .{ .to_mut_sse, .none, .none } }, |
| 130447 | }, |
| 130448 | .extra_temps = .{ |
| 130449 | .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } }, |
| 130450 | .unused, |
| 130451 | .unused, |
| 130452 | .unused, |
| 130453 | .unused, |
| 130454 | .unused, |
| 130455 | .unused, |
| 130456 | .unused, |
| 130457 | .unused, |
| 130458 | .unused, |
| 130459 | .unused, |
| 130460 | }, |
| 130461 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| 130462 | .each = .{ .once = &.{ |
| 130463 | .{ ._, ._ps, .xor, .tmp0x, .tmp0x, ._, ._ }, |
| 130464 | .{ ._, ._ps, .movhl, .tmp0x, .src0x, ._, ._ }, |
| 130465 | .{ ._, ._ss, .add, .tmp0x, .src0x, ._, ._ }, |
| 130466 | .{ ._, ._ps, .shuf, .dst0x, .src0x, .ui(0b01_01_01_01), ._ }, |
| 130467 | .{ ._, ._ss, .add, .dst0x, .tmp0x, ._, ._ }, |
| 130468 | } }, |
| 130469 | }, .{ |
| 130470 | .required_features = .{ .avx, .fast_hops, null, null }, |
| 130471 | .dst_constraints = .{ .{ .float = .dword }, .any }, |
| 130472 | .src_constraints = .{ .{ .exact_scalar_float = .{ .of = .xword, .is = .dword } }, .any, .any }, |
| 130473 | .patterns = &.{ |
| 130474 | .{ .src = .{ .to_sse, .none, .none } }, |
| 130475 | }, |
| 130476 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 130477 | .each = .{ .once = &.{ |
| 130478 | .{ ._, .vh_ps, .add, .dst0x, .src0x, .src0x, ._ }, |
| 130479 | .{ ._, .vh_ps, .add, .dst0x, .dst0x, .dst0x, ._ }, |
| 130480 | } }, |
| 130481 | }, .{ |
| 130482 | .required_features = .{ .avx, null, null, null }, |
| 130483 | .dst_constraints = .{ .{ .float = .dword }, .any }, |
| 130484 | .src_constraints = .{ .{ .exact_scalar_float = .{ .of = .xword, .is = .dword } }, .any, .any }, |
| 130485 | .patterns = &.{ |
| 130486 | .{ .src = .{ .to_sse, .none, .none } }, |
| 130487 | }, |
| 130488 | .extra_temps = .{ |
| 130489 | .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } }, |
| 130490 | .unused, |
| 130491 | .unused, |
| 130492 | .unused, |
| 130493 | .unused, |
| 130494 | .unused, |
| 130495 | .unused, |
| 130496 | .unused, |
| 130497 | .unused, |
| 130498 | .unused, |
| 130499 | .unused, |
| 130500 | }, |
| 130501 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 130502 | .each = .{ .once = &.{ |
| 130503 | .{ ._, .v_ps, .movhl, .tmp0x, .src0x, .src0x, ._ }, |
| 130504 | .{ ._, .v_ps, .add, .dst0x, .src0x, .tmp0x, ._ }, |
| 130505 | .{ ._, .v_ps, .shuf, .tmp0x, .src0x, .src0x, .ui(0b01_01_01_01) }, |
| 130506 | .{ ._, .v_ss, .add, .dst0x, .src0x, .tmp0x, ._ }, |
| 130507 | } }, |
| 130508 | }, .{ |
| 130509 | .required_features = .{ .sse3, .fast_hops, null, null }, |
| 130510 | .dst_constraints = .{ .{ .float = .dword }, .any }, |
| 130511 | .src_constraints = .{ .{ .exact_scalar_float = .{ .of = .xword, .is = .dword } }, .any, .any }, |
| 130512 | .patterns = &.{ |
| 130513 | .{ .src = .{ .to_mut_sse, .none, .none } }, |
| 130514 | }, |
| 130515 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| 130516 | .each = .{ .once = &.{ |
| 130517 | .{ ._, .h_ps, .add, .dst0x, .src0x, ._, ._ }, |
| 130518 | .{ ._, .h_ps, .add, .dst0x, .dst0x, ._, ._ }, |
| 130519 | } }, |
| 130520 | }, .{ |
| 130521 | .required_features = .{ .sse, null, null, null }, |
| 130522 | .dst_constraints = .{ .{ .float = .dword }, .any }, |
| 130523 | .src_constraints = .{ .{ .exact_scalar_float = .{ .of = .xword, .is = .dword } }, .any, .any }, |
| 130524 | .patterns = &.{ |
| 130525 | .{ .src = .{ .to_mut_sse, .none, .none } }, |
| 130526 | }, |
| 130527 | .extra_temps = .{ |
| 130528 | .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } }, |
| 130529 | .unused, |
| 130530 | .unused, |
| 130531 | .unused, |
| 130532 | .unused, |
| 130533 | .unused, |
| 130534 | .unused, |
| 130535 | .unused, |
| 130536 | .unused, |
| 130537 | .unused, |
| 130538 | .unused, |
| 130539 | }, |
| 130540 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| 130541 | .each = .{ .once = &.{ |
| 130542 | .{ ._, ._ps, .xor, .tmp0x, .tmp0x, ._, ._ }, |
| 130543 | .{ ._, ._ps, .movhl, .tmp0x, .src0x, ._, ._ }, |
| 130544 | .{ ._, ._ps, .add, .dst0x, .tmp0x, ._, ._ }, |
| 130545 | .{ ._, ._ps, .mova, .tmp0x, .dst0x, ._, ._ }, |
| 130546 | .{ ._, ._ps, .shuf, .tmp0x, .tmp0x, .ui(0b01_01_01_01), ._ }, |
| 130547 | .{ ._, ._ss, .add, .dst0x, .tmp0x, ._, ._ }, |
| 130548 | } }, |
| 130549 | }, .{ |
| 130550 | .required_features = .{ .avx, .fast_hops, null, null }, |
| 130551 | .dst_constraints = .{ .{ .float = .dword }, .any }, |
| 130552 | .src_constraints = .{ .{ .exclusive_scalar_float = .{ .of = .yword, .is = .dword } }, .any, .any }, |
| 130553 | .patterns = &.{ |
| 130554 | .{ .src = .{ .to_sse, .none, .none } }, |
| 130555 | }, |
| 130556 | .extra_temps = .{ |
| 130557 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 130558 | .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } }, |
| 130559 | .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } }, |
| 130560 | .unused, |
| 130561 | .unused, |
| 130562 | .unused, |
| 130563 | .unused, |
| 130564 | .unused, |
| 130565 | .unused, |
| 130566 | .unused, |
| 130567 | .unused, |
| 130568 | }, |
| 130569 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 130570 | .each = .{ .once = &.{ |
| 130571 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 130572 | .{ ._, .v_ps, .@"and", .dst0y, .src0y, .lea(.tmp0y), ._ }, |
| 130573 | .{ ._, .vh_ps, .add, .dst0y, .dst0y, .dst0y, ._ }, |
| 130574 | .{ ._, .vh_ps, .add, .dst0y, .dst0y, .dst0y, ._ }, |
| 130575 | .{ ._, .v_f128, .extract, .tmp2x, .dst0y, .ui(1), ._ }, |
| 130576 | .{ ._, .v_ss, .add, .dst0x, .dst0x, .tmp2x, ._ }, |
| 130577 | } }, |
| 130578 | }, .{ |
| 130579 | .required_features = .{ .avx, null, null, null }, |
| 130580 | .dst_constraints = .{ .{ .float = .dword }, .any }, |
| 130581 | .src_constraints = .{ .{ .exclusive_scalar_float = .{ .of = .yword, .is = .dword } }, .any, .any }, |
| 130582 | .patterns = &.{ |
| 130583 | .{ .src = .{ .to_sse, .none, .none } }, |
| 130584 | }, |
| 130585 | .extra_temps = .{ |
| 130586 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 130587 | .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } }, |
| 130588 | .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } }, |
| 130589 | .unused, |
| 130590 | .unused, |
| 130591 | .unused, |
| 130592 | .unused, |
| 130593 | .unused, |
| 130594 | .unused, |
| 130595 | .unused, |
| 130596 | .unused, |
| 130597 | }, |
| 130598 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 130599 | .each = .{ .once = &.{ |
| 130600 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 130601 | .{ ._, .v_ps, .@"and", .dst0y, .src0y, .lea(.tmp0y), ._ }, |
| 130602 | .{ ._, .v_f128, .extract, .tmp2x, .dst0y, .ui(1), ._ }, |
| 130603 | .{ ._, .v_ps, .add, .dst0x, .dst0x, .tmp2x, ._ }, |
| 130604 | .{ ._, .v_ps, .movhl, .tmp2x, .dst0x, .dst0x, ._ }, |
| 130605 | .{ ._, .v_ps, .add, .dst0x, .dst0x, .tmp2x, ._ }, |
| 130606 | .{ ._, .v_ps, .shuf, .tmp2x, .dst0x, .dst0x, .ui(0b01_01_01_01) }, |
| 130607 | .{ ._, .v_ss, .add, .dst0x, .dst0x, .tmp2x, ._ }, |
| 130608 | } }, |
| 130609 | }, .{ |
| 130610 | .required_features = .{ .avx, .fast_hops, null, null }, |
| 130611 | .dst_constraints = .{ .{ .float = .dword }, .any }, |
| 130612 | .src_constraints = .{ .{ .exact_scalar_float = .{ .of = .yword, .is = .dword } }, .any, .any }, |
| 130613 | .patterns = &.{ |
| 130614 | .{ .src = .{ .to_sse, .none, .none } }, |
| 130615 | }, |
| 130616 | .extra_temps = .{ |
| 130617 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 130618 | .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } }, |
| 130619 | .unused, |
| 130620 | .unused, |
| 130621 | .unused, |
| 130622 | .unused, |
| 130623 | .unused, |
| 130624 | .unused, |
| 130625 | .unused, |
| 130626 | .unused, |
| 130627 | .unused, |
| 130628 | }, |
| 130629 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 130630 | .each = .{ .once = &.{ |
| 130631 | .{ ._, .vh_ps, .add, .dst0y, .dst0y, .dst0y, ._ }, |
| 130632 | .{ ._, .vh_ps, .add, .dst0y, .dst0y, .dst0y, ._ }, |
| 130633 | .{ ._, .v_f128, .extract, .tmp1x, .src0y, .ui(1), ._ }, |
| 130634 | .{ ._, .v_ss, .add, .dst0x, .src0x, .tmp1x, ._ }, |
| 130635 | } }, |
| 130636 | }, .{ |
| 130637 | .required_features = .{ .avx, null, null, null }, |
| 130638 | .dst_constraints = .{ .{ .float = .dword }, .any }, |
| 130639 | .src_constraints = .{ .{ .exact_scalar_float = .{ .of = .yword, .is = .dword } }, .any, .any }, |
| 130640 | .patterns = &.{ |
| 130641 | .{ .src = .{ .to_sse, .none, .none } }, |
| 130642 | }, |
| 130643 | .extra_temps = .{ |
| 130644 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 130645 | .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } }, |
| 130646 | .unused, |
| 130647 | .unused, |
| 130648 | .unused, |
| 130649 | .unused, |
| 130650 | .unused, |
| 130651 | .unused, |
| 130652 | .unused, |
| 130653 | .unused, |
| 130654 | .unused, |
| 130655 | }, |
| 130656 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 130657 | .each = .{ .once = &.{ |
| 130658 | .{ ._, .v_f128, .extract, .tmp1x, .src0y, .ui(1), ._ }, |
| 130659 | .{ ._, .v_ps, .add, .dst0x, .src0x, .tmp1x, ._ }, |
| 130660 | .{ ._, .v_ps, .movhl, .tmp1x, .dst0x, .dst0x, ._ }, |
| 130661 | .{ ._, .v_ps, .add, .dst0x, .dst0x, .tmp1x, ._ }, |
| 130662 | .{ ._, .v_ps, .shuf, .tmp1x, .dst0x, .dst0x, .ui(0b01_01_01_01) }, |
| 130663 | .{ ._, .v_ss, .add, .dst0x, .dst0x, .tmp1x, ._ }, |
| 130664 | } }, |
| 130665 | }, .{ |
| 130666 | .required_features = .{ .avx512f, null, null, null }, |
| 130667 | .dst_constraints = .{ .{ .float = .dword }, .any }, |
| 130668 | .src_constraints = .{ .{ .exclusive_scalar_float = .{ .of = .zword, .is = .dword } }, .any, .any }, |
| 130669 | .patterns = &.{ |
| 130670 | .{ .src = .{ .to_mem, .none, .none } }, |
| 130671 | }, |
| 130672 | .extra_temps = .{ |
| 130673 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 130674 | .{ .type = .vector_64_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } }, |
| 130675 | .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } }, |
| 130676 | .unused, |
| 130677 | .unused, |
| 130678 | .unused, |
| 130679 | .unused, |
| 130680 | .unused, |
| 130681 | .unused, |
| 130682 | .unused, |
| 130683 | .unused, |
| 130684 | }, |
| 130685 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 130686 | .each = .{ .once = &.{ |
| 130687 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 130688 | .{ ._, .v_ps, .mova, .dst0y, .mem(.src0y), ._, ._ }, |
| 130689 | .{ ._, .v_ps, .mova, .tmp2y, .memd(.src0y, 32), ._, ._ }, |
| 130690 | .{ ._, .v_ps, .@"and", .dst0y, .dst0y, .lea(.tmp0y), ._ }, |
| 130691 | .{ ._, .v_ps, .@"and", .tmp2y, .tmp2y, .lead(.tmp0y, 32), ._ }, |
| 130692 | .{ ._, .v_ps, .add, .dst0y, .dst0y, .tmp2y, ._ }, |
| 130693 | .{ ._, .v_i128, .extract, .tmp2x, .dst0y, .ui(1), ._ }, |
| 130694 | .{ ._, .v_ps, .add, .dst0x, .dst0x, .tmp2x, ._ }, |
| 130695 | .{ ._, .v_ps, .movhl, .tmp2x, .dst0x, .dst0x, ._ }, |
| 130696 | .{ ._, .v_ps, .add, .dst0x, .dst0x, .tmp2x, ._ }, |
| 130697 | .{ ._, .v_ps, .shuf, .tmp2x, .dst0x, .dst0x, .ui(0b01_01_01_01) }, |
| 130698 | .{ ._, .v_ss, .add, .dst0x, .dst0x, .tmp2x, ._ }, |
| 130699 | } }, |
| 130700 | }, .{ |
| 130701 | .required_features = .{ .avx512f, null, null, null }, |
| 130702 | .dst_constraints = .{ .{ .float = .dword }, .any }, |
| 130703 | .src_constraints = .{ .{ .exact_scalar_float = .{ .of = .zword, .is = .dword } }, .any, .any }, |
| 130704 | .patterns = &.{ |
| 130705 | .{ .src = .{ .to_mem, .none, .none } }, |
| 130706 | }, |
| 130707 | .extra_temps = .{ |
| 130708 | .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } }, |
| 130709 | .unused, |
| 130710 | .unused, |
| 130711 | .unused, |
| 130712 | .unused, |
| 130713 | .unused, |
| 130714 | .unused, |
| 130715 | .unused, |
| 130716 | .unused, |
| 130717 | .unused, |
| 130718 | .unused, |
| 130719 | }, |
| 130720 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 130721 | .each = .{ .once = &.{ |
| 130722 | .{ ._, .v_ps, .mova, .dst0y, .mem(.src0y), ._, ._ }, |
| 130723 | .{ ._, .v_ps, .mova, .tmp0y, .memd(.src0y, 32), ._, ._ }, |
| 130724 | .{ ._, .v_ps, .add, .dst0y, .dst0y, .tmp0y, ._ }, |
| 130725 | .{ ._, .v_i128, .extract, .tmp0x, .dst0y, .ui(1), ._ }, |
| 130726 | .{ ._, .v_ps, .add, .dst0x, .dst0x, .tmp0x, ._ }, |
| 130727 | .{ ._, .v_ps, .movhl, .tmp0x, .dst0x, .dst0x, ._ }, |
| 130728 | .{ ._, .v_ps, .add, .dst0x, .dst0x, .tmp0x, ._ }, |
| 130729 | .{ ._, .v_ps, .shuf, .tmp0x, .dst0x, .dst0x, .ui(0b01_01_01_01) }, |
| 130730 | .{ ._, .v_ss, .add, .dst0x, .dst0x, .tmp0x, ._ }, |
| 130731 | } }, |
| 130732 | }, .{ |
| 130733 | .required_features = .{ .avx, .fast_hops, null, null }, |
| 130734 | .dst_constraints = .{ .{ .float = .dword }, .any }, |
| 130735 | .src_constraints = .{ .{ .unaligned_multiple_scalar_float = .{ .of = .yword, .is = .dword } }, .any, .any }, |
| 130736 | .patterns = &.{ |
| 130737 | .{ .src = .{ .to_mem, .none, .none } }, |
| 130738 | }, |
| 130739 | .extra_temps = .{ |
| 130740 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 130741 | .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } }, |
| 130742 | .unused, |
| 130743 | .unused, |
| 130744 | .unused, |
| 130745 | .unused, |
| 130746 | .unused, |
| 130747 | .unused, |
| 130748 | .unused, |
| 130749 | .unused, |
| 130750 | .unused, |
| 130751 | }, |
| 130752 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 130753 | .clobbers = .{ .eflags = true }, |
| 130754 | .each = .{ .once = &.{ |
| 130755 | .{ ._, ._, .mov, .tmp0d, .sia(-64, .src0, .add_unaligned_size), ._, ._ }, |
| 130756 | .{ ._, .v_ps, .mova, .dst0y, .memad(.src0y, .add_unaligned_size, -32), ._, ._ }, |
| 130757 | .{ .@"0:", .v_ps, .add, .dst0y, .dst0y, .memi(.src0y, .tmp0), ._ }, |
| 130758 | .{ ._, ._, .sub, .tmp0d, .si(32), ._, ._ }, |
| 130759 | .{ ._, ._nb, .j, .@"0b", ._, ._, ._ }, |
| 130760 | .{ ._, .vh_ps, .add, .dst0y, .dst0y, .dst0y, ._ }, |
| 130761 | .{ ._, .vh_ps, .add, .dst0y, .dst0y, .dst0y, ._ }, |
| 130762 | .{ ._, .v_f128, .extract, .tmp1x, .dst0y, .ui(1), ._ }, |
| 130763 | .{ ._, .v_ss, .add, .dst0x, .dst0x, .tmp1x, ._ }, |
| 130764 | } }, |
| 130765 | }, .{ |
| 130766 | .required_features = .{ .avx, null, null, null }, |
| 130767 | .dst_constraints = .{ .{ .float = .dword }, .any }, |
| 130768 | .src_constraints = .{ .{ .unaligned_multiple_scalar_float = .{ .of = .yword, .is = .dword } }, .any, .any }, |
| 130769 | .patterns = &.{ |
| 130770 | .{ .src = .{ .to_mem, .none, .none } }, |
| 130771 | }, |
| 130772 | .extra_temps = .{ |
| 130773 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 130774 | .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } }, |
| 130775 | .unused, |
| 130776 | .unused, |
| 130777 | .unused, |
| 130778 | .unused, |
| 130779 | .unused, |
| 130780 | .unused, |
| 130781 | .unused, |
| 130782 | .unused, |
| 130783 | .unused, |
| 130784 | }, |
| 130785 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 130786 | .clobbers = .{ .eflags = true }, |
| 130787 | .each = .{ .once = &.{ |
| 130788 | .{ ._, ._, .mov, .tmp0d, .sia(-64, .src0, .add_unaligned_size), ._, ._ }, |
| 130789 | .{ ._, .v_ps, .mova, .dst0y, .memad(.src0y, .add_unaligned_size, -32), ._, ._ }, |
| 130790 | .{ .@"0:", .v_ps, .add, .dst0y, .dst0y, .memi(.src0y, .tmp0), ._ }, |
| 130791 | .{ ._, ._, .sub, .tmp0d, .si(32), ._, ._ }, |
| 130792 | .{ ._, ._nb, .j, .@"0b", ._, ._, ._ }, |
| 130793 | .{ ._, .v_f128, .extract, .tmp1x, .dst0y, .ui(1), ._ }, |
| 130794 | .{ ._, .v_ps, .add, .dst0x, .dst0x, .tmp1x, ._ }, |
| 130795 | .{ ._, .v_ps, .movhl, .tmp1x, .dst0x, .dst0x, ._ }, |
| 130796 | .{ ._, .v_ps, .add, .dst0x, .dst0x, .tmp1x, ._ }, |
| 130797 | .{ ._, .v_ps, .shuf, .tmp1x, .dst0x, .dst0x, .ui(0b01_01_01_01) }, |
| 130798 | .{ ._, .v_ss, .add, .dst0x, .dst0x, .tmp1x, ._ }, |
| 130799 | } }, |
| 130800 | }, .{ |
| 130801 | .required_features = .{ .sse3, .fast_hops, null, null }, |
| 130802 | .dst_constraints = .{ .{ .float = .dword }, .any }, |
| 130803 | .src_constraints = .{ .{ .unaligned_multiple_scalar_float = .{ .of = .xword, .is = .dword } }, .any, .any }, |
| 130804 | .patterns = &.{ |
| 130805 | .{ .src = .{ .to_mem, .none, .none } }, |
| 130806 | }, |
| 130807 | .extra_temps = .{ |
| 130808 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 130809 | .unused, |
| 130810 | .unused, |
| 130811 | .unused, |
| 130812 | .unused, |
| 130813 | .unused, |
| 130814 | .unused, |
| 130815 | .unused, |
| 130816 | .unused, |
| 130817 | .unused, |
| 130818 | .unused, |
| 130819 | }, |
| 130820 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 130821 | .clobbers = .{ .eflags = true }, |
| 130822 | .each = .{ .once = &.{ |
| 130823 | .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_unaligned_size), ._, ._ }, |
| 130824 | .{ ._, ._ps, .mova, .dst0x, .memad(.src0x, .add_unaligned_size, -16), ._, ._ }, |
| 130825 | .{ .@"0:", ._ps, .add, .dst0x, .memi(.src0x, .tmp0), ._, ._ }, |
| 130826 | .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ }, |
| 130827 | .{ ._, ._nb, .j, .@"0b", ._, ._, ._ }, |
| 130828 | .{ ._, .h_ps, .add, .dst0x, .dst0x, ._, ._ }, |
| 130829 | .{ ._, .h_ps, .add, .dst0x, .dst0x, ._, ._ }, |
| 130830 | } }, |
| 130831 | }, .{ |
| 130832 | .required_features = .{ .sse, null, null, null }, |
| 130833 | .dst_constraints = .{ .{ .float = .dword }, .any }, |
| 130834 | .src_constraints = .{ .{ .unaligned_multiple_scalar_float = .{ .of = .xword, .is = .dword } }, .any, .any }, |
| 130835 | .patterns = &.{ |
| 130836 | .{ .src = .{ .to_mem, .none, .none } }, |
| 130837 | }, |
| 130838 | .extra_temps = .{ |
| 130839 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 130840 | .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } }, |
| 130841 | .unused, |
| 130842 | .unused, |
| 130843 | .unused, |
| 130844 | .unused, |
| 130845 | .unused, |
| 130846 | .unused, |
| 130847 | .unused, |
| 130848 | .unused, |
| 130849 | .unused, |
| 130850 | }, |
| 130851 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 130852 | .clobbers = .{ .eflags = true }, |
| 130853 | .each = .{ .once = &.{ |
| 130854 | .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_unaligned_size), ._, ._ }, |
| 130855 | .{ ._, ._ps, .mova, .dst0x, .memad(.src0x, .add_unaligned_size, -16), ._, ._ }, |
| 130856 | .{ .@"0:", ._ps, .add, .dst0x, .memi(.src0x, .tmp0), ._, ._ }, |
| 130857 | .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ }, |
| 130858 | .{ ._, ._nb, .j, .@"0b", ._, ._, ._ }, |
| 130859 | .{ ._, ._ps, .xor, .tmp1x, .tmp1x, ._, ._ }, |
| 130860 | .{ ._, ._ps, .movhl, .tmp1x, .dst0x, ._, ._ }, |
| 130861 | .{ ._, ._ps, .add, .dst0x, .tmp1x, ._, ._ }, |
| 130862 | .{ ._, ._ps, .mova, .tmp1x, .dst0x, ._, ._ }, |
| 130863 | .{ ._, ._ps, .shuf, .tmp1x, .tmp1x, .ui(0b01_01_01_01), ._ }, |
| 130864 | .{ ._, ._ss, .add, .dst0x, .tmp1x, ._, ._ }, |
| 130865 | } }, |
| 130866 | }, .{ |
| 130867 | .required_features = .{ .avx512f, null, null, null }, |
| 130868 | .dst_constraints = .{ .{ .float = .dword }, .any }, |
| 130869 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .zword, .is = .dword } }, .any, .any }, |
| 130870 | .patterns = &.{ |
| 130871 | .{ .src = .{ .to_mem, .none, .none } }, |
| 130872 | }, |
| 130873 | .extra_temps = .{ |
| 130874 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 130875 | .{ .type = .vector_64_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } }, |
| 130876 | .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } }, |
| 130877 | .unused, |
| 130878 | .unused, |
| 130879 | .unused, |
| 130880 | .unused, |
| 130881 | .unused, |
| 130882 | .unused, |
| 130883 | .unused, |
| 130884 | .unused, |
| 130885 | }, |
| 130886 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 130887 | .clobbers = .{ .eflags = true }, |
| 130888 | .each = .{ .once = &.{ |
| 130889 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 130890 | .{ ._, .v_ps, .mova, .dst0y, .lea(.tmp0y), ._, ._ }, |
| 130891 | .{ ._, .v_ps, .mova, .tmp2y, .lead(.tmp0y, 32), ._, ._ }, |
| 130892 | .{ ._, ._, .mov, .tmp0d, .sia(-128, .src0, .add_size), ._, ._ }, |
| 130893 | .{ ._, .v_ps, .@"and", .tmp2y, .tmp2y, .memad(.src0y, .add_size, -32), ._ }, |
| 130894 | .{ ._, .v_ps, .@"and", .dst0y, .dst0y, .memad(.src0y, .add_size, -64), ._ }, |
| 130895 | .{ .@"0:", .v_ps, .add, .tmp2y, .tmp2y, .memid(.src0y, .tmp0, 32), ._ }, |
| 130896 | .{ ._, .v_ps, .add, .dst0y, .dst0y, .memi(.src0y, .tmp0), ._ }, |
| 130897 | .{ ._, ._, .sub, .tmp0d, .si(64), ._, ._ }, |
| 130898 | .{ ._, ._nb, .j, .@"0b", ._, ._, ._ }, |
| 130899 | .{ ._, .v_ps, .add, .dst0y, .dst0y, .tmp2y, ._ }, |
| 130900 | .{ ._, .v_f128, .extract, .tmp2x, .dst0y, .ui(1), ._ }, |
| 130901 | .{ ._, .v_ps, .add, .dst0x, .dst0x, .tmp2x, ._ }, |
| 130902 | .{ ._, .v_ps, .movhl, .tmp2x, .dst0x, .dst0x, ._ }, |
| 130903 | .{ ._, .v_ps, .add, .dst0x, .dst0x, .tmp2x, ._ }, |
| 130904 | .{ ._, .v_ps, .shuf, .tmp2x, .dst0x, .dst0x, .ui(0b01_01_01_01) }, |
| 130905 | .{ ._, .v_ss, .add, .dst0x, .dst0x, .tmp2x, ._ }, |
| 130906 | } }, |
| 130907 | }, .{ |
| 130908 | .required_features = .{ .avx, .fast_hops, null, null }, |
| 130909 | .dst_constraints = .{ .{ .float = .dword }, .any }, |
| 130910 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .yword, .is = .dword } }, .any, .any }, |
| 130911 | .patterns = &.{ |
| 130912 | .{ .src = .{ .to_mem, .none, .none } }, |
| 130913 | }, |
| 130914 | .extra_temps = .{ |
| 130915 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 130916 | .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } }, |
| 130917 | .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } }, |
| 130918 | .unused, |
| 130919 | .unused, |
| 130920 | .unused, |
| 130921 | .unused, |
| 130922 | .unused, |
| 130923 | .unused, |
| 130924 | .unused, |
| 130925 | .unused, |
| 130926 | }, |
| 130927 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 130928 | .clobbers = .{ .eflags = true }, |
| 130929 | .each = .{ .once = &.{ |
| 130930 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 130931 | .{ ._, .v_ps, .mova, .dst0y, .lea(.tmp0y), ._, ._ }, |
| 130932 | .{ ._, ._, .mov, .tmp0d, .sia(-48, .src0, .add_size), ._, ._ }, |
| 130933 | .{ ._, .v_ps, .@"and", .dst0y, .dst0y, .memad(.src0y, .add_size, -32), ._ }, |
| 130934 | .{ ._, .v_f128, .extract, .tmp2x, .dst0y, .ui(1), ._ }, |
| 130935 | .{ ._, .v_ps, .add, .dst0x, .dst0x, .tmp2x, ._ }, |
| 130936 | .{ .@"0:", .v_ps, .add, .dst0x, .dst0x, .memi(.src0x, .tmp0), ._ }, |
| 130937 | .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ }, |
| 130938 | .{ ._, ._nb, .j, .@"0b", ._, ._, ._ }, |
| 130939 | .{ ._, .vh_ps, .add, .dst0x, .dst0x, .dst0x, ._ }, |
| 130940 | .{ ._, .vh_ps, .add, .dst0x, .dst0x, .dst0x, ._ }, |
| 130941 | } }, |
| 130942 | }, .{ |
| 130943 | .required_features = .{ .avx, null, null, null }, |
| 130944 | .dst_constraints = .{ .{ .float = .dword }, .any }, |
| 130945 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .yword, .is = .dword } }, .any, .any }, |
| 130946 | .patterns = &.{ |
| 130947 | .{ .src = .{ .to_mem, .none, .none } }, |
| 130948 | }, |
| 130949 | .extra_temps = .{ |
| 130950 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 130951 | .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } }, |
| 130952 | .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } }, |
| 130953 | .unused, |
| 130954 | .unused, |
| 130955 | .unused, |
| 130956 | .unused, |
| 130957 | .unused, |
| 130958 | .unused, |
| 130959 | .unused, |
| 130960 | .unused, |
| 130961 | }, |
| 130962 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 130963 | .clobbers = .{ .eflags = true }, |
| 130964 | .each = .{ .once = &.{ |
| 130965 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 130966 | .{ ._, .v_ps, .mova, .dst0y, .lea(.tmp0y), ._, ._ }, |
| 130967 | .{ ._, ._, .mov, .tmp0d, .sia(-48, .src0, .add_size), ._, ._ }, |
| 130968 | .{ ._, .v_ps, .@"and", .dst0y, .dst0y, .memad(.src0y, .add_size, -32), ._ }, |
| 130969 | .{ ._, .v_f128, .extract, .tmp2x, .dst0y, .ui(1), ._ }, |
| 130970 | .{ ._, .v_ps, .add, .dst0x, .dst0x, .tmp2x, ._ }, |
| 130971 | .{ .@"0:", .v_ps, .add, .dst0x, .dst0x, .memi(.src0x, .tmp0), ._ }, |
| 130972 | .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ }, |
| 130973 | .{ ._, ._nb, .j, .@"0b", ._, ._, ._ }, |
| 130974 | .{ ._, .v_ps, .movhl, .tmp2x, .dst0x, .dst0x, ._ }, |
| 130975 | .{ ._, .v_ps, .add, .dst0x, .dst0x, .tmp2x, ._ }, |
| 130976 | .{ ._, .v_ps, .shuf, .tmp2x, .dst0x, .dst0x, .ui(0b01_01_01_01) }, |
| 130977 | .{ ._, .v_ss, .add, .dst0x, .dst0x, .tmp2x, ._ }, |
| 130978 | } }, |
| 130979 | }, .{ |
| 130980 | .required_features = .{ .sse3, .fast_hops, null, null }, |
| 130981 | .dst_constraints = .{ .{ .float = .dword }, .any }, |
| 130982 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .dword } }, .any, .any }, |
| 130983 | .patterns = &.{ |
| 130984 | .{ .src = .{ .to_mem, .none, .none } }, |
| 130985 | }, |
| 130986 | .extra_temps = .{ |
| 130987 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 130988 | .{ .type = .vector_16_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } }, |
| 130989 | .unused, |
| 130990 | .unused, |
| 130991 | .unused, |
| 130992 | .unused, |
| 130993 | .unused, |
| 130994 | .unused, |
| 130995 | .unused, |
| 130996 | .unused, |
| 130997 | .unused, |
| 130998 | }, |
| 130999 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 131000 | .clobbers = .{ .eflags = true }, |
| 131001 | .each = .{ .once = &.{ |
| 131002 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 131003 | .{ ._, ._ps, .mova, .dst0x, .lea(.tmp0x), ._, ._ }, |
| 131004 | .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_size), ._, ._ }, |
| 131005 | .{ ._, ._ps, .@"and", .dst0x, .memad(.src0x, .add_size, -16), ._, ._ }, |
| 131006 | .{ .@"0:", ._ps, .add, .dst0x, .memi(.src0x, .tmp0), ._, ._ }, |
| 131007 | .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ }, |
| 131008 | .{ ._, ._nb, .j, .@"0b", ._, ._, ._ }, |
| 131009 | .{ ._, .h_ps, .add, .dst0x, .dst0x, ._, ._ }, |
| 131010 | .{ ._, .h_ps, .add, .dst0x, .dst0x, ._, ._ }, |
| 131011 | } }, |
| 131012 | }, .{ |
| 131013 | .required_features = .{ .sse, null, null, null }, |
| 131014 | .dst_constraints = .{ .{ .float = .dword }, .any }, |
| 131015 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .dword } }, .any, .any }, |
| 131016 | .patterns = &.{ |
| 131017 | .{ .src = .{ .to_mem, .none, .none } }, |
| 131018 | }, |
| 131019 | .extra_temps = .{ |
| 131020 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 131021 | .{ .type = .vector_16_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } }, |
| 131022 | .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } }, |
| 131023 | .unused, |
| 131024 | .unused, |
| 131025 | .unused, |
| 131026 | .unused, |
| 131027 | .unused, |
| 131028 | .unused, |
| 131029 | .unused, |
| 131030 | .unused, |
| 131031 | }, |
| 131032 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 131033 | .clobbers = .{ .eflags = true }, |
| 131034 | .each = .{ .once = &.{ |
| 131035 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 131036 | .{ ._, ._ps, .mova, .dst0x, .lea(.tmp0x), ._, ._ }, |
| 131037 | .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_size), ._, ._ }, |
| 131038 | .{ ._, ._ps, .@"and", .dst0x, .memad(.src0x, .add_size, -16), ._, ._ }, |
| 131039 | .{ .@"0:", ._ps, .add, .dst0x, .memi(.src0x, .tmp0), ._, ._ }, |
| 131040 | .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ }, |
| 131041 | .{ ._, ._nb, .j, .@"0b", ._, ._, ._ }, |
| 131042 | .{ ._, ._ps, .xor, .tmp2x, .tmp2x, ._, ._ }, |
| 131043 | .{ ._, ._ps, .movhl, .tmp2x, .dst0x, ._, ._ }, |
| 131044 | .{ ._, ._ps, .add, .dst0x, .tmp2x, ._, ._ }, |
| 131045 | .{ ._, ._ps, .mova, .tmp2x, .dst0x, ._, ._ }, |
| 131046 | .{ ._, ._ps, .shuf, .tmp2x, .tmp2x, .ui(0b01_01_01_01), ._ }, |
| 131047 | .{ ._, ._ss, .add, .dst0x, .tmp2x, ._, ._ }, |
| 131048 | } }, |
| 131049 | }, .{ |
| 131050 | .required_features = .{ .avx, .fast_hops, null, null }, |
| 131051 | .dst_constraints = .{ .{ .float = .qword }, .any }, |
| 131052 | .src_constraints = .{ .{ .exact_scalar_float = .{ .of = .xword, .is = .qword } }, .any, .any }, |
| 131053 | .patterns = &.{ |
| 131054 | .{ .src = .{ .to_sse, .none, .none } }, |
| 131055 | }, |
| 131056 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 131057 | .each = .{ .once = &.{ |
| 131058 | .{ ._, .vh_pd, .add, .dst0x, .src0x, .src0x, ._ }, |
| 131059 | } }, |
| 131060 | }, .{ |
| 131061 | .required_features = .{ .avx, null, null, null }, |
| 131062 | .dst_constraints = .{ .{ .float = .qword }, .any }, |
| 131063 | .src_constraints = .{ .{ .exact_scalar_float = .{ .of = .xword, .is = .qword } }, .any, .any }, |
| 131064 | .patterns = &.{ |
| 131065 | .{ .src = .{ .to_sse, .none, .none } }, |
| 131066 | }, |
| 131067 | .extra_temps = .{ |
| 131068 | .{ .type = .vector_2_f64, .kind = .{ .rc = .sse } }, |
| 131069 | .unused, |
| 131070 | .unused, |
| 131071 | .unused, |
| 131072 | .unused, |
| 131073 | .unused, |
| 131074 | .unused, |
| 131075 | .unused, |
| 131076 | .unused, |
| 131077 | .unused, |
| 131078 | .unused, |
| 131079 | }, |
| 131080 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 131081 | .each = .{ .once = &.{ |
| 131082 | .{ ._, .v_ps, .movhl, .tmp0x, .src0x, .src0x, ._ }, |
| 131083 | .{ ._, .v_sd, .add, .dst0x, .src0x, .tmp0x, ._ }, |
| 131084 | } }, |
| 131085 | }, .{ |
| 131086 | .required_features = .{ .sse3, .fast_hops, null, null }, |
| 131087 | .dst_constraints = .{ .{ .float = .qword }, .any }, |
| 131088 | .src_constraints = .{ .{ .exact_scalar_float = .{ .of = .xword, .is = .qword } }, .any, .any }, |
| 131089 | .patterns = &.{ |
| 131090 | .{ .src = .{ .to_mut_sse, .none, .none } }, |
| 131091 | }, |
| 131092 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| 131093 | .each = .{ .once = &.{ |
| 131094 | .{ ._, .h_pd, .add, .dst0x, .src0x, ._, ._ }, |
| 131095 | } }, |
| 131096 | }, .{ |
| 131097 | .required_features = .{ .sse2, null, null, null }, |
| 131098 | .dst_constraints = .{ .{ .float = .qword }, .any }, |
| 131099 | .src_constraints = .{ .{ .exact_scalar_float = .{ .of = .xword, .is = .qword } }, .any, .any }, |
| 131100 | .patterns = &.{ |
| 131101 | .{ .src = .{ .to_mut_sse, .none, .none } }, |
| 131102 | }, |
| 131103 | .extra_temps = .{ |
| 131104 | .{ .type = .vector_2_f64, .kind = .{ .rc = .sse } }, |
| 131105 | .unused, |
| 131106 | .unused, |
| 131107 | .unused, |
| 131108 | .unused, |
| 131109 | .unused, |
| 131110 | .unused, |
| 131111 | .unused, |
| 131112 | .unused, |
| 131113 | .unused, |
| 131114 | .unused, |
| 131115 | }, |
| 131116 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| 131117 | .each = .{ .once = &.{ |
| 131118 | .{ ._, ._ps, .xor, .tmp0x, .tmp0x, ._, ._ }, |
| 131119 | .{ ._, ._ps, .movhl, .tmp0x, .src0x, ._, ._ }, |
| 131120 | .{ ._, ._sd, .add, .dst0x, .tmp0x, ._, ._ }, |
| 131121 | } }, |
| 131122 | }, .{ |
| 131123 | .required_features = .{ .avx, .fast_hops, null, null }, |
| 131124 | .dst_constraints = .{ .{ .float = .qword }, .any }, |
| 131125 | .src_constraints = .{ .{ .exclusive_scalar_float = .{ .of = .yword, .is = .qword } }, .any, .any }, |
| 131126 | .patterns = &.{ |
| 131127 | .{ .src = .{ .to_sse, .none, .none } }, |
| 131128 | }, |
| 131129 | .extra_temps = .{ |
| 131130 | .{ .type = .vector_2_f64, .kind = .{ .rc = .sse } }, |
| 131131 | .unused, |
| 131132 | .unused, |
| 131133 | .unused, |
| 131134 | .unused, |
| 131135 | .unused, |
| 131136 | .unused, |
| 131137 | .unused, |
| 131138 | .unused, |
| 131139 | .unused, |
| 131140 | .unused, |
| 131141 | }, |
| 131142 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 131143 | .each = .{ .once = &.{ |
| 131144 | .{ ._, .vh_pd, .add, .tmp0x, .src0x, .src0x, ._ }, |
| 131145 | .{ ._, .v_f128, .extract, .dst0x, .src0y, .ui(1), ._ }, |
| 131146 | .{ ._, .v_sd, .add, .dst0x, .tmp0x, .dst0x, ._ }, |
| 131147 | } }, |
| 131148 | }, .{ |
| 131149 | .required_features = .{ .avx, null, null, null }, |
| 131150 | .dst_constraints = .{ .{ .float = .qword }, .any }, |
| 131151 | .src_constraints = .{ .{ .exclusive_scalar_float = .{ .of = .yword, .is = .qword } }, .any, .any }, |
| 131152 | .patterns = &.{ |
| 131153 | .{ .src = .{ .to_sse, .none, .none } }, |
| 131154 | }, |
| 131155 | .extra_temps = .{ |
| 131156 | .{ .type = .vector_2_f64, .kind = .{ .rc = .sse } }, |
| 131157 | .unused, |
| 131158 | .unused, |
| 131159 | .unused, |
| 131160 | .unused, |
| 131161 | .unused, |
| 131162 | .unused, |
| 131163 | .unused, |
| 131164 | .unused, |
| 131165 | .unused, |
| 131166 | .unused, |
| 131167 | }, |
| 131168 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 131169 | .each = .{ .once = &.{ |
| 131170 | .{ ._, .v_f128, .extract, .tmp0x, .src0y, .ui(1), ._ }, |
| 131171 | .{ ._, .v_pd, .add, .tmp0x, .src0x, .tmp0x, ._ }, |
| 131172 | .{ ._, .v_ps, .movhl, .dst0x, .src0x, .src0x, ._ }, |
| 131173 | .{ ._, .v_sd, .add, .dst0x, .tmp0x, .dst0x, ._ }, |
| 131174 | } }, |
| 131175 | }, .{ |
| 131176 | .required_features = .{ .avx, .fast_hops, null, null }, |
| 131177 | .dst_constraints = .{ .{ .float = .qword }, .any }, |
| 131178 | .src_constraints = .{ .{ .exact_scalar_float = .{ .of = .yword, .is = .qword } }, .any, .any }, |
| 131179 | .patterns = &.{ |
| 131180 | .{ .src = .{ .to_sse, .none, .none } }, |
| 131181 | }, |
| 131182 | .extra_temps = .{ |
| 131183 | .{ .type = .vector_2_f64, .kind = .{ .rc = .sse } }, |
| 131184 | .unused, |
| 131185 | .unused, |
| 131186 | .unused, |
| 131187 | .unused, |
| 131188 | .unused, |
| 131189 | .unused, |
| 131190 | .unused, |
| 131191 | .unused, |
| 131192 | .unused, |
| 131193 | .unused, |
| 131194 | }, |
| 131195 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 131196 | .each = .{ .once = &.{ |
| 131197 | .{ ._, .vh_pd, .add, .dst0y, .src0y, .src0y, ._ }, |
| 131198 | .{ ._, .v_f128, .extract, .tmp0x, .dst0y, .ui(1), ._ }, |
| 131199 | .{ ._, .v_sd, .add, .dst0x, .dst0x, .tmp0x, ._ }, |
| 131200 | } }, |
| 131201 | }, .{ |
| 131202 | .required_features = .{ .avx, null, null, null }, |
| 131203 | .dst_constraints = .{ .{ .float = .qword }, .any }, |
| 131204 | .src_constraints = .{ .{ .exact_scalar_float = .{ .of = .yword, .is = .qword } }, .any, .any }, |
| 131205 | .patterns = &.{ |
| 131206 | .{ .src = .{ .to_sse, .none, .none } }, |
| 131207 | }, |
| 131208 | .extra_temps = .{ |
| 131209 | .{ .type = .vector_2_f64, .kind = .{ .rc = .sse } }, |
| 131210 | .unused, |
| 131211 | .unused, |
| 131212 | .unused, |
| 131213 | .unused, |
| 131214 | .unused, |
| 131215 | .unused, |
| 131216 | .unused, |
| 131217 | .unused, |
| 131218 | .unused, |
| 131219 | .unused, |
| 131220 | }, |
| 131221 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 131222 | .each = .{ .once = &.{ |
| 131223 | .{ ._, .v_f128, .extract, .tmp0x, .src0y, .ui(1), ._ }, |
| 131224 | .{ ._, .v_pd, .add, .dst0x, .src0x, .tmp0x, ._ }, |
| 131225 | .{ ._, .v_ps, .movhl, .tmp0x, .dst0x, .dst0x, ._ }, |
| 131226 | .{ ._, .v_sd, .add, .dst0x, .dst0x, .tmp0x, ._ }, |
| 131227 | } }, |
| 131228 | }, .{ |
| 131229 | .required_features = .{ .avx512f, null, null, null }, |
| 131230 | .dst_constraints = .{ .{ .float = .qword }, .any }, |
| 131231 | .src_constraints = .{ .{ .exclusive_scalar_float = .{ .of = .zword, .is = .qword } }, .any, .any }, |
| 131232 | .patterns = &.{ |
| 131233 | .{ .src = .{ .to_mem, .none, .none } }, |
| 131234 | }, |
| 131235 | .extra_temps = .{ |
| 131236 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 131237 | .{ .type = .vector_64_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } }, |
| 131238 | .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } }, |
| 131239 | .unused, |
| 131240 | .unused, |
| 131241 | .unused, |
| 131242 | .unused, |
| 131243 | .unused, |
| 131244 | .unused, |
| 131245 | .unused, |
| 131246 | .unused, |
| 131247 | }, |
| 131248 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 131249 | .each = .{ .once = &.{ |
| 131250 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 131251 | .{ ._, .v_pd, .mova, .dst0y, .mem(.src0y), ._, ._ }, |
| 131252 | .{ ._, .v_pd, .mova, .tmp2y, .memd(.src0y, 32), ._, ._ }, |
| 131253 | .{ ._, .v_pd, .@"and", .dst0y, .dst0y, .lea(.tmp0y), ._ }, |
| 131254 | .{ ._, .v_pd, .@"and", .tmp2y, .tmp2y, .lead(.tmp0y, 32), ._ }, |
| 131255 | .{ ._, .v_pd, .add, .dst0y, .dst0y, .tmp2y, ._ }, |
| 131256 | .{ ._, .v_i128, .extract, .tmp2x, .dst0y, .ui(1), ._ }, |
| 131257 | .{ ._, .v_pd, .add, .dst0x, .dst0x, .tmp2x, ._ }, |
| 131258 | .{ ._, .v_ps, .movhl, .tmp2x, .dst0x, .dst0x, ._ }, |
| 131259 | .{ ._, .v_sd, .add, .dst0x, .dst0x, .tmp2x, ._ }, |
| 131260 | } }, |
| 131261 | }, .{ |
| 131262 | .required_features = .{ .avx512f, null, null, null }, |
| 131263 | .dst_constraints = .{ .{ .float = .qword }, .any }, |
| 131264 | .src_constraints = .{ .{ .exact_scalar_float = .{ .of = .zword, .is = .qword } }, .any, .any }, |
| 131265 | .patterns = &.{ |
| 131266 | .{ .src = .{ .to_mem, .none, .none } }, |
| 131267 | }, |
| 131268 | .extra_temps = .{ |
| 131269 | .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } }, |
| 131270 | .unused, |
| 131271 | .unused, |
| 131272 | .unused, |
| 131273 | .unused, |
| 131274 | .unused, |
| 131275 | .unused, |
| 131276 | .unused, |
| 131277 | .unused, |
| 131278 | .unused, |
| 131279 | .unused, |
| 131280 | }, |
| 131281 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 131282 | .each = .{ .once = &.{ |
| 131283 | .{ ._, .v_pd, .mova, .dst0y, .mem(.src0y), ._, ._ }, |
| 131284 | .{ ._, .v_pd, .mova, .tmp0y, .memd(.src0y, 32), ._, ._ }, |
| 131285 | .{ ._, .v_pd, .add, .dst0y, .dst0y, .tmp0y, ._ }, |
| 131286 | .{ ._, .v_i128, .extract, .tmp0x, .dst0y, .ui(1), ._ }, |
| 131287 | .{ ._, .v_pd, .add, .dst0x, .dst0x, .tmp0x, ._ }, |
| 131288 | .{ ._, .v_ps, .movhl, .tmp0x, .dst0x, .dst0x, ._ }, |
| 131289 | .{ ._, .v_sd, .add, .dst0x, .dst0x, .tmp0x, ._ }, |
| 131290 | } }, |
| 131291 | }, .{ |
| 131292 | .required_features = .{ .avx, .fast_hops, null, null }, |
| 131293 | .dst_constraints = .{ .{ .float = .qword }, .any }, |
| 131294 | .src_constraints = .{ .{ .unaligned_multiple_scalar_float = .{ .of = .yword, .is = .qword } }, .any, .any }, |
| 131295 | .patterns = &.{ |
| 131296 | .{ .src = .{ .to_mem, .none, .none } }, |
| 131297 | }, |
| 131298 | .extra_temps = .{ |
| 131299 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 131300 | .{ .type = .vector_2_f64, .kind = .{ .rc = .sse } }, |
| 131301 | .unused, |
| 131302 | .unused, |
| 131303 | .unused, |
| 131304 | .unused, |
| 131305 | .unused, |
| 131306 | .unused, |
| 131307 | .unused, |
| 131308 | .unused, |
| 131309 | .unused, |
| 131310 | }, |
| 131311 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 131312 | .clobbers = .{ .eflags = true }, |
| 131313 | .each = .{ .once = &.{ |
| 131314 | .{ ._, ._, .mov, .tmp0d, .sia(-64, .src0, .add_unaligned_size), ._, ._ }, |
| 131315 | .{ ._, .v_pd, .mova, .dst0y, .memad(.src0y, .add_unaligned_size, -32), ._, ._ }, |
| 131316 | .{ .@"0:", .v_pd, .add, .dst0y, .dst0y, .memi(.src0y, .tmp0), ._ }, |
| 131317 | .{ ._, ._, .sub, .tmp0d, .si(32), ._, ._ }, |
| 131318 | .{ ._, ._nb, .j, .@"0b", ._, ._, ._ }, |
| 131319 | .{ ._, .vh_pd, .add, .dst0y, .dst0y, .dst0y, ._ }, |
| 131320 | .{ ._, .v_f128, .extract, .tmp1x, .dst0y, .ui(1), ._ }, |
| 131321 | .{ ._, .v_sd, .add, .dst0x, .dst0x, .tmp1x, ._ }, |
| 131322 | } }, |
| 131323 | }, .{ |
| 131324 | .required_features = .{ .avx, null, null, null }, |
| 131325 | .dst_constraints = .{ .{ .float = .qword }, .any }, |
| 131326 | .src_constraints = .{ .{ .unaligned_multiple_scalar_float = .{ .of = .yword, .is = .qword } }, .any, .any }, |
| 131327 | .patterns = &.{ |
| 131328 | .{ .src = .{ .to_mem, .none, .none } }, |
| 131329 | }, |
| 131330 | .extra_temps = .{ |
| 131331 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 131332 | .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } }, |
| 131333 | .unused, |
| 131334 | .unused, |
| 131335 | .unused, |
| 131336 | .unused, |
| 131337 | .unused, |
| 131338 | .unused, |
| 131339 | .unused, |
| 131340 | .unused, |
| 131341 | .unused, |
| 131342 | }, |
| 131343 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 131344 | .clobbers = .{ .eflags = true }, |
| 131345 | .each = .{ .once = &.{ |
| 131346 | .{ ._, ._, .mov, .tmp0d, .sia(-64, .src0, .add_unaligned_size), ._, ._ }, |
| 131347 | .{ ._, .v_pd, .mova, .dst0y, .memad(.src0y, .add_unaligned_size, -32), ._, ._ }, |
| 131348 | .{ .@"0:", .v_pd, .add, .dst0y, .dst0y, .memi(.src0y, .tmp0), ._ }, |
| 131349 | .{ ._, ._, .sub, .tmp0d, .si(32), ._, ._ }, |
| 131350 | .{ ._, ._nb, .j, .@"0b", ._, ._, ._ }, |
| 131351 | .{ ._, .v_f128, .extract, .tmp1x, .dst0y, .ui(1), ._ }, |
| 131352 | .{ ._, .v_pd, .add, .dst0x, .dst0x, .tmp1x, ._ }, |
| 131353 | .{ ._, .v_ps, .movhl, .tmp1x, .dst0x, .dst0x, ._ }, |
| 131354 | .{ ._, .v_pd, .add, .dst0x, .dst0x, .tmp1x, ._ }, |
| 131355 | } }, |
| 131356 | }, .{ |
| 131357 | .required_features = .{ .sse3, .fast_hops, null, null }, |
| 131358 | .dst_constraints = .{ .{ .float = .qword }, .any }, |
| 131359 | .src_constraints = .{ .{ .unaligned_multiple_scalar_float = .{ .of = .xword, .is = .qword } }, .any, .any }, |
| 131360 | .patterns = &.{ |
| 131361 | .{ .src = .{ .to_mem, .none, .none } }, |
| 131362 | }, |
| 131363 | .extra_temps = .{ |
| 131364 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 131365 | .unused, |
| 131366 | .unused, |
| 131367 | .unused, |
| 131368 | .unused, |
| 131369 | .unused, |
| 131370 | .unused, |
| 131371 | .unused, |
| 131372 | .unused, |
| 131373 | .unused, |
| 131374 | .unused, |
| 131375 | }, |
| 131376 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 131377 | .clobbers = .{ .eflags = true }, |
| 131378 | .each = .{ .once = &.{ |
| 131379 | .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_unaligned_size), ._, ._ }, |
| 131380 | .{ ._, ._pd, .mova, .dst0x, .memad(.src0x, .add_unaligned_size, -16), ._, ._ }, |
| 131381 | .{ .@"0:", ._pd, .add, .dst0x, .memi(.src0x, .tmp0), ._, ._ }, |
| 131382 | .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ }, |
| 131383 | .{ ._, ._nb, .j, .@"0b", ._, ._, ._ }, |
| 131384 | .{ ._, .h_pd, .add, .dst0x, .dst0x, ._, ._ }, |
| 131385 | } }, |
| 131386 | }, .{ |
| 131387 | .required_features = .{ .sse2, null, null, null }, |
| 131388 | .dst_constraints = .{ .{ .float = .qword }, .any }, |
| 131389 | .src_constraints = .{ .{ .unaligned_multiple_scalar_float = .{ .of = .xword, .is = .qword } }, .any, .any }, |
| 131390 | .patterns = &.{ |
| 131391 | .{ .src = .{ .to_mem, .none, .none } }, |
| 131392 | }, |
| 131393 | .extra_temps = .{ |
| 131394 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 131395 | .{ .type = .vector_2_f64, .kind = .{ .rc = .sse } }, |
| 131396 | .unused, |
| 131397 | .unused, |
| 131398 | .unused, |
| 131399 | .unused, |
| 131400 | .unused, |
| 131401 | .unused, |
| 131402 | .unused, |
| 131403 | .unused, |
| 131404 | .unused, |
| 131405 | }, |
| 131406 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 131407 | .clobbers = .{ .eflags = true }, |
| 131408 | .each = .{ .once = &.{ |
| 131409 | .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_unaligned_size), ._, ._ }, |
| 131410 | .{ ._, ._pd, .mova, .dst0x, .memad(.src0x, .add_unaligned_size, -16), ._, ._ }, |
| 131411 | .{ .@"0:", ._pd, .add, .dst0x, .memi(.src0x, .tmp0), ._, ._ }, |
| 131412 | .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ }, |
| 131413 | .{ ._, ._nb, .j, .@"0b", ._, ._, ._ }, |
| 131414 | .{ ._, ._ps, .xor, .tmp1x, .tmp1x, ._, ._ }, |
| 131415 | .{ ._, ._ps, .movhl, .tmp1x, .dst0x, ._, ._ }, |
| 131416 | .{ ._, ._sd, .add, .dst0x, .tmp1x, ._, ._ }, |
| 131417 | } }, |
| 131418 | }, .{ |
| 131419 | .required_features = .{ .avx512f, null, null, null }, |
| 131420 | .dst_constraints = .{ .{ .float = .qword }, .any }, |
| 131421 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .zword, .is = .qword } }, .any, .any }, |
| 131422 | .patterns = &.{ |
| 131423 | .{ .src = .{ .to_mem, .none, .none } }, |
| 131424 | }, |
| 131425 | .extra_temps = .{ |
| 131426 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 131427 | .{ .type = .vector_64_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } }, |
| 131428 | .{ .type = .vector_4_f64, .kind = .{ .rc = .sse } }, |
| 131429 | .unused, |
| 131430 | .unused, |
| 131431 | .unused, |
| 131432 | .unused, |
| 131433 | .unused, |
| 131434 | .unused, |
| 131435 | .unused, |
| 131436 | .unused, |
| 131437 | }, |
| 131438 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 131439 | .clobbers = .{ .eflags = true }, |
| 131440 | .each = .{ .once = &.{ |
| 131441 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 131442 | .{ ._, .v_pd, .mova, .dst0y, .lea(.tmp0y), ._, ._ }, |
| 131443 | .{ ._, .v_pd, .mova, .tmp2y, .lead(.tmp0y, 32), ._, ._ }, |
| 131444 | .{ ._, ._, .mov, .tmp0d, .sia(-128, .src0, .add_size), ._, ._ }, |
| 131445 | .{ ._, .v_pd, .@"and", .tmp2y, .tmp2y, .memad(.src0y, .add_size, -32), ._ }, |
| 131446 | .{ ._, .v_pd, .@"and", .dst0y, .dst0y, .memad(.src0y, .add_size, -64), ._ }, |
| 131447 | .{ .@"0:", .v_pd, .add, .tmp2y, .tmp2y, .memid(.src0y, .tmp0, 32), ._ }, |
| 131448 | .{ ._, .v_pd, .add, .dst0y, .dst0y, .memi(.src0y, .tmp0), ._ }, |
| 131449 | .{ ._, ._, .sub, .tmp0d, .si(64), ._, ._ }, |
| 131450 | .{ ._, ._nb, .j, .@"0b", ._, ._, ._ }, |
| 131451 | .{ ._, .v_pd, .add, .dst0y, .dst0y, .tmp2y, ._ }, |
| 131452 | .{ ._, .v_f128, .extract, .tmp2x, .dst0y, .ui(1), ._ }, |
| 131453 | .{ ._, .v_pd, .add, .dst0x, .dst0x, .tmp2x, ._ }, |
| 131454 | .{ ._, .v_ps, .movhl, .tmp2x, .dst0x, .dst0x, ._ }, |
| 131455 | .{ ._, .v_sd, .add, .dst0x, .dst0x, .tmp2x, ._ }, |
| 131456 | } }, |
| 131457 | }, .{ |
| 131458 | .required_features = .{ .avx, .fast_hops, null, null }, |
| 131459 | .dst_constraints = .{ .{ .float = .qword }, .any }, |
| 131460 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .yword, .is = .qword } }, .any, .any }, |
| 131461 | .patterns = &.{ |
| 131462 | .{ .src = .{ .to_mem, .none, .none } }, |
| 131463 | }, |
| 131464 | .extra_temps = .{ |
| 131465 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 131466 | .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } }, |
| 131467 | .{ .type = .vector_2_f64, .kind = .{ .rc = .sse } }, |
| 131468 | .unused, |
| 131469 | .unused, |
| 131470 | .unused, |
| 131471 | .unused, |
| 131472 | .unused, |
| 131473 | .unused, |
| 131474 | .unused, |
| 131475 | .unused, |
| 131476 | }, |
| 131477 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 131478 | .clobbers = .{ .eflags = true }, |
| 131479 | .each = .{ .once = &.{ |
| 131480 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 131481 | .{ ._, .v_pd, .mova, .dst0y, .lea(.tmp0y), ._, ._ }, |
| 131482 | .{ ._, ._, .mov, .tmp0d, .sia(-48, .src0, .add_size), ._, ._ }, |
| 131483 | .{ ._, .v_pd, .@"and", .dst0y, .dst0y, .memad(.src0y, .add_size, -32), ._ }, |
| 131484 | .{ ._, .v_f128, .extract, .tmp2x, .dst0y, .ui(1), ._ }, |
| 131485 | .{ ._, .v_pd, .add, .dst0x, .dst0x, .tmp2x, ._ }, |
| 131486 | .{ .@"0:", .v_pd, .add, .dst0x, .dst0x, .memi(.src0x, .tmp0), ._ }, |
| 131487 | .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ }, |
| 131488 | .{ ._, ._nb, .j, .@"0b", ._, ._, ._ }, |
| 131489 | .{ ._, .vh_pd, .add, .dst0x, .dst0x, .dst0x, ._ }, |
| 131490 | } }, |
| 131491 | }, .{ |
| 131492 | .required_features = .{ .avx, null, null, null }, |
| 131493 | .dst_constraints = .{ .{ .float = .qword }, .any }, |
| 131494 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .yword, .is = .qword } }, .any, .any }, |
| 131495 | .patterns = &.{ |
| 131496 | .{ .src = .{ .to_mem, .none, .none } }, |
| 131497 | }, |
| 131498 | .extra_temps = .{ |
| 131499 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 131500 | .{ .type = .vector_32_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } }, |
| 131501 | .{ .type = .vector_2_f64, .kind = .{ .rc = .sse } }, |
| 131502 | .unused, |
| 131503 | .unused, |
| 131504 | .unused, |
| 131505 | .unused, |
| 131506 | .unused, |
| 131507 | .unused, |
| 131508 | .unused, |
| 131509 | .unused, |
| 131510 | }, |
| 131511 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 131512 | .clobbers = .{ .eflags = true }, |
| 131513 | .each = .{ .once = &.{ |
| 131514 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 131515 | .{ ._, .v_pd, .mova, .dst0y, .lea(.tmp0y), ._, ._ }, |
| 131516 | .{ ._, ._, .mov, .tmp0d, .sia(-48, .src0, .add_size), ._, ._ }, |
| 131517 | .{ ._, .v_pd, .@"and", .dst0y, .dst0y, .memad(.src0y, .add_size, -32), ._ }, |
| 131518 | .{ ._, .v_f128, .extract, .tmp2x, .dst0y, .ui(1), ._ }, |
| 131519 | .{ ._, .v_pd, .add, .dst0x, .dst0x, .tmp2x, ._ }, |
| 131520 | .{ .@"0:", .v_pd, .add, .dst0x, .dst0x, .memi(.src0x, .tmp0), ._ }, |
| 131521 | .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ }, |
| 131522 | .{ ._, ._nb, .j, .@"0b", ._, ._, ._ }, |
| 131523 | .{ ._, .v_ps, .movhl, .tmp2x, .dst0x, .dst0x, ._ }, |
| 131524 | .{ ._, .v_pd, .add, .dst0x, .dst0x, .tmp2x, ._ }, |
| 131525 | } }, |
| 131526 | }, .{ |
| 131527 | .required_features = .{ .sse3, .fast_hops, null, null }, |
| 131528 | .dst_constraints = .{ .{ .float = .qword }, .any }, |
| 131529 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .qword } }, .any, .any }, |
| 131530 | .patterns = &.{ |
| 131531 | .{ .src = .{ .to_mem, .none, .none } }, |
| 131532 | }, |
| 131533 | .extra_temps = .{ |
| 131534 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 131535 | .{ .type = .vector_16_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } }, |
| 131536 | .unused, |
| 131537 | .unused, |
| 131538 | .unused, |
| 131539 | .unused, |
| 131540 | .unused, |
| 131541 | .unused, |
| 131542 | .unused, |
| 131543 | .unused, |
| 131544 | .unused, |
| 131545 | }, |
| 131546 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 131547 | .clobbers = .{ .eflags = true }, |
| 131548 | .each = .{ .once = &.{ |
| 131549 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 131550 | .{ ._, ._pd, .mova, .dst0x, .lea(.tmp0x), ._, ._ }, |
| 131551 | .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_size), ._, ._ }, |
| 131552 | .{ ._, ._pd, .@"and", .dst0x, .memad(.src0x, .add_size, -16), ._, ._ }, |
| 131553 | .{ .@"0:", ._pd, .add, .dst0x, .memi(.src0x, .tmp0), ._, ._ }, |
| 131554 | .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ }, |
| 131555 | .{ ._, ._nb, .j, .@"0b", ._, ._, ._ }, |
| 131556 | .{ ._, .h_pd, .add, .dst0x, .dst0x, ._, ._ }, |
| 131557 | } }, |
| 131558 | }, .{ |
| 131559 | .required_features = .{ .sse2, null, null, null }, |
| 131560 | .dst_constraints = .{ .{ .float = .qword }, .any }, |
| 131561 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .qword } }, .any, .any }, |
| 131562 | .patterns = &.{ |
| 131563 | .{ .src = .{ .to_mem, .none, .none } }, |
| 131564 | }, |
| 131565 | .extra_temps = .{ |
| 131566 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 131567 | .{ .type = .vector_16_u8, .kind = .{ .pand_mask_mem = .{ .ref = .src0 } } }, |
| 131568 | .{ .type = .vector_2_f64, .kind = .{ .rc = .sse } }, |
| 131569 | .unused, |
| 131570 | .unused, |
| 131571 | .unused, |
| 131572 | .unused, |
| 131573 | .unused, |
| 131574 | .unused, |
| 131575 | .unused, |
| 131576 | .unused, |
| 131577 | }, |
| 131578 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 131579 | .clobbers = .{ .eflags = true }, |
| 131580 | .each = .{ .once = &.{ |
| 131581 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 131582 | .{ ._, ._pd, .mova, .dst0x, .lea(.tmp0x), ._, ._ }, |
| 131583 | .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_size), ._, ._ }, |
| 131584 | .{ ._, ._pd, .@"and", .dst0x, .memad(.src0x, .add_size, -16), ._, ._ }, |
| 131585 | .{ .@"0:", ._pd, .add, .dst0x, .memi(.src0x, .tmp0), ._, ._ }, |
| 131586 | .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ }, |
| 131587 | .{ ._, ._nb, .j, .@"0b", ._, ._, ._ }, |
| 131588 | .{ ._, ._ps, .xor, .tmp2x, .tmp2x, ._, ._ }, |
| 131589 | .{ ._, ._ps, .movhl, .tmp2x, .dst0x, ._, ._ }, |
| 131590 | .{ ._, ._pd, .add, .dst0x, .tmp2x, ._, ._ }, |
| 131591 | } }, |
| 131592 | }, .{ |
| 131593 | .required_features = .{ .x87, null, null, null }, |
| 131594 | .dst_constraints = .{ .{ .float = .qword }, .any }, |
| 131595 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 131596 | .patterns = &.{ |
| 131597 | .{ .src = .{ .to_mem, .none, .none } }, |
| 131598 | }, |
| 131599 | .extra_temps = .{ |
| 131600 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 131601 | .{ .type = .f64, .kind = .{ .reg = .st7 } }, |
| 131602 | .unused, |
| 131603 | .unused, |
| 131604 | .unused, |
| 131605 | .unused, |
| 131606 | .unused, |
| 131607 | .unused, |
| 131608 | .unused, |
| 131609 | .unused, |
| 131610 | .unused, |
| 131611 | }, |
| 131612 | .dst_temps = .{ .mem, .unused }, |
| 131613 | .clobbers = .{ .eflags = true }, |
| 131614 | .each = .{ .once = &.{ |
| 131615 | .{ ._, ._, .mov, .tmp0p, .sia(-16, .src0, .add_unaligned_size), ._, ._ }, |
| 131616 | .{ ._, .f_, .ld, .memad(.src0q, .add_unaligned_size, -8), ._, ._, ._ }, |
| 131617 | .{ .@"0:", .f_, .add, .memi(.src0q, .tmp0), ._, ._, ._ }, |
| 131618 | .{ ._, ._, .sub, .tmp0p, .si(8), ._, ._ }, |
| 131619 | .{ ._, ._nb, .j, .@"0b", ._, ._, ._ }, |
| 131620 | .{ ._, .f_p, .st, .dst0q, ._, ._, ._ }, |
| 131621 | } }, |
| 131622 | }, .{ |
| 131623 | .required_features = .{ .x87, null, null, null }, |
| 131624 | .dst_constraints = .{ .{ .float = .tbyte }, .any }, |
| 131625 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .tbyte } }, .any, .any }, |
| 131626 | .patterns = &.{ |
| 131627 | .{ .src = .{ .to_mem, .none, .none } }, |
| 131628 | }, |
| 131629 | .extra_temps = .{ |
| 131630 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 131631 | .{ .type = .f80, .kind = .{ .reg = .st6 } }, |
| 131632 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, |
| 131633 | .unused, |
| 131634 | .unused, |
| 131635 | .unused, |
| 131636 | .unused, |
| 131637 | .unused, |
| 131638 | .unused, |
| 131639 | .unused, |
| 131640 | .unused, |
| 131641 | }, |
| 131642 | .dst_temps = .{ .mem, .unused }, |
| 131643 | .clobbers = .{ .eflags = true }, |
| 131644 | .each = .{ .once = &.{ |
| 131645 | .{ ._, ._, .mov, .tmp0p, .sia(-32, .src0, .add_unaligned_size), ._, ._ }, |
| 131646 | .{ ._, .f_, .ld, .memad(.src0t, .add_unaligned_size, -16), ._, ._, ._ }, |
| 131647 | .{ .@"0:", .f_, .ld, .memi(.src0t, .tmp0), ._, ._, ._ }, |
| 131648 | .{ ._, .f_p, .add, ._, ._, ._, ._ }, |
| 131649 | .{ ._, ._, .sub, .tmp0p, .si(16), ._, ._ }, |
| 131650 | .{ ._, ._nb, .j, .@"0b", ._, ._, ._ }, |
| 131651 | .{ ._, .f_p, .st, .dst0t, ._, ._, ._ }, |
| 131652 | } }, |
| 131653 | }, .{ |
| 131654 | .required_features = .{ .avx, null, null, null }, |
| 131655 | .dst_constraints = .{ .{ .float = .xword }, .any }, |
| 131656 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 131657 | .patterns = &.{ |
| 131658 | .{ .src = .{ .to_mem, .none, .none } }, |
| 131659 | }, |
| 131660 | .call_frame = .{ .alignment = .@"16" }, |
| 131661 | .extra_temps = .{ |
| 131662 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 131663 | .{ .type = .f128, .kind = .{ .reg = .xmm1 } }, |
| 131664 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__addtf3" } } }, |
| 131665 | .unused, |
| 131666 | .unused, |
| 131667 | .unused, |
| 131668 | .unused, |
| 131669 | .unused, |
| 131670 | .unused, |
| 131671 | .unused, |
| 131672 | .unused, |
| 131673 | }, |
| 131674 | .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, |
| 131675 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 131676 | .each = .{ .once = &.{ |
| 131677 | .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_unaligned_size), ._, ._ }, |
| 131678 | .{ ._, .v_dqa, .mov, .dst0x, .memad(.src0x, .add_unaligned_size, -16), ._, ._ }, |
| 131679 | .{ .@"0:", .v_dqa, .mov, .tmp1x, .memi(.src0x, .tmp0), ._, ._ }, |
| 131680 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 131681 | .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ }, |
| 131682 | .{ ._, ._nb, .j, .@"0b", ._, ._, ._ }, |
| 131683 | } }, |
| 131684 | }, .{ |
| 131685 | .required_features = .{ .sse2, null, null, null }, |
| 131686 | .dst_constraints = .{ .{ .float = .xword }, .any }, |
| 131687 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 131688 | .patterns = &.{ |
| 131689 | .{ .src = .{ .to_mem, .none, .none } }, |
| 131690 | }, |
| 131691 | .call_frame = .{ .alignment = .@"16" }, |
| 131692 | .extra_temps = .{ |
| 131693 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 131694 | .{ .type = .f128, .kind = .{ .reg = .xmm1 } }, |
| 131695 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__addtf3" } } }, |
| 131696 | .unused, |
| 131697 | .unused, |
| 131698 | .unused, |
| 131699 | .unused, |
| 131700 | .unused, |
| 131701 | .unused, |
| 131702 | .unused, |
| 131703 | .unused, |
| 131704 | }, |
| 131705 | .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, |
| 131706 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 131707 | .each = .{ .once = &.{ |
| 131708 | .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_unaligned_size), ._, ._ }, |
| 131709 | .{ ._, ._dqa, .mov, .dst0x, .memad(.src0x, .add_unaligned_size, -16), ._, ._ }, |
| 131710 | .{ .@"0:", ._dqa, .mov, .tmp1x, .memi(.src0x, .tmp0), ._, ._ }, |
| 131711 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 131712 | .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ }, |
| 131713 | .{ ._, ._nb, .j, .@"0b", ._, ._, ._ }, |
| 131714 | } }, |
| 131715 | }, .{ |
| 131716 | .required_features = .{ .sse, null, null, null }, |
| 131717 | .dst_constraints = .{ .{ .float = .xword }, .any }, |
| 131718 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 131719 | .patterns = &.{ |
| 131720 | .{ .src = .{ .to_mem, .none, .none } }, |
| 131721 | }, |
| 131722 | .call_frame = .{ .alignment = .@"16" }, |
| 131723 | .extra_temps = .{ |
| 131724 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 131725 | .{ .type = .f128, .kind = .{ .reg = .xmm1 } }, |
| 131726 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__addtf3" } } }, |
| 131727 | .unused, |
| 131728 | .unused, |
| 131729 | .unused, |
| 131730 | .unused, |
| 131731 | .unused, |
| 131732 | .unused, |
| 131733 | .unused, |
| 131734 | .unused, |
| 131735 | }, |
| 131736 | .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, |
| 131737 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 131738 | .each = .{ .once = &.{ |
| 131739 | .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_unaligned_size), ._, ._ }, |
| 131740 | .{ ._, ._ps, .mova, .dst0x, .memad(.src0x, .add_unaligned_size, -16), ._, ._ }, |
| 131741 | .{ .@"0:", ._ps, .mova, .tmp1x, .memi(.src0x, .tmp0), ._, ._ }, |
| 131742 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 131743 | .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ }, |
| 131744 | .{ ._, ._nb, .j, .@"0b", ._, ._, ._ }, |
| 131745 | } }, |
| 131746 | } }, |
| 131747 | .Mul => unreachable, |
| 131748 | }) catch |err| switch (err) { |
| 131749 | error.SelectFailed => return cg.fail("failed to select {s} {} {}", .{ |
| 131750 | @tagName(air_tag), |
| 131751 | cg.typeOf(reduce.operand).fmt(pt), |
| 131752 | ops[0].tracking(cg), |
| 131753 | }), |
| 131754 | else => |e| return e, |
| 131755 | }; |
| 131756 | try res[0].finish(inst, &.{reduce.operand}, &ops, cg); |
| 131757 | }, |
| 128940 | 131758 | .splat => |air_tag| if (use_old) try cg.airSplat(inst) else fallback: { |
| 128941 | 131759 | const ty_op = air_datas[@intFromEnum(inst)].ty_op; |
| 128942 | 131760 | if (cg.typeOf(ty_op.operand).toIntern() == .bool_type) break :fallback try cg.airSplat(inst); |
| ... | ... | @@ -137624,7 +140442,7 @@ fn genByteSwap( |
| 137624 | 140442 | return src_mcv; |
| 137625 | 140443 | }, |
| 137626 | 140444 | 3...8 => if (src_mcv.isRegister() and self.reuseOperand(inst, ty_op.operand, 0, src_mcv)) { |
| 137627 | | try self.genUnOpMir(.{ ._, .bswap }, src_ty, src_mcv); |
| 140445 | try self.genUnOpMir(.{ .b_, .swap }, src_ty, src_mcv); |
| 137628 | 140446 | return src_mcv; |
| 137629 | 140447 | }, |
| 137630 | 140448 | 9...16 => { |
| ... | ... | @@ -137635,7 +140453,7 @@ fn genByteSwap( |
| 137635 | 140453 | break :mat_src_mcv .{ .load_frame = .{ .index = frame_index } }; |
| 137636 | 140454 | }, |
| 137637 | 140455 | .register_pair => |src_regs| if (self.reuseOperand(inst, ty_op.operand, 0, src_mcv)) { |
| 137638 | | for (src_regs) |src_reg| try self.asmRegister(.{ ._, .bswap }, src_reg.to64()); |
| 140456 | for (src_regs) |src_reg| try self.asmRegister(.{ .b_, .swap }, src_reg.to64()); |
| 137639 | 140457 | return .{ .register_pair = .{ src_regs[1], src_regs[0] } }; |
| 137640 | 140458 | } else src_mcv, |
| 137641 | 140459 | else => src_mcv, |
| ... | ... | @@ -137649,18 +140467,18 @@ fn genByteSwap( |
| 137649 | 140467 | for (dst_regs, 0..) |dst_reg, limb_index| { |
| 137650 | 140468 | if (mat_src_mcv.isBase()) { |
| 137651 | 140469 | try self.asmRegisterMemory( |
| 137652 | | .{ ._, if (has_movbe) .movbe else .mov }, |
| 140470 | .{ if (has_movbe) ._be else ._, .mov }, |
| 137653 | 140471 | dst_reg.to64(), |
| 137654 | 140472 | try mat_src_mcv.address().offset(@intCast(limb_index * 8)).deref().mem(self, .{ .size = .qword }), |
| 137655 | 140473 | ); |
| 137656 | | if (!has_movbe) try self.asmRegister(.{ ._, .bswap }, dst_reg.to64()); |
| 140474 | if (!has_movbe) try self.asmRegister(.{ .b_, .swap }, dst_reg.to64()); |
| 137657 | 140475 | } else { |
| 137658 | 140476 | try self.asmRegisterRegister( |
| 137659 | 140477 | .{ ._, .mov }, |
| 137660 | 140478 | dst_reg.to64(), |
| 137661 | 140479 | mat_src_mcv.register_pair[limb_index].to64(), |
| 137662 | 140480 | ); |
| 137663 | | try self.asmRegister(.{ ._, .bswap }, dst_reg.to64()); |
| 140481 | try self.asmRegister(.{ .b_, .swap }, dst_reg.to64()); |
| 137664 | 140482 | } |
| 137665 | 140483 | } |
| 137666 | 140484 | return .{ .register_pair = .{ dst_regs[1], dst_regs[0] } }; |
| ... | ... | @@ -137679,7 +140497,7 @@ fn genByteSwap( |
| 137679 | 140497 | |
| 137680 | 140498 | const loop: Mir.Inst.Index = @intCast(self.mir_instructions.len); |
| 137681 | 140499 | try self.asmRegisterMemory( |
| 137682 | | .{ ._, if (has_movbe) .movbe else .mov }, |
| 140500 | .{ if (has_movbe) ._be else ._, .mov }, |
| 137683 | 140501 | temp_regs[2].to64(), |
| 137684 | 140502 | .{ |
| 137685 | 140503 | .base = .{ .frame = dst_mcv.load_frame.index }, |
| ... | ... | @@ -137692,7 +140510,7 @@ fn genByteSwap( |
| 137692 | 140510 | }, |
| 137693 | 140511 | ); |
| 137694 | 140512 | try self.asmRegisterMemory( |
| 137695 | | .{ ._, if (has_movbe) .movbe else .mov }, |
| 140513 | .{ if (has_movbe) ._be else ._, .mov }, |
| 137696 | 140514 | temp_regs[3].to64(), |
| 137697 | 140515 | .{ |
| 137698 | 140516 | .base = .{ .frame = dst_mcv.load_frame.index }, |
| ... | ... | @@ -137705,8 +140523,8 @@ fn genByteSwap( |
| 137705 | 140523 | }, |
| 137706 | 140524 | ); |
| 137707 | 140525 | if (!has_movbe) { |
| 137708 | | try self.asmRegister(.{ ._, .bswap }, temp_regs[2].to64()); |
| 137709 | | try self.asmRegister(.{ ._, .bswap }, temp_regs[3].to64()); |
| 140526 | try self.asmRegister(.{ .b_, .swap }, temp_regs[2].to64()); |
| 140527 | try self.asmRegister(.{ .b_, .swap }, temp_regs[3].to64()); |
| 137710 | 140528 | } |
| 137711 | 140529 | try self.asmMemoryRegister(.{ ._, .mov }, .{ |
| 137712 | 140530 | .base = .{ .frame = dst_mcv.load_frame.index }, |
| ... | ... | @@ -137751,9 +140569,9 @@ fn genByteSwap( |
| 137751 | 140569 | switch (abi_size) { |
| 137752 | 140570 | else => unreachable, |
| 137753 | 140571 | 2 => try self.genBinOpMir(.{ ._l, .ro }, src_ty, dst_mcv, .{ .immediate = 8 }), |
| 137754 | | 3...8 => try self.genUnOpMir(.{ ._, .bswap }, src_ty, dst_mcv), |
| 140572 | 3...8 => try self.genUnOpMir(.{ .b_, .swap }, src_ty, dst_mcv), |
| 137755 | 140573 | } |
| 137756 | | } else try self.genBinOpMir(.{ ._, .movbe }, src_ty, dst_mcv, src_mcv); |
| 140574 | } else try self.genBinOpMir(.{ ._be, .mov }, src_ty, dst_mcv, src_mcv); |
| 137757 | 140575 | return dst_mcv; |
| 137758 | 140576 | } |
| 137759 | 140577 | |
| ... | ... | @@ -145626,16 +148444,16 @@ fn airAsm(self: *CodeGen, inst: Air.Inst.Index) !void { |
| 145626 | 148444 | .{ ._, .pseudo } |
| 145627 | 148445 | else for (std.enums.values(Mir.Inst.Fixes)) |fixes| { |
| 145628 | 148446 | const fixes_name = @tagName(fixes); |
| 145629 | | const space_i = std.mem.indexOfScalar(u8, fixes_name, ' '); |
| 145630 | | const fixes_prefix = if (space_i) |i| |
| 145631 | | std.meta.stringToEnum(encoder.Instruction.Prefix, fixes_name[0..i]).? |
| 148447 | const space_index = std.mem.indexOfScalar(u8, fixes_name, ' '); |
| 148448 | const fixes_prefix = if (space_index) |index| |
| 148449 | std.meta.stringToEnum(encoder.Instruction.Prefix, fixes_name[0..index]).? |
| 145632 | 148450 | else |
| 145633 | 148451 | .none; |
| 145634 | 148452 | if (fixes_prefix != prefix) continue; |
| 145635 | | const pattern = fixes_name[if (space_i) |i| i + " ".len else 0..]; |
| 145636 | | const wildcard_i = std.mem.indexOfScalar(u8, pattern, '_').?; |
| 145637 | | const mnem_prefix = pattern[0..wildcard_i]; |
| 145638 | | const mnem_suffix = pattern[wildcard_i + "_".len ..]; |
| 148453 | const pattern = fixes_name[if (space_index) |index| index + " ".len else 0..]; |
| 148454 | const wildcard_index = std.mem.indexOfScalar(u8, pattern, '_').?; |
| 148455 | const mnem_prefix = pattern[0..wildcard_index]; |
| 148456 | const mnem_suffix = pattern[wildcard_index + "_".len ..]; |
| 145639 | 148457 | if (!std.mem.startsWith(u8, mnem_name, mnem_prefix)) continue; |
| 145640 | 148458 | if (!std.mem.endsWith(u8, mnem_name, mnem_suffix)) continue; |
| 145641 | 148459 | break .{ fixes, std.meta.stringToEnum( |
| ... | ... | @@ -157348,7 +160166,6 @@ const Select = struct { |
| 157348 | 160166 | bool, |
| 157349 | 160167 | bool_vec: Memory.Size, |
| 157350 | 160168 | exact_bool_vec: u16, |
| 157351 | | vec_len: u32, |
| 157352 | 160169 | ptr_any_bool_vec, |
| 157353 | 160170 | ptr_bool_vec: Memory.Size, |
| 157354 | 160171 | remainder_bool_vec: OfIsSizes, |
| ... | ... | @@ -157390,8 +160207,11 @@ const Select = struct { |
| 157390 | 160207 | float: Memory.Size, |
| 157391 | 160208 | scalar_any_float: Memory.Size, |
| 157392 | 160209 | scalar_float: OfIsSizes, |
| 160210 | exclusive_scalar_float: OfIsSizes, |
| 160211 | exact_scalar_float: OfIsSizes, |
| 157393 | 160212 | multiple_scalar_any_float: Memory.Size, |
| 157394 | 160213 | multiple_scalar_float: OfIsSizes, |
| 160214 | unaligned_multiple_scalar_float: OfIsSizes, |
| 157395 | 160215 | exact_int: u16, |
| 157396 | 160216 | exact_signed_int: u16, |
| 157397 | 160217 | exact_unsigned_int: u16, |
| ... | ... | @@ -157435,7 +160255,6 @@ const Select = struct { |
| 157435 | 160255 | size.bitSize(cg.target) >= ty.vectorLen(zcu), |
| 157436 | 160256 | .exact_bool_vec => |size| ty.isVector(zcu) and ty.scalarType(zcu).toIntern() == .bool_type and |
| 157437 | 160257 | size == ty.vectorLen(zcu), |
| 157438 | | .vec_len => |len| ty.isVector(zcu) and ty.vectorLen(zcu) == len, |
| 157439 | 160258 | .ptr_any_bool_vec => switch (zcu.intern_pool.indexToKey(ty.childType(zcu).toIntern())) { |
| 157440 | 160259 | .vector_type => |vector_type| vector_type.child == .bool_type, |
| 157441 | 160260 | else => false, |
| ... | ... | @@ -157559,10 +160378,16 @@ const Select = struct { |
| 157559 | 160378 | cg.floatBits(ty.scalarType(zcu)) != null, |
| 157560 | 160379 | .scalar_float => |of_is| @divExact(of_is.of.bitSize(cg.target), 8) >= cg.unalignedSize(ty) and |
| 157561 | 160380 | if (cg.floatBits(ty.scalarType(zcu))) |float_bits| of_is.is.bitSize(cg.target) == float_bits else false, |
| 160381 | .exclusive_scalar_float => |of_is| @divExact(of_is.of.bitSize(cg.target), 8) > cg.unalignedSize(ty) and |
| 160382 | if (cg.floatBits(ty.scalarType(zcu))) |float_bits| of_is.is.bitSize(cg.target) == float_bits else false, |
| 160383 | .exact_scalar_float => |of_is| @divExact(of_is.of.bitSize(cg.target), 8) == cg.unalignedSize(ty) and |
| 160384 | if (cg.floatBits(ty.scalarType(zcu))) |float_bits| of_is.is.bitSize(cg.target) == float_bits else false, |
| 157562 | 160385 | .multiple_scalar_any_float => |size| ty.abiSize(zcu) % @divExact(size.bitSize(cg.target), 8) == 0 and |
| 157563 | 160386 | cg.floatBits(ty.scalarType(zcu)) != null, |
| 157564 | 160387 | .multiple_scalar_float => |of_is| ty.abiSize(zcu) % @divExact(of_is.of.bitSize(cg.target), 8) == 0 and |
| 157565 | 160388 | if (cg.floatBits(ty.scalarType(zcu))) |float_bits| of_is.is.bitSize(cg.target) == float_bits else false, |
| 160389 | .unaligned_multiple_scalar_float => |of_is| cg.unalignedSize(ty) % @divExact(of_is.of.bitSize(cg.target), 8) == 0 and |
| 160390 | if (cg.floatBits(ty.scalarType(zcu))) |float_bits| of_is.is.bitSize(cg.target) == float_bits else false, |
| 157566 | 160391 | .exact_int => |bit_size| if (cg.intInfo(ty)) |int_info| bit_size == int_info.bits else false, |
| 157567 | 160392 | .exact_signed_int => |bit_size| if (cg.intInfo(ty)) |int_info| switch (int_info.signedness) { |
| 157568 | 160393 | .signed => bit_size == int_info.bits, |