summaryrefslogtreecommitdiff
path: root/test/MC
diff options
context:
space:
mode:
authorGadi Haber <gadi.haber@intel.com>2017-12-13 09:13:53 +0000
committerGadi Haber <gadi.haber@intel.com>2017-12-13 09:13:53 +0000
commit4258537d45e40af5b20a460d5c418823e21b1458 (patch)
treedd89d1c2725d8d721968c051c5a2bf50c45e7e9f /test/MC
parent93b8ba08eb2d75830781b81933c3ca2a79cdde6e (diff)
[X86][BMI]: Adding full coverage of MC encoding for the BMI isa set.<NFC>
NFC. Adding MC regressions tests to cover the BMI1 and BMI2 ISA sets both 32 and 64 bit. This patch is part of a larger task to cover MC encoding of all X86 ISA Sets. started in revision: https://reviews.llvm.org/D39952 Reviewers: zvi, craig.topper, m_zuckerman, RKSimon Differential Revision: https://reviews.llvm.org/D41106 Change-Id: I033ce137b5b82d36e1e601cd5e0534637b43a4a9 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@320557 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/MC')
-rw-r--r--test/MC/X86/BMI1-32.s142
-rw-r--r--test/MC/X86/BMI1-64.s286
-rw-r--r--test/MC/X86/BMI2-32.s226
-rw-r--r--test/MC/X86/BMI2-64.s450
4 files changed, 1104 insertions, 0 deletions
diff --git a/test/MC/X86/BMI1-32.s b/test/MC/X86/BMI1-32.s
new file mode 100644
index 00000000000..fdc8b85e781
--- /dev/null
+++ b/test/MC/X86/BMI1-32.s
@@ -0,0 +1,142 @@
+// RUN: llvm-mc -triple i386-unknown-unknown --show-encoding %s | FileCheck %s
+
+// CHECK: andnl -485498096(%edx,%eax,4), %edx, %edx
+// CHECK: encoding: [0xc4,0xe2,0x68,0xf2,0x94,0x82,0x10,0xe3,0x0f,0xe3]
+andnl -485498096(%edx,%eax,4), %edx, %edx
+
+// CHECK: andnl 485498096(%edx,%eax,4), %edx, %edx
+// CHECK: encoding: [0xc4,0xe2,0x68,0xf2,0x94,0x82,0xf0,0x1c,0xf0,0x1c]
+andnl 485498096(%edx,%eax,4), %edx, %edx
+
+// CHECK: andnl 485498096(%edx), %edx, %edx
+// CHECK: encoding: [0xc4,0xe2,0x68,0xf2,0x92,0xf0,0x1c,0xf0,0x1c]
+andnl 485498096(%edx), %edx, %edx
+
+// CHECK: andnl 485498096, %edx, %edx
+// CHECK: encoding: [0xc4,0xe2,0x68,0xf2,0x15,0xf0,0x1c,0xf0,0x1c]
+andnl 485498096, %edx, %edx
+
+// CHECK: andnl 64(%edx,%eax), %edx, %edx
+// CHECK: encoding: [0xc4,0xe2,0x68,0xf2,0x54,0x02,0x40]
+andnl 64(%edx,%eax), %edx, %edx
+
+// CHECK: andnl (%edx), %edx, %edx
+// CHECK: encoding: [0xc4,0xe2,0x68,0xf2,0x12]
+andnl (%edx), %edx, %edx
+
+// CHECK: andnl %edx, %edx, %edx
+// CHECK: encoding: [0xc4,0xe2,0x68,0xf2,0xd2]
+andnl %edx, %edx, %edx
+
+// CHECK: bextrl %edx, -485498096(%edx,%eax,4), %edx
+// CHECK: encoding: [0xc4,0xe2,0x68,0xf7,0x94,0x82,0x10,0xe3,0x0f,0xe3]
+bextrl %edx, -485498096(%edx,%eax,4), %edx
+
+// CHECK: bextrl %edx, 485498096(%edx,%eax,4), %edx
+// CHECK: encoding: [0xc4,0xe2,0x68,0xf7,0x94,0x82,0xf0,0x1c,0xf0,0x1c]
+bextrl %edx, 485498096(%edx,%eax,4), %edx
+
+// CHECK: bextrl %edx, 485498096(%edx), %edx
+// CHECK: encoding: [0xc4,0xe2,0x68,0xf7,0x92,0xf0,0x1c,0xf0,0x1c]
+bextrl %edx, 485498096(%edx), %edx
+
+// CHECK: bextrl %edx, 485498096, %edx
+// CHECK: encoding: [0xc4,0xe2,0x68,0xf7,0x15,0xf0,0x1c,0xf0,0x1c]
+bextrl %edx, 485498096, %edx
+
+// CHECK: bextrl %edx, 64(%edx,%eax), %edx
+// CHECK: encoding: [0xc4,0xe2,0x68,0xf7,0x54,0x02,0x40]
+bextrl %edx, 64(%edx,%eax), %edx
+
+// CHECK: bextrl %edx, (%edx), %edx
+// CHECK: encoding: [0xc4,0xe2,0x68,0xf7,0x12]
+bextrl %edx, (%edx), %edx
+
+// CHECK: bextrl %edx, %edx, %edx
+// CHECK: encoding: [0xc4,0xe2,0x68,0xf7,0xd2]
+bextrl %edx, %edx, %edx
+
+// CHECK: blsil -485498096(%edx,%eax,4), %edx
+// CHECK: encoding: [0xc4,0xe2,0x68,0xf3,0x9c,0x82,0x10,0xe3,0x0f,0xe3]
+blsil -485498096(%edx,%eax,4), %edx
+
+// CHECK: blsil 485498096(%edx,%eax,4), %edx
+// CHECK: encoding: [0xc4,0xe2,0x68,0xf3,0x9c,0x82,0xf0,0x1c,0xf0,0x1c]
+blsil 485498096(%edx,%eax,4), %edx
+
+// CHECK: blsil 485498096(%edx), %edx
+// CHECK: encoding: [0xc4,0xe2,0x68,0xf3,0x9a,0xf0,0x1c,0xf0,0x1c]
+blsil 485498096(%edx), %edx
+
+// CHECK: blsil 485498096, %edx
+// CHECK: encoding: [0xc4,0xe2,0x68,0xf3,0x1d,0xf0,0x1c,0xf0,0x1c]
+blsil 485498096, %edx
+
+// CHECK: blsil 64(%edx,%eax), %edx
+// CHECK: encoding: [0xc4,0xe2,0x68,0xf3,0x5c,0x02,0x40]
+blsil 64(%edx,%eax), %edx
+
+// CHECK: blsil (%edx), %edx
+// CHECK: encoding: [0xc4,0xe2,0x68,0xf3,0x1a]
+blsil (%edx), %edx
+
+// CHECK: blsil %edx, %edx
+// CHECK: encoding: [0xc4,0xe2,0x68,0xf3,0xda]
+blsil %edx, %edx
+
+// CHECK: blsmskl -485498096(%edx,%eax,4), %edx
+// CHECK: encoding: [0xc4,0xe2,0x68,0xf3,0x94,0x82,0x10,0xe3,0x0f,0xe3]
+blsmskl -485498096(%edx,%eax,4), %edx
+
+// CHECK: blsmskl 485498096(%edx,%eax,4), %edx
+// CHECK: encoding: [0xc4,0xe2,0x68,0xf3,0x94,0x82,0xf0,0x1c,0xf0,0x1c]
+blsmskl 485498096(%edx,%eax,4), %edx
+
+// CHECK: blsmskl 485498096(%edx), %edx
+// CHECK: encoding: [0xc4,0xe2,0x68,0xf3,0x92,0xf0,0x1c,0xf0,0x1c]
+blsmskl 485498096(%edx), %edx
+
+// CHECK: blsmskl 485498096, %edx
+// CHECK: encoding: [0xc4,0xe2,0x68,0xf3,0x15,0xf0,0x1c,0xf0,0x1c]
+blsmskl 485498096, %edx
+
+// CHECK: blsmskl 64(%edx,%eax), %edx
+// CHECK: encoding: [0xc4,0xe2,0x68,0xf3,0x54,0x02,0x40]
+blsmskl 64(%edx,%eax), %edx
+
+// CHECK: blsmskl (%edx), %edx
+// CHECK: encoding: [0xc4,0xe2,0x68,0xf3,0x12]
+blsmskl (%edx), %edx
+
+// CHECK: blsmskl %edx, %edx
+// CHECK: encoding: [0xc4,0xe2,0x68,0xf3,0xd2]
+blsmskl %edx, %edx
+
+// CHECK: blsrl -485498096(%edx,%eax,4), %edx
+// CHECK: encoding: [0xc4,0xe2,0x68,0xf3,0x8c,0x82,0x10,0xe3,0x0f,0xe3]
+blsrl -485498096(%edx,%eax,4), %edx
+
+// CHECK: blsrl 485498096(%edx,%eax,4), %edx
+// CHECK: encoding: [0xc4,0xe2,0x68,0xf3,0x8c,0x82,0xf0,0x1c,0xf0,0x1c]
+blsrl 485498096(%edx,%eax,4), %edx
+
+// CHECK: blsrl 485498096(%edx), %edx
+// CHECK: encoding: [0xc4,0xe2,0x68,0xf3,0x8a,0xf0,0x1c,0xf0,0x1c]
+blsrl 485498096(%edx), %edx
+
+// CHECK: blsrl 485498096, %edx
+// CHECK: encoding: [0xc4,0xe2,0x68,0xf3,0x0d,0xf0,0x1c,0xf0,0x1c]
+blsrl 485498096, %edx
+
+// CHECK: blsrl 64(%edx,%eax), %edx
+// CHECK: encoding: [0xc4,0xe2,0x68,0xf3,0x4c,0x02,0x40]
+blsrl 64(%edx,%eax), %edx
+
+// CHECK: blsrl (%edx), %edx
+// CHECK: encoding: [0xc4,0xe2,0x68,0xf3,0x0a]
+blsrl (%edx), %edx
+
+// CHECK: blsrl %edx, %edx
+// CHECK: encoding: [0xc4,0xe2,0x68,0xf3,0xca]
+blsrl %edx, %edx
+
diff --git a/test/MC/X86/BMI1-64.s b/test/MC/X86/BMI1-64.s
new file mode 100644
index 00000000000..7865866234f
--- /dev/null
+++ b/test/MC/X86/BMI1-64.s
@@ -0,0 +1,286 @@
+// RUN: llvm-mc -triple x86_64-unknown-unknown --show-encoding %s | FileCheck %s
+
+// CHECK: andnl 485498096, %r13d, %r13d
+// CHECK: encoding: [0xc4,0x62,0x10,0xf2,0x2c,0x25,0xf0,0x1c,0xf0,0x1c]
+andnl 485498096, %r13d, %r13d
+
+// CHECK: andnl 64(%rdx), %r13d, %r13d
+// CHECK: encoding: [0xc4,0x62,0x10,0xf2,0x6a,0x40]
+andnl 64(%rdx), %r13d, %r13d
+
+// CHECK: andnl 64(%rdx,%rax,4), %r13d, %r13d
+// CHECK: encoding: [0xc4,0x62,0x10,0xf2,0x6c,0x82,0x40]
+andnl 64(%rdx,%rax,4), %r13d, %r13d
+
+// CHECK: andnl -64(%rdx,%rax,4), %r13d, %r13d
+// CHECK: encoding: [0xc4,0x62,0x10,0xf2,0x6c,0x82,0xc0]
+andnl -64(%rdx,%rax,4), %r13d, %r13d
+
+// CHECK: andnl 64(%rdx,%rax), %r13d, %r13d
+// CHECK: encoding: [0xc4,0x62,0x10,0xf2,0x6c,0x02,0x40]
+andnl 64(%rdx,%rax), %r13d, %r13d
+
+// CHECK: andnl %r13d, %r13d, %r13d
+// CHECK: encoding: [0xc4,0x42,0x10,0xf2,0xed]
+andnl %r13d, %r13d, %r13d
+
+// CHECK: andnl (%rdx), %r13d, %r13d
+// CHECK: encoding: [0xc4,0x62,0x10,0xf2,0x2a]
+andnl (%rdx), %r13d, %r13d
+
+// CHECK: andnq 485498096, %r15, %r15
+// CHECK: encoding: [0xc4,0x62,0x80,0xf2,0x3c,0x25,0xf0,0x1c,0xf0,0x1c]
+andnq 485498096, %r15, %r15
+
+// CHECK: andnq 64(%rdx), %r15, %r15
+// CHECK: encoding: [0xc4,0x62,0x80,0xf2,0x7a,0x40]
+andnq 64(%rdx), %r15, %r15
+
+// CHECK: andnq 64(%rdx,%rax,4), %r15, %r15
+// CHECK: encoding: [0xc4,0x62,0x80,0xf2,0x7c,0x82,0x40]
+andnq 64(%rdx,%rax,4), %r15, %r15
+
+// CHECK: andnq -64(%rdx,%rax,4), %r15, %r15
+// CHECK: encoding: [0xc4,0x62,0x80,0xf2,0x7c,0x82,0xc0]
+andnq -64(%rdx,%rax,4), %r15, %r15
+
+// CHECK: andnq 64(%rdx,%rax), %r15, %r15
+// CHECK: encoding: [0xc4,0x62,0x80,0xf2,0x7c,0x02,0x40]
+andnq 64(%rdx,%rax), %r15, %r15
+
+// CHECK: andnq %r15, %r15, %r15
+// CHECK: encoding: [0xc4,0x42,0x80,0xf2,0xff]
+andnq %r15, %r15, %r15
+
+// CHECK: andnq (%rdx), %r15, %r15
+// CHECK: encoding: [0xc4,0x62,0x80,0xf2,0x3a]
+andnq (%rdx), %r15, %r15
+
+// CHECK: bextrl %r13d, 485498096, %r13d
+// CHECK: encoding: [0xc4,0x62,0x10,0xf7,0x2c,0x25,0xf0,0x1c,0xf0,0x1c]
+bextrl %r13d, 485498096, %r13d
+
+// CHECK: bextrl %r13d, 64(%rdx), %r13d
+// CHECK: encoding: [0xc4,0x62,0x10,0xf7,0x6a,0x40]
+bextrl %r13d, 64(%rdx), %r13d
+
+// CHECK: bextrl %r13d, 64(%rdx,%rax,4), %r13d
+// CHECK: encoding: [0xc4,0x62,0x10,0xf7,0x6c,0x82,0x40]
+bextrl %r13d, 64(%rdx,%rax,4), %r13d
+
+// CHECK: bextrl %r13d, -64(%rdx,%rax,4), %r13d
+// CHECK: encoding: [0xc4,0x62,0x10,0xf7,0x6c,0x82,0xc0]
+bextrl %r13d, -64(%rdx,%rax,4), %r13d
+
+// CHECK: bextrl %r13d, 64(%rdx,%rax), %r13d
+// CHECK: encoding: [0xc4,0x62,0x10,0xf7,0x6c,0x02,0x40]
+bextrl %r13d, 64(%rdx,%rax), %r13d
+
+// CHECK: bextrl %r13d, %r13d, %r13d
+// CHECK: encoding: [0xc4,0x42,0x10,0xf7,0xed]
+bextrl %r13d, %r13d, %r13d
+
+// CHECK: bextrl %r13d, (%rdx), %r13d
+// CHECK: encoding: [0xc4,0x62,0x10,0xf7,0x2a]
+bextrl %r13d, (%rdx), %r13d
+
+// CHECK: bextrq %r15, 485498096, %r15
+// CHECK: encoding: [0xc4,0x62,0x80,0xf7,0x3c,0x25,0xf0,0x1c,0xf0,0x1c]
+bextrq %r15, 485498096, %r15
+
+// CHECK: bextrq %r15, 64(%rdx), %r15
+// CHECK: encoding: [0xc4,0x62,0x80,0xf7,0x7a,0x40]
+bextrq %r15, 64(%rdx), %r15
+
+// CHECK: bextrq %r15, 64(%rdx,%rax,4), %r15
+// CHECK: encoding: [0xc4,0x62,0x80,0xf7,0x7c,0x82,0x40]
+bextrq %r15, 64(%rdx,%rax,4), %r15
+
+// CHECK: bextrq %r15, -64(%rdx,%rax,4), %r15
+// CHECK: encoding: [0xc4,0x62,0x80,0xf7,0x7c,0x82,0xc0]
+bextrq %r15, -64(%rdx,%rax,4), %r15
+
+// CHECK: bextrq %r15, 64(%rdx,%rax), %r15
+// CHECK: encoding: [0xc4,0x62,0x80,0xf7,0x7c,0x02,0x40]
+bextrq %r15, 64(%rdx,%rax), %r15
+
+// CHECK: bextrq %r15, %r15, %r15
+// CHECK: encoding: [0xc4,0x42,0x80,0xf7,0xff]
+bextrq %r15, %r15, %r15
+
+// CHECK: bextrq %r15, (%rdx), %r15
+// CHECK: encoding: [0xc4,0x62,0x80,0xf7,0x3a]
+bextrq %r15, (%rdx), %r15
+
+// CHECK: blsil 485498096, %r13d
+// CHECK: encoding: [0xc4,0xe2,0x10,0xf3,0x1c,0x25,0xf0,0x1c,0xf0,0x1c]
+blsil 485498096, %r13d
+
+// CHECK: blsil 64(%rdx), %r13d
+// CHECK: encoding: [0xc4,0xe2,0x10,0xf3,0x5a,0x40]
+blsil 64(%rdx), %r13d
+
+// CHECK: blsil 64(%rdx,%rax,4), %r13d
+// CHECK: encoding: [0xc4,0xe2,0x10,0xf3,0x5c,0x82,0x40]
+blsil 64(%rdx,%rax,4), %r13d
+
+// CHECK: blsil -64(%rdx,%rax,4), %r13d
+// CHECK: encoding: [0xc4,0xe2,0x10,0xf3,0x5c,0x82,0xc0]
+blsil -64(%rdx,%rax,4), %r13d
+
+// CHECK: blsil 64(%rdx,%rax), %r13d
+// CHECK: encoding: [0xc4,0xe2,0x10,0xf3,0x5c,0x02,0x40]
+blsil 64(%rdx,%rax), %r13d
+
+// CHECK: blsil %r13d, %r13d
+// CHECK: encoding: [0xc4,0xc2,0x10,0xf3,0xdd]
+blsil %r13d, %r13d
+
+// CHECK: blsil (%rdx), %r13d
+// CHECK: encoding: [0xc4,0xe2,0x10,0xf3,0x1a]
+blsil (%rdx), %r13d
+
+// CHECK: blsiq 485498096, %r15
+// CHECK: encoding: [0xc4,0xe2,0x80,0xf3,0x1c,0x25,0xf0,0x1c,0xf0,0x1c]
+blsiq 485498096, %r15
+
+// CHECK: blsiq 64(%rdx), %r15
+// CHECK: encoding: [0xc4,0xe2,0x80,0xf3,0x5a,0x40]
+blsiq 64(%rdx), %r15
+
+// CHECK: blsiq 64(%rdx,%rax,4), %r15
+// CHECK: encoding: [0xc4,0xe2,0x80,0xf3,0x5c,0x82,0x40]
+blsiq 64(%rdx,%rax,4), %r15
+
+// CHECK: blsiq -64(%rdx,%rax,4), %r15
+// CHECK: encoding: [0xc4,0xe2,0x80,0xf3,0x5c,0x82,0xc0]
+blsiq -64(%rdx,%rax,4), %r15
+
+// CHECK: blsiq 64(%rdx,%rax), %r15
+// CHECK: encoding: [0xc4,0xe2,0x80,0xf3,0x5c,0x02,0x40]
+blsiq 64(%rdx,%rax), %r15
+
+// CHECK: blsiq %r15, %r15
+// CHECK: encoding: [0xc4,0xc2,0x80,0xf3,0xdf]
+blsiq %r15, %r15
+
+// CHECK: blsiq (%rdx), %r15
+// CHECK: encoding: [0xc4,0xe2,0x80,0xf3,0x1a]
+blsiq (%rdx), %r15
+
+// CHECK: blsmskl 485498096, %r13d
+// CHECK: encoding: [0xc4,0xe2,0x10,0xf3,0x14,0x25,0xf0,0x1c,0xf0,0x1c]
+blsmskl 485498096, %r13d
+
+// CHECK: blsmskl 64(%rdx), %r13d
+// CHECK: encoding: [0xc4,0xe2,0x10,0xf3,0x52,0x40]
+blsmskl 64(%rdx), %r13d
+
+// CHECK: blsmskl 64(%rdx,%rax,4), %r13d
+// CHECK: encoding: [0xc4,0xe2,0x10,0xf3,0x54,0x82,0x40]
+blsmskl 64(%rdx,%rax,4), %r13d
+
+// CHECK: blsmskl -64(%rdx,%rax,4), %r13d
+// CHECK: encoding: [0xc4,0xe2,0x10,0xf3,0x54,0x82,0xc0]
+blsmskl -64(%rdx,%rax,4), %r13d
+
+// CHECK: blsmskl 64(%rdx,%rax), %r13d
+// CHECK: encoding: [0xc4,0xe2,0x10,0xf3,0x54,0x02,0x40]
+blsmskl 64(%rdx,%rax), %r13d
+
+// CHECK: blsmskl %r13d, %r13d
+// CHECK: encoding: [0xc4,0xc2,0x10,0xf3,0xd5]
+blsmskl %r13d, %r13d
+
+// CHECK: blsmskl (%rdx), %r13d
+// CHECK: encoding: [0xc4,0xe2,0x10,0xf3,0x12]
+blsmskl (%rdx), %r13d
+
+// CHECK: blsmskq 485498096, %r15
+// CHECK: encoding: [0xc4,0xe2,0x80,0xf3,0x14,0x25,0xf0,0x1c,0xf0,0x1c]
+blsmskq 485498096, %r15
+
+// CHECK: blsmskq 64(%rdx), %r15
+// CHECK: encoding: [0xc4,0xe2,0x80,0xf3,0x52,0x40]
+blsmskq 64(%rdx), %r15
+
+// CHECK: blsmskq 64(%rdx,%rax,4), %r15
+// CHECK: encoding: [0xc4,0xe2,0x80,0xf3,0x54,0x82,0x40]
+blsmskq 64(%rdx,%rax,4), %r15
+
+// CHECK: blsmskq -64(%rdx,%rax,4), %r15
+// CHECK: encoding: [0xc4,0xe2,0x80,0xf3,0x54,0x82,0xc0]
+blsmskq -64(%rdx,%rax,4), %r15
+
+// CHECK: blsmskq 64(%rdx,%rax), %r15
+// CHECK: encoding: [0xc4,0xe2,0x80,0xf3,0x54,0x02,0x40]
+blsmskq 64(%rdx,%rax), %r15
+
+// CHECK: blsmskq %r15, %r15
+// CHECK: encoding: [0xc4,0xc2,0x80,0xf3,0xd7]
+blsmskq %r15, %r15
+
+// CHECK: blsmskq (%rdx), %r15
+// CHECK: encoding: [0xc4,0xe2,0x80,0xf3,0x12]
+blsmskq (%rdx), %r15
+
+// CHECK: blsrl 485498096, %r13d
+// CHECK: encoding: [0xc4,0xe2,0x10,0xf3,0x0c,0x25,0xf0,0x1c,0xf0,0x1c]
+blsrl 485498096, %r13d
+
+// CHECK: blsrl 64(%rdx), %r13d
+// CHECK: encoding: [0xc4,0xe2,0x10,0xf3,0x4a,0x40]
+blsrl 64(%rdx), %r13d
+
+// CHECK: blsrl 64(%rdx,%rax,4), %r13d
+// CHECK: encoding: [0xc4,0xe2,0x10,0xf3,0x4c,0x82,0x40]
+blsrl 64(%rdx,%rax,4), %r13d
+
+// CHECK: blsrl -64(%rdx,%rax,4), %r13d
+// CHECK: encoding: [0xc4,0xe2,0x10,0xf3,0x4c,0x82,0xc0]
+blsrl -64(%rdx,%rax,4), %r13d
+
+// CHECK: blsrl 64(%rdx,%rax), %r13d
+// CHECK: encoding: [0xc4,0xe2,0x10,0xf3,0x4c,0x02,0x40]
+blsrl 64(%rdx,%rax), %r13d
+
+// CHECK: blsrl %r13d, %r13d
+// CHECK: encoding: [0xc4,0xc2,0x10,0xf3,0xcd]
+blsrl %r13d, %r13d
+
+// CHECK: blsrl (%rdx), %r13d
+// CHECK: encoding: [0xc4,0xe2,0x10,0xf3,0x0a]
+blsrl (%rdx), %r13d
+
+// CHECK: blsrq 485498096, %r15
+// CHECK: encoding: [0xc4,0xe2,0x80,0xf3,0x0c,0x25,0xf0,0x1c,0xf0,0x1c]
+blsrq 485498096, %r15
+
+// CHECK: blsrq 64(%rdx), %r15
+// CHECK: encoding: [0xc4,0xe2,0x80,0xf3,0x4a,0x40]
+blsrq 64(%rdx), %r15
+
+// CHECK: blsrq 64(%rdx,%rax,4), %r15
+// CHECK: encoding: [0xc4,0xe2,0x80,0xf3,0x4c,0x82,0x40]
+blsrq 64(%rdx,%rax,4), %r15
+
+// CHECK: blsrq -64(%rdx,%rax,4), %r15
+// CHECK: encoding: [0xc4,0xe2,0x80,0xf3,0x4c,0x82,0xc0]
+blsrq -64(%rdx,%rax,4), %r15
+
+// CHECK: blsrq 64(%rdx,%rax), %r15
+// CHECK: encoding: [0xc4,0xe2,0x80,0xf3,0x4c,0x02,0x40]
+blsrq 64(%rdx,%rax), %r15
+
+// CHECK: blsrq %r15, %r15
+// CHECK: encoding: [0xc4,0xc2,0x80,0xf3,0xcf]
+blsrq %r15, %r15
+
+// CHECK: blsrq (%rdx), %r15
+// CHECK: encoding: [0xc4,0xe2,0x80,0xf3,0x0a]
+blsrq (%rdx), %r15
+
+// CHECK: tzcntl %r13d, %r13d
+// CHECK: encoding: [0xf3,0x45,0x0f,0xbc,0xed]
+tzcntl %r13d, %r13d
+
diff --git a/test/MC/X86/BMI2-32.s b/test/MC/X86/BMI2-32.s
new file mode 100644
index 00000000000..9d168ec484a
--- /dev/null
+++ b/test/MC/X86/BMI2-32.s
@@ -0,0 +1,226 @@
+// RUN: llvm-mc -triple i386-unknown-unknown --show-encoding %s | FileCheck %s
+
+// CHECK: bzhil %edx, -485498096(%edx,%eax,4), %edx
+// CHECK: encoding: [0xc4,0xe2,0x68,0xf5,0x94,0x82,0x10,0xe3,0x0f,0xe3]
+bzhil %edx, -485498096(%edx,%eax,4), %edx
+
+// CHECK: bzhil %edx, 485498096(%edx,%eax,4), %edx
+// CHECK: encoding: [0xc4,0xe2,0x68,0xf5,0x94,0x82,0xf0,0x1c,0xf0,0x1c]
+bzhil %edx, 485498096(%edx,%eax,4), %edx
+
+// CHECK: bzhil %edx, 485498096(%edx), %edx
+// CHECK: encoding: [0xc4,0xe2,0x68,0xf5,0x92,0xf0,0x1c,0xf0,0x1c]
+bzhil %edx, 485498096(%edx), %edx
+
+// CHECK: bzhil %edx, 485498096, %edx
+// CHECK: encoding: [0xc4,0xe2,0x68,0xf5,0x15,0xf0,0x1c,0xf0,0x1c]
+bzhil %edx, 485498096, %edx
+
+// CHECK: bzhil %edx, 64(%edx,%eax), %edx
+// CHECK: encoding: [0xc4,0xe2,0x68,0xf5,0x54,0x02,0x40]
+bzhil %edx, 64(%edx,%eax), %edx
+
+// CHECK: bzhil %edx, (%edx), %edx
+// CHECK: encoding: [0xc4,0xe2,0x68,0xf5,0x12]
+bzhil %edx, (%edx), %edx
+
+// CHECK: bzhil %edx, %edx, %edx
+// CHECK: encoding: [0xc4,0xe2,0x68,0xf5,0xd2]
+bzhil %edx, %edx, %edx
+
+// CHECK: mulxl -485498096(%edx,%eax,4), %edx, %edx
+// CHECK: encoding: [0xc4,0xe2,0x6b,0xf6,0x94,0x82,0x10,0xe3,0x0f,0xe3]
+mulxl -485498096(%edx,%eax,4), %edx, %edx
+
+// CHECK: mulxl 485498096(%edx,%eax,4), %edx, %edx
+// CHECK: encoding: [0xc4,0xe2,0x6b,0xf6,0x94,0x82,0xf0,0x1c,0xf0,0x1c]
+mulxl 485498096(%edx,%eax,4), %edx, %edx
+
+// CHECK: mulxl 485498096(%edx), %edx, %edx
+// CHECK: encoding: [0xc4,0xe2,0x6b,0xf6,0x92,0xf0,0x1c,0xf0,0x1c]
+mulxl 485498096(%edx), %edx, %edx
+
+// CHECK: mulxl 485498096, %edx, %edx
+// CHECK: encoding: [0xc4,0xe2,0x6b,0xf6,0x15,0xf0,0x1c,0xf0,0x1c]
+mulxl 485498096, %edx, %edx
+
+// CHECK: mulxl 64(%edx,%eax), %edx, %edx
+// CHECK: encoding: [0xc4,0xe2,0x6b,0xf6,0x54,0x02,0x40]
+mulxl 64(%edx,%eax), %edx, %edx
+
+// CHECK: mulxl (%edx), %edx, %edx
+// CHECK: encoding: [0xc4,0xe2,0x6b,0xf6,0x12]
+mulxl (%edx), %edx, %edx
+
+// CHECK: mulxl %edx, %edx, %edx
+// CHECK: encoding: [0xc4,0xe2,0x6b,0xf6,0xd2]
+mulxl %edx, %edx, %edx
+
+// CHECK: pdepl -485498096(%edx,%eax,4), %edx, %edx
+// CHECK: encoding: [0xc4,0xe2,0x6b,0xf5,0x94,0x82,0x10,0xe3,0x0f,0xe3]
+pdepl -485498096(%edx,%eax,4), %edx, %edx
+
+// CHECK: pdepl 485498096(%edx,%eax,4), %edx, %edx
+// CHECK: encoding: [0xc4,0xe2,0x6b,0xf5,0x94,0x82,0xf0,0x1c,0xf0,0x1c]
+pdepl 485498096(%edx,%eax,4), %edx, %edx
+
+// CHECK: pdepl 485498096(%edx), %edx, %edx
+// CHECK: encoding: [0xc4,0xe2,0x6b,0xf5,0x92,0xf0,0x1c,0xf0,0x1c]
+pdepl 485498096(%edx), %edx, %edx
+
+// CHECK: pdepl 485498096, %edx, %edx
+// CHECK: encoding: [0xc4,0xe2,0x6b,0xf5,0x15,0xf0,0x1c,0xf0,0x1c]
+pdepl 485498096, %edx, %edx
+
+// CHECK: pdepl 64(%edx,%eax), %edx, %edx
+// CHECK: encoding: [0xc4,0xe2,0x6b,0xf5,0x54,0x02,0x40]
+pdepl 64(%edx,%eax), %edx, %edx
+
+// CHECK: pdepl (%edx), %edx, %edx
+// CHECK: encoding: [0xc4,0xe2,0x6b,0xf5,0x12]
+pdepl (%edx), %edx, %edx
+
+// CHECK: pdepl %edx, %edx, %edx
+// CHECK: encoding: [0xc4,0xe2,0x6b,0xf5,0xd2]
+pdepl %edx, %edx, %edx
+
+// CHECK: pextl -485498096(%edx,%eax,4), %edx, %edx
+// CHECK: encoding: [0xc4,0xe2,0x6a,0xf5,0x94,0x82,0x10,0xe3,0x0f,0xe3]
+pextl -485498096(%edx,%eax,4), %edx, %edx
+
+// CHECK: pextl 485498096(%edx,%eax,4), %edx, %edx
+// CHECK: encoding: [0xc4,0xe2,0x6a,0xf5,0x94,0x82,0xf0,0x1c,0xf0,0x1c]
+pextl 485498096(%edx,%eax,4), %edx, %edx
+
+// CHECK: pextl 485498096(%edx), %edx, %edx
+// CHECK: encoding: [0xc4,0xe2,0x6a,0xf5,0x92,0xf0,0x1c,0xf0,0x1c]
+pextl 485498096(%edx), %edx, %edx
+
+// CHECK: pextl 485498096, %edx, %edx
+// CHECK: encoding: [0xc4,0xe2,0x6a,0xf5,0x15,0xf0,0x1c,0xf0,0x1c]
+pextl 485498096, %edx, %edx
+
+// CHECK: pextl 64(%edx,%eax), %edx, %edx
+// CHECK: encoding: [0xc4,0xe2,0x6a,0xf5,0x54,0x02,0x40]
+pextl 64(%edx,%eax), %edx, %edx
+
+// CHECK: pextl (%edx), %edx, %edx
+// CHECK: encoding: [0xc4,0xe2,0x6a,0xf5,0x12]
+pextl (%edx), %edx, %edx
+
+// CHECK: pextl %edx, %edx, %edx
+// CHECK: encoding: [0xc4,0xe2,0x6a,0xf5,0xd2]
+pextl %edx, %edx, %edx
+
+// CHECK: rorxl $0, -485498096(%edx,%eax,4), %edx
+// CHECK: encoding: [0xc4,0xe3,0x7b,0xf0,0x94,0x82,0x10,0xe3,0x0f,0xe3,0x00]
+rorxl $0, -485498096(%edx,%eax,4), %edx
+
+// CHECK: rorxl $0, 485498096(%edx,%eax,4), %edx
+// CHECK: encoding: [0xc4,0xe3,0x7b,0xf0,0x94,0x82,0xf0,0x1c,0xf0,0x1c,0x00]
+rorxl $0, 485498096(%edx,%eax,4), %edx
+
+// CHECK: rorxl $0, 485498096(%edx), %edx
+// CHECK: encoding: [0xc4,0xe3,0x7b,0xf0,0x92,0xf0,0x1c,0xf0,0x1c,0x00]
+rorxl $0, 485498096(%edx), %edx
+
+// CHECK: rorxl $0, 485498096, %edx
+// CHECK: encoding: [0xc4,0xe3,0x7b,0xf0,0x15,0xf0,0x1c,0xf0,0x1c,0x00]
+rorxl $0, 485498096, %edx
+
+// CHECK: rorxl $0, 64(%edx,%eax), %edx
+// CHECK: encoding: [0xc4,0xe3,0x7b,0xf0,0x54,0x02,0x40,0x00]
+rorxl $0, 64(%edx,%eax), %edx
+
+// CHECK: rorxl $0, (%edx), %edx
+// CHECK: encoding: [0xc4,0xe3,0x7b,0xf0,0x12,0x00]
+rorxl $0, (%edx), %edx
+
+// CHECK: rorxl $0, %edx, %edx
+// CHECK: encoding: [0xc4,0xe3,0x7b,0xf0,0xd2,0x00]
+rorxl $0, %edx, %edx
+
+// CHECK: sarxl %edx, -485498096(%edx,%eax,4), %edx
+// CHECK: encoding: [0xc4,0xe2,0x6a,0xf7,0x94,0x82,0x10,0xe3,0x0f,0xe3]
+sarxl %edx, -485498096(%edx,%eax,4), %edx
+
+// CHECK: sarxl %edx, 485498096(%edx,%eax,4), %edx
+// CHECK: encoding: [0xc4,0xe2,0x6a,0xf7,0x94,0x82,0xf0,0x1c,0xf0,0x1c]
+sarxl %edx, 485498096(%edx,%eax,4), %edx
+
+// CHECK: sarxl %edx, 485498096(%edx), %edx
+// CHECK: encoding: [0xc4,0xe2,0x6a,0xf7,0x92,0xf0,0x1c,0xf0,0x1c]
+sarxl %edx, 485498096(%edx), %edx
+
+// CHECK: sarxl %edx, 485498096, %edx
+// CHECK: encoding: [0xc4,0xe2,0x6a,0xf7,0x15,0xf0,0x1c,0xf0,0x1c]
+sarxl %edx, 485498096, %edx
+
+// CHECK: sarxl %edx, 64(%edx,%eax), %edx
+// CHECK: encoding: [0xc4,0xe2,0x6a,0xf7,0x54,0x02,0x40]
+sarxl %edx, 64(%edx,%eax), %edx
+
+// CHECK: sarxl %edx, (%edx), %edx
+// CHECK: encoding: [0xc4,0xe2,0x6a,0xf7,0x12]
+sarxl %edx, (%edx), %edx
+
+// CHECK: sarxl %edx, %edx, %edx
+// CHECK: encoding: [0xc4,0xe2,0x6a,0xf7,0xd2]
+sarxl %edx, %edx, %edx
+
+// CHECK: shlxl %edx, -485498096(%edx,%eax,4), %edx
+// CHECK: encoding: [0xc4,0xe2,0x69,0xf7,0x94,0x82,0x10,0xe3,0x0f,0xe3]
+shlxl %edx, -485498096(%edx,%eax,4), %edx
+
+// CHECK: shlxl %edx, 485498096(%edx,%eax,4), %edx
+// CHECK: encoding: [0xc4,0xe2,0x69,0xf7,0x94,0x82,0xf0,0x1c,0xf0,0x1c]
+shlxl %edx, 485498096(%edx,%eax,4), %edx
+
+// CHECK: shlxl %edx, 485498096(%edx), %edx
+// CHECK: encoding: [0xc4,0xe2,0x69,0xf7,0x92,0xf0,0x1c,0xf0,0x1c]
+shlxl %edx, 485498096(%edx), %edx
+
+// CHECK: shlxl %edx, 485498096, %edx
+// CHECK: encoding: [0xc4,0xe2,0x69,0xf7,0x15,0xf0,0x1c,0xf0,0x1c]
+shlxl %edx, 485498096, %edx
+
+// CHECK: shlxl %edx, 64(%edx,%eax), %edx
+// CHECK: encoding: [0xc4,0xe2,0x69,0xf7,0x54,0x02,0x40]
+shlxl %edx, 64(%edx,%eax), %edx
+
+// CHECK: shlxl %edx, (%edx), %edx
+// CHECK: encoding: [0xc4,0xe2,0x69,0xf7,0x12]
+shlxl %edx, (%edx), %edx
+
+// CHECK: shlxl %edx, %edx, %edx
+// CHECK: encoding: [0xc4,0xe2,0x69,0xf7,0xd2]
+shlxl %edx, %edx, %edx
+
+// CHECK: shrxl %edx, -485498096(%edx,%eax,4), %edx
+// CHECK: encoding: [0xc4,0xe2,0x6b,0xf7,0x94,0x82,0x10,0xe3,0x0f,0xe3]
+shrxl %edx, -485498096(%edx,%eax,4), %edx
+
+// CHECK: shrxl %edx, 485498096(%edx,%eax,4), %edx
+// CHECK: encoding: [0xc4,0xe2,0x6b,0xf7,0x94,0x82,0xf0,0x1c,0xf0,0x1c]
+shrxl %edx, 485498096(%edx,%eax,4), %edx
+
+// CHECK: shrxl %edx, 485498096(%edx), %edx
+// CHECK: encoding: [0xc4,0xe2,0x6b,0xf7,0x92,0xf0,0x1c,0xf0,0x1c]
+shrxl %edx, 485498096(%edx), %edx
+
+// CHECK: shrxl %edx, 485498096, %edx
+// CHECK: encoding: [0xc4,0xe2,0x6b,0xf7,0x15,0xf0,0x1c,0xf0,0x1c]
+shrxl %edx, 485498096, %edx
+
+// CHECK: shrxl %edx, 64(%edx,%eax), %edx
+// CHECK: encoding: [0xc4,0xe2,0x6b,0xf7,0x54,0x02,0x40]
+shrxl %edx, 64(%edx,%eax), %edx
+
+// CHECK: shrxl %edx, (%edx), %edx
+// CHECK: encoding: [0xc4,0xe2,0x6b,0xf7,0x12]
+shrxl %edx, (%edx), %edx
+
+// CHECK: shrxl %edx, %edx, %edx
+// CHECK: encoding: [0xc4,0xe2,0x6b,0xf7,0xd2]
+shrxl %edx, %edx, %edx
+
diff --git a/test/MC/X86/BMI2-64.s b/test/MC/X86/BMI2-64.s
new file mode 100644
index 00000000000..4417cc12a74
--- /dev/null
+++ b/test/MC/X86/BMI2-64.s
@@ -0,0 +1,450 @@
+// RUN: llvm-mc -triple x86_64-unknown-unknown --show-encoding %s | FileCheck %s
+
+// CHECK: bzhil %r13d, 485498096, %r13d
+// CHECK: encoding: [0xc4,0x62,0x10,0xf5,0x2c,0x25,0xf0,0x1c,0xf0,0x1c]
+bzhil %r13d, 485498096, %r13d
+
+// CHECK: bzhil %r13d, 64(%rdx), %r13d
+// CHECK: encoding: [0xc4,0x62,0x10,0xf5,0x6a,0x40]
+bzhil %r13d, 64(%rdx), %r13d
+
+// CHECK: bzhil %r13d, 64(%rdx,%rax,4), %r13d
+// CHECK: encoding: [0xc4,0x62,0x10,0xf5,0x6c,0x82,0x40]
+bzhil %r13d, 64(%rdx,%rax,4), %r13d
+
+// CHECK: bzhil %r13d, -64(%rdx,%rax,4), %r13d
+// CHECK: encoding: [0xc4,0x62,0x10,0xf5,0x6c,0x82,0xc0]
+bzhil %r13d, -64(%rdx,%rax,4), %r13d
+
+// CHECK: bzhil %r13d, 64(%rdx,%rax), %r13d
+// CHECK: encoding: [0xc4,0x62,0x10,0xf5,0x6c,0x02,0x40]
+bzhil %r13d, 64(%rdx,%rax), %r13d
+
+// CHECK: bzhil %r13d, %r13d, %r13d
+// CHECK: encoding: [0xc4,0x42,0x10,0xf5,0xed]
+bzhil %r13d, %r13d, %r13d
+
+// CHECK: bzhil %r13d, (%rdx), %r13d
+// CHECK: encoding: [0xc4,0x62,0x10,0xf5,0x2a]
+bzhil %r13d, (%rdx), %r13d
+
+// CHECK: bzhiq %r15, 485498096, %r15
+// CHECK: encoding: [0xc4,0x62,0x80,0xf5,0x3c,0x25,0xf0,0x1c,0xf0,0x1c]
+bzhiq %r15, 485498096, %r15
+
+// CHECK: bzhiq %r15, 64(%rdx), %r15
+// CHECK: encoding: [0xc4,0x62,0x80,0xf5,0x7a,0x40]
+bzhiq %r15, 64(%rdx), %r15
+
+// CHECK: bzhiq %r15, 64(%rdx,%rax,4), %r15
+// CHECK: encoding: [0xc4,0x62,0x80,0xf5,0x7c,0x82,0x40]
+bzhiq %r15, 64(%rdx,%rax,4), %r15
+
+// CHECK: bzhiq %r15, -64(%rdx,%rax,4), %r15
+// CHECK: encoding: [0xc4,0x62,0x80,0xf5,0x7c,0x82,0xc0]
+bzhiq %r15, -64(%rdx,%rax,4), %r15
+
+// CHECK: bzhiq %r15, 64(%rdx,%rax), %r15
+// CHECK: encoding: [0xc4,0x62,0x80,0xf5,0x7c,0x02,0x40]
+bzhiq %r15, 64(%rdx,%rax), %r15
+
+// CHECK: bzhiq %r15, %r15, %r15
+// CHECK: encoding: [0xc4,0x42,0x80,0xf5,0xff]
+bzhiq %r15, %r15, %r15
+
+// CHECK: bzhiq %r15, (%rdx), %r15
+// CHECK: encoding: [0xc4,0x62,0x80,0xf5,0x3a]
+bzhiq %r15, (%rdx), %r15
+
+// CHECK: mulxl 485498096, %r13d, %r13d
+// CHECK: encoding: [0xc4,0x62,0x13,0xf6,0x2c,0x25,0xf0,0x1c,0xf0,0x1c]
+mulxl 485498096, %r13d, %r13d
+
+// CHECK: mulxl 64(%rdx), %r13d, %r13d
+// CHECK: encoding: [0xc4,0x62,0x13,0xf6,0x6a,0x40]
+mulxl 64(%rdx), %r13d, %r13d
+
+// CHECK: mulxl 64(%rdx,%rax,4), %r13d, %r13d
+// CHECK: encoding: [0xc4,0x62,0x13,0xf6,0x6c,0x82,0x40]
+mulxl 64(%rdx,%rax,4), %r13d, %r13d
+
+// CHECK: mulxl -64(%rdx,%rax,4), %r13d, %r13d
+// CHECK: encoding: [0xc4,0x62,0x13,0xf6,0x6c,0x82,0xc0]
+mulxl -64(%rdx,%rax,4), %r13d, %r13d
+
+// CHECK: mulxl 64(%rdx,%rax), %r13d, %r13d
+// CHECK: encoding: [0xc4,0x62,0x13,0xf6,0x6c,0x02,0x40]
+mulxl 64(%rdx,%rax), %r13d, %r13d
+
+// CHECK: mulxl %r13d, %r13d, %r13d
+// CHECK: encoding: [0xc4,0x42,0x13,0xf6,0xed]
+mulxl %r13d, %r13d, %r13d
+
+// CHECK: mulxl (%rdx), %r13d, %r13d
+// CHECK: encoding: [0xc4,0x62,0x13,0xf6,0x2a]
+mulxl (%rdx), %r13d, %r13d
+
+// CHECK: mulxq 485498096, %r15, %r15
+// CHECK: encoding: [0xc4,0x62,0x83,0xf6,0x3c,0x25,0xf0,0x1c,0xf0,0x1c]
+mulxq 485498096, %r15, %r15
+
+// CHECK: mulxq 64(%rdx), %r15, %r15
+// CHECK: encoding: [0xc4,0x62,0x83,0xf6,0x7a,0x40]
+mulxq 64(%rdx), %r15, %r15
+
+// CHECK: mulxq 64(%rdx,%rax,4), %r15, %r15
+// CHECK: encoding: [0xc4,0x62,0x83,0xf6,0x7c,0x82,0x40]
+mulxq 64(%rdx,%rax,4), %r15, %r15
+
+// CHECK: mulxq -64(%rdx,%rax,4), %r15, %r15
+// CHECK: encoding: [0xc4,0x62,0x83,0xf6,0x7c,0x82,0xc0]
+mulxq -64(%rdx,%rax,4), %r15, %r15
+
+// CHECK: mulxq 64(%rdx,%rax), %r15, %r15
+// CHECK: encoding: [0xc4,0x62,0x83,0xf6,0x7c,0x02,0x40]
+mulxq 64(%rdx,%rax), %r15, %r15
+
+// CHECK: mulxq %r15, %r15, %r15
+// CHECK: encoding: [0xc4,0x42,0x83,0xf6,0xff]
+mulxq %r15, %r15, %r15
+
+// CHECK: mulxq (%rdx), %r15, %r15
+// CHECK: encoding: [0xc4,0x62,0x83,0xf6,0x3a]
+mulxq (%rdx), %r15, %r15
+
+// CHECK: pdepl 485498096, %r13d, %r13d
+// CHECK: encoding: [0xc4,0x62,0x13,0xf5,0x2c,0x25,0xf0,0x1c,0xf0,0x1c]
+pdepl 485498096, %r13d, %r13d
+
+// CHECK: pdepl 64(%rdx), %r13d, %r13d
+// CHECK: encoding: [0xc4,0x62,0x13,0xf5,0x6a,0x40]
+pdepl 64(%rdx), %r13d, %r13d
+
+// CHECK: pdepl 64(%rdx,%rax,4), %r13d, %r13d
+// CHECK: encoding: [0xc4,0x62,0x13,0xf5,0x6c,0x82,0x40]
+pdepl 64(%rdx,%rax,4), %r13d, %r13d
+
+// CHECK: pdepl -64(%rdx,%rax,4), %r13d, %r13d
+// CHECK: encoding: [0xc4,0x62,0x13,0xf5,0x6c,0x82,0xc0]
+pdepl -64(%rdx,%rax,4), %r13d, %r13d
+
+// CHECK: pdepl 64(%rdx,%rax), %r13d, %r13d
+// CHECK: encoding: [0xc4,0x62,0x13,0xf5,0x6c,0x02,0x40]
+pdepl 64(%rdx,%rax), %r13d, %r13d
+
+// CHECK: pdepl %r13d, %r13d, %r13d
+// CHECK: encoding: [0xc4,0x42,0x13,0xf5,0xed]
+pdepl %r13d, %r13d, %r13d
+
+// CHECK: pdepl (%rdx), %r13d, %r13d
+// CHECK: encoding: [0xc4,0x62,0x13,0xf5,0x2a]
+pdepl (%rdx), %r13d, %r13d
+
+// CHECK: pdepq 485498096, %r15, %r15
+// CHECK: encoding: [0xc4,0x62,0x83,0xf5,0x3c,0x25,0xf0,0x1c,0xf0,0x1c]
+pdepq 485498096, %r15, %r15
+
+// CHECK: pdepq 64(%rdx), %r15, %r15
+// CHECK: encoding: [0xc4,0x62,0x83,0xf5,0x7a,0x40]
+pdepq 64(%rdx), %r15, %r15
+
+// CHECK: pdepq 64(%rdx,%rax,4), %r15, %r15
+// CHECK: encoding: [0xc4,0x62,0x83,0xf5,0x7c,0x82,0x40]
+pdepq 64(%rdx,%rax,4), %r15, %r15
+
+// CHECK: pdepq -64(%rdx,%rax,4), %r15, %r15
+// CHECK: encoding: [0xc4,0x62,0x83,0xf5,0x7c,0x82,0xc0]
+pdepq -64(%rdx,%rax,4), %r15, %r15
+
+// CHECK: pdepq 64(%rdx,%rax), %r15, %r15
+// CHECK: encoding: [0xc4,0x62,0x83,0xf5,0x7c,0x02,0x40]
+pdepq 64(%rdx,%rax), %r15, %r15
+
+// CHECK: pdepq %r15, %r15, %r15
+// CHECK: encoding: [0xc4,0x42,0x83,0xf5,0xff]
+pdepq %r15, %r15, %r15
+
+// CHECK: pdepq (%rdx), %r15, %r15
+// CHECK: encoding: [0xc4,0x62,0x83,0xf5,0x3a]
+pdepq (%rdx), %r15, %r15
+
+// CHECK: pextl 485498096, %r13d, %r13d
+// CHECK: encoding: [0xc4,0x62,0x12,0xf5,0x2c,0x25,0xf0,0x1c,0xf0,0x1c]
+pextl 485498096, %r13d, %r13d
+
+// CHECK: pextl 64(%rdx), %r13d, %r13d
+// CHECK: encoding: [0xc4,0x62,0x12,0xf5,0x6a,0x40]
+pextl 64(%rdx), %r13d, %r13d
+
+// CHECK: pextl 64(%rdx,%rax,4), %r13d, %r13d
+// CHECK: encoding: [0xc4,0x62,0x12,0xf5,0x6c,0x82,0x40]
+pextl 64(%rdx,%rax,4), %r13d, %r13d
+
+// CHECK: pextl -64(%rdx,%rax,4), %r13d, %r13d
+// CHECK: encoding: [0xc4,0x62,0x12,0xf5,0x6c,0x82,0xc0]
+pextl -64(%rdx,%rax,4), %r13d, %r13d
+
+// CHECK: pextl 64(%rdx,%rax), %r13d, %r13d
+// CHECK: encoding: [0xc4,0x62,0x12,0xf5,0x6c,0x02,0x40]
+pextl 64(%rdx,%rax), %r13d, %r13d
+
+// CHECK: pextl %r13d, %r13d, %r13d
+// CHECK: encoding: [0xc4,0x42,0x12,0xf5,0xed]
+pextl %r13d, %r13d, %r13d
+
+// CHECK: pextl (%rdx), %r13d, %r13d
+// CHECK: encoding: [0xc4,0x62,0x12,0xf5,0x2a]
+pextl (%rdx), %r13d, %r13d
+
+// CHECK: pextq 485498096, %r15, %r15
+// CHECK: encoding: [0xc4,0x62,0x82,0xf5,0x3c,0x25,0xf0,0x1c,0xf0,0x1c]
+pextq 485498096, %r15, %r15
+
+// CHECK: pextq 64(%rdx), %r15, %r15
+// CHECK: encoding: [0xc4,0x62,0x82,0xf5,0x7a,0x40]
+pextq 64(%rdx), %r15, %r15
+
+// CHECK: pextq 64(%rdx,%rax,4), %r15, %r15
+// CHECK: encoding: [0xc4,0x62,0x82,0xf5,0x7c,0x82,0x40]
+pextq 64(%rdx,%rax,4), %r15, %r15
+
+// CHECK: pextq -64(%rdx,%rax,4), %r15, %r15
+// CHECK: encoding: [0xc4,0x62,0x82,0xf5,0x7c,0x82,0xc0]
+pextq -64(%rdx,%rax,4), %r15, %r15
+
+// CHECK: pextq 64(%rdx,%rax), %r15, %r15
+// CHECK: encoding: [0xc4,0x62,0x82,0xf5,0x7c,0x02,0x40]
+pextq 64(%rdx,%rax), %r15, %r15
+
+// CHECK: pextq %r15, %r15, %r15
+// CHECK: encoding: [0xc4,0x42,0x82,0xf5,0xff]
+pextq %r15, %r15, %r15
+
+// CHECK: pextq (%rdx), %r15, %r15
+// CHECK: encoding: [0xc4,0x62,0x82,0xf5,0x3a]
+pextq (%rdx), %r15, %r15
+
+// CHECK: rorxl $0, 485498096, %r13d
+// CHECK: encoding: [0xc4,0x63,0x7b,0xf0,0x2c,0x25,0xf0,0x1c,0xf0,0x1c,0x00]
+rorxl $0, 485498096, %r13d
+
+// CHECK: rorxl $0, 64(%rdx), %r13d
+// CHECK: encoding: [0xc4,0x63,0x7b,0xf0,0x6a,0x40,0x00]
+rorxl $0, 64(%rdx), %r13d
+
+// CHECK: rorxl $0, 64(%rdx,%rax,4), %r13d
+// CHECK: encoding: [0xc4,0x63,0x7b,0xf0,0x6c,0x82,0x40,0x00]
+rorxl $0, 64(%rdx,%rax,4), %r13d
+
+// CHECK: rorxl $0, -64(%rdx,%rax,4), %r13d
+// CHECK: encoding: [0xc4,0x63,0x7b,0xf0,0x6c,0x82,0xc0,0x00]
+rorxl $0, -64(%rdx,%rax,4), %r13d
+
+// CHECK: rorxl $0, 64(%rdx,%rax), %r13d
+// CHECK: encoding: [0xc4,0x63,0x7b,0xf0,0x6c,0x02,0x40,0x00]
+rorxl $0, 64(%rdx,%rax), %r13d
+
+// CHECK: rorxl $0, %r13d, %r13d
+// CHECK: encoding: [0xc4,0x43,0x7b,0xf0,0xed,0x00]
+rorxl $0, %r13d, %r13d
+
+// CHECK: rorxl $0, (%rdx), %r13d
+// CHECK: encoding: [0xc4,0x63,0x7b,0xf0,0x2a,0x00]
+rorxl $0, (%rdx), %r13d
+
+// CHECK: rorxq $0, 485498096, %r15
+// CHECK: encoding: [0xc4,0x63,0xfb,0xf0,0x3c,0x25,0xf0,0x1c,0xf0,0x1c,0x00]
+rorxq $0, 485498096, %r15
+
+// CHECK: rorxq $0, 64(%rdx), %r15
+// CHECK: encoding: [0xc4,0x63,0xfb,0xf0,0x7a,0x40,0x00]
+rorxq $0, 64(%rdx), %r15
+
+// CHECK: rorxq $0, 64(%rdx,%rax,4), %r15
+// CHECK: encoding: [0xc4,0x63,0xfb,0xf0,0x7c,0x82,0x40,0x00]
+rorxq $0, 64(%rdx,%rax,4), %r15
+
+// CHECK: rorxq $0, -64(%rdx,%rax,4), %r15
+// CHECK: encoding: [0xc4,0x63,0xfb,0xf0,0x7c,0x82,0xc0,0x00]
+rorxq $0, -64(%rdx,%rax,4), %r15
+
+// CHECK: rorxq $0, 64(%rdx,%rax), %r15
+// CHECK: encoding: [0xc4,0x63,0xfb,0xf0,0x7c,0x02,0x40,0x00]
+rorxq $0, 64(%rdx,%rax), %r15
+
+// CHECK: rorxq $0, %r15, %r15
+// CHECK: encoding: [0xc4,0x43,0xfb,0xf0,0xff,0x00]
+rorxq $0, %r15, %r15
+
+// CHECK: rorxq $0, (%rdx), %r15
+// CHECK: encoding: [0xc4,0x63,0xfb,0xf0,0x3a,0x00]
+rorxq $0, (%rdx), %r15
+
+// CHECK: sarxl %r13d, 485498096, %r13d
+// CHECK: encoding: [0xc4,0x62,0x12,0xf7,0x2c,0x25,0xf0,0x1c,0xf0,0x1c]
+sarxl %r13d, 485498096, %r13d
+
+// CHECK: sarxl %r13d, 64(%rdx), %r13d
+// CHECK: encoding: [0xc4,0x62,0x12,0xf7,0x6a,0x40]
+sarxl %r13d, 64(%rdx), %r13d
+
+// CHECK: sarxl %r13d, 64(%rdx,%rax,4), %r13d
+// CHECK: encoding: [0xc4,0x62,0x12,0xf7,0x6c,0x82,0x40]
+sarxl %r13d, 64(%rdx,%rax,4), %r13d
+
+// CHECK: sarxl %r13d, -64(%rdx,%rax,4), %r13d
+// CHECK: encoding: [0xc4,0x62,0x12,0xf7,0x6c,0x82,0xc0]
+sarxl %r13d, -64(%rdx,%rax,4), %r13d
+
+// CHECK: sarxl %r13d, 64(%rdx,%rax), %r13d
+// CHECK: encoding: [0xc4,0x62,0x12,0xf7,0x6c,0x02,0x40]
+sarxl %r13d, 64(%rdx,%rax), %r13d
+
+// CHECK: sarxl %r13d, %r13d, %r13d
+// CHECK: encoding: [0xc4,0x42,0x12,0xf7,0xed]
+sarxl %r13d, %r13d, %r13d
+
+// CHECK: sarxl %r13d, (%rdx), %r13d
+// CHECK: encoding: [0xc4,0x62,0x12,0xf7,0x2a]
+sarxl %r13d, (%rdx), %r13d
+
+// CHECK: sarxq %r15, 485498096, %r15
+// CHECK: encoding: [0xc4,0x62,0x82,0xf7,0x3c,0x25,0xf0,0x1c,0xf0,0x1c]
+sarxq %r15, 485498096, %r15
+
+// CHECK: sarxq %r15, 64(%rdx), %r15
+// CHECK: encoding: [0xc4,0x62,0x82,0xf7,0x7a,0x40]
+sarxq %r15, 64(%rdx), %r15
+
+// CHECK: sarxq %r15, 64(%rdx,%rax,4), %r15
+// CHECK: encoding: [0xc4,0x62,0x82,0xf7,0x7c,0x82,0x40]
+sarxq %r15, 64(%rdx,%rax,4), %r15
+
+// CHECK: sarxq %r15, -64(%rdx,%rax,4), %r15
+// CHECK: encoding: [0xc4,0x62,0x82,0xf7,0x7c,0x82,0xc0]
+sarxq %r15, -64(%rdx,%rax,4), %r15
+
+// CHECK: sarxq %r15, 64(%rdx,%rax), %r15
+// CHECK: encoding: [0xc4,0x62,0x82,0xf7,0x7c,0x02,0x40]
+sarxq %r15, 64(%rdx,%rax), %r15
+
+// CHECK: sarxq %r15, %r15, %r15
+// CHECK: encoding: [0xc4,0x42,0x82,0xf7,0xff]
+sarxq %r15, %r15, %r15
+
+// CHECK: sarxq %r15, (%rdx), %r15
+// CHECK: encoding: [0xc4,0x62,0x82,0xf7,0x3a]
+sarxq %r15, (%rdx), %r15
+
+// CHECK: shlxl %r13d, 485498096, %r13d
+// CHECK: encoding: [0xc4,0x62,0x11,0xf7,0x2c,0x25,0xf0,0x1c,0xf0,0x1c]
+shlxl %r13d, 485498096, %r13d
+
+// CHECK: shlxl %r13d, 64(%rdx), %r13d
+// CHECK: encoding: [0xc4,0x62,0x11,0xf7,0x6a,0x40]
+shlxl %r13d, 64(%rdx), %r13d
+
+// CHECK: shlxl %r13d, 64(%rdx,%rax,4), %r13d
+// CHECK: encoding: [0xc4,0x62,0x11,0xf7,0x6c,0x82,0x40]
+shlxl %r13d, 64(%rdx,%rax,4), %r13d
+
+// CHECK: shlxl %r13d, -64(%rdx,%rax,4), %r13d
+// CHECK: encoding: [0xc4,0x62,0x11,0xf7,0x6c,0x82,0xc0]
+shlxl %r13d, -64(%rdx,%rax,4), %r13d
+
+// CHECK: shlxl %r13d, 64(%rdx,%rax), %r13d
+// CHECK: encoding: [0xc4,0x62,0x11,0xf7,0x6c,0x02,0x40]
+shlxl %r13d, 64(%rdx,%rax), %r13d
+
+// CHECK: shlxl %r13d, %r13d, %r13d
+// CHECK: encoding: [0xc4,0x42,0x11,0xf7,0xed]
+shlxl %r13d, %r13d, %r13d
+
+// CHECK: shlxl %r13d, (%rdx), %r13d
+// CHECK: encoding: [0xc4,0x62,0x11,0xf7,0x2a]
+shlxl %r13d, (%rdx), %r13d
+
+// CHECK: shlxq %r15, 485498096, %r15
+// CHECK: encoding: [0xc4,0x62,0x81,0xf7,0x3c,0x25,0xf0,0x1c,0xf0,0x1c]
+shlxq %r15, 485498096, %r15
+
+// CHECK: shlxq %r15, 64(%rdx), %r15
+// CHECK: encoding: [0xc4,0x62,0x81,0xf7,0x7a,0x40]
+shlxq %r15, 64(%rdx), %r15
+
+// CHECK: shlxq %r15, 64(%rdx,%rax,4), %r15
+// CHECK: encoding: [0xc4,0x62,0x81,0xf7,0x7c,0x82,0x40]
+shlxq %r15, 64(%rdx,%rax,4), %r15
+
+// CHECK: shlxq %r15, -64(%rdx,%rax,4), %r15
+// CHECK: encoding: [0xc4,0x62,0x81,0xf7,0x7c,0x82,0xc0]
+shlxq %r15, -64(%rdx,%rax,4), %r15
+
+// CHECK: shlxq %r15, 64(%rdx,%rax), %r15
+// CHECK: encoding: [0xc4,0x62,0x81,0xf7,0x7c,0x02,0x40]
+shlxq %r15, 64(%rdx,%rax), %r15
+
+// CHECK: shlxq %r15, %r15, %r15
+// CHECK: encoding: [0xc4,0x42,0x81,0xf7,0xff]
+shlxq %r15, %r15, %r15
+
+// CHECK: shlxq %r15, (%rdx), %r15
+// CHECK: encoding: [0xc4,0x62,0x81,0xf7,0x3a]
+shlxq %r15, (%rdx), %r15
+
+// CHECK: shrxl %r13d, 485498096, %r13d
+// CHECK: encoding: [0xc4,0x62,0x13,0xf7,0x2c,0x25,0xf0,0x1c,0xf0,0x1c]
+shrxl %r13d, 485498096, %r13d
+
+// CHECK: shrxl %r13d, 64(%rdx), %r13d
+// CHECK: encoding: [0xc4,0x62,0x13,0xf7,0x6a,0x40]
+shrxl %r13d, 64(%rdx), %r13d
+
+// CHECK: shrxl %r13d, 64(%rdx,%rax,4), %r13d
+// CHECK: encoding: [0xc4,0x62,0x13,0xf7,0x6c,0x82,0x40]
+shrxl %r13d, 64(%rdx,%rax,4), %r13d
+
+// CHECK: shrxl %r13d, -64(%rdx,%rax,4), %r13d
+// CHECK: encoding: [0xc4,0x62,0x13,0xf7,0x6c,0x82,0xc0]
+shrxl %r13d, -64(%rdx,%rax,4), %r13d
+
+// CHECK: shrxl %r13d, 64(%rdx,%rax), %r13d
+// CHECK: encoding: [0xc4,0x62,0x13,0xf7,0x6c,0x02,0x40]
+shrxl %r13d, 64(%rdx,%rax), %r13d
+
+// CHECK: shrxl %r13d, %r13d, %r13d
+// CHECK: encoding: [0xc4,0x42,0x13,0xf7,0xed]
+shrxl %r13d, %r13d, %r13d
+
+// CHECK: shrxl %r13d, (%rdx), %r13d
+// CHECK: encoding: [0xc4,0x62,0x13,0xf7,0x2a]
+shrxl %r13d, (%rdx), %r13d
+
+// CHECK: shrxq %r15, 485498096, %r15
+// CHECK: encoding: [0xc4,0x62,0x83,0xf7,0x3c,0x25,0xf0,0x1c,0xf0,0x1c]
+shrxq %r15, 485498096, %r15
+
+// CHECK: shrxq %r15, 64(%rdx), %r15
+// CHECK: encoding: [0xc4,0x62,0x83,0xf7,0x7a,0x40]
+shrxq %r15, 64(%rdx), %r15
+
+// CHECK: shrxq %r15, 64(%rdx,%rax,4), %r15
+// CHECK: encoding: [0xc4,0x62,0x83,0xf7,0x7c,0x82,0x40]
+shrxq %r15, 64(%rdx,%rax,4), %r15
+
+// CHECK: shrxq %r15, -64(%rdx,%rax,4), %r15
+// CHECK: encoding: [0xc4,0x62,0x83,0xf7,0x7c,0x82,0xc0]
+shrxq %r15, -64(%rdx,%rax,4), %r15
+
+// CHECK: shrxq %r15, 64(%rdx,%rax), %r15
+// CHECK: encoding: [0xc4,0x62,0x83,0xf7,0x7c,0x02,0x40]
+shrxq %r15, 64(%rdx,%rax), %r15
+
+// CHECK: shrxq %r15, %r15, %r15
+// CHECK: encoding: [0xc4,0x42,0x83,0xf7,0xff]
+shrxq %r15, %r15, %r15
+
+// CHECK: shrxq %r15, (%rdx), %r15
+// CHECK: encoding: [0xc4,0x62,0x83,0xf7,0x3a]
+shrxq %r15, (%rdx), %r15
+