[SKX] Added new versions of cmp instructions in avx512_icmp_cc multiclass, added VL multiclass.

Added encoding tests


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@216532 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Robert Khasanov 2014-08-27 09:34:37 +00:00
parent fe0c6ead85
commit e79a94a839
5 changed files with 1254 additions and 36 deletions

View File

@ -1147,68 +1147,182 @@ defm VPCMPGTQ : avx512_icmp_packed_vl<0x37, "vpcmpgtq", X86pcmpgtm,
T8PD, VEX_W, EVEX_CD8<64, CD8VF>;
def : Pat<(v8i1 (X86pcmpgtm (v8i32 VR256X:$src1), (v8i32 VR256X:$src2))),
(COPY_TO_REGCLASS (VPCMPGTDZrr
(COPY_TO_REGCLASS (VPCMPGTDZrr
(v16i32 (SUBREG_TO_REG (i32 0), VR256X:$src1, sub_ymm)),
(v16i32 (SUBREG_TO_REG (i32 0), VR256X:$src2, sub_ymm))), VK8)>;
def : Pat<(v8i1 (X86pcmpeqm (v8i32 VR256X:$src1), (v8i32 VR256X:$src2))),
(COPY_TO_REGCLASS (VPCMPEQDZrr
(COPY_TO_REGCLASS (VPCMPEQDZrr
(v16i32 (SUBREG_TO_REG (i32 0), VR256X:$src1, sub_ymm)),
(v16i32 (SUBREG_TO_REG (i32 0), VR256X:$src2, sub_ymm))), VK8)>;
multiclass avx512_icmp_cc<bits<8> opc, RegisterClass WMRC, RegisterClass KRC,
RegisterClass RC, X86MemOperand x86memop, PatFrag memop_frag,
SDNode OpNode, ValueType vt, Operand CC, string Suffix> {
multiclass avx512_icmp_cc<bits<8> opc, string Suffix, SDNode OpNode,
X86VectorVTInfo _> {
def rri : AVX512AIi8<opc, MRMSrcReg,
(outs KRC:$dst), (ins RC:$src1, RC:$src2, CC:$cc),
(outs _.KRC:$dst), (ins _.RC:$src1, _.RC:$src2, AVXCC:$cc),
!strconcat("vpcmp${cc}", Suffix,
"\t{$src2, $src1, $dst|$dst, $src1, $src2}"),
[(set KRC:$dst, (OpNode (vt RC:$src1), (vt RC:$src2), imm:$cc))],
[(set _.KRC:$dst, (OpNode (_.VT _.RC:$src1), (_.VT _.RC:$src2),
imm:$cc))],
IIC_SSE_ALU_F32P_RR>, EVEX_4V;
let mayLoad = 1 in
def rmi : AVX512AIi8<opc, MRMSrcMem,
(outs KRC:$dst), (ins RC:$src1, x86memop:$src2, CC:$cc),
(outs _.KRC:$dst), (ins _.RC:$src1, _.MemOp:$src2, AVXCC:$cc),
!strconcat("vpcmp${cc}", Suffix,
"\t{$src2, $src1, $dst|$dst, $src1, $src2}"),
[(set KRC:$dst, (OpNode (vt RC:$src1), (memop_frag addr:$src2),
imm:$cc))], IIC_SSE_ALU_F32P_RM>, EVEX_4V;
[(set _.KRC:$dst, (OpNode (_.VT _.RC:$src1),
(_.VT (bitconvert (_.LdFrag addr:$src2))),
imm:$cc))],
IIC_SSE_ALU_F32P_RM>, EVEX_4V;
def rrik : AVX512AIi8<opc, MRMSrcReg,
(outs _.KRC:$dst), (ins _.KRCWM:$mask, _.RC:$src1, _.RC:$src2,
AVXCC:$cc),
!strconcat("vpcmp${cc}", Suffix,
"\t{$src2, $src1, $dst {${mask}}|",
"$dst {${mask}}, $src1, $src2}"),
[(set _.KRC:$dst, (and _.KRCWM:$mask,
(OpNode (_.VT _.RC:$src1), (_.VT _.RC:$src2),
imm:$cc)))],
IIC_SSE_ALU_F32P_RR>, EVEX_4V, EVEX_K;
let mayLoad = 1 in
def rmik : AVX512AIi8<opc, MRMSrcMem,
(outs _.KRC:$dst), (ins _.KRCWM:$mask, _.RC:$src1, _.MemOp:$src2,
AVXCC:$cc),
!strconcat("vpcmp${cc}", Suffix,
"\t{$src2, $src1, $dst {${mask}}|",
"$dst {${mask}}, $src1, $src2}"),
[(set _.KRC:$dst, (and _.KRCWM:$mask,
(OpNode (_.VT _.RC:$src1),
(_.VT (bitconvert (_.LdFrag addr:$src2))),
imm:$cc)))],
IIC_SSE_ALU_F32P_RM>, EVEX_4V, EVEX_K;
// Accept explicit immediate argument form instead of comparison code.
let isAsmParserOnly = 1, hasSideEffects = 0 in {
def rri_alt : AVX512AIi8<opc, MRMSrcReg,
(outs KRC:$dst), (ins RC:$src1, RC:$src2, i8imm:$cc),
!strconcat("vpcmp", Suffix,
"\t{$cc, $src2, $src1, $dst|$dst, $src1, $src2, $cc}"),
(outs _.KRC:$dst), (ins _.RC:$src1, _.RC:$src2, i8imm:$cc),
!strconcat("vpcmp", Suffix, "\t{$cc, $src2, $src1, $dst|",
"$dst, $src1, $src2, $cc}"),
[], IIC_SSE_ALU_F32P_RR>, EVEX_4V;
def rrik_alt : AVX512AIi8<opc, MRMSrcReg,
(outs KRC:$dst), (ins WMRC:$mask, RC:$src1, RC:$src2, i8imm:$cc),
!strconcat("vpcmp", Suffix,
"\t{$cc, $src2, $src1, $dst {${mask}}|$dst {${mask}}, $src1, $src2, $cc}"),
[], IIC_SSE_ALU_F32P_RR>, EVEX_4V, EVEX_K;
def rmi_alt : AVX512AIi8<opc, MRMSrcMem,
(outs KRC:$dst), (ins RC:$src1, x86memop:$src2, i8imm:$cc),
!strconcat("vpcmp", Suffix,
"\t{$cc, $src2, $src1, $dst|$dst, $src1, $src2, $cc}"),
(outs _.KRC:$dst), (ins _.RC:$src1, _.MemOp:$src2, i8imm:$cc),
!strconcat("vpcmp", Suffix, "\t{$cc, $src2, $src1, $dst|",
"$dst, $src1, $src2, $cc}"),
[], IIC_SSE_ALU_F32P_RM>, EVEX_4V;
def rmik_alt : AVX512AIi8<opc, MRMSrcMem,
(outs KRC:$dst), (ins WMRC:$mask, RC:$src1, x86memop:$src2, i8imm:$cc),
def rrik_alt : AVX512AIi8<opc, MRMSrcReg,
(outs _.KRC:$dst), (ins _.KRCWM:$mask, _.RC:$src1, _.RC:$src2,
i8imm:$cc),
!strconcat("vpcmp", Suffix,
"\t{$cc, $src2, $src1, $dst {${mask}}|$dst {${mask}}, $src1, $src2, $cc}"),
"\t{$cc, $src2, $src1, $dst {${mask}}|",
"$dst {${mask}}, $src1, $src2, $cc}"),
[], IIC_SSE_ALU_F32P_RR>, EVEX_4V, EVEX_K;
def rmik_alt : AVX512AIi8<opc, MRMSrcMem,
(outs _.KRC:$dst), (ins _.KRCWM:$mask, _.RC:$src1, _.MemOp:$src2,
i8imm:$cc),
!strconcat("vpcmp", Suffix,
"\t{$cc, $src2, $src1, $dst {${mask}}|",
"$dst {${mask}}, $src1, $src2, $cc}"),
[], IIC_SSE_ALU_F32P_RM>, EVEX_4V, EVEX_K;
}
}
defm VPCMPDZ : avx512_icmp_cc<0x1F, VK16WM, VK16, VR512, i512mem, memopv16i32,
X86cmpm, v16i32, AVXCC, "d">,
EVEX_V512, EVEX_CD8<32, CD8VF>;
defm VPCMPUDZ : avx512_icmp_cc<0x1E, VK16WM, VK16, VR512, i512mem, memopv16i32,
X86cmpmu, v16i32, AVXCC, "ud">,
EVEX_V512, EVEX_CD8<32, CD8VF>;
multiclass avx512_icmp_cc_rmb<bits<8> opc, string Suffix, SDNode OpNode,
X86VectorVTInfo _> {
let mayLoad = 1 in {
def rmib : AVX512AIi8<opc, MRMSrcMem,
(outs _.KRC:$dst), (ins _.RC:$src1, _.ScalarMemOp:$src2,
AVXCC:$cc),
!strconcat("vpcmp${cc}", Suffix,
"\t{${src2}", _.BroadcastStr, ", $src1, $dst|",
"$dst, $src1, ${src2}", _.BroadcastStr, "}"),
[(set _.KRC:$dst, (OpNode (_.VT _.RC:$src1),
(X86VBroadcast (_.ScalarLdFrag addr:$src2)),
imm:$cc))],
IIC_SSE_ALU_F32P_RM>, EVEX_4V, EVEX_B;
def rmibk : AVX512AIi8<opc, MRMSrcMem,
(outs _.KRC:$dst), (ins _.KRCWM:$mask, _.RC:$src1,
_.ScalarMemOp:$src2, AVXCC:$cc),
!strconcat("vpcmp${cc}", Suffix,
"\t{${src2}", _.BroadcastStr, ", $src1, $dst {${mask}}|",
"$dst {${mask}}, $src1, ${src2}", _.BroadcastStr, "}"),
[(set _.KRC:$dst, (and _.KRCWM:$mask,
(OpNode (_.VT _.RC:$src1),
(X86VBroadcast (_.ScalarLdFrag addr:$src2)),
imm:$cc)))],
IIC_SSE_ALU_F32P_RM>, EVEX_4V, EVEX_K, EVEX_B;
}
defm VPCMPQZ : avx512_icmp_cc<0x1F, VK8WM, VK8, VR512, i512mem, memopv8i64,
X86cmpm, v8i64, AVXCC, "q">,
VEX_W, EVEX_V512, EVEX_CD8<64, CD8VF>;
defm VPCMPUQZ : avx512_icmp_cc<0x1E, VK8WM, VK8, VR512, i512mem, memopv8i64,
X86cmpmu, v8i64, AVXCC, "uq">,
VEX_W, EVEX_V512, EVEX_CD8<64, CD8VF>;
// Accept explicit immediate argument form instead of comparison code.
let isAsmParserOnly = 1, hasSideEffects = 0 in {
def rmib_alt : AVX512AIi8<opc, MRMSrcMem,
(outs _.KRC:$dst), (ins _.RC:$src1, _.ScalarMemOp:$src2,
i8imm:$cc),
!strconcat("vpcmp", Suffix,
"\t{$cc, ${src2}", _.BroadcastStr, ", $src1, $dst|",
"$dst, $src1, ${src2}", _.BroadcastStr, ", $cc}"),
[], IIC_SSE_ALU_F32P_RM>, EVEX_4V, EVEX_B;
def rmibk_alt : AVX512AIi8<opc, MRMSrcMem,
(outs _.KRC:$dst), (ins _.KRCWM:$mask, _.RC:$src1,
_.ScalarMemOp:$src2, i8imm:$cc),
!strconcat("vpcmp", Suffix,
"\t{$cc, ${src2}", _.BroadcastStr, ", $src1, $dst {${mask}}|",
"$dst {${mask}}, $src1, ${src2}", _.BroadcastStr, ", $cc}"),
[], IIC_SSE_ALU_F32P_RM>, EVEX_4V, EVEX_K, EVEX_B;
}
}
multiclass avx512_icmp_cc_vl<bits<8> opc, string Suffix, SDNode OpNode,
AVX512VLVectorVTInfo VTInfo, Predicate prd> {
let Predicates = [prd] in
defm Z : avx512_icmp_cc<opc, Suffix, OpNode, VTInfo.info512>, EVEX_V512;
let Predicates = [prd, HasVLX] in {
defm Z256 : avx512_icmp_cc<opc, Suffix, OpNode, VTInfo.info256>, EVEX_V256;
defm Z128 : avx512_icmp_cc<opc, Suffix, OpNode, VTInfo.info128>, EVEX_V128;
}
}
multiclass avx512_icmp_cc_rmb_vl<bits<8> opc, string Suffix, SDNode OpNode,
AVX512VLVectorVTInfo VTInfo, Predicate prd> {
let Predicates = [prd] in
defm Z : avx512_icmp_cc_rmb<opc, Suffix, OpNode, VTInfo.info512>,
EVEX_V512;
let Predicates = [prd, HasVLX] in {
defm Z256 : avx512_icmp_cc_rmb<opc, Suffix, OpNode, VTInfo.info256>,
EVEX_V256;
defm Z128 : avx512_icmp_cc_rmb<opc, Suffix, OpNode, VTInfo.info128>,
EVEX_V128;
}
}
defm VPCMPB : avx512_icmp_cc_vl<0x3F, "b", X86cmpm, avx512vl_i8_info,
HasBWI>, EVEX_CD8<8, CD8VF>;
defm VPCMPUB : avx512_icmp_cc_vl<0x3E, "ub", X86cmpmu, avx512vl_i8_info,
HasBWI>, EVEX_CD8<8, CD8VF>;
defm VPCMPW : avx512_icmp_cc_vl<0x3F, "w", X86cmpm, avx512vl_i16_info,
HasBWI>, VEX_W, EVEX_CD8<16, CD8VF>;
defm VPCMPUW : avx512_icmp_cc_vl<0x3E, "uw", X86cmpmu, avx512vl_i16_info,
HasBWI>, VEX_W, EVEX_CD8<16, CD8VF>;
defm VPCMPD : avx512_icmp_cc_vl<0x1F, "d", X86cmpm, avx512vl_i32_info,
HasAVX512>,
avx512_icmp_cc_rmb_vl<0x1F, "d", X86cmpm, avx512vl_i32_info,
HasAVX512>, EVEX_CD8<32, CD8VF>;
defm VPCMPUD : avx512_icmp_cc_vl<0x1E, "ud", X86cmpmu, avx512vl_i32_info,
HasAVX512>,
avx512_icmp_cc_rmb_vl<0x1E, "ud", X86cmpmu, avx512vl_i32_info,
HasAVX512>, EVEX_CD8<32, CD8VF>;
defm VPCMPQ : avx512_icmp_cc_vl<0x1F, "q", X86cmpm, avx512vl_i64_info,
HasAVX512>,
avx512_icmp_cc_rmb_vl<0x1F, "q", X86cmpm, avx512vl_i64_info,
HasAVX512>, VEX_W, EVEX_CD8<64, CD8VF>;
defm VPCMPUQ : avx512_icmp_cc_vl<0x1E, "uq", X86cmpmu, avx512vl_i64_info,
HasAVX512>,
avx512_icmp_cc_rmb_vl<0x1E, "uq", X86cmpmu, avx512vl_i64_info,
HasAVX512>, VEX_W, EVEX_CD8<64, CD8VF>;
// avx512_cmp_packed - compare packed instructions
multiclass avx512_cmp_packed<RegisterClass KRC, RegisterClass RC,

View File

@ -1425,6 +1425,62 @@
// CHECK: encoding: [0x62,0xe1,0xdd,0x58,0xdb,0x8a,0xf8,0xfb,0xff,0xff]
vpandq -1032(%rdx){1to8}, %zmm4, %zmm17
// CHECK: vpcmpd $171, %zmm10, %zmm25, %k5
// CHECK: encoding: [0x62,0xd3,0x35,0x40,0x1f,0xea,0xab]
vpcmpd $171, %zmm10, %zmm25, %k5
// CHECK: vpcmpd $171, %zmm10, %zmm25, %k5 {%k3}
// CHECK: encoding: [0x62,0xd3,0x35,0x43,0x1f,0xea,0xab]
vpcmpd $171, %zmm10, %zmm25, %k5 {%k3}
// CHECK: vpcmpd $123, %zmm10, %zmm25, %k5
// CHECK: encoding: [0x62,0xd3,0x35,0x40,0x1f,0xea,0x7b]
vpcmpd $123, %zmm10, %zmm25, %k5
// CHECK: vpcmpd $123, (%rcx), %zmm25, %k5
// CHECK: encoding: [0x62,0xf3,0x35,0x40,0x1f,0x29,0x7b]
vpcmpd $123, (%rcx), %zmm25, %k5
// CHECK: vpcmpd $123, 291(%rax,%r14,8), %zmm25, %k5
// CHECK: encoding: [0x62,0xb3,0x35,0x40,0x1f,0xac,0xf0,0x23,0x01,0x00,0x00,0x7b]
vpcmpd $123, 291(%rax,%r14,8), %zmm25, %k5
// CHECK: vpcmpd $123, (%rcx){1to16}, %zmm25, %k5
// CHECK: encoding: [0x62,0xf3,0x35,0x50,0x1f,0x29,0x7b]
vpcmpd $123, (%rcx){1to16}, %zmm25, %k5
// CHECK: vpcmpd $123, 8128(%rdx), %zmm25, %k5
// CHECK: encoding: [0x62,0xf3,0x35,0x40,0x1f,0x6a,0x7f,0x7b]
vpcmpd $123, 8128(%rdx), %zmm25, %k5
// CHECK: vpcmpd $123, 8192(%rdx), %zmm25, %k5
// CHECK: encoding: [0x62,0xf3,0x35,0x40,0x1f,0xaa,0x00,0x20,0x00,0x00,0x7b]
vpcmpd $123, 8192(%rdx), %zmm25, %k5
// CHECK: vpcmpd $123, -8192(%rdx), %zmm25, %k5
// CHECK: encoding: [0x62,0xf3,0x35,0x40,0x1f,0x6a,0x80,0x7b]
vpcmpd $123, -8192(%rdx), %zmm25, %k5
// CHECK: vpcmpd $123, -8256(%rdx), %zmm25, %k5
// CHECK: encoding: [0x62,0xf3,0x35,0x40,0x1f,0xaa,0xc0,0xdf,0xff,0xff,0x7b]
vpcmpd $123, -8256(%rdx), %zmm25, %k5
// CHECK: vpcmpd $123, 508(%rdx){1to16}, %zmm25, %k5
// CHECK: encoding: [0x62,0xf3,0x35,0x50,0x1f,0x6a,0x7f,0x7b]
vpcmpd $123, 508(%rdx){1to16}, %zmm25, %k5
// CHECK: vpcmpd $123, 512(%rdx){1to16}, %zmm25, %k5
// CHECK: encoding: [0x62,0xf3,0x35,0x50,0x1f,0xaa,0x00,0x02,0x00,0x00,0x7b]
vpcmpd $123, 512(%rdx){1to16}, %zmm25, %k5
// CHECK: vpcmpd $123, -512(%rdx){1to16}, %zmm25, %k5
// CHECK: encoding: [0x62,0xf3,0x35,0x50,0x1f,0x6a,0x80,0x7b]
vpcmpd $123, -512(%rdx){1to16}, %zmm25, %k5
// CHECK: vpcmpd $123, -516(%rdx){1to16}, %zmm25, %k5
// CHECK: encoding: [0x62,0xf3,0x35,0x50,0x1f,0xaa,0xfc,0xfd,0xff,0xff,0x7b]
vpcmpd $123, -516(%rdx){1to16}, %zmm25, %k5
// CHECK: vpcmpeqd %zmm10, %zmm2, %k5
// CHECK: encoding: [0x62,0xd1,0x6d,0x48,0x76,0xea]
vpcmpeqd %zmm10, %zmm2, %k5
@ -1633,6 +1689,174 @@
// CHECK: encoding: [0x62,0xf2,0xdd,0x50,0x37,0x92,0xf8,0xfb,0xff,0xff]
vpcmpgtq -1032(%rdx){1to8}, %zmm20, %k2
// CHECK: vpcmpq $171, %zmm28, %zmm28, %k5
// CHECK: encoding: [0x62,0x93,0x9d,0x40,0x1f,0xec,0xab]
vpcmpq $171, %zmm28, %zmm28, %k5
// CHECK: vpcmpq $171, %zmm28, %zmm28, %k5 {%k3}
// CHECK: encoding: [0x62,0x93,0x9d,0x43,0x1f,0xec,0xab]
vpcmpq $171, %zmm28, %zmm28, %k5 {%k3}
// CHECK: vpcmpq $123, %zmm28, %zmm28, %k5
// CHECK: encoding: [0x62,0x93,0x9d,0x40,0x1f,0xec,0x7b]
vpcmpq $123, %zmm28, %zmm28, %k5
// CHECK: vpcmpq $123, (%rcx), %zmm28, %k5
// CHECK: encoding: [0x62,0xf3,0x9d,0x40,0x1f,0x29,0x7b]
vpcmpq $123, (%rcx), %zmm28, %k5
// CHECK: vpcmpq $123, 291(%rax,%r14,8), %zmm28, %k5
// CHECK: encoding: [0x62,0xb3,0x9d,0x40,0x1f,0xac,0xf0,0x23,0x01,0x00,0x00,0x7b]
vpcmpq $123, 291(%rax,%r14,8), %zmm28, %k5
// CHECK: vpcmpq $123, (%rcx){1to8}, %zmm28, %k5
// CHECK: encoding: [0x62,0xf3,0x9d,0x50,0x1f,0x29,0x7b]
vpcmpq $123, (%rcx){1to8}, %zmm28, %k5
// CHECK: vpcmpq $123, 8128(%rdx), %zmm28, %k5
// CHECK: encoding: [0x62,0xf3,0x9d,0x40,0x1f,0x6a,0x7f,0x7b]
vpcmpq $123, 8128(%rdx), %zmm28, %k5
// CHECK: vpcmpq $123, 8192(%rdx), %zmm28, %k5
// CHECK: encoding: [0x62,0xf3,0x9d,0x40,0x1f,0xaa,0x00,0x20,0x00,0x00,0x7b]
vpcmpq $123, 8192(%rdx), %zmm28, %k5
// CHECK: vpcmpq $123, -8192(%rdx), %zmm28, %k5
// CHECK: encoding: [0x62,0xf3,0x9d,0x40,0x1f,0x6a,0x80,0x7b]
vpcmpq $123, -8192(%rdx), %zmm28, %k5
// CHECK: vpcmpq $123, -8256(%rdx), %zmm28, %k5
// CHECK: encoding: [0x62,0xf3,0x9d,0x40,0x1f,0xaa,0xc0,0xdf,0xff,0xff,0x7b]
vpcmpq $123, -8256(%rdx), %zmm28, %k5
// CHECK: vpcmpq $123, 1016(%rdx){1to8}, %zmm28, %k5
// CHECK: encoding: [0x62,0xf3,0x9d,0x50,0x1f,0x6a,0x7f,0x7b]
vpcmpq $123, 1016(%rdx){1to8}, %zmm28, %k5
// CHECK: vpcmpq $123, 1024(%rdx){1to8}, %zmm28, %k5
// CHECK: encoding: [0x62,0xf3,0x9d,0x50,0x1f,0xaa,0x00,0x04,0x00,0x00,0x7b]
vpcmpq $123, 1024(%rdx){1to8}, %zmm28, %k5
// CHECK: vpcmpq $123, -1024(%rdx){1to8}, %zmm28, %k5
// CHECK: encoding: [0x62,0xf3,0x9d,0x50,0x1f,0x6a,0x80,0x7b]
vpcmpq $123, -1024(%rdx){1to8}, %zmm28, %k5
// CHECK: vpcmpq $123, -1032(%rdx){1to8}, %zmm28, %k5
// CHECK: encoding: [0x62,0xf3,0x9d,0x50,0x1f,0xaa,0xf8,0xfb,0xff,0xff,0x7b]
vpcmpq $123, -1032(%rdx){1to8}, %zmm28, %k5
// CHECK: vpcmpud $171, %zmm7, %zmm25, %k2
// CHECK: encoding: [0x62,0xf3,0x35,0x40,0x1e,0xd7,0xab]
vpcmpud $171, %zmm7, %zmm25, %k2
// CHECK: vpcmpud $171, %zmm7, %zmm25, %k2 {%k1}
// CHECK: encoding: [0x62,0xf3,0x35,0x41,0x1e,0xd7,0xab]
vpcmpud $171, %zmm7, %zmm25, %k2 {%k1}
// CHECK: vpcmpud $123, %zmm7, %zmm25, %k2
// CHECK: encoding: [0x62,0xf3,0x35,0x40,0x1e,0xd7,0x7b]
vpcmpud $123, %zmm7, %zmm25, %k2
// CHECK: vpcmpud $123, (%rcx), %zmm25, %k2
// CHECK: encoding: [0x62,0xf3,0x35,0x40,0x1e,0x11,0x7b]
vpcmpud $123, (%rcx), %zmm25, %k2
// CHECK: vpcmpud $123, 291(%rax,%r14,8), %zmm25, %k2
// CHECK: encoding: [0x62,0xb3,0x35,0x40,0x1e,0x94,0xf0,0x23,0x01,0x00,0x00,0x7b]
vpcmpud $123, 291(%rax,%r14,8), %zmm25, %k2
// CHECK: vpcmpud $123, (%rcx){1to16}, %zmm25, %k2
// CHECK: encoding: [0x62,0xf3,0x35,0x50,0x1e,0x11,0x7b]
vpcmpud $123, (%rcx){1to16}, %zmm25, %k2
// CHECK: vpcmpud $123, 8128(%rdx), %zmm25, %k2
// CHECK: encoding: [0x62,0xf3,0x35,0x40,0x1e,0x52,0x7f,0x7b]
vpcmpud $123, 8128(%rdx), %zmm25, %k2
// CHECK: vpcmpud $123, 8192(%rdx), %zmm25, %k2
// CHECK: encoding: [0x62,0xf3,0x35,0x40,0x1e,0x92,0x00,0x20,0x00,0x00,0x7b]
vpcmpud $123, 8192(%rdx), %zmm25, %k2
// CHECK: vpcmpud $123, -8192(%rdx), %zmm25, %k2
// CHECK: encoding: [0x62,0xf3,0x35,0x40,0x1e,0x52,0x80,0x7b]
vpcmpud $123, -8192(%rdx), %zmm25, %k2
// CHECK: vpcmpud $123, -8256(%rdx), %zmm25, %k2
// CHECK: encoding: [0x62,0xf3,0x35,0x40,0x1e,0x92,0xc0,0xdf,0xff,0xff,0x7b]
vpcmpud $123, -8256(%rdx), %zmm25, %k2
// CHECK: vpcmpud $123, 508(%rdx){1to16}, %zmm25, %k2
// CHECK: encoding: [0x62,0xf3,0x35,0x50,0x1e,0x52,0x7f,0x7b]
vpcmpud $123, 508(%rdx){1to16}, %zmm25, %k2
// CHECK: vpcmpud $123, 512(%rdx){1to16}, %zmm25, %k2
// CHECK: encoding: [0x62,0xf3,0x35,0x50,0x1e,0x92,0x00,0x02,0x00,0x00,0x7b]
vpcmpud $123, 512(%rdx){1to16}, %zmm25, %k2
// CHECK: vpcmpud $123, -512(%rdx){1to16}, %zmm25, %k2
// CHECK: encoding: [0x62,0xf3,0x35,0x50,0x1e,0x52,0x80,0x7b]
vpcmpud $123, -512(%rdx){1to16}, %zmm25, %k2
// CHECK: vpcmpud $123, -516(%rdx){1to16}, %zmm25, %k2
// CHECK: encoding: [0x62,0xf3,0x35,0x50,0x1e,0x92,0xfc,0xfd,0xff,0xff,0x7b]
vpcmpud $123, -516(%rdx){1to16}, %zmm25, %k2
// CHECK: vpcmpuq $171, %zmm8, %zmm14, %k3
// CHECK: encoding: [0x62,0xd3,0x8d,0x48,0x1e,0xd8,0xab]
vpcmpuq $171, %zmm8, %zmm14, %k3
// CHECK: vpcmpuq $171, %zmm8, %zmm14, %k3 {%k2}
// CHECK: encoding: [0x62,0xd3,0x8d,0x4a,0x1e,0xd8,0xab]
vpcmpuq $171, %zmm8, %zmm14, %k3 {%k2}
// CHECK: vpcmpuq $123, %zmm8, %zmm14, %k3
// CHECK: encoding: [0x62,0xd3,0x8d,0x48,0x1e,0xd8,0x7b]
vpcmpuq $123, %zmm8, %zmm14, %k3
// CHECK: vpcmpuq $123, (%rcx), %zmm14, %k3
// CHECK: encoding: [0x62,0xf3,0x8d,0x48,0x1e,0x19,0x7b]
vpcmpuq $123, (%rcx), %zmm14, %k3
// CHECK: vpcmpuq $123, 291(%rax,%r14,8), %zmm14, %k3
// CHECK: encoding: [0x62,0xb3,0x8d,0x48,0x1e,0x9c,0xf0,0x23,0x01,0x00,0x00,0x7b]
vpcmpuq $123, 291(%rax,%r14,8), %zmm14, %k3
// CHECK: vpcmpuq $123, (%rcx){1to8}, %zmm14, %k3
// CHECK: encoding: [0x62,0xf3,0x8d,0x58,0x1e,0x19,0x7b]
vpcmpuq $123, (%rcx){1to8}, %zmm14, %k3
// CHECK: vpcmpuq $123, 8128(%rdx), %zmm14, %k3
// CHECK: encoding: [0x62,0xf3,0x8d,0x48,0x1e,0x5a,0x7f,0x7b]
vpcmpuq $123, 8128(%rdx), %zmm14, %k3
// CHECK: vpcmpuq $123, 8192(%rdx), %zmm14, %k3
// CHECK: encoding: [0x62,0xf3,0x8d,0x48,0x1e,0x9a,0x00,0x20,0x00,0x00,0x7b]
vpcmpuq $123, 8192(%rdx), %zmm14, %k3
// CHECK: vpcmpuq $123, -8192(%rdx), %zmm14, %k3
// CHECK: encoding: [0x62,0xf3,0x8d,0x48,0x1e,0x5a,0x80,0x7b]
vpcmpuq $123, -8192(%rdx), %zmm14, %k3
// CHECK: vpcmpuq $123, -8256(%rdx), %zmm14, %k3
// CHECK: encoding: [0x62,0xf3,0x8d,0x48,0x1e,0x9a,0xc0,0xdf,0xff,0xff,0x7b]
vpcmpuq $123, -8256(%rdx), %zmm14, %k3
// CHECK: vpcmpuq $123, 1016(%rdx){1to8}, %zmm14, %k3
// CHECK: encoding: [0x62,0xf3,0x8d,0x58,0x1e,0x5a,0x7f,0x7b]
vpcmpuq $123, 1016(%rdx){1to8}, %zmm14, %k3
// CHECK: vpcmpuq $123, 1024(%rdx){1to8}, %zmm14, %k3
// CHECK: encoding: [0x62,0xf3,0x8d,0x58,0x1e,0x9a,0x00,0x04,0x00,0x00,0x7b]
vpcmpuq $123, 1024(%rdx){1to8}, %zmm14, %k3
// CHECK: vpcmpuq $123, -1024(%rdx){1to8}, %zmm14, %k3
// CHECK: encoding: [0x62,0xf3,0x8d,0x58,0x1e,0x5a,0x80,0x7b]
vpcmpuq $123, -1024(%rdx){1to8}, %zmm14, %k3
// CHECK: vpcmpuq $123, -1032(%rdx){1to8}, %zmm14, %k3
// CHECK: encoding: [0x62,0xf3,0x8d,0x58,0x1e,0x9a,0xf8,0xfb,0xff,0xff,0x7b]
vpcmpuq $123, -1032(%rdx){1to8}, %zmm14, %k3
// CHECK: vpmaxsd %zmm16, %zmm8, %zmm6
// CHECK: encoding: [0x62,0xb2,0x3d,0x48,0x3d,0xf0]
vpmaxsd %zmm16, %zmm8, %zmm6

View File

@ -383,3 +383,147 @@
// CHECK: vmovdqu16 %zmm28, -8256(%rdx)
// CHECK: encoding: [0x62,0x61,0xff,0x48,0x7f,0xa2,0xc0,0xdf,0xff,0xff]
vmovdqu16 %zmm28, -8256(%rdx)
// CHECK: vpcmpb $171, %zmm25, %zmm26, %k3
// CHECK: encoding: [0x62,0x93,0x2d,0x40,0x3f,0xd9,0xab]
vpcmpb $171, %zmm25, %zmm26, %k3
// CHECK: vpcmpb $171, %zmm25, %zmm26, %k3 {%k7}
// CHECK: encoding: [0x62,0x93,0x2d,0x47,0x3f,0xd9,0xab]
vpcmpb $171, %zmm25, %zmm26, %k3 {%k7}
// CHECK: vpcmpb $123, %zmm25, %zmm26, %k3
// CHECK: encoding: [0x62,0x93,0x2d,0x40,0x3f,0xd9,0x7b]
vpcmpb $123, %zmm25, %zmm26, %k3
// CHECK: vpcmpb $123, (%rcx), %zmm26, %k3
// CHECK: encoding: [0x62,0xf3,0x2d,0x40,0x3f,0x19,0x7b]
vpcmpb $123, (%rcx), %zmm26, %k3
// CHECK: vpcmpb $123, 291(%rax,%r14,8), %zmm26, %k3
// CHECK: encoding: [0x62,0xb3,0x2d,0x40,0x3f,0x9c,0xf0,0x23,0x01,0x00,0x00,0x7b]
vpcmpb $123, 291(%rax,%r14,8), %zmm26, %k3
// CHECK: vpcmpb $123, 8128(%rdx), %zmm26, %k3
// CHECK: encoding: [0x62,0xf3,0x2d,0x40,0x3f,0x5a,0x7f,0x7b]
vpcmpb $123, 8128(%rdx), %zmm26, %k3
// CHECK: vpcmpb $123, 8192(%rdx), %zmm26, %k3
// CHECK: encoding: [0x62,0xf3,0x2d,0x40,0x3f,0x9a,0x00,0x20,0x00,0x00,0x7b]
vpcmpb $123, 8192(%rdx), %zmm26, %k3
// CHECK: vpcmpb $123, -8192(%rdx), %zmm26, %k3
// CHECK: encoding: [0x62,0xf3,0x2d,0x40,0x3f,0x5a,0x80,0x7b]
vpcmpb $123, -8192(%rdx), %zmm26, %k3
// CHECK: vpcmpb $123, -8256(%rdx), %zmm26, %k3
// CHECK: encoding: [0x62,0xf3,0x2d,0x40,0x3f,0x9a,0xc0,0xdf,0xff,0xff,0x7b]
vpcmpb $123, -8256(%rdx), %zmm26, %k3
// CHECK: vpcmpw $171, %zmm25, %zmm29, %k3
// CHECK: encoding: [0x62,0x93,0x95,0x40,0x3f,0xd9,0xab]
vpcmpw $171, %zmm25, %zmm29, %k3
// CHECK: vpcmpw $171, %zmm25, %zmm29, %k3 {%k6}
// CHECK: encoding: [0x62,0x93,0x95,0x46,0x3f,0xd9,0xab]
vpcmpw $171, %zmm25, %zmm29, %k3 {%k6}
// CHECK: vpcmpw $123, %zmm25, %zmm29, %k3
// CHECK: encoding: [0x62,0x93,0x95,0x40,0x3f,0xd9,0x7b]
vpcmpw $123, %zmm25, %zmm29, %k3
// CHECK: vpcmpw $123, (%rcx), %zmm29, %k3
// CHECK: encoding: [0x62,0xf3,0x95,0x40,0x3f,0x19,0x7b]
vpcmpw $123, (%rcx), %zmm29, %k3
// CHECK: vpcmpw $123, 291(%rax,%r14,8), %zmm29, %k3
// CHECK: encoding: [0x62,0xb3,0x95,0x40,0x3f,0x9c,0xf0,0x23,0x01,0x00,0x00,0x7b]
vpcmpw $123, 291(%rax,%r14,8), %zmm29, %k3
// CHECK: vpcmpw $123, 8128(%rdx), %zmm29, %k3
// CHECK: encoding: [0x62,0xf3,0x95,0x40,0x3f,0x5a,0x7f,0x7b]
vpcmpw $123, 8128(%rdx), %zmm29, %k3
// CHECK: vpcmpw $123, 8192(%rdx), %zmm29, %k3
// CHECK: encoding: [0x62,0xf3,0x95,0x40,0x3f,0x9a,0x00,0x20,0x00,0x00,0x7b]
vpcmpw $123, 8192(%rdx), %zmm29, %k3
// CHECK: vpcmpw $123, -8192(%rdx), %zmm29, %k3
// CHECK: encoding: [0x62,0xf3,0x95,0x40,0x3f,0x5a,0x80,0x7b]
vpcmpw $123, -8192(%rdx), %zmm29, %k3
// CHECK: vpcmpw $123, -8256(%rdx), %zmm29, %k3
// CHECK: encoding: [0x62,0xf3,0x95,0x40,0x3f,0x9a,0xc0,0xdf,0xff,0xff,0x7b]
vpcmpw $123, -8256(%rdx), %zmm29, %k3
// CHECK: vpcmpub $171, %zmm22, %zmm29, %k4
// CHECK: encoding: [0x62,0xb3,0x15,0x40,0x3e,0xe6,0xab]
vpcmpub $171, %zmm22, %zmm29, %k4
// CHECK: vpcmpub $171, %zmm22, %zmm29, %k4 {%k7}
// CHECK: encoding: [0x62,0xb3,0x15,0x47,0x3e,0xe6,0xab]
vpcmpub $171, %zmm22, %zmm29, %k4 {%k7}
// CHECK: vpcmpub $123, %zmm22, %zmm29, %k4
// CHECK: encoding: [0x62,0xb3,0x15,0x40,0x3e,0xe6,0x7b]
vpcmpub $123, %zmm22, %zmm29, %k4
// CHECK: vpcmpub $123, (%rcx), %zmm29, %k4
// CHECK: encoding: [0x62,0xf3,0x15,0x40,0x3e,0x21,0x7b]
vpcmpub $123, (%rcx), %zmm29, %k4
// CHECK: vpcmpub $123, 291(%rax,%r14,8), %zmm29, %k4
// CHECK: encoding: [0x62,0xb3,0x15,0x40,0x3e,0xa4,0xf0,0x23,0x01,0x00,0x00,0x7b]
vpcmpub $123, 291(%rax,%r14,8), %zmm29, %k4
// CHECK: vpcmpub $123, 8128(%rdx), %zmm29, %k4
// CHECK: encoding: [0x62,0xf3,0x15,0x40,0x3e,0x62,0x7f,0x7b]
vpcmpub $123, 8128(%rdx), %zmm29, %k4
// CHECK: vpcmpub $123, 8192(%rdx), %zmm29, %k4
// CHECK: encoding: [0x62,0xf3,0x15,0x40,0x3e,0xa2,0x00,0x20,0x00,0x00,0x7b]
vpcmpub $123, 8192(%rdx), %zmm29, %k4
// CHECK: vpcmpub $123, -8192(%rdx), %zmm29, %k4
// CHECK: encoding: [0x62,0xf3,0x15,0x40,0x3e,0x62,0x80,0x7b]
vpcmpub $123, -8192(%rdx), %zmm29, %k4
// CHECK: vpcmpub $123, -8256(%rdx), %zmm29, %k4
// CHECK: encoding: [0x62,0xf3,0x15,0x40,0x3e,0xa2,0xc0,0xdf,0xff,0xff,0x7b]
vpcmpub $123, -8256(%rdx), %zmm29, %k4
// CHECK: vpcmpuw $171, %zmm22, %zmm22, %k4
// CHECK: encoding: [0x62,0xb3,0xcd,0x40,0x3e,0xe6,0xab]
vpcmpuw $171, %zmm22, %zmm22, %k4
// CHECK: vpcmpuw $171, %zmm22, %zmm22, %k4 {%k7}
// CHECK: encoding: [0x62,0xb3,0xcd,0x47,0x3e,0xe6,0xab]
vpcmpuw $171, %zmm22, %zmm22, %k4 {%k7}
// CHECK: vpcmpuw $123, %zmm22, %zmm22, %k4
// CHECK: encoding: [0x62,0xb3,0xcd,0x40,0x3e,0xe6,0x7b]
vpcmpuw $123, %zmm22, %zmm22, %k4
// CHECK: vpcmpuw $123, (%rcx), %zmm22, %k4
// CHECK: encoding: [0x62,0xf3,0xcd,0x40,0x3e,0x21,0x7b]
vpcmpuw $123, (%rcx), %zmm22, %k4
// CHECK: vpcmpuw $123, 291(%rax,%r14,8), %zmm22, %k4
// CHECK: encoding: [0x62,0xb3,0xcd,0x40,0x3e,0xa4,0xf0,0x23,0x01,0x00,0x00,0x7b]
vpcmpuw $123, 291(%rax,%r14,8), %zmm22, %k4
// CHECK: vpcmpuw $123, 8128(%rdx), %zmm22, %k4
// CHECK: encoding: [0x62,0xf3,0xcd,0x40,0x3e,0x62,0x7f,0x7b]
vpcmpuw $123, 8128(%rdx), %zmm22, %k4
// CHECK: vpcmpuw $123, 8192(%rdx), %zmm22, %k4
// CHECK: encoding: [0x62,0xf3,0xcd,0x40,0x3e,0xa2,0x00,0x20,0x00,0x00,0x7b]
vpcmpuw $123, 8192(%rdx), %zmm22, %k4
// CHECK: vpcmpuw $123, -8192(%rdx), %zmm22, %k4
// CHECK: encoding: [0x62,0xf3,0xcd,0x40,0x3e,0x62,0x80,0x7b]
vpcmpuw $123, -8192(%rdx), %zmm22, %k4
// CHECK: vpcmpuw $123, -8256(%rdx), %zmm22, %k4
// CHECK: encoding: [0x62,0xf3,0xcd,0x40,0x3e,0xa2,0xc0,0xdf,0xff,0xff,0x7b]
vpcmpuw $123, -8256(%rdx), %zmm22, %k4

View File

@ -256,6 +256,294 @@
// CHECK: encoding: [0x62,0xf1,0x5d,0x20,0x65,0xaa,0xe0,0xef,0xff,0xff]
vpcmpgtw -4128(%rdx), %ymm20, %k5
// CHECK: vpcmpb $171, %xmm17, %xmm30, %k3
// CHECK: encoding: [0x62,0xb3,0x0d,0x00,0x3f,0xd9,0xab]
vpcmpb $171, %xmm17, %xmm30, %k3
// CHECK: vpcmpb $171, %xmm17, %xmm30, %k3 {%k1}
// CHECK: encoding: [0x62,0xb3,0x0d,0x01,0x3f,0xd9,0xab]
vpcmpb $171, %xmm17, %xmm30, %k3 {%k1}
// CHECK: vpcmpb $123, %xmm17, %xmm30, %k3
// CHECK: encoding: [0x62,0xb3,0x0d,0x00,0x3f,0xd9,0x7b]
vpcmpb $123, %xmm17, %xmm30, %k3
// CHECK: vpcmpb $123, (%rcx), %xmm30, %k3
// CHECK: encoding: [0x62,0xf3,0x0d,0x00,0x3f,0x19,0x7b]
vpcmpb $123, (%rcx), %xmm30, %k3
// CHECK: vpcmpb $123, 291(%rax,%r14,8), %xmm30, %k3
// CHECK: encoding: [0x62,0xb3,0x0d,0x00,0x3f,0x9c,0xf0,0x23,0x01,0x00,0x00,0x7b]
vpcmpb $123, 291(%rax,%r14,8), %xmm30, %k3
// CHECK: vpcmpb $123, 2032(%rdx), %xmm30, %k3
// CHECK: encoding: [0x62,0xf3,0x0d,0x00,0x3f,0x5a,0x7f,0x7b]
vpcmpb $123, 2032(%rdx), %xmm30, %k3
// CHECK: vpcmpb $123, 2048(%rdx), %xmm30, %k3
// CHECK: encoding: [0x62,0xf3,0x0d,0x00,0x3f,0x9a,0x00,0x08,0x00,0x00,0x7b]
vpcmpb $123, 2048(%rdx), %xmm30, %k3
// CHECK: vpcmpb $123, -2048(%rdx), %xmm30, %k3
// CHECK: encoding: [0x62,0xf3,0x0d,0x00,0x3f,0x5a,0x80,0x7b]
vpcmpb $123, -2048(%rdx), %xmm30, %k3
// CHECK: vpcmpb $123, -2064(%rdx), %xmm30, %k3
// CHECK: encoding: [0x62,0xf3,0x0d,0x00,0x3f,0x9a,0xf0,0xf7,0xff,0xff,0x7b]
vpcmpb $123, -2064(%rdx), %xmm30, %k3
// CHECK: vpcmpb $171, %ymm19, %ymm19, %k5
// CHECK: encoding: [0x62,0xb3,0x65,0x20,0x3f,0xeb,0xab]
vpcmpb $171, %ymm19, %ymm19, %k5
// CHECK: vpcmpb $171, %ymm19, %ymm19, %k5 {%k4}
// CHECK: encoding: [0x62,0xb3,0x65,0x24,0x3f,0xeb,0xab]
vpcmpb $171, %ymm19, %ymm19, %k5 {%k4}
// CHECK: vpcmpb $123, %ymm19, %ymm19, %k5
// CHECK: encoding: [0x62,0xb3,0x65,0x20,0x3f,0xeb,0x7b]
vpcmpb $123, %ymm19, %ymm19, %k5
// CHECK: vpcmpb $123, (%rcx), %ymm19, %k5
// CHECK: encoding: [0x62,0xf3,0x65,0x20,0x3f,0x29,0x7b]
vpcmpb $123, (%rcx), %ymm19, %k5
// CHECK: vpcmpb $123, 291(%rax,%r14,8), %ymm19, %k5
// CHECK: encoding: [0x62,0xb3,0x65,0x20,0x3f,0xac,0xf0,0x23,0x01,0x00,0x00,0x7b]
vpcmpb $123, 291(%rax,%r14,8), %ymm19, %k5
// CHECK: vpcmpb $123, 4064(%rdx), %ymm19, %k5
// CHECK: encoding: [0x62,0xf3,0x65,0x20,0x3f,0x6a,0x7f,0x7b]
vpcmpb $123, 4064(%rdx), %ymm19, %k5
// CHECK: vpcmpb $123, 4096(%rdx), %ymm19, %k5
// CHECK: encoding: [0x62,0xf3,0x65,0x20,0x3f,0xaa,0x00,0x10,0x00,0x00,0x7b]
vpcmpb $123, 4096(%rdx), %ymm19, %k5
// CHECK: vpcmpb $123, -4096(%rdx), %ymm19, %k5
// CHECK: encoding: [0x62,0xf3,0x65,0x20,0x3f,0x6a,0x80,0x7b]
vpcmpb $123, -4096(%rdx), %ymm19, %k5
// CHECK: vpcmpb $123, -4128(%rdx), %ymm19, %k5
// CHECK: encoding: [0x62,0xf3,0x65,0x20,0x3f,0xaa,0xe0,0xef,0xff,0xff,0x7b]
vpcmpb $123, -4128(%rdx), %ymm19, %k5
// CHECK: vpcmpw $171, %xmm22, %xmm30, %k3
// CHECK: encoding: [0x62,0xb3,0x8d,0x00,0x3f,0xde,0xab]
vpcmpw $171, %xmm22, %xmm30, %k3
// CHECK: vpcmpw $171, %xmm22, %xmm30, %k3 {%k6}
// CHECK: encoding: [0x62,0xb3,0x8d,0x06,0x3f,0xde,0xab]
vpcmpw $171, %xmm22, %xmm30, %k3 {%k6}
// CHECK: vpcmpw $123, %xmm22, %xmm30, %k3
// CHECK: encoding: [0x62,0xb3,0x8d,0x00,0x3f,0xde,0x7b]
vpcmpw $123, %xmm22, %xmm30, %k3
// CHECK: vpcmpw $123, (%rcx), %xmm30, %k3
// CHECK: encoding: [0x62,0xf3,0x8d,0x00,0x3f,0x19,0x7b]
vpcmpw $123, (%rcx), %xmm30, %k3
// CHECK: vpcmpw $123, 291(%rax,%r14,8), %xmm30, %k3
// CHECK: encoding: [0x62,0xb3,0x8d,0x00,0x3f,0x9c,0xf0,0x23,0x01,0x00,0x00,0x7b]
vpcmpw $123, 291(%rax,%r14,8), %xmm30, %k3
// CHECK: vpcmpw $123, 2032(%rdx), %xmm30, %k3
// CHECK: encoding: [0x62,0xf3,0x8d,0x00,0x3f,0x5a,0x7f,0x7b]
vpcmpw $123, 2032(%rdx), %xmm30, %k3
// CHECK: vpcmpw $123, 2048(%rdx), %xmm30, %k3
// CHECK: encoding: [0x62,0xf3,0x8d,0x00,0x3f,0x9a,0x00,0x08,0x00,0x00,0x7b]
vpcmpw $123, 2048(%rdx), %xmm30, %k3
// CHECK: vpcmpw $123, -2048(%rdx), %xmm30, %k3
// CHECK: encoding: [0x62,0xf3,0x8d,0x00,0x3f,0x5a,0x80,0x7b]
vpcmpw $123, -2048(%rdx), %xmm30, %k3
// CHECK: vpcmpw $123, -2064(%rdx), %xmm30, %k3
// CHECK: encoding: [0x62,0xf3,0x8d,0x00,0x3f,0x9a,0xf0,0xf7,0xff,0xff,0x7b]
vpcmpw $123, -2064(%rdx), %xmm30, %k3
// CHECK: vpcmpw $171, %ymm18, %ymm26, %k3
// CHECK: encoding: [0x62,0xb3,0xad,0x20,0x3f,0xda,0xab]
vpcmpw $171, %ymm18, %ymm26, %k3
// CHECK: vpcmpw $171, %ymm18, %ymm26, %k3 {%k3}
// CHECK: encoding: [0x62,0xb3,0xad,0x23,0x3f,0xda,0xab]
vpcmpw $171, %ymm18, %ymm26, %k3 {%k3}
// CHECK: vpcmpw $123, %ymm18, %ymm26, %k3
// CHECK: encoding: [0x62,0xb3,0xad,0x20,0x3f,0xda,0x7b]
vpcmpw $123, %ymm18, %ymm26, %k3
// CHECK: vpcmpw $123, (%rcx), %ymm26, %k3
// CHECK: encoding: [0x62,0xf3,0xad,0x20,0x3f,0x19,0x7b]
vpcmpw $123, (%rcx), %ymm26, %k3
// CHECK: vpcmpw $123, 291(%rax,%r14,8), %ymm26, %k3
// CHECK: encoding: [0x62,0xb3,0xad,0x20,0x3f,0x9c,0xf0,0x23,0x01,0x00,0x00,0x7b]
vpcmpw $123, 291(%rax,%r14,8), %ymm26, %k3
// CHECK: vpcmpw $123, 4064(%rdx), %ymm26, %k3
// CHECK: encoding: [0x62,0xf3,0xad,0x20,0x3f,0x5a,0x7f,0x7b]
vpcmpw $123, 4064(%rdx), %ymm26, %k3
// CHECK: vpcmpw $123, 4096(%rdx), %ymm26, %k3
// CHECK: encoding: [0x62,0xf3,0xad,0x20,0x3f,0x9a,0x00,0x10,0x00,0x00,0x7b]
vpcmpw $123, 4096(%rdx), %ymm26, %k3
// CHECK: vpcmpw $123, -4096(%rdx), %ymm26, %k3
// CHECK: encoding: [0x62,0xf3,0xad,0x20,0x3f,0x5a,0x80,0x7b]
vpcmpw $123, -4096(%rdx), %ymm26, %k3
// CHECK: vpcmpw $123, -4128(%rdx), %ymm26, %k3
// CHECK: encoding: [0x62,0xf3,0xad,0x20,0x3f,0x9a,0xe0,0xef,0xff,0xff,0x7b]
vpcmpw $123, -4128(%rdx), %ymm26, %k3
// CHECK: vpcmpub $171, %xmm21, %xmm22, %k5
// CHECK: encoding: [0x62,0xb3,0x4d,0x00,0x3e,0xed,0xab]
vpcmpub $171, %xmm21, %xmm22, %k5
// CHECK: vpcmpub $171, %xmm21, %xmm22, %k5 {%k3}
// CHECK: encoding: [0x62,0xb3,0x4d,0x03,0x3e,0xed,0xab]
vpcmpub $171, %xmm21, %xmm22, %k5 {%k3}
// CHECK: vpcmpub $123, %xmm21, %xmm22, %k5
// CHECK: encoding: [0x62,0xb3,0x4d,0x00,0x3e,0xed,0x7b]
vpcmpub $123, %xmm21, %xmm22, %k5
// CHECK: vpcmpub $123, (%rcx), %xmm22, %k5
// CHECK: encoding: [0x62,0xf3,0x4d,0x00,0x3e,0x29,0x7b]
vpcmpub $123, (%rcx), %xmm22, %k5
// CHECK: vpcmpub $123, 291(%rax,%r14,8), %xmm22, %k5
// CHECK: encoding: [0x62,0xb3,0x4d,0x00,0x3e,0xac,0xf0,0x23,0x01,0x00,0x00,0x7b]
vpcmpub $123, 291(%rax,%r14,8), %xmm22, %k5
// CHECK: vpcmpub $123, 2032(%rdx), %xmm22, %k5
// CHECK: encoding: [0x62,0xf3,0x4d,0x00,0x3e,0x6a,0x7f,0x7b]
vpcmpub $123, 2032(%rdx), %xmm22, %k5
// CHECK: vpcmpub $123, 2048(%rdx), %xmm22, %k5
// CHECK: encoding: [0x62,0xf3,0x4d,0x00,0x3e,0xaa,0x00,0x08,0x00,0x00,0x7b]
vpcmpub $123, 2048(%rdx), %xmm22, %k5
// CHECK: vpcmpub $123, -2048(%rdx), %xmm22, %k5
// CHECK: encoding: [0x62,0xf3,0x4d,0x00,0x3e,0x6a,0x80,0x7b]
vpcmpub $123, -2048(%rdx), %xmm22, %k5
// CHECK: vpcmpub $123, -2064(%rdx), %xmm22, %k5
// CHECK: encoding: [0x62,0xf3,0x4d,0x00,0x3e,0xaa,0xf0,0xf7,0xff,0xff,0x7b]
vpcmpub $123, -2064(%rdx), %xmm22, %k5
// CHECK: vpcmpub $171, %ymm21, %ymm23, %k2
// CHECK: encoding: [0x62,0xb3,0x45,0x20,0x3e,0xd5,0xab]
vpcmpub $171, %ymm21, %ymm23, %k2
// CHECK: vpcmpub $171, %ymm21, %ymm23, %k2 {%k2}
// CHECK: encoding: [0x62,0xb3,0x45,0x22,0x3e,0xd5,0xab]
vpcmpub $171, %ymm21, %ymm23, %k2 {%k2}
// CHECK: vpcmpub $123, %ymm21, %ymm23, %k2
// CHECK: encoding: [0x62,0xb3,0x45,0x20,0x3e,0xd5,0x7b]
vpcmpub $123, %ymm21, %ymm23, %k2
// CHECK: vpcmpub $123, (%rcx), %ymm23, %k2
// CHECK: encoding: [0x62,0xf3,0x45,0x20,0x3e,0x11,0x7b]
vpcmpub $123, (%rcx), %ymm23, %k2
// CHECK: vpcmpub $123, 291(%rax,%r14,8), %ymm23, %k2
// CHECK: encoding: [0x62,0xb3,0x45,0x20,0x3e,0x94,0xf0,0x23,0x01,0x00,0x00,0x7b]
vpcmpub $123, 291(%rax,%r14,8), %ymm23, %k2
// CHECK: vpcmpub $123, 4064(%rdx), %ymm23, %k2
// CHECK: encoding: [0x62,0xf3,0x45,0x20,0x3e,0x52,0x7f,0x7b]
vpcmpub $123, 4064(%rdx), %ymm23, %k2
// CHECK: vpcmpub $123, 4096(%rdx), %ymm23, %k2
// CHECK: encoding: [0x62,0xf3,0x45,0x20,0x3e,0x92,0x00,0x10,0x00,0x00,0x7b]
vpcmpub $123, 4096(%rdx), %ymm23, %k2
// CHECK: vpcmpub $123, -4096(%rdx), %ymm23, %k2
// CHECK: encoding: [0x62,0xf3,0x45,0x20,0x3e,0x52,0x80,0x7b]
vpcmpub $123, -4096(%rdx), %ymm23, %k2
// CHECK: vpcmpub $123, -4128(%rdx), %ymm23, %k2
// CHECK: encoding: [0x62,0xf3,0x45,0x20,0x3e,0x92,0xe0,0xef,0xff,0xff,0x7b]
vpcmpub $123, -4128(%rdx), %ymm23, %k2
// CHECK: vpcmpuw $171, %xmm17, %xmm28, %k5
// CHECK: encoding: [0x62,0xb3,0x9d,0x00,0x3e,0xe9,0xab]
vpcmpuw $171, %xmm17, %xmm28, %k5
// CHECK: vpcmpuw $171, %xmm17, %xmm28, %k5 {%k4}
// CHECK: encoding: [0x62,0xb3,0x9d,0x04,0x3e,0xe9,0xab]
vpcmpuw $171, %xmm17, %xmm28, %k5 {%k4}
// CHECK: vpcmpuw $123, %xmm17, %xmm28, %k5
// CHECK: encoding: [0x62,0xb3,0x9d,0x00,0x3e,0xe9,0x7b]
vpcmpuw $123, %xmm17, %xmm28, %k5
// CHECK: vpcmpuw $123, (%rcx), %xmm28, %k5
// CHECK: encoding: [0x62,0xf3,0x9d,0x00,0x3e,0x29,0x7b]
vpcmpuw $123, (%rcx), %xmm28, %k5
// CHECK: vpcmpuw $123, 291(%rax,%r14,8), %xmm28, %k5
// CHECK: encoding: [0x62,0xb3,0x9d,0x00,0x3e,0xac,0xf0,0x23,0x01,0x00,0x00,0x7b]
vpcmpuw $123, 291(%rax,%r14,8), %xmm28, %k5
// CHECK: vpcmpuw $123, 2032(%rdx), %xmm28, %k5
// CHECK: encoding: [0x62,0xf3,0x9d,0x00,0x3e,0x6a,0x7f,0x7b]
vpcmpuw $123, 2032(%rdx), %xmm28, %k5
// CHECK: vpcmpuw $123, 2048(%rdx), %xmm28, %k5
// CHECK: encoding: [0x62,0xf3,0x9d,0x00,0x3e,0xaa,0x00,0x08,0x00,0x00,0x7b]
vpcmpuw $123, 2048(%rdx), %xmm28, %k5
// CHECK: vpcmpuw $123, -2048(%rdx), %xmm28, %k5
// CHECK: encoding: [0x62,0xf3,0x9d,0x00,0x3e,0x6a,0x80,0x7b]
vpcmpuw $123, -2048(%rdx), %xmm28, %k5
// CHECK: vpcmpuw $123, -2064(%rdx), %xmm28, %k5
// CHECK: encoding: [0x62,0xf3,0x9d,0x00,0x3e,0xaa,0xf0,0xf7,0xff,0xff,0x7b]
vpcmpuw $123, -2064(%rdx), %xmm28, %k5
// CHECK: vpcmpuw $171, %ymm28, %ymm27, %k4
// CHECK: encoding: [0x62,0x93,0xa5,0x20,0x3e,0xe4,0xab]
vpcmpuw $171, %ymm28, %ymm27, %k4
// CHECK: vpcmpuw $171, %ymm28, %ymm27, %k4 {%k2}
// CHECK: encoding: [0x62,0x93,0xa5,0x22,0x3e,0xe4,0xab]
vpcmpuw $171, %ymm28, %ymm27, %k4 {%k2}
// CHECK: vpcmpuw $123, %ymm28, %ymm27, %k4
// CHECK: encoding: [0x62,0x93,0xa5,0x20,0x3e,0xe4,0x7b]
vpcmpuw $123, %ymm28, %ymm27, %k4
// CHECK: vpcmpuw $123, (%rcx), %ymm27, %k4
// CHECK: encoding: [0x62,0xf3,0xa5,0x20,0x3e,0x21,0x7b]
vpcmpuw $123, (%rcx), %ymm27, %k4
// CHECK: vpcmpuw $123, 291(%rax,%r14,8), %ymm27, %k4
// CHECK: encoding: [0x62,0xb3,0xa5,0x20,0x3e,0xa4,0xf0,0x23,0x01,0x00,0x00,0x7b]
vpcmpuw $123, 291(%rax,%r14,8), %ymm27, %k4
// CHECK: vpcmpuw $123, 4064(%rdx), %ymm27, %k4
// CHECK: encoding: [0x62,0xf3,0xa5,0x20,0x3e,0x62,0x7f,0x7b]
vpcmpuw $123, 4064(%rdx), %ymm27, %k4
// CHECK: vpcmpuw $123, 4096(%rdx), %ymm27, %k4
// CHECK: encoding: [0x62,0xf3,0xa5,0x20,0x3e,0xa2,0x00,0x10,0x00,0x00,0x7b]
vpcmpuw $123, 4096(%rdx), %ymm27, %k4
// CHECK: vpcmpuw $123, -4096(%rdx), %ymm27, %k4
// CHECK: encoding: [0x62,0xf3,0xa5,0x20,0x3e,0x62,0x80,0x7b]
vpcmpuw $123, -4096(%rdx), %ymm27, %k4
// CHECK: vpcmpuw $123, -4128(%rdx), %ymm27, %k4
// CHECK: encoding: [0x62,0xf3,0xa5,0x20,0x3e,0xa2,0xe0,0xef,0xff,0xff,0x7b]
vpcmpuw $123, -4128(%rdx), %ymm27, %k4
// CHECK: vmovdqu8 %xmm23, %xmm26
// CHECK: encoding: [0x62,0x21,0x7f,0x08,0x6f,0xd7]
vmovdqu8 %xmm23, %xmm26

View File

@ -768,6 +768,118 @@
// CHECK: encoding: [0x62,0xe1,0x7c,0x28,0x10,0xaa,0xe0,0xef,0xff,0xff]
vmovups -4128(%rdx), %ymm21
// CHECK: vpcmpd $171, %xmm20, %xmm23, %k4
// CHECK: encoding: [0x62,0xb3,0x45,0x00,0x1f,0xe4,0xab]
vpcmpd $171, %xmm20, %xmm23, %k4
// CHECK: vpcmpd $171, %xmm20, %xmm23, %k4 {%k1}
// CHECK: encoding: [0x62,0xb3,0x45,0x01,0x1f,0xe4,0xab]
vpcmpd $171, %xmm20, %xmm23, %k4 {%k1}
// CHECK: vpcmpd $123, %xmm20, %xmm23, %k4
// CHECK: encoding: [0x62,0xb3,0x45,0x00,0x1f,0xe4,0x7b]
vpcmpd $123, %xmm20, %xmm23, %k4
// CHECK: vpcmpd $123, (%rcx), %xmm23, %k4
// CHECK: encoding: [0x62,0xf3,0x45,0x00,0x1f,0x21,0x7b]
vpcmpd $123, (%rcx), %xmm23, %k4
// CHECK: vpcmpd $123, 291(%rax,%r14,8), %xmm23, %k4
// CHECK: encoding: [0x62,0xb3,0x45,0x00,0x1f,0xa4,0xf0,0x23,0x01,0x00,0x00,0x7b]
vpcmpd $123, 291(%rax,%r14,8), %xmm23, %k4
// CHECK: vpcmpd $123, (%rcx){1to4}, %xmm23, %k4
// CHECK: encoding: [0x62,0xf3,0x45,0x10,0x1f,0x21,0x7b]
vpcmpd $123, (%rcx){1to4}, %xmm23, %k4
// CHECK: vpcmpd $123, 2032(%rdx), %xmm23, %k4
// CHECK: encoding: [0x62,0xf3,0x45,0x00,0x1f,0x62,0x7f,0x7b]
vpcmpd $123, 2032(%rdx), %xmm23, %k4
// CHECK: vpcmpd $123, 2048(%rdx), %xmm23, %k4
// CHECK: encoding: [0x62,0xf3,0x45,0x00,0x1f,0xa2,0x00,0x08,0x00,0x00,0x7b]
vpcmpd $123, 2048(%rdx), %xmm23, %k4
// CHECK: vpcmpd $123, -2048(%rdx), %xmm23, %k4
// CHECK: encoding: [0x62,0xf3,0x45,0x00,0x1f,0x62,0x80,0x7b]
vpcmpd $123, -2048(%rdx), %xmm23, %k4
// CHECK: vpcmpd $123, -2064(%rdx), %xmm23, %k4
// CHECK: encoding: [0x62,0xf3,0x45,0x00,0x1f,0xa2,0xf0,0xf7,0xff,0xff,0x7b]
vpcmpd $123, -2064(%rdx), %xmm23, %k4
// CHECK: vpcmpd $123, 508(%rdx){1to4}, %xmm23, %k4
// CHECK: encoding: [0x62,0xf3,0x45,0x10,0x1f,0x62,0x7f,0x7b]
vpcmpd $123, 508(%rdx){1to4}, %xmm23, %k4
// CHECK: vpcmpd $123, 512(%rdx){1to4}, %xmm23, %k4
// CHECK: encoding: [0x62,0xf3,0x45,0x10,0x1f,0xa2,0x00,0x02,0x00,0x00,0x7b]
vpcmpd $123, 512(%rdx){1to4}, %xmm23, %k4
// CHECK: vpcmpd $123, -512(%rdx){1to4}, %xmm23, %k4
// CHECK: encoding: [0x62,0xf3,0x45,0x10,0x1f,0x62,0x80,0x7b]
vpcmpd $123, -512(%rdx){1to4}, %xmm23, %k4
// CHECK: vpcmpd $123, -516(%rdx){1to4}, %xmm23, %k4
// CHECK: encoding: [0x62,0xf3,0x45,0x10,0x1f,0xa2,0xfc,0xfd,0xff,0xff,0x7b]
vpcmpd $123, -516(%rdx){1to4}, %xmm23, %k4
// CHECK: vpcmpd $171, %ymm19, %ymm24, %k4
// CHECK: encoding: [0x62,0xb3,0x3d,0x20,0x1f,0xe3,0xab]
vpcmpd $171, %ymm19, %ymm24, %k4
// CHECK: vpcmpd $171, %ymm19, %ymm24, %k4 {%k3}
// CHECK: encoding: [0x62,0xb3,0x3d,0x23,0x1f,0xe3,0xab]
vpcmpd $171, %ymm19, %ymm24, %k4 {%k3}
// CHECK: vpcmpd $123, %ymm19, %ymm24, %k4
// CHECK: encoding: [0x62,0xb3,0x3d,0x20,0x1f,0xe3,0x7b]
vpcmpd $123, %ymm19, %ymm24, %k4
// CHECK: vpcmpd $123, (%rcx), %ymm24, %k4
// CHECK: encoding: [0x62,0xf3,0x3d,0x20,0x1f,0x21,0x7b]
vpcmpd $123, (%rcx), %ymm24, %k4
// CHECK: vpcmpd $123, 291(%rax,%r14,8), %ymm24, %k4
// CHECK: encoding: [0x62,0xb3,0x3d,0x20,0x1f,0xa4,0xf0,0x23,0x01,0x00,0x00,0x7b]
vpcmpd $123, 291(%rax,%r14,8), %ymm24, %k4
// CHECK: vpcmpd $123, (%rcx){1to8}, %ymm24, %k4
// CHECK: encoding: [0x62,0xf3,0x3d,0x30,0x1f,0x21,0x7b]
vpcmpd $123, (%rcx){1to8}, %ymm24, %k4
// CHECK: vpcmpd $123, 4064(%rdx), %ymm24, %k4
// CHECK: encoding: [0x62,0xf3,0x3d,0x20,0x1f,0x62,0x7f,0x7b]
vpcmpd $123, 4064(%rdx), %ymm24, %k4
// CHECK: vpcmpd $123, 4096(%rdx), %ymm24, %k4
// CHECK: encoding: [0x62,0xf3,0x3d,0x20,0x1f,0xa2,0x00,0x10,0x00,0x00,0x7b]
vpcmpd $123, 4096(%rdx), %ymm24, %k4
// CHECK: vpcmpd $123, -4096(%rdx), %ymm24, %k4
// CHECK: encoding: [0x62,0xf3,0x3d,0x20,0x1f,0x62,0x80,0x7b]
vpcmpd $123, -4096(%rdx), %ymm24, %k4
// CHECK: vpcmpd $123, -4128(%rdx), %ymm24, %k4
// CHECK: encoding: [0x62,0xf3,0x3d,0x20,0x1f,0xa2,0xe0,0xef,0xff,0xff,0x7b]
vpcmpd $123, -4128(%rdx), %ymm24, %k4
// CHECK: vpcmpd $123, 508(%rdx){1to8}, %ymm24, %k4
// CHECK: encoding: [0x62,0xf3,0x3d,0x30,0x1f,0x62,0x7f,0x7b]
vpcmpd $123, 508(%rdx){1to8}, %ymm24, %k4
// CHECK: vpcmpd $123, 512(%rdx){1to8}, %ymm24, %k4
// CHECK: encoding: [0x62,0xf3,0x3d,0x30,0x1f,0xa2,0x00,0x02,0x00,0x00,0x7b]
vpcmpd $123, 512(%rdx){1to8}, %ymm24, %k4
// CHECK: vpcmpd $123, -512(%rdx){1to8}, %ymm24, %k4
// CHECK: encoding: [0x62,0xf3,0x3d,0x30,0x1f,0x62,0x80,0x7b]
vpcmpd $123, -512(%rdx){1to8}, %ymm24, %k4
// CHECK: vpcmpd $123, -516(%rdx){1to8}, %ymm24, %k4
// CHECK: encoding: [0x62,0xf3,0x3d,0x30,0x1f,0xa2,0xfc,0xfd,0xff,0xff,0x7b]
vpcmpd $123, -516(%rdx){1to8}, %ymm24, %k4
// CHECK: vpcmpeqd %xmm24, %xmm29, %k3
// CHECK: encoding: [0x62,0x91,0x15,0x00,0x76,0xd8]
vpcmpeqd %xmm24, %xmm29, %k3
@ -1184,6 +1296,342 @@
// CHECK: encoding: [0x62,0xf2,0xcd,0x30,0x37,0x92,0xf8,0xfb,0xff,0xff]
vpcmpgtq -1032(%rdx){1to4}, %ymm22, %k2
// CHECK: vpcmpq $171, %xmm24, %xmm27, %k5
// CHECK: encoding: [0x62,0x93,0xa5,0x00,0x1f,0xe8,0xab]
vpcmpq $171, %xmm24, %xmm27, %k5
// CHECK: vpcmpq $171, %xmm24, %xmm27, %k5 {%k7}
// CHECK: encoding: [0x62,0x93,0xa5,0x07,0x1f,0xe8,0xab]
vpcmpq $171, %xmm24, %xmm27, %k5 {%k7}
// CHECK: vpcmpq $123, %xmm24, %xmm27, %k5
// CHECK: encoding: [0x62,0x93,0xa5,0x00,0x1f,0xe8,0x7b]
vpcmpq $123, %xmm24, %xmm27, %k5
// CHECK: vpcmpq $123, (%rcx), %xmm27, %k5
// CHECK: encoding: [0x62,0xf3,0xa5,0x00,0x1f,0x29,0x7b]
vpcmpq $123, (%rcx), %xmm27, %k5
// CHECK: vpcmpq $123, 291(%rax,%r14,8), %xmm27, %k5
// CHECK: encoding: [0x62,0xb3,0xa5,0x00,0x1f,0xac,0xf0,0x23,0x01,0x00,0x00,0x7b]
vpcmpq $123, 291(%rax,%r14,8), %xmm27, %k5
// CHECK: vpcmpq $123, (%rcx){1to2}, %xmm27, %k5
// CHECK: encoding: [0x62,0xf3,0xa5,0x10,0x1f,0x29,0x7b]
vpcmpq $123, (%rcx){1to2}, %xmm27, %k5
// CHECK: vpcmpq $123, 2032(%rdx), %xmm27, %k5
// CHECK: encoding: [0x62,0xf3,0xa5,0x00,0x1f,0x6a,0x7f,0x7b]
vpcmpq $123, 2032(%rdx), %xmm27, %k5
// CHECK: vpcmpq $123, 2048(%rdx), %xmm27, %k5
// CHECK: encoding: [0x62,0xf3,0xa5,0x00,0x1f,0xaa,0x00,0x08,0x00,0x00,0x7b]
vpcmpq $123, 2048(%rdx), %xmm27, %k5
// CHECK: vpcmpq $123, -2048(%rdx), %xmm27, %k5
// CHECK: encoding: [0x62,0xf3,0xa5,0x00,0x1f,0x6a,0x80,0x7b]
vpcmpq $123, -2048(%rdx), %xmm27, %k5
// CHECK: vpcmpq $123, -2064(%rdx), %xmm27, %k5
// CHECK: encoding: [0x62,0xf3,0xa5,0x00,0x1f,0xaa,0xf0,0xf7,0xff,0xff,0x7b]
vpcmpq $123, -2064(%rdx), %xmm27, %k5
// CHECK: vpcmpq $123, 1016(%rdx){1to2}, %xmm27, %k5
// CHECK: encoding: [0x62,0xf3,0xa5,0x10,0x1f,0x6a,0x7f,0x7b]
vpcmpq $123, 1016(%rdx){1to2}, %xmm27, %k5
// CHECK: vpcmpq $123, 1024(%rdx){1to2}, %xmm27, %k5
// CHECK: encoding: [0x62,0xf3,0xa5,0x10,0x1f,0xaa,0x00,0x04,0x00,0x00,0x7b]
vpcmpq $123, 1024(%rdx){1to2}, %xmm27, %k5
// CHECK: vpcmpq $123, -1024(%rdx){1to2}, %xmm27, %k5
// CHECK: encoding: [0x62,0xf3,0xa5,0x10,0x1f,0x6a,0x80,0x7b]
vpcmpq $123, -1024(%rdx){1to2}, %xmm27, %k5
// CHECK: vpcmpq $123, -1032(%rdx){1to2}, %xmm27, %k5
// CHECK: encoding: [0x62,0xf3,0xa5,0x10,0x1f,0xaa,0xf8,0xfb,0xff,0xff,0x7b]
vpcmpq $123, -1032(%rdx){1to2}, %xmm27, %k5
// CHECK: vpcmpq $171, %ymm19, %ymm26, %k4
// CHECK: encoding: [0x62,0xb3,0xad,0x20,0x1f,0xe3,0xab]
vpcmpq $171, %ymm19, %ymm26, %k4
// CHECK: vpcmpq $171, %ymm19, %ymm26, %k4 {%k6}
// CHECK: encoding: [0x62,0xb3,0xad,0x26,0x1f,0xe3,0xab]
vpcmpq $171, %ymm19, %ymm26, %k4 {%k6}
// CHECK: vpcmpq $123, %ymm19, %ymm26, %k4
// CHECK: encoding: [0x62,0xb3,0xad,0x20,0x1f,0xe3,0x7b]
vpcmpq $123, %ymm19, %ymm26, %k4
// CHECK: vpcmpq $123, (%rcx), %ymm26, %k4
// CHECK: encoding: [0x62,0xf3,0xad,0x20,0x1f,0x21,0x7b]
vpcmpq $123, (%rcx), %ymm26, %k4
// CHECK: vpcmpq $123, 291(%rax,%r14,8), %ymm26, %k4
// CHECK: encoding: [0x62,0xb3,0xad,0x20,0x1f,0xa4,0xf0,0x23,0x01,0x00,0x00,0x7b]
vpcmpq $123, 291(%rax,%r14,8), %ymm26, %k4
// CHECK: vpcmpq $123, (%rcx){1to4}, %ymm26, %k4
// CHECK: encoding: [0x62,0xf3,0xad,0x30,0x1f,0x21,0x7b]
vpcmpq $123, (%rcx){1to4}, %ymm26, %k4
// CHECK: vpcmpq $123, 4064(%rdx), %ymm26, %k4
// CHECK: encoding: [0x62,0xf3,0xad,0x20,0x1f,0x62,0x7f,0x7b]
vpcmpq $123, 4064(%rdx), %ymm26, %k4
// CHECK: vpcmpq $123, 4096(%rdx), %ymm26, %k4
// CHECK: encoding: [0x62,0xf3,0xad,0x20,0x1f,0xa2,0x00,0x10,0x00,0x00,0x7b]
vpcmpq $123, 4096(%rdx), %ymm26, %k4
// CHECK: vpcmpq $123, -4096(%rdx), %ymm26, %k4
// CHECK: encoding: [0x62,0xf3,0xad,0x20,0x1f,0x62,0x80,0x7b]
vpcmpq $123, -4096(%rdx), %ymm26, %k4
// CHECK: vpcmpq $123, -4128(%rdx), %ymm26, %k4
// CHECK: encoding: [0x62,0xf3,0xad,0x20,0x1f,0xa2,0xe0,0xef,0xff,0xff,0x7b]
vpcmpq $123, -4128(%rdx), %ymm26, %k4
// CHECK: vpcmpq $123, 1016(%rdx){1to4}, %ymm26, %k4
// CHECK: encoding: [0x62,0xf3,0xad,0x30,0x1f,0x62,0x7f,0x7b]
vpcmpq $123, 1016(%rdx){1to4}, %ymm26, %k4
// CHECK: vpcmpq $123, 1024(%rdx){1to4}, %ymm26, %k4
// CHECK: encoding: [0x62,0xf3,0xad,0x30,0x1f,0xa2,0x00,0x04,0x00,0x00,0x7b]
vpcmpq $123, 1024(%rdx){1to4}, %ymm26, %k4
// CHECK: vpcmpq $123, -1024(%rdx){1to4}, %ymm26, %k4
// CHECK: encoding: [0x62,0xf3,0xad,0x30,0x1f,0x62,0x80,0x7b]
vpcmpq $123, -1024(%rdx){1to4}, %ymm26, %k4
// CHECK: vpcmpq $123, -1032(%rdx){1to4}, %ymm26, %k4
// CHECK: encoding: [0x62,0xf3,0xad,0x30,0x1f,0xa2,0xf8,0xfb,0xff,0xff,0x7b]
vpcmpq $123, -1032(%rdx){1to4}, %ymm26, %k4
// CHECK: vpcmpud $171, %xmm21, %xmm22, %k3
// CHECK: encoding: [0x62,0xb3,0x4d,0x00,0x1e,0xdd,0xab]
vpcmpud $171, %xmm21, %xmm22, %k3
// CHECK: vpcmpud $171, %xmm21, %xmm22, %k3 {%k1}
// CHECK: encoding: [0x62,0xb3,0x4d,0x01,0x1e,0xdd,0xab]
vpcmpud $171, %xmm21, %xmm22, %k3 {%k1}
// CHECK: vpcmpud $123, %xmm21, %xmm22, %k3
// CHECK: encoding: [0x62,0xb3,0x4d,0x00,0x1e,0xdd,0x7b]
vpcmpud $123, %xmm21, %xmm22, %k3
// CHECK: vpcmpud $123, (%rcx), %xmm22, %k3
// CHECK: encoding: [0x62,0xf3,0x4d,0x00,0x1e,0x19,0x7b]
vpcmpud $123, (%rcx), %xmm22, %k3
// CHECK: vpcmpud $123, 291(%rax,%r14,8), %xmm22, %k3
// CHECK: encoding: [0x62,0xb3,0x4d,0x00,0x1e,0x9c,0xf0,0x23,0x01,0x00,0x00,0x7b]
vpcmpud $123, 291(%rax,%r14,8), %xmm22, %k3
// CHECK: vpcmpud $123, (%rcx){1to4}, %xmm22, %k3
// CHECK: encoding: [0x62,0xf3,0x4d,0x10,0x1e,0x19,0x7b]
vpcmpud $123, (%rcx){1to4}, %xmm22, %k3
// CHECK: vpcmpud $123, 2032(%rdx), %xmm22, %k3
// CHECK: encoding: [0x62,0xf3,0x4d,0x00,0x1e,0x5a,0x7f,0x7b]
vpcmpud $123, 2032(%rdx), %xmm22, %k3
// CHECK: vpcmpud $123, 2048(%rdx), %xmm22, %k3
// CHECK: encoding: [0x62,0xf3,0x4d,0x00,0x1e,0x9a,0x00,0x08,0x00,0x00,0x7b]
vpcmpud $123, 2048(%rdx), %xmm22, %k3
// CHECK: vpcmpud $123, -2048(%rdx), %xmm22, %k3
// CHECK: encoding: [0x62,0xf3,0x4d,0x00,0x1e,0x5a,0x80,0x7b]
vpcmpud $123, -2048(%rdx), %xmm22, %k3
// CHECK: vpcmpud $123, -2064(%rdx), %xmm22, %k3
// CHECK: encoding: [0x62,0xf3,0x4d,0x00,0x1e,0x9a,0xf0,0xf7,0xff,0xff,0x7b]
vpcmpud $123, -2064(%rdx), %xmm22, %k3
// CHECK: vpcmpud $123, 508(%rdx){1to4}, %xmm22, %k3
// CHECK: encoding: [0x62,0xf3,0x4d,0x10,0x1e,0x5a,0x7f,0x7b]
vpcmpud $123, 508(%rdx){1to4}, %xmm22, %k3
// CHECK: vpcmpud $123, 512(%rdx){1to4}, %xmm22, %k3
// CHECK: encoding: [0x62,0xf3,0x4d,0x10,0x1e,0x9a,0x00,0x02,0x00,0x00,0x7b]
vpcmpud $123, 512(%rdx){1to4}, %xmm22, %k3
// CHECK: vpcmpud $123, -512(%rdx){1to4}, %xmm22, %k3
// CHECK: encoding: [0x62,0xf3,0x4d,0x10,0x1e,0x5a,0x80,0x7b]
vpcmpud $123, -512(%rdx){1to4}, %xmm22, %k3
// CHECK: vpcmpud $123, -516(%rdx){1to4}, %xmm22, %k3
// CHECK: encoding: [0x62,0xf3,0x4d,0x10,0x1e,0x9a,0xfc,0xfd,0xff,0xff,0x7b]
vpcmpud $123, -516(%rdx){1to4}, %xmm22, %k3
// CHECK: vpcmpud $171, %ymm20, %ymm30, %k3
// CHECK: encoding: [0x62,0xb3,0x0d,0x20,0x1e,0xdc,0xab]
vpcmpud $171, %ymm20, %ymm30, %k3
// CHECK: vpcmpud $171, %ymm20, %ymm30, %k3 {%k6}
// CHECK: encoding: [0x62,0xb3,0x0d,0x26,0x1e,0xdc,0xab]
vpcmpud $171, %ymm20, %ymm30, %k3 {%k6}
// CHECK: vpcmpud $123, %ymm20, %ymm30, %k3
// CHECK: encoding: [0x62,0xb3,0x0d,0x20,0x1e,0xdc,0x7b]
vpcmpud $123, %ymm20, %ymm30, %k3
// CHECK: vpcmpud $123, (%rcx), %ymm30, %k3
// CHECK: encoding: [0x62,0xf3,0x0d,0x20,0x1e,0x19,0x7b]
vpcmpud $123, (%rcx), %ymm30, %k3
// CHECK: vpcmpud $123, 291(%rax,%r14,8), %ymm30, %k3
// CHECK: encoding: [0x62,0xb3,0x0d,0x20,0x1e,0x9c,0xf0,0x23,0x01,0x00,0x00,0x7b]
vpcmpud $123, 291(%rax,%r14,8), %ymm30, %k3
// CHECK: vpcmpud $123, (%rcx){1to8}, %ymm30, %k3
// CHECK: encoding: [0x62,0xf3,0x0d,0x30,0x1e,0x19,0x7b]
vpcmpud $123, (%rcx){1to8}, %ymm30, %k3
// CHECK: vpcmpud $123, 4064(%rdx), %ymm30, %k3
// CHECK: encoding: [0x62,0xf3,0x0d,0x20,0x1e,0x5a,0x7f,0x7b]
vpcmpud $123, 4064(%rdx), %ymm30, %k3
// CHECK: vpcmpud $123, 4096(%rdx), %ymm30, %k3
// CHECK: encoding: [0x62,0xf3,0x0d,0x20,0x1e,0x9a,0x00,0x10,0x00,0x00,0x7b]
vpcmpud $123, 4096(%rdx), %ymm30, %k3
// CHECK: vpcmpud $123, -4096(%rdx), %ymm30, %k3
// CHECK: encoding: [0x62,0xf3,0x0d,0x20,0x1e,0x5a,0x80,0x7b]
vpcmpud $123, -4096(%rdx), %ymm30, %k3
// CHECK: vpcmpud $123, -4128(%rdx), %ymm30, %k3
// CHECK: encoding: [0x62,0xf3,0x0d,0x20,0x1e,0x9a,0xe0,0xef,0xff,0xff,0x7b]
vpcmpud $123, -4128(%rdx), %ymm30, %k3
// CHECK: vpcmpud $123, 508(%rdx){1to8}, %ymm30, %k3
// CHECK: encoding: [0x62,0xf3,0x0d,0x30,0x1e,0x5a,0x7f,0x7b]
vpcmpud $123, 508(%rdx){1to8}, %ymm30, %k3
// CHECK: vpcmpud $123, 512(%rdx){1to8}, %ymm30, %k3
// CHECK: encoding: [0x62,0xf3,0x0d,0x30,0x1e,0x9a,0x00,0x02,0x00,0x00,0x7b]
vpcmpud $123, 512(%rdx){1to8}, %ymm30, %k3
// CHECK: vpcmpud $123, -512(%rdx){1to8}, %ymm30, %k3
// CHECK: encoding: [0x62,0xf3,0x0d,0x30,0x1e,0x5a,0x80,0x7b]
vpcmpud $123, -512(%rdx){1to8}, %ymm30, %k3
// CHECK: vpcmpud $123, -516(%rdx){1to8}, %ymm30, %k3
// CHECK: encoding: [0x62,0xf3,0x0d,0x30,0x1e,0x9a,0xfc,0xfd,0xff,0xff,0x7b]
vpcmpud $123, -516(%rdx){1to8}, %ymm30, %k3
// CHECK: vpcmpuq $171, %xmm28, %xmm28, %k5
// CHECK: encoding: [0x62,0x93,0x9d,0x00,0x1e,0xec,0xab]
vpcmpuq $171, %xmm28, %xmm28, %k5
// CHECK: vpcmpuq $171, %xmm28, %xmm28, %k5 {%k4}
// CHECK: encoding: [0x62,0x93,0x9d,0x04,0x1e,0xec,0xab]
vpcmpuq $171, %xmm28, %xmm28, %k5 {%k4}
// CHECK: vpcmpuq $123, %xmm28, %xmm28, %k5
// CHECK: encoding: [0x62,0x93,0x9d,0x00,0x1e,0xec,0x7b]
vpcmpuq $123, %xmm28, %xmm28, %k5
// CHECK: vpcmpuq $123, (%rcx), %xmm28, %k5
// CHECK: encoding: [0x62,0xf3,0x9d,0x00,0x1e,0x29,0x7b]
vpcmpuq $123, (%rcx), %xmm28, %k5
// CHECK: vpcmpuq $123, 291(%rax,%r14,8), %xmm28, %k5
// CHECK: encoding: [0x62,0xb3,0x9d,0x00,0x1e,0xac,0xf0,0x23,0x01,0x00,0x00,0x7b]
vpcmpuq $123, 291(%rax,%r14,8), %xmm28, %k5
// CHECK: vpcmpuq $123, (%rcx){1to2}, %xmm28, %k5
// CHECK: encoding: [0x62,0xf3,0x9d,0x10,0x1e,0x29,0x7b]
vpcmpuq $123, (%rcx){1to2}, %xmm28, %k5
// CHECK: vpcmpuq $123, 2032(%rdx), %xmm28, %k5
// CHECK: encoding: [0x62,0xf3,0x9d,0x00,0x1e,0x6a,0x7f,0x7b]
vpcmpuq $123, 2032(%rdx), %xmm28, %k5
// CHECK: vpcmpuq $123, 2048(%rdx), %xmm28, %k5
// CHECK: encoding: [0x62,0xf3,0x9d,0x00,0x1e,0xaa,0x00,0x08,0x00,0x00,0x7b]
vpcmpuq $123, 2048(%rdx), %xmm28, %k5
// CHECK: vpcmpuq $123, -2048(%rdx), %xmm28, %k5
// CHECK: encoding: [0x62,0xf3,0x9d,0x00,0x1e,0x6a,0x80,0x7b]
vpcmpuq $123, -2048(%rdx), %xmm28, %k5
// CHECK: vpcmpuq $123, -2064(%rdx), %xmm28, %k5
// CHECK: encoding: [0x62,0xf3,0x9d,0x00,0x1e,0xaa,0xf0,0xf7,0xff,0xff,0x7b]
vpcmpuq $123, -2064(%rdx), %xmm28, %k5
// CHECK: vpcmpuq $123, 1016(%rdx){1to2}, %xmm28, %k5
// CHECK: encoding: [0x62,0xf3,0x9d,0x10,0x1e,0x6a,0x7f,0x7b]
vpcmpuq $123, 1016(%rdx){1to2}, %xmm28, %k5
// CHECK: vpcmpuq $123, 1024(%rdx){1to2}, %xmm28, %k5
// CHECK: encoding: [0x62,0xf3,0x9d,0x10,0x1e,0xaa,0x00,0x04,0x00,0x00,0x7b]
vpcmpuq $123, 1024(%rdx){1to2}, %xmm28, %k5
// CHECK: vpcmpuq $123, -1024(%rdx){1to2}, %xmm28, %k5
// CHECK: encoding: [0x62,0xf3,0x9d,0x10,0x1e,0x6a,0x80,0x7b]
vpcmpuq $123, -1024(%rdx){1to2}, %xmm28, %k5
// CHECK: vpcmpuq $123, -1032(%rdx){1to2}, %xmm28, %k5
// CHECK: encoding: [0x62,0xf3,0x9d,0x10,0x1e,0xaa,0xf8,0xfb,0xff,0xff,0x7b]
vpcmpuq $123, -1032(%rdx){1to2}, %xmm28, %k5
// CHECK: vpcmpuq $171, %ymm26, %ymm22, %k3
// CHECK: encoding: [0x62,0x93,0xcd,0x20,0x1e,0xda,0xab]
vpcmpuq $171, %ymm26, %ymm22, %k3
// CHECK: vpcmpuq $171, %ymm26, %ymm22, %k3 {%k3}
// CHECK: encoding: [0x62,0x93,0xcd,0x23,0x1e,0xda,0xab]
vpcmpuq $171, %ymm26, %ymm22, %k3 {%k3}
// CHECK: vpcmpuq $123, %ymm26, %ymm22, %k3
// CHECK: encoding: [0x62,0x93,0xcd,0x20,0x1e,0xda,0x7b]
vpcmpuq $123, %ymm26, %ymm22, %k3
// CHECK: vpcmpuq $123, (%rcx), %ymm22, %k3
// CHECK: encoding: [0x62,0xf3,0xcd,0x20,0x1e,0x19,0x7b]
vpcmpuq $123, (%rcx), %ymm22, %k3
// CHECK: vpcmpuq $123, 291(%rax,%r14,8), %ymm22, %k3
// CHECK: encoding: [0x62,0xb3,0xcd,0x20,0x1e,0x9c,0xf0,0x23,0x01,0x00,0x00,0x7b]
vpcmpuq $123, 291(%rax,%r14,8), %ymm22, %k3
// CHECK: vpcmpuq $123, (%rcx){1to4}, %ymm22, %k3
// CHECK: encoding: [0x62,0xf3,0xcd,0x30,0x1e,0x19,0x7b]
vpcmpuq $123, (%rcx){1to4}, %ymm22, %k3
// CHECK: vpcmpuq $123, 4064(%rdx), %ymm22, %k3
// CHECK: encoding: [0x62,0xf3,0xcd,0x20,0x1e,0x5a,0x7f,0x7b]
vpcmpuq $123, 4064(%rdx), %ymm22, %k3
// CHECK: vpcmpuq $123, 4096(%rdx), %ymm22, %k3
// CHECK: encoding: [0x62,0xf3,0xcd,0x20,0x1e,0x9a,0x00,0x10,0x00,0x00,0x7b]
vpcmpuq $123, 4096(%rdx), %ymm22, %k3
// CHECK: vpcmpuq $123, -4096(%rdx), %ymm22, %k3
// CHECK: encoding: [0x62,0xf3,0xcd,0x20,0x1e,0x5a,0x80,0x7b]
vpcmpuq $123, -4096(%rdx), %ymm22, %k3
// CHECK: vpcmpuq $123, -4128(%rdx), %ymm22, %k3
// CHECK: encoding: [0x62,0xf3,0xcd,0x20,0x1e,0x9a,0xe0,0xef,0xff,0xff,0x7b]
vpcmpuq $123, -4128(%rdx), %ymm22, %k3
// CHECK: vpcmpuq $123, 1016(%rdx){1to4}, %ymm22, %k3
// CHECK: encoding: [0x62,0xf3,0xcd,0x30,0x1e,0x5a,0x7f,0x7b]
vpcmpuq $123, 1016(%rdx){1to4}, %ymm22, %k3
// CHECK: vpcmpuq $123, 1024(%rdx){1to4}, %ymm22, %k3
// CHECK: encoding: [0x62,0xf3,0xcd,0x30,0x1e,0x9a,0x00,0x04,0x00,0x00,0x7b]
vpcmpuq $123, 1024(%rdx){1to4}, %ymm22, %k3
// CHECK: vpcmpuq $123, -1024(%rdx){1to4}, %ymm22, %k3
// CHECK: encoding: [0x62,0xf3,0xcd,0x30,0x1e,0x5a,0x80,0x7b]
vpcmpuq $123, -1024(%rdx){1to4}, %ymm22, %k3
// CHECK: vpcmpuq $123, -1032(%rdx){1to4}, %ymm22, %k3
// CHECK: encoding: [0x62,0xf3,0xcd,0x30,0x1e,0x9a,0xf8,0xfb,0xff,0xff,0x7b]
vpcmpuq $123, -1032(%rdx){1to4}, %ymm22, %k3
// CHECK: vmovapd %xmm22, (%rcx)
// CHECK: encoding: [0x62,0xe1,0xfd,0x08,0x29,0x31]
vmovapd %xmm22, (%rcx)