summaryrefslogtreecommitdiffstats
path: root/llvm/test
diff options
context:
space:
mode:
authorCoby Tayree <coby.tayree@intel.com>2017-11-21 10:04:28 +0000
committerCoby Tayree <coby.tayree@intel.com>2017-11-21 10:04:28 +0000
commit3880f2a36396bec311ba6f1e70021d1edd6fa614 (patch)
tree3956b87c1161ecd088aca1ecc330e612211fdb8a /llvm/test
parent71e37cc9ffd5c1928946fb15368096c55915af01 (diff)
downloadbcm5719-llvm-3880f2a36396bec311ba6f1e70021d1edd6fa614.tar.gz
bcm5719-llvm-3880f2a36396bec311ba6f1e70021d1edd6fa614.zip
[x86][icelake]VNNI
Introducing Vector Neural Network Instructions, consisting of: vpdpbusd{s} vpdpwssd{s} Differential Revision: https://reviews.llvm.org/D40208 llvm-svn: 318746
Diffstat (limited to 'llvm/test')
-rw-r--r--llvm/test/CodeGen/X86/avx512vl_vnni-intrinsics.ll195
-rw-r--r--llvm/test/CodeGen/X86/avx512vnni-intrinsics.ll98
-rw-r--r--llvm/test/MC/X86/avx512vl_vnni-encoding.s898
-rw-r--r--llvm/test/MC/X86/avx512vnni-encoding.s450
4 files changed, 1641 insertions, 0 deletions
diff --git a/llvm/test/CodeGen/X86/avx512vl_vnni-intrinsics.ll b/llvm/test/CodeGen/X86/avx512vl_vnni-intrinsics.ll
new file mode 100644
index 00000000000..10e82ee24ad
--- /dev/null
+++ b/llvm/test/CodeGen/X86/avx512vl_vnni-intrinsics.ll
@@ -0,0 +1,195 @@
+; RUN: llc < %s -mtriple=x86_64-apple-darwin -mcpu=knl -mattr=+avx512vnni,+avx512vl| FileCheck %s
+
+declare <8 x i32> @llvm.x86.avx512.mask.vpdpbusd.256(<8 x i32>, <8 x i32>, <8 x i32>, i8)
+declare <8 x i32> @llvm.x86.avx512.maskz.vpdpbusd.256(<8 x i32>, <8 x i32>, <8 x i32>, i8)
+
+define <8 x i32>@test_int_x86_avx512_mask_vpdpbusd_256(<8 x i32> %x0, <8 x i32> %x1, <8 x i32>* %x2p, <8 x i32> %x4, i8 %x3) {
+; CHECK-LABEL: test_int_x86_avx512_mask_vpdpbusd_256:
+; CHECK: ## BB#0:
+; CHECK-NEXT: kmovw %esi, %k1
+; CHECK-NEXT: vmovaps %ymm0, %ymm3
+; CHECK-NEXT: vpdpbusd (%rdi), %ymm1, %ymm3 {%k1}
+; CHECK-NEXT: vmovaps %ymm0, %ymm4
+; CHECK-NEXT: vpdpbusd %ymm2, %ymm1, %ymm4
+; CHECK-NEXT: vpdpbusd %ymm2, %ymm1, %ymm0 {%k1} {z}
+; CHECK-NEXT: vpaddd %ymm0, %ymm4, %ymm0
+; CHECK-NEXT: vpaddd %ymm0, %ymm3, %ymm0
+; CHECK-NEXT: retq
+ %x2 = load <8 x i32>, <8 x i32>* %x2p
+ %res = call <8 x i32> @llvm.x86.avx512.mask.vpdpbusd.256(<8 x i32> %x0, <8 x i32> %x1, <8 x i32> %x2, i8 %x3)
+ %res1 = call <8 x i32> @llvm.x86.avx512.mask.vpdpbusd.256(<8 x i32> %x0, <8 x i32> %x1, <8 x i32> %x4, i8 -1)
+ %res2 = call <8 x i32> @llvm.x86.avx512.maskz.vpdpbusd.256(<8 x i32> %x0, <8 x i32> %x1, <8 x i32> %x4, i8 %x3)
+ %res3 = add <8 x i32> %res, %res1
+ %res4 = add <8 x i32> %res2, %res3
+ ret <8 x i32> %res4
+}
+
+declare <4 x i32> @llvm.x86.avx512.mask.vpdpbusd.128(<4 x i32>, <4 x i32>, <4 x i32>, i8)
+declare <4 x i32> @llvm.x86.avx512.maskz.vpdpbusd.128(<4 x i32>, <4 x i32>, <4 x i32>, i8)
+
+define <4 x i32>@test_int_x86_avx512_mask_vpdpbusd_128(<4 x i32> %x0, <4 x i32> %x1, <4 x i32>* %x2p, <4 x i32> %x4, i8 %x3) {
+; CHECK-LABEL: test_int_x86_avx512_mask_vpdpbusd_128:
+; CHECK: ## BB#0:
+; CHECK-NEXT: kmovw %esi, %k1
+; CHECK-NEXT: vmovaps %xmm0, %xmm3
+; CHECK-NEXT: vpdpbusd (%rdi), %xmm1, %xmm3 {%k1}
+; CHECK-NEXT: vmovaps %xmm0, %xmm4
+; CHECK-NEXT: vpdpbusd %xmm2, %xmm1, %xmm4
+; CHECK-NEXT: vpdpbusd %xmm2, %xmm1, %xmm0 {%k1} {z}
+; CHECK-NEXT: vpaddd %xmm0, %xmm4, %xmm0
+; CHECK-NEXT: vpaddd %xmm0, %xmm3, %xmm0
+; CHECK-NEXT: retq
+ %x2 = load <4 x i32>, <4 x i32>* %x2p
+ %res = call <4 x i32> @llvm.x86.avx512.mask.vpdpbusd.128(<4 x i32> %x0, <4 x i32> %x1, <4 x i32> %x2, i8 %x3)
+ %res1 = call <4 x i32> @llvm.x86.avx512.mask.vpdpbusd.128(<4 x i32> %x0, <4 x i32> %x1, <4 x i32> %x4, i8 -1)
+ %res2 = call <4 x i32> @llvm.x86.avx512.maskz.vpdpbusd.128(<4 x i32> %x0, <4 x i32> %x1, <4 x i32> %x4, i8 %x3)
+ %res3 = add <4 x i32> %res, %res1
+ %res4 = add <4 x i32> %res2, %res3
+ ret <4 x i32> %res4
+}
+
+declare <8 x i32> @llvm.x86.avx512.mask.vpdpbusds.256(<8 x i32>, <8 x i32>, <8 x i32>, i8)
+declare <8 x i32> @llvm.x86.avx512.maskz.vpdpbusds.256(<8 x i32>, <8 x i32>, <8 x i32>, i8)
+
+define <8 x i32>@test_int_x86_avx512_mask_vpdpbusds_256(<8 x i32> %x0, <8 x i32> %x1, <8 x i32>* %x2p, <8 x i32> %x4, i8 %x3) {
+; CHECK-LABEL: test_int_x86_avx512_mask_vpdpbusds_256:
+; CHECK: ## BB#0:
+; CHECK-NEXT: kmovw %esi, %k1
+; CHECK-NEXT: vmovaps %ymm0, %ymm3
+; CHECK-NEXT: vpdpbusds (%rdi), %ymm1, %ymm3 {%k1}
+; CHECK-NEXT: vmovaps %ymm0, %ymm4
+; CHECK-NEXT: vpdpbusds %ymm2, %ymm1, %ymm4
+; CHECK-NEXT: vpdpbusds %ymm2, %ymm1, %ymm0 {%k1} {z}
+; CHECK-NEXT: vpaddd %ymm0, %ymm4, %ymm0
+; CHECK-NEXT: vpaddd %ymm0, %ymm3, %ymm0
+; CHECK-NEXT: retq
+ %x2 = load <8 x i32>, <8 x i32>* %x2p
+ %res = call <8 x i32> @llvm.x86.avx512.mask.vpdpbusds.256(<8 x i32> %x0, <8 x i32> %x1, <8 x i32> %x2, i8 %x3)
+ %res1 = call <8 x i32> @llvm.x86.avx512.mask.vpdpbusds.256(<8 x i32> %x0, <8 x i32> %x1, <8 x i32> %x4, i8 -1)
+ %res2 = call <8 x i32> @llvm.x86.avx512.maskz.vpdpbusds.256(<8 x i32> %x0, <8 x i32> %x1, <8 x i32> %x4, i8 %x3)
+ %res3 = add <8 x i32> %res, %res1
+ %res4 = add <8 x i32> %res2, %res3
+ ret <8 x i32> %res4
+}
+
+declare <4 x i32> @llvm.x86.avx512.mask.vpdpbusds.128(<4 x i32>, <4 x i32>, <4 x i32>, i8)
+declare <4 x i32> @llvm.x86.avx512.maskz.vpdpbusds.128(<4 x i32>, <4 x i32>, <4 x i32>, i8)
+
+define <4 x i32>@test_int_x86_avx512_mask_vpdpbusds_128(<4 x i32> %x0, <4 x i32> %x1, <4 x i32>* %x2p, <4 x i32> %x4, i8 %x3) {
+; CHECK-LABEL: test_int_x86_avx512_mask_vpdpbusds_128:
+; CHECK: ## BB#0:
+; CHECK-NEXT: kmovw %esi, %k1
+; CHECK-NEXT: vmovaps %xmm0, %xmm3
+; CHECK-NEXT: vpdpbusds (%rdi), %xmm1, %xmm3 {%k1}
+; CHECK-NEXT: vmovaps %xmm0, %xmm4
+; CHECK-NEXT: vpdpbusds %xmm2, %xmm1, %xmm4
+; CHECK-NEXT: vpdpbusds %xmm2, %xmm1, %xmm0 {%k1} {z}
+; CHECK-NEXT: vpaddd %xmm0, %xmm4, %xmm0
+; CHECK-NEXT: vpaddd %xmm0, %xmm3, %xmm0
+; CHECK-NEXT: retq
+ %x2 = load <4 x i32>, <4 x i32>* %x2p
+ %res = call <4 x i32> @llvm.x86.avx512.mask.vpdpbusds.128(<4 x i32> %x0, <4 x i32> %x1, <4 x i32> %x2, i8 %x3)
+ %res1 = call <4 x i32> @llvm.x86.avx512.mask.vpdpbusds.128(<4 x i32> %x0, <4 x i32> %x1, <4 x i32> %x4, i8 -1)
+ %res2 = call <4 x i32> @llvm.x86.avx512.maskz.vpdpbusds.128(<4 x i32> %x0, <4 x i32> %x1, <4 x i32> %x4, i8 %x3)
+ %res3 = add <4 x i32> %res, %res1
+ %res4 = add <4 x i32> %res2, %res3
+ ret <4 x i32> %res4
+}
+
+declare <8 x i32> @llvm.x86.avx512.mask.vpdpwssd.256(<8 x i32>, <8 x i32>, <8 x i32>, i8)
+declare <8 x i32> @llvm.x86.avx512.maskz.vpdpwssd.256(<8 x i32>, <8 x i32>, <8 x i32>, i8)
+
+define <8 x i32>@test_int_x86_avx512_mask_vpdpwssd_256(<8 x i32> %x0, <8 x i32> %x1, <8 x i32>* %x2p, <8 x i32> %x4, i8 %x3) {
+; CHECK-LABEL: test_int_x86_avx512_mask_vpdpwssd_256:
+; CHECK: ## BB#0:
+; CHECK-NEXT: kmovw %esi, %k1
+; CHECK-NEXT: vmovaps %ymm0, %ymm3
+; CHECK-NEXT: vpdpwssd (%rdi), %ymm1, %ymm3 {%k1}
+; CHECK-NEXT: vmovaps %ymm0, %ymm4
+; CHECK-NEXT: vpdpwssd %ymm2, %ymm1, %ymm4
+; CHECK-NEXT: vpdpwssd %ymm2, %ymm1, %ymm0 {%k1} {z}
+; CHECK-NEXT: vpaddd %ymm0, %ymm4, %ymm0
+; CHECK-NEXT: vpaddd %ymm0, %ymm3, %ymm0
+; CHECK-NEXT: retq
+ %x2 = load <8 x i32>, <8 x i32>* %x2p
+ %res = call <8 x i32> @llvm.x86.avx512.mask.vpdpwssd.256(<8 x i32> %x0, <8 x i32> %x1, <8 x i32> %x2, i8 %x3)
+ %res1 = call <8 x i32> @llvm.x86.avx512.mask.vpdpwssd.256(<8 x i32> %x0, <8 x i32> %x1, <8 x i32> %x4, i8 -1)
+ %res2 = call <8 x i32> @llvm.x86.avx512.maskz.vpdpwssd.256(<8 x i32> %x0, <8 x i32> %x1, <8 x i32> %x4, i8 %x3)
+ %res3 = add <8 x i32> %res, %res1
+ %res4 = add <8 x i32> %res2, %res3
+ ret <8 x i32> %res4
+}
+
+declare <4 x i32> @llvm.x86.avx512.mask.vpdpwssd.128(<4 x i32>, <4 x i32>, <4 x i32>, i8)
+declare <4 x i32> @llvm.x86.avx512.maskz.vpdpwssd.128(<4 x i32>, <4 x i32>, <4 x i32>, i8)
+
+define <4 x i32>@test_int_x86_avx512_mask_vpdpwssd_128(<4 x i32> %x0, <4 x i32> %x1, <4 x i32>* %x2p, <4 x i32> %x4, i8 %x3) {
+; CHECK-LABEL: test_int_x86_avx512_mask_vpdpwssd_128:
+; CHECK: ## BB#0:
+; CHECK-NEXT: kmovw %esi, %k1
+; CHECK-NEXT: vmovaps %xmm0, %xmm3
+; CHECK-NEXT: vpdpwssd (%rdi), %xmm1, %xmm3 {%k1}
+; CHECK-NEXT: vmovaps %xmm0, %xmm4
+; CHECK-NEXT: vpdpwssd %xmm2, %xmm1, %xmm4
+; CHECK-NEXT: vpdpwssd %xmm2, %xmm1, %xmm0 {%k1} {z}
+; CHECK-NEXT: vpaddd %xmm0, %xmm4, %xmm0
+; CHECK-NEXT: vpaddd %xmm0, %xmm3, %xmm0
+; CHECK-NEXT: retq
+ %x2 = load <4 x i32>, <4 x i32>* %x2p
+ %res = call <4 x i32> @llvm.x86.avx512.mask.vpdpwssd.128(<4 x i32> %x0, <4 x i32> %x1, <4 x i32> %x2, i8 %x3)
+ %res1 = call <4 x i32> @llvm.x86.avx512.mask.vpdpwssd.128(<4 x i32> %x0, <4 x i32> %x1, <4 x i32> %x4, i8 -1)
+ %res2 = call <4 x i32> @llvm.x86.avx512.maskz.vpdpwssd.128(<4 x i32> %x0, <4 x i32> %x1, <4 x i32> %x4, i8 %x3)
+ %res3 = add <4 x i32> %res, %res1
+ %res4 = add <4 x i32> %res2, %res3
+ ret <4 x i32> %res4
+}
+
+
+declare <8 x i32> @llvm.x86.avx512.mask.vpdpwssds.256(<8 x i32>, <8 x i32>, <8 x i32>, i8)
+declare <8 x i32> @llvm.x86.avx512.maskz.vpdpwssds.256(<8 x i32>, <8 x i32>, <8 x i32>, i8)
+
+define <8 x i32>@test_int_x86_avx512_mask_vpdpwssds_256(<8 x i32> %x0, <8 x i32> %x1, <8 x i32>* %x2p, <8 x i32> %x4, i8 %x3) {
+; CHECK-LABEL: test_int_x86_avx512_mask_vpdpwssds_256:
+; CHECK: ## BB#0:
+; CHECK-NEXT: kmovw %esi, %k1
+; CHECK-NEXT: vmovaps %ymm0, %ymm3
+; CHECK-NEXT: vpdpwssds (%rdi), %ymm1, %ymm3 {%k1}
+; CHECK-NEXT: vmovaps %ymm0, %ymm4
+; CHECK-NEXT: vpdpwssds %ymm2, %ymm1, %ymm4
+; CHECK-NEXT: vpdpwssds %ymm2, %ymm1, %ymm0 {%k1} {z}
+; CHECK-NEXT: vpaddd %ymm0, %ymm4, %ymm0
+; CHECK-NEXT: vpaddd %ymm0, %ymm3, %ymm0
+; CHECK-NEXT: retq
+ %x2 = load <8 x i32>, <8 x i32>* %x2p
+ %res = call <8 x i32> @llvm.x86.avx512.mask.vpdpwssds.256(<8 x i32> %x0, <8 x i32> %x1, <8 x i32> %x2, i8 %x3)
+ %res1 = call <8 x i32> @llvm.x86.avx512.mask.vpdpwssds.256(<8 x i32> %x0, <8 x i32> %x1, <8 x i32> %x4, i8 -1)
+ %res2 = call <8 x i32> @llvm.x86.avx512.maskz.vpdpwssds.256(<8 x i32> %x0, <8 x i32> %x1, <8 x i32> %x4, i8 %x3)
+ %res3 = add <8 x i32> %res, %res1
+ %res4 = add <8 x i32> %res2, %res3
+ ret <8 x i32> %res4
+}
+
+declare <4 x i32> @llvm.x86.avx512.mask.vpdpwssds.128(<4 x i32>, <4 x i32>, <4 x i32>, i8)
+declare <4 x i32> @llvm.x86.avx512.maskz.vpdpwssds.128(<4 x i32>, <4 x i32>, <4 x i32>, i8)
+
+define <4 x i32>@test_int_x86_avx512_mask_vpdpwssds_128(<4 x i32> %x0, <4 x i32> %x1, <4 x i32>* %x2p, <4 x i32> %x4, i8 %x3) {
+; CHECK-LABEL: test_int_x86_avx512_mask_vpdpwssds_128:
+; CHECK: ## BB#0:
+; CHECK-NEXT: kmovw %esi, %k1
+; CHECK-NEXT: vmovaps %xmm0, %xmm3
+; CHECK-NEXT: vpdpwssds (%rdi), %xmm1, %xmm3 {%k1}
+; CHECK-NEXT: vmovaps %xmm0, %xmm4
+; CHECK-NEXT: vpdpwssds %xmm2, %xmm1, %xmm4
+; CHECK-NEXT: vpdpwssds %xmm2, %xmm1, %xmm0 {%k1} {z}
+; CHECK-NEXT: vpaddd %xmm0, %xmm4, %xmm0
+; CHECK-NEXT: vpaddd %xmm0, %xmm3, %xmm0
+; CHECK-NEXT: retq
+ %x2 = load <4 x i32>, <4 x i32>* %x2p
+ %res = call <4 x i32> @llvm.x86.avx512.mask.vpdpwssds.128(<4 x i32> %x0, <4 x i32> %x1, <4 x i32> %x2, i8 %x3)
+ %res1 = call <4 x i32> @llvm.x86.avx512.mask.vpdpwssds.128(<4 x i32> %x0, <4 x i32> %x1, <4 x i32> %x4, i8 -1)
+ %res2 = call <4 x i32> @llvm.x86.avx512.maskz.vpdpwssds.128(<4 x i32> %x0, <4 x i32> %x1, <4 x i32> %x4, i8 %x3)
+ %res3 = add <4 x i32> %res, %res1
+ %res4 = add <4 x i32> %res2, %res3
+ ret <4 x i32> %res4
+}
+
diff --git a/llvm/test/CodeGen/X86/avx512vnni-intrinsics.ll b/llvm/test/CodeGen/X86/avx512vnni-intrinsics.ll
new file mode 100644
index 00000000000..3cd1011563a
--- /dev/null
+++ b/llvm/test/CodeGen/X86/avx512vnni-intrinsics.ll
@@ -0,0 +1,98 @@
+; RUN: llc < %s -mtriple=x86_64-apple-darwin -mcpu=knl -mattr=+avx512vnni | FileCheck %s
+
+declare <16 x i32> @llvm.x86.avx512.mask.vpdpbusd.512(<16 x i32>, <16 x i32>, <16 x i32>, i16)
+declare <16 x i32> @llvm.x86.avx512.maskz.vpdpbusd.512(<16 x i32>, <16 x i32>, <16 x i32>, i16)
+
+define <16 x i32>@test_int_x86_avx512_mask_vpdpbusd_512(<16 x i32> %x0, <16 x i32> %x1, <16 x i32>* %x2p, <16 x i32> %x4, i16 %x3) {
+; CHECK-LABEL: test_int_x86_avx512_mask_vpdpbusd_512:
+; CHECK: ## BB#0:
+; CHECK-NEXT: kmovw %esi, %k1
+; CHECK-NEXT: vmovaps %zmm0, %zmm3
+; CHECK-NEXT: vpdpbusd (%rdi), %zmm1, %zmm3 {%k1}
+; CHECK-NEXT: vmovaps %zmm0, %zmm4
+; CHECK-NEXT: vpdpbusd %zmm2, %zmm1, %zmm4
+; CHECK-NEXT: vpdpbusd %zmm2, %zmm1, %zmm0 {%k1} {z}
+; CHECK-NEXT: vpaddd %zmm0, %zmm4, %zmm0
+; CHECK-NEXT: vpaddd %zmm0, %zmm3, %zmm0
+; CHECK-NEXT: retq
+ %x2 = load <16 x i32>, <16 x i32>* %x2p
+ %res = call <16 x i32> @llvm.x86.avx512.mask.vpdpbusd.512(<16 x i32> %x0, <16 x i32> %x1, <16 x i32> %x2, i16 %x3)
+ %res1 = call <16 x i32> @llvm.x86.avx512.mask.vpdpbusd.512(<16 x i32> %x0, <16 x i32> %x1, <16 x i32> %x4, i16 -1)
+ %res2 = call <16 x i32> @llvm.x86.avx512.maskz.vpdpbusd.512(<16 x i32> %x0, <16 x i32> %x1, <16 x i32> %x4, i16 %x3)
+ %res3 = add <16 x i32> %res, %res1
+ %res4 = add <16 x i32> %res2, %res3
+ ret <16 x i32> %res4
+}
+
+declare <16 x i32> @llvm.x86.avx512.mask.vpdpbusds.512(<16 x i32>, <16 x i32>, <16 x i32>, i16)
+declare <16 x i32> @llvm.x86.avx512.maskz.vpdpbusds.512(<16 x i32>, <16 x i32>, <16 x i32>, i16)
+
+define <16 x i32>@test_int_x86_avx512_mask_vpdpbusds_512(<16 x i32> %x0, <16 x i32> %x1, <16 x i32>* %x2p, <16 x i32> %x4, i16 %x3) {
+; CHECK-LABEL: test_int_x86_avx512_mask_vpdpbusds_512:
+; CHECK: ## BB#0:
+; CHECK-NEXT: kmovw %esi, %k1
+; CHECK-NEXT: vmovaps %zmm0, %zmm3
+; CHECK-NEXT: vpdpbusds (%rdi), %zmm1, %zmm3 {%k1}
+; CHECK-NEXT: vmovaps %zmm0, %zmm4
+; CHECK-NEXT: vpdpbusds %zmm2, %zmm1, %zmm4
+; CHECK-NEXT: vpdpbusds %zmm2, %zmm1, %zmm0 {%k1} {z}
+; CHECK-NEXT: vpaddd %zmm0, %zmm4, %zmm0
+; CHECK-NEXT: vpaddd %zmm0, %zmm3, %zmm0
+; CHECK-NEXT: retq
+ %x2 = load <16 x i32>, <16 x i32>* %x2p
+ %res = call <16 x i32> @llvm.x86.avx512.mask.vpdpbusds.512(<16 x i32> %x0, <16 x i32> %x1, <16 x i32> %x2, i16 %x3)
+ %res1 = call <16 x i32> @llvm.x86.avx512.mask.vpdpbusds.512(<16 x i32> %x0, <16 x i32> %x1, <16 x i32> %x4, i16 -1)
+ %res2 = call <16 x i32> @llvm.x86.avx512.maskz.vpdpbusds.512(<16 x i32> %x0, <16 x i32> %x1, <16 x i32> %x4, i16 %x3)
+ %res3 = add <16 x i32> %res, %res1
+ %res4 = add <16 x i32> %res2, %res3
+ ret <16 x i32> %res4
+}
+
+declare <16 x i32> @llvm.x86.avx512.mask.vpdpwssd.512(<16 x i32>, <16 x i32>, <16 x i32>, i16)
+declare <16 x i32> @llvm.x86.avx512.maskz.vpdpwssd.512(<16 x i32>, <16 x i32>, <16 x i32>, i16)
+
+define <16 x i32>@test_int_x86_avx512_mask_vpdpwssd_512(<16 x i32> %x0, <16 x i32> %x1, <16 x i32>* %x2p, <16 x i32> %x4, i16 %x3) {
+; CHECK-LABEL: test_int_x86_avx512_mask_vpdpwssd_512:
+; CHECK: ## BB#0:
+; CHECK-NEXT: kmovw %esi, %k1
+; CHECK-NEXT: vmovaps %zmm0, %zmm3
+; CHECK-NEXT: vpdpwssd (%rdi), %zmm1, %zmm3 {%k1}
+; CHECK-NEXT: vmovaps %zmm0, %zmm4
+; CHECK-NEXT: vpdpwssd %zmm2, %zmm1, %zmm4
+; CHECK-NEXT: vpdpwssd %zmm2, %zmm1, %zmm0 {%k1} {z}
+; CHECK-NEXT: vpaddd %zmm0, %zmm4, %zmm0
+; CHECK-NEXT: vpaddd %zmm0, %zmm3, %zmm0
+; CHECK-NEXT: retq
+ %x2 = load <16 x i32>, <16 x i32>* %x2p
+ %res = call <16 x i32> @llvm.x86.avx512.mask.vpdpwssd.512(<16 x i32> %x0, <16 x i32> %x1, <16 x i32> %x2, i16 %x3)
+ %res1 = call <16 x i32> @llvm.x86.avx512.mask.vpdpwssd.512(<16 x i32> %x0, <16 x i32> %x1, <16 x i32> %x4, i16 -1)
+ %res2 = call <16 x i32> @llvm.x86.avx512.maskz.vpdpwssd.512(<16 x i32> %x0, <16 x i32> %x1, <16 x i32> %x4, i16 %x3)
+ %res3 = add <16 x i32> %res, %res1
+ %res4 = add <16 x i32> %res2, %res3
+ ret <16 x i32> %res4
+}
+
+declare <16 x i32> @llvm.x86.avx512.mask.vpdpwssds.512(<16 x i32>, <16 x i32>, <16 x i32>, i16)
+declare <16 x i32> @llvm.x86.avx512.maskz.vpdpwssds.512(<16 x i32>, <16 x i32>, <16 x i32>, i16)
+
+define <16 x i32>@test_int_x86_avx512_mask_vpdpwssds_512(<16 x i32> %x0, <16 x i32> %x1, <16 x i32>* %x2p, <16 x i32> %x4, i16 %x3) {
+; CHECK-LABEL: test_int_x86_avx512_mask_vpdpwssds_512:
+; CHECK: ## BB#0:
+; CHECK-NEXT: kmovw %esi, %k1
+; CHECK-NEXT: vmovaps %zmm0, %zmm3
+; CHECK-NEXT: vpdpwssds (%rdi), %zmm1, %zmm3 {%k1}
+; CHECK-NEXT: vmovaps %zmm0, %zmm4
+; CHECK-NEXT: vpdpwssds %zmm2, %zmm1, %zmm4
+; CHECK-NEXT: vpdpwssds %zmm2, %zmm1, %zmm0 {%k1} {z}
+; CHECK-NEXT: vpaddd %zmm0, %zmm4, %zmm0
+; CHECK-NEXT: vpaddd %zmm0, %zmm3, %zmm0
+; CHECK-NEXT: retq
+ %x2 = load <16 x i32>, <16 x i32>* %x2p
+ %res = call <16 x i32> @llvm.x86.avx512.mask.vpdpwssds.512(<16 x i32> %x0, <16 x i32> %x1, <16 x i32> %x2, i16 %x3)
+ %res1 = call <16 x i32> @llvm.x86.avx512.mask.vpdpwssds.512(<16 x i32> %x0, <16 x i32> %x1, <16 x i32> %x4, i16 -1)
+ %res2 = call <16 x i32> @llvm.x86.avx512.maskz.vpdpwssds.512(<16 x i32> %x0, <16 x i32> %x1, <16 x i32> %x4, i16 %x3)
+ %res3 = add <16 x i32> %res, %res1
+ %res4 = add <16 x i32> %res2, %res3
+ ret <16 x i32> %res4
+}
+
diff --git a/llvm/test/MC/X86/avx512vl_vnni-encoding.s b/llvm/test/MC/X86/avx512vl_vnni-encoding.s
new file mode 100644
index 00000000000..9c38803f7f2
--- /dev/null
+++ b/llvm/test/MC/X86/avx512vl_vnni-encoding.s
@@ -0,0 +1,898 @@
+// RUN: llvm-mc -triple x86_64-unknown-unknown -mcpu=knl -mattr=+avx512vnni,+avx512vl --show-encoding < %s | FileCheck %s
+
+// CHECK: vpdpbusd %xmm3, %xmm2, %xmm1
+// CHECK: encoding: [0x62,0xf2,0x6d,0x08,0x50,0xcb]
+ vpdpbusd %xmm3, %xmm2, %xmm1
+
+// CHECK: vpdpbusds %xmm3, %xmm2, %xmm1
+// CHECK: encoding: [0x62,0xf2,0x6d,0x08,0x51,0xcb]
+ vpdpbusds %xmm3, %xmm2, %xmm1
+
+// CHECK: vpdpwssd %xmm3, %xmm2, %xmm1
+// CHECK: encoding: [0x62,0xf2,0x6d,0x08,0x52,0xcb]
+ vpdpwssd %xmm3, %xmm2, %xmm1
+
+// CHECK: vpdpwssds %xmm3, %xmm2, %xmm1
+// CHECK: encoding: [0x62,0xf2,0x6d,0x08,0x53,0xcb]
+ vpdpwssds %xmm3, %xmm2, %xmm1
+
+// CHECK: vpdpbusd %xmm23, %xmm22, %xmm21
+// CHECK: encoding: [0x62,0xa2,0x4d,0x00,0x50,0xef]
+ vpdpbusd %xmm23, %xmm22, %xmm21
+
+// CHECK: vpdpbusds %xmm23, %xmm22, %xmm21
+// CHECK: encoding: [0x62,0xa2,0x4d,0x00,0x51,0xef]
+ vpdpbusds %xmm23, %xmm22, %xmm21
+
+// CHECK: vpdpwssd %xmm23, %xmm22, %xmm21
+// CHECK: encoding: [0x62,0xa2,0x4d,0x00,0x52,0xef]
+ vpdpwssd %xmm23, %xmm22, %xmm21
+
+// CHECK: vpdpwssds %xmm23, %xmm22, %xmm21
+// CHECK: encoding: [0x62,0xa2,0x4d,0x00,0x53,0xef]
+ vpdpwssds %xmm23, %xmm22, %xmm21
+
+// CHECK: vpdpbusd %xmm3, %xmm2, %xmm1 {%k2}
+// CHECK: encoding: [0x62,0xf2,0x6d,0x0a,0x50,0xcb]
+ vpdpbusd %xmm3, %xmm2, %xmm1 {%k2}
+
+// CHECK: vpdpbusds %xmm3, %xmm2, %xmm1 {%k2}
+// CHECK: encoding: [0x62,0xf2,0x6d,0x0a,0x51,0xcb]
+ vpdpbusds %xmm3, %xmm2, %xmm1 {%k2}
+
+// CHECK: vpdpwssd %xmm3, %xmm2, %xmm1 {%k2}
+// CHECK: encoding: [0x62,0xf2,0x6d,0x0a,0x52,0xcb]
+ vpdpwssd %xmm3, %xmm2, %xmm1 {%k2}
+
+// CHECK: vpdpwssds %xmm3, %xmm2, %xmm1 {%k2}
+// CHECK: encoding: [0x62,0xf2,0x6d,0x0a,0x53,0xcb]
+ vpdpwssds %xmm3, %xmm2, %xmm1 {%k2}
+
+// CHECK: vpdpbusd %xmm23, %xmm22, %xmm21 {%k2}
+// CHECK: encoding: [0x62,0xa2,0x4d,0x02,0x50,0xef]
+ vpdpbusd %xmm23, %xmm22, %xmm21 {%k2}
+
+// CHECK: vpdpbusds %xmm23, %xmm22, %xmm21 {%k2}
+// CHECK: encoding: [0x62,0xa2,0x4d,0x02,0x51,0xef]
+ vpdpbusds %xmm23, %xmm22, %xmm21 {%k2}
+
+// CHECK: vpdpwssd %xmm23, %xmm22, %xmm21 {%k2}
+// CHECK: encoding: [0x62,0xa2,0x4d,0x02,0x52,0xef]
+ vpdpwssd %xmm23, %xmm22, %xmm21 {%k2}
+
+// CHECK: vpdpwssds %xmm23, %xmm22, %xmm21 {%k2}
+// CHECK: encoding: [0x62,0xa2,0x4d,0x02,0x53,0xef]
+ vpdpwssds %xmm23, %xmm22, %xmm21 {%k2}
+
+// CHECK: vpdpbusd (%rcx), %xmm2, %xmm1
+// CHECK: encoding: [0x62,0xf2,0x6d,0x08,0x50,0x09]
+ vpdpbusd (%rcx), %xmm2, %xmm1
+
+// CHECK: vpdpbusd -64(%rsp), %xmm2, %xmm1
+// CHECK: encoding: [0x62,0xf2,0x6d,0x08,0x50,0x4c,0x24,0xfc]
+ vpdpbusd -64(%rsp), %xmm2, %xmm1
+
+// CHECK: vpdpbusd 64(%rsp), %xmm2, %xmm1
+// CHECK: encoding: [0x62,0xf2,0x6d,0x08,0x50,0x4c,0x24,0x04]
+ vpdpbusd 64(%rsp), %xmm2, %xmm1
+
+// CHECK: vpdpbusd 268435456(%rcx,%r14,8), %xmm2, %xmm1
+// CHECK: encoding: [0x62,0xb2,0x6d,0x08,0x50,0x8c,0xf1,0x00,0x00,0x00,0x10]
+ vpdpbusd 268435456(%rcx,%r14,8), %xmm2, %xmm1
+
+// CHECK: vpdpbusd -536870912(%rcx,%r14,8), %xmm2, %xmm1
+// CHECK: encoding: [0x62,0xb2,0x6d,0x08,0x50,0x8c,0xf1,0x00,0x00,0x00,0xe0]
+ vpdpbusd -536870912(%rcx,%r14,8), %xmm2, %xmm1
+
+// CHECK: vpdpbusd -536870910(%rcx,%r14,8), %xmm2, %xmm1
+// CHECK: encoding: [0x62,0xb2,0x6d,0x08,0x50,0x8c,0xf1,0x02,0x00,0x00,0xe0]
+ vpdpbusd -536870910(%rcx,%r14,8), %xmm2, %xmm1
+
+// CHECK: vpdpbusds (%rcx), %xmm2, %xmm1
+// CHECK: encoding: [0x62,0xf2,0x6d,0x08,0x51,0x09]
+ vpdpbusds (%rcx), %xmm2, %xmm1
+
+// CHECK: vpdpbusds -64(%rsp), %xmm2, %xmm1
+// CHECK: encoding: [0x62,0xf2,0x6d,0x08,0x51,0x4c,0x24,0xfc]
+ vpdpbusds -64(%rsp), %xmm2, %xmm1
+
+// CHECK: vpdpbusds 64(%rsp), %xmm2, %xmm1
+// CHECK: encoding: [0x62,0xf2,0x6d,0x08,0x51,0x4c,0x24,0x04]
+ vpdpbusds 64(%rsp), %xmm2, %xmm1
+
+// CHECK: vpdpbusds 268435456(%rcx,%r14,8), %xmm2, %xmm1
+// CHECK: encoding: [0x62,0xb2,0x6d,0x08,0x51,0x8c,0xf1,0x00,0x00,0x00,0x10]
+ vpdpbusds 268435456(%rcx,%r14,8), %xmm2, %xmm1
+
+// CHECK: vpdpbusds -536870912(%rcx,%r14,8), %xmm2, %xmm1
+// CHECK: encoding: [0x62,0xb2,0x6d,0x08,0x51,0x8c,0xf1,0x00,0x00,0x00,0xe0]
+ vpdpbusds -536870912(%rcx,%r14,8), %xmm2, %xmm1
+
+// CHECK: vpdpbusds -536870910(%rcx,%r14,8), %xmm2, %xmm1
+// CHECK: encoding: [0x62,0xb2,0x6d,0x08,0x51,0x8c,0xf1,0x02,0x00,0x00,0xe0]
+ vpdpbusds -536870910(%rcx,%r14,8), %xmm2, %xmm1
+
+// CHECK: vpdpwssd (%rcx), %xmm2, %xmm1
+// CHECK: encoding: [0x62,0xf2,0x6d,0x08,0x52,0x09]
+ vpdpwssd (%rcx), %xmm2, %xmm1
+
+// CHECK: vpdpwssd -64(%rsp), %xmm2, %xmm1
+// CHECK: encoding: [0x62,0xf2,0x6d,0x08,0x52,0x4c,0x24,0xfc]
+ vpdpwssd -64(%rsp), %xmm2, %xmm1
+
+// CHECK: vpdpwssd 64(%rsp), %xmm2, %xmm1
+// CHECK: encoding: [0x62,0xf2,0x6d,0x08,0x52,0x4c,0x24,0x04]
+ vpdpwssd 64(%rsp), %xmm2, %xmm1
+
+// CHECK: vpdpwssd 268435456(%rcx,%r14,8), %xmm2, %xmm1
+// CHECK: encoding: [0x62,0xb2,0x6d,0x08,0x52,0x8c,0xf1,0x00,0x00,0x00,0x10]
+ vpdpwssd 268435456(%rcx,%r14,8), %xmm2, %xmm1
+
+// CHECK: vpdpwssd -536870912(%rcx,%r14,8), %xmm2, %xmm1
+// CHECK: encoding: [0x62,0xb2,0x6d,0x08,0x52,0x8c,0xf1,0x00,0x00,0x00,0xe0]
+ vpdpwssd -536870912(%rcx,%r14,8), %xmm2, %xmm1
+
+// CHECK: vpdpwssd -536870910(%rcx,%r14,8), %xmm2, %xmm1
+// CHECK: encoding: [0x62,0xb2,0x6d,0x08,0x52,0x8c,0xf1,0x02,0x00,0x00,0xe0]
+ vpdpwssd -536870910(%rcx,%r14,8), %xmm2, %xmm1
+
+// CHECK: vpdpwssds (%rcx), %xmm2, %xmm1
+// CHECK: encoding: [0x62,0xf2,0x6d,0x08,0x53,0x09]
+ vpdpwssds (%rcx), %xmm2, %xmm1
+
+// CHECK: vpdpwssds -64(%rsp), %xmm2, %xmm1
+// CHECK: encoding: [0x62,0xf2,0x6d,0x08,0x53,0x4c,0x24,0xfc]
+ vpdpwssds -64(%rsp), %xmm2, %xmm1
+
+// CHECK: vpdpwssds 64(%rsp), %xmm2, %xmm1
+// CHECK: encoding: [0x62,0xf2,0x6d,0x08,0x53,0x4c,0x24,0x04]
+ vpdpwssds 64(%rsp), %xmm2, %xmm1
+
+// CHECK: vpdpwssds 268435456(%rcx,%r14,8), %xmm2, %xmm1
+// CHECK: encoding: [0x62,0xb2,0x6d,0x08,0x53,0x8c,0xf1,0x00,0x00,0x00,0x10]
+ vpdpwssds 268435456(%rcx,%r14,8), %xmm2, %xmm1
+
+// CHECK: vpdpwssds -536870912(%rcx,%r14,8), %xmm2, %xmm1
+// CHECK: encoding: [0x62,0xb2,0x6d,0x08,0x53,0x8c,0xf1,0x00,0x00,0x00,0xe0]
+ vpdpwssds -536870912(%rcx,%r14,8), %xmm2, %xmm1
+
+// CHECK: vpdpwssds -536870910(%rcx,%r14,8), %xmm2, %xmm1
+// CHECK: encoding: [0x62,0xb2,0x6d,0x08,0x53,0x8c,0xf1,0x02,0x00,0x00,0xe0]
+ vpdpwssds -536870910(%rcx,%r14,8), %xmm2, %xmm1
+
+// CHECK: vpdpbusd (%rcx), %xmm22, %xmm21
+// CHECK: encoding: [0x62,0xe2,0x4d,0x00,0x50,0x29]
+ vpdpbusd (%rcx), %xmm22, %xmm21
+
+// CHECK: vpdpbusd -64(%rsp), %xmm22, %xmm21
+// CHECK: encoding: [0x62,0xe2,0x4d,0x00,0x50,0x6c,0x24,0xfc]
+ vpdpbusd -64(%rsp), %xmm22, %xmm21
+
+// CHECK: vpdpbusd 64(%rsp), %xmm22, %xmm21
+// CHECK: encoding: [0x62,0xe2,0x4d,0x00,0x50,0x6c,0x24,0x04]
+ vpdpbusd 64(%rsp), %xmm22, %xmm21
+
+// CHECK: vpdpbusd 268435456(%rcx,%r14,8), %xmm22, %xmm21
+// CHECK: encoding: [0x62,0xa2,0x4d,0x00,0x50,0xac,0xf1,0x00,0x00,0x00,0x10]
+ vpdpbusd 268435456(%rcx,%r14,8), %xmm22, %xmm21
+
+// CHECK: vpdpbusd -536870912(%rcx,%r14,8), %xmm22, %xmm21
+// CHECK: encoding: [0x62,0xa2,0x4d,0x00,0x50,0xac,0xf1,0x00,0x00,0x00,0xe0]
+ vpdpbusd -536870912(%rcx,%r14,8), %xmm22, %xmm21
+
+// CHECK: vpdpbusd -536870910(%rcx,%r14,8), %xmm22, %xmm21
+// CHECK: encoding: [0x62,0xa2,0x4d,0x00,0x50,0xac,0xf1,0x02,0x00,0x00,0xe0]
+ vpdpbusd -536870910(%rcx,%r14,8), %xmm22, %xmm21
+
+// CHECK: vpdpbusds (%rcx), %xmm22, %xmm21
+// CHECK: encoding: [0x62,0xe2,0x4d,0x00,0x51,0x29]
+ vpdpbusds (%rcx), %xmm22, %xmm21
+
+// CHECK: vpdpbusds -64(%rsp), %xmm22, %xmm21
+// CHECK: encoding: [0x62,0xe2,0x4d,0x00,0x51,0x6c,0x24,0xfc]
+ vpdpbusds -64(%rsp), %xmm22, %xmm21
+
+// CHECK: vpdpbusds 64(%rsp), %xmm22, %xmm21
+// CHECK: encoding: [0x62,0xe2,0x4d,0x00,0x51,0x6c,0x24,0x04]
+ vpdpbusds 64(%rsp), %xmm22, %xmm21
+
+// CHECK: vpdpbusds 268435456(%rcx,%r14,8), %xmm22, %xmm21
+// CHECK: encoding: [0x62,0xa2,0x4d,0x00,0x51,0xac,0xf1,0x00,0x00,0x00,0x10]
+ vpdpbusds 268435456(%rcx,%r14,8), %xmm22, %xmm21
+
+// CHECK: vpdpbusds -536870912(%rcx,%r14,8), %xmm22, %xmm21
+// CHECK: encoding: [0x62,0xa2,0x4d,0x00,0x51,0xac,0xf1,0x00,0x00,0x00,0xe0]
+ vpdpbusds -536870912(%rcx,%r14,8), %xmm22, %xmm21
+
+// CHECK: vpdpbusds -536870910(%rcx,%r14,8), %xmm22, %xmm21
+// CHECK: encoding: [0x62,0xa2,0x4d,0x00,0x51,0xac,0xf1,0x02,0x00,0x00,0xe0]
+ vpdpbusds -536870910(%rcx,%r14,8), %xmm22, %xmm21
+
+// CHECK: vpdpwssd (%rcx), %xmm22, %xmm21
+// CHECK: encoding: [0x62,0xe2,0x4d,0x00,0x52,0x29]
+ vpdpwssd (%rcx), %xmm22, %xmm21
+
+// CHECK: vpdpwssd -64(%rsp), %xmm22, %xmm21
+// CHECK: encoding: [0x62,0xe2,0x4d,0x00,0x52,0x6c,0x24,0xfc]
+ vpdpwssd -64(%rsp), %xmm22, %xmm21
+
+// CHECK: vpdpwssd 64(%rsp), %xmm22, %xmm21
+// CHECK: encoding: [0x62,0xe2,0x4d,0x00,0x52,0x6c,0x24,0x04]
+ vpdpwssd 64(%rsp), %xmm22, %xmm21
+
+// CHECK: vpdpwssd 268435456(%rcx,%r14,8), %xmm22, %xmm21
+// CHECK: encoding: [0x62,0xa2,0x4d,0x00,0x52,0xac,0xf1,0x00,0x00,0x00,0x10]
+ vpdpwssd 268435456(%rcx,%r14,8), %xmm22, %xmm21
+
+// CHECK: vpdpwssd -536870912(%rcx,%r14,8), %xmm22, %xmm21
+// CHECK: encoding: [0x62,0xa2,0x4d,0x00,0x52,0xac,0xf1,0x00,0x00,0x00,0xe0]
+ vpdpwssd -536870912(%rcx,%r14,8), %xmm22, %xmm21
+
+// CHECK: vpdpwssd -536870910(%rcx,%r14,8), %xmm22, %xmm21
+// CHECK: encoding: [0x62,0xa2,0x4d,0x00,0x52,0xac,0xf1,0x02,0x00,0x00,0xe0]
+ vpdpwssd -536870910(%rcx,%r14,8), %xmm22, %xmm21
+
+// CHECK: vpdpwssds (%rcx), %xmm22, %xmm21
+// CHECK: encoding: [0x62,0xe2,0x4d,0x00,0x53,0x29]
+ vpdpwssds (%rcx), %xmm22, %xmm21
+
+// CHECK: vpdpwssds -64(%rsp), %xmm22, %xmm21
+// CHECK: encoding: [0x62,0xe2,0x4d,0x00,0x53,0x6c,0x24,0xfc]
+ vpdpwssds -64(%rsp), %xmm22, %xmm21
+
+// CHECK: vpdpwssds 64(%rsp), %xmm22, %xmm21
+// CHECK: encoding: [0x62,0xe2,0x4d,0x00,0x53,0x6c,0x24,0x04]
+ vpdpwssds 64(%rsp), %xmm22, %xmm21
+
+// CHECK: vpdpwssds 268435456(%rcx,%r14,8), %xmm22, %xmm21
+// CHECK: encoding: [0x62,0xa2,0x4d,0x00,0x53,0xac,0xf1,0x00,0x00,0x00,0x10]
+ vpdpwssds 268435456(%rcx,%r14,8), %xmm22, %xmm21
+
+// CHECK: vpdpwssds -536870912(%rcx,%r14,8), %xmm22, %xmm21
+// CHECK: encoding: [0x62,0xa2,0x4d,0x00,0x53,0xac,0xf1,0x00,0x00,0x00,0xe0]
+ vpdpwssds -536870912(%rcx,%r14,8), %xmm22, %xmm21
+
+// CHECK: vpdpwssds -536870910(%rcx,%r14,8), %xmm22, %xmm21
+// CHECK: encoding: [0x62,0xa2,0x4d,0x00,0x53,0xac,0xf1,0x02,0x00,0x00,0xe0]
+ vpdpwssds -536870910(%rcx,%r14,8), %xmm22, %xmm21
+
+// CHECK: vpdpbusd (%rcx), %xmm2, %xmm1 {%k2}
+// CHECK: encoding: [0x62,0xf2,0x6d,0x0a,0x50,0x09]
+ vpdpbusd (%rcx), %xmm2, %xmm1 {%k2}
+
+// CHECK: vpdpbusd -64(%rsp), %xmm2, %xmm1 {%k2}
+// CHECK: encoding: [0x62,0xf2,0x6d,0x0a,0x50,0x4c,0x24,0xfc]
+ vpdpbusd -64(%rsp), %xmm2, %xmm1 {%k2}
+
+// CHECK: vpdpbusd 64(%rsp), %xmm2, %xmm1 {%k2}
+// CHECK: encoding: [0x62,0xf2,0x6d,0x0a,0x50,0x4c,0x24,0x04]
+ vpdpbusd 64(%rsp), %xmm2, %xmm1 {%k2}
+
+// CHECK: vpdpbusd 268435456(%rcx,%r14,8), %xmm2, %xmm1 {%k2}
+// CHECK: encoding: [0x62,0xb2,0x6d,0x0a,0x50,0x8c,0xf1,0x00,0x00,0x00,0x10]
+ vpdpbusd 268435456(%rcx,%r14,8), %xmm2, %xmm1 {%k2}
+
+// CHECK: vpdpbusd -536870912(%rcx,%r14,8), %xmm2, %xmm1 {%k2}
+// CHECK: encoding: [0x62,0xb2,0x6d,0x0a,0x50,0x8c,0xf1,0x00,0x00,0x00,0xe0]
+ vpdpbusd -536870912(%rcx,%r14,8), %xmm2, %xmm1 {%k2}
+
+// CHECK: vpdpbusd -536870910(%rcx,%r14,8), %xmm2, %xmm1 {%k2}
+// CHECK: encoding: [0x62,0xb2,0x6d,0x0a,0x50,0x8c,0xf1,0x02,0x00,0x00,0xe0]
+ vpdpbusd -536870910(%rcx,%r14,8), %xmm2, %xmm1 {%k2}
+
+// CHECK: vpdpbusds (%rcx), %xmm2, %xmm1 {%k2}
+// CHECK: encoding: [0x62,0xf2,0x6d,0x0a,0x51,0x09]
+ vpdpbusds (%rcx), %xmm2, %xmm1 {%k2}
+
+// CHECK: vpdpbusds -64(%rsp), %xmm2, %xmm1 {%k2}
+// CHECK: encoding: [0x62,0xf2,0x6d,0x0a,0x51,0x4c,0x24,0xfc]
+ vpdpbusds -64(%rsp), %xmm2, %xmm1 {%k2}
+
+// CHECK: vpdpbusds 64(%rsp), %xmm2, %xmm1 {%k2}
+// CHECK: encoding: [0x62,0xf2,0x6d,0x0a,0x51,0x4c,0x24,0x04]
+ vpdpbusds 64(%rsp), %xmm2, %xmm1 {%k2}
+
+// CHECK: vpdpbusds 268435456(%rcx,%r14,8), %xmm2, %xmm1 {%k2}
+// CHECK: encoding: [0x62,0xb2,0x6d,0x0a,0x51,0x8c,0xf1,0x00,0x00,0x00,0x10]
+ vpdpbusds 268435456(%rcx,%r14,8), %xmm2, %xmm1 {%k2}
+
+// CHECK: vpdpbusds -536870912(%rcx,%r14,8), %xmm2, %xmm1 {%k2}
+// CHECK: encoding: [0x62,0xb2,0x6d,0x0a,0x51,0x8c,0xf1,0x00,0x00,0x00,0xe0]
+ vpdpbusds -536870912(%rcx,%r14,8), %xmm2, %xmm1 {%k2}
+
+// CHECK: vpdpbusds -536870910(%rcx,%r14,8), %xmm2, %xmm1 {%k2}
+// CHECK: encoding: [0x62,0xb2,0x6d,0x0a,0x51,0x8c,0xf1,0x02,0x00,0x00,0xe0]
+ vpdpbusds -536870910(%rcx,%r14,8), %xmm2, %xmm1 {%k2}
+
+// CHECK: vpdpwssd (%rcx), %xmm2, %xmm1 {%k2}
+// CHECK: encoding: [0x62,0xf2,0x6d,0x0a,0x52,0x09]
+ vpdpwssd (%rcx), %xmm2, %xmm1 {%k2}
+
+// CHECK: vpdpwssd -64(%rsp), %xmm2, %xmm1 {%k2}
+// CHECK: encoding: [0x62,0xf2,0x6d,0x0a,0x52,0x4c,0x24,0xfc]
+ vpdpwssd -64(%rsp), %xmm2, %xmm1 {%k2}
+
+// CHECK: vpdpwssd 64(%rsp), %xmm2, %xmm1 {%k2}
+// CHECK: encoding: [0x62,0xf2,0x6d,0x0a,0x52,0x4c,0x24,0x04]
+ vpdpwssd 64(%rsp), %xmm2, %xmm1 {%k2}
+
+// CHECK: vpdpwssd 268435456(%rcx,%r14,8), %xmm2, %xmm1 {%k2}
+// CHECK: encoding: [0x62,0xb2,0x6d,0x0a,0x52,0x8c,0xf1,0x00,0x00,0x00,0x10]
+ vpdpwssd 268435456(%rcx,%r14,8), %xmm2, %xmm1 {%k2}
+
+// CHECK: vpdpwssd -536870912(%rcx,%r14,8), %xmm2, %xmm1 {%k2}
+// CHECK: encoding: [0x62,0xb2,0x6d,0x0a,0x52,0x8c,0xf1,0x00,0x00,0x00,0xe0]
+ vpdpwssd -536870912(%rcx,%r14,8), %xmm2, %xmm1 {%k2}
+
+// CHECK: vpdpwssd -536870910(%rcx,%r14,8), %xmm2, %xmm1 {%k2}
+// CHECK: encoding: [0x62,0xb2,0x6d,0x0a,0x52,0x8c,0xf1,0x02,0x00,0x00,0xe0]
+ vpdpwssd -536870910(%rcx,%r14,8), %xmm2, %xmm1 {%k2}
+
+// CHECK: vpdpwssds (%rcx), %xmm2, %xmm1 {%k2}
+// CHECK: encoding: [0x62,0xf2,0x6d,0x0a,0x53,0x09]
+ vpdpwssds (%rcx), %xmm2, %xmm1 {%k2}
+
+// CHECK: vpdpwssds -64(%rsp), %xmm2, %xmm1 {%k2}
+// CHECK: encoding: [0x62,0xf2,0x6d,0x0a,0x53,0x4c,0x24,0xfc]
+ vpdpwssds -64(%rsp), %xmm2, %xmm1 {%k2}
+
+// CHECK: vpdpwssds 64(%rsp), %xmm2, %xmm1 {%k2}
+// CHECK: encoding: [0x62,0xf2,0x6d,0x0a,0x53,0x4c,0x24,0x04]
+ vpdpwssds 64(%rsp), %xmm2, %xmm1 {%k2}
+
+// CHECK: vpdpwssds 268435456(%rcx,%r14,8), %xmm2, %xmm1 {%k2}
+// CHECK: encoding: [0x62,0xb2,0x6d,0x0a,0x53,0x8c,0xf1,0x00,0x00,0x00,0x10]
+ vpdpwssds 268435456(%rcx,%r14,8), %xmm2, %xmm1 {%k2}
+
+// CHECK: vpdpwssds -536870912(%rcx,%r14,8), %xmm2, %xmm1 {%k2}
+// CHECK: encoding: [0x62,0xb2,0x6d,0x0a,0x53,0x8c,0xf1,0x00,0x00,0x00,0xe0]
+ vpdpwssds -536870912(%rcx,%r14,8), %xmm2, %xmm1 {%k2}
+
+// CHECK: vpdpwssds -536870910(%rcx,%r14,8), %xmm2, %xmm1 {%k2}
+// CHECK: encoding: [0x62,0xb2,0x6d,0x0a,0x53,0x8c,0xf1,0x02,0x00,0x00,0xe0]
+ vpdpwssds -536870910(%rcx,%r14,8), %xmm2, %xmm1 {%k2}
+
+// CHECK: vpdpbusd (%rcx), %xmm22, %xmm21 {%k2}
+// CHECK: encoding: [0x62,0xe2,0x4d,0x02,0x50,0x29]
+ vpdpbusd (%rcx), %xmm22, %xmm21 {%k2}
+
+// CHECK: vpdpbusd -64(%rsp), %xmm22, %xmm21 {%k2}
+// CHECK: encoding: [0x62,0xe2,0x4d,0x02,0x50,0x6c,0x24,0xfc]
+ vpdpbusd -64(%rsp), %xmm22, %xmm21 {%k2}
+
+// CHECK: vpdpbusd 64(%rsp), %xmm22, %xmm21 {%k2}
+// CHECK: encoding: [0x62,0xe2,0x4d,0x02,0x50,0x6c,0x24,0x04]
+ vpdpbusd 64(%rsp), %xmm22, %xmm21 {%k2}
+
+// CHECK: vpdpbusd 268435456(%rcx,%r14,8), %xmm22, %xmm21 {%k2}
+// CHECK: encoding: [0x62,0xa2,0x4d,0x02,0x50,0xac,0xf1,0x00,0x00,0x00,0x10]
+ vpdpbusd 268435456(%rcx,%r14,8), %xmm22, %xmm21 {%k2}
+
+// CHECK: vpdpbusd -536870912(%rcx,%r14,8), %xmm22, %xmm21 {%k2}
+// CHECK: encoding: [0x62,0xa2,0x4d,0x02,0x50,0xac,0xf1,0x00,0x00,0x00,0xe0]
+ vpdpbusd -536870912(%rcx,%r14,8), %xmm22, %xmm21 {%k2}
+
+// CHECK: vpdpbusd -536870910(%rcx,%r14,8), %xmm22, %xmm21 {%k2}
+// CHECK: encoding: [0x62,0xa2,0x4d,0x02,0x50,0xac,0xf1,0x02,0x00,0x00,0xe0]
+ vpdpbusd -536870910(%rcx,%r14,8), %xmm22, %xmm21 {%k2}
+
+// CHECK: vpdpbusds (%rcx), %xmm22, %xmm21 {%k2}
+// CHECK: encoding: [0x62,0xe2,0x4d,0x02,0x51,0x29]
+ vpdpbusds (%rcx), %xmm22, %xmm21 {%k2}
+
+// CHECK: vpdpbusds -64(%rsp), %xmm22, %xmm21 {%k2}
+// CHECK: encoding: [0x62,0xe2,0x4d,0x02,0x51,0x6c,0x24,0xfc]
+ vpdpbusds -64(%rsp), %xmm22, %xmm21 {%k2}
+
+// CHECK: vpdpbusds 64(%rsp), %xmm22, %xmm21 {%k2}
+// CHECK: encoding: [0x62,0xe2,0x4d,0x02,0x51,0x6c,0x24,0x04]
+ vpdpbusds 64(%rsp), %xmm22, %xmm21 {%k2}
+
+// CHECK: vpdpbusds 268435456(%rcx,%r14,8), %xmm22, %xmm21 {%k2}
+// CHECK: encoding: [0x62,0xa2,0x4d,0x02,0x51,0xac,0xf1,0x00,0x00,0x00,0x10]
+ vpdpbusds 268435456(%rcx,%r14,8), %xmm22, %xmm21 {%k2}
+
+// CHECK: vpdpbusds -536870912(%rcx,%r14,8), %xmm22, %xmm21 {%k2}
+// CHECK: encoding: [0x62,0xa2,0x4d,0x02,0x51,0xac,0xf1,0x00,0x00,0x00,0xe0]
+ vpdpbusds -536870912(%rcx,%r14,8), %xmm22, %xmm21 {%k2}
+
+// CHECK: vpdpbusds -536870910(%rcx,%r14,8), %xmm22, %xmm21 {%k2}
+// CHECK: encoding: [0x62,0xa2,0x4d,0x02,0x51,0xac,0xf1,0x02,0x00,0x00,0xe0]
+ vpdpbusds -536870910(%rcx,%r14,8), %xmm22, %xmm21 {%k2}
+
+// CHECK: vpdpwssd (%rcx), %xmm22, %xmm21 {%k2}
+// CHECK: encoding: [0x62,0xe2,0x4d,0x02,0x52,0x29]
+ vpdpwssd (%rcx), %xmm22, %xmm21 {%k2}
+
+// CHECK: vpdpwssd -64(%rsp), %xmm22, %xmm21 {%k2}
+// CHECK: encoding: [0x62,0xe2,0x4d,0x02,0x52,0x6c,0x24,0xfc]
+ vpdpwssd -64(%rsp), %xmm22, %xmm21 {%k2}
+
+// CHECK: vpdpwssd 64(%rsp), %xmm22, %xmm21 {%k2}
+// CHECK: encoding: [0x62,0xe2,0x4d,0x02,0x52,0x6c,0x24,0x04]
+ vpdpwssd 64(%rsp), %xmm22, %xmm21 {%k2}
+
+// CHECK: vpdpwssd 268435456(%rcx,%r14,8), %xmm22, %xmm21 {%k2}
+// CHECK: encoding: [0x62,0xa2,0x4d,0x02,0x52,0xac,0xf1,0x00,0x00,0x00,0x10]
+ vpdpwssd 268435456(%rcx,%r14,8), %xmm22, %xmm21 {%k2}
+
+// CHECK: vpdpwssd -536870912(%rcx,%r14,8), %xmm22, %xmm21 {%k2}
+// CHECK: encoding: [0x62,0xa2,0x4d,0x02,0x52,0xac,0xf1,0x00,0x00,0x00,0xe0]
+ vpdpwssd -536870912(%rcx,%r14,8), %xmm22, %xmm21 {%k2}
+
+// CHECK: vpdpwssd -536870910(%rcx,%r14,8), %xmm22, %xmm21 {%k2}
+// CHECK: encoding: [0x62,0xa2,0x4d,0x02,0x52,0xac,0xf1,0x02,0x00,0x00,0xe0]
+ vpdpwssd -536870910(%rcx,%r14,8), %xmm22, %xmm21 {%k2}
+
+// CHECK: vpdpwssds (%rcx), %xmm22, %xmm21 {%k2}
+// CHECK: encoding: [0x62,0xe2,0x4d,0x02,0x53,0x29]
+ vpdpwssds (%rcx), %xmm22, %xmm21 {%k2}
+
+// CHECK: vpdpwssds -64(%rsp), %xmm22, %xmm21 {%k2}
+// CHECK: encoding: [0x62,0xe2,0x4d,0x02,0x53,0x6c,0x24,0xfc]
+ vpdpwssds -64(%rsp), %xmm22, %xmm21 {%k2}
+
+// CHECK: vpdpwssds 64(%rsp), %xmm22, %xmm21 {%k2}
+// CHECK: encoding: [0x62,0xe2,0x4d,0x02,0x53,0x6c,0x24,0x04]
+ vpdpwssds 64(%rsp), %xmm22, %xmm21 {%k2}
+
+// CHECK: vpdpwssds 268435456(%rcx,%r14,8), %xmm22, %xmm21 {%k2}
+// CHECK: encoding: [0x62,0xa2,0x4d,0x02,0x53,0xac,0xf1,0x00,0x00,0x00,0x10]
+ vpdpwssds 268435456(%rcx,%r14,8), %xmm22, %xmm21 {%k2}
+
+// CHECK: vpdpwssds -536870912(%rcx,%r14,8), %xmm22, %xmm21 {%k2}
+// CHECK: encoding: [0x62,0xa2,0x4d,0x02,0x53,0xac,0xf1,0x00,0x00,0x00,0xe0]
+ vpdpwssds -536870912(%rcx,%r14,8), %xmm22, %xmm21 {%k2}
+
+// CHECK: vpdpwssds -536870910(%rcx,%r14,8), %xmm22, %xmm21 {%k2}
+// CHECK: encoding: [0x62,0xa2,0x4d,0x02,0x53,0xac,0xf1,0x02,0x00,0x00,0xe0]
+ vpdpwssds -536870910(%rcx,%r14,8), %xmm22, %xmm21 {%k2}
+
+// CHECK: vpdpbusd %ymm3, %ymm2, %ymm1
+// CHECK: encoding: [0x62,0xf2,0x6d,0x28,0x50,0xcb]
+ vpdpbusd %ymm3, %ymm2, %ymm1
+
+// CHECK: vpdpbusds %ymm3, %ymm2, %ymm1
+// CHECK: encoding: [0x62,0xf2,0x6d,0x28,0x51,0xcb]
+ vpdpbusds %ymm3, %ymm2, %ymm1
+
+// CHECK: vpdpwssd %ymm3, %ymm2, %ymm1
+// CHECK: encoding: [0x62,0xf2,0x6d,0x28,0x52,0xcb]
+ vpdpwssd %ymm3, %ymm2, %ymm1
+
+// CHECK: vpdpwssds %ymm3, %ymm2, %ymm1
+// CHECK: encoding: [0x62,0xf2,0x6d,0x28,0x53,0xcb]
+ vpdpwssds %ymm3, %ymm2, %ymm1
+
+// CHECK: vpdpbusd %ymm23, %ymm22, %ymm21
+// CHECK: encoding: [0x62,0xa2,0x4d,0x20,0x50,0xef]
+ vpdpbusd %ymm23, %ymm22, %ymm21
+
+// CHECK: vpdpbusds %ymm23, %ymm22, %ymm21
+// CHECK: encoding: [0x62,0xa2,0x4d,0x20,0x51,0xef]
+ vpdpbusds %ymm23, %ymm22, %ymm21
+
+// CHECK: vpdpwssd %ymm23, %ymm22, %ymm21
+// CHECK: encoding: [0x62,0xa2,0x4d,0x20,0x52,0xef]
+ vpdpwssd %ymm23, %ymm22, %ymm21
+
+// CHECK: vpdpwssds %ymm23, %ymm22, %ymm21
+// CHECK: encoding: [0x62,0xa2,0x4d,0x20,0x53,0xef]
+ vpdpwssds %ymm23, %ymm22, %ymm21
+
+// CHECK: vpdpbusd %ymm3, %ymm2, %ymm1 {%k2}
+// CHECK: encoding: [0x62,0xf2,0x6d,0x2a,0x50,0xcb]
+ vpdpbusd %ymm3, %ymm2, %ymm1 {%k2}
+
+// CHECK: vpdpbusds %ymm3, %ymm2, %ymm1 {%k2}
+// CHECK: encoding: [0x62,0xf2,0x6d,0x2a,0x51,0xcb]
+ vpdpbusds %ymm3, %ymm2, %ymm1 {%k2}
+
+// CHECK: vpdpwssd %ymm3, %ymm2, %ymm1 {%k2}
+// CHECK: encoding: [0x62,0xf2,0x6d,0x2a,0x52,0xcb]
+ vpdpwssd %ymm3, %ymm2, %ymm1 {%k2}
+
+// CHECK: vpdpwssds %ymm3, %ymm2, %ymm1 {%k2}
+// CHECK: encoding: [0x62,0xf2,0x6d,0x2a,0x53,0xcb]
+ vpdpwssds %ymm3, %ymm2, %ymm1 {%k2}
+
+// CHECK: vpdpbusd %ymm23, %ymm22, %ymm21 {%k2}
+// CHECK: encoding: [0x62,0xa2,0x4d,0x22,0x50,0xef]
+ vpdpbusd %ymm23, %ymm22, %ymm21 {%k2}
+
+// CHECK: vpdpbusds %ymm23, %ymm22, %ymm21 {%k2}
+// CHECK: encoding: [0x62,0xa2,0x4d,0x22,0x51,0xef]
+ vpdpbusds %ymm23, %ymm22, %ymm21 {%k2}
+
+// CHECK: vpdpwssd %ymm23, %ymm22, %ymm21 {%k2}
+// CHECK: encoding: [0x62,0xa2,0x4d,0x22,0x52,0xef]
+ vpdpwssd %ymm23, %ymm22, %ymm21 {%k2}
+
+// CHECK: vpdpwssds %ymm23, %ymm22, %ymm21 {%k2}
+// CHECK: encoding: [0x62,0xa2,0x4d,0x22,0x53,0xef]
+ vpdpwssds %ymm23, %ymm22, %ymm21 {%k2}
+
+// CHECK: vpdpbusd (%rcx), %ymm2, %ymm1
+// CHECK: encoding: [0x62,0xf2,0x6d,0x28,0x50,0x09]
+ vpdpbusd (%rcx), %ymm2, %ymm1
+
+// CHECK: vpdpbusd -128(%rsp), %ymm2, %ymm1
+// CHECK: encoding: [0x62,0xf2,0x6d,0x28,0x50,0x4c,0x24,0xfc]
+ vpdpbusd -128(%rsp), %ymm2, %ymm1
+
+// CHECK: vpdpbusd 128(%rsp), %ymm2, %ymm1
+// CHECK: encoding: [0x62,0xf2,0x6d,0x28,0x50,0x4c,0x24,0x04]
+ vpdpbusd 128(%rsp), %ymm2, %ymm1
+
+// CHECK: vpdpbusd 268435456(%rcx,%r14,8), %ymm2, %ymm1
+// CHECK: encoding: [0x62,0xb2,0x6d,0x28,0x50,0x8c,0xf1,0x00,0x00,0x00,0x10]
+ vpdpbusd 268435456(%rcx,%r14,8), %ymm2, %ymm1
+
+// CHECK: vpdpbusd -536870912(%rcx,%r14,8), %ymm2, %ymm1
+// CHECK: encoding: [0x62,0xb2,0x6d,0x28,0x50,0x8c,0xf1,0x00,0x00,0x00,0xe0]
+ vpdpbusd -536870912(%rcx,%r14,8), %ymm2, %ymm1
+
+// CHECK: vpdpbusd -536870910(%rcx,%r14,8), %ymm2, %ymm1
+// CHECK: encoding: [0x62,0xb2,0x6d,0x28,0x50,0x8c,0xf1,0x02,0x00,0x00,0xe0]
+ vpdpbusd -536870910(%rcx,%r14,8), %ymm2, %ymm1
+
+// CHECK: vpdpbusds (%rcx), %ymm2, %ymm1
+// CHECK: encoding: [0x62,0xf2,0x6d,0x28,0x51,0x09]
+ vpdpbusds (%rcx), %ymm2, %ymm1
+
+// CHECK: vpdpbusds -128(%rsp), %ymm2, %ymm1
+// CHECK: encoding: [0x62,0xf2,0x6d,0x28,0x51,0x4c,0x24,0xfc]
+ vpdpbusds -128(%rsp), %ymm2, %ymm1
+
+// CHECK: vpdpbusds 128(%rsp), %ymm2, %ymm1
+// CHECK: encoding: [0x62,0xf2,0x6d,0x28,0x51,0x4c,0x24,0x04]
+ vpdpbusds 128(%rsp), %ymm2, %ymm1
+
+// CHECK: vpdpbusds 268435456(%rcx,%r14,8), %ymm2, %ymm1
+// CHECK: encoding: [0x62,0xb2,0x6d,0x28,0x51,0x8c,0xf1,0x00,0x00,0x00,0x10]
+ vpdpbusds 268435456(%rcx,%r14,8), %ymm2, %ymm1
+
+// CHECK: vpdpbusds -536870912(%rcx,%r14,8), %ymm2, %ymm1
+// CHECK: encoding: [0x62,0xb2,0x6d,0x28,0x51,0x8c,0xf1,0x00,0x00,0x00,0xe0]
+ vpdpbusds -536870912(%rcx,%r14,8), %ymm2, %ymm1
+
+// CHECK: vpdpbusds -536870910(%rcx,%r14,8), %ymm2, %ymm1
+// CHECK: encoding: [0x62,0xb2,0x6d,0x28,0x51,0x8c,0xf1,0x02,0x00,0x00,0xe0]
+ vpdpbusds -536870910(%rcx,%r14,8), %ymm2, %ymm1
+
+// CHECK: vpdpwssd (%rcx), %ymm2, %ymm1
+// CHECK: encoding: [0x62,0xf2,0x6d,0x28,0x52,0x09]
+ vpdpwssd (%rcx), %ymm2, %ymm1
+
+// CHECK: vpdpwssd -128(%rsp), %ymm2, %ymm1
+// CHECK: encoding: [0x62,0xf2,0x6d,0x28,0x52,0x4c,0x24,0xfc]
+ vpdpwssd -128(%rsp), %ymm2, %ymm1
+
+// CHECK: vpdpwssd 128(%rsp), %ymm2, %ymm1
+// CHECK: encoding: [0x62,0xf2,0x6d,0x28,0x52,0x4c,0x24,0x04]
+ vpdpwssd 128(%rsp), %ymm2, %ymm1
+
+// CHECK: vpdpwssd 268435456(%rcx,%r14,8), %ymm2, %ymm1
+// CHECK: encoding: [0x62,0xb2,0x6d,0x28,0x52,0x8c,0xf1,0x00,0x00,0x00,0x10]
+ vpdpwssd 268435456(%rcx,%r14,8), %ymm2, %ymm1
+
+// CHECK: vpdpwssd -536870912(%rcx,%r14,8), %ymm2, %ymm1
+// CHECK: encoding: [0x62,0xb2,0x6d,0x28,0x52,0x8c,0xf1,0x00,0x00,0x00,0xe0]
+ vpdpwssd -536870912(%rcx,%r14,8), %ymm2, %ymm1
+
+// CHECK: vpdpwssd -536870910(%rcx,%r14,8), %ymm2, %ymm1
+// CHECK: encoding: [0x62,0xb2,0x6d,0x28,0x52,0x8c,0xf1,0x02,0x00,0x00,0xe0]
+ vpdpwssd -536870910(%rcx,%r14,8), %ymm2, %ymm1
+
+// CHECK: vpdpwssds (%rcx), %ymm2, %ymm1
+// CHECK: encoding: [0x62,0xf2,0x6d,0x28,0x53,0x09]
+ vpdpwssds (%rcx), %ymm2, %ymm1
+
+// CHECK: vpdpwssds -128(%rsp), %ymm2, %ymm1
+// CHECK: encoding: [0x62,0xf2,0x6d,0x28,0x53,0x4c,0x24,0xfc]
+ vpdpwssds -128(%rsp), %ymm2, %ymm1
+
+// CHECK: vpdpwssds 128(%rsp), %ymm2, %ymm1
+// CHECK: encoding: [0x62,0xf2,0x6d,0x28,0x53,0x4c,0x24,0x04]
+ vpdpwssds 128(%rsp), %ymm2, %ymm1
+
+// CHECK: vpdpwssds 268435456(%rcx,%r14,8), %ymm2, %ymm1
+// CHECK: encoding: [0x62,0xb2,0x6d,0x28,0x53,0x8c,0xf1,0x00,0x00,0x00,0x10]
+ vpdpwssds 268435456(%rcx,%r14,8), %ymm2, %ymm1
+
+// CHECK: vpdpwssds -536870912(%rcx,%r14,8), %ymm2, %ymm1
+// CHECK: encoding: [0x62,0xb2,0x6d,0x28,0x53,0x8c,0xf1,0x00,0x00,0x00,0xe0]
+ vpdpwssds -536870912(%rcx,%r14,8), %ymm2, %ymm1
+
+// CHECK: vpdpwssds -536870910(%rcx,%r14,8), %ymm2, %ymm1
+// CHECK: encoding: [0x62,0xb2,0x6d,0x28,0x53,0x8c,0xf1,0x02,0x00,0x00,0xe0]
+ vpdpwssds -536870910(%rcx,%r14,8), %ymm2, %ymm1
+
+// CHECK: vpdpbusd (%rcx), %ymm22, %ymm21
+// CHECK: encoding: [0x62,0xe2,0x4d,0x20,0x50,0x29]
+ vpdpbusd (%rcx), %ymm22, %ymm21
+
+// CHECK: vpdpbusd -128(%rsp), %ymm22, %ymm21
+// CHECK: encoding: [0x62,0xe2,0x4d,0x20,0x50,0x6c,0x24,0xfc]
+ vpdpbusd -128(%rsp), %ymm22, %ymm21
+
+// CHECK: vpdpbusd 128(%rsp), %ymm22, %ymm21
+// CHECK: encoding: [0x62,0xe2,0x4d,0x20,0x50,0x6c,0x24,0x04]
+ vpdpbusd 128(%rsp), %ymm22, %ymm21
+
+// CHECK: vpdpbusd 268435456(%rcx,%r14,8), %ymm22, %ymm21
+// CHECK: encoding: [0x62,0xa2,0x4d,0x20,0x50,0xac,0xf1,0x00,0x00,0x00,0x10]
+ vpdpbusd 268435456(%rcx,%r14,8), %ymm22, %ymm21
+
+// CHECK: vpdpbusd -536870912(%rcx,%r14,8), %ymm22, %ymm21
+// CHECK: encoding: [0x62,0xa2,0x4d,0x20,0x50,0xac,0xf1,0x00,0x00,0x00,0xe0]
+ vpdpbusd -536870912(%rcx,%r14,8), %ymm22, %ymm21
+
+// CHECK: vpdpbusd -536870910(%rcx,%r14,8), %ymm22, %ymm21
+// CHECK: encoding: [0x62,0xa2,0x4d,0x20,0x50,0xac,0xf1,0x02,0x00,0x00,0xe0]
+ vpdpbusd -536870910(%rcx,%r14,8), %ymm22, %ymm21
+
+// CHECK: vpdpbusds (%rcx), %ymm22, %ymm21
+// CHECK: encoding: [0x62,0xe2,0x4d,0x20,0x51,0x29]
+ vpdpbusds (%rcx), %ymm22, %ymm21
+
+// CHECK: vpdpbusds -128(%rsp), %ymm22, %ymm21
+// CHECK: encoding: [0x62,0xe2,0x4d,0x20,0x51,0x6c,0x24,0xfc]
+ vpdpbusds -128(%rsp), %ymm22, %ymm21
+
+// CHECK: vpdpbusds 128(%rsp), %ymm22, %ymm21
+// CHECK: encoding: [0x62,0xe2,0x4d,0x20,0x51,0x6c,0x24,0x04]
+ vpdpbusds 128(%rsp), %ymm22, %ymm21
+
+// CHECK: vpdpbusds 268435456(%rcx,%r14,8), %ymm22, %ymm21
+// CHECK: encoding: [0x62,0xa2,0x4d,0x20,0x51,0xac,0xf1,0x00,0x00,0x00,0x10]
+ vpdpbusds 268435456(%rcx,%r14,8), %ymm22, %ymm21
+
+// CHECK: vpdpbusds -536870912(%rcx,%r14,8), %ymm22, %ymm21
+// CHECK: encoding: [0x62,0xa2,0x4d,0x20,0x51,0xac,0xf1,0x00,0x00,0x00,0xe0]
+ vpdpbusds -536870912(%rcx,%r14,8), %ymm22, %ymm21
+
+// CHECK: vpdpbusds -536870910(%rcx,%r14,8), %ymm22, %ymm21
+// CHECK: encoding: [0x62,0xa2,0x4d,0x20,0x51,0xac,0xf1,0x02,0x00,0x00,0xe0]
+ vpdpbusds -536870910(%rcx,%r14,8), %ymm22, %ymm21
+
+// CHECK: vpdpwssd (%rcx), %ymm22, %ymm21
+// CHECK: encoding: [0x62,0xe2,0x4d,0x20,0x52,0x29]
+ vpdpwssd (%rcx), %ymm22, %ymm21
+
+// CHECK: vpdpwssd -128(%rsp), %ymm22, %ymm21
+// CHECK: encoding: [0x62,0xe2,0x4d,0x20,0x52,0x6c,0x24,0xfc]
+ vpdpwssd -128(%rsp), %ymm22, %ymm21
+
+// CHECK: vpdpwssd 128(%rsp), %ymm22, %ymm21
+// CHECK: encoding: [0x62,0xe2,0x4d,0x20,0x52,0x6c,0x24,0x04]
+ vpdpwssd 128(%rsp), %ymm22, %ymm21
+
+// CHECK: vpdpwssd 268435456(%rcx,%r14,8), %ymm22, %ymm21
+// CHECK: encoding: [0x62,0xa2,0x4d,0x20,0x52,0xac,0xf1,0x00,0x00,0x00,0x10]
+ vpdpwssd 268435456(%rcx,%r14,8), %ymm22, %ymm21
+
+// CHECK: vpdpwssd -536870912(%rcx,%r14,8), %ymm22, %ymm21
+// CHECK: encoding: [0x62,0xa2,0x4d,0x20,0x52,0xac,0xf1,0x00,0x00,0x00,0xe0]
+ vpdpwssd -536870912(%rcx,%r14,8), %ymm22, %ymm21
+
+// CHECK: vpdpwssd -536870910(%rcx,%r14,8), %ymm22, %ymm21
+// CHECK: encoding: [0x62,0xa2,0x4d,0x20,0x52,0xac,0xf1,0x02,0x00,0x00,0xe0]
+ vpdpwssd -536870910(%rcx,%r14,8), %ymm22, %ymm21
+
+// CHECK: vpdpwssds (%rcx), %ymm22, %ymm21
+// CHECK: encoding: [0x62,0xe2,0x4d,0x20,0x53,0x29]
+ vpdpwssds (%rcx), %ymm22, %ymm21
+
+// CHECK: vpdpwssds -128(%rsp), %ymm22, %ymm21
+// CHECK: encoding: [0x62,0xe2,0x4d,0x20,0x53,0x6c,0x24,0xfc]
+ vpdpwssds -128(%rsp), %ymm22, %ymm21
+
+// CHECK: vpdpwssds 128(%rsp), %ymm22, %ymm21
+// CHECK: encoding: [0x62,0xe2,0x4d,0x20,0x53,0x6c,0x24,0x04]
+ vpdpwssds 128(%rsp), %ymm22, %ymm21
+
+// CHECK: vpdpwssds 268435456(%rcx,%r14,8), %ymm22, %ymm21
+// CHECK: encoding: [0x62,0xa2,0x4d,0x20,0x53,0xac,0xf1,0x00,0x00,0x00,0x10]
+ vpdpwssds 268435456(%rcx,%r14,8), %ymm22, %ymm21
+
+// CHECK: vpdpwssds -536870912(%rcx,%r14,8), %ymm22, %ymm21
+// CHECK: encoding: [0x62,0xa2,0x4d,0x20,0x53,0xac,0xf1,0x00,0x00,0x00,0xe0]
+ vpdpwssds -536870912(%rcx,%r14,8), %ymm22, %ymm21
+
+// CHECK: vpdpwssds -536870910(%rcx,%r14,8), %ymm22, %ymm21
+// CHECK: encoding: [0x62,0xa2,0x4d,0x20,0x53,0xac,0xf1,0x02,0x00,0x00,0xe0]
+ vpdpwssds -536870910(%rcx,%r14,8), %ymm22, %ymm21
+
+// CHECK: vpdpbusd (%rcx), %ymm2, %ymm1 {%k2}
+// CHECK: encoding: [0x62,0xf2,0x6d,0x2a,0x50,0x09]
+ vpdpbusd (%rcx), %ymm2, %ymm1 {%k2}
+
+// CHECK: vpdpbusd -128(%rsp), %ymm2, %ymm1 {%k2}
+// CHECK: encoding: [0x62,0xf2,0x6d,0x2a,0x50,0x4c,0x24,0xfc]
+ vpdpbusd -128(%rsp), %ymm2, %ymm1 {%k2}
+
+// CHECK: vpdpbusd 128(%rsp), %ymm2, %ymm1 {%k2}
+// CHECK: encoding: [0x62,0xf2,0x6d,0x2a,0x50,0x4c,0x24,0x04]
+ vpdpbusd 128(%rsp), %ymm2, %ymm1 {%k2}
+
+// CHECK: vpdpbusd 268435456(%rcx,%r14,8), %ymm2, %ymm1 {%k2}
+// CHECK: encoding: [0x62,0xb2,0x6d,0x2a,0x50,0x8c,0xf1,0x00,0x00,0x00,0x10]
+ vpdpbusd 268435456(%rcx,%r14,8), %ymm2, %ymm1 {%k2}
+
+// CHECK: vpdpbusd -536870912(%rcx,%r14,8), %ymm2, %ymm1 {%k2}
+// CHECK: encoding: [0x62,0xb2,0x6d,0x2a,0x50,0x8c,0xf1,0x00,0x00,0x00,0xe0]
+ vpdpbusd -536870912(%rcx,%r14,8), %ymm2, %ymm1 {%k2}
+
+// CHECK: vpdpbusd -536870910(%rcx,%r14,8), %ymm2, %ymm1 {%k2}
+// CHECK: encoding: [0x62,0xb2,0x6d,0x2a,0x50,0x8c,0xf1,0x02,0x00,0x00,0xe0]
+ vpdpbusd -536870910(%rcx,%r14,8), %ymm2, %ymm1 {%k2}
+
+// CHECK: vpdpbusds (%rcx), %ymm2, %ymm1 {%k2}
+// CHECK: encoding: [0x62,0xf2,0x6d,0x2a,0x51,0x09]
+ vpdpbusds (%rcx), %ymm2, %ymm1 {%k2}
+
+// CHECK: vpdpbusds -128(%rsp), %ymm2, %ymm1 {%k2}
+// CHECK: encoding: [0x62,0xf2,0x6d,0x2a,0x51,0x4c,0x24,0xfc]
+ vpdpbusds -128(%rsp), %ymm2, %ymm1 {%k2}
+
+// CHECK: vpdpbusds 128(%rsp), %ymm2, %ymm1 {%k2}
+// CHECK: encoding: [0x62,0xf2,0x6d,0x2a,0x51,0x4c,0x24,0x04]
+ vpdpbusds 128(%rsp), %ymm2, %ymm1 {%k2}
+
+// CHECK: vpdpbusds 268435456(%rcx,%r14,8), %ymm2, %ymm1 {%k2}
+// CHECK: encoding: [0x62,0xb2,0x6d,0x2a,0x51,0x8c,0xf1,0x00,0x00,0x00,0x10]
+ vpdpbusds 268435456(%rcx,%r14,8), %ymm2, %ymm1 {%k2}
+
+// CHECK: vpdpbusds -536870912(%rcx,%r14,8), %ymm2, %ymm1 {%k2}
+// CHECK: encoding: [0x62,0xb2,0x6d,0x2a,0x51,0x8c,0xf1,0x00,0x00,0x00,0xe0]
+ vpdpbusds -536870912(%rcx,%r14,8), %ymm2, %ymm1 {%k2}
+
+// CHECK: vpdpbusds -536870910(%rcx,%r14,8), %ymm2, %ymm1 {%k2}
+// CHECK: encoding: [0x62,0xb2,0x6d,0x2a,0x51,0x8c,0xf1,0x02,0x00,0x00,0xe0]
+ vpdpbusds -536870910(%rcx,%r14,8), %ymm2, %ymm1 {%k2}
+
+// CHECK: vpdpwssd (%rcx), %ymm2, %ymm1 {%k2}
+// CHECK: encoding: [0x62,0xf2,0x6d,0x2a,0x52,0x09]
+ vpdpwssd (%rcx), %ymm2, %ymm1 {%k2}
+
+// CHECK: vpdpwssd -128(%rsp), %ymm2, %ymm1 {%k2}
+// CHECK: encoding: [0x62,0xf2,0x6d,0x2a,0x52,0x4c,0x24,0xfc]
+ vpdpwssd -128(%rsp), %ymm2, %ymm1 {%k2}
+
+// CHECK: vpdpwssd 128(%rsp), %ymm2, %ymm1 {%k2}
+// CHECK: encoding: [0x62,0xf2,0x6d,0x2a,0x52,0x4c,0x24,0x04]
+ vpdpwssd 128(%rsp), %ymm2, %ymm1 {%k2}
+
+// CHECK: vpdpwssd 268435456(%rcx,%r14,8), %ymm2, %ymm1 {%k2}
+// CHECK: encoding: [0x62,0xb2,0x6d,0x2a,0x52,0x8c,0xf1,0x00,0x00,0x00,0x10]
+ vpdpwssd 268435456(%rcx,%r14,8), %ymm2, %ymm1 {%k2}
+
+// CHECK: vpdpwssd -536870912(%rcx,%r14,8), %ymm2, %ymm1 {%k2}
+// CHECK: encoding: [0x62,0xb2,0x6d,0x2a,0x52,0x8c,0xf1,0x00,0x00,0x00,0xe0]
+ vpdpwssd -536870912(%rcx,%r14,8), %ymm2, %ymm1 {%k2}
+
+// CHECK: vpdpwssd -536870910(%rcx,%r14,8), %ymm2, %ymm1 {%k2}
+// CHECK: encoding: [0x62,0xb2,0x6d,0x2a,0x52,0x8c,0xf1,0x02,0x00,0x00,0xe0]
+ vpdpwssd -536870910(%rcx,%r14,8), %ymm2, %ymm1 {%k2}
+
+// CHECK: vpdpwssds (%rcx), %ymm2, %ymm1 {%k2}
+// CHECK: encoding: [0x62,0xf2,0x6d,0x2a,0x53,0x09]
+ vpdpwssds (%rcx), %ymm2, %ymm1 {%k2}
+
+// CHECK: vpdpwssds -128(%rsp), %ymm2, %ymm1 {%k2}
+// CHECK: encoding: [0x62,0xf2,0x6d,0x2a,0x53,0x4c,0x24,0xfc]
+ vpdpwssds -128(%rsp), %ymm2, %ymm1 {%k2}
+
+// CHECK: vpdpwssds 128(%rsp), %ymm2, %ymm1 {%k2}
+// CHECK: encoding: [0x62,0xf2,0x6d,0x2a,0x53,0x4c,0x24,0x04]
+ vpdpwssds 128(%rsp), %ymm2, %ymm1 {%k2}
+
+// CHECK: vpdpwssds 268435456(%rcx,%r14,8), %ymm2, %ymm1 {%k2}
+// CHECK: encoding: [0x62,0xb2,0x6d,0x2a,0x53,0x8c,0xf1,0x00,0x00,0x00,0x10]
+ vpdpwssds 268435456(%rcx,%r14,8), %ymm2, %ymm1 {%k2}
+
+// CHECK: vpdpwssds -536870912(%rcx,%r14,8), %ymm2, %ymm1 {%k2}
+// CHECK: encoding: [0x62,0xb2,0x6d,0x2a,0x53,0x8c,0xf1,0x00,0x00,0x00,0xe0]
+ vpdpwssds -536870912(%rcx,%r14,8), %ymm2, %ymm1 {%k2}
+
+// CHECK: vpdpwssds -536870910(%rcx,%r14,8), %ymm2, %ymm1 {%k2}
+// CHECK: encoding: [0x62,0xb2,0x6d,0x2a,0x53,0x8c,0xf1,0x02,0x00,0x00,0xe0]
+ vpdpwssds -536870910(%rcx,%r14,8), %ymm2, %ymm1 {%k2}
+
+// CHECK: vpdpbusd (%rcx), %ymm22, %ymm21 {%k2}
+// CHECK: encoding: [0x62,0xe2,0x4d,0x22,0x50,0x29]
+ vpdpbusd (%rcx), %ymm22, %ymm21 {%k2}
+
+// CHECK: vpdpbusd -128(%rsp), %ymm22, %ymm21 {%k2}
+// CHECK: encoding: [0x62,0xe2,0x4d,0x22,0x50,0x6c,0x24,0xfc]
+ vpdpbusd -128(%rsp), %ymm22, %ymm21 {%k2}
+
+// CHECK: vpdpbusd 128(%rsp), %ymm22, %ymm21 {%k2}
+// CHECK: encoding: [0x62,0xe2,0x4d,0x22,0x50,0x6c,0x24,0x04]
+ vpdpbusd 128(%rsp), %ymm22, %ymm21 {%k2}
+
+// CHECK: vpdpbusd 268435456(%rcx,%r14,8), %ymm22, %ymm21 {%k2}
+// CHECK: encoding: [0x62,0xa2,0x4d,0x22,0x50,0xac,0xf1,0x00,0x00,0x00,0x10]
+ vpdpbusd 268435456(%rcx,%r14,8), %ymm22, %ymm21 {%k2}
+
+// CHECK: vpdpbusd -536870912(%rcx,%r14,8), %ymm22, %ymm21 {%k2}
+// CHECK: encoding: [0x62,0xa2,0x4d,0x22,0x50,0xac,0xf1,0x00,0x00,0x00,0xe0]
+ vpdpbusd -536870912(%rcx,%r14,8), %ymm22, %ymm21 {%k2}
+
+// CHECK: vpdpbusd -536870910(%rcx,%r14,8), %ymm22, %ymm21 {%k2}
+// CHECK: encoding: [0x62,0xa2,0x4d,0x22,0x50,0xac,0xf1,0x02,0x00,0x00,0xe0]
+ vpdpbusd -536870910(%rcx,%r14,8), %ymm22, %ymm21 {%k2}
+
+// CHECK: vpdpbusds (%rcx), %ymm22, %ymm21 {%k2}
+// CHECK: encoding: [0x62,0xe2,0x4d,0x22,0x51,0x29]
+ vpdpbusds (%rcx), %ymm22, %ymm21 {%k2}
+
+// CHECK: vpdpbusds -128(%rsp), %ymm22, %ymm21 {%k2}
+// CHECK: encoding: [0x62,0xe2,0x4d,0x22,0x51,0x6c,0x24,0xfc]
+ vpdpbusds -128(%rsp), %ymm22, %ymm21 {%k2}
+
+// CHECK: vpdpbusds 128(%rsp), %ymm22, %ymm21 {%k2}
+// CHECK: encoding: [0x62,0xe2,0x4d,0x22,0x51,0x6c,0x24,0x04]
+ vpdpbusds 128(%rsp), %ymm22, %ymm21 {%k2}
+
+// CHECK: vpdpbusds 268435456(%rcx,%r14,8), %ymm22, %ymm21 {%k2}
+// CHECK: encoding: [0x62,0xa2,0x4d,0x22,0x51,0xac,0xf1,0x00,0x00,0x00,0x10]
+ vpdpbusds 268435456(%rcx,%r14,8), %ymm22, %ymm21 {%k2}
+
+// CHECK: vpdpbusds -536870912(%rcx,%r14,8), %ymm22, %ymm21 {%k2}
+// CHECK: encoding: [0x62,0xa2,0x4d,0x22,0x51,0xac,0xf1,0x00,0x00,0x00,0xe0]
+ vpdpbusds -536870912(%rcx,%r14,8), %ymm22, %ymm21 {%k2}
+
+// CHECK: vpdpbusds -536870910(%rcx,%r14,8), %ymm22, %ymm21 {%k2}
+// CHECK: encoding: [0x62,0xa2,0x4d,0x22,0x51,0xac,0xf1,0x02,0x00,0x00,0xe0]
+ vpdpbusds -536870910(%rcx,%r14,8), %ymm22, %ymm21 {%k2}
+
+// CHECK: vpdpwssd (%rcx), %ymm22, %ymm21 {%k2}
+// CHECK: encoding: [0x62,0xe2,0x4d,0x22,0x52,0x29]
+ vpdpwssd (%rcx), %ymm22, %ymm21 {%k2}
+
+// CHECK: vpdpwssd -128(%rsp), %ymm22, %ymm21 {%k2}
+// CHECK: encoding: [0x62,0xe2,0x4d,0x22,0x52,0x6c,0x24,0xfc]
+ vpdpwssd -128(%rsp), %ymm22, %ymm21 {%k2}
+
+// CHECK: vpdpwssd 128(%rsp), %ymm22, %ymm21 {%k2}
+// CHECK: encoding: [0x62,0xe2,0x4d,0x22,0x52,0x6c,0x24,0x04]
+ vpdpwssd 128(%rsp), %ymm22, %ymm21 {%k2}
+
+// CHECK: vpdpwssd 268435456(%rcx,%r14,8), %ymm22, %ymm21 {%k2}
+// CHECK: encoding: [0x62,0xa2,0x4d,0x22,0x52,0xac,0xf1,0x00,0x00,0x00,0x10]
+ vpdpwssd 268435456(%rcx,%r14,8), %ymm22, %ymm21 {%k2}
+
+// CHECK: vpdpwssd -536870912(%rcx,%r14,8), %ymm22, %ymm21 {%k2}
+// CHECK: encoding: [0x62,0xa2,0x4d,0x22,0x52,0xac,0xf1,0x00,0x00,0x00,0xe0]
+ vpdpwssd -536870912(%rcx,%r14,8), %ymm22, %ymm21 {%k2}
+
+// CHECK: vpdpwssd -536870910(%rcx,%r14,8), %ymm22, %ymm21 {%k2}
+// CHECK: encoding: [0x62,0xa2,0x4d,0x22,0x52,0xac,0xf1,0x02,0x00,0x00,0xe0]
+ vpdpwssd -536870910(%rcx,%r14,8), %ymm22, %ymm21 {%k2}
+
+// CHECK: vpdpwssds (%rcx), %ymm22, %ymm21 {%k2}
+// CHECK: encoding: [0x62,0xe2,0x4d,0x22,0x53,0x29]
+ vpdpwssds (%rcx), %ymm22, %ymm21 {%k2}
+
+// CHECK: vpdpwssds -128(%rsp), %ymm22, %ymm21 {%k2}
+// CHECK: encoding: [0x62,0xe2,0x4d,0x22,0x53,0x6c,0x24,0xfc]
+ vpdpwssds -128(%rsp), %ymm22, %ymm21 {%k2}
+
+// CHECK: vpdpwssds 128(%rsp), %ymm22, %ymm21 {%k2}
+// CHECK: encoding: [0x62,0xe2,0x4d,0x22,0x53,0x6c,0x24,0x04]
+ vpdpwssds 128(%rsp), %ymm22, %ymm21 {%k2}
+
+// CHECK: vpdpwssds 268435456(%rcx,%r14,8), %ymm22, %ymm21 {%k2}
+// CHECK: encoding: [0x62,0xa2,0x4d,0x22,0x53,0xac,0xf1,0x00,0x00,0x00,0x10]
+ vpdpwssds 268435456(%rcx,%r14,8), %ymm22, %ymm21 {%k2}
+
+// CHECK: vpdpwssds -536870912(%rcx,%r14,8), %ymm22, %ymm21 {%k2}
+// CHECK: encoding: [0x62,0xa2,0x4d,0x22,0x53,0xac,0xf1,0x00,0x00,0x00,0xe0]
+ vpdpwssds -536870912(%rcx,%r14,8), %ymm22, %ymm21 {%k2}
+
+// CHECK: vpdpwssds -536870910(%rcx,%r14,8), %ymm22, %ymm21 {%k2}
+// CHECK: encoding: [0x62,0xa2,0x4d,0x22,0x53,0xac,0xf1,0x02,0x00,0x00,0xe0]
+ vpdpwssds -536870910(%rcx,%r14,8), %ymm22, %ymm21 {%k2}
+
diff --git a/llvm/test/MC/X86/avx512vnni-encoding.s b/llvm/test/MC/X86/avx512vnni-encoding.s
new file mode 100644
index 00000000000..f12930ee23f
--- /dev/null
+++ b/llvm/test/MC/X86/avx512vnni-encoding.s
@@ -0,0 +1,450 @@
+// RUN: llvm-mc -triple x86_64-unknown-unknown -mcpu=knl -mattr=+avx512vnni --show-encoding < %s | FileCheck %s
+
+// CHECK: vpdpbusd %zmm3, %zmm2, %zmm1
+// CHECK: encoding: [0x62,0xf2,0x6d,0x48,0x50,0xcb]
+ vpdpbusd %zmm3, %zmm2, %zmm1
+
+// CHECK: vpdpbusds %zmm3, %zmm2, %zmm1
+// CHECK: encoding: [0x62,0xf2,0x6d,0x48,0x51,0xcb]
+ vpdpbusds %zmm3, %zmm2, %zmm1
+
+// CHECK: vpdpwssd %zmm3, %zmm2, %zmm1
+// CHECK: encoding: [0x62,0xf2,0x6d,0x48,0x52,0xcb]
+ vpdpwssd %zmm3, %zmm2, %zmm1
+
+// CHECK: vpdpwssds %zmm3, %zmm2, %zmm1
+// CHECK: encoding: [0x62,0xf2,0x6d,0x48,0x53,0xcb]
+ vpdpwssds %zmm3, %zmm2, %zmm1
+
+// CHECK: vpdpbusd %zmm23, %zmm22, %zmm21
+// CHECK: encoding: [0x62,0xa2,0x4d,0x40,0x50,0xef]
+ vpdpbusd %zmm23, %zmm22, %zmm21
+
+// CHECK: vpdpbusds %zmm23, %zmm22, %zmm21
+// CHECK: encoding: [0x62,0xa2,0x4d,0x40,0x51,0xef]
+ vpdpbusds %zmm23, %zmm22, %zmm21
+
+// CHECK: vpdpwssd %zmm23, %zmm22, %zmm21
+// CHECK: encoding: [0x62,0xa2,0x4d,0x40,0x52,0xef]
+ vpdpwssd %zmm23, %zmm22, %zmm21
+
+// CHECK: vpdpwssds %zmm23, %zmm22, %zmm21
+// CHECK: encoding: [0x62,0xa2,0x4d,0x40,0x53,0xef]
+ vpdpwssds %zmm23, %zmm22, %zmm21
+
+// CHECK: vpdpbusd %zmm3, %zmm2, %zmm1 {%k2}
+// CHECK: encoding: [0x62,0xf2,0x6d,0x4a,0x50,0xcb]
+ vpdpbusd %zmm3, %zmm2, %zmm1 {%k2}
+
+// CHECK: vpdpbusds %zmm3, %zmm2, %zmm1 {%k2}
+// CHECK: encoding: [0x62,0xf2,0x6d,0x4a,0x51,0xcb]
+ vpdpbusds %zmm3, %zmm2, %zmm1 {%k2}
+
+// CHECK: vpdpwssd %zmm3, %zmm2, %zmm1 {%k2}
+// CHECK: encoding: [0x62,0xf2,0x6d,0x4a,0x52,0xcb]
+ vpdpwssd %zmm3, %zmm2, %zmm1 {%k2}
+
+// CHECK: vpdpwssds %zmm3, %zmm2, %zmm1 {%k2}
+// CHECK: encoding: [0x62,0xf2,0x6d,0x4a,0x53,0xcb]
+ vpdpwssds %zmm3, %zmm2, %zmm1 {%k2}
+
+// CHECK: vpdpbusd %zmm23, %zmm22, %zmm21 {%k2}
+// CHECK: encoding: [0x62,0xa2,0x4d,0x42,0x50,0xef]
+ vpdpbusd %zmm23, %zmm22, %zmm21 {%k2}
+
+// CHECK: vpdpbusds %zmm23, %zmm22, %zmm21 {%k2}
+// CHECK: encoding: [0x62,0xa2,0x4d,0x42,0x51,0xef]
+ vpdpbusds %zmm23, %zmm22, %zmm21 {%k2}
+
+// CHECK: vpdpwssd %zmm23, %zmm22, %zmm21 {%k2}
+// CHECK: encoding: [0x62,0xa2,0x4d,0x42,0x52,0xef]
+ vpdpwssd %zmm23, %zmm22, %zmm21 {%k2}
+
+// CHECK: vpdpwssds %zmm23, %zmm22, %zmm21 {%k2}
+// CHECK: encoding: [0x62,0xa2,0x4d,0x42,0x53,0xef]
+ vpdpwssds %zmm23, %zmm22, %zmm21 {%k2}
+
+// CHECK: vpdpbusd (%rcx), %zmm2, %zmm1
+// CHECK: encoding: [0x62,0xf2,0x6d,0x48,0x50,0x09]
+ vpdpbusd (%rcx), %zmm2, %zmm1
+
+// CHECK: vpdpbusd -256(%rsp), %zmm2, %zmm1
+// CHECK: encoding: [0x62,0xf2,0x6d,0x48,0x50,0x4c,0x24,0xfc]
+ vpdpbusd -256(%rsp), %zmm2, %zmm1
+
+// CHECK: vpdpbusd 256(%rsp), %zmm2, %zmm1
+// CHECK: encoding: [0x62,0xf2,0x6d,0x48,0x50,0x4c,0x24,0x04]
+ vpdpbusd 256(%rsp), %zmm2, %zmm1
+
+// CHECK: vpdpbusd 268435456(%rcx,%r14,8), %zmm2, %zmm1
+// CHECK: encoding: [0x62,0xb2,0x6d,0x48,0x50,0x8c,0xf1,0x00,0x00,0x00,0x10]
+ vpdpbusd 268435456(%rcx,%r14,8), %zmm2, %zmm1
+
+// CHECK: vpdpbusd -536870912(%rcx,%r14,8), %zmm2, %zmm1
+// CHECK: encoding: [0x62,0xb2,0x6d,0x48,0x50,0x8c,0xf1,0x00,0x00,0x00,0xe0]
+ vpdpbusd -536870912(%rcx,%r14,8), %zmm2, %zmm1
+
+// CHECK: vpdpbusd -536870910(%rcx,%r14,8), %zmm2, %zmm1
+// CHECK: encoding: [0x62,0xb2,0x6d,0x48,0x50,0x8c,0xf1,0x02,0x00,0x00,0xe0]
+ vpdpbusd -536870910(%rcx,%r14,8), %zmm2, %zmm1
+
+// CHECK: vpdpbusds (%rcx), %zmm2, %zmm1
+// CHECK: encoding: [0x62,0xf2,0x6d,0x48,0x51,0x09]
+ vpdpbusds (%rcx), %zmm2, %zmm1
+
+// CHECK: vpdpbusds -256(%rsp), %zmm2, %zmm1
+// CHECK: encoding: [0x62,0xf2,0x6d,0x48,0x51,0x4c,0x24,0xfc]
+ vpdpbusds -256(%rsp), %zmm2, %zmm1
+
+// CHECK: vpdpbusds 256(%rsp), %zmm2, %zmm1
+// CHECK: encoding: [0x62,0xf2,0x6d,0x48,0x51,0x4c,0x24,0x04]
+ vpdpbusds 256(%rsp), %zmm2, %zmm1
+
+// CHECK: vpdpbusds 268435456(%rcx,%r14,8), %zmm2, %zmm1
+// CHECK: encoding: [0x62,0xb2,0x6d,0x48,0x51,0x8c,0xf1,0x00,0x00,0x00,0x10]
+ vpdpbusds 268435456(%rcx,%r14,8), %zmm2, %zmm1
+
+// CHECK: vpdpbusds -536870912(%rcx,%r14,8), %zmm2, %zmm1
+// CHECK: encoding: [0x62,0xb2,0x6d,0x48,0x51,0x8c,0xf1,0x00,0x00,0x00,0xe0]
+ vpdpbusds -536870912(%rcx,%r14,8), %zmm2, %zmm1
+
+// CHECK: vpdpbusds -536870910(%rcx,%r14,8), %zmm2, %zmm1
+// CHECK: encoding: [0x62,0xb2,0x6d,0x48,0x51,0x8c,0xf1,0x02,0x00,0x00,0xe0]
+ vpdpbusds -536870910(%rcx,%r14,8), %zmm2, %zmm1
+
+// CHECK: vpdpwssd (%rcx), %zmm2, %zmm1
+// CHECK: encoding: [0x62,0xf2,0x6d,0x48,0x52,0x09]
+ vpdpwssd (%rcx), %zmm2, %zmm1
+
+// CHECK: vpdpwssd -256(%rsp), %zmm2, %zmm1
+// CHECK: encoding: [0x62,0xf2,0x6d,0x48,0x52,0x4c,0x24,0xfc]
+ vpdpwssd -256(%rsp), %zmm2, %zmm1
+
+// CHECK: vpdpwssd 256(%rsp), %zmm2, %zmm1
+// CHECK: encoding: [0x62,0xf2,0x6d,0x48,0x52,0x4c,0x24,0x04]
+ vpdpwssd 256(%rsp), %zmm2, %zmm1
+
+// CHECK: vpdpwssd 268435456(%rcx,%r14,8), %zmm2, %zmm1
+// CHECK: encoding: [0x62,0xb2,0x6d,0x48,0x52,0x8c,0xf1,0x00,0x00,0x00,0x10]
+ vpdpwssd 268435456(%rcx,%r14,8), %zmm2, %zmm1
+
+// CHECK: vpdpwssd -536870912(%rcx,%r14,8), %zmm2, %zmm1
+// CHECK: encoding: [0x62,0xb2,0x6d,0x48,0x52,0x8c,0xf1,0x00,0x00,0x00,0xe0]
+ vpdpwssd -536870912(%rcx,%r14,8), %zmm2, %zmm1
+
+// CHECK: vpdpwssd -536870910(%rcx,%r14,8), %zmm2, %zmm1
+// CHECK: encoding: [0x62,0xb2,0x6d,0x48,0x52,0x8c,0xf1,0x02,0x00,0x00,0xe0]
+ vpdpwssd -536870910(%rcx,%r14,8), %zmm2, %zmm1
+
+// CHECK: vpdpwssds (%rcx), %zmm2, %zmm1
+// CHECK: encoding: [0x62,0xf2,0x6d,0x48,0x53,0x09]
+ vpdpwssds (%rcx), %zmm2, %zmm1
+
+// CHECK: vpdpwssds -256(%rsp), %zmm2, %zmm1
+// CHECK: encoding: [0x62,0xf2,0x6d,0x48,0x53,0x4c,0x24,0xfc]
+ vpdpwssds -256(%rsp), %zmm2, %zmm1
+
+// CHECK: vpdpwssds 256(%rsp), %zmm2, %zmm1
+// CHECK: encoding: [0x62,0xf2,0x6d,0x48,0x53,0x4c,0x24,0x04]
+ vpdpwssds 256(%rsp), %zmm2, %zmm1
+
+// CHECK: vpdpwssds 268435456(%rcx,%r14,8), %zmm2, %zmm1
+// CHECK: encoding: [0x62,0xb2,0x6d,0x48,0x53,0x8c,0xf1,0x00,0x00,0x00,0x10]
+ vpdpwssds 268435456(%rcx,%r14,8), %zmm2, %zmm1
+
+// CHECK: vpdpwssds -536870912(%rcx,%r14,8), %zmm2, %zmm1
+// CHECK: encoding: [0x62,0xb2,0x6d,0x48,0x53,0x8c,0xf1,0x00,0x00,0x00,0xe0]
+ vpdpwssds -536870912(%rcx,%r14,8), %zmm2, %zmm1
+
+// CHECK: vpdpwssds -536870910(%rcx,%r14,8), %zmm2, %zmm1
+// CHECK: encoding: [0x62,0xb2,0x6d,0x48,0x53,0x8c,0xf1,0x02,0x00,0x00,0xe0]
+ vpdpwssds -536870910(%rcx,%r14,8), %zmm2, %zmm1
+
+// CHECK: vpdpbusd (%rcx), %zmm22, %zmm21
+// CHECK: encoding: [0x62,0xe2,0x4d,0x40,0x50,0x29]
+ vpdpbusd (%rcx), %zmm22, %zmm21
+
+// CHECK: vpdpbusd -256(%rsp), %zmm22, %zmm21
+// CHECK: encoding: [0x62,0xe2,0x4d,0x40,0x50,0x6c,0x24,0xfc]
+ vpdpbusd -256(%rsp), %zmm22, %zmm21
+
+// CHECK: vpdpbusd 256(%rsp), %zmm22, %zmm21
+// CHECK: encoding: [0x62,0xe2,0x4d,0x40,0x50,0x6c,0x24,0x04]
+ vpdpbusd 256(%rsp), %zmm22, %zmm21
+
+// CHECK: vpdpbusd 268435456(%rcx,%r14,8), %zmm22, %zmm21
+// CHECK: encoding: [0x62,0xa2,0x4d,0x40,0x50,0xac,0xf1,0x00,0x00,0x00,0x10]
+ vpdpbusd 268435456(%rcx,%r14,8), %zmm22, %zmm21
+
+// CHECK: vpdpbusd -536870912(%rcx,%r14,8), %zmm22, %zmm21
+// CHECK: encoding: [0x62,0xa2,0x4d,0x40,0x50,0xac,0xf1,0x00,0x00,0x00,0xe0]
+ vpdpbusd -536870912(%rcx,%r14,8), %zmm22, %zmm21
+
+// CHECK: vpdpbusd -536870910(%rcx,%r14,8), %zmm22, %zmm21
+// CHECK: encoding: [0x62,0xa2,0x4d,0x40,0x50,0xac,0xf1,0x02,0x00,0x00,0xe0]
+ vpdpbusd -536870910(%rcx,%r14,8), %zmm22, %zmm21
+
+// CHECK: vpdpbusds (%rcx), %zmm22, %zmm21
+// CHECK: encoding: [0x62,0xe2,0x4d,0x40,0x51,0x29]
+ vpdpbusds (%rcx), %zmm22, %zmm21
+
+// CHECK: vpdpbusds -256(%rsp), %zmm22, %zmm21
+// CHECK: encoding: [0x62,0xe2,0x4d,0x40,0x51,0x6c,0x24,0xfc]
+ vpdpbusds -256(%rsp), %zmm22, %zmm21
+
+// CHECK: vpdpbusds 256(%rsp), %zmm22, %zmm21
+// CHECK: encoding: [0x62,0xe2,0x4d,0x40,0x51,0x6c,0x24,0x04]
+ vpdpbusds 256(%rsp), %zmm22, %zmm21
+
+// CHECK: vpdpbusds 268435456(%rcx,%r14,8), %zmm22, %zmm21
+// CHECK: encoding: [0x62,0xa2,0x4d,0x40,0x51,0xac,0xf1,0x00,0x00,0x00,0x10]
+ vpdpbusds 268435456(%rcx,%r14,8), %zmm22, %zmm21
+
+// CHECK: vpdpbusds -536870912(%rcx,%r14,8), %zmm22, %zmm21
+// CHECK: encoding: [0x62,0xa2,0x4d,0x40,0x51,0xac,0xf1,0x00,0x00,0x00,0xe0]
+ vpdpbusds -536870912(%rcx,%r14,8), %zmm22, %zmm21
+
+// CHECK: vpdpbusds -536870910(%rcx,%r14,8), %zmm22, %zmm21
+// CHECK: encoding: [0x62,0xa2,0x4d,0x40,0x51,0xac,0xf1,0x02,0x00,0x00,0xe0]
+ vpdpbusds -536870910(%rcx,%r14,8), %zmm22, %zmm21
+
+// CHECK: vpdpwssd (%rcx), %zmm22, %zmm21
+// CHECK: encoding: [0x62,0xe2,0x4d,0x40,0x52,0x29]
+ vpdpwssd (%rcx), %zmm22, %zmm21
+
+// CHECK: vpdpwssd -256(%rsp), %zmm22, %zmm21
+// CHECK: encoding: [0x62,0xe2,0x4d,0x40,0x52,0x6c,0x24,0xfc]
+ vpdpwssd -256(%rsp), %zmm22, %zmm21
+
+// CHECK: vpdpwssd 256(%rsp), %zmm22, %zmm21
+// CHECK: encoding: [0x62,0xe2,0x4d,0x40,0x52,0x6c,0x24,0x04]
+ vpdpwssd 256(%rsp), %zmm22, %zmm21
+
+// CHECK: vpdpwssd 268435456(%rcx,%r14,8), %zmm22, %zmm21
+// CHECK: encoding: [0x62,0xa2,0x4d,0x40,0x52,0xac,0xf1,0x00,0x00,0x00,0x10]
+ vpdpwssd 268435456(%rcx,%r14,8), %zmm22, %zmm21
+
+// CHECK: vpdpwssd -536870912(%rcx,%r14,8), %zmm22, %zmm21
+// CHECK: encoding: [0x62,0xa2,0x4d,0x40,0x52,0xac,0xf1,0x00,0x00,0x00,0xe0]
+ vpdpwssd -536870912(%rcx,%r14,8), %zmm22, %zmm21
+
+// CHECK: vpdpwssd -536870910(%rcx,%r14,8), %zmm22, %zmm21
+// CHECK: encoding: [0x62,0xa2,0x4d,0x40,0x52,0xac,0xf1,0x02,0x00,0x00,0xe0]
+ vpdpwssd -536870910(%rcx,%r14,8), %zmm22, %zmm21
+
+// CHECK: vpdpwssds (%rcx), %zmm22, %zmm21
+// CHECK: encoding: [0x62,0xe2,0x4d,0x40,0x53,0x29]
+ vpdpwssds (%rcx), %zmm22, %zmm21
+
+// CHECK: vpdpwssds -256(%rsp), %zmm22, %zmm21
+// CHECK: encoding: [0x62,0xe2,0x4d,0x40,0x53,0x6c,0x24,0xfc]
+ vpdpwssds -256(%rsp), %zmm22, %zmm21
+
+// CHECK: vpdpwssds 256(%rsp), %zmm22, %zmm21
+// CHECK: encoding: [0x62,0xe2,0x4d,0x40,0x53,0x6c,0x24,0x04]
+ vpdpwssds 256(%rsp), %zmm22, %zmm21
+
+// CHECK: vpdpwssds 268435456(%rcx,%r14,8), %zmm22, %zmm21
+// CHECK: encoding: [0x62,0xa2,0x4d,0x40,0x53,0xac,0xf1,0x00,0x00,0x00,0x10]
+ vpdpwssds 268435456(%rcx,%r14,8), %zmm22, %zmm21
+
+// CHECK: vpdpwssds -536870912(%rcx,%r14,8), %zmm22, %zmm21
+// CHECK: encoding: [0x62,0xa2,0x4d,0x40,0x53,0xac,0xf1,0x00,0x00,0x00,0xe0]
+ vpdpwssds -536870912(%rcx,%r14,8), %zmm22, %zmm21
+
+// CHECK: vpdpwssds -536870910(%rcx,%r14,8), %zmm22, %zmm21
+// CHECK: encoding: [0x62,0xa2,0x4d,0x40,0x53,0xac,0xf1,0x02,0x00,0x00,0xe0]
+ vpdpwssds -536870910(%rcx,%r14,8), %zmm22, %zmm21
+
+// CHECK: vpdpbusd (%rcx), %zmm2, %zmm1 {%k2}
+// CHECK: encoding: [0x62,0xf2,0x6d,0x4a,0x50,0x09]
+ vpdpbusd (%rcx), %zmm2, %zmm1 {%k2}
+
+// CHECK: vpdpbusd -256(%rsp), %zmm2, %zmm1 {%k2}
+// CHECK: encoding: [0x62,0xf2,0x6d,0x4a,0x50,0x4c,0x24,0xfc]
+ vpdpbusd -256(%rsp), %zmm2, %zmm1 {%k2}
+
+// CHECK: vpdpbusd 256(%rsp), %zmm2, %zmm1 {%k2}
+// CHECK: encoding: [0x62,0xf2,0x6d,0x4a,0x50,0x4c,0x24,0x04]
+ vpdpbusd 256(%rsp), %zmm2, %zmm1 {%k2}
+
+// CHECK: vpdpbusd 268435456(%rcx,%r14,8), %zmm2, %zmm1 {%k2}
+// CHECK: encoding: [0x62,0xb2,0x6d,0x4a,0x50,0x8c,0xf1,0x00,0x00,0x00,0x10]
+ vpdpbusd 268435456(%rcx,%r14,8), %zmm2, %zmm1 {%k2}
+
+// CHECK: vpdpbusd -536870912(%rcx,%r14,8), %zmm2, %zmm1 {%k2}
+// CHECK: encoding: [0x62,0xb2,0x6d,0x4a,0x50,0x8c,0xf1,0x00,0x00,0x00,0xe0]
+ vpdpbusd -536870912(%rcx,%r14,8), %zmm2, %zmm1 {%k2}
+
+// CHECK: vpdpbusd -536870910(%rcx,%r14,8), %zmm2, %zmm1 {%k2}
+// CHECK: encoding: [0x62,0xb2,0x6d,0x4a,0x50,0x8c,0xf1,0x02,0x00,0x00,0xe0]
+ vpdpbusd -536870910(%rcx,%r14,8), %zmm2, %zmm1 {%k2}
+
+// CHECK: vpdpbusds (%rcx), %zmm2, %zmm1 {%k2}
+// CHECK: encoding: [0x62,0xf2,0x6d,0x4a,0x51,0x09]
+ vpdpbusds (%rcx), %zmm2, %zmm1 {%k2}
+
+// CHECK: vpdpbusds -256(%rsp), %zmm2, %zmm1 {%k2}
+// CHECK: encoding: [0x62,0xf2,0x6d,0x4a,0x51,0x4c,0x24,0xfc]
+ vpdpbusds -256(%rsp), %zmm2, %zmm1 {%k2}
+
+// CHECK: vpdpbusds 256(%rsp), %zmm2, %zmm1 {%k2}
+// CHECK: encoding: [0x62,0xf2,0x6d,0x4a,0x51,0x4c,0x24,0x04]
+ vpdpbusds 256(%rsp), %zmm2, %zmm1 {%k2}
+
+// CHECK: vpdpbusds 268435456(%rcx,%r14,8), %zmm2, %zmm1 {%k2}
+// CHECK: encoding: [0x62,0xb2,0x6d,0x4a,0x51,0x8c,0xf1,0x00,0x00,0x00,0x10]
+ vpdpbusds 268435456(%rcx,%r14,8), %zmm2, %zmm1 {%k2}
+
+// CHECK: vpdpbusds -536870912(%rcx,%r14,8), %zmm2, %zmm1 {%k2}
+// CHECK: encoding: [0x62,0xb2,0x6d,0x4a,0x51,0x8c,0xf1,0x00,0x00,0x00,0xe0]
+ vpdpbusds -536870912(%rcx,%r14,8), %zmm2, %zmm1 {%k2}
+
+// CHECK: vpdpbusds -536870910(%rcx,%r14,8), %zmm2, %zmm1 {%k2}
+// CHECK: encoding: [0x62,0xb2,0x6d,0x4a,0x51,0x8c,0xf1,0x02,0x00,0x00,0xe0]
+ vpdpbusds -536870910(%rcx,%r14,8), %zmm2, %zmm1 {%k2}
+
+// CHECK: vpdpwssd (%rcx), %zmm2, %zmm1 {%k2}
+// CHECK: encoding: [0x62,0xf2,0x6d,0x4a,0x52,0x09]
+ vpdpwssd (%rcx), %zmm2, %zmm1 {%k2}
+
+// CHECK: vpdpwssd -256(%rsp), %zmm2, %zmm1 {%k2}
+// CHECK: encoding: [0x62,0xf2,0x6d,0x4a,0x52,0x4c,0x24,0xfc]
+ vpdpwssd -256(%rsp), %zmm2, %zmm1 {%k2}
+
+// CHECK: vpdpwssd 256(%rsp), %zmm2, %zmm1 {%k2}
+// CHECK: encoding: [0x62,0xf2,0x6d,0x4a,0x52,0x4c,0x24,0x04]
+ vpdpwssd 256(%rsp), %zmm2, %zmm1 {%k2}
+
+// CHECK: vpdpwssd 268435456(%rcx,%r14,8), %zmm2, %zmm1 {%k2}
+// CHECK: encoding: [0x62,0xb2,0x6d,0x4a,0x52,0x8c,0xf1,0x00,0x00,0x00,0x10]
+ vpdpwssd 268435456(%rcx,%r14,8), %zmm2, %zmm1 {%k2}
+
+// CHECK: vpdpwssd -536870912(%rcx,%r14,8), %zmm2, %zmm1 {%k2}
+// CHECK: encoding: [0x62,0xb2,0x6d,0x4a,0x52,0x8c,0xf1,0x00,0x00,0x00,0xe0]
+ vpdpwssd -536870912(%rcx,%r14,8), %zmm2, %zmm1 {%k2}
+
+// CHECK: vpdpwssd -536870910(%rcx,%r14,8), %zmm2, %zmm1 {%k2}
+// CHECK: encoding: [0x62,0xb2,0x6d,0x4a,0x52,0x8c,0xf1,0x02,0x00,0x00,0xe0]
+ vpdpwssd -536870910(%rcx,%r14,8), %zmm2, %zmm1 {%k2}
+
+// CHECK: vpdpwssds (%rcx), %zmm2, %zmm1 {%k2}
+// CHECK: encoding: [0x62,0xf2,0x6d,0x4a,0x53,0x09]
+ vpdpwssds (%rcx), %zmm2, %zmm1 {%k2}
+
+// CHECK: vpdpwssds -256(%rsp), %zmm2, %zmm1 {%k2}
+// CHECK: encoding: [0x62,0xf2,0x6d,0x4a,0x53,0x4c,0x24,0xfc]
+ vpdpwssds -256(%rsp), %zmm2, %zmm1 {%k2}
+
+// CHECK: vpdpwssds 256(%rsp), %zmm2, %zmm1 {%k2}
+// CHECK: encoding: [0x62,0xf2,0x6d,0x4a,0x53,0x4c,0x24,0x04]
+ vpdpwssds 256(%rsp), %zmm2, %zmm1 {%k2}
+
+// CHECK: vpdpwssds 268435456(%rcx,%r14,8), %zmm2, %zmm1 {%k2}
+// CHECK: encoding: [0x62,0xb2,0x6d,0x4a,0x53,0x8c,0xf1,0x00,0x00,0x00,0x10]
+ vpdpwssds 268435456(%rcx,%r14,8), %zmm2, %zmm1 {%k2}
+
+// CHECK: vpdpwssds -536870912(%rcx,%r14,8), %zmm2, %zmm1 {%k2}
+// CHECK: encoding: [0x62,0xb2,0x6d,0x4a,0x53,0x8c,0xf1,0x00,0x00,0x00,0xe0]
+ vpdpwssds -536870912(%rcx,%r14,8), %zmm2, %zmm1 {%k2}
+
+// CHECK: vpdpwssds -536870910(%rcx,%r14,8), %zmm2, %zmm1 {%k2}
+// CHECK: encoding: [0x62,0xb2,0x6d,0x4a,0x53,0x8c,0xf1,0x02,0x00,0x00,0xe0]
+ vpdpwssds -536870910(%rcx,%r14,8), %zmm2, %zmm1 {%k2}
+
+// CHECK: vpdpbusd (%rcx), %zmm22, %zmm21 {%k2}
+// CHECK: encoding: [0x62,0xe2,0x4d,0x42,0x50,0x29]
+ vpdpbusd (%rcx), %zmm22, %zmm21 {%k2}
+
+// CHECK: vpdpbusd -256(%rsp), %zmm22, %zmm21 {%k2}
+// CHECK: encoding: [0x62,0xe2,0x4d,0x42,0x50,0x6c,0x24,0xfc]
+ vpdpbusd -256(%rsp), %zmm22, %zmm21 {%k2}
+
+// CHECK: vpdpbusd 256(%rsp), %zmm22, %zmm21 {%k2}
+// CHECK: encoding: [0x62,0xe2,0x4d,0x42,0x50,0x6c,0x24,0x04]
+ vpdpbusd 256(%rsp), %zmm22, %zmm21 {%k2}
+
+// CHECK: vpdpbusd 268435456(%rcx,%r14,8), %zmm22, %zmm21 {%k2}
+// CHECK: encoding: [0x62,0xa2,0x4d,0x42,0x50,0xac,0xf1,0x00,0x00,0x00,0x10]
+ vpdpbusd 268435456(%rcx,%r14,8), %zmm22, %zmm21 {%k2}
+
+// CHECK: vpdpbusd -536870912(%rcx,%r14,8), %zmm22, %zmm21 {%k2}
+// CHECK: encoding: [0x62,0xa2,0x4d,0x42,0x50,0xac,0xf1,0x00,0x00,0x00,0xe0]
+ vpdpbusd -536870912(%rcx,%r14,8), %zmm22, %zmm21 {%k2}
+
+// CHECK: vpdpbusd -536870910(%rcx,%r14,8), %zmm22, %zmm21 {%k2}
+// CHECK: encoding: [0x62,0xa2,0x4d,0x42,0x50,0xac,0xf1,0x02,0x00,0x00,0xe0]
+ vpdpbusd -536870910(%rcx,%r14,8), %zmm22, %zmm21 {%k2}
+
+// CHECK: vpdpbusds (%rcx), %zmm22, %zmm21 {%k2}
+// CHECK: encoding: [0x62,0xe2,0x4d,0x42,0x51,0x29]
+ vpdpbusds (%rcx), %zmm22, %zmm21 {%k2}
+
+// CHECK: vpdpbusds -256(%rsp), %zmm22, %zmm21 {%k2}
+// CHECK: encoding: [0x62,0xe2,0x4d,0x42,0x51,0x6c,0x24,0xfc]
+ vpdpbusds -256(%rsp), %zmm22, %zmm21 {%k2}
+
+// CHECK: vpdpbusds 256(%rsp), %zmm22, %zmm21 {%k2}
+// CHECK: encoding: [0x62,0xe2,0x4d,0x42,0x51,0x6c,0x24,0x04]
+ vpdpbusds 256(%rsp), %zmm22, %zmm21 {%k2}
+
+// CHECK: vpdpbusds 268435456(%rcx,%r14,8), %zmm22, %zmm21 {%k2}
+// CHECK: encoding: [0x62,0xa2,0x4d,0x42,0x51,0xac,0xf1,0x00,0x00,0x00,0x10]
+ vpdpbusds 268435456(%rcx,%r14,8), %zmm22, %zmm21 {%k2}
+
+// CHECK: vpdpbusds -536870912(%rcx,%r14,8), %zmm22, %zmm21 {%k2}
+// CHECK: encoding: [0x62,0xa2,0x4d,0x42,0x51,0xac,0xf1,0x00,0x00,0x00,0xe0]
+ vpdpbusds -536870912(%rcx,%r14,8), %zmm22, %zmm21 {%k2}
+
+// CHECK: vpdpbusds -536870910(%rcx,%r14,8), %zmm22, %zmm21 {%k2}
+// CHECK: encoding: [0x62,0xa2,0x4d,0x42,0x51,0xac,0xf1,0x02,0x00,0x00,0xe0]
+ vpdpbusds -536870910(%rcx,%r14,8), %zmm22, %zmm21 {%k2}
+
+// CHECK: vpdpwssd (%rcx), %zmm22, %zmm21 {%k2}
+// CHECK: encoding: [0x62,0xe2,0x4d,0x42,0x52,0x29]
+ vpdpwssd (%rcx), %zmm22, %zmm21 {%k2}
+
+// CHECK: vpdpwssd -256(%rsp), %zmm22, %zmm21 {%k2}
+// CHECK: encoding: [0x62,0xe2,0x4d,0x42,0x52,0x6c,0x24,0xfc]
+ vpdpwssd -256(%rsp), %zmm22, %zmm21 {%k2}
+
+// CHECK: vpdpwssd 256(%rsp), %zmm22, %zmm21 {%k2}
+// CHECK: encoding: [0x62,0xe2,0x4d,0x42,0x52,0x6c,0x24,0x04]
+ vpdpwssd 256(%rsp), %zmm22, %zmm21 {%k2}
+
+// CHECK: vpdpwssd 268435456(%rcx,%r14,8), %zmm22, %zmm21 {%k2}
+// CHECK: encoding: [0x62,0xa2,0x4d,0x42,0x52,0xac,0xf1,0x00,0x00,0x00,0x10]
+ vpdpwssd 268435456(%rcx,%r14,8), %zmm22, %zmm21 {%k2}
+
+// CHECK: vpdpwssd -536870912(%rcx,%r14,8), %zmm22, %zmm21 {%k2}
+// CHECK: encoding: [0x62,0xa2,0x4d,0x42,0x52,0xac,0xf1,0x00,0x00,0x00,0xe0]
+ vpdpwssd -536870912(%rcx,%r14,8), %zmm22, %zmm21 {%k2}
+
+// CHECK: vpdpwssd -536870910(%rcx,%r14,8), %zmm22, %zmm21 {%k2}
+// CHECK: encoding: [0x62,0xa2,0x4d,0x42,0x52,0xac,0xf1,0x02,0x00,0x00,0xe0]
+ vpdpwssd -536870910(%rcx,%r14,8), %zmm22, %zmm21 {%k2}
+
+// CHECK: vpdpwssds (%rcx), %zmm22, %zmm21 {%k2}
+// CHECK: encoding: [0x62,0xe2,0x4d,0x42,0x53,0x29]
+ vpdpwssds (%rcx), %zmm22, %zmm21 {%k2}
+
+// CHECK: vpdpwssds -256(%rsp), %zmm22, %zmm21 {%k2}
+// CHECK: encoding: [0x62,0xe2,0x4d,0x42,0x53,0x6c,0x24,0xfc]
+ vpdpwssds -256(%rsp), %zmm22, %zmm21 {%k2}
+
+// CHECK: vpdpwssds 256(%rsp), %zmm22, %zmm21 {%k2}
+// CHECK: encoding: [0x62,0xe2,0x4d,0x42,0x53,0x6c,0x24,0x04]
+ vpdpwssds 256(%rsp), %zmm22, %zmm21 {%k2}
+
+// CHECK: vpdpwssds 268435456(%rcx,%r14,8), %zmm22, %zmm21 {%k2}
+// CHECK: encoding: [0x62,0xa2,0x4d,0x42,0x53,0xac,0xf1,0x00,0x00,0x00,0x10]
+ vpdpwssds 268435456(%rcx,%r14,8), %zmm22, %zmm21 {%k2}
+
+// CHECK: vpdpwssds -536870912(%rcx,%r14,8), %zmm22, %zmm21 {%k2}
+// CHECK: encoding: [0x62,0xa2,0x4d,0x42,0x53,0xac,0xf1,0x00,0x00,0x00,0xe0]
+ vpdpwssds -536870912(%rcx,%r14,8), %zmm22, %zmm21 {%k2}
+
+// CHECK: vpdpwssds -536870910(%rcx,%r14,8), %zmm22, %zmm21 {%k2}
+// CHECK: encoding: [0x62,0xa2,0x4d,0x42,0x53,0xac,0xf1,0x02,0x00,0x00,0xe0]
+ vpdpwssds -536870910(%rcx,%r14,8), %zmm22, %zmm21 {%k2}
+
OpenPOWER on IntegriCloud