[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
llvm-svn: 320557
This commit is contained in:
Gadi Haber 2017-12-13 09:13:53 +00:00
parent c35aae36d5
commit 6090c148dc
4 changed files with 1104 additions and 0 deletions

142
llvm/test/MC/X86/BMI1-32.s Normal file
View File

@ -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

286
llvm/test/MC/X86/BMI1-64.s Normal file
View File

@ -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

226
llvm/test/MC/X86/BMI2-32.s Normal file
View File

@ -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

450
llvm/test/MC/X86/BMI2-64.s Normal file
View File

@ -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