From: Robert Khasanov Date: Tue, 14 Oct 2014 14:36:19 +0000 (+0000) Subject: [AVX512] Extended avx512_binop_rm to BW/VL subsets. X-Git-Url: http://plrg.eecs.uci.edu/git/?p=oota-llvm.git;a=commitdiff_plain;h=33a95f24bbb55a53eb13a4a589c7d50f28b322c0 [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 --- diff --git a/lib/Target/X86/X86InstrAVX512.td b/lib/Target/X86/X86InstrAVX512.td index 25fda29c92a..00b00aa75a1 100644 --- a/lib/Target/X86/X86InstrAVX512.td +++ b/lib/Target/X86/X86InstrAVX512.td @@ -2517,7 +2517,7 @@ multiclass avx512_binop_rm opc, string OpcodeStr, SDNode OpNode, itins.rr, IsCommutable>, AVX512BIBase, EVEX_4V; - let mayLoad = 1 in { + let mayLoad = 1 in defm rm : AVX512_maskable opc, string OpcodeStr, SDNode OpNode, (bitconvert (_.LdFrag addr:$src2)))), itins.rm>, AVX512BIBase, EVEX_4V; +} + +multiclass avx512_binop_rmb opc, string OpcodeStr, SDNode OpNode, + X86VectorVTInfo _, OpndItins itins, + bit IsCommutable = 0> : + avx512_binop_rm { + let mayLoad = 1 in defm rmb : AVX512_maskable opc, string OpcodeStr, SDNode OpNode, (_.ScalarLdFrag addr:$src2)))), itins.rm>, AVX512BIBase, EVEX_4V, EVEX_B; - } } multiclass avx512_binop_rm_vl opc, string OpcodeStr, SDNode OpNode, @@ -2552,6 +2558,80 @@ multiclass avx512_binop_rm_vl opc, string OpcodeStr, SDNode OpNode, } } +multiclass avx512_binop_rmb_vl opc, string OpcodeStr, SDNode OpNode, + AVX512VLVectorVTInfo VTInfo, OpndItins itins, + Predicate prd, bit IsCommutable = 0> { + let Predicates = [prd] in + defm Z : avx512_binop_rmb, EVEX_V512; + + let Predicates = [prd, HasVLX] in { + defm Z256 : avx512_binop_rmb, EVEX_V256; + defm Z128 : avx512_binop_rmb, EVEX_V128; + } +} + +multiclass avx512_binop_rm_vl_q opc, string OpcodeStr, SDNode OpNode, + OpndItins itins, Predicate prd, + bit IsCommutable = 0> { + defm NAME : avx512_binop_rmb_vl, + VEX_W, EVEX_CD8<64, CD8VF>; +} + +multiclass avx512_binop_rm_vl_d opc, string OpcodeStr, SDNode OpNode, + OpndItins itins, Predicate prd, + bit IsCommutable = 0> { + defm NAME : avx512_binop_rmb_vl, EVEX_CD8<32, CD8VF>; +} + +multiclass avx512_binop_rm_vl_w opc, string OpcodeStr, SDNode OpNode, + OpndItins itins, Predicate prd, + bit IsCommutable = 0> { + defm NAME : avx512_binop_rm_vl, EVEX_CD8<16, CD8VF>; +} + +multiclass avx512_binop_rm_vl_b opc, string OpcodeStr, SDNode OpNode, + OpndItins itins, Predicate prd, + bit IsCommutable = 0> { + defm NAME : avx512_binop_rm_vl, EVEX_CD8<8, CD8VF>; +} + +multiclass avx512_binop_rm_vl_dq opc_d, bits<8> opc_q, string OpcodeStr, + SDNode OpNode, OpndItins itins, Predicate prd, + bit IsCommutable = 0> { + defm Q : avx512_binop_rm_vl_q; + + defm D : avx512_binop_rm_vl_d; +} + +multiclass avx512_binop_rm_vl_bw opc_b, bits<8> opc_w, string OpcodeStr, + SDNode OpNode, OpndItins itins, Predicate prd, + bit IsCommutable = 0> { + defm W : avx512_binop_rm_vl_w; + + defm B : avx512_binop_rm_vl_b; +} + +multiclass avx512_binop_rm_vl_all 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, + avx512_binop_rm_vl_bw; +} + multiclass avx512_binop_rm2 opc, string OpcodeStr, ValueType DstVT, ValueType SrcVT, RegisterClass KRC, RegisterClass RC, PatFrag memop_frag, X86MemOperand x86memop, @@ -2609,20 +2689,14 @@ multiclass avx512_binop_rm2 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 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 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 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 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 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 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 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 diff --git a/test/MC/X86/x86-64-avx512bw.s b/test/MC/X86/x86-64-avx512bw.s index d915038895f..51555047034 100644 --- a/test/MC/X86/x86-64-avx512bw.s +++ b/test/MC/X86/x86-64-avx512bw.s @@ -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 diff --git a/test/MC/X86/x86-64-avx512bw_vl.s b/test/MC/X86/x86-64-avx512bw_vl.s index 08e8d733345..c3761de881b 100644 --- a/test/MC/X86/x86-64-avx512bw_vl.s +++ b/test/MC/X86/x86-64-avx512bw_vl.s @@ -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