summaryrefslogtreecommitdiffstats
path: root/llvm/test/MC/X86
diff options
context:
space:
mode:
authorPengfei Wang <pengfei.wang@intel.com>2019-05-31 02:50:41 +0000
committerPengfei Wang <pengfei.wang@intel.com>2019-05-31 02:50:41 +0000
commit2e67d0c842c5c937f1f1053f211e1c5755f9edad (patch)
treeb2dd85109a2a312cb517fcab7a5de9cf955c4e16 /llvm/test/MC/X86
parentd2f53af605ab0f43beb73a62cee0b2e9fb24f11e (diff)
downloadbcm5719-llvm-2e67d0c842c5c937f1f1053f211e1c5755f9edad.tar.gz
bcm5719-llvm-2e67d0c842c5c937f1f1053f211e1c5755f9edad.zip
[X86] Add VP2INTERSECT instructions
Support Intel AVX512 VP2INTERSECT instructions in llvm Patch by Xiang Zhang (xiangzhangllvm) Differential Revision: https://reviews.llvm.org/D62366 llvm-svn: 362188
Diffstat (limited to 'llvm/test/MC/X86')
-rw-r--r--llvm/test/MC/X86/avx512vp2intersectvl-att.s113
-rw-r--r--llvm/test/MC/X86/avx512vp2intersectvl-intel.s113
-rw-r--r--llvm/test/MC/X86/x86-32-avx512_vp2intersect-intel.s57
-rw-r--r--llvm/test/MC/X86/x86-32-avx512vp2intersect-att.s225
-rw-r--r--llvm/test/MC/X86/x86-64-avx512_vp2intersect-intel.s57
-rw-r--r--llvm/test/MC/X86/x86-64-avx512vp2intersect-att.s231
-rw-r--r--llvm/test/MC/X86/x86-64-avx512vp2intersectvl-att.s113
-rw-r--r--llvm/test/MC/X86/x86-64-avx512vp2intersectvl-intel.s113
8 files changed, 1022 insertions, 0 deletions
diff --git a/llvm/test/MC/X86/avx512vp2intersectvl-att.s b/llvm/test/MC/X86/avx512vp2intersectvl-att.s
new file mode 100644
index 00000000000..afd589027af
--- /dev/null
+++ b/llvm/test/MC/X86/avx512vp2intersectvl-att.s
@@ -0,0 +1,113 @@
+// RUN: llvm-mc -triple i386-unknown-unknown --show-encoding %s | FileCheck %s
+
+// CHECK: vp2intersectd %ymm4, %ymm3, %k6
+// CHECK: encoding: [0x62,0xf2,0x67,0x28,0x68,0xf4]
+ vp2intersectd %ymm4, %ymm3, %k6
+
+// CHECK: vp2intersectd %xmm4, %xmm3, %k6
+// CHECK: encoding: [0x62,0xf2,0x67,0x08,0x68,0xf4]
+ vp2intersectd %xmm4, %xmm3, %k6
+
+// CHECK: vp2intersectd 268435456(%esp,%esi,8), %ymm3, %k6
+// CHECK: encoding: [0x62,0xf2,0x67,0x28,0x68,0xb4,0xf4,0x00,0x00,0x00,0x10]
+ vp2intersectd 268435456(%esp,%esi,8), %ymm3, %k6
+
+// CHECK: vp2intersectd 291(%edi,%eax,4), %ymm3, %k6
+// CHECK: encoding: [0x62,0xf2,0x67,0x28,0x68,0xb4,0x87,0x23,0x01,0x00,0x00]
+ vp2intersectd 291(%edi,%eax,4), %ymm3, %k6
+
+// CHECK: vp2intersectd (%eax){1to8}, %ymm3, %k6
+// CHECK: encoding: [0x62,0xf2,0x67,0x38,0x68,0x30]
+ vp2intersectd (%eax){1to8}, %ymm3, %k6
+
+// CHECK: vp2intersectd -1024(,%ebp,2), %ymm3, %k6
+// CHECK: encoding: [0x62,0xf2,0x67,0x28,0x68,0x34,0x6d,0x00,0xfc,0xff,0xff]
+ vp2intersectd -1024(,%ebp,2), %ymm3, %k6
+
+// CHECK: vp2intersectd 4064(%ecx), %ymm3, %k6
+// CHECK: encoding: [0x62,0xf2,0x67,0x28,0x68,0x71,0x7f]
+ vp2intersectd 4064(%ecx), %ymm3, %k6
+
+// CHECK: vp2intersectd -512(%edx){1to8}, %ymm3, %k6
+// CHECK: encoding: [0x62,0xf2,0x67,0x38,0x68,0x72,0x80]
+ vp2intersectd -512(%edx){1to8}, %ymm3, %k6
+
+// CHECK: vp2intersectd 268435456(%esp,%esi,8), %xmm3, %k6
+// CHECK: encoding: [0x62,0xf2,0x67,0x08,0x68,0xb4,0xf4,0x00,0x00,0x00,0x10]
+ vp2intersectd 268435456(%esp,%esi,8), %xmm3, %k6
+
+// CHECK: vp2intersectd 291(%edi,%eax,4), %xmm3, %k6
+// CHECK: encoding: [0x62,0xf2,0x67,0x08,0x68,0xb4,0x87,0x23,0x01,0x00,0x00]
+ vp2intersectd 291(%edi,%eax,4), %xmm3, %k6
+
+// CHECK: vp2intersectd (%eax){1to4}, %xmm3, %k6
+// CHECK: encoding: [0x62,0xf2,0x67,0x18,0x68,0x30]
+ vp2intersectd (%eax){1to4}, %xmm3, %k6
+
+// CHECK: vp2intersectd -512(,%ebp,2), %xmm3, %k6
+// CHECK: encoding: [0x62,0xf2,0x67,0x08,0x68,0x34,0x6d,0x00,0xfe,0xff,0xff]
+ vp2intersectd -512(,%ebp,2), %xmm3, %k6
+
+// CHECK: vp2intersectd 2032(%ecx), %xmm3, %k6
+// CHECK: encoding: [0x62,0xf2,0x67,0x08,0x68,0x71,0x7f]
+ vp2intersectd 2032(%ecx), %xmm3, %k6
+
+// CHECK: vp2intersectd -512(%edx){1to4}, %xmm3, %k6
+// CHECK: encoding: [0x62,0xf2,0x67,0x18,0x68,0x72,0x80]
+ vp2intersectd -512(%edx){1to4}, %xmm3, %k6
+
+// CHECK: vp2intersectq %ymm4, %ymm3, %k6
+// CHECK: encoding: [0x62,0xf2,0xe7,0x28,0x68,0xf4]
+ vp2intersectq %ymm4, %ymm3, %k6
+
+// CHECK: vp2intersectq %xmm4, %xmm3, %k6
+// CHECK: encoding: [0x62,0xf2,0xe7,0x08,0x68,0xf4]
+ vp2intersectq %xmm4, %xmm3, %k6
+
+// CHECK: vp2intersectq 268435456(%esp,%esi,8), %ymm3, %k6
+// CHECK: encoding: [0x62,0xf2,0xe7,0x28,0x68,0xb4,0xf4,0x00,0x00,0x00,0x10]
+ vp2intersectq 268435456(%esp,%esi,8), %ymm3, %k6
+
+// CHECK: vp2intersectq 291(%edi,%eax,4), %ymm3, %k6
+// CHECK: encoding: [0x62,0xf2,0xe7,0x28,0x68,0xb4,0x87,0x23,0x01,0x00,0x00]
+ vp2intersectq 291(%edi,%eax,4), %ymm3, %k6
+
+// CHECK: vp2intersectq (%eax){1to4}, %ymm3, %k6
+// CHECK: encoding: [0x62,0xf2,0xe7,0x38,0x68,0x30]
+ vp2intersectq (%eax){1to4}, %ymm3, %k6
+
+// CHECK: vp2intersectq -1024(,%ebp,2), %ymm3, %k6
+// CHECK: encoding: [0x62,0xf2,0xe7,0x28,0x68,0x34,0x6d,0x00,0xfc,0xff,0xff]
+ vp2intersectq -1024(,%ebp,2), %ymm3, %k6
+
+// CHECK: vp2intersectq 4064(%ecx), %ymm3, %k6
+// CHECK: encoding: [0x62,0xf2,0xe7,0x28,0x68,0x71,0x7f]
+ vp2intersectq 4064(%ecx), %ymm3, %k6
+
+// CHECK: vp2intersectq -1024(%edx){1to4}, %ymm3, %k6
+// CHECK: encoding: [0x62,0xf2,0xe7,0x38,0x68,0x72,0x80]
+ vp2intersectq -1024(%edx){1to4}, %ymm3, %k6
+
+// CHECK: vp2intersectq 268435456(%esp,%esi,8), %xmm3, %k6
+// CHECK: encoding: [0x62,0xf2,0xe7,0x08,0x68,0xb4,0xf4,0x00,0x00,0x00,0x10]
+ vp2intersectq 268435456(%esp,%esi,8), %xmm3, %k6
+
+// CHECK: vp2intersectq 291(%edi,%eax,4), %xmm3, %k6
+// CHECK: encoding: [0x62,0xf2,0xe7,0x08,0x68,0xb4,0x87,0x23,0x01,0x00,0x00]
+ vp2intersectq 291(%edi,%eax,4), %xmm3, %k6
+
+// CHECK: vp2intersectq (%eax){1to2}, %xmm3, %k6
+// CHECK: encoding: [0x62,0xf2,0xe7,0x18,0x68,0x30]
+ vp2intersectq (%eax){1to2}, %xmm3, %k6
+
+// CHECK: vp2intersectq -512(,%ebp,2), %xmm3, %k6
+// CHECK: encoding: [0x62,0xf2,0xe7,0x08,0x68,0x34,0x6d,0x00,0xfe,0xff,0xff]
+ vp2intersectq -512(,%ebp,2), %xmm3, %k6
+
+// CHECK: vp2intersectq 2032(%ecx), %xmm3, %k6
+// CHECK: encoding: [0x62,0xf2,0xe7,0x08,0x68,0x71,0x7f]
+ vp2intersectq 2032(%ecx), %xmm3, %k6
+
+// CHECK: vp2intersectq -1024(%edx){1to2}, %xmm3, %k6
+// CHECK: encoding: [0x62,0xf2,0xe7,0x18,0x68,0x72,0x80]
+ vp2intersectq -1024(%edx){1to2}, %xmm3, %k6
diff --git a/llvm/test/MC/X86/avx512vp2intersectvl-intel.s b/llvm/test/MC/X86/avx512vp2intersectvl-intel.s
new file mode 100644
index 00000000000..188d1bb461f
--- /dev/null
+++ b/llvm/test/MC/X86/avx512vp2intersectvl-intel.s
@@ -0,0 +1,113 @@
+// RUN: llvm-mc -triple i386-unknown-unknown -x86-asm-syntax=intel -output-asm-variant=1 --show-encoding %s | FileCheck %s
+
+// CHECK: vp2intersectd k6, ymm3, ymm4
+// CHECK: encoding: [0x62,0xf2,0x67,0x28,0x68,0xf4]
+ vp2intersectd k6, ymm3, ymm4
+
+// CHECK: vp2intersectd k6, xmm3, xmm4
+// CHECK: encoding: [0x62,0xf2,0x67,0x08,0x68,0xf4]
+ vp2intersectd k6, xmm3, xmm4
+
+// CHECK: vp2intersectd k6, ymm3, ymmword ptr [esp + 8*esi + 268435456]
+// CHECK: encoding: [0x62,0xf2,0x67,0x28,0x68,0xb4,0xf4,0x00,0x00,0x00,0x10]
+ vp2intersectd k6, ymm3, ymmword ptr [esp + 8*esi + 268435456]
+
+// CHECK: vp2intersectd k6, ymm3, ymmword ptr [edi + 4*eax + 291]
+// CHECK: encoding: [0x62,0xf2,0x67,0x28,0x68,0xb4,0x87,0x23,0x01,0x00,0x00]
+ vp2intersectd k6, ymm3, ymmword ptr [edi + 4*eax + 291]
+
+// CHECK: vp2intersectd k6, ymm3, dword ptr [eax]{1to8}
+// CHECK: encoding: [0x62,0xf2,0x67,0x38,0x68,0x30]
+ vp2intersectd k6, ymm3, dword ptr [eax]{1to8}
+
+// CHECK: vp2intersectd k6, ymm3, ymmword ptr [2*ebp - 1024]
+// CHECK: encoding: [0x62,0xf2,0x67,0x28,0x68,0x34,0x6d,0x00,0xfc,0xff,0xff]
+ vp2intersectd k6, ymm3, ymmword ptr [2*ebp - 1024]
+
+// CHECK: vp2intersectd k6, ymm3, ymmword ptr [ecx + 4064]
+// CHECK: encoding: [0x62,0xf2,0x67,0x28,0x68,0x71,0x7f]
+ vp2intersectd k6, ymm3, ymmword ptr [ecx + 4064]
+
+// CHECK: vp2intersectd k6, ymm3, dword ptr [edx - 512]{1to8}
+// CHECK: encoding: [0x62,0xf2,0x67,0x38,0x68,0x72,0x80]
+ vp2intersectd k6, ymm3, dword ptr [edx - 512]{1to8}
+
+// CHECK: vp2intersectd k6, xmm3, xmmword ptr [esp + 8*esi + 268435456]
+// CHECK: encoding: [0x62,0xf2,0x67,0x08,0x68,0xb4,0xf4,0x00,0x00,0x00,0x10]
+ vp2intersectd k6, xmm3, xmmword ptr [esp + 8*esi + 268435456]
+
+// CHECK: vp2intersectd k6, xmm3, xmmword ptr [edi + 4*eax + 291]
+// CHECK: encoding: [0x62,0xf2,0x67,0x08,0x68,0xb4,0x87,0x23,0x01,0x00,0x00]
+ vp2intersectd k6, xmm3, xmmword ptr [edi + 4*eax + 291]
+
+// CHECK: vp2intersectd k6, xmm3, dword ptr [eax]{1to4}
+// CHECK: encoding: [0x62,0xf2,0x67,0x18,0x68,0x30]
+ vp2intersectd k6, xmm3, dword ptr [eax]{1to4}
+
+// CHECK: vp2intersectd k6, xmm3, xmmword ptr [2*ebp - 512]
+// CHECK: encoding: [0x62,0xf2,0x67,0x08,0x68,0x34,0x6d,0x00,0xfe,0xff,0xff]
+ vp2intersectd k6, xmm3, xmmword ptr [2*ebp - 512]
+
+// CHECK: vp2intersectd k6, xmm3, xmmword ptr [ecx + 2032]
+// CHECK: encoding: [0x62,0xf2,0x67,0x08,0x68,0x71,0x7f]
+ vp2intersectd k6, xmm3, xmmword ptr [ecx + 2032]
+
+// CHECK: vp2intersectd k6, xmm3, dword ptr [edx - 512]{1to4}
+// CHECK: encoding: [0x62,0xf2,0x67,0x18,0x68,0x72,0x80]
+ vp2intersectd k6, xmm3, dword ptr [edx - 512]{1to4}
+
+// CHECK: vp2intersectq k6, ymm3, ymm4
+// CHECK: encoding: [0x62,0xf2,0xe7,0x28,0x68,0xf4]
+ vp2intersectq k6, ymm3, ymm4
+
+// CHECK: vp2intersectq k6, xmm3, xmm4
+// CHECK: encoding: [0x62,0xf2,0xe7,0x08,0x68,0xf4]
+ vp2intersectq k6, xmm3, xmm4
+
+// CHECK: vp2intersectq k6, ymm3, ymmword ptr [esp + 8*esi + 268435456]
+// CHECK: encoding: [0x62,0xf2,0xe7,0x28,0x68,0xb4,0xf4,0x00,0x00,0x00,0x10]
+ vp2intersectq k6, ymm3, ymmword ptr [esp + 8*esi + 268435456]
+
+// CHECK: vp2intersectq k6, ymm3, ymmword ptr [edi + 4*eax + 291]
+// CHECK: encoding: [0x62,0xf2,0xe7,0x28,0x68,0xb4,0x87,0x23,0x01,0x00,0x00]
+ vp2intersectq k6, ymm3, ymmword ptr [edi + 4*eax + 291]
+
+// CHECK: vp2intersectq k6, ymm3, qword ptr [eax]{1to4}
+// CHECK: encoding: [0x62,0xf2,0xe7,0x38,0x68,0x30]
+ vp2intersectq k6, ymm3, qword ptr [eax]{1to4}
+
+// CHECK: vp2intersectq k6, ymm3, ymmword ptr [2*ebp - 1024]
+// CHECK: encoding: [0x62,0xf2,0xe7,0x28,0x68,0x34,0x6d,0x00,0xfc,0xff,0xff]
+ vp2intersectq k6, ymm3, ymmword ptr [2*ebp - 1024]
+
+// CHECK: vp2intersectq k6, ymm3, ymmword ptr [ecx + 4064]
+// CHECK: encoding: [0x62,0xf2,0xe7,0x28,0x68,0x71,0x7f]
+ vp2intersectq k6, ymm3, ymmword ptr [ecx + 4064]
+
+// CHECK: vp2intersectq k6, ymm3, qword ptr [edx - 1024]{1to4}
+// CHECK: encoding: [0x62,0xf2,0xe7,0x38,0x68,0x72,0x80]
+ vp2intersectq k6, ymm3, qword ptr [edx - 1024]{1to4}
+
+// CHECK: vp2intersectq k6, xmm3, xmmword ptr [esp + 8*esi + 268435456]
+// CHECK: encoding: [0x62,0xf2,0xe7,0x08,0x68,0xb4,0xf4,0x00,0x00,0x00,0x10]
+ vp2intersectq k6, xmm3, xmmword ptr [esp + 8*esi + 268435456]
+
+// CHECK: vp2intersectq k6, xmm3, xmmword ptr [edi + 4*eax + 291]
+// CHECK: encoding: [0x62,0xf2,0xe7,0x08,0x68,0xb4,0x87,0x23,0x01,0x00,0x00]
+ vp2intersectq k6, xmm3, xmmword ptr [edi + 4*eax + 291]
+
+// CHECK: vp2intersectq k6, xmm3, qword ptr [eax]{1to2}
+// CHECK: encoding: [0x62,0xf2,0xe7,0x18,0x68,0x30]
+ vp2intersectq k6, xmm3, qword ptr [eax]{1to2}
+
+// CHECK: vp2intersectq k6, xmm3, xmmword ptr [2*ebp - 512]
+// CHECK: encoding: [0x62,0xf2,0xe7,0x08,0x68,0x34,0x6d,0x00,0xfe,0xff,0xff]
+ vp2intersectq k6, xmm3, xmmword ptr [2*ebp - 512]
+
+// CHECK: vp2intersectq k6, xmm3, xmmword ptr [ecx + 2032]
+// CHECK: encoding: [0x62,0xf2,0xe7,0x08,0x68,0x71,0x7f]
+ vp2intersectq k6, xmm3, xmmword ptr [ecx + 2032]
+
+// CHECK: vp2intersectq k6, xmm3, qword ptr [edx - 1024]{1to2}
+// CHECK: encoding: [0x62,0xf2,0xe7,0x18,0x68,0x72,0x80]
+ vp2intersectq k6, xmm3, qword ptr [edx - 1024]{1to2}
diff --git a/llvm/test/MC/X86/x86-32-avx512_vp2intersect-intel.s b/llvm/test/MC/X86/x86-32-avx512_vp2intersect-intel.s
new file mode 100644
index 00000000000..3ea3e4fd646
--- /dev/null
+++ b/llvm/test/MC/X86/x86-32-avx512_vp2intersect-intel.s
@@ -0,0 +1,57 @@
+// RUN: llvm-mc -triple i386-unknown-unknown -x86-asm-syntax=intel -output-asm-variant=1 --show-encoding %s | FileCheck %s
+// CHECK: vp2intersectd k4, zmm3, zmm4
+// CHECK: encoding: [0x62,0xf2,0x67,0x48,0x68,0xe4]
+ vp2intersectd k4, zmm3, zmm4
+
+// CHECK: vp2intersectd k4, zmm3, zmmword ptr [esp + 8*esi + 268435456]
+// CHECK: encoding: [0x62,0xf2,0x67,0x48,0x68,0xa4,0xf4,0x00,0x00,0x00,0x10]
+ vp2intersectd k4, zmm3, zmmword ptr [esp + 8*esi + 268435456]
+
+// CHECK: vp2intersectd k4, zmm3, zmmword ptr [edi + 4*eax + 291]
+// CHECK: encoding: [0x62,0xf2,0x67,0x48,0x68,0xa4,0x87,0x23,0x01,0x00,0x00]
+ vp2intersectd k4, zmm3, zmmword ptr [edi + 4*eax + 291]
+
+// CHECK: vp2intersectd k4, zmm3, dword ptr [eax]{1to16}
+// CHECK: encoding: [0x62,0xf2,0x67,0x58,0x68,0x20]
+ vp2intersectd k4, zmm3, dword ptr [eax]{1to16}
+
+// CHECK: vp2intersectd k4, zmm3, zmmword ptr [2*ebp - 2048]
+// CHECK: encoding: [0x62,0xf2,0x67,0x48,0x68,0x24,0x6d,0x00,0xf8,0xff,0xff]
+ vp2intersectd k4, zmm3, zmmword ptr [2*ebp - 2048]
+
+// CHECK: vp2intersectd k4, zmm3, zmmword ptr [ecx + 8128]
+// CHECK: encoding: [0x62,0xf2,0x67,0x48,0x68,0x61,0x7f]
+ vp2intersectd k4, zmm3, zmmword ptr [ecx + 8128]
+
+// CHECK: vp2intersectd k4, zmm3, dword ptr [edx - 512]{1to16}
+// CHECK: encoding: [0x62,0xf2,0x67,0x58,0x68,0x62,0x80]
+ vp2intersectd k4, zmm3, dword ptr [edx - 512]{1to16}
+
+// CHECK: vp2intersectq k4, zmm3, zmm4
+// CHECK: encoding: [0x62,0xf2,0xe7,0x48,0x68,0xe4]
+ vp2intersectq k4, zmm3, zmm4
+
+// CHECK: vp2intersectq k4, zmm3, zmmword ptr [esp + 8*esi + 268435456]
+// CHECK: encoding: [0x62,0xf2,0xe7,0x48,0x68,0xa4,0xf4,0x00,0x00,0x00,0x10]
+ vp2intersectq k4, zmm3, zmmword ptr [esp + 8*esi + 268435456]
+
+// CHECK: vp2intersectq k4, zmm3, zmmword ptr [edi + 4*eax + 291]
+// CHECK: encoding: [0x62,0xf2,0xe7,0x48,0x68,0xa4,0x87,0x23,0x01,0x00,0x00]
+ vp2intersectq k4, zmm3, zmmword ptr [edi + 4*eax + 291]
+
+// CHECK: vp2intersectq k4, zmm3, qword ptr [eax]{1to8}
+// CHECK: encoding: [0x62,0xf2,0xe7,0x58,0x68,0x20]
+ vp2intersectq k4, zmm3, qword ptr [eax]{1to8}
+
+// CHECK: vp2intersectq k4, zmm3, zmmword ptr [2*ebp - 2048]
+// CHECK: encoding: [0x62,0xf2,0xe7,0x48,0x68,0x24,0x6d,0x00,0xf8,0xff,0xff]
+ vp2intersectq k4, zmm3, zmmword ptr [2*ebp - 2048]
+
+// CHECK: vp2intersectq k4, zmm3, zmmword ptr [ecx + 8128]
+// CHECK: encoding: [0x62,0xf2,0xe7,0x48,0x68,0x61,0x7f]
+ vp2intersectq k4, zmm3, zmmword ptr [ecx + 8128]
+
+// CHECK: vp2intersectq k4, zmm3, qword ptr [edx - 1024]{1to8}
+// CHECK: encoding: [0x62,0xf2,0xe7,0x58,0x68,0x62,0x80]
+ vp2intersectq k4, zmm3, qword ptr [edx - 1024]{1to8}
+
diff --git a/llvm/test/MC/X86/x86-32-avx512vp2intersect-att.s b/llvm/test/MC/X86/x86-32-avx512vp2intersect-att.s
new file mode 100644
index 00000000000..49aca2a3212
--- /dev/null
+++ b/llvm/test/MC/X86/x86-32-avx512vp2intersect-att.s
@@ -0,0 +1,225 @@
+// RUN: llvm-mc -triple i386-unknown-unknown --show-encoding %s | FileCheck %s
+
+// CHECK: vp2intersectq %zmm2, %zmm1, %k0
+// CHECK: encoding: [0x62,0xf2,0xf7,0x48,0x68,0xc2]
+vp2intersectq %zmm2, %zmm1, %k0
+
+// CHECK: vp2intersectq (%edi), %zmm1, %k0
+// CHECK: encoding: [0x62,0xf2,0xf7,0x48,0x68,0x07]
+vp2intersectq (%edi), %zmm1, %k0
+
+// CHECK: vp2intersectq (%edi){1to8}, %zmm1, %k0
+// CHECK: encoding: [0x62,0xf2,0xf7,0x58,0x68,0x07]
+vp2intersectq (%edi){1to8}, %zmm1, %k0
+
+// CHECK: vp2intersectq %zmm2, %zmm1, %k0
+// CHECK: encoding: [0x62,0xf2,0xf7,0x48,0x68,0xc2]
+vp2intersectq %zmm2, %zmm1, %k1
+
+// CHECK: vp2intersectq (%edi), %zmm1, %k0
+// CHECK: encoding: [0x62,0xf2,0xf7,0x48,0x68,0x07]
+vp2intersectq (%edi), %zmm1, %k1
+
+// CHECK: vp2intersectq (%edi){1to8}, %zmm1, %k0
+// CHECK: encoding: [0x62,0xf2,0xf7,0x58,0x68,0x07]
+vp2intersectq (%edi){1to8}, %zmm1, %k1
+
+// CHECK: vp2intersectq %zmm7, %zmm4, %k6
+// CHECK: encoding: [0x62,0xf2,0xdf,0x48,0x68,0xf7]
+vp2intersectq %zmm7, %zmm4, %k6
+
+// CHECK: vp2intersectq (%esi), %zmm4, %k6
+// CHECK: encoding: [0x62,0xf2,0xdf,0x48,0x68,0x36]
+vp2intersectq (%esi), %zmm4, %k6
+
+// CHECK: vp2intersectq (%esi){1to8}, %zmm4, %k6
+// CHECK: encoding: [0x62,0xf2,0xdf,0x58,0x68,0x36]
+vp2intersectq (%esi){1to8}, %zmm4, %k6
+
+// CHECK: vp2intersectq %zmm7, %zmm4, %k6
+// CHECK: encoding: [0x62,0xf2,0xdf,0x48,0x68,0xf7]
+vp2intersectq %zmm7, %zmm4, %k7
+
+// CHECK: vp2intersectq (%esi), %zmm4, %k6
+// CHECK: encoding: [0x62,0xf2,0xdf,0x48,0x68,0x36]
+vp2intersectq (%esi), %zmm4, %k7
+
+// CHECK: vp2intersectq (%esi){1to8}, %zmm4, %k6
+// CHECK: encoding: [0x62,0xf2,0xdf,0x58,0x68,0x36]
+vp2intersectq (%esi){1to8}, %zmm4, %k7
+
+// CHECK: vp2intersectq %ymm2, %ymm1, %k0
+// CHECK: encoding: [0x62,0xf2,0xf7,0x28,0x68,0xc2]
+vp2intersectq %ymm2, %ymm1, %k0
+
+// CHECK: vp2intersectq (%edi), %ymm1, %k0
+// CHECK: encoding: [0x62,0xf2,0xf7,0x28,0x68,0x07]
+vp2intersectq (%edi), %ymm1, %k0
+
+// CHECK: vp2intersectq (%edi){1to4}, %ymm1, %k0
+// CHECK: encoding: [0x62,0xf2,0xf7,0x38,0x68,0x07]
+vp2intersectq (%edi){1to4}, %ymm1, %k0
+
+// CHECK: vp2intersectq %ymm2, %ymm1, %k0
+// CHECK: encoding: [0x62,0xf2,0xf7,0x28,0x68,0xc2]
+vp2intersectq %ymm2, %ymm1, %k1
+
+// CHECK: vp2intersectq (%edi), %ymm1, %k0
+// CHECK: encoding: [0x62,0xf2,0xf7,0x28,0x68,0x07]
+vp2intersectq (%edi), %ymm1, %k1
+
+// CHECK: vp2intersectq (%edi){1to4}, %ymm1, %k0
+// CHECK: encoding: [0x62,0xf2,0xf7,0x38,0x68,0x07]
+vp2intersectq (%edi){1to4}, %ymm1, %k1
+
+// CHECK: vp2intersectq %ymm7, %ymm4, %k6
+// CHECK: encoding: [0x62,0xf2,0xdf,0x28,0x68,0xf7]
+vp2intersectq %ymm7, %ymm4, %k6
+
+// CHECK: vp2intersectq (%esi), %ymm4, %k6
+// CHECK: encoding: [0x62,0xf2,0xdf,0x28,0x68,0x36]
+vp2intersectq (%esi), %ymm4, %k6
+
+// CHECK: vp2intersectq (%esi){1to4}, %ymm4, %k6
+// CHECK: encoding: [0x62,0xf2,0xdf,0x38,0x68,0x36]
+vp2intersectq (%esi){1to4}, %ymm4, %k6
+
+// CHECK: vp2intersectq %ymm7, %ymm4, %k6
+// CHECK: encoding: [0x62,0xf2,0xdf,0x28,0x68,0xf7]
+vp2intersectq %ymm7, %ymm4, %k7
+
+// CHECK: vp2intersectq (%esi), %ymm4, %k6
+// CHECK: encoding: [0x62,0xf2,0xdf,0x28,0x68,0x36]
+vp2intersectq (%esi), %ymm4, %k7
+
+// CHECK: vp2intersectq %xmm2, %xmm1, %k0
+// CHECK: encoding: [0x62,0xf2,0xf7,0x08,0x68,0xc2]
+vp2intersectq %xmm2, %xmm1, %k0
+
+// CHECK: vp2intersectq (%edi), %xmm1, %k0
+// CHECK: encoding: [0x62,0xf2,0xf7,0x08,0x68,0x07]
+vp2intersectq (%edi), %xmm1, %k0
+
+// CHECK: vp2intersectq (%edi){1to2}, %xmm1, %k0
+// CHECK: encoding: [0x62,0xf2,0xf7,0x18,0x68,0x07]
+vp2intersectq (%edi){1to2}, %xmm1, %k0
+
+// CHECK: vp2intersectq %xmm2, %xmm1, %k0
+// CHECK: encoding: [0x62,0xf2,0xf7,0x08,0x68,0xc2]
+vp2intersectq %xmm2, %xmm1, %k1
+
+// CHECK: vp2intersectq (%edi), %xmm1, %k0
+// CHECK: encoding: [0x62,0xf2,0xf7,0x08,0x68,0x07]
+vp2intersectq (%edi), %xmm1, %k1
+
+// CHECK: vp2intersectq %xmm7, %xmm4, %k6
+// CHECK: encoding: [0x62,0xf2,0xdf,0x08,0x68,0xf7]
+vp2intersectq %xmm7, %xmm4, %k6
+
+// CHECK: vp2intersectq (%esi), %xmm4, %k6
+// CHECK: encoding: [0x62,0xf2,0xdf,0x08,0x68,0x36]
+vp2intersectq (%esi), %xmm4, %k6
+
+// CHECK: vp2intersectq %xmm7, %xmm4, %k6
+// CHECK: encoding: [0x62,0xf2,0xdf,0x08,0x68,0xf7]
+vp2intersectq %xmm7, %xmm4, %k7
+
+// CHECK: vp2intersectq (%esi), %xmm4, %k6
+// CHECK: encoding: [0x62,0xf2,0xdf,0x08,0x68,0x36]
+vp2intersectq (%esi), %xmm4, %k7
+
+// CHECK: vp2intersectd %zmm2, %zmm1, %k0
+// CHECK: encoding: [0x62,0xf2,0x77,0x48,0x68,0xc2]
+vp2intersectd %zmm2, %zmm1, %k0
+
+// CHECK: vp2intersectd (%edi), %zmm1, %k0
+// CHECK: encoding: [0x62,0xf2,0x77,0x48,0x68,0x07]
+vp2intersectd (%edi), %zmm1, %k0
+
+// CHECK: vp2intersectd %zmm2, %zmm1, %k0
+// CHECK: encoding: [0x62,0xf2,0x77,0x48,0x68,0xc2]
+vp2intersectd %zmm2, %zmm1, %k1
+
+// CHECK: vp2intersectd (%edi), %zmm1, %k0
+// CHECK: encoding: [0x62,0xf2,0x77,0x48,0x68,0x07]
+vp2intersectd (%edi), %zmm1, %k1
+
+// CHECK: vp2intersectd %zmm7, %zmm4, %k6
+// CHECK: encoding: [0x62,0xf2,0x5f,0x48,0x68,0xf7]
+vp2intersectd %zmm7, %zmm4, %k6
+
+// CHECK: vp2intersectd (%esi), %zmm4, %k6
+// CHECK: encoding: [0x62,0xf2,0x5f,0x48,0x68,0x36]
+vp2intersectd (%esi), %zmm4, %k6
+
+// CHECK: vp2intersectd %zmm7, %zmm4, %k6
+// CHECK: encoding: [0x62,0xf2,0x5f,0x48,0x68,0xf7]
+vp2intersectd %zmm7, %zmm4, %k7
+
+// CHECK: vp2intersectd (%esi), %zmm4, %k6
+// CHECK: encoding: [0x62,0xf2,0x5f,0x48,0x68,0x36]
+vp2intersectd (%esi), %zmm4, %k7
+
+// CHECK: vp2intersectd %ymm2, %ymm1, %k0
+// CHECK: encoding: [0x62,0xf2,0x77,0x28,0x68,0xc2]
+vp2intersectd %ymm2, %ymm1, %k0
+
+// CHECK: vp2intersectd (%edi), %ymm1, %k0
+// CHECK: encoding: [0x62,0xf2,0x77,0x28,0x68,0x07]
+vp2intersectd (%edi), %ymm1, %k0
+
+// CHECK: vp2intersectd %ymm2, %ymm1, %k0
+// CHECK: encoding: [0x62,0xf2,0x77,0x28,0x68,0xc2]
+vp2intersectd %ymm2, %ymm1, %k1
+
+// CHECK: vp2intersectd (%edi), %ymm1, %k0
+// CHECK: encoding: [0x62,0xf2,0x77,0x28,0x68,0x07]
+vp2intersectd (%edi), %ymm1, %k1
+
+// CHECK: vp2intersectd %ymm7, %ymm4, %k6
+// CHECK: encoding: [0x62,0xf2,0x5f,0x28,0x68,0xf7]
+vp2intersectd %ymm7, %ymm4, %k6
+
+// CHECK: vp2intersectd (%esi), %ymm4, %k6
+// CHECK: encoding: [0x62,0xf2,0x5f,0x28,0x68,0x36]
+vp2intersectd (%esi), %ymm4, %k6
+
+// CHECK: vp2intersectd %ymm7, %ymm4, %k6
+// CHECK: encoding: [0x62,0xf2,0x5f,0x28,0x68,0xf7]
+vp2intersectd %ymm7, %ymm4, %k7
+
+// CHECK: vp2intersectd (%esi), %ymm4, %k6
+// CHECK: encoding: [0x62,0xf2,0x5f,0x28,0x68,0x36]
+vp2intersectd (%esi), %ymm4, %k7
+
+// CHECK: vp2intersectd %xmm2, %xmm1, %k0
+// CHECK: encoding: [0x62,0xf2,0x77,0x08,0x68,0xc2]
+vp2intersectd %xmm2, %xmm1, %k0
+
+// CHECK: vp2intersectd (%edi), %xmm1, %k0
+// CHECK: encoding: [0x62,0xf2,0x77,0x08,0x68,0x07]
+vp2intersectd (%edi), %xmm1, %k0
+
+// CHECK: vp2intersectd %xmm2, %xmm1, %k0
+// CHECK: encoding: [0x62,0xf2,0x77,0x08,0x68,0xc2]
+vp2intersectd %xmm2, %xmm1, %k1
+
+// CHECK: vp2intersectd (%edi), %xmm1, %k0
+// CHECK: encoding: [0x62,0xf2,0x77,0x08,0x68,0x07]
+vp2intersectd (%edi), %xmm1, %k1
+
+// CHECK: vp2intersectd %xmm7, %xmm4, %k6
+// CHECK: encoding: [0x62,0xf2,0x5f,0x08,0x68,0xf7]
+vp2intersectd %xmm7, %xmm4, %k6
+
+// CHECK: vp2intersectd (%esi), %xmm4, %k6
+// CHECK: encoding: [0x62,0xf2,0x5f,0x08,0x68,0x36]
+vp2intersectd (%esi), %xmm4, %k6
+
+// CHECK: vp2intersectd %xmm7, %xmm4, %k6
+// CHECK: encoding: [0x62,0xf2,0x5f,0x08,0x68,0xf7]
+vp2intersectd %xmm7, %xmm4, %k7
+
+// CHECK: vp2intersectd (%esi), %xmm4, %k6
+// CHECK: encoding: [0x62,0xf2,0x5f,0x08,0x68,0x36]
+vp2intersectd (%esi), %xmm4, %k7
diff --git a/llvm/test/MC/X86/x86-64-avx512_vp2intersect-intel.s b/llvm/test/MC/X86/x86-64-avx512_vp2intersect-intel.s
new file mode 100644
index 00000000000..1dd9501bb26
--- /dev/null
+++ b/llvm/test/MC/X86/x86-64-avx512_vp2intersect-intel.s
@@ -0,0 +1,57 @@
+// RUN: llvm-mc -triple x86_64-unknown-unknown -x86-asm-syntax=intel -output-asm-variant=1 --show-encoding %s | FileCheck %s
+// CHECK: vp2intersectd k4, zmm23, zmm24
+// CHECK: encoding: [0x62,0x92,0x47,0x40,0x68,0xe0]
+ vp2intersectd k4, zmm23, zmm24
+
+// CHECK: vp2intersectd k4, zmm23, zmmword ptr [rbp + 8*r14 + 268435456]
+// CHECK: encoding: [0x62,0xb2,0x47,0x40,0x68,0xa4,0xf5,0x00,0x00,0x00,0x10]
+ vp2intersectd k4, zmm23, zmmword ptr [rbp + 8*r14 + 268435456]
+
+// CHECK: vp2intersectd k4, zmm23, zmmword ptr [r8 + 4*rax + 291]
+// CHECK: encoding: [0x62,0xd2,0x47,0x40,0x68,0xa4,0x80,0x23,0x01,0x00,0x00]
+ vp2intersectd k4, zmm23, zmmword ptr [r8 + 4*rax + 291]
+
+// CHECK: vp2intersectd k4, zmm23, dword ptr [rip]{1to16}
+// CHECK: encoding: [0x62,0xf2,0x47,0x50,0x68,0x25,0x00,0x00,0x00,0x00]
+ vp2intersectd k4, zmm23, dword ptr [rip]{1to16}
+
+// CHECK: vp2intersectd k4, zmm23, zmmword ptr [2*rbp - 2048]
+// CHECK: encoding: [0x62,0xf2,0x47,0x40,0x68,0x24,0x6d,0x00,0xf8,0xff,0xff]
+ vp2intersectd k4, zmm23, zmmword ptr [2*rbp - 2048]
+
+// CHECK: vp2intersectd k4, zmm23, zmmword ptr [rcx + 8128]
+// CHECK: encoding: [0x62,0xf2,0x47,0x40,0x68,0x61,0x7f]
+ vp2intersectd k4, zmm23, zmmword ptr [rcx + 8128]
+
+// CHECK: vp2intersectd k4, zmm23, dword ptr [rdx - 512]{1to16}
+// CHECK: encoding: [0x62,0xf2,0x47,0x50,0x68,0x62,0x80]
+ vp2intersectd k4, zmm23, dword ptr [rdx - 512]{1to16}
+
+// CHECK: vp2intersectq k4, zmm23, zmm24
+// CHECK: encoding: [0x62,0x92,0xc7,0x40,0x68,0xe0]
+ vp2intersectq k4, zmm23, zmm24
+
+// CHECK: vp2intersectq k4, zmm23, zmmword ptr [rbp + 8*r14 + 268435456]
+// CHECK: encoding: [0x62,0xb2,0xc7,0x40,0x68,0xa4,0xf5,0x00,0x00,0x00,0x10]
+ vp2intersectq k4, zmm23, zmmword ptr [rbp + 8*r14 + 268435456]
+
+// CHECK: vp2intersectq k4, zmm23, zmmword ptr [r8 + 4*rax + 291]
+// CHECK: encoding: [0x62,0xd2,0xc7,0x40,0x68,0xa4,0x80,0x23,0x01,0x00,0x00]
+ vp2intersectq k4, zmm23, zmmword ptr [r8 + 4*rax + 291]
+
+// CHECK: vp2intersectq k4, zmm23, qword ptr [rip]{1to8}
+// CHECK: encoding: [0x62,0xf2,0xc7,0x50,0x68,0x25,0x00,0x00,0x00,0x00]
+ vp2intersectq k4, zmm23, qword ptr [rip]{1to8}
+
+// CHECK: vp2intersectq k4, zmm23, zmmword ptr [2*rbp - 2048]
+// CHECK: encoding: [0x62,0xf2,0xc7,0x40,0x68,0x24,0x6d,0x00,0xf8,0xff,0xff]
+ vp2intersectq k4, zmm23, zmmword ptr [2*rbp - 2048]
+
+// CHECK: vp2intersectq k4, zmm23, zmmword ptr [rcx + 8128]
+// CHECK: encoding: [0x62,0xf2,0xc7,0x40,0x68,0x61,0x7f]
+ vp2intersectq k4, zmm23, zmmword ptr [rcx + 8128]
+
+// CHECK: vp2intersectq k4, zmm23, qword ptr [rdx - 1024]{1to8}
+// CHECK: encoding: [0x62,0xf2,0xc7,0x50,0x68,0x62,0x80]
+ vp2intersectq k4, zmm23, qword ptr [rdx - 1024]{1to8}
+
diff --git a/llvm/test/MC/X86/x86-64-avx512vp2intersect-att.s b/llvm/test/MC/X86/x86-64-avx512vp2intersect-att.s
new file mode 100644
index 00000000000..72e907f9b38
--- /dev/null
+++ b/llvm/test/MC/X86/x86-64-avx512vp2intersect-att.s
@@ -0,0 +1,231 @@
+// RUN: llvm-mc -triple x86_64-unknown-unknown --show-encoding %s | FileCheck %s
+
+// v8i64 vectors
+// CHECK: vp2intersectq %zmm2, %zmm1, %k0
+// CHECK: encoding: [0x62,0xf2,0xf7,0x48,0x68,0xc2]
+vp2intersectq %zmm2, %zmm1, %k0
+
+// CHECK: vp2intersectq (%rdi), %zmm1, %k0
+// CHECK: encoding: [0x62,0xf2,0xf7,0x48,0x68,0x07]
+vp2intersectq (%rdi), %zmm1, %k0
+
+// CHECK: vp2intersectq (%rdi){1to8}, %zmm1, %k0
+// CHECK: encoding: [0x62,0xf2,0xf7,0x58,0x68,0x07]
+vp2intersectq (%rdi){1to8}, %zmm1, %k0
+
+// CHECK: vp2intersectq %zmm2, %zmm1, %k0
+// CHECK: encoding: [0x62,0xf2,0xf7,0x48,0x68,0xc2]
+vp2intersectq %zmm2, %zmm1, %k1
+
+// CHECK: vp2intersectq (%rdi), %zmm1, %k0
+// CHECK: encoding: [0x62,0xf2,0xf7,0x48,0x68,0x07]
+vp2intersectq (%rdi), %zmm1, %k1
+
+// CHECK: vp2intersectq (%rdi){1to8}, %zmm1, %k0
+// CHECK: encoding: [0x62,0xf2,0xf7,0x58,0x68,0x07]
+vp2intersectq (%rdi){1to8}, %zmm1, %k1
+
+// CHECK: vp2intersectq %zmm7, %zmm9, %k6
+// CHECK: encoding: [0x62,0xf2,0xb7,0x48,0x68,0xf7]
+vp2intersectq %zmm7, %zmm9, %k6
+
+// CHECK: vp2intersectq (%rsi), %zmm9, %k6
+// CHECK: encoding: [0x62,0xf2,0xb7,0x48,0x68,0x36]
+vp2intersectq (%rsi), %zmm9, %k6
+
+// CHECK: vp2intersectq (%rsi){1to8}, %zmm9, %k6
+// CHECK: encoding: [0x62,0xf2,0xb7,0x58,0x68,0x36]
+vp2intersectq (%rsi){1to8}, %zmm9, %k6
+
+// CHECK: vp2intersectq %zmm7, %zmm9, %k6
+// CHECK: encoding: [0x62,0xf2,0xb7,0x48,0x68,0xf7]
+vp2intersectq %zmm7, %zmm9, %k7
+
+// CHECK: vp2intersectq (%rsi), %zmm9, %k6
+// CHECK: encoding: [0x62,0xf2,0xb7,0x48,0x68,0x36]
+vp2intersectq (%rsi), %zmm9, %k7
+
+// CHECK: vp2intersectq (%rsi){1to8}, %zmm9, %k6
+// CHECK: encoding: [0x62,0xf2,0xb7,0x58,0x68,0x36]
+vp2intersectq (%rsi){1to8}, %zmm9, %k7
+
+// v4i64 vectors
+// CHECK: vp2intersectq %ymm2, %ymm1, %k0
+// CHECK: encoding: [0x62,0xf2,0xf7,0x28,0x68,0xc2]
+vp2intersectq %ymm2, %ymm1, %k0
+
+// CHECK: vp2intersectq (%rdi), %ymm1, %k0
+// CHECK: encoding: [0x62,0xf2,0xf7,0x28,0x68,0x07]
+vp2intersectq (%rdi), %ymm1, %k0
+
+// CHECK: vp2intersectq (%rdi){1to4}, %ymm1, %k0
+// CHECK: encoding: [0x62,0xf2,0xf7,0x38,0x68,0x07]
+vp2intersectq (%rdi){1to4}, %ymm1, %k0
+
+// CHECK: vp2intersectq %ymm2, %ymm1, %k0
+// CHECK: encoding: [0x62,0xf2,0xf7,0x28,0x68,0xc2]
+vp2intersectq %ymm2, %ymm1, %k1
+
+// CHECK: vp2intersectq (%rdi), %ymm1, %k0
+// CHECK: encoding: [0x62,0xf2,0xf7,0x28,0x68,0x07]
+vp2intersectq (%rdi), %ymm1, %k1
+
+// CHECK: vp2intersectq (%rdi){1to4}, %ymm1, %k0
+// CHECK: encoding: [0x62,0xf2,0xf7,0x38,0x68,0x07]
+vp2intersectq (%rdi){1to4}, %ymm1, %k1
+
+// CHECK: vp2intersectq %ymm7, %ymm9, %k6
+// CHECK: encoding: [0x62,0xf2,0xb7,0x28,0x68,0xf7]
+vp2intersectq %ymm7, %ymm9, %k6
+
+// CHECK: vp2intersectq (%rsi), %ymm9, %k6
+// CHECK: encoding: [0x62,0xf2,0xb7,0x28,0x68,0x36]
+vp2intersectq (%rsi), %ymm9, %k6
+
+// CHECK: vp2intersectq (%rsi){1to4}, %ymm9, %k6
+// CHECK: encoding: [0x62,0xf2,0xb7,0x38,0x68,0x36]
+vp2intersectq (%rsi){1to4}, %ymm9, %k6
+
+// CHECK: vp2intersectq %ymm7, %ymm9, %k6
+// CHECK: encoding: [0x62,0xf2,0xb7,0x28,0x68,0xf7]
+vp2intersectq %ymm7, %ymm9, %k7
+
+// CHECK: vp2intersectq (%rsi), %ymm9, %k6
+// CHECK: encoding: [0x62,0xf2,0xb7,0x28,0x68,0x36]
+vp2intersectq (%rsi), %ymm9, %k7
+
+// v2i64 vectors
+// CHECK: vp2intersectq %xmm2, %xmm1, %k0
+// CHECK: encoding: [0x62,0xf2,0xf7,0x08,0x68,0xc2]
+vp2intersectq %xmm2, %xmm1, %k0
+
+// CHECK: vp2intersectq (%rdi), %xmm1, %k0
+// CHECK: encoding: [0x62,0xf2,0xf7,0x08,0x68,0x07]
+vp2intersectq (%rdi), %xmm1, %k0
+
+// CHECK: vp2intersectq (%rdi){1to2}, %xmm1, %k0
+// CHECK: encoding: [0x62,0xf2,0xf7,0x18,0x68,0x07]
+vp2intersectq (%rdi){1to2}, %xmm1, %k0
+
+// CHECK: vp2intersectq %xmm2, %xmm1, %k0
+// CHECK: encoding: [0x62,0xf2,0xf7,0x08,0x68,0xc2]
+vp2intersectq %xmm2, %xmm1, %k1
+
+// CHECK: vp2intersectq (%rdi), %xmm1, %k0
+// CHECK: encoding: [0x62,0xf2,0xf7,0x08,0x68,0x07]
+vp2intersectq (%rdi), %xmm1, %k1
+
+// CHECK: vp2intersectq %xmm7, %xmm9, %k6
+// CHECK: encoding: [0x62,0xf2,0xb7,0x08,0x68,0xf7]
+vp2intersectq %xmm7, %xmm9, %k6
+
+// CHECK: vp2intersectq (%rsi), %xmm9, %k6
+// CHECK: encoding: [0x62,0xf2,0xb7,0x08,0x68,0x36]
+vp2intersectq (%rsi), %xmm9, %k6
+
+// CHECK: vp2intersectq %xmm7, %xmm9, %k6
+// CHECK: encoding: [0x62,0xf2,0xb7,0x08,0x68,0xf7]
+vp2intersectq %xmm7, %xmm9, %k7
+
+// CHECK: vp2intersectq (%rsi), %xmm9, %k6
+// CHECK: encoding: [0x62,0xf2,0xb7,0x08,0x68,0x36]
+vp2intersectq (%rsi), %xmm9, %k7
+
+// v16i32 vectors
+// CHECK: vp2intersectd %zmm2, %zmm1, %k0
+// CHECK: encoding: [0x62,0xf2,0x77,0x48,0x68,0xc2]
+vp2intersectd %zmm2, %zmm1, %k0
+
+// CHECK: vp2intersectd (%rdi), %zmm1, %k0
+// CHECK: encoding: [0x62,0xf2,0x77,0x48,0x68,0x07]
+vp2intersectd (%rdi), %zmm1, %k0
+
+// CHECK: vp2intersectd %zmm2, %zmm1, %k0
+// CHECK: encoding: [0x62,0xf2,0x77,0x48,0x68,0xc2]
+vp2intersectd %zmm2, %zmm1, %k1
+
+// CHECK: vp2intersectd (%rdi), %zmm1, %k0
+// CHECK: encoding: [0x62,0xf2,0x77,0x48,0x68,0x07]
+vp2intersectd (%rdi), %zmm1, %k1
+
+// CHECK: vp2intersectd %zmm7, %zmm9, %k6
+// CHECK: encoding: [0x62,0xf2,0x37,0x48,0x68,0xf7]
+vp2intersectd %zmm7, %zmm9, %k6
+
+// CHECK: vp2intersectd (%rsi), %zmm9, %k6
+// CHECK: encoding: [0x62,0xf2,0x37,0x48,0x68,0x36]
+vp2intersectd (%rsi), %zmm9, %k6
+
+// CHECK: vp2intersectd %zmm7, %zmm9, %k6
+// CHECK: encoding: [0x62,0xf2,0x37,0x48,0x68,0xf7]
+vp2intersectd %zmm7, %zmm9, %k7
+
+// CHECK: vp2intersectd (%rsi), %zmm9, %k6
+// CHECK: encoding: [0x62,0xf2,0x37,0x48,0x68,0x36]
+vp2intersectd (%rsi), %zmm9, %k7
+
+// v8i32 vectors
+// CHECK: vp2intersectd %ymm2, %ymm1, %k0
+// CHECK: encoding: [0x62,0xf2,0x77,0x28,0x68,0xc2]
+vp2intersectd %ymm2, %ymm1, %k0
+
+// CHECK: vp2intersectd (%rdi), %ymm1, %k0
+// CHECK: encoding: [0x62,0xf2,0x77,0x28,0x68,0x07]
+vp2intersectd (%rdi), %ymm1, %k0
+
+// CHECK: vp2intersectd %ymm2, %ymm1, %k0
+// CHECK: encoding: [0x62,0xf2,0x77,0x28,0x68,0xc2]
+vp2intersectd %ymm2, %ymm1, %k1
+
+// CHECK: vp2intersectd (%rdi), %ymm1, %k0
+// CHECK: encoding: [0x62,0xf2,0x77,0x28,0x68,0x07]
+vp2intersectd (%rdi), %ymm1, %k1
+
+// CHECK: vp2intersectd %ymm7, %ymm9, %k6
+// CHECK: encoding: [0x62,0xf2,0x37,0x28,0x68,0xf7]
+vp2intersectd %ymm7, %ymm9, %k6
+
+// CHECK: vp2intersectd (%rsi), %ymm9, %k6
+// CHECK: encoding: [0x62,0xf2,0x37,0x28,0x68,0x36]
+vp2intersectd (%rsi), %ymm9, %k6
+
+// CHECK: vp2intersectd %ymm7, %ymm9, %k6
+// CHECK: encoding: [0x62,0xf2,0x37,0x28,0x68,0xf7]
+vp2intersectd %ymm7, %ymm9, %k7
+
+// CHECK: vp2intersectd (%rsi), %ymm9, %k6
+// CHECK: encoding: [0x62,0xf2,0x37,0x28,0x68,0x36]
+vp2intersectd (%rsi), %ymm9, %k7
+
+// v4i32 vectors
+// CHECK: vp2intersectd %xmm2, %xmm1, %k0
+// CHECK: encoding: [0x62,0xf2,0x77,0x08,0x68,0xc2]
+vp2intersectd %xmm2, %xmm1, %k0
+
+// CHECK: vp2intersectd (%rdi), %xmm1, %k0
+// CHECK: encoding: [0x62,0xf2,0x77,0x08,0x68,0x07]
+vp2intersectd (%rdi), %xmm1, %k0
+
+// CHECK: vp2intersectd %xmm2, %xmm1, %k0
+// CHECK: encoding: [0x62,0xf2,0x77,0x08,0x68,0xc2]
+vp2intersectd %xmm2, %xmm1, %k1
+
+// CHECK: vp2intersectd (%rdi), %xmm1, %k0
+// CHECK: encoding: [0x62,0xf2,0x77,0x08,0x68,0x07]
+vp2intersectd (%rdi), %xmm1, %k1
+
+// CHECK: vp2intersectd %xmm7, %xmm9, %k6
+// CHECK: encoding: [0x62,0xf2,0x37,0x08,0x68,0xf7]
+vp2intersectd %xmm7, %xmm9, %k6
+
+// CHECK: vp2intersectd (%rsi), %xmm9, %k6
+// CHECK: encoding: [0x62,0xf2,0x37,0x08,0x68,0x36]
+vp2intersectd (%rsi), %xmm9, %k6
+
+// CHECK: vp2intersectd %xmm7, %xmm9, %k6
+// CHECK: encoding: [0x62,0xf2,0x37,0x08,0x68,0xf7]
+vp2intersectd %xmm7, %xmm9, %k7
+
+// CHECK: vp2intersectd (%rsi), %xmm9, %k6
+// CHECK: encoding: [0x62,0xf2,0x37,0x08,0x68,0x36]
+vp2intersectd (%rsi), %xmm9, %k7
diff --git a/llvm/test/MC/X86/x86-64-avx512vp2intersectvl-att.s b/llvm/test/MC/X86/x86-64-avx512vp2intersectvl-att.s
new file mode 100644
index 00000000000..040075b2ebe
--- /dev/null
+++ b/llvm/test/MC/X86/x86-64-avx512vp2intersectvl-att.s
@@ -0,0 +1,113 @@
+// RUN: llvm-mc -triple x86_64-unknown-unknown --show-encoding < %s | FileCheck %s
+
+// CHECK: vp2intersectd %ymm24, %ymm23, %k6
+// CHECK: encoding: [0x62,0x92,0x47,0x20,0x68,0xf0]
+ vp2intersectd %ymm24, %ymm23, %k6
+
+// CHECK: vp2intersectd %xmm24, %xmm23, %k6
+// CHECK: encoding: [0x62,0x92,0x47,0x00,0x68,0xf0]
+ vp2intersectd %xmm24, %xmm23, %k6
+
+// CHECK: vp2intersectd 268435456(%rbp,%r14,8), %ymm23, %k6
+// CHECK: encoding: [0x62,0xb2,0x47,0x20,0x68,0xb4,0xf5,0x00,0x00,0x00,0x10]
+ vp2intersectd 268435456(%rbp,%r14,8), %ymm23, %k6
+
+// CHECK: vp2intersectd 291(%r8,%rax,4), %ymm23, %k6
+// CHECK: encoding: [0x62,0xd2,0x47,0x20,0x68,0xb4,0x80,0x23,0x01,0x00,0x00]
+ vp2intersectd 291(%r8,%rax,4), %ymm23, %k6
+
+// CHECK: vp2intersectd (%rip){1to8}, %ymm23, %k6
+// CHECK: encoding: [0x62,0xf2,0x47,0x30,0x68,0x35,0x00,0x00,0x00,0x00]
+ vp2intersectd (%rip){1to8}, %ymm23, %k6
+
+// CHECK: vp2intersectd -1024(,%rbp,2), %ymm23, %k6
+// CHECK: encoding: [0x62,0xf2,0x47,0x20,0x68,0x34,0x6d,0x00,0xfc,0xff,0xff]
+ vp2intersectd -1024(,%rbp,2), %ymm23, %k6
+
+// CHECK: vp2intersectd 4064(%rcx), %ymm23, %k6
+// CHECK: encoding: [0x62,0xf2,0x47,0x20,0x68,0x71,0x7f]
+ vp2intersectd 4064(%rcx), %ymm23, %k6
+
+// CHECK: vp2intersectd -512(%rdx){1to8}, %ymm23, %k6
+// CHECK: encoding: [0x62,0xf2,0x47,0x30,0x68,0x72,0x80]
+ vp2intersectd -512(%rdx){1to8}, %ymm23, %k6
+
+// CHECK: vp2intersectd 268435456(%rbp,%r14,8), %xmm23, %k6
+// CHECK: encoding: [0x62,0xb2,0x47,0x00,0x68,0xb4,0xf5,0x00,0x00,0x00,0x10]
+ vp2intersectd 268435456(%rbp,%r14,8), %xmm23, %k6
+
+// CHECK: vp2intersectd 291(%r8,%rax,4), %xmm23, %k6
+// CHECK: encoding: [0x62,0xd2,0x47,0x00,0x68,0xb4,0x80,0x23,0x01,0x00,0x00]
+ vp2intersectd 291(%r8,%rax,4), %xmm23, %k6
+
+// CHECK: vp2intersectd (%rip){1to4}, %xmm23, %k6
+// CHECK: encoding: [0x62,0xf2,0x47,0x10,0x68,0x35,0x00,0x00,0x00,0x00]
+ vp2intersectd (%rip){1to4}, %xmm23, %k6
+
+// CHECK: vp2intersectd -512(,%rbp,2), %xmm23, %k6
+// CHECK: encoding: [0x62,0xf2,0x47,0x00,0x68,0x34,0x6d,0x00,0xfe,0xff,0xff]
+ vp2intersectd -512(,%rbp,2), %xmm23, %k6
+
+// CHECK: vp2intersectd 2032(%rcx), %xmm23, %k6
+// CHECK: encoding: [0x62,0xf2,0x47,0x00,0x68,0x71,0x7f]
+ vp2intersectd 2032(%rcx), %xmm23, %k6
+
+// CHECK: vp2intersectd -512(%rdx){1to4}, %xmm23, %k6
+// CHECK: encoding: [0x62,0xf2,0x47,0x10,0x68,0x72,0x80]
+ vp2intersectd -512(%rdx){1to4}, %xmm23, %k6
+
+// CHECK: vp2intersectq %ymm24, %ymm23, %k6
+// CHECK: encoding: [0x62,0x92,0xc7,0x20,0x68,0xf0]
+ vp2intersectq %ymm24, %ymm23, %k6
+
+// CHECK: vp2intersectq %xmm24, %xmm23, %k6
+// CHECK: encoding: [0x62,0x92,0xc7,0x00,0x68,0xf0]
+ vp2intersectq %xmm24, %xmm23, %k6
+
+// CHECK: vp2intersectq 268435456(%rbp,%r14,8), %ymm23, %k6
+// CHECK: encoding: [0x62,0xb2,0xc7,0x20,0x68,0xb4,0xf5,0x00,0x00,0x00,0x10]
+ vp2intersectq 268435456(%rbp,%r14,8), %ymm23, %k6
+
+// CHECK: vp2intersectq 291(%r8,%rax,4), %ymm23, %k6
+// CHECK: encoding: [0x62,0xd2,0xc7,0x20,0x68,0xb4,0x80,0x23,0x01,0x00,0x00]
+ vp2intersectq 291(%r8,%rax,4), %ymm23, %k6
+
+// CHECK: vp2intersectq (%rip){1to4}, %ymm23, %k6
+// CHECK: encoding: [0x62,0xf2,0xc7,0x30,0x68,0x35,0x00,0x00,0x00,0x00]
+ vp2intersectq (%rip){1to4}, %ymm23, %k6
+
+// CHECK: vp2intersectq -1024(,%rbp,2), %ymm23, %k6
+// CHECK: encoding: [0x62,0xf2,0xc7,0x20,0x68,0x34,0x6d,0x00,0xfc,0xff,0xff]
+ vp2intersectq -1024(,%rbp,2), %ymm23, %k6
+
+// CHECK: vp2intersectq 4064(%rcx), %ymm23, %k6
+// CHECK: encoding: [0x62,0xf2,0xc7,0x20,0x68,0x71,0x7f]
+ vp2intersectq 4064(%rcx), %ymm23, %k6
+
+// CHECK: vp2intersectq -1024(%rdx){1to4}, %ymm23, %k6
+// CHECK: encoding: [0x62,0xf2,0xc7,0x30,0x68,0x72,0x80]
+ vp2intersectq -1024(%rdx){1to4}, %ymm23, %k6
+
+// CHECK: vp2intersectq 268435456(%rbp,%r14,8), %xmm23, %k6
+// CHECK: encoding: [0x62,0xb2,0xc7,0x00,0x68,0xb4,0xf5,0x00,0x00,0x00,0x10]
+ vp2intersectq 268435456(%rbp,%r14,8), %xmm23, %k6
+
+// CHECK: vp2intersectq 291(%r8,%rax,4), %xmm23, %k6
+// CHECK: encoding: [0x62,0xd2,0xc7,0x00,0x68,0xb4,0x80,0x23,0x01,0x00,0x00]
+ vp2intersectq 291(%r8,%rax,4), %xmm23, %k6
+
+// CHECK: vp2intersectq (%rip){1to2}, %xmm23, %k6
+// CHECK: encoding: [0x62,0xf2,0xc7,0x10,0x68,0x35,0x00,0x00,0x00,0x00]
+ vp2intersectq (%rip){1to2}, %xmm23, %k6
+
+// CHECK: vp2intersectq -512(,%rbp,2), %xmm23, %k6
+// CHECK: encoding: [0x62,0xf2,0xc7,0x00,0x68,0x34,0x6d,0x00,0xfe,0xff,0xff]
+ vp2intersectq -512(,%rbp,2), %xmm23, %k6
+
+// CHECK: vp2intersectq 2032(%rcx), %xmm23, %k6
+// CHECK: encoding: [0x62,0xf2,0xc7,0x00,0x68,0x71,0x7f]
+ vp2intersectq 2032(%rcx), %xmm23, %k6
+
+// CHECK: vp2intersectq -1024(%rdx){1to2}, %xmm23, %k6
+// CHECK: encoding: [0x62,0xf2,0xc7,0x10,0x68,0x72,0x80]
+ vp2intersectq -1024(%rdx){1to2}, %xmm23, %k6
diff --git a/llvm/test/MC/X86/x86-64-avx512vp2intersectvl-intel.s b/llvm/test/MC/X86/x86-64-avx512vp2intersectvl-intel.s
new file mode 100644
index 00000000000..dd89c3ff715
--- /dev/null
+++ b/llvm/test/MC/X86/x86-64-avx512vp2intersectvl-intel.s
@@ -0,0 +1,113 @@
+// RUN: llvm-mc -triple x86_64-unknown-unknown -x86-asm-syntax=intel -output-asm-variant=1 --show-encoding %s | FileCheck %s
+
+// CHECK: vp2intersectd k6, ymm23, ymm24
+// CHECK: encoding: [0x62,0x92,0x47,0x20,0x68,0xf0]
+ vp2intersectd k6, ymm23, ymm24
+
+// CHECK: vp2intersectd k6, xmm23, xmm24
+// CHECK: encoding: [0x62,0x92,0x47,0x00,0x68,0xf0]
+ vp2intersectd k6, xmm23, xmm24
+
+// CHECK: vp2intersectd k6, ymm23, ymmword ptr [rbp + 8*r14 + 268435456]
+// CHECK: encoding: [0x62,0xb2,0x47,0x20,0x68,0xb4,0xf5,0x00,0x00,0x00,0x10]
+ vp2intersectd k6, ymm23, ymmword ptr [rbp + 8*r14 + 268435456]
+
+// CHECK: vp2intersectd k6, ymm23, ymmword ptr [r8 + 4*rax + 291]
+// CHECK: encoding: [0x62,0xd2,0x47,0x20,0x68,0xb4,0x80,0x23,0x01,0x00,0x00]
+ vp2intersectd k6, ymm23, ymmword ptr [r8 + 4*rax + 291]
+
+// CHECK: vp2intersectd k6, ymm23, dword ptr [rip]{1to8}
+// CHECK: encoding: [0x62,0xf2,0x47,0x30,0x68,0x35,0x00,0x00,0x00,0x00]
+ vp2intersectd k6, ymm23, dword ptr [rip]{1to8}
+
+// CHECK: vp2intersectd k6, ymm23, ymmword ptr [2*rbp - 1024]
+// CHECK: encoding: [0x62,0xf2,0x47,0x20,0x68,0x34,0x6d,0x00,0xfc,0xff,0xff]
+ vp2intersectd k6, ymm23, ymmword ptr [2*rbp - 1024]
+
+// CHECK: vp2intersectd k6, ymm23, ymmword ptr [rcx + 4064]
+// CHECK: encoding: [0x62,0xf2,0x47,0x20,0x68,0x71,0x7f]
+ vp2intersectd k6, ymm23, ymmword ptr [rcx + 4064]
+
+// CHECK: vp2intersectd k6, ymm23, dword ptr [rdx - 512]{1to8}
+// CHECK: encoding: [0x62,0xf2,0x47,0x30,0x68,0x72,0x80]
+ vp2intersectd k6, ymm23, dword ptr [rdx - 512]{1to8}
+
+// CHECK: vp2intersectd k6, xmm23, xmmword ptr [rbp + 8*r14 + 268435456]
+// CHECK: encoding: [0x62,0xb2,0x47,0x00,0x68,0xb4,0xf5,0x00,0x00,0x00,0x10]
+ vp2intersectd k6, xmm23, xmmword ptr [rbp + 8*r14 + 268435456]
+
+// CHECK: vp2intersectd k6, xmm23, xmmword ptr [r8 + 4*rax + 291]
+// CHECK: encoding: [0x62,0xd2,0x47,0x00,0x68,0xb4,0x80,0x23,0x01,0x00,0x00]
+ vp2intersectd k6, xmm23, xmmword ptr [r8 + 4*rax + 291]
+
+// CHECK: vp2intersectd k6, xmm23, dword ptr [rip]{1to4}
+// CHECK: encoding: [0x62,0xf2,0x47,0x10,0x68,0x35,0x00,0x00,0x00,0x00]
+ vp2intersectd k6, xmm23, dword ptr [rip]{1to4}
+
+// CHECK: vp2intersectd k6, xmm23, xmmword ptr [2*rbp - 512]
+// CHECK: encoding: [0x62,0xf2,0x47,0x00,0x68,0x34,0x6d,0x00,0xfe,0xff,0xff]
+ vp2intersectd k6, xmm23, xmmword ptr [2*rbp - 512]
+
+// CHECK: vp2intersectd k6, xmm23, xmmword ptr [rcx + 2032]
+// CHECK: encoding: [0x62,0xf2,0x47,0x00,0x68,0x71,0x7f]
+ vp2intersectd k6, xmm23, xmmword ptr [rcx + 2032]
+
+// CHECK: vp2intersectd k6, xmm23, dword ptr [rdx - 512]{1to4}
+// CHECK: encoding: [0x62,0xf2,0x47,0x10,0x68,0x72,0x80]
+ vp2intersectd k6, xmm23, dword ptr [rdx - 512]{1to4}
+
+// CHECK: vp2intersectq k6, ymm23, ymm24
+// CHECK: encoding: [0x62,0x92,0xc7,0x20,0x68,0xf0]
+ vp2intersectq k6, ymm23, ymm24
+
+// CHECK: vp2intersectq k6, xmm23, xmm24
+// CHECK: encoding: [0x62,0x92,0xc7,0x00,0x68,0xf0]
+ vp2intersectq k6, xmm23, xmm24
+
+// CHECK: vp2intersectq k6, ymm23, ymmword ptr [rbp + 8*r14 + 268435456]
+// CHECK: encoding: [0x62,0xb2,0xc7,0x20,0x68,0xb4,0xf5,0x00,0x00,0x00,0x10]
+ vp2intersectq k6, ymm23, ymmword ptr [rbp + 8*r14 + 268435456]
+
+// CHECK: vp2intersectq k6, ymm23, ymmword ptr [r8 + 4*rax + 291]
+// CHECK: encoding: [0x62,0xd2,0xc7,0x20,0x68,0xb4,0x80,0x23,0x01,0x00,0x00]
+ vp2intersectq k6, ymm23, ymmword ptr [r8 + 4*rax + 291]
+
+// CHECK: vp2intersectq k6, ymm23, qword ptr [rip]{1to4}
+// CHECK: encoding: [0x62,0xf2,0xc7,0x30,0x68,0x35,0x00,0x00,0x00,0x00]
+ vp2intersectq k6, ymm23, qword ptr [rip]{1to4}
+
+// CHECK: vp2intersectq k6, ymm23, ymmword ptr [2*rbp - 1024]
+// CHECK: encoding: [0x62,0xf2,0xc7,0x20,0x68,0x34,0x6d,0x00,0xfc,0xff,0xff]
+ vp2intersectq k6, ymm23, ymmword ptr [2*rbp - 1024]
+
+// CHECK: vp2intersectq k6, ymm23, ymmword ptr [rcx + 4064]
+// CHECK: encoding: [0x62,0xf2,0xc7,0x20,0x68,0x71,0x7f]
+ vp2intersectq k6, ymm23, ymmword ptr [rcx + 4064]
+
+// CHECK: vp2intersectq k6, ymm23, qword ptr [rdx - 1024]{1to4}
+// CHECK: encoding: [0x62,0xf2,0xc7,0x30,0x68,0x72,0x80]
+ vp2intersectq k6, ymm23, qword ptr [rdx - 1024]{1to4}
+
+// CHECK: vp2intersectq k6, xmm23, xmmword ptr [rbp + 8*r14 + 268435456]
+// CHECK: encoding: [0x62,0xb2,0xc7,0x00,0x68,0xb4,0xf5,0x00,0x00,0x00,0x10]
+ vp2intersectq k6, xmm23, xmmword ptr [rbp + 8*r14 + 268435456]
+
+// CHECK: vp2intersectq k6, xmm23, xmmword ptr [r8 + 4*rax + 291]
+// CHECK: encoding: [0x62,0xd2,0xc7,0x00,0x68,0xb4,0x80,0x23,0x01,0x00,0x00]
+ vp2intersectq k6, xmm23, xmmword ptr [r8 + 4*rax + 291]
+
+// CHECK: vp2intersectq k6, xmm23, qword ptr [rip]{1to2}
+// CHECK: encoding: [0x62,0xf2,0xc7,0x10,0x68,0x35,0x00,0x00,0x00,0x00]
+ vp2intersectq k6, xmm23, qword ptr [rip]{1to2}
+
+// CHECK: vp2intersectq k6, xmm23, xmmword ptr [2*rbp - 512]
+// CHECK: encoding: [0x62,0xf2,0xc7,0x00,0x68,0x34,0x6d,0x00,0xfe,0xff,0xff]
+ vp2intersectq k6, xmm23, xmmword ptr [2*rbp - 512]
+
+// CHECK: vp2intersectq k6, xmm23, xmmword ptr [rcx + 2032]
+// CHECK: encoding: [0x62,0xf2,0xc7,0x00,0x68,0x71,0x7f]
+ vp2intersectq k6, xmm23, xmmword ptr [rcx + 2032]
+
+// CHECK: vp2intersectq k6, xmm23, qword ptr [rdx - 1024]{1to2}
+// CHECK: encoding: [0x62,0xf2,0xc7,0x10,0x68,0x72,0x80]
+ vp2intersectq k6, xmm23, qword ptr [rdx - 1024]{1to2}
OpenPOWER on IntegriCloud