[llvm] 7c944dc - [X86][test] Add missing encoding/decoding tests for avx512vbmi and unify the names

Shengchen Kan via llvm-commits llvm-commits at lists.llvm.org
Wed Dec 13 03:33:26 PST 2023


Author: Shengchen Kan
Date: 2023-12-13T19:32:25+08:00
New Revision: 7c944dc946048671574800802353373b6586cb2c

URL: https://github.com/llvm/llvm-project/commit/7c944dc946048671574800802353373b6586cb2c
DIFF: https://github.com/llvm/llvm-project/commit/7c944dc946048671574800802353373b6586cb2c.diff

LOG: [X86][test] Add missing encoding/decoding tests for avx512vbmi and unify the names

Added: 
    llvm/test/MC/Disassembler/X86/avx512vbmi.txt
    llvm/test/MC/X86/avx512vbmi-att.s
    llvm/test/MC/X86/avx512vbmi-intel.s

Modified: 
    

Removed: 
    llvm/test/MC/X86/avx512vbmi-encoding.s


################################################################################
diff  --git a/llvm/test/MC/Disassembler/X86/avx512vbmi.txt b/llvm/test/MC/Disassembler/X86/avx512vbmi.txt
new file mode 100644
index 00000000000000..5bec7c639377b8
--- /dev/null
+++ b/llvm/test/MC/Disassembler/X86/avx512vbmi.txt
@@ -0,0 +1,542 @@
+# RUN: llvm-mc -triple x86_64 -disassemble %s | FileCheck %s --check-prefix=ATT
+# RUN: llvm-mc -triple x86_64 -disassemble -output-asm-variant=1 %s | FileCheck %s --check-prefix=INTEL
+
+# ATT:   vpermb	%xmm28, %xmm29, %xmm30 {%k7}
+# INTEL: vpermb	xmm30 {k7}, xmm29, xmm28
+0x62,0x02,0x15,0x07,0x8d,0xf4
+
+# ATT:   vpermb	%xmm28, %xmm29, %xmm30 {%k7} {z}
+# INTEL: vpermb	xmm30 {k7} {z}, xmm29, xmm28
+0x62,0x02,0x15,0x87,0x8d,0xf4
+
+# ATT:   vpermb	(%rcx), %xmm29, %xmm30
+# INTEL: vpermb	xmm30, xmm29, xmmword ptr [rcx]
+0x62,0x62,0x15,0x00,0x8d,0x31
+
+# ATT:   vpermb	291(%rax,%r14,8), %xmm29, %xmm30
+# INTEL: vpermb	xmm30, xmm29, xmmword ptr [rax + 8*r14 + 291]
+0x62,0x22,0x15,0x00,0x8d,0xb4,0xf0,0x23,0x01,0x00,0x00
+
+# ATT:   vpermb	2032(%rdx), %xmm29, %xmm30
+# INTEL: vpermb	xmm30, xmm29, xmmword ptr [rdx + 2032]
+0x62,0x62,0x15,0x00,0x8d,0x72,0x7f
+
+# ATT:   vpermb	2048(%rdx), %xmm29, %xmm30
+# INTEL: vpermb	xmm30, xmm29, xmmword ptr [rdx + 2048]
+0x62,0x62,0x15,0x00,0x8d,0xb2,0x00,0x08,0x00,0x00
+
+# ATT:   vpermb	-2048(%rdx), %xmm29, %xmm30
+# INTEL: vpermb	xmm30, xmm29, xmmword ptr [rdx - 2048]
+0x62,0x62,0x15,0x00,0x8d,0x72,0x80
+
+# ATT:   vpermb	-2064(%rdx), %xmm29, %xmm30
+# INTEL: vpermb	xmm30, xmm29, xmmword ptr [rdx - 2064]
+0x62,0x62,0x15,0x00,0x8d,0xb2,0xf0,0xf7,0xff,0xff
+
+# ATT:   vpermb	%ymm28, %ymm29, %ymm30
+# INTEL: vpermb	ymm30, ymm29, ymm28
+0x62,0x02,0x15,0x20,0x8d,0xf4
+
+# ATT:   vpermb	%ymm28, %ymm29, %ymm30 {%k7}
+# INTEL: vpermb	ymm30 {k7}, ymm29, ymm28
+0x62,0x02,0x15,0x27,0x8d,0xf4
+
+# ATT:   vpermb	%ymm28, %ymm29, %ymm30 {%k7} {z}
+# INTEL: vpermb	ymm30 {k7} {z}, ymm29, ymm28
+0x62,0x02,0x15,0xa7,0x8d,0xf4
+
+# ATT:   vpermb	(%rcx), %ymm29, %ymm30
+# INTEL: vpermb	ymm30, ymm29, ymmword ptr [rcx]
+0x62,0x62,0x15,0x20,0x8d,0x31
+
+# ATT:   vpermb	291(%rax,%r14,8), %ymm29, %ymm30
+# INTEL: vpermb	ymm30, ymm29, ymmword ptr [rax + 8*r14 + 291]
+0x62,0x22,0x15,0x20,0x8d,0xb4,0xf0,0x23,0x01,0x00,0x00
+
+# ATT:   vpermb	4064(%rdx), %ymm29, %ymm30
+# INTEL: vpermb	ymm30, ymm29, ymmword ptr [rdx + 4064]
+0x62,0x62,0x15,0x20,0x8d,0x72,0x7f
+
+# ATT:   vpermb	4096(%rdx), %ymm29, %ymm30
+# INTEL: vpermb	ymm30, ymm29, ymmword ptr [rdx + 4096]
+0x62,0x62,0x15,0x20,0x8d,0xb2,0x00,0x10,0x00,0x00
+
+# ATT:   vpermb	-4096(%rdx), %ymm29, %ymm30
+# INTEL: vpermb	ymm30, ymm29, ymmword ptr [rdx - 4096]
+0x62,0x62,0x15,0x20,0x8d,0x72,0x80
+
+# ATT:   vpermb	-4128(%rdx), %ymm29, %ymm30
+# INTEL: vpermb	ymm30, ymm29, ymmword ptr [rdx - 4128]
+0x62,0x62,0x15,0x20,0x8d,0xb2,0xe0,0xef,0xff,0xff
+
+# ATT:   vpermb	%xmm28, %xmm29, %xmm30
+# INTEL: vpermb	xmm30, xmm29, xmm28
+0x62,0x02,0x15,0x00,0x8d,0xf4
+
+# ATT:   vpermb	4660(%rax,%r14,8), %xmm29, %xmm30
+# INTEL: vpermb	xmm30, xmm29, xmmword ptr [rax + 8*r14 + 4660]
+0x62,0x22,0x15,0x00,0x8d,0xb4,0xf0,0x34,0x12,0x00,0x00
+
+# ATT:   vpermb	4660(%rax,%r14,8), %ymm29, %ymm30
+# INTEL: vpermb	ymm30, ymm29, ymmword ptr [rax + 8*r14 + 4660]
+0x62,0x22,0x15,0x20,0x8d,0xb4,0xf0,0x34,0x12,0x00,0x00
+
+# ATT:   vpermb	%zmm28, %zmm29, %zmm30
+# INTEL: vpermb	zmm30, zmm29, zmm28
+0x62,0x02,0x15,0x40,0x8d,0xf4
+
+# ATT:   vpermb	%zmm28, %zmm29, %zmm30 {%k7}
+# INTEL: vpermb	zmm30 {k7}, zmm29, zmm28
+0x62,0x02,0x15,0x47,0x8d,0xf4
+
+# ATT:   vpermb	%zmm28, %zmm29, %zmm30 {%k7} {z}
+# INTEL: vpermb	zmm30 {k7} {z}, zmm29, zmm28
+0x62,0x02,0x15,0xc7,0x8d,0xf4
+
+# ATT:   vpermb	(%rcx), %zmm29, %zmm30
+# INTEL: vpermb	zmm30, zmm29, zmmword ptr [rcx]
+0x62,0x62,0x15,0x40,0x8d,0x31
+
+# ATT:   vpermb	291(%rax,%r14,8), %zmm29, %zmm30
+# INTEL: vpermb	zmm30, zmm29, zmmword ptr [rax + 8*r14 + 291]
+0x62,0x22,0x15,0x40,0x8d,0xb4,0xf0,0x23,0x01,0x00,0x00
+
+# ATT:   vpermb	8128(%rdx), %zmm29, %zmm30
+# INTEL: vpermb	zmm30, zmm29, zmmword ptr [rdx + 8128]
+0x62,0x62,0x15,0x40,0x8d,0x72,0x7f
+
+# ATT:   vpermb	8192(%rdx), %zmm29, %zmm30
+# INTEL: vpermb	zmm30, zmm29, zmmword ptr [rdx + 8192]
+0x62,0x62,0x15,0x40,0x8d,0xb2,0x00,0x20,0x00,0x00
+
+# ATT:   vpermb	-8192(%rdx), %zmm29, %zmm30
+# INTEL: vpermb	zmm30, zmm29, zmmword ptr [rdx - 8192]
+0x62,0x62,0x15,0x40,0x8d,0x72,0x80
+
+# ATT:   vpermb	-8256(%rdx), %zmm29, %zmm30
+# INTEL: vpermb	zmm30, zmm29, zmmword ptr [rdx - 8256]
+0x62,0x62,0x15,0x40,0x8d,0xb2,0xc0,0xdf,0xff,0xff
+
+# ATT:   vpermb	4660(%rax,%r14,8), %zmm29, %zmm30
+# INTEL: vpermb	zmm30, zmm29, zmmword ptr [rax + 8*r14 + 4660]
+0x62,0x22,0x15,0x40,0x8d,0xb4,0xf0,0x34,0x12,0x00,0x00
+
+# ATT:   vpermt2b	%xmm28, %xmm29, %xmm30
+# INTEL: vpermt2b	xmm30, xmm29, xmm28
+0x62,0x02,0x15,0x00,0x7d,0xf4
+
+# ATT:   vpermt2b	%xmm28, %xmm29, %xmm30 {%k7}
+# INTEL: vpermt2b	xmm30 {k7}, xmm29, xmm28
+0x62,0x02,0x15,0x07,0x7d,0xf4
+
+# ATT:   vpermt2b	%xmm28, %xmm29, %xmm30 {%k7} {z}
+# INTEL: vpermt2b	xmm30 {k7} {z}, xmm29, xmm28
+0x62,0x02,0x15,0x87,0x7d,0xf4
+
+# ATT:   vpermt2b	(%rcx), %xmm29, %xmm30
+# INTEL: vpermt2b	xmm30, xmm29, xmmword ptr [rcx]
+0x62,0x62,0x15,0x00,0x7d,0x31
+
+# ATT:   vpermt2b	291(%rax,%r14,8), %xmm29, %xmm30
+# INTEL: vpermt2b	xmm30, xmm29, xmmword ptr [rax + 8*r14 + 291]
+0x62,0x22,0x15,0x00,0x7d,0xb4,0xf0,0x23,0x01,0x00,0x00
+
+# ATT:   vpermt2b	2032(%rdx), %xmm29, %xmm30
+# INTEL: vpermt2b	xmm30, xmm29, xmmword ptr [rdx + 2032]
+0x62,0x62,0x15,0x00,0x7d,0x72,0x7f
+
+# ATT:   vpermt2b	2048(%rdx), %xmm29, %xmm30
+# INTEL: vpermt2b	xmm30, xmm29, xmmword ptr [rdx + 2048]
+0x62,0x62,0x15,0x00,0x7d,0xb2,0x00,0x08,0x00,0x00
+
+# ATT:   vpermt2b	-2048(%rdx), %xmm29, %xmm30
+# INTEL: vpermt2b	xmm30, xmm29, xmmword ptr [rdx - 2048]
+0x62,0x62,0x15,0x00,0x7d,0x72,0x80
+
+# ATT:   vpermt2b	-2064(%rdx), %xmm29, %xmm30
+# INTEL: vpermt2b	xmm30, xmm29, xmmword ptr [rdx - 2064]
+0x62,0x62,0x15,0x00,0x7d,0xb2,0xf0,0xf7,0xff,0xff
+
+# ATT:   vpermt2b	%ymm28, %ymm29, %ymm30
+# INTEL: vpermt2b	ymm30, ymm29, ymm28
+0x62,0x02,0x15,0x20,0x7d,0xf4
+
+# ATT:   vpermt2b	%ymm28, %ymm29, %ymm30 {%k7}
+# INTEL: vpermt2b	ymm30 {k7}, ymm29, ymm28
+0x62,0x02,0x15,0x27,0x7d,0xf4
+
+# ATT:   vpermt2b	%ymm28, %ymm29, %ymm30 {%k7} {z}
+# INTEL: vpermt2b	ymm30 {k7} {z}, ymm29, ymm28
+0x62,0x02,0x15,0xa7,0x7d,0xf4
+
+# ATT:   vpermt2b	(%rcx), %ymm29, %ymm30
+# INTEL: vpermt2b	ymm30, ymm29, ymmword ptr [rcx]
+0x62,0x62,0x15,0x20,0x7d,0x31
+
+# ATT:   vpermt2b	291(%rax,%r14,8), %ymm29, %ymm30
+# INTEL: vpermt2b	ymm30, ymm29, ymmword ptr [rax + 8*r14 + 291]
+0x62,0x22,0x15,0x20,0x7d,0xb4,0xf0,0x23,0x01,0x00,0x00
+
+# ATT:   vpermt2b	4064(%rdx), %ymm29, %ymm30
+# INTEL: vpermt2b	ymm30, ymm29, ymmword ptr [rdx + 4064]
+0x62,0x62,0x15,0x20,0x7d,0x72,0x7f
+
+# ATT:   vpermt2b	4096(%rdx), %ymm29, %ymm30
+# INTEL: vpermt2b	ymm30, ymm29, ymmword ptr [rdx + 4096]
+0x62,0x62,0x15,0x20,0x7d,0xb2,0x00,0x10,0x00,0x00
+
+# ATT:   vpermt2b	-4096(%rdx), %ymm29, %ymm30
+# INTEL: vpermt2b	ymm30, ymm29, ymmword ptr [rdx - 4096]
+0x62,0x62,0x15,0x20,0x7d,0x72,0x80
+
+# ATT:   vpermt2b	-4128(%rdx), %ymm29, %ymm30
+# INTEL: vpermt2b	ymm30, ymm29, ymmword ptr [rdx - 4128]
+0x62,0x62,0x15,0x20,0x7d,0xb2,0xe0,0xef,0xff,0xff
+
+# ATT:   vpermt2b	4660(%rax,%r14,8), %xmm29, %xmm30
+# INTEL: vpermt2b	xmm30, xmm29, xmmword ptr [rax + 8*r14 + 4660]
+0x62,0x22,0x15,0x00,0x7d,0xb4,0xf0,0x34,0x12,0x00,0x00
+
+# ATT:   vpermt2b	4660(%rax,%r14,8), %ymm29, %ymm30
+# INTEL: vpermt2b	ymm30, ymm29, ymmword ptr [rax + 8*r14 + 4660]
+0x62,0x22,0x15,0x20,0x7d,0xb4,0xf0,0x34,0x12,0x00,0x00
+
+# ATT:   vpermt2b	%zmm28, %zmm29, %zmm30
+# INTEL: vpermt2b	zmm30, zmm29, zmm28
+0x62,0x02,0x15,0x40,0x7d,0xf4
+
+# ATT:   vpermt2b	%zmm28, %zmm29, %zmm30 {%k7}
+# INTEL: vpermt2b	zmm30 {k7}, zmm29, zmm28
+0x62,0x02,0x15,0x47,0x7d,0xf4
+
+# ATT:   vpermt2b	%zmm28, %zmm29, %zmm30 {%k7} {z}
+# INTEL: vpermt2b	zmm30 {k7} {z}, zmm29, zmm28
+0x62,0x02,0x15,0xc7,0x7d,0xf4
+
+# ATT:   vpermt2b	(%rcx), %zmm29, %zmm30
+# INTEL: vpermt2b	zmm30, zmm29, zmmword ptr [rcx]
+0x62,0x62,0x15,0x40,0x7d,0x31
+
+# ATT:   vpermt2b	291(%rax,%r14,8), %zmm29, %zmm30
+# INTEL: vpermt2b	zmm30, zmm29, zmmword ptr [rax + 8*r14 + 291]
+0x62,0x22,0x15,0x40,0x7d,0xb4,0xf0,0x23,0x01,0x00,0x00
+
+# ATT:   vpermt2b	8128(%rdx), %zmm29, %zmm30
+# INTEL: vpermt2b	zmm30, zmm29, zmmword ptr [rdx + 8128]
+0x62,0x62,0x15,0x40,0x7d,0x72,0x7f
+
+# ATT:   vpermt2b	8192(%rdx), %zmm29, %zmm30
+# INTEL: vpermt2b	zmm30, zmm29, zmmword ptr [rdx + 8192]
+0x62,0x62,0x15,0x40,0x7d,0xb2,0x00,0x20,0x00,0x00
+
+# ATT:   vpermt2b	-8192(%rdx), %zmm29, %zmm30
+# INTEL: vpermt2b	zmm30, zmm29, zmmword ptr [rdx - 8192]
+0x62,0x62,0x15,0x40,0x7d,0x72,0x80
+
+# ATT:   vpermt2b	-8256(%rdx), %zmm29, %zmm30
+# INTEL: vpermt2b	zmm30, zmm29, zmmword ptr [rdx - 8256]
+0x62,0x62,0x15,0x40,0x7d,0xb2,0xc0,0xdf,0xff,0xff
+
+# ATT:   vpermt2b	4660(%rax,%r14,8), %zmm29, %zmm30
+# INTEL: vpermt2b	zmm30, zmm29, zmmword ptr [rax + 8*r14 + 4660]
+0x62,0x22,0x15,0x40,0x7d,0xb4,0xf0,0x34,0x12,0x00,0x00
+
+# ATT:   vpermi2b	%xmm28, %xmm29, %xmm30
+# INTEL: vpermi2b	xmm30, xmm29, xmm28
+0x62,0x02,0x15,0x00,0x75,0xf4
+
+# ATT:   vpermi2b	%xmm28, %xmm29, %xmm30 {%k7}
+# INTEL: vpermi2b	xmm30 {k7}, xmm29, xmm28
+0x62,0x02,0x15,0x07,0x75,0xf4
+
+# ATT:   vpermi2b	%xmm28, %xmm29, %xmm30 {%k7} {z}
+# INTEL: vpermi2b	xmm30 {k7} {z}, xmm29, xmm28
+0x62,0x02,0x15,0x87,0x75,0xf4
+
+# ATT:   vpermi2b	(%rcx), %xmm29, %xmm30
+# INTEL: vpermi2b	xmm30, xmm29, xmmword ptr [rcx]
+0x62,0x62,0x15,0x00,0x75,0x31
+
+# ATT:   vpermi2b	291(%rax,%r14,8), %xmm29, %xmm30
+# INTEL: vpermi2b	xmm30, xmm29, xmmword ptr [rax + 8*r14 + 291]
+0x62,0x22,0x15,0x00,0x75,0xb4,0xf0,0x23,0x01,0x00,0x00
+
+# ATT:   vpermi2b	2032(%rdx), %xmm29, %xmm30
+# INTEL: vpermi2b	xmm30, xmm29, xmmword ptr [rdx + 2032]
+0x62,0x62,0x15,0x00,0x75,0x72,0x7f
+
+# ATT:   vpermi2b	2048(%rdx), %xmm29, %xmm30
+# INTEL: vpermi2b	xmm30, xmm29, xmmword ptr [rdx + 2048]
+0x62,0x62,0x15,0x00,0x75,0xb2,0x00,0x08,0x00,0x00
+
+# ATT:   vpermi2b	-2048(%rdx), %xmm29, %xmm30
+# INTEL: vpermi2b	xmm30, xmm29, xmmword ptr [rdx - 2048]
+0x62,0x62,0x15,0x00,0x75,0x72,0x80
+
+# ATT:   vpermi2b	-2064(%rdx), %xmm29, %xmm30
+# INTEL: vpermi2b	xmm30, xmm29, xmmword ptr [rdx - 2064]
+0x62,0x62,0x15,0x00,0x75,0xb2,0xf0,0xf7,0xff,0xff
+
+# ATT:   vpermi2b	%ymm28, %ymm29, %ymm30
+# INTEL: vpermi2b	ymm30, ymm29, ymm28
+0x62,0x02,0x15,0x20,0x75,0xf4
+
+# ATT:   vpermi2b	%ymm28, %ymm29, %ymm30 {%k7}
+# INTEL: vpermi2b	ymm30 {k7}, ymm29, ymm28
+0x62,0x02,0x15,0x27,0x75,0xf4
+
+# ATT:   vpermi2b	%ymm28, %ymm29, %ymm30 {%k7} {z}
+# INTEL: vpermi2b	ymm30 {k7} {z}, ymm29, ymm28
+0x62,0x02,0x15,0xa7,0x75,0xf4
+
+# ATT:   vpermi2b	(%rcx), %ymm29, %ymm30
+# INTEL: vpermi2b	ymm30, ymm29, ymmword ptr [rcx]
+0x62,0x62,0x15,0x20,0x75,0x31
+
+# ATT:   vpermi2b	291(%rax,%r14,8), %ymm29, %ymm30
+# INTEL: vpermi2b	ymm30, ymm29, ymmword ptr [rax + 8*r14 + 291]
+0x62,0x22,0x15,0x20,0x75,0xb4,0xf0,0x23,0x01,0x00,0x00
+
+# ATT:   vpermi2b	4064(%rdx), %ymm29, %ymm30
+# INTEL: vpermi2b	ymm30, ymm29, ymmword ptr [rdx + 4064]
+0x62,0x62,0x15,0x20,0x75,0x72,0x7f
+
+# ATT:   vpermi2b	4096(%rdx), %ymm29, %ymm30
+# INTEL: vpermi2b	ymm30, ymm29, ymmword ptr [rdx + 4096]
+0x62,0x62,0x15,0x20,0x75,0xb2,0x00,0x10,0x00,0x00
+
+# ATT:   vpermi2b	-4096(%rdx), %ymm29, %ymm30
+# INTEL: vpermi2b	ymm30, ymm29, ymmword ptr [rdx - 4096]
+0x62,0x62,0x15,0x20,0x75,0x72,0x80
+
+# ATT:   vpermi2b	-4128(%rdx), %ymm29, %ymm30
+# INTEL: vpermi2b	ymm30, ymm29, ymmword ptr [rdx - 4128]
+0x62,0x62,0x15,0x20,0x75,0xb2,0xe0,0xef,0xff,0xff
+
+# ATT:   vpermi2b	4660(%rax,%r14,8), %xmm29, %xmm30
+# INTEL: vpermi2b	xmm30, xmm29, xmmword ptr [rax + 8*r14 + 4660]
+0x62,0x22,0x15,0x00,0x75,0xb4,0xf0,0x34,0x12,0x00,0x00
+
+# ATT:   vpermi2b	4660(%rax,%r14,8), %ymm29, %ymm30
+# INTEL: vpermi2b	ymm30, ymm29, ymmword ptr [rax + 8*r14 + 4660]
+0x62,0x22,0x15,0x20,0x75,0xb4,0xf0,0x34,0x12,0x00,0x00
+
+# ATT:   vpermi2b	%zmm28, %zmm29, %zmm30
+# INTEL: vpermi2b	zmm30, zmm29, zmm28
+0x62,0x02,0x15,0x40,0x75,0xf4
+
+# ATT:   vpermi2b	%zmm28, %zmm29, %zmm30 {%k7}
+# INTEL: vpermi2b	zmm30 {k7}, zmm29, zmm28
+0x62,0x02,0x15,0x47,0x75,0xf4
+
+# ATT:   vpermi2b	%zmm28, %zmm29, %zmm30 {%k7} {z}
+# INTEL: vpermi2b	zmm30 {k7} {z}, zmm29, zmm28
+0x62,0x02,0x15,0xc7,0x75,0xf4
+
+# ATT:   vpermi2b	(%rcx), %zmm29, %zmm30
+# INTEL: vpermi2b	zmm30, zmm29, zmmword ptr [rcx]
+0x62,0x62,0x15,0x40,0x75,0x31
+
+# ATT:   vpermi2b	291(%rax,%r14,8), %zmm29, %zmm30
+# INTEL: vpermi2b	zmm30, zmm29, zmmword ptr [rax + 8*r14 + 291]
+0x62,0x22,0x15,0x40,0x75,0xb4,0xf0,0x23,0x01,0x00,0x00
+
+# ATT:   vpermi2b	8128(%rdx), %zmm29, %zmm30
+# INTEL: vpermi2b	zmm30, zmm29, zmmword ptr [rdx + 8128]
+0x62,0x62,0x15,0x40,0x75,0x72,0x7f
+
+# ATT:   vpermi2b	8192(%rdx), %zmm29, %zmm30
+# INTEL: vpermi2b	zmm30, zmm29, zmmword ptr [rdx + 8192]
+0x62,0x62,0x15,0x40,0x75,0xb2,0x00,0x20,0x00,0x00
+
+# ATT:   vpermi2b	-8192(%rdx), %zmm29, %zmm30
+# INTEL: vpermi2b	zmm30, zmm29, zmmword ptr [rdx - 8192]
+0x62,0x62,0x15,0x40,0x75,0x72,0x80
+
+# ATT:   vpermi2b	-8256(%rdx), %zmm29, %zmm30
+# INTEL: vpermi2b	zmm30, zmm29, zmmword ptr [rdx - 8256]
+0x62,0x62,0x15,0x40,0x75,0xb2,0xc0,0xdf,0xff,0xff
+
+# ATT:   vpermi2b	4660(%rax,%r14,8), %zmm29, %zmm30
+# INTEL: vpermi2b	zmm30, zmm29, zmmword ptr [rax + 8*r14 + 4660]
+0x62,0x22,0x15,0x40,0x75,0xb4,0xf0,0x34,0x12,0x00,0x00
+
+# ATT:   vpmultishiftqb	%xmm28, %xmm29, %xmm30
+# INTEL: vpmultishiftqb	xmm30, xmm29, xmm28
+0x62,0x02,0x95,0x00,0x83,0xf4
+
+# ATT:   vpmultishiftqb	%xmm28, %xmm29, %xmm30 {%k7}
+# INTEL: vpmultishiftqb	xmm30 {k7}, xmm29, xmm28
+0x62,0x02,0x95,0x07,0x83,0xf4
+
+# ATT:   vpmultishiftqb	%xmm28, %xmm29, %xmm30 {%k7} {z}
+# INTEL: vpmultishiftqb	xmm30 {k7} {z}, xmm29, xmm28
+0x62,0x02,0x95,0x87,0x83,0xf4
+
+# ATT:   vpmultishiftqb	(%rcx), %xmm29, %xmm30
+# INTEL: vpmultishiftqb	xmm30, xmm29, xmmword ptr [rcx]
+0x62,0x62,0x95,0x00,0x83,0x31
+
+# ATT:   vpmultishiftqb	291(%rax,%r14,8), %xmm29, %xmm30
+# INTEL: vpmultishiftqb	xmm30, xmm29, xmmword ptr [rax + 8*r14 + 291]
+0x62,0x22,0x95,0x00,0x83,0xb4,0xf0,0x23,0x01,0x00,0x00
+
+# ATT:   vpmultishiftqb	(%rcx){1to2}, %xmm29, %xmm30
+# INTEL: vpmultishiftqb	xmm30, xmm29, qword ptr [rcx]{1to2}
+0x62,0x62,0x95,0x10,0x83,0x31
+
+# ATT:   vpmultishiftqb	2032(%rdx), %xmm29, %xmm30
+# INTEL: vpmultishiftqb	xmm30, xmm29, xmmword ptr [rdx + 2032]
+0x62,0x62,0x95,0x00,0x83,0x72,0x7f
+
+# ATT:   vpmultishiftqb	2048(%rdx), %xmm29, %xmm30
+# INTEL: vpmultishiftqb	xmm30, xmm29, xmmword ptr [rdx + 2048]
+0x62,0x62,0x95,0x00,0x83,0xb2,0x00,0x08,0x00,0x00
+
+# ATT:   vpmultishiftqb	-2048(%rdx), %xmm29, %xmm30
+# INTEL: vpmultishiftqb	xmm30, xmm29, xmmword ptr [rdx - 2048]
+0x62,0x62,0x95,0x00,0x83,0x72,0x80
+
+# ATT:   vpmultishiftqb	-2064(%rdx), %xmm29, %xmm30
+# INTEL: vpmultishiftqb	xmm30, xmm29, xmmword ptr [rdx - 2064]
+0x62,0x62,0x95,0x00,0x83,0xb2,0xf0,0xf7,0xff,0xff
+
+# ATT:   vpmultishiftqb	1016(%rdx){1to2}, %xmm29, %xmm30
+# INTEL: vpmultishiftqb	xmm30, xmm29, qword ptr [rdx + 1016]{1to2}
+0x62,0x62,0x95,0x10,0x83,0x72,0x7f
+
+# ATT:   vpmultishiftqb	1024(%rdx){1to2}, %xmm29, %xmm30
+# INTEL: vpmultishiftqb	xmm30, xmm29, qword ptr [rdx + 1024]{1to2}
+0x62,0x62,0x95,0x10,0x83,0xb2,0x00,0x04,0x00,0x00
+
+# ATT:   vpmultishiftqb	-1024(%rdx){1to2}, %xmm29, %xmm30
+# INTEL: vpmultishiftqb	xmm30, xmm29, qword ptr [rdx - 1024]{1to2}
+0x62,0x62,0x95,0x10,0x83,0x72,0x80
+
+# ATT:   vpmultishiftqb	-1032(%rdx){1to2}, %xmm29, %xmm30
+# INTEL: vpmultishiftqb	xmm30, xmm29, qword ptr [rdx - 1032]{1to2}
+0x62,0x62,0x95,0x10,0x83,0xb2,0xf8,0xfb,0xff,0xff
+
+# ATT:   vpmultishiftqb	%ymm28, %ymm29, %ymm30
+# INTEL: vpmultishiftqb	ymm30, ymm29, ymm28
+0x62,0x02,0x95,0x20,0x83,0xf4
+
+# ATT:   vpmultishiftqb	%ymm28, %ymm29, %ymm30 {%k7}
+# INTEL: vpmultishiftqb	ymm30 {k7}, ymm29, ymm28
+0x62,0x02,0x95,0x27,0x83,0xf4
+
+# ATT:   vpmultishiftqb	%ymm28, %ymm29, %ymm30 {%k7} {z}
+# INTEL: vpmultishiftqb	ymm30 {k7} {z}, ymm29, ymm28
+0x62,0x02,0x95,0xa7,0x83,0xf4
+
+# ATT:   vpmultishiftqb	(%rcx), %ymm29, %ymm30
+# INTEL: vpmultishiftqb	ymm30, ymm29, ymmword ptr [rcx]
+0x62,0x62,0x95,0x20,0x83,0x31
+
+# ATT:   vpmultishiftqb	291(%rax,%r14,8), %ymm29, %ymm30
+# INTEL: vpmultishiftqb	ymm30, ymm29, ymmword ptr [rax + 8*r14 + 291]
+0x62,0x22,0x95,0x20,0x83,0xb4,0xf0,0x23,0x01,0x00,0x00
+
+# ATT:   vpmultishiftqb	(%rcx){1to4}, %ymm29, %ymm30
+# INTEL: vpmultishiftqb	ymm30, ymm29, qword ptr [rcx]{1to4}
+0x62,0x62,0x95,0x30,0x83,0x31
+
+# ATT:   vpmultishiftqb	4064(%rdx), %ymm29, %ymm30
+# INTEL: vpmultishiftqb	ymm30, ymm29, ymmword ptr [rdx + 4064]
+0x62,0x62,0x95,0x20,0x83,0x72,0x7f
+
+# ATT:   vpmultishiftqb	4096(%rdx), %ymm29, %ymm30
+# INTEL: vpmultishiftqb	ymm30, ymm29, ymmword ptr [rdx + 4096]
+0x62,0x62,0x95,0x20,0x83,0xb2,0x00,0x10,0x00,0x00
+
+# ATT:   vpmultishiftqb	-4096(%rdx), %ymm29, %ymm30
+# INTEL: vpmultishiftqb	ymm30, ymm29, ymmword ptr [rdx - 4096]
+0x62,0x62,0x95,0x20,0x83,0x72,0x80
+
+# ATT:   vpmultishiftqb	-4128(%rdx), %ymm29, %ymm30
+# INTEL: vpmultishiftqb	ymm30, ymm29, ymmword ptr [rdx - 4128]
+0x62,0x62,0x95,0x20,0x83,0xb2,0xe0,0xef,0xff,0xff
+
+# ATT:   vpmultishiftqb	1016(%rdx){1to4}, %ymm29, %ymm30
+# INTEL: vpmultishiftqb	ymm30, ymm29, qword ptr [rdx + 1016]{1to4}
+0x62,0x62,0x95,0x30,0x83,0x72,0x7f
+
+# ATT:   vpmultishiftqb	1024(%rdx){1to4}, %ymm29, %ymm30
+# INTEL: vpmultishiftqb	ymm30, ymm29, qword ptr [rdx + 1024]{1to4}
+0x62,0x62,0x95,0x30,0x83,0xb2,0x00,0x04,0x00,0x00
+
+# ATT:   vpmultishiftqb	-1024(%rdx){1to4}, %ymm29, %ymm30
+# INTEL: vpmultishiftqb	ymm30, ymm29, qword ptr [rdx - 1024]{1to4}
+0x62,0x62,0x95,0x30,0x83,0x72,0x80
+
+# ATT:   vpmultishiftqb	-1032(%rdx){1to4}, %ymm29, %ymm30
+# INTEL: vpmultishiftqb	ymm30, ymm29, qword ptr [rdx - 1032]{1to4}
+0x62,0x62,0x95,0x30,0x83,0xb2,0xf8,0xfb,0xff,0xff
+
+# ATT:   vpmultishiftqb	4660(%rax,%r14,8), %xmm29, %xmm30
+# INTEL: vpmultishiftqb	xmm30, xmm29, xmmword ptr [rax + 8*r14 + 4660]
+0x62,0x22,0x95,0x00,0x83,0xb4,0xf0,0x34,0x12,0x00,0x00
+
+# ATT:   vpmultishiftqb	4660(%rax,%r14,8), %ymm29, %ymm30
+# INTEL: vpmultishiftqb	ymm30, ymm29, ymmword ptr [rax + 8*r14 + 4660]
+0x62,0x22,0x95,0x20,0x83,0xb4,0xf0,0x34,0x12,0x00,0x00
+
+# ATT:   vpmultishiftqb	%zmm28, %zmm29, %zmm30
+# INTEL: vpmultishiftqb	zmm30, zmm29, zmm28
+0x62,0x02,0x95,0x40,0x83,0xf4
+
+# ATT:   vpmultishiftqb	%zmm28, %zmm29, %zmm30 {%k7}
+# INTEL: vpmultishiftqb	zmm30 {k7}, zmm29, zmm28
+0x62,0x02,0x95,0x47,0x83,0xf4
+
+# ATT:   vpmultishiftqb	%zmm28, %zmm29, %zmm30 {%k7} {z}
+# INTEL: vpmultishiftqb	zmm30 {k7} {z}, zmm29, zmm28
+0x62,0x02,0x95,0xc7,0x83,0xf4
+
+# ATT:   vpmultishiftqb	(%rcx), %zmm29, %zmm30
+# INTEL: vpmultishiftqb	zmm30, zmm29, zmmword ptr [rcx]
+0x62,0x62,0x95,0x40,0x83,0x31
+
+# ATT:   vpmultishiftqb	291(%rax,%r14,8), %zmm29, %zmm30
+# INTEL: vpmultishiftqb	zmm30, zmm29, zmmword ptr [rax + 8*r14 + 291]
+0x62,0x22,0x95,0x40,0x83,0xb4,0xf0,0x23,0x01,0x00,0x00
+
+# ATT:   vpmultishiftqb	(%rcx){1to8}, %zmm29, %zmm30
+# INTEL: vpmultishiftqb	zmm30, zmm29, qword ptr [rcx]{1to8}
+0x62,0x62,0x95,0x50,0x83,0x31
+
+# ATT:   vpmultishiftqb	8128(%rdx), %zmm29, %zmm30
+# INTEL: vpmultishiftqb	zmm30, zmm29, zmmword ptr [rdx + 8128]
+0x62,0x62,0x95,0x40,0x83,0x72,0x7f
+
+# ATT:   vpmultishiftqb	8192(%rdx), %zmm29, %zmm30
+# INTEL: vpmultishiftqb	zmm30, zmm29, zmmword ptr [rdx + 8192]
+0x62,0x62,0x95,0x40,0x83,0xb2,0x00,0x20,0x00,0x00
+
+# ATT:   vpmultishiftqb	-8192(%rdx), %zmm29, %zmm30
+# INTEL: vpmultishiftqb	zmm30, zmm29, zmmword ptr [rdx - 8192]
+0x62,0x62,0x95,0x40,0x83,0x72,0x80
+
+# ATT:   vpmultishiftqb	-8256(%rdx), %zmm29, %zmm30
+# INTEL: vpmultishiftqb	zmm30, zmm29, zmmword ptr [rdx - 8256]
+0x62,0x62,0x95,0x40,0x83,0xb2,0xc0,0xdf,0xff,0xff
+
+# ATT:   vpmultishiftqb	1016(%rdx){1to8}, %zmm29, %zmm30
+# INTEL: vpmultishiftqb	zmm30, zmm29, qword ptr [rdx + 1016]{1to8}
+0x62,0x62,0x95,0x50,0x83,0x72,0x7f
+
+# ATT:   vpmultishiftqb	1024(%rdx){1to8}, %zmm29, %zmm30
+# INTEL: vpmultishiftqb	zmm30, zmm29, qword ptr [rdx + 1024]{1to8}
+0x62,0x62,0x95,0x50,0x83,0xb2,0x00,0x04,0x00,0x00
+
+# ATT:   vpmultishiftqb	-1024(%rdx){1to8}, %zmm29, %zmm30
+# INTEL: vpmultishiftqb	zmm30, zmm29, qword ptr [rdx - 1024]{1to8}
+0x62,0x62,0x95,0x50,0x83,0x72,0x80
+
+# ATT:   vpmultishiftqb	-1032(%rdx){1to8}, %zmm29, %zmm30
+# INTEL: vpmultishiftqb	zmm30, zmm29, qword ptr [rdx - 1032]{1to8}
+0x62,0x62,0x95,0x50,0x83,0xb2,0xf8,0xfb,0xff,0xff
+
+# ATT:   vpmultishiftqb	4660(%rax,%r14,8), %zmm29, %zmm30
+# INTEL: vpmultishiftqb	zmm30, zmm29, zmmword ptr [rax + 8*r14 + 4660]
+0x62,0x22,0x95,0x40,0x83,0xb4,0xf0,0x34,0x12,0x00,0x00

diff  --git a/llvm/test/MC/X86/avx512vbmi-att.s b/llvm/test/MC/X86/avx512vbmi-att.s
new file mode 100644
index 00000000000000..028494514bfcb0
--- /dev/null
+++ b/llvm/test/MC/X86/avx512vbmi-att.s
@@ -0,0 +1,542 @@
+# RUN: llvm-mc -triple x86_64 -show-encoding %s | FileCheck %s
+
+# CHECK: vpermb	%xmm28, %xmm29, %xmm30 {%k7}
+# CHECK: encoding: [0x62,0x02,0x15,0x07,0x8d,0xf4]
+         vpermb	%xmm28, %xmm29, %xmm30 {%k7}
+
+# CHECK: vpermb	%xmm28, %xmm29, %xmm30 {%k7} {z}
+# CHECK: encoding: [0x62,0x02,0x15,0x87,0x8d,0xf4]
+         vpermb	%xmm28, %xmm29, %xmm30 {%k7} {z}
+
+# CHECK: vpermb	(%rcx), %xmm29, %xmm30
+# CHECK: encoding: [0x62,0x62,0x15,0x00,0x8d,0x31]
+         vpermb	(%rcx), %xmm29, %xmm30
+
+# CHECK: vpermb	291(%rax,%r14,8), %xmm29, %xmm30
+# CHECK: encoding: [0x62,0x22,0x15,0x00,0x8d,0xb4,0xf0,0x23,0x01,0x00,0x00]
+         vpermb	291(%rax,%r14,8), %xmm29, %xmm30
+
+# CHECK: vpermb	2032(%rdx), %xmm29, %xmm30
+# CHECK: encoding: [0x62,0x62,0x15,0x00,0x8d,0x72,0x7f]
+         vpermb	2032(%rdx), %xmm29, %xmm30
+
+# CHECK: vpermb	2048(%rdx), %xmm29, %xmm30
+# CHECK: encoding: [0x62,0x62,0x15,0x00,0x8d,0xb2,0x00,0x08,0x00,0x00]
+         vpermb	2048(%rdx), %xmm29, %xmm30
+
+# CHECK: vpermb	-2048(%rdx), %xmm29, %xmm30
+# CHECK: encoding: [0x62,0x62,0x15,0x00,0x8d,0x72,0x80]
+         vpermb	-2048(%rdx), %xmm29, %xmm30
+
+# CHECK: vpermb	-2064(%rdx), %xmm29, %xmm30
+# CHECK: encoding: [0x62,0x62,0x15,0x00,0x8d,0xb2,0xf0,0xf7,0xff,0xff]
+         vpermb	-2064(%rdx), %xmm29, %xmm30
+
+# CHECK: vpermb	%ymm28, %ymm29, %ymm30
+# CHECK: encoding: [0x62,0x02,0x15,0x20,0x8d,0xf4]
+         vpermb	%ymm28, %ymm29, %ymm30
+
+# CHECK: vpermb	%ymm28, %ymm29, %ymm30 {%k7}
+# CHECK: encoding: [0x62,0x02,0x15,0x27,0x8d,0xf4]
+         vpermb	%ymm28, %ymm29, %ymm30 {%k7}
+
+# CHECK: vpermb	%ymm28, %ymm29, %ymm30 {%k7} {z}
+# CHECK: encoding: [0x62,0x02,0x15,0xa7,0x8d,0xf4]
+         vpermb	%ymm28, %ymm29, %ymm30 {%k7} {z}
+
+# CHECK: vpermb	(%rcx), %ymm29, %ymm30
+# CHECK: encoding: [0x62,0x62,0x15,0x20,0x8d,0x31]
+         vpermb	(%rcx), %ymm29, %ymm30
+
+# CHECK: vpermb	291(%rax,%r14,8), %ymm29, %ymm30
+# CHECK: encoding: [0x62,0x22,0x15,0x20,0x8d,0xb4,0xf0,0x23,0x01,0x00,0x00]
+         vpermb	291(%rax,%r14,8), %ymm29, %ymm30
+
+# CHECK: vpermb	4064(%rdx), %ymm29, %ymm30
+# CHECK: encoding: [0x62,0x62,0x15,0x20,0x8d,0x72,0x7f]
+         vpermb	4064(%rdx), %ymm29, %ymm30
+
+# CHECK: vpermb	4096(%rdx), %ymm29, %ymm30
+# CHECK: encoding: [0x62,0x62,0x15,0x20,0x8d,0xb2,0x00,0x10,0x00,0x00]
+         vpermb	4096(%rdx), %ymm29, %ymm30
+
+# CHECK: vpermb	-4096(%rdx), %ymm29, %ymm30
+# CHECK: encoding: [0x62,0x62,0x15,0x20,0x8d,0x72,0x80]
+         vpermb	-4096(%rdx), %ymm29, %ymm30
+
+# CHECK: vpermb	-4128(%rdx), %ymm29, %ymm30
+# CHECK: encoding: [0x62,0x62,0x15,0x20,0x8d,0xb2,0xe0,0xef,0xff,0xff]
+         vpermb	-4128(%rdx), %ymm29, %ymm30
+
+# CHECK: vpermb	%xmm28, %xmm29, %xmm30
+# CHECK: encoding: [0x62,0x02,0x15,0x00,0x8d,0xf4]
+         vpermb	%xmm28, %xmm29, %xmm30
+
+# CHECK: vpermb	4660(%rax,%r14,8), %xmm29, %xmm30
+# CHECK: encoding: [0x62,0x22,0x15,0x00,0x8d,0xb4,0xf0,0x34,0x12,0x00,0x00]
+         vpermb	4660(%rax,%r14,8), %xmm29, %xmm30
+
+# CHECK: vpermb	4660(%rax,%r14,8), %ymm29, %ymm30
+# CHECK: encoding: [0x62,0x22,0x15,0x20,0x8d,0xb4,0xf0,0x34,0x12,0x00,0x00]
+         vpermb	4660(%rax,%r14,8), %ymm29, %ymm30
+
+# CHECK: vpermb	%zmm28, %zmm29, %zmm30
+# CHECK: encoding: [0x62,0x02,0x15,0x40,0x8d,0xf4]
+         vpermb	%zmm28, %zmm29, %zmm30
+
+# CHECK: vpermb	%zmm28, %zmm29, %zmm30 {%k7}
+# CHECK: encoding: [0x62,0x02,0x15,0x47,0x8d,0xf4]
+         vpermb	%zmm28, %zmm29, %zmm30 {%k7}
+
+# CHECK: vpermb	%zmm28, %zmm29, %zmm30 {%k7} {z}
+# CHECK: encoding: [0x62,0x02,0x15,0xc7,0x8d,0xf4]
+         vpermb	%zmm28, %zmm29, %zmm30 {%k7} {z}
+
+# CHECK: vpermb	(%rcx), %zmm29, %zmm30
+# CHECK: encoding: [0x62,0x62,0x15,0x40,0x8d,0x31]
+         vpermb	(%rcx), %zmm29, %zmm30
+
+# CHECK: vpermb	291(%rax,%r14,8), %zmm29, %zmm30
+# CHECK: encoding: [0x62,0x22,0x15,0x40,0x8d,0xb4,0xf0,0x23,0x01,0x00,0x00]
+         vpermb	291(%rax,%r14,8), %zmm29, %zmm30
+
+# CHECK: vpermb	8128(%rdx), %zmm29, %zmm30
+# CHECK: encoding: [0x62,0x62,0x15,0x40,0x8d,0x72,0x7f]
+         vpermb	8128(%rdx), %zmm29, %zmm30
+
+# CHECK: vpermb	8192(%rdx), %zmm29, %zmm30
+# CHECK: encoding: [0x62,0x62,0x15,0x40,0x8d,0xb2,0x00,0x20,0x00,0x00]
+         vpermb	8192(%rdx), %zmm29, %zmm30
+
+# CHECK: vpermb	-8192(%rdx), %zmm29, %zmm30
+# CHECK: encoding: [0x62,0x62,0x15,0x40,0x8d,0x72,0x80]
+         vpermb	-8192(%rdx), %zmm29, %zmm30
+
+# CHECK: vpermb	-8256(%rdx), %zmm29, %zmm30
+# CHECK: encoding: [0x62,0x62,0x15,0x40,0x8d,0xb2,0xc0,0xdf,0xff,0xff]
+         vpermb	-8256(%rdx), %zmm29, %zmm30
+
+# CHECK: vpermb	4660(%rax,%r14,8), %zmm29, %zmm30
+# CHECK: encoding: [0x62,0x22,0x15,0x40,0x8d,0xb4,0xf0,0x34,0x12,0x00,0x00]
+         vpermb	4660(%rax,%r14,8), %zmm29, %zmm30
+
+# CHECK: vpermt2b	%xmm28, %xmm29, %xmm30
+# CHECK: encoding: [0x62,0x02,0x15,0x00,0x7d,0xf4]
+         vpermt2b	%xmm28, %xmm29, %xmm30
+
+# CHECK: vpermt2b	%xmm28, %xmm29, %xmm30 {%k7}
+# CHECK: encoding: [0x62,0x02,0x15,0x07,0x7d,0xf4]
+         vpermt2b	%xmm28, %xmm29, %xmm30 {%k7}
+
+# CHECK: vpermt2b	%xmm28, %xmm29, %xmm30 {%k7} {z}
+# CHECK: encoding: [0x62,0x02,0x15,0x87,0x7d,0xf4]
+         vpermt2b	%xmm28, %xmm29, %xmm30 {%k7} {z}
+
+# CHECK: vpermt2b	(%rcx), %xmm29, %xmm30
+# CHECK: encoding: [0x62,0x62,0x15,0x00,0x7d,0x31]
+         vpermt2b	(%rcx), %xmm29, %xmm30
+
+# CHECK: vpermt2b	291(%rax,%r14,8), %xmm29, %xmm30
+# CHECK: encoding: [0x62,0x22,0x15,0x00,0x7d,0xb4,0xf0,0x23,0x01,0x00,0x00]
+         vpermt2b	291(%rax,%r14,8), %xmm29, %xmm30
+
+# CHECK: vpermt2b	2032(%rdx), %xmm29, %xmm30
+# CHECK: encoding: [0x62,0x62,0x15,0x00,0x7d,0x72,0x7f]
+         vpermt2b	2032(%rdx), %xmm29, %xmm30
+
+# CHECK: vpermt2b	2048(%rdx), %xmm29, %xmm30
+# CHECK: encoding: [0x62,0x62,0x15,0x00,0x7d,0xb2,0x00,0x08,0x00,0x00]
+         vpermt2b	2048(%rdx), %xmm29, %xmm30
+
+# CHECK: vpermt2b	-2048(%rdx), %xmm29, %xmm30
+# CHECK: encoding: [0x62,0x62,0x15,0x00,0x7d,0x72,0x80]
+         vpermt2b	-2048(%rdx), %xmm29, %xmm30
+
+# CHECK: vpermt2b	-2064(%rdx), %xmm29, %xmm30
+# CHECK: encoding: [0x62,0x62,0x15,0x00,0x7d,0xb2,0xf0,0xf7,0xff,0xff]
+         vpermt2b	-2064(%rdx), %xmm29, %xmm30
+
+# CHECK: vpermt2b	%ymm28, %ymm29, %ymm30
+# CHECK: encoding: [0x62,0x02,0x15,0x20,0x7d,0xf4]
+         vpermt2b	%ymm28, %ymm29, %ymm30
+
+# CHECK: vpermt2b	%ymm28, %ymm29, %ymm30 {%k7}
+# CHECK: encoding: [0x62,0x02,0x15,0x27,0x7d,0xf4]
+         vpermt2b	%ymm28, %ymm29, %ymm30 {%k7}
+
+# CHECK: vpermt2b	%ymm28, %ymm29, %ymm30 {%k7} {z}
+# CHECK: encoding: [0x62,0x02,0x15,0xa7,0x7d,0xf4]
+         vpermt2b	%ymm28, %ymm29, %ymm30 {%k7} {z}
+
+# CHECK: vpermt2b	(%rcx), %ymm29, %ymm30
+# CHECK: encoding: [0x62,0x62,0x15,0x20,0x7d,0x31]
+         vpermt2b	(%rcx), %ymm29, %ymm30
+
+# CHECK: vpermt2b	291(%rax,%r14,8), %ymm29, %ymm30
+# CHECK: encoding: [0x62,0x22,0x15,0x20,0x7d,0xb4,0xf0,0x23,0x01,0x00,0x00]
+         vpermt2b	291(%rax,%r14,8), %ymm29, %ymm30
+
+# CHECK: vpermt2b	4064(%rdx), %ymm29, %ymm30
+# CHECK: encoding: [0x62,0x62,0x15,0x20,0x7d,0x72,0x7f]
+         vpermt2b	4064(%rdx), %ymm29, %ymm30
+
+# CHECK: vpermt2b	4096(%rdx), %ymm29, %ymm30
+# CHECK: encoding: [0x62,0x62,0x15,0x20,0x7d,0xb2,0x00,0x10,0x00,0x00]
+         vpermt2b	4096(%rdx), %ymm29, %ymm30
+
+# CHECK: vpermt2b	-4096(%rdx), %ymm29, %ymm30
+# CHECK: encoding: [0x62,0x62,0x15,0x20,0x7d,0x72,0x80]
+         vpermt2b	-4096(%rdx), %ymm29, %ymm30
+
+# CHECK: vpermt2b	-4128(%rdx), %ymm29, %ymm30
+# CHECK: encoding: [0x62,0x62,0x15,0x20,0x7d,0xb2,0xe0,0xef,0xff,0xff]
+         vpermt2b	-4128(%rdx), %ymm29, %ymm30
+
+# CHECK: vpermt2b	4660(%rax,%r14,8), %xmm29, %xmm30
+# CHECK: encoding: [0x62,0x22,0x15,0x00,0x7d,0xb4,0xf0,0x34,0x12,0x00,0x00]
+         vpermt2b	4660(%rax,%r14,8), %xmm29, %xmm30
+
+# CHECK: vpermt2b	4660(%rax,%r14,8), %ymm29, %ymm30
+# CHECK: encoding: [0x62,0x22,0x15,0x20,0x7d,0xb4,0xf0,0x34,0x12,0x00,0x00]
+         vpermt2b	4660(%rax,%r14,8), %ymm29, %ymm30
+
+# CHECK: vpermt2b	%zmm28, %zmm29, %zmm30
+# CHECK: encoding: [0x62,0x02,0x15,0x40,0x7d,0xf4]
+         vpermt2b	%zmm28, %zmm29, %zmm30
+
+# CHECK: vpermt2b	%zmm28, %zmm29, %zmm30 {%k7}
+# CHECK: encoding: [0x62,0x02,0x15,0x47,0x7d,0xf4]
+         vpermt2b	%zmm28, %zmm29, %zmm30 {%k7}
+
+# CHECK: vpermt2b	%zmm28, %zmm29, %zmm30 {%k7} {z}
+# CHECK: encoding: [0x62,0x02,0x15,0xc7,0x7d,0xf4]
+         vpermt2b	%zmm28, %zmm29, %zmm30 {%k7} {z}
+
+# CHECK: vpermt2b	(%rcx), %zmm29, %zmm30
+# CHECK: encoding: [0x62,0x62,0x15,0x40,0x7d,0x31]
+         vpermt2b	(%rcx), %zmm29, %zmm30
+
+# CHECK: vpermt2b	291(%rax,%r14,8), %zmm29, %zmm30
+# CHECK: encoding: [0x62,0x22,0x15,0x40,0x7d,0xb4,0xf0,0x23,0x01,0x00,0x00]
+         vpermt2b	291(%rax,%r14,8), %zmm29, %zmm30
+
+# CHECK: vpermt2b	8128(%rdx), %zmm29, %zmm30
+# CHECK: encoding: [0x62,0x62,0x15,0x40,0x7d,0x72,0x7f]
+         vpermt2b	8128(%rdx), %zmm29, %zmm30
+
+# CHECK: vpermt2b	8192(%rdx), %zmm29, %zmm30
+# CHECK: encoding: [0x62,0x62,0x15,0x40,0x7d,0xb2,0x00,0x20,0x00,0x00]
+         vpermt2b	8192(%rdx), %zmm29, %zmm30
+
+# CHECK: vpermt2b	-8192(%rdx), %zmm29, %zmm30
+# CHECK: encoding: [0x62,0x62,0x15,0x40,0x7d,0x72,0x80]
+         vpermt2b	-8192(%rdx), %zmm29, %zmm30
+
+# CHECK: vpermt2b	-8256(%rdx), %zmm29, %zmm30
+# CHECK: encoding: [0x62,0x62,0x15,0x40,0x7d,0xb2,0xc0,0xdf,0xff,0xff]
+         vpermt2b	-8256(%rdx), %zmm29, %zmm30
+
+# CHECK: vpermt2b	4660(%rax,%r14,8), %zmm29, %zmm30
+# CHECK: encoding: [0x62,0x22,0x15,0x40,0x7d,0xb4,0xf0,0x34,0x12,0x00,0x00]
+         vpermt2b	4660(%rax,%r14,8), %zmm29, %zmm30
+
+# CHECK: vpermi2b	%xmm28, %xmm29, %xmm30
+# CHECK: encoding: [0x62,0x02,0x15,0x00,0x75,0xf4]
+         vpermi2b	%xmm28, %xmm29, %xmm30
+
+# CHECK: vpermi2b	%xmm28, %xmm29, %xmm30 {%k7}
+# CHECK: encoding: [0x62,0x02,0x15,0x07,0x75,0xf4]
+         vpermi2b	%xmm28, %xmm29, %xmm30 {%k7}
+
+# CHECK: vpermi2b	%xmm28, %xmm29, %xmm30 {%k7} {z}
+# CHECK: encoding: [0x62,0x02,0x15,0x87,0x75,0xf4]
+         vpermi2b	%xmm28, %xmm29, %xmm30 {%k7} {z}
+
+# CHECK: vpermi2b	(%rcx), %xmm29, %xmm30
+# CHECK: encoding: [0x62,0x62,0x15,0x00,0x75,0x31]
+         vpermi2b	(%rcx), %xmm29, %xmm30
+
+# CHECK: vpermi2b	291(%rax,%r14,8), %xmm29, %xmm30
+# CHECK: encoding: [0x62,0x22,0x15,0x00,0x75,0xb4,0xf0,0x23,0x01,0x00,0x00]
+         vpermi2b	291(%rax,%r14,8), %xmm29, %xmm30
+
+# CHECK: vpermi2b	2032(%rdx), %xmm29, %xmm30
+# CHECK: encoding: [0x62,0x62,0x15,0x00,0x75,0x72,0x7f]
+         vpermi2b	2032(%rdx), %xmm29, %xmm30
+
+# CHECK: vpermi2b	2048(%rdx), %xmm29, %xmm30
+# CHECK: encoding: [0x62,0x62,0x15,0x00,0x75,0xb2,0x00,0x08,0x00,0x00]
+         vpermi2b	2048(%rdx), %xmm29, %xmm30
+
+# CHECK: vpermi2b	-2048(%rdx), %xmm29, %xmm30
+# CHECK: encoding: [0x62,0x62,0x15,0x00,0x75,0x72,0x80]
+         vpermi2b	-2048(%rdx), %xmm29, %xmm30
+
+# CHECK: vpermi2b	-2064(%rdx), %xmm29, %xmm30
+# CHECK: encoding: [0x62,0x62,0x15,0x00,0x75,0xb2,0xf0,0xf7,0xff,0xff]
+         vpermi2b	-2064(%rdx), %xmm29, %xmm30
+
+# CHECK: vpermi2b	%ymm28, %ymm29, %ymm30
+# CHECK: encoding: [0x62,0x02,0x15,0x20,0x75,0xf4]
+         vpermi2b	%ymm28, %ymm29, %ymm30
+
+# CHECK: vpermi2b	%ymm28, %ymm29, %ymm30 {%k7}
+# CHECK: encoding: [0x62,0x02,0x15,0x27,0x75,0xf4]
+         vpermi2b	%ymm28, %ymm29, %ymm30 {%k7}
+
+# CHECK: vpermi2b	%ymm28, %ymm29, %ymm30 {%k7} {z}
+# CHECK: encoding: [0x62,0x02,0x15,0xa7,0x75,0xf4]
+         vpermi2b	%ymm28, %ymm29, %ymm30 {%k7} {z}
+
+# CHECK: vpermi2b	(%rcx), %ymm29, %ymm30
+# CHECK: encoding: [0x62,0x62,0x15,0x20,0x75,0x31]
+         vpermi2b	(%rcx), %ymm29, %ymm30
+
+# CHECK: vpermi2b	291(%rax,%r14,8), %ymm29, %ymm30
+# CHECK: encoding: [0x62,0x22,0x15,0x20,0x75,0xb4,0xf0,0x23,0x01,0x00,0x00]
+         vpermi2b	291(%rax,%r14,8), %ymm29, %ymm30
+
+# CHECK: vpermi2b	4064(%rdx), %ymm29, %ymm30
+# CHECK: encoding: [0x62,0x62,0x15,0x20,0x75,0x72,0x7f]
+         vpermi2b	4064(%rdx), %ymm29, %ymm30
+
+# CHECK: vpermi2b	4096(%rdx), %ymm29, %ymm30
+# CHECK: encoding: [0x62,0x62,0x15,0x20,0x75,0xb2,0x00,0x10,0x00,0x00]
+         vpermi2b	4096(%rdx), %ymm29, %ymm30
+
+# CHECK: vpermi2b	-4096(%rdx), %ymm29, %ymm30
+# CHECK: encoding: [0x62,0x62,0x15,0x20,0x75,0x72,0x80]
+         vpermi2b	-4096(%rdx), %ymm29, %ymm30
+
+# CHECK: vpermi2b	-4128(%rdx), %ymm29, %ymm30
+# CHECK: encoding: [0x62,0x62,0x15,0x20,0x75,0xb2,0xe0,0xef,0xff,0xff]
+         vpermi2b	-4128(%rdx), %ymm29, %ymm30
+
+# CHECK: vpermi2b	4660(%rax,%r14,8), %xmm29, %xmm30
+# CHECK: encoding: [0x62,0x22,0x15,0x00,0x75,0xb4,0xf0,0x34,0x12,0x00,0x00]
+         vpermi2b	4660(%rax,%r14,8), %xmm29, %xmm30
+
+# CHECK: vpermi2b	4660(%rax,%r14,8), %ymm29, %ymm30
+# CHECK: encoding: [0x62,0x22,0x15,0x20,0x75,0xb4,0xf0,0x34,0x12,0x00,0x00]
+         vpermi2b	4660(%rax,%r14,8), %ymm29, %ymm30
+
+# CHECK: vpermi2b	%zmm28, %zmm29, %zmm30
+# CHECK: encoding: [0x62,0x02,0x15,0x40,0x75,0xf4]
+         vpermi2b	%zmm28, %zmm29, %zmm30
+
+# CHECK: vpermi2b	%zmm28, %zmm29, %zmm30 {%k7}
+# CHECK: encoding: [0x62,0x02,0x15,0x47,0x75,0xf4]
+         vpermi2b	%zmm28, %zmm29, %zmm30 {%k7}
+
+# CHECK: vpermi2b	%zmm28, %zmm29, %zmm30 {%k7} {z}
+# CHECK: encoding: [0x62,0x02,0x15,0xc7,0x75,0xf4]
+         vpermi2b	%zmm28, %zmm29, %zmm30 {%k7} {z}
+
+# CHECK: vpermi2b	(%rcx), %zmm29, %zmm30
+# CHECK: encoding: [0x62,0x62,0x15,0x40,0x75,0x31]
+         vpermi2b	(%rcx), %zmm29, %zmm30
+
+# CHECK: vpermi2b	291(%rax,%r14,8), %zmm29, %zmm30
+# CHECK: encoding: [0x62,0x22,0x15,0x40,0x75,0xb4,0xf0,0x23,0x01,0x00,0x00]
+         vpermi2b	291(%rax,%r14,8), %zmm29, %zmm30
+
+# CHECK: vpermi2b	8128(%rdx), %zmm29, %zmm30
+# CHECK: encoding: [0x62,0x62,0x15,0x40,0x75,0x72,0x7f]
+         vpermi2b	8128(%rdx), %zmm29, %zmm30
+
+# CHECK: vpermi2b	8192(%rdx), %zmm29, %zmm30
+# CHECK: encoding: [0x62,0x62,0x15,0x40,0x75,0xb2,0x00,0x20,0x00,0x00]
+         vpermi2b	8192(%rdx), %zmm29, %zmm30
+
+# CHECK: vpermi2b	-8192(%rdx), %zmm29, %zmm30
+# CHECK: encoding: [0x62,0x62,0x15,0x40,0x75,0x72,0x80]
+         vpermi2b	-8192(%rdx), %zmm29, %zmm30
+
+# CHECK: vpermi2b	-8256(%rdx), %zmm29, %zmm30
+# CHECK: encoding: [0x62,0x62,0x15,0x40,0x75,0xb2,0xc0,0xdf,0xff,0xff]
+         vpermi2b	-8256(%rdx), %zmm29, %zmm30
+
+# CHECK: vpermi2b	4660(%rax,%r14,8), %zmm29, %zmm30
+# CHECK: encoding: [0x62,0x22,0x15,0x40,0x75,0xb4,0xf0,0x34,0x12,0x00,0x00]
+         vpermi2b	4660(%rax,%r14,8), %zmm29, %zmm30
+
+# CHECK: vpmultishiftqb	%xmm28, %xmm29, %xmm30
+# CHECK: encoding: [0x62,0x02,0x95,0x00,0x83,0xf4]
+         vpmultishiftqb	%xmm28, %xmm29, %xmm30
+
+# CHECK: vpmultishiftqb	%xmm28, %xmm29, %xmm30 {%k7}
+# CHECK: encoding: [0x62,0x02,0x95,0x07,0x83,0xf4]
+         vpmultishiftqb	%xmm28, %xmm29, %xmm30 {%k7}
+
+# CHECK: vpmultishiftqb	%xmm28, %xmm29, %xmm30 {%k7} {z}
+# CHECK: encoding: [0x62,0x02,0x95,0x87,0x83,0xf4]
+         vpmultishiftqb	%xmm28, %xmm29, %xmm30 {%k7} {z}
+
+# CHECK: vpmultishiftqb	(%rcx), %xmm29, %xmm30
+# CHECK: encoding: [0x62,0x62,0x95,0x00,0x83,0x31]
+         vpmultishiftqb	(%rcx), %xmm29, %xmm30
+
+# CHECK: vpmultishiftqb	291(%rax,%r14,8), %xmm29, %xmm30
+# CHECK: encoding: [0x62,0x22,0x95,0x00,0x83,0xb4,0xf0,0x23,0x01,0x00,0x00]
+         vpmultishiftqb	291(%rax,%r14,8), %xmm29, %xmm30
+
+# CHECK: vpmultishiftqb	(%rcx){1to2}, %xmm29, %xmm30
+# CHECK: encoding: [0x62,0x62,0x95,0x10,0x83,0x31]
+         vpmultishiftqb	(%rcx){1to2}, %xmm29, %xmm30
+
+
+# CHECK: vpmultishiftqb	2032(%rdx), %xmm29, %xmm30
+# CHECK: encoding: [0x62,0x62,0x95,0x00,0x83,0x72,0x7f]
+         vpmultishiftqb	2032(%rdx), %xmm29, %xmm30
+
+# CHECK: vpmultishiftqb	2048(%rdx), %xmm29, %xmm30
+# CHECK: encoding: [0x62,0x62,0x95,0x00,0x83,0xb2,0x00,0x08,0x00,0x00]
+         vpmultishiftqb	2048(%rdx), %xmm29, %xmm30
+
+# CHECK: vpmultishiftqb	-2048(%rdx), %xmm29, %xmm30
+# CHECK: encoding: [0x62,0x62,0x95,0x00,0x83,0x72,0x80]
+         vpmultishiftqb	-2048(%rdx), %xmm29, %xmm30
+
+# CHECK: vpmultishiftqb	-2064(%rdx), %xmm29, %xmm30
+# CHECK: encoding: [0x62,0x62,0x95,0x00,0x83,0xb2,0xf0,0xf7,0xff,0xff]
+         vpmultishiftqb	-2064(%rdx), %xmm29, %xmm30
+
+# CHECK: vpmultishiftqb	1016(%rdx){1to2}, %xmm29, %xmm30
+# CHECK: encoding: [0x62,0x62,0x95,0x10,0x83,0x72,0x7f]
+         vpmultishiftqb	1016(%rdx){1to2}, %xmm29, %xmm30
+
+# CHECK: vpmultishiftqb	1024(%rdx){1to2}, %xmm29, %xmm30
+# CHECK: encoding: [0x62,0x62,0x95,0x10,0x83,0xb2,0x00,0x04,0x00,0x00]
+         vpmultishiftqb	1024(%rdx){1to2}, %xmm29, %xmm30
+
+# CHECK: vpmultishiftqb	-1024(%rdx){1to2}, %xmm29, %xmm30
+# CHECK: encoding: [0x62,0x62,0x95,0x10,0x83,0x72,0x80]
+         vpmultishiftqb	-1024(%rdx){1to2}, %xmm29, %xmm30
+
+# CHECK: vpmultishiftqb	-1032(%rdx){1to2}, %xmm29, %xmm30
+# CHECK: encoding: [0x62,0x62,0x95,0x10,0x83,0xb2,0xf8,0xfb,0xff,0xff]
+         vpmultishiftqb	-1032(%rdx){1to2}, %xmm29, %xmm30
+
+# CHECK: vpmultishiftqb	%ymm28, %ymm29, %ymm30
+# CHECK: encoding: [0x62,0x02,0x95,0x20,0x83,0xf4]
+         vpmultishiftqb	%ymm28, %ymm29, %ymm30
+
+# CHECK: vpmultishiftqb	%ymm28, %ymm29, %ymm30 {%k7}
+# CHECK: encoding: [0x62,0x02,0x95,0x27,0x83,0xf4]
+         vpmultishiftqb	%ymm28, %ymm29, %ymm30 {%k7}
+
+# CHECK: vpmultishiftqb	%ymm28, %ymm29, %ymm30 {%k7} {z}
+# CHECK: encoding: [0x62,0x02,0x95,0xa7,0x83,0xf4]
+         vpmultishiftqb	%ymm28, %ymm29, %ymm30 {%k7} {z}
+
+# CHECK: vpmultishiftqb	(%rcx), %ymm29, %ymm30
+# CHECK: encoding: [0x62,0x62,0x95,0x20,0x83,0x31]
+         vpmultishiftqb	(%rcx), %ymm29, %ymm30
+
+# CHECK: vpmultishiftqb	291(%rax,%r14,8), %ymm29, %ymm30
+# CHECK: encoding: [0x62,0x22,0x95,0x20,0x83,0xb4,0xf0,0x23,0x01,0x00,0x00]
+         vpmultishiftqb	291(%rax,%r14,8), %ymm29, %ymm30
+
+# CHECK: vpmultishiftqb	(%rcx){1to4}, %ymm29, %ymm30
+# CHECK: encoding: [0x62,0x62,0x95,0x30,0x83,0x31]
+         vpmultishiftqb	(%rcx){1to4}, %ymm29, %ymm30
+
+# CHECK: vpmultishiftqb	4064(%rdx), %ymm29, %ymm30
+# CHECK: encoding: [0x62,0x62,0x95,0x20,0x83,0x72,0x7f]
+         vpmultishiftqb	4064(%rdx), %ymm29, %ymm30
+
+# CHECK: vpmultishiftqb	4096(%rdx), %ymm29, %ymm30
+# CHECK: encoding: [0x62,0x62,0x95,0x20,0x83,0xb2,0x00,0x10,0x00,0x00]
+         vpmultishiftqb	4096(%rdx), %ymm29, %ymm30
+
+# CHECK: vpmultishiftqb	-4096(%rdx), %ymm29, %ymm30
+# CHECK: encoding: [0x62,0x62,0x95,0x20,0x83,0x72,0x80]
+         vpmultishiftqb	-4096(%rdx), %ymm29, %ymm30
+
+# CHECK: vpmultishiftqb	-4128(%rdx), %ymm29, %ymm30
+# CHECK: encoding: [0x62,0x62,0x95,0x20,0x83,0xb2,0xe0,0xef,0xff,0xff]
+         vpmultishiftqb	-4128(%rdx), %ymm29, %ymm30
+
+# CHECK: vpmultishiftqb	1016(%rdx){1to4}, %ymm29, %ymm30
+# CHECK: encoding: [0x62,0x62,0x95,0x30,0x83,0x72,0x7f]
+         vpmultishiftqb	1016(%rdx){1to4}, %ymm29, %ymm30
+
+# CHECK: vpmultishiftqb	1024(%rdx){1to4}, %ymm29, %ymm30
+# CHECK: encoding: [0x62,0x62,0x95,0x30,0x83,0xb2,0x00,0x04,0x00,0x00]
+         vpmultishiftqb	1024(%rdx){1to4}, %ymm29, %ymm30
+
+# CHECK: vpmultishiftqb	-1024(%rdx){1to4}, %ymm29, %ymm30
+# CHECK: encoding: [0x62,0x62,0x95,0x30,0x83,0x72,0x80]
+         vpmultishiftqb	-1024(%rdx){1to4}, %ymm29, %ymm30
+
+# CHECK: vpmultishiftqb	-1032(%rdx){1to4}, %ymm29, %ymm30
+# CHECK: encoding: [0x62,0x62,0x95,0x30,0x83,0xb2,0xf8,0xfb,0xff,0xff]
+         vpmultishiftqb	-1032(%rdx){1to4}, %ymm29, %ymm30
+
+# CHECK: vpmultishiftqb	4660(%rax,%r14,8), %xmm29, %xmm30
+# CHECK: encoding: [0x62,0x22,0x95,0x00,0x83,0xb4,0xf0,0x34,0x12,0x00,0x00]
+         vpmultishiftqb	4660(%rax,%r14,8), %xmm29, %xmm30
+
+# CHECK: vpmultishiftqb	4660(%rax,%r14,8), %ymm29, %ymm30
+# CHECK: encoding: [0x62,0x22,0x95,0x20,0x83,0xb4,0xf0,0x34,0x12,0x00,0x00]
+         vpmultishiftqb	4660(%rax,%r14,8), %ymm29, %ymm30
+
+# CHECK: vpmultishiftqb	%zmm28, %zmm29, %zmm30
+# CHECK: encoding: [0x62,0x02,0x95,0x40,0x83,0xf4]
+         vpmultishiftqb	%zmm28, %zmm29, %zmm30
+
+# CHECK: vpmultishiftqb	%zmm28, %zmm29, %zmm30 {%k7}
+# CHECK: encoding: [0x62,0x02,0x95,0x47,0x83,0xf4]
+         vpmultishiftqb	%zmm28, %zmm29, %zmm30 {%k7}
+
+# CHECK: vpmultishiftqb	%zmm28, %zmm29, %zmm30 {%k7} {z}
+# CHECK: encoding: [0x62,0x02,0x95,0xc7,0x83,0xf4]
+         vpmultishiftqb	%zmm28, %zmm29, %zmm30 {%k7} {z}
+
+# CHECK: vpmultishiftqb	(%rcx), %zmm29, %zmm30
+# CHECK: encoding: [0x62,0x62,0x95,0x40,0x83,0x31]
+         vpmultishiftqb	(%rcx), %zmm29, %zmm30
+
+# CHECK: vpmultishiftqb	291(%rax,%r14,8), %zmm29, %zmm30
+# CHECK: encoding: [0x62,0x22,0x95,0x40,0x83,0xb4,0xf0,0x23,0x01,0x00,0x00]
+         vpmultishiftqb	291(%rax,%r14,8), %zmm29, %zmm30
+
+# CHECK: vpmultishiftqb	(%rcx){1to8}, %zmm29, %zmm30
+# CHECK: encoding: [0x62,0x62,0x95,0x50,0x83,0x31]
+         vpmultishiftqb	(%rcx){1to8}, %zmm29, %zmm30
+
+# CHECK: vpmultishiftqb	8128(%rdx), %zmm29, %zmm30
+# CHECK: encoding: [0x62,0x62,0x95,0x40,0x83,0x72,0x7f]
+         vpmultishiftqb	8128(%rdx), %zmm29, %zmm30
+
+# CHECK: vpmultishiftqb	8192(%rdx), %zmm29, %zmm30
+# CHECK: encoding: [0x62,0x62,0x95,0x40,0x83,0xb2,0x00,0x20,0x00,0x00]
+         vpmultishiftqb	8192(%rdx), %zmm29, %zmm30
+
+# CHECK: vpmultishiftqb	-8192(%rdx), %zmm29, %zmm30
+# CHECK: encoding: [0x62,0x62,0x95,0x40,0x83,0x72,0x80]
+         vpmultishiftqb	-8192(%rdx), %zmm29, %zmm30
+
+# CHECK: vpmultishiftqb	-8256(%rdx), %zmm29, %zmm30
+# CHECK: encoding: [0x62,0x62,0x95,0x40,0x83,0xb2,0xc0,0xdf,0xff,0xff]
+         vpmultishiftqb	-8256(%rdx), %zmm29, %zmm30
+
+# CHECK: vpmultishiftqb	1016(%rdx){1to8}, %zmm29, %zmm30
+# CHECK: encoding: [0x62,0x62,0x95,0x50,0x83,0x72,0x7f]
+         vpmultishiftqb	1016(%rdx){1to8}, %zmm29, %zmm30
+
+# CHECK: vpmultishiftqb	1024(%rdx){1to8}, %zmm29, %zmm30
+# CHECK: encoding: [0x62,0x62,0x95,0x50,0x83,0xb2,0x00,0x04,0x00,0x00]
+         vpmultishiftqb	1024(%rdx){1to8}, %zmm29, %zmm30
+
+# CHECK: vpmultishiftqb	-1024(%rdx){1to8}, %zmm29, %zmm30
+# CHECK: encoding: [0x62,0x62,0x95,0x50,0x83,0x72,0x80]
+         vpmultishiftqb	-1024(%rdx){1to8}, %zmm29, %zmm30
+
+# CHECK: vpmultishiftqb	-1032(%rdx){1to8}, %zmm29, %zmm30
+# CHECK: encoding: [0x62,0x62,0x95,0x50,0x83,0xb2,0xf8,0xfb,0xff,0xff]
+         vpmultishiftqb	-1032(%rdx){1to8}, %zmm29, %zmm30
+
+# CHECK: vpmultishiftqb	4660(%rax,%r14,8), %zmm29, %zmm30
+# CHECK: encoding: [0x62,0x22,0x95,0x40,0x83,0xb4,0xf0,0x34,0x12,0x00,0x00]
+         vpmultishiftqb	4660(%rax,%r14,8), %zmm29, %zmm30

diff  --git a/llvm/test/MC/X86/avx512vbmi-encoding.s b/llvm/test/MC/X86/avx512vbmi-encoding.s
deleted file mode 100644
index bf11e1999d257e..00000000000000
--- a/llvm/test/MC/X86/avx512vbmi-encoding.s
+++ /dev/null
@@ -1,543 +0,0 @@
-// RUN: llvm-mc -triple x86_64-unknown-unknown --show-encoding %s | FileCheck %s
-
-     vpermb %xmm28, %xmm29, %xmm30 {%k7}
-//CHECK: vpermb %xmm28, %xmm29, %xmm30 {%k7}
-//CHECK: encoding: [0x62,0x02,0x15,0x07,0x8d,0xf4]
-
-     vpermb %xmm28, %xmm29, %xmm30 {%k7} {z}
-//CHECK: vpermb %xmm28, %xmm29, %xmm30 {%k7} {z}
-//CHECK: encoding: [0x62,0x02,0x15,0x87,0x8d,0xf4]
-
-     vpermb (%rcx), %xmm29, %xmm30
-//CHECK: vpermb (%rcx), %xmm29, %xmm30
-//CHECK: encoding: [0x62,0x62,0x15,0x00,0x8d,0x31]
-
-     vpermb 0x123(%rax,%r14,8), %xmm29, %xmm30
-//CHECK: vpermb 291(%rax,%r14,8), %xmm29, %xmm30
-//CHECK: encoding: [0x62,0x22,0x15,0x00,0x8d,0xb4,0xf0,0x23,0x01,0x00,0x00]
-
-     vpermb 0x7f0(%rdx), %xmm29, %xmm30
-//CHECK: vpermb 2032(%rdx), %xmm29, %xmm30
-//CHECK: encoding: [0x62,0x62,0x15,0x00,0x8d,0x72,0x7f]
-
-     vpermb 0x800(%rdx), %xmm29, %xmm30
-//CHECK: vpermb 2048(%rdx), %xmm29, %xmm30
-//CHECK: encoding: [0x62,0x62,0x15,0x00,0x8d,0xb2,0x00,0x08,0x00,0x00]
-
-     vpermb -0x800(%rdx), %xmm29, %xmm30
-//CHECK: vpermb -2048(%rdx), %xmm29, %xmm30
-//CHECK: encoding: [0x62,0x62,0x15,0x00,0x8d,0x72,0x80]
-
-     vpermb -0x810(%rdx), %xmm29, %xmm30
-//CHECK: vpermb -2064(%rdx), %xmm29, %xmm30
-//CHECK: encoding: [0x62,0x62,0x15,0x00,0x8d,0xb2,0xf0,0xf7,0xff,0xff]
-
-     vpermb %ymm28, %ymm29, %ymm30
-//CHECK: vpermb %ymm28, %ymm29, %ymm30
-//CHECK: encoding: [0x62,0x02,0x15,0x20,0x8d,0xf4]
-
-     vpermb %ymm28, %ymm29, %ymm30 {%k7}
-//CHECK: vpermb %ymm28, %ymm29, %ymm30 {%k7}
-//CHECK: encoding: [0x62,0x02,0x15,0x27,0x8d,0xf4]
-
-     vpermb %ymm28, %ymm29, %ymm30 {%k7} {z}
-//CHECK: vpermb %ymm28, %ymm29, %ymm30 {%k7} {z}
-//CHECK: encoding: [0x62,0x02,0x15,0xa7,0x8d,0xf4]
-
-     vpermb (%rcx), %ymm29, %ymm30
-//CHECK: vpermb (%rcx), %ymm29, %ymm30
-//CHECK: encoding: [0x62,0x62,0x15,0x20,0x8d,0x31]
-
-     vpermb 0x123(%rax,%r14,8), %ymm29, %ymm30
-//CHECK: vpermb 291(%rax,%r14,8), %ymm29, %ymm30
-//CHECK: encoding: [0x62,0x22,0x15,0x20,0x8d,0xb4,0xf0,0x23,0x01,0x00,0x00]
-
-     vpermb 0xfe0(%rdx), %ymm29, %ymm30
-//CHECK: vpermb 4064(%rdx), %ymm29, %ymm30
-//CHECK: encoding: [0x62,0x62,0x15,0x20,0x8d,0x72,0x7f]
-
-     vpermb 0x1000(%rdx), %ymm29, %ymm30
-//CHECK: vpermb 4096(%rdx), %ymm29, %ymm30
-//CHECK: encoding: [0x62,0x62,0x15,0x20,0x8d,0xb2,0x00,0x10,0x00,0x00]
-
-     vpermb -0x1000(%rdx), %ymm29, %ymm30
-//CHECK: vpermb -4096(%rdx), %ymm29, %ymm30
-//CHECK: encoding: [0x62,0x62,0x15,0x20,0x8d,0x72,0x80]
-
-     vpermb -0x1020(%rdx), %ymm29, %ymm30
-//CHECK: vpermb -4128(%rdx), %ymm29, %ymm30
-//CHECK: encoding: [0x62,0x62,0x15,0x20,0x8d,0xb2,0xe0,0xef,0xff,0xff]
-
-     vpermb %xmm28, %xmm29, %xmm30
-//CHECK: vpermb %xmm28, %xmm29, %xmm30
-//CHECK: encoding: [0x62,0x02,0x15,0x00,0x8d,0xf4]
-
-     vpermb 0x1234(%rax,%r14,8), %xmm29, %xmm30
-//CHECK: vpermb 4660(%rax,%r14,8), %xmm29, %xmm30
-//CHECK: encoding: [0x62,0x22,0x15,0x00,0x8d,0xb4,0xf0,0x34,0x12,0x00,0x00]
-
-     vpermb 0x1234(%rax,%r14,8), %ymm29, %ymm30
-//CHECK: vpermb 4660(%rax,%r14,8), %ymm29, %ymm30
-//CHECK: encoding: [0x62,0x22,0x15,0x20,0x8d,0xb4,0xf0,0x34,0x12,0x00,0x00]
-
-     vpermb %zmm28, %zmm29, %zmm30
-//CHECK: vpermb %zmm28, %zmm29, %zmm30
-//CHECK: encoding: [0x62,0x02,0x15,0x40,0x8d,0xf4]
-
-     vpermb %zmm28, %zmm29, %zmm30 {%k7}
-//CHECK: vpermb %zmm28, %zmm29, %zmm30 {%k7}
-//CHECK: encoding: [0x62,0x02,0x15,0x47,0x8d,0xf4]
-
-     vpermb %zmm28, %zmm29, %zmm30 {%k7} {z}
-//CHECK: vpermb %zmm28, %zmm29, %zmm30 {%k7} {z}
-//CHECK: encoding: [0x62,0x02,0x15,0xc7,0x8d,0xf4]
-
-     vpermb (%rcx), %zmm29, %zmm30
-//CHECK: vpermb (%rcx), %zmm29, %zmm30
-//CHECK: encoding: [0x62,0x62,0x15,0x40,0x8d,0x31]
-
-     vpermb 0x123(%rax,%r14,8), %zmm29, %zmm30
-//CHECK: vpermb 291(%rax,%r14,8), %zmm29, %zmm30
-//CHECK: encoding: [0x62,0x22,0x15,0x40,0x8d,0xb4,0xf0,0x23,0x01,0x00,0x00]
-
-     vpermb 0x1fc0(%rdx), %zmm29, %zmm30
-//CHECK: vpermb 8128(%rdx), %zmm29, %zmm30
-//CHECK: encoding: [0x62,0x62,0x15,0x40,0x8d,0x72,0x7f]
-
-     vpermb 0x2000(%rdx), %zmm29, %zmm30
-//CHECK: vpermb 8192(%rdx), %zmm29, %zmm30
-//CHECK: encoding: [0x62,0x62,0x15,0x40,0x8d,0xb2,0x00,0x20,0x00,0x00]
-
-     vpermb -0x2000(%rdx), %zmm29, %zmm30
-//CHECK: vpermb -8192(%rdx), %zmm29, %zmm30
-//CHECK: encoding: [0x62,0x62,0x15,0x40,0x8d,0x72,0x80]
-
-     vpermb -0x2040(%rdx), %zmm29, %zmm30
-//CHECK: vpermb -8256(%rdx), %zmm29, %zmm30
-//CHECK: encoding: [0x62,0x62,0x15,0x40,0x8d,0xb2,0xc0,0xdf,0xff,0xff]
-
-     vpermb 0x1234(%rax,%r14,8), %zmm29, %zmm30
-//CHECK: vpermb 4660(%rax,%r14,8), %zmm29, %zmm30
-//CHECK: encoding: [0x62,0x22,0x15,0x40,0x8d,0xb4,0xf0,0x34,0x12,0x00,0x00]
-
-     vpermt2b %xmm28, %xmm29, %xmm30
-//CHECK: vpermt2b %xmm28, %xmm29, %xmm30
-//CHECK: encoding: [0x62,0x02,0x15,0x00,0x7d,0xf4]
-
-     vpermt2b %xmm28, %xmm29, %xmm30 {%k7}
-//CHECK: vpermt2b %xmm28, %xmm29, %xmm30 {%k7}
-//CHECK: encoding: [0x62,0x02,0x15,0x07,0x7d,0xf4]
-
-     vpermt2b %xmm28, %xmm29, %xmm30 {%k7} {z}
-//CHECK: vpermt2b %xmm28, %xmm29, %xmm30 {%k7} {z}
-//CHECK: encoding: [0x62,0x02,0x15,0x87,0x7d,0xf4]
-
-     vpermt2b (%rcx), %xmm29, %xmm30
-//CHECK: vpermt2b (%rcx), %xmm29, %xmm30
-//CHECK: encoding: [0x62,0x62,0x15,0x00,0x7d,0x31]
-
-     vpermt2b 0x123(%rax,%r14,8), %xmm29, %xmm30
-//CHECK: vpermt2b 291(%rax,%r14,8), %xmm29, %xmm30
-//CHECK: encoding: [0x62,0x22,0x15,0x00,0x7d,0xb4,0xf0,0x23,0x01,0x00,0x00]
-
-     vpermt2b 0x7f0(%rdx), %xmm29, %xmm30
-//CHECK: vpermt2b 2032(%rdx), %xmm29, %xmm30
-//CHECK: encoding: [0x62,0x62,0x15,0x00,0x7d,0x72,0x7f]
-
-     vpermt2b 0x800(%rdx), %xmm29, %xmm30
-//CHECK: vpermt2b 2048(%rdx), %xmm29, %xmm30
-//CHECK: encoding: [0x62,0x62,0x15,0x00,0x7d,0xb2,0x00,0x08,0x00,0x00]
-
-     vpermt2b -0x800(%rdx), %xmm29, %xmm30
-//CHECK: vpermt2b -2048(%rdx), %xmm29, %xmm30
-//CHECK: encoding: [0x62,0x62,0x15,0x00,0x7d,0x72,0x80]
-
-     vpermt2b -0x810(%rdx), %xmm29, %xmm30
-//CHECK: vpermt2b -2064(%rdx), %xmm29, %xmm30
-//CHECK: encoding: [0x62,0x62,0x15,0x00,0x7d,0xb2,0xf0,0xf7,0xff,0xff]
-
-     vpermt2b %ymm28, %ymm29, %ymm30
-//CHECK: vpermt2b %ymm28, %ymm29, %ymm30
-//CHECK: encoding: [0x62,0x02,0x15,0x20,0x7d,0xf4]
-
-     vpermt2b %ymm28, %ymm29, %ymm30 {%k7}
-//CHECK: vpermt2b %ymm28, %ymm29, %ymm30 {%k7}
-//CHECK: encoding: [0x62,0x02,0x15,0x27,0x7d,0xf4]
-
-     vpermt2b %ymm28, %ymm29, %ymm30 {%k7} {z}
-//CHECK: vpermt2b %ymm28, %ymm29, %ymm30 {%k7} {z}
-//CHECK: encoding: [0x62,0x02,0x15,0xa7,0x7d,0xf4]
-
-     vpermt2b (%rcx), %ymm29, %ymm30
-//CHECK: vpermt2b (%rcx), %ymm29, %ymm30
-//CHECK: encoding: [0x62,0x62,0x15,0x20,0x7d,0x31]
-
-     vpermt2b 0x123(%rax,%r14,8), %ymm29, %ymm30
-//CHECK: vpermt2b 291(%rax,%r14,8), %ymm29, %ymm30
-//CHECK: encoding: [0x62,0x22,0x15,0x20,0x7d,0xb4,0xf0,0x23,0x01,0x00,0x00]
-
-     vpermt2b 0xfe0(%rdx), %ymm29, %ymm30
-//CHECK: vpermt2b 4064(%rdx), %ymm29, %ymm30
-//CHECK: encoding: [0x62,0x62,0x15,0x20,0x7d,0x72,0x7f]
-
-     vpermt2b 0x1000(%rdx), %ymm29, %ymm30
-//CHECK: vpermt2b 4096(%rdx), %ymm29, %ymm30
-//CHECK: encoding: [0x62,0x62,0x15,0x20,0x7d,0xb2,0x00,0x10,0x00,0x00]
-
-     vpermt2b -0x1000(%rdx), %ymm29, %ymm30
-//CHECK: vpermt2b -4096(%rdx), %ymm29, %ymm30
-//CHECK: encoding: [0x62,0x62,0x15,0x20,0x7d,0x72,0x80]
-
-     vpermt2b -0x1020(%rdx), %ymm29, %ymm30
-//CHECK: vpermt2b -4128(%rdx), %ymm29, %ymm30
-//CHECK: encoding: [0x62,0x62,0x15,0x20,0x7d,0xb2,0xe0,0xef,0xff,0xff]
-
-     vpermt2b 0x1234(%rax,%r14,8), %xmm29, %xmm30
-//CHECK: vpermt2b 4660(%rax,%r14,8), %xmm29, %xmm30
-//CHECK: encoding: [0x62,0x22,0x15,0x00,0x7d,0xb4,0xf0,0x34,0x12,0x00,0x00]
-
-     vpermt2b 0x1234(%rax,%r14,8), %ymm29, %ymm30
-//CHECK: vpermt2b 4660(%rax,%r14,8), %ymm29, %ymm30
-//CHECK: encoding: [0x62,0x22,0x15,0x20,0x7d,0xb4,0xf0,0x34,0x12,0x00,0x00]
-
-     vpermt2b %zmm28, %zmm29, %zmm30
-//CHECK: vpermt2b %zmm28, %zmm29, %zmm30
-//CHECK: encoding: [0x62,0x02,0x15,0x40,0x7d,0xf4]
-
-     vpermt2b %zmm28, %zmm29, %zmm30 {%k7}
-//CHECK: vpermt2b %zmm28, %zmm29, %zmm30 {%k7}
-//CHECK: encoding: [0x62,0x02,0x15,0x47,0x7d,0xf4]
-
-     vpermt2b %zmm28, %zmm29, %zmm30 {%k7} {z}
-//CHECK: vpermt2b %zmm28, %zmm29, %zmm30 {%k7} {z}
-//CHECK: encoding: [0x62,0x02,0x15,0xc7,0x7d,0xf4]
-
-     vpermt2b (%rcx), %zmm29, %zmm30
-//CHECK: vpermt2b (%rcx), %zmm29, %zmm30
-//CHECK: encoding: [0x62,0x62,0x15,0x40,0x7d,0x31]
-
-     vpermt2b 0x123(%rax,%r14,8), %zmm29, %zmm30
-//CHECK: vpermt2b 291(%rax,%r14,8), %zmm29, %zmm30
-//CHECK: encoding: [0x62,0x22,0x15,0x40,0x7d,0xb4,0xf0,0x23,0x01,0x00,0x00]
-
-     vpermt2b 0x1fc0(%rdx), %zmm29, %zmm30
-//CHECK: vpermt2b 8128(%rdx), %zmm29, %zmm30
-//CHECK: encoding: [0x62,0x62,0x15,0x40,0x7d,0x72,0x7f]
-
-     vpermt2b 0x2000(%rdx), %zmm29, %zmm30
-//CHECK: vpermt2b 8192(%rdx), %zmm29, %zmm30
-//CHECK: encoding: [0x62,0x62,0x15,0x40,0x7d,0xb2,0x00,0x20,0x00,0x00]
-
-     vpermt2b -0x2000(%rdx), %zmm29, %zmm30
-//CHECK: vpermt2b -8192(%rdx), %zmm29, %zmm30
-//CHECK: encoding: [0x62,0x62,0x15,0x40,0x7d,0x72,0x80]
-
-     vpermt2b -0x2040(%rdx), %zmm29, %zmm30
-//CHECK: vpermt2b -8256(%rdx), %zmm29, %zmm30
-//CHECK: encoding: [0x62,0x62,0x15,0x40,0x7d,0xb2,0xc0,0xdf,0xff,0xff]
-
-     vpermt2b 0x1234(%rax,%r14,8), %zmm29, %zmm30
-//CHECK: vpermt2b 4660(%rax,%r14,8), %zmm29, %zmm30
-//CHECK: encoding: [0x62,0x22,0x15,0x40,0x7d,0xb4,0xf0,0x34,0x12,0x00,0x00]
-
-     vpermi2b %xmm28, %xmm29, %xmm30
-//CHECK: vpermi2b %xmm28, %xmm29, %xmm30
-//CHECK: encoding: [0x62,0x02,0x15,0x00,0x75,0xf4]
-
-     vpermi2b %xmm28, %xmm29, %xmm30 {%k7}
-//CHECK: vpermi2b %xmm28, %xmm29, %xmm30 {%k7}
-//CHECK: encoding: [0x62,0x02,0x15,0x07,0x75,0xf4]
-
-     vpermi2b %xmm28, %xmm29, %xmm30 {%k7} {z}
-//CHECK: vpermi2b %xmm28, %xmm29, %xmm30 {%k7} {z}
-//CHECK: encoding: [0x62,0x02,0x15,0x87,0x75,0xf4]
-
-     vpermi2b (%rcx), %xmm29, %xmm30
-//CHECK: vpermi2b (%rcx), %xmm29, %xmm30
-//CHECK: encoding: [0x62,0x62,0x15,0x00,0x75,0x31]
-
-     vpermi2b 0x123(%rax,%r14,8), %xmm29, %xmm30
-//CHECK: vpermi2b 291(%rax,%r14,8), %xmm29, %xmm30
-//CHECK: encoding: [0x62,0x22,0x15,0x00,0x75,0xb4,0xf0,0x23,0x01,0x00,0x00]
-
-     vpermi2b 0x7f0(%rdx), %xmm29, %xmm30
-//CHECK: vpermi2b 2032(%rdx), %xmm29, %xmm30
-//CHECK: encoding: [0x62,0x62,0x15,0x00,0x75,0x72,0x7f]
-
-     vpermi2b 0x800(%rdx), %xmm29, %xmm30
-//CHECK: vpermi2b 2048(%rdx), %xmm29, %xmm30
-//CHECK: encoding: [0x62,0x62,0x15,0x00,0x75,0xb2,0x00,0x08,0x00,0x00]
-
-     vpermi2b -0x800(%rdx), %xmm29, %xmm30
-//CHECK: vpermi2b -2048(%rdx), %xmm29, %xmm30
-//CHECK: encoding: [0x62,0x62,0x15,0x00,0x75,0x72,0x80]
-
-     vpermi2b -0x810(%rdx), %xmm29, %xmm30
-//CHECK: vpermi2b -2064(%rdx), %xmm29, %xmm30
-//CHECK: encoding: [0x62,0x62,0x15,0x00,0x75,0xb2,0xf0,0xf7,0xff,0xff]
-
-     vpermi2b %ymm28, %ymm29, %ymm30
-//CHECK: vpermi2b %ymm28, %ymm29, %ymm30
-//CHECK: encoding: [0x62,0x02,0x15,0x20,0x75,0xf4]
-
-     vpermi2b %ymm28, %ymm29, %ymm30 {%k7}
-//CHECK: vpermi2b %ymm28, %ymm29, %ymm30 {%k7}
-//CHECK: encoding: [0x62,0x02,0x15,0x27,0x75,0xf4]
-
-     vpermi2b %ymm28, %ymm29, %ymm30 {%k7} {z}
-//CHECK: vpermi2b %ymm28, %ymm29, %ymm30 {%k7} {z}
-//CHECK: encoding: [0x62,0x02,0x15,0xa7,0x75,0xf4]
-
-     vpermi2b (%rcx), %ymm29, %ymm30
-//CHECK: vpermi2b (%rcx), %ymm29, %ymm30
-//CHECK: encoding: [0x62,0x62,0x15,0x20,0x75,0x31]
-
-     vpermi2b 0x123(%rax,%r14,8), %ymm29, %ymm30
-//CHECK: vpermi2b 291(%rax,%r14,8), %ymm29, %ymm30
-//CHECK: encoding: [0x62,0x22,0x15,0x20,0x75,0xb4,0xf0,0x23,0x01,0x00,0x00]
-
-     vpermi2b 0xfe0(%rdx), %ymm29, %ymm30
-//CHECK: vpermi2b 4064(%rdx), %ymm29, %ymm30
-//CHECK: encoding: [0x62,0x62,0x15,0x20,0x75,0x72,0x7f]
-
-     vpermi2b 0x1000(%rdx), %ymm29, %ymm30
-//CHECK: vpermi2b 4096(%rdx), %ymm29, %ymm30
-//CHECK: encoding: [0x62,0x62,0x15,0x20,0x75,0xb2,0x00,0x10,0x00,0x00]
-
-     vpermi2b -0x1000(%rdx), %ymm29, %ymm30
-//CHECK: vpermi2b -4096(%rdx), %ymm29, %ymm30
-//CHECK: encoding: [0x62,0x62,0x15,0x20,0x75,0x72,0x80]
-
-     vpermi2b -0x1020(%rdx), %ymm29, %ymm30
-//CHECK: vpermi2b -4128(%rdx), %ymm29, %ymm30
-//CHECK: encoding: [0x62,0x62,0x15,0x20,0x75,0xb2,0xe0,0xef,0xff,0xff]
-
-     vpermi2b 0x1234(%rax,%r14,8), %xmm29, %xmm30
-//CHECK: vpermi2b 4660(%rax,%r14,8), %xmm29, %xmm30
-//CHECK: encoding: [0x62,0x22,0x15,0x00,0x75,0xb4,0xf0,0x34,0x12,0x00,0x00]
-
-     vpermi2b 0x1234(%rax,%r14,8), %ymm29, %ymm30
-//CHECK: vpermi2b 4660(%rax,%r14,8), %ymm29, %ymm30
-//CHECK: encoding: [0x62,0x22,0x15,0x20,0x75,0xb4,0xf0,0x34,0x12,0x00,0x00]
-
-     vpermi2b %zmm28, %zmm29, %zmm30
-//CHECK: vpermi2b %zmm28, %zmm29, %zmm30
-//CHECK: encoding: [0x62,0x02,0x15,0x40,0x75,0xf4]
-
-     vpermi2b %zmm28, %zmm29, %zmm30 {%k7}
-//CHECK: vpermi2b %zmm28, %zmm29, %zmm30 {%k7}
-//CHECK: encoding: [0x62,0x02,0x15,0x47,0x75,0xf4]
-
-     vpermi2b %zmm28, %zmm29, %zmm30 {%k7} {z}
-//CHECK: vpermi2b %zmm28, %zmm29, %zmm30 {%k7} {z}
-//CHECK: encoding: [0x62,0x02,0x15,0xc7,0x75,0xf4]
-
-     vpermi2b (%rcx), %zmm29, %zmm30
-//CHECK: vpermi2b (%rcx), %zmm29, %zmm30
-//CHECK: encoding: [0x62,0x62,0x15,0x40,0x75,0x31]
-
-     vpermi2b 0x123(%rax,%r14,8), %zmm29, %zmm30
-//CHECK: vpermi2b 291(%rax,%r14,8), %zmm29, %zmm30
-//CHECK: encoding: [0x62,0x22,0x15,0x40,0x75,0xb4,0xf0,0x23,0x01,0x00,0x00]
-
-     vpermi2b 0x1fc0(%rdx), %zmm29, %zmm30
-//CHECK: vpermi2b 8128(%rdx), %zmm29, %zmm30
-//CHECK: encoding: [0x62,0x62,0x15,0x40,0x75,0x72,0x7f]
-
-     vpermi2b 0x2000(%rdx), %zmm29, %zmm30
-//CHECK: vpermi2b 8192(%rdx), %zmm29, %zmm30
-//CHECK: encoding: [0x62,0x62,0x15,0x40,0x75,0xb2,0x00,0x20,0x00,0x00]
-
-     vpermi2b -0x2000(%rdx), %zmm29, %zmm30
-//CHECK: vpermi2b -8192(%rdx), %zmm29, %zmm30
-//CHECK: encoding: [0x62,0x62,0x15,0x40,0x75,0x72,0x80]
-
-     vpermi2b -0x2040(%rdx), %zmm29, %zmm30
-//CHECK: vpermi2b -8256(%rdx), %zmm29, %zmm30
-//CHECK: encoding: [0x62,0x62,0x15,0x40,0x75,0xb2,0xc0,0xdf,0xff,0xff]
-
-     vpermi2b 0x1234(%rax,%r14,8), %zmm29, %zmm30
-//CHECK: vpermi2b 4660(%rax,%r14,8), %zmm29, %zmm30
-//CHECK: encoding: [0x62,0x22,0x15,0x40,0x75,0xb4,0xf0,0x34,0x12,0x00,0x00]
-
-  vpmultishiftqb %xmm28, %xmm29, %xmm30
-//CHECK: vpmultishiftqb %xmm28, %xmm29, %xmm30
-//CHECK: encoding: [0x62,0x02,0x95,0x00,0x83,0xf4]
-
-  vpmultishiftqb %xmm28, %xmm29, %xmm30 {%k7}
-//CHECK: vpmultishiftqb %xmm28, %xmm29, %xmm30 {%k7}
-//CHECK: encoding: [0x62,0x02,0x95,0x07,0x83,0xf4]
-
-  vpmultishiftqb %xmm28, %xmm29, %xmm30 {%k7} {z}
-//CHECK: vpmultishiftqb %xmm28, %xmm29, %xmm30 {%k7} {z}
-//CHECK: encoding: [0x62,0x02,0x95,0x87,0x83,0xf4]
-
-  vpmultishiftqb (%rcx), %xmm29, %xmm30
-//CHECK: vpmultishiftqb (%rcx), %xmm29, %xmm30
-//CHECK: encoding: [0x62,0x62,0x95,0x00,0x83,0x31]
-
-  vpmultishiftqb 0x123(%rax,%r14,8), %xmm29, %xmm30
-//CHECK: vpmultishiftqb 291(%rax,%r14,8), %xmm29, %xmm30
-//CHECK: encoding: [0x62,0x22,0x95,0x00,0x83,0xb4,0xf0,0x23,0x01,0x00,0x00]
-
-  vpmultishiftqb (%rcx){1to2}, %xmm29, %xmm30
-//CHECK: vpmultishiftqb (%rcx){1to2}, %xmm29, %xmm30
-
-//CHECK: encoding: [0x62,0x62,0x95,0x10,0x83,0x31]
-
-  vpmultishiftqb 0x7f0(%rdx), %xmm29, %xmm30
-//CHECK: vpmultishiftqb 2032(%rdx), %xmm29, %xmm30
-//CHECK: encoding: [0x62,0x62,0x95,0x00,0x83,0x72,0x7f]
-
-  vpmultishiftqb 0x800(%rdx), %xmm29, %xmm30
-//CHECK: vpmultishiftqb 2048(%rdx), %xmm29, %xmm30
-//CHECK: encoding: [0x62,0x62,0x95,0x00,0x83,0xb2,0x00,0x08,0x00,0x00]
-
-  vpmultishiftqb -0x800(%rdx), %xmm29, %xmm30
-//CHECK: vpmultishiftqb -2048(%rdx), %xmm29, %xmm30
-//CHECK: encoding: [0x62,0x62,0x95,0x00,0x83,0x72,0x80]
-
-  vpmultishiftqb -0x810(%rdx), %xmm29, %xmm30
-//CHECK: vpmultishiftqb -2064(%rdx), %xmm29, %xmm30
-//CHECK: encoding: [0x62,0x62,0x95,0x00,0x83,0xb2,0xf0,0xf7,0xff,0xff]
-
-  vpmultishiftqb 0x3f8(%rdx){1to2}, %xmm29, %xmm30
-//CHECK: vpmultishiftqb 1016(%rdx){1to2}, %xmm29, %xmm30
-//CHECK: encoding: [0x62,0x62,0x95,0x10,0x83,0x72,0x7f]
-
-  vpmultishiftqb 0x400(%rdx){1to2}, %xmm29, %xmm30
-//CHECK: vpmultishiftqb 1024(%rdx){1to2}, %xmm29, %xmm30
-//CHECK: encoding: [0x62,0x62,0x95,0x10,0x83,0xb2,0x00,0x04,0x00,0x00]
-
-  vpmultishiftqb -0x400(%rdx){1to2}, %xmm29, %xmm30
-//CHECK: vpmultishiftqb -1024(%rdx){1to2}, %xmm29, %xmm30
-//CHECK: encoding: [0x62,0x62,0x95,0x10,0x83,0x72,0x80]
-
-  vpmultishiftqb -0x408(%rdx){1to2}, %xmm29, %xmm30
-//CHECK: vpmultishiftqb -1032(%rdx){1to2}, %xmm29, %xmm30
-//CHECK: encoding: [0x62,0x62,0x95,0x10,0x83,0xb2,0xf8,0xfb,0xff,0xff]
-
-  vpmultishiftqb %ymm28, %ymm29, %ymm30
-//CHECK: vpmultishiftqb %ymm28, %ymm29, %ymm30
-//CHECK: encoding: [0x62,0x02,0x95,0x20,0x83,0xf4]
-
-  vpmultishiftqb %ymm28, %ymm29, %ymm30 {%k7}
-//CHECK: vpmultishiftqb %ymm28, %ymm29, %ymm30 {%k7}
-//CHECK: encoding: [0x62,0x02,0x95,0x27,0x83,0xf4]
-
-  vpmultishiftqb %ymm28, %ymm29, %ymm30 {%k7} {z}
-//CHECK: vpmultishiftqb %ymm28, %ymm29, %ymm30 {%k7} {z}
-//CHECK: encoding: [0x62,0x02,0x95,0xa7,0x83,0xf4]
-
-  vpmultishiftqb (%rcx), %ymm29, %ymm30
-//CHECK: vpmultishiftqb (%rcx), %ymm29, %ymm30
-//CHECK: encoding: [0x62,0x62,0x95,0x20,0x83,0x31]
-
-  vpmultishiftqb 0x123(%rax,%r14,8), %ymm29, %ymm30
-//CHECK: vpmultishiftqb 291(%rax,%r14,8), %ymm29, %ymm30
-//CHECK: encoding: [0x62,0x22,0x95,0x20,0x83,0xb4,0xf0,0x23,0x01,0x00,0x00]
-
-  vpmultishiftqb (%rcx){1to4}, %ymm29, %ymm30
-//CHECK: vpmultishiftqb (%rcx){1to4}, %ymm29, %ymm30
-//CHECK: encoding: [0x62,0x62,0x95,0x30,0x83,0x31]
-
-  vpmultishiftqb 0xfe0(%rdx), %ymm29, %ymm30
-//CHECK: vpmultishiftqb 4064(%rdx), %ymm29, %ymm30
-//CHECK: encoding: [0x62,0x62,0x95,0x20,0x83,0x72,0x7f]
-
-  vpmultishiftqb 0x1000(%rdx), %ymm29, %ymm30
-//CHECK: vpmultishiftqb 4096(%rdx), %ymm29, %ymm30
-//CHECK: encoding: [0x62,0x62,0x95,0x20,0x83,0xb2,0x00,0x10,0x00,0x00]
-
-  vpmultishiftqb -0x1000(%rdx), %ymm29, %ymm30
-//CHECK: vpmultishiftqb -4096(%rdx), %ymm29, %ymm30
-//CHECK: encoding: [0x62,0x62,0x95,0x20,0x83,0x72,0x80]
-
-  vpmultishiftqb -0x1020(%rdx), %ymm29, %ymm30
-//CHECK: vpmultishiftqb -4128(%rdx), %ymm29, %ymm30
-//CHECK: encoding: [0x62,0x62,0x95,0x20,0x83,0xb2,0xe0,0xef,0xff,0xff]
-
-  vpmultishiftqb 0x3f8(%rdx){1to4}, %ymm29, %ymm30
-//CHECK: vpmultishiftqb 1016(%rdx){1to4}, %ymm29, %ymm30
-//CHECK: encoding: [0x62,0x62,0x95,0x30,0x83,0x72,0x7f]
-
-  vpmultishiftqb 0x400(%rdx){1to4}, %ymm29, %ymm30
-//CHECK: vpmultishiftqb 1024(%rdx){1to4}, %ymm29, %ymm30
-//CHECK: encoding: [0x62,0x62,0x95,0x30,0x83,0xb2,0x00,0x04,0x00,0x00]
-
-  vpmultishiftqb -0x400(%rdx){1to4}, %ymm29, %ymm30
-//CHECK: vpmultishiftqb -1024(%rdx){1to4}, %ymm29, %ymm30
-//CHECK: encoding: [0x62,0x62,0x95,0x30,0x83,0x72,0x80]
-
-  vpmultishiftqb -0x408(%rdx){1to4}, %ymm29, %ymm30
-//CHECK: vpmultishiftqb -1032(%rdx){1to4}, %ymm29, %ymm30
-//CHECK: encoding: [0x62,0x62,0x95,0x30,0x83,0xb2,0xf8,0xfb,0xff,0xff]
-
-  vpmultishiftqb 0x1234(%rax,%r14,8), %xmm29, %xmm30
-//CHECK: vpmultishiftqb 4660(%rax,%r14,8), %xmm29, %xmm30
-//CHECK: encoding: [0x62,0x22,0x95,0x00,0x83,0xb4,0xf0,0x34,0x12,0x00,0x00]
-
-  vpmultishiftqb 0x1234(%rax,%r14,8), %ymm29, %ymm30
-//CHECK: vpmultishiftqb 4660(%rax,%r14,8), %ymm29, %ymm30
-//CHECK: encoding: [0x62,0x22,0x95,0x20,0x83,0xb4,0xf0,0x34,0x12,0x00,0x00]
-
-  vpmultishiftqb %zmm28, %zmm29, %zmm30
-//CHECK: vpmultishiftqb %zmm28, %zmm29, %zmm30
-//CHECK: encoding: [0x62,0x02,0x95,0x40,0x83,0xf4]
-
-  vpmultishiftqb %zmm28, %zmm29, %zmm30 {%k7}
-//CHECK: vpmultishiftqb %zmm28, %zmm29, %zmm30 {%k7}
-//CHECK: encoding: [0x62,0x02,0x95,0x47,0x83,0xf4]
-
-  vpmultishiftqb %zmm28, %zmm29, %zmm30 {%k7} {z}
-//CHECK: vpmultishiftqb %zmm28, %zmm29, %zmm30 {%k7} {z}
-//CHECK: encoding: [0x62,0x02,0x95,0xc7,0x83,0xf4]
-
-  vpmultishiftqb (%rcx), %zmm29, %zmm30
-//CHECK: vpmultishiftqb (%rcx), %zmm29, %zmm30
-//CHECK: encoding: [0x62,0x62,0x95,0x40,0x83,0x31]
-
-  vpmultishiftqb 0x123(%rax,%r14,8), %zmm29, %zmm30
-//CHECK: vpmultishiftqb 291(%rax,%r14,8), %zmm29, %zmm30
-//CHECK: encoding: [0x62,0x22,0x95,0x40,0x83,0xb4,0xf0,0x23,0x01,0x00,0x00]
-
-  vpmultishiftqb (%rcx){1to8}, %zmm29, %zmm30
-//CHECK: vpmultishiftqb (%rcx){1to8}, %zmm29, %zmm30
-//CHECK: encoding: [0x62,0x62,0x95,0x50,0x83,0x31]
-
-  vpmultishiftqb 0x1fc0(%rdx), %zmm29, %zmm30
-//CHECK: vpmultishiftqb 8128(%rdx), %zmm29, %zmm30
-//CHECK: encoding: [0x62,0x62,0x95,0x40,0x83,0x72,0x7f]
-
-  vpmultishiftqb 0x2000(%rdx), %zmm29, %zmm30
-//CHECK: vpmultishiftqb 8192(%rdx), %zmm29, %zmm30
-//CHECK: encoding: [0x62,0x62,0x95,0x40,0x83,0xb2,0x00,0x20,0x00,0x00]
-
-  vpmultishiftqb -0x2000(%rdx), %zmm29, %zmm30
-//CHECK: vpmultishiftqb -8192(%rdx), %zmm29, %zmm30
-//CHECK: encoding: [0x62,0x62,0x95,0x40,0x83,0x72,0x80]
-
-  vpmultishiftqb -0x2040(%rdx), %zmm29, %zmm30
-//CHECK: vpmultishiftqb -8256(%rdx), %zmm29, %zmm30
-//CHECK: encoding: [0x62,0x62,0x95,0x40,0x83,0xb2,0xc0,0xdf,0xff,0xff]
-
-  vpmultishiftqb 0x3f8(%rdx){1to8}, %zmm29, %zmm30
-//CHECK: vpmultishiftqb 1016(%rdx){1to8}, %zmm29, %zmm30
-//CHECK: encoding: [0x62,0x62,0x95,0x50,0x83,0x72,0x7f]
-
-  vpmultishiftqb 0x400(%rdx){1to8}, %zmm29, %zmm30
-//CHECK: vpmultishiftqb 1024(%rdx){1to8}, %zmm29, %zmm30
-//CHECK: encoding: [0x62,0x62,0x95,0x50,0x83,0xb2,0x00,0x04,0x00,0x00]
-
-  vpmultishiftqb -0x400(%rdx){1to8}, %zmm29, %zmm30
-//CHECK: vpmultishiftqb -1024(%rdx){1to8}, %zmm29, %zmm30
-//CHECK: encoding: [0x62,0x62,0x95,0x50,0x83,0x72,0x80]
-
-  vpmultishiftqb -0x408(%rdx){1to8}, %zmm29, %zmm30
-//CHECK: vpmultishiftqb -1032(%rdx){1to8}, %zmm29, %zmm30
-//CHECK: encoding: [0x62,0x62,0x95,0x50,0x83,0xb2,0xf8,0xfb,0xff,0xff]
-
-  vpmultishiftqb 0x1234(%rax,%r14,8), %zmm29, %zmm30
-//CHECK: vpmultishiftqb 4660(%rax,%r14,8), %zmm29, %zmm30
-//CHECK: encoding: [0x62,0x22,0x95,0x40,0x83,0xb4,0xf0,0x34,0x12,0x00,0x00]
-

diff  --git a/llvm/test/MC/X86/avx512vbmi-intel.s b/llvm/test/MC/X86/avx512vbmi-intel.s
new file mode 100644
index 00000000000000..e17b06e4c9970d
--- /dev/null
+++ b/llvm/test/MC/X86/avx512vbmi-intel.s
@@ -0,0 +1,542 @@
+# RUN: llvm-mc -triple x86_64 -show-encoding -x86-asm-syntax=intel -output-asm-variant=1 %s | FileCheck %s
+
+# CHECK: vpermb	xmm30 {k7}, xmm29, xmm28
+# CHECK: encoding: [0x62,0x02,0x15,0x07,0x8d,0xf4]
+         vpermb	xmm30 {k7}, xmm29, xmm28
+
+# CHECK: vpermb	xmm30 {k7} {z}, xmm29, xmm28
+# CHECK: encoding: [0x62,0x02,0x15,0x87,0x8d,0xf4]
+         vpermb	xmm30 {k7} {z}, xmm29, xmm28
+
+# CHECK: vpermb	xmm30, xmm29, xmmword ptr [rcx]
+# CHECK: encoding: [0x62,0x62,0x15,0x00,0x8d,0x31]
+         vpermb	xmm30, xmm29, xmmword ptr [rcx]
+
+# CHECK: vpermb	xmm30, xmm29, xmmword ptr [rax + 8*r14 + 291]
+# CHECK: encoding: [0x62,0x22,0x15,0x00,0x8d,0xb4,0xf0,0x23,0x01,0x00,0x00]
+         vpermb	xmm30, xmm29, xmmword ptr [rax + 8*r14 + 291]
+
+# CHECK: vpermb	xmm30, xmm29, xmmword ptr [rdx + 2032]
+# CHECK: encoding: [0x62,0x62,0x15,0x00,0x8d,0x72,0x7f]
+         vpermb	xmm30, xmm29, xmmword ptr [rdx + 2032]
+
+# CHECK: vpermb	xmm30, xmm29, xmmword ptr [rdx + 2048]
+# CHECK: encoding: [0x62,0x62,0x15,0x00,0x8d,0xb2,0x00,0x08,0x00,0x00]
+         vpermb	xmm30, xmm29, xmmword ptr [rdx + 2048]
+
+# CHECK: vpermb	xmm30, xmm29, xmmword ptr [rdx - 2048]
+# CHECK: encoding: [0x62,0x62,0x15,0x00,0x8d,0x72,0x80]
+         vpermb	xmm30, xmm29, xmmword ptr [rdx - 2048]
+
+# CHECK: vpermb	xmm30, xmm29, xmmword ptr [rdx - 2064]
+# CHECK: encoding: [0x62,0x62,0x15,0x00,0x8d,0xb2,0xf0,0xf7,0xff,0xff]
+         vpermb	xmm30, xmm29, xmmword ptr [rdx - 2064]
+
+# CHECK: vpermb	ymm30, ymm29, ymm28
+# CHECK: encoding: [0x62,0x02,0x15,0x20,0x8d,0xf4]
+         vpermb	ymm30, ymm29, ymm28
+
+# CHECK: vpermb	ymm30 {k7}, ymm29, ymm28
+# CHECK: encoding: [0x62,0x02,0x15,0x27,0x8d,0xf4]
+         vpermb	ymm30 {k7}, ymm29, ymm28
+
+# CHECK: vpermb	ymm30 {k7} {z}, ymm29, ymm28
+# CHECK: encoding: [0x62,0x02,0x15,0xa7,0x8d,0xf4]
+         vpermb	ymm30 {k7} {z}, ymm29, ymm28
+
+# CHECK: vpermb	ymm30, ymm29, ymmword ptr [rcx]
+# CHECK: encoding: [0x62,0x62,0x15,0x20,0x8d,0x31]
+         vpermb	ymm30, ymm29, ymmword ptr [rcx]
+
+# CHECK: vpermb	ymm30, ymm29, ymmword ptr [rax + 8*r14 + 291]
+# CHECK: encoding: [0x62,0x22,0x15,0x20,0x8d,0xb4,0xf0,0x23,0x01,0x00,0x00]
+         vpermb	ymm30, ymm29, ymmword ptr [rax + 8*r14 + 291]
+
+# CHECK: vpermb	ymm30, ymm29, ymmword ptr [rdx + 4064]
+# CHECK: encoding: [0x62,0x62,0x15,0x20,0x8d,0x72,0x7f]
+         vpermb	ymm30, ymm29, ymmword ptr [rdx + 4064]
+
+# CHECK: vpermb	ymm30, ymm29, ymmword ptr [rdx + 4096]
+# CHECK: encoding: [0x62,0x62,0x15,0x20,0x8d,0xb2,0x00,0x10,0x00,0x00]
+         vpermb	ymm30, ymm29, ymmword ptr [rdx + 4096]
+
+# CHECK: vpermb	ymm30, ymm29, ymmword ptr [rdx - 4096]
+# CHECK: encoding: [0x62,0x62,0x15,0x20,0x8d,0x72,0x80]
+         vpermb	ymm30, ymm29, ymmword ptr [rdx - 4096]
+
+# CHECK: vpermb	ymm30, ymm29, ymmword ptr [rdx - 4128]
+# CHECK: encoding: [0x62,0x62,0x15,0x20,0x8d,0xb2,0xe0,0xef,0xff,0xff]
+         vpermb	ymm30, ymm29, ymmword ptr [rdx - 4128]
+
+# CHECK: vpermb	xmm30, xmm29, xmm28
+# CHECK: encoding: [0x62,0x02,0x15,0x00,0x8d,0xf4]
+         vpermb	xmm30, xmm29, xmm28
+
+# CHECK: vpermb	xmm30, xmm29, xmmword ptr [rax + 8*r14 + 4660]
+# CHECK: encoding: [0x62,0x22,0x15,0x00,0x8d,0xb4,0xf0,0x34,0x12,0x00,0x00]
+         vpermb	xmm30, xmm29, xmmword ptr [rax + 8*r14 + 4660]
+
+# CHECK: vpermb	ymm30, ymm29, ymmword ptr [rax + 8*r14 + 4660]
+# CHECK: encoding: [0x62,0x22,0x15,0x20,0x8d,0xb4,0xf0,0x34,0x12,0x00,0x00]
+         vpermb	ymm30, ymm29, ymmword ptr [rax + 8*r14 + 4660]
+
+# CHECK: vpermb	zmm30, zmm29, zmm28
+# CHECK: encoding: [0x62,0x02,0x15,0x40,0x8d,0xf4]
+         vpermb	zmm30, zmm29, zmm28
+
+# CHECK: vpermb	zmm30 {k7}, zmm29, zmm28
+# CHECK: encoding: [0x62,0x02,0x15,0x47,0x8d,0xf4]
+         vpermb	zmm30 {k7}, zmm29, zmm28
+
+# CHECK: vpermb	zmm30 {k7} {z}, zmm29, zmm28
+# CHECK: encoding: [0x62,0x02,0x15,0xc7,0x8d,0xf4]
+         vpermb	zmm30 {k7} {z}, zmm29, zmm28
+
+# CHECK: vpermb	zmm30, zmm29, zmmword ptr [rcx]
+# CHECK: encoding: [0x62,0x62,0x15,0x40,0x8d,0x31]
+         vpermb	zmm30, zmm29, zmmword ptr [rcx]
+
+# CHECK: vpermb	zmm30, zmm29, zmmword ptr [rax + 8*r14 + 291]
+# CHECK: encoding: [0x62,0x22,0x15,0x40,0x8d,0xb4,0xf0,0x23,0x01,0x00,0x00]
+         vpermb	zmm30, zmm29, zmmword ptr [rax + 8*r14 + 291]
+
+# CHECK: vpermb	zmm30, zmm29, zmmword ptr [rdx + 8128]
+# CHECK: encoding: [0x62,0x62,0x15,0x40,0x8d,0x72,0x7f]
+         vpermb	zmm30, zmm29, zmmword ptr [rdx + 8128]
+
+# CHECK: vpermb	zmm30, zmm29, zmmword ptr [rdx + 8192]
+# CHECK: encoding: [0x62,0x62,0x15,0x40,0x8d,0xb2,0x00,0x20,0x00,0x00]
+         vpermb	zmm30, zmm29, zmmword ptr [rdx + 8192]
+
+# CHECK: vpermb	zmm30, zmm29, zmmword ptr [rdx - 8192]
+# CHECK: encoding: [0x62,0x62,0x15,0x40,0x8d,0x72,0x80]
+         vpermb	zmm30, zmm29, zmmword ptr [rdx - 8192]
+
+# CHECK: vpermb	zmm30, zmm29, zmmword ptr [rdx - 8256]
+# CHECK: encoding: [0x62,0x62,0x15,0x40,0x8d,0xb2,0xc0,0xdf,0xff,0xff]
+         vpermb	zmm30, zmm29, zmmword ptr [rdx - 8256]
+
+# CHECK: vpermb	zmm30, zmm29, zmmword ptr [rax + 8*r14 + 4660]
+# CHECK: encoding: [0x62,0x22,0x15,0x40,0x8d,0xb4,0xf0,0x34,0x12,0x00,0x00]
+         vpermb	zmm30, zmm29, zmmword ptr [rax + 8*r14 + 4660]
+
+# CHECK: vpermt2b	xmm30, xmm29, xmm28
+# CHECK: encoding: [0x62,0x02,0x15,0x00,0x7d,0xf4]
+         vpermt2b	xmm30, xmm29, xmm28
+
+# CHECK: vpermt2b	xmm30 {k7}, xmm29, xmm28
+# CHECK: encoding: [0x62,0x02,0x15,0x07,0x7d,0xf4]
+         vpermt2b	xmm30 {k7}, xmm29, xmm28
+
+# CHECK: vpermt2b	xmm30 {k7} {z}, xmm29, xmm28
+# CHECK: encoding: [0x62,0x02,0x15,0x87,0x7d,0xf4]
+         vpermt2b	xmm30 {k7} {z}, xmm29, xmm28
+
+# CHECK: vpermt2b	xmm30, xmm29, xmmword ptr [rcx]
+# CHECK: encoding: [0x62,0x62,0x15,0x00,0x7d,0x31]
+         vpermt2b	xmm30, xmm29, xmmword ptr [rcx]
+
+# CHECK: vpermt2b	xmm30, xmm29, xmmword ptr [rax + 8*r14 + 291]
+# CHECK: encoding: [0x62,0x22,0x15,0x00,0x7d,0xb4,0xf0,0x23,0x01,0x00,0x00]
+         vpermt2b	xmm30, xmm29, xmmword ptr [rax + 8*r14 + 291]
+
+# CHECK: vpermt2b	xmm30, xmm29, xmmword ptr [rdx + 2032]
+# CHECK: encoding: [0x62,0x62,0x15,0x00,0x7d,0x72,0x7f]
+         vpermt2b	xmm30, xmm29, xmmword ptr [rdx + 2032]
+
+# CHECK: vpermt2b	xmm30, xmm29, xmmword ptr [rdx + 2048]
+# CHECK: encoding: [0x62,0x62,0x15,0x00,0x7d,0xb2,0x00,0x08,0x00,0x00]
+         vpermt2b	xmm30, xmm29, xmmword ptr [rdx + 2048]
+
+# CHECK: vpermt2b	xmm30, xmm29, xmmword ptr [rdx - 2048]
+# CHECK: encoding: [0x62,0x62,0x15,0x00,0x7d,0x72,0x80]
+         vpermt2b	xmm30, xmm29, xmmword ptr [rdx - 2048]
+
+# CHECK: vpermt2b	xmm30, xmm29, xmmword ptr [rdx - 2064]
+# CHECK: encoding: [0x62,0x62,0x15,0x00,0x7d,0xb2,0xf0,0xf7,0xff,0xff]
+         vpermt2b	xmm30, xmm29, xmmword ptr [rdx - 2064]
+
+# CHECK: vpermt2b	ymm30, ymm29, ymm28
+# CHECK: encoding: [0x62,0x02,0x15,0x20,0x7d,0xf4]
+         vpermt2b	ymm30, ymm29, ymm28
+
+# CHECK: vpermt2b	ymm30 {k7}, ymm29, ymm28
+# CHECK: encoding: [0x62,0x02,0x15,0x27,0x7d,0xf4]
+         vpermt2b	ymm30 {k7}, ymm29, ymm28
+
+# CHECK: vpermt2b	ymm30 {k7} {z}, ymm29, ymm28
+# CHECK: encoding: [0x62,0x02,0x15,0xa7,0x7d,0xf4]
+         vpermt2b	ymm30 {k7} {z}, ymm29, ymm28
+
+# CHECK: vpermt2b	ymm30, ymm29, ymmword ptr [rcx]
+# CHECK: encoding: [0x62,0x62,0x15,0x20,0x7d,0x31]
+         vpermt2b	ymm30, ymm29, ymmword ptr [rcx]
+
+# CHECK: vpermt2b	ymm30, ymm29, ymmword ptr [rax + 8*r14 + 291]
+# CHECK: encoding: [0x62,0x22,0x15,0x20,0x7d,0xb4,0xf0,0x23,0x01,0x00,0x00]
+         vpermt2b	ymm30, ymm29, ymmword ptr [rax + 8*r14 + 291]
+
+# CHECK: vpermt2b	ymm30, ymm29, ymmword ptr [rdx + 4064]
+# CHECK: encoding: [0x62,0x62,0x15,0x20,0x7d,0x72,0x7f]
+         vpermt2b	ymm30, ymm29, ymmword ptr [rdx + 4064]
+
+# CHECK: vpermt2b	ymm30, ymm29, ymmword ptr [rdx + 4096]
+# CHECK: encoding: [0x62,0x62,0x15,0x20,0x7d,0xb2,0x00,0x10,0x00,0x00]
+         vpermt2b	ymm30, ymm29, ymmword ptr [rdx + 4096]
+
+# CHECK: vpermt2b	ymm30, ymm29, ymmword ptr [rdx - 4096]
+# CHECK: encoding: [0x62,0x62,0x15,0x20,0x7d,0x72,0x80]
+         vpermt2b	ymm30, ymm29, ymmword ptr [rdx - 4096]
+
+# CHECK: vpermt2b	ymm30, ymm29, ymmword ptr [rdx - 4128]
+# CHECK: encoding: [0x62,0x62,0x15,0x20,0x7d,0xb2,0xe0,0xef,0xff,0xff]
+         vpermt2b	ymm30, ymm29, ymmword ptr [rdx - 4128]
+
+# CHECK: vpermt2b	xmm30, xmm29, xmmword ptr [rax + 8*r14 + 4660]
+# CHECK: encoding: [0x62,0x22,0x15,0x00,0x7d,0xb4,0xf0,0x34,0x12,0x00,0x00]
+         vpermt2b	xmm30, xmm29, xmmword ptr [rax + 8*r14 + 4660]
+
+# CHECK: vpermt2b	ymm30, ymm29, ymmword ptr [rax + 8*r14 + 4660]
+# CHECK: encoding: [0x62,0x22,0x15,0x20,0x7d,0xb4,0xf0,0x34,0x12,0x00,0x00]
+         vpermt2b	ymm30, ymm29, ymmword ptr [rax + 8*r14 + 4660]
+
+# CHECK: vpermt2b	zmm30, zmm29, zmm28
+# CHECK: encoding: [0x62,0x02,0x15,0x40,0x7d,0xf4]
+         vpermt2b	zmm30, zmm29, zmm28
+
+# CHECK: vpermt2b	zmm30 {k7}, zmm29, zmm28
+# CHECK: encoding: [0x62,0x02,0x15,0x47,0x7d,0xf4]
+         vpermt2b	zmm30 {k7}, zmm29, zmm28
+
+# CHECK: vpermt2b	zmm30 {k7} {z}, zmm29, zmm28
+# CHECK: encoding: [0x62,0x02,0x15,0xc7,0x7d,0xf4]
+         vpermt2b	zmm30 {k7} {z}, zmm29, zmm28
+
+# CHECK: vpermt2b	zmm30, zmm29, zmmword ptr [rcx]
+# CHECK: encoding: [0x62,0x62,0x15,0x40,0x7d,0x31]
+         vpermt2b	zmm30, zmm29, zmmword ptr [rcx]
+
+# CHECK: vpermt2b	zmm30, zmm29, zmmword ptr [rax + 8*r14 + 291]
+# CHECK: encoding: [0x62,0x22,0x15,0x40,0x7d,0xb4,0xf0,0x23,0x01,0x00,0x00]
+         vpermt2b	zmm30, zmm29, zmmword ptr [rax + 8*r14 + 291]
+
+# CHECK: vpermt2b	zmm30, zmm29, zmmword ptr [rdx + 8128]
+# CHECK: encoding: [0x62,0x62,0x15,0x40,0x7d,0x72,0x7f]
+         vpermt2b	zmm30, zmm29, zmmword ptr [rdx + 8128]
+
+# CHECK: vpermt2b	zmm30, zmm29, zmmword ptr [rdx + 8192]
+# CHECK: encoding: [0x62,0x62,0x15,0x40,0x7d,0xb2,0x00,0x20,0x00,0x00]
+         vpermt2b	zmm30, zmm29, zmmword ptr [rdx + 8192]
+
+# CHECK: vpermt2b	zmm30, zmm29, zmmword ptr [rdx - 8192]
+# CHECK: encoding: [0x62,0x62,0x15,0x40,0x7d,0x72,0x80]
+         vpermt2b	zmm30, zmm29, zmmword ptr [rdx - 8192]
+
+# CHECK: vpermt2b	zmm30, zmm29, zmmword ptr [rdx - 8256]
+# CHECK: encoding: [0x62,0x62,0x15,0x40,0x7d,0xb2,0xc0,0xdf,0xff,0xff]
+         vpermt2b	zmm30, zmm29, zmmword ptr [rdx - 8256]
+
+# CHECK: vpermt2b	zmm30, zmm29, zmmword ptr [rax + 8*r14 + 4660]
+# CHECK: encoding: [0x62,0x22,0x15,0x40,0x7d,0xb4,0xf0,0x34,0x12,0x00,0x00]
+         vpermt2b	zmm30, zmm29, zmmword ptr [rax + 8*r14 + 4660]
+
+# CHECK: vpermi2b	xmm30, xmm29, xmm28
+# CHECK: encoding: [0x62,0x02,0x15,0x00,0x75,0xf4]
+         vpermi2b	xmm30, xmm29, xmm28
+
+# CHECK: vpermi2b	xmm30 {k7}, xmm29, xmm28
+# CHECK: encoding: [0x62,0x02,0x15,0x07,0x75,0xf4]
+         vpermi2b	xmm30 {k7}, xmm29, xmm28
+
+# CHECK: vpermi2b	xmm30 {k7} {z}, xmm29, xmm28
+# CHECK: encoding: [0x62,0x02,0x15,0x87,0x75,0xf4]
+         vpermi2b	xmm30 {k7} {z}, xmm29, xmm28
+
+# CHECK: vpermi2b	xmm30, xmm29, xmmword ptr [rcx]
+# CHECK: encoding: [0x62,0x62,0x15,0x00,0x75,0x31]
+         vpermi2b	xmm30, xmm29, xmmword ptr [rcx]
+
+# CHECK: vpermi2b	xmm30, xmm29, xmmword ptr [rax + 8*r14 + 291]
+# CHECK: encoding: [0x62,0x22,0x15,0x00,0x75,0xb4,0xf0,0x23,0x01,0x00,0x00]
+         vpermi2b	xmm30, xmm29, xmmword ptr [rax + 8*r14 + 291]
+
+# CHECK: vpermi2b	xmm30, xmm29, xmmword ptr [rdx + 2032]
+# CHECK: encoding: [0x62,0x62,0x15,0x00,0x75,0x72,0x7f]
+         vpermi2b	xmm30, xmm29, xmmword ptr [rdx + 2032]
+
+# CHECK: vpermi2b	xmm30, xmm29, xmmword ptr [rdx + 2048]
+# CHECK: encoding: [0x62,0x62,0x15,0x00,0x75,0xb2,0x00,0x08,0x00,0x00]
+         vpermi2b	xmm30, xmm29, xmmword ptr [rdx + 2048]
+
+# CHECK: vpermi2b	xmm30, xmm29, xmmword ptr [rdx - 2048]
+# CHECK: encoding: [0x62,0x62,0x15,0x00,0x75,0x72,0x80]
+         vpermi2b	xmm30, xmm29, xmmword ptr [rdx - 2048]
+
+# CHECK: vpermi2b	xmm30, xmm29, xmmword ptr [rdx - 2064]
+# CHECK: encoding: [0x62,0x62,0x15,0x00,0x75,0xb2,0xf0,0xf7,0xff,0xff]
+         vpermi2b	xmm30, xmm29, xmmword ptr [rdx - 2064]
+
+# CHECK: vpermi2b	ymm30, ymm29, ymm28
+# CHECK: encoding: [0x62,0x02,0x15,0x20,0x75,0xf4]
+         vpermi2b	ymm30, ymm29, ymm28
+
+# CHECK: vpermi2b	ymm30 {k7}, ymm29, ymm28
+# CHECK: encoding: [0x62,0x02,0x15,0x27,0x75,0xf4]
+         vpermi2b	ymm30 {k7}, ymm29, ymm28
+
+# CHECK: vpermi2b	ymm30 {k7} {z}, ymm29, ymm28
+# CHECK: encoding: [0x62,0x02,0x15,0xa7,0x75,0xf4]
+         vpermi2b	ymm30 {k7} {z}, ymm29, ymm28
+
+# CHECK: vpermi2b	ymm30, ymm29, ymmword ptr [rcx]
+# CHECK: encoding: [0x62,0x62,0x15,0x20,0x75,0x31]
+         vpermi2b	ymm30, ymm29, ymmword ptr [rcx]
+
+# CHECK: vpermi2b	ymm30, ymm29, ymmword ptr [rax + 8*r14 + 291]
+# CHECK: encoding: [0x62,0x22,0x15,0x20,0x75,0xb4,0xf0,0x23,0x01,0x00,0x00]
+         vpermi2b	ymm30, ymm29, ymmword ptr [rax + 8*r14 + 291]
+
+# CHECK: vpermi2b	ymm30, ymm29, ymmword ptr [rdx + 4064]
+# CHECK: encoding: [0x62,0x62,0x15,0x20,0x75,0x72,0x7f]
+         vpermi2b	ymm30, ymm29, ymmword ptr [rdx + 4064]
+
+# CHECK: vpermi2b	ymm30, ymm29, ymmword ptr [rdx + 4096]
+# CHECK: encoding: [0x62,0x62,0x15,0x20,0x75,0xb2,0x00,0x10,0x00,0x00]
+         vpermi2b	ymm30, ymm29, ymmword ptr [rdx + 4096]
+
+# CHECK: vpermi2b	ymm30, ymm29, ymmword ptr [rdx - 4096]
+# CHECK: encoding: [0x62,0x62,0x15,0x20,0x75,0x72,0x80]
+         vpermi2b	ymm30, ymm29, ymmword ptr [rdx - 4096]
+
+# CHECK: vpermi2b	ymm30, ymm29, ymmword ptr [rdx - 4128]
+# CHECK: encoding: [0x62,0x62,0x15,0x20,0x75,0xb2,0xe0,0xef,0xff,0xff]
+         vpermi2b	ymm30, ymm29, ymmword ptr [rdx - 4128]
+
+# CHECK: vpermi2b	xmm30, xmm29, xmmword ptr [rax + 8*r14 + 4660]
+# CHECK: encoding: [0x62,0x22,0x15,0x00,0x75,0xb4,0xf0,0x34,0x12,0x00,0x00]
+         vpermi2b	xmm30, xmm29, xmmword ptr [rax + 8*r14 + 4660]
+
+# CHECK: vpermi2b	ymm30, ymm29, ymmword ptr [rax + 8*r14 + 4660]
+# CHECK: encoding: [0x62,0x22,0x15,0x20,0x75,0xb4,0xf0,0x34,0x12,0x00,0x00]
+         vpermi2b	ymm30, ymm29, ymmword ptr [rax + 8*r14 + 4660]
+
+# CHECK: vpermi2b	zmm30, zmm29, zmm28
+# CHECK: encoding: [0x62,0x02,0x15,0x40,0x75,0xf4]
+         vpermi2b	zmm30, zmm29, zmm28
+
+# CHECK: vpermi2b	zmm30 {k7}, zmm29, zmm28
+# CHECK: encoding: [0x62,0x02,0x15,0x47,0x75,0xf4]
+         vpermi2b	zmm30 {k7}, zmm29, zmm28
+
+# CHECK: vpermi2b	zmm30 {k7} {z}, zmm29, zmm28
+# CHECK: encoding: [0x62,0x02,0x15,0xc7,0x75,0xf4]
+         vpermi2b	zmm30 {k7} {z}, zmm29, zmm28
+
+# CHECK: vpermi2b	zmm30, zmm29, zmmword ptr [rcx]
+# CHECK: encoding: [0x62,0x62,0x15,0x40,0x75,0x31]
+         vpermi2b	zmm30, zmm29, zmmword ptr [rcx]
+
+# CHECK: vpermi2b	zmm30, zmm29, zmmword ptr [rax + 8*r14 + 291]
+# CHECK: encoding: [0x62,0x22,0x15,0x40,0x75,0xb4,0xf0,0x23,0x01,0x00,0x00]
+         vpermi2b	zmm30, zmm29, zmmword ptr [rax + 8*r14 + 291]
+
+# CHECK: vpermi2b	zmm30, zmm29, zmmword ptr [rdx + 8128]
+# CHECK: encoding: [0x62,0x62,0x15,0x40,0x75,0x72,0x7f]
+         vpermi2b	zmm30, zmm29, zmmword ptr [rdx + 8128]
+
+# CHECK: vpermi2b	zmm30, zmm29, zmmword ptr [rdx + 8192]
+# CHECK: encoding: [0x62,0x62,0x15,0x40,0x75,0xb2,0x00,0x20,0x00,0x00]
+         vpermi2b	zmm30, zmm29, zmmword ptr [rdx + 8192]
+
+# CHECK: vpermi2b	zmm30, zmm29, zmmword ptr [rdx - 8192]
+# CHECK: encoding: [0x62,0x62,0x15,0x40,0x75,0x72,0x80]
+         vpermi2b	zmm30, zmm29, zmmword ptr [rdx - 8192]
+
+# CHECK: vpermi2b	zmm30, zmm29, zmmword ptr [rdx - 8256]
+# CHECK: encoding: [0x62,0x62,0x15,0x40,0x75,0xb2,0xc0,0xdf,0xff,0xff]
+         vpermi2b	zmm30, zmm29, zmmword ptr [rdx - 8256]
+
+# CHECK: vpermi2b	zmm30, zmm29, zmmword ptr [rax + 8*r14 + 4660]
+# CHECK: encoding: [0x62,0x22,0x15,0x40,0x75,0xb4,0xf0,0x34,0x12,0x00,0x00]
+         vpermi2b	zmm30, zmm29, zmmword ptr [rax + 8*r14 + 4660]
+
+# CHECK: vpmultishiftqb	xmm30, xmm29, xmm28
+# CHECK: encoding: [0x62,0x02,0x95,0x00,0x83,0xf4]
+         vpmultishiftqb	xmm30, xmm29, xmm28
+
+# CHECK: vpmultishiftqb	xmm30 {k7}, xmm29, xmm28
+# CHECK: encoding: [0x62,0x02,0x95,0x07,0x83,0xf4]
+         vpmultishiftqb	xmm30 {k7}, xmm29, xmm28
+
+# CHECK: vpmultishiftqb	xmm30 {k7} {z}, xmm29, xmm28
+# CHECK: encoding: [0x62,0x02,0x95,0x87,0x83,0xf4]
+         vpmultishiftqb	xmm30 {k7} {z}, xmm29, xmm28
+
+# CHECK: vpmultishiftqb	xmm30, xmm29, xmmword ptr [rcx]
+# CHECK: encoding: [0x62,0x62,0x95,0x00,0x83,0x31]
+         vpmultishiftqb	xmm30, xmm29, xmmword ptr [rcx]
+
+# CHECK: vpmultishiftqb	xmm30, xmm29, xmmword ptr [rax + 8*r14 + 291]
+# CHECK: encoding: [0x62,0x22,0x95,0x00,0x83,0xb4,0xf0,0x23,0x01,0x00,0x00]
+         vpmultishiftqb	xmm30, xmm29, xmmword ptr [rax + 8*r14 + 291]
+
+# CHECK: vpmultishiftqb	xmm30, xmm29, qword ptr [rcx]{1to2}
+# CHECK: encoding: [0x62,0x62,0x95,0x10,0x83,0x31]
+         vpmultishiftqb	xmm30, xmm29, qword ptr [rcx]{1to2}
+
+
+# CHECK: vpmultishiftqb	xmm30, xmm29, xmmword ptr [rdx + 2032]
+# CHECK: encoding: [0x62,0x62,0x95,0x00,0x83,0x72,0x7f]
+         vpmultishiftqb	xmm30, xmm29, xmmword ptr [rdx + 2032]
+
+# CHECK: vpmultishiftqb	xmm30, xmm29, xmmword ptr [rdx + 2048]
+# CHECK: encoding: [0x62,0x62,0x95,0x00,0x83,0xb2,0x00,0x08,0x00,0x00]
+         vpmultishiftqb	xmm30, xmm29, xmmword ptr [rdx + 2048]
+
+# CHECK: vpmultishiftqb	xmm30, xmm29, xmmword ptr [rdx - 2048]
+# CHECK: encoding: [0x62,0x62,0x95,0x00,0x83,0x72,0x80]
+         vpmultishiftqb	xmm30, xmm29, xmmword ptr [rdx - 2048]
+
+# CHECK: vpmultishiftqb	xmm30, xmm29, xmmword ptr [rdx - 2064]
+# CHECK: encoding: [0x62,0x62,0x95,0x00,0x83,0xb2,0xf0,0xf7,0xff,0xff]
+         vpmultishiftqb	xmm30, xmm29, xmmword ptr [rdx - 2064]
+
+# CHECK: vpmultishiftqb	xmm30, xmm29, qword ptr [rdx + 1016]{1to2}
+# CHECK: encoding: [0x62,0x62,0x95,0x10,0x83,0x72,0x7f]
+         vpmultishiftqb	xmm30, xmm29, qword ptr [rdx + 1016]{1to2}
+
+# CHECK: vpmultishiftqb	xmm30, xmm29, qword ptr [rdx + 1024]{1to2}
+# CHECK: encoding: [0x62,0x62,0x95,0x10,0x83,0xb2,0x00,0x04,0x00,0x00]
+         vpmultishiftqb	xmm30, xmm29, qword ptr [rdx + 1024]{1to2}
+
+# CHECK: vpmultishiftqb	xmm30, xmm29, qword ptr [rdx - 1024]{1to2}
+# CHECK: encoding: [0x62,0x62,0x95,0x10,0x83,0x72,0x80]
+         vpmultishiftqb	xmm30, xmm29, qword ptr [rdx - 1024]{1to2}
+
+# CHECK: vpmultishiftqb	xmm30, xmm29, qword ptr [rdx - 1032]{1to2}
+# CHECK: encoding: [0x62,0x62,0x95,0x10,0x83,0xb2,0xf8,0xfb,0xff,0xff]
+         vpmultishiftqb	xmm30, xmm29, qword ptr [rdx - 1032]{1to2}
+
+# CHECK: vpmultishiftqb	ymm30, ymm29, ymm28
+# CHECK: encoding: [0x62,0x02,0x95,0x20,0x83,0xf4]
+         vpmultishiftqb	ymm30, ymm29, ymm28
+
+# CHECK: vpmultishiftqb	ymm30 {k7}, ymm29, ymm28
+# CHECK: encoding: [0x62,0x02,0x95,0x27,0x83,0xf4]
+         vpmultishiftqb	ymm30 {k7}, ymm29, ymm28
+
+# CHECK: vpmultishiftqb	ymm30 {k7} {z}, ymm29, ymm28
+# CHECK: encoding: [0x62,0x02,0x95,0xa7,0x83,0xf4]
+         vpmultishiftqb	ymm30 {k7} {z}, ymm29, ymm28
+
+# CHECK: vpmultishiftqb	ymm30, ymm29, ymmword ptr [rcx]
+# CHECK: encoding: [0x62,0x62,0x95,0x20,0x83,0x31]
+         vpmultishiftqb	ymm30, ymm29, ymmword ptr [rcx]
+
+# CHECK: vpmultishiftqb	ymm30, ymm29, ymmword ptr [rax + 8*r14 + 291]
+# CHECK: encoding: [0x62,0x22,0x95,0x20,0x83,0xb4,0xf0,0x23,0x01,0x00,0x00]
+         vpmultishiftqb	ymm30, ymm29, ymmword ptr [rax + 8*r14 + 291]
+
+# CHECK: vpmultishiftqb	ymm30, ymm29, qword ptr [rcx]{1to4}
+# CHECK: encoding: [0x62,0x62,0x95,0x30,0x83,0x31]
+         vpmultishiftqb	ymm30, ymm29, qword ptr [rcx]{1to4}
+
+# CHECK: vpmultishiftqb	ymm30, ymm29, ymmword ptr [rdx + 4064]
+# CHECK: encoding: [0x62,0x62,0x95,0x20,0x83,0x72,0x7f]
+         vpmultishiftqb	ymm30, ymm29, ymmword ptr [rdx + 4064]
+
+# CHECK: vpmultishiftqb	ymm30, ymm29, ymmword ptr [rdx + 4096]
+# CHECK: encoding: [0x62,0x62,0x95,0x20,0x83,0xb2,0x00,0x10,0x00,0x00]
+         vpmultishiftqb	ymm30, ymm29, ymmword ptr [rdx + 4096]
+
+# CHECK: vpmultishiftqb	ymm30, ymm29, ymmword ptr [rdx - 4096]
+# CHECK: encoding: [0x62,0x62,0x95,0x20,0x83,0x72,0x80]
+         vpmultishiftqb	ymm30, ymm29, ymmword ptr [rdx - 4096]
+
+# CHECK: vpmultishiftqb	ymm30, ymm29, ymmword ptr [rdx - 4128]
+# CHECK: encoding: [0x62,0x62,0x95,0x20,0x83,0xb2,0xe0,0xef,0xff,0xff]
+         vpmultishiftqb	ymm30, ymm29, ymmword ptr [rdx - 4128]
+
+# CHECK: vpmultishiftqb	ymm30, ymm29, qword ptr [rdx + 1016]{1to4}
+# CHECK: encoding: [0x62,0x62,0x95,0x30,0x83,0x72,0x7f]
+         vpmultishiftqb	ymm30, ymm29, qword ptr [rdx + 1016]{1to4}
+
+# CHECK: vpmultishiftqb	ymm30, ymm29, qword ptr [rdx + 1024]{1to4}
+# CHECK: encoding: [0x62,0x62,0x95,0x30,0x83,0xb2,0x00,0x04,0x00,0x00]
+         vpmultishiftqb	ymm30, ymm29, qword ptr [rdx + 1024]{1to4}
+
+# CHECK: vpmultishiftqb	ymm30, ymm29, qword ptr [rdx - 1024]{1to4}
+# CHECK: encoding: [0x62,0x62,0x95,0x30,0x83,0x72,0x80]
+         vpmultishiftqb	ymm30, ymm29, qword ptr [rdx - 1024]{1to4}
+
+# CHECK: vpmultishiftqb	ymm30, ymm29, qword ptr [rdx - 1032]{1to4}
+# CHECK: encoding: [0x62,0x62,0x95,0x30,0x83,0xb2,0xf8,0xfb,0xff,0xff]
+         vpmultishiftqb	ymm30, ymm29, qword ptr [rdx - 1032]{1to4}
+
+# CHECK: vpmultishiftqb	xmm30, xmm29, xmmword ptr [rax + 8*r14 + 4660]
+# CHECK: encoding: [0x62,0x22,0x95,0x00,0x83,0xb4,0xf0,0x34,0x12,0x00,0x00]
+         vpmultishiftqb	xmm30, xmm29, xmmword ptr [rax + 8*r14 + 4660]
+
+# CHECK: vpmultishiftqb	ymm30, ymm29, ymmword ptr [rax + 8*r14 + 4660]
+# CHECK: encoding: [0x62,0x22,0x95,0x20,0x83,0xb4,0xf0,0x34,0x12,0x00,0x00]
+         vpmultishiftqb	ymm30, ymm29, ymmword ptr [rax + 8*r14 + 4660]
+
+# CHECK: vpmultishiftqb	zmm30, zmm29, zmm28
+# CHECK: encoding: [0x62,0x02,0x95,0x40,0x83,0xf4]
+         vpmultishiftqb	zmm30, zmm29, zmm28
+
+# CHECK: vpmultishiftqb	zmm30 {k7}, zmm29, zmm28
+# CHECK: encoding: [0x62,0x02,0x95,0x47,0x83,0xf4]
+         vpmultishiftqb	zmm30 {k7}, zmm29, zmm28
+
+# CHECK: vpmultishiftqb	zmm30 {k7} {z}, zmm29, zmm28
+# CHECK: encoding: [0x62,0x02,0x95,0xc7,0x83,0xf4]
+         vpmultishiftqb	zmm30 {k7} {z}, zmm29, zmm28
+
+# CHECK: vpmultishiftqb	zmm30, zmm29, zmmword ptr [rcx]
+# CHECK: encoding: [0x62,0x62,0x95,0x40,0x83,0x31]
+         vpmultishiftqb	zmm30, zmm29, zmmword ptr [rcx]
+
+# CHECK: vpmultishiftqb	zmm30, zmm29, zmmword ptr [rax + 8*r14 + 291]
+# CHECK: encoding: [0x62,0x22,0x95,0x40,0x83,0xb4,0xf0,0x23,0x01,0x00,0x00]
+         vpmultishiftqb	zmm30, zmm29, zmmword ptr [rax + 8*r14 + 291]
+
+# CHECK: vpmultishiftqb	zmm30, zmm29, qword ptr [rcx]{1to8}
+# CHECK: encoding: [0x62,0x62,0x95,0x50,0x83,0x31]
+         vpmultishiftqb	zmm30, zmm29, qword ptr [rcx]{1to8}
+
+# CHECK: vpmultishiftqb	zmm30, zmm29, zmmword ptr [rdx + 8128]
+# CHECK: encoding: [0x62,0x62,0x95,0x40,0x83,0x72,0x7f]
+         vpmultishiftqb	zmm30, zmm29, zmmword ptr [rdx + 8128]
+
+# CHECK: vpmultishiftqb	zmm30, zmm29, zmmword ptr [rdx + 8192]
+# CHECK: encoding: [0x62,0x62,0x95,0x40,0x83,0xb2,0x00,0x20,0x00,0x00]
+         vpmultishiftqb	zmm30, zmm29, zmmword ptr [rdx + 8192]
+
+# CHECK: vpmultishiftqb	zmm30, zmm29, zmmword ptr [rdx - 8192]
+# CHECK: encoding: [0x62,0x62,0x95,0x40,0x83,0x72,0x80]
+         vpmultishiftqb	zmm30, zmm29, zmmword ptr [rdx - 8192]
+
+# CHECK: vpmultishiftqb	zmm30, zmm29, zmmword ptr [rdx - 8256]
+# CHECK: encoding: [0x62,0x62,0x95,0x40,0x83,0xb2,0xc0,0xdf,0xff,0xff]
+         vpmultishiftqb	zmm30, zmm29, zmmword ptr [rdx - 8256]
+
+# CHECK: vpmultishiftqb	zmm30, zmm29, qword ptr [rdx + 1016]{1to8}
+# CHECK: encoding: [0x62,0x62,0x95,0x50,0x83,0x72,0x7f]
+         vpmultishiftqb	zmm30, zmm29, qword ptr [rdx + 1016]{1to8}
+
+# CHECK: vpmultishiftqb	zmm30, zmm29, qword ptr [rdx + 1024]{1to8}
+# CHECK: encoding: [0x62,0x62,0x95,0x50,0x83,0xb2,0x00,0x04,0x00,0x00]
+         vpmultishiftqb	zmm30, zmm29, qword ptr [rdx + 1024]{1to8}
+
+# CHECK: vpmultishiftqb	zmm30, zmm29, qword ptr [rdx - 1024]{1to8}
+# CHECK: encoding: [0x62,0x62,0x95,0x50,0x83,0x72,0x80]
+         vpmultishiftqb	zmm30, zmm29, qword ptr [rdx - 1024]{1to8}
+
+# CHECK: vpmultishiftqb	zmm30, zmm29, qword ptr [rdx - 1032]{1to8}
+# CHECK: encoding: [0x62,0x62,0x95,0x50,0x83,0xb2,0xf8,0xfb,0xff,0xff]
+         vpmultishiftqb	zmm30, zmm29, qword ptr [rdx - 1032]{1to8}
+
+# CHECK: vpmultishiftqb	zmm30, zmm29, zmmword ptr [rax + 8*r14 + 4660]
+# CHECK: encoding: [0x62,0x22,0x95,0x40,0x83,0xb4,0xf0,0x34,0x12,0x00,0x00]
+         vpmultishiftqb	zmm30, zmm29, zmmword ptr [rax + 8*r14 + 4660]


        


More information about the llvm-commits mailing list