[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