| ... | ... | @@ -2414,7 +2414,7 @@ fn genBodyBlock(self: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 2414 | 2414 | } |
| 2415 | 2415 | |
| 2416 | 2416 | fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 2417 | | @setEvalBranchQuota(4_600); |
| 2417 | @setEvalBranchQuota(5_500); |
| 2418 | 2418 | const pt = cg.pt; |
| 2419 | 2419 | const zcu = pt.zcu; |
| 2420 | 2420 | const ip = &zcu.intern_pool; |
| ... | ... | @@ -21970,9 +21970,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 21970 | 21970 | .dst_temps = .{.mem}, |
| 21971 | 21971 | .clobbers = .{ .eflags = true }, |
| 21972 | 21972 | .each = .{ .once = &.{ |
| 21973 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_size), ._, ._ }, |
| 21974 | | .{ .@"0:", .v_ps, .mova, .tmp1y, .memsia(.src0y, .@"2", .tmp0, .add_size), ._, ._ }, |
| 21975 | | .{ ._, .v_, .cvtps2ph, .memia(.dst0x, .tmp0, .add_size), .tmp1y, .rm(.{}), ._ }, |
| 21973 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 21974 | .{ .@"0:", .v_ps, .mova, .tmp1y, .memsia(.src0y, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| 21975 | .{ ._, .v_, .cvtps2ph, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp1y, .rm(.{}), ._ }, |
| 21976 | 21976 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 21977 | 21977 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 21978 | 21978 | } }, |
| ... | ... | @@ -22355,9 +22355,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 22355 | 22355 | .dst_temps = .{.mem}, |
| 22356 | 22356 | .clobbers = .{ .eflags = true }, |
| 22357 | 22357 | .each = .{ .once = &.{ |
| 22358 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_size), ._, ._ }, |
| 22359 | | .{ .@"0:", .v_ps, .cvtpd2, .tmp1x, .memsia(.src0y, .@"2", .tmp0, .add_size), ._, ._ }, |
| 22360 | | .{ ._, .v_ps, .mova, .memia(.dst0x, .tmp0, .add_size), .tmp1x, ._, ._ }, |
| 22358 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 22359 | .{ .@"0:", .v_ps, .cvtpd2, .tmp1x, .memsia(.src0y, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| 22360 | .{ ._, .v_ps, .mova, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 22361 | 22361 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 22362 | 22362 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 22363 | 22363 | } }, |
| ... | ... | @@ -22382,9 +22382,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 22382 | 22382 | .dst_temps = .{.mem}, |
| 22383 | 22383 | .clobbers = .{ .eflags = true }, |
| 22384 | 22384 | .each = .{ .once = &.{ |
| 22385 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_size), ._, ._ }, |
| 22386 | | .{ .@"0:", ._ps, .cvtpd2, .tmp1x, .memsia(.src0x, .@"2", .tmp0, .add_size), ._, ._ }, |
| 22387 | | .{ ._, ._ps, .movl, .memia(.dst0q, .tmp0, .add_size), .tmp1x, ._, ._ }, |
| 22385 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 22386 | .{ .@"0:", ._ps, .cvtpd2, .tmp1x, .memsia(.src0x, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| 22387 | .{ ._, ._ps, .movl, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 22388 | 22388 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 22389 | 22389 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 22390 | 22390 | } }, |
| ... | ... | @@ -23292,9 +23292,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 23292 | 23292 | .dst_temps = .{.mem}, |
| 23293 | 23293 | .clobbers = .{ .eflags = true }, |
| 23294 | 23294 | .each = .{ .once = &.{ |
| 23295 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| 23296 | | .{ .@"0:", .v_ps, .cvtph2, .tmp1y, .memia(.src0x, .tmp0, .add_size), ._, ._ }, |
| 23297 | | .{ ._, .v_ps, .mova, .memsia(.dst0y, .@"2", .tmp0, .add_size), .tmp1y, ._, ._ }, |
| 23295 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 23296 | .{ .@"0:", .v_ps, .cvtph2, .tmp1y, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, |
| 23297 | .{ ._, .v_ps, .mova, .memsia(.dst0y, .@"2", .tmp0, .add_unaligned_size), .tmp1y, ._, ._ }, |
| 23298 | 23298 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 23299 | 23299 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 23300 | 23300 | } }, |
| ... | ... | @@ -23500,13 +23500,13 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 23500 | 23500 | .dst_temps = .{.mem}, |
| 23501 | 23501 | .clobbers = .{ .eflags = true }, |
| 23502 | 23502 | .each = .{ .once = &.{ |
| 23503 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| 23504 | | .{ .@"0:", .v_ps, .cvtph2, .tmp1y, .memia(.src0x, .tmp0, .add_size), ._, ._ }, |
| 23503 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 23504 | .{ .@"0:", .v_ps, .cvtph2, .tmp1y, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, |
| 23505 | 23505 | .{ ._, .v_pd, .cvtps2, .tmp2y, .tmp1x, ._, ._ }, |
| 23506 | 23506 | .{ ._, .v_f128, .extract, .tmp1x, .tmp1y, .ui(1), ._ }, |
| 23507 | | .{ ._, .v_pd, .mova, .memsia(.dst0y, .@"4", .tmp0, .add_size), .tmp2y, ._, ._ }, |
| 23507 | .{ ._, .v_pd, .mova, .memsia(.dst0y, .@"4", .tmp0, .add_unaligned_size), .tmp2y, ._, ._ }, |
| 23508 | 23508 | .{ ._, .v_pd, .cvtps2, .tmp2y, .tmp1x, ._, ._ }, |
| 23509 | | .{ ._, .v_pd, .mova, .memsiad(.dst0y, .@"4", .tmp0, .add_size, 32), .tmp2y, ._, ._ }, |
| 23509 | .{ ._, .v_pd, .mova, .memsiad(.dst0y, .@"4", .tmp0, .add_unaligned_size, 32), .tmp2y, ._, ._ }, |
| 23510 | 23510 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 23511 | 23511 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 23512 | 23512 | } }, |
| ... | ... | @@ -23975,9 +23975,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 23975 | 23975 | .dst_temps = .{.mem}, |
| 23976 | 23976 | .clobbers = .{ .eflags = true }, |
| 23977 | 23977 | .each = .{ .once = &.{ |
| 23978 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| 23979 | | .{ .@"0:", .v_pd, .cvtps2, .tmp1y, .memia(.src0x, .tmp0, .add_size), ._, ._ }, |
| 23980 | | .{ ._, .v_pd, .mova, .memsia(.dst0y, .@"2", .tmp0, .add_size), .tmp1y, ._, ._ }, |
| 23978 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 23979 | .{ .@"0:", .v_pd, .cvtps2, .tmp1y, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, |
| 23980 | .{ ._, .v_pd, .mova, .memsia(.dst0y, .@"2", .tmp0, .add_unaligned_size), .tmp1y, ._, ._ }, |
| 23981 | 23981 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 23982 | 23982 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 23983 | 23983 | } }, |
| ... | ... | @@ -24002,9 +24002,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 24002 | 24002 | .dst_temps = .{.mem}, |
| 24003 | 24003 | .clobbers = .{ .eflags = true }, |
| 24004 | 24004 | .each = .{ .once = &.{ |
| 24005 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| 24006 | | .{ .@"0:", ._pd, .cvtps2, .tmp1x, .memia(.src0q, .tmp0, .add_size), ._, ._ }, |
| 24007 | | .{ ._, ._pd, .mova, .memsia(.dst0x, .@"2", .tmp0, .add_size), .tmp1x, ._, ._ }, |
| 24005 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 24006 | .{ .@"0:", ._pd, .cvtps2, .tmp1x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 24007 | .{ ._, ._pd, .mova, .memsia(.dst0x, .@"2", .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 24008 | 24008 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 24009 | 24009 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 24010 | 24010 | } }, |
| ... | ... | @@ -24077,6 +24077,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 24077 | 24077 | .unused, |
| 24078 | 24078 | }, |
| 24079 | 24079 | .dst_temps = .{.mem}, |
| 24080 | .clobbers = .{ .eflags = true }, |
| 24080 | 24081 | .each = .{ .once = &.{ |
| 24081 | 24082 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 24082 | 24083 | .{ .@"0:", .f_, .ld, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._, ._ }, |
| ... | ... | @@ -24237,6 +24238,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 24237 | 24238 | .unused, |
| 24238 | 24239 | }, |
| 24239 | 24240 | .dst_temps = .{.mem}, |
| 24241 | .clobbers = .{ .eflags = true }, |
| 24240 | 24242 | .each = .{ .once = &.{ |
| 24241 | 24243 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 24242 | 24244 | .{ .@"0:", .f_, .ld, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._, ._ }, |
| ... | ... | @@ -24724,6 +24726,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 24724 | 24726 | .unused, |
| 24725 | 24727 | }, |
| 24726 | 24728 | .dst_temps = .{.mem}, |
| 24729 | .clobbers = .{ .eflags = true }, |
| 24727 | 24730 | .each = .{ .once = &.{ |
| 24728 | 24731 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 24729 | 24732 | .{ .@"0:", ._, .movzx, .tmp1d, .memsia(.src0w, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| ... | ... | @@ -24749,6 +24752,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 24749 | 24752 | .unused, |
| 24750 | 24753 | }, |
| 24751 | 24754 | .dst_temps = .{.mem}, |
| 24755 | .clobbers = .{ .eflags = true }, |
| 24752 | 24756 | .each = .{ .once = &.{ |
| 24753 | 24757 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 24754 | 24758 | .{ .@"0:", ._, .movzx, .tmp1d, .memsia(.src0w, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| ... | ... | @@ -24847,6 +24851,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 24847 | 24851 | .unused, |
| 24848 | 24852 | }, |
| 24849 | 24853 | .dst_temps = .{.mem}, |
| 24854 | .clobbers = .{ .eflags = true }, |
| 24850 | 24855 | .each = .{ .once = &.{ |
| 24851 | 24856 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 24852 | 24857 | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, |
| ... | ... | @@ -24872,6 +24877,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 24872 | 24877 | .unused, |
| 24873 | 24878 | }, |
| 24874 | 24879 | .dst_temps = .{.mem}, |
| 24880 | .clobbers = .{ .eflags = true }, |
| 24875 | 24881 | .each = .{ .once = &.{ |
| 24876 | 24882 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 24877 | 24883 | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, |
| ... | ... | @@ -24898,6 +24904,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 24898 | 24904 | .unused, |
| 24899 | 24905 | }, |
| 24900 | 24906 | .dst_temps = .{.mem}, |
| 24907 | .clobbers = .{ .eflags = true }, |
| 24901 | 24908 | .each = .{ .once = &.{ |
| 24902 | 24909 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 24903 | 24910 | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"8", .tmp0, .add_unaligned_size), ._, ._ }, |
| ... | ... | @@ -24923,6 +24930,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 24923 | 24930 | .unused, |
| 24924 | 24931 | }, |
| 24925 | 24932 | .dst_temps = .{.mem}, |
| 24933 | .clobbers = .{ .eflags = true }, |
| 24926 | 24934 | .each = .{ .once = &.{ |
| 24927 | 24935 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 24928 | 24936 | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"8", .tmp0, .add_unaligned_size), ._, ._ }, |
| ... | ... | @@ -24949,6 +24957,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 24949 | 24957 | .unused, |
| 24950 | 24958 | }, |
| 24951 | 24959 | .dst_temps = .{.mem}, |
| 24960 | .clobbers = .{ .eflags = true }, |
| 24952 | 24961 | .each = .{ .once = &.{ |
| 24953 | 24962 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 24954 | 24963 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| ... | ... | @@ -24976,6 +24985,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 24976 | 24985 | .unused, |
| 24977 | 24986 | }, |
| 24978 | 24987 | .dst_temps = .{.mem}, |
| 24988 | .clobbers = .{ .eflags = true }, |
| 24979 | 24989 | .each = .{ .once = &.{ |
| 24980 | 24990 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 24981 | 24991 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| ... | ... | @@ -25089,6 +25099,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 25089 | 25099 | .unused, |
| 25090 | 25100 | }, |
| 25091 | 25101 | .dst_temps = .{.mem}, |
| 25102 | .clobbers = .{ .eflags = true }, |
| 25092 | 25103 | .each = .{ .once = &.{ |
| 25093 | 25104 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 25094 | 25105 | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| ... | ... | @@ -25114,6 +25125,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 25114 | 25125 | .unused, |
| 25115 | 25126 | }, |
| 25116 | 25127 | .dst_temps = .{.mem}, |
| 25128 | .clobbers = .{ .eflags = true }, |
| 25117 | 25129 | .each = .{ .once = &.{ |
| 25118 | 25130 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 25119 | 25131 | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, |
| ... | ... | @@ -25139,6 +25151,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 25139 | 25151 | .unused, |
| 25140 | 25152 | }, |
| 25141 | 25153 | .dst_temps = .{.mem}, |
| 25154 | .clobbers = .{ .eflags = true }, |
| 25142 | 25155 | .each = .{ .once = &.{ |
| 25143 | 25156 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 25144 | 25157 | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"8", .tmp0, .add_unaligned_size), ._, ._ }, |
| ... | ... | @@ -25164,6 +25177,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 25164 | 25177 | .unused, |
| 25165 | 25178 | }, |
| 25166 | 25179 | .dst_temps = .{.mem}, |
| 25180 | .clobbers = .{ .eflags = true }, |
| 25167 | 25181 | .each = .{ .once = &.{ |
| 25168 | 25182 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 25169 | 25183 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| ... | ... | @@ -25235,6 +25249,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 25235 | 25249 | .unused, |
| 25236 | 25250 | }, |
| 25237 | 25251 | .dst_temps = .{.mem}, |
| 25252 | .clobbers = .{ .eflags = true }, |
| 25238 | 25253 | .each = .{ .once = &.{ |
| 25239 | 25254 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 25240 | 25255 | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| ... | ... | @@ -25260,6 +25275,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 25260 | 25275 | .unused, |
| 25261 | 25276 | }, |
| 25262 | 25277 | .dst_temps = .{.mem}, |
| 25278 | .clobbers = .{ .eflags = true }, |
| 25263 | 25279 | .each = .{ .once = &.{ |
| 25264 | 25280 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 25265 | 25281 | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, |
| ... | ... | @@ -25285,6 +25301,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 25285 | 25301 | .unused, |
| 25286 | 25302 | }, |
| 25287 | 25303 | .dst_temps = .{.mem}, |
| 25304 | .clobbers = .{ .eflags = true }, |
| 25288 | 25305 | .each = .{ .once = &.{ |
| 25289 | 25306 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 25290 | 25307 | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"8", .tmp0, .add_unaligned_size), ._, ._ }, |
| ... | ... | @@ -25310,6 +25327,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 25310 | 25327 | .unused, |
| 25311 | 25328 | }, |
| 25312 | 25329 | .dst_temps = .{.mem}, |
| 25330 | .clobbers = .{ .eflags = true }, |
| 25313 | 25331 | .each = .{ .once = &.{ |
| 25314 | 25332 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 25315 | 25333 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| ... | ... | @@ -25358,6 +25376,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 25358 | 25376 | .unused, |
| 25359 | 25377 | }, |
| 25360 | 25378 | .dst_temps = .{.mem}, |
| 25379 | .clobbers = .{ .eflags = true }, |
| 25361 | 25380 | .each = .{ .once = &.{ |
| 25362 | 25381 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 25363 | 25382 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| ... | ... | @@ -26157,7 +26176,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 26157 | 26176 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .byte } }, .any }, |
| 26158 | 26177 | .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .yword, .is = .word } }}, |
| 26159 | 26178 | .patterns = &.{ |
| 26160 | | .{ .src = .{ .mem, .none } }, |
| 26179 | .{ .src = .{ .to_mem, .none } }, |
| 26161 | 26180 | }, |
| 26162 | 26181 | .extra_temps = .{ |
| 26163 | 26182 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| ... | ... | @@ -26171,10 +26190,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 26171 | 26190 | .unused, |
| 26172 | 26191 | }, |
| 26173 | 26192 | .dst_temps = .{.mem}, |
| 26193 | .clobbers = .{ .eflags = true }, |
| 26174 | 26194 | .each = .{ .once = &.{ |
| 26175 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| 26176 | | .{ .@"0:", .vp_w, .movsxb, .tmp1y, .memia(.src0x, .tmp0, .add_size), ._, ._ }, |
| 26177 | | .{ ._, .v_dqa, .mov, .memsia(.dst0y, .@"2", .tmp0, .add_size), .tmp1y, ._, ._ }, |
| 26195 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 26196 | .{ .@"0:", .vp_w, .movsxb, .tmp1y, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, |
| 26197 | .{ ._, .v_dqa, .mov, .memsia(.dst0y, .@"2", .tmp0, .add_unaligned_size), .tmp1y, ._, ._ }, |
| 26178 | 26198 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 26179 | 26199 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 26180 | 26200 | } }, |
| ... | ... | @@ -26183,7 +26203,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 26183 | 26203 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .xword, .is = .byte } }, .any }, |
| 26184 | 26204 | .dst_constraints = .{.{ .multiple_scalar_int = .{ .of = .yword, .is = .word } }}, |
| 26185 | 26205 | .patterns = &.{ |
| 26186 | | .{ .src = .{ .mem, .none } }, |
| 26206 | .{ .src = .{ .to_mem, .none } }, |
| 26187 | 26207 | }, |
| 26188 | 26208 | .extra_temps = .{ |
| 26189 | 26209 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| ... | ... | @@ -26197,10 +26217,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 26197 | 26217 | .unused, |
| 26198 | 26218 | }, |
| 26199 | 26219 | .dst_temps = .{.mem}, |
| 26220 | .clobbers = .{ .eflags = true }, |
| 26200 | 26221 | .each = .{ .once = &.{ |
| 26201 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| 26202 | | .{ .@"0:", .vp_w, .movzxb, .tmp1y, .memia(.src0x, .tmp0, .add_size), ._, ._ }, |
| 26203 | | .{ ._, .v_dqa, .mov, .memsia(.dst0y, .@"2", .tmp0, .add_size), .tmp1y, ._, ._ }, |
| 26222 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 26223 | .{ .@"0:", .vp_w, .movzxb, .tmp1y, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, |
| 26224 | .{ ._, .v_dqa, .mov, .memsia(.dst0y, .@"2", .tmp0, .add_unaligned_size), .tmp1y, ._, ._ }, |
| 26204 | 26225 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 26205 | 26226 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 26206 | 26227 | } }, |
| ... | ... | @@ -26209,7 +26230,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 26209 | 26230 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .byte } }, .any }, |
| 26210 | 26231 | .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .word } }}, |
| 26211 | 26232 | .patterns = &.{ |
| 26212 | | .{ .src = .{ .mem, .none } }, |
| 26233 | .{ .src = .{ .to_mem, .none } }, |
| 26213 | 26234 | }, |
| 26214 | 26235 | .extra_temps = .{ |
| 26215 | 26236 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| ... | ... | @@ -26223,10 +26244,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 26223 | 26244 | .unused, |
| 26224 | 26245 | }, |
| 26225 | 26246 | .dst_temps = .{.mem}, |
| 26247 | .clobbers = .{ .eflags = true }, |
| 26226 | 26248 | .each = .{ .once = &.{ |
| 26227 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| 26228 | | .{ .@"0:", .vp_w, .movsxb, .tmp1x, .memia(.src0q, .tmp0, .add_size), ._, ._ }, |
| 26229 | | .{ ._, .v_dqa, .mov, .memsia(.dst0x, .@"2", .tmp0, .add_size), .tmp1x, ._, ._ }, |
| 26249 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 26250 | .{ .@"0:", .vp_w, .movsxb, .tmp1x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 26251 | .{ ._, .v_dqa, .mov, .memsia(.dst0x, .@"2", .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 26230 | 26252 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 26231 | 26253 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 26232 | 26254 | } }, |
| ... | ... | @@ -26235,7 +26257,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 26235 | 26257 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .qword, .is = .byte } }, .any }, |
| 26236 | 26258 | .dst_constraints = .{.{ .multiple_scalar_int = .{ .of = .xword, .is = .word } }}, |
| 26237 | 26259 | .patterns = &.{ |
| 26238 | | .{ .src = .{ .mem, .none } }, |
| 26260 | .{ .src = .{ .to_mem, .none } }, |
| 26239 | 26261 | }, |
| 26240 | 26262 | .extra_temps = .{ |
| 26241 | 26263 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| ... | ... | @@ -26249,10 +26271,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 26249 | 26271 | .unused, |
| 26250 | 26272 | }, |
| 26251 | 26273 | .dst_temps = .{.mem}, |
| 26274 | .clobbers = .{ .eflags = true }, |
| 26252 | 26275 | .each = .{ .once = &.{ |
| 26253 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| 26254 | | .{ .@"0:", .vp_w, .movzxb, .tmp1x, .memia(.src0q, .tmp0, .add_size), ._, ._ }, |
| 26255 | | .{ ._, .v_dqa, .mov, .memsia(.dst0x, .@"2", .tmp0, .add_size), .tmp1x, ._, ._ }, |
| 26276 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 26277 | .{ .@"0:", .vp_w, .movzxb, .tmp1x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 26278 | .{ ._, .v_dqa, .mov, .memsia(.dst0x, .@"2", .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 26256 | 26279 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 26257 | 26280 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 26258 | 26281 | } }, |
| ... | ... | @@ -26261,7 +26284,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 26261 | 26284 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .byte } }, .any }, |
| 26262 | 26285 | .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .word } }}, |
| 26263 | 26286 | .patterns = &.{ |
| 26264 | | .{ .src = .{ .mem, .none } }, |
| 26287 | .{ .src = .{ .to_mem, .none } }, |
| 26265 | 26288 | }, |
| 26266 | 26289 | .extra_temps = .{ |
| 26267 | 26290 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| ... | ... | @@ -26275,10 +26298,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 26275 | 26298 | .unused, |
| 26276 | 26299 | }, |
| 26277 | 26300 | .dst_temps = .{.mem}, |
| 26301 | .clobbers = .{ .eflags = true }, |
| 26278 | 26302 | .each = .{ .once = &.{ |
| 26279 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| 26280 | | .{ .@"0:", .p_w, .movsxb, .tmp1x, .memia(.src0q, .tmp0, .add_size), ._, ._ }, |
| 26281 | | .{ ._, ._dqa, .mov, .memsia(.dst0x, .@"2", .tmp0, .add_size), .tmp1x, ._, ._ }, |
| 26303 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 26304 | .{ .@"0:", .p_w, .movsxb, .tmp1x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 26305 | .{ ._, ._dqa, .mov, .memsia(.dst0x, .@"2", .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 26282 | 26306 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 26283 | 26307 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 26284 | 26308 | } }, |
| ... | ... | @@ -26287,7 +26311,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 26287 | 26311 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .qword, .is = .byte } }, .any }, |
| 26288 | 26312 | .dst_constraints = .{.{ .multiple_scalar_int = .{ .of = .xword, .is = .word } }}, |
| 26289 | 26313 | .patterns = &.{ |
| 26290 | | .{ .src = .{ .mem, .none } }, |
| 26314 | .{ .src = .{ .to_mem, .none } }, |
| 26291 | 26315 | }, |
| 26292 | 26316 | .extra_temps = .{ |
| 26293 | 26317 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| ... | ... | @@ -26301,10 +26325,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 26301 | 26325 | .unused, |
| 26302 | 26326 | }, |
| 26303 | 26327 | .dst_temps = .{.mem}, |
| 26328 | .clobbers = .{ .eflags = true }, |
| 26304 | 26329 | .each = .{ .once = &.{ |
| 26305 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| 26306 | | .{ .@"0:", .p_w, .movzxb, .tmp1x, .memia(.src0q, .tmp0, .add_size), ._, ._ }, |
| 26307 | | .{ ._, ._dqa, .mov, .memsia(.dst0x, .@"2", .tmp0, .add_size), .tmp1x, ._, ._ }, |
| 26330 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 26331 | .{ .@"0:", .p_w, .movzxb, .tmp1x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 26332 | .{ ._, ._dqa, .mov, .memsia(.dst0x, .@"2", .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 26308 | 26333 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 26309 | 26334 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 26310 | 26335 | } }, |
| ... | ... | @@ -26327,6 +26352,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 26327 | 26352 | .unused, |
| 26328 | 26353 | }, |
| 26329 | 26354 | .dst_temps = .{.mem}, |
| 26355 | .clobbers = .{ .eflags = true }, |
| 26330 | 26356 | .each = .{ .once = &.{ |
| 26331 | 26357 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 26332 | 26358 | .{ .@"0:", ._, .movsx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| ... | ... | @@ -26352,6 +26378,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 26352 | 26378 | .unused, |
| 26353 | 26379 | }, |
| 26354 | 26380 | .dst_temps = .{.mem}, |
| 26381 | .clobbers = .{ .eflags = true }, |
| 26355 | 26382 | .each = .{ .once = &.{ |
| 26356 | 26383 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 26357 | 26384 | .{ .@"0:", ._, .movsx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| ... | ... | @@ -26378,6 +26405,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 26378 | 26405 | .unused, |
| 26379 | 26406 | }, |
| 26380 | 26407 | .dst_temps = .{.mem}, |
| 26408 | .clobbers = .{ .eflags = true }, |
| 26381 | 26409 | .each = .{ .once = &.{ |
| 26382 | 26410 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 26383 | 26411 | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| ... | ... | @@ -26403,6 +26431,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 26403 | 26431 | .unused, |
| 26404 | 26432 | }, |
| 26405 | 26433 | .dst_temps = .{.mem}, |
| 26434 | .clobbers = .{ .eflags = true }, |
| 26406 | 26435 | .each = .{ .once = &.{ |
| 26407 | 26436 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 26408 | 26437 | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| ... | ... | @@ -26537,7 +26566,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 26537 | 26566 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .byte } }, .any }, |
| 26538 | 26567 | .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .yword, .is = .dword } }}, |
| 26539 | 26568 | .patterns = &.{ |
| 26540 | | .{ .src = .{ .mem, .none } }, |
| 26569 | .{ .src = .{ .to_mem, .none } }, |
| 26541 | 26570 | }, |
| 26542 | 26571 | .extra_temps = .{ |
| 26543 | 26572 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| ... | ... | @@ -26551,10 +26580,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 26551 | 26580 | .unused, |
| 26552 | 26581 | }, |
| 26553 | 26582 | .dst_temps = .{.mem}, |
| 26583 | .clobbers = .{ .eflags = true }, |
| 26554 | 26584 | .each = .{ .once = &.{ |
| 26555 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| 26556 | | .{ .@"0:", .vp_d, .movsxb, .tmp1y, .memia(.src0q, .tmp0, .add_size), ._, ._ }, |
| 26557 | | .{ ._, .v_dqa, .mov, .memsia(.dst0y, .@"4", .tmp0, .add_size), .tmp1y, ._, ._ }, |
| 26585 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 26586 | .{ .@"0:", .vp_d, .movsxb, .tmp1y, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 26587 | .{ ._, .v_dqa, .mov, .memsia(.dst0y, .@"4", .tmp0, .add_unaligned_size), .tmp1y, ._, ._ }, |
| 26558 | 26588 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 26559 | 26589 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 26560 | 26590 | } }, |
| ... | ... | @@ -26563,7 +26593,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 26563 | 26593 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .qword, .is = .byte } }, .any }, |
| 26564 | 26594 | .dst_constraints = .{.{ .multiple_scalar_int = .{ .of = .yword, .is = .dword } }}, |
| 26565 | 26595 | .patterns = &.{ |
| 26566 | | .{ .src = .{ .mem, .none } }, |
| 26596 | .{ .src = .{ .to_mem, .none } }, |
| 26567 | 26597 | }, |
| 26568 | 26598 | .extra_temps = .{ |
| 26569 | 26599 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| ... | ... | @@ -26577,10 +26607,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 26577 | 26607 | .unused, |
| 26578 | 26608 | }, |
| 26579 | 26609 | .dst_temps = .{.mem}, |
| 26610 | .clobbers = .{ .eflags = true }, |
| 26580 | 26611 | .each = .{ .once = &.{ |
| 26581 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| 26582 | | .{ .@"0:", .vp_d, .movzxb, .tmp1y, .memia(.src0x, .tmp0, .add_size), ._, ._ }, |
| 26583 | | .{ ._, .v_dqa, .mov, .memsia(.dst0y, .@"4", .tmp0, .add_size), .tmp1y, ._, ._ }, |
| 26612 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 26613 | .{ .@"0:", .vp_d, .movzxb, .tmp1y, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, |
| 26614 | .{ ._, .v_dqa, .mov, .memsia(.dst0y, .@"4", .tmp0, .add_unaligned_size), .tmp1y, ._, ._ }, |
| 26584 | 26615 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 26585 | 26616 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 26586 | 26617 | } }, |
| ... | ... | @@ -26589,7 +26620,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 26589 | 26620 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .byte } }, .any }, |
| 26590 | 26621 | .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .dword } }}, |
| 26591 | 26622 | .patterns = &.{ |
| 26592 | | .{ .src = .{ .mem, .none } }, |
| 26623 | .{ .src = .{ .to_mem, .none } }, |
| 26593 | 26624 | }, |
| 26594 | 26625 | .extra_temps = .{ |
| 26595 | 26626 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| ... | ... | @@ -26603,10 +26634,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 26603 | 26634 | .unused, |
| 26604 | 26635 | }, |
| 26605 | 26636 | .dst_temps = .{.mem}, |
| 26637 | .clobbers = .{ .eflags = true }, |
| 26606 | 26638 | .each = .{ .once = &.{ |
| 26607 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| 26608 | | .{ .@"0:", .vp_d, .movsxb, .tmp1x, .memia(.src0d, .tmp0, .add_size), ._, ._ }, |
| 26609 | | .{ ._, .v_dqa, .mov, .memsia(.dst0x, .@"4", .tmp0, .add_size), .tmp1x, ._, ._ }, |
| 26639 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 26640 | .{ .@"0:", .vp_d, .movsxb, .tmp1x, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, |
| 26641 | .{ ._, .v_dqa, .mov, .memsia(.dst0x, .@"4", .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 26610 | 26642 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 26611 | 26643 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 26612 | 26644 | } }, |
| ... | ... | @@ -26615,7 +26647,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 26615 | 26647 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .dword, .is = .byte } }, .any }, |
| 26616 | 26648 | .dst_constraints = .{.{ .multiple_scalar_int = .{ .of = .xword, .is = .dword } }}, |
| 26617 | 26649 | .patterns = &.{ |
| 26618 | | .{ .src = .{ .mem, .none } }, |
| 26650 | .{ .src = .{ .to_mem, .none } }, |
| 26619 | 26651 | }, |
| 26620 | 26652 | .extra_temps = .{ |
| 26621 | 26653 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| ... | ... | @@ -26629,10 +26661,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 26629 | 26661 | .unused, |
| 26630 | 26662 | }, |
| 26631 | 26663 | .dst_temps = .{.mem}, |
| 26664 | .clobbers = .{ .eflags = true }, |
| 26632 | 26665 | .each = .{ .once = &.{ |
| 26633 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| 26634 | | .{ .@"0:", .vp_d, .movzxb, .tmp1x, .memia(.src0d, .tmp0, .add_size), ._, ._ }, |
| 26635 | | .{ ._, .v_dqa, .mov, .memsia(.dst0x, .@"4", .tmp0, .add_size), .tmp1x, ._, ._ }, |
| 26666 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 26667 | .{ .@"0:", .vp_d, .movzxb, .tmp1x, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, |
| 26668 | .{ ._, .v_dqa, .mov, .memsia(.dst0x, .@"4", .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 26636 | 26669 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 26637 | 26670 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 26638 | 26671 | } }, |
| ... | ... | @@ -26641,7 +26674,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 26641 | 26674 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .byte } }, .any }, |
| 26642 | 26675 | .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .dword } }}, |
| 26643 | 26676 | .patterns = &.{ |
| 26644 | | .{ .src = .{ .mem, .none } }, |
| 26677 | .{ .src = .{ .to_mem, .none } }, |
| 26645 | 26678 | }, |
| 26646 | 26679 | .extra_temps = .{ |
| 26647 | 26680 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| ... | ... | @@ -26655,10 +26688,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 26655 | 26688 | .unused, |
| 26656 | 26689 | }, |
| 26657 | 26690 | .dst_temps = .{.mem}, |
| 26691 | .clobbers = .{ .eflags = true }, |
| 26658 | 26692 | .each = .{ .once = &.{ |
| 26659 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| 26660 | | .{ .@"0:", .p_d, .movsxb, .tmp1x, .memia(.src0d, .tmp0, .add_size), ._, ._ }, |
| 26661 | | .{ ._, ._dqa, .mov, .memsia(.dst0x, .@"4", .tmp0, .add_size), .tmp1x, ._, ._ }, |
| 26693 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 26694 | .{ .@"0:", .p_d, .movsxb, .tmp1x, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, |
| 26695 | .{ ._, ._dqa, .mov, .memsia(.dst0x, .@"4", .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 26662 | 26696 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 26663 | 26697 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 26664 | 26698 | } }, |
| ... | ... | @@ -26667,7 +26701,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 26667 | 26701 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .dword, .is = .byte } }, .any }, |
| 26668 | 26702 | .dst_constraints = .{.{ .multiple_scalar_int = .{ .of = .xword, .is = .dword } }}, |
| 26669 | 26703 | .patterns = &.{ |
| 26670 | | .{ .src = .{ .mem, .none } }, |
| 26704 | .{ .src = .{ .to_mem, .none } }, |
| 26671 | 26705 | }, |
| 26672 | 26706 | .extra_temps = .{ |
| 26673 | 26707 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| ... | ... | @@ -26681,10 +26715,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 26681 | 26715 | .unused, |
| 26682 | 26716 | }, |
| 26683 | 26717 | .dst_temps = .{.mem}, |
| 26718 | .clobbers = .{ .eflags = true }, |
| 26684 | 26719 | .each = .{ .once = &.{ |
| 26685 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| 26686 | | .{ .@"0:", .p_d, .movzxb, .tmp1x, .memia(.src0d, .tmp0, .add_size), ._, ._ }, |
| 26687 | | .{ ._, ._dqa, .mov, .memsia(.dst0x, .@"4", .tmp0, .add_size), .tmp1x, ._, ._ }, |
| 26720 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 26721 | .{ .@"0:", .p_d, .movzxb, .tmp1x, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, |
| 26722 | .{ ._, ._dqa, .mov, .memsia(.dst0x, .@"4", .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 26688 | 26723 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 26689 | 26724 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 26690 | 26725 | } }, |
| ... | ... | @@ -26707,6 +26742,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 26707 | 26742 | .unused, |
| 26708 | 26743 | }, |
| 26709 | 26744 | .dst_temps = .{.mem}, |
| 26745 | .clobbers = .{ .eflags = true }, |
| 26710 | 26746 | .each = .{ .once = &.{ |
| 26711 | 26747 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 26712 | 26748 | .{ .@"0:", ._, .movsx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| ... | ... | @@ -26732,6 +26768,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 26732 | 26768 | .unused, |
| 26733 | 26769 | }, |
| 26734 | 26770 | .dst_temps = .{.mem}, |
| 26771 | .clobbers = .{ .eflags = true }, |
| 26735 | 26772 | .each = .{ .once = &.{ |
| 26736 | 26773 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 26737 | 26774 | .{ .@"0:", ._, .movsx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| ... | ... | @@ -26758,6 +26795,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 26758 | 26795 | .unused, |
| 26759 | 26796 | }, |
| 26760 | 26797 | .dst_temps = .{.mem}, |
| 26798 | .clobbers = .{ .eflags = true }, |
| 26761 | 26799 | .each = .{ .once = &.{ |
| 26762 | 26800 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 26763 | 26801 | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| ... | ... | @@ -26783,6 +26821,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 26783 | 26821 | .unused, |
| 26784 | 26822 | }, |
| 26785 | 26823 | .dst_temps = .{.mem}, |
| 26824 | .clobbers = .{ .eflags = true }, |
| 26786 | 26825 | .each = .{ .once = &.{ |
| 26787 | 26826 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 26788 | 26827 | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| ... | ... | @@ -26920,7 +26959,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 26920 | 26959 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .byte } }, .any }, |
| 26921 | 26960 | .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .yword, .is = .qword } }}, |
| 26922 | 26961 | .patterns = &.{ |
| 26923 | | .{ .src = .{ .mem, .none } }, |
| 26962 | .{ .src = .{ .to_mem, .none } }, |
| 26924 | 26963 | }, |
| 26925 | 26964 | .extra_temps = .{ |
| 26926 | 26965 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| ... | ... | @@ -26934,10 +26973,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 26934 | 26973 | .unused, |
| 26935 | 26974 | }, |
| 26936 | 26975 | .dst_temps = .{.mem}, |
| 26976 | .clobbers = .{ .eflags = true }, |
| 26937 | 26977 | .each = .{ .once = &.{ |
| 26938 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| 26939 | | .{ .@"0:", .vp_q, .movsxb, .tmp1y, .memia(.src0d, .tmp0, .add_size), ._, ._ }, |
| 26940 | | .{ ._, .v_dqa, .mov, .memsia(.dst0y, .@"8", .tmp0, .add_size), .tmp1y, ._, ._ }, |
| 26978 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 26979 | .{ .@"0:", .vp_q, .movsxb, .tmp1y, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, |
| 26980 | .{ ._, .v_dqa, .mov, .memsia(.dst0y, .@"8", .tmp0, .add_unaligned_size), .tmp1y, ._, ._ }, |
| 26941 | 26981 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 26942 | 26982 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 26943 | 26983 | } }, |
| ... | ... | @@ -26946,7 +26986,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 26946 | 26986 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .dword, .is = .byte } }, .any }, |
| 26947 | 26987 | .dst_constraints = .{.{ .multiple_scalar_int = .{ .of = .yword, .is = .qword } }}, |
| 26948 | 26988 | .patterns = &.{ |
| 26949 | | .{ .src = .{ .mem, .none } }, |
| 26989 | .{ .src = .{ .to_mem, .none } }, |
| 26950 | 26990 | }, |
| 26951 | 26991 | .extra_temps = .{ |
| 26952 | 26992 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| ... | ... | @@ -26960,10 +27000,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 26960 | 27000 | .unused, |
| 26961 | 27001 | }, |
| 26962 | 27002 | .dst_temps = .{.mem}, |
| 27003 | .clobbers = .{ .eflags = true }, |
| 26963 | 27004 | .each = .{ .once = &.{ |
| 26964 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| 26965 | | .{ .@"0:", .vp_q, .movzxb, .tmp1y, .memia(.src0d, .tmp0, .add_size), ._, ._ }, |
| 26966 | | .{ ._, .v_dqa, .mov, .memsia(.dst0y, .@"8", .tmp0, .add_size), .tmp1y, ._, ._ }, |
| 27005 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 27006 | .{ .@"0:", .vp_q, .movzxb, .tmp1y, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, |
| 27007 | .{ ._, .v_dqa, .mov, .memsia(.dst0y, .@"8", .tmp0, .add_unaligned_size), .tmp1y, ._, ._ }, |
| 26967 | 27008 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 26968 | 27009 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 26969 | 27010 | } }, |
| ... | ... | @@ -26972,7 +27013,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 26972 | 27013 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .word, .is = .byte } }, .any }, |
| 26973 | 27014 | .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .qword } }}, |
| 26974 | 27015 | .patterns = &.{ |
| 26975 | | .{ .src = .{ .mem, .none } }, |
| 27016 | .{ .src = .{ .to_mem, .none } }, |
| 26976 | 27017 | }, |
| 26977 | 27018 | .extra_temps = .{ |
| 26978 | 27019 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| ... | ... | @@ -26986,10 +27027,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 26986 | 27027 | .unused, |
| 26987 | 27028 | }, |
| 26988 | 27029 | .dst_temps = .{.mem}, |
| 27030 | .clobbers = .{ .eflags = true }, |
| 26989 | 27031 | .each = .{ .once = &.{ |
| 26990 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| 26991 | | .{ .@"0:", .vp_q, .movsxb, .tmp1x, .memia(.src0w, .tmp0, .add_size), ._, ._ }, |
| 26992 | | .{ ._, .v_dqa, .mov, .memsia(.dst0x, .@"8", .tmp0, .add_size), .tmp1x, ._, ._ }, |
| 27032 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 27033 | .{ .@"0:", .vp_q, .movsxb, .tmp1x, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, |
| 27034 | .{ ._, .v_dqa, .mov, .memsia(.dst0x, .@"8", .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 26993 | 27035 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 26994 | 27036 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 26995 | 27037 | } }, |
| ... | ... | @@ -26998,7 +27040,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 26998 | 27040 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .word, .is = .byte } }, .any }, |
| 26999 | 27041 | .dst_constraints = .{.{ .multiple_scalar_int = .{ .of = .xword, .is = .qword } }}, |
| 27000 | 27042 | .patterns = &.{ |
| 27001 | | .{ .src = .{ .mem, .none } }, |
| 27043 | .{ .src = .{ .to_mem, .none } }, |
| 27002 | 27044 | }, |
| 27003 | 27045 | .extra_temps = .{ |
| 27004 | 27046 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| ... | ... | @@ -27012,10 +27054,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 27012 | 27054 | .unused, |
| 27013 | 27055 | }, |
| 27014 | 27056 | .dst_temps = .{.mem}, |
| 27057 | .clobbers = .{ .eflags = true }, |
| 27015 | 27058 | .each = .{ .once = &.{ |
| 27016 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| 27017 | | .{ .@"0:", .vp_q, .movzxb, .tmp1x, .memia(.src0w, .tmp0, .add_size), ._, ._ }, |
| 27018 | | .{ ._, .v_dqa, .mov, .memsia(.dst0x, .@"8", .tmp0, .add_size), .tmp1x, ._, ._ }, |
| 27059 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 27060 | .{ .@"0:", .vp_q, .movzxb, .tmp1x, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, |
| 27061 | .{ ._, .v_dqa, .mov, .memsia(.dst0x, .@"8", .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 27019 | 27062 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 27020 | 27063 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 27021 | 27064 | } }, |
| ... | ... | @@ -27024,7 +27067,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 27024 | 27067 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .word, .is = .byte } }, .any }, |
| 27025 | 27068 | .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .qword } }}, |
| 27026 | 27069 | .patterns = &.{ |
| 27027 | | .{ .src = .{ .mem, .none } }, |
| 27070 | .{ .src = .{ .to_mem, .none } }, |
| 27028 | 27071 | }, |
| 27029 | 27072 | .extra_temps = .{ |
| 27030 | 27073 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| ... | ... | @@ -27038,10 +27081,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 27038 | 27081 | .unused, |
| 27039 | 27082 | }, |
| 27040 | 27083 | .dst_temps = .{.mem}, |
| 27084 | .clobbers = .{ .eflags = true }, |
| 27041 | 27085 | .each = .{ .once = &.{ |
| 27042 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| 27043 | | .{ .@"0:", .p_q, .movsxb, .tmp1x, .memia(.src0w, .tmp0, .add_size), ._, ._ }, |
| 27044 | | .{ ._, ._dqa, .mov, .memsia(.dst0x, .@"8", .tmp0, .add_size), .tmp1x, ._, ._ }, |
| 27086 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 27087 | .{ .@"0:", .p_q, .movsxb, .tmp1x, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, |
| 27088 | .{ ._, ._dqa, .mov, .memsia(.dst0x, .@"8", .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 27045 | 27089 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 27046 | 27090 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 27047 | 27091 | } }, |
| ... | ... | @@ -27050,7 +27094,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 27050 | 27094 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .word, .is = .byte } }, .any }, |
| 27051 | 27095 | .dst_constraints = .{.{ .multiple_scalar_int = .{ .of = .xword, .is = .qword } }}, |
| 27052 | 27096 | .patterns = &.{ |
| 27053 | | .{ .src = .{ .mem, .none } }, |
| 27097 | .{ .src = .{ .to_mem, .none } }, |
| 27054 | 27098 | }, |
| 27055 | 27099 | .extra_temps = .{ |
| 27056 | 27100 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| ... | ... | @@ -27064,10 +27108,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 27064 | 27108 | .unused, |
| 27065 | 27109 | }, |
| 27066 | 27110 | .dst_temps = .{.mem}, |
| 27111 | .clobbers = .{ .eflags = true }, |
| 27067 | 27112 | .each = .{ .once = &.{ |
| 27068 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| 27069 | | .{ .@"0:", .p_q, .movzxb, .tmp1x, .memia(.src0w, .tmp0, .add_size), ._, ._ }, |
| 27070 | | .{ ._, ._dqa, .mov, .memsia(.dst0x, .@"8", .tmp0, .add_size), .tmp1x, ._, ._ }, |
| 27113 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 27114 | .{ .@"0:", .p_q, .movzxb, .tmp1x, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, |
| 27115 | .{ ._, ._dqa, .mov, .memsia(.dst0x, .@"8", .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 27071 | 27116 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 27072 | 27117 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 27073 | 27118 | } }, |
| ... | ... | @@ -27090,6 +27135,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 27090 | 27135 | .unused, |
| 27091 | 27136 | }, |
| 27092 | 27137 | .dst_temps = .{.mem}, |
| 27138 | .clobbers = .{ .eflags = true }, |
| 27093 | 27139 | .each = .{ .once = &.{ |
| 27094 | 27140 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 27095 | 27141 | .{ .@"0:", ._, .movsx, .tmp1q, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| ... | ... | @@ -27116,6 +27162,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 27116 | 27162 | .unused, |
| 27117 | 27163 | }, |
| 27118 | 27164 | .dst_temps = .{.mem}, |
| 27165 | .clobbers = .{ .eflags = true }, |
| 27119 | 27166 | .each = .{ .once = &.{ |
| 27120 | 27167 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 27121 | 27168 | .{ .@"0:", ._, .movsx, .tmp1q, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| ... | ... | @@ -27142,6 +27189,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 27142 | 27189 | .unused, |
| 27143 | 27190 | }, |
| 27144 | 27191 | .dst_temps = .{.mem}, |
| 27192 | .clobbers = .{ .eflags = true }, |
| 27145 | 27193 | .each = .{ .once = &.{ |
| 27146 | 27194 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 27147 | 27195 | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| ... | ... | @@ -27167,6 +27215,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 27167 | 27215 | .unused, |
| 27168 | 27216 | }, |
| 27169 | 27217 | .dst_temps = .{.mem}, |
| 27218 | .clobbers = .{ .eflags = true }, |
| 27170 | 27219 | .each = .{ .once = &.{ |
| 27171 | 27220 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 27172 | 27221 | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| ... | ... | @@ -27301,6 +27350,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 27301 | 27350 | .unused, |
| 27302 | 27351 | }, |
| 27303 | 27352 | .dst_temps = .{.mem}, |
| 27353 | .clobbers = .{ .eflags = true }, |
| 27304 | 27354 | .each = .{ .once = &.{ |
| 27305 | 27355 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 27306 | 27356 | .{ ._, ._, .lea, .tmp1q, .mem(.dst0), ._, ._ }, |
| ... | ... | @@ -27331,6 +27381,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 27331 | 27381 | .unused, |
| 27332 | 27382 | }, |
| 27333 | 27383 | .dst_temps = .{.mem}, |
| 27384 | .clobbers = .{ .eflags = true }, |
| 27334 | 27385 | .each = .{ .once = &.{ |
| 27335 | 27386 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 27336 | 27387 | .{ ._, ._, .lea, .tmp1q, .mem(.dst0), ._, ._ }, |
| ... | ... | @@ -27361,6 +27412,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 27361 | 27412 | .unused, |
| 27362 | 27413 | }, |
| 27363 | 27414 | .dst_temps = .{.mem}, |
| 27415 | .clobbers = .{ .eflags = true }, |
| 27364 | 27416 | .each = .{ .once = &.{ |
| 27365 | 27417 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 27366 | 27418 | .{ ._, ._, .lea, .tmp1q, .mem(.dst0), ._, ._ }, |
| ... | ... | @@ -27391,6 +27443,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 27391 | 27443 | .unused, |
| 27392 | 27444 | }, |
| 27393 | 27445 | .dst_temps = .{.mem}, |
| 27446 | .clobbers = .{ .eflags = true }, |
| 27394 | 27447 | .each = .{ .once = &.{ |
| 27395 | 27448 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 27396 | 27449 | .{ ._, ._, .lea, .tmp1q, .mem(.dst0), ._, ._ }, |
| ... | ... | @@ -27526,7 +27579,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 27526 | 27579 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .word } }, .any }, |
| 27527 | 27580 | .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .yword, .is = .dword } }}, |
| 27528 | 27581 | .patterns = &.{ |
| 27529 | | .{ .src = .{ .mem, .none } }, |
| 27582 | .{ .src = .{ .to_mem, .none } }, |
| 27530 | 27583 | }, |
| 27531 | 27584 | .extra_temps = .{ |
| 27532 | 27585 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| ... | ... | @@ -27540,10 +27593,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 27540 | 27593 | .unused, |
| 27541 | 27594 | }, |
| 27542 | 27595 | .dst_temps = .{.mem}, |
| 27596 | .clobbers = .{ .eflags = true }, |
| 27543 | 27597 | .each = .{ .once = &.{ |
| 27544 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| 27545 | | .{ .@"0:", .vp_d, .movsxw, .tmp1y, .memia(.src0x, .tmp0, .add_size), ._, ._ }, |
| 27546 | | .{ ._, .v_dqa, .mov, .memsia(.dst0y, .@"2", .tmp0, .add_size), .tmp1y, ._, ._ }, |
| 27598 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 27599 | .{ .@"0:", .vp_d, .movsxw, .tmp1y, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, |
| 27600 | .{ ._, .v_dqa, .mov, .memsia(.dst0y, .@"2", .tmp0, .add_unaligned_size), .tmp1y, ._, ._ }, |
| 27547 | 27601 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 27548 | 27602 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 27549 | 27603 | } }, |
| ... | ... | @@ -27552,7 +27606,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 27552 | 27606 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .xword, .is = .word } }, .any }, |
| 27553 | 27607 | .dst_constraints = .{.{ .multiple_scalar_int = .{ .of = .yword, .is = .dword } }}, |
| 27554 | 27608 | .patterns = &.{ |
| 27555 | | .{ .src = .{ .mem, .none } }, |
| 27609 | .{ .src = .{ .to_mem, .none } }, |
| 27556 | 27610 | }, |
| 27557 | 27611 | .extra_temps = .{ |
| 27558 | 27612 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| ... | ... | @@ -27566,10 +27620,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 27566 | 27620 | .unused, |
| 27567 | 27621 | }, |
| 27568 | 27622 | .dst_temps = .{.mem}, |
| 27623 | .clobbers = .{ .eflags = true }, |
| 27569 | 27624 | .each = .{ .once = &.{ |
| 27570 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| 27571 | | .{ .@"0:", .vp_d, .movzxw, .tmp1y, .memia(.src0x, .tmp0, .add_size), ._, ._ }, |
| 27572 | | .{ ._, .v_dqa, .mov, .memsia(.dst0y, .@"2", .tmp0, .add_size), .tmp1y, ._, ._ }, |
| 27625 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 27626 | .{ .@"0:", .vp_d, .movzxw, .tmp1y, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, |
| 27627 | .{ ._, .v_dqa, .mov, .memsia(.dst0y, .@"2", .tmp0, .add_unaligned_size), .tmp1y, ._, ._ }, |
| 27573 | 27628 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 27574 | 27629 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 27575 | 27630 | } }, |
| ... | ... | @@ -27578,7 +27633,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 27578 | 27633 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .word } }, .any }, |
| 27579 | 27634 | .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .dword } }}, |
| 27580 | 27635 | .patterns = &.{ |
| 27581 | | .{ .src = .{ .mem, .none } }, |
| 27636 | .{ .src = .{ .to_mem, .none } }, |
| 27582 | 27637 | }, |
| 27583 | 27638 | .extra_temps = .{ |
| 27584 | 27639 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| ... | ... | @@ -27592,10 +27647,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 27592 | 27647 | .unused, |
| 27593 | 27648 | }, |
| 27594 | 27649 | .dst_temps = .{.mem}, |
| 27650 | .clobbers = .{ .eflags = true }, |
| 27595 | 27651 | .each = .{ .once = &.{ |
| 27596 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| 27597 | | .{ .@"0:", .vp_d, .movsxw, .tmp1x, .memia(.src0q, .tmp0, .add_size), ._, ._ }, |
| 27598 | | .{ ._, .v_dqa, .mov, .memsia(.dst0x, .@"2", .tmp0, .add_size), .tmp1x, ._, ._ }, |
| 27652 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 27653 | .{ .@"0:", .vp_d, .movsxw, .tmp1x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 27654 | .{ ._, .v_dqa, .mov, .memsia(.dst0x, .@"2", .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 27599 | 27655 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 27600 | 27656 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 27601 | 27657 | } }, |
| ... | ... | @@ -27604,7 +27660,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 27604 | 27660 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .qword, .is = .word } }, .any }, |
| 27605 | 27661 | .dst_constraints = .{.{ .multiple_scalar_int = .{ .of = .xword, .is = .dword } }}, |
| 27606 | 27662 | .patterns = &.{ |
| 27607 | | .{ .src = .{ .mem, .none } }, |
| 27663 | .{ .src = .{ .to_mem, .none } }, |
| 27608 | 27664 | }, |
| 27609 | 27665 | .extra_temps = .{ |
| 27610 | 27666 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| ... | ... | @@ -27618,10 +27674,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 27618 | 27674 | .unused, |
| 27619 | 27675 | }, |
| 27620 | 27676 | .dst_temps = .{.mem}, |
| 27677 | .clobbers = .{ .eflags = true }, |
| 27621 | 27678 | .each = .{ .once = &.{ |
| 27622 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| 27623 | | .{ .@"0:", .vp_d, .movzxw, .tmp1x, .memia(.src0q, .tmp0, .add_size), ._, ._ }, |
| 27624 | | .{ ._, .v_dqa, .mov, .memsia(.dst0x, .@"2", .tmp0, .add_size), .tmp1x, ._, ._ }, |
| 27679 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 27680 | .{ .@"0:", .vp_d, .movzxw, .tmp1x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 27681 | .{ ._, .v_dqa, .mov, .memsia(.dst0x, .@"2", .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 27625 | 27682 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 27626 | 27683 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 27627 | 27684 | } }, |
| ... | ... | @@ -27630,7 +27687,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 27630 | 27687 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .word } }, .any }, |
| 27631 | 27688 | .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .dword } }}, |
| 27632 | 27689 | .patterns = &.{ |
| 27633 | | .{ .src = .{ .mem, .none } }, |
| 27690 | .{ .src = .{ .to_mem, .none } }, |
| 27634 | 27691 | }, |
| 27635 | 27692 | .extra_temps = .{ |
| 27636 | 27693 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| ... | ... | @@ -27644,10 +27701,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 27644 | 27701 | .unused, |
| 27645 | 27702 | }, |
| 27646 | 27703 | .dst_temps = .{.mem}, |
| 27704 | .clobbers = .{ .eflags = true }, |
| 27647 | 27705 | .each = .{ .once = &.{ |
| 27648 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| 27649 | | .{ .@"0:", .p_d, .movsxw, .tmp1x, .memia(.src0q, .tmp0, .add_size), ._, ._ }, |
| 27650 | | .{ ._, ._dqa, .mov, .memsia(.dst0x, .@"2", .tmp0, .add_size), .tmp1x, ._, ._ }, |
| 27706 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 27707 | .{ .@"0:", .p_d, .movsxw, .tmp1x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 27708 | .{ ._, ._dqa, .mov, .memsia(.dst0x, .@"2", .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 27651 | 27709 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 27652 | 27710 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 27653 | 27711 | } }, |
| ... | ... | @@ -27656,7 +27714,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 27656 | 27714 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .qword, .is = .word } }, .any }, |
| 27657 | 27715 | .dst_constraints = .{.{ .multiple_scalar_int = .{ .of = .xword, .is = .dword } }}, |
| 27658 | 27716 | .patterns = &.{ |
| 27659 | | .{ .src = .{ .mem, .none } }, |
| 27717 | .{ .src = .{ .to_mem, .none } }, |
| 27660 | 27718 | }, |
| 27661 | 27719 | .extra_temps = .{ |
| 27662 | 27720 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| ... | ... | @@ -27670,10 +27728,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 27670 | 27728 | .unused, |
| 27671 | 27729 | }, |
| 27672 | 27730 | .dst_temps = .{.mem}, |
| 27731 | .clobbers = .{ .eflags = true }, |
| 27673 | 27732 | .each = .{ .once = &.{ |
| 27674 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| 27675 | | .{ .@"0:", .p_d, .movzxw, .tmp1x, .memia(.src0q, .tmp0, .add_size), ._, ._ }, |
| 27676 | | .{ ._, ._dqa, .mov, .memsia(.dst0x, .@"2", .tmp0, .add_size), .tmp1x, ._, ._ }, |
| 27733 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 27734 | .{ .@"0:", .p_d, .movzxw, .tmp1x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 27735 | .{ ._, ._dqa, .mov, .memsia(.dst0x, .@"2", .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 27677 | 27736 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 27678 | 27737 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 27679 | 27738 | } }, |
| ... | ... | @@ -27695,6 +27754,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 27695 | 27754 | .unused, |
| 27696 | 27755 | }, |
| 27697 | 27756 | .dst_temps = .{.mem}, |
| 27757 | .clobbers = .{ .eflags = true }, |
| 27698 | 27758 | .each = .{ .once = &.{ |
| 27699 | 27759 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 27700 | 27760 | .{ .@"0:", ._, .movsx, .tmp1d, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, |
| ... | ... | @@ -27720,6 +27780,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 27720 | 27780 | .unused, |
| 27721 | 27781 | }, |
| 27722 | 27782 | .dst_temps = .{.mem}, |
| 27783 | .clobbers = .{ .eflags = true }, |
| 27723 | 27784 | .each = .{ .once = &.{ |
| 27724 | 27785 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 27725 | 27786 | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, |
| ... | ... | @@ -27854,7 +27915,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 27854 | 27915 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .word } }, .any }, |
| 27855 | 27916 | .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .yword, .is = .qword } }}, |
| 27856 | 27917 | .patterns = &.{ |
| 27857 | | .{ .src = .{ .mem, .none } }, |
| 27918 | .{ .src = .{ .to_mem, .none } }, |
| 27858 | 27919 | }, |
| 27859 | 27920 | .extra_temps = .{ |
| 27860 | 27921 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| ... | ... | @@ -27868,10 +27929,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 27868 | 27929 | .unused, |
| 27869 | 27930 | }, |
| 27870 | 27931 | .dst_temps = .{.mem}, |
| 27932 | .clobbers = .{ .eflags = true }, |
| 27871 | 27933 | .each = .{ .once = &.{ |
| 27872 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| 27873 | | .{ .@"0:", .vp_q, .movsxw, .tmp1y, .memia(.src0q, .tmp0, .add_size), ._, ._ }, |
| 27874 | | .{ ._, .v_dqa, .mov, .memsia(.dst0y, .@"4", .tmp0, .add_size), .tmp1y, ._, ._ }, |
| 27934 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 27935 | .{ .@"0:", .vp_q, .movsxw, .tmp1y, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 27936 | .{ ._, .v_dqa, .mov, .memsia(.dst0y, .@"4", .tmp0, .add_unaligned_size), .tmp1y, ._, ._ }, |
| 27875 | 27937 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 27876 | 27938 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 27877 | 27939 | } }, |
| ... | ... | @@ -27880,7 +27942,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 27880 | 27942 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .qword, .is = .word } }, .any }, |
| 27881 | 27943 | .dst_constraints = .{.{ .multiple_scalar_int = .{ .of = .yword, .is = .qword } }}, |
| 27882 | 27944 | .patterns = &.{ |
| 27883 | | .{ .src = .{ .mem, .none } }, |
| 27945 | .{ .src = .{ .to_mem, .none } }, |
| 27884 | 27946 | }, |
| 27885 | 27947 | .extra_temps = .{ |
| 27886 | 27948 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| ... | ... | @@ -27894,10 +27956,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 27894 | 27956 | .unused, |
| 27895 | 27957 | }, |
| 27896 | 27958 | .dst_temps = .{.mem}, |
| 27959 | .clobbers = .{ .eflags = true }, |
| 27897 | 27960 | .each = .{ .once = &.{ |
| 27898 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| 27899 | | .{ .@"0:", .vp_q, .movzxw, .tmp1y, .memia(.src0q, .tmp0, .add_size), ._, ._ }, |
| 27900 | | .{ ._, .v_dqa, .mov, .memsia(.dst0y, .@"4", .tmp0, .add_size), .tmp1y, ._, ._ }, |
| 27961 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 27962 | .{ .@"0:", .vp_q, .movzxw, .tmp1y, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 27963 | .{ ._, .v_dqa, .mov, .memsia(.dst0y, .@"4", .tmp0, .add_unaligned_size), .tmp1y, ._, ._ }, |
| 27901 | 27964 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 27902 | 27965 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 27903 | 27966 | } }, |
| ... | ... | @@ -27906,7 +27969,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 27906 | 27969 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .word } }, .any }, |
| 27907 | 27970 | .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .qword } }}, |
| 27908 | 27971 | .patterns = &.{ |
| 27909 | | .{ .src = .{ .mem, .none } }, |
| 27972 | .{ .src = .{ .to_mem, .none } }, |
| 27910 | 27973 | }, |
| 27911 | 27974 | .extra_temps = .{ |
| 27912 | 27975 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| ... | ... | @@ -27920,10 +27983,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 27920 | 27983 | .unused, |
| 27921 | 27984 | }, |
| 27922 | 27985 | .dst_temps = .{.mem}, |
| 27986 | .clobbers = .{ .eflags = true }, |
| 27923 | 27987 | .each = .{ .once = &.{ |
| 27924 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| 27925 | | .{ .@"0:", .vp_q, .movsxw, .tmp1x, .memia(.src0d, .tmp0, .add_size), ._, ._ }, |
| 27926 | | .{ ._, .v_dqa, .mov, .memsia(.dst0x, .@"4", .tmp0, .add_size), .tmp1x, ._, ._ }, |
| 27988 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 27989 | .{ .@"0:", .vp_q, .movsxw, .tmp1x, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, |
| 27990 | .{ ._, .v_dqa, .mov, .memsia(.dst0x, .@"4", .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 27927 | 27991 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 27928 | 27992 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 27929 | 27993 | } }, |
| ... | ... | @@ -27932,7 +27996,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 27932 | 27996 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .dword, .is = .word } }, .any }, |
| 27933 | 27997 | .dst_constraints = .{.{ .multiple_scalar_int = .{ .of = .xword, .is = .qword } }}, |
| 27934 | 27998 | .patterns = &.{ |
| 27935 | | .{ .src = .{ .mem, .none } }, |
| 27999 | .{ .src = .{ .to_mem, .none } }, |
| 27936 | 28000 | }, |
| 27937 | 28001 | .extra_temps = .{ |
| 27938 | 28002 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| ... | ... | @@ -27946,10 +28010,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 27946 | 28010 | .unused, |
| 27947 | 28011 | }, |
| 27948 | 28012 | .dst_temps = .{.mem}, |
| 28013 | .clobbers = .{ .eflags = true }, |
| 27949 | 28014 | .each = .{ .once = &.{ |
| 27950 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| 27951 | | .{ .@"0:", .vp_q, .movzxw, .tmp1x, .memia(.src0d, .tmp0, .add_size), ._, ._ }, |
| 27952 | | .{ ._, .v_dqa, .mov, .memsia(.dst0x, .@"4", .tmp0, .add_size), .tmp1x, ._, ._ }, |
| 28015 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 28016 | .{ .@"0:", .vp_q, .movzxw, .tmp1x, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, |
| 28017 | .{ ._, .v_dqa, .mov, .memsia(.dst0x, .@"4", .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 27953 | 28018 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 27954 | 28019 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 27955 | 28020 | } }, |
| ... | ... | @@ -27958,7 +28023,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 27958 | 28023 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .word } }, .any }, |
| 27959 | 28024 | .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .qword } }}, |
| 27960 | 28025 | .patterns = &.{ |
| 27961 | | .{ .src = .{ .mem, .none } }, |
| 28026 | .{ .src = .{ .to_mem, .none } }, |
| 27962 | 28027 | }, |
| 27963 | 28028 | .extra_temps = .{ |
| 27964 | 28029 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| ... | ... | @@ -27972,10 +28037,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 27972 | 28037 | .unused, |
| 27973 | 28038 | }, |
| 27974 | 28039 | .dst_temps = .{.mem}, |
| 28040 | .clobbers = .{ .eflags = true }, |
| 27975 | 28041 | .each = .{ .once = &.{ |
| 27976 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| 27977 | | .{ .@"0:", .p_q, .movsxw, .tmp1x, .memia(.src0d, .tmp0, .add_size), ._, ._ }, |
| 27978 | | .{ ._, ._dqa, .mov, .memsia(.dst0x, .@"4", .tmp0, .add_size), .tmp1x, ._, ._ }, |
| 28042 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 28043 | .{ .@"0:", .p_q, .movsxw, .tmp1x, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, |
| 28044 | .{ ._, ._dqa, .mov, .memsia(.dst0x, .@"4", .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 27979 | 28045 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 27980 | 28046 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 27981 | 28047 | } }, |
| ... | ... | @@ -27984,7 +28050,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 27984 | 28050 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .dword, .is = .word } }, .any }, |
| 27985 | 28051 | .dst_constraints = .{.{ .multiple_scalar_int = .{ .of = .xword, .is = .qword } }}, |
| 27986 | 28052 | .patterns = &.{ |
| 27987 | | .{ .src = .{ .mem, .none } }, |
| 28053 | .{ .src = .{ .to_mem, .none } }, |
| 27988 | 28054 | }, |
| 27989 | 28055 | .extra_temps = .{ |
| 27990 | 28056 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| ... | ... | @@ -27998,10 +28064,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 27998 | 28064 | .unused, |
| 27999 | 28065 | }, |
| 28000 | 28066 | .dst_temps = .{.mem}, |
| 28067 | .clobbers = .{ .eflags = true }, |
| 28001 | 28068 | .each = .{ .once = &.{ |
| 28002 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| 28003 | | .{ .@"0:", .p_q, .movzxw, .tmp1x, .memia(.src0d, .tmp0, .add_size), ._, ._ }, |
| 28004 | | .{ ._, ._dqa, .mov, .memsia(.dst0x, .@"4", .tmp0, .add_size), .tmp1x, ._, ._ }, |
| 28069 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 28070 | .{ .@"0:", .p_q, .movzxw, .tmp1x, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, |
| 28071 | .{ ._, ._dqa, .mov, .memsia(.dst0x, .@"4", .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 28005 | 28072 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 28006 | 28073 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 28007 | 28074 | } }, |
| ... | ... | @@ -28024,6 +28091,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 28024 | 28091 | .unused, |
| 28025 | 28092 | }, |
| 28026 | 28093 | .dst_temps = .{.mem}, |
| 28094 | .clobbers = .{ .eflags = true }, |
| 28027 | 28095 | .each = .{ .once = &.{ |
| 28028 | 28096 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 28029 | 28097 | .{ .@"0:", ._, .movsx, .tmp1q, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, |
| ... | ... | @@ -28050,6 +28118,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 28050 | 28118 | .unused, |
| 28051 | 28119 | }, |
| 28052 | 28120 | .dst_temps = .{.mem}, |
| 28121 | .clobbers = .{ .eflags = true }, |
| 28053 | 28122 | .each = .{ .once = &.{ |
| 28054 | 28123 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 28055 | 28124 | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, |
| ... | ... | @@ -28181,6 +28250,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 28181 | 28250 | .unused, |
| 28182 | 28251 | }, |
| 28183 | 28252 | .dst_temps = .{.mem}, |
| 28253 | .clobbers = .{ .eflags = true }, |
| 28184 | 28254 | .each = .{ .once = &.{ |
| 28185 | 28255 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 28186 | 28256 | .{ ._, ._, .lea, .tmp1q, .mem(.dst0), ._, ._ }, |
| ... | ... | @@ -28211,6 +28281,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 28211 | 28281 | .unused, |
| 28212 | 28282 | }, |
| 28213 | 28283 | .dst_temps = .{.mem}, |
| 28284 | .clobbers = .{ .eflags = true }, |
| 28214 | 28285 | .each = .{ .once = &.{ |
| 28215 | 28286 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 28216 | 28287 | .{ ._, ._, .lea, .tmp1q, .mem(.dst0), ._, ._ }, |
| ... | ... | @@ -28346,7 +28417,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 28346 | 28417 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .dword } }, .any }, |
| 28347 | 28418 | .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .yword, .is = .qword } }}, |
| 28348 | 28419 | .patterns = &.{ |
| 28349 | | .{ .src = .{ .mem, .none } }, |
| 28420 | .{ .src = .{ .to_mem, .none } }, |
| 28350 | 28421 | }, |
| 28351 | 28422 | .extra_temps = .{ |
| 28352 | 28423 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| ... | ... | @@ -28360,10 +28431,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 28360 | 28431 | .unused, |
| 28361 | 28432 | }, |
| 28362 | 28433 | .dst_temps = .{.mem}, |
| 28434 | .clobbers = .{ .eflags = true }, |
| 28363 | 28435 | .each = .{ .once = &.{ |
| 28364 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| 28365 | | .{ .@"0:", .vp_q, .movsxd, .tmp1y, .memia(.src0x, .tmp0, .add_size), ._, ._ }, |
| 28366 | | .{ ._, .v_dqa, .mov, .memsia(.dst0y, .@"2", .tmp0, .add_size), .tmp1y, ._, ._ }, |
| 28436 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 28437 | .{ .@"0:", .vp_q, .movsxd, .tmp1y, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, |
| 28438 | .{ ._, .v_dqa, .mov, .memsia(.dst0y, .@"2", .tmp0, .add_unaligned_size), .tmp1y, ._, ._ }, |
| 28367 | 28439 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 28368 | 28440 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 28369 | 28441 | } }, |
| ... | ... | @@ -28372,7 +28444,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 28372 | 28444 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .xword, .is = .dword } }, .any }, |
| 28373 | 28445 | .dst_constraints = .{.{ .multiple_scalar_int = .{ .of = .yword, .is = .qword } }}, |
| 28374 | 28446 | .patterns = &.{ |
| 28375 | | .{ .src = .{ .mem, .none } }, |
| 28447 | .{ .src = .{ .to_mem, .none } }, |
| 28376 | 28448 | }, |
| 28377 | 28449 | .extra_temps = .{ |
| 28378 | 28450 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| ... | ... | @@ -28386,10 +28458,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 28386 | 28458 | .unused, |
| 28387 | 28459 | }, |
| 28388 | 28460 | .dst_temps = .{.mem}, |
| 28461 | .clobbers = .{ .eflags = true }, |
| 28389 | 28462 | .each = .{ .once = &.{ |
| 28390 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| 28391 | | .{ .@"0:", .vp_q, .movzxd, .tmp1y, .memia(.src0x, .tmp0, .add_size), ._, ._ }, |
| 28392 | | .{ ._, .v_dqa, .mov, .memsia(.dst0y, .@"2", .tmp0, .add_size), .tmp1y, ._, ._ }, |
| 28463 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 28464 | .{ .@"0:", .vp_q, .movzxd, .tmp1y, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, |
| 28465 | .{ ._, .v_dqa, .mov, .memsia(.dst0y, .@"2", .tmp0, .add_unaligned_size), .tmp1y, ._, ._ }, |
| 28393 | 28466 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 28394 | 28467 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 28395 | 28468 | } }, |
| ... | ... | @@ -28398,7 +28471,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 28398 | 28471 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .dword } }, .any }, |
| 28399 | 28472 | .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .qword } }}, |
| 28400 | 28473 | .patterns = &.{ |
| 28401 | | .{ .src = .{ .mem, .none } }, |
| 28474 | .{ .src = .{ .to_mem, .none } }, |
| 28402 | 28475 | }, |
| 28403 | 28476 | .extra_temps = .{ |
| 28404 | 28477 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| ... | ... | @@ -28412,10 +28485,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 28412 | 28485 | .unused, |
| 28413 | 28486 | }, |
| 28414 | 28487 | .dst_temps = .{.mem}, |
| 28488 | .clobbers = .{ .eflags = true }, |
| 28415 | 28489 | .each = .{ .once = &.{ |
| 28416 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| 28417 | | .{ .@"0:", .vp_q, .movsxd, .tmp1x, .memia(.src0q, .tmp0, .add_size), ._, ._ }, |
| 28418 | | .{ ._, .v_dqa, .mov, .memsia(.dst0x, .@"2", .tmp0, .add_size), .tmp1x, ._, ._ }, |
| 28490 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 28491 | .{ .@"0:", .vp_q, .movsxd, .tmp1x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 28492 | .{ ._, .v_dqa, .mov, .memsia(.dst0x, .@"2", .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 28419 | 28493 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 28420 | 28494 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 28421 | 28495 | } }, |
| ... | ... | @@ -28424,7 +28498,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 28424 | 28498 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .dword, .is = .word } }, .any }, |
| 28425 | 28499 | .dst_constraints = .{.{ .multiple_scalar_int = .{ .of = .xword, .is = .qword } }}, |
| 28426 | 28500 | .patterns = &.{ |
| 28427 | | .{ .src = .{ .mem, .none } }, |
| 28501 | .{ .src = .{ .to_mem, .none } }, |
| 28428 | 28502 | }, |
| 28429 | 28503 | .extra_temps = .{ |
| 28430 | 28504 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| ... | ... | @@ -28438,10 +28512,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 28438 | 28512 | .unused, |
| 28439 | 28513 | }, |
| 28440 | 28514 | .dst_temps = .{.mem}, |
| 28515 | .clobbers = .{ .eflags = true }, |
| 28441 | 28516 | .each = .{ .once = &.{ |
| 28442 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| 28443 | | .{ .@"0:", .vp_q, .movzxd, .tmp1x, .memia(.src0q, .tmp0, .add_size), ._, ._ }, |
| 28444 | | .{ ._, .v_dqa, .mov, .memsia(.dst0x, .@"2", .tmp0, .add_size), .tmp1x, ._, ._ }, |
| 28517 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 28518 | .{ .@"0:", .vp_q, .movzxd, .tmp1x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 28519 | .{ ._, .v_dqa, .mov, .memsia(.dst0x, .@"2", .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 28445 | 28520 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 28446 | 28521 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 28447 | 28522 | } }, |
| ... | ... | @@ -28450,7 +28525,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 28450 | 28525 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .dword } }, .any }, |
| 28451 | 28526 | .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .qword } }}, |
| 28452 | 28527 | .patterns = &.{ |
| 28453 | | .{ .src = .{ .mem, .none } }, |
| 28528 | .{ .src = .{ .to_mem, .none } }, |
| 28454 | 28529 | }, |
| 28455 | 28530 | .extra_temps = .{ |
| 28456 | 28531 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| ... | ... | @@ -28464,10 +28539,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 28464 | 28539 | .unused, |
| 28465 | 28540 | }, |
| 28466 | 28541 | .dst_temps = .{.mem}, |
| 28542 | .clobbers = .{ .eflags = true }, |
| 28467 | 28543 | .each = .{ .once = &.{ |
| 28468 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| 28469 | | .{ .@"0:", .p_q, .movsxd, .tmp1x, .memia(.src0q, .tmp0, .add_size), ._, ._ }, |
| 28470 | | .{ ._, ._dqa, .mov, .memsia(.dst0x, .@"2", .tmp0, .add_size), .tmp1x, ._, ._ }, |
| 28544 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 28545 | .{ .@"0:", .p_q, .movsxd, .tmp1x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 28546 | .{ ._, ._dqa, .mov, .memsia(.dst0x, .@"2", .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 28471 | 28547 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 28472 | 28548 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 28473 | 28549 | } }, |
| ... | ... | @@ -28476,7 +28552,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 28476 | 28552 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .qword, .is = .dword } }, .any }, |
| 28477 | 28553 | .dst_constraints = .{.{ .multiple_scalar_int = .{ .of = .xword, .is = .qword } }}, |
| 28478 | 28554 | .patterns = &.{ |
| 28479 | | .{ .src = .{ .mem, .none } }, |
| 28555 | .{ .src = .{ .to_mem, .none } }, |
| 28480 | 28556 | }, |
| 28481 | 28557 | .extra_temps = .{ |
| 28482 | 28558 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| ... | ... | @@ -28490,10 +28566,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 28490 | 28566 | .unused, |
| 28491 | 28567 | }, |
| 28492 | 28568 | .dst_temps = .{.mem}, |
| 28569 | .clobbers = .{ .eflags = true }, |
| 28493 | 28570 | .each = .{ .once = &.{ |
| 28494 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| 28495 | | .{ .@"0:", .p_q, .movzxd, .tmp1x, .memia(.src0q, .tmp0, .add_size), ._, ._ }, |
| 28496 | | .{ ._, ._dqa, .mov, .memsia(.dst0x, .@"2", .tmp0, .add_size), .tmp1x, ._, ._ }, |
| 28571 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 28572 | .{ .@"0:", .p_q, .movzxd, .tmp1x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 28573 | .{ ._, ._dqa, .mov, .memsia(.dst0x, .@"2", .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 28497 | 28574 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 28498 | 28575 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 28499 | 28576 | } }, |
| ... | ... | @@ -28516,6 +28593,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 28516 | 28593 | .unused, |
| 28517 | 28594 | }, |
| 28518 | 28595 | .dst_temps = .{.mem}, |
| 28596 | .clobbers = .{ .eflags = true }, |
| 28519 | 28597 | .each = .{ .once = &.{ |
| 28520 | 28598 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 28521 | 28599 | .{ .@"0:", ._, .movsxd, .tmp1q, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, |
| ... | ... | @@ -28542,6 +28620,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 28542 | 28620 | .unused, |
| 28543 | 28621 | }, |
| 28544 | 28622 | .dst_temps = .{.mem}, |
| 28623 | .clobbers = .{ .eflags = true }, |
| 28545 | 28624 | .each = .{ .once = &.{ |
| 28546 | 28625 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 28547 | 28626 | .{ .@"0:", ._, .mov, .tmp1d, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, |
| ... | ... | @@ -28670,6 +28749,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 28670 | 28749 | .unused, |
| 28671 | 28750 | }, |
| 28672 | 28751 | .dst_temps = .{.mem}, |
| 28752 | .clobbers = .{ .eflags = true }, |
| 28673 | 28753 | .each = .{ .once = &.{ |
| 28674 | 28754 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 28675 | 28755 | .{ ._, ._, .lea, .tmp1q, .mem(.dst0), ._, ._ }, |
| ... | ... | @@ -28700,6 +28780,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 28700 | 28780 | .unused, |
| 28701 | 28781 | }, |
| 28702 | 28782 | .dst_temps = .{.mem}, |
| 28783 | .clobbers = .{ .eflags = true }, |
| 28703 | 28784 | .each = .{ .once = &.{ |
| 28704 | 28785 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 28705 | 28786 | .{ ._, ._, .lea, .tmp1q, .mem(.dst0), ._, ._ }, |
| ... | ... | @@ -28714,7 +28795,5049 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 28714 | 28795 | }, .{ |
| 28715 | 28796 | .required_features = .{ .@"64bit", .slow_incdec, null, null }, |
| 28716 | 28797 | .src_constraints = .{ .any_scalar_signed_int, .any }, |
| 28717 | | .dst_constraints = .{.any_scalar_signed_int}, |
| 28798 | .dst_constraints = .{.any_scalar_signed_int}, |
| 28799 | .patterns = &.{ |
| 28800 | .{ .src = .{ .to_mem, .none } }, |
| 28801 | }, |
| 28802 | .extra_temps = .{ |
| 28803 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 28804 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 28805 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 28806 | .{ .type = .u32, .kind = .{ .reg = .ecx } }, |
| 28807 | .{ .type = .i64, .kind = .{ .reg = .rax } }, |
| 28808 | .unused, |
| 28809 | .unused, |
| 28810 | .unused, |
| 28811 | .unused, |
| 28812 | }, |
| 28813 | .dst_temps = .{.mem}, |
| 28814 | .clobbers = .{ .eflags = true }, |
| 28815 | .each = .{ .once = &.{ |
| 28816 | .{ ._, ._, .mov, .tmp0d, .sa(.src0, .add_len), ._, ._ }, |
| 28817 | .{ ._, ._, .lea, .tmp1p, .mem(.src0), ._, ._ }, |
| 28818 | .{ ._, ._, .lea, .tmp2p, .mem(.dst0), ._, ._ }, |
| 28819 | .{ .@"0:", ._, .mov, .tmp3d, .sia(-1, .src0, .add_elem_size_div_8), ._, ._ }, |
| 28820 | .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ }, |
| 28821 | .{ ._, ._sq, .lod, ._, ._, ._, ._ }, |
| 28822 | .{ ._, ._sq, .sto, ._, ._, ._, ._ }, |
| 28823 | .{ ._, ._r, .sa, .tmp4q, .ui(63), ._, ._ }, |
| 28824 | .{ ._, ._, .mov, .tmp3d, .sa2(.dst0, .src0, .add_delta_elem_size_div_8), ._, ._ }, |
| 28825 | .{ ._, .@"rep _sq", .sto, ._, ._, ._, ._ }, |
| 28826 | .{ ._, ._, .sub, .tmp0d, .si(1), ._, ._ }, |
| 28827 | .{ ._, ._a, .j, .@"0b", ._, ._, ._ }, |
| 28828 | } }, |
| 28829 | }, .{ |
| 28830 | .required_features = .{ .@"64bit", null, null, null }, |
| 28831 | .src_constraints = .{ .any_scalar_signed_int, .any }, |
| 28832 | .dst_constraints = .{.any_scalar_signed_int}, |
| 28833 | .patterns = &.{ |
| 28834 | .{ .src = .{ .to_mem, .none } }, |
| 28835 | }, |
| 28836 | .extra_temps = .{ |
| 28837 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 28838 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 28839 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 28840 | .{ .type = .u32, .kind = .{ .reg = .ecx } }, |
| 28841 | .{ .type = .i64, .kind = .{ .reg = .rax } }, |
| 28842 | .unused, |
| 28843 | .unused, |
| 28844 | .unused, |
| 28845 | .unused, |
| 28846 | }, |
| 28847 | .dst_temps = .{.mem}, |
| 28848 | .clobbers = .{ .eflags = true }, |
| 28849 | .each = .{ .once = &.{ |
| 28850 | .{ ._, ._, .mov, .tmp0d, .sa(.src0, .add_len), ._, ._ }, |
| 28851 | .{ ._, ._, .lea, .tmp1p, .mem(.src0), ._, ._ }, |
| 28852 | .{ ._, ._, .lea, .tmp2p, .mem(.dst0), ._, ._ }, |
| 28853 | .{ .@"0:", ._, .mov, .tmp3d, .sia(-1, .src0, .add_elem_size_div_8), ._, ._ }, |
| 28854 | .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ }, |
| 28855 | .{ ._, ._sq, .lod, ._, ._, ._, ._ }, |
| 28856 | .{ ._, ._sq, .sto, ._, ._, ._, ._ }, |
| 28857 | .{ ._, ._r, .sa, .tmp4q, .ui(63), ._, ._ }, |
| 28858 | .{ ._, ._, .mov, .tmp3d, .sa2(.dst0, .src0, .add_delta_elem_size_div_8), ._, ._ }, |
| 28859 | .{ ._, .@"rep _sq", .sto, ._, ._, ._, ._ }, |
| 28860 | .{ ._, ._c, .de, .tmp0d, ._, ._, ._ }, |
| 28861 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| 28862 | } }, |
| 28863 | }, .{ |
| 28864 | .required_features = .{ .@"64bit", .slow_incdec, null, null }, |
| 28865 | .src_constraints = .{ .any_scalar_int, .any }, |
| 28866 | .dst_constraints = .{.any_scalar_int}, |
| 28867 | .patterns = &.{ |
| 28868 | .{ .src = .{ .to_mem, .none } }, |
| 28869 | }, |
| 28870 | .extra_temps = .{ |
| 28871 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 28872 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 28873 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 28874 | .{ .type = .u32, .kind = .{ .reg = .ecx } }, |
| 28875 | .{ .type = .u64, .kind = .{ .reg = .rax } }, |
| 28876 | .unused, |
| 28877 | .unused, |
| 28878 | .unused, |
| 28879 | .unused, |
| 28880 | }, |
| 28881 | .dst_temps = .{.mem}, |
| 28882 | .clobbers = .{ .eflags = true }, |
| 28883 | .each = .{ .once = &.{ |
| 28884 | .{ ._, ._, .mov, .tmp0d, .sa(.src0, .add_len), ._, ._ }, |
| 28885 | .{ ._, ._, .lea, .tmp1p, .mem(.src0), ._, ._ }, |
| 28886 | .{ ._, ._, .lea, .tmp2p, .mem(.dst0), ._, ._ }, |
| 28887 | .{ .@"0:", ._, .mov, .tmp3d, .sa(.src0, .add_elem_size_div_8), ._, ._ }, |
| 28888 | .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ }, |
| 28889 | .{ ._, ._, .xor, .tmp4d, .tmp4d, ._, ._ }, |
| 28890 | .{ ._, ._, .mov, .tmp3d, .sa2(.dst0, .src0, .add_delta_elem_size_div_8), ._, ._ }, |
| 28891 | .{ ._, .@"rep _sq", .sto, ._, ._, ._, ._ }, |
| 28892 | .{ ._, ._, .sub, .tmp0d, .si(1), ._, ._ }, |
| 28893 | .{ ._, ._a, .j, .@"0b", ._, ._, ._ }, |
| 28894 | } }, |
| 28895 | }, .{ |
| 28896 | .required_features = .{ .@"64bit", null, null, null }, |
| 28897 | .src_constraints = .{ .any_scalar_int, .any }, |
| 28898 | .dst_constraints = .{.any_scalar_int}, |
| 28899 | .patterns = &.{ |
| 28900 | .{ .src = .{ .to_mem, .none } }, |
| 28901 | }, |
| 28902 | .extra_temps = .{ |
| 28903 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 28904 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 28905 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 28906 | .{ .type = .u32, .kind = .{ .reg = .ecx } }, |
| 28907 | .{ .type = .u64, .kind = .{ .reg = .rax } }, |
| 28908 | .unused, |
| 28909 | .unused, |
| 28910 | .unused, |
| 28911 | .unused, |
| 28912 | }, |
| 28913 | .dst_temps = .{.mem}, |
| 28914 | .clobbers = .{ .eflags = true }, |
| 28915 | .each = .{ .once = &.{ |
| 28916 | .{ ._, ._, .mov, .tmp0d, .sa(.src0, .add_len), ._, ._ }, |
| 28917 | .{ ._, ._, .lea, .tmp1p, .mem(.src0), ._, ._ }, |
| 28918 | .{ ._, ._, .lea, .tmp2p, .mem(.dst0), ._, ._ }, |
| 28919 | .{ .@"0:", ._, .mov, .tmp3d, .sa(.src0, .add_elem_size_div_8), ._, ._ }, |
| 28920 | .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ }, |
| 28921 | .{ ._, ._, .xor, .tmp4d, .tmp4d, ._, ._ }, |
| 28922 | .{ ._, ._, .mov, .tmp3d, .sa2(.dst0, .src0, .add_delta_elem_size_div_8), ._, ._ }, |
| 28923 | .{ ._, .@"rep _sq", .sto, ._, ._, ._, ._ }, |
| 28924 | .{ ._, ._c, .de, .tmp0d, ._, ._, ._ }, |
| 28925 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| 28926 | } }, |
| 28927 | } }) catch |err| switch (err) { |
| 28928 | error.SelectFailed => return cg.fail("failed to select {s} {} {} {}", .{ |
| 28929 | @tagName(air_tag), |
| 28930 | dst_ty.fmt(pt), |
| 28931 | src_ty.fmt(pt), |
| 28932 | ops[0].tracking(cg), |
| 28933 | }), |
| 28934 | else => |e| return e, |
| 28935 | }; |
| 28936 | try res[0].finish(inst, &.{ty_op.operand}, &ops, cg); |
| 28937 | }, |
| 28938 | .trunc => |air_tag| if (use_old) try cg.airTrunc(inst) else { |
| 28939 | const ty_op = air_datas[@intFromEnum(inst)].ty_op; |
| 28940 | var ops = try cg.tempsFromOperands(inst, .{ty_op.operand}); |
| 28941 | var res: [1]Temp = undefined; |
| 28942 | cg.select(&res, &.{ty_op.ty.toType()}, &ops, comptime &.{ .{ |
| 28943 | .src_constraints = .{ .{ .signed_int = .gpr }, .any }, |
| 28944 | .dst_constraints = .{.{ .exact_signed_int = 1 }}, |
| 28945 | .patterns = &.{ |
| 28946 | .{ .src = .{ .to_mut_gpr, .none } }, |
| 28947 | }, |
| 28948 | .dst_temps = .{.{ .ref = .src0 }}, |
| 28949 | .clobbers = .{ .eflags = true }, |
| 28950 | .each = .{ .once = &.{ |
| 28951 | .{ ._, ._, .@"and", .dst0d, .si(1), ._, ._ }, |
| 28952 | .{ ._, ._, .neg, .dst0d, ._, ._, ._ }, |
| 28953 | } }, |
| 28954 | }, .{ |
| 28955 | .src_constraints = .{ .any_signed_int, .any }, |
| 28956 | .dst_constraints = .{.{ .exact_signed_int = 1 }}, |
| 28957 | .patterns = &.{ |
| 28958 | .{ .src = .{ .to_mem, .none } }, |
| 28959 | }, |
| 28960 | .dst_temps = .{.{ .rc = .general_purpose }}, |
| 28961 | .clobbers = .{ .eflags = true }, |
| 28962 | .each = .{ .once = &.{ |
| 28963 | .{ ._, ._, .movzx, .dst0d, .mem(.src0b), ._, ._ }, |
| 28964 | .{ ._, ._, .@"and", .dst0d, .si(1), ._, ._ }, |
| 28965 | .{ ._, ._, .neg, .dst0d, ._, ._, ._ }, |
| 28966 | } }, |
| 28967 | }, .{ |
| 28968 | .src_constraints = .{ .{ .int = .gpr }, .any }, |
| 28969 | .dst_constraints = .{.{ .exact_int = 8 }}, |
| 28970 | .patterns = &.{ |
| 28971 | .{ .src = .{ .to_mut_gpr, .none } }, |
| 28972 | }, |
| 28973 | .dst_temps = .{.{ .ref = .src0 }}, |
| 28974 | .each = .{ .once = &.{} }, |
| 28975 | }, .{ |
| 28976 | .src_constraints = .{ .any_signed_int, .any }, |
| 28977 | .dst_constraints = .{.{ .exact_signed_int = 8 }}, |
| 28978 | .patterns = &.{ |
| 28979 | .{ .src = .{ .to_mem, .none } }, |
| 28980 | }, |
| 28981 | .dst_temps = .{.{ .rc = .general_purpose }}, |
| 28982 | .each = .{ .once = &.{ |
| 28983 | .{ ._, ._, .movsx, .dst0d, .mem(.src0b), ._, ._ }, |
| 28984 | } }, |
| 28985 | }, .{ |
| 28986 | .src_constraints = .{ .any_unsigned_int, .any }, |
| 28987 | .dst_constraints = .{.{ .exact_unsigned_int = 8 }}, |
| 28988 | .patterns = &.{ |
| 28989 | .{ .src = .{ .to_mem, .none } }, |
| 28990 | }, |
| 28991 | .dst_temps = .{.{ .rc = .general_purpose }}, |
| 28992 | .each = .{ .once = &.{ |
| 28993 | .{ ._, ._, .movzx, .dst0d, .mem(.src0b), ._, ._ }, |
| 28994 | } }, |
| 28995 | }, .{ |
| 28996 | .src_constraints = .{ .{ .signed_int = .gpr }, .any }, |
| 28997 | .dst_constraints = .{.{ .signed_int = .byte }}, |
| 28998 | .patterns = &.{ |
| 28999 | .{ .src = .{ .to_mut_gpr, .none } }, |
| 29000 | }, |
| 29001 | .dst_temps = .{.{ .ref = .src0 }}, |
| 29002 | .clobbers = .{ .eflags = true }, |
| 29003 | .each = .{ .once = &.{ |
| 29004 | .{ ._, ._l, .sa, .dst0b, .uia(8, .dst0, .sub_bit_size), ._, ._ }, |
| 29005 | .{ ._, ._r, .sa, .dst0b, .uia(8, .dst0, .sub_bit_size), ._, ._ }, |
| 29006 | } }, |
| 29007 | }, .{ |
| 29008 | .src_constraints = .{ .{ .unsigned_int = .gpr }, .any }, |
| 29009 | .dst_constraints = .{.{ .unsigned_int = .byte }}, |
| 29010 | .patterns = &.{ |
| 29011 | .{ .src = .{ .to_mut_gpr, .none } }, |
| 29012 | }, |
| 29013 | .dst_temps = .{.{ .ref = .src0 }}, |
| 29014 | .clobbers = .{ .eflags = true }, |
| 29015 | .each = .{ .once = &.{ |
| 29016 | .{ ._, ._, .@"and", .dst0b, .sa(.dst0, .add_umax), ._, ._ }, |
| 29017 | } }, |
| 29018 | }, .{ |
| 29019 | .src_constraints = .{ .any_int, .any }, |
| 29020 | .dst_constraints = .{.{ .unsigned_int = .byte }}, |
| 29021 | .patterns = &.{ |
| 29022 | .{ .src = .{ .to_mem, .none } }, |
| 29023 | }, |
| 29024 | .dst_temps = .{.{ .rc = .general_purpose }}, |
| 29025 | .clobbers = .{ .eflags = true }, |
| 29026 | .each = .{ .once = &.{ |
| 29027 | .{ ._, ._, .movzx, .dst0d, .mem(.src0b), ._, ._ }, |
| 29028 | .{ ._, ._, .@"and", .dst0b, .sa(.dst0, .add_umax), ._, ._ }, |
| 29029 | } }, |
| 29030 | }, .{ |
| 29031 | .src_constraints = .{ .{ .int = .gpr }, .any }, |
| 29032 | .dst_constraints = .{.{ .exact_int = 16 }}, |
| 29033 | .patterns = &.{ |
| 29034 | .{ .src = .{ .to_mut_gpr, .none } }, |
| 29035 | }, |
| 29036 | .dst_temps = .{.{ .ref = .src0 }}, |
| 29037 | .each = .{ .once = &.{} }, |
| 29038 | }, .{ |
| 29039 | .src_constraints = .{ .any_signed_int, .any }, |
| 29040 | .dst_constraints = .{.{ .exact_signed_int = 16 }}, |
| 29041 | .patterns = &.{ |
| 29042 | .{ .src = .{ .to_mem, .none } }, |
| 29043 | }, |
| 29044 | .dst_temps = .{.{ .rc = .general_purpose }}, |
| 29045 | .each = .{ .once = &.{ |
| 29046 | .{ ._, ._, .movsx, .dst0d, .mem(.src0w), ._, ._ }, |
| 29047 | } }, |
| 29048 | }, .{ |
| 29049 | .src_constraints = .{ .any_unsigned_int, .any }, |
| 29050 | .dst_constraints = .{.{ .exact_unsigned_int = 16 }}, |
| 29051 | .patterns = &.{ |
| 29052 | .{ .src = .{ .to_mem, .none } }, |
| 29053 | }, |
| 29054 | .dst_temps = .{.{ .rc = .general_purpose }}, |
| 29055 | .each = .{ .once = &.{ |
| 29056 | .{ ._, ._, .movzx, .dst0d, .mem(.src0w), ._, ._ }, |
| 29057 | } }, |
| 29058 | }, .{ |
| 29059 | .required_features = .{ .fast_imm16, null, null, null }, |
| 29060 | .src_constraints = .{ .{ .unsigned_int = .gpr }, .any }, |
| 29061 | .dst_constraints = .{.{ .unsigned_int = .word }}, |
| 29062 | .patterns = &.{ |
| 29063 | .{ .src = .{ .to_mut_gpr, .none } }, |
| 29064 | }, |
| 29065 | .dst_temps = .{.{ .ref = .src0 }}, |
| 29066 | .clobbers = .{ .eflags = true }, |
| 29067 | .each = .{ .once = &.{ |
| 29068 | .{ ._, ._, .@"and", .dst0w, .sa(.dst0, .add_umax), ._, ._ }, |
| 29069 | } }, |
| 29070 | }, .{ |
| 29071 | .required_features = .{ .fast_imm16, null, null, null }, |
| 29072 | .src_constraints = .{ .any_unsigned_int, .any }, |
| 29073 | .dst_constraints = .{.{ .unsigned_int = .word }}, |
| 29074 | .patterns = &.{ |
| 29075 | .{ .src = .{ .to_mem, .none } }, |
| 29076 | }, |
| 29077 | .dst_temps = .{.{ .rc = .general_purpose }}, |
| 29078 | .clobbers = .{ .eflags = true }, |
| 29079 | .each = .{ .once = &.{ |
| 29080 | .{ ._, ._, .movzx, .dst0d, .mem(.src0w), ._, ._ }, |
| 29081 | .{ ._, ._, .@"and", .dst0w, .sa(.dst0, .add_umax), ._, ._ }, |
| 29082 | } }, |
| 29083 | }, .{ |
| 29084 | .src_constraints = .{ .{ .int = .gpr }, .any }, |
| 29085 | .dst_constraints = .{.{ .exact_int = 32 }}, |
| 29086 | .patterns = &.{ |
| 29087 | .{ .src = .{ .to_mut_gpr, .none } }, |
| 29088 | }, |
| 29089 | .dst_temps = .{.{ .ref = .src0 }}, |
| 29090 | .each = .{ .once = &.{} }, |
| 29091 | }, .{ |
| 29092 | .src_constraints = .{ .any_int, .any }, |
| 29093 | .dst_constraints = .{.{ .exact_int = 32 }}, |
| 29094 | .patterns = &.{ |
| 29095 | .{ .src = .{ .to_mem, .none } }, |
| 29096 | }, |
| 29097 | .dst_temps = .{.{ .rc = .general_purpose }}, |
| 29098 | .each = .{ .once = &.{ |
| 29099 | .{ ._, ._, .mov, .dst0d, .mem(.src0d), ._, ._ }, |
| 29100 | } }, |
| 29101 | }, .{ |
| 29102 | .src_constraints = .{ .{ .signed_int = .gpr }, .any }, |
| 29103 | .dst_constraints = .{.{ .signed_int = .dword }}, |
| 29104 | .patterns = &.{ |
| 29105 | .{ .src = .{ .to_mut_gpr, .none } }, |
| 29106 | }, |
| 29107 | .dst_temps = .{.{ .ref = .src0 }}, |
| 29108 | .clobbers = .{ .eflags = true }, |
| 29109 | .each = .{ .once = &.{ |
| 29110 | .{ ._, ._l, .sa, .dst0d, .uia(32, .dst0, .sub_bit_size), ._, ._ }, |
| 29111 | .{ ._, ._r, .sa, .dst0d, .uia(32, .dst0, .sub_bit_size), ._, ._ }, |
| 29112 | } }, |
| 29113 | }, .{ |
| 29114 | .src_constraints = .{ .any_signed_int, .any }, |
| 29115 | .dst_constraints = .{.{ .signed_int = .dword }}, |
| 29116 | .patterns = &.{ |
| 29117 | .{ .src = .{ .to_mem, .none } }, |
| 29118 | }, |
| 29119 | .dst_temps = .{.{ .rc = .general_purpose }}, |
| 29120 | .clobbers = .{ .eflags = true }, |
| 29121 | .each = .{ .once = &.{ |
| 29122 | .{ ._, ._, .mov, .dst0d, .mem(.src0d), ._, ._ }, |
| 29123 | .{ ._, ._l, .sa, .dst0d, .uia(32, .dst0, .sub_bit_size), ._, ._ }, |
| 29124 | .{ ._, ._r, .sa, .dst0d, .uia(32, .dst0, .sub_bit_size), ._, ._ }, |
| 29125 | } }, |
| 29126 | }, .{ |
| 29127 | .src_constraints = .{ .{ .unsigned_int = .gpr }, .any }, |
| 29128 | .dst_constraints = .{.{ .unsigned_int = .dword }}, |
| 29129 | .patterns = &.{ |
| 29130 | .{ .src = .{ .to_mut_gpr, .none } }, |
| 29131 | }, |
| 29132 | .dst_temps = .{.{ .ref = .src0 }}, |
| 29133 | .clobbers = .{ .eflags = true }, |
| 29134 | .each = .{ .once = &.{ |
| 29135 | .{ ._, ._, .@"and", .dst0d, .sa(.dst0, .add_umax), ._, ._ }, |
| 29136 | } }, |
| 29137 | }, .{ |
| 29138 | .src_constraints = .{ .any_unsigned_int, .any }, |
| 29139 | .dst_constraints = .{.{ .unsigned_int = .dword }}, |
| 29140 | .patterns = &.{ |
| 29141 | .{ .src = .{ .to_mem, .none } }, |
| 29142 | }, |
| 29143 | .dst_temps = .{.{ .rc = .general_purpose }}, |
| 29144 | .clobbers = .{ .eflags = true }, |
| 29145 | .each = .{ .once = &.{ |
| 29146 | .{ ._, ._, .mov, .dst0d, .mem(.src0d), ._, ._ }, |
| 29147 | .{ ._, ._, .@"and", .dst0d, .sa(.dst0, .add_umax), ._, ._ }, |
| 29148 | } }, |
| 29149 | }, .{ |
| 29150 | .required_features = .{ .@"64bit", null, null, null }, |
| 29151 | .src_constraints = .{ .any_int, .any }, |
| 29152 | .dst_constraints = .{.{ .exact_int = 64 }}, |
| 29153 | .patterns = &.{ |
| 29154 | .{ .src = .{ .to_mem, .none } }, |
| 29155 | }, |
| 29156 | .dst_temps = .{.{ .rc = .general_purpose }}, |
| 29157 | .each = .{ .once = &.{ |
| 29158 | .{ ._, ._, .mov, .dst0q, .mem(.src0q), ._, ._ }, |
| 29159 | } }, |
| 29160 | }, .{ |
| 29161 | .required_features = .{ .@"64bit", null, null, null }, |
| 29162 | .src_constraints = .{ .{ .signed_int = .gpr }, .any }, |
| 29163 | .dst_constraints = .{.{ .signed_int = .qword }}, |
| 29164 | .patterns = &.{ |
| 29165 | .{ .src = .{ .to_mut_gpr, .none } }, |
| 29166 | }, |
| 29167 | .dst_temps = .{.{ .ref = .src0 }}, |
| 29168 | .clobbers = .{ .eflags = true }, |
| 29169 | .each = .{ .once = &.{ |
| 29170 | .{ ._, ._l, .sa, .dst0q, .uia(64, .dst0, .sub_bit_size), ._, ._ }, |
| 29171 | .{ ._, ._r, .sa, .dst0q, .uia(64, .dst0, .sub_bit_size), ._, ._ }, |
| 29172 | } }, |
| 29173 | }, .{ |
| 29174 | .required_features = .{ .@"64bit", null, null, null }, |
| 29175 | .src_constraints = .{ .any_signed_int, .any }, |
| 29176 | .dst_constraints = .{.{ .signed_int = .qword }}, |
| 29177 | .patterns = &.{ |
| 29178 | .{ .src = .{ .to_mem, .none } }, |
| 29179 | }, |
| 29180 | .dst_temps = .{.{ .rc = .general_purpose }}, |
| 29181 | .clobbers = .{ .eflags = true }, |
| 29182 | .each = .{ .once = &.{ |
| 29183 | .{ ._, ._, .mov, .dst0q, .mem(.src0q), ._, ._ }, |
| 29184 | .{ ._, ._l, .sa, .dst0q, .uia(64, .dst0, .sub_bit_size), ._, ._ }, |
| 29185 | .{ ._, ._r, .sa, .dst0q, .uia(64, .dst0, .sub_bit_size), ._, ._ }, |
| 29186 | } }, |
| 29187 | }, .{ |
| 29188 | .required_features = .{ .@"64bit", .bmi2, null, null }, |
| 29189 | .src_constraints = .{ .{ .unsigned_int = .gpr }, .any }, |
| 29190 | .dst_constraints = .{.{ .unsigned_int = .qword }}, |
| 29191 | .patterns = &.{ |
| 29192 | .{ .src = .{ .mem, .none } }, |
| 29193 | .{ .src = .{ .to_gpr, .none } }, |
| 29194 | }, |
| 29195 | .dst_temps = .{.{ .rc = .general_purpose }}, |
| 29196 | .clobbers = .{ .eflags = true }, |
| 29197 | .each = .{ .once = &.{ |
| 29198 | .{ ._, ._, .mov, .dst0d, .sa(.dst0, .add_bit_size), ._, ._ }, |
| 29199 | .{ ._, ._, .bzhi, .dst0q, .src0q, .dst0q, ._ }, |
| 29200 | } }, |
| 29201 | }, .{ |
| 29202 | .required_features = .{ .@"64bit", .bmi2, null, null }, |
| 29203 | .src_constraints = .{ .any_unsigned_int, .any }, |
| 29204 | .dst_constraints = .{.{ .unsigned_int = .qword }}, |
| 29205 | .patterns = &.{ |
| 29206 | .{ .src = .{ .to_mem, .none } }, |
| 29207 | }, |
| 29208 | .dst_temps = .{.{ .rc = .general_purpose }}, |
| 29209 | .clobbers = .{ .eflags = true }, |
| 29210 | .each = .{ .once = &.{ |
| 29211 | .{ ._, ._, .mov, .dst0d, .sa(.dst0, .add_bit_size), ._, ._ }, |
| 29212 | .{ ._, ._, .bzhi, .dst0q, .mem(.src0q), .dst0q, ._ }, |
| 29213 | } }, |
| 29214 | }, .{ |
| 29215 | .required_features = .{ .@"64bit", null, null, null }, |
| 29216 | .src_constraints = .{ .{ .unsigned_int = .gpr }, .any }, |
| 29217 | .dst_constraints = .{.{ .unsigned_int = .qword }}, |
| 29218 | .patterns = &.{ |
| 29219 | .{ .src = .{ .mem, .none } }, |
| 29220 | .{ .src = .{ .to_gpr, .none } }, |
| 29221 | }, |
| 29222 | .dst_temps = .{.{ .rc = .general_purpose }}, |
| 29223 | .clobbers = .{ .eflags = true }, |
| 29224 | .each = .{ .once = &.{ |
| 29225 | .{ ._, ._, .mov, .dst0q, .ua(.dst0, .add_umax), ._, ._ }, |
| 29226 | .{ ._, ._, .@"and", .dst0q, .src0q, ._, ._ }, |
| 29227 | } }, |
| 29228 | }, .{ |
| 29229 | .required_features = .{ .@"64bit", null, null, null }, |
| 29230 | .src_constraints = .{ .any_unsigned_int, .any }, |
| 29231 | .dst_constraints = .{.{ .unsigned_int = .qword }}, |
| 29232 | .patterns = &.{ |
| 29233 | .{ .src = .{ .to_mem, .none } }, |
| 29234 | }, |
| 29235 | .dst_temps = .{.{ .rc = .general_purpose }}, |
| 29236 | .clobbers = .{ .eflags = true }, |
| 29237 | .each = .{ .once = &.{ |
| 29238 | .{ ._, ._, .mov, .dst0q, .ua(.dst0, .add_umax), ._, ._ }, |
| 29239 | .{ ._, ._, .@"and", .dst0q, .mem(.src0q), ._, ._ }, |
| 29240 | } }, |
| 29241 | }, .{ |
| 29242 | .required_features = .{ .@"64bit", null, null, null }, |
| 29243 | .src_constraints = .{ .any_int, .any }, |
| 29244 | .dst_constraints = .{.{ .exact_remainder_int = .{ .of = .xword, .is = .xword } }}, |
| 29245 | .patterns = &.{ |
| 29246 | .{ .src = .{ .to_mem, .none } }, |
| 29247 | }, |
| 29248 | .extra_temps = .{ |
| 29249 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 29250 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 29251 | .{ .type = .u32, .kind = .{ .reg = .ecx } }, |
| 29252 | .unused, |
| 29253 | .unused, |
| 29254 | .unused, |
| 29255 | .unused, |
| 29256 | .unused, |
| 29257 | .unused, |
| 29258 | }, |
| 29259 | .dst_temps = .{.mem}, |
| 29260 | .each = .{ .once = &.{ |
| 29261 | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, |
| 29262 | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, |
| 29263 | .{ ._, ._, .mov, .tmp2d, .sa(.dst0, .add_size_div_8), ._, ._ }, |
| 29264 | .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ }, |
| 29265 | } }, |
| 29266 | }, .{ |
| 29267 | .required_features = .{ .@"64bit", null, null, null }, |
| 29268 | .src_constraints = .{ .any_signed_int, .any }, |
| 29269 | .dst_constraints = .{.{ .exact_remainder_signed_int = .{ .of = .xword, .is = .qword } }}, |
| 29270 | .patterns = &.{ |
| 29271 | .{ .src = .{ .to_mem, .none } }, |
| 29272 | }, |
| 29273 | .extra_temps = .{ |
| 29274 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 29275 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 29276 | .{ .type = .u32, .kind = .{ .reg = .ecx } }, |
| 29277 | .unused, |
| 29278 | .unused, |
| 29279 | .unused, |
| 29280 | .unused, |
| 29281 | .unused, |
| 29282 | .unused, |
| 29283 | }, |
| 29284 | .dst_temps = .{.mem}, |
| 29285 | .clobbers = .{ .eflags = true }, |
| 29286 | .each = .{ .once = &.{ |
| 29287 | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, |
| 29288 | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, |
| 29289 | .{ ._, ._, .mov, .tmp2d, .sia(-2, .dst0, .add_size_div_8), ._, ._ }, |
| 29290 | .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ }, |
| 29291 | .{ ._, ._, .mov, .tmp0q, .memad(.src0q, .add_size, -16), ._, ._ }, |
| 29292 | .{ ._, ._, .mov, .memad(.dst0q, .add_size, -16), .tmp0q, ._, ._ }, |
| 29293 | .{ ._, ._r, .sa, .tmp0q, .ui(63), ._, ._ }, |
| 29294 | .{ ._, ._, .mov, .memad(.dst0q, .add_size, -8), .tmp0q, ._, ._ }, |
| 29295 | } }, |
| 29296 | }, .{ |
| 29297 | .required_features = .{ .@"64bit", null, null, null }, |
| 29298 | .src_constraints = .{ .any_signed_int, .any }, |
| 29299 | .dst_constraints = .{.{ .remainder_signed_int = .{ .of = .xword, .is = .qword } }}, |
| 29300 | .patterns = &.{ |
| 29301 | .{ .src = .{ .to_mem, .none } }, |
| 29302 | }, |
| 29303 | .extra_temps = .{ |
| 29304 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 29305 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 29306 | .{ .type = .u32, .kind = .{ .reg = .ecx } }, |
| 29307 | .unused, |
| 29308 | .unused, |
| 29309 | .unused, |
| 29310 | .unused, |
| 29311 | .unused, |
| 29312 | .unused, |
| 29313 | }, |
| 29314 | .dst_temps = .{.mem}, |
| 29315 | .clobbers = .{ .eflags = true }, |
| 29316 | .each = .{ .once = &.{ |
| 29317 | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, |
| 29318 | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, |
| 29319 | .{ ._, ._, .mov, .tmp2d, .sia(-2, .dst0, .add_size_div_8), ._, ._ }, |
| 29320 | .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ }, |
| 29321 | .{ ._, ._, .mov, .tmp0q, .memad(.src0q, .add_size, -16), ._, ._ }, |
| 29322 | .{ ._, ._l, .sa, .tmp0q, .uia(64, .dst0, .sub_bit_size_rem_64), ._, ._ }, |
| 29323 | .{ ._, ._r, .sa, .tmp0q, .uia(64, .dst0, .sub_bit_size_rem_64), ._, ._ }, |
| 29324 | .{ ._, ._, .mov, .memad(.dst0q, .add_size, -16), .tmp0q, ._, ._ }, |
| 29325 | .{ ._, ._r, .sa, .tmp0q, .ui(63), ._, ._ }, |
| 29326 | .{ ._, ._, .mov, .memad(.dst0q, .add_size, -8), .tmp0q, ._, ._ }, |
| 29327 | } }, |
| 29328 | }, .{ |
| 29329 | .required_features = .{ .@"64bit", null, null, null }, |
| 29330 | .src_constraints = .{ .any_signed_int, .any }, |
| 29331 | .dst_constraints = .{.{ .remainder_signed_int = .{ .of = .xword, .is = .xword } }}, |
| 29332 | .patterns = &.{ |
| 29333 | .{ .src = .{ .to_mem, .none } }, |
| 29334 | }, |
| 29335 | .extra_temps = .{ |
| 29336 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 29337 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 29338 | .{ .type = .u32, .kind = .{ .reg = .ecx } }, |
| 29339 | .unused, |
| 29340 | .unused, |
| 29341 | .unused, |
| 29342 | .unused, |
| 29343 | .unused, |
| 29344 | .unused, |
| 29345 | }, |
| 29346 | .dst_temps = .{.mem}, |
| 29347 | .clobbers = .{ .eflags = true }, |
| 29348 | .each = .{ .once = &.{ |
| 29349 | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, |
| 29350 | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, |
| 29351 | .{ ._, ._, .mov, .tmp2d, .sia(-1, .dst0, .add_size_div_8), ._, ._ }, |
| 29352 | .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ }, |
| 29353 | .{ ._, ._, .mov, .tmp0q, .memad(.src0q, .add_size, -8), ._, ._ }, |
| 29354 | .{ ._, ._l, .sa, .tmp0q, .uia(64, .dst0, .sub_bit_size_rem_64), ._, ._ }, |
| 29355 | .{ ._, ._r, .sa, .tmp0q, .uia(64, .dst0, .sub_bit_size_rem_64), ._, ._ }, |
| 29356 | .{ ._, ._, .mov, .memad(.dst0q, .add_size, -8), .tmp0q, ._, ._ }, |
| 29357 | } }, |
| 29358 | }, .{ |
| 29359 | .required_features = .{ .@"64bit", null, null, null }, |
| 29360 | .src_constraints = .{ .any_unsigned_int, .any }, |
| 29361 | .dst_constraints = .{.{ .exact_remainder_unsigned_int = .{ .of = .xword, .is = .qword } }}, |
| 29362 | .patterns = &.{ |
| 29363 | .{ .src = .{ .to_mem, .none } }, |
| 29364 | }, |
| 29365 | .extra_temps = .{ |
| 29366 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 29367 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 29368 | .{ .type = .u32, .kind = .{ .reg = .ecx } }, |
| 29369 | .unused, |
| 29370 | .unused, |
| 29371 | .unused, |
| 29372 | .unused, |
| 29373 | .unused, |
| 29374 | .unused, |
| 29375 | }, |
| 29376 | .dst_temps = .{.mem}, |
| 29377 | .each = .{ .once = &.{ |
| 29378 | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, |
| 29379 | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, |
| 29380 | .{ ._, ._, .mov, .tmp2d, .sia(-1, .dst0, .add_size_div_8), ._, ._ }, |
| 29381 | .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ }, |
| 29382 | .{ ._, ._, .mov, .memad(.dst0q, .add_size, -8), .si(0), ._, ._ }, |
| 29383 | } }, |
| 29384 | }, .{ |
| 29385 | .required_features = .{ .@"64bit", .bmi2, null, null }, |
| 29386 | .src_constraints = .{ .any_unsigned_int, .any }, |
| 29387 | .dst_constraints = .{.{ .remainder_unsigned_int = .{ .of = .xword, .is = .qword } }}, |
| 29388 | .patterns = &.{ |
| 29389 | .{ .src = .{ .to_mem, .none } }, |
| 29390 | }, |
| 29391 | .extra_temps = .{ |
| 29392 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 29393 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 29394 | .{ .type = .u32, .kind = .{ .reg = .ecx } }, |
| 29395 | .unused, |
| 29396 | .unused, |
| 29397 | .unused, |
| 29398 | .unused, |
| 29399 | .unused, |
| 29400 | .unused, |
| 29401 | }, |
| 29402 | .dst_temps = .{.mem}, |
| 29403 | .clobbers = .{ .eflags = true }, |
| 29404 | .each = .{ .once = &.{ |
| 29405 | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, |
| 29406 | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, |
| 29407 | .{ ._, ._, .mov, .tmp2d, .sia(-2, .dst0, .add_size_div_8), ._, ._ }, |
| 29408 | .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ }, |
| 29409 | .{ ._, ._, .mov, .tmp2d, .sa(.dst0, .add_bit_size_rem_64), ._, ._ }, |
| 29410 | .{ ._, ._, .bzhi, .tmp2q, .memad(.src0q, .add_size, -16), .tmp2q, ._ }, |
| 29411 | .{ ._, ._, .mov, .memad(.dst0q, .add_size, -16), .tmp2q, ._, ._ }, |
| 29412 | .{ ._, ._, .mov, .memad(.dst0q, .add_size, -8), .si(0), ._, ._ }, |
| 29413 | } }, |
| 29414 | }, .{ |
| 29415 | .required_features = .{ .@"64bit", .bmi2, null, null }, |
| 29416 | .src_constraints = .{ .any_unsigned_int, .any }, |
| 29417 | .dst_constraints = .{.{ .remainder_unsigned_int = .{ .of = .xword, .is = .xword } }}, |
| 29418 | .patterns = &.{ |
| 29419 | .{ .src = .{ .to_mem, .none } }, |
| 29420 | }, |
| 29421 | .extra_temps = .{ |
| 29422 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 29423 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 29424 | .{ .type = .u32, .kind = .{ .reg = .ecx } }, |
| 29425 | .unused, |
| 29426 | .unused, |
| 29427 | .unused, |
| 29428 | .unused, |
| 29429 | .unused, |
| 29430 | .unused, |
| 29431 | }, |
| 29432 | .dst_temps = .{.mem}, |
| 29433 | .clobbers = .{ .eflags = true }, |
| 29434 | .each = .{ .once = &.{ |
| 29435 | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, |
| 29436 | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, |
| 29437 | .{ ._, ._, .mov, .tmp2d, .sia(-1, .dst0, .add_size_div_8), ._, ._ }, |
| 29438 | .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ }, |
| 29439 | .{ ._, ._, .mov, .tmp2d, .sa(.dst0, .add_bit_size_rem_64), ._, ._ }, |
| 29440 | .{ ._, ._, .bzhi, .tmp2q, .memad(.src0q, .add_size, -8), .tmp2q, ._ }, |
| 29441 | .{ ._, ._, .mov, .memad(.dst0q, .add_size, -8), .tmp2q, ._, ._ }, |
| 29442 | } }, |
| 29443 | }, .{ |
| 29444 | .required_features = .{ .@"64bit", null, null, null }, |
| 29445 | .src_constraints = .{ .any_unsigned_int, .any }, |
| 29446 | .dst_constraints = .{.{ .remainder_unsigned_int = .{ .of = .xword, .is = .qword } }}, |
| 29447 | .patterns = &.{ |
| 29448 | .{ .src = .{ .to_mem, .none } }, |
| 29449 | }, |
| 29450 | .extra_temps = .{ |
| 29451 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 29452 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 29453 | .{ .type = .u32, .kind = .{ .reg = .ecx } }, |
| 29454 | .unused, |
| 29455 | .unused, |
| 29456 | .unused, |
| 29457 | .unused, |
| 29458 | .unused, |
| 29459 | .unused, |
| 29460 | }, |
| 29461 | .dst_temps = .{.mem}, |
| 29462 | .clobbers = .{ .eflags = true }, |
| 29463 | .each = .{ .once = &.{ |
| 29464 | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, |
| 29465 | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, |
| 29466 | .{ ._, ._, .mov, .tmp2d, .sia(-2, .dst0, .add_size_div_8), ._, ._ }, |
| 29467 | .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ }, |
| 29468 | .{ ._, ._, .mov, .tmp0q, .ua(.dst0, .add_umax), ._, ._ }, |
| 29469 | .{ ._, ._, .@"and", .tmp0q, .memad(.src0q, .add_size, -16), ._, ._ }, |
| 29470 | .{ ._, ._, .mov, .memad(.dst0q, .add_size, -16), .tmp0q, ._, ._ }, |
| 29471 | .{ ._, ._, .mov, .memad(.dst0q, .add_size, -8), .si(0), ._, ._ }, |
| 29472 | } }, |
| 29473 | }, .{ |
| 29474 | .required_features = .{ .@"64bit", null, null, null }, |
| 29475 | .src_constraints = .{ .any_unsigned_int, .any }, |
| 29476 | .dst_constraints = .{.{ .remainder_unsigned_int = .{ .of = .xword, .is = .xword } }}, |
| 29477 | .patterns = &.{ |
| 29478 | .{ .src = .{ .to_mem, .none } }, |
| 29479 | }, |
| 29480 | .extra_temps = .{ |
| 29481 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 29482 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 29483 | .{ .type = .u32, .kind = .{ .reg = .ecx } }, |
| 29484 | .unused, |
| 29485 | .unused, |
| 29486 | .unused, |
| 29487 | .unused, |
| 29488 | .unused, |
| 29489 | .unused, |
| 29490 | }, |
| 29491 | .dst_temps = .{.mem}, |
| 29492 | .clobbers = .{ .eflags = true }, |
| 29493 | .each = .{ .once = &.{ |
| 29494 | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, |
| 29495 | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, |
| 29496 | .{ ._, ._, .mov, .tmp2d, .sia(-1, .dst0, .add_size_div_8), ._, ._ }, |
| 29497 | .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ }, |
| 29498 | .{ ._, ._, .mov, .tmp0q, .ua(.dst0, .add_umax), ._, ._ }, |
| 29499 | .{ ._, ._, .@"and", .tmp0q, .memad(.src0q, .add_size, -8), ._, ._ }, |
| 29500 | .{ ._, ._, .mov, .memad(.dst0q, .add_size, -8), .tmp0q, ._, ._ }, |
| 29501 | } }, |
| 29502 | }, .{ |
| 29503 | .required_features = .{ .avx, null, null, null }, |
| 29504 | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .byte } }, .any }, |
| 29505 | .dst_constraints = .{.{ .scalar_signed_int = .{ .of = .xword, .is = .byte } }}, |
| 29506 | .patterns = &.{ |
| 29507 | .{ .src = .{ .to_sse, .none } }, |
| 29508 | }, |
| 29509 | .extra_temps = .{ |
| 29510 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 29511 | .{ .kind = .{ .umax_mem = .{ .ref = .dst0, .to_signedness = .unsigned } } }, |
| 29512 | .{ .kind = .{ .smin_mem = .{ .ref = .dst0 } } }, |
| 29513 | .unused, |
| 29514 | .unused, |
| 29515 | .unused, |
| 29516 | .unused, |
| 29517 | .unused, |
| 29518 | .unused, |
| 29519 | }, |
| 29520 | .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, |
| 29521 | .each = .{ .once = &.{ |
| 29522 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 29523 | .{ ._, .vp_, .@"and", .dst0x, .src0x, .lea(.tmp0x), ._ }, |
| 29524 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ }, |
| 29525 | .{ ._, .vp_b, .add, .dst0x, .dst0x, .lea(.tmp0x), ._ }, |
| 29526 | .{ ._, .vp_, .xor, .dst0x, .dst0x, .lea(.tmp0x), ._ }, |
| 29527 | } }, |
| 29528 | }, .{ |
| 29529 | .required_features = .{ .avx, null, null, null }, |
| 29530 | .src_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .xword, .is = .byte } }, .any }, |
| 29531 | .dst_constraints = .{.{ .scalar_unsigned_int = .{ .of = .xword, .is = .byte } }}, |
| 29532 | .patterns = &.{ |
| 29533 | .{ .src = .{ .to_sse, .none } }, |
| 29534 | }, |
| 29535 | .extra_temps = .{ |
| 29536 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 29537 | .{ .kind = .{ .umax_mem = .{ .ref = .dst0 } } }, |
| 29538 | .unused, |
| 29539 | .unused, |
| 29540 | .unused, |
| 29541 | .unused, |
| 29542 | .unused, |
| 29543 | .unused, |
| 29544 | .unused, |
| 29545 | }, |
| 29546 | .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, |
| 29547 | .each = .{ .once = &.{ |
| 29548 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 29549 | .{ ._, .vp_, .@"and", .dst0x, .src0x, .lea(.tmp0x), ._ }, |
| 29550 | } }, |
| 29551 | }, .{ |
| 29552 | .required_features = .{ .sse2, null, null, null }, |
| 29553 | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .byte } }, .any }, |
| 29554 | .dst_constraints = .{.{ .scalar_signed_int = .{ .of = .xword, .is = .byte } }}, |
| 29555 | .patterns = &.{ |
| 29556 | .{ .src = .{ .to_mut_sse, .none } }, |
| 29557 | }, |
| 29558 | .extra_temps = .{ |
| 29559 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 29560 | .{ .kind = .{ .umax_mem = .{ .ref = .dst0, .to_signedness = .unsigned } } }, |
| 29561 | .{ .kind = .{ .smin_mem = .{ .ref = .dst0 } } }, |
| 29562 | .unused, |
| 29563 | .unused, |
| 29564 | .unused, |
| 29565 | .unused, |
| 29566 | .unused, |
| 29567 | .unused, |
| 29568 | }, |
| 29569 | .dst_temps = .{.{ .ref = .src0 }}, |
| 29570 | .each = .{ .once = &.{ |
| 29571 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 29572 | .{ ._, .p_, .@"and", .dst0x, .lea(.tmp0x), ._, ._ }, |
| 29573 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ }, |
| 29574 | .{ ._, .p_b, .add, .dst0x, .lea(.tmp0x), ._, ._ }, |
| 29575 | .{ ._, .p_, .xor, .dst0x, .lea(.tmp0x), ._, ._ }, |
| 29576 | } }, |
| 29577 | }, .{ |
| 29578 | .required_features = .{ .sse2, null, null, null }, |
| 29579 | .src_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .xword, .is = .byte } }, .any }, |
| 29580 | .dst_constraints = .{.{ .scalar_unsigned_int = .{ .of = .xword, .is = .byte } }}, |
| 29581 | .patterns = &.{ |
| 29582 | .{ .src = .{ .to_mut_sse, .none } }, |
| 29583 | }, |
| 29584 | .extra_temps = .{ |
| 29585 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 29586 | .{ .kind = .{ .umax_mem = .{ .ref = .dst0 } } }, |
| 29587 | .unused, |
| 29588 | .unused, |
| 29589 | .unused, |
| 29590 | .unused, |
| 29591 | .unused, |
| 29592 | .unused, |
| 29593 | .unused, |
| 29594 | }, |
| 29595 | .dst_temps = .{.{ .ref = .src0 }}, |
| 29596 | .each = .{ .once = &.{ |
| 29597 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 29598 | .{ ._, .p_, .@"and", .dst0x, .lea(.tmp0x), ._, ._ }, |
| 29599 | } }, |
| 29600 | }, .{ |
| 29601 | .required_features = .{ .sse, null, null, null }, |
| 29602 | .src_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .xword, .is = .byte } }, .any }, |
| 29603 | .dst_constraints = .{.{ .scalar_unsigned_int = .{ .of = .xword, .is = .byte } }}, |
| 29604 | .patterns = &.{ |
| 29605 | .{ .src = .{ .to_mut_sse, .none } }, |
| 29606 | }, |
| 29607 | .extra_temps = .{ |
| 29608 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 29609 | .{ .kind = .{ .umax_mem = .{ .ref = .dst0 } } }, |
| 29610 | .unused, |
| 29611 | .unused, |
| 29612 | .unused, |
| 29613 | .unused, |
| 29614 | .unused, |
| 29615 | .unused, |
| 29616 | .unused, |
| 29617 | }, |
| 29618 | .dst_temps = .{.{ .ref = .src0 }}, |
| 29619 | .each = .{ .once = &.{ |
| 29620 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 29621 | .{ ._, ._ps, .@"and", .dst0x, .lea(.tmp0x), ._, ._ }, |
| 29622 | } }, |
| 29623 | }, .{ |
| 29624 | .required_features = .{ .avx2, null, null, null }, |
| 29625 | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .yword, .is = .byte } }, .any }, |
| 29626 | .dst_constraints = .{.{ .scalar_signed_int = .{ .of = .yword, .is = .byte } }}, |
| 29627 | .patterns = &.{ |
| 29628 | .{ .src = .{ .to_sse, .none } }, |
| 29629 | }, |
| 29630 | .extra_temps = .{ |
| 29631 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 29632 | .{ .kind = .{ .umax_mem = .{ .ref = .dst0, .to_signedness = .unsigned } } }, |
| 29633 | .{ .kind = .{ .smin_mem = .{ .ref = .dst0 } } }, |
| 29634 | .unused, |
| 29635 | .unused, |
| 29636 | .unused, |
| 29637 | .unused, |
| 29638 | .unused, |
| 29639 | .unused, |
| 29640 | }, |
| 29641 | .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, |
| 29642 | .each = .{ .once = &.{ |
| 29643 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 29644 | .{ ._, .vp_, .@"and", .dst0y, .src0y, .lea(.tmp0y), ._ }, |
| 29645 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ }, |
| 29646 | .{ ._, .vp_b, .add, .dst0y, .dst0y, .lea(.tmp0y), ._ }, |
| 29647 | .{ ._, .vp_, .xor, .dst0y, .dst0y, .lea(.tmp0y), ._ }, |
| 29648 | } }, |
| 29649 | }, .{ |
| 29650 | .required_features = .{ .avx2, null, null, null }, |
| 29651 | .src_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .yword, .is = .byte } }, .any }, |
| 29652 | .dst_constraints = .{.{ .scalar_unsigned_int = .{ .of = .yword, .is = .byte } }}, |
| 29653 | .patterns = &.{ |
| 29654 | .{ .src = .{ .to_sse, .none } }, |
| 29655 | }, |
| 29656 | .extra_temps = .{ |
| 29657 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 29658 | .{ .kind = .{ .umax_mem = .{ .ref = .dst0 } } }, |
| 29659 | .unused, |
| 29660 | .unused, |
| 29661 | .unused, |
| 29662 | .unused, |
| 29663 | .unused, |
| 29664 | .unused, |
| 29665 | .unused, |
| 29666 | }, |
| 29667 | .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, |
| 29668 | .each = .{ .once = &.{ |
| 29669 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 29670 | .{ ._, .vp_, .@"and", .dst0y, .src0y, .lea(.tmp0y), ._ }, |
| 29671 | } }, |
| 29672 | }, .{ |
| 29673 | .required_features = .{ .avx2, null, null, null }, |
| 29674 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .yword, .is = .byte } }, .any }, |
| 29675 | .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .yword, .is = .byte } }}, |
| 29676 | .patterns = &.{ |
| 29677 | .{ .src = .{ .to_mem, .none } }, |
| 29678 | }, |
| 29679 | .extra_temps = .{ |
| 29680 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 29681 | .{ .type = .vector_32_i8, .kind = .{ .rc = .sse } }, |
| 29682 | .{ .type = .vector_32_i8, .kind = .{ .rc = .sse } }, |
| 29683 | .{ .type = .vector_32_i8, .kind = .{ .rc = .sse } }, |
| 29684 | .{ .kind = .{ .umax_mem = .{ .ref = .dst0, .to_signedness = .unsigned } } }, |
| 29685 | .{ .kind = .{ .smin_mem = .{ .ref = .dst0 } } }, |
| 29686 | .unused, |
| 29687 | .unused, |
| 29688 | .unused, |
| 29689 | }, |
| 29690 | .dst_temps = .{.mem}, |
| 29691 | .clobbers = .{ .eflags = true }, |
| 29692 | .each = .{ .once = &.{ |
| 29693 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp4), ._, ._ }, |
| 29694 | .{ ._, .v_dqa, .mov, .tmp1y, .lea(.tmp0y), ._, ._ }, |
| 29695 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp5), ._, ._ }, |
| 29696 | .{ ._, .v_dqa, .mov, .tmp2y, .lea(.tmp0y), ._, ._ }, |
| 29697 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 29698 | .{ .@"0:", .vp_, .@"and", .tmp3y, .tmp1y, .memia(.src0y, .tmp0, .add_unaligned_size), ._ }, |
| 29699 | .{ ._, .vp_b, .add, .tmp3y, .tmp3y, .tmp2y, ._ }, |
| 29700 | .{ ._, .vp_, .xor, .tmp3y, .tmp3y, .tmp2y, ._ }, |
| 29701 | .{ ._, .v_dqa, .mov, .memia(.dst0y, .tmp0, .add_unaligned_size), .tmp3y, ._, ._ }, |
| 29702 | .{ ._, ._, .add, .tmp0p, .si(32), ._, ._ }, |
| 29703 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 29704 | } }, |
| 29705 | }, .{ |
| 29706 | .required_features = .{ .avx2, null, null, null }, |
| 29707 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .yword, .is = .byte } }, .any }, |
| 29708 | .dst_constraints = .{.{ .multiple_scalar_unsigned_int = .{ .of = .yword, .is = .byte } }}, |
| 29709 | .patterns = &.{ |
| 29710 | .{ .src = .{ .to_mem, .none } }, |
| 29711 | }, |
| 29712 | .extra_temps = .{ |
| 29713 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 29714 | .{ .type = .vector_32_u8, .kind = .{ .rc = .sse } }, |
| 29715 | .{ .type = .vector_32_u8, .kind = .{ .rc = .sse } }, |
| 29716 | .{ .kind = .{ .umax_mem = .{ .ref = .dst0, .to_signedness = .unsigned } } }, |
| 29717 | .unused, |
| 29718 | .unused, |
| 29719 | .unused, |
| 29720 | .unused, |
| 29721 | .unused, |
| 29722 | }, |
| 29723 | .dst_temps = .{.mem}, |
| 29724 | .clobbers = .{ .eflags = true }, |
| 29725 | .each = .{ .once = &.{ |
| 29726 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp3), ._, ._ }, |
| 29727 | .{ ._, .v_dqa, .mov, .tmp1y, .lea(.tmp0y), ._, ._ }, |
| 29728 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 29729 | .{ .@"0:", .vp_, .@"and", .tmp2y, .tmp1y, .memia(.src0y, .tmp0, .add_unaligned_size), ._ }, |
| 29730 | .{ ._, .v_dqa, .mov, .memia(.dst0y, .tmp0, .add_unaligned_size), .tmp2y, ._, ._ }, |
| 29731 | .{ ._, ._, .add, .tmp0p, .si(32), ._, ._ }, |
| 29732 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 29733 | } }, |
| 29734 | }, .{ |
| 29735 | .required_features = .{ .avx, null, null, null }, |
| 29736 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .byte } }, .any }, |
| 29737 | .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .byte } }}, |
| 29738 | .patterns = &.{ |
| 29739 | .{ .src = .{ .to_mem, .none } }, |
| 29740 | }, |
| 29741 | .extra_temps = .{ |
| 29742 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 29743 | .{ .type = .vector_16_i8, .kind = .{ .rc = .sse } }, |
| 29744 | .{ .type = .vector_16_i8, .kind = .{ .rc = .sse } }, |
| 29745 | .{ .type = .vector_16_i8, .kind = .{ .rc = .sse } }, |
| 29746 | .{ .kind = .{ .umax_mem = .{ .ref = .dst0, .to_signedness = .unsigned } } }, |
| 29747 | .{ .kind = .{ .smin_mem = .{ .ref = .dst0 } } }, |
| 29748 | .unused, |
| 29749 | .unused, |
| 29750 | .unused, |
| 29751 | }, |
| 29752 | .dst_temps = .{.mem}, |
| 29753 | .clobbers = .{ .eflags = true }, |
| 29754 | .each = .{ .once = &.{ |
| 29755 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp4), ._, ._ }, |
| 29756 | .{ ._, .v_dqa, .mov, .tmp1x, .lea(.tmp0x), ._, ._ }, |
| 29757 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp5), ._, ._ }, |
| 29758 | .{ ._, .v_dqa, .mov, .tmp2x, .lea(.tmp0x), ._, ._ }, |
| 29759 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 29760 | .{ .@"0:", .vp_, .@"and", .tmp3x, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._ }, |
| 29761 | .{ ._, .vp_b, .add, .tmp3x, .tmp3x, .tmp2x, ._ }, |
| 29762 | .{ ._, .vp_, .xor, .tmp3x, .tmp3x, .tmp2x, ._ }, |
| 29763 | .{ ._, .v_dqa, .mov, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 29764 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 29765 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 29766 | } }, |
| 29767 | }, .{ |
| 29768 | .required_features = .{ .avx, null, null, null }, |
| 29769 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .byte } }, .any }, |
| 29770 | .dst_constraints = .{.{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .byte } }}, |
| 29771 | .patterns = &.{ |
| 29772 | .{ .src = .{ .to_mem, .none } }, |
| 29773 | }, |
| 29774 | .extra_temps = .{ |
| 29775 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 29776 | .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } }, |
| 29777 | .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } }, |
| 29778 | .{ .kind = .{ .umax_mem = .{ .ref = .dst0, .to_signedness = .unsigned } } }, |
| 29779 | .unused, |
| 29780 | .unused, |
| 29781 | .unused, |
| 29782 | .unused, |
| 29783 | .unused, |
| 29784 | }, |
| 29785 | .dst_temps = .{.mem}, |
| 29786 | .clobbers = .{ .eflags = true }, |
| 29787 | .each = .{ .once = &.{ |
| 29788 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp3), ._, ._ }, |
| 29789 | .{ ._, .v_dqa, .mov, .tmp1x, .lea(.tmp0x), ._, ._ }, |
| 29790 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 29791 | .{ .@"0:", .vp_, .@"and", .tmp2x, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._ }, |
| 29792 | .{ ._, .v_dqa, .mov, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp2x, ._, ._ }, |
| 29793 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 29794 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 29795 | } }, |
| 29796 | }, .{ |
| 29797 | .required_features = .{ .sse2, null, null, null }, |
| 29798 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .byte } }, .any }, |
| 29799 | .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .byte } }}, |
| 29800 | .patterns = &.{ |
| 29801 | .{ .src = .{ .to_mem, .none } }, |
| 29802 | }, |
| 29803 | .extra_temps = .{ |
| 29804 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 29805 | .{ .type = .vector_16_i8, .kind = .{ .rc = .sse } }, |
| 29806 | .{ .type = .vector_16_i8, .kind = .{ .rc = .sse } }, |
| 29807 | .{ .type = .vector_16_i8, .kind = .{ .rc = .sse } }, |
| 29808 | .{ .kind = .{ .umax_mem = .{ .ref = .dst0, .to_signedness = .unsigned } } }, |
| 29809 | .{ .kind = .{ .smin_mem = .{ .ref = .dst0 } } }, |
| 29810 | .unused, |
| 29811 | .unused, |
| 29812 | .unused, |
| 29813 | }, |
| 29814 | .dst_temps = .{.mem}, |
| 29815 | .clobbers = .{ .eflags = true }, |
| 29816 | .each = .{ .once = &.{ |
| 29817 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp4), ._, ._ }, |
| 29818 | .{ ._, ._dqa, .mov, .tmp1x, .lea(.tmp0x), ._, ._ }, |
| 29819 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp5), ._, ._ }, |
| 29820 | .{ ._, ._dqa, .mov, .tmp2x, .lea(.tmp0x), ._, ._ }, |
| 29821 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 29822 | .{ .@"0:", ._dqa, .mov, .tmp3x, .tmp1x, ._, ._ }, |
| 29823 | .{ ._, .p_, .@"and", .tmp3x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, |
| 29824 | .{ ._, .p_b, .add, .tmp3x, .tmp2x, ._, ._ }, |
| 29825 | .{ ._, .p_, .xor, .tmp3x, .tmp2x, ._, ._ }, |
| 29826 | .{ ._, ._dqa, .mov, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 29827 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 29828 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 29829 | } }, |
| 29830 | }, .{ |
| 29831 | .required_features = .{ .sse2, null, null, null }, |
| 29832 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .byte } }, .any }, |
| 29833 | .dst_constraints = .{.{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .byte } }}, |
| 29834 | .patterns = &.{ |
| 29835 | .{ .src = .{ .to_mem, .none } }, |
| 29836 | }, |
| 29837 | .extra_temps = .{ |
| 29838 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 29839 | .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } }, |
| 29840 | .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } }, |
| 29841 | .{ .kind = .{ .umax_mem = .{ .ref = .dst0, .to_signedness = .unsigned } } }, |
| 29842 | .unused, |
| 29843 | .unused, |
| 29844 | .unused, |
| 29845 | .unused, |
| 29846 | .unused, |
| 29847 | }, |
| 29848 | .dst_temps = .{.mem}, |
| 29849 | .clobbers = .{ .eflags = true }, |
| 29850 | .each = .{ .once = &.{ |
| 29851 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp3), ._, ._ }, |
| 29852 | .{ ._, ._dqa, .mov, .tmp1x, .lea(.tmp0x), ._, ._ }, |
| 29853 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 29854 | .{ .@"0:", ._dqa, .mov, .tmp2x, .tmp1x, ._, ._ }, |
| 29855 | .{ ._, .p_, .@"and", .tmp2x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, |
| 29856 | .{ ._, ._dqa, .mov, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp2x, ._, ._ }, |
| 29857 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 29858 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 29859 | } }, |
| 29860 | }, .{ |
| 29861 | .required_features = .{ .sse, null, null, null }, |
| 29862 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .byte } }, .any }, |
| 29863 | .dst_constraints = .{.{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .byte } }}, |
| 29864 | .patterns = &.{ |
| 29865 | .{ .src = .{ .to_mem, .none } }, |
| 29866 | }, |
| 29867 | .extra_temps = .{ |
| 29868 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 29869 | .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } }, |
| 29870 | .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } }, |
| 29871 | .{ .kind = .{ .umax_mem = .{ .ref = .dst0, .to_signedness = .unsigned } } }, |
| 29872 | .unused, |
| 29873 | .unused, |
| 29874 | .unused, |
| 29875 | .unused, |
| 29876 | .unused, |
| 29877 | }, |
| 29878 | .dst_temps = .{.mem}, |
| 29879 | .clobbers = .{ .eflags = true }, |
| 29880 | .each = .{ .once = &.{ |
| 29881 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp3), ._, ._ }, |
| 29882 | .{ ._, ._ps, .mova, .tmp1x, .lea(.tmp0x), ._, ._ }, |
| 29883 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 29884 | .{ .@"0:", ._ps, .mova, .tmp2x, .tmp1x, ._, ._ }, |
| 29885 | .{ ._, ._ps, .@"and", .tmp2x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, |
| 29886 | .{ ._, ._ps, .mova, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp2x, ._, ._ }, |
| 29887 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 29888 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 29889 | } }, |
| 29890 | }, .{ |
| 29891 | .required_features = .{ .slow_incdec, null, null, null }, |
| 29892 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any }, |
| 29893 | .dst_constraints = .{.{ .multiple_scalar_exact_signed_int = .{ .of = .byte, .is = 1 } }}, |
| 29894 | .patterns = &.{ |
| 29895 | .{ .src = .{ .to_mem, .none } }, |
| 29896 | }, |
| 29897 | .extra_temps = .{ |
| 29898 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 29899 | .{ .type = .i8, .kind = .{ .rc = .general_purpose } }, |
| 29900 | .unused, |
| 29901 | .unused, |
| 29902 | .unused, |
| 29903 | .unused, |
| 29904 | .unused, |
| 29905 | .unused, |
| 29906 | .unused, |
| 29907 | }, |
| 29908 | .dst_temps = .{.mem}, |
| 29909 | .clobbers = .{ .eflags = true }, |
| 29910 | .each = .{ .once = &.{ |
| 29911 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 29912 | .{ .@"0:", ._, .movsx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| 29913 | .{ ._, ._, .@"and", .tmp1b, .si(1), ._, ._ }, |
| 29914 | .{ ._, ._, .neg, .tmp1b, ._, ._, ._ }, |
| 29915 | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp1b, ._, ._ }, |
| 29916 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, |
| 29917 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 29918 | } }, |
| 29919 | }, .{ |
| 29920 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any }, |
| 29921 | .dst_constraints = .{.{ .multiple_scalar_exact_signed_int = .{ .of = .byte, .is = 1 } }}, |
| 29922 | .patterns = &.{ |
| 29923 | .{ .src = .{ .to_mem, .none } }, |
| 29924 | }, |
| 29925 | .extra_temps = .{ |
| 29926 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 29927 | .{ .type = .i8, .kind = .{ .rc = .general_purpose } }, |
| 29928 | .unused, |
| 29929 | .unused, |
| 29930 | .unused, |
| 29931 | .unused, |
| 29932 | .unused, |
| 29933 | .unused, |
| 29934 | .unused, |
| 29935 | }, |
| 29936 | .dst_temps = .{.mem}, |
| 29937 | .clobbers = .{ .eflags = true }, |
| 29938 | .each = .{ .once = &.{ |
| 29939 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 29940 | .{ .@"0:", ._, .movsx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| 29941 | .{ ._, ._, .@"and", .tmp1b, .si(1), ._, ._ }, |
| 29942 | .{ ._, ._, .neg, .tmp1b, ._, ._, ._ }, |
| 29943 | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp1b, ._, ._ }, |
| 29944 | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, |
| 29945 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| 29946 | } }, |
| 29947 | }, .{ |
| 29948 | .required_features = .{ .slow_incdec, null, null, null }, |
| 29949 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any }, |
| 29950 | .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }}, |
| 29951 | .patterns = &.{ |
| 29952 | .{ .src = .{ .to_mem, .none } }, |
| 29953 | }, |
| 29954 | .extra_temps = .{ |
| 29955 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 29956 | .{ .type = .i8, .kind = .{ .rc = .general_purpose } }, |
| 29957 | .unused, |
| 29958 | .unused, |
| 29959 | .unused, |
| 29960 | .unused, |
| 29961 | .unused, |
| 29962 | .unused, |
| 29963 | .unused, |
| 29964 | }, |
| 29965 | .dst_temps = .{.mem}, |
| 29966 | .clobbers = .{ .eflags = true }, |
| 29967 | .each = .{ .once = &.{ |
| 29968 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 29969 | .{ .@"0:", ._, .movsx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| 29970 | .{ ._, ._l, .sa, .tmp1b, .uia(8, .dst0, .sub_bit_size), ._, ._ }, |
| 29971 | .{ ._, ._r, .sa, .tmp1b, .uia(8, .dst0, .sub_bit_size), ._, ._ }, |
| 29972 | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp1b, ._, ._ }, |
| 29973 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, |
| 29974 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 29975 | } }, |
| 29976 | }, .{ |
| 29977 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any }, |
| 29978 | .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }}, |
| 29979 | .patterns = &.{ |
| 29980 | .{ .src = .{ .to_mem, .none } }, |
| 29981 | }, |
| 29982 | .extra_temps = .{ |
| 29983 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 29984 | .{ .type = .i8, .kind = .{ .rc = .general_purpose } }, |
| 29985 | .unused, |
| 29986 | .unused, |
| 29987 | .unused, |
| 29988 | .unused, |
| 29989 | .unused, |
| 29990 | .unused, |
| 29991 | .unused, |
| 29992 | }, |
| 29993 | .dst_temps = .{.mem}, |
| 29994 | .clobbers = .{ .eflags = true }, |
| 29995 | .each = .{ .once = &.{ |
| 29996 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 29997 | .{ .@"0:", ._, .movsx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| 29998 | .{ ._, ._l, .sa, .tmp1b, .uia(8, .dst0, .sub_bit_size), ._, ._ }, |
| 29999 | .{ ._, ._r, .sa, .tmp1b, .uia(8, .dst0, .sub_bit_size), ._, ._ }, |
| 30000 | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp1b, ._, ._ }, |
| 30001 | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, |
| 30002 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| 30003 | } }, |
| 30004 | }, .{ |
| 30005 | .required_features = .{ .slow_incdec, null, null, null }, |
| 30006 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any }, |
| 30007 | .dst_constraints = .{.{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }}, |
| 30008 | .patterns = &.{ |
| 30009 | .{ .src = .{ .to_mem, .none } }, |
| 30010 | }, |
| 30011 | .extra_temps = .{ |
| 30012 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 30013 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| 30014 | .unused, |
| 30015 | .unused, |
| 30016 | .unused, |
| 30017 | .unused, |
| 30018 | .unused, |
| 30019 | .unused, |
| 30020 | .unused, |
| 30021 | }, |
| 30022 | .dst_temps = .{.mem}, |
| 30023 | .clobbers = .{ .eflags = true }, |
| 30024 | .each = .{ .once = &.{ |
| 30025 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 30026 | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| 30027 | .{ ._, ._, .@"and", .tmp1b, .sa(.dst0, .add_umax), ._, ._ }, |
| 30028 | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp1b, ._, ._ }, |
| 30029 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, |
| 30030 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 30031 | } }, |
| 30032 | }, .{ |
| 30033 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any }, |
| 30034 | .dst_constraints = .{.{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }}, |
| 30035 | .patterns = &.{ |
| 30036 | .{ .src = .{ .to_mem, .none } }, |
| 30037 | }, |
| 30038 | .extra_temps = .{ |
| 30039 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 30040 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| 30041 | .unused, |
| 30042 | .unused, |
| 30043 | .unused, |
| 30044 | .unused, |
| 30045 | .unused, |
| 30046 | .unused, |
| 30047 | .unused, |
| 30048 | }, |
| 30049 | .dst_temps = .{.mem}, |
| 30050 | .clobbers = .{ .eflags = true }, |
| 30051 | .each = .{ .once = &.{ |
| 30052 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 30053 | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| 30054 | .{ ._, ._, .@"and", .tmp1b, .sa(.dst0, .add_umax), ._, ._ }, |
| 30055 | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp1b, ._, ._ }, |
| 30056 | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, |
| 30057 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| 30058 | } }, |
| 30059 | }, .{ |
| 30060 | .required_features = .{ .slow_incdec, null, null, null }, |
| 30061 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .word, .is = .word } }, .any }, |
| 30062 | .dst_constraints = .{.{ .multiple_scalar_exact_int = .{ .of = .byte, .is = 8 } }}, |
| 30063 | .patterns = &.{ |
| 30064 | .{ .src = .{ .to_mem, .none } }, |
| 30065 | }, |
| 30066 | .extra_temps = .{ |
| 30067 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 30068 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| 30069 | .unused, |
| 30070 | .unused, |
| 30071 | .unused, |
| 30072 | .unused, |
| 30073 | .unused, |
| 30074 | .unused, |
| 30075 | .unused, |
| 30076 | }, |
| 30077 | .dst_temps = .{.mem}, |
| 30078 | .clobbers = .{ .eflags = true }, |
| 30079 | .each = .{ .once = &.{ |
| 30080 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 30081 | .{ .@"0:", ._, .movzx, .tmp1d, .memsia(.src0b, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| 30082 | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp1b, ._, ._ }, |
| 30083 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, |
| 30084 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 30085 | } }, |
| 30086 | }, .{ |
| 30087 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .word, .is = .word } }, .any }, |
| 30088 | .dst_constraints = .{.{ .multiple_scalar_exact_int = .{ .of = .byte, .is = 8 } }}, |
| 30089 | .patterns = &.{ |
| 30090 | .{ .src = .{ .to_mem, .none } }, |
| 30091 | }, |
| 30092 | .extra_temps = .{ |
| 30093 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 30094 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| 30095 | .unused, |
| 30096 | .unused, |
| 30097 | .unused, |
| 30098 | .unused, |
| 30099 | .unused, |
| 30100 | .unused, |
| 30101 | .unused, |
| 30102 | }, |
| 30103 | .dst_temps = .{.mem}, |
| 30104 | .clobbers = .{ .eflags = true }, |
| 30105 | .each = .{ .once = &.{ |
| 30106 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 30107 | .{ .@"0:", ._, .movzx, .tmp1d, .memsia(.src0b, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| 30108 | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp1b, ._, ._ }, |
| 30109 | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, |
| 30110 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| 30111 | } }, |
| 30112 | }, .{ |
| 30113 | .required_features = .{ .slow_incdec, null, null, null }, |
| 30114 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .word, .is = .word } }, .any }, |
| 30115 | .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }}, |
| 30116 | .patterns = &.{ |
| 30117 | .{ .src = .{ .to_mem, .none } }, |
| 30118 | }, |
| 30119 | .extra_temps = .{ |
| 30120 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 30121 | .{ .type = .i8, .kind = .{ .rc = .general_purpose } }, |
| 30122 | .unused, |
| 30123 | .unused, |
| 30124 | .unused, |
| 30125 | .unused, |
| 30126 | .unused, |
| 30127 | .unused, |
| 30128 | .unused, |
| 30129 | }, |
| 30130 | .dst_temps = .{.mem}, |
| 30131 | .clobbers = .{ .eflags = true }, |
| 30132 | .each = .{ .once = &.{ |
| 30133 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 30134 | .{ .@"0:", ._, .movsx, .tmp1d, .memsia(.src0b, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| 30135 | .{ ._, ._l, .sa, .tmp1b, .uia(8, .dst0, .sub_bit_size), ._, ._ }, |
| 30136 | .{ ._, ._r, .sa, .tmp1b, .uia(8, .dst0, .sub_bit_size), ._, ._ }, |
| 30137 | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp1b, ._, ._ }, |
| 30138 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, |
| 30139 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 30140 | } }, |
| 30141 | }, .{ |
| 30142 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .word, .is = .word } }, .any }, |
| 30143 | .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }}, |
| 30144 | .patterns = &.{ |
| 30145 | .{ .src = .{ .to_mem, .none } }, |
| 30146 | }, |
| 30147 | .extra_temps = .{ |
| 30148 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 30149 | .{ .type = .i8, .kind = .{ .rc = .general_purpose } }, |
| 30150 | .unused, |
| 30151 | .unused, |
| 30152 | .unused, |
| 30153 | .unused, |
| 30154 | .unused, |
| 30155 | .unused, |
| 30156 | .unused, |
| 30157 | }, |
| 30158 | .dst_temps = .{.mem}, |
| 30159 | .clobbers = .{ .eflags = true }, |
| 30160 | .each = .{ .once = &.{ |
| 30161 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 30162 | .{ .@"0:", ._, .movsx, .tmp1d, .memsia(.src0b, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| 30163 | .{ ._, ._l, .sa, .tmp1b, .uia(8, .dst0, .sub_bit_size), ._, ._ }, |
| 30164 | .{ ._, ._r, .sa, .tmp1b, .uia(8, .dst0, .sub_bit_size), ._, ._ }, |
| 30165 | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp1b, ._, ._ }, |
| 30166 | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, |
| 30167 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| 30168 | } }, |
| 30169 | }, .{ |
| 30170 | .required_features = .{ .slow_incdec, null, null, null }, |
| 30171 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .word } }, .any }, |
| 30172 | .dst_constraints = .{.{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }}, |
| 30173 | .patterns = &.{ |
| 30174 | .{ .src = .{ .to_mem, .none } }, |
| 30175 | }, |
| 30176 | .extra_temps = .{ |
| 30177 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 30178 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| 30179 | .unused, |
| 30180 | .unused, |
| 30181 | .unused, |
| 30182 | .unused, |
| 30183 | .unused, |
| 30184 | .unused, |
| 30185 | .unused, |
| 30186 | }, |
| 30187 | .dst_temps = .{.mem}, |
| 30188 | .clobbers = .{ .eflags = true }, |
| 30189 | .each = .{ .once = &.{ |
| 30190 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 30191 | .{ .@"0:", ._, .movzx, .tmp1d, .memsia(.src0b, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| 30192 | .{ ._, ._, .@"and", .tmp1b, .sa(.dst0, .add_umax), ._, ._ }, |
| 30193 | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp1b, ._, ._ }, |
| 30194 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, |
| 30195 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 30196 | } }, |
| 30197 | }, .{ |
| 30198 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .word } }, .any }, |
| 30199 | .dst_constraints = .{.{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }}, |
| 30200 | .patterns = &.{ |
| 30201 | .{ .src = .{ .to_mem, .none } }, |
| 30202 | }, |
| 30203 | .extra_temps = .{ |
| 30204 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 30205 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| 30206 | .unused, |
| 30207 | .unused, |
| 30208 | .unused, |
| 30209 | .unused, |
| 30210 | .unused, |
| 30211 | .unused, |
| 30212 | .unused, |
| 30213 | }, |
| 30214 | .dst_temps = .{.mem}, |
| 30215 | .clobbers = .{ .eflags = true }, |
| 30216 | .each = .{ .once = &.{ |
| 30217 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 30218 | .{ .@"0:", ._, .movzx, .tmp1d, .memsia(.src0b, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| 30219 | .{ ._, ._, .@"and", .tmp1b, .sa(.dst0, .add_umax), ._, ._ }, |
| 30220 | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp1b, ._, ._ }, |
| 30221 | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, |
| 30222 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| 30223 | } }, |
| 30224 | }, .{ |
| 30225 | .required_features = .{ .slow_incdec, null, null, null }, |
| 30226 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .dword, .is = .dword } }, .any }, |
| 30227 | .dst_constraints = .{.{ .multiple_scalar_exact_int = .{ .of = .byte, .is = 8 } }}, |
| 30228 | .patterns = &.{ |
| 30229 | .{ .src = .{ .to_mem, .none } }, |
| 30230 | }, |
| 30231 | .extra_temps = .{ |
| 30232 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 30233 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| 30234 | .unused, |
| 30235 | .unused, |
| 30236 | .unused, |
| 30237 | .unused, |
| 30238 | .unused, |
| 30239 | .unused, |
| 30240 | .unused, |
| 30241 | }, |
| 30242 | .dst_temps = .{.mem}, |
| 30243 | .clobbers = .{ .eflags = true }, |
| 30244 | .each = .{ .once = &.{ |
| 30245 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 30246 | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, |
| 30247 | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp1b, ._, ._ }, |
| 30248 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, |
| 30249 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 30250 | } }, |
| 30251 | }, .{ |
| 30252 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .dword, .is = .dword } }, .any }, |
| 30253 | .dst_constraints = .{.{ .multiple_scalar_exact_int = .{ .of = .byte, .is = 8 } }}, |
| 30254 | .patterns = &.{ |
| 30255 | .{ .src = .{ .to_mem, .none } }, |
| 30256 | }, |
| 30257 | .extra_temps = .{ |
| 30258 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 30259 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| 30260 | .unused, |
| 30261 | .unused, |
| 30262 | .unused, |
| 30263 | .unused, |
| 30264 | .unused, |
| 30265 | .unused, |
| 30266 | .unused, |
| 30267 | }, |
| 30268 | .dst_temps = .{.mem}, |
| 30269 | .clobbers = .{ .eflags = true }, |
| 30270 | .each = .{ .once = &.{ |
| 30271 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 30272 | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, |
| 30273 | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp1b, ._, ._ }, |
| 30274 | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, |
| 30275 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| 30276 | } }, |
| 30277 | }, .{ |
| 30278 | .required_features = .{ .slow_incdec, null, null, null }, |
| 30279 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }, .any }, |
| 30280 | .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }}, |
| 30281 | .patterns = &.{ |
| 30282 | .{ .src = .{ .to_mem, .none } }, |
| 30283 | }, |
| 30284 | .extra_temps = .{ |
| 30285 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 30286 | .{ .type = .i8, .kind = .{ .rc = .general_purpose } }, |
| 30287 | .unused, |
| 30288 | .unused, |
| 30289 | .unused, |
| 30290 | .unused, |
| 30291 | .unused, |
| 30292 | .unused, |
| 30293 | .unused, |
| 30294 | }, |
| 30295 | .dst_temps = .{.mem}, |
| 30296 | .clobbers = .{ .eflags = true }, |
| 30297 | .each = .{ .once = &.{ |
| 30298 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 30299 | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, |
| 30300 | .{ ._, ._l, .sa, .tmp1b, .uia(8, .dst0, .sub_bit_size), ._, ._ }, |
| 30301 | .{ ._, ._r, .sa, .tmp1b, .uia(8, .dst0, .sub_bit_size), ._, ._ }, |
| 30302 | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp1b, ._, ._ }, |
| 30303 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, |
| 30304 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 30305 | } }, |
| 30306 | }, .{ |
| 30307 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }, .any }, |
| 30308 | .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }}, |
| 30309 | .patterns = &.{ |
| 30310 | .{ .src = .{ .to_mem, .none } }, |
| 30311 | }, |
| 30312 | .extra_temps = .{ |
| 30313 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 30314 | .{ .type = .i8, .kind = .{ .rc = .general_purpose } }, |
| 30315 | .unused, |
| 30316 | .unused, |
| 30317 | .unused, |
| 30318 | .unused, |
| 30319 | .unused, |
| 30320 | .unused, |
| 30321 | .unused, |
| 30322 | }, |
| 30323 | .dst_temps = .{.mem}, |
| 30324 | .clobbers = .{ .eflags = true }, |
| 30325 | .each = .{ .once = &.{ |
| 30326 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 30327 | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, |
| 30328 | .{ ._, ._l, .sa, .tmp1b, .uia(8, .dst0, .sub_bit_size), ._, ._ }, |
| 30329 | .{ ._, ._r, .sa, .tmp1b, .uia(8, .dst0, .sub_bit_size), ._, ._ }, |
| 30330 | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp1b, ._, ._ }, |
| 30331 | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, |
| 30332 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| 30333 | } }, |
| 30334 | }, .{ |
| 30335 | .required_features = .{ .bmi2, .slow_incdec, null, null }, |
| 30336 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, .any }, |
| 30337 | .dst_constraints = .{.{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }}, |
| 30338 | .patterns = &.{ |
| 30339 | .{ .src = .{ .to_mem, .none } }, |
| 30340 | }, |
| 30341 | .extra_temps = .{ |
| 30342 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 30343 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| 30344 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| 30345 | .unused, |
| 30346 | .unused, |
| 30347 | .unused, |
| 30348 | .unused, |
| 30349 | .unused, |
| 30350 | .unused, |
| 30351 | }, |
| 30352 | .dst_temps = .{.mem}, |
| 30353 | .clobbers = .{ .eflags = true }, |
| 30354 | .each = .{ .once = &.{ |
| 30355 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 30356 | .{ ._, ._, .mov, .tmp1d, .sa(.dst0, .add_bit_size), ._, ._ }, |
| 30357 | .{ .@"0:", ._, .bzhi, .tmp2d, .memsia(.src0d, .@"4", .tmp0, .add_unaligned_size), .tmp1d, ._ }, |
| 30358 | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp2b, ._, ._ }, |
| 30359 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, |
| 30360 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 30361 | } }, |
| 30362 | }, .{ |
| 30363 | .required_features = .{ .bmi2, null, null, null }, |
| 30364 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, .any }, |
| 30365 | .dst_constraints = .{.{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }}, |
| 30366 | .patterns = &.{ |
| 30367 | .{ .src = .{ .to_mem, .none } }, |
| 30368 | }, |
| 30369 | .extra_temps = .{ |
| 30370 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 30371 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| 30372 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| 30373 | .unused, |
| 30374 | .unused, |
| 30375 | .unused, |
| 30376 | .unused, |
| 30377 | .unused, |
| 30378 | .unused, |
| 30379 | }, |
| 30380 | .dst_temps = .{.mem}, |
| 30381 | .clobbers = .{ .eflags = true }, |
| 30382 | .each = .{ .once = &.{ |
| 30383 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 30384 | .{ ._, ._, .mov, .tmp1d, .sa(.dst0, .add_bit_size), ._, ._ }, |
| 30385 | .{ .@"0:", ._, .bzhi, .tmp2d, .memsia(.src0d, .@"4", .tmp0, .add_unaligned_size), .tmp1d, ._ }, |
| 30386 | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp2b, ._, ._ }, |
| 30387 | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, |
| 30388 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| 30389 | } }, |
| 30390 | }, .{ |
| 30391 | .required_features = .{ .slow_incdec, null, null, null }, |
| 30392 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, .any }, |
| 30393 | .dst_constraints = .{.{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }}, |
| 30394 | .patterns = &.{ |
| 30395 | .{ .src = .{ .to_mem, .none } }, |
| 30396 | }, |
| 30397 | .extra_temps = .{ |
| 30398 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 30399 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| 30400 | .unused, |
| 30401 | .unused, |
| 30402 | .unused, |
| 30403 | .unused, |
| 30404 | .unused, |
| 30405 | .unused, |
| 30406 | .unused, |
| 30407 | }, |
| 30408 | .dst_temps = .{.mem}, |
| 30409 | .clobbers = .{ .eflags = true }, |
| 30410 | .each = .{ .once = &.{ |
| 30411 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 30412 | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, |
| 30413 | .{ ._, ._, .@"and", .tmp1b, .sa(.dst0, .add_umax), ._, ._ }, |
| 30414 | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp1b, ._, ._ }, |
| 30415 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, |
| 30416 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 30417 | } }, |
| 30418 | }, .{ |
| 30419 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, .any }, |
| 30420 | .dst_constraints = .{.{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }}, |
| 30421 | .patterns = &.{ |
| 30422 | .{ .src = .{ .to_mem, .none } }, |
| 30423 | }, |
| 30424 | .extra_temps = .{ |
| 30425 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 30426 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| 30427 | .unused, |
| 30428 | .unused, |
| 30429 | .unused, |
| 30430 | .unused, |
| 30431 | .unused, |
| 30432 | .unused, |
| 30433 | .unused, |
| 30434 | }, |
| 30435 | .dst_temps = .{.mem}, |
| 30436 | .clobbers = .{ .eflags = true }, |
| 30437 | .each = .{ .once = &.{ |
| 30438 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 30439 | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, |
| 30440 | .{ ._, ._, .@"and", .tmp1b, .sa(.dst0, .add_umax), ._, ._ }, |
| 30441 | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp1b, ._, ._ }, |
| 30442 | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, |
| 30443 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| 30444 | } }, |
| 30445 | }, .{ |
| 30446 | .required_features = .{ .slow_incdec, null, null, null }, |
| 30447 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .qword, .is = .qword } }, .any }, |
| 30448 | .dst_constraints = .{.{ .multiple_scalar_exact_int = .{ .of = .byte, .is = 8 } }}, |
| 30449 | .patterns = &.{ |
| 30450 | .{ .src = .{ .to_mem, .none } }, |
| 30451 | }, |
| 30452 | .extra_temps = .{ |
| 30453 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 30454 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| 30455 | .unused, |
| 30456 | .unused, |
| 30457 | .unused, |
| 30458 | .unused, |
| 30459 | .unused, |
| 30460 | .unused, |
| 30461 | .unused, |
| 30462 | }, |
| 30463 | .dst_temps = .{.mem}, |
| 30464 | .clobbers = .{ .eflags = true }, |
| 30465 | .each = .{ .once = &.{ |
| 30466 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 30467 | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"8", .tmp0, .add_unaligned_size), ._, ._ }, |
| 30468 | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp1b, ._, ._ }, |
| 30469 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, |
| 30470 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 30471 | } }, |
| 30472 | }, .{ |
| 30473 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .qword, .is = .qword } }, .any }, |
| 30474 | .dst_constraints = .{.{ .multiple_scalar_exact_int = .{ .of = .byte, .is = 8 } }}, |
| 30475 | .patterns = &.{ |
| 30476 | .{ .src = .{ .to_mem, .none } }, |
| 30477 | }, |
| 30478 | .extra_temps = .{ |
| 30479 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 30480 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| 30481 | .unused, |
| 30482 | .unused, |
| 30483 | .unused, |
| 30484 | .unused, |
| 30485 | .unused, |
| 30486 | .unused, |
| 30487 | .unused, |
| 30488 | }, |
| 30489 | .dst_temps = .{.mem}, |
| 30490 | .clobbers = .{ .eflags = true }, |
| 30491 | .each = .{ .once = &.{ |
| 30492 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 30493 | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"8", .tmp0, .add_unaligned_size), ._, ._ }, |
| 30494 | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp1b, ._, ._ }, |
| 30495 | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, |
| 30496 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| 30497 | } }, |
| 30498 | }, .{ |
| 30499 | .required_features = .{ .slow_incdec, null, null, null }, |
| 30500 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any }, |
| 30501 | .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }}, |
| 30502 | .patterns = &.{ |
| 30503 | .{ .src = .{ .to_mem, .none } }, |
| 30504 | }, |
| 30505 | .extra_temps = .{ |
| 30506 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 30507 | .{ .type = .i8, .kind = .{ .rc = .general_purpose } }, |
| 30508 | .unused, |
| 30509 | .unused, |
| 30510 | .unused, |
| 30511 | .unused, |
| 30512 | .unused, |
| 30513 | .unused, |
| 30514 | .unused, |
| 30515 | }, |
| 30516 | .dst_temps = .{.mem}, |
| 30517 | .clobbers = .{ .eflags = true }, |
| 30518 | .each = .{ .once = &.{ |
| 30519 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 30520 | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"8", .tmp0, .add_unaligned_size), ._, ._ }, |
| 30521 | .{ ._, ._l, .sa, .tmp1b, .uia(8, .dst0, .sub_bit_size), ._, ._ }, |
| 30522 | .{ ._, ._r, .sa, .tmp1b, .uia(8, .dst0, .sub_bit_size), ._, ._ }, |
| 30523 | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp1b, ._, ._ }, |
| 30524 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, |
| 30525 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 30526 | } }, |
| 30527 | }, .{ |
| 30528 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any }, |
| 30529 | .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }}, |
| 30530 | .patterns = &.{ |
| 30531 | .{ .src = .{ .to_mem, .none } }, |
| 30532 | }, |
| 30533 | .extra_temps = .{ |
| 30534 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 30535 | .{ .type = .i8, .kind = .{ .rc = .general_purpose } }, |
| 30536 | .unused, |
| 30537 | .unused, |
| 30538 | .unused, |
| 30539 | .unused, |
| 30540 | .unused, |
| 30541 | .unused, |
| 30542 | .unused, |
| 30543 | }, |
| 30544 | .dst_temps = .{.mem}, |
| 30545 | .clobbers = .{ .eflags = true }, |
| 30546 | .each = .{ .once = &.{ |
| 30547 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 30548 | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"8", .tmp0, .add_unaligned_size), ._, ._ }, |
| 30549 | .{ ._, ._l, .sa, .tmp1b, .uia(8, .dst0, .sub_bit_size), ._, ._ }, |
| 30550 | .{ ._, ._r, .sa, .tmp1b, .uia(8, .dst0, .sub_bit_size), ._, ._ }, |
| 30551 | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp1b, ._, ._ }, |
| 30552 | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, |
| 30553 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| 30554 | } }, |
| 30555 | }, .{ |
| 30556 | .required_features = .{ .bmi2, .slow_incdec, null, null }, |
| 30557 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any }, |
| 30558 | .dst_constraints = .{.{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }}, |
| 30559 | .patterns = &.{ |
| 30560 | .{ .src = .{ .to_mem, .none } }, |
| 30561 | }, |
| 30562 | .extra_temps = .{ |
| 30563 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 30564 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| 30565 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| 30566 | .unused, |
| 30567 | .unused, |
| 30568 | .unused, |
| 30569 | .unused, |
| 30570 | .unused, |
| 30571 | .unused, |
| 30572 | }, |
| 30573 | .dst_temps = .{.mem}, |
| 30574 | .clobbers = .{ .eflags = true }, |
| 30575 | .each = .{ .once = &.{ |
| 30576 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 30577 | .{ ._, ._, .mov, .tmp1d, .sa(.dst0, .add_bit_size), ._, ._ }, |
| 30578 | .{ .@"0:", ._, .bzhi, .tmp2d, .memsia(.src0d, .@"8", .tmp0, .add_unaligned_size), .tmp1d, ._ }, |
| 30579 | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp2b, ._, ._ }, |
| 30580 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, |
| 30581 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 30582 | } }, |
| 30583 | }, .{ |
| 30584 | .required_features = .{ .bmi2, null, null, null }, |
| 30585 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any }, |
| 30586 | .dst_constraints = .{.{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }}, |
| 30587 | .patterns = &.{ |
| 30588 | .{ .src = .{ .to_mem, .none } }, |
| 30589 | }, |
| 30590 | .extra_temps = .{ |
| 30591 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 30592 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| 30593 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| 30594 | .unused, |
| 30595 | .unused, |
| 30596 | .unused, |
| 30597 | .unused, |
| 30598 | .unused, |
| 30599 | .unused, |
| 30600 | }, |
| 30601 | .dst_temps = .{.mem}, |
| 30602 | .clobbers = .{ .eflags = true }, |
| 30603 | .each = .{ .once = &.{ |
| 30604 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 30605 | .{ ._, ._, .mov, .tmp1d, .sa(.dst0, .add_bit_size), ._, ._ }, |
| 30606 | .{ .@"0:", ._, .bzhi, .tmp2d, .memsia(.src0d, .@"8", .tmp0, .add_unaligned_size), .tmp1d, ._ }, |
| 30607 | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp2b, ._, ._ }, |
| 30608 | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, |
| 30609 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| 30610 | } }, |
| 30611 | }, .{ |
| 30612 | .required_features = .{ .slow_incdec, null, null, null }, |
| 30613 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any }, |
| 30614 | .dst_constraints = .{.{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }}, |
| 30615 | .patterns = &.{ |
| 30616 | .{ .src = .{ .to_mem, .none } }, |
| 30617 | }, |
| 30618 | .extra_temps = .{ |
| 30619 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 30620 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| 30621 | .unused, |
| 30622 | .unused, |
| 30623 | .unused, |
| 30624 | .unused, |
| 30625 | .unused, |
| 30626 | .unused, |
| 30627 | .unused, |
| 30628 | }, |
| 30629 | .dst_temps = .{.mem}, |
| 30630 | .clobbers = .{ .eflags = true }, |
| 30631 | .each = .{ .once = &.{ |
| 30632 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 30633 | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"8", .tmp0, .add_unaligned_size), ._, ._ }, |
| 30634 | .{ ._, ._, .@"and", .tmp1b, .sa(.dst0, .add_umax), ._, ._ }, |
| 30635 | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp1b, ._, ._ }, |
| 30636 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, |
| 30637 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 30638 | } }, |
| 30639 | }, .{ |
| 30640 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any }, |
| 30641 | .dst_constraints = .{.{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }}, |
| 30642 | .patterns = &.{ |
| 30643 | .{ .src = .{ .to_mem, .none } }, |
| 30644 | }, |
| 30645 | .extra_temps = .{ |
| 30646 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 30647 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| 30648 | .unused, |
| 30649 | .unused, |
| 30650 | .unused, |
| 30651 | .unused, |
| 30652 | .unused, |
| 30653 | .unused, |
| 30654 | .unused, |
| 30655 | }, |
| 30656 | .dst_temps = .{.mem}, |
| 30657 | .clobbers = .{ .eflags = true }, |
| 30658 | .each = .{ .once = &.{ |
| 30659 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 30660 | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"8", .tmp0, .add_unaligned_size), ._, ._ }, |
| 30661 | .{ ._, ._, .@"and", .tmp1b, .sa(.dst0, .add_umax), ._, ._ }, |
| 30662 | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp1b, ._, ._ }, |
| 30663 | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, |
| 30664 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| 30665 | } }, |
| 30666 | }, .{ |
| 30667 | .required_features = .{ .slow_incdec, null, null, null }, |
| 30668 | .src_constraints = .{ .any_scalar_int, .any }, |
| 30669 | .dst_constraints = .{.{ .multiple_scalar_exact_int = .{ .of = .byte, .is = 8 } }}, |
| 30670 | .patterns = &.{ |
| 30671 | .{ .src = .{ .to_mem, .none } }, |
| 30672 | }, |
| 30673 | .extra_temps = .{ |
| 30674 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 30675 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 30676 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| 30677 | .unused, |
| 30678 | .unused, |
| 30679 | .unused, |
| 30680 | .unused, |
| 30681 | .unused, |
| 30682 | .unused, |
| 30683 | }, |
| 30684 | .dst_temps = .{.mem}, |
| 30685 | .clobbers = .{ .eflags = true }, |
| 30686 | .each = .{ .once = &.{ |
| 30687 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 30688 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| 30689 | .{ .@"0:", ._, .mov, .tmp2d, .memi(.src0d, .tmp1), ._, ._ }, |
| 30690 | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp2b, ._, ._ }, |
| 30691 | .{ ._, ._, .lea, .tmp1d, .leaa(.tmp1, .add_src0_elem_size), ._, ._ }, |
| 30692 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, |
| 30693 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 30694 | } }, |
| 30695 | }, .{ |
| 30696 | .src_constraints = .{ .any_scalar_int, .any }, |
| 30697 | .dst_constraints = .{.{ .multiple_scalar_exact_int = .{ .of = .byte, .is = 8 } }}, |
| 30698 | .patterns = &.{ |
| 30699 | .{ .src = .{ .to_mem, .none } }, |
| 30700 | }, |
| 30701 | .extra_temps = .{ |
| 30702 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 30703 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 30704 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| 30705 | .unused, |
| 30706 | .unused, |
| 30707 | .unused, |
| 30708 | .unused, |
| 30709 | .unused, |
| 30710 | .unused, |
| 30711 | }, |
| 30712 | .dst_temps = .{.mem}, |
| 30713 | .clobbers = .{ .eflags = true }, |
| 30714 | .each = .{ .once = &.{ |
| 30715 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 30716 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| 30717 | .{ .@"0:", ._, .mov, .tmp2d, .memi(.src0d, .tmp1), ._, ._ }, |
| 30718 | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp2b, ._, ._ }, |
| 30719 | .{ ._, ._, .lea, .tmp1d, .leaa(.tmp1, .add_src0_elem_size), ._, ._ }, |
| 30720 | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, |
| 30721 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| 30722 | } }, |
| 30723 | }, .{ |
| 30724 | .required_features = .{ .slow_incdec, null, null, null }, |
| 30725 | .src_constraints = .{ .any_scalar_signed_int, .any }, |
| 30726 | .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }}, |
| 30727 | .patterns = &.{ |
| 30728 | .{ .src = .{ .to_mem, .none } }, |
| 30729 | }, |
| 30730 | .extra_temps = .{ |
| 30731 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 30732 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 30733 | .{ .type = .i8, .kind = .{ .rc = .general_purpose } }, |
| 30734 | .unused, |
| 30735 | .unused, |
| 30736 | .unused, |
| 30737 | .unused, |
| 30738 | .unused, |
| 30739 | .unused, |
| 30740 | }, |
| 30741 | .dst_temps = .{.mem}, |
| 30742 | .clobbers = .{ .eflags = true }, |
| 30743 | .each = .{ .once = &.{ |
| 30744 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 30745 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| 30746 | .{ .@"0:", ._, .mov, .tmp2d, .memi(.src0d, .tmp1), ._, ._ }, |
| 30747 | .{ ._, ._l, .sa, .tmp2b, .uia(8, .dst0, .sub_bit_size), ._, ._ }, |
| 30748 | .{ ._, ._r, .sa, .tmp2b, .uia(8, .dst0, .sub_bit_size), ._, ._ }, |
| 30749 | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp2b, ._, ._ }, |
| 30750 | .{ ._, ._, .lea, .tmp1d, .leaa(.tmp1, .add_src0_elem_size), ._, ._ }, |
| 30751 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, |
| 30752 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 30753 | } }, |
| 30754 | }, .{ |
| 30755 | .src_constraints = .{ .any_scalar_signed_int, .any }, |
| 30756 | .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }}, |
| 30757 | .patterns = &.{ |
| 30758 | .{ .src = .{ .to_mem, .none } }, |
| 30759 | }, |
| 30760 | .extra_temps = .{ |
| 30761 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 30762 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 30763 | .{ .type = .i8, .kind = .{ .rc = .general_purpose } }, |
| 30764 | .unused, |
| 30765 | .unused, |
| 30766 | .unused, |
| 30767 | .unused, |
| 30768 | .unused, |
| 30769 | .unused, |
| 30770 | }, |
| 30771 | .dst_temps = .{.mem}, |
| 30772 | .clobbers = .{ .eflags = true }, |
| 30773 | .each = .{ .once = &.{ |
| 30774 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 30775 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| 30776 | .{ .@"0:", ._, .mov, .tmp2d, .memi(.src0d, .tmp1), ._, ._ }, |
| 30777 | .{ ._, ._l, .sa, .tmp2b, .uia(8, .dst0, .sub_bit_size), ._, ._ }, |
| 30778 | .{ ._, ._r, .sa, .tmp2b, .uia(8, .dst0, .sub_bit_size), ._, ._ }, |
| 30779 | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp2b, ._, ._ }, |
| 30780 | .{ ._, ._, .lea, .tmp1d, .leaa(.tmp1, .add_src0_elem_size), ._, ._ }, |
| 30781 | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, |
| 30782 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| 30783 | } }, |
| 30784 | }, .{ |
| 30785 | .required_features = .{ .bmi2, .slow_incdec, null, null }, |
| 30786 | .src_constraints = .{ .any_scalar_unsigned_int, .any }, |
| 30787 | .dst_constraints = .{.{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }}, |
| 30788 | .patterns = &.{ |
| 30789 | .{ .src = .{ .to_mem, .none } }, |
| 30790 | }, |
| 30791 | .extra_temps = .{ |
| 30792 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 30793 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 30794 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| 30795 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| 30796 | .unused, |
| 30797 | .unused, |
| 30798 | .unused, |
| 30799 | .unused, |
| 30800 | .unused, |
| 30801 | }, |
| 30802 | .dst_temps = .{.mem}, |
| 30803 | .clobbers = .{ .eflags = true }, |
| 30804 | .each = .{ .once = &.{ |
| 30805 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 30806 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| 30807 | .{ ._, ._, .mov, .tmp2d, .sa(.dst0, .add_bit_size), ._, ._ }, |
| 30808 | .{ .@"0:", ._, .bzhi, .tmp3d, .memi(.src0d, .tmp1), .tmp2d, ._ }, |
| 30809 | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp3b, ._, ._ }, |
| 30810 | .{ ._, ._, .lea, .tmp1d, .leaa(.tmp1, .add_src0_elem_size), ._, ._ }, |
| 30811 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, |
| 30812 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 30813 | } }, |
| 30814 | }, .{ |
| 30815 | .required_features = .{ .bmi2, null, null, null }, |
| 30816 | .src_constraints = .{ .any_scalar_unsigned_int, .any }, |
| 30817 | .dst_constraints = .{.{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }}, |
| 30818 | .patterns = &.{ |
| 30819 | .{ .src = .{ .to_mem, .none } }, |
| 30820 | }, |
| 30821 | .extra_temps = .{ |
| 30822 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 30823 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 30824 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| 30825 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| 30826 | .unused, |
| 30827 | .unused, |
| 30828 | .unused, |
| 30829 | .unused, |
| 30830 | .unused, |
| 30831 | }, |
| 30832 | .dst_temps = .{.mem}, |
| 30833 | .clobbers = .{ .eflags = true }, |
| 30834 | .each = .{ .once = &.{ |
| 30835 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 30836 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| 30837 | .{ ._, ._, .mov, .tmp2d, .sa(.dst0, .add_bit_size), ._, ._ }, |
| 30838 | .{ .@"0:", ._, .bzhi, .tmp3d, .memi(.src0d, .tmp1), .tmp2d, ._ }, |
| 30839 | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp3b, ._, ._ }, |
| 30840 | .{ ._, ._, .lea, .tmp1d, .leaa(.tmp1, .add_src0_elem_size), ._, ._ }, |
| 30841 | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, |
| 30842 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| 30843 | } }, |
| 30844 | }, .{ |
| 30845 | .required_features = .{ .slow_incdec, null, null, null }, |
| 30846 | .src_constraints = .{ .any_scalar_unsigned_int, .any }, |
| 30847 | .dst_constraints = .{.{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }}, |
| 30848 | .patterns = &.{ |
| 30849 | .{ .src = .{ .to_mem, .none } }, |
| 30850 | }, |
| 30851 | .extra_temps = .{ |
| 30852 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 30853 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 30854 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| 30855 | .unused, |
| 30856 | .unused, |
| 30857 | .unused, |
| 30858 | .unused, |
| 30859 | .unused, |
| 30860 | .unused, |
| 30861 | }, |
| 30862 | .dst_temps = .{.mem}, |
| 30863 | .clobbers = .{ .eflags = true }, |
| 30864 | .each = .{ .once = &.{ |
| 30865 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 30866 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| 30867 | .{ .@"0:", ._, .mov, .tmp2d, .memi(.src0d, .tmp1), ._, ._ }, |
| 30868 | .{ ._, ._, .@"and", .tmp2b, .sa(.dst0, .add_umax), ._, ._ }, |
| 30869 | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp2b, ._, ._ }, |
| 30870 | .{ ._, ._, .lea, .tmp1d, .leaa(.tmp1, .add_src0_elem_size), ._, ._ }, |
| 30871 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, |
| 30872 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 30873 | } }, |
| 30874 | }, .{ |
| 30875 | .src_constraints = .{ .any_scalar_unsigned_int, .any }, |
| 30876 | .dst_constraints = .{.{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }}, |
| 30877 | .patterns = &.{ |
| 30878 | .{ .src = .{ .to_mem, .none } }, |
| 30879 | }, |
| 30880 | .extra_temps = .{ |
| 30881 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 30882 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 30883 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| 30884 | .unused, |
| 30885 | .unused, |
| 30886 | .unused, |
| 30887 | .unused, |
| 30888 | .unused, |
| 30889 | .unused, |
| 30890 | }, |
| 30891 | .dst_temps = .{.mem}, |
| 30892 | .clobbers = .{ .eflags = true }, |
| 30893 | .each = .{ .once = &.{ |
| 30894 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 30895 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| 30896 | .{ .@"0:", ._, .mov, .tmp2d, .memi(.src0d, .tmp1), ._, ._ }, |
| 30897 | .{ ._, ._, .@"and", .tmp2b, .sa(.dst0, .add_umax), ._, ._ }, |
| 30898 | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp2b, ._, ._ }, |
| 30899 | .{ ._, ._, .lea, .tmp1d, .leaa(.tmp1, .add_src0_elem_size), ._, ._ }, |
| 30900 | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, |
| 30901 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| 30902 | } }, |
| 30903 | }, .{ |
| 30904 | .required_features = .{ .avx, null, null, null }, |
| 30905 | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .word } }, .any }, |
| 30906 | .dst_constraints = .{.{ .scalar_signed_int = .{ .of = .xword, .is = .word } }}, |
| 30907 | .patterns = &.{ |
| 30908 | .{ .src = .{ .to_sse, .none } }, |
| 30909 | }, |
| 30910 | .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, |
| 30911 | .each = .{ .once = &.{ |
| 30912 | .{ ._, .vp_w, .sll, .dst0x, .src0x, .uia(16, .dst0, .sub_bit_size), ._ }, |
| 30913 | .{ ._, .vp_w, .sra, .dst0x, .dst0x, .uia(16, .dst0, .sub_bit_size), ._ }, |
| 30914 | } }, |
| 30915 | }, .{ |
| 30916 | .required_features = .{ .avx, null, null, null }, |
| 30917 | .src_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .xword, .is = .word } }, .any }, |
| 30918 | .dst_constraints = .{.{ .scalar_unsigned_int = .{ .of = .xword, .is = .word } }}, |
| 30919 | .patterns = &.{ |
| 30920 | .{ .src = .{ .to_sse, .none } }, |
| 30921 | }, |
| 30922 | .extra_temps = .{ |
| 30923 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 30924 | .{ .kind = .{ .umax_mem = .{ .ref = .dst0 } } }, |
| 30925 | .unused, |
| 30926 | .unused, |
| 30927 | .unused, |
| 30928 | .unused, |
| 30929 | .unused, |
| 30930 | .unused, |
| 30931 | .unused, |
| 30932 | }, |
| 30933 | .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, |
| 30934 | .each = .{ .once = &.{ |
| 30935 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 30936 | .{ ._, .vp_, .@"and", .dst0x, .src0x, .lea(.tmp0x), ._ }, |
| 30937 | } }, |
| 30938 | }, .{ |
| 30939 | .required_features = .{ .sse2, null, null, null }, |
| 30940 | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .word } }, .any }, |
| 30941 | .dst_constraints = .{.{ .scalar_signed_int = .{ .of = .xword, .is = .word } }}, |
| 30942 | .patterns = &.{ |
| 30943 | .{ .src = .{ .to_mut_sse, .none } }, |
| 30944 | }, |
| 30945 | .dst_temps = .{.{ .ref = .src0 }}, |
| 30946 | .each = .{ .once = &.{ |
| 30947 | .{ ._, .p_w, .sll, .dst0x, .uia(16, .dst0, .sub_bit_size), ._, ._ }, |
| 30948 | .{ ._, .p_w, .sra, .dst0x, .uia(16, .dst0, .sub_bit_size), ._, ._ }, |
| 30949 | } }, |
| 30950 | }, .{ |
| 30951 | .required_features = .{ .sse2, null, null, null }, |
| 30952 | .src_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .xword, .is = .word } }, .any }, |
| 30953 | .dst_constraints = .{.{ .scalar_unsigned_int = .{ .of = .xword, .is = .word } }}, |
| 30954 | .patterns = &.{ |
| 30955 | .{ .src = .{ .to_mut_sse, .none } }, |
| 30956 | }, |
| 30957 | .extra_temps = .{ |
| 30958 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 30959 | .{ .kind = .{ .umax_mem = .{ .ref = .dst0 } } }, |
| 30960 | .unused, |
| 30961 | .unused, |
| 30962 | .unused, |
| 30963 | .unused, |
| 30964 | .unused, |
| 30965 | .unused, |
| 30966 | .unused, |
| 30967 | }, |
| 30968 | .dst_temps = .{.{ .ref = .src0 }}, |
| 30969 | .each = .{ .once = &.{ |
| 30970 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 30971 | .{ ._, .p_, .@"and", .dst0x, .lea(.tmp0x), ._, ._ }, |
| 30972 | } }, |
| 30973 | }, .{ |
| 30974 | .required_features = .{ .sse, null, null, null }, |
| 30975 | .src_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .xword, .is = .word } }, .any }, |
| 30976 | .dst_constraints = .{.{ .scalar_unsigned_int = .{ .of = .xword, .is = .word } }}, |
| 30977 | .patterns = &.{ |
| 30978 | .{ .src = .{ .to_mut_sse, .none } }, |
| 30979 | }, |
| 30980 | .extra_temps = .{ |
| 30981 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 30982 | .{ .kind = .{ .umax_mem = .{ .ref = .dst0 } } }, |
| 30983 | .unused, |
| 30984 | .unused, |
| 30985 | .unused, |
| 30986 | .unused, |
| 30987 | .unused, |
| 30988 | .unused, |
| 30989 | .unused, |
| 30990 | }, |
| 30991 | .dst_temps = .{.{ .ref = .src0 }}, |
| 30992 | .each = .{ .once = &.{ |
| 30993 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 30994 | .{ ._, ._ps, .@"and", .dst0x, .lea(.tmp0x), ._, ._ }, |
| 30995 | } }, |
| 30996 | }, .{ |
| 30997 | .required_features = .{ .avx2, null, null, null }, |
| 30998 | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .yword, .is = .word } }, .any }, |
| 30999 | .dst_constraints = .{.{ .scalar_signed_int = .{ .of = .yword, .is = .word } }}, |
| 31000 | .patterns = &.{ |
| 31001 | .{ .src = .{ .to_sse, .none } }, |
| 31002 | }, |
| 31003 | .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, |
| 31004 | .each = .{ .once = &.{ |
| 31005 | .{ ._, .vp_w, .sll, .dst0y, .src0y, .uia(16, .dst0, .sub_bit_size), ._ }, |
| 31006 | .{ ._, .vp_w, .sra, .dst0y, .dst0y, .uia(16, .dst0, .sub_bit_size), ._ }, |
| 31007 | } }, |
| 31008 | }, .{ |
| 31009 | .required_features = .{ .avx2, null, null, null }, |
| 31010 | .src_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .yword, .is = .word } }, .any }, |
| 31011 | .dst_constraints = .{.{ .scalar_unsigned_int = .{ .of = .yword, .is = .word } }}, |
| 31012 | .patterns = &.{ |
| 31013 | .{ .src = .{ .to_sse, .none } }, |
| 31014 | }, |
| 31015 | .extra_temps = .{ |
| 31016 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 31017 | .{ .kind = .{ .umax_mem = .{ .ref = .dst0 } } }, |
| 31018 | .unused, |
| 31019 | .unused, |
| 31020 | .unused, |
| 31021 | .unused, |
| 31022 | .unused, |
| 31023 | .unused, |
| 31024 | .unused, |
| 31025 | }, |
| 31026 | .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, |
| 31027 | .each = .{ .once = &.{ |
| 31028 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 31029 | .{ ._, .vp_, .@"and", .dst0y, .src0y, .lea(.tmp0y), ._ }, |
| 31030 | } }, |
| 31031 | }, .{ |
| 31032 | .required_features = .{ .avx2, null, null, null }, |
| 31033 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .yword, .is = .word } }, .any }, |
| 31034 | .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .yword, .is = .word } }}, |
| 31035 | .patterns = &.{ |
| 31036 | .{ .src = .{ .to_mem, .none } }, |
| 31037 | }, |
| 31038 | .extra_temps = .{ |
| 31039 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 31040 | .{ .type = .vector_16_i16, .kind = .{ .rc = .sse } }, |
| 31041 | .unused, |
| 31042 | .unused, |
| 31043 | .unused, |
| 31044 | .unused, |
| 31045 | .unused, |
| 31046 | .unused, |
| 31047 | .unused, |
| 31048 | }, |
| 31049 | .dst_temps = .{.mem}, |
| 31050 | .clobbers = .{ .eflags = true }, |
| 31051 | .each = .{ .once = &.{ |
| 31052 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 31053 | .{ .@"0:", .v_dqa, .mov, .tmp1y, .memia(.src0y, .tmp0, .add_unaligned_size), ._, ._ }, |
| 31054 | .{ ._, .vp_w, .sll, .tmp1y, .tmp1y, .uia(16, .dst0, .sub_bit_size), ._ }, |
| 31055 | .{ ._, .vp_w, .sra, .tmp1y, .tmp1y, .uia(16, .dst0, .sub_bit_size), ._ }, |
| 31056 | .{ ._, .v_dqa, .mov, .memia(.dst0y, .tmp0, .add_unaligned_size), .tmp1y, ._, ._ }, |
| 31057 | .{ ._, ._, .add, .tmp0p, .si(32), ._, ._ }, |
| 31058 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 31059 | } }, |
| 31060 | }, .{ |
| 31061 | .required_features = .{ .avx2, null, null, null }, |
| 31062 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .yword, .is = .word } }, .any }, |
| 31063 | .dst_constraints = .{.{ .multiple_scalar_unsigned_int = .{ .of = .yword, .is = .word } }}, |
| 31064 | .patterns = &.{ |
| 31065 | .{ .src = .{ .to_mem, .none } }, |
| 31066 | }, |
| 31067 | .extra_temps = .{ |
| 31068 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 31069 | .{ .type = .vector_16_u16, .kind = .{ .rc = .sse } }, |
| 31070 | .{ .type = .vector_16_u16, .kind = .{ .rc = .sse } }, |
| 31071 | .{ .kind = .{ .umax_mem = .{ .ref = .dst0, .to_signedness = .unsigned } } }, |
| 31072 | .unused, |
| 31073 | .unused, |
| 31074 | .unused, |
| 31075 | .unused, |
| 31076 | .unused, |
| 31077 | }, |
| 31078 | .dst_temps = .{.mem}, |
| 31079 | .clobbers = .{ .eflags = true }, |
| 31080 | .each = .{ .once = &.{ |
| 31081 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp3), ._, ._ }, |
| 31082 | .{ ._, .v_dqa, .mov, .tmp1y, .lea(.tmp0y), ._, ._ }, |
| 31083 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 31084 | .{ .@"0:", .vp_, .@"and", .tmp2y, .tmp1y, .memia(.src0y, .tmp0, .add_unaligned_size), ._ }, |
| 31085 | .{ ._, .v_dqa, .mov, .memia(.dst0y, .tmp0, .add_unaligned_size), .tmp2y, ._, ._ }, |
| 31086 | .{ ._, ._, .add, .tmp0p, .si(32), ._, ._ }, |
| 31087 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 31088 | } }, |
| 31089 | }, .{ |
| 31090 | .required_features = .{ .avx, null, null, null }, |
| 31091 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .word } }, .any }, |
| 31092 | .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .word } }}, |
| 31093 | .patterns = &.{ |
| 31094 | .{ .src = .{ .to_mem, .none } }, |
| 31095 | }, |
| 31096 | .extra_temps = .{ |
| 31097 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 31098 | .{ .type = .vector_8_i16, .kind = .{ .rc = .sse } }, |
| 31099 | .unused, |
| 31100 | .unused, |
| 31101 | .unused, |
| 31102 | .unused, |
| 31103 | .unused, |
| 31104 | .unused, |
| 31105 | .unused, |
| 31106 | }, |
| 31107 | .dst_temps = .{.mem}, |
| 31108 | .clobbers = .{ .eflags = true }, |
| 31109 | .each = .{ .once = &.{ |
| 31110 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 31111 | .{ .@"0:", .v_dqa, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, |
| 31112 | .{ ._, .vp_w, .sll, .tmp1x, .tmp1x, .uia(16, .dst0, .sub_bit_size), ._ }, |
| 31113 | .{ ._, .vp_w, .sra, .tmp1x, .tmp1x, .uia(16, .dst0, .sub_bit_size), ._ }, |
| 31114 | .{ ._, .v_dqa, .mov, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 31115 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 31116 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 31117 | } }, |
| 31118 | }, .{ |
| 31119 | .required_features = .{ .avx, null, null, null }, |
| 31120 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .word } }, .any }, |
| 31121 | .dst_constraints = .{.{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .word } }}, |
| 31122 | .patterns = &.{ |
| 31123 | .{ .src = .{ .to_mem, .none } }, |
| 31124 | }, |
| 31125 | .extra_temps = .{ |
| 31126 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 31127 | .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } }, |
| 31128 | .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } }, |
| 31129 | .{ .kind = .{ .umax_mem = .{ .ref = .dst0, .to_signedness = .unsigned } } }, |
| 31130 | .unused, |
| 31131 | .unused, |
| 31132 | .unused, |
| 31133 | .unused, |
| 31134 | .unused, |
| 31135 | }, |
| 31136 | .dst_temps = .{.mem}, |
| 31137 | .clobbers = .{ .eflags = true }, |
| 31138 | .each = .{ .once = &.{ |
| 31139 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp3), ._, ._ }, |
| 31140 | .{ ._, .v_dqa, .mov, .tmp1x, .lea(.tmp0x), ._, ._ }, |
| 31141 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 31142 | .{ .@"0:", .vp_, .@"and", .tmp2x, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._ }, |
| 31143 | .{ ._, .v_dqa, .mov, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp2x, ._, ._ }, |
| 31144 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 31145 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 31146 | } }, |
| 31147 | }, .{ |
| 31148 | .required_features = .{ .sse2, null, null, null }, |
| 31149 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .word } }, .any }, |
| 31150 | .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .word } }}, |
| 31151 | .patterns = &.{ |
| 31152 | .{ .src = .{ .to_mem, .none } }, |
| 31153 | }, |
| 31154 | .extra_temps = .{ |
| 31155 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 31156 | .{ .type = .vector_8_i16, .kind = .{ .rc = .sse } }, |
| 31157 | .unused, |
| 31158 | .unused, |
| 31159 | .unused, |
| 31160 | .unused, |
| 31161 | .unused, |
| 31162 | .unused, |
| 31163 | .unused, |
| 31164 | }, |
| 31165 | .dst_temps = .{.mem}, |
| 31166 | .clobbers = .{ .eflags = true }, |
| 31167 | .each = .{ .once = &.{ |
| 31168 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 31169 | .{ .@"0:", ._dqa, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, |
| 31170 | .{ ._, .p_w, .sll, .tmp1x, .uia(16, .dst0, .sub_bit_size), ._, ._ }, |
| 31171 | .{ ._, .p_w, .sra, .tmp1x, .uia(16, .dst0, .sub_bit_size), ._, ._ }, |
| 31172 | .{ ._, ._dqa, .mov, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 31173 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 31174 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 31175 | } }, |
| 31176 | }, .{ |
| 31177 | .required_features = .{ .sse2, null, null, null }, |
| 31178 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .word } }, .any }, |
| 31179 | .dst_constraints = .{.{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .word } }}, |
| 31180 | .patterns = &.{ |
| 31181 | .{ .src = .{ .to_mem, .none } }, |
| 31182 | }, |
| 31183 | .extra_temps = .{ |
| 31184 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 31185 | .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } }, |
| 31186 | .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } }, |
| 31187 | .{ .kind = .{ .umax_mem = .{ .ref = .dst0, .to_signedness = .unsigned } } }, |
| 31188 | .unused, |
| 31189 | .unused, |
| 31190 | .unused, |
| 31191 | .unused, |
| 31192 | .unused, |
| 31193 | }, |
| 31194 | .dst_temps = .{.mem}, |
| 31195 | .clobbers = .{ .eflags = true }, |
| 31196 | .each = .{ .once = &.{ |
| 31197 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp3), ._, ._ }, |
| 31198 | .{ ._, ._dqa, .mov, .tmp1x, .lea(.tmp0x), ._, ._ }, |
| 31199 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 31200 | .{ .@"0:", ._dqa, .mov, .tmp2x, .tmp1x, ._, ._ }, |
| 31201 | .{ ._, .p_, .@"and", .tmp2x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, |
| 31202 | .{ ._, ._dqa, .mov, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp2x, ._, ._ }, |
| 31203 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 31204 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 31205 | } }, |
| 31206 | }, .{ |
| 31207 | .required_features = .{ .sse, null, null, null }, |
| 31208 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .word } }, .any }, |
| 31209 | .dst_constraints = .{.{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .word } }}, |
| 31210 | .patterns = &.{ |
| 31211 | .{ .src = .{ .to_mem, .none } }, |
| 31212 | }, |
| 31213 | .extra_temps = .{ |
| 31214 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 31215 | .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } }, |
| 31216 | .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } }, |
| 31217 | .{ .kind = .{ .umax_mem = .{ .ref = .dst0, .to_signedness = .unsigned } } }, |
| 31218 | .unused, |
| 31219 | .unused, |
| 31220 | .unused, |
| 31221 | .unused, |
| 31222 | .unused, |
| 31223 | }, |
| 31224 | .dst_temps = .{.mem}, |
| 31225 | .clobbers = .{ .eflags = true }, |
| 31226 | .each = .{ .once = &.{ |
| 31227 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp3), ._, ._ }, |
| 31228 | .{ ._, ._ps, .mova, .tmp1x, .lea(.tmp0x), ._, ._ }, |
| 31229 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 31230 | .{ .@"0:", ._ps, .mova, .tmp2x, .tmp1x, ._, ._ }, |
| 31231 | .{ ._, ._ps, .@"and", .tmp2x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, |
| 31232 | .{ ._, ._ps, .mova, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp2x, ._, ._ }, |
| 31233 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 31234 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 31235 | } }, |
| 31236 | }, .{ |
| 31237 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .word, .is = .word } }, .any }, |
| 31238 | .dst_constraints = .{.{ .multiple_scalar_exact_int = .{ .of = .word, .is = 16 } }}, |
| 31239 | .patterns = &.{ |
| 31240 | .{ .src = .{ .to_mem, .none } }, |
| 31241 | }, |
| 31242 | .extra_temps = .{ |
| 31243 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 31244 | .{ .type = .u16, .kind = .{ .rc = .general_purpose } }, |
| 31245 | .unused, |
| 31246 | .unused, |
| 31247 | .unused, |
| 31248 | .unused, |
| 31249 | .unused, |
| 31250 | .unused, |
| 31251 | .unused, |
| 31252 | }, |
| 31253 | .dst_temps = .{.mem}, |
| 31254 | .clobbers = .{ .eflags = true }, |
| 31255 | .each = .{ .once = &.{ |
| 31256 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 31257 | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, |
| 31258 | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1w, ._, ._ }, |
| 31259 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 31260 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 31261 | } }, |
| 31262 | }, .{ |
| 31263 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .word, .is = .word } }, .any }, |
| 31264 | .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .word, .is = .word } }}, |
| 31265 | .patterns = &.{ |
| 31266 | .{ .src = .{ .to_mem, .none } }, |
| 31267 | }, |
| 31268 | .extra_temps = .{ |
| 31269 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 31270 | .{ .type = .i16, .kind = .{ .rc = .general_purpose } }, |
| 31271 | .unused, |
| 31272 | .unused, |
| 31273 | .unused, |
| 31274 | .unused, |
| 31275 | .unused, |
| 31276 | .unused, |
| 31277 | .unused, |
| 31278 | }, |
| 31279 | .dst_temps = .{.mem}, |
| 31280 | .clobbers = .{ .eflags = true }, |
| 31281 | .each = .{ .once = &.{ |
| 31282 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 31283 | .{ .@"0:", ._, .movsx, .tmp1d, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, |
| 31284 | .{ ._, ._l, .sa, .tmp1d, .uia(32, .dst0, .sub_bit_size), ._, ._ }, |
| 31285 | .{ ._, ._r, .sa, .tmp1d, .uia(32, .dst0, .sub_bit_size), ._, ._ }, |
| 31286 | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1w, ._, ._ }, |
| 31287 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 31288 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 31289 | } }, |
| 31290 | }, .{ |
| 31291 | .required_features = .{ .fast_imm16, null, null, null }, |
| 31292 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .word } }, .any }, |
| 31293 | .dst_constraints = .{.{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .word } }}, |
| 31294 | .patterns = &.{ |
| 31295 | .{ .src = .{ .to_mem, .none } }, |
| 31296 | }, |
| 31297 | .extra_temps = .{ |
| 31298 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 31299 | .{ .type = .u16, .kind = .{ .rc = .general_purpose } }, |
| 31300 | .unused, |
| 31301 | .unused, |
| 31302 | .unused, |
| 31303 | .unused, |
| 31304 | .unused, |
| 31305 | .unused, |
| 31306 | .unused, |
| 31307 | }, |
| 31308 | .dst_temps = .{.mem}, |
| 31309 | .clobbers = .{ .eflags = true }, |
| 31310 | .each = .{ .once = &.{ |
| 31311 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 31312 | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, |
| 31313 | .{ ._, ._, .@"and", .tmp1w, .sa(.dst0, .add_umax), ._, ._ }, |
| 31314 | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1w, ._, ._ }, |
| 31315 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 31316 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 31317 | } }, |
| 31318 | }, .{ |
| 31319 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .word } }, .any }, |
| 31320 | .dst_constraints = .{.{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .word } }}, |
| 31321 | .patterns = &.{ |
| 31322 | .{ .src = .{ .to_mem, .none } }, |
| 31323 | }, |
| 31324 | .extra_temps = .{ |
| 31325 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 31326 | .{ .type = .u16, .kind = .{ .rc = .general_purpose } }, |
| 31327 | .unused, |
| 31328 | .unused, |
| 31329 | .unused, |
| 31330 | .unused, |
| 31331 | .unused, |
| 31332 | .unused, |
| 31333 | .unused, |
| 31334 | }, |
| 31335 | .dst_temps = .{.mem}, |
| 31336 | .clobbers = .{ .eflags = true }, |
| 31337 | .each = .{ .once = &.{ |
| 31338 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 31339 | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, |
| 31340 | .{ ._, ._, .@"and", .tmp1d, .sa(.dst0, .add_umax), ._, ._ }, |
| 31341 | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1w, ._, ._ }, |
| 31342 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 31343 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 31344 | } }, |
| 31345 | }, .{ |
| 31346 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .dword, .is = .dword } }, .any }, |
| 31347 | .dst_constraints = .{.{ .multiple_scalar_exact_int = .{ .of = .word, .is = 16 } }}, |
| 31348 | .patterns = &.{ |
| 31349 | .{ .src = .{ .to_mem, .none } }, |
| 31350 | }, |
| 31351 | .extra_temps = .{ |
| 31352 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 31353 | .{ .type = .u16, .kind = .{ .rc = .general_purpose } }, |
| 31354 | .unused, |
| 31355 | .unused, |
| 31356 | .unused, |
| 31357 | .unused, |
| 31358 | .unused, |
| 31359 | .unused, |
| 31360 | .unused, |
| 31361 | }, |
| 31362 | .dst_temps = .{.mem}, |
| 31363 | .clobbers = .{ .eflags = true }, |
| 31364 | .each = .{ .once = &.{ |
| 31365 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 31366 | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| 31367 | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1w, ._, ._ }, |
| 31368 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 31369 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 31370 | } }, |
| 31371 | }, .{ |
| 31372 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }, .any }, |
| 31373 | .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .word, .is = .word } }}, |
| 31374 | .patterns = &.{ |
| 31375 | .{ .src = .{ .to_mem, .none } }, |
| 31376 | }, |
| 31377 | .extra_temps = .{ |
| 31378 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 31379 | .{ .type = .i16, .kind = .{ .rc = .general_purpose } }, |
| 31380 | .unused, |
| 31381 | .unused, |
| 31382 | .unused, |
| 31383 | .unused, |
| 31384 | .unused, |
| 31385 | .unused, |
| 31386 | .unused, |
| 31387 | }, |
| 31388 | .dst_temps = .{.mem}, |
| 31389 | .clobbers = .{ .eflags = true }, |
| 31390 | .each = .{ .once = &.{ |
| 31391 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 31392 | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| 31393 | .{ ._, ._l, .sa, .tmp1d, .uia(32, .dst0, .sub_bit_size), ._, ._ }, |
| 31394 | .{ ._, ._r, .sa, .tmp1d, .uia(32, .dst0, .sub_bit_size), ._, ._ }, |
| 31395 | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1w, ._, ._ }, |
| 31396 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 31397 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 31398 | } }, |
| 31399 | }, .{ |
| 31400 | .required_features = .{ .bmi2, null, null, null }, |
| 31401 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, .any }, |
| 31402 | .dst_constraints = .{.{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .word } }}, |
| 31403 | .patterns = &.{ |
| 31404 | .{ .src = .{ .to_mem, .none } }, |
| 31405 | }, |
| 31406 | .extra_temps = .{ |
| 31407 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 31408 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| 31409 | .{ .type = .u16, .kind = .{ .rc = .general_purpose } }, |
| 31410 | .unused, |
| 31411 | .unused, |
| 31412 | .unused, |
| 31413 | .unused, |
| 31414 | .unused, |
| 31415 | .unused, |
| 31416 | }, |
| 31417 | .dst_temps = .{.mem}, |
| 31418 | .clobbers = .{ .eflags = true }, |
| 31419 | .each = .{ .once = &.{ |
| 31420 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 31421 | .{ ._, ._, .mov, .tmp1d, .sa(.dst0, .add_bit_size), ._, ._ }, |
| 31422 | .{ .@"0:", ._, .bzhi, .tmp2d, .memsia(.src0d, .@"2", .tmp0, .add_unaligned_size), .tmp1d, ._ }, |
| 31423 | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp2w, ._, ._ }, |
| 31424 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 31425 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 31426 | } }, |
| 31427 | }, .{ |
| 31428 | .required_features = .{ .fast_imm16, null, null, null }, |
| 31429 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, .any }, |
| 31430 | .dst_constraints = .{.{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .word } }}, |
| 31431 | .patterns = &.{ |
| 31432 | .{ .src = .{ .to_mem, .none } }, |
| 31433 | }, |
| 31434 | .extra_temps = .{ |
| 31435 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 31436 | .{ .type = .u16, .kind = .{ .rc = .general_purpose } }, |
| 31437 | .unused, |
| 31438 | .unused, |
| 31439 | .unused, |
| 31440 | .unused, |
| 31441 | .unused, |
| 31442 | .unused, |
| 31443 | .unused, |
| 31444 | }, |
| 31445 | .dst_temps = .{.mem}, |
| 31446 | .clobbers = .{ .eflags = true }, |
| 31447 | .each = .{ .once = &.{ |
| 31448 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 31449 | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| 31450 | .{ ._, ._, .@"and", .tmp1w, .sa(.dst0, .add_umax), ._, ._ }, |
| 31451 | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1w, ._, ._ }, |
| 31452 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 31453 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 31454 | } }, |
| 31455 | }, .{ |
| 31456 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, .any }, |
| 31457 | .dst_constraints = .{.{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .word } }}, |
| 31458 | .patterns = &.{ |
| 31459 | .{ .src = .{ .to_mem, .none } }, |
| 31460 | }, |
| 31461 | .extra_temps = .{ |
| 31462 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 31463 | .{ .type = .u16, .kind = .{ .rc = .general_purpose } }, |
| 31464 | .unused, |
| 31465 | .unused, |
| 31466 | .unused, |
| 31467 | .unused, |
| 31468 | .unused, |
| 31469 | .unused, |
| 31470 | .unused, |
| 31471 | }, |
| 31472 | .dst_temps = .{.mem}, |
| 31473 | .clobbers = .{ .eflags = true }, |
| 31474 | .each = .{ .once = &.{ |
| 31475 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 31476 | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| 31477 | .{ ._, ._, .@"and", .tmp1d, .sa(.dst0, .add_umax), ._, ._ }, |
| 31478 | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1w, ._, ._ }, |
| 31479 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 31480 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 31481 | } }, |
| 31482 | }, .{ |
| 31483 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .qword, .is = .qword } }, .any }, |
| 31484 | .dst_constraints = .{.{ .multiple_scalar_exact_int = .{ .of = .word, .is = 16 } }}, |
| 31485 | .patterns = &.{ |
| 31486 | .{ .src = .{ .to_mem, .none } }, |
| 31487 | }, |
| 31488 | .extra_temps = .{ |
| 31489 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 31490 | .{ .type = .u16, .kind = .{ .rc = .general_purpose } }, |
| 31491 | .unused, |
| 31492 | .unused, |
| 31493 | .unused, |
| 31494 | .unused, |
| 31495 | .unused, |
| 31496 | .unused, |
| 31497 | .unused, |
| 31498 | }, |
| 31499 | .dst_temps = .{.mem}, |
| 31500 | .clobbers = .{ .eflags = true }, |
| 31501 | .each = .{ .once = &.{ |
| 31502 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 31503 | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, |
| 31504 | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1w, ._, ._ }, |
| 31505 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 31506 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 31507 | } }, |
| 31508 | }, .{ |
| 31509 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any }, |
| 31510 | .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .word, .is = .word } }}, |
| 31511 | .patterns = &.{ |
| 31512 | .{ .src = .{ .to_mem, .none } }, |
| 31513 | }, |
| 31514 | .extra_temps = .{ |
| 31515 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 31516 | .{ .type = .i16, .kind = .{ .rc = .general_purpose } }, |
| 31517 | .unused, |
| 31518 | .unused, |
| 31519 | .unused, |
| 31520 | .unused, |
| 31521 | .unused, |
| 31522 | .unused, |
| 31523 | .unused, |
| 31524 | }, |
| 31525 | .dst_temps = .{.mem}, |
| 31526 | .clobbers = .{ .eflags = true }, |
| 31527 | .each = .{ .once = &.{ |
| 31528 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 31529 | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, |
| 31530 | .{ ._, ._l, .sa, .tmp1d, .uia(32, .dst0, .sub_bit_size), ._, ._ }, |
| 31531 | .{ ._, ._r, .sa, .tmp1d, .uia(32, .dst0, .sub_bit_size), ._, ._ }, |
| 31532 | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1w, ._, ._ }, |
| 31533 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 31534 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 31535 | } }, |
| 31536 | }, .{ |
| 31537 | .required_features = .{ .bmi2, null, null, null }, |
| 31538 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any }, |
| 31539 | .dst_constraints = .{.{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .word } }}, |
| 31540 | .patterns = &.{ |
| 31541 | .{ .src = .{ .to_mem, .none } }, |
| 31542 | }, |
| 31543 | .extra_temps = .{ |
| 31544 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 31545 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| 31546 | .{ .type = .u16, .kind = .{ .rc = .general_purpose } }, |
| 31547 | .unused, |
| 31548 | .unused, |
| 31549 | .unused, |
| 31550 | .unused, |
| 31551 | .unused, |
| 31552 | .unused, |
| 31553 | }, |
| 31554 | .dst_temps = .{.mem}, |
| 31555 | .clobbers = .{ .eflags = true }, |
| 31556 | .each = .{ .once = &.{ |
| 31557 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 31558 | .{ ._, ._, .mov, .tmp1d, .sa(.dst0, .add_bit_size), ._, ._ }, |
| 31559 | .{ .@"0:", ._, .bzhi, .tmp2d, .memsia(.src0d, .@"4", .tmp0, .add_unaligned_size), .tmp1d, ._ }, |
| 31560 | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp2w, ._, ._ }, |
| 31561 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 31562 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 31563 | } }, |
| 31564 | }, .{ |
| 31565 | .required_features = .{ .fast_imm16, null, null, null }, |
| 31566 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any }, |
| 31567 | .dst_constraints = .{.{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .word } }}, |
| 31568 | .patterns = &.{ |
| 31569 | .{ .src = .{ .to_mem, .none } }, |
| 31570 | }, |
| 31571 | .extra_temps = .{ |
| 31572 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 31573 | .{ .type = .u16, .kind = .{ .rc = .general_purpose } }, |
| 31574 | .unused, |
| 31575 | .unused, |
| 31576 | .unused, |
| 31577 | .unused, |
| 31578 | .unused, |
| 31579 | .unused, |
| 31580 | .unused, |
| 31581 | }, |
| 31582 | .dst_temps = .{.mem}, |
| 31583 | .clobbers = .{ .eflags = true }, |
| 31584 | .each = .{ .once = &.{ |
| 31585 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 31586 | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, |
| 31587 | .{ ._, ._, .@"and", .tmp1w, .sa(.dst0, .add_umax), ._, ._ }, |
| 31588 | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1w, ._, ._ }, |
| 31589 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 31590 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 31591 | } }, |
| 31592 | }, .{ |
| 31593 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any }, |
| 31594 | .dst_constraints = .{.{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .word } }}, |
| 31595 | .patterns = &.{ |
| 31596 | .{ .src = .{ .to_mem, .none } }, |
| 31597 | }, |
| 31598 | .extra_temps = .{ |
| 31599 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 31600 | .{ .type = .u16, .kind = .{ .rc = .general_purpose } }, |
| 31601 | .unused, |
| 31602 | .unused, |
| 31603 | .unused, |
| 31604 | .unused, |
| 31605 | .unused, |
| 31606 | .unused, |
| 31607 | .unused, |
| 31608 | }, |
| 31609 | .dst_temps = .{.mem}, |
| 31610 | .clobbers = .{ .eflags = true }, |
| 31611 | .each = .{ .once = &.{ |
| 31612 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 31613 | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, |
| 31614 | .{ ._, ._, .@"and", .tmp1d, .sa(.dst0, .add_umax), ._, ._ }, |
| 31615 | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1w, ._, ._ }, |
| 31616 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 31617 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 31618 | } }, |
| 31619 | }, .{ |
| 31620 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .xword, .is = .xword } }, .any }, |
| 31621 | .dst_constraints = .{.{ .multiple_scalar_exact_int = .{ .of = .word, .is = 16 } }}, |
| 31622 | .patterns = &.{ |
| 31623 | .{ .src = .{ .to_mem, .none } }, |
| 31624 | }, |
| 31625 | .extra_temps = .{ |
| 31626 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 31627 | .{ .type = .u16, .kind = .{ .rc = .general_purpose } }, |
| 31628 | .unused, |
| 31629 | .unused, |
| 31630 | .unused, |
| 31631 | .unused, |
| 31632 | .unused, |
| 31633 | .unused, |
| 31634 | .unused, |
| 31635 | }, |
| 31636 | .dst_temps = .{.mem}, |
| 31637 | .clobbers = .{ .eflags = true }, |
| 31638 | .each = .{ .once = &.{ |
| 31639 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 31640 | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"8", .tmp0, .add_unaligned_size), ._, ._ }, |
| 31641 | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1w, ._, ._ }, |
| 31642 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 31643 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 31644 | } }, |
| 31645 | }, .{ |
| 31646 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .xword } }, .any }, |
| 31647 | .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .word, .is = .word } }}, |
| 31648 | .patterns = &.{ |
| 31649 | .{ .src = .{ .to_mem, .none } }, |
| 31650 | }, |
| 31651 | .extra_temps = .{ |
| 31652 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 31653 | .{ .type = .i16, .kind = .{ .rc = .general_purpose } }, |
| 31654 | .unused, |
| 31655 | .unused, |
| 31656 | .unused, |
| 31657 | .unused, |
| 31658 | .unused, |
| 31659 | .unused, |
| 31660 | .unused, |
| 31661 | }, |
| 31662 | .dst_temps = .{.mem}, |
| 31663 | .clobbers = .{ .eflags = true }, |
| 31664 | .each = .{ .once = &.{ |
| 31665 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 31666 | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"8", .tmp0, .add_unaligned_size), ._, ._ }, |
| 31667 | .{ ._, ._l, .sa, .tmp1d, .uia(32, .dst0, .sub_bit_size), ._, ._ }, |
| 31668 | .{ ._, ._r, .sa, .tmp1d, .uia(32, .dst0, .sub_bit_size), ._, ._ }, |
| 31669 | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1w, ._, ._ }, |
| 31670 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 31671 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 31672 | } }, |
| 31673 | }, .{ |
| 31674 | .required_features = .{ .bmi2, null, null, null }, |
| 31675 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .xword } }, .any }, |
| 31676 | .dst_constraints = .{.{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .word } }}, |
| 31677 | .patterns = &.{ |
| 31678 | .{ .src = .{ .to_mem, .none } }, |
| 31679 | }, |
| 31680 | .extra_temps = .{ |
| 31681 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 31682 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| 31683 | .{ .type = .u16, .kind = .{ .rc = .general_purpose } }, |
| 31684 | .unused, |
| 31685 | .unused, |
| 31686 | .unused, |
| 31687 | .unused, |
| 31688 | .unused, |
| 31689 | .unused, |
| 31690 | }, |
| 31691 | .dst_temps = .{.mem}, |
| 31692 | .clobbers = .{ .eflags = true }, |
| 31693 | .each = .{ .once = &.{ |
| 31694 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 31695 | .{ ._, ._, .mov, .tmp1d, .sa(.dst0, .add_bit_size), ._, ._ }, |
| 31696 | .{ .@"0:", ._, .bzhi, .tmp2d, .memsia(.src0d, .@"8", .tmp0, .add_unaligned_size), .tmp1d, ._ }, |
| 31697 | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp2w, ._, ._ }, |
| 31698 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 31699 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 31700 | } }, |
| 31701 | }, .{ |
| 31702 | .required_features = .{ .fast_imm16, null, null, null }, |
| 31703 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .xword } }, .any }, |
| 31704 | .dst_constraints = .{.{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .word } }}, |
| 31705 | .patterns = &.{ |
| 31706 | .{ .src = .{ .to_mem, .none } }, |
| 31707 | }, |
| 31708 | .extra_temps = .{ |
| 31709 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 31710 | .{ .type = .u16, .kind = .{ .rc = .general_purpose } }, |
| 31711 | .unused, |
| 31712 | .unused, |
| 31713 | .unused, |
| 31714 | .unused, |
| 31715 | .unused, |
| 31716 | .unused, |
| 31717 | .unused, |
| 31718 | }, |
| 31719 | .dst_temps = .{.mem}, |
| 31720 | .clobbers = .{ .eflags = true }, |
| 31721 | .each = .{ .once = &.{ |
| 31722 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 31723 | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"8", .tmp0, .add_unaligned_size), ._, ._ }, |
| 31724 | .{ ._, ._, .@"and", .tmp1w, .sa(.dst0, .add_umax), ._, ._ }, |
| 31725 | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1w, ._, ._ }, |
| 31726 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 31727 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 31728 | } }, |
| 31729 | }, .{ |
| 31730 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .xword } }, .any }, |
| 31731 | .dst_constraints = .{.{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .word } }}, |
| 31732 | .patterns = &.{ |
| 31733 | .{ .src = .{ .to_mem, .none } }, |
| 31734 | }, |
| 31735 | .extra_temps = .{ |
| 31736 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 31737 | .{ .type = .u16, .kind = .{ .rc = .general_purpose } }, |
| 31738 | .unused, |
| 31739 | .unused, |
| 31740 | .unused, |
| 31741 | .unused, |
| 31742 | .unused, |
| 31743 | .unused, |
| 31744 | .unused, |
| 31745 | }, |
| 31746 | .dst_temps = .{.mem}, |
| 31747 | .clobbers = .{ .eflags = true }, |
| 31748 | .each = .{ .once = &.{ |
| 31749 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 31750 | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"8", .tmp0, .add_unaligned_size), ._, ._ }, |
| 31751 | .{ ._, ._, .@"and", .tmp1d, .sa(.dst0, .add_umax), ._, ._ }, |
| 31752 | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1w, ._, ._ }, |
| 31753 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 31754 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 31755 | } }, |
| 31756 | }, .{ |
| 31757 | .src_constraints = .{ .any_scalar_int, .any }, |
| 31758 | .dst_constraints = .{.{ .multiple_scalar_exact_int = .{ .of = .word, .is = 16 } }}, |
| 31759 | .patterns = &.{ |
| 31760 | .{ .src = .{ .to_mem, .none } }, |
| 31761 | }, |
| 31762 | .extra_temps = .{ |
| 31763 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 31764 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 31765 | .{ .type = .u16, .kind = .{ .rc = .general_purpose } }, |
| 31766 | .unused, |
| 31767 | .unused, |
| 31768 | .unused, |
| 31769 | .unused, |
| 31770 | .unused, |
| 31771 | .unused, |
| 31772 | }, |
| 31773 | .dst_temps = .{.mem}, |
| 31774 | .clobbers = .{ .eflags = true }, |
| 31775 | .each = .{ .once = &.{ |
| 31776 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 31777 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| 31778 | .{ .@"0:", ._, .mov, .tmp2d, .memi(.src0d, .tmp1), ._, ._ }, |
| 31779 | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp2w, ._, ._ }, |
| 31780 | .{ ._, ._, .lea, .tmp1d, .leaa(.tmp1, .add_src0_elem_size), ._, ._ }, |
| 31781 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 31782 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 31783 | } }, |
| 31784 | }, .{ |
| 31785 | .src_constraints = .{ .any_scalar_signed_int, .any }, |
| 31786 | .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .word, .is = .word } }}, |
| 31787 | .patterns = &.{ |
| 31788 | .{ .src = .{ .to_mem, .none } }, |
| 31789 | }, |
| 31790 | .extra_temps = .{ |
| 31791 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 31792 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 31793 | .{ .type = .i16, .kind = .{ .rc = .general_purpose } }, |
| 31794 | .unused, |
| 31795 | .unused, |
| 31796 | .unused, |
| 31797 | .unused, |
| 31798 | .unused, |
| 31799 | .unused, |
| 31800 | }, |
| 31801 | .dst_temps = .{.mem}, |
| 31802 | .clobbers = .{ .eflags = true }, |
| 31803 | .each = .{ .once = &.{ |
| 31804 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 31805 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| 31806 | .{ .@"0:", ._, .mov, .tmp2d, .memi(.src0d, .tmp1), ._, ._ }, |
| 31807 | .{ ._, ._l, .sa, .tmp2d, .uia(32, .dst0, .sub_bit_size), ._, ._ }, |
| 31808 | .{ ._, ._r, .sa, .tmp2d, .uia(32, .dst0, .sub_bit_size), ._, ._ }, |
| 31809 | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp2w, ._, ._ }, |
| 31810 | .{ ._, ._, .lea, .tmp1d, .leaa(.tmp1, .add_src0_elem_size), ._, ._ }, |
| 31811 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 31812 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 31813 | } }, |
| 31814 | }, .{ |
| 31815 | .required_features = .{ .bmi2, null, null, null }, |
| 31816 | .src_constraints = .{ .any_scalar_unsigned_int, .any }, |
| 31817 | .dst_constraints = .{.{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .word } }}, |
| 31818 | .patterns = &.{ |
| 31819 | .{ .src = .{ .to_mem, .none } }, |
| 31820 | }, |
| 31821 | .extra_temps = .{ |
| 31822 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 31823 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 31824 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| 31825 | .{ .type = .u16, .kind = .{ .rc = .general_purpose } }, |
| 31826 | .unused, |
| 31827 | .unused, |
| 31828 | .unused, |
| 31829 | .unused, |
| 31830 | .unused, |
| 31831 | }, |
| 31832 | .dst_temps = .{.mem}, |
| 31833 | .clobbers = .{ .eflags = true }, |
| 31834 | .each = .{ .once = &.{ |
| 31835 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 31836 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| 31837 | .{ ._, ._, .mov, .tmp2d, .sa(.dst0, .add_bit_size), ._, ._ }, |
| 31838 | .{ .@"0:", ._, .bzhi, .tmp3d, .memi(.src0d, .tmp1), .tmp2d, ._ }, |
| 31839 | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp3w, ._, ._ }, |
| 31840 | .{ ._, ._, .lea, .tmp1d, .leaa(.tmp1, .add_src0_elem_size), ._, ._ }, |
| 31841 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 31842 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 31843 | } }, |
| 31844 | }, .{ |
| 31845 | .required_features = .{ .fast_imm16, null, null, null }, |
| 31846 | .src_constraints = .{ .any_scalar_unsigned_int, .any }, |
| 31847 | .dst_constraints = .{.{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .word } }}, |
| 31848 | .patterns = &.{ |
| 31849 | .{ .src = .{ .to_mem, .none } }, |
| 31850 | }, |
| 31851 | .extra_temps = .{ |
| 31852 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 31853 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 31854 | .{ .type = .u16, .kind = .{ .rc = .general_purpose } }, |
| 31855 | .unused, |
| 31856 | .unused, |
| 31857 | .unused, |
| 31858 | .unused, |
| 31859 | .unused, |
| 31860 | .unused, |
| 31861 | }, |
| 31862 | .dst_temps = .{.mem}, |
| 31863 | .clobbers = .{ .eflags = true }, |
| 31864 | .each = .{ .once = &.{ |
| 31865 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 31866 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| 31867 | .{ .@"0:", ._, .mov, .tmp2d, .memi(.src0d, .tmp1), ._, ._ }, |
| 31868 | .{ ._, ._, .@"and", .tmp2w, .sa(.dst0, .add_umax), ._, ._ }, |
| 31869 | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp2w, ._, ._ }, |
| 31870 | .{ ._, ._, .lea, .tmp1d, .leaa(.tmp1, .add_src0_elem_size), ._, ._ }, |
| 31871 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 31872 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 31873 | } }, |
| 31874 | }, .{ |
| 31875 | .src_constraints = .{ .any_scalar_unsigned_int, .any }, |
| 31876 | .dst_constraints = .{.{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .word } }}, |
| 31877 | .patterns = &.{ |
| 31878 | .{ .src = .{ .to_mem, .none } }, |
| 31879 | }, |
| 31880 | .extra_temps = .{ |
| 31881 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 31882 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 31883 | .{ .type = .u16, .kind = .{ .rc = .general_purpose } }, |
| 31884 | .unused, |
| 31885 | .unused, |
| 31886 | .unused, |
| 31887 | .unused, |
| 31888 | .unused, |
| 31889 | .unused, |
| 31890 | }, |
| 31891 | .dst_temps = .{.mem}, |
| 31892 | .clobbers = .{ .eflags = true }, |
| 31893 | .each = .{ .once = &.{ |
| 31894 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 31895 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| 31896 | .{ .@"0:", ._, .mov, .tmp2d, .memi(.src0d, .tmp1), ._, ._ }, |
| 31897 | .{ ._, ._, .@"and", .tmp2d, .sa(.dst0, .add_umax), ._, ._ }, |
| 31898 | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp2w, ._, ._ }, |
| 31899 | .{ ._, ._, .lea, .tmp1d, .leaa(.tmp1, .add_src0_elem_size), ._, ._ }, |
| 31900 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 31901 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 31902 | } }, |
| 31903 | }, .{ |
| 31904 | .required_features = .{ .avx, null, null, null }, |
| 31905 | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .dword } }, .any }, |
| 31906 | .dst_constraints = .{.{ .scalar_signed_int = .{ .of = .xword, .is = .dword } }}, |
| 31907 | .patterns = &.{ |
| 31908 | .{ .src = .{ .to_sse, .none } }, |
| 31909 | }, |
| 31910 | .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, |
| 31911 | .each = .{ .once = &.{ |
| 31912 | .{ ._, .vp_d, .sll, .dst0x, .src0x, .uia(32, .dst0, .sub_bit_size), ._ }, |
| 31913 | .{ ._, .vp_d, .sra, .dst0x, .dst0x, .uia(32, .dst0, .sub_bit_size), ._ }, |
| 31914 | } }, |
| 31915 | }, .{ |
| 31916 | .required_features = .{ .avx, null, null, null }, |
| 31917 | .src_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .xword, .is = .dword } }, .any }, |
| 31918 | .dst_constraints = .{.{ .scalar_unsigned_int = .{ .of = .xword, .is = .dword } }}, |
| 31919 | .patterns = &.{ |
| 31920 | .{ .src = .{ .to_sse, .none } }, |
| 31921 | }, |
| 31922 | .extra_temps = .{ |
| 31923 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 31924 | .{ .kind = .{ .umax_mem = .{ .ref = .dst0 } } }, |
| 31925 | .unused, |
| 31926 | .unused, |
| 31927 | .unused, |
| 31928 | .unused, |
| 31929 | .unused, |
| 31930 | .unused, |
| 31931 | .unused, |
| 31932 | }, |
| 31933 | .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, |
| 31934 | .each = .{ .once = &.{ |
| 31935 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 31936 | .{ ._, .vp_, .@"and", .dst0x, .src0x, .lea(.tmp0x), ._ }, |
| 31937 | } }, |
| 31938 | }, .{ |
| 31939 | .required_features = .{ .sse2, null, null, null }, |
| 31940 | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .dword } }, .any }, |
| 31941 | .dst_constraints = .{.{ .scalar_signed_int = .{ .of = .xword, .is = .dword } }}, |
| 31942 | .patterns = &.{ |
| 31943 | .{ .src = .{ .to_mut_sse, .none } }, |
| 31944 | }, |
| 31945 | .dst_temps = .{.{ .ref = .src0 }}, |
| 31946 | .each = .{ .once = &.{ |
| 31947 | .{ ._, .p_d, .sll, .dst0x, .uia(32, .dst0, .sub_bit_size), ._, ._ }, |
| 31948 | .{ ._, .p_d, .sra, .dst0x, .uia(32, .dst0, .sub_bit_size), ._, ._ }, |
| 31949 | } }, |
| 31950 | }, .{ |
| 31951 | .required_features = .{ .sse2, null, null, null }, |
| 31952 | .src_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .xword, .is = .dword } }, .any }, |
| 31953 | .dst_constraints = .{.{ .scalar_unsigned_int = .{ .of = .xword, .is = .dword } }}, |
| 31954 | .patterns = &.{ |
| 31955 | .{ .src = .{ .to_mut_sse, .none } }, |
| 31956 | }, |
| 31957 | .extra_temps = .{ |
| 31958 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 31959 | .{ .kind = .{ .umax_mem = .{ .ref = .dst0 } } }, |
| 31960 | .unused, |
| 31961 | .unused, |
| 31962 | .unused, |
| 31963 | .unused, |
| 31964 | .unused, |
| 31965 | .unused, |
| 31966 | .unused, |
| 31967 | }, |
| 31968 | .dst_temps = .{.{ .ref = .src0 }}, |
| 31969 | .each = .{ .once = &.{ |
| 31970 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 31971 | .{ ._, .p_, .@"and", .dst0x, .lea(.tmp0x), ._, ._ }, |
| 31972 | } }, |
| 31973 | }, .{ |
| 31974 | .required_features = .{ .sse, null, null, null }, |
| 31975 | .src_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .xword, .is = .dword } }, .any }, |
| 31976 | .dst_constraints = .{.{ .scalar_unsigned_int = .{ .of = .xword, .is = .dword } }}, |
| 31977 | .patterns = &.{ |
| 31978 | .{ .src = .{ .to_mut_sse, .none } }, |
| 31979 | }, |
| 31980 | .extra_temps = .{ |
| 31981 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 31982 | .{ .kind = .{ .umax_mem = .{ .ref = .dst0 } } }, |
| 31983 | .unused, |
| 31984 | .unused, |
| 31985 | .unused, |
| 31986 | .unused, |
| 31987 | .unused, |
| 31988 | .unused, |
| 31989 | .unused, |
| 31990 | }, |
| 31991 | .dst_temps = .{.{ .ref = .src0 }}, |
| 31992 | .each = .{ .once = &.{ |
| 31993 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 31994 | .{ ._, ._ps, .@"and", .dst0x, .lea(.tmp0x), ._, ._ }, |
| 31995 | } }, |
| 31996 | }, .{ |
| 31997 | .required_features = .{ .avx2, null, null, null }, |
| 31998 | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .yword, .is = .dword } }, .any }, |
| 31999 | .dst_constraints = .{.{ .scalar_signed_int = .{ .of = .yword, .is = .dword } }}, |
| 32000 | .patterns = &.{ |
| 32001 | .{ .src = .{ .to_sse, .none } }, |
| 32002 | }, |
| 32003 | .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, |
| 32004 | .each = .{ .once = &.{ |
| 32005 | .{ ._, .vp_d, .sll, .dst0y, .src0y, .uia(32, .dst0, .sub_bit_size), ._ }, |
| 32006 | .{ ._, .vp_d, .sra, .dst0y, .dst0y, .uia(32, .dst0, .sub_bit_size), ._ }, |
| 32007 | } }, |
| 32008 | }, .{ |
| 32009 | .required_features = .{ .avx2, null, null, null }, |
| 32010 | .src_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .yword, .is = .dword } }, .any }, |
| 32011 | .dst_constraints = .{.{ .scalar_unsigned_int = .{ .of = .yword, .is = .dword } }}, |
| 32012 | .patterns = &.{ |
| 32013 | .{ .src = .{ .to_sse, .none } }, |
| 32014 | }, |
| 32015 | .extra_temps = .{ |
| 32016 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 32017 | .{ .kind = .{ .umax_mem = .{ .ref = .dst0 } } }, |
| 32018 | .unused, |
| 32019 | .unused, |
| 32020 | .unused, |
| 32021 | .unused, |
| 32022 | .unused, |
| 32023 | .unused, |
| 32024 | .unused, |
| 32025 | }, |
| 32026 | .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, |
| 32027 | .each = .{ .once = &.{ |
| 32028 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 32029 | .{ ._, .vp_, .@"and", .dst0y, .src0y, .lea(.tmp0y), ._ }, |
| 32030 | } }, |
| 32031 | }, .{ |
| 32032 | .required_features = .{ .avx2, null, null, null }, |
| 32033 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .yword, .is = .dword } }, .any }, |
| 32034 | .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .yword, .is = .dword } }}, |
| 32035 | .patterns = &.{ |
| 32036 | .{ .src = .{ .to_mem, .none } }, |
| 32037 | }, |
| 32038 | .extra_temps = .{ |
| 32039 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 32040 | .{ .type = .vector_8_i32, .kind = .{ .rc = .sse } }, |
| 32041 | .unused, |
| 32042 | .unused, |
| 32043 | .unused, |
| 32044 | .unused, |
| 32045 | .unused, |
| 32046 | .unused, |
| 32047 | .unused, |
| 32048 | }, |
| 32049 | .dst_temps = .{.mem}, |
| 32050 | .clobbers = .{ .eflags = true }, |
| 32051 | .each = .{ .once = &.{ |
| 32052 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 32053 | .{ .@"0:", .v_dqa, .mov, .tmp1y, .memia(.src0y, .tmp0, .add_unaligned_size), ._, ._ }, |
| 32054 | .{ ._, .vp_d, .sll, .tmp1y, .tmp1y, .uia(16, .dst0, .sub_bit_size), ._ }, |
| 32055 | .{ ._, .vp_d, .sra, .tmp1y, .tmp1y, .uia(16, .dst0, .sub_bit_size), ._ }, |
| 32056 | .{ ._, .v_dqa, .mov, .memia(.dst0y, .tmp0, .add_unaligned_size), .tmp1y, ._, ._ }, |
| 32057 | .{ ._, ._, .add, .tmp0p, .si(32), ._, ._ }, |
| 32058 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 32059 | } }, |
| 32060 | }, .{ |
| 32061 | .required_features = .{ .avx2, null, null, null }, |
| 32062 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .yword, .is = .dword } }, .any }, |
| 32063 | .dst_constraints = .{.{ .multiple_scalar_unsigned_int = .{ .of = .yword, .is = .dword } }}, |
| 32064 | .patterns = &.{ |
| 32065 | .{ .src = .{ .to_mem, .none } }, |
| 32066 | }, |
| 32067 | .extra_temps = .{ |
| 32068 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 32069 | .{ .type = .vector_8_u32, .kind = .{ .rc = .sse } }, |
| 32070 | .{ .type = .vector_8_u32, .kind = .{ .rc = .sse } }, |
| 32071 | .{ .kind = .{ .umax_mem = .{ .ref = .dst0, .to_signedness = .unsigned } } }, |
| 32072 | .unused, |
| 32073 | .unused, |
| 32074 | .unused, |
| 32075 | .unused, |
| 32076 | .unused, |
| 32077 | }, |
| 32078 | .dst_temps = .{.mem}, |
| 32079 | .clobbers = .{ .eflags = true }, |
| 32080 | .each = .{ .once = &.{ |
| 32081 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp3), ._, ._ }, |
| 32082 | .{ ._, .v_dqa, .mov, .tmp1y, .lea(.tmp0y), ._, ._ }, |
| 32083 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 32084 | .{ .@"0:", .vp_, .@"and", .tmp2y, .tmp1y, .memia(.src0y, .tmp0, .add_unaligned_size), ._ }, |
| 32085 | .{ ._, .v_dqa, .mov, .memia(.dst0y, .tmp0, .add_unaligned_size), .tmp2y, ._, ._ }, |
| 32086 | .{ ._, ._, .add, .tmp0p, .si(32), ._, ._ }, |
| 32087 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 32088 | } }, |
| 32089 | }, .{ |
| 32090 | .required_features = .{ .avx, null, null, null }, |
| 32091 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .dword } }, .any }, |
| 32092 | .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .dword } }}, |
| 32093 | .patterns = &.{ |
| 32094 | .{ .src = .{ .to_mem, .none } }, |
| 32095 | }, |
| 32096 | .extra_temps = .{ |
| 32097 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 32098 | .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } }, |
| 32099 | .unused, |
| 32100 | .unused, |
| 32101 | .unused, |
| 32102 | .unused, |
| 32103 | .unused, |
| 32104 | .unused, |
| 32105 | .unused, |
| 32106 | }, |
| 32107 | .dst_temps = .{.mem}, |
| 32108 | .clobbers = .{ .eflags = true }, |
| 32109 | .each = .{ .once = &.{ |
| 32110 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 32111 | .{ .@"0:", .v_dqa, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, |
| 32112 | .{ ._, .vp_d, .sll, .tmp1x, .tmp1x, .uia(16, .dst0, .sub_bit_size), ._ }, |
| 32113 | .{ ._, .vp_d, .sra, .tmp1x, .tmp1x, .uia(16, .dst0, .sub_bit_size), ._ }, |
| 32114 | .{ ._, .v_dqa, .mov, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 32115 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 32116 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 32117 | } }, |
| 32118 | }, .{ |
| 32119 | .required_features = .{ .avx, null, null, null }, |
| 32120 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .dword } }, .any }, |
| 32121 | .dst_constraints = .{.{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .dword } }}, |
| 32122 | .patterns = &.{ |
| 32123 | .{ .src = .{ .to_mem, .none } }, |
| 32124 | }, |
| 32125 | .extra_temps = .{ |
| 32126 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 32127 | .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } }, |
| 32128 | .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } }, |
| 32129 | .{ .kind = .{ .umax_mem = .{ .ref = .dst0, .to_signedness = .unsigned } } }, |
| 32130 | .unused, |
| 32131 | .unused, |
| 32132 | .unused, |
| 32133 | .unused, |
| 32134 | .unused, |
| 32135 | }, |
| 32136 | .dst_temps = .{.mem}, |
| 32137 | .clobbers = .{ .eflags = true }, |
| 32138 | .each = .{ .once = &.{ |
| 32139 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp3), ._, ._ }, |
| 32140 | .{ ._, .v_dqa, .mov, .tmp1x, .lea(.tmp0x), ._, ._ }, |
| 32141 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 32142 | .{ .@"0:", .vp_, .@"and", .tmp2x, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._ }, |
| 32143 | .{ ._, .v_dqa, .mov, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp2x, ._, ._ }, |
| 32144 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 32145 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 32146 | } }, |
| 32147 | }, .{ |
| 32148 | .required_features = .{ .sse2, null, null, null }, |
| 32149 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .dword } }, .any }, |
| 32150 | .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .dword } }}, |
| 32151 | .patterns = &.{ |
| 32152 | .{ .src = .{ .to_mem, .none } }, |
| 32153 | }, |
| 32154 | .extra_temps = .{ |
| 32155 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 32156 | .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } }, |
| 32157 | .unused, |
| 32158 | .unused, |
| 32159 | .unused, |
| 32160 | .unused, |
| 32161 | .unused, |
| 32162 | .unused, |
| 32163 | .unused, |
| 32164 | }, |
| 32165 | .dst_temps = .{.mem}, |
| 32166 | .clobbers = .{ .eflags = true }, |
| 32167 | .each = .{ .once = &.{ |
| 32168 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 32169 | .{ .@"0:", ._dqa, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, |
| 32170 | .{ ._, .p_d, .sll, .tmp1x, .uia(16, .dst0, .sub_bit_size), ._, ._ }, |
| 32171 | .{ ._, .p_d, .sra, .tmp1x, .uia(16, .dst0, .sub_bit_size), ._, ._ }, |
| 32172 | .{ ._, ._dqa, .mov, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 32173 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 32174 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 32175 | } }, |
| 32176 | }, .{ |
| 32177 | .required_features = .{ .sse2, null, null, null }, |
| 32178 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .dword } }, .any }, |
| 32179 | .dst_constraints = .{.{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .dword } }}, |
| 32180 | .patterns = &.{ |
| 32181 | .{ .src = .{ .to_mem, .none } }, |
| 32182 | }, |
| 32183 | .extra_temps = .{ |
| 32184 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 32185 | .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } }, |
| 32186 | .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } }, |
| 32187 | .{ .kind = .{ .umax_mem = .{ .ref = .dst0, .to_signedness = .unsigned } } }, |
| 32188 | .unused, |
| 32189 | .unused, |
| 32190 | .unused, |
| 32191 | .unused, |
| 32192 | .unused, |
| 32193 | }, |
| 32194 | .dst_temps = .{.mem}, |
| 32195 | .clobbers = .{ .eflags = true }, |
| 32196 | .each = .{ .once = &.{ |
| 32197 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp3), ._, ._ }, |
| 32198 | .{ ._, ._dqa, .mov, .tmp1x, .lea(.tmp0x), ._, ._ }, |
| 32199 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 32200 | .{ .@"0:", ._dqa, .mov, .tmp2x, .tmp1x, ._, ._ }, |
| 32201 | .{ ._, .p_, .@"and", .tmp2x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, |
| 32202 | .{ ._, ._dqa, .mov, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp2x, ._, ._ }, |
| 32203 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 32204 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 32205 | } }, |
| 32206 | }, .{ |
| 32207 | .required_features = .{ .sse, null, null, null }, |
| 32208 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .dword } }, .any }, |
| 32209 | .dst_constraints = .{.{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .dword } }}, |
| 32210 | .patterns = &.{ |
| 32211 | .{ .src = .{ .to_mem, .none } }, |
| 32212 | }, |
| 32213 | .extra_temps = .{ |
| 32214 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 32215 | .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } }, |
| 32216 | .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } }, |
| 32217 | .{ .kind = .{ .umax_mem = .{ .ref = .dst0, .to_signedness = .unsigned } } }, |
| 32218 | .unused, |
| 32219 | .unused, |
| 32220 | .unused, |
| 32221 | .unused, |
| 32222 | .unused, |
| 32223 | }, |
| 32224 | .dst_temps = .{.mem}, |
| 32225 | .clobbers = .{ .eflags = true }, |
| 32226 | .each = .{ .once = &.{ |
| 32227 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp3), ._, ._ }, |
| 32228 | .{ ._, ._ps, .mova, .tmp1x, .lea(.tmp0x), ._, ._ }, |
| 32229 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 32230 | .{ .@"0:", ._ps, .mova, .tmp2x, .tmp1x, ._, ._ }, |
| 32231 | .{ ._, ._ps, .@"and", .tmp2x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, |
| 32232 | .{ ._, ._ps, .mova, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp2x, ._, ._ }, |
| 32233 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 32234 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 32235 | } }, |
| 32236 | }, .{ |
| 32237 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .dword, .is = .dword } }, .any }, |
| 32238 | .dst_constraints = .{.{ .multiple_scalar_exact_int = .{ .of = .dword, .is = 32 } }}, |
| 32239 | .patterns = &.{ |
| 32240 | .{ .src = .{ .to_mem, .none } }, |
| 32241 | }, |
| 32242 | .extra_temps = .{ |
| 32243 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 32244 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 32245 | .unused, |
| 32246 | .unused, |
| 32247 | .unused, |
| 32248 | .unused, |
| 32249 | .unused, |
| 32250 | .unused, |
| 32251 | .unused, |
| 32252 | }, |
| 32253 | .dst_temps = .{.mem}, |
| 32254 | .clobbers = .{ .eflags = true }, |
| 32255 | .each = .{ .once = &.{ |
| 32256 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 32257 | .{ .@"0:", ._, .mov, .tmp1d, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, |
| 32258 | .{ ._, ._, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp1d, ._, ._ }, |
| 32259 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 32260 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 32261 | } }, |
| 32262 | }, .{ |
| 32263 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }, .any }, |
| 32264 | .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }}, |
| 32265 | .patterns = &.{ |
| 32266 | .{ .src = .{ .to_mem, .none } }, |
| 32267 | }, |
| 32268 | .extra_temps = .{ |
| 32269 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 32270 | .{ .type = .i32, .kind = .{ .rc = .general_purpose } }, |
| 32271 | .unused, |
| 32272 | .unused, |
| 32273 | .unused, |
| 32274 | .unused, |
| 32275 | .unused, |
| 32276 | .unused, |
| 32277 | .unused, |
| 32278 | }, |
| 32279 | .dst_temps = .{.mem}, |
| 32280 | .clobbers = .{ .eflags = true }, |
| 32281 | .each = .{ .once = &.{ |
| 32282 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 32283 | .{ .@"0:", ._, .mov, .tmp1d, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, |
| 32284 | .{ ._, ._l, .sa, .tmp1d, .uia(32, .dst0, .sub_bit_size), ._, ._ }, |
| 32285 | .{ ._, ._r, .sa, .tmp1d, .uia(32, .dst0, .sub_bit_size), ._, ._ }, |
| 32286 | .{ ._, ._, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp1d, ._, ._ }, |
| 32287 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 32288 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 32289 | } }, |
| 32290 | }, .{ |
| 32291 | .required_features = .{ .bmi2, null, null, null }, |
| 32292 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, .any }, |
| 32293 | .dst_constraints = .{.{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }}, |
| 32294 | .patterns = &.{ |
| 32295 | .{ .src = .{ .to_mem, .none } }, |
| 32296 | }, |
| 32297 | .extra_temps = .{ |
| 32298 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 32299 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| 32300 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 32301 | .unused, |
| 32302 | .unused, |
| 32303 | .unused, |
| 32304 | .unused, |
| 32305 | .unused, |
| 32306 | .unused, |
| 32307 | }, |
| 32308 | .dst_temps = .{.mem}, |
| 32309 | .clobbers = .{ .eflags = true }, |
| 32310 | .each = .{ .once = &.{ |
| 32311 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 32312 | .{ ._, ._, .mov, .tmp1d, .sa(.dst0, .add_bit_size), ._, ._ }, |
| 32313 | .{ .@"0:", ._, .bzhi, .tmp2d, .memia(.src0d, .tmp0, .add_unaligned_size), .tmp1d, ._ }, |
| 32314 | .{ ._, ._, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp2d, ._, ._ }, |
| 32315 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 32316 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 32317 | } }, |
| 32318 | }, .{ |
| 32319 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, .any }, |
| 32320 | .dst_constraints = .{.{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }}, |
| 32321 | .patterns = &.{ |
| 32322 | .{ .src = .{ .to_mem, .none } }, |
| 32323 | }, |
| 32324 | .extra_temps = .{ |
| 32325 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 32326 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 32327 | .unused, |
| 32328 | .unused, |
| 32329 | .unused, |
| 32330 | .unused, |
| 32331 | .unused, |
| 32332 | .unused, |
| 32333 | .unused, |
| 32334 | }, |
| 32335 | .dst_temps = .{.mem}, |
| 32336 | .clobbers = .{ .eflags = true }, |
| 32337 | .each = .{ .once = &.{ |
| 32338 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 32339 | .{ .@"0:", ._, .mov, .tmp1d, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, |
| 32340 | .{ ._, ._, .@"and", .tmp1d, .sa(.dst0, .add_umax), ._, ._ }, |
| 32341 | .{ ._, ._, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp1d, ._, ._ }, |
| 32342 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 32343 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 32344 | } }, |
| 32345 | }, .{ |
| 32346 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .qword, .is = .qword } }, .any }, |
| 32347 | .dst_constraints = .{.{ .multiple_scalar_exact_int = .{ .of = .dword, .is = 32 } }}, |
| 32348 | .patterns = &.{ |
| 32349 | .{ .src = .{ .to_mem, .none } }, |
| 32350 | }, |
| 32351 | .extra_temps = .{ |
| 32352 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 32353 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 32354 | .unused, |
| 32355 | .unused, |
| 32356 | .unused, |
| 32357 | .unused, |
| 32358 | .unused, |
| 32359 | .unused, |
| 32360 | .unused, |
| 32361 | }, |
| 32362 | .dst_temps = .{.mem}, |
| 32363 | .clobbers = .{ .eflags = true }, |
| 32364 | .each = .{ .once = &.{ |
| 32365 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 32366 | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| 32367 | .{ ._, ._, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp1d, ._, ._ }, |
| 32368 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 32369 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 32370 | } }, |
| 32371 | }, .{ |
| 32372 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any }, |
| 32373 | .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }}, |
| 32374 | .patterns = &.{ |
| 32375 | .{ .src = .{ .to_mem, .none } }, |
| 32376 | }, |
| 32377 | .extra_temps = .{ |
| 32378 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 32379 | .{ .type = .i32, .kind = .{ .rc = .general_purpose } }, |
| 32380 | .unused, |
| 32381 | .unused, |
| 32382 | .unused, |
| 32383 | .unused, |
| 32384 | .unused, |
| 32385 | .unused, |
| 32386 | .unused, |
| 32387 | }, |
| 32388 | .dst_temps = .{.mem}, |
| 32389 | .clobbers = .{ .eflags = true }, |
| 32390 | .each = .{ .once = &.{ |
| 32391 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 32392 | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| 32393 | .{ ._, ._l, .sa, .tmp1d, .uia(32, .dst0, .sub_bit_size), ._, ._ }, |
| 32394 | .{ ._, ._r, .sa, .tmp1d, .uia(32, .dst0, .sub_bit_size), ._, ._ }, |
| 32395 | .{ ._, ._, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp1d, ._, ._ }, |
| 32396 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 32397 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 32398 | } }, |
| 32399 | }, .{ |
| 32400 | .required_features = .{ .bmi2, null, null, null }, |
| 32401 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any }, |
| 32402 | .dst_constraints = .{.{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }}, |
| 32403 | .patterns = &.{ |
| 32404 | .{ .src = .{ .to_mem, .none } }, |
| 32405 | }, |
| 32406 | .extra_temps = .{ |
| 32407 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 32408 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| 32409 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 32410 | .unused, |
| 32411 | .unused, |
| 32412 | .unused, |
| 32413 | .unused, |
| 32414 | .unused, |
| 32415 | .unused, |
| 32416 | }, |
| 32417 | .dst_temps = .{.mem}, |
| 32418 | .clobbers = .{ .eflags = true }, |
| 32419 | .each = .{ .once = &.{ |
| 32420 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 32421 | .{ ._, ._, .mov, .tmp1d, .sa(.dst0, .add_bit_size), ._, ._ }, |
| 32422 | .{ .@"0:", ._, .bzhi, .tmp2d, .memsia(.src0d, .@"2", .tmp0, .add_unaligned_size), .tmp1d, ._ }, |
| 32423 | .{ ._, ._, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp2d, ._, ._ }, |
| 32424 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 32425 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 32426 | } }, |
| 32427 | }, .{ |
| 32428 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any }, |
| 32429 | .dst_constraints = .{.{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }}, |
| 32430 | .patterns = &.{ |
| 32431 | .{ .src = .{ .to_mem, .none } }, |
| 32432 | }, |
| 32433 | .extra_temps = .{ |
| 32434 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 32435 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 32436 | .unused, |
| 32437 | .unused, |
| 32438 | .unused, |
| 32439 | .unused, |
| 32440 | .unused, |
| 32441 | .unused, |
| 32442 | .unused, |
| 32443 | }, |
| 32444 | .dst_temps = .{.mem}, |
| 32445 | .clobbers = .{ .eflags = true }, |
| 32446 | .each = .{ .once = &.{ |
| 32447 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 32448 | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| 32449 | .{ ._, ._, .@"and", .tmp1d, .sa(.dst0, .add_umax), ._, ._ }, |
| 32450 | .{ ._, ._, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp1d, ._, ._ }, |
| 32451 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 32452 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 32453 | } }, |
| 32454 | }, .{ |
| 32455 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .xword, .is = .xword } }, .any }, |
| 32456 | .dst_constraints = .{.{ .multiple_scalar_exact_int = .{ .of = .dword, .is = 32 } }}, |
| 32457 | .patterns = &.{ |
| 32458 | .{ .src = .{ .to_mem, .none } }, |
| 32459 | }, |
| 32460 | .extra_temps = .{ |
| 32461 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 32462 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 32463 | .unused, |
| 32464 | .unused, |
| 32465 | .unused, |
| 32466 | .unused, |
| 32467 | .unused, |
| 32468 | .unused, |
| 32469 | .unused, |
| 32470 | }, |
| 32471 | .dst_temps = .{.mem}, |
| 32472 | .clobbers = .{ .eflags = true }, |
| 32473 | .each = .{ .once = &.{ |
| 32474 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 32475 | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, |
| 32476 | .{ ._, ._, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp1d, ._, ._ }, |
| 32477 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 32478 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 32479 | } }, |
| 32480 | }, .{ |
| 32481 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .xword } }, .any }, |
| 32482 | .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }}, |
| 32483 | .patterns = &.{ |
| 32484 | .{ .src = .{ .to_mem, .none } }, |
| 32485 | }, |
| 32486 | .extra_temps = .{ |
| 32487 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 32488 | .{ .type = .i32, .kind = .{ .rc = .general_purpose } }, |
| 32489 | .unused, |
| 32490 | .unused, |
| 32491 | .unused, |
| 32492 | .unused, |
| 32493 | .unused, |
| 32494 | .unused, |
| 32495 | .unused, |
| 32496 | }, |
| 32497 | .dst_temps = .{.mem}, |
| 32498 | .clobbers = .{ .eflags = true }, |
| 32499 | .each = .{ .once = &.{ |
| 32500 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 32501 | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, |
| 32502 | .{ ._, ._l, .sa, .tmp1d, .uia(32, .dst0, .sub_bit_size), ._, ._ }, |
| 32503 | .{ ._, ._r, .sa, .tmp1d, .uia(32, .dst0, .sub_bit_size), ._, ._ }, |
| 32504 | .{ ._, ._, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp1d, ._, ._ }, |
| 32505 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 32506 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 32507 | } }, |
| 32508 | }, .{ |
| 32509 | .required_features = .{ .bmi2, null, null, null }, |
| 32510 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .xword } }, .any }, |
| 32511 | .dst_constraints = .{.{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }}, |
| 32512 | .patterns = &.{ |
| 32513 | .{ .src = .{ .to_mem, .none } }, |
| 32514 | }, |
| 32515 | .extra_temps = .{ |
| 32516 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 32517 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| 32518 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 32519 | .unused, |
| 32520 | .unused, |
| 32521 | .unused, |
| 32522 | .unused, |
| 32523 | .unused, |
| 32524 | .unused, |
| 32525 | }, |
| 32526 | .dst_temps = .{.mem}, |
| 32527 | .clobbers = .{ .eflags = true }, |
| 32528 | .each = .{ .once = &.{ |
| 32529 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 32530 | .{ ._, ._, .mov, .tmp1d, .sa(.dst0, .add_bit_size), ._, ._ }, |
| 32531 | .{ .@"0:", ._, .bzhi, .tmp2d, .memsia(.src0d, .@"4", .tmp0, .add_unaligned_size), .tmp1d, ._ }, |
| 32532 | .{ ._, ._, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp2d, ._, ._ }, |
| 32533 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 32534 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 32535 | } }, |
| 32536 | }, .{ |
| 32537 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .xword } }, .any }, |
| 32538 | .dst_constraints = .{.{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }}, |
| 32539 | .patterns = &.{ |
| 32540 | .{ .src = .{ .to_mem, .none } }, |
| 32541 | }, |
| 32542 | .extra_temps = .{ |
| 32543 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 32544 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 32545 | .unused, |
| 32546 | .unused, |
| 32547 | .unused, |
| 32548 | .unused, |
| 32549 | .unused, |
| 32550 | .unused, |
| 32551 | .unused, |
| 32552 | }, |
| 32553 | .dst_temps = .{.mem}, |
| 32554 | .clobbers = .{ .eflags = true }, |
| 32555 | .each = .{ .once = &.{ |
| 32556 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 32557 | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, |
| 32558 | .{ ._, ._, .@"and", .tmp1d, .sa(.dst0, .add_umax), ._, ._ }, |
| 32559 | .{ ._, ._, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp1d, ._, ._ }, |
| 32560 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 32561 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 32562 | } }, |
| 32563 | }, .{ |
| 32564 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .yword, .is = .yword } }, .any }, |
| 32565 | .dst_constraints = .{.{ .multiple_scalar_exact_int = .{ .of = .dword, .is = 32 } }}, |
| 32566 | .patterns = &.{ |
| 32567 | .{ .src = .{ .to_mem, .none } }, |
| 32568 | }, |
| 32569 | .extra_temps = .{ |
| 32570 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 32571 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 32572 | .unused, |
| 32573 | .unused, |
| 32574 | .unused, |
| 32575 | .unused, |
| 32576 | .unused, |
| 32577 | .unused, |
| 32578 | .unused, |
| 32579 | }, |
| 32580 | .dst_temps = .{.mem}, |
| 32581 | .clobbers = .{ .eflags = true }, |
| 32582 | .each = .{ .once = &.{ |
| 32583 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 32584 | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"8", .tmp0, .add_unaligned_size), ._, ._ }, |
| 32585 | .{ ._, ._, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp1d, ._, ._ }, |
| 32586 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 32587 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 32588 | } }, |
| 32589 | }, .{ |
| 32590 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .yword, .is = .yword } }, .any }, |
| 32591 | .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }}, |
| 32592 | .patterns = &.{ |
| 32593 | .{ .src = .{ .to_mem, .none } }, |
| 32594 | }, |
| 32595 | .extra_temps = .{ |
| 32596 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 32597 | .{ .type = .i32, .kind = .{ .rc = .general_purpose } }, |
| 32598 | .unused, |
| 32599 | .unused, |
| 32600 | .unused, |
| 32601 | .unused, |
| 32602 | .unused, |
| 32603 | .unused, |
| 32604 | .unused, |
| 32605 | }, |
| 32606 | .dst_temps = .{.mem}, |
| 32607 | .clobbers = .{ .eflags = true }, |
| 32608 | .each = .{ .once = &.{ |
| 32609 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 32610 | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"8", .tmp0, .add_unaligned_size), ._, ._ }, |
| 32611 | .{ ._, ._l, .sa, .tmp1d, .uia(32, .dst0, .sub_bit_size), ._, ._ }, |
| 32612 | .{ ._, ._r, .sa, .tmp1d, .uia(32, .dst0, .sub_bit_size), ._, ._ }, |
| 32613 | .{ ._, ._, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp1d, ._, ._ }, |
| 32614 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 32615 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 32616 | } }, |
| 32617 | }, .{ |
| 32618 | .required_features = .{ .bmi2, null, null, null }, |
| 32619 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .yword, .is = .yword } }, .any }, |
| 32620 | .dst_constraints = .{.{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }}, |
| 32621 | .patterns = &.{ |
| 32622 | .{ .src = .{ .to_mem, .none } }, |
| 32623 | }, |
| 32624 | .extra_temps = .{ |
| 32625 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 32626 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| 32627 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 32628 | .unused, |
| 32629 | .unused, |
| 32630 | .unused, |
| 32631 | .unused, |
| 32632 | .unused, |
| 32633 | .unused, |
| 32634 | }, |
| 32635 | .dst_temps = .{.mem}, |
| 32636 | .clobbers = .{ .eflags = true }, |
| 32637 | .each = .{ .once = &.{ |
| 32638 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 32639 | .{ ._, ._, .mov, .tmp1d, .sa(.dst0, .add_bit_size), ._, ._ }, |
| 32640 | .{ .@"0:", ._, .bzhi, .tmp2d, .memsia(.src0d, .@"8", .tmp0, .add_unaligned_size), .tmp1d, ._ }, |
| 32641 | .{ ._, ._, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp2d, ._, ._ }, |
| 32642 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 32643 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 32644 | } }, |
| 32645 | }, .{ |
| 32646 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .yword, .is = .yword } }, .any }, |
| 32647 | .dst_constraints = .{.{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }}, |
| 32648 | .patterns = &.{ |
| 32649 | .{ .src = .{ .to_mem, .none } }, |
| 32650 | }, |
| 32651 | .extra_temps = .{ |
| 32652 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 32653 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 32654 | .unused, |
| 32655 | .unused, |
| 32656 | .unused, |
| 32657 | .unused, |
| 32658 | .unused, |
| 32659 | .unused, |
| 32660 | .unused, |
| 32661 | }, |
| 32662 | .dst_temps = .{.mem}, |
| 32663 | .clobbers = .{ .eflags = true }, |
| 32664 | .each = .{ .once = &.{ |
| 32665 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 32666 | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"8", .tmp0, .add_unaligned_size), ._, ._ }, |
| 32667 | .{ ._, ._, .@"and", .tmp1d, .sa(.dst0, .add_umax), ._, ._ }, |
| 32668 | .{ ._, ._, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp1d, ._, ._ }, |
| 32669 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 32670 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 32671 | } }, |
| 32672 | }, .{ |
| 32673 | .src_constraints = .{ .any_scalar_int, .any }, |
| 32674 | .dst_constraints = .{.{ .multiple_scalar_exact_int = .{ .of = .dword, .is = 32 } }}, |
| 32675 | .patterns = &.{ |
| 32676 | .{ .src = .{ .to_mem, .none } }, |
| 32677 | }, |
| 32678 | .extra_temps = .{ |
| 32679 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 32680 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 32681 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 32682 | .unused, |
| 32683 | .unused, |
| 32684 | .unused, |
| 32685 | .unused, |
| 32686 | .unused, |
| 32687 | .unused, |
| 32688 | }, |
| 32689 | .dst_temps = .{.mem}, |
| 32690 | .clobbers = .{ .eflags = true }, |
| 32691 | .each = .{ .once = &.{ |
| 32692 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 32693 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| 32694 | .{ .@"0:", ._, .mov, .tmp2d, .memi(.src0d, .tmp1), ._, ._ }, |
| 32695 | .{ ._, ._, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp2d, ._, ._ }, |
| 32696 | .{ ._, ._, .lea, .tmp1d, .leaa(.tmp1, .add_src0_elem_size), ._, ._ }, |
| 32697 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 32698 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 32699 | } }, |
| 32700 | }, .{ |
| 32701 | .src_constraints = .{ .any_scalar_signed_int, .any }, |
| 32702 | .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }}, |
| 32703 | .patterns = &.{ |
| 32704 | .{ .src = .{ .to_mem, .none } }, |
| 32705 | }, |
| 32706 | .extra_temps = .{ |
| 32707 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 32708 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 32709 | .{ .type = .i32, .kind = .{ .rc = .general_purpose } }, |
| 32710 | .unused, |
| 32711 | .unused, |
| 32712 | .unused, |
| 32713 | .unused, |
| 32714 | .unused, |
| 32715 | .unused, |
| 32716 | }, |
| 32717 | .dst_temps = .{.mem}, |
| 32718 | .clobbers = .{ .eflags = true }, |
| 32719 | .each = .{ .once = &.{ |
| 32720 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 32721 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| 32722 | .{ .@"0:", ._, .mov, .tmp2d, .memi(.src0d, .tmp1), ._, ._ }, |
| 32723 | .{ ._, ._l, .sa, .tmp2d, .uia(32, .dst0, .sub_bit_size), ._, ._ }, |
| 32724 | .{ ._, ._r, .sa, .tmp2d, .uia(32, .dst0, .sub_bit_size), ._, ._ }, |
| 32725 | .{ ._, ._, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp2d, ._, ._ }, |
| 32726 | .{ ._, ._, .lea, .tmp1d, .leaa(.tmp1, .add_src0_elem_size), ._, ._ }, |
| 32727 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 32728 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 32729 | } }, |
| 32730 | }, .{ |
| 32731 | .required_features = .{ .bmi2, null, null, null }, |
| 32732 | .src_constraints = .{ .any_scalar_unsigned_int, .any }, |
| 32733 | .dst_constraints = .{.{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }}, |
| 32734 | .patterns = &.{ |
| 32735 | .{ .src = .{ .to_mem, .none } }, |
| 32736 | }, |
| 32737 | .extra_temps = .{ |
| 32738 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 32739 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 32740 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| 32741 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 32742 | .unused, |
| 32743 | .unused, |
| 32744 | .unused, |
| 32745 | .unused, |
| 32746 | .unused, |
| 32747 | }, |
| 32748 | .dst_temps = .{.mem}, |
| 32749 | .clobbers = .{ .eflags = true }, |
| 32750 | .each = .{ .once = &.{ |
| 32751 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 32752 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| 32753 | .{ ._, ._, .mov, .tmp2d, .sa(.dst0, .add_bit_size), ._, ._ }, |
| 32754 | .{ .@"0:", ._, .bzhi, .tmp3d, .memi(.src0d, .tmp1), .tmp2d, ._ }, |
| 32755 | .{ ._, ._, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp3d, ._, ._ }, |
| 32756 | .{ ._, ._, .lea, .tmp1d, .leaa(.tmp1, .add_src0_elem_size), ._, ._ }, |
| 32757 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 32758 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 32759 | } }, |
| 32760 | }, .{ |
| 32761 | .src_constraints = .{ .any_scalar_unsigned_int, .any }, |
| 32762 | .dst_constraints = .{.{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }}, |
| 32763 | .patterns = &.{ |
| 32764 | .{ .src = .{ .to_mem, .none } }, |
| 32765 | }, |
| 32766 | .extra_temps = .{ |
| 32767 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 32768 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 32769 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 32770 | .unused, |
| 32771 | .unused, |
| 32772 | .unused, |
| 32773 | .unused, |
| 32774 | .unused, |
| 32775 | .unused, |
| 32776 | }, |
| 32777 | .dst_temps = .{.mem}, |
| 32778 | .clobbers = .{ .eflags = true }, |
| 32779 | .each = .{ .once = &.{ |
| 32780 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 32781 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| 32782 | .{ .@"0:", ._, .mov, .tmp2d, .memi(.src0d, .tmp1), ._, ._ }, |
| 32783 | .{ ._, ._, .@"and", .tmp2d, .sa(.dst0, .add_umax), ._, ._ }, |
| 32784 | .{ ._, ._, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp2d, ._, ._ }, |
| 32785 | .{ ._, ._, .lea, .tmp1d, .leaa(.tmp1, .add_src0_elem_size), ._, ._ }, |
| 32786 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 32787 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 32788 | } }, |
| 32789 | }, .{ |
| 32790 | .required_features = .{ .avx, null, null, null }, |
| 32791 | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .qword } }, .any }, |
| 32792 | .dst_constraints = .{.{ .scalar_signed_int = .{ .of = .xword, .is = .qword } }}, |
| 32793 | .patterns = &.{ |
| 32794 | .{ .src = .{ .to_sse, .none } }, |
| 32795 | }, |
| 32796 | .extra_temps = .{ |
| 32797 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 32798 | .{ .kind = .{ .umax_mem = .{ .ref = .dst0, .to_signedness = .unsigned } } }, |
| 32799 | .{ .kind = .{ .smin_mem = .{ .ref = .dst0 } } }, |
| 32800 | .unused, |
| 32801 | .unused, |
| 32802 | .unused, |
| 32803 | .unused, |
| 32804 | .unused, |
| 32805 | .unused, |
| 32806 | }, |
| 32807 | .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, |
| 32808 | .each = .{ .once = &.{ |
| 32809 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 32810 | .{ ._, .vp_, .@"and", .dst0x, .src0x, .lea(.tmp0x), ._ }, |
| 32811 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ }, |
| 32812 | .{ ._, .vp_q, .add, .dst0x, .dst0x, .lea(.tmp0x), ._ }, |
| 32813 | .{ ._, .vp_, .xor, .dst0x, .dst0x, .lea(.tmp0x), ._ }, |
| 32814 | } }, |
| 32815 | }, .{ |
| 32816 | .required_features = .{ .avx, null, null, null }, |
| 32817 | .src_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .xword, .is = .qword } }, .any }, |
| 32818 | .dst_constraints = .{.{ .scalar_unsigned_int = .{ .of = .xword, .is = .qword } }}, |
| 32819 | .patterns = &.{ |
| 32820 | .{ .src = .{ .to_sse, .none } }, |
| 32821 | }, |
| 32822 | .extra_temps = .{ |
| 32823 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 32824 | .{ .kind = .{ .umax_mem = .{ .ref = .dst0 } } }, |
| 32825 | .unused, |
| 32826 | .unused, |
| 32827 | .unused, |
| 32828 | .unused, |
| 32829 | .unused, |
| 32830 | .unused, |
| 32831 | .unused, |
| 32832 | }, |
| 32833 | .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, |
| 32834 | .each = .{ .once = &.{ |
| 32835 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 32836 | .{ ._, .vp_, .@"and", .dst0x, .src0x, .lea(.tmp0x), ._ }, |
| 32837 | } }, |
| 32838 | }, .{ |
| 32839 | .required_features = .{ .sse2, null, null, null }, |
| 32840 | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .qword } }, .any }, |
| 32841 | .dst_constraints = .{.{ .scalar_signed_int = .{ .of = .xword, .is = .qword } }}, |
| 32842 | .patterns = &.{ |
| 32843 | .{ .src = .{ .to_mut_sse, .none } }, |
| 32844 | }, |
| 32845 | .extra_temps = .{ |
| 32846 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 32847 | .{ .kind = .{ .umax_mem = .{ .ref = .dst0, .to_signedness = .unsigned } } }, |
| 32848 | .{ .kind = .{ .smin_mem = .{ .ref = .dst0 } } }, |
| 32849 | .unused, |
| 32850 | .unused, |
| 32851 | .unused, |
| 32852 | .unused, |
| 32853 | .unused, |
| 32854 | .unused, |
| 32855 | }, |
| 32856 | .dst_temps = .{.{ .ref = .src0 }}, |
| 32857 | .each = .{ .once = &.{ |
| 32858 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 32859 | .{ ._, .p_, .@"and", .dst0x, .lea(.tmp0x), ._, ._ }, |
| 32860 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ }, |
| 32861 | .{ ._, .p_q, .add, .dst0x, .lea(.tmp0x), ._, ._ }, |
| 32862 | .{ ._, .p_, .xor, .dst0x, .lea(.tmp0x), ._, ._ }, |
| 32863 | } }, |
| 32864 | }, .{ |
| 32865 | .required_features = .{ .sse2, null, null, null }, |
| 32866 | .src_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .xword, .is = .qword } }, .any }, |
| 32867 | .dst_constraints = .{.{ .scalar_unsigned_int = .{ .of = .xword, .is = .qword } }}, |
| 32868 | .patterns = &.{ |
| 32869 | .{ .src = .{ .to_mut_sse, .none } }, |
| 32870 | }, |
| 32871 | .extra_temps = .{ |
| 32872 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 32873 | .{ .kind = .{ .umax_mem = .{ .ref = .dst0 } } }, |
| 32874 | .unused, |
| 32875 | .unused, |
| 32876 | .unused, |
| 32877 | .unused, |
| 32878 | .unused, |
| 32879 | .unused, |
| 32880 | .unused, |
| 32881 | }, |
| 32882 | .dst_temps = .{.{ .ref = .src0 }}, |
| 32883 | .each = .{ .once = &.{ |
| 32884 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 32885 | .{ ._, .p_, .@"and", .dst0x, .lea(.tmp0x), ._, ._ }, |
| 32886 | } }, |
| 32887 | }, .{ |
| 32888 | .required_features = .{ .sse, null, null, null }, |
| 32889 | .src_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .xword, .is = .qword } }, .any }, |
| 32890 | .dst_constraints = .{.{ .scalar_unsigned_int = .{ .of = .xword, .is = .qword } }}, |
| 32891 | .patterns = &.{ |
| 32892 | .{ .src = .{ .to_mut_sse, .none } }, |
| 32893 | }, |
| 32894 | .extra_temps = .{ |
| 32895 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 32896 | .{ .kind = .{ .umax_mem = .{ .ref = .dst0 } } }, |
| 32897 | .unused, |
| 32898 | .unused, |
| 32899 | .unused, |
| 32900 | .unused, |
| 32901 | .unused, |
| 32902 | .unused, |
| 32903 | .unused, |
| 32904 | }, |
| 32905 | .dst_temps = .{.{ .ref = .src0 }}, |
| 32906 | .each = .{ .once = &.{ |
| 32907 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 32908 | .{ ._, ._ps, .@"and", .dst0x, .lea(.tmp0x), ._, ._ }, |
| 32909 | } }, |
| 32910 | }, .{ |
| 32911 | .required_features = .{ .avx2, null, null, null }, |
| 32912 | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .yword, .is = .qword } }, .any }, |
| 32913 | .dst_constraints = .{.{ .scalar_signed_int = .{ .of = .yword, .is = .qword } }}, |
| 32914 | .patterns = &.{ |
| 32915 | .{ .src = .{ .to_sse, .none } }, |
| 32916 | }, |
| 32917 | .extra_temps = .{ |
| 32918 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 32919 | .{ .kind = .{ .umax_mem = .{ .ref = .dst0, .to_signedness = .unsigned } } }, |
| 32920 | .{ .kind = .{ .smin_mem = .{ .ref = .dst0 } } }, |
| 32921 | .unused, |
| 32922 | .unused, |
| 32923 | .unused, |
| 32924 | .unused, |
| 32925 | .unused, |
| 32926 | .unused, |
| 32927 | }, |
| 32928 | .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, |
| 32929 | .each = .{ .once = &.{ |
| 32930 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 32931 | .{ ._, .vp_, .@"and", .dst0y, .src0y, .lea(.tmp0y), ._ }, |
| 32932 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ }, |
| 32933 | .{ ._, .vp_q, .add, .dst0y, .dst0y, .lea(.tmp0y), ._ }, |
| 32934 | .{ ._, .vp_, .xor, .dst0y, .dst0y, .lea(.tmp0y), ._ }, |
| 32935 | } }, |
| 32936 | }, .{ |
| 32937 | .required_features = .{ .avx2, null, null, null }, |
| 32938 | .src_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .yword, .is = .qword } }, .any }, |
| 32939 | .dst_constraints = .{.{ .scalar_unsigned_int = .{ .of = .yword, .is = .qword } }}, |
| 32940 | .patterns = &.{ |
| 32941 | .{ .src = .{ .to_sse, .none } }, |
| 32942 | }, |
| 32943 | .extra_temps = .{ |
| 32944 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 32945 | .{ .kind = .{ .umax_mem = .{ .ref = .dst0 } } }, |
| 32946 | .unused, |
| 32947 | .unused, |
| 32948 | .unused, |
| 32949 | .unused, |
| 32950 | .unused, |
| 32951 | .unused, |
| 32952 | .unused, |
| 32953 | }, |
| 32954 | .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, |
| 32955 | .each = .{ .once = &.{ |
| 32956 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 32957 | .{ ._, .vp_, .@"and", .dst0y, .src0y, .lea(.tmp0y), ._ }, |
| 32958 | } }, |
| 32959 | }, .{ |
| 32960 | .required_features = .{ .avx2, null, null, null }, |
| 32961 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .yword, .is = .qword } }, .any }, |
| 32962 | .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .yword, .is = .qword } }}, |
| 32963 | .patterns = &.{ |
| 32964 | .{ .src = .{ .to_mem, .none } }, |
| 32965 | }, |
| 32966 | .extra_temps = .{ |
| 32967 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 32968 | .{ .type = .vector_4_i64, .kind = .{ .rc = .sse } }, |
| 32969 | .{ .type = .vector_4_i64, .kind = .{ .rc = .sse } }, |
| 32970 | .{ .type = .vector_4_i64, .kind = .{ .rc = .sse } }, |
| 32971 | .{ .kind = .{ .umax_mem = .{ .ref = .dst0, .to_signedness = .unsigned } } }, |
| 32972 | .{ .kind = .{ .smin_mem = .{ .ref = .dst0 } } }, |
| 32973 | .unused, |
| 32974 | .unused, |
| 32975 | .unused, |
| 32976 | }, |
| 32977 | .dst_temps = .{.mem}, |
| 32978 | .clobbers = .{ .eflags = true }, |
| 32979 | .each = .{ .once = &.{ |
| 32980 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp4), ._, ._ }, |
| 32981 | .{ ._, .v_dqa, .mov, .tmp1y, .lea(.tmp0y), ._, ._ }, |
| 32982 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp5), ._, ._ }, |
| 32983 | .{ ._, .v_dqa, .mov, .tmp2y, .lea(.tmp0y), ._, ._ }, |
| 32984 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 32985 | .{ .@"0:", .vp_, .@"and", .tmp3y, .tmp1y, .memia(.src0y, .tmp0, .add_unaligned_size), ._ }, |
| 32986 | .{ ._, .vp_q, .add, .tmp3y, .tmp3y, .tmp2y, ._ }, |
| 32987 | .{ ._, .vp_, .xor, .tmp3y, .tmp3y, .tmp2y, ._ }, |
| 32988 | .{ ._, .v_dqa, .mov, .memia(.dst0y, .tmp0, .add_unaligned_size), .tmp3y, ._, ._ }, |
| 32989 | .{ ._, ._, .add, .tmp0p, .si(32), ._, ._ }, |
| 32990 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 32991 | } }, |
| 32992 | }, .{ |
| 32993 | .required_features = .{ .avx2, null, null, null }, |
| 32994 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .yword, .is = .qword } }, .any }, |
| 32995 | .dst_constraints = .{.{ .multiple_scalar_unsigned_int = .{ .of = .yword, .is = .qword } }}, |
| 32996 | .patterns = &.{ |
| 32997 | .{ .src = .{ .to_mem, .none } }, |
| 32998 | }, |
| 32999 | .extra_temps = .{ |
| 33000 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 33001 | .{ .type = .vector_4_u64, .kind = .{ .rc = .sse } }, |
| 33002 | .{ .type = .vector_4_u64, .kind = .{ .rc = .sse } }, |
| 33003 | .{ .kind = .{ .umax_mem = .{ .ref = .dst0, .to_signedness = .unsigned } } }, |
| 33004 | .unused, |
| 33005 | .unused, |
| 33006 | .unused, |
| 33007 | .unused, |
| 33008 | .unused, |
| 33009 | }, |
| 33010 | .dst_temps = .{.mem}, |
| 33011 | .clobbers = .{ .eflags = true }, |
| 33012 | .each = .{ .once = &.{ |
| 33013 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp3), ._, ._ }, |
| 33014 | .{ ._, .v_dqa, .mov, .tmp1y, .lea(.tmp0y), ._, ._ }, |
| 33015 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 33016 | .{ .@"0:", .vp_, .@"and", .tmp2y, .tmp1y, .memia(.src0y, .tmp0, .add_unaligned_size), ._ }, |
| 33017 | .{ ._, .v_dqa, .mov, .memia(.dst0y, .tmp0, .add_unaligned_size), .tmp2y, ._, ._ }, |
| 33018 | .{ ._, ._, .add, .tmp0p, .si(32), ._, ._ }, |
| 33019 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 33020 | } }, |
| 33021 | }, .{ |
| 33022 | .required_features = .{ .avx, null, null, null }, |
| 33023 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .qword } }, .any }, |
| 33024 | .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .qword } }}, |
| 33025 | .patterns = &.{ |
| 33026 | .{ .src = .{ .to_mem, .none } }, |
| 33027 | }, |
| 33028 | .extra_temps = .{ |
| 33029 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 33030 | .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } }, |
| 33031 | .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } }, |
| 33032 | .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } }, |
| 33033 | .{ .kind = .{ .umax_mem = .{ .ref = .dst0, .to_signedness = .unsigned } } }, |
| 33034 | .{ .kind = .{ .smin_mem = .{ .ref = .dst0 } } }, |
| 33035 | .unused, |
| 33036 | .unused, |
| 33037 | .unused, |
| 33038 | }, |
| 33039 | .dst_temps = .{.mem}, |
| 33040 | .clobbers = .{ .eflags = true }, |
| 33041 | .each = .{ .once = &.{ |
| 33042 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp4), ._, ._ }, |
| 33043 | .{ ._, .v_dqa, .mov, .tmp1x, .lea(.tmp0x), ._, ._ }, |
| 33044 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp5), ._, ._ }, |
| 33045 | .{ ._, .v_dqa, .mov, .tmp2x, .lea(.tmp0x), ._, ._ }, |
| 33046 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 33047 | .{ .@"0:", .vp_, .@"and", .tmp3x, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._ }, |
| 33048 | .{ ._, .vp_q, .add, .tmp3x, .tmp3x, .tmp2x, ._ }, |
| 33049 | .{ ._, .vp_, .xor, .tmp3x, .tmp3x, .tmp2x, ._ }, |
| 33050 | .{ ._, .v_dqa, .mov, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 33051 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 33052 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 33053 | } }, |
| 33054 | }, .{ |
| 33055 | .required_features = .{ .avx, null, null, null }, |
| 33056 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .qword } }, .any }, |
| 33057 | .dst_constraints = .{.{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .qword } }}, |
| 33058 | .patterns = &.{ |
| 33059 | .{ .src = .{ .to_mem, .none } }, |
| 33060 | }, |
| 33061 | .extra_temps = .{ |
| 33062 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 33063 | .{ .type = .vector_2_u64, .kind = .{ .rc = .sse } }, |
| 33064 | .{ .type = .vector_2_u64, .kind = .{ .rc = .sse } }, |
| 33065 | .{ .kind = .{ .umax_mem = .{ .ref = .dst0, .to_signedness = .unsigned } } }, |
| 33066 | .unused, |
| 33067 | .unused, |
| 33068 | .unused, |
| 33069 | .unused, |
| 33070 | .unused, |
| 33071 | }, |
| 33072 | .dst_temps = .{.mem}, |
| 33073 | .clobbers = .{ .eflags = true }, |
| 33074 | .each = .{ .once = &.{ |
| 33075 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp3), ._, ._ }, |
| 33076 | .{ ._, .v_dqa, .mov, .tmp1x, .lea(.tmp0x), ._, ._ }, |
| 33077 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 33078 | .{ .@"0:", .vp_, .@"and", .tmp2x, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._ }, |
| 33079 | .{ ._, .v_dqa, .mov, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp2x, ._, ._ }, |
| 33080 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 33081 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 33082 | } }, |
| 33083 | }, .{ |
| 33084 | .required_features = .{ .sse2, null, null, null }, |
| 33085 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .qword } }, .any }, |
| 33086 | .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .qword } }}, |
| 33087 | .patterns = &.{ |
| 33088 | .{ .src = .{ .to_mem, .none } }, |
| 33089 | }, |
| 33090 | .extra_temps = .{ |
| 33091 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 33092 | .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } }, |
| 33093 | .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } }, |
| 33094 | .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } }, |
| 33095 | .{ .kind = .{ .umax_mem = .{ .ref = .dst0, .to_signedness = .unsigned } } }, |
| 33096 | .{ .kind = .{ .smin_mem = .{ .ref = .dst0 } } }, |
| 33097 | .unused, |
| 33098 | .unused, |
| 33099 | .unused, |
| 33100 | }, |
| 33101 | .dst_temps = .{.mem}, |
| 33102 | .clobbers = .{ .eflags = true }, |
| 33103 | .each = .{ .once = &.{ |
| 33104 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp4), ._, ._ }, |
| 33105 | .{ ._, ._dqa, .mov, .tmp1x, .lea(.tmp0x), ._, ._ }, |
| 33106 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp5), ._, ._ }, |
| 33107 | .{ ._, ._dqa, .mov, .tmp2x, .lea(.tmp0x), ._, ._ }, |
| 33108 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 33109 | .{ .@"0:", ._dqa, .mov, .tmp3x, .tmp1x, ._, ._ }, |
| 33110 | .{ ._, .p_, .@"and", .tmp3x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, |
| 33111 | .{ ._, .p_q, .add, .tmp3x, .tmp2x, ._, ._ }, |
| 33112 | .{ ._, .p_, .xor, .tmp3x, .tmp2x, ._, ._ }, |
| 33113 | .{ ._, ._dqa, .mov, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 33114 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 33115 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 33116 | } }, |
| 33117 | }, .{ |
| 33118 | .required_features = .{ .sse2, null, null, null }, |
| 33119 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .qword } }, .any }, |
| 33120 | .dst_constraints = .{.{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .qword } }}, |
| 33121 | .patterns = &.{ |
| 33122 | .{ .src = .{ .to_mem, .none } }, |
| 33123 | }, |
| 33124 | .extra_temps = .{ |
| 33125 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 33126 | .{ .type = .vector_2_u64, .kind = .{ .rc = .sse } }, |
| 33127 | .{ .type = .vector_2_u64, .kind = .{ .rc = .sse } }, |
| 33128 | .{ .kind = .{ .umax_mem = .{ .ref = .dst0, .to_signedness = .unsigned } } }, |
| 33129 | .unused, |
| 33130 | .unused, |
| 33131 | .unused, |
| 33132 | .unused, |
| 33133 | .unused, |
| 33134 | }, |
| 33135 | .dst_temps = .{.mem}, |
| 33136 | .clobbers = .{ .eflags = true }, |
| 33137 | .each = .{ .once = &.{ |
| 33138 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp3), ._, ._ }, |
| 33139 | .{ ._, ._dqa, .mov, .tmp1x, .lea(.tmp0x), ._, ._ }, |
| 33140 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 33141 | .{ .@"0:", ._dqa, .mov, .tmp2x, .tmp1x, ._, ._ }, |
| 33142 | .{ ._, .p_, .@"and", .tmp2x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, |
| 33143 | .{ ._, ._dqa, .mov, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp2x, ._, ._ }, |
| 33144 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 33145 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 33146 | } }, |
| 33147 | }, .{ |
| 33148 | .required_features = .{ .sse, null, null, null }, |
| 33149 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .qword } }, .any }, |
| 33150 | .dst_constraints = .{.{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .qword } }}, |
| 33151 | .patterns = &.{ |
| 33152 | .{ .src = .{ .to_mem, .none } }, |
| 33153 | }, |
| 33154 | .extra_temps = .{ |
| 33155 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 33156 | .{ .type = .vector_2_u64, .kind = .{ .rc = .sse } }, |
| 33157 | .{ .type = .vector_2_u64, .kind = .{ .rc = .sse } }, |
| 33158 | .{ .kind = .{ .umax_mem = .{ .ref = .dst0, .to_signedness = .unsigned } } }, |
| 33159 | .unused, |
| 33160 | .unused, |
| 33161 | .unused, |
| 33162 | .unused, |
| 33163 | .unused, |
| 33164 | }, |
| 33165 | .dst_temps = .{.mem}, |
| 33166 | .clobbers = .{ .eflags = true }, |
| 33167 | .each = .{ .once = &.{ |
| 33168 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp3), ._, ._ }, |
| 33169 | .{ ._, ._ps, .mova, .tmp1x, .lea(.tmp0x), ._, ._ }, |
| 33170 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 33171 | .{ .@"0:", ._ps, .mova, .tmp2x, .tmp1x, ._, ._ }, |
| 33172 | .{ ._, ._ps, .@"and", .tmp2x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, |
| 33173 | .{ ._, ._ps, .mova, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp2x, ._, ._ }, |
| 33174 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 33175 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 33176 | } }, |
| 33177 | }, .{ |
| 33178 | .required_features = .{ .@"64bit", null, null, null }, |
| 33179 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .qword, .is = .qword } }, .any }, |
| 33180 | .dst_constraints = .{.{ .multiple_scalar_exact_int = .{ .of = .qword, .is = 64 } }}, |
| 33181 | .patterns = &.{ |
| 33182 | .{ .src = .{ .to_mem, .none } }, |
| 33183 | }, |
| 33184 | .extra_temps = .{ |
| 33185 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 33186 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| 33187 | .unused, |
| 33188 | .unused, |
| 33189 | .unused, |
| 33190 | .unused, |
| 33191 | .unused, |
| 33192 | .unused, |
| 33193 | .unused, |
| 33194 | }, |
| 33195 | .dst_temps = .{.mem}, |
| 33196 | .clobbers = .{ .eflags = true }, |
| 33197 | .each = .{ .once = &.{ |
| 33198 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 33199 | .{ .@"0:", ._, .mov, .tmp1q, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 33200 | .{ ._, ._, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp1q, ._, ._ }, |
| 33201 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 33202 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 33203 | } }, |
| 33204 | }, .{ |
| 33205 | .required_features = .{ .@"64bit", null, null, null }, |
| 33206 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any }, |
| 33207 | .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }}, |
| 33208 | .patterns = &.{ |
| 33209 | .{ .src = .{ .to_mem, .none } }, |
| 33210 | }, |
| 33211 | .extra_temps = .{ |
| 33212 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 33213 | .{ .type = .i64, .kind = .{ .rc = .general_purpose } }, |
| 33214 | .unused, |
| 33215 | .unused, |
| 33216 | .unused, |
| 33217 | .unused, |
| 33218 | .unused, |
| 33219 | .unused, |
| 33220 | .unused, |
| 33221 | }, |
| 33222 | .dst_temps = .{.mem}, |
| 33223 | .clobbers = .{ .eflags = true }, |
| 33224 | .each = .{ .once = &.{ |
| 33225 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 33226 | .{ .@"0:", ._, .mov, .tmp1q, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 33227 | .{ ._, ._l, .sa, .tmp1q, .uia(64, .dst0, .sub_bit_size), ._, ._ }, |
| 33228 | .{ ._, ._r, .sa, .tmp1q, .uia(64, .dst0, .sub_bit_size), ._, ._ }, |
| 33229 | .{ ._, ._, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp1q, ._, ._ }, |
| 33230 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 33231 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 33232 | } }, |
| 33233 | }, .{ |
| 33234 | .required_features = .{ .@"64bit", .bmi2, null, null }, |
| 33235 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any }, |
| 33236 | .dst_constraints = .{.{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }}, |
| 33237 | .patterns = &.{ |
| 33238 | .{ .src = .{ .to_mem, .none } }, |
| 33239 | }, |
| 33240 | .extra_temps = .{ |
| 33241 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 33242 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| 33243 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| 33244 | .unused, |
| 33245 | .unused, |
| 33246 | .unused, |
| 33247 | .unused, |
| 33248 | .unused, |
| 33249 | .unused, |
| 33250 | }, |
| 33251 | .dst_temps = .{.mem}, |
| 33252 | .clobbers = .{ .eflags = true }, |
| 33253 | .each = .{ .once = &.{ |
| 33254 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 33255 | .{ ._, ._, .mov, .tmp1d, .sa(.dst0, .add_bit_size), ._, ._ }, |
| 33256 | .{ .@"0:", ._, .bzhi, .tmp2q, .memia(.src0q, .tmp0, .add_unaligned_size), .tmp1q, ._ }, |
| 33257 | .{ ._, ._, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp2q, ._, ._ }, |
| 33258 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 33259 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 33260 | } }, |
| 33261 | }, .{ |
| 33262 | .required_features = .{ .@"64bit", null, null, null }, |
| 33263 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any }, |
| 33264 | .dst_constraints = .{.{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }}, |
| 33265 | .patterns = &.{ |
| 33266 | .{ .src = .{ .to_mem, .none } }, |
| 33267 | }, |
| 33268 | .extra_temps = .{ |
| 33269 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 33270 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| 33271 | .unused, |
| 33272 | .unused, |
| 33273 | .unused, |
| 33274 | .unused, |
| 33275 | .unused, |
| 33276 | .unused, |
| 33277 | .unused, |
| 33278 | }, |
| 33279 | .dst_temps = .{.mem}, |
| 33280 | .clobbers = .{ .eflags = true }, |
| 33281 | .each = .{ .once = &.{ |
| 33282 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 33283 | .{ .@"0:", ._, .mov, .tmp1q, .ua(.dst0, .add_umax), ._, ._ }, |
| 33284 | .{ ._, ._, .@"and", .tmp1q, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 33285 | .{ ._, ._, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp1q, ._, ._ }, |
| 33286 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 33287 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 33288 | } }, |
| 33289 | }, .{ |
| 33290 | .required_features = .{ .@"64bit", null, null, null }, |
| 33291 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .xword, .is = .xword } }, .any }, |
| 33292 | .dst_constraints = .{.{ .multiple_scalar_exact_int = .{ .of = .qword, .is = 64 } }}, |
| 33293 | .patterns = &.{ |
| 33294 | .{ .src = .{ .to_mem, .none } }, |
| 33295 | }, |
| 33296 | .extra_temps = .{ |
| 33297 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 33298 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| 33299 | .unused, |
| 33300 | .unused, |
| 33301 | .unused, |
| 33302 | .unused, |
| 33303 | .unused, |
| 33304 | .unused, |
| 33305 | .unused, |
| 33306 | }, |
| 33307 | .dst_temps = .{.mem}, |
| 33308 | .clobbers = .{ .eflags = true }, |
| 33309 | .each = .{ .once = &.{ |
| 33310 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 33311 | .{ .@"0:", ._, .mov, .tmp1q, .memsia(.src0q, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| 33312 | .{ ._, ._, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp1q, ._, ._ }, |
| 33313 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 33314 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 33315 | } }, |
| 33316 | }, .{ |
| 33317 | .required_features = .{ .@"64bit", null, null, null }, |
| 33318 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .xword } }, .any }, |
| 33319 | .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }}, |
| 33320 | .patterns = &.{ |
| 33321 | .{ .src = .{ .to_mem, .none } }, |
| 33322 | }, |
| 33323 | .extra_temps = .{ |
| 33324 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 33325 | .{ .type = .i64, .kind = .{ .rc = .general_purpose } }, |
| 33326 | .unused, |
| 33327 | .unused, |
| 33328 | .unused, |
| 33329 | .unused, |
| 33330 | .unused, |
| 33331 | .unused, |
| 33332 | .unused, |
| 33333 | }, |
| 33334 | .dst_temps = .{.mem}, |
| 33335 | .clobbers = .{ .eflags = true }, |
| 33336 | .each = .{ .once = &.{ |
| 33337 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 33338 | .{ .@"0:", ._, .mov, .tmp1q, .memsia(.src0q, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| 33339 | .{ ._, ._l, .sa, .tmp1q, .uia(64, .dst0, .sub_bit_size), ._, ._ }, |
| 33340 | .{ ._, ._r, .sa, .tmp1q, .uia(64, .dst0, .sub_bit_size), ._, ._ }, |
| 33341 | .{ ._, ._, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp1q, ._, ._ }, |
| 33342 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 33343 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 33344 | } }, |
| 33345 | }, .{ |
| 33346 | .required_features = .{ .@"64bit", .bmi2, null, null }, |
| 33347 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .xword } }, .any }, |
| 33348 | .dst_constraints = .{.{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }}, |
| 33349 | .patterns = &.{ |
| 33350 | .{ .src = .{ .to_mem, .none } }, |
| 33351 | }, |
| 33352 | .extra_temps = .{ |
| 33353 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 33354 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| 33355 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| 33356 | .unused, |
| 33357 | .unused, |
| 33358 | .unused, |
| 33359 | .unused, |
| 33360 | .unused, |
| 33361 | .unused, |
| 33362 | }, |
| 33363 | .dst_temps = .{.mem}, |
| 33364 | .clobbers = .{ .eflags = true }, |
| 33365 | .each = .{ .once = &.{ |
| 33366 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 33367 | .{ ._, ._, .mov, .tmp1d, .sa(.dst0, .add_bit_size), ._, ._ }, |
| 33368 | .{ .@"0:", ._, .bzhi, .tmp2q, .memsia(.src0q, .@"2", .tmp0, .add_unaligned_size), .tmp1q, ._ }, |
| 33369 | .{ ._, ._, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp2q, ._, ._ }, |
| 33370 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 33371 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 33372 | } }, |
| 33373 | }, .{ |
| 33374 | .required_features = .{ .@"64bit", null, null, null }, |
| 33375 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .xword } }, .any }, |
| 33376 | .dst_constraints = .{.{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }}, |
| 33377 | .patterns = &.{ |
| 33378 | .{ .src = .{ .to_mem, .none } }, |
| 33379 | }, |
| 33380 | .extra_temps = .{ |
| 33381 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 33382 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| 33383 | .unused, |
| 33384 | .unused, |
| 33385 | .unused, |
| 33386 | .unused, |
| 33387 | .unused, |
| 33388 | .unused, |
| 33389 | .unused, |
| 33390 | }, |
| 33391 | .dst_temps = .{.mem}, |
| 33392 | .clobbers = .{ .eflags = true }, |
| 33393 | .each = .{ .once = &.{ |
| 33394 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 33395 | .{ .@"0:", ._, .mov, .tmp1q, .ua(.dst0, .add_umax), ._, ._ }, |
| 33396 | .{ ._, ._, .@"and", .tmp1q, .memsia(.src0q, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| 33397 | .{ ._, ._, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp1q, ._, ._ }, |
| 33398 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 33399 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 33400 | } }, |
| 33401 | }, .{ |
| 33402 | .required_features = .{ .@"64bit", null, null, null }, |
| 33403 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .yword, .is = .yword } }, .any }, |
| 33404 | .dst_constraints = .{.{ .multiple_scalar_exact_int = .{ .of = .qword, .is = 64 } }}, |
| 33405 | .patterns = &.{ |
| 33406 | .{ .src = .{ .to_mem, .none } }, |
| 33407 | }, |
| 33408 | .extra_temps = .{ |
| 33409 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 33410 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| 33411 | .unused, |
| 33412 | .unused, |
| 33413 | .unused, |
| 33414 | .unused, |
| 33415 | .unused, |
| 33416 | .unused, |
| 33417 | .unused, |
| 33418 | }, |
| 33419 | .dst_temps = .{.mem}, |
| 33420 | .clobbers = .{ .eflags = true }, |
| 33421 | .each = .{ .once = &.{ |
| 33422 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 33423 | .{ .@"0:", ._, .mov, .tmp1q, .memsia(.src0q, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, |
| 33424 | .{ ._, ._, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp1q, ._, ._ }, |
| 33425 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 33426 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 33427 | } }, |
| 33428 | }, .{ |
| 33429 | .required_features = .{ .@"64bit", null, null, null }, |
| 33430 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .yword, .is = .yword } }, .any }, |
| 33431 | .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }}, |
| 33432 | .patterns = &.{ |
| 33433 | .{ .src = .{ .to_mem, .none } }, |
| 33434 | }, |
| 33435 | .extra_temps = .{ |
| 33436 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 33437 | .{ .type = .i64, .kind = .{ .rc = .general_purpose } }, |
| 33438 | .unused, |
| 33439 | .unused, |
| 33440 | .unused, |
| 33441 | .unused, |
| 33442 | .unused, |
| 33443 | .unused, |
| 33444 | .unused, |
| 33445 | }, |
| 33446 | .dst_temps = .{.mem}, |
| 33447 | .clobbers = .{ .eflags = true }, |
| 33448 | .each = .{ .once = &.{ |
| 33449 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 33450 | .{ .@"0:", ._, .mov, .tmp1q, .memsia(.src0q, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, |
| 33451 | .{ ._, ._l, .sa, .tmp1q, .uia(64, .dst0, .sub_bit_size), ._, ._ }, |
| 33452 | .{ ._, ._r, .sa, .tmp1q, .uia(64, .dst0, .sub_bit_size), ._, ._ }, |
| 33453 | .{ ._, ._, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp1q, ._, ._ }, |
| 33454 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 33455 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 33456 | } }, |
| 33457 | }, .{ |
| 33458 | .required_features = .{ .@"64bit", .bmi2, null, null }, |
| 33459 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .yword, .is = .yword } }, .any }, |
| 33460 | .dst_constraints = .{.{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }}, |
| 33461 | .patterns = &.{ |
| 33462 | .{ .src = .{ .to_mem, .none } }, |
| 33463 | }, |
| 33464 | .extra_temps = .{ |
| 33465 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 33466 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| 33467 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| 33468 | .unused, |
| 33469 | .unused, |
| 33470 | .unused, |
| 33471 | .unused, |
| 33472 | .unused, |
| 33473 | .unused, |
| 33474 | }, |
| 33475 | .dst_temps = .{.mem}, |
| 33476 | .clobbers = .{ .eflags = true }, |
| 33477 | .each = .{ .once = &.{ |
| 33478 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 33479 | .{ ._, ._, .mov, .tmp1d, .sa(.dst0, .add_bit_size), ._, ._ }, |
| 33480 | .{ .@"0:", ._, .bzhi, .tmp2q, .memsia(.src0q, .@"4", .tmp0, .add_unaligned_size), .tmp1q, ._ }, |
| 33481 | .{ ._, ._, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp2q, ._, ._ }, |
| 33482 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 33483 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 33484 | } }, |
| 33485 | }, .{ |
| 33486 | .required_features = .{ .@"64bit", null, null, null }, |
| 33487 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .yword, .is = .yword } }, .any }, |
| 33488 | .dst_constraints = .{.{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }}, |
| 33489 | .patterns = &.{ |
| 33490 | .{ .src = .{ .to_mem, .none } }, |
| 33491 | }, |
| 33492 | .extra_temps = .{ |
| 33493 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 33494 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| 33495 | .unused, |
| 33496 | .unused, |
| 33497 | .unused, |
| 33498 | .unused, |
| 33499 | .unused, |
| 33500 | .unused, |
| 33501 | .unused, |
| 33502 | }, |
| 33503 | .dst_temps = .{.mem}, |
| 33504 | .clobbers = .{ .eflags = true }, |
| 33505 | .each = .{ .once = &.{ |
| 33506 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 33507 | .{ .@"0:", ._, .mov, .tmp1q, .ua(.dst0, .add_umax), ._, ._ }, |
| 33508 | .{ ._, ._, .@"and", .tmp1q, .memsia(.src0q, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, |
| 33509 | .{ ._, ._, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp1q, ._, ._ }, |
| 33510 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 33511 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 33512 | } }, |
| 33513 | }, .{ |
| 33514 | .required_features = .{ .@"64bit", null, null, null }, |
| 33515 | .src_constraints = .{ .any_scalar_int, .any }, |
| 33516 | .dst_constraints = .{.{ .multiple_scalar_exact_int = .{ .of = .qword, .is = 64 } }}, |
| 33517 | .patterns = &.{ |
| 33518 | .{ .src = .{ .to_mem, .none } }, |
| 33519 | }, |
| 33520 | .extra_temps = .{ |
| 33521 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 33522 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 33523 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| 33524 | .unused, |
| 33525 | .unused, |
| 33526 | .unused, |
| 33527 | .unused, |
| 33528 | .unused, |
| 33529 | .unused, |
| 33530 | }, |
| 33531 | .dst_temps = .{.mem}, |
| 33532 | .clobbers = .{ .eflags = true }, |
| 33533 | .each = .{ .once = &.{ |
| 33534 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 33535 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| 33536 | .{ .@"0:", ._, .mov, .tmp2q, .memi(.src0q, .tmp1), ._, ._ }, |
| 33537 | .{ ._, ._, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp2q, ._, ._ }, |
| 33538 | .{ ._, ._, .lea, .tmp1d, .leaa(.tmp1, .add_src0_elem_size), ._, ._ }, |
| 33539 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 33540 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 33541 | } }, |
| 33542 | }, .{ |
| 33543 | .required_features = .{ .@"64bit", null, null, null }, |
| 33544 | .src_constraints = .{ .any_scalar_signed_int, .any }, |
| 33545 | .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }}, |
| 33546 | .patterns = &.{ |
| 33547 | .{ .src = .{ .to_mem, .none } }, |
| 33548 | }, |
| 33549 | .extra_temps = .{ |
| 33550 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 33551 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 33552 | .{ .type = .i64, .kind = .{ .rc = .general_purpose } }, |
| 33553 | .unused, |
| 33554 | .unused, |
| 33555 | .unused, |
| 33556 | .unused, |
| 33557 | .unused, |
| 33558 | .unused, |
| 33559 | }, |
| 33560 | .dst_temps = .{.mem}, |
| 33561 | .clobbers = .{ .eflags = true }, |
| 33562 | .each = .{ .once = &.{ |
| 33563 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 33564 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| 33565 | .{ .@"0:", ._, .mov, .tmp2q, .memi(.src0q, .tmp1), ._, ._ }, |
| 33566 | .{ ._, ._l, .sa, .tmp2q, .uia(64, .dst0, .sub_bit_size), ._, ._ }, |
| 33567 | .{ ._, ._r, .sa, .tmp2q, .uia(64, .dst0, .sub_bit_size), ._, ._ }, |
| 33568 | .{ ._, ._, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp2q, ._, ._ }, |
| 33569 | .{ ._, ._, .lea, .tmp1d, .leaa(.tmp1, .add_src0_elem_size), ._, ._ }, |
| 33570 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 33571 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 33572 | } }, |
| 33573 | }, .{ |
| 33574 | .required_features = .{ .@"64bit", .bmi2, null, null }, |
| 33575 | .src_constraints = .{ .any_scalar_unsigned_int, .any }, |
| 33576 | .dst_constraints = .{.{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }}, |
| 33577 | .patterns = &.{ |
| 33578 | .{ .src = .{ .to_mem, .none } }, |
| 33579 | }, |
| 33580 | .extra_temps = .{ |
| 33581 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 33582 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 33583 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| 33584 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| 33585 | .unused, |
| 33586 | .unused, |
| 33587 | .unused, |
| 33588 | .unused, |
| 33589 | .unused, |
| 33590 | }, |
| 33591 | .dst_temps = .{.mem}, |
| 33592 | .clobbers = .{ .eflags = true }, |
| 33593 | .each = .{ .once = &.{ |
| 33594 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 33595 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| 33596 | .{ ._, ._, .mov, .tmp2d, .sa(.dst0, .add_bit_size), ._, ._ }, |
| 33597 | .{ .@"0:", ._, .bzhi, .tmp3q, .memi(.src0q, .tmp1), .tmp2q, ._ }, |
| 33598 | .{ ._, ._, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp3q, ._, ._ }, |
| 33599 | .{ ._, ._, .lea, .tmp1d, .leaa(.tmp1, .add_src0_elem_size), ._, ._ }, |
| 33600 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 33601 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 33602 | } }, |
| 33603 | }, .{ |
| 33604 | .required_features = .{ .@"64bit", null, null, null }, |
| 33605 | .src_constraints = .{ .any_scalar_unsigned_int, .any }, |
| 33606 | .dst_constraints = .{.{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }}, |
| 33607 | .patterns = &.{ |
| 33608 | .{ .src = .{ .to_mem, .none } }, |
| 33609 | }, |
| 33610 | .extra_temps = .{ |
| 33611 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 33612 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 33613 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| 33614 | .unused, |
| 33615 | .unused, |
| 33616 | .unused, |
| 33617 | .unused, |
| 33618 | .unused, |
| 33619 | .unused, |
| 33620 | }, |
| 33621 | .dst_temps = .{.mem}, |
| 33622 | .clobbers = .{ .eflags = true }, |
| 33623 | .each = .{ .once = &.{ |
| 33624 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 33625 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| 33626 | .{ .@"0:", ._, .mov, .tmp2q, .ua(.dst0, .add_umax), ._, ._ }, |
| 33627 | .{ ._, ._, .@"and", .tmp2q, .memi(.src0q, .tmp1), ._, ._ }, |
| 33628 | .{ ._, ._, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp2q, ._, ._ }, |
| 33629 | .{ ._, ._, .lea, .tmp1d, .leaa(.tmp1, .add_src0_elem_size), ._, ._ }, |
| 33630 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 33631 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 33632 | } }, |
| 33633 | }, .{ |
| 33634 | .required_features = .{ .@"64bit", .slow_incdec, null, null }, |
| 33635 | .src_constraints = .{ .any_scalar_int, .any }, |
| 33636 | .dst_constraints = .{.{ .scalar_exact_remainder_int = .{ .of = .xword, .is = .xword } }}, |
| 33637 | .patterns = &.{ |
| 33638 | .{ .src = .{ .to_mem, .none } }, |
| 33639 | }, |
| 33640 | .extra_temps = .{ |
| 33641 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 33642 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 33643 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 33644 | .{ .type = .u32, .kind = .{ .reg = .ecx } }, |
| 33645 | .unused, |
| 33646 | .unused, |
| 33647 | .unused, |
| 33648 | .unused, |
| 33649 | .unused, |
| 33650 | }, |
| 33651 | .dst_temps = .{.mem}, |
| 33652 | .clobbers = .{ .eflags = true }, |
| 33653 | .each = .{ .once = &.{ |
| 33654 | .{ ._, ._, .mov, .tmp0d, .sa(.src0, .add_len), ._, ._ }, |
| 33655 | .{ ._, ._, .lea, .tmp1p, .mem(.src0), ._, ._ }, |
| 33656 | .{ ._, ._, .lea, .tmp2p, .mem(.dst0), ._, ._ }, |
| 33657 | .{ .@"0:", ._, .mov, .tmp3d, .sa(.dst0, .add_elem_size_div_8), ._, ._ }, |
| 33658 | .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ }, |
| 33659 | .{ ._, ._, .add, .tmp1p, .sa2(.src0, .dst0, .add_delta_elem_size), ._, ._ }, |
| 33660 | .{ ._, ._, .sub, .tmp0d, .si(1), ._, ._ }, |
| 33661 | .{ ._, ._a, .j, .@"0b", ._, ._, ._ }, |
| 33662 | } }, |
| 33663 | }, .{ |
| 33664 | .required_features = .{ .@"64bit", null, null, null }, |
| 33665 | .src_constraints = .{ .any_scalar_int, .any }, |
| 33666 | .dst_constraints = .{.{ .scalar_exact_remainder_int = .{ .of = .xword, .is = .xword } }}, |
| 33667 | .patterns = &.{ |
| 33668 | .{ .src = .{ .to_mem, .none } }, |
| 33669 | }, |
| 33670 | .extra_temps = .{ |
| 33671 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 33672 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 33673 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 33674 | .{ .type = .u32, .kind = .{ .reg = .ecx } }, |
| 33675 | .unused, |
| 33676 | .unused, |
| 33677 | .unused, |
| 33678 | .unused, |
| 33679 | .unused, |
| 33680 | }, |
| 33681 | .dst_temps = .{.mem}, |
| 33682 | .clobbers = .{ .eflags = true }, |
| 33683 | .each = .{ .once = &.{ |
| 33684 | .{ ._, ._, .mov, .tmp0d, .sa(.src0, .add_len), ._, ._ }, |
| 33685 | .{ ._, ._, .lea, .tmp1p, .mem(.src0), ._, ._ }, |
| 33686 | .{ ._, ._, .lea, .tmp2p, .mem(.dst0), ._, ._ }, |
| 33687 | .{ .@"0:", ._, .mov, .tmp3d, .sa(.dst0, .add_elem_size_div_8), ._, ._ }, |
| 33688 | .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ }, |
| 33689 | .{ ._, ._, .add, .tmp1p, .sa2(.src0, .dst0, .add_delta_elem_size), ._, ._ }, |
| 33690 | .{ ._, ._c, .de, .tmp0d, ._, ._, ._ }, |
| 33691 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| 33692 | } }, |
| 33693 | }, .{ |
| 33694 | .required_features = .{ .@"64bit", .slow_incdec, null, null }, |
| 33695 | .src_constraints = .{ .any_scalar_signed_int, .any }, |
| 33696 | .dst_constraints = .{.{ .scalar_exact_remainder_signed_int = .{ .of = .xword, .is = .qword } }}, |
| 33697 | .patterns = &.{ |
| 33698 | .{ .src = .{ .to_mem, .none } }, |
| 33699 | }, |
| 33700 | .extra_temps = .{ |
| 33701 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 33702 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 33703 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 33704 | .{ .type = .u32, .kind = .{ .reg = .ecx } }, |
| 33705 | .unused, |
| 33706 | .unused, |
| 33707 | .unused, |
| 33708 | .unused, |
| 33709 | .unused, |
| 33710 | }, |
| 33711 | .dst_temps = .{.mem}, |
| 33712 | .clobbers = .{ .eflags = true }, |
| 33713 | .each = .{ .once = &.{ |
| 33714 | .{ ._, ._, .mov, .tmp0d, .sa(.src0, .add_len), ._, ._ }, |
| 33715 | .{ ._, ._, .lea, .tmp1p, .mem(.src0), ._, ._ }, |
| 33716 | .{ ._, ._, .lea, .tmp2p, .mem(.dst0), ._, ._ }, |
| 33717 | .{ .@"0:", ._, .mov, .tmp3d, .sia(-2, .dst0, .add_elem_size_div_8), ._, ._ }, |
| 33718 | .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ }, |
| 33719 | .{ ._, ._, .mov, .tmp3q, .lea(.tmp1q), ._, ._ }, |
| 33720 | .{ ._, ._, .mov, .lea(.tmp2q), .tmp3q, ._, ._ }, |
| 33721 | .{ ._, ._r, .sa, .tmp3q, .ui(63), ._, ._ }, |
| 33722 | .{ ._, ._, .mov, .lead(.tmp2q, 8), .tmp3q, ._, ._ }, |
| 33723 | .{ ._, ._, .add, .tmp1p, .sia2(8, .src0, .dst0, .add_delta_elem_size), ._, ._ }, |
| 33724 | .{ ._, ._, .lea, .tmp2p, .lead(.tmp2, 16), ._, ._ }, |
| 33725 | .{ ._, ._, .sub, .tmp0d, .si(1), ._, ._ }, |
| 33726 | .{ ._, ._a, .j, .@"0b", ._, ._, ._ }, |
| 33727 | } }, |
| 33728 | }, .{ |
| 33729 | .required_features = .{ .@"64bit", null, null, null }, |
| 33730 | .src_constraints = .{ .any_scalar_signed_int, .any }, |
| 33731 | .dst_constraints = .{.{ .scalar_exact_remainder_signed_int = .{ .of = .xword, .is = .qword } }}, |
| 33732 | .patterns = &.{ |
| 33733 | .{ .src = .{ .to_mem, .none } }, |
| 33734 | }, |
| 33735 | .extra_temps = .{ |
| 33736 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 33737 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 33738 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 33739 | .{ .type = .u32, .kind = .{ .reg = .ecx } }, |
| 33740 | .unused, |
| 33741 | .unused, |
| 33742 | .unused, |
| 33743 | .unused, |
| 33744 | .unused, |
| 33745 | }, |
| 33746 | .dst_temps = .{.mem}, |
| 33747 | .clobbers = .{ .eflags = true }, |
| 33748 | .each = .{ .once = &.{ |
| 33749 | .{ ._, ._, .mov, .tmp0d, .sa(.src0, .add_len), ._, ._ }, |
| 33750 | .{ ._, ._, .lea, .tmp1p, .mem(.src0), ._, ._ }, |
| 33751 | .{ ._, ._, .lea, .tmp2p, .mem(.dst0), ._, ._ }, |
| 33752 | .{ .@"0:", ._, .mov, .tmp3d, .sia(-2, .dst0, .add_elem_size_div_8), ._, ._ }, |
| 33753 | .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ }, |
| 33754 | .{ ._, ._, .mov, .tmp3q, .lea(.tmp1q), ._, ._ }, |
| 33755 | .{ ._, ._, .mov, .lea(.tmp2q), .tmp3q, ._, ._ }, |
| 33756 | .{ ._, ._r, .sa, .tmp3q, .ui(63), ._, ._ }, |
| 33757 | .{ ._, ._, .mov, .lead(.tmp2q, 8), .tmp3q, ._, ._ }, |
| 33758 | .{ ._, ._, .add, .tmp1p, .sia2(8, .src0, .dst0, .add_delta_elem_size), ._, ._ }, |
| 33759 | .{ ._, ._, .lea, .tmp2p, .lead(.tmp2, 16), ._, ._ }, |
| 33760 | .{ ._, ._c, .de, .tmp0d, ._, ._, ._ }, |
| 33761 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| 33762 | } }, |
| 33763 | }, .{ |
| 33764 | .required_features = .{ .@"64bit", .slow_incdec, null, null }, |
| 33765 | .src_constraints = .{ .any_scalar_signed_int, .any }, |
| 33766 | .dst_constraints = .{.{ .scalar_remainder_signed_int = .{ .of = .xword, .is = .qword } }}, |
| 33767 | .patterns = &.{ |
| 33768 | .{ .src = .{ .to_mem, .none } }, |
| 33769 | }, |
| 33770 | .extra_temps = .{ |
| 33771 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 33772 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 33773 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 33774 | .{ .type = .u32, .kind = .{ .reg = .ecx } }, |
| 33775 | .unused, |
| 33776 | .unused, |
| 33777 | .unused, |
| 33778 | .unused, |
| 33779 | .unused, |
| 33780 | }, |
| 33781 | .dst_temps = .{.mem}, |
| 33782 | .clobbers = .{ .eflags = true }, |
| 33783 | .each = .{ .once = &.{ |
| 33784 | .{ ._, ._, .mov, .tmp0d, .sa(.src0, .add_len), ._, ._ }, |
| 33785 | .{ ._, ._, .lea, .tmp1p, .mem(.src0), ._, ._ }, |
| 33786 | .{ ._, ._, .lea, .tmp2p, .mem(.dst0), ._, ._ }, |
| 33787 | .{ .@"0:", ._, .mov, .tmp3d, .sia(-2, .dst0, .add_elem_size_div_8), ._, ._ }, |
| 33788 | .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ }, |
| 33789 | .{ ._, ._, .mov, .tmp3q, .lea(.tmp1q), ._, ._ }, |
| 33790 | .{ ._, ._l, .sa, .tmp3q, .uia(64, .dst0, .sub_bit_size_rem_64), ._, ._ }, |
| 33791 | .{ ._, ._r, .sa, .tmp3q, .uia(64, .dst0, .sub_bit_size_rem_64), ._, ._ }, |
| 33792 | .{ ._, ._, .mov, .lea(.tmp2q), .tmp3q, ._, ._ }, |
| 33793 | .{ ._, ._r, .sa, .tmp3q, .ui(63), ._, ._ }, |
| 33794 | .{ ._, ._, .mov, .lead(.tmp2q, 8), .tmp3q, ._, ._ }, |
| 33795 | .{ ._, ._, .add, .tmp1p, .sia2(8, .src0, .dst0, .add_delta_elem_size), ._, ._ }, |
| 33796 | .{ ._, ._, .lea, .tmp2p, .lead(.tmp2, 16), ._, ._ }, |
| 33797 | .{ ._, ._, .sub, .tmp0d, .si(1), ._, ._ }, |
| 33798 | .{ ._, ._a, .j, .@"0b", ._, ._, ._ }, |
| 33799 | } }, |
| 33800 | }, .{ |
| 33801 | .required_features = .{ .@"64bit", null, null, null }, |
| 33802 | .src_constraints = .{ .any_scalar_signed_int, .any }, |
| 33803 | .dst_constraints = .{.{ .scalar_remainder_signed_int = .{ .of = .xword, .is = .qword } }}, |
| 33804 | .patterns = &.{ |
| 33805 | .{ .src = .{ .to_mem, .none } }, |
| 33806 | }, |
| 33807 | .extra_temps = .{ |
| 33808 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 33809 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 33810 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 33811 | .{ .type = .u32, .kind = .{ .reg = .ecx } }, |
| 33812 | .unused, |
| 33813 | .unused, |
| 33814 | .unused, |
| 33815 | .unused, |
| 33816 | .unused, |
| 33817 | }, |
| 33818 | .dst_temps = .{.mem}, |
| 33819 | .clobbers = .{ .eflags = true }, |
| 33820 | .each = .{ .once = &.{ |
| 33821 | .{ ._, ._, .mov, .tmp0d, .sa(.src0, .add_len), ._, ._ }, |
| 33822 | .{ ._, ._, .lea, .tmp1p, .mem(.src0), ._, ._ }, |
| 33823 | .{ ._, ._, .lea, .tmp2p, .mem(.dst0), ._, ._ }, |
| 33824 | .{ .@"0:", ._, .mov, .tmp3d, .sia(-2, .dst0, .add_elem_size_div_8), ._, ._ }, |
| 33825 | .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ }, |
| 33826 | .{ ._, ._, .mov, .tmp3q, .lea(.tmp1q), ._, ._ }, |
| 33827 | .{ ._, ._l, .sa, .tmp3q, .uia(64, .dst0, .sub_bit_size_rem_64), ._, ._ }, |
| 33828 | .{ ._, ._r, .sa, .tmp3q, .uia(64, .dst0, .sub_bit_size_rem_64), ._, ._ }, |
| 33829 | .{ ._, ._, .mov, .lea(.tmp2q), .tmp3q, ._, ._ }, |
| 33830 | .{ ._, ._r, .sa, .tmp3q, .ui(63), ._, ._ }, |
| 33831 | .{ ._, ._, .mov, .lead(.tmp2q, 8), .tmp3q, ._, ._ }, |
| 33832 | .{ ._, ._, .add, .tmp1p, .sia2(8, .src0, .dst0, .add_delta_elem_size), ._, ._ }, |
| 33833 | .{ ._, ._, .lea, .tmp2p, .lead(.tmp2, 16), ._, ._ }, |
| 33834 | .{ ._, ._c, .de, .tmp0d, ._, ._, ._ }, |
| 33835 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| 33836 | } }, |
| 33837 | }, .{ |
| 33838 | .required_features = .{ .@"64bit", .slow_incdec, null, null }, |
| 33839 | .src_constraints = .{ .any_scalar_signed_int, .any }, |
| 33840 | .dst_constraints = .{.{ .scalar_remainder_signed_int = .{ .of = .xword, .is = .xword } }}, |
| 28718 | 33841 | .patterns = &.{ |
| 28719 | 33842 | .{ .src = .{ .to_mem, .none } }, |
| 28720 | 33843 | }, |
| ... | ... | @@ -28723,7 +33846,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 28723 | 33846 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 28724 | 33847 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 28725 | 33848 | .{ .type = .u32, .kind = .{ .reg = .ecx } }, |
| 28726 | | .{ .type = .i64, .kind = .{ .reg = .rax } }, |
| 33849 | .{ .type = .u64, .kind = .{ .reg = .rax } }, |
| 28727 | 33850 | .unused, |
| 28728 | 33851 | .unused, |
| 28729 | 33852 | .unused, |
| ... | ... | @@ -28735,20 +33858,20 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 28735 | 33858 | .{ ._, ._, .mov, .tmp0d, .sa(.src0, .add_len), ._, ._ }, |
| 28736 | 33859 | .{ ._, ._, .lea, .tmp1p, .mem(.src0), ._, ._ }, |
| 28737 | 33860 | .{ ._, ._, .lea, .tmp2p, .mem(.dst0), ._, ._ }, |
| 28738 | | .{ .@"0:", ._, .mov, .tmp3d, .sia(-1, .src0, .add_elem_size_div_8), ._, ._ }, |
| 33861 | .{ .@"0:", ._, .mov, .tmp3d, .sia(-1, .dst0, .add_elem_size_div_8), ._, ._ }, |
| 28739 | 33862 | .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ }, |
| 28740 | | .{ ._, ._sq, .lod, ._, ._, ._, ._ }, |
| 33863 | .{ ._, ._, .mov, .tmp4q, .lea(.tmp1q), ._, ._ }, |
| 33864 | .{ ._, ._l, .sa, .tmp4q, .uia(64, .dst0, .sub_bit_size_rem_64), ._, ._ }, |
| 33865 | .{ ._, ._r, .sa, .tmp4q, .uia(64, .dst0, .sub_bit_size_rem_64), ._, ._ }, |
| 28741 | 33866 | .{ ._, ._sq, .sto, ._, ._, ._, ._ }, |
| 28742 | | .{ ._, ._r, .sa, .tmp4q, .ui(63), ._, ._ }, |
| 28743 | | .{ ._, ._, .mov, .tmp3d, .sa2(.dst0, .src0, .add_delta_elem_size_div_8), ._, ._ }, |
| 28744 | | .{ ._, .@"rep _sq", .sto, ._, ._, ._, ._ }, |
| 33867 | .{ ._, ._, .add, .tmp1p, .sia2(8, .src0, .dst0, .add_delta_elem_size), ._, ._ }, |
| 28745 | 33868 | .{ ._, ._, .sub, .tmp0d, .si(1), ._, ._ }, |
| 28746 | 33869 | .{ ._, ._a, .j, .@"0b", ._, ._, ._ }, |
| 28747 | 33870 | } }, |
| 28748 | 33871 | }, .{ |
| 28749 | 33872 | .required_features = .{ .@"64bit", null, null, null }, |
| 28750 | 33873 | .src_constraints = .{ .any_scalar_signed_int, .any }, |
| 28751 | | .dst_constraints = .{.any_scalar_signed_int}, |
| 33874 | .dst_constraints = .{.{ .scalar_remainder_signed_int = .{ .of = .xword, .is = .xword } }}, |
| 28752 | 33875 | .patterns = &.{ |
| 28753 | 33876 | .{ .src = .{ .to_mem, .none } }, |
| 28754 | 33877 | }, |
| ... | ... | @@ -28757,7 +33880,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 28757 | 33880 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 28758 | 33881 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 28759 | 33882 | .{ .type = .u32, .kind = .{ .reg = .ecx } }, |
| 28760 | | .{ .type = .i64, .kind = .{ .reg = .rax } }, |
| 33883 | .{ .type = .u64, .kind = .{ .reg = .rax } }, |
| 28761 | 33884 | .unused, |
| 28762 | 33885 | .unused, |
| 28763 | 33886 | .unused, |
| ... | ... | @@ -28769,20 +33892,20 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 28769 | 33892 | .{ ._, ._, .mov, .tmp0d, .sa(.src0, .add_len), ._, ._ }, |
| 28770 | 33893 | .{ ._, ._, .lea, .tmp1p, .mem(.src0), ._, ._ }, |
| 28771 | 33894 | .{ ._, ._, .lea, .tmp2p, .mem(.dst0), ._, ._ }, |
| 28772 | | .{ .@"0:", ._, .mov, .tmp3d, .sia(-1, .src0, .add_elem_size_div_8), ._, ._ }, |
| 33895 | .{ .@"0:", ._, .mov, .tmp3d, .sia(-1, .dst0, .add_elem_size_div_8), ._, ._ }, |
| 28773 | 33896 | .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ }, |
| 28774 | | .{ ._, ._sq, .lod, ._, ._, ._, ._ }, |
| 33897 | .{ ._, ._, .mov, .tmp4q, .lea(.tmp1q), ._, ._ }, |
| 33898 | .{ ._, ._l, .sa, .tmp4q, .uia(64, .dst0, .sub_bit_size_rem_64), ._, ._ }, |
| 33899 | .{ ._, ._r, .sa, .tmp4q, .uia(64, .dst0, .sub_bit_size_rem_64), ._, ._ }, |
| 28775 | 33900 | .{ ._, ._sq, .sto, ._, ._, ._, ._ }, |
| 28776 | | .{ ._, ._r, .sa, .tmp4q, .ui(63), ._, ._ }, |
| 28777 | | .{ ._, ._, .mov, .tmp3d, .sa2(.dst0, .src0, .add_delta_elem_size_div_8), ._, ._ }, |
| 28778 | | .{ ._, .@"rep _sq", .sto, ._, ._, ._, ._ }, |
| 33901 | .{ ._, ._, .add, .tmp1p, .sia2(8, .src0, .dst0, .add_delta_elem_size), ._, ._ }, |
| 28779 | 33902 | .{ ._, ._c, .de, .tmp0d, ._, ._, ._ }, |
| 28780 | 33903 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| 28781 | 33904 | } }, |
| 28782 | 33905 | }, .{ |
| 28783 | 33906 | .required_features = .{ .@"64bit", .slow_incdec, null, null }, |
| 28784 | | .src_constraints = .{ .any_scalar_int, .any }, |
| 28785 | | .dst_constraints = .{.any_scalar_int}, |
| 33907 | .src_constraints = .{ .any_scalar_unsigned_int, .any }, |
| 33908 | .dst_constraints = .{.{ .scalar_exact_remainder_unsigned_int = .{ .of = .xword, .is = .qword } }}, |
| 28786 | 33909 | .patterns = &.{ |
| 28787 | 33910 | .{ .src = .{ .to_mem, .none } }, |
| 28788 | 33911 | }, |
| ... | ... | @@ -28790,8 +33913,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 28790 | 33913 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 28791 | 33914 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 28792 | 33915 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 28793 | | .{ .type = .u32, .kind = .{ .reg = .ecx } }, |
| 28794 | 33916 | .{ .type = .u64, .kind = .{ .reg = .rax } }, |
| 33917 | .{ .type = .u32, .kind = .{ .reg = .ecx } }, |
| 28795 | 33918 | .unused, |
| 28796 | 33919 | .unused, |
| 28797 | 33920 | .unused, |
| ... | ... | @@ -28803,18 +33926,18 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 28803 | 33926 | .{ ._, ._, .mov, .tmp0d, .sa(.src0, .add_len), ._, ._ }, |
| 28804 | 33927 | .{ ._, ._, .lea, .tmp1p, .mem(.src0), ._, ._ }, |
| 28805 | 33928 | .{ ._, ._, .lea, .tmp2p, .mem(.dst0), ._, ._ }, |
| 28806 | | .{ .@"0:", ._, .mov, .tmp3d, .sa(.src0, .add_elem_size_div_8), ._, ._ }, |
| 33929 | .{ ._, ._, .xor, .tmp3d, .tmp3d, ._, ._ }, |
| 33930 | .{ .@"0:", ._, .mov, .tmp4d, .sia(-1, .dst0, .add_elem_size_div_8), ._, ._ }, |
| 28807 | 33931 | .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ }, |
| 28808 | | .{ ._, ._, .xor, .tmp4d, .tmp4d, ._, ._ }, |
| 28809 | | .{ ._, ._, .mov, .tmp3d, .sa2(.dst0, .src0, .add_delta_elem_size_div_8), ._, ._ }, |
| 28810 | | .{ ._, .@"rep _sq", .sto, ._, ._, ._, ._ }, |
| 33932 | .{ ._, ._sq, .sto, ._, ._, ._, ._ }, |
| 33933 | .{ ._, ._, .add, .tmp1p, .sa2(.src0, .dst0, .add_delta_elem_size), ._, ._ }, |
| 28811 | 33934 | .{ ._, ._, .sub, .tmp0d, .si(1), ._, ._ }, |
| 28812 | 33935 | .{ ._, ._a, .j, .@"0b", ._, ._, ._ }, |
| 28813 | 33936 | } }, |
| 28814 | 33937 | }, .{ |
| 28815 | 33938 | .required_features = .{ .@"64bit", null, null, null }, |
| 28816 | | .src_constraints = .{ .any_scalar_int, .any }, |
| 28817 | | .dst_constraints = .{.any_scalar_int}, |
| 33939 | .src_constraints = .{ .any_scalar_unsigned_int, .any }, |
| 33940 | .dst_constraints = .{.{ .scalar_exact_remainder_unsigned_int = .{ .of = .xword, .is = .qword } }}, |
| 28818 | 33941 | .patterns = &.{ |
| 28819 | 33942 | .{ .src = .{ .to_mem, .none } }, |
| 28820 | 33943 | }, |
| ... | ... | @@ -28822,8 +33945,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 28822 | 33945 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 28823 | 33946 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 28824 | 33947 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 28825 | | .{ .type = .u32, .kind = .{ .reg = .ecx } }, |
| 28826 | 33948 | .{ .type = .u64, .kind = .{ .reg = .rax } }, |
| 33949 | .{ .type = .u32, .kind = .{ .reg = .ecx } }, |
| 28827 | 33950 | .unused, |
| 28828 | 33951 | .unused, |
| 28829 | 33952 | .unused, |
| ... | ... | @@ -28835,368 +33958,98 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 28835 | 33958 | .{ ._, ._, .mov, .tmp0d, .sa(.src0, .add_len), ._, ._ }, |
| 28836 | 33959 | .{ ._, ._, .lea, .tmp1p, .mem(.src0), ._, ._ }, |
| 28837 | 33960 | .{ ._, ._, .lea, .tmp2p, .mem(.dst0), ._, ._ }, |
| 28838 | | .{ .@"0:", ._, .mov, .tmp3d, .sa(.src0, .add_elem_size_div_8), ._, ._ }, |
| 33961 | .{ ._, ._, .xor, .tmp3d, .tmp3d, ._, ._ }, |
| 33962 | .{ .@"0:", ._, .mov, .tmp4d, .sia(-1, .dst0, .add_elem_size_div_8), ._, ._ }, |
| 28839 | 33963 | .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ }, |
| 28840 | | .{ ._, ._, .xor, .tmp4d, .tmp4d, ._, ._ }, |
| 28841 | | .{ ._, ._, .mov, .tmp3d, .sa2(.dst0, .src0, .add_delta_elem_size_div_8), ._, ._ }, |
| 28842 | | .{ ._, .@"rep _sq", .sto, ._, ._, ._, ._ }, |
| 33964 | .{ ._, ._sq, .sto, ._, ._, ._, ._ }, |
| 33965 | .{ ._, ._, .add, .tmp1p, .sa2(.src0, .dst0, .add_delta_elem_size), ._, ._ }, |
| 28843 | 33966 | .{ ._, ._c, .de, .tmp0d, ._, ._, ._ }, |
| 28844 | 33967 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| 28845 | 33968 | } }, |
| 28846 | | } }) catch |err| switch (err) { |
| 28847 | | error.SelectFailed => return cg.fail("failed to select {s} {} {} {}", .{ |
| 28848 | | @tagName(air_tag), |
| 28849 | | dst_ty.fmt(pt), |
| 28850 | | src_ty.fmt(pt), |
| 28851 | | ops[0].tracking(cg), |
| 28852 | | }), |
| 28853 | | else => |e| return e, |
| 28854 | | }; |
| 28855 | | try res[0].finish(inst, &.{ty_op.operand}, &ops, cg); |
| 28856 | | }, |
| 28857 | | .trunc => |air_tag| if (use_old) try cg.airTrunc(inst) else fallback: { |
| 28858 | | const ty_op = air_datas[@intFromEnum(inst)].ty_op; |
| 28859 | | if (ty_op.ty.toType().isVector(zcu)) break :fallback try cg.airTrunc(inst); |
| 28860 | | var ops = try cg.tempsFromOperands(inst, .{ty_op.operand}); |
| 28861 | | var res: [1]Temp = undefined; |
| 28862 | | cg.select(&res, &.{ty_op.ty.toType()}, &ops, comptime &.{ .{ |
| 28863 | | .src_constraints = .{ .{ .signed_int = .gpr }, .any }, |
| 28864 | | .dst_constraints = .{.{ .exact_signed_int = 1 }}, |
| 28865 | | .patterns = &.{ |
| 28866 | | .{ .src = .{ .to_mut_gpr, .none } }, |
| 28867 | | }, |
| 28868 | | .dst_temps = .{.{ .ref = .src0 }}, |
| 28869 | | .clobbers = .{ .eflags = true }, |
| 28870 | | .each = .{ .once = &.{ |
| 28871 | | .{ ._, ._, .@"and", .dst0d, .si(1), ._, ._ }, |
| 28872 | | .{ ._, ._, .neg, .dst0d, ._, ._, ._ }, |
| 28873 | | } }, |
| 28874 | | }, .{ |
| 28875 | | .src_constraints = .{ .any_signed_int, .any }, |
| 28876 | | .dst_constraints = .{.{ .exact_signed_int = 1 }}, |
| 28877 | | .patterns = &.{ |
| 28878 | | .{ .src = .{ .to_mem, .none } }, |
| 28879 | | }, |
| 28880 | | .dst_temps = .{.{ .rc = .general_purpose }}, |
| 28881 | | .clobbers = .{ .eflags = true }, |
| 28882 | | .each = .{ .once = &.{ |
| 28883 | | .{ ._, ._, .movzx, .dst0d, .mem(.src0b), ._, ._ }, |
| 28884 | | .{ ._, ._, .@"and", .dst0d, .si(1), ._, ._ }, |
| 28885 | | .{ ._, ._, .neg, .dst0d, ._, ._, ._ }, |
| 28886 | | } }, |
| 28887 | | }, .{ |
| 28888 | | .src_constraints = .{ .{ .int = .gpr }, .any }, |
| 28889 | | .dst_constraints = .{.{ .exact_int = 8 }}, |
| 28890 | | .patterns = &.{ |
| 28891 | | .{ .src = .{ .to_mut_gpr, .none } }, |
| 28892 | | }, |
| 28893 | | .dst_temps = .{.{ .ref = .src0 }}, |
| 28894 | | .each = .{ .once = &.{} }, |
| 28895 | | }, .{ |
| 28896 | | .src_constraints = .{ .any_signed_int, .any }, |
| 28897 | | .dst_constraints = .{.{ .exact_signed_int = 8 }}, |
| 28898 | | .patterns = &.{ |
| 28899 | | .{ .src = .{ .to_mem, .none } }, |
| 28900 | | }, |
| 28901 | | .dst_temps = .{.{ .rc = .general_purpose }}, |
| 28902 | | .each = .{ .once = &.{ |
| 28903 | | .{ ._, ._, .movsx, .dst0d, .mem(.src0b), ._, ._ }, |
| 28904 | | } }, |
| 28905 | | }, .{ |
| 28906 | | .src_constraints = .{ .any_unsigned_int, .any }, |
| 28907 | | .dst_constraints = .{.{ .exact_unsigned_int = 8 }}, |
| 28908 | | .patterns = &.{ |
| 28909 | | .{ .src = .{ .to_mem, .none } }, |
| 28910 | | }, |
| 28911 | | .dst_temps = .{.{ .rc = .general_purpose }}, |
| 28912 | | .each = .{ .once = &.{ |
| 28913 | | .{ ._, ._, .movzx, .dst0d, .mem(.src0b), ._, ._ }, |
| 28914 | | } }, |
| 28915 | | }, .{ |
| 28916 | | .src_constraints = .{ .{ .signed_int = .gpr }, .any }, |
| 28917 | | .dst_constraints = .{.{ .signed_int = .byte }}, |
| 28918 | | .patterns = &.{ |
| 28919 | | .{ .src = .{ .to_mut_gpr, .none } }, |
| 28920 | | }, |
| 28921 | | .dst_temps = .{.{ .ref = .src0 }}, |
| 28922 | | .clobbers = .{ .eflags = true }, |
| 28923 | | .each = .{ .once = &.{ |
| 28924 | | .{ ._, ._l, .sa, .dst0b, .uia(8, .dst0, .sub_bit_size), ._, ._ }, |
| 28925 | | .{ ._, ._r, .sa, .dst0b, .uia(8, .dst0, .sub_bit_size), ._, ._ }, |
| 28926 | | } }, |
| 28927 | | }, .{ |
| 28928 | | .src_constraints = .{ .{ .unsigned_int = .gpr }, .any }, |
| 28929 | | .dst_constraints = .{.{ .unsigned_int = .byte }}, |
| 28930 | | .patterns = &.{ |
| 28931 | | .{ .src = .{ .to_mut_gpr, .none } }, |
| 28932 | | }, |
| 28933 | | .dst_temps = .{.{ .ref = .src0 }}, |
| 28934 | | .clobbers = .{ .eflags = true }, |
| 28935 | | .each = .{ .once = &.{ |
| 28936 | | .{ ._, ._, .@"and", .dst0b, .sa(.dst0, .add_umax), ._, ._ }, |
| 28937 | | } }, |
| 28938 | | }, .{ |
| 28939 | | .src_constraints = .{ .any_int, .any }, |
| 28940 | | .dst_constraints = .{.{ .unsigned_int = .byte }}, |
| 28941 | | .patterns = &.{ |
| 28942 | | .{ .src = .{ .to_mem, .none } }, |
| 28943 | | }, |
| 28944 | | .dst_temps = .{.{ .rc = .general_purpose }}, |
| 28945 | | .clobbers = .{ .eflags = true }, |
| 28946 | | .each = .{ .once = &.{ |
| 28947 | | .{ ._, ._, .movzx, .dst0d, .mem(.src0b), ._, ._ }, |
| 28948 | | .{ ._, ._, .@"and", .dst0b, .sa(.dst0, .add_umax), ._, ._ }, |
| 28949 | | } }, |
| 28950 | | }, .{ |
| 28951 | | .src_constraints = .{ .{ .int = .gpr }, .any }, |
| 28952 | | .dst_constraints = .{.{ .exact_int = 16 }}, |
| 28953 | | .patterns = &.{ |
| 28954 | | .{ .src = .{ .to_mut_gpr, .none } }, |
| 28955 | | }, |
| 28956 | | .dst_temps = .{.{ .ref = .src0 }}, |
| 28957 | | .each = .{ .once = &.{} }, |
| 28958 | | }, .{ |
| 28959 | | .src_constraints = .{ .any_signed_int, .any }, |
| 28960 | | .dst_constraints = .{.{ .exact_signed_int = 16 }}, |
| 28961 | | .patterns = &.{ |
| 28962 | | .{ .src = .{ .to_mem, .none } }, |
| 28963 | | }, |
| 28964 | | .dst_temps = .{.{ .rc = .general_purpose }}, |
| 28965 | | .each = .{ .once = &.{ |
| 28966 | | .{ ._, ._, .movsx, .dst0d, .mem(.src0w), ._, ._ }, |
| 28967 | | } }, |
| 28968 | | }, .{ |
| 28969 | | .src_constraints = .{ .any_unsigned_int, .any }, |
| 28970 | | .dst_constraints = .{.{ .exact_unsigned_int = 16 }}, |
| 28971 | | .patterns = &.{ |
| 28972 | | .{ .src = .{ .to_mem, .none } }, |
| 28973 | | }, |
| 28974 | | .dst_temps = .{.{ .rc = .general_purpose }}, |
| 28975 | | .each = .{ .once = &.{ |
| 28976 | | .{ ._, ._, .movzx, .dst0d, .mem(.src0w), ._, ._ }, |
| 28977 | | } }, |
| 28978 | | }, .{ |
| 28979 | | .required_features = .{ .fast_imm16, null, null, null }, |
| 28980 | | .src_constraints = .{ .{ .unsigned_int = .gpr }, .any }, |
| 28981 | | .dst_constraints = .{.{ .unsigned_int = .word }}, |
| 28982 | | .patterns = &.{ |
| 28983 | | .{ .src = .{ .to_mut_gpr, .none } }, |
| 28984 | | }, |
| 28985 | | .dst_temps = .{.{ .ref = .src0 }}, |
| 28986 | | .clobbers = .{ .eflags = true }, |
| 28987 | | .each = .{ .once = &.{ |
| 28988 | | .{ ._, ._, .@"and", .dst0w, .sa(.dst0, .add_umax), ._, ._ }, |
| 28989 | | } }, |
| 28990 | | }, .{ |
| 28991 | | .required_features = .{ .fast_imm16, null, null, null }, |
| 28992 | | .src_constraints = .{ .any_unsigned_int, .any }, |
| 28993 | | .dst_constraints = .{.{ .unsigned_int = .word }}, |
| 28994 | | .patterns = &.{ |
| 28995 | | .{ .src = .{ .to_mem, .none } }, |
| 28996 | | }, |
| 28997 | | .dst_temps = .{.{ .rc = .general_purpose }}, |
| 28998 | | .clobbers = .{ .eflags = true }, |
| 28999 | | .each = .{ .once = &.{ |
| 29000 | | .{ ._, ._, .movzx, .dst0d, .mem(.src0w), ._, ._ }, |
| 29001 | | .{ ._, ._, .@"and", .dst0w, .sa(.dst0, .add_umax), ._, ._ }, |
| 29002 | | } }, |
| 29003 | | }, .{ |
| 29004 | | .src_constraints = .{ .{ .int = .gpr }, .any }, |
| 29005 | | .dst_constraints = .{.{ .exact_int = 32 }}, |
| 29006 | | .patterns = &.{ |
| 29007 | | .{ .src = .{ .to_mut_gpr, .none } }, |
| 29008 | | }, |
| 29009 | | .dst_temps = .{.{ .ref = .src0 }}, |
| 29010 | | .each = .{ .once = &.{} }, |
| 29011 | | }, .{ |
| 29012 | | .src_constraints = .{ .any_int, .any }, |
| 29013 | | .dst_constraints = .{.{ .exact_int = 32 }}, |
| 29014 | | .patterns = &.{ |
| 29015 | | .{ .src = .{ .to_mem, .none } }, |
| 29016 | | }, |
| 29017 | | .dst_temps = .{.{ .rc = .general_purpose }}, |
| 29018 | | .each = .{ .once = &.{ |
| 29019 | | .{ ._, ._, .mov, .dst0d, .mem(.src0d), ._, ._ }, |
| 29020 | | } }, |
| 29021 | | }, .{ |
| 29022 | | .src_constraints = .{ .{ .signed_int = .gpr }, .any }, |
| 29023 | | .dst_constraints = .{.{ .signed_int = .dword }}, |
| 29024 | | .patterns = &.{ |
| 29025 | | .{ .src = .{ .to_mut_gpr, .none } }, |
| 29026 | | }, |
| 29027 | | .dst_temps = .{.{ .ref = .src0 }}, |
| 29028 | | .clobbers = .{ .eflags = true }, |
| 29029 | | .each = .{ .once = &.{ |
| 29030 | | .{ ._, ._l, .sa, .dst0d, .uia(32, .dst0, .sub_bit_size), ._, ._ }, |
| 29031 | | .{ ._, ._r, .sa, .dst0d, .uia(32, .dst0, .sub_bit_size), ._, ._ }, |
| 29032 | | } }, |
| 29033 | | }, .{ |
| 29034 | | .src_constraints = .{ .any_signed_int, .any }, |
| 29035 | | .dst_constraints = .{.{ .signed_int = .dword }}, |
| 29036 | | .patterns = &.{ |
| 29037 | | .{ .src = .{ .to_mem, .none } }, |
| 29038 | | }, |
| 29039 | | .dst_temps = .{.{ .rc = .general_purpose }}, |
| 29040 | | .clobbers = .{ .eflags = true }, |
| 29041 | | .each = .{ .once = &.{ |
| 29042 | | .{ ._, ._, .mov, .dst0d, .mem(.src0d), ._, ._ }, |
| 29043 | | .{ ._, ._l, .sa, .dst0d, .uia(32, .dst0, .sub_bit_size), ._, ._ }, |
| 29044 | | .{ ._, ._r, .sa, .dst0d, .uia(32, .dst0, .sub_bit_size), ._, ._ }, |
| 29045 | | } }, |
| 29046 | | }, .{ |
| 29047 | | .src_constraints = .{ .{ .unsigned_int = .gpr }, .any }, |
| 29048 | | .dst_constraints = .{.{ .unsigned_int = .dword }}, |
| 29049 | | .patterns = &.{ |
| 29050 | | .{ .src = .{ .to_mut_gpr, .none } }, |
| 29051 | | }, |
| 29052 | | .dst_temps = .{.{ .ref = .src0 }}, |
| 29053 | | .clobbers = .{ .eflags = true }, |
| 29054 | | .each = .{ .once = &.{ |
| 29055 | | .{ ._, ._, .@"and", .dst0d, .sa(.dst0, .add_umax), ._, ._ }, |
| 29056 | | } }, |
| 29057 | | }, .{ |
| 29058 | | .src_constraints = .{ .any_unsigned_int, .any }, |
| 29059 | | .dst_constraints = .{.{ .unsigned_int = .dword }}, |
| 29060 | | .patterns = &.{ |
| 29061 | | .{ .src = .{ .to_mem, .none } }, |
| 29062 | | }, |
| 29063 | | .dst_temps = .{.{ .rc = .general_purpose }}, |
| 29064 | | .clobbers = .{ .eflags = true }, |
| 29065 | | .each = .{ .once = &.{ |
| 29066 | | .{ ._, ._, .mov, .dst0d, .mem(.src0d), ._, ._ }, |
| 29067 | | .{ ._, ._, .@"and", .dst0d, .sa(.dst0, .add_umax), ._, ._ }, |
| 29068 | | } }, |
| 29069 | | }, .{ |
| 29070 | | .required_features = .{ .@"64bit", null, null, null }, |
| 29071 | | .src_constraints = .{ .any_int, .any }, |
| 29072 | | .dst_constraints = .{.{ .exact_int = 64 }}, |
| 29073 | | .patterns = &.{ |
| 29074 | | .{ .src = .{ .to_mem, .none } }, |
| 29075 | | }, |
| 29076 | | .dst_temps = .{.{ .rc = .general_purpose }}, |
| 29077 | | .each = .{ .once = &.{ |
| 29078 | | .{ ._, ._, .mov, .dst0q, .mem(.src0q), ._, ._ }, |
| 29079 | | } }, |
| 29080 | | }, .{ |
| 29081 | | .required_features = .{ .@"64bit", null, null, null }, |
| 29082 | | .src_constraints = .{ .{ .signed_int = .gpr }, .any }, |
| 29083 | | .dst_constraints = .{.{ .signed_int = .qword }}, |
| 29084 | | .patterns = &.{ |
| 29085 | | .{ .src = .{ .to_mut_gpr, .none } }, |
| 29086 | | }, |
| 29087 | | .dst_temps = .{.{ .ref = .src0 }}, |
| 29088 | | .clobbers = .{ .eflags = true }, |
| 29089 | | .each = .{ .once = &.{ |
| 29090 | | .{ ._, ._l, .sa, .dst0q, .uia(64, .dst0, .sub_bit_size), ._, ._ }, |
| 29091 | | .{ ._, ._r, .sa, .dst0q, .uia(64, .dst0, .sub_bit_size), ._, ._ }, |
| 29092 | | } }, |
| 29093 | 33969 | }, .{ |
| 29094 | | .required_features = .{ .@"64bit", null, null, null }, |
| 29095 | | .src_constraints = .{ .any_signed_int, .any }, |
| 29096 | | .dst_constraints = .{.{ .signed_int = .qword }}, |
| 33970 | .required_features = .{ .@"64bit", .bmi2, .slow_incdec, null }, |
| 33971 | .src_constraints = .{ .any_scalar_unsigned_int, .any }, |
| 33972 | .dst_constraints = .{.{ .scalar_remainder_unsigned_int = .{ .of = .xword, .is = .qword } }}, |
| 29097 | 33973 | .patterns = &.{ |
| 29098 | 33974 | .{ .src = .{ .to_mem, .none } }, |
| 29099 | 33975 | }, |
| 29100 | | .dst_temps = .{.{ .rc = .general_purpose }}, |
| 29101 | | .clobbers = .{ .eflags = true }, |
| 29102 | | .each = .{ .once = &.{ |
| 29103 | | .{ ._, ._, .mov, .dst0q, .mem(.src0q), ._, ._ }, |
| 29104 | | .{ ._, ._l, .sa, .dst0q, .uia(64, .dst0, .sub_bit_size), ._, ._ }, |
| 29105 | | .{ ._, ._r, .sa, .dst0q, .uia(64, .dst0, .sub_bit_size), ._, ._ }, |
| 29106 | | } }, |
| 29107 | | }, .{ |
| 29108 | | .required_features = .{ .@"64bit", .bmi2, null, null }, |
| 29109 | | .src_constraints = .{ .{ .unsigned_int = .gpr }, .any }, |
| 29110 | | .dst_constraints = .{.{ .unsigned_int = .qword }}, |
| 29111 | | .patterns = &.{ |
| 29112 | | .{ .src = .{ .mem, .none } }, |
| 29113 | | .{ .src = .{ .to_gpr, .none } }, |
| 33976 | .extra_temps = .{ |
| 33977 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 33978 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 33979 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 33980 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| 33981 | .{ .type = .u32, .kind = .{ .reg = .ecx } }, |
| 33982 | .unused, |
| 33983 | .unused, |
| 33984 | .unused, |
| 33985 | .unused, |
| 29114 | 33986 | }, |
| 29115 | | .dst_temps = .{.{ .rc = .general_purpose }}, |
| 33987 | .dst_temps = .{.mem}, |
| 29116 | 33988 | .clobbers = .{ .eflags = true }, |
| 29117 | 33989 | .each = .{ .once = &.{ |
| 29118 | | .{ ._, ._, .mov, .dst0d, .sa(.dst0, .add_bit_size), ._, ._ }, |
| 29119 | | .{ ._, ._, .bzhi, .dst0q, .src0q, .dst0q, ._ }, |
| 33990 | .{ ._, ._, .mov, .tmp0d, .sa(.src0, .add_len), ._, ._ }, |
| 33991 | .{ ._, ._, .lea, .tmp1p, .mem(.src0), ._, ._ }, |
| 33992 | .{ ._, ._, .lea, .tmp2p, .mem(.dst0), ._, ._ }, |
| 33993 | .{ ._, ._, .mov, .tmp3d, .sa(.dst0, .add_bit_size_rem_64), ._, ._ }, |
| 33994 | .{ .@"0:", ._, .mov, .tmp4d, .sia(-2, .dst0, .add_elem_size_div_8), ._, ._ }, |
| 33995 | .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ }, |
| 33996 | .{ ._, ._, .bzhi, .tmp4q, .lea(.tmp1q), .tmp3q, ._ }, |
| 33997 | .{ ._, ._, .mov, .lea(.tmp2q), .tmp4q, ._, ._ }, |
| 33998 | .{ ._, ._, .mov, .lead(.tmp2q, 8), .si(0), ._, ._ }, |
| 33999 | .{ ._, ._, .add, .tmp1p, .sia2(8, .src0, .dst0, .add_delta_elem_size), ._, ._ }, |
| 34000 | .{ ._, ._, .lea, .tmp2p, .lead(.tmp2, 16), ._, ._ }, |
| 34001 | .{ ._, ._, .sub, .tmp0d, .si(1), ._, ._ }, |
| 34002 | .{ ._, ._a, .j, .@"0b", ._, ._, ._ }, |
| 29120 | 34003 | } }, |
| 29121 | 34004 | }, .{ |
| 29122 | 34005 | .required_features = .{ .@"64bit", .bmi2, null, null }, |
| 29123 | | .src_constraints = .{ .any_unsigned_int, .any }, |
| 29124 | | .dst_constraints = .{.{ .unsigned_int = .qword }}, |
| 29125 | | .patterns = &.{ |
| 29126 | | .{ .src = .{ .to_mem, .none } }, |
| 29127 | | }, |
| 29128 | | .dst_temps = .{.{ .rc = .general_purpose }}, |
| 29129 | | .clobbers = .{ .eflags = true }, |
| 29130 | | .each = .{ .once = &.{ |
| 29131 | | .{ ._, ._, .mov, .dst0d, .sa(.dst0, .add_bit_size), ._, ._ }, |
| 29132 | | .{ ._, ._, .bzhi, .dst0q, .mem(.src0q), .dst0q, ._ }, |
| 29133 | | } }, |
| 29134 | | }, .{ |
| 29135 | | .required_features = .{ .@"64bit", null, null, null }, |
| 29136 | | .src_constraints = .{ .{ .unsigned_int = .gpr }, .any }, |
| 29137 | | .dst_constraints = .{.{ .unsigned_int = .qword }}, |
| 29138 | | .patterns = &.{ |
| 29139 | | .{ .src = .{ .mem, .none } }, |
| 29140 | | .{ .src = .{ .to_gpr, .none } }, |
| 29141 | | }, |
| 29142 | | .dst_temps = .{.{ .rc = .general_purpose }}, |
| 29143 | | .clobbers = .{ .eflags = true }, |
| 29144 | | .each = .{ .once = &.{ |
| 29145 | | .{ ._, ._, .mov, .dst0q, .ua(.dst0, .add_umax), ._, ._ }, |
| 29146 | | .{ ._, ._, .@"and", .dst0q, .src0q, ._, ._ }, |
| 29147 | | } }, |
| 29148 | | }, .{ |
| 29149 | | .required_features = .{ .@"64bit", null, null, null }, |
| 29150 | | .src_constraints = .{ .any_unsigned_int, .any }, |
| 29151 | | .dst_constraints = .{.{ .unsigned_int = .qword }}, |
| 29152 | | .patterns = &.{ |
| 29153 | | .{ .src = .{ .to_mem, .none } }, |
| 29154 | | }, |
| 29155 | | .dst_temps = .{.{ .rc = .general_purpose }}, |
| 29156 | | .clobbers = .{ .eflags = true }, |
| 29157 | | .each = .{ .once = &.{ |
| 29158 | | .{ ._, ._, .mov, .dst0q, .ua(.dst0, .add_umax), ._, ._ }, |
| 29159 | | .{ ._, ._, .@"and", .dst0q, .mem(.src0q), ._, ._ }, |
| 29160 | | } }, |
| 29161 | | }, .{ |
| 29162 | | .required_features = .{ .@"64bit", null, null, null }, |
| 29163 | | .src_constraints = .{ .any_int, .any }, |
| 29164 | | .dst_constraints = .{.{ .exact_remainder_int = .{ .of = .xword, .is = .xword } }}, |
| 34006 | .src_constraints = .{ .any_scalar_unsigned_int, .any }, |
| 34007 | .dst_constraints = .{.{ .scalar_remainder_unsigned_int = .{ .of = .xword, .is = .qword } }}, |
| 29165 | 34008 | .patterns = &.{ |
| 29166 | 34009 | .{ .src = .{ .to_mem, .none } }, |
| 29167 | 34010 | }, |
| 29168 | 34011 | .extra_temps = .{ |
| 34012 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 29169 | 34013 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 29170 | 34014 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 34015 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| 29171 | 34016 | .{ .type = .u32, .kind = .{ .reg = .ecx } }, |
| 29172 | 34017 | .unused, |
| 29173 | 34018 | .unused, |
| 29174 | 34019 | .unused, |
| 29175 | 34020 | .unused, |
| 29176 | | .unused, |
| 29177 | | .unused, |
| 29178 | 34021 | }, |
| 29179 | 34022 | .dst_temps = .{.mem}, |
| 34023 | .clobbers = .{ .eflags = true }, |
| 29180 | 34024 | .each = .{ .once = &.{ |
| 29181 | | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, |
| 29182 | | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, |
| 29183 | | .{ ._, ._, .mov, .tmp2d, .sa(.dst0, .add_size_div_8), ._, ._ }, |
| 34025 | .{ ._, ._, .mov, .tmp0d, .sa(.src0, .add_len), ._, ._ }, |
| 34026 | .{ ._, ._, .lea, .tmp1p, .mem(.src0), ._, ._ }, |
| 34027 | .{ ._, ._, .lea, .tmp2p, .mem(.dst0), ._, ._ }, |
| 34028 | .{ ._, ._, .mov, .tmp3d, .sa(.dst0, .add_bit_size_rem_64), ._, ._ }, |
| 34029 | .{ .@"0:", ._, .mov, .tmp4d, .sia(-2, .dst0, .add_elem_size_div_8), ._, ._ }, |
| 29184 | 34030 | .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ }, |
| 34031 | .{ ._, ._, .bzhi, .tmp4q, .lea(.tmp1q), .tmp3q, ._ }, |
| 34032 | .{ ._, ._, .mov, .lea(.tmp2q), .tmp4q, ._, ._ }, |
| 34033 | .{ ._, ._, .mov, .lead(.tmp2q, 8), .si(0), ._, ._ }, |
| 34034 | .{ ._, ._, .add, .tmp1p, .sia2(8, .src0, .dst0, .add_delta_elem_size), ._, ._ }, |
| 34035 | .{ ._, ._, .lea, .tmp2p, .lead(.tmp2, 16), ._, ._ }, |
| 34036 | .{ ._, ._c, .de, .tmp0d, ._, ._, ._ }, |
| 34037 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| 29185 | 34038 | } }, |
| 29186 | 34039 | }, .{ |
| 29187 | | .required_features = .{ .@"64bit", null, null, null }, |
| 29188 | | .src_constraints = .{ .any_signed_int, .any }, |
| 29189 | | .dst_constraints = .{.{ .exact_remainder_signed_int = .{ .of = .xword, .is = .qword } }}, |
| 34040 | .required_features = .{ .@"64bit", .bmi2, .slow_incdec, null }, |
| 34041 | .src_constraints = .{ .any_scalar_unsigned_int, .any }, |
| 34042 | .dst_constraints = .{.{ .scalar_remainder_unsigned_int = .{ .of = .xword, .is = .xword } }}, |
| 29190 | 34043 | .patterns = &.{ |
| 29191 | 34044 | .{ .src = .{ .to_mem, .none } }, |
| 29192 | 34045 | }, |
| 29193 | 34046 | .extra_temps = .{ |
| 34047 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 29194 | 34048 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 29195 | 34049 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 34050 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| 29196 | 34051 | .{ .type = .u32, .kind = .{ .reg = .ecx } }, |
| 29197 | | .unused, |
| 29198 | | .unused, |
| 29199 | | .unused, |
| 34052 | .{ .type = .u64, .kind = .{ .reg = .rax } }, |
| 29200 | 34053 | .unused, |
| 29201 | 34054 | .unused, |
| 29202 | 34055 | .unused, |
| ... | ... | @@ -29204,29 +34057,32 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 29204 | 34057 | .dst_temps = .{.mem}, |
| 29205 | 34058 | .clobbers = .{ .eflags = true }, |
| 29206 | 34059 | .each = .{ .once = &.{ |
| 29207 | | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, |
| 29208 | | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, |
| 29209 | | .{ ._, ._, .mov, .tmp2d, .sia(-2, .dst0, .add_size_div_8), ._, ._ }, |
| 34060 | .{ ._, ._, .mov, .tmp0d, .sa(.src0, .add_len), ._, ._ }, |
| 34061 | .{ ._, ._, .lea, .tmp1p, .mem(.src0), ._, ._ }, |
| 34062 | .{ ._, ._, .lea, .tmp2p, .mem(.dst0), ._, ._ }, |
| 34063 | .{ ._, ._, .mov, .tmp3d, .sa(.dst0, .add_bit_size_rem_64), ._, ._ }, |
| 34064 | .{ .@"0:", ._, .mov, .tmp4d, .sia(-1, .dst0, .add_elem_size_div_8), ._, ._ }, |
| 29210 | 34065 | .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ }, |
| 29211 | | .{ ._, ._, .mov, .tmp0q, .memad(.src0q, .add_size, -16), ._, ._ }, |
| 29212 | | .{ ._, ._, .mov, .memad(.dst0q, .add_size, -16), .tmp0q, ._, ._ }, |
| 29213 | | .{ ._, ._r, .sa, .tmp0q, .ui(63), ._, ._ }, |
| 29214 | | .{ ._, ._, .mov, .memad(.dst0q, .add_size, -8), .tmp0q, ._, ._ }, |
| 34066 | .{ ._, ._, .bzhi, .tmp5q, .lea(.tmp1q), .tmp3q, ._ }, |
| 34067 | .{ ._, ._sq, .sto, ._, ._, ._, ._ }, |
| 34068 | .{ ._, ._, .add, .tmp1p, .sia2(8, .src0, .dst0, .add_delta_elem_size), ._, ._ }, |
| 34069 | .{ ._, ._, .sub, .tmp0d, .si(1), ._, ._ }, |
| 34070 | .{ ._, ._a, .j, .@"0b", ._, ._, ._ }, |
| 29215 | 34071 | } }, |
| 29216 | 34072 | }, .{ |
| 29217 | | .required_features = .{ .@"64bit", null, null, null }, |
| 29218 | | .src_constraints = .{ .any_signed_int, .any }, |
| 29219 | | .dst_constraints = .{.{ .remainder_signed_int = .{ .of = .xword, .is = .qword } }}, |
| 34073 | .required_features = .{ .@"64bit", .bmi2, null, null }, |
| 34074 | .src_constraints = .{ .any_scalar_unsigned_int, .any }, |
| 34075 | .dst_constraints = .{.{ .scalar_remainder_unsigned_int = .{ .of = .xword, .is = .xword } }}, |
| 29220 | 34076 | .patterns = &.{ |
| 29221 | 34077 | .{ .src = .{ .to_mem, .none } }, |
| 29222 | 34078 | }, |
| 29223 | 34079 | .extra_temps = .{ |
| 34080 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 29224 | 34081 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 29225 | 34082 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 34083 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| 29226 | 34084 | .{ .type = .u32, .kind = .{ .reg = .ecx } }, |
| 29227 | | .unused, |
| 29228 | | .unused, |
| 29229 | | .unused, |
| 34085 | .{ .type = .u64, .kind = .{ .reg = .rax } }, |
| 29230 | 34086 | .unused, |
| 29231 | 34087 | .unused, |
| 29232 | 34088 | .unused, |
| ... | ... | @@ -29234,25 +34090,27 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 29234 | 34090 | .dst_temps = .{.mem}, |
| 29235 | 34091 | .clobbers = .{ .eflags = true }, |
| 29236 | 34092 | .each = .{ .once = &.{ |
| 29237 | | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, |
| 29238 | | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, |
| 29239 | | .{ ._, ._, .mov, .tmp2d, .sia(-2, .dst0, .add_size_div_8), ._, ._ }, |
| 34093 | .{ ._, ._, .mov, .tmp0d, .sa(.src0, .add_len), ._, ._ }, |
| 34094 | .{ ._, ._, .lea, .tmp1p, .mem(.src0), ._, ._ }, |
| 34095 | .{ ._, ._, .lea, .tmp2p, .mem(.dst0), ._, ._ }, |
| 34096 | .{ ._, ._, .mov, .tmp3d, .sa(.dst0, .add_bit_size_rem_64), ._, ._ }, |
| 34097 | .{ .@"0:", ._, .mov, .tmp4d, .sia(-1, .dst0, .add_elem_size_div_8), ._, ._ }, |
| 29240 | 34098 | .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ }, |
| 29241 | | .{ ._, ._, .mov, .tmp0q, .memad(.src0q, .add_size, -16), ._, ._ }, |
| 29242 | | .{ ._, ._l, .sa, .tmp0q, .uia(64, .dst0, .sub_bit_size_rem_64), ._, ._ }, |
| 29243 | | .{ ._, ._r, .sa, .tmp0q, .uia(64, .dst0, .sub_bit_size_rem_64), ._, ._ }, |
| 29244 | | .{ ._, ._, .mov, .memad(.dst0q, .add_size, -16), .tmp0q, ._, ._ }, |
| 29245 | | .{ ._, ._r, .sa, .tmp0q, .ui(63), ._, ._ }, |
| 29246 | | .{ ._, ._, .mov, .memad(.dst0q, .add_size, -8), .tmp0q, ._, ._ }, |
| 34099 | .{ ._, ._, .bzhi, .tmp5q, .lea(.tmp1q), .tmp3q, ._ }, |
| 34100 | .{ ._, ._sq, .sto, ._, ._, ._, ._ }, |
| 34101 | .{ ._, ._, .add, .tmp1p, .sia2(8, .src0, .dst0, .add_delta_elem_size), ._, ._ }, |
| 34102 | .{ ._, ._c, .de, .tmp0d, ._, ._, ._ }, |
| 34103 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| 29247 | 34104 | } }, |
| 29248 | 34105 | }, .{ |
| 29249 | | .required_features = .{ .@"64bit", null, null, null }, |
| 29250 | | .src_constraints = .{ .any_signed_int, .any }, |
| 29251 | | .dst_constraints = .{.{ .remainder_signed_int = .{ .of = .xword, .is = .xword } }}, |
| 34106 | .required_features = .{ .@"64bit", .slow_incdec, null, null }, |
| 34107 | .src_constraints = .{ .any_scalar_unsigned_int, .any }, |
| 34108 | .dst_constraints = .{.{ .scalar_remainder_unsigned_int = .{ .of = .xword, .is = .qword } }}, |
| 29252 | 34109 | .patterns = &.{ |
| 29253 | 34110 | .{ .src = .{ .to_mem, .none } }, |
| 29254 | 34111 | }, |
| 29255 | 34112 | .extra_temps = .{ |
| 34113 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 29256 | 34114 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 29257 | 34115 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 29258 | 34116 | .{ .type = .u32, .kind = .{ .reg = .ecx } }, |
| ... | ... | @@ -29261,28 +34119,33 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 29261 | 34119 | .unused, |
| 29262 | 34120 | .unused, |
| 29263 | 34121 | .unused, |
| 29264 | | .unused, |
| 29265 | 34122 | }, |
| 29266 | 34123 | .dst_temps = .{.mem}, |
| 29267 | 34124 | .clobbers = .{ .eflags = true }, |
| 29268 | 34125 | .each = .{ .once = &.{ |
| 29269 | | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, |
| 29270 | | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, |
| 29271 | | .{ ._, ._, .mov, .tmp2d, .sia(-1, .dst0, .add_size_div_8), ._, ._ }, |
| 34126 | .{ ._, ._, .mov, .tmp0d, .sa(.src0, .add_len), ._, ._ }, |
| 34127 | .{ ._, ._, .lea, .tmp1p, .mem(.src0), ._, ._ }, |
| 34128 | .{ ._, ._, .lea, .tmp2p, .mem(.dst0), ._, ._ }, |
| 34129 | .{ .@"0:", ._, .mov, .tmp3d, .sia(-2, .dst0, .add_elem_size_div_8), ._, ._ }, |
| 29272 | 34130 | .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ }, |
| 29273 | | .{ ._, ._, .mov, .tmp0q, .memad(.src0q, .add_size, -8), ._, ._ }, |
| 29274 | | .{ ._, ._l, .sa, .tmp0q, .uia(64, .dst0, .sub_bit_size_rem_64), ._, ._ }, |
| 29275 | | .{ ._, ._r, .sa, .tmp0q, .uia(64, .dst0, .sub_bit_size_rem_64), ._, ._ }, |
| 29276 | | .{ ._, ._, .mov, .memad(.dst0q, .add_size, -8), .tmp0q, ._, ._ }, |
| 34131 | .{ ._, ._, .mov, .tmp3q, .ua(.dst0, .add_umax), ._, ._ }, |
| 34132 | .{ ._, ._, .@"and", .tmp3q, .lea(.tmp1q), ._, ._ }, |
| 34133 | .{ ._, ._, .mov, .lea(.tmp2q), .tmp3q, ._, ._ }, |
| 34134 | .{ ._, ._, .mov, .lead(.tmp2q, 8), .si(0), ._, ._ }, |
| 34135 | .{ ._, ._, .add, .tmp1p, .sia2(8, .src0, .dst0, .add_delta_elem_size), ._, ._ }, |
| 34136 | .{ ._, ._, .lea, .tmp2p, .lead(.tmp2, 16), ._, ._ }, |
| 34137 | .{ ._, ._, .sub, .tmp0d, .si(1), ._, ._ }, |
| 34138 | .{ ._, ._a, .j, .@"0b", ._, ._, ._ }, |
| 29277 | 34139 | } }, |
| 29278 | 34140 | }, .{ |
| 29279 | 34141 | .required_features = .{ .@"64bit", null, null, null }, |
| 29280 | | .src_constraints = .{ .any_unsigned_int, .any }, |
| 29281 | | .dst_constraints = .{.{ .exact_remainder_unsigned_int = .{ .of = .xword, .is = .qword } }}, |
| 34142 | .src_constraints = .{ .any_scalar_unsigned_int, .any }, |
| 34143 | .dst_constraints = .{.{ .scalar_remainder_unsigned_int = .{ .of = .xword, .is = .qword } }}, |
| 29282 | 34144 | .patterns = &.{ |
| 29283 | 34145 | .{ .src = .{ .to_mem, .none } }, |
| 29284 | 34146 | }, |
| 29285 | 34147 | .extra_temps = .{ |
| 34148 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 29286 | 34149 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 29287 | 34150 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 29288 | 34151 | .{ .type = .u32, .kind = .{ .reg = .ecx } }, |
| ... | ... | @@ -29291,75 +34154,91 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 29291 | 34154 | .unused, |
| 29292 | 34155 | .unused, |
| 29293 | 34156 | .unused, |
| 29294 | | .unused, |
| 29295 | 34157 | }, |
| 29296 | 34158 | .dst_temps = .{.mem}, |
| 29297 | 34159 | .clobbers = .{ .eflags = true }, |
| 29298 | 34160 | .each = .{ .once = &.{ |
| 29299 | | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, |
| 29300 | | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, |
| 29301 | | .{ ._, ._, .mov, .tmp2d, .sia(-1, .dst0, .add_size_div_8), ._, ._ }, |
| 34161 | .{ ._, ._, .mov, .tmp0d, .sa(.src0, .add_len), ._, ._ }, |
| 34162 | .{ ._, ._, .lea, .tmp1p, .mem(.src0), ._, ._ }, |
| 34163 | .{ ._, ._, .lea, .tmp2p, .mem(.dst0), ._, ._ }, |
| 34164 | .{ .@"0:", ._, .mov, .tmp3d, .sia(-2, .dst0, .add_elem_size_div_8), ._, ._ }, |
| 29302 | 34165 | .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ }, |
| 29303 | | .{ ._, ._, .mov, .memad(.dst0q, .add_size, -8), .si(0), ._, ._ }, |
| 34166 | .{ ._, ._, .mov, .tmp3q, .ua(.dst0, .add_umax), ._, ._ }, |
| 34167 | .{ ._, ._, .@"and", .tmp3q, .lea(.tmp1q), ._, ._ }, |
| 34168 | .{ ._, ._, .mov, .lea(.tmp2q), .tmp3q, ._, ._ }, |
| 34169 | .{ ._, ._, .mov, .lead(.tmp2q, 8), .si(0), ._, ._ }, |
| 34170 | .{ ._, ._, .add, .tmp1p, .sia2(8, .src0, .dst0, .add_delta_elem_size), ._, ._ }, |
| 34171 | .{ ._, ._, .lea, .tmp2p, .lead(.tmp2, 16), ._, ._ }, |
| 34172 | .{ ._, ._c, .de, .tmp0d, ._, ._, ._ }, |
| 34173 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| 29304 | 34174 | } }, |
| 29305 | 34175 | }, .{ |
| 29306 | | .required_features = .{ .@"64bit", null, null, null }, |
| 29307 | | .src_constraints = .{ .any_unsigned_int, .any }, |
| 29308 | | .dst_constraints = .{.{ .remainder_unsigned_int = .{ .of = .xword, .is = .qword } }}, |
| 34176 | .required_features = .{ .@"64bit", .slow_incdec, null, null }, |
| 34177 | .src_constraints = .{ .any_scalar_unsigned_int, .any }, |
| 34178 | .dst_constraints = .{.{ .scalar_remainder_unsigned_int = .{ .of = .xword, .is = .xword } }}, |
| 29309 | 34179 | .patterns = &.{ |
| 29310 | 34180 | .{ .src = .{ .to_mem, .none } }, |
| 29311 | 34181 | }, |
| 29312 | 34182 | .extra_temps = .{ |
| 34183 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 29313 | 34184 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 29314 | 34185 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 34186 | .{ .type = .u64, .kind = .{ .reg = .rax } }, |
| 29315 | 34187 | .{ .type = .u32, .kind = .{ .reg = .ecx } }, |
| 29316 | 34188 | .unused, |
| 29317 | 34189 | .unused, |
| 29318 | 34190 | .unused, |
| 29319 | 34191 | .unused, |
| 29320 | | .unused, |
| 29321 | | .unused, |
| 29322 | 34192 | }, |
| 29323 | 34193 | .dst_temps = .{.mem}, |
| 29324 | 34194 | .clobbers = .{ .eflags = true }, |
| 29325 | 34195 | .each = .{ .once = &.{ |
| 29326 | | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, |
| 29327 | | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, |
| 29328 | | .{ ._, ._, .mov, .tmp2d, .sia(-2, .dst0, .add_size_div_8), ._, ._ }, |
| 34196 | .{ ._, ._, .mov, .tmp0d, .sa(.src0, .add_len), ._, ._ }, |
| 34197 | .{ ._, ._, .lea, .tmp1p, .mem(.src0), ._, ._ }, |
| 34198 | .{ ._, ._, .lea, .tmp2p, .mem(.dst0), ._, ._ }, |
| 34199 | .{ ._, ._, .xor, .tmp3d, .tmp3d, ._, ._ }, |
| 34200 | .{ .@"0:", ._, .mov, .tmp4d, .sia(-1, .dst0, .add_elem_size_div_8), ._, ._ }, |
| 29329 | 34201 | .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ }, |
| 29330 | | .{ ._, ._, .mov, .tmp0q, .ua(.dst0, .add_umax), ._, ._ }, |
| 29331 | | .{ ._, ._, .@"and", .tmp0q, .memad(.src0q, .add_size, -16), ._, ._ }, |
| 29332 | | .{ ._, ._, .mov, .memad(.dst0q, .add_size, -16), .tmp0q, ._, ._ }, |
| 29333 | | .{ ._, ._, .mov, .memad(.dst0q, .add_size, -8), .si(0), ._, ._ }, |
| 34202 | .{ ._, ._, .mov, .tmp4q, .ua(.dst0, .add_umax), ._, ._ }, |
| 34203 | .{ ._, ._, .@"and", .tmp4q, .lea(.tmp1q), ._, ._ }, |
| 34204 | .{ ._, ._sq, .sto, ._, ._, ._, ._ }, |
| 34205 | .{ ._, ._, .add, .tmp1p, .sia2(8, .src0, .dst0, .add_delta_elem_size), ._, ._ }, |
| 34206 | .{ ._, ._, .sub, .tmp0d, .si(1), ._, ._ }, |
| 34207 | .{ ._, ._a, .j, .@"0b", ._, ._, ._ }, |
| 29334 | 34208 | } }, |
| 29335 | 34209 | }, .{ |
| 29336 | 34210 | .required_features = .{ .@"64bit", null, null, null }, |
| 29337 | | .src_constraints = .{ .any_unsigned_int, .any }, |
| 29338 | | .dst_constraints = .{.{ .remainder_unsigned_int = .{ .of = .xword, .is = .xword } }}, |
| 34211 | .src_constraints = .{ .any_scalar_unsigned_int, .any }, |
| 34212 | .dst_constraints = .{.{ .scalar_remainder_unsigned_int = .{ .of = .xword, .is = .xword } }}, |
| 29339 | 34213 | .patterns = &.{ |
| 29340 | 34214 | .{ .src = .{ .to_mem, .none } }, |
| 29341 | 34215 | }, |
| 29342 | 34216 | .extra_temps = .{ |
| 34217 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 29343 | 34218 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 29344 | 34219 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 34220 | .{ .type = .u64, .kind = .{ .reg = .rax } }, |
| 29345 | 34221 | .{ .type = .u32, .kind = .{ .reg = .ecx } }, |
| 29346 | 34222 | .unused, |
| 29347 | 34223 | .unused, |
| 29348 | 34224 | .unused, |
| 29349 | 34225 | .unused, |
| 29350 | | .unused, |
| 29351 | | .unused, |
| 29352 | 34226 | }, |
| 29353 | 34227 | .dst_temps = .{.mem}, |
| 29354 | 34228 | .clobbers = .{ .eflags = true }, |
| 29355 | 34229 | .each = .{ .once = &.{ |
| 29356 | | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, |
| 29357 | | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, |
| 29358 | | .{ ._, ._, .mov, .tmp2d, .sia(-1, .dst0, .add_size_div_8), ._, ._ }, |
| 34230 | .{ ._, ._, .mov, .tmp0d, .sa(.src0, .add_len), ._, ._ }, |
| 34231 | .{ ._, ._, .lea, .tmp1p, .mem(.src0), ._, ._ }, |
| 34232 | .{ ._, ._, .lea, .tmp2p, .mem(.dst0), ._, ._ }, |
| 34233 | .{ ._, ._, .xor, .tmp3d, .tmp3d, ._, ._ }, |
| 34234 | .{ .@"0:", ._, .mov, .tmp4d, .sia(-1, .dst0, .add_elem_size_div_8), ._, ._ }, |
| 29359 | 34235 | .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ }, |
| 29360 | | .{ ._, ._, .mov, .tmp0q, .ua(.dst0, .add_umax), ._, ._ }, |
| 29361 | | .{ ._, ._, .@"and", .tmp0q, .memad(.src0q, .add_size, -8), ._, ._ }, |
| 29362 | | .{ ._, ._, .mov, .memad(.dst0q, .add_size, -8), .tmp0q, ._, ._ }, |
| 34236 | .{ ._, ._, .mov, .tmp4q, .ua(.dst0, .add_umax), ._, ._ }, |
| 34237 | .{ ._, ._, .@"and", .tmp4q, .lea(.tmp1q), ._, ._ }, |
| 34238 | .{ ._, ._sq, .sto, ._, ._, ._, ._ }, |
| 34239 | .{ ._, ._, .add, .tmp1p, .sia2(8, .src0, .dst0, .add_delta_elem_size), ._, ._ }, |
| 34240 | .{ ._, ._c, .de, .tmp0d, ._, ._, ._ }, |
| 34241 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| 29363 | 34242 | } }, |
| 29364 | 34243 | } }) catch |err| switch (err) { |
| 29365 | 34244 | error.SelectFailed => return cg.fail("failed to select {s} {} {} {}", .{ |
| ... | ... | @@ -50265,7 +55144,15 @@ const Select = struct { |
| 50265 | 55144 | multiple_scalar_int: OfIsSizes, |
| 50266 | 55145 | multiple_scalar_signed_int: OfIsSizes, |
| 50267 | 55146 | multiple_scalar_unsigned_int: OfIsSizes, |
| 55147 | multiple_scalar_exact_int: struct { of: Memory.Size, is: u16 }, |
| 55148 | multiple_scalar_exact_signed_int: struct { of: Memory.Size, is: u16 }, |
| 55149 | multiple_scalar_exact_unsigned_int: struct { of: Memory.Size, is: u16 }, |
| 50268 | 55150 | scalar_remainder_int: OfIsSizes, |
| 55151 | scalar_remainder_signed_int: OfIsSizes, |
| 55152 | scalar_remainder_unsigned_int: OfIsSizes, |
| 55153 | scalar_exact_remainder_int: OfIsSizes, |
| 55154 | scalar_exact_remainder_signed_int: OfIsSizes, |
| 55155 | scalar_exact_remainder_unsigned_int: OfIsSizes, |
| 50269 | 55156 | float: Memory.Size, |
| 50270 | 55157 | scalar_any_float: Memory.Size, |
| 50271 | 55158 | scalar_float: OfIsSizes, |
| ... | ... | @@ -50352,10 +55239,30 @@ const Select = struct { |
| 50352 | 55239 | .multiple_scalar_unsigned_int => |of_is| ty.abiSize(zcu) % @divExact(of_is.of.bitSize(cg.target), 8) == 0 and |
| 50353 | 55240 | if (cg.intInfo(ty.scalarType(zcu))) |int_info| int_info.signedness == .unsigned and |
| 50354 | 55241 | of_is.is.bitSize(cg.target) >= int_info.bits else false, |
| 55242 | .multiple_scalar_exact_int => |of_is| ty.abiSize(zcu) % @divExact(of_is.of.bitSize(cg.target), 8) == 0 and |
| 55243 | if (cg.intInfo(ty.scalarType(zcu))) |int_info| of_is.is == int_info.bits else false, |
| 55244 | .multiple_scalar_exact_signed_int => |of_is| ty.abiSize(zcu) % @divExact(of_is.of.bitSize(cg.target), 8) == 0 and |
| 55245 | if (cg.intInfo(ty.scalarType(zcu))) |int_info| int_info.signedness == .signed and |
| 55246 | of_is.is == int_info.bits else false, |
| 55247 | .multiple_scalar_exact_unsigned_int => |of_is| ty.abiSize(zcu) % @divExact(of_is.of.bitSize(cg.target), 8) == 0 and |
| 55248 | if (cg.intInfo(ty.scalarType(zcu))) |int_info| int_info.signedness == .unsigned and |
| 55249 | of_is.is == int_info.bits else false, |
| 50355 | 55250 | .scalar_remainder_int => |of_is| if (cg.intInfo(ty.scalarType(zcu))) |int_info| |
| 50356 | 55251 | of_is.is.bitSize(cg.target) >= (int_info.bits - 1) % of_is.of.bitSize(cg.target) + 1 |
| 50357 | 55252 | else |
| 50358 | 55253 | false, |
| 55254 | .scalar_remainder_signed_int => |of_is| if (cg.intInfo(ty.scalarType(zcu))) |int_info| int_info.signedness == .signed and |
| 55255 | of_is.is.bitSize(cg.target) >= (int_info.bits - 1) % of_is.of.bitSize(cg.target) + 1 else false, |
| 55256 | .scalar_remainder_unsigned_int => |of_is| if (cg.intInfo(ty.scalarType(zcu))) |int_info| int_info.signedness == .unsigned and |
| 55257 | of_is.is.bitSize(cg.target) >= (int_info.bits - 1) % of_is.of.bitSize(cg.target) + 1 else false, |
| 55258 | .scalar_exact_remainder_int => |of_is| if (cg.intInfo(ty.scalarType(zcu))) |int_info| |
| 55259 | of_is.is.bitSize(cg.target) == (int_info.bits - 1) % of_is.of.bitSize(cg.target) + 1 |
| 55260 | else |
| 55261 | false, |
| 55262 | .scalar_exact_remainder_signed_int => |of_is| if (cg.intInfo(ty.scalarType(zcu))) |int_info| int_info.signedness == .signed and |
| 55263 | of_is.is.bitSize(cg.target) == (int_info.bits - 1) % of_is.of.bitSize(cg.target) + 1 else false, |
| 55264 | .scalar_exact_remainder_unsigned_int => |of_is| if (cg.intInfo(ty.scalarType(zcu))) |int_info| int_info.signedness == .unsigned and |
| 55265 | of_is.is.bitSize(cg.target) == (int_info.bits - 1) % of_is.of.bitSize(cg.target) + 1 else false, |
| 50359 | 55266 | .float => |size| if (cg.floatBits(ty)) |float_bits| size.bitSize(cg.target) == float_bits else false, |
| 50360 | 55267 | .scalar_any_float => |size| @divExact(size.bitSize(cg.target), 8) >= ty.abiSize(zcu) and |
| 50361 | 55268 | cg.floatBits(ty.scalarType(zcu)) != null, |
| ... | ... | @@ -50629,7 +55536,11 @@ const Select = struct { |
| 50629 | 55536 | frame: FrameIndex, |
| 50630 | 55537 | symbol: *const struct { lib: ?[]const u8 = null, name: []const u8 }, |
| 50631 | 55538 | |
| 50632 | | const ConstInfo = struct { ref: Select.Operand.Ref, vectorize_to: ?Memory.Size = null }; |
| 55539 | const ConstInfo = struct { |
| 55540 | ref: Select.Operand.Ref, |
| 55541 | to_signedness: ?std.builtin.Signedness = null, |
| 55542 | vectorize_to: ?Memory.Size = null, |
| 55543 | }; |
| 50633 | 55544 | |
| 50634 | 55545 | fn finish(kind: Kind, temp: Temp, s: *const Select) void { |
| 50635 | 55546 | switch (kind) { |
| ... | ... | @@ -50704,7 +55615,8 @@ const Select = struct { |
| 50704 | 55615 | .signedness = .signed, |
| 50705 | 55616 | .bits = cg.floatBits(scalar_ty).?, |
| 50706 | 55617 | }; |
| 50707 | | const scalar_int_ty = try pt.intType(scalar_info.signedness, scalar_info.bits); |
| 55618 | const scalar_signedness = const_info.to_signedness orelse scalar_info.signedness; |
| 55619 | const scalar_int_ty = try pt.intType(scalar_signedness, scalar_info.bits); |
| 50708 | 55620 | if (scalar_info.bits <= 64) { |
| 50709 | 55621 | const int_val: i64 = switch (spec.kind) { |
| 50710 | 55622 | else => unreachable, |
| ... | ... | @@ -50714,7 +55626,7 @@ const Select = struct { |
| 50714 | 55626 | .umax_mem => -1, |
| 50715 | 55627 | }; |
| 50716 | 55628 | const shift: u6 = @intCast(64 - scalar_info.bits); |
| 50717 | | break :res_scalar .{ scalar_int_ty, switch (scalar_info.signedness) { |
| 55629 | break :res_scalar .{ scalar_int_ty, switch (scalar_signedness) { |
| 50718 | 55630 | .signed => try pt.intValue_i64(scalar_int_ty, int_val >> shift), |
| 50719 | 55631 | .unsigned => try pt.intValue_u64(scalar_int_ty, @as(u64, @bitCast(int_val)) >> shift), |
| 50720 | 55632 | } }; |
| ... | ... | @@ -50730,7 +55642,7 @@ const Select = struct { |
| 50730 | 55642 | .smin_mem, .smax_mem => .signed, |
| 50731 | 55643 | .umin_mem, .umax_mem => .unsigned, |
| 50732 | 55644 | }, scalar_info.bits); |
| 50733 | | try big_int.truncate(&big_int, scalar_info.signedness, scalar_info.bits); |
| 55645 | try big_int.truncate(&big_int, scalar_signedness, scalar_info.bits); |
| 50734 | 55646 | break :res_scalar .{ scalar_int_ty, try pt.intValue_big(scalar_int_ty, big_int.toConst()) }; |
| 50735 | 55647 | }, |
| 50736 | 55648 | }; |
| ... | ... | @@ -50832,7 +55744,8 @@ const Select = struct { |
| 50832 | 55744 | const sub_unaligned_size: Adjust = .{ .sign = .neg, .lhs = .unaligned_size, .op = .mul, .rhs = .@"1" }; |
| 50833 | 55745 | const add_2_bit_size: Adjust = .{ .sign = .pos, .lhs = .bit_size, .op = .mul, .rhs = .@"2" }; |
| 50834 | 55746 | const add_bit_size: Adjust = .{ .sign = .pos, .lhs = .bit_size, .op = .mul, .rhs = .@"1" }; |
| 50835 | | const sub_bit_size_rem_64: Adjust = .{ .sign = .pos, .lhs = .bit_size, .op = .rem_8_mul, .rhs = .@"8" }; |
| 55747 | const add_bit_size_rem_64: Adjust = .{ .sign = .pos, .lhs = .bit_size, .op = .rem_8_mul, .rhs = .@"8" }; |
| 55748 | const sub_bit_size_rem_64: Adjust = .{ .sign = .neg, .lhs = .bit_size, .op = .rem_8_mul, .rhs = .@"8" }; |
| 50836 | 55749 | const sub_bit_size: Adjust = .{ .sign = .neg, .lhs = .bit_size, .op = .mul, .rhs = .@"1" }; |
| 50837 | 55750 | const add_src0_bit_size: Adjust = .{ .sign = .pos, .lhs = .src0_bit_size, .op = .mul, .rhs = .@"1" }; |
| 50838 | 55751 | const sub_src0_bit_size: Adjust = .{ .sign = .neg, .lhs = .src0_bit_size, .op = .mul, .rhs = .@"1" }; |
| ... | ... | @@ -51163,6 +56076,9 @@ const Select = struct { |
| 51163 | 56076 | fn sia(imm: i32, base: Ref.Sized, adjust: Adjust) Select.Operand { |
| 51164 | 56077 | return .{ .flags = .{ .tag = .simm, .adjust = adjust }, .base = base, .imm = imm }; |
| 51165 | 56078 | } |
| 56079 | fn sia2(imm: i32, base: Ref.Sized, index: Ref, adjust: Adjust) Select.Operand { |
| 56080 | return .{ .flags = .{ .tag = .simm, .adjust = adjust }, .base = base, .index = .{ .ref = index }, .imm = imm }; |
| 56081 | } |
| 51166 | 56082 | fn ui(imm: u32) Select.Operand { |
| 51167 | 56083 | return .{ .flags = .{ .tag = .uimm }, .imm = @bitCast(imm) }; |
| 51168 | 56084 | } |