[AVX512] Extended avx512_binop_rm to BW/VL subsets.

Added encoding tests.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@219685 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Robert Khasanov 2014-10-14 14:36:19 +00:00
parent 5051f6033d
commit 33a95f24bb
3 changed files with 1528 additions and 66 deletions

View File

@ -2517,7 +2517,7 @@ multiclass avx512_binop_rm<bits<8> opc, string OpcodeStr, SDNode OpNode,
itins.rr, IsCommutable>,
AVX512BIBase, EVEX_4V;
let mayLoad = 1 in {
let mayLoad = 1 in
defm rm : AVX512_maskable<opc, MRMSrcMem, _, (outs _.RC:$dst),
(ins _.RC:$src1, _.MemOp:$src2), OpcodeStr##_.Suffix,
"$src2, $src1", "$src1, $src2",
@ -2525,6 +2525,13 @@ multiclass avx512_binop_rm<bits<8> opc, string OpcodeStr, SDNode OpNode,
(bitconvert (_.LdFrag addr:$src2)))),
itins.rm>,
AVX512BIBase, EVEX_4V;
}
multiclass avx512_binop_rmb<bits<8> opc, string OpcodeStr, SDNode OpNode,
X86VectorVTInfo _, OpndItins itins,
bit IsCommutable = 0> :
avx512_binop_rm<opc, OpcodeStr, OpNode, _, itins, IsCommutable> {
let mayLoad = 1 in
defm rmb : AVX512_maskable<opc, MRMSrcMem, _, (outs _.RC:$dst),
(ins _.RC:$src1, _.ScalarMemOp:$src2), OpcodeStr##_.Suffix,
"${src2}"##_.BroadcastStr##", $src1",
@ -2534,7 +2541,6 @@ multiclass avx512_binop_rm<bits<8> opc, string OpcodeStr, SDNode OpNode,
(_.ScalarLdFrag addr:$src2)))),
itins.rm>,
AVX512BIBase, EVEX_4V, EVEX_B;
}
}
multiclass avx512_binop_rm_vl<bits<8> opc, string OpcodeStr, SDNode OpNode,
@ -2552,6 +2558,80 @@ multiclass avx512_binop_rm_vl<bits<8> opc, string OpcodeStr, SDNode OpNode,
}
}
multiclass avx512_binop_rmb_vl<bits<8> opc, string OpcodeStr, SDNode OpNode,
AVX512VLVectorVTInfo VTInfo, OpndItins itins,
Predicate prd, bit IsCommutable = 0> {
let Predicates = [prd] in
defm Z : avx512_binop_rmb<opc, OpcodeStr, OpNode, VTInfo.info512, itins,
IsCommutable>, EVEX_V512;
let Predicates = [prd, HasVLX] in {
defm Z256 : avx512_binop_rmb<opc, OpcodeStr, OpNode, VTInfo.info256, itins,
IsCommutable>, EVEX_V256;
defm Z128 : avx512_binop_rmb<opc, OpcodeStr, OpNode, VTInfo.info128, itins,
IsCommutable>, EVEX_V128;
}
}
multiclass avx512_binop_rm_vl_q<bits<8> opc, string OpcodeStr, SDNode OpNode,
OpndItins itins, Predicate prd,
bit IsCommutable = 0> {
defm NAME : avx512_binop_rmb_vl<opc, OpcodeStr, OpNode, avx512vl_i64_info,
itins, prd, IsCommutable>,
VEX_W, EVEX_CD8<64, CD8VF>;
}
multiclass avx512_binop_rm_vl_d<bits<8> opc, string OpcodeStr, SDNode OpNode,
OpndItins itins, Predicate prd,
bit IsCommutable = 0> {
defm NAME : avx512_binop_rmb_vl<opc, OpcodeStr, OpNode, avx512vl_i32_info,
itins, prd, IsCommutable>, EVEX_CD8<32, CD8VF>;
}
multiclass avx512_binop_rm_vl_w<bits<8> opc, string OpcodeStr, SDNode OpNode,
OpndItins itins, Predicate prd,
bit IsCommutable = 0> {
defm NAME : avx512_binop_rm_vl<opc, OpcodeStr, OpNode, avx512vl_i16_info,
itins, prd, IsCommutable>, EVEX_CD8<16, CD8VF>;
}
multiclass avx512_binop_rm_vl_b<bits<8> opc, string OpcodeStr, SDNode OpNode,
OpndItins itins, Predicate prd,
bit IsCommutable = 0> {
defm NAME : avx512_binop_rm_vl<opc, OpcodeStr, OpNode, avx512vl_i8_info,
itins, prd, IsCommutable>, EVEX_CD8<8, CD8VF>;
}
multiclass avx512_binop_rm_vl_dq<bits<8> opc_d, bits<8> opc_q, string OpcodeStr,
SDNode OpNode, OpndItins itins, Predicate prd,
bit IsCommutable = 0> {
defm Q : avx512_binop_rm_vl_q<opc_q, OpcodeStr, OpNode, itins, prd,
IsCommutable>;
defm D : avx512_binop_rm_vl_d<opc_d, OpcodeStr, OpNode, itins, prd,
IsCommutable>;
}
multiclass avx512_binop_rm_vl_bw<bits<8> opc_b, bits<8> opc_w, string OpcodeStr,
SDNode OpNode, OpndItins itins, Predicate prd,
bit IsCommutable = 0> {
defm W : avx512_binop_rm_vl_w<opc_w, OpcodeStr, OpNode, itins, prd,
IsCommutable>;
defm B : avx512_binop_rm_vl_b<opc_b, OpcodeStr, OpNode, itins, prd,
IsCommutable>;
}
multiclass avx512_binop_rm_vl_all<bits<8> opc_b, bits<8> opc_w,
bits<8> opc_d, bits<8> opc_q,
string OpcodeStr, SDNode OpNode,
OpndItins itins, bit IsCommutable = 0> {
defm NAME : avx512_binop_rm_vl_dq<opc_d, opc_q, OpcodeStr, OpNode,
itins, HasAVX512, IsCommutable>,
avx512_binop_rm_vl_bw<opc_b, opc_w, OpcodeStr, OpNode,
itins, HasBWI, IsCommutable>;
}
multiclass avx512_binop_rm2<bits<8> opc, string OpcodeStr, ValueType DstVT,
ValueType SrcVT, RegisterClass KRC, RegisterClass RC,
PatFrag memop_frag, X86MemOperand x86memop,
@ -2609,20 +2689,14 @@ multiclass avx512_binop_rm2<bits<8> opc, string OpcodeStr, ValueType DstVT,
}
}
defm VPADDD : avx512_binop_rm_vl<0xFE, "vpadd", add, avx512vl_i32_info,
SSE_INTALU_ITINS_P, HasAVX512, 1>, EVEX_CD8<32, CD8VF>;
defm VPSUBD : avx512_binop_rm_vl<0xFA, "vpsub", sub, avx512vl_i32_info,
SSE_INTALU_ITINS_P, HasAVX512, 0>, EVEX_CD8<32, CD8VF>;
defm VPMULLD : avx512_binop_rm_vl<0x40, "vpmull", mul, avx512vl_i32_info,
SSE_INTALU_ITINS_P, HasAVX512, 1>, T8PD, EVEX_CD8<32, CD8VF>;
defm VPADDQ : avx512_binop_rm_vl<0xD4, "vpadd", add, avx512vl_i64_info,
SSE_INTALU_ITINS_P, HasAVX512, 1>, EVEX_CD8<64, CD8VF>, VEX_W;
defm VPSUBQ : avx512_binop_rm_vl<0xFB, "vpsub", sub, avx512vl_i64_info,
SSE_INTALU_ITINS_P, HasAVX512, 0>, VEX_W, EVEX_CD8<64, CD8VF>;
defm VPADD : avx512_binop_rm_vl_all<0xFC, 0xFD, 0xFE, 0xD4, "vpadd", add,
SSE_INTALU_ITINS_P, 1>;
defm VPSUB : avx512_binop_rm_vl_all<0xF8, 0xF9, 0xFA, 0xFB, "vpsub", sub,
SSE_INTALU_ITINS_P, 0>;
defm VPMULLD : avx512_binop_rm_vl_d<0x40, "vpmull", mul,
SSE_INTALU_ITINS_P, HasAVX512, 1>, T8PD;
defm VPMULLW : avx512_binop_rm_vl_w<0xD5, "vpmull", mul,
SSE_INTALU_ITINS_P, HasBWI, 1>;
defm VPMULDQZ : avx512_binop_rm2<0x28, "vpmuldq", v8i64, v16i32, VK8WM, VR512,
memopv8i64, i512mem, loadi64, i64mem, "{1to8}",
@ -2643,33 +2717,33 @@ def : Pat<(v8i64 (int_x86_avx512_mask_pmul_dq_512 (v16i32 VR512:$src1),
(v16i32 VR512:$src2), (bc_v8i64 (v16i32 immAllZerosV)), (i8 -1))),
(VPMULDQZrr VR512:$src1, VR512:$src2)>;
defm VPMAXUD : avx512_binop_rm_vl<0x3F, "vpmaxu", X86umax, avx512vl_i32_info,
SSE_INTALU_ITINS_P, HasAVX512, 1>,
T8PD, EVEX_CD8<32, CD8VF>;
defm VPMAXUQ : avx512_binop_rm_vl<0x3F, "vpmaxu", X86umax, avx512vl_i64_info,
SSE_INTALU_ITINS_P, HasAVX512, 0>,
T8PD, VEX_W, EVEX_CD8<64, CD8VF>;
defm VPMAXSB : avx512_binop_rm_vl_b<0x3C, "vpmaxs", X86smax,
SSE_INTALU_ITINS_P, HasBWI, 1>, T8PD;
defm VPMAXSW : avx512_binop_rm_vl_w<0xEE, "vpmaxs", X86smax,
SSE_INTALU_ITINS_P, HasBWI, 1>;
defm VPMAXS : avx512_binop_rm_vl_dq<0x3D, 0x3D, "vpmaxs", X86smax,
SSE_INTALU_ITINS_P, HasAVX512, 1>, T8PD;
defm VPMAXSD : avx512_binop_rm_vl<0x3D, "vpmaxs", X86smax, avx512vl_i32_info,
SSE_INTALU_ITINS_P, HasAVX512, 1>,
T8PD, EVEX_CD8<32, CD8VF>;
defm VPMAXSQ : avx512_binop_rm_vl<0x3D, "vpmaxs", X86smax, avx512vl_i64_info,
SSE_INTALU_ITINS_P, HasAVX512, 0>,
T8PD, VEX_W, EVEX_CD8<64, CD8VF>;
defm VPMAXUB : avx512_binop_rm_vl_b<0xDE, "vpmaxu", X86umax,
SSE_INTALU_ITINS_P, HasBWI, 1>;
defm VPMAXUW : avx512_binop_rm_vl_w<0x3E, "vpmaxu", X86umax,
SSE_INTALU_ITINS_P, HasBWI, 1>, T8PD;
defm VPMAXU : avx512_binop_rm_vl_dq<0x3F, 0x3F, "vpmaxu", X86umax,
SSE_INTALU_ITINS_P, HasAVX512, 1>, T8PD;
defm VPMINUD : avx512_binop_rm_vl<0x3B, "vpminu", X86umin, avx512vl_i32_info,
SSE_INTALU_ITINS_P, HasAVX512, 1>,
T8PD, EVEX_CD8<32, CD8VF>;
defm VPMINUQ : avx512_binop_rm_vl<0x3B, "vpminu", X86umin, avx512vl_i64_info,
SSE_INTALU_ITINS_P, HasAVX512, 0>,
T8PD, VEX_W, EVEX_CD8<64, CD8VF>;
defm VPMINSB : avx512_binop_rm_vl_b<0x38, "vpmins", X86smin,
SSE_INTALU_ITINS_P, HasBWI, 1>, T8PD;
defm VPMINSW : avx512_binop_rm_vl_w<0xEA, "vpmins", X86smin,
SSE_INTALU_ITINS_P, HasBWI, 1>;
defm VPMINS : avx512_binop_rm_vl_dq<0x39, 0x39, "vpmins", X86smin,
SSE_INTALU_ITINS_P, HasAVX512, 1>, T8PD;
defm VPMINSD : avx512_binop_rm_vl<0x39, "vpmins", X86smin, avx512vl_i32_info,
SSE_INTALU_ITINS_P, HasAVX512, 1>,
T8PD, EVEX_CD8<32, CD8VF>;
defm VPMINSQ : avx512_binop_rm_vl<0x39, "vpmins", X86smin, avx512vl_i64_info,
SSE_INTALU_ITINS_P, HasAVX512, 0>,
T8PD, VEX_W, EVEX_CD8<64, CD8VF>;
defm VPMINUB : avx512_binop_rm_vl_b<0xDA, "vpminu", X86umin,
SSE_INTALU_ITINS_P, HasBWI, 1>;
defm VPMINUW : avx512_binop_rm_vl_w<0x3A, "vpminu", X86umin,
SSE_INTALU_ITINS_P, HasBWI, 1>, T8PD;
defm VPMINU : avx512_binop_rm_vl_dq<0x3B, 0x3B, "vpminu", X86umin,
SSE_INTALU_ITINS_P, HasAVX512, 1>, T8PD;
def : Pat <(v16i32 (int_x86_avx512_mask_pmaxs_d_512 (v16i32 VR512:$src1),
(v16i32 VR512:$src2), (v16i32 immAllZerosV), (i16 -1))),
@ -2800,30 +2874,14 @@ def : Pat<(v8i64 (X86VPermilpi VR512:$src1, (i8 imm:$imm))),
// AVX-512 Logical Instructions
//===----------------------------------------------------------------------===//
defm VPANDD : avx512_binop_rm_vl<0xDB, "vpand", and, avx512vl_i32_info,
SSE_BIT_ITINS_P, HasAVX512, 1>,
EVEX_CD8<32, CD8VF>;
defm VPANDQ : avx512_binop_rm_vl<0xDB, "vpand", and, avx512vl_i64_info,
SSE_BIT_ITINS_P, HasAVX512, 1>,
VEX_W, EVEX_CD8<64, CD8VF>;
defm VPORD : avx512_binop_rm_vl<0xEB, "vpor", or, avx512vl_i32_info,
SSE_BIT_ITINS_P, HasAVX512, 1>,
EVEX_CD8<32, CD8VF>;
defm VPORQ : avx512_binop_rm_vl<0xEB, "vpor", or, avx512vl_i64_info,
SSE_BIT_ITINS_P, HasAVX512, 1>,
VEX_W, EVEX_CD8<64, CD8VF>;
defm VPXORD : avx512_binop_rm_vl<0xEF, "vpxor", xor, avx512vl_i32_info,
SSE_BIT_ITINS_P, HasAVX512, 1>,
EVEX_CD8<32, CD8VF>;
defm VPXORQ : avx512_binop_rm_vl<0xEF, "vpxor", xor, avx512vl_i64_info,
SSE_BIT_ITINS_P, HasAVX512, 1>,
VEX_W, EVEX_CD8<64, CD8VF>;
defm VPANDND : avx512_binop_rm_vl<0xDF, "vpandn", X86andnp, avx512vl_i32_info,
SSE_BIT_ITINS_P, HasAVX512, 0>,
EVEX_CD8<32, CD8VF>;
defm VPANDNQ : avx512_binop_rm_vl<0xDF, "vpandn", X86andnp, avx512vl_i64_info,
SSE_BIT_ITINS_P, HasAVX512, 0>,
VEX_W, EVEX_CD8<64, CD8VF>;
defm VPAND : avx512_binop_rm_vl_dq<0xDB, 0xDB, "vpand", and,
SSE_INTALU_ITINS_P, HasAVX512, 1>;
defm VPOR : avx512_binop_rm_vl_dq<0xEB, 0xEB, "vpor", or,
SSE_INTALU_ITINS_P, HasAVX512, 1>;
defm VPXOR : avx512_binop_rm_vl_dq<0xEF, 0xEF, "vpxor", xor,
SSE_INTALU_ITINS_P, HasAVX512, 1>;
defm VPANDN : avx512_binop_rm_vl_dq<0xDF, 0xDF, "vpandn", X86andnp,
SSE_INTALU_ITINS_P, HasAVX512, 1>;
//===----------------------------------------------------------------------===//
// AVX-512 FP arithmetic

View File

@ -1,4 +1,76 @@
// RUN: llvm-mc -triple x86_64-unknown-unknown -mcpu=skx --show-encoding %s | FileCheck %s
// RUN: llvm-mc -triple x86_64-unknown-unknown -mcpu=knl -mattr=+avx512bw --show-encoding %s | FileCheck %s
// CHECK: vpaddb %zmm23, %zmm24, %zmm19
// CHECK: encoding: [0x62,0xa1,0x3d,0x40,0xfc,0xdf]
vpaddb %zmm23, %zmm24, %zmm19
// CHECK: vpaddb %zmm23, %zmm24, %zmm19 {%k3}
// CHECK: encoding: [0x62,0xa1,0x3d,0x43,0xfc,0xdf]
vpaddb %zmm23, %zmm24, %zmm19 {%k3}
// CHECK: vpaddb %zmm23, %zmm24, %zmm19 {%k3} {z}
// CHECK: encoding: [0x62,0xa1,0x3d,0xc3,0xfc,0xdf]
vpaddb %zmm23, %zmm24, %zmm19 {%k3} {z}
// CHECK: vpaddb (%rcx), %zmm24, %zmm19
// CHECK: encoding: [0x62,0xe1,0x3d,0x40,0xfc,0x19]
vpaddb (%rcx), %zmm24, %zmm19
// CHECK: vpaddb 291(%rax,%r14,8), %zmm24, %zmm19
// CHECK: encoding: [0x62,0xa1,0x3d,0x40,0xfc,0x9c,0xf0,0x23,0x01,0x00,0x00]
vpaddb 291(%rax,%r14,8), %zmm24, %zmm19
// CHECK: vpaddb 8128(%rdx), %zmm24, %zmm19
// CHECK: encoding: [0x62,0xe1,0x3d,0x40,0xfc,0x5a,0x7f]
vpaddb 8128(%rdx), %zmm24, %zmm19
// CHECK: vpaddb 8192(%rdx), %zmm24, %zmm19
// CHECK: encoding: [0x62,0xe1,0x3d,0x40,0xfc,0x9a,0x00,0x20,0x00,0x00]
vpaddb 8192(%rdx), %zmm24, %zmm19
// CHECK: vpaddb -8192(%rdx), %zmm24, %zmm19
// CHECK: encoding: [0x62,0xe1,0x3d,0x40,0xfc,0x5a,0x80]
vpaddb -8192(%rdx), %zmm24, %zmm19
// CHECK: vpaddb -8256(%rdx), %zmm24, %zmm19
// CHECK: encoding: [0x62,0xe1,0x3d,0x40,0xfc,0x9a,0xc0,0xdf,0xff,0xff]
vpaddb -8256(%rdx), %zmm24, %zmm19
// CHECK: vpaddw %zmm19, %zmm24, %zmm17
// CHECK: encoding: [0x62,0xa1,0x3d,0x40,0xfd,0xcb]
vpaddw %zmm19, %zmm24, %zmm17
// CHECK: vpaddw %zmm19, %zmm24, %zmm17 {%k3}
// CHECK: encoding: [0x62,0xa1,0x3d,0x43,0xfd,0xcb]
vpaddw %zmm19, %zmm24, %zmm17 {%k3}
// CHECK: vpaddw %zmm19, %zmm24, %zmm17 {%k3} {z}
// CHECK: encoding: [0x62,0xa1,0x3d,0xc3,0xfd,0xcb]
vpaddw %zmm19, %zmm24, %zmm17 {%k3} {z}
// CHECK: vpaddw (%rcx), %zmm24, %zmm17
// CHECK: encoding: [0x62,0xe1,0x3d,0x40,0xfd,0x09]
vpaddw (%rcx), %zmm24, %zmm17
// CHECK: vpaddw 291(%rax,%r14,8), %zmm24, %zmm17
// CHECK: encoding: [0x62,0xa1,0x3d,0x40,0xfd,0x8c,0xf0,0x23,0x01,0x00,0x00]
vpaddw 291(%rax,%r14,8), %zmm24, %zmm17
// CHECK: vpaddw 8128(%rdx), %zmm24, %zmm17
// CHECK: encoding: [0x62,0xe1,0x3d,0x40,0xfd,0x4a,0x7f]
vpaddw 8128(%rdx), %zmm24, %zmm17
// CHECK: vpaddw 8192(%rdx), %zmm24, %zmm17
// CHECK: encoding: [0x62,0xe1,0x3d,0x40,0xfd,0x8a,0x00,0x20,0x00,0x00]
vpaddw 8192(%rdx), %zmm24, %zmm17
// CHECK: vpaddw -8192(%rdx), %zmm24, %zmm17
// CHECK: encoding: [0x62,0xe1,0x3d,0x40,0xfd,0x4a,0x80]
vpaddw -8192(%rdx), %zmm24, %zmm17
// CHECK: vpaddw -8256(%rdx), %zmm24, %zmm17
// CHECK: encoding: [0x62,0xe1,0x3d,0x40,0xfd,0x8a,0xc0,0xdf,0xff,0xff]
vpaddw -8256(%rdx), %zmm24, %zmm17
// CHECK: vpcmpeqb %zmm26, %zmm26, %k4
// CHECK: encoding: [0x62,0x91,0x2d,0x40,0x74,0xe2]
@ -128,6 +200,402 @@
// CHECK: encoding: [0x62,0xf1,0x45,0x40,0x65,0xaa,0xc0,0xdf,0xff,0xff]
vpcmpgtw -8256(%rdx), %zmm23, %k5
// CHECK: vpmaxsb %zmm26, %zmm29, %zmm23
// CHECK: encoding: [0x62,0x82,0x15,0x40,0x3c,0xfa]
vpmaxsb %zmm26, %zmm29, %zmm23
// CHECK: vpmaxsb %zmm26, %zmm29, %zmm23 {%k4}
// CHECK: encoding: [0x62,0x82,0x15,0x44,0x3c,0xfa]
vpmaxsb %zmm26, %zmm29, %zmm23 {%k4}
// CHECK: vpmaxsb %zmm26, %zmm29, %zmm23 {%k4} {z}
// CHECK: encoding: [0x62,0x82,0x15,0xc4,0x3c,0xfa]
vpmaxsb %zmm26, %zmm29, %zmm23 {%k4} {z}
// CHECK: vpmaxsb (%rcx), %zmm29, %zmm23
// CHECK: encoding: [0x62,0xe2,0x15,0x40,0x3c,0x39]
vpmaxsb (%rcx), %zmm29, %zmm23
// CHECK: vpmaxsb 291(%rax,%r14,8), %zmm29, %zmm23
// CHECK: encoding: [0x62,0xa2,0x15,0x40,0x3c,0xbc,0xf0,0x23,0x01,0x00,0x00]
vpmaxsb 291(%rax,%r14,8), %zmm29, %zmm23
// CHECK: vpmaxsb 8128(%rdx), %zmm29, %zmm23
// CHECK: encoding: [0x62,0xe2,0x15,0x40,0x3c,0x7a,0x7f]
vpmaxsb 8128(%rdx), %zmm29, %zmm23
// CHECK: vpmaxsb 8192(%rdx), %zmm29, %zmm23
// CHECK: encoding: [0x62,0xe2,0x15,0x40,0x3c,0xba,0x00,0x20,0x00,0x00]
vpmaxsb 8192(%rdx), %zmm29, %zmm23
// CHECK: vpmaxsb -8192(%rdx), %zmm29, %zmm23
// CHECK: encoding: [0x62,0xe2,0x15,0x40,0x3c,0x7a,0x80]
vpmaxsb -8192(%rdx), %zmm29, %zmm23
// CHECK: vpmaxsb -8256(%rdx), %zmm29, %zmm23
// CHECK: encoding: [0x62,0xe2,0x15,0x40,0x3c,0xba,0xc0,0xdf,0xff,0xff]
vpmaxsb -8256(%rdx), %zmm29, %zmm23
// CHECK: vpmaxsw %zmm25, %zmm28, %zmm25
// CHECK: encoding: [0x62,0x01,0x1d,0x40,0xee,0xc9]
vpmaxsw %zmm25, %zmm28, %zmm25
// CHECK: vpmaxsw %zmm25, %zmm28, %zmm25 {%k3}
// CHECK: encoding: [0x62,0x01,0x1d,0x43,0xee,0xc9]
vpmaxsw %zmm25, %zmm28, %zmm25 {%k3}
// CHECK: vpmaxsw %zmm25, %zmm28, %zmm25 {%k3} {z}
// CHECK: encoding: [0x62,0x01,0x1d,0xc3,0xee,0xc9]
vpmaxsw %zmm25, %zmm28, %zmm25 {%k3} {z}
// CHECK: vpmaxsw (%rcx), %zmm28, %zmm25
// CHECK: encoding: [0x62,0x61,0x1d,0x40,0xee,0x09]
vpmaxsw (%rcx), %zmm28, %zmm25
// CHECK: vpmaxsw 291(%rax,%r14,8), %zmm28, %zmm25
// CHECK: encoding: [0x62,0x21,0x1d,0x40,0xee,0x8c,0xf0,0x23,0x01,0x00,0x00]
vpmaxsw 291(%rax,%r14,8), %zmm28, %zmm25
// CHECK: vpmaxsw 8128(%rdx), %zmm28, %zmm25
// CHECK: encoding: [0x62,0x61,0x1d,0x40,0xee,0x4a,0x7f]
vpmaxsw 8128(%rdx), %zmm28, %zmm25
// CHECK: vpmaxsw 8192(%rdx), %zmm28, %zmm25
// CHECK: encoding: [0x62,0x61,0x1d,0x40,0xee,0x8a,0x00,0x20,0x00,0x00]
vpmaxsw 8192(%rdx), %zmm28, %zmm25
// CHECK: vpmaxsw -8192(%rdx), %zmm28, %zmm25
// CHECK: encoding: [0x62,0x61,0x1d,0x40,0xee,0x4a,0x80]
vpmaxsw -8192(%rdx), %zmm28, %zmm25
// CHECK: vpmaxsw -8256(%rdx), %zmm28, %zmm25
// CHECK: encoding: [0x62,0x61,0x1d,0x40,0xee,0x8a,0xc0,0xdf,0xff,0xff]
vpmaxsw -8256(%rdx), %zmm28, %zmm25
// CHECK: vpmaxub %zmm25, %zmm18, %zmm29
// CHECK: encoding: [0x62,0x01,0x6d,0x40,0xde,0xe9]
vpmaxub %zmm25, %zmm18, %zmm29
// CHECK: vpmaxub %zmm25, %zmm18, %zmm29 {%k7}
// CHECK: encoding: [0x62,0x01,0x6d,0x47,0xde,0xe9]
vpmaxub %zmm25, %zmm18, %zmm29 {%k7}
// CHECK: vpmaxub %zmm25, %zmm18, %zmm29 {%k7} {z}
// CHECK: encoding: [0x62,0x01,0x6d,0xc7,0xde,0xe9]
vpmaxub %zmm25, %zmm18, %zmm29 {%k7} {z}
// CHECK: vpmaxub (%rcx), %zmm18, %zmm29
// CHECK: encoding: [0x62,0x61,0x6d,0x40,0xde,0x29]
vpmaxub (%rcx), %zmm18, %zmm29
// CHECK: vpmaxub 291(%rax,%r14,8), %zmm18, %zmm29
// CHECK: encoding: [0x62,0x21,0x6d,0x40,0xde,0xac,0xf0,0x23,0x01,0x00,0x00]
vpmaxub 291(%rax,%r14,8), %zmm18, %zmm29
// CHECK: vpmaxub 8128(%rdx), %zmm18, %zmm29
// CHECK: encoding: [0x62,0x61,0x6d,0x40,0xde,0x6a,0x7f]
vpmaxub 8128(%rdx), %zmm18, %zmm29
// CHECK: vpmaxub 8192(%rdx), %zmm18, %zmm29
// CHECK: encoding: [0x62,0x61,0x6d,0x40,0xde,0xaa,0x00,0x20,0x00,0x00]
vpmaxub 8192(%rdx), %zmm18, %zmm29
// CHECK: vpmaxub -8192(%rdx), %zmm18, %zmm29
// CHECK: encoding: [0x62,0x61,0x6d,0x40,0xde,0x6a,0x80]
vpmaxub -8192(%rdx), %zmm18, %zmm29
// CHECK: vpmaxub -8256(%rdx), %zmm18, %zmm29
// CHECK: encoding: [0x62,0x61,0x6d,0x40,0xde,0xaa,0xc0,0xdf,0xff,0xff]
vpmaxub -8256(%rdx), %zmm18, %zmm29
// CHECK: vpmaxuw %zmm23, %zmm27, %zmm21
// CHECK: encoding: [0x62,0xa2,0x25,0x40,0x3e,0xef]
vpmaxuw %zmm23, %zmm27, %zmm21
// CHECK: vpmaxuw %zmm23, %zmm27, %zmm21 {%k3}
// CHECK: encoding: [0x62,0xa2,0x25,0x43,0x3e,0xef]
vpmaxuw %zmm23, %zmm27, %zmm21 {%k3}
// CHECK: vpmaxuw %zmm23, %zmm27, %zmm21 {%k3} {z}
// CHECK: encoding: [0x62,0xa2,0x25,0xc3,0x3e,0xef]
vpmaxuw %zmm23, %zmm27, %zmm21 {%k3} {z}
// CHECK: vpmaxuw (%rcx), %zmm27, %zmm21
// CHECK: encoding: [0x62,0xe2,0x25,0x40,0x3e,0x29]
vpmaxuw (%rcx), %zmm27, %zmm21
// CHECK: vpmaxuw 291(%rax,%r14,8), %zmm27, %zmm21
// CHECK: encoding: [0x62,0xa2,0x25,0x40,0x3e,0xac,0xf0,0x23,0x01,0x00,0x00]
vpmaxuw 291(%rax,%r14,8), %zmm27, %zmm21
// CHECK: vpmaxuw 8128(%rdx), %zmm27, %zmm21
// CHECK: encoding: [0x62,0xe2,0x25,0x40,0x3e,0x6a,0x7f]
vpmaxuw 8128(%rdx), %zmm27, %zmm21
// CHECK: vpmaxuw 8192(%rdx), %zmm27, %zmm21
// CHECK: encoding: [0x62,0xe2,0x25,0x40,0x3e,0xaa,0x00,0x20,0x00,0x00]
vpmaxuw 8192(%rdx), %zmm27, %zmm21
// CHECK: vpmaxuw -8192(%rdx), %zmm27, %zmm21
// CHECK: encoding: [0x62,0xe2,0x25,0x40,0x3e,0x6a,0x80]
vpmaxuw -8192(%rdx), %zmm27, %zmm21
// CHECK: vpmaxuw -8256(%rdx), %zmm27, %zmm21
// CHECK: encoding: [0x62,0xe2,0x25,0x40,0x3e,0xaa,0xc0,0xdf,0xff,0xff]
vpmaxuw -8256(%rdx), %zmm27, %zmm21
// CHECK: vpminsb %zmm25, %zmm22, %zmm28
// CHECK: encoding: [0x62,0x02,0x4d,0x40,0x38,0xe1]
vpminsb %zmm25, %zmm22, %zmm28
// CHECK: vpminsb %zmm25, %zmm22, %zmm28 {%k6}
// CHECK: encoding: [0x62,0x02,0x4d,0x46,0x38,0xe1]
vpminsb %zmm25, %zmm22, %zmm28 {%k6}
// CHECK: vpminsb %zmm25, %zmm22, %zmm28 {%k6} {z}
// CHECK: encoding: [0x62,0x02,0x4d,0xc6,0x38,0xe1]
vpminsb %zmm25, %zmm22, %zmm28 {%k6} {z}
// CHECK: vpminsb (%rcx), %zmm22, %zmm28
// CHECK: encoding: [0x62,0x62,0x4d,0x40,0x38,0x21]
vpminsb (%rcx), %zmm22, %zmm28
// CHECK: vpminsb 291(%rax,%r14,8), %zmm22, %zmm28
// CHECK: encoding: [0x62,0x22,0x4d,0x40,0x38,0xa4,0xf0,0x23,0x01,0x00,0x00]
vpminsb 291(%rax,%r14,8), %zmm22, %zmm28
// CHECK: vpminsb 8128(%rdx), %zmm22, %zmm28
// CHECK: encoding: [0x62,0x62,0x4d,0x40,0x38,0x62,0x7f]
vpminsb 8128(%rdx), %zmm22, %zmm28
// CHECK: vpminsb 8192(%rdx), %zmm22, %zmm28
// CHECK: encoding: [0x62,0x62,0x4d,0x40,0x38,0xa2,0x00,0x20,0x00,0x00]
vpminsb 8192(%rdx), %zmm22, %zmm28
// CHECK: vpminsb -8192(%rdx), %zmm22, %zmm28
// CHECK: encoding: [0x62,0x62,0x4d,0x40,0x38,0x62,0x80]
vpminsb -8192(%rdx), %zmm22, %zmm28
// CHECK: vpminsb -8256(%rdx), %zmm22, %zmm28
// CHECK: encoding: [0x62,0x62,0x4d,0x40,0x38,0xa2,0xc0,0xdf,0xff,0xff]
vpminsb -8256(%rdx), %zmm22, %zmm28
// CHECK: vpminsw %zmm25, %zmm22, %zmm27
// CHECK: encoding: [0x62,0x01,0x4d,0x40,0xea,0xd9]
vpminsw %zmm25, %zmm22, %zmm27
// CHECK: vpminsw %zmm25, %zmm22, %zmm27 {%k6}
// CHECK: encoding: [0x62,0x01,0x4d,0x46,0xea,0xd9]
vpminsw %zmm25, %zmm22, %zmm27 {%k6}
// CHECK: vpminsw %zmm25, %zmm22, %zmm27 {%k6} {z}
// CHECK: encoding: [0x62,0x01,0x4d,0xc6,0xea,0xd9]
vpminsw %zmm25, %zmm22, %zmm27 {%k6} {z}
// CHECK: vpminsw (%rcx), %zmm22, %zmm27
// CHECK: encoding: [0x62,0x61,0x4d,0x40,0xea,0x19]
vpminsw (%rcx), %zmm22, %zmm27
// CHECK: vpminsw 291(%rax,%r14,8), %zmm22, %zmm27
// CHECK: encoding: [0x62,0x21,0x4d,0x40,0xea,0x9c,0xf0,0x23,0x01,0x00,0x00]
vpminsw 291(%rax,%r14,8), %zmm22, %zmm27
// CHECK: vpminsw 8128(%rdx), %zmm22, %zmm27
// CHECK: encoding: [0x62,0x61,0x4d,0x40,0xea,0x5a,0x7f]
vpminsw 8128(%rdx), %zmm22, %zmm27
// CHECK: vpminsw 8192(%rdx), %zmm22, %zmm27
// CHECK: encoding: [0x62,0x61,0x4d,0x40,0xea,0x9a,0x00,0x20,0x00,0x00]
vpminsw 8192(%rdx), %zmm22, %zmm27
// CHECK: vpminsw -8192(%rdx), %zmm22, %zmm27
// CHECK: encoding: [0x62,0x61,0x4d,0x40,0xea,0x5a,0x80]
vpminsw -8192(%rdx), %zmm22, %zmm27
// CHECK: vpminsw -8256(%rdx), %zmm22, %zmm27
// CHECK: encoding: [0x62,0x61,0x4d,0x40,0xea,0x9a,0xc0,0xdf,0xff,0xff]
vpminsw -8256(%rdx), %zmm22, %zmm27
// CHECK: vpminub %zmm26, %zmm25, %zmm25
// CHECK: encoding: [0x62,0x01,0x35,0x40,0xda,0xca]
vpminub %zmm26, %zmm25, %zmm25
// CHECK: vpminub %zmm26, %zmm25, %zmm25 {%k6}
// CHECK: encoding: [0x62,0x01,0x35,0x46,0xda,0xca]
vpminub %zmm26, %zmm25, %zmm25 {%k6}
// CHECK: vpminub %zmm26, %zmm25, %zmm25 {%k6} {z}
// CHECK: encoding: [0x62,0x01,0x35,0xc6,0xda,0xca]
vpminub %zmm26, %zmm25, %zmm25 {%k6} {z}
// CHECK: vpminub (%rcx), %zmm25, %zmm25
// CHECK: encoding: [0x62,0x61,0x35,0x40,0xda,0x09]
vpminub (%rcx), %zmm25, %zmm25
// CHECK: vpminub 291(%rax,%r14,8), %zmm25, %zmm25
// CHECK: encoding: [0x62,0x21,0x35,0x40,0xda,0x8c,0xf0,0x23,0x01,0x00,0x00]
vpminub 291(%rax,%r14,8), %zmm25, %zmm25
// CHECK: vpminub 8128(%rdx), %zmm25, %zmm25
// CHECK: encoding: [0x62,0x61,0x35,0x40,0xda,0x4a,0x7f]
vpminub 8128(%rdx), %zmm25, %zmm25
// CHECK: vpminub 8192(%rdx), %zmm25, %zmm25
// CHECK: encoding: [0x62,0x61,0x35,0x40,0xda,0x8a,0x00,0x20,0x00,0x00]
vpminub 8192(%rdx), %zmm25, %zmm25
// CHECK: vpminub -8192(%rdx), %zmm25, %zmm25
// CHECK: encoding: [0x62,0x61,0x35,0x40,0xda,0x4a,0x80]
vpminub -8192(%rdx), %zmm25, %zmm25
// CHECK: vpminub -8256(%rdx), %zmm25, %zmm25
// CHECK: encoding: [0x62,0x61,0x35,0x40,0xda,0x8a,0xc0,0xdf,0xff,0xff]
vpminub -8256(%rdx), %zmm25, %zmm25
// CHECK: vpminuw %zmm20, %zmm29, %zmm19
// CHECK: encoding: [0x62,0xa2,0x15,0x40,0x3a,0xdc]
vpminuw %zmm20, %zmm29, %zmm19
// CHECK: vpminuw %zmm20, %zmm29, %zmm19 {%k7}
// CHECK: encoding: [0x62,0xa2,0x15,0x47,0x3a,0xdc]
vpminuw %zmm20, %zmm29, %zmm19 {%k7}
// CHECK: vpminuw %zmm20, %zmm29, %zmm19 {%k7} {z}
// CHECK: encoding: [0x62,0xa2,0x15,0xc7,0x3a,0xdc]
vpminuw %zmm20, %zmm29, %zmm19 {%k7} {z}
// CHECK: vpminuw (%rcx), %zmm29, %zmm19
// CHECK: encoding: [0x62,0xe2,0x15,0x40,0x3a,0x19]
vpminuw (%rcx), %zmm29, %zmm19
// CHECK: vpminuw 291(%rax,%r14,8), %zmm29, %zmm19
// CHECK: encoding: [0x62,0xa2,0x15,0x40,0x3a,0x9c,0xf0,0x23,0x01,0x00,0x00]
vpminuw 291(%rax,%r14,8), %zmm29, %zmm19
// CHECK: vpminuw 8128(%rdx), %zmm29, %zmm19
// CHECK: encoding: [0x62,0xe2,0x15,0x40,0x3a,0x5a,0x7f]
vpminuw 8128(%rdx), %zmm29, %zmm19
// CHECK: vpminuw 8192(%rdx), %zmm29, %zmm19
// CHECK: encoding: [0x62,0xe2,0x15,0x40,0x3a,0x9a,0x00,0x20,0x00,0x00]
vpminuw 8192(%rdx), %zmm29, %zmm19
// CHECK: vpminuw -8192(%rdx), %zmm29, %zmm19
// CHECK: encoding: [0x62,0xe2,0x15,0x40,0x3a,0x5a,0x80]
vpminuw -8192(%rdx), %zmm29, %zmm19
// CHECK: vpminuw -8256(%rdx), %zmm29, %zmm19
// CHECK: encoding: [0x62,0xe2,0x15,0x40,0x3a,0x9a,0xc0,0xdf,0xff,0xff]
vpminuw -8256(%rdx), %zmm29, %zmm19
// CHECK: vpmullw %zmm19, %zmm28, %zmm19
// CHECK: encoding: [0x62,0xa1,0x1d,0x40,0xd5,0xdb]
vpmullw %zmm19, %zmm28, %zmm19
// CHECK: vpmullw %zmm19, %zmm28, %zmm19 {%k5}
// CHECK: encoding: [0x62,0xa1,0x1d,0x45,0xd5,0xdb]
vpmullw %zmm19, %zmm28, %zmm19 {%k5}
// CHECK: vpmullw %zmm19, %zmm28, %zmm19 {%k5} {z}
// CHECK: encoding: [0x62,0xa1,0x1d,0xc5,0xd5,0xdb]
vpmullw %zmm19, %zmm28, %zmm19 {%k5} {z}
// CHECK: vpmullw (%rcx), %zmm28, %zmm19
// CHECK: encoding: [0x62,0xe1,0x1d,0x40,0xd5,0x19]
vpmullw (%rcx), %zmm28, %zmm19
// CHECK: vpmullw 291(%rax,%r14,8), %zmm28, %zmm19
// CHECK: encoding: [0x62,0xa1,0x1d,0x40,0xd5,0x9c,0xf0,0x23,0x01,0x00,0x00]
vpmullw 291(%rax,%r14,8), %zmm28, %zmm19
// CHECK: vpmullw 8128(%rdx), %zmm28, %zmm19
// CHECK: encoding: [0x62,0xe1,0x1d,0x40,0xd5,0x5a,0x7f]
vpmullw 8128(%rdx), %zmm28, %zmm19
// CHECK: vpmullw 8192(%rdx), %zmm28, %zmm19
// CHECK: encoding: [0x62,0xe1,0x1d,0x40,0xd5,0x9a,0x00,0x20,0x00,0x00]
vpmullw 8192(%rdx), %zmm28, %zmm19
// CHECK: vpmullw -8192(%rdx), %zmm28, %zmm19
// CHECK: encoding: [0x62,0xe1,0x1d,0x40,0xd5,0x5a,0x80]
vpmullw -8192(%rdx), %zmm28, %zmm19
// CHECK: vpmullw -8256(%rdx), %zmm28, %zmm19
// CHECK: encoding: [0x62,0xe1,0x1d,0x40,0xd5,0x9a,0xc0,0xdf,0xff,0xff]
vpmullw -8256(%rdx), %zmm28, %zmm19
// CHECK: vpsubb %zmm26, %zmm18, %zmm25
// CHECK: encoding: [0x62,0x01,0x6d,0x40,0xf8,0xca]
vpsubb %zmm26, %zmm18, %zmm25
// CHECK: vpsubb %zmm26, %zmm18, %zmm25 {%k4}
// CHECK: encoding: [0x62,0x01,0x6d,0x44,0xf8,0xca]
vpsubb %zmm26, %zmm18, %zmm25 {%k4}
// CHECK: vpsubb %zmm26, %zmm18, %zmm25 {%k4} {z}
// CHECK: encoding: [0x62,0x01,0x6d,0xc4,0xf8,0xca]
vpsubb %zmm26, %zmm18, %zmm25 {%k4} {z}
// CHECK: vpsubb (%rcx), %zmm18, %zmm25
// CHECK: encoding: [0x62,0x61,0x6d,0x40,0xf8,0x09]
vpsubb (%rcx), %zmm18, %zmm25
// CHECK: vpsubb 291(%rax,%r14,8), %zmm18, %zmm25
// CHECK: encoding: [0x62,0x21,0x6d,0x40,0xf8,0x8c,0xf0,0x23,0x01,0x00,0x00]
vpsubb 291(%rax,%r14,8), %zmm18, %zmm25
// CHECK: vpsubb 8128(%rdx), %zmm18, %zmm25
// CHECK: encoding: [0x62,0x61,0x6d,0x40,0xf8,0x4a,0x7f]
vpsubb 8128(%rdx), %zmm18, %zmm25
// CHECK: vpsubb 8192(%rdx), %zmm18, %zmm25
// CHECK: encoding: [0x62,0x61,0x6d,0x40,0xf8,0x8a,0x00,0x20,0x00,0x00]
vpsubb 8192(%rdx), %zmm18, %zmm25
// CHECK: vpsubb -8192(%rdx), %zmm18, %zmm25
// CHECK: encoding: [0x62,0x61,0x6d,0x40,0xf8,0x4a,0x80]
vpsubb -8192(%rdx), %zmm18, %zmm25
// CHECK: vpsubb -8256(%rdx), %zmm18, %zmm25
// CHECK: encoding: [0x62,0x61,0x6d,0x40,0xf8,0x8a,0xc0,0xdf,0xff,0xff]
vpsubb -8256(%rdx), %zmm18, %zmm25
// CHECK: vpsubw %zmm24, %zmm24, %zmm17
// CHECK: encoding: [0x62,0x81,0x3d,0x40,0xf9,0xc8]
vpsubw %zmm24, %zmm24, %zmm17
// CHECK: vpsubw %zmm24, %zmm24, %zmm17 {%k4}
// CHECK: encoding: [0x62,0x81,0x3d,0x44,0xf9,0xc8]
vpsubw %zmm24, %zmm24, %zmm17 {%k4}
// CHECK: vpsubw %zmm24, %zmm24, %zmm17 {%k4} {z}
// CHECK: encoding: [0x62,0x81,0x3d,0xc4,0xf9,0xc8]
vpsubw %zmm24, %zmm24, %zmm17 {%k4} {z}
// CHECK: vpsubw (%rcx), %zmm24, %zmm17
// CHECK: encoding: [0x62,0xe1,0x3d,0x40,0xf9,0x09]
vpsubw (%rcx), %zmm24, %zmm17
// CHECK: vpsubw 291(%rax,%r14,8), %zmm24, %zmm17
// CHECK: encoding: [0x62,0xa1,0x3d,0x40,0xf9,0x8c,0xf0,0x23,0x01,0x00,0x00]
vpsubw 291(%rax,%r14,8), %zmm24, %zmm17
// CHECK: vpsubw 8128(%rdx), %zmm24, %zmm17
// CHECK: encoding: [0x62,0xe1,0x3d,0x40,0xf9,0x4a,0x7f]
vpsubw 8128(%rdx), %zmm24, %zmm17
// CHECK: vpsubw 8192(%rdx), %zmm24, %zmm17
// CHECK: encoding: [0x62,0xe1,0x3d,0x40,0xf9,0x8a,0x00,0x20,0x00,0x00]
vpsubw 8192(%rdx), %zmm24, %zmm17
// CHECK: vpsubw -8192(%rdx), %zmm24, %zmm17
// CHECK: encoding: [0x62,0xe1,0x3d,0x40,0xf9,0x4a,0x80]
vpsubw -8192(%rdx), %zmm24, %zmm17
// CHECK: vpsubw -8256(%rdx), %zmm24, %zmm17
// CHECK: encoding: [0x62,0xe1,0x3d,0x40,0xf9,0x8a,0xc0,0xdf,0xff,0xff]
vpsubw -8256(%rdx), %zmm24, %zmm17
// CHECK: vmovdqu8 %zmm19, %zmm29
// CHECK: encoding: [0x62,0x21,0x7f,0x48,0x6f,0xeb]
vmovdqu8 %zmm19, %zmm29

View File

@ -1,4 +1,148 @@
// RUN: llvm-mc -triple x86_64-unknown-unknown -mcpu=skx --show-encoding %s | FileCheck %s
// RUN: llvm-mc -triple x86_64-unknown-unknown -mcpu=knl -mattr=+avx512bw -mattr=+avx512vl --show-encoding %s | FileCheck %s
// CHECK: vpaddb %xmm22, %xmm17, %xmm26
// CHECK: encoding: [0x62,0x21,0x75,0x00,0xfc,0xd6]
vpaddb %xmm22, %xmm17, %xmm26
// CHECK: vpaddb %xmm22, %xmm17, %xmm26 {%k5}
// CHECK: encoding: [0x62,0x21,0x75,0x05,0xfc,0xd6]
vpaddb %xmm22, %xmm17, %xmm26 {%k5}
// CHECK: vpaddb %xmm22, %xmm17, %xmm26 {%k5} {z}
// CHECK: encoding: [0x62,0x21,0x75,0x85,0xfc,0xd6]
vpaddb %xmm22, %xmm17, %xmm26 {%k5} {z}
// CHECK: vpaddb (%rcx), %xmm17, %xmm26
// CHECK: encoding: [0x62,0x61,0x75,0x00,0xfc,0x11]
vpaddb (%rcx), %xmm17, %xmm26
// CHECK: vpaddb 291(%rax,%r14,8), %xmm17, %xmm26
// CHECK: encoding: [0x62,0x21,0x75,0x00,0xfc,0x94,0xf0,0x23,0x01,0x00,0x00]
vpaddb 291(%rax,%r14,8), %xmm17, %xmm26
// CHECK: vpaddb 2032(%rdx), %xmm17, %xmm26
// CHECK: encoding: [0x62,0x61,0x75,0x00,0xfc,0x52,0x7f]
vpaddb 2032(%rdx), %xmm17, %xmm26
// CHECK: vpaddb 2048(%rdx), %xmm17, %xmm26
// CHECK: encoding: [0x62,0x61,0x75,0x00,0xfc,0x92,0x00,0x08,0x00,0x00]
vpaddb 2048(%rdx), %xmm17, %xmm26
// CHECK: vpaddb -2048(%rdx), %xmm17, %xmm26
// CHECK: encoding: [0x62,0x61,0x75,0x00,0xfc,0x52,0x80]
vpaddb -2048(%rdx), %xmm17, %xmm26
// CHECK: vpaddb -2064(%rdx), %xmm17, %xmm26
// CHECK: encoding: [0x62,0x61,0x75,0x00,0xfc,0x92,0xf0,0xf7,0xff,0xff]
vpaddb -2064(%rdx), %xmm17, %xmm26
// CHECK: vpaddb %ymm28, %ymm27, %ymm26
// CHECK: encoding: [0x62,0x01,0x25,0x20,0xfc,0xd4]
vpaddb %ymm28, %ymm27, %ymm26
// CHECK: vpaddb %ymm28, %ymm27, %ymm26 {%k3}
// CHECK: encoding: [0x62,0x01,0x25,0x23,0xfc,0xd4]
vpaddb %ymm28, %ymm27, %ymm26 {%k3}
// CHECK: vpaddb %ymm28, %ymm27, %ymm26 {%k3} {z}
// CHECK: encoding: [0x62,0x01,0x25,0xa3,0xfc,0xd4]
vpaddb %ymm28, %ymm27, %ymm26 {%k3} {z}
// CHECK: vpaddb (%rcx), %ymm27, %ymm26
// CHECK: encoding: [0x62,0x61,0x25,0x20,0xfc,0x11]
vpaddb (%rcx), %ymm27, %ymm26
// CHECK: vpaddb 291(%rax,%r14,8), %ymm27, %ymm26
// CHECK: encoding: [0x62,0x21,0x25,0x20,0xfc,0x94,0xf0,0x23,0x01,0x00,0x00]
vpaddb 291(%rax,%r14,8), %ymm27, %ymm26
// CHECK: vpaddb 4064(%rdx), %ymm27, %ymm26
// CHECK: encoding: [0x62,0x61,0x25,0x20,0xfc,0x52,0x7f]
vpaddb 4064(%rdx), %ymm27, %ymm26
// CHECK: vpaddb 4096(%rdx), %ymm27, %ymm26
// CHECK: encoding: [0x62,0x61,0x25,0x20,0xfc,0x92,0x00,0x10,0x00,0x00]
vpaddb 4096(%rdx), %ymm27, %ymm26
// CHECK: vpaddb -4096(%rdx), %ymm27, %ymm26
// CHECK: encoding: [0x62,0x61,0x25,0x20,0xfc,0x52,0x80]
vpaddb -4096(%rdx), %ymm27, %ymm26
// CHECK: vpaddb -4128(%rdx), %ymm27, %ymm26
// CHECK: encoding: [0x62,0x61,0x25,0x20,0xfc,0x92,0xe0,0xef,0xff,0xff]
vpaddb -4128(%rdx), %ymm27, %ymm26
// CHECK: vpaddw %xmm18, %xmm17, %xmm18
// CHECK: encoding: [0x62,0xa1,0x75,0x00,0xfd,0xd2]
vpaddw %xmm18, %xmm17, %xmm18
// CHECK: vpaddw %xmm18, %xmm17, %xmm18 {%k1}
// CHECK: encoding: [0x62,0xa1,0x75,0x01,0xfd,0xd2]
vpaddw %xmm18, %xmm17, %xmm18 {%k1}
// CHECK: vpaddw %xmm18, %xmm17, %xmm18 {%k1} {z}
// CHECK: encoding: [0x62,0xa1,0x75,0x81,0xfd,0xd2]
vpaddw %xmm18, %xmm17, %xmm18 {%k1} {z}
// CHECK: vpaddw (%rcx), %xmm17, %xmm18
// CHECK: encoding: [0x62,0xe1,0x75,0x00,0xfd,0x11]
vpaddw (%rcx), %xmm17, %xmm18
// CHECK: vpaddw 291(%rax,%r14,8), %xmm17, %xmm18
// CHECK: encoding: [0x62,0xa1,0x75,0x00,0xfd,0x94,0xf0,0x23,0x01,0x00,0x00]
vpaddw 291(%rax,%r14,8), %xmm17, %xmm18
// CHECK: vpaddw 2032(%rdx), %xmm17, %xmm18
// CHECK: encoding: [0x62,0xe1,0x75,0x00,0xfd,0x52,0x7f]
vpaddw 2032(%rdx), %xmm17, %xmm18
// CHECK: vpaddw 2048(%rdx), %xmm17, %xmm18
// CHECK: encoding: [0x62,0xe1,0x75,0x00,0xfd,0x92,0x00,0x08,0x00,0x00]
vpaddw 2048(%rdx), %xmm17, %xmm18
// CHECK: vpaddw -2048(%rdx), %xmm17, %xmm18
// CHECK: encoding: [0x62,0xe1,0x75,0x00,0xfd,0x52,0x80]
vpaddw -2048(%rdx), %xmm17, %xmm18
// CHECK: vpaddw -2064(%rdx), %xmm17, %xmm18
// CHECK: encoding: [0x62,0xe1,0x75,0x00,0xfd,0x92,0xf0,0xf7,0xff,0xff]
vpaddw -2064(%rdx), %xmm17, %xmm18
// CHECK: vpaddw %ymm26, %ymm21, %ymm23
// CHECK: encoding: [0x62,0x81,0x55,0x20,0xfd,0xfa]
vpaddw %ymm26, %ymm21, %ymm23
// CHECK: vpaddw %ymm26, %ymm21, %ymm23 {%k7}
// CHECK: encoding: [0x62,0x81,0x55,0x27,0xfd,0xfa]
vpaddw %ymm26, %ymm21, %ymm23 {%k7}
// CHECK: vpaddw %ymm26, %ymm21, %ymm23 {%k7} {z}
// CHECK: encoding: [0x62,0x81,0x55,0xa7,0xfd,0xfa]
vpaddw %ymm26, %ymm21, %ymm23 {%k7} {z}
// CHECK: vpaddw (%rcx), %ymm21, %ymm23
// CHECK: encoding: [0x62,0xe1,0x55,0x20,0xfd,0x39]
vpaddw (%rcx), %ymm21, %ymm23
// CHECK: vpaddw 291(%rax,%r14,8), %ymm21, %ymm23
// CHECK: encoding: [0x62,0xa1,0x55,0x20,0xfd,0xbc,0xf0,0x23,0x01,0x00,0x00]
vpaddw 291(%rax,%r14,8), %ymm21, %ymm23
// CHECK: vpaddw 4064(%rdx), %ymm21, %ymm23
// CHECK: encoding: [0x62,0xe1,0x55,0x20,0xfd,0x7a,0x7f]
vpaddw 4064(%rdx), %ymm21, %ymm23
// CHECK: vpaddw 4096(%rdx), %ymm21, %ymm23
// CHECK: encoding: [0x62,0xe1,0x55,0x20,0xfd,0xba,0x00,0x10,0x00,0x00]
vpaddw 4096(%rdx), %ymm21, %ymm23
// CHECK: vpaddw -4096(%rdx), %ymm21, %ymm23
// CHECK: encoding: [0x62,0xe1,0x55,0x20,0xfd,0x7a,0x80]
vpaddw -4096(%rdx), %ymm21, %ymm23
// CHECK: vpaddw -4128(%rdx), %ymm21, %ymm23
// CHECK: encoding: [0x62,0xe1,0x55,0x20,0xfd,0xba,0xe0,0xef,0xff,0xff]
vpaddw -4128(%rdx), %ymm21, %ymm23
// CHECK: vpcmpeqb %xmm21, %xmm21, %k4
// CHECK: encoding: [0x62,0xb1,0x55,0x00,0x74,0xe5]
@ -544,6 +688,798 @@
// CHECK: encoding: [0x62,0xf3,0xa5,0x20,0x3e,0xa2,0xe0,0xef,0xff,0xff,0x7b]
vpcmpuw $123, -4128(%rdx), %ymm27, %k4
// CHECK: vpmaxsb %xmm17, %xmm24, %xmm23
// CHECK: encoding: [0x62,0xa2,0x3d,0x00,0x3c,0xf9]
vpmaxsb %xmm17, %xmm24, %xmm23
// CHECK: vpmaxsb %xmm17, %xmm24, %xmm23 {%k3}
// CHECK: encoding: [0x62,0xa2,0x3d,0x03,0x3c,0xf9]
vpmaxsb %xmm17, %xmm24, %xmm23 {%k3}
// CHECK: vpmaxsb %xmm17, %xmm24, %xmm23 {%k3} {z}
// CHECK: encoding: [0x62,0xa2,0x3d,0x83,0x3c,0xf9]
vpmaxsb %xmm17, %xmm24, %xmm23 {%k3} {z}
// CHECK: vpmaxsb (%rcx), %xmm24, %xmm23
// CHECK: encoding: [0x62,0xe2,0x3d,0x00,0x3c,0x39]
vpmaxsb (%rcx), %xmm24, %xmm23
// CHECK: vpmaxsb 291(%rax,%r14,8), %xmm24, %xmm23
// CHECK: encoding: [0x62,0xa2,0x3d,0x00,0x3c,0xbc,0xf0,0x23,0x01,0x00,0x00]
vpmaxsb 291(%rax,%r14,8), %xmm24, %xmm23
// CHECK: vpmaxsb 2032(%rdx), %xmm24, %xmm23
// CHECK: encoding: [0x62,0xe2,0x3d,0x00,0x3c,0x7a,0x7f]
vpmaxsb 2032(%rdx), %xmm24, %xmm23
// CHECK: vpmaxsb 2048(%rdx), %xmm24, %xmm23
// CHECK: encoding: [0x62,0xe2,0x3d,0x00,0x3c,0xba,0x00,0x08,0x00,0x00]
vpmaxsb 2048(%rdx), %xmm24, %xmm23
// CHECK: vpmaxsb -2048(%rdx), %xmm24, %xmm23
// CHECK: encoding: [0x62,0xe2,0x3d,0x00,0x3c,0x7a,0x80]
vpmaxsb -2048(%rdx), %xmm24, %xmm23
// CHECK: vpmaxsb -2064(%rdx), %xmm24, %xmm23
// CHECK: encoding: [0x62,0xe2,0x3d,0x00,0x3c,0xba,0xf0,0xf7,0xff,0xff]
vpmaxsb -2064(%rdx), %xmm24, %xmm23
// CHECK: vpmaxsb %ymm27, %ymm22, %ymm30
// CHECK: encoding: [0x62,0x02,0x4d,0x20,0x3c,0xf3]
vpmaxsb %ymm27, %ymm22, %ymm30
// CHECK: vpmaxsb %ymm27, %ymm22, %ymm30 {%k5}
// CHECK: encoding: [0x62,0x02,0x4d,0x25,0x3c,0xf3]
vpmaxsb %ymm27, %ymm22, %ymm30 {%k5}
// CHECK: vpmaxsb %ymm27, %ymm22, %ymm30 {%k5} {z}
// CHECK: encoding: [0x62,0x02,0x4d,0xa5,0x3c,0xf3]
vpmaxsb %ymm27, %ymm22, %ymm30 {%k5} {z}
// CHECK: vpmaxsb (%rcx), %ymm22, %ymm30
// CHECK: encoding: [0x62,0x62,0x4d,0x20,0x3c,0x31]
vpmaxsb (%rcx), %ymm22, %ymm30
// CHECK: vpmaxsb 291(%rax,%r14,8), %ymm22, %ymm30
// CHECK: encoding: [0x62,0x22,0x4d,0x20,0x3c,0xb4,0xf0,0x23,0x01,0x00,0x00]
vpmaxsb 291(%rax,%r14,8), %ymm22, %ymm30
// CHECK: vpmaxsb 4064(%rdx), %ymm22, %ymm30
// CHECK: encoding: [0x62,0x62,0x4d,0x20,0x3c,0x72,0x7f]
vpmaxsb 4064(%rdx), %ymm22, %ymm30
// CHECK: vpmaxsb 4096(%rdx), %ymm22, %ymm30
// CHECK: encoding: [0x62,0x62,0x4d,0x20,0x3c,0xb2,0x00,0x10,0x00,0x00]
vpmaxsb 4096(%rdx), %ymm22, %ymm30
// CHECK: vpmaxsb -4096(%rdx), %ymm22, %ymm30
// CHECK: encoding: [0x62,0x62,0x4d,0x20,0x3c,0x72,0x80]
vpmaxsb -4096(%rdx), %ymm22, %ymm30
// CHECK: vpmaxsb -4128(%rdx), %ymm22, %ymm30
// CHECK: encoding: [0x62,0x62,0x4d,0x20,0x3c,0xb2,0xe0,0xef,0xff,0xff]
vpmaxsb -4128(%rdx), %ymm22, %ymm30
// CHECK: vpmaxsw %xmm28, %xmm24, %xmm18
// CHECK: encoding: [0x62,0x81,0x3d,0x00,0xee,0xd4]
vpmaxsw %xmm28, %xmm24, %xmm18
// CHECK: vpmaxsw %xmm28, %xmm24, %xmm18 {%k3}
// CHECK: encoding: [0x62,0x81,0x3d,0x03,0xee,0xd4]
vpmaxsw %xmm28, %xmm24, %xmm18 {%k3}
// CHECK: vpmaxsw %xmm28, %xmm24, %xmm18 {%k3} {z}
// CHECK: encoding: [0x62,0x81,0x3d,0x83,0xee,0xd4]
vpmaxsw %xmm28, %xmm24, %xmm18 {%k3} {z}
// CHECK: vpmaxsw (%rcx), %xmm24, %xmm18
// CHECK: encoding: [0x62,0xe1,0x3d,0x00,0xee,0x11]
vpmaxsw (%rcx), %xmm24, %xmm18
// CHECK: vpmaxsw 291(%rax,%r14,8), %xmm24, %xmm18
// CHECK: encoding: [0x62,0xa1,0x3d,0x00,0xee,0x94,0xf0,0x23,0x01,0x00,0x00]
vpmaxsw 291(%rax,%r14,8), %xmm24, %xmm18
// CHECK: vpmaxsw 2032(%rdx), %xmm24, %xmm18
// CHECK: encoding: [0x62,0xe1,0x3d,0x00,0xee,0x52,0x7f]
vpmaxsw 2032(%rdx), %xmm24, %xmm18
// CHECK: vpmaxsw 2048(%rdx), %xmm24, %xmm18
// CHECK: encoding: [0x62,0xe1,0x3d,0x00,0xee,0x92,0x00,0x08,0x00,0x00]
vpmaxsw 2048(%rdx), %xmm24, %xmm18
// CHECK: vpmaxsw -2048(%rdx), %xmm24, %xmm18
// CHECK: encoding: [0x62,0xe1,0x3d,0x00,0xee,0x52,0x80]
vpmaxsw -2048(%rdx), %xmm24, %xmm18
// CHECK: vpmaxsw -2064(%rdx), %xmm24, %xmm18
// CHECK: encoding: [0x62,0xe1,0x3d,0x00,0xee,0x92,0xf0,0xf7,0xff,0xff]
vpmaxsw -2064(%rdx), %xmm24, %xmm18
// CHECK: vpmaxsw %ymm17, %ymm28, %ymm27
// CHECK: encoding: [0x62,0x21,0x1d,0x20,0xee,0xd9]
vpmaxsw %ymm17, %ymm28, %ymm27
// CHECK: vpmaxsw %ymm17, %ymm28, %ymm27 {%k6}
// CHECK: encoding: [0x62,0x21,0x1d,0x26,0xee,0xd9]
vpmaxsw %ymm17, %ymm28, %ymm27 {%k6}
// CHECK: vpmaxsw %ymm17, %ymm28, %ymm27 {%k6} {z}
// CHECK: encoding: [0x62,0x21,0x1d,0xa6,0xee,0xd9]
vpmaxsw %ymm17, %ymm28, %ymm27 {%k6} {z}
// CHECK: vpmaxsw (%rcx), %ymm28, %ymm27
// CHECK: encoding: [0x62,0x61,0x1d,0x20,0xee,0x19]
vpmaxsw (%rcx), %ymm28, %ymm27
// CHECK: vpmaxsw 291(%rax,%r14,8), %ymm28, %ymm27
// CHECK: encoding: [0x62,0x21,0x1d,0x20,0xee,0x9c,0xf0,0x23,0x01,0x00,0x00]
vpmaxsw 291(%rax,%r14,8), %ymm28, %ymm27
// CHECK: vpmaxsw 4064(%rdx), %ymm28, %ymm27
// CHECK: encoding: [0x62,0x61,0x1d,0x20,0xee,0x5a,0x7f]
vpmaxsw 4064(%rdx), %ymm28, %ymm27
// CHECK: vpmaxsw 4096(%rdx), %ymm28, %ymm27
// CHECK: encoding: [0x62,0x61,0x1d,0x20,0xee,0x9a,0x00,0x10,0x00,0x00]
vpmaxsw 4096(%rdx), %ymm28, %ymm27
// CHECK: vpmaxsw -4096(%rdx), %ymm28, %ymm27
// CHECK: encoding: [0x62,0x61,0x1d,0x20,0xee,0x5a,0x80]
vpmaxsw -4096(%rdx), %ymm28, %ymm27
// CHECK: vpmaxsw -4128(%rdx), %ymm28, %ymm27
// CHECK: encoding: [0x62,0x61,0x1d,0x20,0xee,0x9a,0xe0,0xef,0xff,0xff]
vpmaxsw -4128(%rdx), %ymm28, %ymm27
// CHECK: vpmaxub %xmm23, %xmm17, %xmm17
// CHECK: encoding: [0x62,0xa1,0x75,0x00,0xde,0xcf]
vpmaxub %xmm23, %xmm17, %xmm17
// CHECK: vpmaxub %xmm23, %xmm17, %xmm17 {%k5}
// CHECK: encoding: [0x62,0xa1,0x75,0x05,0xde,0xcf]
vpmaxub %xmm23, %xmm17, %xmm17 {%k5}
// CHECK: vpmaxub %xmm23, %xmm17, %xmm17 {%k5} {z}
// CHECK: encoding: [0x62,0xa1,0x75,0x85,0xde,0xcf]
vpmaxub %xmm23, %xmm17, %xmm17 {%k5} {z}
// CHECK: vpmaxub (%rcx), %xmm17, %xmm17
// CHECK: encoding: [0x62,0xe1,0x75,0x00,0xde,0x09]
vpmaxub (%rcx), %xmm17, %xmm17
// CHECK: vpmaxub 291(%rax,%r14,8), %xmm17, %xmm17
// CHECK: encoding: [0x62,0xa1,0x75,0x00,0xde,0x8c,0xf0,0x23,0x01,0x00,0x00]
vpmaxub 291(%rax,%r14,8), %xmm17, %xmm17
// CHECK: vpmaxub 2032(%rdx), %xmm17, %xmm17
// CHECK: encoding: [0x62,0xe1,0x75,0x00,0xde,0x4a,0x7f]
vpmaxub 2032(%rdx), %xmm17, %xmm17
// CHECK: vpmaxub 2048(%rdx), %xmm17, %xmm17
// CHECK: encoding: [0x62,0xe1,0x75,0x00,0xde,0x8a,0x00,0x08,0x00,0x00]
vpmaxub 2048(%rdx), %xmm17, %xmm17
// CHECK: vpmaxub -2048(%rdx), %xmm17, %xmm17
// CHECK: encoding: [0x62,0xe1,0x75,0x00,0xde,0x4a,0x80]
vpmaxub -2048(%rdx), %xmm17, %xmm17
// CHECK: vpmaxub -2064(%rdx), %xmm17, %xmm17
// CHECK: encoding: [0x62,0xe1,0x75,0x00,0xde,0x8a,0xf0,0xf7,0xff,0xff]
vpmaxub -2064(%rdx), %xmm17, %xmm17
// CHECK: vpmaxub %ymm24, %ymm26, %ymm28
// CHECK: encoding: [0x62,0x01,0x2d,0x20,0xde,0xe0]
vpmaxub %ymm24, %ymm26, %ymm28
// CHECK: vpmaxub %ymm24, %ymm26, %ymm28 {%k6}
// CHECK: encoding: [0x62,0x01,0x2d,0x26,0xde,0xe0]
vpmaxub %ymm24, %ymm26, %ymm28 {%k6}
// CHECK: vpmaxub %ymm24, %ymm26, %ymm28 {%k6} {z}
// CHECK: encoding: [0x62,0x01,0x2d,0xa6,0xde,0xe0]
vpmaxub %ymm24, %ymm26, %ymm28 {%k6} {z}
// CHECK: vpmaxub (%rcx), %ymm26, %ymm28
// CHECK: encoding: [0x62,0x61,0x2d,0x20,0xde,0x21]
vpmaxub (%rcx), %ymm26, %ymm28
// CHECK: vpmaxub 291(%rax,%r14,8), %ymm26, %ymm28
// CHECK: encoding: [0x62,0x21,0x2d,0x20,0xde,0xa4,0xf0,0x23,0x01,0x00,0x00]
vpmaxub 291(%rax,%r14,8), %ymm26, %ymm28
// CHECK: vpmaxub 4064(%rdx), %ymm26, %ymm28
// CHECK: encoding: [0x62,0x61,0x2d,0x20,0xde,0x62,0x7f]
vpmaxub 4064(%rdx), %ymm26, %ymm28
// CHECK: vpmaxub 4096(%rdx), %ymm26, %ymm28
// CHECK: encoding: [0x62,0x61,0x2d,0x20,0xde,0xa2,0x00,0x10,0x00,0x00]
vpmaxub 4096(%rdx), %ymm26, %ymm28
// CHECK: vpmaxub -4096(%rdx), %ymm26, %ymm28
// CHECK: encoding: [0x62,0x61,0x2d,0x20,0xde,0x62,0x80]
vpmaxub -4096(%rdx), %ymm26, %ymm28
// CHECK: vpmaxub -4128(%rdx), %ymm26, %ymm28
// CHECK: encoding: [0x62,0x61,0x2d,0x20,0xde,0xa2,0xe0,0xef,0xff,0xff]
vpmaxub -4128(%rdx), %ymm26, %ymm28
// CHECK: vpmaxuw %xmm20, %xmm18, %xmm24
// CHECK: encoding: [0x62,0x22,0x6d,0x00,0x3e,0xc4]
vpmaxuw %xmm20, %xmm18, %xmm24
// CHECK: vpmaxuw %xmm20, %xmm18, %xmm24 {%k7}
// CHECK: encoding: [0x62,0x22,0x6d,0x07,0x3e,0xc4]
vpmaxuw %xmm20, %xmm18, %xmm24 {%k7}
// CHECK: vpmaxuw %xmm20, %xmm18, %xmm24 {%k7} {z}
// CHECK: encoding: [0x62,0x22,0x6d,0x87,0x3e,0xc4]
vpmaxuw %xmm20, %xmm18, %xmm24 {%k7} {z}
// CHECK: vpmaxuw (%rcx), %xmm18, %xmm24
// CHECK: encoding: [0x62,0x62,0x6d,0x00,0x3e,0x01]
vpmaxuw (%rcx), %xmm18, %xmm24
// CHECK: vpmaxuw 291(%rax,%r14,8), %xmm18, %xmm24
// CHECK: encoding: [0x62,0x22,0x6d,0x00,0x3e,0x84,0xf0,0x23,0x01,0x00,0x00]
vpmaxuw 291(%rax,%r14,8), %xmm18, %xmm24
// CHECK: vpmaxuw 2032(%rdx), %xmm18, %xmm24
// CHECK: encoding: [0x62,0x62,0x6d,0x00,0x3e,0x42,0x7f]
vpmaxuw 2032(%rdx), %xmm18, %xmm24
// CHECK: vpmaxuw 2048(%rdx), %xmm18, %xmm24
// CHECK: encoding: [0x62,0x62,0x6d,0x00,0x3e,0x82,0x00,0x08,0x00,0x00]
vpmaxuw 2048(%rdx), %xmm18, %xmm24
// CHECK: vpmaxuw -2048(%rdx), %xmm18, %xmm24
// CHECK: encoding: [0x62,0x62,0x6d,0x00,0x3e,0x42,0x80]
vpmaxuw -2048(%rdx), %xmm18, %xmm24
// CHECK: vpmaxuw -2064(%rdx), %xmm18, %xmm24
// CHECK: encoding: [0x62,0x62,0x6d,0x00,0x3e,0x82,0xf0,0xf7,0xff,0xff]
vpmaxuw -2064(%rdx), %xmm18, %xmm24
// CHECK: vpmaxuw %ymm19, %ymm22, %ymm19
// CHECK: encoding: [0x62,0xa2,0x4d,0x20,0x3e,0xdb]
vpmaxuw %ymm19, %ymm22, %ymm19
// CHECK: vpmaxuw %ymm19, %ymm22, %ymm19 {%k7}
// CHECK: encoding: [0x62,0xa2,0x4d,0x27,0x3e,0xdb]
vpmaxuw %ymm19, %ymm22, %ymm19 {%k7}
// CHECK: vpmaxuw %ymm19, %ymm22, %ymm19 {%k7} {z}
// CHECK: encoding: [0x62,0xa2,0x4d,0xa7,0x3e,0xdb]
vpmaxuw %ymm19, %ymm22, %ymm19 {%k7} {z}
// CHECK: vpmaxuw (%rcx), %ymm22, %ymm19
// CHECK: encoding: [0x62,0xe2,0x4d,0x20,0x3e,0x19]
vpmaxuw (%rcx), %ymm22, %ymm19
// CHECK: vpmaxuw 291(%rax,%r14,8), %ymm22, %ymm19
// CHECK: encoding: [0x62,0xa2,0x4d,0x20,0x3e,0x9c,0xf0,0x23,0x01,0x00,0x00]
vpmaxuw 291(%rax,%r14,8), %ymm22, %ymm19
// CHECK: vpmaxuw 4064(%rdx), %ymm22, %ymm19
// CHECK: encoding: [0x62,0xe2,0x4d,0x20,0x3e,0x5a,0x7f]
vpmaxuw 4064(%rdx), %ymm22, %ymm19
// CHECK: vpmaxuw 4096(%rdx), %ymm22, %ymm19
// CHECK: encoding: [0x62,0xe2,0x4d,0x20,0x3e,0x9a,0x00,0x10,0x00,0x00]
vpmaxuw 4096(%rdx), %ymm22, %ymm19
// CHECK: vpmaxuw -4096(%rdx), %ymm22, %ymm19
// CHECK: encoding: [0x62,0xe2,0x4d,0x20,0x3e,0x5a,0x80]
vpmaxuw -4096(%rdx), %ymm22, %ymm19
// CHECK: vpmaxuw -4128(%rdx), %ymm22, %ymm19
// CHECK: encoding: [0x62,0xe2,0x4d,0x20,0x3e,0x9a,0xe0,0xef,0xff,0xff]
vpmaxuw -4128(%rdx), %ymm22, %ymm19
// CHECK: vpminsb %xmm27, %xmm28, %xmm25
// CHECK: encoding: [0x62,0x02,0x1d,0x00,0x38,0xcb]
vpminsb %xmm27, %xmm28, %xmm25
// CHECK: vpminsb %xmm27, %xmm28, %xmm25 {%k1}
// CHECK: encoding: [0x62,0x02,0x1d,0x01,0x38,0xcb]
vpminsb %xmm27, %xmm28, %xmm25 {%k1}
// CHECK: vpminsb %xmm27, %xmm28, %xmm25 {%k1} {z}
// CHECK: encoding: [0x62,0x02,0x1d,0x81,0x38,0xcb]
vpminsb %xmm27, %xmm28, %xmm25 {%k1} {z}
// CHECK: vpminsb (%rcx), %xmm28, %xmm25
// CHECK: encoding: [0x62,0x62,0x1d,0x00,0x38,0x09]
vpminsb (%rcx), %xmm28, %xmm25
// CHECK: vpminsb 291(%rax,%r14,8), %xmm28, %xmm25
// CHECK: encoding: [0x62,0x22,0x1d,0x00,0x38,0x8c,0xf0,0x23,0x01,0x00,0x00]
vpminsb 291(%rax,%r14,8), %xmm28, %xmm25
// CHECK: vpminsb 2032(%rdx), %xmm28, %xmm25
// CHECK: encoding: [0x62,0x62,0x1d,0x00,0x38,0x4a,0x7f]
vpminsb 2032(%rdx), %xmm28, %xmm25
// CHECK: vpminsb 2048(%rdx), %xmm28, %xmm25
// CHECK: encoding: [0x62,0x62,0x1d,0x00,0x38,0x8a,0x00,0x08,0x00,0x00]
vpminsb 2048(%rdx), %xmm28, %xmm25
// CHECK: vpminsb -2048(%rdx), %xmm28, %xmm25
// CHECK: encoding: [0x62,0x62,0x1d,0x00,0x38,0x4a,0x80]
vpminsb -2048(%rdx), %xmm28, %xmm25
// CHECK: vpminsb -2064(%rdx), %xmm28, %xmm25
// CHECK: encoding: [0x62,0x62,0x1d,0x00,0x38,0x8a,0xf0,0xf7,0xff,0xff]
vpminsb -2064(%rdx), %xmm28, %xmm25
// CHECK: vpminsb %ymm27, %ymm20, %ymm27
// CHECK: encoding: [0x62,0x02,0x5d,0x20,0x38,0xdb]
vpminsb %ymm27, %ymm20, %ymm27
// CHECK: vpminsb %ymm27, %ymm20, %ymm27 {%k6}
// CHECK: encoding: [0x62,0x02,0x5d,0x26,0x38,0xdb]
vpminsb %ymm27, %ymm20, %ymm27 {%k6}
// CHECK: vpminsb %ymm27, %ymm20, %ymm27 {%k6} {z}
// CHECK: encoding: [0x62,0x02,0x5d,0xa6,0x38,0xdb]
vpminsb %ymm27, %ymm20, %ymm27 {%k6} {z}
// CHECK: vpminsb (%rcx), %ymm20, %ymm27
// CHECK: encoding: [0x62,0x62,0x5d,0x20,0x38,0x19]
vpminsb (%rcx), %ymm20, %ymm27
// CHECK: vpminsb 291(%rax,%r14,8), %ymm20, %ymm27
// CHECK: encoding: [0x62,0x22,0x5d,0x20,0x38,0x9c,0xf0,0x23,0x01,0x00,0x00]
vpminsb 291(%rax,%r14,8), %ymm20, %ymm27
// CHECK: vpminsb 4064(%rdx), %ymm20, %ymm27
// CHECK: encoding: [0x62,0x62,0x5d,0x20,0x38,0x5a,0x7f]
vpminsb 4064(%rdx), %ymm20, %ymm27
// CHECK: vpminsb 4096(%rdx), %ymm20, %ymm27
// CHECK: encoding: [0x62,0x62,0x5d,0x20,0x38,0x9a,0x00,0x10,0x00,0x00]
vpminsb 4096(%rdx), %ymm20, %ymm27
// CHECK: vpminsb -4096(%rdx), %ymm20, %ymm27
// CHECK: encoding: [0x62,0x62,0x5d,0x20,0x38,0x5a,0x80]
vpminsb -4096(%rdx), %ymm20, %ymm27
// CHECK: vpminsb -4128(%rdx), %ymm20, %ymm27
// CHECK: encoding: [0x62,0x62,0x5d,0x20,0x38,0x9a,0xe0,0xef,0xff,0xff]
vpminsb -4128(%rdx), %ymm20, %ymm27
// CHECK: vpminsw %xmm19, %xmm26, %xmm27
// CHECK: encoding: [0x62,0x21,0x2d,0x00,0xea,0xdb]
vpminsw %xmm19, %xmm26, %xmm27
// CHECK: vpminsw %xmm19, %xmm26, %xmm27 {%k2}
// CHECK: encoding: [0x62,0x21,0x2d,0x02,0xea,0xdb]
vpminsw %xmm19, %xmm26, %xmm27 {%k2}
// CHECK: vpminsw %xmm19, %xmm26, %xmm27 {%k2} {z}
// CHECK: encoding: [0x62,0x21,0x2d,0x82,0xea,0xdb]
vpminsw %xmm19, %xmm26, %xmm27 {%k2} {z}
// CHECK: vpminsw (%rcx), %xmm26, %xmm27
// CHECK: encoding: [0x62,0x61,0x2d,0x00,0xea,0x19]
vpminsw (%rcx), %xmm26, %xmm27
// CHECK: vpminsw 291(%rax,%r14,8), %xmm26, %xmm27
// CHECK: encoding: [0x62,0x21,0x2d,0x00,0xea,0x9c,0xf0,0x23,0x01,0x00,0x00]
vpminsw 291(%rax,%r14,8), %xmm26, %xmm27
// CHECK: vpminsw 2032(%rdx), %xmm26, %xmm27
// CHECK: encoding: [0x62,0x61,0x2d,0x00,0xea,0x5a,0x7f]
vpminsw 2032(%rdx), %xmm26, %xmm27
// CHECK: vpminsw 2048(%rdx), %xmm26, %xmm27
// CHECK: encoding: [0x62,0x61,0x2d,0x00,0xea,0x9a,0x00,0x08,0x00,0x00]
vpminsw 2048(%rdx), %xmm26, %xmm27
// CHECK: vpminsw -2048(%rdx), %xmm26, %xmm27
// CHECK: encoding: [0x62,0x61,0x2d,0x00,0xea,0x5a,0x80]
vpminsw -2048(%rdx), %xmm26, %xmm27
// CHECK: vpminsw -2064(%rdx), %xmm26, %xmm27
// CHECK: encoding: [0x62,0x61,0x2d,0x00,0xea,0x9a,0xf0,0xf7,0xff,0xff]
vpminsw -2064(%rdx), %xmm26, %xmm27
// CHECK: vpminsw %ymm27, %ymm23, %ymm21
// CHECK: encoding: [0x62,0x81,0x45,0x20,0xea,0xeb]
vpminsw %ymm27, %ymm23, %ymm21
// CHECK: vpminsw %ymm27, %ymm23, %ymm21 {%k2}
// CHECK: encoding: [0x62,0x81,0x45,0x22,0xea,0xeb]
vpminsw %ymm27, %ymm23, %ymm21 {%k2}
// CHECK: vpminsw %ymm27, %ymm23, %ymm21 {%k2} {z}
// CHECK: encoding: [0x62,0x81,0x45,0xa2,0xea,0xeb]
vpminsw %ymm27, %ymm23, %ymm21 {%k2} {z}
// CHECK: vpminsw (%rcx), %ymm23, %ymm21
// CHECK: encoding: [0x62,0xe1,0x45,0x20,0xea,0x29]
vpminsw (%rcx), %ymm23, %ymm21
// CHECK: vpminsw 291(%rax,%r14,8), %ymm23, %ymm21
// CHECK: encoding: [0x62,0xa1,0x45,0x20,0xea,0xac,0xf0,0x23,0x01,0x00,0x00]
vpminsw 291(%rax,%r14,8), %ymm23, %ymm21
// CHECK: vpminsw 4064(%rdx), %ymm23, %ymm21
// CHECK: encoding: [0x62,0xe1,0x45,0x20,0xea,0x6a,0x7f]
vpminsw 4064(%rdx), %ymm23, %ymm21
// CHECK: vpminsw 4096(%rdx), %ymm23, %ymm21
// CHECK: encoding: [0x62,0xe1,0x45,0x20,0xea,0xaa,0x00,0x10,0x00,0x00]
vpminsw 4096(%rdx), %ymm23, %ymm21
// CHECK: vpminsw -4096(%rdx), %ymm23, %ymm21
// CHECK: encoding: [0x62,0xe1,0x45,0x20,0xea,0x6a,0x80]
vpminsw -4096(%rdx), %ymm23, %ymm21
// CHECK: vpminsw -4128(%rdx), %ymm23, %ymm21
// CHECK: encoding: [0x62,0xe1,0x45,0x20,0xea,0xaa,0xe0,0xef,0xff,0xff]
vpminsw -4128(%rdx), %ymm23, %ymm21
// CHECK: vpminub %xmm27, %xmm27, %xmm22
// CHECK: encoding: [0x62,0x81,0x25,0x00,0xda,0xf3]
vpminub %xmm27, %xmm27, %xmm22
// CHECK: vpminub %xmm27, %xmm27, %xmm22 {%k5}
// CHECK: encoding: [0x62,0x81,0x25,0x05,0xda,0xf3]
vpminub %xmm27, %xmm27, %xmm22 {%k5}
// CHECK: vpminub %xmm27, %xmm27, %xmm22 {%k5} {z}
// CHECK: encoding: [0x62,0x81,0x25,0x85,0xda,0xf3]
vpminub %xmm27, %xmm27, %xmm22 {%k5} {z}
// CHECK: vpminub (%rcx), %xmm27, %xmm22
// CHECK: encoding: [0x62,0xe1,0x25,0x00,0xda,0x31]
vpminub (%rcx), %xmm27, %xmm22
// CHECK: vpminub 291(%rax,%r14,8), %xmm27, %xmm22
// CHECK: encoding: [0x62,0xa1,0x25,0x00,0xda,0xb4,0xf0,0x23,0x01,0x00,0x00]
vpminub 291(%rax,%r14,8), %xmm27, %xmm22
// CHECK: vpminub 2032(%rdx), %xmm27, %xmm22
// CHECK: encoding: [0x62,0xe1,0x25,0x00,0xda,0x72,0x7f]
vpminub 2032(%rdx), %xmm27, %xmm22
// CHECK: vpminub 2048(%rdx), %xmm27, %xmm22
// CHECK: encoding: [0x62,0xe1,0x25,0x00,0xda,0xb2,0x00,0x08,0x00,0x00]
vpminub 2048(%rdx), %xmm27, %xmm22
// CHECK: vpminub -2048(%rdx), %xmm27, %xmm22
// CHECK: encoding: [0x62,0xe1,0x25,0x00,0xda,0x72,0x80]
vpminub -2048(%rdx), %xmm27, %xmm22
// CHECK: vpminub -2064(%rdx), %xmm27, %xmm22
// CHECK: encoding: [0x62,0xe1,0x25,0x00,0xda,0xb2,0xf0,0xf7,0xff,0xff]
vpminub -2064(%rdx), %xmm27, %xmm22
// CHECK: vpminub %ymm27, %ymm25, %ymm27
// CHECK: encoding: [0x62,0x01,0x35,0x20,0xda,0xdb]
vpminub %ymm27, %ymm25, %ymm27
// CHECK: vpminub %ymm27, %ymm25, %ymm27 {%k3}
// CHECK: encoding: [0x62,0x01,0x35,0x23,0xda,0xdb]
vpminub %ymm27, %ymm25, %ymm27 {%k3}
// CHECK: vpminub %ymm27, %ymm25, %ymm27 {%k3} {z}
// CHECK: encoding: [0x62,0x01,0x35,0xa3,0xda,0xdb]
vpminub %ymm27, %ymm25, %ymm27 {%k3} {z}
// CHECK: vpminub (%rcx), %ymm25, %ymm27
// CHECK: encoding: [0x62,0x61,0x35,0x20,0xda,0x19]
vpminub (%rcx), %ymm25, %ymm27
// CHECK: vpminub 291(%rax,%r14,8), %ymm25, %ymm27
// CHECK: encoding: [0x62,0x21,0x35,0x20,0xda,0x9c,0xf0,0x23,0x01,0x00,0x00]
vpminub 291(%rax,%r14,8), %ymm25, %ymm27
// CHECK: vpminub 4064(%rdx), %ymm25, %ymm27
// CHECK: encoding: [0x62,0x61,0x35,0x20,0xda,0x5a,0x7f]
vpminub 4064(%rdx), %ymm25, %ymm27
// CHECK: vpminub 4096(%rdx), %ymm25, %ymm27
// CHECK: encoding: [0x62,0x61,0x35,0x20,0xda,0x9a,0x00,0x10,0x00,0x00]
vpminub 4096(%rdx), %ymm25, %ymm27
// CHECK: vpminub -4096(%rdx), %ymm25, %ymm27
// CHECK: encoding: [0x62,0x61,0x35,0x20,0xda,0x5a,0x80]
vpminub -4096(%rdx), %ymm25, %ymm27
// CHECK: vpminub -4128(%rdx), %ymm25, %ymm27
// CHECK: encoding: [0x62,0x61,0x35,0x20,0xda,0x9a,0xe0,0xef,0xff,0xff]
vpminub -4128(%rdx), %ymm25, %ymm27
// CHECK: vpminuw %xmm23, %xmm17, %xmm28
// CHECK: encoding: [0x62,0x22,0x75,0x00,0x3a,0xe7]
vpminuw %xmm23, %xmm17, %xmm28
// CHECK: vpminuw %xmm23, %xmm17, %xmm28 {%k2}
// CHECK: encoding: [0x62,0x22,0x75,0x02,0x3a,0xe7]
vpminuw %xmm23, %xmm17, %xmm28 {%k2}
// CHECK: vpminuw %xmm23, %xmm17, %xmm28 {%k2} {z}
// CHECK: encoding: [0x62,0x22,0x75,0x82,0x3a,0xe7]
vpminuw %xmm23, %xmm17, %xmm28 {%k2} {z}
// CHECK: vpminuw (%rcx), %xmm17, %xmm28
// CHECK: encoding: [0x62,0x62,0x75,0x00,0x3a,0x21]
vpminuw (%rcx), %xmm17, %xmm28
// CHECK: vpminuw 291(%rax,%r14,8), %xmm17, %xmm28
// CHECK: encoding: [0x62,0x22,0x75,0x00,0x3a,0xa4,0xf0,0x23,0x01,0x00,0x00]
vpminuw 291(%rax,%r14,8), %xmm17, %xmm28
// CHECK: vpminuw 2032(%rdx), %xmm17, %xmm28
// CHECK: encoding: [0x62,0x62,0x75,0x00,0x3a,0x62,0x7f]
vpminuw 2032(%rdx), %xmm17, %xmm28
// CHECK: vpminuw 2048(%rdx), %xmm17, %xmm28
// CHECK: encoding: [0x62,0x62,0x75,0x00,0x3a,0xa2,0x00,0x08,0x00,0x00]
vpminuw 2048(%rdx), %xmm17, %xmm28
// CHECK: vpminuw -2048(%rdx), %xmm17, %xmm28
// CHECK: encoding: [0x62,0x62,0x75,0x00,0x3a,0x62,0x80]
vpminuw -2048(%rdx), %xmm17, %xmm28
// CHECK: vpminuw -2064(%rdx), %xmm17, %xmm28
// CHECK: encoding: [0x62,0x62,0x75,0x00,0x3a,0xa2,0xf0,0xf7,0xff,0xff]
vpminuw -2064(%rdx), %xmm17, %xmm28
// CHECK: vpminuw %ymm18, %ymm27, %ymm20
// CHECK: encoding: [0x62,0xa2,0x25,0x20,0x3a,0xe2]
vpminuw %ymm18, %ymm27, %ymm20
// CHECK: vpminuw %ymm18, %ymm27, %ymm20 {%k7}
// CHECK: encoding: [0x62,0xa2,0x25,0x27,0x3a,0xe2]
vpminuw %ymm18, %ymm27, %ymm20 {%k7}
// CHECK: vpminuw %ymm18, %ymm27, %ymm20 {%k7} {z}
// CHECK: encoding: [0x62,0xa2,0x25,0xa7,0x3a,0xe2]
vpminuw %ymm18, %ymm27, %ymm20 {%k7} {z}
// CHECK: vpminuw (%rcx), %ymm27, %ymm20
// CHECK: encoding: [0x62,0xe2,0x25,0x20,0x3a,0x21]
vpminuw (%rcx), %ymm27, %ymm20
// CHECK: vpminuw 291(%rax,%r14,8), %ymm27, %ymm20
// CHECK: encoding: [0x62,0xa2,0x25,0x20,0x3a,0xa4,0xf0,0x23,0x01,0x00,0x00]
vpminuw 291(%rax,%r14,8), %ymm27, %ymm20
// CHECK: vpminuw 4064(%rdx), %ymm27, %ymm20
// CHECK: encoding: [0x62,0xe2,0x25,0x20,0x3a,0x62,0x7f]
vpminuw 4064(%rdx), %ymm27, %ymm20
// CHECK: vpminuw 4096(%rdx), %ymm27, %ymm20
// CHECK: encoding: [0x62,0xe2,0x25,0x20,0x3a,0xa2,0x00,0x10,0x00,0x00]
vpminuw 4096(%rdx), %ymm27, %ymm20
// CHECK: vpminuw -4096(%rdx), %ymm27, %ymm20
// CHECK: encoding: [0x62,0xe2,0x25,0x20,0x3a,0x62,0x80]
vpminuw -4096(%rdx), %ymm27, %ymm20
// CHECK: vpminuw -4128(%rdx), %ymm27, %ymm20
// CHECK: encoding: [0x62,0xe2,0x25,0x20,0x3a,0xa2,0xe0,0xef,0xff,0xff]
vpminuw -4128(%rdx), %ymm27, %ymm20
// CHECK: vpmullw %xmm26, %xmm19, %xmm29
// CHECK: encoding: [0x62,0x01,0x65,0x00,0xd5,0xea]
vpmullw %xmm26, %xmm19, %xmm29
// CHECK: vpmullw %xmm26, %xmm19, %xmm29 {%k7}
// CHECK: encoding: [0x62,0x01,0x65,0x07,0xd5,0xea]
vpmullw %xmm26, %xmm19, %xmm29 {%k7}
// CHECK: vpmullw %xmm26, %xmm19, %xmm29 {%k7} {z}
// CHECK: encoding: [0x62,0x01,0x65,0x87,0xd5,0xea]
vpmullw %xmm26, %xmm19, %xmm29 {%k7} {z}
// CHECK: vpmullw (%rcx), %xmm19, %xmm29
// CHECK: encoding: [0x62,0x61,0x65,0x00,0xd5,0x29]
vpmullw (%rcx), %xmm19, %xmm29
// CHECK: vpmullw 291(%rax,%r14,8), %xmm19, %xmm29
// CHECK: encoding: [0x62,0x21,0x65,0x00,0xd5,0xac,0xf0,0x23,0x01,0x00,0x00]
vpmullw 291(%rax,%r14,8), %xmm19, %xmm29
// CHECK: vpmullw 2032(%rdx), %xmm19, %xmm29
// CHECK: encoding: [0x62,0x61,0x65,0x00,0xd5,0x6a,0x7f]
vpmullw 2032(%rdx), %xmm19, %xmm29
// CHECK: vpmullw 2048(%rdx), %xmm19, %xmm29
// CHECK: encoding: [0x62,0x61,0x65,0x00,0xd5,0xaa,0x00,0x08,0x00,0x00]
vpmullw 2048(%rdx), %xmm19, %xmm29
// CHECK: vpmullw -2048(%rdx), %xmm19, %xmm29
// CHECK: encoding: [0x62,0x61,0x65,0x00,0xd5,0x6a,0x80]
vpmullw -2048(%rdx), %xmm19, %xmm29
// CHECK: vpmullw -2064(%rdx), %xmm19, %xmm29
// CHECK: encoding: [0x62,0x61,0x65,0x00,0xd5,0xaa,0xf0,0xf7,0xff,0xff]
vpmullw -2064(%rdx), %xmm19, %xmm29
// CHECK: vpmullw %ymm20, %ymm24, %ymm17
// CHECK: encoding: [0x62,0xa1,0x3d,0x20,0xd5,0xcc]
vpmullw %ymm20, %ymm24, %ymm17
// CHECK: vpmullw %ymm20, %ymm24, %ymm17 {%k5}
// CHECK: encoding: [0x62,0xa1,0x3d,0x25,0xd5,0xcc]
vpmullw %ymm20, %ymm24, %ymm17 {%k5}
// CHECK: vpmullw %ymm20, %ymm24, %ymm17 {%k5} {z}
// CHECK: encoding: [0x62,0xa1,0x3d,0xa5,0xd5,0xcc]
vpmullw %ymm20, %ymm24, %ymm17 {%k5} {z}
// CHECK: vpmullw (%rcx), %ymm24, %ymm17
// CHECK: encoding: [0x62,0xe1,0x3d,0x20,0xd5,0x09]
vpmullw (%rcx), %ymm24, %ymm17
// CHECK: vpmullw 291(%rax,%r14,8), %ymm24, %ymm17
// CHECK: encoding: [0x62,0xa1,0x3d,0x20,0xd5,0x8c,0xf0,0x23,0x01,0x00,0x00]
vpmullw 291(%rax,%r14,8), %ymm24, %ymm17
// CHECK: vpmullw 4064(%rdx), %ymm24, %ymm17
// CHECK: encoding: [0x62,0xe1,0x3d,0x20,0xd5,0x4a,0x7f]
vpmullw 4064(%rdx), %ymm24, %ymm17
// CHECK: vpmullw 4096(%rdx), %ymm24, %ymm17
// CHECK: encoding: [0x62,0xe1,0x3d,0x20,0xd5,0x8a,0x00,0x10,0x00,0x00]
vpmullw 4096(%rdx), %ymm24, %ymm17
// CHECK: vpmullw -4096(%rdx), %ymm24, %ymm17
// CHECK: encoding: [0x62,0xe1,0x3d,0x20,0xd5,0x4a,0x80]
vpmullw -4096(%rdx), %ymm24, %ymm17
// CHECK: vpmullw -4128(%rdx), %ymm24, %ymm17
// CHECK: encoding: [0x62,0xe1,0x3d,0x20,0xd5,0x8a,0xe0,0xef,0xff,0xff]
vpmullw -4128(%rdx), %ymm24, %ymm17
// CHECK: vpsubb %xmm28, %xmm29, %xmm27
// CHECK: encoding: [0x62,0x01,0x15,0x00,0xf8,0xdc]
vpsubb %xmm28, %xmm29, %xmm27
// CHECK: vpsubb %xmm28, %xmm29, %xmm27 {%k3}
// CHECK: encoding: [0x62,0x01,0x15,0x03,0xf8,0xdc]
vpsubb %xmm28, %xmm29, %xmm27 {%k3}
// CHECK: vpsubb %xmm28, %xmm29, %xmm27 {%k3} {z}
// CHECK: encoding: [0x62,0x01,0x15,0x83,0xf8,0xdc]
vpsubb %xmm28, %xmm29, %xmm27 {%k3} {z}
// CHECK: vpsubb (%rcx), %xmm29, %xmm27
// CHECK: encoding: [0x62,0x61,0x15,0x00,0xf8,0x19]
vpsubb (%rcx), %xmm29, %xmm27
// CHECK: vpsubb 291(%rax,%r14,8), %xmm29, %xmm27
// CHECK: encoding: [0x62,0x21,0x15,0x00,0xf8,0x9c,0xf0,0x23,0x01,0x00,0x00]
vpsubb 291(%rax,%r14,8), %xmm29, %xmm27
// CHECK: vpsubb 2032(%rdx), %xmm29, %xmm27
// CHECK: encoding: [0x62,0x61,0x15,0x00,0xf8,0x5a,0x7f]
vpsubb 2032(%rdx), %xmm29, %xmm27
// CHECK: vpsubb 2048(%rdx), %xmm29, %xmm27
// CHECK: encoding: [0x62,0x61,0x15,0x00,0xf8,0x9a,0x00,0x08,0x00,0x00]
vpsubb 2048(%rdx), %xmm29, %xmm27
// CHECK: vpsubb -2048(%rdx), %xmm29, %xmm27
// CHECK: encoding: [0x62,0x61,0x15,0x00,0xf8,0x5a,0x80]
vpsubb -2048(%rdx), %xmm29, %xmm27
// CHECK: vpsubb -2064(%rdx), %xmm29, %xmm27
// CHECK: encoding: [0x62,0x61,0x15,0x00,0xf8,0x9a,0xf0,0xf7,0xff,0xff]
vpsubb -2064(%rdx), %xmm29, %xmm27
// CHECK: vpsubb %ymm28, %ymm20, %ymm20
// CHECK: encoding: [0x62,0x81,0x5d,0x20,0xf8,0xe4]
vpsubb %ymm28, %ymm20, %ymm20
// CHECK: vpsubb %ymm28, %ymm20, %ymm20 {%k2}
// CHECK: encoding: [0x62,0x81,0x5d,0x22,0xf8,0xe4]
vpsubb %ymm28, %ymm20, %ymm20 {%k2}
// CHECK: vpsubb %ymm28, %ymm20, %ymm20 {%k2} {z}
// CHECK: encoding: [0x62,0x81,0x5d,0xa2,0xf8,0xe4]
vpsubb %ymm28, %ymm20, %ymm20 {%k2} {z}
// CHECK: vpsubb (%rcx), %ymm20, %ymm20
// CHECK: encoding: [0x62,0xe1,0x5d,0x20,0xf8,0x21]
vpsubb (%rcx), %ymm20, %ymm20
// CHECK: vpsubb 291(%rax,%r14,8), %ymm20, %ymm20
// CHECK: encoding: [0x62,0xa1,0x5d,0x20,0xf8,0xa4,0xf0,0x23,0x01,0x00,0x00]
vpsubb 291(%rax,%r14,8), %ymm20, %ymm20
// CHECK: vpsubb 4064(%rdx), %ymm20, %ymm20
// CHECK: encoding: [0x62,0xe1,0x5d,0x20,0xf8,0x62,0x7f]
vpsubb 4064(%rdx), %ymm20, %ymm20
// CHECK: vpsubb 4096(%rdx), %ymm20, %ymm20
// CHECK: encoding: [0x62,0xe1,0x5d,0x20,0xf8,0xa2,0x00,0x10,0x00,0x00]
vpsubb 4096(%rdx), %ymm20, %ymm20
// CHECK: vpsubb -4096(%rdx), %ymm20, %ymm20
// CHECK: encoding: [0x62,0xe1,0x5d,0x20,0xf8,0x62,0x80]
vpsubb -4096(%rdx), %ymm20, %ymm20
// CHECK: vpsubb -4128(%rdx), %ymm20, %ymm20
// CHECK: encoding: [0x62,0xe1,0x5d,0x20,0xf8,0xa2,0xe0,0xef,0xff,0xff]
vpsubb -4128(%rdx), %ymm20, %ymm20
// CHECK: vpsubw %xmm18, %xmm22, %xmm17
// CHECK: encoding: [0x62,0xa1,0x4d,0x00,0xf9,0xca]
vpsubw %xmm18, %xmm22, %xmm17
// CHECK: vpsubw %xmm18, %xmm22, %xmm17 {%k6}
// CHECK: encoding: [0x62,0xa1,0x4d,0x06,0xf9,0xca]
vpsubw %xmm18, %xmm22, %xmm17 {%k6}
// CHECK: vpsubw %xmm18, %xmm22, %xmm17 {%k6} {z}
// CHECK: encoding: [0x62,0xa1,0x4d,0x86,0xf9,0xca]
vpsubw %xmm18, %xmm22, %xmm17 {%k6} {z}
// CHECK: vpsubw (%rcx), %xmm22, %xmm17
// CHECK: encoding: [0x62,0xe1,0x4d,0x00,0xf9,0x09]
vpsubw (%rcx), %xmm22, %xmm17
// CHECK: vpsubw 291(%rax,%r14,8), %xmm22, %xmm17
// CHECK: encoding: [0x62,0xa1,0x4d,0x00,0xf9,0x8c,0xf0,0x23,0x01,0x00,0x00]
vpsubw 291(%rax,%r14,8), %xmm22, %xmm17
// CHECK: vpsubw 2032(%rdx), %xmm22, %xmm17
// CHECK: encoding: [0x62,0xe1,0x4d,0x00,0xf9,0x4a,0x7f]
vpsubw 2032(%rdx), %xmm22, %xmm17
// CHECK: vpsubw 2048(%rdx), %xmm22, %xmm17
// CHECK: encoding: [0x62,0xe1,0x4d,0x00,0xf9,0x8a,0x00,0x08,0x00,0x00]
vpsubw 2048(%rdx), %xmm22, %xmm17
// CHECK: vpsubw -2048(%rdx), %xmm22, %xmm17
// CHECK: encoding: [0x62,0xe1,0x4d,0x00,0xf9,0x4a,0x80]
vpsubw -2048(%rdx), %xmm22, %xmm17
// CHECK: vpsubw -2064(%rdx), %xmm22, %xmm17
// CHECK: encoding: [0x62,0xe1,0x4d,0x00,0xf9,0x8a,0xf0,0xf7,0xff,0xff]
vpsubw -2064(%rdx), %xmm22, %xmm17
// CHECK: vpsubw %ymm24, %ymm29, %ymm17
// CHECK: encoding: [0x62,0x81,0x15,0x20,0xf9,0xc8]
vpsubw %ymm24, %ymm29, %ymm17
// CHECK: vpsubw %ymm24, %ymm29, %ymm17 {%k2}
// CHECK: encoding: [0x62,0x81,0x15,0x22,0xf9,0xc8]
vpsubw %ymm24, %ymm29, %ymm17 {%k2}
// CHECK: vpsubw %ymm24, %ymm29, %ymm17 {%k2} {z}
// CHECK: encoding: [0x62,0x81,0x15,0xa2,0xf9,0xc8]
vpsubw %ymm24, %ymm29, %ymm17 {%k2} {z}
// CHECK: vpsubw (%rcx), %ymm29, %ymm17
// CHECK: encoding: [0x62,0xe1,0x15,0x20,0xf9,0x09]
vpsubw (%rcx), %ymm29, %ymm17
// CHECK: vpsubw 291(%rax,%r14,8), %ymm29, %ymm17
// CHECK: encoding: [0x62,0xa1,0x15,0x20,0xf9,0x8c,0xf0,0x23,0x01,0x00,0x00]
vpsubw 291(%rax,%r14,8), %ymm29, %ymm17
// CHECK: vpsubw 4064(%rdx), %ymm29, %ymm17
// CHECK: encoding: [0x62,0xe1,0x15,0x20,0xf9,0x4a,0x7f]
vpsubw 4064(%rdx), %ymm29, %ymm17
// CHECK: vpsubw 4096(%rdx), %ymm29, %ymm17
// CHECK: encoding: [0x62,0xe1,0x15,0x20,0xf9,0x8a,0x00,0x10,0x00,0x00]
vpsubw 4096(%rdx), %ymm29, %ymm17
// CHECK: vpsubw -4096(%rdx), %ymm29, %ymm17
// CHECK: encoding: [0x62,0xe1,0x15,0x20,0xf9,0x4a,0x80]
vpsubw -4096(%rdx), %ymm29, %ymm17
// CHECK: vpsubw -4128(%rdx), %ymm29, %ymm17
// CHECK: encoding: [0x62,0xe1,0x15,0x20,0xf9,0x8a,0xe0,0xef,0xff,0xff]
vpsubw -4128(%rdx), %ymm29, %ymm17
// CHECK: vmovdqu8 %xmm23, %xmm26
// CHECK: encoding: [0x62,0x21,0x7f,0x08,0x6f,0xd7]
vmovdqu8 %xmm23, %xmm26