diff options
| author | Pengfei Wang <pengfei.wang@intel.com> | 2019-05-31 02:50:41 +0000 |
|---|---|---|
| committer | Pengfei Wang <pengfei.wang@intel.com> | 2019-05-31 02:50:41 +0000 |
| commit | 2e67d0c842c5c937f1f1053f211e1c5755f9edad (patch) | |
| tree | b2dd85109a2a312cb517fcab7a5de9cf955c4e16 /llvm/test/MC/X86 | |
| parent | d2f53af605ab0f43beb73a62cee0b2e9fb24f11e (diff) | |
| download | bcm5719-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.s | 113 | ||||
| -rw-r--r-- | llvm/test/MC/X86/avx512vp2intersectvl-intel.s | 113 | ||||
| -rw-r--r-- | llvm/test/MC/X86/x86-32-avx512_vp2intersect-intel.s | 57 | ||||
| -rw-r--r-- | llvm/test/MC/X86/x86-32-avx512vp2intersect-att.s | 225 | ||||
| -rw-r--r-- | llvm/test/MC/X86/x86-64-avx512_vp2intersect-intel.s | 57 | ||||
| -rw-r--r-- | llvm/test/MC/X86/x86-64-avx512vp2intersect-att.s | 231 | ||||
| -rw-r--r-- | llvm/test/MC/X86/x86-64-avx512vp2intersectvl-att.s | 113 | ||||
| -rw-r--r-- | llvm/test/MC/X86/x86-64-avx512vp2intersectvl-intel.s | 113 |
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} |

