[llvm] r236418 - AVX-512: added integer "add" and "sub" instructions with saturation for SKX

Elena Demikhovsky elena.demikhovsky at intel.com
Mon May 4 05:35:56 PDT 2015


Author: delena
Date: Mon May  4 07:35:55 2015
New Revision: 236418

URL: http://llvm.org/viewvc/llvm-project?rev=236418&view=rev
Log:
AVX-512: added integer "add" and "sub" instructions with saturation for SKX
with intrinsics and tests

by Asaf Badouh (asaf.badouh at intel.com)


Modified:
    llvm/trunk/include/llvm/IR/IntrinsicsX86.td
    llvm/trunk/lib/Target/X86/X86ISelLowering.h
    llvm/trunk/lib/Target/X86/X86InstrAVX512.td
    llvm/trunk/lib/Target/X86/X86InstrFragmentsSIMD.td
    llvm/trunk/lib/Target/X86/X86IntrinsicsInfo.h
    llvm/trunk/test/CodeGen/X86/avx512bw-intrinsics.ll
    llvm/trunk/test/CodeGen/X86/avx512bwvl-intrinsics.ll
    llvm/trunk/test/MC/X86/x86-64-avx512bw.s
    llvm/trunk/test/MC/X86/x86-64-avx512bw_vl.s

Modified: llvm/trunk/include/llvm/IR/IntrinsicsX86.td
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/IR/IntrinsicsX86.td?rev=236418&r1=236417&r2=236418&view=diff
==============================================================================
--- llvm/trunk/include/llvm/IR/IntrinsicsX86.td (original)
+++ llvm/trunk/include/llvm/IR/IntrinsicsX86.td Mon May  4 07:35:55 2015
@@ -3425,6 +3425,42 @@ let TargetPrefix = "x86" in {
   def int_x86_avx512_mask_padd_w_512 : GCCBuiltin<"__builtin_ia32_paddw512_mask">,
           Intrinsic<[llvm_v32i16_ty], [llvm_v32i16_ty, llvm_v32i16_ty,
                      llvm_v32i16_ty, llvm_i32_ty], [IntrNoMem]>;
+  def int_x86_avx512_mask_padds_b_128 : GCCBuiltin<"__builtin_ia32_paddsb128_mask">,
+          Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty,
+                     llvm_v16i8_ty, llvm_i16_ty], [IntrNoMem]>;
+  def int_x86_avx512_mask_padds_b_256 : GCCBuiltin<"__builtin_ia32_paddsb256_mask">,
+          Intrinsic<[llvm_v32i8_ty], [llvm_v32i8_ty, llvm_v32i8_ty,
+                     llvm_v32i8_ty, llvm_i32_ty], [IntrNoMem]>;
+  def int_x86_avx512_mask_padds_b_512 : GCCBuiltin<"__builtin_ia32_paddsb512_mask">,
+          Intrinsic<[llvm_v64i8_ty], [llvm_v64i8_ty, llvm_v64i8_ty,
+                     llvm_v64i8_ty, llvm_i64_ty], [IntrNoMem]>;
+  def int_x86_avx512_mask_padds_w_128 : GCCBuiltin<"__builtin_ia32_paddsw128_mask">,
+          Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty,
+                     llvm_v8i16_ty, llvm_i8_ty], [IntrNoMem]>;
+  def int_x86_avx512_mask_padds_w_256 : GCCBuiltin<"__builtin_ia32_paddsw256_mask">,
+          Intrinsic<[llvm_v16i16_ty], [llvm_v16i16_ty, llvm_v16i16_ty,
+                     llvm_v16i16_ty, llvm_i16_ty], [IntrNoMem]>;
+  def int_x86_avx512_mask_padds_w_512 : GCCBuiltin<"__builtin_ia32_paddsw512_mask">,
+          Intrinsic<[llvm_v32i16_ty], [llvm_v32i16_ty, llvm_v32i16_ty,
+                     llvm_v32i16_ty, llvm_i32_ty], [IntrNoMem]>;
+  def int_x86_avx512_mask_paddus_b_128 : GCCBuiltin<"__builtin_ia32_paddusb128_mask">,
+          Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty,
+                     llvm_v16i8_ty, llvm_i16_ty], [IntrNoMem]>;
+  def int_x86_avx512_mask_paddus_b_256 : GCCBuiltin<"__builtin_ia32_paddusb256_mask">,
+          Intrinsic<[llvm_v32i8_ty], [llvm_v32i8_ty, llvm_v32i8_ty,
+                     llvm_v32i8_ty, llvm_i32_ty], [IntrNoMem]>;
+  def int_x86_avx512_mask_paddus_b_512 : GCCBuiltin<"__builtin_ia32_paddusb512_mask">,
+          Intrinsic<[llvm_v64i8_ty], [llvm_v64i8_ty, llvm_v64i8_ty,
+                     llvm_v64i8_ty, llvm_i64_ty], [IntrNoMem]>;
+  def int_x86_avx512_mask_paddus_w_128 : GCCBuiltin<"__builtin_ia32_paddusw128_mask">,
+          Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty,
+                     llvm_v8i16_ty, llvm_i8_ty], [IntrNoMem]>;
+  def int_x86_avx512_mask_paddus_w_256 : GCCBuiltin<"__builtin_ia32_paddusw256_mask">,
+          Intrinsic<[llvm_v16i16_ty], [llvm_v16i16_ty, llvm_v16i16_ty,
+                     llvm_v16i16_ty, llvm_i16_ty], [IntrNoMem]>;
+  def int_x86_avx512_mask_paddus_w_512 : GCCBuiltin<"__builtin_ia32_paddusw512_mask">,
+          Intrinsic<[llvm_v32i16_ty], [llvm_v32i16_ty, llvm_v32i16_ty,
+                     llvm_v32i16_ty, llvm_i32_ty], [IntrNoMem]>;
   def int_x86_avx512_mask_padd_d_128 : GCCBuiltin<"__builtin_ia32_paddd128_mask">,
           Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty,
                      llvm_v4i32_ty, llvm_i8_ty], [IntrNoMem]>;
@@ -3461,6 +3497,42 @@ let TargetPrefix = "x86" in {
   def int_x86_avx512_mask_psub_w_512 : GCCBuiltin<"__builtin_ia32_psubw512_mask">,
           Intrinsic<[llvm_v32i16_ty], [llvm_v32i16_ty, llvm_v32i16_ty,
                      llvm_v32i16_ty, llvm_i32_ty], [IntrNoMem]>;
+  def int_x86_avx512_mask_psubs_b_128 : GCCBuiltin<"__builtin_ia32_psubsb128_mask">,
+          Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty,
+                     llvm_v16i8_ty, llvm_i16_ty], [IntrNoMem]>;
+  def int_x86_avx512_mask_psubs_b_256 : GCCBuiltin<"__builtin_ia32_psubsb256_mask">,
+          Intrinsic<[llvm_v32i8_ty], [llvm_v32i8_ty, llvm_v32i8_ty,
+                     llvm_v32i8_ty, llvm_i32_ty], [IntrNoMem]>;
+  def int_x86_avx512_mask_psubs_b_512 : GCCBuiltin<"__builtin_ia32_psubsb512_mask">,
+          Intrinsic<[llvm_v64i8_ty], [llvm_v64i8_ty, llvm_v64i8_ty,
+                     llvm_v64i8_ty, llvm_i64_ty], [IntrNoMem]>;
+  def int_x86_avx512_mask_psubs_w_128 : GCCBuiltin<"__builtin_ia32_psubsw128_mask">,
+          Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty,
+                     llvm_v8i16_ty, llvm_i8_ty], [IntrNoMem]>;
+  def int_x86_avx512_mask_psubs_w_256 : GCCBuiltin<"__builtin_ia32_psubsw256_mask">,
+          Intrinsic<[llvm_v16i16_ty], [llvm_v16i16_ty, llvm_v16i16_ty,
+                     llvm_v16i16_ty, llvm_i16_ty], [IntrNoMem]>;
+  def int_x86_avx512_mask_psubs_w_512 : GCCBuiltin<"__builtin_ia32_psubsw512_mask">,
+          Intrinsic<[llvm_v32i16_ty], [llvm_v32i16_ty, llvm_v32i16_ty,
+                     llvm_v32i16_ty, llvm_i32_ty], [IntrNoMem]>;
+  def int_x86_avx512_mask_psubus_b_128 : GCCBuiltin<"__builtin_ia32_psubusb128_mask">,
+          Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty,
+                     llvm_v16i8_ty, llvm_i16_ty], [IntrNoMem]>;
+  def int_x86_avx512_mask_psubus_b_256 : GCCBuiltin<"__builtin_ia32_psubusb256_mask">,
+          Intrinsic<[llvm_v32i8_ty], [llvm_v32i8_ty, llvm_v32i8_ty,
+                     llvm_v32i8_ty, llvm_i32_ty], [IntrNoMem]>;
+  def int_x86_avx512_mask_psubus_b_512 : GCCBuiltin<"__builtin_ia32_psubusb512_mask">,
+          Intrinsic<[llvm_v64i8_ty], [llvm_v64i8_ty, llvm_v64i8_ty,
+                     llvm_v64i8_ty, llvm_i64_ty], [IntrNoMem]>;
+  def int_x86_avx512_mask_psubus_w_128 : GCCBuiltin<"__builtin_ia32_psubusw128_mask">,
+          Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty,
+                     llvm_v8i16_ty, llvm_i8_ty], [IntrNoMem]>;
+  def int_x86_avx512_mask_psubus_w_256 : GCCBuiltin<"__builtin_ia32_psubusw256_mask">,
+          Intrinsic<[llvm_v16i16_ty], [llvm_v16i16_ty, llvm_v16i16_ty,
+                     llvm_v16i16_ty, llvm_i16_ty], [IntrNoMem]>;
+  def int_x86_avx512_mask_psubus_w_512 : GCCBuiltin<"__builtin_ia32_psubusw512_mask">,
+          Intrinsic<[llvm_v32i16_ty], [llvm_v32i16_ty, llvm_v32i16_ty,
+                     llvm_v32i16_ty, llvm_i32_ty], [IntrNoMem]>;
   def int_x86_avx512_mask_psub_d_128 : GCCBuiltin<"__builtin_ia32_psubd128_mask">,
           Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty,
                      llvm_v4i32_ty, llvm_i8_ty], [IntrNoMem]>;

Modified: llvm/trunk/lib/Target/X86/X86ISelLowering.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/X86ISelLowering.h?rev=236418&r1=236417&r2=236418&view=diff
==============================================================================
--- llvm/trunk/lib/Target/X86/X86ISelLowering.h (original)
+++ llvm/trunk/lib/Target/X86/X86ISelLowering.h Mon May  4 07:35:55 2015
@@ -206,8 +206,12 @@ namespace llvm {
       FMUL_RND,
       FDIV_RND,
       
-      // Integer sub with unsigned saturation.
+      // Integer add/sub with unsigned saturation.
+      ADDUS,
       SUBUS,
+      // Integer add/sub with signed saturation.
+      ADDS,
+      SUBS,
 
       /// Integer horizontal add.
       HADD,

Modified: llvm/trunk/lib/Target/X86/X86InstrAVX512.td
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/X86InstrAVX512.td?rev=236418&r1=236417&r2=236418&view=diff
==============================================================================
--- llvm/trunk/lib/Target/X86/X86InstrAVX512.td (original)
+++ llvm/trunk/lib/Target/X86/X86InstrAVX512.td Mon May  4 07:35:55 2015
@@ -3089,6 +3089,14 @@ defm VPADD : avx512_binop_rm_vl_all<0xFC
                                     SSE_INTALU_ITINS_P, 1>;
 defm VPSUB : avx512_binop_rm_vl_all<0xF8, 0xF9, 0xFA, 0xFB, "vpsub", sub,
                                     SSE_INTALU_ITINS_P, 0>;
+defm VPADDS : avx512_binop_rm_vl_bw<0xEC, 0xED, "vpadds", X86adds,
+                                    SSE_INTALU_ITINS_P, HasBWI, 1>;
+defm VPSUBS : avx512_binop_rm_vl_bw<0xE8, 0xE9, "vpsubs", X86subs,
+                                    SSE_INTALU_ITINS_P, HasBWI, 0>;
+defm VPADDUS : avx512_binop_rm_vl_bw<0xDC, 0xDD, "vpaddus", X86addus,
+                                    SSE_INTALU_ITINS_P, HasBWI, 1>;
+defm VPSUBUS : avx512_binop_rm_vl_bw<0xD8, 0xD9, "vpsubus", X86subus,
+                                    SSE_INTALU_ITINS_P, HasBWI, 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,

Modified: llvm/trunk/lib/Target/X86/X86InstrFragmentsSIMD.td
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/X86InstrFragmentsSIMD.td?rev=236418&r1=236417&r2=236418&view=diff
==============================================================================
--- llvm/trunk/lib/Target/X86/X86InstrFragmentsSIMD.td (original)
+++ llvm/trunk/lib/Target/X86/X86InstrFragmentsSIMD.td Mon May  4 07:35:55 2015
@@ -173,7 +173,10 @@ def X86vsrai   : SDNode<"X86ISD::VSRAI",
 def SDTX86CmpPTest : SDTypeProfile<1, 2, [SDTCisVT<0, i32>,
                                           SDTCisVec<1>,
                                           SDTCisSameAs<2, 1>]>;
+def X86addus   : SDNode<"X86ISD::ADDUS", SDTIntBinOp>;
 def X86subus   : SDNode<"X86ISD::SUBUS", SDTIntBinOp>;
+def X86adds    : SDNode<"X86ISD::ADDS", SDTIntBinOp>;
+def X86subs    : SDNode<"X86ISD::SUBS", SDTIntBinOp>;
 def X86ptest   : SDNode<"X86ISD::PTEST", SDTX86CmpPTest>;
 def X86testp   : SDNode<"X86ISD::TESTP", SDTX86CmpPTest>;
 def X86kortest : SDNode<"X86ISD::KORTEST", SDTX86CmpPTest>;

Modified: llvm/trunk/lib/Target/X86/X86IntrinsicsInfo.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/X86IntrinsicsInfo.h?rev=236418&r1=236417&r2=236418&view=diff
==============================================================================
--- llvm/trunk/lib/Target/X86/X86IntrinsicsInfo.h (original)
+++ llvm/trunk/lib/Target/X86/X86IntrinsicsInfo.h Mon May  4 07:35:55 2015
@@ -377,6 +377,18 @@ static const IntrinsicData  IntrinsicsWi
   X86_INTRINSIC_DATA(avx512_mask_padd_w_128, INTR_TYPE_2OP_MASK, ISD::ADD, 0),
   X86_INTRINSIC_DATA(avx512_mask_padd_w_256, INTR_TYPE_2OP_MASK, ISD::ADD, 0),
   X86_INTRINSIC_DATA(avx512_mask_padd_w_512, INTR_TYPE_2OP_MASK, ISD::ADD, 0),
+  X86_INTRINSIC_DATA(avx512_mask_padds_b_128, INTR_TYPE_2OP_MASK, X86ISD::ADDS, 0),
+  X86_INTRINSIC_DATA(avx512_mask_padds_b_256, INTR_TYPE_2OP_MASK, X86ISD::ADDS, 0),
+  X86_INTRINSIC_DATA(avx512_mask_padds_b_512, INTR_TYPE_2OP_MASK, X86ISD::ADDS, 0),
+  X86_INTRINSIC_DATA(avx512_mask_padds_w_128, INTR_TYPE_2OP_MASK, X86ISD::ADDS, 0),
+  X86_INTRINSIC_DATA(avx512_mask_padds_w_256, INTR_TYPE_2OP_MASK, X86ISD::ADDS, 0),
+  X86_INTRINSIC_DATA(avx512_mask_padds_w_512, INTR_TYPE_2OP_MASK, X86ISD::ADDS, 0),
+  X86_INTRINSIC_DATA(avx512_mask_paddus_b_128, INTR_TYPE_2OP_MASK, X86ISD::ADDUS, 0),
+  X86_INTRINSIC_DATA(avx512_mask_paddus_b_256, INTR_TYPE_2OP_MASK, X86ISD::ADDUS, 0),
+  X86_INTRINSIC_DATA(avx512_mask_paddus_b_512, INTR_TYPE_2OP_MASK, X86ISD::ADDUS, 0),
+  X86_INTRINSIC_DATA(avx512_mask_paddus_w_128, INTR_TYPE_2OP_MASK, X86ISD::ADDUS, 0),
+  X86_INTRINSIC_DATA(avx512_mask_paddus_w_256, INTR_TYPE_2OP_MASK, X86ISD::ADDUS, 0),
+  X86_INTRINSIC_DATA(avx512_mask_paddus_w_512, INTR_TYPE_2OP_MASK, X86ISD::ADDUS, 0),
   X86_INTRINSIC_DATA(avx512_mask_pand_d_128, INTR_TYPE_2OP_MASK, ISD::AND, 0),
   X86_INTRINSIC_DATA(avx512_mask_pand_d_256, INTR_TYPE_2OP_MASK, ISD::AND, 0),
   X86_INTRINSIC_DATA(avx512_mask_pand_d_512, INTR_TYPE_2OP_MASK, ISD::AND, 0),
@@ -470,6 +482,18 @@ static const IntrinsicData  IntrinsicsWi
   X86_INTRINSIC_DATA(avx512_mask_psub_w_128, INTR_TYPE_2OP_MASK, ISD::SUB, 0),
   X86_INTRINSIC_DATA(avx512_mask_psub_w_256, INTR_TYPE_2OP_MASK, ISD::SUB, 0),
   X86_INTRINSIC_DATA(avx512_mask_psub_w_512, INTR_TYPE_2OP_MASK, ISD::SUB, 0),
+  X86_INTRINSIC_DATA(avx512_mask_psubs_b_128, INTR_TYPE_2OP_MASK, X86ISD::SUBS, 0),
+  X86_INTRINSIC_DATA(avx512_mask_psubs_b_256, INTR_TYPE_2OP_MASK, X86ISD::SUBS, 0),
+  X86_INTRINSIC_DATA(avx512_mask_psubs_b_512, INTR_TYPE_2OP_MASK, X86ISD::SUBS, 0),
+  X86_INTRINSIC_DATA(avx512_mask_psubs_w_128, INTR_TYPE_2OP_MASK, X86ISD::SUBS, 0),
+  X86_INTRINSIC_DATA(avx512_mask_psubs_w_256, INTR_TYPE_2OP_MASK, X86ISD::SUBS, 0),
+  X86_INTRINSIC_DATA(avx512_mask_psubs_w_512, INTR_TYPE_2OP_MASK, X86ISD::SUBS, 0),
+  X86_INTRINSIC_DATA(avx512_mask_psubus_b_128, INTR_TYPE_2OP_MASK, X86ISD::SUBUS, 0),
+  X86_INTRINSIC_DATA(avx512_mask_psubus_b_256, INTR_TYPE_2OP_MASK, X86ISD::SUBUS, 0),
+  X86_INTRINSIC_DATA(avx512_mask_psubus_b_512, INTR_TYPE_2OP_MASK, X86ISD::SUBUS, 0),
+  X86_INTRINSIC_DATA(avx512_mask_psubus_w_128, INTR_TYPE_2OP_MASK, X86ISD::SUBUS, 0),
+  X86_INTRINSIC_DATA(avx512_mask_psubus_w_256, INTR_TYPE_2OP_MASK, X86ISD::SUBUS, 0),
+  X86_INTRINSIC_DATA(avx512_mask_psubus_w_512, INTR_TYPE_2OP_MASK, X86ISD::SUBUS, 0),
   X86_INTRINSIC_DATA(avx512_mask_pxor_d_128, INTR_TYPE_2OP_MASK, ISD::XOR, 0),
   X86_INTRINSIC_DATA(avx512_mask_pxor_d_256, INTR_TYPE_2OP_MASK, ISD::XOR, 0),
   X86_INTRINSIC_DATA(avx512_mask_pxor_d_512, INTR_TYPE_2OP_MASK, ISD::XOR, 0),

Modified: llvm/trunk/test/CodeGen/X86/avx512bw-intrinsics.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/avx512bw-intrinsics.ll?rev=236418&r1=236417&r2=236418&view=diff
==============================================================================
--- llvm/trunk/test/CodeGen/X86/avx512bw-intrinsics.ll (original)
+++ llvm/trunk/test/CodeGen/X86/avx512bw-intrinsics.ll Mon May  4 07:35:55 2015
@@ -599,4 +599,192 @@ define <64 x i8> @test_mask_packus_epi16
   ret <64 x i8> %res
 }
 
-declare <64 x i8> @llvm.x86.avx512.mask.packuswb.512(<32 x i16>, <32 x i16>, <64 x i8>, i64)
\ No newline at end of file
+declare <64 x i8> @llvm.x86.avx512.mask.packuswb.512(<32 x i16>, <32 x i16>, <64 x i8>, i64)
+
+define <32 x i16> @test_mask_adds_epi16_rr_512(<32 x i16> %a, <32 x i16> %b) {
+  ;CHECK-LABEL: test_mask_adds_epi16_rr_512
+  ;CHECK: vpaddsw %zmm1, %zmm0, %zmm0     
+  %res = call <32 x i16> @llvm.x86.avx512.mask.padds.w.512(<32 x i16> %a, <32 x i16> %b, <32 x i16> zeroinitializer, i32 -1)
+  ret <32 x i16> %res
+}
+
+define <32 x i16> @test_mask_adds_epi16_rrk_512(<32 x i16> %a, <32 x i16> %b, <32 x i16> %passThru, i32 %mask) {
+  ;CHECK-LABEL: test_mask_adds_epi16_rrk_512
+  ;CHECK: vpaddsw %zmm1, %zmm0, %zmm2 {%k1} 
+  %res = call <32 x i16> @llvm.x86.avx512.mask.padds.w.512(<32 x i16> %a, <32 x i16> %b, <32 x i16> %passThru, i32 %mask)
+  ret <32 x i16> %res
+}
+
+define <32 x i16> @test_mask_adds_epi16_rrkz_512(<32 x i16> %a, <32 x i16> %b, i32 %mask) {
+  ;CHECK-LABEL: test_mask_adds_epi16_rrkz_512
+  ;CHECK: vpaddsw %zmm1, %zmm0, %zmm0 {%k1} {z} 
+  %res = call <32 x i16> @llvm.x86.avx512.mask.padds.w.512(<32 x i16> %a, <32 x i16> %b, <32 x i16> zeroinitializer, i32 %mask)
+  ret <32 x i16> %res
+}
+
+define <32 x i16> @test_mask_adds_epi16_rm_512(<32 x i16> %a, <32 x i16>* %ptr_b) {
+  ;CHECK-LABEL: test_mask_adds_epi16_rm_512
+  ;CHECK: vpaddsw (%rdi), %zmm0, %zmm0    
+  %b = load <32 x i16>, <32 x i16>* %ptr_b
+  %res = call <32 x i16> @llvm.x86.avx512.mask.padds.w.512(<32 x i16> %a, <32 x i16> %b, <32 x i16> zeroinitializer, i32 -1)
+  ret <32 x i16> %res
+}
+
+define <32 x i16> @test_mask_adds_epi16_rmk_512(<32 x i16> %a, <32 x i16>* %ptr_b, <32 x i16> %passThru, i32 %mask) {
+  ;CHECK-LABEL: test_mask_adds_epi16_rmk_512
+  ;CHECK: vpaddsw (%rdi), %zmm0, %zmm1 {%k1} 
+  %b = load <32 x i16>, <32 x i16>* %ptr_b
+  %res = call <32 x i16> @llvm.x86.avx512.mask.padds.w.512(<32 x i16> %a, <32 x i16> %b, <32 x i16> %passThru, i32 %mask)
+  ret <32 x i16> %res
+}
+
+define <32 x i16> @test_mask_adds_epi16_rmkz_512(<32 x i16> %a, <32 x i16>* %ptr_b, i32 %mask) {
+  ;CHECK-LABEL: test_mask_adds_epi16_rmkz_512
+  ;CHECK: vpaddsw (%rdi), %zmm0, %zmm0 {%k1} {z} 
+  %b = load <32 x i16>, <32 x i16>* %ptr_b
+  %res = call <32 x i16> @llvm.x86.avx512.mask.padds.w.512(<32 x i16> %a, <32 x i16> %b, <32 x i16> zeroinitializer, i32 %mask)
+  ret <32 x i16> %res
+}
+
+declare <32 x i16> @llvm.x86.avx512.mask.padds.w.512(<32 x i16>, <32 x i16>, <32 x i16>, i32)
+
+define <32 x i16> @test_mask_subs_epi16_rr_512(<32 x i16> %a, <32 x i16> %b) {
+  ;CHECK-LABEL: test_mask_subs_epi16_rr_512
+  ;CHECK: vpsubsw %zmm1, %zmm0, %zmm0     
+  %res = call <32 x i16> @llvm.x86.avx512.mask.psubs.w.512(<32 x i16> %a, <32 x i16> %b, <32 x i16> zeroinitializer, i32 -1)
+  ret <32 x i16> %res
+}
+
+define <32 x i16> @test_mask_subs_epi16_rrk_512(<32 x i16> %a, <32 x i16> %b, <32 x i16> %passThru, i32 %mask) {
+  ;CHECK-LABEL: test_mask_subs_epi16_rrk_512
+  ;CHECK: vpsubsw %zmm1, %zmm0, %zmm2 {%k1} 
+  %res = call <32 x i16> @llvm.x86.avx512.mask.psubs.w.512(<32 x i16> %a, <32 x i16> %b, <32 x i16> %passThru, i32 %mask)
+  ret <32 x i16> %res
+}
+
+define <32 x i16> @test_mask_subs_epi16_rrkz_512(<32 x i16> %a, <32 x i16> %b, i32 %mask) {
+  ;CHECK-LABEL: test_mask_subs_epi16_rrkz_512
+  ;CHECK: vpsubsw %zmm1, %zmm0, %zmm0 {%k1} {z} 
+  %res = call <32 x i16> @llvm.x86.avx512.mask.psubs.w.512(<32 x i16> %a, <32 x i16> %b, <32 x i16> zeroinitializer, i32 %mask)
+  ret <32 x i16> %res
+}
+
+define <32 x i16> @test_mask_subs_epi16_rm_512(<32 x i16> %a, <32 x i16>* %ptr_b) {
+  ;CHECK-LABEL: test_mask_subs_epi16_rm_512
+  ;CHECK: vpsubsw (%rdi), %zmm0, %zmm0    
+  %b = load <32 x i16>, <32 x i16>* %ptr_b
+  %res = call <32 x i16> @llvm.x86.avx512.mask.psubs.w.512(<32 x i16> %a, <32 x i16> %b, <32 x i16> zeroinitializer, i32 -1)
+  ret <32 x i16> %res
+}
+
+define <32 x i16> @test_mask_subs_epi16_rmk_512(<32 x i16> %a, <32 x i16>* %ptr_b, <32 x i16> %passThru, i32 %mask) {
+  ;CHECK-LABEL: test_mask_subs_epi16_rmk_512
+  ;CHECK: vpsubsw (%rdi), %zmm0, %zmm1 {%k1} 
+  %b = load <32 x i16>, <32 x i16>* %ptr_b
+  %res = call <32 x i16> @llvm.x86.avx512.mask.psubs.w.512(<32 x i16> %a, <32 x i16> %b, <32 x i16> %passThru, i32 %mask)
+  ret <32 x i16> %res
+}
+
+define <32 x i16> @test_mask_subs_epi16_rmkz_512(<32 x i16> %a, <32 x i16>* %ptr_b, i32 %mask) {
+  ;CHECK-LABEL: test_mask_subs_epi16_rmkz_512
+  ;CHECK: vpsubsw (%rdi), %zmm0, %zmm0 {%k1} {z} 
+  %b = load <32 x i16>, <32 x i16>* %ptr_b
+  %res = call <32 x i16> @llvm.x86.avx512.mask.psubs.w.512(<32 x i16> %a, <32 x i16> %b, <32 x i16> zeroinitializer, i32 %mask)
+  ret <32 x i16> %res
+}
+
+declare <32 x i16> @llvm.x86.avx512.mask.psubs.w.512(<32 x i16>, <32 x i16>, <32 x i16>, i32)
+
+define <32 x i16> @test_mask_adds_epu16_rr_512(<32 x i16> %a, <32 x i16> %b) {
+  ;CHECK-LABEL: test_mask_adds_epu16_rr_512
+  ;CHECK: vpaddusw %zmm1, %zmm0, %zmm0     
+  %res = call <32 x i16> @llvm.x86.avx512.mask.paddus.w.512(<32 x i16> %a, <32 x i16> %b, <32 x i16> zeroinitializer, i32 -1)
+  ret <32 x i16> %res
+}
+
+define <32 x i16> @test_mask_adds_epu16_rrk_512(<32 x i16> %a, <32 x i16> %b, <32 x i16> %passThru, i32 %mask) {
+  ;CHECK-LABEL: test_mask_adds_epu16_rrk_512
+  ;CHECK: vpaddusw %zmm1, %zmm0, %zmm2 {%k1} 
+  %res = call <32 x i16> @llvm.x86.avx512.mask.paddus.w.512(<32 x i16> %a, <32 x i16> %b, <32 x i16> %passThru, i32 %mask)
+  ret <32 x i16> %res
+}
+
+define <32 x i16> @test_mask_adds_epu16_rrkz_512(<32 x i16> %a, <32 x i16> %b, i32 %mask) {
+  ;CHECK-LABEL: test_mask_adds_epu16_rrkz_512
+  ;CHECK: vpaddusw %zmm1, %zmm0, %zmm0 {%k1} {z} 
+  %res = call <32 x i16> @llvm.x86.avx512.mask.paddus.w.512(<32 x i16> %a, <32 x i16> %b, <32 x i16> zeroinitializer, i32 %mask)
+  ret <32 x i16> %res
+}
+
+define <32 x i16> @test_mask_adds_epu16_rm_512(<32 x i16> %a, <32 x i16>* %ptr_b) {
+  ;CHECK-LABEL: test_mask_adds_epu16_rm_512
+  ;CHECK: vpaddusw (%rdi), %zmm0, %zmm0    
+  %b = load <32 x i16>, <32 x i16>* %ptr_b
+  %res = call <32 x i16> @llvm.x86.avx512.mask.paddus.w.512(<32 x i16> %a, <32 x i16> %b, <32 x i16> zeroinitializer, i32 -1)
+  ret <32 x i16> %res
+}
+
+define <32 x i16> @test_mask_adds_epu16_rmk_512(<32 x i16> %a, <32 x i16>* %ptr_b, <32 x i16> %passThru, i32 %mask) {
+  ;CHECK-LABEL: test_mask_adds_epu16_rmk_512
+  ;CHECK: vpaddusw (%rdi), %zmm0, %zmm1 {%k1} 
+  %b = load <32 x i16>, <32 x i16>* %ptr_b
+  %res = call <32 x i16> @llvm.x86.avx512.mask.paddus.w.512(<32 x i16> %a, <32 x i16> %b, <32 x i16> %passThru, i32 %mask)
+  ret <32 x i16> %res
+}
+
+define <32 x i16> @test_mask_adds_epu16_rmkz_512(<32 x i16> %a, <32 x i16>* %ptr_b, i32 %mask) {
+  ;CHECK-LABEL: test_mask_adds_epu16_rmkz_512
+  ;CHECK: vpaddusw (%rdi), %zmm0, %zmm0 {%k1} {z} 
+  %b = load <32 x i16>, <32 x i16>* %ptr_b
+  %res = call <32 x i16> @llvm.x86.avx512.mask.paddus.w.512(<32 x i16> %a, <32 x i16> %b, <32 x i16> zeroinitializer, i32 %mask)
+  ret <32 x i16> %res
+}
+
+declare <32 x i16> @llvm.x86.avx512.mask.paddus.w.512(<32 x i16>, <32 x i16>, <32 x i16>, i32)
+
+define <32 x i16> @test_mask_subs_epu16_rr_512(<32 x i16> %a, <32 x i16> %b) {
+  ;CHECK-LABEL: test_mask_subs_epu16_rr_512
+  ;CHECK: vpsubusw %zmm1, %zmm0, %zmm0     
+  %res = call <32 x i16> @llvm.x86.avx512.mask.psubus.w.512(<32 x i16> %a, <32 x i16> %b, <32 x i16> zeroinitializer, i32 -1)
+  ret <32 x i16> %res
+}
+
+define <32 x i16> @test_mask_subs_epu16_rrk_512(<32 x i16> %a, <32 x i16> %b, <32 x i16> %passThru, i32 %mask) {
+  ;CHECK-LABEL: test_mask_subs_epu16_rrk_512
+  ;CHECK: vpsubusw %zmm1, %zmm0, %zmm2 {%k1} 
+  %res = call <32 x i16> @llvm.x86.avx512.mask.psubus.w.512(<32 x i16> %a, <32 x i16> %b, <32 x i16> %passThru, i32 %mask)
+  ret <32 x i16> %res
+}
+
+define <32 x i16> @test_mask_subs_epu16_rrkz_512(<32 x i16> %a, <32 x i16> %b, i32 %mask) {
+  ;CHECK-LABEL: test_mask_subs_epu16_rrkz_512
+  ;CHECK: vpsubusw %zmm1, %zmm0, %zmm0 {%k1} {z} 
+  %res = call <32 x i16> @llvm.x86.avx512.mask.psubus.w.512(<32 x i16> %a, <32 x i16> %b, <32 x i16> zeroinitializer, i32 %mask)
+  ret <32 x i16> %res
+}
+
+define <32 x i16> @test_mask_subs_epu16_rm_512(<32 x i16> %a, <32 x i16>* %ptr_b) {
+  ;CHECK-LABEL: test_mask_subs_epu16_rm_512
+  ;CHECK: vpsubusw (%rdi), %zmm0, %zmm0    
+  %b = load <32 x i16>, <32 x i16>* %ptr_b
+  %res = call <32 x i16> @llvm.x86.avx512.mask.psubus.w.512(<32 x i16> %a, <32 x i16> %b, <32 x i16> zeroinitializer, i32 -1)
+  ret <32 x i16> %res
+}
+
+define <32 x i16> @test_mask_subs_epu16_rmk_512(<32 x i16> %a, <32 x i16>* %ptr_b, <32 x i16> %passThru, i32 %mask) {
+  ;CHECK-LABEL: test_mask_subs_epu16_rmk_512
+  ;CHECK: vpsubusw (%rdi), %zmm0, %zmm1 {%k1} 
+  %b = load <32 x i16>, <32 x i16>* %ptr_b
+  %res = call <32 x i16> @llvm.x86.avx512.mask.psubus.w.512(<32 x i16> %a, <32 x i16> %b, <32 x i16> %passThru, i32 %mask)
+  ret <32 x i16> %res
+}
+
+define <32 x i16> @test_mask_subs_epu16_rmkz_512(<32 x i16> %a, <32 x i16>* %ptr_b, i32 %mask) {
+  ;CHECK-LABEL: test_mask_subs_epu16_rmkz_512
+  ;CHECK: vpsubusw (%rdi), %zmm0, %zmm0 {%k1} {z} 
+  %b = load <32 x i16>, <32 x i16>* %ptr_b
+  %res = call <32 x i16> @llvm.x86.avx512.mask.psubus.w.512(<32 x i16> %a, <32 x i16> %b, <32 x i16> zeroinitializer, i32 %mask)
+  ret <32 x i16> %res
+}
+
+declare <32 x i16> @llvm.x86.avx512.mask.psubus.w.512(<32 x i16>, <32 x i16>, <32 x i16>, i32)

Modified: llvm/trunk/test/CodeGen/X86/avx512bwvl-intrinsics.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/avx512bwvl-intrinsics.ll?rev=236418&r1=236417&r2=236418&view=diff
==============================================================================
--- llvm/trunk/test/CodeGen/X86/avx512bwvl-intrinsics.ll (original)
+++ llvm/trunk/test/CodeGen/X86/avx512bwvl-intrinsics.ll Mon May  4 07:35:55 2015
@@ -1917,3 +1917,754 @@ define <32 x i8> @test_mask_packus_epi16
 
 declare <32 x i8> @llvm.x86.avx512.mask.packuswb.256(<16 x i16>, <16 x i16>, <32 x i8>, i32)
 
+define <8 x i16> @test_mask_adds_epi16_rr_128(<8 x i16> %a, <8 x i16> %b) {
+  ;CHECK-LABEL: test_mask_adds_epi16_rr_128
+  ;CHECK: vpaddsw %xmm1, %xmm0, %xmm0 
+  %res = call <8 x i16> @llvm.x86.avx512.mask.padds.w.128(<8 x i16> %a, <8 x i16> %b, <8 x i16> zeroinitializer, i8 -1)
+  ret <8 x i16> %res
+}
+
+define <8 x i16> @test_mask_adds_epi16_rrk_128(<8 x i16> %a, <8 x i16> %b, <8 x i16> %passThru, i8 %mask) {
+  ;CHECK-LABEL: test_mask_adds_epi16_rrk_128
+  ;CHECK: vpaddsw %xmm1, %xmm0, %xmm2 {%k1} 
+  %res = call <8 x i16> @llvm.x86.avx512.mask.padds.w.128(<8 x i16> %a, <8 x i16> %b, <8 x i16> %passThru, i8 %mask)
+  ret <8 x i16> %res
+}
+
+define <8 x i16> @test_mask_adds_epi16_rrkz_128(<8 x i16> %a, <8 x i16> %b, i8 %mask) {
+  ;CHECK-LABEL: test_mask_adds_epi16_rrkz_128
+  ;CHECK: vpaddsw %xmm1, %xmm0, %xmm0 {%k1} {z} 
+  %res = call <8 x i16> @llvm.x86.avx512.mask.padds.w.128(<8 x i16> %a, <8 x i16> %b, <8 x i16> zeroinitializer, i8 %mask)
+  ret <8 x i16> %res
+}
+
+define <8 x i16> @test_mask_adds_epi16_rm_128(<8 x i16> %a, <8 x i16>* %ptr_b) {
+  ;CHECK-LABEL: test_mask_adds_epi16_rm_128
+  ;CHECK: vpaddsw (%rdi), %xmm0, %xmm0 
+  %b = load <8 x i16>, <8 x i16>* %ptr_b
+  %res = call <8 x i16> @llvm.x86.avx512.mask.padds.w.128(<8 x i16> %a, <8 x i16> %b, <8 x i16> zeroinitializer, i8 -1)
+  ret <8 x i16> %res
+}
+
+define <8 x i16> @test_mask_adds_epi16_rmk_128(<8 x i16> %a, <8 x i16>* %ptr_b, <8 x i16> %passThru, i8 %mask) {
+  ;CHECK-LABEL: test_mask_adds_epi16_rmk_128
+  ;CHECK: vpaddsw (%rdi), %xmm0, %xmm1 {%k1} 
+  %b = load <8 x i16>, <8 x i16>* %ptr_b
+  %res = call <8 x i16> @llvm.x86.avx512.mask.padds.w.128(<8 x i16> %a, <8 x i16> %b, <8 x i16> %passThru, i8 %mask)
+  ret <8 x i16> %res
+}
+
+define <8 x i16> @test_mask_adds_epi16_rmkz_128(<8 x i16> %a, <8 x i16>* %ptr_b, i8 %mask) {
+  ;CHECK-LABEL: test_mask_adds_epi16_rmkz_128
+  ;CHECK: vpaddsw (%rdi), %xmm0, %xmm0 {%k1} {z} 
+  %b = load <8 x i16>, <8 x i16>* %ptr_b
+  %res = call <8 x i16> @llvm.x86.avx512.mask.padds.w.128(<8 x i16> %a, <8 x i16> %b, <8 x i16> zeroinitializer, i8 %mask)
+  ret <8 x i16> %res
+}
+
+declare <8 x i16> @llvm.x86.avx512.mask.padds.w.128(<8 x i16>, <8 x i16>, <8 x i16>, i8)
+
+define <16 x i16> @test_mask_adds_epi16_rr_256(<16 x i16> %a, <16 x i16> %b) {
+  ;CHECK-LABEL: test_mask_adds_epi16_rr_256
+  ;CHECK: vpaddsw %ymm1, %ymm0, %ymm0 
+  %res = call <16 x i16> @llvm.x86.avx512.mask.padds.w.256(<16 x i16> %a, <16 x i16> %b, <16 x i16> zeroinitializer, i16 -1)
+  ret <16 x i16> %res
+}
+
+define <16 x i16> @test_mask_adds_epi16_rrk_256(<16 x i16> %a, <16 x i16> %b, <16 x i16> %passThru, i16 %mask) {
+  ;CHECK-LABEL: test_mask_adds_epi16_rrk_256
+  ;CHECK: vpaddsw %ymm1, %ymm0, %ymm2 {%k1} 
+  %res = call <16 x i16> @llvm.x86.avx512.mask.padds.w.256(<16 x i16> %a, <16 x i16> %b, <16 x i16> %passThru, i16 %mask)
+  ret <16 x i16> %res
+}
+
+define <16 x i16> @test_mask_adds_epi16_rrkz_256(<16 x i16> %a, <16 x i16> %b, i16 %mask) {
+  ;CHECK-LABEL: test_mask_adds_epi16_rrkz_256
+  ;CHECK: vpaddsw %ymm1, %ymm0, %ymm0 {%k1} {z} 
+  %res = call <16 x i16> @llvm.x86.avx512.mask.padds.w.256(<16 x i16> %a, <16 x i16> %b, <16 x i16> zeroinitializer, i16 %mask)
+  ret <16 x i16> %res
+}
+
+define <16 x i16> @test_mask_adds_epi16_rm_256(<16 x i16> %a, <16 x i16>* %ptr_b) {
+  ;CHECK-LABEL: test_mask_adds_epi16_rm_256
+  ;CHECK: vpaddsw (%rdi), %ymm0, %ymm0    
+  %b = load <16 x i16>, <16 x i16>* %ptr_b
+  %res = call <16 x i16> @llvm.x86.avx512.mask.padds.w.256(<16 x i16> %a, <16 x i16> %b, <16 x i16> zeroinitializer, i16 -1)
+  ret <16 x i16> %res
+}
+
+define <16 x i16> @test_mask_adds_epi16_rmk_256(<16 x i16> %a, <16 x i16>* %ptr_b, <16 x i16> %passThru, i16 %mask) {
+  ;CHECK-LABEL: test_mask_adds_epi16_rmk_256
+  ;CHECK: vpaddsw (%rdi), %ymm0, %ymm1 {%k1} 
+  %b = load <16 x i16>, <16 x i16>* %ptr_b
+  %res = call <16 x i16> @llvm.x86.avx512.mask.padds.w.256(<16 x i16> %a, <16 x i16> %b, <16 x i16> %passThru, i16 %mask)
+  ret <16 x i16> %res
+}
+
+define <16 x i16> @test_mask_adds_epi16_rmkz_256(<16 x i16> %a, <16 x i16>* %ptr_b, i16 %mask) {
+  ;CHECK-LABEL: test_mask_adds_epi16_rmkz_256
+  ;CHECK: vpaddsw (%rdi), %ymm0, %ymm0 {%k1} {z} 
+  %b = load <16 x i16>, <16 x i16>* %ptr_b
+  %res = call <16 x i16> @llvm.x86.avx512.mask.padds.w.256(<16 x i16> %a, <16 x i16> %b, <16 x i16> zeroinitializer, i16 %mask)
+  ret <16 x i16> %res
+}
+
+declare <16 x i16> @llvm.x86.avx512.mask.padds.w.256(<16 x i16>, <16 x i16>, <16 x i16>, i16)
+
+define <8 x i16> @test_mask_subs_epi16_rr_128(<8 x i16> %a, <8 x i16> %b) {
+  ;CHECK-LABEL: test_mask_subs_epi16_rr_128
+  ;CHECK: vpsubsw %xmm1, %xmm0, %xmm0     
+  %res = call <8 x i16> @llvm.x86.avx512.mask.psubs.w.128(<8 x i16> %a, <8 x i16> %b, <8 x i16> zeroinitializer, i8 -1)
+  ret <8 x i16> %res
+}
+
+define <8 x i16> @test_mask_subs_epi16_rrk_128(<8 x i16> %a, <8 x i16> %b, <8 x i16> %passThru, i8 %mask) {
+  ;CHECK-LABEL: test_mask_subs_epi16_rrk_128
+  ;CHECK: vpsubsw %xmm1, %xmm0, %xmm2 {%k1} 
+  %res = call <8 x i16> @llvm.x86.avx512.mask.psubs.w.128(<8 x i16> %a, <8 x i16> %b, <8 x i16> %passThru, i8 %mask)
+  ret <8 x i16> %res
+}
+
+define <8 x i16> @test_mask_subs_epi16_rrkz_128(<8 x i16> %a, <8 x i16> %b, i8 %mask) {
+  ;CHECK-LABEL: test_mask_subs_epi16_rrkz_128
+  ;CHECK: vpsubsw %xmm1, %xmm0, %xmm0 {%k1} {z} 
+  %res = call <8 x i16> @llvm.x86.avx512.mask.psubs.w.128(<8 x i16> %a, <8 x i16> %b, <8 x i16> zeroinitializer, i8 %mask)
+  ret <8 x i16> %res
+}
+
+define <8 x i16> @test_mask_subs_epi16_rm_128(<8 x i16> %a, <8 x i16>* %ptr_b) {
+  ;CHECK-LABEL: test_mask_subs_epi16_rm_128
+  ;CHECK: vpsubsw (%rdi), %xmm0, %xmm0
+  %b = load <8 x i16>, <8 x i16>* %ptr_b
+  %res = call <8 x i16> @llvm.x86.avx512.mask.psubs.w.128(<8 x i16> %a, <8 x i16> %b, <8 x i16> zeroinitializer, i8 -1)
+  ret <8 x i16> %res
+}
+
+define <8 x i16> @test_mask_subs_epi16_rmk_128(<8 x i16> %a, <8 x i16>* %ptr_b, <8 x i16> %passThru, i8 %mask) {
+  ;CHECK-LABEL: test_mask_subs_epi16_rmk_128
+  ;CHECK: vpsubsw (%rdi), %xmm0, %xmm1 {%k1} 
+  %b = load <8 x i16>, <8 x i16>* %ptr_b
+  %res = call <8 x i16> @llvm.x86.avx512.mask.psubs.w.128(<8 x i16> %a, <8 x i16> %b, <8 x i16> %passThru, i8 %mask)
+  ret <8 x i16> %res
+}
+
+define <8 x i16> @test_mask_subs_epi16_rmkz_128(<8 x i16> %a, <8 x i16>* %ptr_b, i8 %mask) {
+  ;CHECK-LABEL: test_mask_subs_epi16_rmkz_128
+  ;CHECK: vpsubsw (%rdi), %xmm0, %xmm0 {%k1} {z} 
+  %b = load <8 x i16>, <8 x i16>* %ptr_b
+  %res = call <8 x i16> @llvm.x86.avx512.mask.psubs.w.128(<8 x i16> %a, <8 x i16> %b, <8 x i16> zeroinitializer, i8 %mask)
+  ret <8 x i16> %res
+}
+
+declare <8 x i16> @llvm.x86.avx512.mask.psubs.w.128(<8 x i16>, <8 x i16>, <8 x i16>, i8)
+
+define <16 x i16> @test_mask_subs_epi16_rr_256(<16 x i16> %a, <16 x i16> %b) {
+  ;CHECK-LABEL: test_mask_subs_epi16_rr_256
+  ;CHECK: vpsubsw %ymm1, %ymm0, %ymm0     
+  %res = call <16 x i16> @llvm.x86.avx512.mask.psubs.w.256(<16 x i16> %a, <16 x i16> %b, <16 x i16> zeroinitializer, i16 -1)
+  ret <16 x i16> %res
+}
+
+define <16 x i16> @test_mask_subs_epi16_rrk_256(<16 x i16> %a, <16 x i16> %b, <16 x i16> %passThru, i16 %mask) {
+  ;CHECK-LABEL: test_mask_subs_epi16_rrk_256
+  ;CHECK: vpsubsw %ymm1, %ymm0, %ymm2 {%k1} 
+  %res = call <16 x i16> @llvm.x86.avx512.mask.psubs.w.256(<16 x i16> %a, <16 x i16> %b, <16 x i16> %passThru, i16 %mask)
+  ret <16 x i16> %res
+}
+
+define <16 x i16> @test_mask_subs_epi16_rrkz_256(<16 x i16> %a, <16 x i16> %b, i16 %mask) {
+  ;CHECK-LABEL: test_mask_subs_epi16_rrkz_256
+  ;CHECK: vpsubsw %ymm1, %ymm0, %ymm0 {%k1} {z} 
+  %res = call <16 x i16> @llvm.x86.avx512.mask.psubs.w.256(<16 x i16> %a, <16 x i16> %b, <16 x i16> zeroinitializer, i16 %mask)
+  ret <16 x i16> %res
+}
+
+define <16 x i16> @test_mask_subs_epi16_rm_256(<16 x i16> %a, <16 x i16>* %ptr_b) {
+  ;CHECK-LABEL: test_mask_subs_epi16_rm_256
+  ;CHECK: vpsubsw (%rdi), %ymm0, %ymm0    
+  %b = load <16 x i16>, <16 x i16>* %ptr_b
+  %res = call <16 x i16> @llvm.x86.avx512.mask.psubs.w.256(<16 x i16> %a, <16 x i16> %b, <16 x i16> zeroinitializer, i16 -1)
+  ret <16 x i16> %res
+}
+
+define <16 x i16> @test_mask_subs_epi16_rmk_256(<16 x i16> %a, <16 x i16>* %ptr_b, <16 x i16> %passThru, i16 %mask) {
+  ;CHECK-LABEL: test_mask_subs_epi16_rmk_256
+  ;CHECK: vpsubsw (%rdi), %ymm0, %ymm1 {%k1} 
+  %b = load <16 x i16>, <16 x i16>* %ptr_b
+  %res = call <16 x i16> @llvm.x86.avx512.mask.psubs.w.256(<16 x i16> %a, <16 x i16> %b, <16 x i16> %passThru, i16 %mask)
+  ret <16 x i16> %res
+}
+
+define <16 x i16> @test_mask_subs_epi16_rmkz_256(<16 x i16> %a, <16 x i16>* %ptr_b, i16 %mask) {
+  ;CHECK-LABEL: test_mask_subs_epi16_rmkz_256
+  ;CHECK: vpsubsw (%rdi), %ymm0, %ymm0 {%k1} {z} 
+  %b = load <16 x i16>, <16 x i16>* %ptr_b
+  %res = call <16 x i16> @llvm.x86.avx512.mask.psubs.w.256(<16 x i16> %a, <16 x i16> %b, <16 x i16> zeroinitializer, i16 %mask)
+  ret <16 x i16> %res
+}
+
+declare <16 x i16> @llvm.x86.avx512.mask.psubs.w.256(<16 x i16>, <16 x i16>, <16 x i16>, i16)
+
+define <8 x i16> @test_mask_adds_epu16_rr_128(<8 x i16> %a, <8 x i16> %b) {
+  ;CHECK-LABEL: test_mask_adds_epu16_rr_128
+  ;CHECK: vpaddusw %xmm1, %xmm0, %xmm0 
+  %res = call <8 x i16> @llvm.x86.avx512.mask.paddus.w.128(<8 x i16> %a, <8 x i16> %b, <8 x i16> zeroinitializer, i8 -1)
+  ret <8 x i16> %res
+}
+
+define <8 x i16> @test_mask_adds_epu16_rrk_128(<8 x i16> %a, <8 x i16> %b, <8 x i16> %passThru, i8 %mask) {
+  ;CHECK-LABEL: test_mask_adds_epu16_rrk_128
+  ;CHECK: vpaddusw %xmm1, %xmm0, %xmm2 {%k1} 
+  %res = call <8 x i16> @llvm.x86.avx512.mask.paddus.w.128(<8 x i16> %a, <8 x i16> %b, <8 x i16> %passThru, i8 %mask)
+  ret <8 x i16> %res
+}
+
+define <8 x i16> @test_mask_adds_epu16_rrkz_128(<8 x i16> %a, <8 x i16> %b, i8 %mask) {
+  ;CHECK-LABEL: test_mask_adds_epu16_rrkz_128
+  ;CHECK: vpaddusw %xmm1, %xmm0, %xmm0 {%k1} {z} 
+  %res = call <8 x i16> @llvm.x86.avx512.mask.paddus.w.128(<8 x i16> %a, <8 x i16> %b, <8 x i16> zeroinitializer, i8 %mask)
+  ret <8 x i16> %res
+}
+
+define <8 x i16> @test_mask_adds_epu16_rm_128(<8 x i16> %a, <8 x i16>* %ptr_b) {
+  ;CHECK-LABEL: test_mask_adds_epu16_rm_128
+  ;CHECK: vpaddusw (%rdi), %xmm0, %xmm0 
+  %b = load <8 x i16>, <8 x i16>* %ptr_b
+  %res = call <8 x i16> @llvm.x86.avx512.mask.paddus.w.128(<8 x i16> %a, <8 x i16> %b, <8 x i16> zeroinitializer, i8 -1)
+  ret <8 x i16> %res
+}
+
+define <8 x i16> @test_mask_adds_epu16_rmk_128(<8 x i16> %a, <8 x i16>* %ptr_b, <8 x i16> %passThru, i8 %mask) {
+  ;CHECK-LABEL: test_mask_adds_epu16_rmk_128
+  ;CHECK: vpaddusw (%rdi), %xmm0, %xmm1 {%k1} 
+  %b = load <8 x i16>, <8 x i16>* %ptr_b
+  %res = call <8 x i16> @llvm.x86.avx512.mask.paddus.w.128(<8 x i16> %a, <8 x i16> %b, <8 x i16> %passThru, i8 %mask)
+  ret <8 x i16> %res
+}
+
+define <8 x i16> @test_mask_adds_epu16_rmkz_128(<8 x i16> %a, <8 x i16>* %ptr_b, i8 %mask) {
+  ;CHECK-LABEL: test_mask_adds_epu16_rmkz_128
+  ;CHECK: vpaddusw (%rdi), %xmm0, %xmm0 {%k1} {z} 
+  %b = load <8 x i16>, <8 x i16>* %ptr_b
+  %res = call <8 x i16> @llvm.x86.avx512.mask.paddus.w.128(<8 x i16> %a, <8 x i16> %b, <8 x i16> zeroinitializer, i8 %mask)
+  ret <8 x i16> %res
+}
+
+declare <8 x i16> @llvm.x86.avx512.mask.paddus.w.128(<8 x i16>, <8 x i16>, <8 x i16>, i8)
+
+define <16 x i16> @test_mask_adds_epu16_rr_256(<16 x i16> %a, <16 x i16> %b) {
+  ;CHECK-LABEL: test_mask_adds_epu16_rr_256
+  ;CHECK: vpaddusw %ymm1, %ymm0, %ymm0 
+  %res = call <16 x i16> @llvm.x86.avx512.mask.paddus.w.256(<16 x i16> %a, <16 x i16> %b, <16 x i16> zeroinitializer, i16 -1)
+  ret <16 x i16> %res
+}
+
+define <16 x i16> @test_mask_adds_epu16_rrk_256(<16 x i16> %a, <16 x i16> %b, <16 x i16> %passThru, i16 %mask) {
+  ;CHECK-LABEL: test_mask_adds_epu16_rrk_256
+  ;CHECK: vpaddusw %ymm1, %ymm0, %ymm2 {%k1} 
+  %res = call <16 x i16> @llvm.x86.avx512.mask.paddus.w.256(<16 x i16> %a, <16 x i16> %b, <16 x i16> %passThru, i16 %mask)
+  ret <16 x i16> %res
+}
+
+define <16 x i16> @test_mask_adds_epu16_rrkz_256(<16 x i16> %a, <16 x i16> %b, i16 %mask) {
+  ;CHECK-LABEL: test_mask_adds_epu16_rrkz_256
+  ;CHECK: vpaddusw %ymm1, %ymm0, %ymm0 {%k1} {z} 
+  %res = call <16 x i16> @llvm.x86.avx512.mask.paddus.w.256(<16 x i16> %a, <16 x i16> %b, <16 x i16> zeroinitializer, i16 %mask)
+  ret <16 x i16> %res
+}
+
+define <16 x i16> @test_mask_adds_epu16_rm_256(<16 x i16> %a, <16 x i16>* %ptr_b) {
+  ;CHECK-LABEL: test_mask_adds_epu16_rm_256
+  ;CHECK: vpaddusw (%rdi), %ymm0, %ymm0    
+  %b = load <16 x i16>, <16 x i16>* %ptr_b
+  %res = call <16 x i16> @llvm.x86.avx512.mask.paddus.w.256(<16 x i16> %a, <16 x i16> %b, <16 x i16> zeroinitializer, i16 -1)
+  ret <16 x i16> %res
+}
+
+define <16 x i16> @test_mask_adds_epu16_rmk_256(<16 x i16> %a, <16 x i16>* %ptr_b, <16 x i16> %passThru, i16 %mask) {
+  ;CHECK-LABEL: test_mask_adds_epu16_rmk_256
+  ;CHECK: vpaddusw (%rdi), %ymm0, %ymm1 {%k1} 
+  %b = load <16 x i16>, <16 x i16>* %ptr_b
+  %res = call <16 x i16> @llvm.x86.avx512.mask.paddus.w.256(<16 x i16> %a, <16 x i16> %b, <16 x i16> %passThru, i16 %mask)
+  ret <16 x i16> %res
+}
+
+define <16 x i16> @test_mask_adds_epu16_rmkz_256(<16 x i16> %a, <16 x i16>* %ptr_b, i16 %mask) {
+  ;CHECK-LABEL: test_mask_adds_epu16_rmkz_256
+  ;CHECK: vpaddusw (%rdi), %ymm0, %ymm0 {%k1} {z} 
+  %b = load <16 x i16>, <16 x i16>* %ptr_b
+  %res = call <16 x i16> @llvm.x86.avx512.mask.paddus.w.256(<16 x i16> %a, <16 x i16> %b, <16 x i16> zeroinitializer, i16 %mask)
+  ret <16 x i16> %res
+}
+
+declare <16 x i16> @llvm.x86.avx512.mask.paddus.w.256(<16 x i16>, <16 x i16>, <16 x i16>, i16)
+
+define <8 x i16> @test_mask_subs_epu16_rr_128(<8 x i16> %a, <8 x i16> %b) {
+  ;CHECK-LABEL: test_mask_subs_epu16_rr_128
+  ;CHECK: vpsubusw %xmm1, %xmm0, %xmm0     
+  %res = call <8 x i16> @llvm.x86.avx512.mask.psubus.w.128(<8 x i16> %a, <8 x i16> %b, <8 x i16> zeroinitializer, i8 -1)
+  ret <8 x i16> %res
+}
+
+define <8 x i16> @test_mask_subs_epu16_rrk_128(<8 x i16> %a, <8 x i16> %b, <8 x i16> %passThru, i8 %mask) {
+  ;CHECK-LABEL: test_mask_subs_epu16_rrk_128
+  ;CHECK: vpsubusw %xmm1, %xmm0, %xmm2 {%k1} 
+  %res = call <8 x i16> @llvm.x86.avx512.mask.psubus.w.128(<8 x i16> %a, <8 x i16> %b, <8 x i16> %passThru, i8 %mask)
+  ret <8 x i16> %res
+}
+
+define <8 x i16> @test_mask_subs_epu16_rrkz_128(<8 x i16> %a, <8 x i16> %b, i8 %mask) {
+  ;CHECK-LABEL: test_mask_subs_epu16_rrkz_128
+  ;CHECK: vpsubusw %xmm1, %xmm0, %xmm0 {%k1} {z} 
+  %res = call <8 x i16> @llvm.x86.avx512.mask.psubus.w.128(<8 x i16> %a, <8 x i16> %b, <8 x i16> zeroinitializer, i8 %mask)
+  ret <8 x i16> %res
+}
+
+define <8 x i16> @test_mask_subs_epu16_rm_128(<8 x i16> %a, <8 x i16>* %ptr_b) {
+  ;CHECK-LABEL: test_mask_subs_epu16_rm_128
+  ;CHECK: vpsubusw (%rdi), %xmm0, %xmm0
+  %b = load <8 x i16>, <8 x i16>* %ptr_b
+  %res = call <8 x i16> @llvm.x86.avx512.mask.psubus.w.128(<8 x i16> %a, <8 x i16> %b, <8 x i16> zeroinitializer, i8 -1)
+  ret <8 x i16> %res
+}
+
+define <8 x i16> @test_mask_subs_epu16_rmk_128(<8 x i16> %a, <8 x i16>* %ptr_b, <8 x i16> %passThru, i8 %mask) {
+  ;CHECK-LABEL: test_mask_subs_epu16_rmk_128
+  ;CHECK: vpsubusw (%rdi), %xmm0, %xmm1 {%k1} 
+  %b = load <8 x i16>, <8 x i16>* %ptr_b
+  %res = call <8 x i16> @llvm.x86.avx512.mask.psubus.w.128(<8 x i16> %a, <8 x i16> %b, <8 x i16> %passThru, i8 %mask)
+  ret <8 x i16> %res
+}
+
+define <8 x i16> @test_mask_subs_epu16_rmkz_128(<8 x i16> %a, <8 x i16>* %ptr_b, i8 %mask) {
+  ;CHECK-LABEL: test_mask_subs_epu16_rmkz_128
+  ;CHECK: vpsubusw (%rdi), %xmm0, %xmm0 {%k1} {z} 
+  %b = load <8 x i16>, <8 x i16>* %ptr_b
+  %res = call <8 x i16> @llvm.x86.avx512.mask.psubus.w.128(<8 x i16> %a, <8 x i16> %b, <8 x i16> zeroinitializer, i8 %mask)
+  ret <8 x i16> %res
+}
+
+declare <8 x i16> @llvm.x86.avx512.mask.psubus.w.128(<8 x i16>, <8 x i16>, <8 x i16>, i8)
+
+define <16 x i16> @test_mask_subs_epu16_rr_256(<16 x i16> %a, <16 x i16> %b) {
+  ;CHECK-LABEL: test_mask_subs_epu16_rr_256
+  ;CHECK: vpsubusw %ymm1, %ymm0, %ymm0     
+  %res = call <16 x i16> @llvm.x86.avx512.mask.psubus.w.256(<16 x i16> %a, <16 x i16> %b, <16 x i16> zeroinitializer, i16 -1)
+  ret <16 x i16> %res
+}
+
+define <16 x i16> @test_mask_subs_epu16_rrk_256(<16 x i16> %a, <16 x i16> %b, <16 x i16> %passThru, i16 %mask) {
+  ;CHECK-LABEL: test_mask_subs_epu16_rrk_256
+  ;CHECK: vpsubusw %ymm1, %ymm0, %ymm2 {%k1} 
+  %res = call <16 x i16> @llvm.x86.avx512.mask.psubus.w.256(<16 x i16> %a, <16 x i16> %b, <16 x i16> %passThru, i16 %mask)
+  ret <16 x i16> %res
+}
+
+define <16 x i16> @test_mask_subs_epu16_rrkz_256(<16 x i16> %a, <16 x i16> %b, i16 %mask) {
+  ;CHECK-LABEL: test_mask_subs_epu16_rrkz_256
+  ;CHECK: vpsubusw %ymm1, %ymm0, %ymm0 {%k1} {z} 
+  %res = call <16 x i16> @llvm.x86.avx512.mask.psubus.w.256(<16 x i16> %a, <16 x i16> %b, <16 x i16> zeroinitializer, i16 %mask)
+  ret <16 x i16> %res
+}
+
+define <16 x i16> @test_mask_subs_epu16_rm_256(<16 x i16> %a, <16 x i16>* %ptr_b) {
+  ;CHECK-LABEL: test_mask_subs_epu16_rm_256
+  ;CHECK: vpsubusw (%rdi), %ymm0, %ymm0    
+  %b = load <16 x i16>, <16 x i16>* %ptr_b
+  %res = call <16 x i16> @llvm.x86.avx512.mask.psubus.w.256(<16 x i16> %a, <16 x i16> %b, <16 x i16> zeroinitializer, i16 -1)
+  ret <16 x i16> %res
+}
+
+define <16 x i16> @test_mask_subs_epu16_rmk_256(<16 x i16> %a, <16 x i16>* %ptr_b, <16 x i16> %passThru, i16 %mask) {
+  ;CHECK-LABEL: test_mask_subs_epu16_rmk_256
+  ;CHECK: vpsubusw (%rdi), %ymm0, %ymm1 {%k1} 
+  %b = load <16 x i16>, <16 x i16>* %ptr_b
+  %res = call <16 x i16> @llvm.x86.avx512.mask.psubus.w.256(<16 x i16> %a, <16 x i16> %b, <16 x i16> %passThru, i16 %mask)
+  ret <16 x i16> %res
+}
+
+define <16 x i16> @test_mask_subs_epu16_rmkz_256(<16 x i16> %a, <16 x i16>* %ptr_b, i16 %mask) {
+  ;CHECK-LABEL: test_mask_subs_epu16_rmkz_256
+  ;CHECK: vpsubusw (%rdi), %ymm0, %ymm0 {%k1} {z} 
+  %b = load <16 x i16>, <16 x i16>* %ptr_b
+  %res = call <16 x i16> @llvm.x86.avx512.mask.psubus.w.256(<16 x i16> %a, <16 x i16> %b, <16 x i16> zeroinitializer, i16 %mask)
+  ret <16 x i16> %res
+}
+
+declare <16 x i16> @llvm.x86.avx512.mask.psubus.w.256(<16 x i16>, <16 x i16>, <16 x i16>, i16)
+
+define <16 x i8> @test_mask_adds_epi8_rr_128(<16 x i8> %a, <16 x i8> %b) {
+  ;CHECK-LABEL: test_mask_adds_epi8_rr_128
+  ;CHECK: vpaddsb %xmm1, %xmm0, %xmm0 
+  %res = call <16 x i8> @llvm.x86.avx512.mask.padds.b.128(<16 x i8> %a, <16 x i8> %b, <16 x i8> zeroinitializer, i16 -1)
+  ret <16 x i8> %res
+}
+
+define <16 x i8> @test_mask_adds_epi8_rrk_128(<16 x i8> %a, <16 x i8> %b, <16 x i8> %passThru, i16 %mask) {
+  ;CHECK-LABEL: test_mask_adds_epi8_rrk_128
+  ;CHECK: vpaddsb %xmm1, %xmm0, %xmm2 {%k1} 
+  %res = call <16 x i8> @llvm.x86.avx512.mask.padds.b.128(<16 x i8> %a, <16 x i8> %b, <16 x i8> %passThru, i16 %mask)
+  ret <16 x i8> %res
+}
+
+define <16 x i8> @test_mask_adds_epi8_rrkz_128(<16 x i8> %a, <16 x i8> %b, i16 %mask) {
+  ;CHECK-LABEL: test_mask_adds_epi8_rrkz_128
+  ;CHECK: vpaddsb %xmm1, %xmm0, %xmm0 {%k1} {z} 
+  %res = call <16 x i8> @llvm.x86.avx512.mask.padds.b.128(<16 x i8> %a, <16 x i8> %b, <16 x i8> zeroinitializer, i16 %mask)
+  ret <16 x i8> %res
+}
+
+define <16 x i8> @test_mask_adds_epi8_rm_128(<16 x i8> %a, <16 x i8>* %ptr_b) {
+  ;CHECK-LABEL: test_mask_adds_epi8_rm_128
+  ;CHECK: vpaddsb (%rdi), %xmm0, %xmm0 
+  %b = load <16 x i8>, <16 x i8>* %ptr_b
+  %res = call <16 x i8> @llvm.x86.avx512.mask.padds.b.128(<16 x i8> %a, <16 x i8> %b, <16 x i8> zeroinitializer, i16 -1)
+  ret <16 x i8> %res
+}
+
+define <16 x i8> @test_mask_adds_epi8_rmk_128(<16 x i8> %a, <16 x i8>* %ptr_b, <16 x i8> %passThru, i16 %mask) {
+  ;CHECK-LABEL: test_mask_adds_epi8_rmk_128
+  ;CHECK: vpaddsb (%rdi), %xmm0, %xmm1 {%k1} 
+  %b = load <16 x i8>, <16 x i8>* %ptr_b
+  %res = call <16 x i8> @llvm.x86.avx512.mask.padds.b.128(<16 x i8> %a, <16 x i8> %b, <16 x i8> %passThru, i16 %mask)
+  ret <16 x i8> %res
+}
+
+define <16 x i8> @test_mask_adds_epi8_rmkz_128(<16 x i8> %a, <16 x i8>* %ptr_b, i16 %mask) {
+  ;CHECK-LABEL: test_mask_adds_epi8_rmkz_128
+  ;CHECK: vpaddsb (%rdi), %xmm0, %xmm0 {%k1} {z} 
+  %b = load <16 x i8>, <16 x i8>* %ptr_b
+  %res = call <16 x i8> @llvm.x86.avx512.mask.padds.b.128(<16 x i8> %a, <16 x i8> %b, <16 x i8> zeroinitializer, i16 %mask)
+  ret <16 x i8> %res
+}
+
+declare <16 x i8> @llvm.x86.avx512.mask.padds.b.128(<16 x i8>, <16 x i8>, <16 x i8>, i16)
+
+define <32 x i8> @test_mask_adds_epi8_rr_256(<32 x i8> %a, <32 x i8> %b) {
+  ;CHECK-LABEL: test_mask_adds_epi8_rr_256
+  ;CHECK: vpaddsb %ymm1, %ymm0, %ymm0 
+  %res = call <32 x i8> @llvm.x86.avx512.mask.padds.b.256(<32 x i8> %a, <32 x i8> %b, <32 x i8> zeroinitializer, i32 -1)
+  ret <32 x i8> %res
+}
+
+define <32 x i8> @test_mask_adds_epi8_rrk_256(<32 x i8> %a, <32 x i8> %b, <32 x i8> %passThru, i32 %mask) {
+  ;CHECK-LABEL: test_mask_adds_epi8_rrk_256
+  ;CHECK: vpaddsb %ymm1, %ymm0, %ymm2 {%k1} 
+  %res = call <32 x i8> @llvm.x86.avx512.mask.padds.b.256(<32 x i8> %a, <32 x i8> %b, <32 x i8> %passThru, i32 %mask)
+  ret <32 x i8> %res
+}
+
+define <32 x i8> @test_mask_adds_epi8_rrkz_256(<32 x i8> %a, <32 x i8> %b, i32 %mask) {
+  ;CHECK-LABEL: test_mask_adds_epi8_rrkz_256
+  ;CHECK: vpaddsb %ymm1, %ymm0, %ymm0 {%k1} {z} 
+  %res = call <32 x i8> @llvm.x86.avx512.mask.padds.b.256(<32 x i8> %a, <32 x i8> %b, <32 x i8> zeroinitializer, i32 %mask)
+  ret <32 x i8> %res
+}
+
+define <32 x i8> @test_mask_adds_epi8_rm_256(<32 x i8> %a, <32 x i8>* %ptr_b) {
+  ;CHECK-LABEL: test_mask_adds_epi8_rm_256
+  ;CHECK: vpaddsb (%rdi), %ymm0, %ymm0    
+  %b = load <32 x i8>, <32 x i8>* %ptr_b
+  %res = call <32 x i8> @llvm.x86.avx512.mask.padds.b.256(<32 x i8> %a, <32 x i8> %b, <32 x i8> zeroinitializer, i32 -1)
+  ret <32 x i8> %res
+}
+
+define <32 x i8> @test_mask_adds_epi8_rmk_256(<32 x i8> %a, <32 x i8>* %ptr_b, <32 x i8> %passThru, i32 %mask) {
+  ;CHECK-LABEL: test_mask_adds_epi8_rmk_256
+  ;CHECK: vpaddsb (%rdi), %ymm0, %ymm1 {%k1} 
+  %b = load <32 x i8>, <32 x i8>* %ptr_b
+  %res = call <32 x i8> @llvm.x86.avx512.mask.padds.b.256(<32 x i8> %a, <32 x i8> %b, <32 x i8> %passThru, i32 %mask)
+  ret <32 x i8> %res
+}
+
+define <32 x i8> @test_mask_adds_epi8_rmkz_256(<32 x i8> %a, <32 x i8>* %ptr_b, i32 %mask) {
+  ;CHECK-LABEL: test_mask_adds_epi8_rmkz_256
+  ;CHECK: vpaddsb (%rdi), %ymm0, %ymm0 {%k1} {z} 
+  %b = load <32 x i8>, <32 x i8>* %ptr_b
+  %res = call <32 x i8> @llvm.x86.avx512.mask.padds.b.256(<32 x i8> %a, <32 x i8> %b, <32 x i8> zeroinitializer, i32 %mask)
+  ret <32 x i8> %res
+}
+
+declare <32 x i8> @llvm.x86.avx512.mask.padds.b.256(<32 x i8>, <32 x i8>, <32 x i8>, i32)
+
+define <16 x i8> @test_mask_subs_epi8_rr_128(<16 x i8> %a, <16 x i8> %b) {
+  ;CHECK-LABEL: test_mask_subs_epi8_rr_128
+  ;CHECK: vpsubsb %xmm1, %xmm0, %xmm0     
+  %res = call <16 x i8> @llvm.x86.avx512.mask.psubs.b.128(<16 x i8> %a, <16 x i8> %b, <16 x i8> zeroinitializer, i16 -1)
+  ret <16 x i8> %res
+}
+
+define <16 x i8> @test_mask_subs_epi8_rrk_128(<16 x i8> %a, <16 x i8> %b, <16 x i8> %passThru, i16 %mask) {
+  ;CHECK-LABEL: test_mask_subs_epi8_rrk_128
+  ;CHECK: vpsubsb %xmm1, %xmm0, %xmm2 {%k1} 
+  %res = call <16 x i8> @llvm.x86.avx512.mask.psubs.b.128(<16 x i8> %a, <16 x i8> %b, <16 x i8> %passThru, i16 %mask)
+  ret <16 x i8> %res
+}
+
+define <16 x i8> @test_mask_subs_epi8_rrkz_128(<16 x i8> %a, <16 x i8> %b, i16 %mask) {
+  ;CHECK-LABEL: test_mask_subs_epi8_rrkz_128
+  ;CHECK: vpsubsb %xmm1, %xmm0, %xmm0 {%k1} {z} 
+  %res = call <16 x i8> @llvm.x86.avx512.mask.psubs.b.128(<16 x i8> %a, <16 x i8> %b, <16 x i8> zeroinitializer, i16 %mask)
+  ret <16 x i8> %res
+}
+
+define <16 x i8> @test_mask_subs_epi8_rm_128(<16 x i8> %a, <16 x i8>* %ptr_b) {
+  ;CHECK-LABEL: test_mask_subs_epi8_rm_128
+  ;CHECK: vpsubsb (%rdi), %xmm0, %xmm0
+  %b = load <16 x i8>, <16 x i8>* %ptr_b
+  %res = call <16 x i8> @llvm.x86.avx512.mask.psubs.b.128(<16 x i8> %a, <16 x i8> %b, <16 x i8> zeroinitializer, i16 -1)
+  ret <16 x i8> %res
+}
+
+define <16 x i8> @test_mask_subs_epi8_rmk_128(<16 x i8> %a, <16 x i8>* %ptr_b, <16 x i8> %passThru, i16 %mask) {
+  ;CHECK-LABEL: test_mask_subs_epi8_rmk_128
+  ;CHECK: vpsubsb (%rdi), %xmm0, %xmm1 {%k1} 
+  %b = load <16 x i8>, <16 x i8>* %ptr_b
+  %res = call <16 x i8> @llvm.x86.avx512.mask.psubs.b.128(<16 x i8> %a, <16 x i8> %b, <16 x i8> %passThru, i16 %mask)
+  ret <16 x i8> %res
+}
+
+define <16 x i8> @test_mask_subs_epi8_rmkz_128(<16 x i8> %a, <16 x i8>* %ptr_b, i16 %mask) {
+  ;CHECK-LABEL: test_mask_subs_epi8_rmkz_128
+  ;CHECK: vpsubsb (%rdi), %xmm0, %xmm0 {%k1} {z} 
+  %b = load <16 x i8>, <16 x i8>* %ptr_b
+  %res = call <16 x i8> @llvm.x86.avx512.mask.psubs.b.128(<16 x i8> %a, <16 x i8> %b, <16 x i8> zeroinitializer, i16 %mask)
+  ret <16 x i8> %res
+}
+
+declare <16 x i8> @llvm.x86.avx512.mask.psubs.b.128(<16 x i8>, <16 x i8>, <16 x i8>, i16)
+
+define <32 x i8> @test_mask_subs_epi8_rr_256(<32 x i8> %a, <32 x i8> %b) {
+  ;CHECK-LABEL: test_mask_subs_epi8_rr_256
+  ;CHECK: vpsubsb %ymm1, %ymm0, %ymm0     
+  %res = call <32 x i8> @llvm.x86.avx512.mask.psubs.b.256(<32 x i8> %a, <32 x i8> %b, <32 x i8> zeroinitializer, i32 -1)
+  ret <32 x i8> %res
+}
+
+define <32 x i8> @test_mask_subs_epi8_rrk_256(<32 x i8> %a, <32 x i8> %b, <32 x i8> %passThru, i32 %mask) {
+  ;CHECK-LABEL: test_mask_subs_epi8_rrk_256
+  ;CHECK: vpsubsb %ymm1, %ymm0, %ymm2 {%k1} 
+  %res = call <32 x i8> @llvm.x86.avx512.mask.psubs.b.256(<32 x i8> %a, <32 x i8> %b, <32 x i8> %passThru, i32 %mask)
+  ret <32 x i8> %res
+}
+
+define <32 x i8> @test_mask_subs_epi8_rrkz_256(<32 x i8> %a, <32 x i8> %b, i32 %mask) {
+  ;CHECK-LABEL: test_mask_subs_epi8_rrkz_256
+  ;CHECK: vpsubsb %ymm1, %ymm0, %ymm0 {%k1} {z} 
+  %res = call <32 x i8> @llvm.x86.avx512.mask.psubs.b.256(<32 x i8> %a, <32 x i8> %b, <32 x i8> zeroinitializer, i32 %mask)
+  ret <32 x i8> %res
+}
+
+define <32 x i8> @test_mask_subs_epi8_rm_256(<32 x i8> %a, <32 x i8>* %ptr_b) {
+  ;CHECK-LABEL: test_mask_subs_epi8_rm_256
+  ;CHECK: vpsubsb (%rdi), %ymm0, %ymm0    
+  %b = load <32 x i8>, <32 x i8>* %ptr_b
+  %res = call <32 x i8> @llvm.x86.avx512.mask.psubs.b.256(<32 x i8> %a, <32 x i8> %b, <32 x i8> zeroinitializer, i32 -1)
+  ret <32 x i8> %res
+}
+
+define <32 x i8> @test_mask_subs_epi8_rmk_256(<32 x i8> %a, <32 x i8>* %ptr_b, <32 x i8> %passThru, i32 %mask) {
+  ;CHECK-LABEL: test_mask_subs_epi8_rmk_256
+  ;CHECK: vpsubsb (%rdi), %ymm0, %ymm1 {%k1} 
+  %b = load <32 x i8>, <32 x i8>* %ptr_b
+  %res = call <32 x i8> @llvm.x86.avx512.mask.psubs.b.256(<32 x i8> %a, <32 x i8> %b, <32 x i8> %passThru, i32 %mask)
+  ret <32 x i8> %res
+}
+
+define <32 x i8> @test_mask_subs_epi8_rmkz_256(<32 x i8> %a, <32 x i8>* %ptr_b, i32 %mask) {
+  ;CHECK-LABEL: test_mask_subs_epi8_rmkz_256
+  ;CHECK: vpsubsb (%rdi), %ymm0, %ymm0 {%k1} {z} 
+  %b = load <32 x i8>, <32 x i8>* %ptr_b
+  %res = call <32 x i8> @llvm.x86.avx512.mask.psubs.b.256(<32 x i8> %a, <32 x i8> %b, <32 x i8> zeroinitializer, i32 %mask)
+  ret <32 x i8> %res
+}
+
+declare <32 x i8> @llvm.x86.avx512.mask.psubs.b.256(<32 x i8>, <32 x i8>, <32 x i8>, i32)
+
+define <16 x i8> @test_mask_adds_epu8_rr_128(<16 x i8> %a, <16 x i8> %b) {
+  ;CHECK-LABEL: test_mask_adds_epu8_rr_128
+  ;CHECK: vpaddusb %xmm1, %xmm0, %xmm0 
+  %res = call <16 x i8> @llvm.x86.avx512.mask.paddus.b.128(<16 x i8> %a, <16 x i8> %b, <16 x i8> zeroinitializer, i16 -1)
+  ret <16 x i8> %res
+}
+
+define <16 x i8> @test_mask_adds_epu8_rrk_128(<16 x i8> %a, <16 x i8> %b, <16 x i8> %passThru, i16 %mask) {
+  ;CHECK-LABEL: test_mask_adds_epu8_rrk_128
+  ;CHECK: vpaddusb %xmm1, %xmm0, %xmm2 {%k1} 
+  %res = call <16 x i8> @llvm.x86.avx512.mask.paddus.b.128(<16 x i8> %a, <16 x i8> %b, <16 x i8> %passThru, i16 %mask)
+  ret <16 x i8> %res
+}
+
+define <16 x i8> @test_mask_adds_epu8_rrkz_128(<16 x i8> %a, <16 x i8> %b, i16 %mask) {
+  ;CHECK-LABEL: test_mask_adds_epu8_rrkz_128
+  ;CHECK: vpaddusb %xmm1, %xmm0, %xmm0 {%k1} {z} 
+  %res = call <16 x i8> @llvm.x86.avx512.mask.paddus.b.128(<16 x i8> %a, <16 x i8> %b, <16 x i8> zeroinitializer, i16 %mask)
+  ret <16 x i8> %res
+}
+
+define <16 x i8> @test_mask_adds_epu8_rm_128(<16 x i8> %a, <16 x i8>* %ptr_b) {
+  ;CHECK-LABEL: test_mask_adds_epu8_rm_128
+  ;CHECK: vpaddusb (%rdi), %xmm0, %xmm0 
+  %b = load <16 x i8>, <16 x i8>* %ptr_b
+  %res = call <16 x i8> @llvm.x86.avx512.mask.paddus.b.128(<16 x i8> %a, <16 x i8> %b, <16 x i8> zeroinitializer, i16 -1)
+  ret <16 x i8> %res
+}
+
+define <16 x i8> @test_mask_adds_epu8_rmk_128(<16 x i8> %a, <16 x i8>* %ptr_b, <16 x i8> %passThru, i16 %mask) {
+  ;CHECK-LABEL: test_mask_adds_epu8_rmk_128
+  ;CHECK: vpaddusb (%rdi), %xmm0, %xmm1 {%k1} 
+  %b = load <16 x i8>, <16 x i8>* %ptr_b
+  %res = call <16 x i8> @llvm.x86.avx512.mask.paddus.b.128(<16 x i8> %a, <16 x i8> %b, <16 x i8> %passThru, i16 %mask)
+  ret <16 x i8> %res
+}
+
+define <16 x i8> @test_mask_adds_epu8_rmkz_128(<16 x i8> %a, <16 x i8>* %ptr_b, i16 %mask) {
+  ;CHECK-LABEL: test_mask_adds_epu8_rmkz_128
+  ;CHECK: vpaddusb (%rdi), %xmm0, %xmm0 {%k1} {z} 
+  %b = load <16 x i8>, <16 x i8>* %ptr_b
+  %res = call <16 x i8> @llvm.x86.avx512.mask.paddus.b.128(<16 x i8> %a, <16 x i8> %b, <16 x i8> zeroinitializer, i16 %mask)
+  ret <16 x i8> %res
+}
+
+declare <16 x i8> @llvm.x86.avx512.mask.paddus.b.128(<16 x i8>, <16 x i8>, <16 x i8>, i16)
+
+define <32 x i8> @test_mask_adds_epu8_rr_256(<32 x i8> %a, <32 x i8> %b) {
+  ;CHECK-LABEL: test_mask_adds_epu8_rr_256
+  ;CHECK: vpaddusb %ymm1, %ymm0, %ymm0 
+  %res = call <32 x i8> @llvm.x86.avx512.mask.paddus.b.256(<32 x i8> %a, <32 x i8> %b, <32 x i8> zeroinitializer, i32 -1)
+  ret <32 x i8> %res
+}
+
+define <32 x i8> @test_mask_adds_epu8_rrk_256(<32 x i8> %a, <32 x i8> %b, <32 x i8> %passThru, i32 %mask) {
+  ;CHECK-LABEL: test_mask_adds_epu8_rrk_256
+  ;CHECK: vpaddusb %ymm1, %ymm0, %ymm2 {%k1} 
+  %res = call <32 x i8> @llvm.x86.avx512.mask.paddus.b.256(<32 x i8> %a, <32 x i8> %b, <32 x i8> %passThru, i32 %mask)
+  ret <32 x i8> %res
+}
+
+define <32 x i8> @test_mask_adds_epu8_rrkz_256(<32 x i8> %a, <32 x i8> %b, i32 %mask) {
+  ;CHECK-LABEL: test_mask_adds_epu8_rrkz_256
+  ;CHECK: vpaddusb %ymm1, %ymm0, %ymm0 {%k1} {z} 
+  %res = call <32 x i8> @llvm.x86.avx512.mask.paddus.b.256(<32 x i8> %a, <32 x i8> %b, <32 x i8> zeroinitializer, i32 %mask)
+  ret <32 x i8> %res
+}
+
+define <32 x i8> @test_mask_adds_epu8_rm_256(<32 x i8> %a, <32 x i8>* %ptr_b) {
+  ;CHECK-LABEL: test_mask_adds_epu8_rm_256
+  ;CHECK: vpaddusb (%rdi), %ymm0, %ymm0    
+  %b = load <32 x i8>, <32 x i8>* %ptr_b
+  %res = call <32 x i8> @llvm.x86.avx512.mask.paddus.b.256(<32 x i8> %a, <32 x i8> %b, <32 x i8> zeroinitializer, i32 -1)
+  ret <32 x i8> %res
+}
+
+define <32 x i8> @test_mask_adds_epu8_rmk_256(<32 x i8> %a, <32 x i8>* %ptr_b, <32 x i8> %passThru, i32 %mask) {
+  ;CHECK-LABEL: test_mask_adds_epu8_rmk_256
+  ;CHECK: vpaddusb (%rdi), %ymm0, %ymm1 {%k1} 
+  %b = load <32 x i8>, <32 x i8>* %ptr_b
+  %res = call <32 x i8> @llvm.x86.avx512.mask.paddus.b.256(<32 x i8> %a, <32 x i8> %b, <32 x i8> %passThru, i32 %mask)
+  ret <32 x i8> %res
+}
+
+define <32 x i8> @test_mask_adds_epu8_rmkz_256(<32 x i8> %a, <32 x i8>* %ptr_b, i32 %mask) {
+  ;CHECK-LABEL: test_mask_adds_epu8_rmkz_256
+  ;CHECK: vpaddusb (%rdi), %ymm0, %ymm0 {%k1} {z} 
+  %b = load <32 x i8>, <32 x i8>* %ptr_b
+  %res = call <32 x i8> @llvm.x86.avx512.mask.paddus.b.256(<32 x i8> %a, <32 x i8> %b, <32 x i8> zeroinitializer, i32 %mask)
+  ret <32 x i8> %res
+}
+
+declare <32 x i8> @llvm.x86.avx512.mask.paddus.b.256(<32 x i8>, <32 x i8>, <32 x i8>, i32)
+
+define <16 x i8> @test_mask_subs_epu8_rr_128(<16 x i8> %a, <16 x i8> %b) {
+  ;CHECK-LABEL: test_mask_subs_epu8_rr_128
+  ;CHECK: vpsubusb %xmm1, %xmm0, %xmm0     
+  %res = call <16 x i8> @llvm.x86.avx512.mask.psubus.b.128(<16 x i8> %a, <16 x i8> %b, <16 x i8> zeroinitializer, i16 -1)
+  ret <16 x i8> %res
+}
+
+define <16 x i8> @test_mask_subs_epu8_rrk_128(<16 x i8> %a, <16 x i8> %b, <16 x i8> %passThru, i16 %mask) {
+  ;CHECK-LABEL: test_mask_subs_epu8_rrk_128
+  ;CHECK: vpsubusb %xmm1, %xmm0, %xmm2 {%k1} 
+  %res = call <16 x i8> @llvm.x86.avx512.mask.psubus.b.128(<16 x i8> %a, <16 x i8> %b, <16 x i8> %passThru, i16 %mask)
+  ret <16 x i8> %res
+}
+
+define <16 x i8> @test_mask_subs_epu8_rrkz_128(<16 x i8> %a, <16 x i8> %b, i16 %mask) {
+  ;CHECK-LABEL: test_mask_subs_epu8_rrkz_128
+  ;CHECK: vpsubusb %xmm1, %xmm0, %xmm0 {%k1} {z} 
+  %res = call <16 x i8> @llvm.x86.avx512.mask.psubus.b.128(<16 x i8> %a, <16 x i8> %b, <16 x i8> zeroinitializer, i16 %mask)
+  ret <16 x i8> %res
+}
+
+define <16 x i8> @test_mask_subs_epu8_rm_128(<16 x i8> %a, <16 x i8>* %ptr_b) {
+  ;CHECK-LABEL: test_mask_subs_epu8_rm_128
+  ;CHECK: vpsubusb (%rdi), %xmm0, %xmm0
+  %b = load <16 x i8>, <16 x i8>* %ptr_b
+  %res = call <16 x i8> @llvm.x86.avx512.mask.psubus.b.128(<16 x i8> %a, <16 x i8> %b, <16 x i8> zeroinitializer, i16 -1)
+  ret <16 x i8> %res
+}
+
+define <16 x i8> @test_mask_subs_epu8_rmk_128(<16 x i8> %a, <16 x i8>* %ptr_b, <16 x i8> %passThru, i16 %mask) {
+  ;CHECK-LABEL: test_mask_subs_epu8_rmk_128
+  ;CHECK: vpsubusb (%rdi), %xmm0, %xmm1 {%k1} 
+  %b = load <16 x i8>, <16 x i8>* %ptr_b
+  %res = call <16 x i8> @llvm.x86.avx512.mask.psubus.b.128(<16 x i8> %a, <16 x i8> %b, <16 x i8> %passThru, i16 %mask)
+  ret <16 x i8> %res
+}
+
+define <16 x i8> @test_mask_subs_epu8_rmkz_128(<16 x i8> %a, <16 x i8>* %ptr_b, i16 %mask) {
+  ;CHECK-LABEL: test_mask_subs_epu8_rmkz_128
+  ;CHECK: vpsubusb (%rdi), %xmm0, %xmm0 {%k1} {z} 
+  %b = load <16 x i8>, <16 x i8>* %ptr_b
+  %res = call <16 x i8> @llvm.x86.avx512.mask.psubus.b.128(<16 x i8> %a, <16 x i8> %b, <16 x i8> zeroinitializer, i16 %mask)
+  ret <16 x i8> %res
+}
+
+declare <16 x i8> @llvm.x86.avx512.mask.psubus.b.128(<16 x i8>, <16 x i8>, <16 x i8>, i16)
+
+define <32 x i8> @test_mask_subs_epu8_rr_256(<32 x i8> %a, <32 x i8> %b) {
+  ;CHECK-LABEL: test_mask_subs_epu8_rr_256
+  ;CHECK: vpsubusb %ymm1, %ymm0, %ymm0     
+  %res = call <32 x i8> @llvm.x86.avx512.mask.psubus.b.256(<32 x i8> %a, <32 x i8> %b, <32 x i8> zeroinitializer, i32 -1)
+  ret <32 x i8> %res
+}
+
+define <32 x i8> @test_mask_subs_epu8_rrk_256(<32 x i8> %a, <32 x i8> %b, <32 x i8> %passThru, i32 %mask) {
+  ;CHECK-LABEL: test_mask_subs_epu8_rrk_256
+  ;CHECK: vpsubusb %ymm1, %ymm0, %ymm2 {%k1} 
+  %res = call <32 x i8> @llvm.x86.avx512.mask.psubus.b.256(<32 x i8> %a, <32 x i8> %b, <32 x i8> %passThru, i32 %mask)
+  ret <32 x i8> %res
+}
+
+define <32 x i8> @test_mask_subs_epu8_rrkz_256(<32 x i8> %a, <32 x i8> %b, i32 %mask) {
+  ;CHECK-LABEL: test_mask_subs_epu8_rrkz_256
+  ;CHECK: vpsubusb %ymm1, %ymm0, %ymm0 {%k1} {z} 
+  %res = call <32 x i8> @llvm.x86.avx512.mask.psubus.b.256(<32 x i8> %a, <32 x i8> %b, <32 x i8> zeroinitializer, i32 %mask)
+  ret <32 x i8> %res
+}
+
+define <32 x i8> @test_mask_subs_epu8_rm_256(<32 x i8> %a, <32 x i8>* %ptr_b) {
+  ;CHECK-LABEL: test_mask_subs_epu8_rm_256
+  ;CHECK: vpsubusb (%rdi), %ymm0, %ymm0    
+  %b = load <32 x i8>, <32 x i8>* %ptr_b
+  %res = call <32 x i8> @llvm.x86.avx512.mask.psubus.b.256(<32 x i8> %a, <32 x i8> %b, <32 x i8> zeroinitializer, i32 -1)
+  ret <32 x i8> %res
+}
+
+define <32 x i8> @test_mask_subs_epu8_rmk_256(<32 x i8> %a, <32 x i8>* %ptr_b, <32 x i8> %passThru, i32 %mask) {
+  ;CHECK-LABEL: test_mask_subs_epu8_rmk_256
+  ;CHECK: vpsubusb (%rdi), %ymm0, %ymm1 {%k1} 
+  %b = load <32 x i8>, <32 x i8>* %ptr_b
+  %res = call <32 x i8> @llvm.x86.avx512.mask.psubus.b.256(<32 x i8> %a, <32 x i8> %b, <32 x i8> %passThru, i32 %mask)
+  ret <32 x i8> %res
+}
+
+define <32 x i8> @test_mask_subs_epu8_rmkz_256(<32 x i8> %a, <32 x i8>* %ptr_b, i32 %mask) {
+  ;CHECK-LABEL: test_mask_subs_epu8_rmkz_256
+  ;CHECK: vpsubusb (%rdi), %ymm0, %ymm0 {%k1} {z} 
+  %b = load <32 x i8>, <32 x i8>* %ptr_b
+  %res = call <32 x i8> @llvm.x86.avx512.mask.psubus.b.256(<32 x i8> %a, <32 x i8> %b, <32 x i8> zeroinitializer, i32 %mask)
+  ret <32 x i8> %res
+}
+
+declare <32 x i8> @llvm.x86.avx512.mask.psubus.b.256(<32 x i8>, <32 x i8>, <32 x i8>, i32)
\ No newline at end of file

Modified: llvm/trunk/test/MC/X86/x86-64-avx512bw.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/MC/X86/x86-64-avx512bw.s?rev=236418&r1=236417&r2=236418&view=diff
==============================================================================
--- llvm/trunk/test/MC/X86/x86-64-avx512bw.s (original)
+++ llvm/trunk/test/MC/X86/x86-64-avx512bw.s Mon May  4 07:35:55 2015
@@ -2335,3 +2335,904 @@
 // CHECK: vpackuswb -8256(%rdx), %zmm18, %zmm23
 // CHECK:  encoding: [0x62,0xe1,0xed,0x40,0x67,0xba,0xc0,0xdf,0xff,0xff]
           vpackuswb -8256(%rdx), %zmm18, %zmm23
+
+// CHECK: vpaddsb %zmm20, %zmm19, %zmm19
+// CHECK:  encoding: [0x62,0xa1,0x65,0x40,0xec,0xdc]
+          vpaddsb %zmm20, %zmm19, %zmm19
+
+// CHECK: vpaddsb %zmm20, %zmm19, %zmm19 {%k6}
+// CHECK:  encoding: [0x62,0xa1,0x65,0x46,0xec,0xdc]
+          vpaddsb %zmm20, %zmm19, %zmm19 {%k6}
+
+// CHECK: vpaddsb %zmm20, %zmm19, %zmm19 {%k6} {z}
+// CHECK:  encoding: [0x62,0xa1,0x65,0xc6,0xec,0xdc]
+          vpaddsb %zmm20, %zmm19, %zmm19 {%k6} {z}
+
+// CHECK: vpaddsb (%rcx), %zmm19, %zmm19
+// CHECK:  encoding: [0x62,0xe1,0x65,0x40,0xec,0x19]
+          vpaddsb (%rcx), %zmm19, %zmm19
+
+// CHECK: vpaddsb 291(%rax,%r14,8), %zmm19, %zmm19
+// CHECK:  encoding: [0x62,0xa1,0x65,0x40,0xec,0x9c,0xf0,0x23,0x01,0x00,0x00]
+          vpaddsb 291(%rax,%r14,8), %zmm19, %zmm19
+
+// CHECK: vpaddsb 8128(%rdx), %zmm19, %zmm19
+// CHECK:  encoding: [0x62,0xe1,0x65,0x40,0xec,0x5a,0x7f]
+          vpaddsb 8128(%rdx), %zmm19, %zmm19
+
+// CHECK: vpaddsb 8192(%rdx), %zmm19, %zmm19
+// CHECK:  encoding: [0x62,0xe1,0x65,0x40,0xec,0x9a,0x00,0x20,0x00,0x00]
+          vpaddsb 8192(%rdx), %zmm19, %zmm19
+
+// CHECK: vpaddsb -8192(%rdx), %zmm19, %zmm19
+// CHECK:  encoding: [0x62,0xe1,0x65,0x40,0xec,0x5a,0x80]
+          vpaddsb -8192(%rdx), %zmm19, %zmm19
+
+// CHECK: vpaddsb -8256(%rdx), %zmm19, %zmm19
+// CHECK:  encoding: [0x62,0xe1,0x65,0x40,0xec,0x9a,0xc0,0xdf,0xff,0xff]
+          vpaddsb -8256(%rdx), %zmm19, %zmm19
+
+// CHECK: vpaddsw %zmm22, %zmm19, %zmm20
+// CHECK:  encoding: [0x62,0xa1,0x65,0x40,0xed,0xe6]
+          vpaddsw %zmm22, %zmm19, %zmm20
+
+// CHECK: vpaddsw %zmm22, %zmm19, %zmm20 {%k2}
+// CHECK:  encoding: [0x62,0xa1,0x65,0x42,0xed,0xe6]
+          vpaddsw %zmm22, %zmm19, %zmm20 {%k2}
+
+// CHECK: vpaddsw %zmm22, %zmm19, %zmm20 {%k2} {z}
+// CHECK:  encoding: [0x62,0xa1,0x65,0xc2,0xed,0xe6]
+          vpaddsw %zmm22, %zmm19, %zmm20 {%k2} {z}
+
+// CHECK: vpaddsw (%rcx), %zmm19, %zmm20
+// CHECK:  encoding: [0x62,0xe1,0x65,0x40,0xed,0x21]
+          vpaddsw (%rcx), %zmm19, %zmm20
+
+// CHECK: vpaddsw 291(%rax,%r14,8), %zmm19, %zmm20
+// CHECK:  encoding: [0x62,0xa1,0x65,0x40,0xed,0xa4,0xf0,0x23,0x01,0x00,0x00]
+          vpaddsw 291(%rax,%r14,8), %zmm19, %zmm20
+
+// CHECK: vpaddsw 8128(%rdx), %zmm19, %zmm20
+// CHECK:  encoding: [0x62,0xe1,0x65,0x40,0xed,0x62,0x7f]
+          vpaddsw 8128(%rdx), %zmm19, %zmm20
+
+// CHECK: vpaddsw 8192(%rdx), %zmm19, %zmm20
+// CHECK:  encoding: [0x62,0xe1,0x65,0x40,0xed,0xa2,0x00,0x20,0x00,0x00]
+          vpaddsw 8192(%rdx), %zmm19, %zmm20
+
+// CHECK: vpaddsw -8192(%rdx), %zmm19, %zmm20
+// CHECK:  encoding: [0x62,0xe1,0x65,0x40,0xed,0x62,0x80]
+          vpaddsw -8192(%rdx), %zmm19, %zmm20
+
+// CHECK: vpaddsw -8256(%rdx), %zmm19, %zmm20
+// CHECK:  encoding: [0x62,0xe1,0x65,0x40,0xed,0xa2,0xc0,0xdf,0xff,0xff]
+          vpaddsw -8256(%rdx), %zmm19, %zmm20
+
+// CHECK: vpaddusb %zmm25, %zmm29, %zmm29
+// CHECK:  encoding: [0x62,0x01,0x15,0x40,0xdc,0xe9]
+          vpaddusb %zmm25, %zmm29, %zmm29
+
+// CHECK: vpaddusb %zmm25, %zmm29, %zmm29 {%k1}
+// CHECK:  encoding: [0x62,0x01,0x15,0x41,0xdc,0xe9]
+          vpaddusb %zmm25, %zmm29, %zmm29 {%k1}
+
+// CHECK: vpaddusb %zmm25, %zmm29, %zmm29 {%k1} {z}
+// CHECK:  encoding: [0x62,0x01,0x15,0xc1,0xdc,0xe9]
+          vpaddusb %zmm25, %zmm29, %zmm29 {%k1} {z}
+
+// CHECK: vpaddusb (%rcx), %zmm29, %zmm29
+// CHECK:  encoding: [0x62,0x61,0x15,0x40,0xdc,0x29]
+          vpaddusb (%rcx), %zmm29, %zmm29
+
+// CHECK: vpaddusb 291(%rax,%r14,8), %zmm29, %zmm29
+// CHECK:  encoding: [0x62,0x21,0x15,0x40,0xdc,0xac,0xf0,0x23,0x01,0x00,0x00]
+          vpaddusb 291(%rax,%r14,8), %zmm29, %zmm29
+
+// CHECK: vpaddusb 8128(%rdx), %zmm29, %zmm29
+// CHECK:  encoding: [0x62,0x61,0x15,0x40,0xdc,0x6a,0x7f]
+          vpaddusb 8128(%rdx), %zmm29, %zmm29
+
+// CHECK: vpaddusb 8192(%rdx), %zmm29, %zmm29
+// CHECK:  encoding: [0x62,0x61,0x15,0x40,0xdc,0xaa,0x00,0x20,0x00,0x00]
+          vpaddusb 8192(%rdx), %zmm29, %zmm29
+
+// CHECK: vpaddusb -8192(%rdx), %zmm29, %zmm29
+// CHECK:  encoding: [0x62,0x61,0x15,0x40,0xdc,0x6a,0x80]
+          vpaddusb -8192(%rdx), %zmm29, %zmm29
+
+// CHECK: vpaddusb -8256(%rdx), %zmm29, %zmm29
+// CHECK:  encoding: [0x62,0x61,0x15,0x40,0xdc,0xaa,0xc0,0xdf,0xff,0xff]
+          vpaddusb -8256(%rdx), %zmm29, %zmm29
+
+// CHECK: vpaddusw %zmm17, %zmm25, %zmm21
+// CHECK:  encoding: [0x62,0xa1,0x35,0x40,0xdd,0xe9]
+          vpaddusw %zmm17, %zmm25, %zmm21
+
+// CHECK: vpaddusw %zmm17, %zmm25, %zmm21 {%k4}
+// CHECK:  encoding: [0x62,0xa1,0x35,0x44,0xdd,0xe9]
+          vpaddusw %zmm17, %zmm25, %zmm21 {%k4}
+
+// CHECK: vpaddusw %zmm17, %zmm25, %zmm21 {%k4} {z}
+// CHECK:  encoding: [0x62,0xa1,0x35,0xc4,0xdd,0xe9]
+          vpaddusw %zmm17, %zmm25, %zmm21 {%k4} {z}
+
+// CHECK: vpaddusw (%rcx), %zmm25, %zmm21
+// CHECK:  encoding: [0x62,0xe1,0x35,0x40,0xdd,0x29]
+          vpaddusw (%rcx), %zmm25, %zmm21
+
+// CHECK: vpaddusw 291(%rax,%r14,8), %zmm25, %zmm21
+// CHECK:  encoding: [0x62,0xa1,0x35,0x40,0xdd,0xac,0xf0,0x23,0x01,0x00,0x00]
+          vpaddusw 291(%rax,%r14,8), %zmm25, %zmm21
+
+// CHECK: vpaddusw 8128(%rdx), %zmm25, %zmm21
+// CHECK:  encoding: [0x62,0xe1,0x35,0x40,0xdd,0x6a,0x7f]
+          vpaddusw 8128(%rdx), %zmm25, %zmm21
+
+// CHECK: vpaddusw 8192(%rdx), %zmm25, %zmm21
+// CHECK:  encoding: [0x62,0xe1,0x35,0x40,0xdd,0xaa,0x00,0x20,0x00,0x00]
+          vpaddusw 8192(%rdx), %zmm25, %zmm21
+
+// CHECK: vpaddusw -8192(%rdx), %zmm25, %zmm21
+// CHECK:  encoding: [0x62,0xe1,0x35,0x40,0xdd,0x6a,0x80]
+          vpaddusw -8192(%rdx), %zmm25, %zmm21
+
+// CHECK: vpaddusw -8256(%rdx), %zmm25, %zmm21
+// CHECK:  encoding: [0x62,0xe1,0x35,0x40,0xdd,0xaa,0xc0,0xdf,0xff,0xff]
+          vpaddusw -8256(%rdx), %zmm25, %zmm21
+
+// CHECK: vpsubsb %zmm20, %zmm24, %zmm25
+// CHECK:  encoding: [0x62,0x21,0x3d,0x40,0xe8,0xcc]
+          vpsubsb %zmm20, %zmm24, %zmm25
+
+// CHECK: vpsubsb %zmm20, %zmm24, %zmm25 {%k2}
+// CHECK:  encoding: [0x62,0x21,0x3d,0x42,0xe8,0xcc]
+          vpsubsb %zmm20, %zmm24, %zmm25 {%k2}
+
+// CHECK: vpsubsb %zmm20, %zmm24, %zmm25 {%k2} {z}
+// CHECK:  encoding: [0x62,0x21,0x3d,0xc2,0xe8,0xcc]
+          vpsubsb %zmm20, %zmm24, %zmm25 {%k2} {z}
+
+// CHECK: vpsubsb (%rcx), %zmm24, %zmm25
+// CHECK:  encoding: [0x62,0x61,0x3d,0x40,0xe8,0x09]
+          vpsubsb (%rcx), %zmm24, %zmm25
+
+// CHECK: vpsubsb 291(%rax,%r14,8), %zmm24, %zmm25
+// CHECK:  encoding: [0x62,0x21,0x3d,0x40,0xe8,0x8c,0xf0,0x23,0x01,0x00,0x00]
+          vpsubsb 291(%rax,%r14,8), %zmm24, %zmm25
+
+// CHECK: vpsubsb 8128(%rdx), %zmm24, %zmm25
+// CHECK:  encoding: [0x62,0x61,0x3d,0x40,0xe8,0x4a,0x7f]
+          vpsubsb 8128(%rdx), %zmm24, %zmm25
+
+// CHECK: vpsubsb 8192(%rdx), %zmm24, %zmm25
+// CHECK:  encoding: [0x62,0x61,0x3d,0x40,0xe8,0x8a,0x00,0x20,0x00,0x00]
+          vpsubsb 8192(%rdx), %zmm24, %zmm25
+
+// CHECK: vpsubsb -8192(%rdx), %zmm24, %zmm25
+// CHECK:  encoding: [0x62,0x61,0x3d,0x40,0xe8,0x4a,0x80]
+          vpsubsb -8192(%rdx), %zmm24, %zmm25
+
+// CHECK: vpsubsb -8256(%rdx), %zmm24, %zmm25
+// CHECK:  encoding: [0x62,0x61,0x3d,0x40,0xe8,0x8a,0xc0,0xdf,0xff,0xff]
+          vpsubsb -8256(%rdx), %zmm24, %zmm25
+
+// CHECK: vpsubsw %zmm23, %zmm22, %zmm23
+// CHECK:  encoding: [0x62,0xa1,0x4d,0x40,0xe9,0xff]
+          vpsubsw %zmm23, %zmm22, %zmm23
+
+// CHECK: vpsubsw %zmm23, %zmm22, %zmm23 {%k3}
+// CHECK:  encoding: [0x62,0xa1,0x4d,0x43,0xe9,0xff]
+          vpsubsw %zmm23, %zmm22, %zmm23 {%k3}
+
+// CHECK: vpsubsw %zmm23, %zmm22, %zmm23 {%k3} {z}
+// CHECK:  encoding: [0x62,0xa1,0x4d,0xc3,0xe9,0xff]
+          vpsubsw %zmm23, %zmm22, %zmm23 {%k3} {z}
+
+// CHECK: vpsubsw (%rcx), %zmm22, %zmm23
+// CHECK:  encoding: [0x62,0xe1,0x4d,0x40,0xe9,0x39]
+          vpsubsw (%rcx), %zmm22, %zmm23
+
+// CHECK: vpsubsw 291(%rax,%r14,8), %zmm22, %zmm23
+// CHECK:  encoding: [0x62,0xa1,0x4d,0x40,0xe9,0xbc,0xf0,0x23,0x01,0x00,0x00]
+          vpsubsw 291(%rax,%r14,8), %zmm22, %zmm23
+
+// CHECK: vpsubsw 8128(%rdx), %zmm22, %zmm23
+// CHECK:  encoding: [0x62,0xe1,0x4d,0x40,0xe9,0x7a,0x7f]
+          vpsubsw 8128(%rdx), %zmm22, %zmm23
+
+// CHECK: vpsubsw 8192(%rdx), %zmm22, %zmm23
+// CHECK:  encoding: [0x62,0xe1,0x4d,0x40,0xe9,0xba,0x00,0x20,0x00,0x00]
+          vpsubsw 8192(%rdx), %zmm22, %zmm23
+
+// CHECK: vpsubsw -8192(%rdx), %zmm22, %zmm23
+// CHECK:  encoding: [0x62,0xe1,0x4d,0x40,0xe9,0x7a,0x80]
+          vpsubsw -8192(%rdx), %zmm22, %zmm23
+
+// CHECK: vpsubsw -8256(%rdx), %zmm22, %zmm23
+// CHECK:  encoding: [0x62,0xe1,0x4d,0x40,0xe9,0xba,0xc0,0xdf,0xff,0xff]
+          vpsubsw -8256(%rdx), %zmm22, %zmm23
+
+// CHECK: vpsubusb %zmm22, %zmm21, %zmm24
+// CHECK:  encoding: [0x62,0x21,0x55,0x40,0xd8,0xc6]
+          vpsubusb %zmm22, %zmm21, %zmm24
+
+// CHECK: vpsubusb %zmm22, %zmm21, %zmm24 {%k4}
+// CHECK:  encoding: [0x62,0x21,0x55,0x44,0xd8,0xc6]
+          vpsubusb %zmm22, %zmm21, %zmm24 {%k4}
+
+// CHECK: vpsubusb %zmm22, %zmm21, %zmm24 {%k4} {z}
+// CHECK:  encoding: [0x62,0x21,0x55,0xc4,0xd8,0xc6]
+          vpsubusb %zmm22, %zmm21, %zmm24 {%k4} {z}
+
+// CHECK: vpsubusb (%rcx), %zmm21, %zmm24
+// CHECK:  encoding: [0x62,0x61,0x55,0x40,0xd8,0x01]
+          vpsubusb (%rcx), %zmm21, %zmm24
+
+// CHECK: vpsubusb 291(%rax,%r14,8), %zmm21, %zmm24
+// CHECK:  encoding: [0x62,0x21,0x55,0x40,0xd8,0x84,0xf0,0x23,0x01,0x00,0x00]
+          vpsubusb 291(%rax,%r14,8), %zmm21, %zmm24
+
+// CHECK: vpsubusb 8128(%rdx), %zmm21, %zmm24
+// CHECK:  encoding: [0x62,0x61,0x55,0x40,0xd8,0x42,0x7f]
+          vpsubusb 8128(%rdx), %zmm21, %zmm24
+
+// CHECK: vpsubusb 8192(%rdx), %zmm21, %zmm24
+// CHECK:  encoding: [0x62,0x61,0x55,0x40,0xd8,0x82,0x00,0x20,0x00,0x00]
+          vpsubusb 8192(%rdx), %zmm21, %zmm24
+
+// CHECK: vpsubusb -8192(%rdx), %zmm21, %zmm24
+// CHECK:  encoding: [0x62,0x61,0x55,0x40,0xd8,0x42,0x80]
+          vpsubusb -8192(%rdx), %zmm21, %zmm24
+
+// CHECK: vpsubusb -8256(%rdx), %zmm21, %zmm24
+// CHECK:  encoding: [0x62,0x61,0x55,0x40,0xd8,0x82,0xc0,0xdf,0xff,0xff]
+          vpsubusb -8256(%rdx), %zmm21, %zmm24
+
+// CHECK: vpsubusw %zmm23, %zmm17, %zmm25
+// CHECK:  encoding: [0x62,0x21,0x75,0x40,0xd9,0xcf]
+          vpsubusw %zmm23, %zmm17, %zmm25
+
+// CHECK: vpsubusw %zmm23, %zmm17, %zmm25 {%k1}
+// CHECK:  encoding: [0x62,0x21,0x75,0x41,0xd9,0xcf]
+          vpsubusw %zmm23, %zmm17, %zmm25 {%k1}
+
+// CHECK: vpsubusw %zmm23, %zmm17, %zmm25 {%k1} {z}
+// CHECK:  encoding: [0x62,0x21,0x75,0xc1,0xd9,0xcf]
+          vpsubusw %zmm23, %zmm17, %zmm25 {%k1} {z}
+
+// CHECK: vpsubusw (%rcx), %zmm17, %zmm25
+// CHECK:  encoding: [0x62,0x61,0x75,0x40,0xd9,0x09]
+          vpsubusw (%rcx), %zmm17, %zmm25
+
+// CHECK: vpsubusw 291(%rax,%r14,8), %zmm17, %zmm25
+// CHECK:  encoding: [0x62,0x21,0x75,0x40,0xd9,0x8c,0xf0,0x23,0x01,0x00,0x00]
+          vpsubusw 291(%rax,%r14,8), %zmm17, %zmm25
+
+// CHECK: vpsubusw 8128(%rdx), %zmm17, %zmm25
+// CHECK:  encoding: [0x62,0x61,0x75,0x40,0xd9,0x4a,0x7f]
+          vpsubusw 8128(%rdx), %zmm17, %zmm25
+
+// CHECK: vpsubusw 8192(%rdx), %zmm17, %zmm25
+// CHECK:  encoding: [0x62,0x61,0x75,0x40,0xd9,0x8a,0x00,0x20,0x00,0x00]
+          vpsubusw 8192(%rdx), %zmm17, %zmm25
+
+// CHECK: vpsubusw -8192(%rdx), %zmm17, %zmm25
+// CHECK:  encoding: [0x62,0x61,0x75,0x40,0xd9,0x4a,0x80]
+          vpsubusw -8192(%rdx), %zmm17, %zmm25
+
+// CHECK: vpsubusw -8256(%rdx), %zmm17, %zmm25
+// CHECK:  encoding: [0x62,0x61,0x75,0x40,0xd9,0x8a,0xc0,0xdf,0xff,0xff]
+          vpsubusw -8256(%rdx), %zmm17, %zmm25
+
+// CHECK: vpaddb %zmm26, %zmm29, %zmm21
+// CHECK:  encoding: [0x62,0x81,0x15,0x40,0xfc,0xea]
+          vpaddb %zmm26, %zmm29, %zmm21
+
+// CHECK: vpaddb %zmm26, %zmm29, %zmm21 {%k5}
+// CHECK:  encoding: [0x62,0x81,0x15,0x45,0xfc,0xea]
+          vpaddb %zmm26, %zmm29, %zmm21 {%k5}
+
+// CHECK: vpaddb %zmm26, %zmm29, %zmm21 {%k5} {z}
+// CHECK:  encoding: [0x62,0x81,0x15,0xc5,0xfc,0xea]
+          vpaddb %zmm26, %zmm29, %zmm21 {%k5} {z}
+
+// CHECK: vpaddb (%rcx), %zmm29, %zmm21
+// CHECK:  encoding: [0x62,0xe1,0x15,0x40,0xfc,0x29]
+          vpaddb (%rcx), %zmm29, %zmm21
+
+// CHECK: vpaddb 4660(%rax,%r14,8), %zmm29, %zmm21
+// CHECK:  encoding: [0x62,0xa1,0x15,0x40,0xfc,0xac,0xf0,0x34,0x12,0x00,0x00]
+          vpaddb 4660(%rax,%r14,8), %zmm29, %zmm21
+
+// CHECK: vpaddb 8128(%rdx), %zmm29, %zmm21
+// CHECK:  encoding: [0x62,0xe1,0x15,0x40,0xfc,0x6a,0x7f]
+          vpaddb 8128(%rdx), %zmm29, %zmm21
+
+// CHECK: vpaddb 8192(%rdx), %zmm29, %zmm21
+// CHECK:  encoding: [0x62,0xe1,0x15,0x40,0xfc,0xaa,0x00,0x20,0x00,0x00]
+          vpaddb 8192(%rdx), %zmm29, %zmm21
+
+// CHECK: vpaddb -8192(%rdx), %zmm29, %zmm21
+// CHECK:  encoding: [0x62,0xe1,0x15,0x40,0xfc,0x6a,0x80]
+          vpaddb -8192(%rdx), %zmm29, %zmm21
+
+// CHECK: vpaddb -8256(%rdx), %zmm29, %zmm21
+// CHECK:  encoding: [0x62,0xe1,0x15,0x40,0xfc,0xaa,0xc0,0xdf,0xff,0xff]
+          vpaddb -8256(%rdx), %zmm29, %zmm21
+
+// CHECK: vpaddsb %zmm19, %zmm24, %zmm18
+// CHECK:  encoding: [0x62,0xa1,0x3d,0x40,0xec,0xd3]
+          vpaddsb %zmm19, %zmm24, %zmm18
+
+// CHECK: vpaddsb %zmm19, %zmm24, %zmm18 {%k1}
+// CHECK:  encoding: [0x62,0xa1,0x3d,0x41,0xec,0xd3]
+          vpaddsb %zmm19, %zmm24, %zmm18 {%k1}
+
+// CHECK: vpaddsb %zmm19, %zmm24, %zmm18 {%k1} {z}
+// CHECK:  encoding: [0x62,0xa1,0x3d,0xc1,0xec,0xd3]
+          vpaddsb %zmm19, %zmm24, %zmm18 {%k1} {z}
+
+// CHECK: vpaddsb (%rcx), %zmm24, %zmm18
+// CHECK:  encoding: [0x62,0xe1,0x3d,0x40,0xec,0x11]
+          vpaddsb (%rcx), %zmm24, %zmm18
+
+// CHECK: vpaddsb 4660(%rax,%r14,8), %zmm24, %zmm18
+// CHECK:  encoding: [0x62,0xa1,0x3d,0x40,0xec,0x94,0xf0,0x34,0x12,0x00,0x00]
+          vpaddsb 4660(%rax,%r14,8), %zmm24, %zmm18
+
+// CHECK: vpaddsb 8128(%rdx), %zmm24, %zmm18
+// CHECK:  encoding: [0x62,0xe1,0x3d,0x40,0xec,0x52,0x7f]
+          vpaddsb 8128(%rdx), %zmm24, %zmm18
+
+// CHECK: vpaddsb 8192(%rdx), %zmm24, %zmm18
+// CHECK:  encoding: [0x62,0xe1,0x3d,0x40,0xec,0x92,0x00,0x20,0x00,0x00]
+          vpaddsb 8192(%rdx), %zmm24, %zmm18
+
+// CHECK: vpaddsb -8192(%rdx), %zmm24, %zmm18
+// CHECK:  encoding: [0x62,0xe1,0x3d,0x40,0xec,0x52,0x80]
+          vpaddsb -8192(%rdx), %zmm24, %zmm18
+
+// CHECK: vpaddsb -8256(%rdx), %zmm24, %zmm18
+// CHECK:  encoding: [0x62,0xe1,0x3d,0x40,0xec,0x92,0xc0,0xdf,0xff,0xff]
+          vpaddsb -8256(%rdx), %zmm24, %zmm18
+
+// CHECK: vpaddsw %zmm28, %zmm17, %zmm20
+// CHECK:  encoding: [0x62,0x81,0x75,0x40,0xed,0xe4]
+          vpaddsw %zmm28, %zmm17, %zmm20
+
+// CHECK: vpaddsw %zmm28, %zmm17, %zmm20 {%k2}
+// CHECK:  encoding: [0x62,0x81,0x75,0x42,0xed,0xe4]
+          vpaddsw %zmm28, %zmm17, %zmm20 {%k2}
+
+// CHECK: vpaddsw %zmm28, %zmm17, %zmm20 {%k2} {z}
+// CHECK:  encoding: [0x62,0x81,0x75,0xc2,0xed,0xe4]
+          vpaddsw %zmm28, %zmm17, %zmm20 {%k2} {z}
+
+// CHECK: vpaddsw (%rcx), %zmm17, %zmm20
+// CHECK:  encoding: [0x62,0xe1,0x75,0x40,0xed,0x21]
+          vpaddsw (%rcx), %zmm17, %zmm20
+
+// CHECK: vpaddsw 4660(%rax,%r14,8), %zmm17, %zmm20
+// CHECK:  encoding: [0x62,0xa1,0x75,0x40,0xed,0xa4,0xf0,0x34,0x12,0x00,0x00]
+          vpaddsw 4660(%rax,%r14,8), %zmm17, %zmm20
+
+// CHECK: vpaddsw 8128(%rdx), %zmm17, %zmm20
+// CHECK:  encoding: [0x62,0xe1,0x75,0x40,0xed,0x62,0x7f]
+          vpaddsw 8128(%rdx), %zmm17, %zmm20
+
+// CHECK: vpaddsw 8192(%rdx), %zmm17, %zmm20
+// CHECK:  encoding: [0x62,0xe1,0x75,0x40,0xed,0xa2,0x00,0x20,0x00,0x00]
+          vpaddsw 8192(%rdx), %zmm17, %zmm20
+
+// CHECK: vpaddsw -8192(%rdx), %zmm17, %zmm20
+// CHECK:  encoding: [0x62,0xe1,0x75,0x40,0xed,0x62,0x80]
+          vpaddsw -8192(%rdx), %zmm17, %zmm20
+
+// CHECK: vpaddsw -8256(%rdx), %zmm17, %zmm20
+// CHECK:  encoding: [0x62,0xe1,0x75,0x40,0xed,0xa2,0xc0,0xdf,0xff,0xff]
+          vpaddsw -8256(%rdx), %zmm17, %zmm20
+
+// CHECK: vpaddusb %zmm22, %zmm27, %zmm19
+// CHECK:  encoding: [0x62,0xa1,0x25,0x40,0xdc,0xde]
+          vpaddusb %zmm22, %zmm27, %zmm19
+
+// CHECK: vpaddusb %zmm22, %zmm27, %zmm19 {%k7}
+// CHECK:  encoding: [0x62,0xa1,0x25,0x47,0xdc,0xde]
+          vpaddusb %zmm22, %zmm27, %zmm19 {%k7}
+
+// CHECK: vpaddusb %zmm22, %zmm27, %zmm19 {%k7} {z}
+// CHECK:  encoding: [0x62,0xa1,0x25,0xc7,0xdc,0xde]
+          vpaddusb %zmm22, %zmm27, %zmm19 {%k7} {z}
+
+// CHECK: vpaddusb (%rcx), %zmm27, %zmm19
+// CHECK:  encoding: [0x62,0xe1,0x25,0x40,0xdc,0x19]
+          vpaddusb (%rcx), %zmm27, %zmm19
+
+// CHECK: vpaddusb 4660(%rax,%r14,8), %zmm27, %zmm19
+// CHECK:  encoding: [0x62,0xa1,0x25,0x40,0xdc,0x9c,0xf0,0x34,0x12,0x00,0x00]
+          vpaddusb 4660(%rax,%r14,8), %zmm27, %zmm19
+
+// CHECK: vpaddusb 8128(%rdx), %zmm27, %zmm19
+// CHECK:  encoding: [0x62,0xe1,0x25,0x40,0xdc,0x5a,0x7f]
+          vpaddusb 8128(%rdx), %zmm27, %zmm19
+
+// CHECK: vpaddusb 8192(%rdx), %zmm27, %zmm19
+// CHECK:  encoding: [0x62,0xe1,0x25,0x40,0xdc,0x9a,0x00,0x20,0x00,0x00]
+          vpaddusb 8192(%rdx), %zmm27, %zmm19
+
+// CHECK: vpaddusb -8192(%rdx), %zmm27, %zmm19
+// CHECK:  encoding: [0x62,0xe1,0x25,0x40,0xdc,0x5a,0x80]
+          vpaddusb -8192(%rdx), %zmm27, %zmm19
+
+// CHECK: vpaddusb -8256(%rdx), %zmm27, %zmm19
+// CHECK:  encoding: [0x62,0xe1,0x25,0x40,0xdc,0x9a,0xc0,0xdf,0xff,0xff]
+          vpaddusb -8256(%rdx), %zmm27, %zmm19
+
+// CHECK: vpaddusw %zmm23, %zmm23, %zmm27
+// CHECK:  encoding: [0x62,0x21,0x45,0x40,0xdd,0xdf]
+          vpaddusw %zmm23, %zmm23, %zmm27
+
+// CHECK: vpaddusw %zmm23, %zmm23, %zmm27 {%k7}
+// CHECK:  encoding: [0x62,0x21,0x45,0x47,0xdd,0xdf]
+          vpaddusw %zmm23, %zmm23, %zmm27 {%k7}
+
+// CHECK: vpaddusw %zmm23, %zmm23, %zmm27 {%k7} {z}
+// CHECK:  encoding: [0x62,0x21,0x45,0xc7,0xdd,0xdf]
+          vpaddusw %zmm23, %zmm23, %zmm27 {%k7} {z}
+
+// CHECK: vpaddusw (%rcx), %zmm23, %zmm27
+// CHECK:  encoding: [0x62,0x61,0x45,0x40,0xdd,0x19]
+          vpaddusw (%rcx), %zmm23, %zmm27
+
+// CHECK: vpaddusw 4660(%rax,%r14,8), %zmm23, %zmm27
+// CHECK:  encoding: [0x62,0x21,0x45,0x40,0xdd,0x9c,0xf0,0x34,0x12,0x00,0x00]
+          vpaddusw 4660(%rax,%r14,8), %zmm23, %zmm27
+
+// CHECK: vpaddusw 8128(%rdx), %zmm23, %zmm27
+// CHECK:  encoding: [0x62,0x61,0x45,0x40,0xdd,0x5a,0x7f]
+          vpaddusw 8128(%rdx), %zmm23, %zmm27
+
+// CHECK: vpaddusw 8192(%rdx), %zmm23, %zmm27
+// CHECK:  encoding: [0x62,0x61,0x45,0x40,0xdd,0x9a,0x00,0x20,0x00,0x00]
+          vpaddusw 8192(%rdx), %zmm23, %zmm27
+
+// CHECK: vpaddusw -8192(%rdx), %zmm23, %zmm27
+// CHECK:  encoding: [0x62,0x61,0x45,0x40,0xdd,0x5a,0x80]
+          vpaddusw -8192(%rdx), %zmm23, %zmm27
+
+// CHECK: vpaddusw -8256(%rdx), %zmm23, %zmm27
+// CHECK:  encoding: [0x62,0x61,0x45,0x40,0xdd,0x9a,0xc0,0xdf,0xff,0xff]
+          vpaddusw -8256(%rdx), %zmm23, %zmm27
+
+// CHECK: vpsubsb %zmm18, %zmm28, %zmm17
+// CHECK:  encoding: [0x62,0xa1,0x1d,0x40,0xe8,0xca]
+          vpsubsb %zmm18, %zmm28, %zmm17
+
+// CHECK: vpsubsb %zmm18, %zmm28, %zmm17 {%k5}
+// CHECK:  encoding: [0x62,0xa1,0x1d,0x45,0xe8,0xca]
+          vpsubsb %zmm18, %zmm28, %zmm17 {%k5}
+
+// CHECK: vpsubsb %zmm18, %zmm28, %zmm17 {%k5} {z}
+// CHECK:  encoding: [0x62,0xa1,0x1d,0xc5,0xe8,0xca]
+          vpsubsb %zmm18, %zmm28, %zmm17 {%k5} {z}
+
+// CHECK: vpsubsb (%rcx), %zmm28, %zmm17
+// CHECK:  encoding: [0x62,0xe1,0x1d,0x40,0xe8,0x09]
+          vpsubsb (%rcx), %zmm28, %zmm17
+
+// CHECK: vpsubsb 4660(%rax,%r14,8), %zmm28, %zmm17
+// CHECK:  encoding: [0x62,0xa1,0x1d,0x40,0xe8,0x8c,0xf0,0x34,0x12,0x00,0x00]
+          vpsubsb 4660(%rax,%r14,8), %zmm28, %zmm17
+
+// CHECK: vpsubsb 8128(%rdx), %zmm28, %zmm17
+// CHECK:  encoding: [0x62,0xe1,0x1d,0x40,0xe8,0x4a,0x7f]
+          vpsubsb 8128(%rdx), %zmm28, %zmm17
+
+// CHECK: vpsubsb 8192(%rdx), %zmm28, %zmm17
+// CHECK:  encoding: [0x62,0xe1,0x1d,0x40,0xe8,0x8a,0x00,0x20,0x00,0x00]
+          vpsubsb 8192(%rdx), %zmm28, %zmm17
+
+// CHECK: vpsubsb -8192(%rdx), %zmm28, %zmm17
+// CHECK:  encoding: [0x62,0xe1,0x1d,0x40,0xe8,0x4a,0x80]
+          vpsubsb -8192(%rdx), %zmm28, %zmm17
+
+// CHECK: vpsubsb -8256(%rdx), %zmm28, %zmm17
+// CHECK:  encoding: [0x62,0xe1,0x1d,0x40,0xe8,0x8a,0xc0,0xdf,0xff,0xff]
+          vpsubsb -8256(%rdx), %zmm28, %zmm17
+
+// CHECK: vpsubsw %zmm26, %zmm24, %zmm30
+// CHECK:  encoding: [0x62,0x01,0x3d,0x40,0xe9,0xf2]
+          vpsubsw %zmm26, %zmm24, %zmm30
+
+// CHECK: vpsubsw %zmm26, %zmm24, %zmm30 {%k3}
+// CHECK:  encoding: [0x62,0x01,0x3d,0x43,0xe9,0xf2]
+          vpsubsw %zmm26, %zmm24, %zmm30 {%k3}
+
+// CHECK: vpsubsw %zmm26, %zmm24, %zmm30 {%k3} {z}
+// CHECK:  encoding: [0x62,0x01,0x3d,0xc3,0xe9,0xf2]
+          vpsubsw %zmm26, %zmm24, %zmm30 {%k3} {z}
+
+// CHECK: vpsubsw (%rcx), %zmm24, %zmm30
+// CHECK:  encoding: [0x62,0x61,0x3d,0x40,0xe9,0x31]
+          vpsubsw (%rcx), %zmm24, %zmm30
+
+// CHECK: vpsubsw 4660(%rax,%r14,8), %zmm24, %zmm30
+// CHECK:  encoding: [0x62,0x21,0x3d,0x40,0xe9,0xb4,0xf0,0x34,0x12,0x00,0x00]
+          vpsubsw 4660(%rax,%r14,8), %zmm24, %zmm30
+
+// CHECK: vpsubsw 8128(%rdx), %zmm24, %zmm30
+// CHECK:  encoding: [0x62,0x61,0x3d,0x40,0xe9,0x72,0x7f]
+          vpsubsw 8128(%rdx), %zmm24, %zmm30
+
+// CHECK: vpsubsw 8192(%rdx), %zmm24, %zmm30
+// CHECK:  encoding: [0x62,0x61,0x3d,0x40,0xe9,0xb2,0x00,0x20,0x00,0x00]
+          vpsubsw 8192(%rdx), %zmm24, %zmm30
+
+// CHECK: vpsubsw -8192(%rdx), %zmm24, %zmm30
+// CHECK:  encoding: [0x62,0x61,0x3d,0x40,0xe9,0x72,0x80]
+          vpsubsw -8192(%rdx), %zmm24, %zmm30
+
+// CHECK: vpsubsw -8256(%rdx), %zmm24, %zmm30
+// CHECK:  encoding: [0x62,0x61,0x3d,0x40,0xe9,0xb2,0xc0,0xdf,0xff,0xff]
+          vpsubsw -8256(%rdx), %zmm24, %zmm30
+
+// CHECK: vpsubusb %zmm28, %zmm29, %zmm28
+// CHECK:  encoding: [0x62,0x01,0x15,0x40,0xd8,0xe4]
+          vpsubusb %zmm28, %zmm29, %zmm28
+
+// CHECK: vpsubusb %zmm28, %zmm29, %zmm28 {%k2}
+// CHECK:  encoding: [0x62,0x01,0x15,0x42,0xd8,0xe4]
+          vpsubusb %zmm28, %zmm29, %zmm28 {%k2}
+
+// CHECK: vpsubusb %zmm28, %zmm29, %zmm28 {%k2} {z}
+// CHECK:  encoding: [0x62,0x01,0x15,0xc2,0xd8,0xe4]
+          vpsubusb %zmm28, %zmm29, %zmm28 {%k2} {z}
+
+// CHECK: vpsubusb (%rcx), %zmm29, %zmm28
+// CHECK:  encoding: [0x62,0x61,0x15,0x40,0xd8,0x21]
+          vpsubusb (%rcx), %zmm29, %zmm28
+
+// CHECK: vpsubusb 4660(%rax,%r14,8), %zmm29, %zmm28
+// CHECK:  encoding: [0x62,0x21,0x15,0x40,0xd8,0xa4,0xf0,0x34,0x12,0x00,0x00]
+          vpsubusb 4660(%rax,%r14,8), %zmm29, %zmm28
+
+// CHECK: vpsubusb 8128(%rdx), %zmm29, %zmm28
+// CHECK:  encoding: [0x62,0x61,0x15,0x40,0xd8,0x62,0x7f]
+          vpsubusb 8128(%rdx), %zmm29, %zmm28
+
+// CHECK: vpsubusb 8192(%rdx), %zmm29, %zmm28
+// CHECK:  encoding: [0x62,0x61,0x15,0x40,0xd8,0xa2,0x00,0x20,0x00,0x00]
+          vpsubusb 8192(%rdx), %zmm29, %zmm28
+
+// CHECK: vpsubusb -8192(%rdx), %zmm29, %zmm28
+// CHECK:  encoding: [0x62,0x61,0x15,0x40,0xd8,0x62,0x80]
+          vpsubusb -8192(%rdx), %zmm29, %zmm28
+
+// CHECK: vpsubusb -8256(%rdx), %zmm29, %zmm28
+// CHECK:  encoding: [0x62,0x61,0x15,0x40,0xd8,0xa2,0xc0,0xdf,0xff,0xff]
+          vpsubusb -8256(%rdx), %zmm29, %zmm28
+
+// CHECK: vpsubusw %zmm19, %zmm28, %zmm22
+// CHECK:  encoding: [0x62,0xa1,0x1d,0x40,0xd9,0xf3]
+          vpsubusw %zmm19, %zmm28, %zmm22
+
+// CHECK: vpsubusw %zmm19, %zmm28, %zmm22 {%k5}
+// CHECK:  encoding: [0x62,0xa1,0x1d,0x45,0xd9,0xf3]
+          vpsubusw %zmm19, %zmm28, %zmm22 {%k5}
+
+// CHECK: vpsubusw %zmm19, %zmm28, %zmm22 {%k5} {z}
+// CHECK:  encoding: [0x62,0xa1,0x1d,0xc5,0xd9,0xf3]
+          vpsubusw %zmm19, %zmm28, %zmm22 {%k5} {z}
+
+// CHECK: vpsubusw (%rcx), %zmm28, %zmm22
+// CHECK:  encoding: [0x62,0xe1,0x1d,0x40,0xd9,0x31]
+          vpsubusw (%rcx), %zmm28, %zmm22
+
+// CHECK: vpsubusw 4660(%rax,%r14,8), %zmm28, %zmm22
+// CHECK:  encoding: [0x62,0xa1,0x1d,0x40,0xd9,0xb4,0xf0,0x34,0x12,0x00,0x00]
+          vpsubusw 4660(%rax,%r14,8), %zmm28, %zmm22
+
+// CHECK: vpsubusw 8128(%rdx), %zmm28, %zmm22
+// CHECK:  encoding: [0x62,0xe1,0x1d,0x40,0xd9,0x72,0x7f]
+          vpsubusw 8128(%rdx), %zmm28, %zmm22
+
+// CHECK: vpsubusw 8192(%rdx), %zmm28, %zmm22
+// CHECK:  encoding: [0x62,0xe1,0x1d,0x40,0xd9,0xb2,0x00,0x20,0x00,0x00]
+          vpsubusw 8192(%rdx), %zmm28, %zmm22
+
+// CHECK: vpsubusw -8192(%rdx), %zmm28, %zmm22
+// CHECK:  encoding: [0x62,0xe1,0x1d,0x40,0xd9,0x72,0x80]
+          vpsubusw -8192(%rdx), %zmm28, %zmm22
+
+// CHECK: vpsubusw -8256(%rdx), %zmm28, %zmm22
+// CHECK:  encoding: [0x62,0xe1,0x1d,0x40,0xd9,0xb2,0xc0,0xdf,0xff,0xff]
+          vpsubusw -8256(%rdx), %zmm28, %zmm22
+
+// CHECK: vpaddsb %zmm25, %zmm19, %zmm28
+// CHECK:  encoding: [0x62,0x01,0x65,0x40,0xec,0xe1]
+          vpaddsb %zmm25, %zmm19, %zmm28
+
+// CHECK: vpaddsb %zmm25, %zmm19, %zmm28 {%k4}
+// CHECK:  encoding: [0x62,0x01,0x65,0x44,0xec,0xe1]
+          vpaddsb %zmm25, %zmm19, %zmm28 {%k4}
+
+// CHECK: vpaddsb %zmm25, %zmm19, %zmm28 {%k4} {z}
+// CHECK:  encoding: [0x62,0x01,0x65,0xc4,0xec,0xe1]
+          vpaddsb %zmm25, %zmm19, %zmm28 {%k4} {z}
+
+// CHECK: vpaddsb (%rcx), %zmm19, %zmm28
+// CHECK:  encoding: [0x62,0x61,0x65,0x40,0xec,0x21]
+          vpaddsb (%rcx), %zmm19, %zmm28
+
+// CHECK: vpaddsb 291(%rax,%r14,8), %zmm19, %zmm28
+// CHECK:  encoding: [0x62,0x21,0x65,0x40,0xec,0xa4,0xf0,0x23,0x01,0x00,0x00]
+          vpaddsb 291(%rax,%r14,8), %zmm19, %zmm28
+
+// CHECK: vpaddsb 8128(%rdx), %zmm19, %zmm28
+// CHECK:  encoding: [0x62,0x61,0x65,0x40,0xec,0x62,0x7f]
+          vpaddsb 8128(%rdx), %zmm19, %zmm28
+
+// CHECK: vpaddsb 8192(%rdx), %zmm19, %zmm28
+// CHECK:  encoding: [0x62,0x61,0x65,0x40,0xec,0xa2,0x00,0x20,0x00,0x00]
+          vpaddsb 8192(%rdx), %zmm19, %zmm28
+
+// CHECK: vpaddsb -8192(%rdx), %zmm19, %zmm28
+// CHECK:  encoding: [0x62,0x61,0x65,0x40,0xec,0x62,0x80]
+          vpaddsb -8192(%rdx), %zmm19, %zmm28
+
+// CHECK: vpaddsb -8256(%rdx), %zmm19, %zmm28
+// CHECK:  encoding: [0x62,0x61,0x65,0x40,0xec,0xa2,0xc0,0xdf,0xff,0xff]
+          vpaddsb -8256(%rdx), %zmm19, %zmm28
+
+// CHECK: vpaddsw %zmm20, %zmm22, %zmm20
+// CHECK:  encoding: [0x62,0xa1,0x4d,0x40,0xed,0xe4]
+          vpaddsw %zmm20, %zmm22, %zmm20
+
+// CHECK: vpaddsw %zmm20, %zmm22, %zmm20 {%k7}
+// CHECK:  encoding: [0x62,0xa1,0x4d,0x47,0xed,0xe4]
+          vpaddsw %zmm20, %zmm22, %zmm20 {%k7}
+
+// CHECK: vpaddsw %zmm20, %zmm22, %zmm20 {%k7} {z}
+// CHECK:  encoding: [0x62,0xa1,0x4d,0xc7,0xed,0xe4]
+          vpaddsw %zmm20, %zmm22, %zmm20 {%k7} {z}
+
+// CHECK: vpaddsw (%rcx), %zmm22, %zmm20
+// CHECK:  encoding: [0x62,0xe1,0x4d,0x40,0xed,0x21]
+          vpaddsw (%rcx), %zmm22, %zmm20
+
+// CHECK: vpaddsw 291(%rax,%r14,8), %zmm22, %zmm20
+// CHECK:  encoding: [0x62,0xa1,0x4d,0x40,0xed,0xa4,0xf0,0x23,0x01,0x00,0x00]
+          vpaddsw 291(%rax,%r14,8), %zmm22, %zmm20
+
+// CHECK: vpaddsw 8128(%rdx), %zmm22, %zmm20
+// CHECK:  encoding: [0x62,0xe1,0x4d,0x40,0xed,0x62,0x7f]
+          vpaddsw 8128(%rdx), %zmm22, %zmm20
+
+// CHECK: vpaddsw 8192(%rdx), %zmm22, %zmm20
+// CHECK:  encoding: [0x62,0xe1,0x4d,0x40,0xed,0xa2,0x00,0x20,0x00,0x00]
+          vpaddsw 8192(%rdx), %zmm22, %zmm20
+
+// CHECK: vpaddsw -8192(%rdx), %zmm22, %zmm20
+// CHECK:  encoding: [0x62,0xe1,0x4d,0x40,0xed,0x62,0x80]
+          vpaddsw -8192(%rdx), %zmm22, %zmm20
+
+// CHECK: vpaddsw -8256(%rdx), %zmm22, %zmm20
+// CHECK:  encoding: [0x62,0xe1,0x4d,0x40,0xed,0xa2,0xc0,0xdf,0xff,0xff]
+          vpaddsw -8256(%rdx), %zmm22, %zmm20
+
+// CHECK: vpaddusb %zmm17, %zmm27, %zmm26
+// CHECK:  encoding: [0x62,0x21,0x25,0x40,0xdc,0xd1]
+          vpaddusb %zmm17, %zmm27, %zmm26
+
+// CHECK: vpaddusb %zmm17, %zmm27, %zmm26 {%k3}
+// CHECK:  encoding: [0x62,0x21,0x25,0x43,0xdc,0xd1]
+          vpaddusb %zmm17, %zmm27, %zmm26 {%k3}
+
+// CHECK: vpaddusb %zmm17, %zmm27, %zmm26 {%k3} {z}
+// CHECK:  encoding: [0x62,0x21,0x25,0xc3,0xdc,0xd1]
+          vpaddusb %zmm17, %zmm27, %zmm26 {%k3} {z}
+
+// CHECK: vpaddusb (%rcx), %zmm27, %zmm26
+// CHECK:  encoding: [0x62,0x61,0x25,0x40,0xdc,0x11]
+          vpaddusb (%rcx), %zmm27, %zmm26
+
+// CHECK: vpaddusb 291(%rax,%r14,8), %zmm27, %zmm26
+// CHECK:  encoding: [0x62,0x21,0x25,0x40,0xdc,0x94,0xf0,0x23,0x01,0x00,0x00]
+          vpaddusb 291(%rax,%r14,8), %zmm27, %zmm26
+
+// CHECK: vpaddusb 8128(%rdx), %zmm27, %zmm26
+// CHECK:  encoding: [0x62,0x61,0x25,0x40,0xdc,0x52,0x7f]
+          vpaddusb 8128(%rdx), %zmm27, %zmm26
+
+// CHECK: vpaddusb 8192(%rdx), %zmm27, %zmm26
+// CHECK:  encoding: [0x62,0x61,0x25,0x40,0xdc,0x92,0x00,0x20,0x00,0x00]
+          vpaddusb 8192(%rdx), %zmm27, %zmm26
+
+// CHECK: vpaddusb -8192(%rdx), %zmm27, %zmm26
+// CHECK:  encoding: [0x62,0x61,0x25,0x40,0xdc,0x52,0x80]
+          vpaddusb -8192(%rdx), %zmm27, %zmm26
+
+// CHECK: vpaddusb -8256(%rdx), %zmm27, %zmm26
+// CHECK:  encoding: [0x62,0x61,0x25,0x40,0xdc,0x92,0xc0,0xdf,0xff,0xff]
+          vpaddusb -8256(%rdx), %zmm27, %zmm26
+
+// CHECK: vpaddusw %zmm20, %zmm22, %zmm21
+// CHECK:  encoding: [0x62,0xa1,0x4d,0x40,0xdd,0xec]
+          vpaddusw %zmm20, %zmm22, %zmm21
+
+// CHECK: vpaddusw %zmm20, %zmm22, %zmm21 {%k7}
+// CHECK:  encoding: [0x62,0xa1,0x4d,0x47,0xdd,0xec]
+          vpaddusw %zmm20, %zmm22, %zmm21 {%k7}
+
+// CHECK: vpaddusw %zmm20, %zmm22, %zmm21 {%k7} {z}
+// CHECK:  encoding: [0x62,0xa1,0x4d,0xc7,0xdd,0xec]
+          vpaddusw %zmm20, %zmm22, %zmm21 {%k7} {z}
+
+// CHECK: vpaddusw (%rcx), %zmm22, %zmm21
+// CHECK:  encoding: [0x62,0xe1,0x4d,0x40,0xdd,0x29]
+          vpaddusw (%rcx), %zmm22, %zmm21
+
+// CHECK: vpaddusw 291(%rax,%r14,8), %zmm22, %zmm21
+// CHECK:  encoding: [0x62,0xa1,0x4d,0x40,0xdd,0xac,0xf0,0x23,0x01,0x00,0x00]
+          vpaddusw 291(%rax,%r14,8), %zmm22, %zmm21
+
+// CHECK: vpaddusw 8128(%rdx), %zmm22, %zmm21
+// CHECK:  encoding: [0x62,0xe1,0x4d,0x40,0xdd,0x6a,0x7f]
+          vpaddusw 8128(%rdx), %zmm22, %zmm21
+
+// CHECK: vpaddusw 8192(%rdx), %zmm22, %zmm21
+// CHECK:  encoding: [0x62,0xe1,0x4d,0x40,0xdd,0xaa,0x00,0x20,0x00,0x00]
+          vpaddusw 8192(%rdx), %zmm22, %zmm21
+
+// CHECK: vpaddusw -8192(%rdx), %zmm22, %zmm21
+// CHECK:  encoding: [0x62,0xe1,0x4d,0x40,0xdd,0x6a,0x80]
+          vpaddusw -8192(%rdx), %zmm22, %zmm21
+
+// CHECK: vpaddusw -8256(%rdx), %zmm22, %zmm21
+// CHECK:  encoding: [0x62,0xe1,0x4d,0x40,0xdd,0xaa,0xc0,0xdf,0xff,0xff]
+          vpaddusw -8256(%rdx), %zmm22, %zmm21
+
+// CHECK: vpsubsb %zmm28, %zmm21, %zmm19
+// CHECK:  encoding: [0x62,0x81,0x55,0x40,0xe8,0xdc]
+          vpsubsb %zmm28, %zmm21, %zmm19
+
+// CHECK: vpsubsb %zmm28, %zmm21, %zmm19 {%k2}
+// CHECK:  encoding: [0x62,0x81,0x55,0x42,0xe8,0xdc]
+          vpsubsb %zmm28, %zmm21, %zmm19 {%k2}
+
+// CHECK: vpsubsb %zmm28, %zmm21, %zmm19 {%k2} {z}
+// CHECK:  encoding: [0x62,0x81,0x55,0xc2,0xe8,0xdc]
+          vpsubsb %zmm28, %zmm21, %zmm19 {%k2} {z}
+
+// CHECK: vpsubsb (%rcx), %zmm21, %zmm19
+// CHECK:  encoding: [0x62,0xe1,0x55,0x40,0xe8,0x19]
+          vpsubsb (%rcx), %zmm21, %zmm19
+
+// CHECK: vpsubsb 291(%rax,%r14,8), %zmm21, %zmm19
+// CHECK:  encoding: [0x62,0xa1,0x55,0x40,0xe8,0x9c,0xf0,0x23,0x01,0x00,0x00]
+          vpsubsb 291(%rax,%r14,8), %zmm21, %zmm19
+
+// CHECK: vpsubsb 8128(%rdx), %zmm21, %zmm19
+// CHECK:  encoding: [0x62,0xe1,0x55,0x40,0xe8,0x5a,0x7f]
+          vpsubsb 8128(%rdx), %zmm21, %zmm19
+
+// CHECK: vpsubsb 8192(%rdx), %zmm21, %zmm19
+// CHECK:  encoding: [0x62,0xe1,0x55,0x40,0xe8,0x9a,0x00,0x20,0x00,0x00]
+          vpsubsb 8192(%rdx), %zmm21, %zmm19
+
+// CHECK: vpsubsb -8192(%rdx), %zmm21, %zmm19
+// CHECK:  encoding: [0x62,0xe1,0x55,0x40,0xe8,0x5a,0x80]
+          vpsubsb -8192(%rdx), %zmm21, %zmm19
+
+// CHECK: vpsubsb -8256(%rdx), %zmm21, %zmm19
+// CHECK:  encoding: [0x62,0xe1,0x55,0x40,0xe8,0x9a,0xc0,0xdf,0xff,0xff]
+          vpsubsb -8256(%rdx), %zmm21, %zmm19
+
+// CHECK: vpsubsw %zmm23, %zmm23, %zmm23
+// CHECK:  encoding: [0x62,0xa1,0x45,0x40,0xe9,0xff]
+          vpsubsw %zmm23, %zmm23, %zmm23
+
+// CHECK: vpsubsw %zmm23, %zmm23, %zmm23 {%k6}
+// CHECK:  encoding: [0x62,0xa1,0x45,0x46,0xe9,0xff]
+          vpsubsw %zmm23, %zmm23, %zmm23 {%k6}
+
+// CHECK: vpsubsw %zmm23, %zmm23, %zmm23 {%k6} {z}
+// CHECK:  encoding: [0x62,0xa1,0x45,0xc6,0xe9,0xff]
+          vpsubsw %zmm23, %zmm23, %zmm23 {%k6} {z}
+
+// CHECK: vpsubsw (%rcx), %zmm23, %zmm23
+// CHECK:  encoding: [0x62,0xe1,0x45,0x40,0xe9,0x39]
+          vpsubsw (%rcx), %zmm23, %zmm23
+
+// CHECK: vpsubsw 291(%rax,%r14,8), %zmm23, %zmm23
+// CHECK:  encoding: [0x62,0xa1,0x45,0x40,0xe9,0xbc,0xf0,0x23,0x01,0x00,0x00]
+          vpsubsw 291(%rax,%r14,8), %zmm23, %zmm23
+
+// CHECK: vpsubsw 8128(%rdx), %zmm23, %zmm23
+// CHECK:  encoding: [0x62,0xe1,0x45,0x40,0xe9,0x7a,0x7f]
+          vpsubsw 8128(%rdx), %zmm23, %zmm23
+
+// CHECK: vpsubsw 8192(%rdx), %zmm23, %zmm23
+// CHECK:  encoding: [0x62,0xe1,0x45,0x40,0xe9,0xba,0x00,0x20,0x00,0x00]
+          vpsubsw 8192(%rdx), %zmm23, %zmm23
+
+// CHECK: vpsubsw -8192(%rdx), %zmm23, %zmm23
+// CHECK:  encoding: [0x62,0xe1,0x45,0x40,0xe9,0x7a,0x80]
+          vpsubsw -8192(%rdx), %zmm23, %zmm23
+
+// CHECK: vpsubsw -8256(%rdx), %zmm23, %zmm23
+// CHECK:  encoding: [0x62,0xe1,0x45,0x40,0xe9,0xba,0xc0,0xdf,0xff,0xff]
+          vpsubsw -8256(%rdx), %zmm23, %zmm23
+
+// CHECK: vpsubusb %zmm25, %zmm29, %zmm27
+// CHECK:  encoding: [0x62,0x01,0x15,0x40,0xd8,0xd9]
+          vpsubusb %zmm25, %zmm29, %zmm27
+
+// CHECK: vpsubusb %zmm25, %zmm29, %zmm27 {%k4}
+// CHECK:  encoding: [0x62,0x01,0x15,0x44,0xd8,0xd9]
+          vpsubusb %zmm25, %zmm29, %zmm27 {%k4}
+
+// CHECK: vpsubusb %zmm25, %zmm29, %zmm27 {%k4} {z}
+// CHECK:  encoding: [0x62,0x01,0x15,0xc4,0xd8,0xd9]
+          vpsubusb %zmm25, %zmm29, %zmm27 {%k4} {z}
+
+// CHECK: vpsubusb (%rcx), %zmm29, %zmm27
+// CHECK:  encoding: [0x62,0x61,0x15,0x40,0xd8,0x19]
+          vpsubusb (%rcx), %zmm29, %zmm27
+
+// CHECK: vpsubusb 291(%rax,%r14,8), %zmm29, %zmm27
+// CHECK:  encoding: [0x62,0x21,0x15,0x40,0xd8,0x9c,0xf0,0x23,0x01,0x00,0x00]
+          vpsubusb 291(%rax,%r14,8), %zmm29, %zmm27
+
+// CHECK: vpsubusb 8128(%rdx), %zmm29, %zmm27
+// CHECK:  encoding: [0x62,0x61,0x15,0x40,0xd8,0x5a,0x7f]
+          vpsubusb 8128(%rdx), %zmm29, %zmm27
+
+// CHECK: vpsubusb 8192(%rdx), %zmm29, %zmm27
+// CHECK:  encoding: [0x62,0x61,0x15,0x40,0xd8,0x9a,0x00,0x20,0x00,0x00]
+          vpsubusb 8192(%rdx), %zmm29, %zmm27
+
+// CHECK: vpsubusb -8192(%rdx), %zmm29, %zmm27
+// CHECK:  encoding: [0x62,0x61,0x15,0x40,0xd8,0x5a,0x80]
+          vpsubusb -8192(%rdx), %zmm29, %zmm27
+
+// CHECK: vpsubusb -8256(%rdx), %zmm29, %zmm27
+// CHECK:  encoding: [0x62,0x61,0x15,0x40,0xd8,0x9a,0xc0,0xdf,0xff,0xff]
+          vpsubusb -8256(%rdx), %zmm29, %zmm27
+
+// CHECK: vpsubusw %zmm25, %zmm20, %zmm20
+// CHECK:  encoding: [0x62,0x81,0x5d,0x40,0xd9,0xe1]
+          vpsubusw %zmm25, %zmm20, %zmm20
+
+// CHECK: vpsubusw %zmm25, %zmm20, %zmm20 {%k6}
+// CHECK:  encoding: [0x62,0x81,0x5d,0x46,0xd9,0xe1]
+          vpsubusw %zmm25, %zmm20, %zmm20 {%k6}
+
+// CHECK: vpsubusw %zmm25, %zmm20, %zmm20 {%k6} {z}
+// CHECK:  encoding: [0x62,0x81,0x5d,0xc6,0xd9,0xe1]
+          vpsubusw %zmm25, %zmm20, %zmm20 {%k6} {z}
+
+// CHECK: vpsubusw (%rcx), %zmm20, %zmm20
+// CHECK:  encoding: [0x62,0xe1,0x5d,0x40,0xd9,0x21]
+          vpsubusw (%rcx), %zmm20, %zmm20
+
+// CHECK: vpsubusw 291(%rax,%r14,8), %zmm20, %zmm20
+// CHECK:  encoding: [0x62,0xa1,0x5d,0x40,0xd9,0xa4,0xf0,0x23,0x01,0x00,0x00]
+          vpsubusw 291(%rax,%r14,8), %zmm20, %zmm20
+
+// CHECK: vpsubusw 8128(%rdx), %zmm20, %zmm20
+// CHECK:  encoding: [0x62,0xe1,0x5d,0x40,0xd9,0x62,0x7f]
+          vpsubusw 8128(%rdx), %zmm20, %zmm20
+
+// CHECK: vpsubusw 8192(%rdx), %zmm20, %zmm20
+// CHECK:  encoding: [0x62,0xe1,0x5d,0x40,0xd9,0xa2,0x00,0x20,0x00,0x00]
+          vpsubusw 8192(%rdx), %zmm20, %zmm20
+
+// CHECK: vpsubusw -8192(%rdx), %zmm20, %zmm20
+// CHECK:  encoding: [0x62,0xe1,0x5d,0x40,0xd9,0x62,0x80]
+          vpsubusw -8192(%rdx), %zmm20, %zmm20
+
+// CHECK: vpsubusw -8256(%rdx), %zmm20, %zmm20
+// CHECK:  encoding: [0x62,0xe1,0x5d,0x40,0xd9,0xa2,0xc0,0xdf,0xff,0xff]
+          vpsubusw -8256(%rdx), %zmm20, %zmm20
+

Modified: llvm/trunk/test/MC/X86/x86-64-avx512bw_vl.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/MC/X86/x86-64-avx512bw_vl.s?rev=236418&r1=236417&r2=236418&view=diff
==============================================================================
--- llvm/trunk/test/MC/X86/x86-64-avx512bw_vl.s (original)
+++ llvm/trunk/test/MC/X86/x86-64-avx512bw_vl.s Mon May  4 07:35:55 2015
@@ -3327,3 +3327,2307 @@
 // CHECK: vpackuswb -4128(%rdx), %ymm19, %ymm20
 // CHECK:  encoding: [0x62,0xe1,0xe5,0x20,0x67,0xa2,0xe0,0xef,0xff,0xff]
           vpackuswb -4128(%rdx), %ymm19, %ymm20
+
+// CHECK: vpaddsb %xmm27, %xmm19, %xmm19
+// CHECK:  encoding: [0x62,0x81,0x65,0x00,0xec,0xdb]
+          vpaddsb %xmm27, %xmm19, %xmm19
+
+// CHECK: vpaddsb %xmm27, %xmm19, %xmm19 {%k2}
+// CHECK:  encoding: [0x62,0x81,0x65,0x02,0xec,0xdb]
+          vpaddsb %xmm27, %xmm19, %xmm19 {%k2}
+
+// CHECK: vpaddsb %xmm27, %xmm19, %xmm19 {%k2} {z}
+// CHECK:  encoding: [0x62,0x81,0x65,0x82,0xec,0xdb]
+          vpaddsb %xmm27, %xmm19, %xmm19 {%k2} {z}
+
+// CHECK: vpaddsb (%rcx), %xmm19, %xmm19
+// CHECK:  encoding: [0x62,0xe1,0x65,0x00,0xec,0x19]
+          vpaddsb (%rcx), %xmm19, %xmm19
+
+// CHECK: vpaddsb 291(%rax,%r14,8), %xmm19, %xmm19
+// CHECK:  encoding: [0x62,0xa1,0x65,0x00,0xec,0x9c,0xf0,0x23,0x01,0x00,0x00]
+          vpaddsb 291(%rax,%r14,8), %xmm19, %xmm19
+
+// CHECK: vpaddsb 2032(%rdx), %xmm19, %xmm19
+// CHECK:  encoding: [0x62,0xe1,0x65,0x00,0xec,0x5a,0x7f]
+          vpaddsb 2032(%rdx), %xmm19, %xmm19
+
+// CHECK: vpaddsb 2048(%rdx), %xmm19, %xmm19
+// CHECK:  encoding: [0x62,0xe1,0x65,0x00,0xec,0x9a,0x00,0x08,0x00,0x00]
+          vpaddsb 2048(%rdx), %xmm19, %xmm19
+
+// CHECK: vpaddsb -2048(%rdx), %xmm19, %xmm19
+// CHECK:  encoding: [0x62,0xe1,0x65,0x00,0xec,0x5a,0x80]
+          vpaddsb -2048(%rdx), %xmm19, %xmm19
+
+// CHECK: vpaddsb -2064(%rdx), %xmm19, %xmm19
+// CHECK:  encoding: [0x62,0xe1,0x65,0x00,0xec,0x9a,0xf0,0xf7,0xff,0xff]
+          vpaddsb -2064(%rdx), %xmm19, %xmm19
+
+// CHECK: vpaddsb %ymm27, %ymm21, %ymm19
+// CHECK:  encoding: [0x62,0x81,0x55,0x20,0xec,0xdb]
+          vpaddsb %ymm27, %ymm21, %ymm19
+
+// CHECK: vpaddsb %ymm27, %ymm21, %ymm19 {%k4}
+// CHECK:  encoding: [0x62,0x81,0x55,0x24,0xec,0xdb]
+          vpaddsb %ymm27, %ymm21, %ymm19 {%k4}
+
+// CHECK: vpaddsb %ymm27, %ymm21, %ymm19 {%k4} {z}
+// CHECK:  encoding: [0x62,0x81,0x55,0xa4,0xec,0xdb]
+          vpaddsb %ymm27, %ymm21, %ymm19 {%k4} {z}
+
+// CHECK: vpaddsb (%rcx), %ymm21, %ymm19
+// CHECK:  encoding: [0x62,0xe1,0x55,0x20,0xec,0x19]
+          vpaddsb (%rcx), %ymm21, %ymm19
+
+// CHECK: vpaddsb 291(%rax,%r14,8), %ymm21, %ymm19
+// CHECK:  encoding: [0x62,0xa1,0x55,0x20,0xec,0x9c,0xf0,0x23,0x01,0x00,0x00]
+          vpaddsb 291(%rax,%r14,8), %ymm21, %ymm19
+
+// CHECK: vpaddsb 4064(%rdx), %ymm21, %ymm19
+// CHECK:  encoding: [0x62,0xe1,0x55,0x20,0xec,0x5a,0x7f]
+          vpaddsb 4064(%rdx), %ymm21, %ymm19
+
+// CHECK: vpaddsb 4096(%rdx), %ymm21, %ymm19
+// CHECK:  encoding: [0x62,0xe1,0x55,0x20,0xec,0x9a,0x00,0x10,0x00,0x00]
+          vpaddsb 4096(%rdx), %ymm21, %ymm19
+
+// CHECK: vpaddsb -4096(%rdx), %ymm21, %ymm19
+// CHECK:  encoding: [0x62,0xe1,0x55,0x20,0xec,0x5a,0x80]
+          vpaddsb -4096(%rdx), %ymm21, %ymm19
+
+// CHECK: vpaddsb -4128(%rdx), %ymm21, %ymm19
+// CHECK:  encoding: [0x62,0xe1,0x55,0x20,0xec,0x9a,0xe0,0xef,0xff,0xff]
+          vpaddsb -4128(%rdx), %ymm21, %ymm19
+
+// CHECK: vpaddsw %xmm21, %xmm27, %xmm29
+// CHECK:  encoding: [0x62,0x21,0x25,0x00,0xed,0xed]
+          vpaddsw %xmm21, %xmm27, %xmm29
+
+// CHECK: vpaddsw %xmm21, %xmm27, %xmm29 {%k1}
+// CHECK:  encoding: [0x62,0x21,0x25,0x01,0xed,0xed]
+          vpaddsw %xmm21, %xmm27, %xmm29 {%k1}
+
+// CHECK: vpaddsw %xmm21, %xmm27, %xmm29 {%k1} {z}
+// CHECK:  encoding: [0x62,0x21,0x25,0x81,0xed,0xed]
+          vpaddsw %xmm21, %xmm27, %xmm29 {%k1} {z}
+
+// CHECK: vpaddsw (%rcx), %xmm27, %xmm29
+// CHECK:  encoding: [0x62,0x61,0x25,0x00,0xed,0x29]
+          vpaddsw (%rcx), %xmm27, %xmm29
+
+// CHECK: vpaddsw 291(%rax,%r14,8), %xmm27, %xmm29
+// CHECK:  encoding: [0x62,0x21,0x25,0x00,0xed,0xac,0xf0,0x23,0x01,0x00,0x00]
+          vpaddsw 291(%rax,%r14,8), %xmm27, %xmm29
+
+// CHECK: vpaddsw 2032(%rdx), %xmm27, %xmm29
+// CHECK:  encoding: [0x62,0x61,0x25,0x00,0xed,0x6a,0x7f]
+          vpaddsw 2032(%rdx), %xmm27, %xmm29
+
+// CHECK: vpaddsw 2048(%rdx), %xmm27, %xmm29
+// CHECK:  encoding: [0x62,0x61,0x25,0x00,0xed,0xaa,0x00,0x08,0x00,0x00]
+          vpaddsw 2048(%rdx), %xmm27, %xmm29
+
+// CHECK: vpaddsw -2048(%rdx), %xmm27, %xmm29
+// CHECK:  encoding: [0x62,0x61,0x25,0x00,0xed,0x6a,0x80]
+          vpaddsw -2048(%rdx), %xmm27, %xmm29
+
+// CHECK: vpaddsw -2064(%rdx), %xmm27, %xmm29
+// CHECK:  encoding: [0x62,0x61,0x25,0x00,0xed,0xaa,0xf0,0xf7,0xff,0xff]
+          vpaddsw -2064(%rdx), %xmm27, %xmm29
+
+// CHECK: vpaddsw %ymm26, %ymm17, %ymm22
+// CHECK:  encoding: [0x62,0x81,0x75,0x20,0xed,0xf2]
+          vpaddsw %ymm26, %ymm17, %ymm22
+
+// CHECK: vpaddsw %ymm26, %ymm17, %ymm22 {%k3}
+// CHECK:  encoding: [0x62,0x81,0x75,0x23,0xed,0xf2]
+          vpaddsw %ymm26, %ymm17, %ymm22 {%k3}
+
+// CHECK: vpaddsw %ymm26, %ymm17, %ymm22 {%k3} {z}
+// CHECK:  encoding: [0x62,0x81,0x75,0xa3,0xed,0xf2]
+          vpaddsw %ymm26, %ymm17, %ymm22 {%k3} {z}
+
+// CHECK: vpaddsw (%rcx), %ymm17, %ymm22
+// CHECK:  encoding: [0x62,0xe1,0x75,0x20,0xed,0x31]
+          vpaddsw (%rcx), %ymm17, %ymm22
+
+// CHECK: vpaddsw 291(%rax,%r14,8), %ymm17, %ymm22
+// CHECK:  encoding: [0x62,0xa1,0x75,0x20,0xed,0xb4,0xf0,0x23,0x01,0x00,0x00]
+          vpaddsw 291(%rax,%r14,8), %ymm17, %ymm22
+
+// CHECK: vpaddsw 4064(%rdx), %ymm17, %ymm22
+// CHECK:  encoding: [0x62,0xe1,0x75,0x20,0xed,0x72,0x7f]
+          vpaddsw 4064(%rdx), %ymm17, %ymm22
+
+// CHECK: vpaddsw 4096(%rdx), %ymm17, %ymm22
+// CHECK:  encoding: [0x62,0xe1,0x75,0x20,0xed,0xb2,0x00,0x10,0x00,0x00]
+          vpaddsw 4096(%rdx), %ymm17, %ymm22
+
+// CHECK: vpaddsw -4096(%rdx), %ymm17, %ymm22
+// CHECK:  encoding: [0x62,0xe1,0x75,0x20,0xed,0x72,0x80]
+          vpaddsw -4096(%rdx), %ymm17, %ymm22
+
+// CHECK: vpaddsw -4128(%rdx), %ymm17, %ymm22
+// CHECK:  encoding: [0x62,0xe1,0x75,0x20,0xed,0xb2,0xe0,0xef,0xff,0xff]
+          vpaddsw -4128(%rdx), %ymm17, %ymm22
+
+// CHECK: vpaddusb %xmm26, %xmm28, %xmm21
+// CHECK:  encoding: [0x62,0x81,0x1d,0x00,0xdc,0xea]
+          vpaddusb %xmm26, %xmm28, %xmm21
+
+// CHECK: vpaddusb %xmm26, %xmm28, %xmm21 {%k5}
+// CHECK:  encoding: [0x62,0x81,0x1d,0x05,0xdc,0xea]
+          vpaddusb %xmm26, %xmm28, %xmm21 {%k5}
+
+// CHECK: vpaddusb %xmm26, %xmm28, %xmm21 {%k5} {z}
+// CHECK:  encoding: [0x62,0x81,0x1d,0x85,0xdc,0xea]
+          vpaddusb %xmm26, %xmm28, %xmm21 {%k5} {z}
+
+// CHECK: vpaddusb (%rcx), %xmm28, %xmm21
+// CHECK:  encoding: [0x62,0xe1,0x1d,0x00,0xdc,0x29]
+          vpaddusb (%rcx), %xmm28, %xmm21
+
+// CHECK: vpaddusb 291(%rax,%r14,8), %xmm28, %xmm21
+// CHECK:  encoding: [0x62,0xa1,0x1d,0x00,0xdc,0xac,0xf0,0x23,0x01,0x00,0x00]
+          vpaddusb 291(%rax,%r14,8), %xmm28, %xmm21
+
+// CHECK: vpaddusb 2032(%rdx), %xmm28, %xmm21
+// CHECK:  encoding: [0x62,0xe1,0x1d,0x00,0xdc,0x6a,0x7f]
+          vpaddusb 2032(%rdx), %xmm28, %xmm21
+
+// CHECK: vpaddusb 2048(%rdx), %xmm28, %xmm21
+// CHECK:  encoding: [0x62,0xe1,0x1d,0x00,0xdc,0xaa,0x00,0x08,0x00,0x00]
+          vpaddusb 2048(%rdx), %xmm28, %xmm21
+
+// CHECK: vpaddusb -2048(%rdx), %xmm28, %xmm21
+// CHECK:  encoding: [0x62,0xe1,0x1d,0x00,0xdc,0x6a,0x80]
+          vpaddusb -2048(%rdx), %xmm28, %xmm21
+
+// CHECK: vpaddusb -2064(%rdx), %xmm28, %xmm21
+// CHECK:  encoding: [0x62,0xe1,0x1d,0x00,0xdc,0xaa,0xf0,0xf7,0xff,0xff]
+          vpaddusb -2064(%rdx), %xmm28, %xmm21
+
+// CHECK: vpaddusb %ymm17, %ymm23, %ymm20
+// CHECK:  encoding: [0x62,0xa1,0x45,0x20,0xdc,0xe1]
+          vpaddusb %ymm17, %ymm23, %ymm20
+
+// CHECK: vpaddusb %ymm17, %ymm23, %ymm20 {%k1}
+// CHECK:  encoding: [0x62,0xa1,0x45,0x21,0xdc,0xe1]
+          vpaddusb %ymm17, %ymm23, %ymm20 {%k1}
+
+// CHECK: vpaddusb %ymm17, %ymm23, %ymm20 {%k1} {z}
+// CHECK:  encoding: [0x62,0xa1,0x45,0xa1,0xdc,0xe1]
+          vpaddusb %ymm17, %ymm23, %ymm20 {%k1} {z}
+
+// CHECK: vpaddusb (%rcx), %ymm23, %ymm20
+// CHECK:  encoding: [0x62,0xe1,0x45,0x20,0xdc,0x21]
+          vpaddusb (%rcx), %ymm23, %ymm20
+
+// CHECK: vpaddusb 291(%rax,%r14,8), %ymm23, %ymm20
+// CHECK:  encoding: [0x62,0xa1,0x45,0x20,0xdc,0xa4,0xf0,0x23,0x01,0x00,0x00]
+          vpaddusb 291(%rax,%r14,8), %ymm23, %ymm20
+
+// CHECK: vpaddusb 4064(%rdx), %ymm23, %ymm20
+// CHECK:  encoding: [0x62,0xe1,0x45,0x20,0xdc,0x62,0x7f]
+          vpaddusb 4064(%rdx), %ymm23, %ymm20
+
+// CHECK: vpaddusb 4096(%rdx), %ymm23, %ymm20
+// CHECK:  encoding: [0x62,0xe1,0x45,0x20,0xdc,0xa2,0x00,0x10,0x00,0x00]
+          vpaddusb 4096(%rdx), %ymm23, %ymm20
+
+// CHECK: vpaddusb -4096(%rdx), %ymm23, %ymm20
+// CHECK:  encoding: [0x62,0xe1,0x45,0x20,0xdc,0x62,0x80]
+          vpaddusb -4096(%rdx), %ymm23, %ymm20
+
+// CHECK: vpaddusb -4128(%rdx), %ymm23, %ymm20
+// CHECK:  encoding: [0x62,0xe1,0x45,0x20,0xdc,0xa2,0xe0,0xef,0xff,0xff]
+          vpaddusb -4128(%rdx), %ymm23, %ymm20
+
+// CHECK: vpaddusw %xmm24, %xmm27, %xmm23
+// CHECK:  encoding: [0x62,0x81,0x25,0x00,0xdd,0xf8]
+          vpaddusw %xmm24, %xmm27, %xmm23
+
+// CHECK: vpaddusw %xmm24, %xmm27, %xmm23 {%k2}
+// CHECK:  encoding: [0x62,0x81,0x25,0x02,0xdd,0xf8]
+          vpaddusw %xmm24, %xmm27, %xmm23 {%k2}
+
+// CHECK: vpaddusw %xmm24, %xmm27, %xmm23 {%k2} {z}
+// CHECK:  encoding: [0x62,0x81,0x25,0x82,0xdd,0xf8]
+          vpaddusw %xmm24, %xmm27, %xmm23 {%k2} {z}
+
+// CHECK: vpaddusw (%rcx), %xmm27, %xmm23
+// CHECK:  encoding: [0x62,0xe1,0x25,0x00,0xdd,0x39]
+          vpaddusw (%rcx), %xmm27, %xmm23
+
+// CHECK: vpaddusw 291(%rax,%r14,8), %xmm27, %xmm23
+// CHECK:  encoding: [0x62,0xa1,0x25,0x00,0xdd,0xbc,0xf0,0x23,0x01,0x00,0x00]
+          vpaddusw 291(%rax,%r14,8), %xmm27, %xmm23
+
+// CHECK: vpaddusw 2032(%rdx), %xmm27, %xmm23
+// CHECK:  encoding: [0x62,0xe1,0x25,0x00,0xdd,0x7a,0x7f]
+          vpaddusw 2032(%rdx), %xmm27, %xmm23
+
+// CHECK: vpaddusw 2048(%rdx), %xmm27, %xmm23
+// CHECK:  encoding: [0x62,0xe1,0x25,0x00,0xdd,0xba,0x00,0x08,0x00,0x00]
+          vpaddusw 2048(%rdx), %xmm27, %xmm23
+
+// CHECK: vpaddusw -2048(%rdx), %xmm27, %xmm23
+// CHECK:  encoding: [0x62,0xe1,0x25,0x00,0xdd,0x7a,0x80]
+          vpaddusw -2048(%rdx), %xmm27, %xmm23
+
+// CHECK: vpaddusw -2064(%rdx), %xmm27, %xmm23
+// CHECK:  encoding: [0x62,0xe1,0x25,0x00,0xdd,0xba,0xf0,0xf7,0xff,0xff]
+          vpaddusw -2064(%rdx), %xmm27, %xmm23
+
+// CHECK: vpaddusw %ymm17, %ymm22, %ymm23
+// CHECK:  encoding: [0x62,0xa1,0x4d,0x20,0xdd,0xf9]
+          vpaddusw %ymm17, %ymm22, %ymm23
+
+// CHECK: vpaddusw %ymm17, %ymm22, %ymm23 {%k1}
+// CHECK:  encoding: [0x62,0xa1,0x4d,0x21,0xdd,0xf9]
+          vpaddusw %ymm17, %ymm22, %ymm23 {%k1}
+
+// CHECK: vpaddusw %ymm17, %ymm22, %ymm23 {%k1} {z}
+// CHECK:  encoding: [0x62,0xa1,0x4d,0xa1,0xdd,0xf9]
+          vpaddusw %ymm17, %ymm22, %ymm23 {%k1} {z}
+
+// CHECK: vpaddusw (%rcx), %ymm22, %ymm23
+// CHECK:  encoding: [0x62,0xe1,0x4d,0x20,0xdd,0x39]
+          vpaddusw (%rcx), %ymm22, %ymm23
+
+// CHECK: vpaddusw 291(%rax,%r14,8), %ymm22, %ymm23
+// CHECK:  encoding: [0x62,0xa1,0x4d,0x20,0xdd,0xbc,0xf0,0x23,0x01,0x00,0x00]
+          vpaddusw 291(%rax,%r14,8), %ymm22, %ymm23
+
+// CHECK: vpaddusw 4064(%rdx), %ymm22, %ymm23
+// CHECK:  encoding: [0x62,0xe1,0x4d,0x20,0xdd,0x7a,0x7f]
+          vpaddusw 4064(%rdx), %ymm22, %ymm23
+
+// CHECK: vpaddusw 4096(%rdx), %ymm22, %ymm23
+// CHECK:  encoding: [0x62,0xe1,0x4d,0x20,0xdd,0xba,0x00,0x10,0x00,0x00]
+          vpaddusw 4096(%rdx), %ymm22, %ymm23
+
+// CHECK: vpaddusw -4096(%rdx), %ymm22, %ymm23
+// CHECK:  encoding: [0x62,0xe1,0x4d,0x20,0xdd,0x7a,0x80]
+          vpaddusw -4096(%rdx), %ymm22, %ymm23
+
+// CHECK: vpaddusw -4128(%rdx), %ymm22, %ymm23
+// CHECK:  encoding: [0x62,0xe1,0x4d,0x20,0xdd,0xba,0xe0,0xef,0xff,0xff]
+          vpaddusw -4128(%rdx), %ymm22, %ymm23
+
+// CHECK: vpsubsb %xmm27, %xmm17, %xmm17
+// CHECK:  encoding: [0x62,0x81,0x75,0x00,0xe8,0xcb]
+          vpsubsb %xmm27, %xmm17, %xmm17
+
+// CHECK: vpsubsb %xmm27, %xmm17, %xmm17 {%k7}
+// CHECK:  encoding: [0x62,0x81,0x75,0x07,0xe8,0xcb]
+          vpsubsb %xmm27, %xmm17, %xmm17 {%k7}
+
+// CHECK: vpsubsb %xmm27, %xmm17, %xmm17 {%k7} {z}
+// CHECK:  encoding: [0x62,0x81,0x75,0x87,0xe8,0xcb]
+          vpsubsb %xmm27, %xmm17, %xmm17 {%k7} {z}
+
+// CHECK: vpsubsb (%rcx), %xmm17, %xmm17
+// CHECK:  encoding: [0x62,0xe1,0x75,0x00,0xe8,0x09]
+          vpsubsb (%rcx), %xmm17, %xmm17
+
+// CHECK: vpsubsb 291(%rax,%r14,8), %xmm17, %xmm17
+// CHECK:  encoding: [0x62,0xa1,0x75,0x00,0xe8,0x8c,0xf0,0x23,0x01,0x00,0x00]
+          vpsubsb 291(%rax,%r14,8), %xmm17, %xmm17
+
+// CHECK: vpsubsb 2032(%rdx), %xmm17, %xmm17
+// CHECK:  encoding: [0x62,0xe1,0x75,0x00,0xe8,0x4a,0x7f]
+          vpsubsb 2032(%rdx), %xmm17, %xmm17
+
+// CHECK: vpsubsb 2048(%rdx), %xmm17, %xmm17
+// CHECK:  encoding: [0x62,0xe1,0x75,0x00,0xe8,0x8a,0x00,0x08,0x00,0x00]
+          vpsubsb 2048(%rdx), %xmm17, %xmm17
+
+// CHECK: vpsubsb -2048(%rdx), %xmm17, %xmm17
+// CHECK:  encoding: [0x62,0xe1,0x75,0x00,0xe8,0x4a,0x80]
+          vpsubsb -2048(%rdx), %xmm17, %xmm17
+
+// CHECK: vpsubsb -2064(%rdx), %xmm17, %xmm17
+// CHECK:  encoding: [0x62,0xe1,0x75,0x00,0xe8,0x8a,0xf0,0xf7,0xff,0xff]
+          vpsubsb -2064(%rdx), %xmm17, %xmm17
+
+// CHECK: vpsubsb %ymm27, %ymm25, %ymm17
+// CHECK:  encoding: [0x62,0x81,0x35,0x20,0xe8,0xcb]
+          vpsubsb %ymm27, %ymm25, %ymm17
+
+// CHECK: vpsubsb %ymm27, %ymm25, %ymm17 {%k2}
+// CHECK:  encoding: [0x62,0x81,0x35,0x22,0xe8,0xcb]
+          vpsubsb %ymm27, %ymm25, %ymm17 {%k2}
+
+// CHECK: vpsubsb %ymm27, %ymm25, %ymm17 {%k2} {z}
+// CHECK:  encoding: [0x62,0x81,0x35,0xa2,0xe8,0xcb]
+          vpsubsb %ymm27, %ymm25, %ymm17 {%k2} {z}
+
+// CHECK: vpsubsb (%rcx), %ymm25, %ymm17
+// CHECK:  encoding: [0x62,0xe1,0x35,0x20,0xe8,0x09]
+          vpsubsb (%rcx), %ymm25, %ymm17
+
+// CHECK: vpsubsb 291(%rax,%r14,8), %ymm25, %ymm17
+// CHECK:  encoding: [0x62,0xa1,0x35,0x20,0xe8,0x8c,0xf0,0x23,0x01,0x00,0x00]
+          vpsubsb 291(%rax,%r14,8), %ymm25, %ymm17
+
+// CHECK: vpsubsb 4064(%rdx), %ymm25, %ymm17
+// CHECK:  encoding: [0x62,0xe1,0x35,0x20,0xe8,0x4a,0x7f]
+          vpsubsb 4064(%rdx), %ymm25, %ymm17
+
+// CHECK: vpsubsb 4096(%rdx), %ymm25, %ymm17
+// CHECK:  encoding: [0x62,0xe1,0x35,0x20,0xe8,0x8a,0x00,0x10,0x00,0x00]
+          vpsubsb 4096(%rdx), %ymm25, %ymm17
+
+// CHECK: vpsubsb -4096(%rdx), %ymm25, %ymm17
+// CHECK:  encoding: [0x62,0xe1,0x35,0x20,0xe8,0x4a,0x80]
+          vpsubsb -4096(%rdx), %ymm25, %ymm17
+
+// CHECK: vpsubsb -4128(%rdx), %ymm25, %ymm17
+// CHECK:  encoding: [0x62,0xe1,0x35,0x20,0xe8,0x8a,0xe0,0xef,0xff,0xff]
+          vpsubsb -4128(%rdx), %ymm25, %ymm17
+
+// CHECK: vpsubsw %xmm23, %xmm26, %xmm30
+// CHECK:  encoding: [0x62,0x21,0x2d,0x00,0xe9,0xf7]
+          vpsubsw %xmm23, %xmm26, %xmm30
+
+// CHECK: vpsubsw %xmm23, %xmm26, %xmm30 {%k7}
+// CHECK:  encoding: [0x62,0x21,0x2d,0x07,0xe9,0xf7]
+          vpsubsw %xmm23, %xmm26, %xmm30 {%k7}
+
+// CHECK: vpsubsw %xmm23, %xmm26, %xmm30 {%k7} {z}
+// CHECK:  encoding: [0x62,0x21,0x2d,0x87,0xe9,0xf7]
+          vpsubsw %xmm23, %xmm26, %xmm30 {%k7} {z}
+
+// CHECK: vpsubsw (%rcx), %xmm26, %xmm30
+// CHECK:  encoding: [0x62,0x61,0x2d,0x00,0xe9,0x31]
+          vpsubsw (%rcx), %xmm26, %xmm30
+
+// CHECK: vpsubsw 291(%rax,%r14,8), %xmm26, %xmm30
+// CHECK:  encoding: [0x62,0x21,0x2d,0x00,0xe9,0xb4,0xf0,0x23,0x01,0x00,0x00]
+          vpsubsw 291(%rax,%r14,8), %xmm26, %xmm30
+
+// CHECK: vpsubsw 2032(%rdx), %xmm26, %xmm30
+// CHECK:  encoding: [0x62,0x61,0x2d,0x00,0xe9,0x72,0x7f]
+          vpsubsw 2032(%rdx), %xmm26, %xmm30
+
+// CHECK: vpsubsw 2048(%rdx), %xmm26, %xmm30
+// CHECK:  encoding: [0x62,0x61,0x2d,0x00,0xe9,0xb2,0x00,0x08,0x00,0x00]
+          vpsubsw 2048(%rdx), %xmm26, %xmm30
+
+// CHECK: vpsubsw -2048(%rdx), %xmm26, %xmm30
+// CHECK:  encoding: [0x62,0x61,0x2d,0x00,0xe9,0x72,0x80]
+          vpsubsw -2048(%rdx), %xmm26, %xmm30
+
+// CHECK: vpsubsw -2064(%rdx), %xmm26, %xmm30
+// CHECK:  encoding: [0x62,0x61,0x2d,0x00,0xe9,0xb2,0xf0,0xf7,0xff,0xff]
+          vpsubsw -2064(%rdx), %xmm26, %xmm30
+
+// CHECK: vpsubsw %ymm17, %ymm29, %ymm19
+// CHECK:  encoding: [0x62,0xa1,0x15,0x20,0xe9,0xd9]
+          vpsubsw %ymm17, %ymm29, %ymm19
+
+// CHECK: vpsubsw %ymm17, %ymm29, %ymm19 {%k2}
+// CHECK:  encoding: [0x62,0xa1,0x15,0x22,0xe9,0xd9]
+          vpsubsw %ymm17, %ymm29, %ymm19 {%k2}
+
+// CHECK: vpsubsw %ymm17, %ymm29, %ymm19 {%k2} {z}
+// CHECK:  encoding: [0x62,0xa1,0x15,0xa2,0xe9,0xd9]
+          vpsubsw %ymm17, %ymm29, %ymm19 {%k2} {z}
+
+// CHECK: vpsubsw (%rcx), %ymm29, %ymm19
+// CHECK:  encoding: [0x62,0xe1,0x15,0x20,0xe9,0x19]
+          vpsubsw (%rcx), %ymm29, %ymm19
+
+// CHECK: vpsubsw 291(%rax,%r14,8), %ymm29, %ymm19
+// CHECK:  encoding: [0x62,0xa1,0x15,0x20,0xe9,0x9c,0xf0,0x23,0x01,0x00,0x00]
+          vpsubsw 291(%rax,%r14,8), %ymm29, %ymm19
+
+// CHECK: vpsubsw 4064(%rdx), %ymm29, %ymm19
+// CHECK:  encoding: [0x62,0xe1,0x15,0x20,0xe9,0x5a,0x7f]
+          vpsubsw 4064(%rdx), %ymm29, %ymm19
+
+// CHECK: vpsubsw 4096(%rdx), %ymm29, %ymm19
+// CHECK:  encoding: [0x62,0xe1,0x15,0x20,0xe9,0x9a,0x00,0x10,0x00,0x00]
+          vpsubsw 4096(%rdx), %ymm29, %ymm19
+
+// CHECK: vpsubsw -4096(%rdx), %ymm29, %ymm19
+// CHECK:  encoding: [0x62,0xe1,0x15,0x20,0xe9,0x5a,0x80]
+          vpsubsw -4096(%rdx), %ymm29, %ymm19
+
+// CHECK: vpsubsw -4128(%rdx), %ymm29, %ymm19
+// CHECK:  encoding: [0x62,0xe1,0x15,0x20,0xe9,0x9a,0xe0,0xef,0xff,0xff]
+          vpsubsw -4128(%rdx), %ymm29, %ymm19
+
+// CHECK: vpsubusb %xmm23, %xmm27, %xmm17
+// CHECK:  encoding: [0x62,0xa1,0x25,0x00,0xd8,0xcf]
+          vpsubusb %xmm23, %xmm27, %xmm17
+
+// CHECK: vpsubusb %xmm23, %xmm27, %xmm17 {%k6}
+// CHECK:  encoding: [0x62,0xa1,0x25,0x06,0xd8,0xcf]
+          vpsubusb %xmm23, %xmm27, %xmm17 {%k6}
+
+// CHECK: vpsubusb %xmm23, %xmm27, %xmm17 {%k6} {z}
+// CHECK:  encoding: [0x62,0xa1,0x25,0x86,0xd8,0xcf]
+          vpsubusb %xmm23, %xmm27, %xmm17 {%k6} {z}
+
+// CHECK: vpsubusb (%rcx), %xmm27, %xmm17
+// CHECK:  encoding: [0x62,0xe1,0x25,0x00,0xd8,0x09]
+          vpsubusb (%rcx), %xmm27, %xmm17
+
+// CHECK: vpsubusb 291(%rax,%r14,8), %xmm27, %xmm17
+// CHECK:  encoding: [0x62,0xa1,0x25,0x00,0xd8,0x8c,0xf0,0x23,0x01,0x00,0x00]
+          vpsubusb 291(%rax,%r14,8), %xmm27, %xmm17
+
+// CHECK: vpsubusb 2032(%rdx), %xmm27, %xmm17
+// CHECK:  encoding: [0x62,0xe1,0x25,0x00,0xd8,0x4a,0x7f]
+          vpsubusb 2032(%rdx), %xmm27, %xmm17
+
+// CHECK: vpsubusb 2048(%rdx), %xmm27, %xmm17
+// CHECK:  encoding: [0x62,0xe1,0x25,0x00,0xd8,0x8a,0x00,0x08,0x00,0x00]
+          vpsubusb 2048(%rdx), %xmm27, %xmm17
+
+// CHECK: vpsubusb -2048(%rdx), %xmm27, %xmm17
+// CHECK:  encoding: [0x62,0xe1,0x25,0x00,0xd8,0x4a,0x80]
+          vpsubusb -2048(%rdx), %xmm27, %xmm17
+
+// CHECK: vpsubusb -2064(%rdx), %xmm27, %xmm17
+// CHECK:  encoding: [0x62,0xe1,0x25,0x00,0xd8,0x8a,0xf0,0xf7,0xff,0xff]
+          vpsubusb -2064(%rdx), %xmm27, %xmm17
+
+// CHECK: vpsubusb %ymm18, %ymm21, %ymm17
+// CHECK:  encoding: [0x62,0xa1,0x55,0x20,0xd8,0xca]
+          vpsubusb %ymm18, %ymm21, %ymm17
+
+// CHECK: vpsubusb %ymm18, %ymm21, %ymm17 {%k5}
+// CHECK:  encoding: [0x62,0xa1,0x55,0x25,0xd8,0xca]
+          vpsubusb %ymm18, %ymm21, %ymm17 {%k5}
+
+// CHECK: vpsubusb %ymm18, %ymm21, %ymm17 {%k5} {z}
+// CHECK:  encoding: [0x62,0xa1,0x55,0xa5,0xd8,0xca]
+          vpsubusb %ymm18, %ymm21, %ymm17 {%k5} {z}
+
+// CHECK: vpsubusb (%rcx), %ymm21, %ymm17
+// CHECK:  encoding: [0x62,0xe1,0x55,0x20,0xd8,0x09]
+          vpsubusb (%rcx), %ymm21, %ymm17
+
+// CHECK: vpsubusb 291(%rax,%r14,8), %ymm21, %ymm17
+// CHECK:  encoding: [0x62,0xa1,0x55,0x20,0xd8,0x8c,0xf0,0x23,0x01,0x00,0x00]
+          vpsubusb 291(%rax,%r14,8), %ymm21, %ymm17
+
+// CHECK: vpsubusb 4064(%rdx), %ymm21, %ymm17
+// CHECK:  encoding: [0x62,0xe1,0x55,0x20,0xd8,0x4a,0x7f]
+          vpsubusb 4064(%rdx), %ymm21, %ymm17
+
+// CHECK: vpsubusb 4096(%rdx), %ymm21, %ymm17
+// CHECK:  encoding: [0x62,0xe1,0x55,0x20,0xd8,0x8a,0x00,0x10,0x00,0x00]
+          vpsubusb 4096(%rdx), %ymm21, %ymm17
+
+// CHECK: vpsubusb -4096(%rdx), %ymm21, %ymm17
+// CHECK:  encoding: [0x62,0xe1,0x55,0x20,0xd8,0x4a,0x80]
+          vpsubusb -4096(%rdx), %ymm21, %ymm17
+
+// CHECK: vpsubusb -4128(%rdx), %ymm21, %ymm17
+// CHECK:  encoding: [0x62,0xe1,0x55,0x20,0xd8,0x8a,0xe0,0xef,0xff,0xff]
+          vpsubusb -4128(%rdx), %ymm21, %ymm17
+
+// CHECK: vpsubusw %xmm19, %xmm21, %xmm25
+// CHECK:  encoding: [0x62,0x21,0x55,0x00,0xd9,0xcb]
+          vpsubusw %xmm19, %xmm21, %xmm25
+
+// CHECK: vpsubusw %xmm19, %xmm21, %xmm25 {%k6}
+// CHECK:  encoding: [0x62,0x21,0x55,0x06,0xd9,0xcb]
+          vpsubusw %xmm19, %xmm21, %xmm25 {%k6}
+
+// CHECK: vpsubusw %xmm19, %xmm21, %xmm25 {%k6} {z}
+// CHECK:  encoding: [0x62,0x21,0x55,0x86,0xd9,0xcb]
+          vpsubusw %xmm19, %xmm21, %xmm25 {%k6} {z}
+
+// CHECK: vpsubusw (%rcx), %xmm21, %xmm25
+// CHECK:  encoding: [0x62,0x61,0x55,0x00,0xd9,0x09]
+          vpsubusw (%rcx), %xmm21, %xmm25
+
+// CHECK: vpsubusw 291(%rax,%r14,8), %xmm21, %xmm25
+// CHECK:  encoding: [0x62,0x21,0x55,0x00,0xd9,0x8c,0xf0,0x23,0x01,0x00,0x00]
+          vpsubusw 291(%rax,%r14,8), %xmm21, %xmm25
+
+// CHECK: vpsubusw 2032(%rdx), %xmm21, %xmm25
+// CHECK:  encoding: [0x62,0x61,0x55,0x00,0xd9,0x4a,0x7f]
+          vpsubusw 2032(%rdx), %xmm21, %xmm25
+
+// CHECK: vpsubusw 2048(%rdx), %xmm21, %xmm25
+// CHECK:  encoding: [0x62,0x61,0x55,0x00,0xd9,0x8a,0x00,0x08,0x00,0x00]
+          vpsubusw 2048(%rdx), %xmm21, %xmm25
+
+// CHECK: vpsubusw -2048(%rdx), %xmm21, %xmm25
+// CHECK:  encoding: [0x62,0x61,0x55,0x00,0xd9,0x4a,0x80]
+          vpsubusw -2048(%rdx), %xmm21, %xmm25
+
+// CHECK: vpsubusw -2064(%rdx), %xmm21, %xmm25
+// CHECK:  encoding: [0x62,0x61,0x55,0x00,0xd9,0x8a,0xf0,0xf7,0xff,0xff]
+          vpsubusw -2064(%rdx), %xmm21, %xmm25
+
+// CHECK: vpsubusw %ymm17, %ymm17, %ymm26
+// CHECK:  encoding: [0x62,0x21,0x75,0x20,0xd9,0xd1]
+          vpsubusw %ymm17, %ymm17, %ymm26
+
+// CHECK: vpsubusw %ymm17, %ymm17, %ymm26 {%k4}
+// CHECK:  encoding: [0x62,0x21,0x75,0x24,0xd9,0xd1]
+          vpsubusw %ymm17, %ymm17, %ymm26 {%k4}
+
+// CHECK: vpsubusw %ymm17, %ymm17, %ymm26 {%k4} {z}
+// CHECK:  encoding: [0x62,0x21,0x75,0xa4,0xd9,0xd1]
+          vpsubusw %ymm17, %ymm17, %ymm26 {%k4} {z}
+
+// CHECK: vpsubusw (%rcx), %ymm17, %ymm26
+// CHECK:  encoding: [0x62,0x61,0x75,0x20,0xd9,0x11]
+          vpsubusw (%rcx), %ymm17, %ymm26
+
+// CHECK: vpsubusw 291(%rax,%r14,8), %ymm17, %ymm26
+// CHECK:  encoding: [0x62,0x21,0x75,0x20,0xd9,0x94,0xf0,0x23,0x01,0x00,0x00]
+          vpsubusw 291(%rax,%r14,8), %ymm17, %ymm26
+
+// CHECK: vpsubusw 4064(%rdx), %ymm17, %ymm26
+// CHECK:  encoding: [0x62,0x61,0x75,0x20,0xd9,0x52,0x7f]
+          vpsubusw 4064(%rdx), %ymm17, %ymm26
+
+// CHECK: vpsubusw 4096(%rdx), %ymm17, %ymm26
+// CHECK:  encoding: [0x62,0x61,0x75,0x20,0xd9,0x92,0x00,0x10,0x00,0x00]
+          vpsubusw 4096(%rdx), %ymm17, %ymm26
+
+// CHECK: vpsubusw -4096(%rdx), %ymm17, %ymm26
+// CHECK:  encoding: [0x62,0x61,0x75,0x20,0xd9,0x52,0x80]
+          vpsubusw -4096(%rdx), %ymm17, %ymm26
+
+// CHECK: vpsubusw -4128(%rdx), %ymm17, %ymm26
+// CHECK:  encoding: [0x62,0x61,0x75,0x20,0xd9,0x92,0xe0,0xef,0xff,0xff]
+          vpsubusw -4128(%rdx), %ymm17, %ymm26
+
+// CHECK: vpaddsb %xmm23, %xmm24, %xmm20
+// CHECK:  encoding: [0x62,0xa1,0x3d,0x00,0xec,0xe7]
+          vpaddsb %xmm23, %xmm24, %xmm20
+
+// CHECK: vpaddsb %xmm23, %xmm24, %xmm20 {%k1}
+// CHECK:  encoding: [0x62,0xa1,0x3d,0x01,0xec,0xe7]
+          vpaddsb %xmm23, %xmm24, %xmm20 {%k1}
+
+// CHECK: vpaddsb %xmm23, %xmm24, %xmm20 {%k1} {z}
+// CHECK:  encoding: [0x62,0xa1,0x3d,0x81,0xec,0xe7]
+          vpaddsb %xmm23, %xmm24, %xmm20 {%k1} {z}
+
+// CHECK: vpaddsb (%rcx), %xmm24, %xmm20
+// CHECK:  encoding: [0x62,0xe1,0x3d,0x00,0xec,0x21]
+          vpaddsb (%rcx), %xmm24, %xmm20
+
+// CHECK: vpaddsb 4660(%rax,%r14,8), %xmm24, %xmm20
+// CHECK:  encoding: [0x62,0xa1,0x3d,0x00,0xec,0xa4,0xf0,0x34,0x12,0x00,0x00]
+          vpaddsb 4660(%rax,%r14,8), %xmm24, %xmm20
+
+// CHECK: vpaddsb 2032(%rdx), %xmm24, %xmm20
+// CHECK:  encoding: [0x62,0xe1,0x3d,0x00,0xec,0x62,0x7f]
+          vpaddsb 2032(%rdx), %xmm24, %xmm20
+
+// CHECK: vpaddsb 2048(%rdx), %xmm24, %xmm20
+// CHECK:  encoding: [0x62,0xe1,0x3d,0x00,0xec,0xa2,0x00,0x08,0x00,0x00]
+          vpaddsb 2048(%rdx), %xmm24, %xmm20
+
+// CHECK: vpaddsb -2048(%rdx), %xmm24, %xmm20
+// CHECK:  encoding: [0x62,0xe1,0x3d,0x00,0xec,0x62,0x80]
+          vpaddsb -2048(%rdx), %xmm24, %xmm20
+
+// CHECK: vpaddsb -2064(%rdx), %xmm24, %xmm20
+// CHECK:  encoding: [0x62,0xe1,0x3d,0x00,0xec,0xa2,0xf0,0xf7,0xff,0xff]
+          vpaddsb -2064(%rdx), %xmm24, %xmm20
+
+// CHECK: vpaddsb %ymm19, %ymm20, %ymm18
+// CHECK:  encoding: [0x62,0xa1,0x5d,0x20,0xec,0xd3]
+          vpaddsb %ymm19, %ymm20, %ymm18
+
+// CHECK: vpaddsb %ymm19, %ymm20, %ymm18 {%k7}
+// CHECK:  encoding: [0x62,0xa1,0x5d,0x27,0xec,0xd3]
+          vpaddsb %ymm19, %ymm20, %ymm18 {%k7}
+
+// CHECK: vpaddsb %ymm19, %ymm20, %ymm18 {%k7} {z}
+// CHECK:  encoding: [0x62,0xa1,0x5d,0xa7,0xec,0xd3]
+          vpaddsb %ymm19, %ymm20, %ymm18 {%k7} {z}
+
+// CHECK: vpaddsb (%rcx), %ymm20, %ymm18
+// CHECK:  encoding: [0x62,0xe1,0x5d,0x20,0xec,0x11]
+          vpaddsb (%rcx), %ymm20, %ymm18
+
+// CHECK: vpaddsb 4660(%rax,%r14,8), %ymm20, %ymm18
+// CHECK:  encoding: [0x62,0xa1,0x5d,0x20,0xec,0x94,0xf0,0x34,0x12,0x00,0x00]
+          vpaddsb 4660(%rax,%r14,8), %ymm20, %ymm18
+
+// CHECK: vpaddsb 4064(%rdx), %ymm20, %ymm18
+// CHECK:  encoding: [0x62,0xe1,0x5d,0x20,0xec,0x52,0x7f]
+          vpaddsb 4064(%rdx), %ymm20, %ymm18
+
+// CHECK: vpaddsb 4096(%rdx), %ymm20, %ymm18
+// CHECK:  encoding: [0x62,0xe1,0x5d,0x20,0xec,0x92,0x00,0x10,0x00,0x00]
+          vpaddsb 4096(%rdx), %ymm20, %ymm18
+
+// CHECK: vpaddsb -4096(%rdx), %ymm20, %ymm18
+// CHECK:  encoding: [0x62,0xe1,0x5d,0x20,0xec,0x52,0x80]
+          vpaddsb -4096(%rdx), %ymm20, %ymm18
+
+// CHECK: vpaddsb -4128(%rdx), %ymm20, %ymm18
+// CHECK:  encoding: [0x62,0xe1,0x5d,0x20,0xec,0x92,0xe0,0xef,0xff,0xff]
+          vpaddsb -4128(%rdx), %ymm20, %ymm18
+
+// CHECK: vpaddsw %xmm24, %xmm23, %xmm23
+// CHECK:  encoding: [0x62,0x81,0x45,0x00,0xed,0xf8]
+          vpaddsw %xmm24, %xmm23, %xmm23
+
+// CHECK: vpaddsw %xmm24, %xmm23, %xmm23 {%k5}
+// CHECK:  encoding: [0x62,0x81,0x45,0x05,0xed,0xf8]
+          vpaddsw %xmm24, %xmm23, %xmm23 {%k5}
+
+// CHECK: vpaddsw %xmm24, %xmm23, %xmm23 {%k5} {z}
+// CHECK:  encoding: [0x62,0x81,0x45,0x85,0xed,0xf8]
+          vpaddsw %xmm24, %xmm23, %xmm23 {%k5} {z}
+
+// CHECK: vpaddsw (%rcx), %xmm23, %xmm23
+// CHECK:  encoding: [0x62,0xe1,0x45,0x00,0xed,0x39]
+          vpaddsw (%rcx), %xmm23, %xmm23
+
+// CHECK: vpaddsw 4660(%rax,%r14,8), %xmm23, %xmm23
+// CHECK:  encoding: [0x62,0xa1,0x45,0x00,0xed,0xbc,0xf0,0x34,0x12,0x00,0x00]
+          vpaddsw 4660(%rax,%r14,8), %xmm23, %xmm23
+
+// CHECK: vpaddsw 2032(%rdx), %xmm23, %xmm23
+// CHECK:  encoding: [0x62,0xe1,0x45,0x00,0xed,0x7a,0x7f]
+          vpaddsw 2032(%rdx), %xmm23, %xmm23
+
+// CHECK: vpaddsw 2048(%rdx), %xmm23, %xmm23
+// CHECK:  encoding: [0x62,0xe1,0x45,0x00,0xed,0xba,0x00,0x08,0x00,0x00]
+          vpaddsw 2048(%rdx), %xmm23, %xmm23
+
+// CHECK: vpaddsw -2048(%rdx), %xmm23, %xmm23
+// CHECK:  encoding: [0x62,0xe1,0x45,0x00,0xed,0x7a,0x80]
+          vpaddsw -2048(%rdx), %xmm23, %xmm23
+
+// CHECK: vpaddsw -2064(%rdx), %xmm23, %xmm23
+// CHECK:  encoding: [0x62,0xe1,0x45,0x00,0xed,0xba,0xf0,0xf7,0xff,0xff]
+          vpaddsw -2064(%rdx), %xmm23, %xmm23
+
+// CHECK: vpaddsw %ymm19, %ymm22, %ymm29
+// CHECK:  encoding: [0x62,0x21,0x4d,0x20,0xed,0xeb]
+          vpaddsw %ymm19, %ymm22, %ymm29
+
+// CHECK: vpaddsw %ymm19, %ymm22, %ymm29 {%k6}
+// CHECK:  encoding: [0x62,0x21,0x4d,0x26,0xed,0xeb]
+          vpaddsw %ymm19, %ymm22, %ymm29 {%k6}
+
+// CHECK: vpaddsw %ymm19, %ymm22, %ymm29 {%k6} {z}
+// CHECK:  encoding: [0x62,0x21,0x4d,0xa6,0xed,0xeb]
+          vpaddsw %ymm19, %ymm22, %ymm29 {%k6} {z}
+
+// CHECK: vpaddsw (%rcx), %ymm22, %ymm29
+// CHECK:  encoding: [0x62,0x61,0x4d,0x20,0xed,0x29]
+          vpaddsw (%rcx), %ymm22, %ymm29
+
+// CHECK: vpaddsw 4660(%rax,%r14,8), %ymm22, %ymm29
+// CHECK:  encoding: [0x62,0x21,0x4d,0x20,0xed,0xac,0xf0,0x34,0x12,0x00,0x00]
+          vpaddsw 4660(%rax,%r14,8), %ymm22, %ymm29
+
+// CHECK: vpaddsw 4064(%rdx), %ymm22, %ymm29
+// CHECK:  encoding: [0x62,0x61,0x4d,0x20,0xed,0x6a,0x7f]
+          vpaddsw 4064(%rdx), %ymm22, %ymm29
+
+// CHECK: vpaddsw 4096(%rdx), %ymm22, %ymm29
+// CHECK:  encoding: [0x62,0x61,0x4d,0x20,0xed,0xaa,0x00,0x10,0x00,0x00]
+          vpaddsw 4096(%rdx), %ymm22, %ymm29
+
+// CHECK: vpaddsw -4096(%rdx), %ymm22, %ymm29
+// CHECK:  encoding: [0x62,0x61,0x4d,0x20,0xed,0x6a,0x80]
+          vpaddsw -4096(%rdx), %ymm22, %ymm29
+
+// CHECK: vpaddsw -4128(%rdx), %ymm22, %ymm29
+// CHECK:  encoding: [0x62,0x61,0x4d,0x20,0xed,0xaa,0xe0,0xef,0xff,0xff]
+          vpaddsw -4128(%rdx), %ymm22, %ymm29
+
+// CHECK: vpaddusb %xmm26, %xmm18, %xmm20
+// CHECK:  encoding: [0x62,0x81,0x6d,0x00,0xdc,0xe2]
+          vpaddusb %xmm26, %xmm18, %xmm20
+
+// CHECK: vpaddusb %xmm26, %xmm18, %xmm20 {%k6}
+// CHECK:  encoding: [0x62,0x81,0x6d,0x06,0xdc,0xe2]
+          vpaddusb %xmm26, %xmm18, %xmm20 {%k6}
+
+// CHECK: vpaddusb %xmm26, %xmm18, %xmm20 {%k6} {z}
+// CHECK:  encoding: [0x62,0x81,0x6d,0x86,0xdc,0xe2]
+          vpaddusb %xmm26, %xmm18, %xmm20 {%k6} {z}
+
+// CHECK: vpaddusb (%rcx), %xmm18, %xmm20
+// CHECK:  encoding: [0x62,0xe1,0x6d,0x00,0xdc,0x21]
+          vpaddusb (%rcx), %xmm18, %xmm20
+
+// CHECK: vpaddusb 4660(%rax,%r14,8), %xmm18, %xmm20
+// CHECK:  encoding: [0x62,0xa1,0x6d,0x00,0xdc,0xa4,0xf0,0x34,0x12,0x00,0x00]
+          vpaddusb 4660(%rax,%r14,8), %xmm18, %xmm20
+
+// CHECK: vpaddusb 2032(%rdx), %xmm18, %xmm20
+// CHECK:  encoding: [0x62,0xe1,0x6d,0x00,0xdc,0x62,0x7f]
+          vpaddusb 2032(%rdx), %xmm18, %xmm20
+
+// CHECK: vpaddusb 2048(%rdx), %xmm18, %xmm20
+// CHECK:  encoding: [0x62,0xe1,0x6d,0x00,0xdc,0xa2,0x00,0x08,0x00,0x00]
+          vpaddusb 2048(%rdx), %xmm18, %xmm20
+
+// CHECK: vpaddusb -2048(%rdx), %xmm18, %xmm20
+// CHECK:  encoding: [0x62,0xe1,0x6d,0x00,0xdc,0x62,0x80]
+          vpaddusb -2048(%rdx), %xmm18, %xmm20
+
+// CHECK: vpaddusb -2064(%rdx), %xmm18, %xmm20
+// CHECK:  encoding: [0x62,0xe1,0x6d,0x00,0xdc,0xa2,0xf0,0xf7,0xff,0xff]
+          vpaddusb -2064(%rdx), %xmm18, %xmm20
+
+// CHECK: vpaddusb %ymm24, %ymm26, %ymm25
+// CHECK:  encoding: [0x62,0x01,0x2d,0x20,0xdc,0xc8]
+          vpaddusb %ymm24, %ymm26, %ymm25
+
+// CHECK: vpaddusb %ymm24, %ymm26, %ymm25 {%k3}
+// CHECK:  encoding: [0x62,0x01,0x2d,0x23,0xdc,0xc8]
+          vpaddusb %ymm24, %ymm26, %ymm25 {%k3}
+
+// CHECK: vpaddusb %ymm24, %ymm26, %ymm25 {%k3} {z}
+// CHECK:  encoding: [0x62,0x01,0x2d,0xa3,0xdc,0xc8]
+          vpaddusb %ymm24, %ymm26, %ymm25 {%k3} {z}
+
+// CHECK: vpaddusb (%rcx), %ymm26, %ymm25
+// CHECK:  encoding: [0x62,0x61,0x2d,0x20,0xdc,0x09]
+          vpaddusb (%rcx), %ymm26, %ymm25
+
+// CHECK: vpaddusb 4660(%rax,%r14,8), %ymm26, %ymm25
+// CHECK:  encoding: [0x62,0x21,0x2d,0x20,0xdc,0x8c,0xf0,0x34,0x12,0x00,0x00]
+          vpaddusb 4660(%rax,%r14,8), %ymm26, %ymm25
+
+// CHECK: vpaddusb 4064(%rdx), %ymm26, %ymm25
+// CHECK:  encoding: [0x62,0x61,0x2d,0x20,0xdc,0x4a,0x7f]
+          vpaddusb 4064(%rdx), %ymm26, %ymm25
+
+// CHECK: vpaddusb 4096(%rdx), %ymm26, %ymm25
+// CHECK:  encoding: [0x62,0x61,0x2d,0x20,0xdc,0x8a,0x00,0x10,0x00,0x00]
+          vpaddusb 4096(%rdx), %ymm26, %ymm25
+
+// CHECK: vpaddusb -4096(%rdx), %ymm26, %ymm25
+// CHECK:  encoding: [0x62,0x61,0x2d,0x20,0xdc,0x4a,0x80]
+          vpaddusb -4096(%rdx), %ymm26, %ymm25
+
+// CHECK: vpaddusb -4128(%rdx), %ymm26, %ymm25
+// CHECK:  encoding: [0x62,0x61,0x2d,0x20,0xdc,0x8a,0xe0,0xef,0xff,0xff]
+          vpaddusb -4128(%rdx), %ymm26, %ymm25
+
+// CHECK: vpaddusw %xmm24, %xmm29, %xmm28
+// CHECK:  encoding: [0x62,0x01,0x15,0x00,0xdd,0xe0]
+          vpaddusw %xmm24, %xmm29, %xmm28
+
+// CHECK: vpaddusw %xmm24, %xmm29, %xmm28 {%k4}
+// CHECK:  encoding: [0x62,0x01,0x15,0x04,0xdd,0xe0]
+          vpaddusw %xmm24, %xmm29, %xmm28 {%k4}
+
+// CHECK: vpaddusw %xmm24, %xmm29, %xmm28 {%k4} {z}
+// CHECK:  encoding: [0x62,0x01,0x15,0x84,0xdd,0xe0]
+          vpaddusw %xmm24, %xmm29, %xmm28 {%k4} {z}
+
+// CHECK: vpaddusw (%rcx), %xmm29, %xmm28
+// CHECK:  encoding: [0x62,0x61,0x15,0x00,0xdd,0x21]
+          vpaddusw (%rcx), %xmm29, %xmm28
+
+// CHECK: vpaddusw 4660(%rax,%r14,8), %xmm29, %xmm28
+// CHECK:  encoding: [0x62,0x21,0x15,0x00,0xdd,0xa4,0xf0,0x34,0x12,0x00,0x00]
+          vpaddusw 4660(%rax,%r14,8), %xmm29, %xmm28
+
+// CHECK: vpaddusw 2032(%rdx), %xmm29, %xmm28
+// CHECK:  encoding: [0x62,0x61,0x15,0x00,0xdd,0x62,0x7f]
+          vpaddusw 2032(%rdx), %xmm29, %xmm28
+
+// CHECK: vpaddusw 2048(%rdx), %xmm29, %xmm28
+// CHECK:  encoding: [0x62,0x61,0x15,0x00,0xdd,0xa2,0x00,0x08,0x00,0x00]
+          vpaddusw 2048(%rdx), %xmm29, %xmm28
+
+// CHECK: vpaddusw -2048(%rdx), %xmm29, %xmm28
+// CHECK:  encoding: [0x62,0x61,0x15,0x00,0xdd,0x62,0x80]
+          vpaddusw -2048(%rdx), %xmm29, %xmm28
+
+// CHECK: vpaddusw -2064(%rdx), %xmm29, %xmm28
+// CHECK:  encoding: [0x62,0x61,0x15,0x00,0xdd,0xa2,0xf0,0xf7,0xff,0xff]
+          vpaddusw -2064(%rdx), %xmm29, %xmm28
+
+// CHECK: vpaddusw %ymm22, %ymm26, %ymm27
+// CHECK:  encoding: [0x62,0x21,0x2d,0x20,0xdd,0xde]
+          vpaddusw %ymm22, %ymm26, %ymm27
+
+// CHECK: vpaddusw %ymm22, %ymm26, %ymm27 {%k3}
+// CHECK:  encoding: [0x62,0x21,0x2d,0x23,0xdd,0xde]
+          vpaddusw %ymm22, %ymm26, %ymm27 {%k3}
+
+// CHECK: vpaddusw %ymm22, %ymm26, %ymm27 {%k3} {z}
+// CHECK:  encoding: [0x62,0x21,0x2d,0xa3,0xdd,0xde]
+          vpaddusw %ymm22, %ymm26, %ymm27 {%k3} {z}
+
+// CHECK: vpaddusw (%rcx), %ymm26, %ymm27
+// CHECK:  encoding: [0x62,0x61,0x2d,0x20,0xdd,0x19]
+          vpaddusw (%rcx), %ymm26, %ymm27
+
+// CHECK: vpaddusw 4660(%rax,%r14,8), %ymm26, %ymm27
+// CHECK:  encoding: [0x62,0x21,0x2d,0x20,0xdd,0x9c,0xf0,0x34,0x12,0x00,0x00]
+          vpaddusw 4660(%rax,%r14,8), %ymm26, %ymm27
+
+// CHECK: vpaddusw 4064(%rdx), %ymm26, %ymm27
+// CHECK:  encoding: [0x62,0x61,0x2d,0x20,0xdd,0x5a,0x7f]
+          vpaddusw 4064(%rdx), %ymm26, %ymm27
+
+// CHECK: vpaddusw 4096(%rdx), %ymm26, %ymm27
+// CHECK:  encoding: [0x62,0x61,0x2d,0x20,0xdd,0x9a,0x00,0x10,0x00,0x00]
+          vpaddusw 4096(%rdx), %ymm26, %ymm27
+
+// CHECK: vpaddusw -4096(%rdx), %ymm26, %ymm27
+// CHECK:  encoding: [0x62,0x61,0x2d,0x20,0xdd,0x5a,0x80]
+          vpaddusw -4096(%rdx), %ymm26, %ymm27
+
+// CHECK: vpaddusw -4128(%rdx), %ymm26, %ymm27
+// CHECK:  encoding: [0x62,0x61,0x2d,0x20,0xdd,0x9a,0xe0,0xef,0xff,0xff]
+          vpaddusw -4128(%rdx), %ymm26, %ymm27
+
+// CHECK: vpsubsb %xmm18, %xmm22, %xmm23
+// CHECK:  encoding: [0x62,0xa1,0x4d,0x00,0xe8,0xfa]
+          vpsubsb %xmm18, %xmm22, %xmm23
+
+// CHECK: vpsubsb %xmm18, %xmm22, %xmm23 {%k5}
+// CHECK:  encoding: [0x62,0xa1,0x4d,0x05,0xe8,0xfa]
+          vpsubsb %xmm18, %xmm22, %xmm23 {%k5}
+
+// CHECK: vpsubsb %xmm18, %xmm22, %xmm23 {%k5} {z}
+// CHECK:  encoding: [0x62,0xa1,0x4d,0x85,0xe8,0xfa]
+          vpsubsb %xmm18, %xmm22, %xmm23 {%k5} {z}
+
+// CHECK: vpsubsb (%rcx), %xmm22, %xmm23
+// CHECK:  encoding: [0x62,0xe1,0x4d,0x00,0xe8,0x39]
+          vpsubsb (%rcx), %xmm22, %xmm23
+
+// CHECK: vpsubsb 4660(%rax,%r14,8), %xmm22, %xmm23
+// CHECK:  encoding: [0x62,0xa1,0x4d,0x00,0xe8,0xbc,0xf0,0x34,0x12,0x00,0x00]
+          vpsubsb 4660(%rax,%r14,8), %xmm22, %xmm23
+
+// CHECK: vpsubsb 2032(%rdx), %xmm22, %xmm23
+// CHECK:  encoding: [0x62,0xe1,0x4d,0x00,0xe8,0x7a,0x7f]
+          vpsubsb 2032(%rdx), %xmm22, %xmm23
+
+// CHECK: vpsubsb 2048(%rdx), %xmm22, %xmm23
+// CHECK:  encoding: [0x62,0xe1,0x4d,0x00,0xe8,0xba,0x00,0x08,0x00,0x00]
+          vpsubsb 2048(%rdx), %xmm22, %xmm23
+
+// CHECK: vpsubsb -2048(%rdx), %xmm22, %xmm23
+// CHECK:  encoding: [0x62,0xe1,0x4d,0x00,0xe8,0x7a,0x80]
+          vpsubsb -2048(%rdx), %xmm22, %xmm23
+
+// CHECK: vpsubsb -2064(%rdx), %xmm22, %xmm23
+// CHECK:  encoding: [0x62,0xe1,0x4d,0x00,0xe8,0xba,0xf0,0xf7,0xff,0xff]
+          vpsubsb -2064(%rdx), %xmm22, %xmm23
+
+// CHECK: vpsubsb %ymm24, %ymm21, %ymm28
+// CHECK:  encoding: [0x62,0x01,0x55,0x20,0xe8,0xe0]
+          vpsubsb %ymm24, %ymm21, %ymm28
+
+// CHECK: vpsubsb %ymm24, %ymm21, %ymm28 {%k5}
+// CHECK:  encoding: [0x62,0x01,0x55,0x25,0xe8,0xe0]
+          vpsubsb %ymm24, %ymm21, %ymm28 {%k5}
+
+// CHECK: vpsubsb %ymm24, %ymm21, %ymm28 {%k5} {z}
+// CHECK:  encoding: [0x62,0x01,0x55,0xa5,0xe8,0xe0]
+          vpsubsb %ymm24, %ymm21, %ymm28 {%k5} {z}
+
+// CHECK: vpsubsb (%rcx), %ymm21, %ymm28
+// CHECK:  encoding: [0x62,0x61,0x55,0x20,0xe8,0x21]
+          vpsubsb (%rcx), %ymm21, %ymm28
+
+// CHECK: vpsubsb 4660(%rax,%r14,8), %ymm21, %ymm28
+// CHECK:  encoding: [0x62,0x21,0x55,0x20,0xe8,0xa4,0xf0,0x34,0x12,0x00,0x00]
+          vpsubsb 4660(%rax,%r14,8), %ymm21, %ymm28
+
+// CHECK: vpsubsb 4064(%rdx), %ymm21, %ymm28
+// CHECK:  encoding: [0x62,0x61,0x55,0x20,0xe8,0x62,0x7f]
+          vpsubsb 4064(%rdx), %ymm21, %ymm28
+
+// CHECK: vpsubsb 4096(%rdx), %ymm21, %ymm28
+// CHECK:  encoding: [0x62,0x61,0x55,0x20,0xe8,0xa2,0x00,0x10,0x00,0x00]
+          vpsubsb 4096(%rdx), %ymm21, %ymm28
+
+// CHECK: vpsubsb -4096(%rdx), %ymm21, %ymm28
+// CHECK:  encoding: [0x62,0x61,0x55,0x20,0xe8,0x62,0x80]
+          vpsubsb -4096(%rdx), %ymm21, %ymm28
+
+// CHECK: vpsubsb -4128(%rdx), %ymm21, %ymm28
+// CHECK:  encoding: [0x62,0x61,0x55,0x20,0xe8,0xa2,0xe0,0xef,0xff,0xff]
+          vpsubsb -4128(%rdx), %ymm21, %ymm28
+
+// CHECK: vpsubsw %xmm18, %xmm27, %xmm19
+// CHECK:  encoding: [0x62,0xa1,0x25,0x00,0xe9,0xda]
+          vpsubsw %xmm18, %xmm27, %xmm19
+
+// CHECK: vpsubsw %xmm18, %xmm27, %xmm19 {%k4}
+// CHECK:  encoding: [0x62,0xa1,0x25,0x04,0xe9,0xda]
+          vpsubsw %xmm18, %xmm27, %xmm19 {%k4}
+
+// CHECK: vpsubsw %xmm18, %xmm27, %xmm19 {%k4} {z}
+// CHECK:  encoding: [0x62,0xa1,0x25,0x84,0xe9,0xda]
+          vpsubsw %xmm18, %xmm27, %xmm19 {%k4} {z}
+
+// CHECK: vpsubsw (%rcx), %xmm27, %xmm19
+// CHECK:  encoding: [0x62,0xe1,0x25,0x00,0xe9,0x19]
+          vpsubsw (%rcx), %xmm27, %xmm19
+
+// CHECK: vpsubsw 4660(%rax,%r14,8), %xmm27, %xmm19
+// CHECK:  encoding: [0x62,0xa1,0x25,0x00,0xe9,0x9c,0xf0,0x34,0x12,0x00,0x00]
+          vpsubsw 4660(%rax,%r14,8), %xmm27, %xmm19
+
+// CHECK: vpsubsw 2032(%rdx), %xmm27, %xmm19
+// CHECK:  encoding: [0x62,0xe1,0x25,0x00,0xe9,0x5a,0x7f]
+          vpsubsw 2032(%rdx), %xmm27, %xmm19
+
+// CHECK: vpsubsw 2048(%rdx), %xmm27, %xmm19
+// CHECK:  encoding: [0x62,0xe1,0x25,0x00,0xe9,0x9a,0x00,0x08,0x00,0x00]
+          vpsubsw 2048(%rdx), %xmm27, %xmm19
+
+// CHECK: vpsubsw -2048(%rdx), %xmm27, %xmm19
+// CHECK:  encoding: [0x62,0xe1,0x25,0x00,0xe9,0x5a,0x80]
+          vpsubsw -2048(%rdx), %xmm27, %xmm19
+
+// CHECK: vpsubsw -2064(%rdx), %xmm27, %xmm19
+// CHECK:  encoding: [0x62,0xe1,0x25,0x00,0xe9,0x9a,0xf0,0xf7,0xff,0xff]
+          vpsubsw -2064(%rdx), %xmm27, %xmm19
+
+// CHECK: vpsubsw %ymm25, %ymm29, %ymm18
+// CHECK:  encoding: [0x62,0x81,0x15,0x20,0xe9,0xd1]
+          vpsubsw %ymm25, %ymm29, %ymm18
+
+// CHECK: vpsubsw %ymm25, %ymm29, %ymm18 {%k5}
+// CHECK:  encoding: [0x62,0x81,0x15,0x25,0xe9,0xd1]
+          vpsubsw %ymm25, %ymm29, %ymm18 {%k5}
+
+// CHECK: vpsubsw %ymm25, %ymm29, %ymm18 {%k5} {z}
+// CHECK:  encoding: [0x62,0x81,0x15,0xa5,0xe9,0xd1]
+          vpsubsw %ymm25, %ymm29, %ymm18 {%k5} {z}
+
+// CHECK: vpsubsw (%rcx), %ymm29, %ymm18
+// CHECK:  encoding: [0x62,0xe1,0x15,0x20,0xe9,0x11]
+          vpsubsw (%rcx), %ymm29, %ymm18
+
+// CHECK: vpsubsw 4660(%rax,%r14,8), %ymm29, %ymm18
+// CHECK:  encoding: [0x62,0xa1,0x15,0x20,0xe9,0x94,0xf0,0x34,0x12,0x00,0x00]
+          vpsubsw 4660(%rax,%r14,8), %ymm29, %ymm18
+
+// CHECK: vpsubsw 4064(%rdx), %ymm29, %ymm18
+// CHECK:  encoding: [0x62,0xe1,0x15,0x20,0xe9,0x52,0x7f]
+          vpsubsw 4064(%rdx), %ymm29, %ymm18
+
+// CHECK: vpsubsw 4096(%rdx), %ymm29, %ymm18
+// CHECK:  encoding: [0x62,0xe1,0x15,0x20,0xe9,0x92,0x00,0x10,0x00,0x00]
+          vpsubsw 4096(%rdx), %ymm29, %ymm18
+
+// CHECK: vpsubsw -4096(%rdx), %ymm29, %ymm18
+// CHECK:  encoding: [0x62,0xe1,0x15,0x20,0xe9,0x52,0x80]
+          vpsubsw -4096(%rdx), %ymm29, %ymm18
+
+// CHECK: vpsubsw -4128(%rdx), %ymm29, %ymm18
+// CHECK:  encoding: [0x62,0xe1,0x15,0x20,0xe9,0x92,0xe0,0xef,0xff,0xff]
+          vpsubsw -4128(%rdx), %ymm29, %ymm18
+
+// CHECK: vpsubusb %xmm23, %xmm26, %xmm20
+// CHECK:  encoding: [0x62,0xa1,0x2d,0x00,0xd8,0xe7]
+          vpsubusb %xmm23, %xmm26, %xmm20
+
+// CHECK: vpsubusb %xmm23, %xmm26, %xmm20 {%k5}
+// CHECK:  encoding: [0x62,0xa1,0x2d,0x05,0xd8,0xe7]
+          vpsubusb %xmm23, %xmm26, %xmm20 {%k5}
+
+// CHECK: vpsubusb %xmm23, %xmm26, %xmm20 {%k5} {z}
+// CHECK:  encoding: [0x62,0xa1,0x2d,0x85,0xd8,0xe7]
+          vpsubusb %xmm23, %xmm26, %xmm20 {%k5} {z}
+
+// CHECK: vpsubusb (%rcx), %xmm26, %xmm20
+// CHECK:  encoding: [0x62,0xe1,0x2d,0x00,0xd8,0x21]
+          vpsubusb (%rcx), %xmm26, %xmm20
+
+// CHECK: vpsubusb 4660(%rax,%r14,8), %xmm26, %xmm20
+// CHECK:  encoding: [0x62,0xa1,0x2d,0x00,0xd8,0xa4,0xf0,0x34,0x12,0x00,0x00]
+          vpsubusb 4660(%rax,%r14,8), %xmm26, %xmm20
+
+// CHECK: vpsubusb 2032(%rdx), %xmm26, %xmm20
+// CHECK:  encoding: [0x62,0xe1,0x2d,0x00,0xd8,0x62,0x7f]
+          vpsubusb 2032(%rdx), %xmm26, %xmm20
+
+// CHECK: vpsubusb 2048(%rdx), %xmm26, %xmm20
+// CHECK:  encoding: [0x62,0xe1,0x2d,0x00,0xd8,0xa2,0x00,0x08,0x00,0x00]
+          vpsubusb 2048(%rdx), %xmm26, %xmm20
+
+// CHECK: vpsubusb -2048(%rdx), %xmm26, %xmm20
+// CHECK:  encoding: [0x62,0xe1,0x2d,0x00,0xd8,0x62,0x80]
+          vpsubusb -2048(%rdx), %xmm26, %xmm20
+
+// CHECK: vpsubusb -2064(%rdx), %xmm26, %xmm20
+// CHECK:  encoding: [0x62,0xe1,0x2d,0x00,0xd8,0xa2,0xf0,0xf7,0xff,0xff]
+          vpsubusb -2064(%rdx), %xmm26, %xmm20
+
+// CHECK: vpsubusb %ymm19, %ymm28, %ymm30
+// CHECK:  encoding: [0x62,0x21,0x1d,0x20,0xd8,0xf3]
+          vpsubusb %ymm19, %ymm28, %ymm30
+
+// CHECK: vpsubusb %ymm19, %ymm28, %ymm30 {%k3}
+// CHECK:  encoding: [0x62,0x21,0x1d,0x23,0xd8,0xf3]
+          vpsubusb %ymm19, %ymm28, %ymm30 {%k3}
+
+// CHECK: vpsubusb %ymm19, %ymm28, %ymm30 {%k3} {z}
+// CHECK:  encoding: [0x62,0x21,0x1d,0xa3,0xd8,0xf3]
+          vpsubusb %ymm19, %ymm28, %ymm30 {%k3} {z}
+
+// CHECK: vpsubusb (%rcx), %ymm28, %ymm30
+// CHECK:  encoding: [0x62,0x61,0x1d,0x20,0xd8,0x31]
+          vpsubusb (%rcx), %ymm28, %ymm30
+
+// CHECK: vpsubusb 4660(%rax,%r14,8), %ymm28, %ymm30
+// CHECK:  encoding: [0x62,0x21,0x1d,0x20,0xd8,0xb4,0xf0,0x34,0x12,0x00,0x00]
+          vpsubusb 4660(%rax,%r14,8), %ymm28, %ymm30
+
+// CHECK: vpsubusb 4064(%rdx), %ymm28, %ymm30
+// CHECK:  encoding: [0x62,0x61,0x1d,0x20,0xd8,0x72,0x7f]
+          vpsubusb 4064(%rdx), %ymm28, %ymm30
+
+// CHECK: vpsubusb 4096(%rdx), %ymm28, %ymm30
+// CHECK:  encoding: [0x62,0x61,0x1d,0x20,0xd8,0xb2,0x00,0x10,0x00,0x00]
+          vpsubusb 4096(%rdx), %ymm28, %ymm30
+
+// CHECK: vpsubusb -4096(%rdx), %ymm28, %ymm30
+// CHECK:  encoding: [0x62,0x61,0x1d,0x20,0xd8,0x72,0x80]
+          vpsubusb -4096(%rdx), %ymm28, %ymm30
+
+// CHECK: vpsubusb -4128(%rdx), %ymm28, %ymm30
+// CHECK:  encoding: [0x62,0x61,0x1d,0x20,0xd8,0xb2,0xe0,0xef,0xff,0xff]
+          vpsubusb -4128(%rdx), %ymm28, %ymm30
+
+// CHECK: vpsubusw %xmm21, %xmm23, %xmm26
+// CHECK:  encoding: [0x62,0x21,0x45,0x00,0xd9,0xd5]
+          vpsubusw %xmm21, %xmm23, %xmm26
+
+// CHECK: vpsubusw %xmm21, %xmm23, %xmm26 {%k6}
+// CHECK:  encoding: [0x62,0x21,0x45,0x06,0xd9,0xd5]
+          vpsubusw %xmm21, %xmm23, %xmm26 {%k6}
+
+// CHECK: vpsubusw %xmm21, %xmm23, %xmm26 {%k6} {z}
+// CHECK:  encoding: [0x62,0x21,0x45,0x86,0xd9,0xd5]
+          vpsubusw %xmm21, %xmm23, %xmm26 {%k6} {z}
+
+// CHECK: vpsubusw (%rcx), %xmm23, %xmm26
+// CHECK:  encoding: [0x62,0x61,0x45,0x00,0xd9,0x11]
+          vpsubusw (%rcx), %xmm23, %xmm26
+
+// CHECK: vpsubusw 4660(%rax,%r14,8), %xmm23, %xmm26
+// CHECK:  encoding: [0x62,0x21,0x45,0x00,0xd9,0x94,0xf0,0x34,0x12,0x00,0x00]
+          vpsubusw 4660(%rax,%r14,8), %xmm23, %xmm26
+
+// CHECK: vpsubusw 2032(%rdx), %xmm23, %xmm26
+// CHECK:  encoding: [0x62,0x61,0x45,0x00,0xd9,0x52,0x7f]
+          vpsubusw 2032(%rdx), %xmm23, %xmm26
+
+// CHECK: vpsubusw 2048(%rdx), %xmm23, %xmm26
+// CHECK:  encoding: [0x62,0x61,0x45,0x00,0xd9,0x92,0x00,0x08,0x00,0x00]
+          vpsubusw 2048(%rdx), %xmm23, %xmm26
+
+// CHECK: vpsubusw -2048(%rdx), %xmm23, %xmm26
+// CHECK:  encoding: [0x62,0x61,0x45,0x00,0xd9,0x52,0x80]
+          vpsubusw -2048(%rdx), %xmm23, %xmm26
+
+// CHECK: vpsubusw -2064(%rdx), %xmm23, %xmm26
+// CHECK:  encoding: [0x62,0x61,0x45,0x00,0xd9,0x92,0xf0,0xf7,0xff,0xff]
+          vpsubusw -2064(%rdx), %xmm23, %xmm26
+
+// CHECK: vpsubusw %ymm24, %ymm20, %ymm25
+// CHECK:  encoding: [0x62,0x01,0x5d,0x20,0xd9,0xc8]
+          vpsubusw %ymm24, %ymm20, %ymm25
+
+// CHECK: vpsubusw %ymm24, %ymm20, %ymm25 {%k1}
+// CHECK:  encoding: [0x62,0x01,0x5d,0x21,0xd9,0xc8]
+          vpsubusw %ymm24, %ymm20, %ymm25 {%k1}
+
+// CHECK: vpsubusw %ymm24, %ymm20, %ymm25 {%k1} {z}
+// CHECK:  encoding: [0x62,0x01,0x5d,0xa1,0xd9,0xc8]
+          vpsubusw %ymm24, %ymm20, %ymm25 {%k1} {z}
+
+// CHECK: vpsubusw (%rcx), %ymm20, %ymm25
+// CHECK:  encoding: [0x62,0x61,0x5d,0x20,0xd9,0x09]
+          vpsubusw (%rcx), %ymm20, %ymm25
+
+// CHECK: vpsubusw 4660(%rax,%r14,8), %ymm20, %ymm25
+// CHECK:  encoding: [0x62,0x21,0x5d,0x20,0xd9,0x8c,0xf0,0x34,0x12,0x00,0x00]
+          vpsubusw 4660(%rax,%r14,8), %ymm20, %ymm25
+
+// CHECK: vpsubusw 4064(%rdx), %ymm20, %ymm25
+// CHECK:  encoding: [0x62,0x61,0x5d,0x20,0xd9,0x4a,0x7f]
+          vpsubusw 4064(%rdx), %ymm20, %ymm25
+
+// CHECK: vpsubusw 4096(%rdx), %ymm20, %ymm25
+// CHECK:  encoding: [0x62,0x61,0x5d,0x20,0xd9,0x8a,0x00,0x10,0x00,0x00]
+          vpsubusw 4096(%rdx), %ymm20, %ymm25
+
+// CHECK: vpsubusw -4096(%rdx), %ymm20, %ymm25
+// CHECK:  encoding: [0x62,0x61,0x5d,0x20,0xd9,0x4a,0x80]
+          vpsubusw -4096(%rdx), %ymm20, %ymm25
+
+// CHECK: vpsubusw -4128(%rdx), %ymm20, %ymm25
+// CHECK:  encoding: [0x62,0x61,0x5d,0x20,0xd9,0x8a,0xe0,0xef,0xff,0xff]
+          vpsubusw -4128(%rdx), %ymm20, %ymm25
+
+// CHECK: vpaddsb %xmm25, %xmm19, %xmm30
+// CHECK:  encoding: [0x62,0x01,0x65,0x00,0xec,0xf1]
+          vpaddsb %xmm25, %xmm19, %xmm30
+
+// CHECK: vpaddsb %xmm25, %xmm19, %xmm30 {%k6}
+// CHECK:  encoding: [0x62,0x01,0x65,0x06,0xec,0xf1]
+          vpaddsb %xmm25, %xmm19, %xmm30 {%k6}
+
+// CHECK: vpaddsb %xmm25, %xmm19, %xmm30 {%k6} {z}
+// CHECK:  encoding: [0x62,0x01,0x65,0x86,0xec,0xf1]
+          vpaddsb %xmm25, %xmm19, %xmm30 {%k6} {z}
+
+// CHECK: vpaddsb (%rcx), %xmm19, %xmm30
+// CHECK:  encoding: [0x62,0x61,0x65,0x00,0xec,0x31]
+          vpaddsb (%rcx), %xmm19, %xmm30
+
+// CHECK: vpaddsb 291(%rax,%r14,8), %xmm19, %xmm30
+// CHECK:  encoding: [0x62,0x21,0x65,0x00,0xec,0xb4,0xf0,0x23,0x01,0x00,0x00]
+          vpaddsb 291(%rax,%r14,8), %xmm19, %xmm30
+
+// CHECK: vpaddsb 2032(%rdx), %xmm19, %xmm30
+// CHECK:  encoding: [0x62,0x61,0x65,0x00,0xec,0x72,0x7f]
+          vpaddsb 2032(%rdx), %xmm19, %xmm30
+
+// CHECK: vpaddsb 2048(%rdx), %xmm19, %xmm30
+// CHECK:  encoding: [0x62,0x61,0x65,0x00,0xec,0xb2,0x00,0x08,0x00,0x00]
+          vpaddsb 2048(%rdx), %xmm19, %xmm30
+
+// CHECK: vpaddsb -2048(%rdx), %xmm19, %xmm30
+// CHECK:  encoding: [0x62,0x61,0x65,0x00,0xec,0x72,0x80]
+          vpaddsb -2048(%rdx), %xmm19, %xmm30
+
+// CHECK: vpaddsb -2064(%rdx), %xmm19, %xmm30
+// CHECK:  encoding: [0x62,0x61,0x65,0x00,0xec,0xb2,0xf0,0xf7,0xff,0xff]
+          vpaddsb -2064(%rdx), %xmm19, %xmm30
+
+// CHECK: vpaddsb %ymm28, %ymm29, %ymm22
+// CHECK:  encoding: [0x62,0x81,0x15,0x20,0xec,0xf4]
+          vpaddsb %ymm28, %ymm29, %ymm22
+
+// CHECK: vpaddsb %ymm28, %ymm29, %ymm22 {%k4}
+// CHECK:  encoding: [0x62,0x81,0x15,0x24,0xec,0xf4]
+          vpaddsb %ymm28, %ymm29, %ymm22 {%k4}
+
+// CHECK: vpaddsb %ymm28, %ymm29, %ymm22 {%k4} {z}
+// CHECK:  encoding: [0x62,0x81,0x15,0xa4,0xec,0xf4]
+          vpaddsb %ymm28, %ymm29, %ymm22 {%k4} {z}
+
+// CHECK: vpaddsb (%rcx), %ymm29, %ymm22
+// CHECK:  encoding: [0x62,0xe1,0x15,0x20,0xec,0x31]
+          vpaddsb (%rcx), %ymm29, %ymm22
+
+// CHECK: vpaddsb 291(%rax,%r14,8), %ymm29, %ymm22
+// CHECK:  encoding: [0x62,0xa1,0x15,0x20,0xec,0xb4,0xf0,0x23,0x01,0x00,0x00]
+          vpaddsb 291(%rax,%r14,8), %ymm29, %ymm22
+
+// CHECK: vpaddsb 4064(%rdx), %ymm29, %ymm22
+// CHECK:  encoding: [0x62,0xe1,0x15,0x20,0xec,0x72,0x7f]
+          vpaddsb 4064(%rdx), %ymm29, %ymm22
+
+// CHECK: vpaddsb 4096(%rdx), %ymm29, %ymm22
+// CHECK:  encoding: [0x62,0xe1,0x15,0x20,0xec,0xb2,0x00,0x10,0x00,0x00]
+          vpaddsb 4096(%rdx), %ymm29, %ymm22
+
+// CHECK: vpaddsb -4096(%rdx), %ymm29, %ymm22
+// CHECK:  encoding: [0x62,0xe1,0x15,0x20,0xec,0x72,0x80]
+          vpaddsb -4096(%rdx), %ymm29, %ymm22
+
+// CHECK: vpaddsb -4128(%rdx), %ymm29, %ymm22
+// CHECK:  encoding: [0x62,0xe1,0x15,0x20,0xec,0xb2,0xe0,0xef,0xff,0xff]
+          vpaddsb -4128(%rdx), %ymm29, %ymm22
+
+// CHECK: vpaddsw %xmm19, %xmm19, %xmm20
+// CHECK:  encoding: [0x62,0xa1,0x65,0x00,0xed,0xe3]
+          vpaddsw %xmm19, %xmm19, %xmm20
+
+// CHECK: vpaddsw %xmm19, %xmm19, %xmm20 {%k7}
+// CHECK:  encoding: [0x62,0xa1,0x65,0x07,0xed,0xe3]
+          vpaddsw %xmm19, %xmm19, %xmm20 {%k7}
+
+// CHECK: vpaddsw %xmm19, %xmm19, %xmm20 {%k7} {z}
+// CHECK:  encoding: [0x62,0xa1,0x65,0x87,0xed,0xe3]
+          vpaddsw %xmm19, %xmm19, %xmm20 {%k7} {z}
+
+// CHECK: vpaddsw (%rcx), %xmm19, %xmm20
+// CHECK:  encoding: [0x62,0xe1,0x65,0x00,0xed,0x21]
+          vpaddsw (%rcx), %xmm19, %xmm20
+
+// CHECK: vpaddsw 291(%rax,%r14,8), %xmm19, %xmm20
+// CHECK:  encoding: [0x62,0xa1,0x65,0x00,0xed,0xa4,0xf0,0x23,0x01,0x00,0x00]
+          vpaddsw 291(%rax,%r14,8), %xmm19, %xmm20
+
+// CHECK: vpaddsw 2032(%rdx), %xmm19, %xmm20
+// CHECK:  encoding: [0x62,0xe1,0x65,0x00,0xed,0x62,0x7f]
+          vpaddsw 2032(%rdx), %xmm19, %xmm20
+
+// CHECK: vpaddsw 2048(%rdx), %xmm19, %xmm20
+// CHECK:  encoding: [0x62,0xe1,0x65,0x00,0xed,0xa2,0x00,0x08,0x00,0x00]
+          vpaddsw 2048(%rdx), %xmm19, %xmm20
+
+// CHECK: vpaddsw -2048(%rdx), %xmm19, %xmm20
+// CHECK:  encoding: [0x62,0xe1,0x65,0x00,0xed,0x62,0x80]
+          vpaddsw -2048(%rdx), %xmm19, %xmm20
+
+// CHECK: vpaddsw -2064(%rdx), %xmm19, %xmm20
+// CHECK:  encoding: [0x62,0xe1,0x65,0x00,0xed,0xa2,0xf0,0xf7,0xff,0xff]
+          vpaddsw -2064(%rdx), %xmm19, %xmm20
+
+// CHECK: vpaddsw %ymm19, %ymm27, %ymm20
+// CHECK:  encoding: [0x62,0xa1,0x25,0x20,0xed,0xe3]
+          vpaddsw %ymm19, %ymm27, %ymm20
+
+// CHECK: vpaddsw %ymm19, %ymm27, %ymm20 {%k3}
+// CHECK:  encoding: [0x62,0xa1,0x25,0x23,0xed,0xe3]
+          vpaddsw %ymm19, %ymm27, %ymm20 {%k3}
+
+// CHECK: vpaddsw %ymm19, %ymm27, %ymm20 {%k3} {z}
+// CHECK:  encoding: [0x62,0xa1,0x25,0xa3,0xed,0xe3]
+          vpaddsw %ymm19, %ymm27, %ymm20 {%k3} {z}
+
+// CHECK: vpaddsw (%rcx), %ymm27, %ymm20
+// CHECK:  encoding: [0x62,0xe1,0x25,0x20,0xed,0x21]
+          vpaddsw (%rcx), %ymm27, %ymm20
+
+// CHECK: vpaddsw 291(%rax,%r14,8), %ymm27, %ymm20
+// CHECK:  encoding: [0x62,0xa1,0x25,0x20,0xed,0xa4,0xf0,0x23,0x01,0x00,0x00]
+          vpaddsw 291(%rax,%r14,8), %ymm27, %ymm20
+
+// CHECK: vpaddsw 4064(%rdx), %ymm27, %ymm20
+// CHECK:  encoding: [0x62,0xe1,0x25,0x20,0xed,0x62,0x7f]
+          vpaddsw 4064(%rdx), %ymm27, %ymm20
+
+// CHECK: vpaddsw 4096(%rdx), %ymm27, %ymm20
+// CHECK:  encoding: [0x62,0xe1,0x25,0x20,0xed,0xa2,0x00,0x10,0x00,0x00]
+          vpaddsw 4096(%rdx), %ymm27, %ymm20
+
+// CHECK: vpaddsw -4096(%rdx), %ymm27, %ymm20
+// CHECK:  encoding: [0x62,0xe1,0x25,0x20,0xed,0x62,0x80]
+          vpaddsw -4096(%rdx), %ymm27, %ymm20
+
+// CHECK: vpaddsw -4128(%rdx), %ymm27, %ymm20
+// CHECK:  encoding: [0x62,0xe1,0x25,0x20,0xed,0xa2,0xe0,0xef,0xff,0xff]
+          vpaddsw -4128(%rdx), %ymm27, %ymm20
+
+// CHECK: vpaddusb %xmm19, %xmm21, %xmm25
+// CHECK:  encoding: [0x62,0x21,0x55,0x00,0xdc,0xcb]
+          vpaddusb %xmm19, %xmm21, %xmm25
+
+// CHECK: vpaddusb %xmm19, %xmm21, %xmm25 {%k7}
+// CHECK:  encoding: [0x62,0x21,0x55,0x07,0xdc,0xcb]
+          vpaddusb %xmm19, %xmm21, %xmm25 {%k7}
+
+// CHECK: vpaddusb %xmm19, %xmm21, %xmm25 {%k7} {z}
+// CHECK:  encoding: [0x62,0x21,0x55,0x87,0xdc,0xcb]
+          vpaddusb %xmm19, %xmm21, %xmm25 {%k7} {z}
+
+// CHECK: vpaddusb (%rcx), %xmm21, %xmm25
+// CHECK:  encoding: [0x62,0x61,0x55,0x00,0xdc,0x09]
+          vpaddusb (%rcx), %xmm21, %xmm25
+
+// CHECK: vpaddusb 291(%rax,%r14,8), %xmm21, %xmm25
+// CHECK:  encoding: [0x62,0x21,0x55,0x00,0xdc,0x8c,0xf0,0x23,0x01,0x00,0x00]
+          vpaddusb 291(%rax,%r14,8), %xmm21, %xmm25
+
+// CHECK: vpaddusb 2032(%rdx), %xmm21, %xmm25
+// CHECK:  encoding: [0x62,0x61,0x55,0x00,0xdc,0x4a,0x7f]
+          vpaddusb 2032(%rdx), %xmm21, %xmm25
+
+// CHECK: vpaddusb 2048(%rdx), %xmm21, %xmm25
+// CHECK:  encoding: [0x62,0x61,0x55,0x00,0xdc,0x8a,0x00,0x08,0x00,0x00]
+          vpaddusb 2048(%rdx), %xmm21, %xmm25
+
+// CHECK: vpaddusb -2048(%rdx), %xmm21, %xmm25
+// CHECK:  encoding: [0x62,0x61,0x55,0x00,0xdc,0x4a,0x80]
+          vpaddusb -2048(%rdx), %xmm21, %xmm25
+
+// CHECK: vpaddusb -2064(%rdx), %xmm21, %xmm25
+// CHECK:  encoding: [0x62,0x61,0x55,0x00,0xdc,0x8a,0xf0,0xf7,0xff,0xff]
+          vpaddusb -2064(%rdx), %xmm21, %xmm25
+
+// CHECK: vpaddusb %ymm25, %ymm21, %ymm21
+// CHECK:  encoding: [0x62,0x81,0x55,0x20,0xdc,0xe9]
+          vpaddusb %ymm25, %ymm21, %ymm21
+
+// CHECK: vpaddusb %ymm25, %ymm21, %ymm21 {%k1}
+// CHECK:  encoding: [0x62,0x81,0x55,0x21,0xdc,0xe9]
+          vpaddusb %ymm25, %ymm21, %ymm21 {%k1}
+
+// CHECK: vpaddusb %ymm25, %ymm21, %ymm21 {%k1} {z}
+// CHECK:  encoding: [0x62,0x81,0x55,0xa1,0xdc,0xe9]
+          vpaddusb %ymm25, %ymm21, %ymm21 {%k1} {z}
+
+// CHECK: vpaddusb (%rcx), %ymm21, %ymm21
+// CHECK:  encoding: [0x62,0xe1,0x55,0x20,0xdc,0x29]
+          vpaddusb (%rcx), %ymm21, %ymm21
+
+// CHECK: vpaddusb 291(%rax,%r14,8), %ymm21, %ymm21
+// CHECK:  encoding: [0x62,0xa1,0x55,0x20,0xdc,0xac,0xf0,0x23,0x01,0x00,0x00]
+          vpaddusb 291(%rax,%r14,8), %ymm21, %ymm21
+
+// CHECK: vpaddusb 4064(%rdx), %ymm21, %ymm21
+// CHECK:  encoding: [0x62,0xe1,0x55,0x20,0xdc,0x6a,0x7f]
+          vpaddusb 4064(%rdx), %ymm21, %ymm21
+
+// CHECK: vpaddusb 4096(%rdx), %ymm21, %ymm21
+// CHECK:  encoding: [0x62,0xe1,0x55,0x20,0xdc,0xaa,0x00,0x10,0x00,0x00]
+          vpaddusb 4096(%rdx), %ymm21, %ymm21
+
+// CHECK: vpaddusb -4096(%rdx), %ymm21, %ymm21
+// CHECK:  encoding: [0x62,0xe1,0x55,0x20,0xdc,0x6a,0x80]
+          vpaddusb -4096(%rdx), %ymm21, %ymm21
+
+// CHECK: vpaddusb -4128(%rdx), %ymm21, %ymm21
+// CHECK:  encoding: [0x62,0xe1,0x55,0x20,0xdc,0xaa,0xe0,0xef,0xff,0xff]
+          vpaddusb -4128(%rdx), %ymm21, %ymm21
+
+// CHECK: vpaddusw %xmm26, %xmm17, %xmm24
+// CHECK:  encoding: [0x62,0x01,0x75,0x00,0xdd,0xc2]
+          vpaddusw %xmm26, %xmm17, %xmm24
+
+// CHECK: vpaddusw %xmm26, %xmm17, %xmm24 {%k6}
+// CHECK:  encoding: [0x62,0x01,0x75,0x06,0xdd,0xc2]
+          vpaddusw %xmm26, %xmm17, %xmm24 {%k6}
+
+// CHECK: vpaddusw %xmm26, %xmm17, %xmm24 {%k6} {z}
+// CHECK:  encoding: [0x62,0x01,0x75,0x86,0xdd,0xc2]
+          vpaddusw %xmm26, %xmm17, %xmm24 {%k6} {z}
+
+// CHECK: vpaddusw (%rcx), %xmm17, %xmm24
+// CHECK:  encoding: [0x62,0x61,0x75,0x00,0xdd,0x01]
+          vpaddusw (%rcx), %xmm17, %xmm24
+
+// CHECK: vpaddusw 291(%rax,%r14,8), %xmm17, %xmm24
+// CHECK:  encoding: [0x62,0x21,0x75,0x00,0xdd,0x84,0xf0,0x23,0x01,0x00,0x00]
+          vpaddusw 291(%rax,%r14,8), %xmm17, %xmm24
+
+// CHECK: vpaddusw 2032(%rdx), %xmm17, %xmm24
+// CHECK:  encoding: [0x62,0x61,0x75,0x00,0xdd,0x42,0x7f]
+          vpaddusw 2032(%rdx), %xmm17, %xmm24
+
+// CHECK: vpaddusw 2048(%rdx), %xmm17, %xmm24
+// CHECK:  encoding: [0x62,0x61,0x75,0x00,0xdd,0x82,0x00,0x08,0x00,0x00]
+          vpaddusw 2048(%rdx), %xmm17, %xmm24
+
+// CHECK: vpaddusw -2048(%rdx), %xmm17, %xmm24
+// CHECK:  encoding: [0x62,0x61,0x75,0x00,0xdd,0x42,0x80]
+          vpaddusw -2048(%rdx), %xmm17, %xmm24
+
+// CHECK: vpaddusw -2064(%rdx), %xmm17, %xmm24
+// CHECK:  encoding: [0x62,0x61,0x75,0x00,0xdd,0x82,0xf0,0xf7,0xff,0xff]
+          vpaddusw -2064(%rdx), %xmm17, %xmm24
+
+// CHECK: vpaddusw %ymm22, %ymm27, %ymm22
+// CHECK:  encoding: [0x62,0xa1,0x25,0x20,0xdd,0xf6]
+          vpaddusw %ymm22, %ymm27, %ymm22
+
+// CHECK: vpaddusw %ymm22, %ymm27, %ymm22 {%k5}
+// CHECK:  encoding: [0x62,0xa1,0x25,0x25,0xdd,0xf6]
+          vpaddusw %ymm22, %ymm27, %ymm22 {%k5}
+
+// CHECK: vpaddusw %ymm22, %ymm27, %ymm22 {%k5} {z}
+// CHECK:  encoding: [0x62,0xa1,0x25,0xa5,0xdd,0xf6]
+          vpaddusw %ymm22, %ymm27, %ymm22 {%k5} {z}
+
+// CHECK: vpaddusw (%rcx), %ymm27, %ymm22
+// CHECK:  encoding: [0x62,0xe1,0x25,0x20,0xdd,0x31]
+          vpaddusw (%rcx), %ymm27, %ymm22
+
+// CHECK: vpaddusw 291(%rax,%r14,8), %ymm27, %ymm22
+// CHECK:  encoding: [0x62,0xa1,0x25,0x20,0xdd,0xb4,0xf0,0x23,0x01,0x00,0x00]
+          vpaddusw 291(%rax,%r14,8), %ymm27, %ymm22
+
+// CHECK: vpaddusw 4064(%rdx), %ymm27, %ymm22
+// CHECK:  encoding: [0x62,0xe1,0x25,0x20,0xdd,0x72,0x7f]
+          vpaddusw 4064(%rdx), %ymm27, %ymm22
+
+// CHECK: vpaddusw 4096(%rdx), %ymm27, %ymm22
+// CHECK:  encoding: [0x62,0xe1,0x25,0x20,0xdd,0xb2,0x00,0x10,0x00,0x00]
+          vpaddusw 4096(%rdx), %ymm27, %ymm22
+
+// CHECK: vpaddusw -4096(%rdx), %ymm27, %ymm22
+// CHECK:  encoding: [0x62,0xe1,0x25,0x20,0xdd,0x72,0x80]
+          vpaddusw -4096(%rdx), %ymm27, %ymm22
+
+// CHECK: vpaddusw -4128(%rdx), %ymm27, %ymm22
+// CHECK:  encoding: [0x62,0xe1,0x25,0x20,0xdd,0xb2,0xe0,0xef,0xff,0xff]
+          vpaddusw -4128(%rdx), %ymm27, %ymm22
+
+// CHECK: vpsubsb %xmm19, %xmm19, %xmm28
+// CHECK:  encoding: [0x62,0x21,0x65,0x00,0xe8,0xe3]
+          vpsubsb %xmm19, %xmm19, %xmm28
+
+// CHECK: vpsubsb %xmm19, %xmm19, %xmm28 {%k4}
+// CHECK:  encoding: [0x62,0x21,0x65,0x04,0xe8,0xe3]
+          vpsubsb %xmm19, %xmm19, %xmm28 {%k4}
+
+// CHECK: vpsubsb %xmm19, %xmm19, %xmm28 {%k4} {z}
+// CHECK:  encoding: [0x62,0x21,0x65,0x84,0xe8,0xe3]
+          vpsubsb %xmm19, %xmm19, %xmm28 {%k4} {z}
+
+// CHECK: vpsubsb (%rcx), %xmm19, %xmm28
+// CHECK:  encoding: [0x62,0x61,0x65,0x00,0xe8,0x21]
+          vpsubsb (%rcx), %xmm19, %xmm28
+
+// CHECK: vpsubsb 291(%rax,%r14,8), %xmm19, %xmm28
+// CHECK:  encoding: [0x62,0x21,0x65,0x00,0xe8,0xa4,0xf0,0x23,0x01,0x00,0x00]
+          vpsubsb 291(%rax,%r14,8), %xmm19, %xmm28
+
+// CHECK: vpsubsb 2032(%rdx), %xmm19, %xmm28
+// CHECK:  encoding: [0x62,0x61,0x65,0x00,0xe8,0x62,0x7f]
+          vpsubsb 2032(%rdx), %xmm19, %xmm28
+
+// CHECK: vpsubsb 2048(%rdx), %xmm19, %xmm28
+// CHECK:  encoding: [0x62,0x61,0x65,0x00,0xe8,0xa2,0x00,0x08,0x00,0x00]
+          vpsubsb 2048(%rdx), %xmm19, %xmm28
+
+// CHECK: vpsubsb -2048(%rdx), %xmm19, %xmm28
+// CHECK:  encoding: [0x62,0x61,0x65,0x00,0xe8,0x62,0x80]
+          vpsubsb -2048(%rdx), %xmm19, %xmm28
+
+// CHECK: vpsubsb -2064(%rdx), %xmm19, %xmm28
+// CHECK:  encoding: [0x62,0x61,0x65,0x00,0xe8,0xa2,0xf0,0xf7,0xff,0xff]
+          vpsubsb -2064(%rdx), %xmm19, %xmm28
+
+// CHECK: vpsubsb %ymm18, %ymm23, %ymm18
+// CHECK:  encoding: [0x62,0xa1,0x45,0x20,0xe8,0xd2]
+          vpsubsb %ymm18, %ymm23, %ymm18
+
+// CHECK: vpsubsb %ymm18, %ymm23, %ymm18 {%k6}
+// CHECK:  encoding: [0x62,0xa1,0x45,0x26,0xe8,0xd2]
+          vpsubsb %ymm18, %ymm23, %ymm18 {%k6}
+
+// CHECK: vpsubsb %ymm18, %ymm23, %ymm18 {%k6} {z}
+// CHECK:  encoding: [0x62,0xa1,0x45,0xa6,0xe8,0xd2]
+          vpsubsb %ymm18, %ymm23, %ymm18 {%k6} {z}
+
+// CHECK: vpsubsb (%rcx), %ymm23, %ymm18
+// CHECK:  encoding: [0x62,0xe1,0x45,0x20,0xe8,0x11]
+          vpsubsb (%rcx), %ymm23, %ymm18
+
+// CHECK: vpsubsb 291(%rax,%r14,8), %ymm23, %ymm18
+// CHECK:  encoding: [0x62,0xa1,0x45,0x20,0xe8,0x94,0xf0,0x23,0x01,0x00,0x00]
+          vpsubsb 291(%rax,%r14,8), %ymm23, %ymm18
+
+// CHECK: vpsubsb 4064(%rdx), %ymm23, %ymm18
+// CHECK:  encoding: [0x62,0xe1,0x45,0x20,0xe8,0x52,0x7f]
+          vpsubsb 4064(%rdx), %ymm23, %ymm18
+
+// CHECK: vpsubsb 4096(%rdx), %ymm23, %ymm18
+// CHECK:  encoding: [0x62,0xe1,0x45,0x20,0xe8,0x92,0x00,0x10,0x00,0x00]
+          vpsubsb 4096(%rdx), %ymm23, %ymm18
+
+// CHECK: vpsubsb -4096(%rdx), %ymm23, %ymm18
+// CHECK:  encoding: [0x62,0xe1,0x45,0x20,0xe8,0x52,0x80]
+          vpsubsb -4096(%rdx), %ymm23, %ymm18
+
+// CHECK: vpsubsb -4128(%rdx), %ymm23, %ymm18
+// CHECK:  encoding: [0x62,0xe1,0x45,0x20,0xe8,0x92,0xe0,0xef,0xff,0xff]
+          vpsubsb -4128(%rdx), %ymm23, %ymm18
+
+// CHECK: vpsubsw %xmm19, %xmm24, %xmm26
+// CHECK:  encoding: [0x62,0x21,0x3d,0x00,0xe9,0xd3]
+          vpsubsw %xmm19, %xmm24, %xmm26
+
+// CHECK: vpsubsw %xmm19, %xmm24, %xmm26 {%k7}
+// CHECK:  encoding: [0x62,0x21,0x3d,0x07,0xe9,0xd3]
+          vpsubsw %xmm19, %xmm24, %xmm26 {%k7}
+
+// CHECK: vpsubsw %xmm19, %xmm24, %xmm26 {%k7} {z}
+// CHECK:  encoding: [0x62,0x21,0x3d,0x87,0xe9,0xd3]
+          vpsubsw %xmm19, %xmm24, %xmm26 {%k7} {z}
+
+// CHECK: vpsubsw (%rcx), %xmm24, %xmm26
+// CHECK:  encoding: [0x62,0x61,0x3d,0x00,0xe9,0x11]
+          vpsubsw (%rcx), %xmm24, %xmm26
+
+// CHECK: vpsubsw 291(%rax,%r14,8), %xmm24, %xmm26
+// CHECK:  encoding: [0x62,0x21,0x3d,0x00,0xe9,0x94,0xf0,0x23,0x01,0x00,0x00]
+          vpsubsw 291(%rax,%r14,8), %xmm24, %xmm26
+
+// CHECK: vpsubsw 2032(%rdx), %xmm24, %xmm26
+// CHECK:  encoding: [0x62,0x61,0x3d,0x00,0xe9,0x52,0x7f]
+          vpsubsw 2032(%rdx), %xmm24, %xmm26
+
+// CHECK: vpsubsw 2048(%rdx), %xmm24, %xmm26
+// CHECK:  encoding: [0x62,0x61,0x3d,0x00,0xe9,0x92,0x00,0x08,0x00,0x00]
+          vpsubsw 2048(%rdx), %xmm24, %xmm26
+
+// CHECK: vpsubsw -2048(%rdx), %xmm24, %xmm26
+// CHECK:  encoding: [0x62,0x61,0x3d,0x00,0xe9,0x52,0x80]
+          vpsubsw -2048(%rdx), %xmm24, %xmm26
+
+// CHECK: vpsubsw -2064(%rdx), %xmm24, %xmm26
+// CHECK:  encoding: [0x62,0x61,0x3d,0x00,0xe9,0x92,0xf0,0xf7,0xff,0xff]
+          vpsubsw -2064(%rdx), %xmm24, %xmm26
+
+// CHECK: vpsubsw %ymm19, %ymm27, %ymm20
+// CHECK:  encoding: [0x62,0xa1,0x25,0x20,0xe9,0xe3]
+          vpsubsw %ymm19, %ymm27, %ymm20
+
+// CHECK: vpsubsw %ymm19, %ymm27, %ymm20 {%k3}
+// CHECK:  encoding: [0x62,0xa1,0x25,0x23,0xe9,0xe3]
+          vpsubsw %ymm19, %ymm27, %ymm20 {%k3}
+
+// CHECK: vpsubsw %ymm19, %ymm27, %ymm20 {%k3} {z}
+// CHECK:  encoding: [0x62,0xa1,0x25,0xa3,0xe9,0xe3]
+          vpsubsw %ymm19, %ymm27, %ymm20 {%k3} {z}
+
+// CHECK: vpsubsw (%rcx), %ymm27, %ymm20
+// CHECK:  encoding: [0x62,0xe1,0x25,0x20,0xe9,0x21]
+          vpsubsw (%rcx), %ymm27, %ymm20
+
+// CHECK: vpsubsw 291(%rax,%r14,8), %ymm27, %ymm20
+// CHECK:  encoding: [0x62,0xa1,0x25,0x20,0xe9,0xa4,0xf0,0x23,0x01,0x00,0x00]
+          vpsubsw 291(%rax,%r14,8), %ymm27, %ymm20
+
+// CHECK: vpsubsw 4064(%rdx), %ymm27, %ymm20
+// CHECK:  encoding: [0x62,0xe1,0x25,0x20,0xe9,0x62,0x7f]
+          vpsubsw 4064(%rdx), %ymm27, %ymm20
+
+// CHECK: vpsubsw 4096(%rdx), %ymm27, %ymm20
+// CHECK:  encoding: [0x62,0xe1,0x25,0x20,0xe9,0xa2,0x00,0x10,0x00,0x00]
+          vpsubsw 4096(%rdx), %ymm27, %ymm20
+
+// CHECK: vpsubsw -4096(%rdx), %ymm27, %ymm20
+// CHECK:  encoding: [0x62,0xe1,0x25,0x20,0xe9,0x62,0x80]
+          vpsubsw -4096(%rdx), %ymm27, %ymm20
+
+// CHECK: vpsubsw -4128(%rdx), %ymm27, %ymm20
+// CHECK:  encoding: [0x62,0xe1,0x25,0x20,0xe9,0xa2,0xe0,0xef,0xff,0xff]
+          vpsubsw -4128(%rdx), %ymm27, %ymm20
+
+// CHECK: vpsubusb %xmm25, %xmm19, %xmm20
+// CHECK:  encoding: [0x62,0x81,0x65,0x00,0xd8,0xe1]
+          vpsubusb %xmm25, %xmm19, %xmm20
+
+// CHECK: vpsubusb %xmm25, %xmm19, %xmm20 {%k6}
+// CHECK:  encoding: [0x62,0x81,0x65,0x06,0xd8,0xe1]
+          vpsubusb %xmm25, %xmm19, %xmm20 {%k6}
+
+// CHECK: vpsubusb %xmm25, %xmm19, %xmm20 {%k6} {z}
+// CHECK:  encoding: [0x62,0x81,0x65,0x86,0xd8,0xe1]
+          vpsubusb %xmm25, %xmm19, %xmm20 {%k6} {z}
+
+// CHECK: vpsubusb (%rcx), %xmm19, %xmm20
+// CHECK:  encoding: [0x62,0xe1,0x65,0x00,0xd8,0x21]
+          vpsubusb (%rcx), %xmm19, %xmm20
+
+// CHECK: vpsubusb 291(%rax,%r14,8), %xmm19, %xmm20
+// CHECK:  encoding: [0x62,0xa1,0x65,0x00,0xd8,0xa4,0xf0,0x23,0x01,0x00,0x00]
+          vpsubusb 291(%rax,%r14,8), %xmm19, %xmm20
+
+// CHECK: vpsubusb 2032(%rdx), %xmm19, %xmm20
+// CHECK:  encoding: [0x62,0xe1,0x65,0x00,0xd8,0x62,0x7f]
+          vpsubusb 2032(%rdx), %xmm19, %xmm20
+
+// CHECK: vpsubusb 2048(%rdx), %xmm19, %xmm20
+// CHECK:  encoding: [0x62,0xe1,0x65,0x00,0xd8,0xa2,0x00,0x08,0x00,0x00]
+          vpsubusb 2048(%rdx), %xmm19, %xmm20
+
+// CHECK: vpsubusb -2048(%rdx), %xmm19, %xmm20
+// CHECK:  encoding: [0x62,0xe1,0x65,0x00,0xd8,0x62,0x80]
+          vpsubusb -2048(%rdx), %xmm19, %xmm20
+
+// CHECK: vpsubusb -2064(%rdx), %xmm19, %xmm20
+// CHECK:  encoding: [0x62,0xe1,0x65,0x00,0xd8,0xa2,0xf0,0xf7,0xff,0xff]
+          vpsubusb -2064(%rdx), %xmm19, %xmm20
+
+// CHECK: vpsubusb %ymm19, %ymm19, %ymm21
+// CHECK:  encoding: [0x62,0xa1,0x65,0x20,0xd8,0xeb]
+          vpsubusb %ymm19, %ymm19, %ymm21
+
+// CHECK: vpsubusb %ymm19, %ymm19, %ymm21 {%k3}
+// CHECK:  encoding: [0x62,0xa1,0x65,0x23,0xd8,0xeb]
+          vpsubusb %ymm19, %ymm19, %ymm21 {%k3}
+
+// CHECK: vpsubusb %ymm19, %ymm19, %ymm21 {%k3} {z}
+// CHECK:  encoding: [0x62,0xa1,0x65,0xa3,0xd8,0xeb]
+          vpsubusb %ymm19, %ymm19, %ymm21 {%k3} {z}
+
+// CHECK: vpsubusb (%rcx), %ymm19, %ymm21
+// CHECK:  encoding: [0x62,0xe1,0x65,0x20,0xd8,0x29]
+          vpsubusb (%rcx), %ymm19, %ymm21
+
+// CHECK: vpsubusb 291(%rax,%r14,8), %ymm19, %ymm21
+// CHECK:  encoding: [0x62,0xa1,0x65,0x20,0xd8,0xac,0xf0,0x23,0x01,0x00,0x00]
+          vpsubusb 291(%rax,%r14,8), %ymm19, %ymm21
+
+// CHECK: vpsubusb 4064(%rdx), %ymm19, %ymm21
+// CHECK:  encoding: [0x62,0xe1,0x65,0x20,0xd8,0x6a,0x7f]
+          vpsubusb 4064(%rdx), %ymm19, %ymm21
+
+// CHECK: vpsubusb 4096(%rdx), %ymm19, %ymm21
+// CHECK:  encoding: [0x62,0xe1,0x65,0x20,0xd8,0xaa,0x00,0x10,0x00,0x00]
+          vpsubusb 4096(%rdx), %ymm19, %ymm21
+
+// CHECK: vpsubusb -4096(%rdx), %ymm19, %ymm21
+// CHECK:  encoding: [0x62,0xe1,0x65,0x20,0xd8,0x6a,0x80]
+          vpsubusb -4096(%rdx), %ymm19, %ymm21
+
+// CHECK: vpsubusb -4128(%rdx), %ymm19, %ymm21
+// CHECK:  encoding: [0x62,0xe1,0x65,0x20,0xd8,0xaa,0xe0,0xef,0xff,0xff]
+          vpsubusb -4128(%rdx), %ymm19, %ymm21
+
+// CHECK: vpsubusw %xmm22, %xmm20, %xmm23
+// CHECK:  encoding: [0x62,0xa1,0x5d,0x00,0xd9,0xfe]
+          vpsubusw %xmm22, %xmm20, %xmm23
+
+// CHECK: vpsubusw %xmm22, %xmm20, %xmm23 {%k1}
+// CHECK:  encoding: [0x62,0xa1,0x5d,0x01,0xd9,0xfe]
+          vpsubusw %xmm22, %xmm20, %xmm23 {%k1}
+
+// CHECK: vpsubusw %xmm22, %xmm20, %xmm23 {%k1} {z}
+// CHECK:  encoding: [0x62,0xa1,0x5d,0x81,0xd9,0xfe]
+          vpsubusw %xmm22, %xmm20, %xmm23 {%k1} {z}
+
+// CHECK: vpsubusw (%rcx), %xmm20, %xmm23
+// CHECK:  encoding: [0x62,0xe1,0x5d,0x00,0xd9,0x39]
+          vpsubusw (%rcx), %xmm20, %xmm23
+
+// CHECK: vpsubusw 291(%rax,%r14,8), %xmm20, %xmm23
+// CHECK:  encoding: [0x62,0xa1,0x5d,0x00,0xd9,0xbc,0xf0,0x23,0x01,0x00,0x00]
+          vpsubusw 291(%rax,%r14,8), %xmm20, %xmm23
+
+// CHECK: vpsubusw 2032(%rdx), %xmm20, %xmm23
+// CHECK:  encoding: [0x62,0xe1,0x5d,0x00,0xd9,0x7a,0x7f]
+          vpsubusw 2032(%rdx), %xmm20, %xmm23
+
+// CHECK: vpsubusw 2048(%rdx), %xmm20, %xmm23
+// CHECK:  encoding: [0x62,0xe1,0x5d,0x00,0xd9,0xba,0x00,0x08,0x00,0x00]
+          vpsubusw 2048(%rdx), %xmm20, %xmm23
+
+// CHECK: vpsubusw -2048(%rdx), %xmm20, %xmm23
+// CHECK:  encoding: [0x62,0xe1,0x5d,0x00,0xd9,0x7a,0x80]
+          vpsubusw -2048(%rdx), %xmm20, %xmm23
+
+// CHECK: vpsubusw -2064(%rdx), %xmm20, %xmm23
+// CHECK:  encoding: [0x62,0xe1,0x5d,0x00,0xd9,0xba,0xf0,0xf7,0xff,0xff]
+          vpsubusw -2064(%rdx), %xmm20, %xmm23
+
+// CHECK: vpsubusw %ymm28, %ymm17, %ymm27
+// CHECK:  encoding: [0x62,0x01,0x75,0x20,0xd9,0xdc]
+          vpsubusw %ymm28, %ymm17, %ymm27
+
+// CHECK: vpsubusw %ymm28, %ymm17, %ymm27 {%k3}
+// CHECK:  encoding: [0x62,0x01,0x75,0x23,0xd9,0xdc]
+          vpsubusw %ymm28, %ymm17, %ymm27 {%k3}
+
+// CHECK: vpsubusw %ymm28, %ymm17, %ymm27 {%k3} {z}
+// CHECK:  encoding: [0x62,0x01,0x75,0xa3,0xd9,0xdc]
+          vpsubusw %ymm28, %ymm17, %ymm27 {%k3} {z}
+
+// CHECK: vpsubusw (%rcx), %ymm17, %ymm27
+// CHECK:  encoding: [0x62,0x61,0x75,0x20,0xd9,0x19]
+          vpsubusw (%rcx), %ymm17, %ymm27
+
+// CHECK: vpsubusw 291(%rax,%r14,8), %ymm17, %ymm27
+// CHECK:  encoding: [0x62,0x21,0x75,0x20,0xd9,0x9c,0xf0,0x23,0x01,0x00,0x00]
+          vpsubusw 291(%rax,%r14,8), %ymm17, %ymm27
+
+// CHECK: vpsubusw 4064(%rdx), %ymm17, %ymm27
+// CHECK:  encoding: [0x62,0x61,0x75,0x20,0xd9,0x5a,0x7f]
+          vpsubusw 4064(%rdx), %ymm17, %ymm27
+
+// CHECK: vpsubusw 4096(%rdx), %ymm17, %ymm27
+// CHECK:  encoding: [0x62,0x61,0x75,0x20,0xd9,0x9a,0x00,0x10,0x00,0x00]
+          vpsubusw 4096(%rdx), %ymm17, %ymm27
+
+// CHECK: vpsubusw -4096(%rdx), %ymm17, %ymm27
+// CHECK:  encoding: [0x62,0x61,0x75,0x20,0xd9,0x5a,0x80]
+          vpsubusw -4096(%rdx), %ymm17, %ymm27
+
+// CHECK: vpsubusw -4128(%rdx), %ymm17, %ymm27
+// CHECK:  encoding: [0x62,0x61,0x75,0x20,0xd9,0x9a,0xe0,0xef,0xff,0xff]
+          vpsubusw -4128(%rdx), %ymm17, %ymm27
+
+// CHECK: vpaddsb %xmm18, %xmm23, %xmm17
+// CHECK:  encoding: [0x62,0xa1,0x45,0x00,0xec,0xca]
+          vpaddsb %xmm18, %xmm23, %xmm17
+
+// CHECK: vpaddsb %xmm18, %xmm23, %xmm17 {%k2}
+// CHECK:  encoding: [0x62,0xa1,0x45,0x02,0xec,0xca]
+          vpaddsb %xmm18, %xmm23, %xmm17 {%k2}
+
+// CHECK: vpaddsb %xmm18, %xmm23, %xmm17 {%k2} {z}
+// CHECK:  encoding: [0x62,0xa1,0x45,0x82,0xec,0xca]
+          vpaddsb %xmm18, %xmm23, %xmm17 {%k2} {z}
+
+// CHECK: vpaddsb (%rcx), %xmm23, %xmm17
+// CHECK:  encoding: [0x62,0xe1,0x45,0x00,0xec,0x09]
+          vpaddsb (%rcx), %xmm23, %xmm17
+
+// CHECK: vpaddsb 4660(%rax,%r14,8), %xmm23, %xmm17
+// CHECK:  encoding: [0x62,0xa1,0x45,0x00,0xec,0x8c,0xf0,0x34,0x12,0x00,0x00]
+          vpaddsb 4660(%rax,%r14,8), %xmm23, %xmm17
+
+// CHECK: vpaddsb 2032(%rdx), %xmm23, %xmm17
+// CHECK:  encoding: [0x62,0xe1,0x45,0x00,0xec,0x4a,0x7f]
+          vpaddsb 2032(%rdx), %xmm23, %xmm17
+
+// CHECK: vpaddsb 2048(%rdx), %xmm23, %xmm17
+// CHECK:  encoding: [0x62,0xe1,0x45,0x00,0xec,0x8a,0x00,0x08,0x00,0x00]
+          vpaddsb 2048(%rdx), %xmm23, %xmm17
+
+// CHECK: vpaddsb -2048(%rdx), %xmm23, %xmm17
+// CHECK:  encoding: [0x62,0xe1,0x45,0x00,0xec,0x4a,0x80]
+          vpaddsb -2048(%rdx), %xmm23, %xmm17
+
+// CHECK: vpaddsb -2064(%rdx), %xmm23, %xmm17
+// CHECK:  encoding: [0x62,0xe1,0x45,0x00,0xec,0x8a,0xf0,0xf7,0xff,0xff]
+          vpaddsb -2064(%rdx), %xmm23, %xmm17
+
+// CHECK: vpaddsb %ymm19, %ymm26, %ymm20
+// CHECK:  encoding: [0x62,0xa1,0x2d,0x20,0xec,0xe3]
+          vpaddsb %ymm19, %ymm26, %ymm20
+
+// CHECK: vpaddsb %ymm19, %ymm26, %ymm20 {%k2}
+// CHECK:  encoding: [0x62,0xa1,0x2d,0x22,0xec,0xe3]
+          vpaddsb %ymm19, %ymm26, %ymm20 {%k2}
+
+// CHECK: vpaddsb %ymm19, %ymm26, %ymm20 {%k2} {z}
+// CHECK:  encoding: [0x62,0xa1,0x2d,0xa2,0xec,0xe3]
+          vpaddsb %ymm19, %ymm26, %ymm20 {%k2} {z}
+
+// CHECK: vpaddsb (%rcx), %ymm26, %ymm20
+// CHECK:  encoding: [0x62,0xe1,0x2d,0x20,0xec,0x21]
+          vpaddsb (%rcx), %ymm26, %ymm20
+
+// CHECK: vpaddsb 4660(%rax,%r14,8), %ymm26, %ymm20
+// CHECK:  encoding: [0x62,0xa1,0x2d,0x20,0xec,0xa4,0xf0,0x34,0x12,0x00,0x00]
+          vpaddsb 4660(%rax,%r14,8), %ymm26, %ymm20
+
+// CHECK: vpaddsb 4064(%rdx), %ymm26, %ymm20
+// CHECK:  encoding: [0x62,0xe1,0x2d,0x20,0xec,0x62,0x7f]
+          vpaddsb 4064(%rdx), %ymm26, %ymm20
+
+// CHECK: vpaddsb 4096(%rdx), %ymm26, %ymm20
+// CHECK:  encoding: [0x62,0xe1,0x2d,0x20,0xec,0xa2,0x00,0x10,0x00,0x00]
+          vpaddsb 4096(%rdx), %ymm26, %ymm20
+
+// CHECK: vpaddsb -4096(%rdx), %ymm26, %ymm20
+// CHECK:  encoding: [0x62,0xe1,0x2d,0x20,0xec,0x62,0x80]
+          vpaddsb -4096(%rdx), %ymm26, %ymm20
+
+// CHECK: vpaddsb -4128(%rdx), %ymm26, %ymm20
+// CHECK:  encoding: [0x62,0xe1,0x2d,0x20,0xec,0xa2,0xe0,0xef,0xff,0xff]
+          vpaddsb -4128(%rdx), %ymm26, %ymm20
+
+// CHECK: vpaddsw %xmm26, %xmm17, %xmm26
+// CHECK:  encoding: [0x62,0x01,0x75,0x00,0xed,0xd2]
+          vpaddsw %xmm26, %xmm17, %xmm26
+
+// CHECK: vpaddsw %xmm26, %xmm17, %xmm26 {%k6}
+// CHECK:  encoding: [0x62,0x01,0x75,0x06,0xed,0xd2]
+          vpaddsw %xmm26, %xmm17, %xmm26 {%k6}
+
+// CHECK: vpaddsw %xmm26, %xmm17, %xmm26 {%k6} {z}
+// CHECK:  encoding: [0x62,0x01,0x75,0x86,0xed,0xd2]
+          vpaddsw %xmm26, %xmm17, %xmm26 {%k6} {z}
+
+// CHECK: vpaddsw (%rcx), %xmm17, %xmm26
+// CHECK:  encoding: [0x62,0x61,0x75,0x00,0xed,0x11]
+          vpaddsw (%rcx), %xmm17, %xmm26
+
+// CHECK: vpaddsw 4660(%rax,%r14,8), %xmm17, %xmm26
+// CHECK:  encoding: [0x62,0x21,0x75,0x00,0xed,0x94,0xf0,0x34,0x12,0x00,0x00]
+          vpaddsw 4660(%rax,%r14,8), %xmm17, %xmm26
+
+// CHECK: vpaddsw 2032(%rdx), %xmm17, %xmm26
+// CHECK:  encoding: [0x62,0x61,0x75,0x00,0xed,0x52,0x7f]
+          vpaddsw 2032(%rdx), %xmm17, %xmm26
+
+// CHECK: vpaddsw 2048(%rdx), %xmm17, %xmm26
+// CHECK:  encoding: [0x62,0x61,0x75,0x00,0xed,0x92,0x00,0x08,0x00,0x00]
+          vpaddsw 2048(%rdx), %xmm17, %xmm26
+
+// CHECK: vpaddsw -2048(%rdx), %xmm17, %xmm26
+// CHECK:  encoding: [0x62,0x61,0x75,0x00,0xed,0x52,0x80]
+          vpaddsw -2048(%rdx), %xmm17, %xmm26
+
+// CHECK: vpaddsw -2064(%rdx), %xmm17, %xmm26
+// CHECK:  encoding: [0x62,0x61,0x75,0x00,0xed,0x92,0xf0,0xf7,0xff,0xff]
+          vpaddsw -2064(%rdx), %xmm17, %xmm26
+
+// CHECK: vpaddsw %ymm23, %ymm27, %ymm28
+// CHECK:  encoding: [0x62,0x21,0x25,0x20,0xed,0xe7]
+          vpaddsw %ymm23, %ymm27, %ymm28
+
+// CHECK: vpaddsw %ymm23, %ymm27, %ymm28 {%k4}
+// CHECK:  encoding: [0x62,0x21,0x25,0x24,0xed,0xe7]
+          vpaddsw %ymm23, %ymm27, %ymm28 {%k4}
+
+// CHECK: vpaddsw %ymm23, %ymm27, %ymm28 {%k4} {z}
+// CHECK:  encoding: [0x62,0x21,0x25,0xa4,0xed,0xe7]
+          vpaddsw %ymm23, %ymm27, %ymm28 {%k4} {z}
+
+// CHECK: vpaddsw (%rcx), %ymm27, %ymm28
+// CHECK:  encoding: [0x62,0x61,0x25,0x20,0xed,0x21]
+          vpaddsw (%rcx), %ymm27, %ymm28
+
+// CHECK: vpaddsw 4660(%rax,%r14,8), %ymm27, %ymm28
+// CHECK:  encoding: [0x62,0x21,0x25,0x20,0xed,0xa4,0xf0,0x34,0x12,0x00,0x00]
+          vpaddsw 4660(%rax,%r14,8), %ymm27, %ymm28
+
+// CHECK: vpaddsw 4064(%rdx), %ymm27, %ymm28
+// CHECK:  encoding: [0x62,0x61,0x25,0x20,0xed,0x62,0x7f]
+          vpaddsw 4064(%rdx), %ymm27, %ymm28
+
+// CHECK: vpaddsw 4096(%rdx), %ymm27, %ymm28
+// CHECK:  encoding: [0x62,0x61,0x25,0x20,0xed,0xa2,0x00,0x10,0x00,0x00]
+          vpaddsw 4096(%rdx), %ymm27, %ymm28
+
+// CHECK: vpaddsw -4096(%rdx), %ymm27, %ymm28
+// CHECK:  encoding: [0x62,0x61,0x25,0x20,0xed,0x62,0x80]
+          vpaddsw -4096(%rdx), %ymm27, %ymm28
+
+// CHECK: vpaddsw -4128(%rdx), %ymm27, %ymm28
+// CHECK:  encoding: [0x62,0x61,0x25,0x20,0xed,0xa2,0xe0,0xef,0xff,0xff]
+          vpaddsw -4128(%rdx), %ymm27, %ymm28
+
+// CHECK: vpaddusb %xmm18, %xmm21, %xmm17
+// CHECK:  encoding: [0x62,0xa1,0x55,0x00,0xdc,0xca]
+          vpaddusb %xmm18, %xmm21, %xmm17
+
+// CHECK: vpaddusb %xmm18, %xmm21, %xmm17 {%k4}
+// CHECK:  encoding: [0x62,0xa1,0x55,0x04,0xdc,0xca]
+          vpaddusb %xmm18, %xmm21, %xmm17 {%k4}
+
+// CHECK: vpaddusb %xmm18, %xmm21, %xmm17 {%k4} {z}
+// CHECK:  encoding: [0x62,0xa1,0x55,0x84,0xdc,0xca]
+          vpaddusb %xmm18, %xmm21, %xmm17 {%k4} {z}
+
+// CHECK: vpaddusb (%rcx), %xmm21, %xmm17
+// CHECK:  encoding: [0x62,0xe1,0x55,0x00,0xdc,0x09]
+          vpaddusb (%rcx), %xmm21, %xmm17
+
+// CHECK: vpaddusb 4660(%rax,%r14,8), %xmm21, %xmm17
+// CHECK:  encoding: [0x62,0xa1,0x55,0x00,0xdc,0x8c,0xf0,0x34,0x12,0x00,0x00]
+          vpaddusb 4660(%rax,%r14,8), %xmm21, %xmm17
+
+// CHECK: vpaddusb 2032(%rdx), %xmm21, %xmm17
+// CHECK:  encoding: [0x62,0xe1,0x55,0x00,0xdc,0x4a,0x7f]
+          vpaddusb 2032(%rdx), %xmm21, %xmm17
+
+// CHECK: vpaddusb 2048(%rdx), %xmm21, %xmm17
+// CHECK:  encoding: [0x62,0xe1,0x55,0x00,0xdc,0x8a,0x00,0x08,0x00,0x00]
+          vpaddusb 2048(%rdx), %xmm21, %xmm17
+
+// CHECK: vpaddusb -2048(%rdx), %xmm21, %xmm17
+// CHECK:  encoding: [0x62,0xe1,0x55,0x00,0xdc,0x4a,0x80]
+          vpaddusb -2048(%rdx), %xmm21, %xmm17
+
+// CHECK: vpaddusb -2064(%rdx), %xmm21, %xmm17
+// CHECK:  encoding: [0x62,0xe1,0x55,0x00,0xdc,0x8a,0xf0,0xf7,0xff,0xff]
+          vpaddusb -2064(%rdx), %xmm21, %xmm17
+
+// CHECK: vpaddusb %ymm24, %ymm20, %ymm21
+// CHECK:  encoding: [0x62,0x81,0x5d,0x20,0xdc,0xe8]
+          vpaddusb %ymm24, %ymm20, %ymm21
+
+// CHECK: vpaddusb %ymm24, %ymm20, %ymm21 {%k2}
+// CHECK:  encoding: [0x62,0x81,0x5d,0x22,0xdc,0xe8]
+          vpaddusb %ymm24, %ymm20, %ymm21 {%k2}
+
+// CHECK: vpaddusb %ymm24, %ymm20, %ymm21 {%k2} {z}
+// CHECK:  encoding: [0x62,0x81,0x5d,0xa2,0xdc,0xe8]
+          vpaddusb %ymm24, %ymm20, %ymm21 {%k2} {z}
+
+// CHECK: vpaddusb (%rcx), %ymm20, %ymm21
+// CHECK:  encoding: [0x62,0xe1,0x5d,0x20,0xdc,0x29]
+          vpaddusb (%rcx), %ymm20, %ymm21
+
+// CHECK: vpaddusb 4660(%rax,%r14,8), %ymm20, %ymm21
+// CHECK:  encoding: [0x62,0xa1,0x5d,0x20,0xdc,0xac,0xf0,0x34,0x12,0x00,0x00]
+          vpaddusb 4660(%rax,%r14,8), %ymm20, %ymm21
+
+// CHECK: vpaddusb 4064(%rdx), %ymm20, %ymm21
+// CHECK:  encoding: [0x62,0xe1,0x5d,0x20,0xdc,0x6a,0x7f]
+          vpaddusb 4064(%rdx), %ymm20, %ymm21
+
+// CHECK: vpaddusb 4096(%rdx), %ymm20, %ymm21
+// CHECK:  encoding: [0x62,0xe1,0x5d,0x20,0xdc,0xaa,0x00,0x10,0x00,0x00]
+          vpaddusb 4096(%rdx), %ymm20, %ymm21
+
+// CHECK: vpaddusb -4096(%rdx), %ymm20, %ymm21
+// CHECK:  encoding: [0x62,0xe1,0x5d,0x20,0xdc,0x6a,0x80]
+          vpaddusb -4096(%rdx), %ymm20, %ymm21
+
+// CHECK: vpaddusb -4128(%rdx), %ymm20, %ymm21
+// CHECK:  encoding: [0x62,0xe1,0x5d,0x20,0xdc,0xaa,0xe0,0xef,0xff,0xff]
+          vpaddusb -4128(%rdx), %ymm20, %ymm21
+
+// CHECK: vpaddusw %xmm28, %xmm24, %xmm22
+// CHECK:  encoding: [0x62,0x81,0x3d,0x00,0xdd,0xf4]
+          vpaddusw %xmm28, %xmm24, %xmm22
+
+// CHECK: vpaddusw %xmm28, %xmm24, %xmm22 {%k6}
+// CHECK:  encoding: [0x62,0x81,0x3d,0x06,0xdd,0xf4]
+          vpaddusw %xmm28, %xmm24, %xmm22 {%k6}
+
+// CHECK: vpaddusw %xmm28, %xmm24, %xmm22 {%k6} {z}
+// CHECK:  encoding: [0x62,0x81,0x3d,0x86,0xdd,0xf4]
+          vpaddusw %xmm28, %xmm24, %xmm22 {%k6} {z}
+
+// CHECK: vpaddusw (%rcx), %xmm24, %xmm22
+// CHECK:  encoding: [0x62,0xe1,0x3d,0x00,0xdd,0x31]
+          vpaddusw (%rcx), %xmm24, %xmm22
+
+// CHECK: vpaddusw 4660(%rax,%r14,8), %xmm24, %xmm22
+// CHECK:  encoding: [0x62,0xa1,0x3d,0x00,0xdd,0xb4,0xf0,0x34,0x12,0x00,0x00]
+          vpaddusw 4660(%rax,%r14,8), %xmm24, %xmm22
+
+// CHECK: vpaddusw 2032(%rdx), %xmm24, %xmm22
+// CHECK:  encoding: [0x62,0xe1,0x3d,0x00,0xdd,0x72,0x7f]
+          vpaddusw 2032(%rdx), %xmm24, %xmm22
+
+// CHECK: vpaddusw 2048(%rdx), %xmm24, %xmm22
+// CHECK:  encoding: [0x62,0xe1,0x3d,0x00,0xdd,0xb2,0x00,0x08,0x00,0x00]
+          vpaddusw 2048(%rdx), %xmm24, %xmm22
+
+// CHECK: vpaddusw -2048(%rdx), %xmm24, %xmm22
+// CHECK:  encoding: [0x62,0xe1,0x3d,0x00,0xdd,0x72,0x80]
+          vpaddusw -2048(%rdx), %xmm24, %xmm22
+
+// CHECK: vpaddusw -2064(%rdx), %xmm24, %xmm22
+// CHECK:  encoding: [0x62,0xe1,0x3d,0x00,0xdd,0xb2,0xf0,0xf7,0xff,0xff]
+          vpaddusw -2064(%rdx), %xmm24, %xmm22
+
+// CHECK: vpaddusw %ymm25, %ymm19, %ymm21
+// CHECK:  encoding: [0x62,0x81,0x65,0x20,0xdd,0xe9]
+          vpaddusw %ymm25, %ymm19, %ymm21
+
+// CHECK: vpaddusw %ymm25, %ymm19, %ymm21 {%k2}
+// CHECK:  encoding: [0x62,0x81,0x65,0x22,0xdd,0xe9]
+          vpaddusw %ymm25, %ymm19, %ymm21 {%k2}
+
+// CHECK: vpaddusw %ymm25, %ymm19, %ymm21 {%k2} {z}
+// CHECK:  encoding: [0x62,0x81,0x65,0xa2,0xdd,0xe9]
+          vpaddusw %ymm25, %ymm19, %ymm21 {%k2} {z}
+
+// CHECK: vpaddusw (%rcx), %ymm19, %ymm21
+// CHECK:  encoding: [0x62,0xe1,0x65,0x20,0xdd,0x29]
+          vpaddusw (%rcx), %ymm19, %ymm21
+
+// CHECK: vpaddusw 4660(%rax,%r14,8), %ymm19, %ymm21
+// CHECK:  encoding: [0x62,0xa1,0x65,0x20,0xdd,0xac,0xf0,0x34,0x12,0x00,0x00]
+          vpaddusw 4660(%rax,%r14,8), %ymm19, %ymm21
+
+// CHECK: vpaddusw 4064(%rdx), %ymm19, %ymm21
+// CHECK:  encoding: [0x62,0xe1,0x65,0x20,0xdd,0x6a,0x7f]
+          vpaddusw 4064(%rdx), %ymm19, %ymm21
+
+// CHECK: vpaddusw 4096(%rdx), %ymm19, %ymm21
+// CHECK:  encoding: [0x62,0xe1,0x65,0x20,0xdd,0xaa,0x00,0x10,0x00,0x00]
+          vpaddusw 4096(%rdx), %ymm19, %ymm21
+
+// CHECK: vpaddusw -4096(%rdx), %ymm19, %ymm21
+// CHECK:  encoding: [0x62,0xe1,0x65,0x20,0xdd,0x6a,0x80]
+          vpaddusw -4096(%rdx), %ymm19, %ymm21
+
+// CHECK: vpaddusw -4128(%rdx), %ymm19, %ymm21
+// CHECK:  encoding: [0x62,0xe1,0x65,0x20,0xdd,0xaa,0xe0,0xef,0xff,0xff]
+          vpaddusw -4128(%rdx), %ymm19, %ymm21
+
+// CHECK: vpsubsb %xmm22, %xmm26, %xmm20
+// CHECK:  encoding: [0x62,0xa1,0x2d,0x00,0xe8,0xe6]
+          vpsubsb %xmm22, %xmm26, %xmm20
+
+// CHECK: vpsubsb %xmm22, %xmm26, %xmm20 {%k1}
+// CHECK:  encoding: [0x62,0xa1,0x2d,0x01,0xe8,0xe6]
+          vpsubsb %xmm22, %xmm26, %xmm20 {%k1}
+
+// CHECK: vpsubsb %xmm22, %xmm26, %xmm20 {%k1} {z}
+// CHECK:  encoding: [0x62,0xa1,0x2d,0x81,0xe8,0xe6]
+          vpsubsb %xmm22, %xmm26, %xmm20 {%k1} {z}
+
+// CHECK: vpsubsb (%rcx), %xmm26, %xmm20
+// CHECK:  encoding: [0x62,0xe1,0x2d,0x00,0xe8,0x21]
+          vpsubsb (%rcx), %xmm26, %xmm20
+
+// CHECK: vpsubsb 4660(%rax,%r14,8), %xmm26, %xmm20
+// CHECK:  encoding: [0x62,0xa1,0x2d,0x00,0xe8,0xa4,0xf0,0x34,0x12,0x00,0x00]
+          vpsubsb 4660(%rax,%r14,8), %xmm26, %xmm20
+
+// CHECK: vpsubsb 2032(%rdx), %xmm26, %xmm20
+// CHECK:  encoding: [0x62,0xe1,0x2d,0x00,0xe8,0x62,0x7f]
+          vpsubsb 2032(%rdx), %xmm26, %xmm20
+
+// CHECK: vpsubsb 2048(%rdx), %xmm26, %xmm20
+// CHECK:  encoding: [0x62,0xe1,0x2d,0x00,0xe8,0xa2,0x00,0x08,0x00,0x00]
+          vpsubsb 2048(%rdx), %xmm26, %xmm20
+
+// CHECK: vpsubsb -2048(%rdx), %xmm26, %xmm20
+// CHECK:  encoding: [0x62,0xe1,0x2d,0x00,0xe8,0x62,0x80]
+          vpsubsb -2048(%rdx), %xmm26, %xmm20
+
+// CHECK: vpsubsb -2064(%rdx), %xmm26, %xmm20
+// CHECK:  encoding: [0x62,0xe1,0x2d,0x00,0xe8,0xa2,0xf0,0xf7,0xff,0xff]
+          vpsubsb -2064(%rdx), %xmm26, %xmm20
+
+// CHECK: vpsubsb %ymm26, %ymm18, %ymm25
+// CHECK:  encoding: [0x62,0x01,0x6d,0x20,0xe8,0xca]
+          vpsubsb %ymm26, %ymm18, %ymm25
+
+// CHECK: vpsubsb %ymm26, %ymm18, %ymm25 {%k6}
+// CHECK:  encoding: [0x62,0x01,0x6d,0x26,0xe8,0xca]
+          vpsubsb %ymm26, %ymm18, %ymm25 {%k6}
+
+// CHECK: vpsubsb %ymm26, %ymm18, %ymm25 {%k6} {z}
+// CHECK:  encoding: [0x62,0x01,0x6d,0xa6,0xe8,0xca]
+          vpsubsb %ymm26, %ymm18, %ymm25 {%k6} {z}
+
+// CHECK: vpsubsb (%rcx), %ymm18, %ymm25
+// CHECK:  encoding: [0x62,0x61,0x6d,0x20,0xe8,0x09]
+          vpsubsb (%rcx), %ymm18, %ymm25
+
+// CHECK: vpsubsb 4660(%rax,%r14,8), %ymm18, %ymm25
+// CHECK:  encoding: [0x62,0x21,0x6d,0x20,0xe8,0x8c,0xf0,0x34,0x12,0x00,0x00]
+          vpsubsb 4660(%rax,%r14,8), %ymm18, %ymm25
+
+// CHECK: vpsubsb 4064(%rdx), %ymm18, %ymm25
+// CHECK:  encoding: [0x62,0x61,0x6d,0x20,0xe8,0x4a,0x7f]
+          vpsubsb 4064(%rdx), %ymm18, %ymm25
+
+// CHECK: vpsubsb 4096(%rdx), %ymm18, %ymm25
+// CHECK:  encoding: [0x62,0x61,0x6d,0x20,0xe8,0x8a,0x00,0x10,0x00,0x00]
+          vpsubsb 4096(%rdx), %ymm18, %ymm25
+
+// CHECK: vpsubsb -4096(%rdx), %ymm18, %ymm25
+// CHECK:  encoding: [0x62,0x61,0x6d,0x20,0xe8,0x4a,0x80]
+          vpsubsb -4096(%rdx), %ymm18, %ymm25
+
+// CHECK: vpsubsb -4128(%rdx), %ymm18, %ymm25
+// CHECK:  encoding: [0x62,0x61,0x6d,0x20,0xe8,0x8a,0xe0,0xef,0xff,0xff]
+          vpsubsb -4128(%rdx), %ymm18, %ymm25
+
+// CHECK: vpsubsw %xmm28, %xmm27, %xmm26
+// CHECK:  encoding: [0x62,0x01,0x25,0x00,0xe9,0xd4]
+          vpsubsw %xmm28, %xmm27, %xmm26
+
+// CHECK: vpsubsw %xmm28, %xmm27, %xmm26 {%k5}
+// CHECK:  encoding: [0x62,0x01,0x25,0x05,0xe9,0xd4]
+          vpsubsw %xmm28, %xmm27, %xmm26 {%k5}
+
+// CHECK: vpsubsw %xmm28, %xmm27, %xmm26 {%k5} {z}
+// CHECK:  encoding: [0x62,0x01,0x25,0x85,0xe9,0xd4]
+          vpsubsw %xmm28, %xmm27, %xmm26 {%k5} {z}
+
+// CHECK: vpsubsw (%rcx), %xmm27, %xmm26
+// CHECK:  encoding: [0x62,0x61,0x25,0x00,0xe9,0x11]
+          vpsubsw (%rcx), %xmm27, %xmm26
+
+// CHECK: vpsubsw 4660(%rax,%r14,8), %xmm27, %xmm26
+// CHECK:  encoding: [0x62,0x21,0x25,0x00,0xe9,0x94,0xf0,0x34,0x12,0x00,0x00]
+          vpsubsw 4660(%rax,%r14,8), %xmm27, %xmm26
+
+// CHECK: vpsubsw 2032(%rdx), %xmm27, %xmm26
+// CHECK:  encoding: [0x62,0x61,0x25,0x00,0xe9,0x52,0x7f]
+          vpsubsw 2032(%rdx), %xmm27, %xmm26
+
+// CHECK: vpsubsw 2048(%rdx), %xmm27, %xmm26
+// CHECK:  encoding: [0x62,0x61,0x25,0x00,0xe9,0x92,0x00,0x08,0x00,0x00]
+          vpsubsw 2048(%rdx), %xmm27, %xmm26
+
+// CHECK: vpsubsw -2048(%rdx), %xmm27, %xmm26
+// CHECK:  encoding: [0x62,0x61,0x25,0x00,0xe9,0x52,0x80]
+          vpsubsw -2048(%rdx), %xmm27, %xmm26
+
+// CHECK: vpsubsw -2064(%rdx), %xmm27, %xmm26
+// CHECK:  encoding: [0x62,0x61,0x25,0x00,0xe9,0x92,0xf0,0xf7,0xff,0xff]
+          vpsubsw -2064(%rdx), %xmm27, %xmm26
+
+// CHECK: vpsubsw %ymm21, %ymm25, %ymm22
+// CHECK:  encoding: [0x62,0xa1,0x35,0x20,0xe9,0xf5]
+          vpsubsw %ymm21, %ymm25, %ymm22
+
+// CHECK: vpsubsw %ymm21, %ymm25, %ymm22 {%k3}
+// CHECK:  encoding: [0x62,0xa1,0x35,0x23,0xe9,0xf5]
+          vpsubsw %ymm21, %ymm25, %ymm22 {%k3}
+
+// CHECK: vpsubsw %ymm21, %ymm25, %ymm22 {%k3} {z}
+// CHECK:  encoding: [0x62,0xa1,0x35,0xa3,0xe9,0xf5]
+          vpsubsw %ymm21, %ymm25, %ymm22 {%k3} {z}
+
+// CHECK: vpsubsw (%rcx), %ymm25, %ymm22
+// CHECK:  encoding: [0x62,0xe1,0x35,0x20,0xe9,0x31]
+          vpsubsw (%rcx), %ymm25, %ymm22
+
+// CHECK: vpsubsw 4660(%rax,%r14,8), %ymm25, %ymm22
+// CHECK:  encoding: [0x62,0xa1,0x35,0x20,0xe9,0xb4,0xf0,0x34,0x12,0x00,0x00]
+          vpsubsw 4660(%rax,%r14,8), %ymm25, %ymm22
+
+// CHECK: vpsubsw 4064(%rdx), %ymm25, %ymm22
+// CHECK:  encoding: [0x62,0xe1,0x35,0x20,0xe9,0x72,0x7f]
+          vpsubsw 4064(%rdx), %ymm25, %ymm22
+
+// CHECK: vpsubsw 4096(%rdx), %ymm25, %ymm22
+// CHECK:  encoding: [0x62,0xe1,0x35,0x20,0xe9,0xb2,0x00,0x10,0x00,0x00]
+          vpsubsw 4096(%rdx), %ymm25, %ymm22
+
+// CHECK: vpsubsw -4096(%rdx), %ymm25, %ymm22
+// CHECK:  encoding: [0x62,0xe1,0x35,0x20,0xe9,0x72,0x80]
+          vpsubsw -4096(%rdx), %ymm25, %ymm22
+
+// CHECK: vpsubsw -4128(%rdx), %ymm25, %ymm22
+// CHECK:  encoding: [0x62,0xe1,0x35,0x20,0xe9,0xb2,0xe0,0xef,0xff,0xff]
+          vpsubsw -4128(%rdx), %ymm25, %ymm22
+
+// CHECK: vpsubusb %xmm26, %xmm27, %xmm18
+// CHECK:  encoding: [0x62,0x81,0x25,0x00,0xd8,0xd2]
+          vpsubusb %xmm26, %xmm27, %xmm18
+
+// CHECK: vpsubusb %xmm26, %xmm27, %xmm18 {%k2}
+// CHECK:  encoding: [0x62,0x81,0x25,0x02,0xd8,0xd2]
+          vpsubusb %xmm26, %xmm27, %xmm18 {%k2}
+
+// CHECK: vpsubusb %xmm26, %xmm27, %xmm18 {%k2} {z}
+// CHECK:  encoding: [0x62,0x81,0x25,0x82,0xd8,0xd2]
+          vpsubusb %xmm26, %xmm27, %xmm18 {%k2} {z}
+
+// CHECK: vpsubusb (%rcx), %xmm27, %xmm18
+// CHECK:  encoding: [0x62,0xe1,0x25,0x00,0xd8,0x11]
+          vpsubusb (%rcx), %xmm27, %xmm18
+
+// CHECK: vpsubusb 4660(%rax,%r14,8), %xmm27, %xmm18
+// CHECK:  encoding: [0x62,0xa1,0x25,0x00,0xd8,0x94,0xf0,0x34,0x12,0x00,0x00]
+          vpsubusb 4660(%rax,%r14,8), %xmm27, %xmm18
+
+// CHECK: vpsubusb 2032(%rdx), %xmm27, %xmm18
+// CHECK:  encoding: [0x62,0xe1,0x25,0x00,0xd8,0x52,0x7f]
+          vpsubusb 2032(%rdx), %xmm27, %xmm18
+
+// CHECK: vpsubusb 2048(%rdx), %xmm27, %xmm18
+// CHECK:  encoding: [0x62,0xe1,0x25,0x00,0xd8,0x92,0x00,0x08,0x00,0x00]
+          vpsubusb 2048(%rdx), %xmm27, %xmm18
+
+// CHECK: vpsubusb -2048(%rdx), %xmm27, %xmm18
+// CHECK:  encoding: [0x62,0xe1,0x25,0x00,0xd8,0x52,0x80]
+          vpsubusb -2048(%rdx), %xmm27, %xmm18
+
+// CHECK: vpsubusb -2064(%rdx), %xmm27, %xmm18
+// CHECK:  encoding: [0x62,0xe1,0x25,0x00,0xd8,0x92,0xf0,0xf7,0xff,0xff]
+          vpsubusb -2064(%rdx), %xmm27, %xmm18
+
+// CHECK: vpsubusb %ymm19, %ymm19, %ymm25
+// CHECK:  encoding: [0x62,0x21,0x65,0x20,0xd8,0xcb]
+          vpsubusb %ymm19, %ymm19, %ymm25
+
+// CHECK: vpsubusb %ymm19, %ymm19, %ymm25 {%k6}
+// CHECK:  encoding: [0x62,0x21,0x65,0x26,0xd8,0xcb]
+          vpsubusb %ymm19, %ymm19, %ymm25 {%k6}
+
+// CHECK: vpsubusb %ymm19, %ymm19, %ymm25 {%k6} {z}
+// CHECK:  encoding: [0x62,0x21,0x65,0xa6,0xd8,0xcb]
+          vpsubusb %ymm19, %ymm19, %ymm25 {%k6} {z}
+
+// CHECK: vpsubusb (%rcx), %ymm19, %ymm25
+// CHECK:  encoding: [0x62,0x61,0x65,0x20,0xd8,0x09]
+          vpsubusb (%rcx), %ymm19, %ymm25
+
+// CHECK: vpsubusb 4660(%rax,%r14,8), %ymm19, %ymm25
+// CHECK:  encoding: [0x62,0x21,0x65,0x20,0xd8,0x8c,0xf0,0x34,0x12,0x00,0x00]
+          vpsubusb 4660(%rax,%r14,8), %ymm19, %ymm25
+
+// CHECK: vpsubusb 4064(%rdx), %ymm19, %ymm25
+// CHECK:  encoding: [0x62,0x61,0x65,0x20,0xd8,0x4a,0x7f]
+          vpsubusb 4064(%rdx), %ymm19, %ymm25
+
+// CHECK: vpsubusb 4096(%rdx), %ymm19, %ymm25
+// CHECK:  encoding: [0x62,0x61,0x65,0x20,0xd8,0x8a,0x00,0x10,0x00,0x00]
+          vpsubusb 4096(%rdx), %ymm19, %ymm25
+
+// CHECK: vpsubusb -4096(%rdx), %ymm19, %ymm25
+// CHECK:  encoding: [0x62,0x61,0x65,0x20,0xd8,0x4a,0x80]
+          vpsubusb -4096(%rdx), %ymm19, %ymm25
+
+// CHECK: vpsubusb -4128(%rdx), %ymm19, %ymm25
+// CHECK:  encoding: [0x62,0x61,0x65,0x20,0xd8,0x8a,0xe0,0xef,0xff,0xff]
+          vpsubusb -4128(%rdx), %ymm19, %ymm25
+
+// CHECK: vpsubusw %xmm25, %xmm27, %xmm21
+// CHECK:  encoding: [0x62,0x81,0x25,0x00,0xd9,0xe9]
+          vpsubusw %xmm25, %xmm27, %xmm21
+
+// CHECK: vpsubusw %xmm25, %xmm27, %xmm21 {%k5}
+// CHECK:  encoding: [0x62,0x81,0x25,0x05,0xd9,0xe9]
+          vpsubusw %xmm25, %xmm27, %xmm21 {%k5}
+
+// CHECK: vpsubusw %xmm25, %xmm27, %xmm21 {%k5} {z}
+// CHECK:  encoding: [0x62,0x81,0x25,0x85,0xd9,0xe9]
+          vpsubusw %xmm25, %xmm27, %xmm21 {%k5} {z}
+
+// CHECK: vpsubusw (%rcx), %xmm27, %xmm21
+// CHECK:  encoding: [0x62,0xe1,0x25,0x00,0xd9,0x29]
+          vpsubusw (%rcx), %xmm27, %xmm21
+
+// CHECK: vpsubusw 4660(%rax,%r14,8), %xmm27, %xmm21
+// CHECK:  encoding: [0x62,0xa1,0x25,0x00,0xd9,0xac,0xf0,0x34,0x12,0x00,0x00]
+          vpsubusw 4660(%rax,%r14,8), %xmm27, %xmm21
+
+// CHECK: vpsubusw 2032(%rdx), %xmm27, %xmm21
+// CHECK:  encoding: [0x62,0xe1,0x25,0x00,0xd9,0x6a,0x7f]
+          vpsubusw 2032(%rdx), %xmm27, %xmm21
+
+// CHECK: vpsubusw 2048(%rdx), %xmm27, %xmm21
+// CHECK:  encoding: [0x62,0xe1,0x25,0x00,0xd9,0xaa,0x00,0x08,0x00,0x00]
+          vpsubusw 2048(%rdx), %xmm27, %xmm21
+
+// CHECK: vpsubusw -2048(%rdx), %xmm27, %xmm21
+// CHECK:  encoding: [0x62,0xe1,0x25,0x00,0xd9,0x6a,0x80]
+          vpsubusw -2048(%rdx), %xmm27, %xmm21
+
+// CHECK: vpsubusw -2064(%rdx), %xmm27, %xmm21
+// CHECK:  encoding: [0x62,0xe1,0x25,0x00,0xd9,0xaa,0xf0,0xf7,0xff,0xff]
+          vpsubusw -2064(%rdx), %xmm27, %xmm21
+
+// CHECK: vpsubusw %ymm17, %ymm25, %ymm27
+// CHECK:  encoding: [0x62,0x21,0x35,0x20,0xd9,0xd9]
+          vpsubusw %ymm17, %ymm25, %ymm27
+
+// CHECK: vpsubusw %ymm17, %ymm25, %ymm27 {%k4}
+// CHECK:  encoding: [0x62,0x21,0x35,0x24,0xd9,0xd9]
+          vpsubusw %ymm17, %ymm25, %ymm27 {%k4}
+
+// CHECK: vpsubusw %ymm17, %ymm25, %ymm27 {%k4} {z}
+// CHECK:  encoding: [0x62,0x21,0x35,0xa4,0xd9,0xd9]
+          vpsubusw %ymm17, %ymm25, %ymm27 {%k4} {z}
+
+// CHECK: vpsubusw (%rcx), %ymm25, %ymm27
+// CHECK:  encoding: [0x62,0x61,0x35,0x20,0xd9,0x19]
+          vpsubusw (%rcx), %ymm25, %ymm27
+
+// CHECK: vpsubusw 4660(%rax,%r14,8), %ymm25, %ymm27
+// CHECK:  encoding: [0x62,0x21,0x35,0x20,0xd9,0x9c,0xf0,0x34,0x12,0x00,0x00]
+          vpsubusw 4660(%rax,%r14,8), %ymm25, %ymm27
+
+// CHECK: vpsubusw 4064(%rdx), %ymm25, %ymm27
+// CHECK:  encoding: [0x62,0x61,0x35,0x20,0xd9,0x5a,0x7f]
+          vpsubusw 4064(%rdx), %ymm25, %ymm27
+
+// CHECK: vpsubusw 4096(%rdx), %ymm25, %ymm27
+// CHECK:  encoding: [0x62,0x61,0x35,0x20,0xd9,0x9a,0x00,0x10,0x00,0x00]
+          vpsubusw 4096(%rdx), %ymm25, %ymm27
+
+// CHECK: vpsubusw -4096(%rdx), %ymm25, %ymm27
+// CHECK:  encoding: [0x62,0x61,0x35,0x20,0xd9,0x5a,0x80]
+          vpsubusw -4096(%rdx), %ymm25, %ymm27
+
+// CHECK: vpsubusw -4128(%rdx), %ymm25, %ymm27
+// CHECK:  encoding: [0x62,0x61,0x35,0x20,0xd9,0x9a,0xe0,0xef,0xff,0xff]
+          vpsubusw -4128(%rdx), %ymm25, %ymm27





More information about the llvm-commits mailing list