Skip to content

Commit adf8897

Browse files
committed
add tests
1 parent 0821c02 commit adf8897

File tree

19 files changed

+579
-7
lines changed

19 files changed

+579
-7
lines changed

llvm/lib/Target/X86/Disassembler/X86Disassembler.cpp

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1134,6 +1134,21 @@ static int getInstructionIDWithAttrMask(uint16_t *instructionID,
11341134
return 0;
11351135
}
11361136

1137+
static bool isNFnotMap4(InternalInstruction *insn){
1138+
// Promoted BMI instrs below has nf version.
1139+
if (insn->opcodeType == THREEBYTE_38 &&
1140+
ppFromXOP3of3(insn->vectorExtensionPrefix[2]) == VEX_PREFIX_NONE) {
1141+
switch (insn->opcode) {
1142+
case 0xf2: // ANDN
1143+
case 0xf3: // BLSI, BLSR, BLSMSK
1144+
case 0xf5: // BZHI
1145+
case 0xf7: // BEXTR
1146+
return true;
1147+
}
1148+
}
1149+
return false;
1150+
}
1151+
11371152
// Determine the ID of an instruction, consuming the ModR/M byte as appropriate
11381153
// for extended and escape opcodes. Determines the attributes and context for
11391154
// the instruction before doing so.
@@ -1171,7 +1186,7 @@ static int getInstructionID(struct InternalInstruction *insn,
11711186
attrMask |= ATTR_EVEXB;
11721187
// nf bit is the MSB of aaa
11731188
if (nfFromEVEX4of4(insn->vectorExtensionPrefix[3]) &&
1174-
insn->opcodeType == MAP4)
1189+
(insn->opcodeType == MAP4 || isNFnotMap4(insn)))
11751190
attrMask |= ATTR_EVEXNF;
11761191
else if (aaaFromEVEX4of4(insn->vectorExtensionPrefix[3]))
11771192
attrMask |= ATTR_EVEXK;

llvm/test/MC/Disassembler/X86/apx/andn.txt

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,38 @@
11
# RUN: llvm-mc --disassemble %s -triple=x86_64 | FileCheck %s --check-prefixes=ATT
22
# RUN: llvm-mc --disassemble %s -triple=x86_64 -x86-asm-syntax=intel --output-asm-variant=1 | FileCheck %s --check-prefixes=INTEL
33

4+
# ATT: {nf} andnl %ecx, %edx, %r10d
5+
# INTEL: {nf} andn r10d, edx, ecx
6+
0x62,0x72,0x6c,0x0c,0xf2,0xd1
7+
8+
# ATT: andnl %ecx, %edx, %r10d
9+
# INTEL: andn r10d, edx, ecx
10+
0x62,0x72,0x6c,0x08,0xf2,0xd1
11+
12+
# ATT: {nf} andnq %r9, %r15, %r11
13+
# INTEL: {nf} andn r11, r15, r9
14+
0x62,0x52,0x84,0x0c,0xf2,0xd9
15+
16+
# ATT: andnq %r9, %r15, %r11
17+
# INTEL: andn r11, r15, r9
18+
0x62,0x52,0x84,0x08,0xf2,0xd9
19+
20+
# ATT: {nf} andnl 123(%rax,%rbx,4), %ecx, %edx
21+
# INTEL: {nf} andn edx, ecx, dword ptr [rax + 4*rbx + 123]
22+
0x62,0xf2,0x74,0x0c,0xf2,0x94,0x98,0x7b,0x00,0x00,0x00
23+
24+
# ATT: andnl 123(%rax,%rbx,4), %ecx, %edx
25+
# INTEL: andn edx, ecx, dword ptr [rax + 4*rbx + 123]
26+
0x62,0xf2,0x74,0x08,0xf2,0x94,0x98,0x7b,0x00,0x00,0x00
27+
28+
# ATT: {nf} andnq 123(%rax,%rbx,4), %r9, %r15
29+
# INTEL: {nf} andn r15, r9, qword ptr [rax + 4*rbx + 123]
30+
0x62,0x72,0xb4,0x0c,0xf2,0xbc,0x98,0x7b,0x00,0x00,0x00
31+
32+
# ATT: andnq 123(%rax,%rbx,4), %r9, %r15
33+
# INTEL: andn r15, r9, qword ptr [rax + 4*rbx + 123]
34+
0x62,0x72,0xb4,0x08,0xf2,0xbc,0x98,0x7b,0x00,0x00,0x00
35+
436
# ATT: andnl %r18d, %r22d, %r26d
537
# INTEL: andn r26d, r22d, r18d
638
0x62,0x6a,0x4c,0x00,0xf2,0xd2

llvm/test/MC/Disassembler/X86/apx/bextr.txt

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,39 @@
11
# RUN: llvm-mc --disassemble %s -triple=x86_64 | FileCheck %s --check-prefixes=ATT
22
# RUN: llvm-mc --disassemble %s -triple=x86_64 -x86-asm-syntax=intel --output-asm-variant=1 | FileCheck %s --check-prefixes=INTEL
33

4+
# CHECK: {nf} bextr r10d, edx, ecx
5+
# CHECK: encoding: [0x62,0x72,0x74,0x0c,0xf7,0xd2]
6+
{nf} bextr r10d, edx, ecx
7+
8+
# CHECK: bextr r10d, edx, ecx
9+
# CHECK: encoding: [0x62,0x72,0x74,0x08,0xf7,0xd2]
10+
bextr r10d, edx, ecx
11+
12+
# CHECK: {nf} bextr edx, dword ptr [rax + 4*rbx + 123], ecx
13+
# CHECK: encoding: [0x62,0xf2,0x74,0x0c,0xf7,0x94,0x98,0x7b,0x00,0x00,0x00]
14+
{nf} bextr edx, dword ptr [rax + 4*rbx + 123], ecx
15+
16+
# CHECK: bextr edx, dword ptr [rax + 4*rbx + 123], ecx
17+
# CHECK: encoding: [0x62,0xf2,0x74,0x08,0xf7,0x94,0x98,0x7b,0x00,0x00,0x00]
18+
bextr edx, dword ptr [rax + 4*rbx + 123], ecx
19+
20+
# CHECK: {nf} bextr r11, r15, r9
21+
# CHECK: encoding: [0x62,0x52,0xb4,0x0c,0xf7,0xdf]
22+
{nf} bextr r11, r15, r9
23+
24+
# CHECK: bextr r11, r15, r9
25+
# CHECK: encoding: [0x62,0x52,0xb4,0x08,0xf7,0xdf]
26+
bextr r11, r15, r9
27+
28+
# CHECK: {nf} bextr r15, qword ptr [rax + 4*rbx + 123], r9
29+
# CHECK: encoding: [0x62,0x72,0xb4,0x0c,0xf7,0xbc,0x98,0x7b,0x00,0x00,0x00]
30+
{nf} bextr r15, qword ptr [rax + 4*rbx + 123], r9
31+
32+
# CHECK: bextr r15, qword ptr [rax + 4*rbx + 123], r9
33+
# CHECK: encoding: [0x62,0x72,0xb4,0x08,0xf7,0xbc,0x98,0x7b,0x00,0x00,0x00]
34+
bextr r15, qword ptr [rax + 4*rbx + 123], r9
35+
36+
437
# ATT: bextrl %r18d, %r22d, %r26d
538
# INTEL: bextr r26d, r22d, r18d
639
0x62,0x6a,0x6c,0x00,0xf7,0xd6

llvm/test/MC/Disassembler/X86/apx/blsi.txt

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,38 @@
11
# RUN: llvm-mc --disassemble %s -triple=x86_64 | FileCheck %s --check-prefixes=ATT
22
# RUN: llvm-mc --disassemble %s -triple=x86_64 -x86-asm-syntax=intel --output-asm-variant=1 | FileCheck %s --check-prefixes=INTEL
33

4+
# ATT: {nf} blsil %ecx, %edx
5+
# INTEL: {nf} blsi edx, ecx
6+
0x62,0xf2,0x6c,0x0c,0xf3,0xd9
7+
8+
# ATT: blsil %ecx, %edx
9+
# INTEL: blsi edx, ecx
10+
0x62,0xf2,0x6c,0x08,0xf3,0xd9
11+
12+
# ATT: {nf} blsiq %r9, %r15
13+
# INTEL: {nf} blsi r15, r9
14+
0x62,0xd2,0x84,0x0c,0xf3,0xd9
15+
16+
# ATT: blsiq %r9, %r15
17+
# INTEL: blsi r15, r9
18+
0x62,0xd2,0x84,0x08,0xf3,0xd9
19+
20+
# ATT: {nf} blsil 123(%rax,%rbx,4), %ecx
21+
# INTEL: {nf} blsi ecx, dword ptr [rax + 4*rbx + 123]
22+
0x62,0xf2,0x74,0x0c,0xf3,0x9c,0x98,0x7b,0x00,0x00,0x00
23+
24+
# ATT: blsil 123(%rax,%rbx,4), %ecx
25+
# INTEL: blsi ecx, dword ptr [rax + 4*rbx + 123]
26+
0x62,0xf2,0x74,0x08,0xf3,0x9c,0x98,0x7b,0x00,0x00,0x00
27+
28+
# ATT: {nf} blsiq 123(%rax,%rbx,4), %r9
29+
# INTEL: {nf} blsi r9, qword ptr [rax + 4*rbx + 123]
30+
0x62,0xf2,0xb4,0x0c,0xf3,0x9c,0x98,0x7b,0x00,0x00,0x00
31+
32+
# ATT: blsiq 123(%rax,%rbx,4), %r9
33+
# INTEL: blsi r9, qword ptr [rax + 4*rbx + 123]
34+
0x62,0xf2,0xb4,0x08,0xf3,0x9c,0x98,0x7b,0x00,0x00,0x00
35+
436
# ATT: blsil %r18d, %r22d
537
# INTEL: blsi r22d, r18d
638
0x62,0xfa,0x4c,0x00,0xf3,0xda

llvm/test/MC/Disassembler/X86/apx/blsr.txt

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,38 @@
11
# RUN: llvm-mc --disassemble %s -triple=x86_64 | FileCheck %s --check-prefixes=ATT
22
# RUN: llvm-mc --disassemble %s -triple=x86_64 -x86-asm-syntax=intel --output-asm-variant=1 | FileCheck %s --check-prefixes=INTEL
33

4+
# ATT: {nf} blsrl %ecx, %edx
5+
# INTEL: {nf} blsr edx, ecx
6+
0x62,0xf2,0x6c,0x0c,0xf3,0xc9
7+
8+
# ATT: blsrl %ecx, %edx
9+
# INTEL: blsr edx, ecx
10+
0x62,0xf2,0x6c,0x08,0xf3,0xc9
11+
12+
# ATT: {nf} blsrq %r9, %r15
13+
# INTEL: {nf} blsr r15, r9
14+
0x62,0xd2,0x84,0x0c,0xf3,0xc9
15+
16+
# ATT: blsrq %r9, %r15
17+
# INTEL: blsr r15, r9
18+
0x62,0xd2,0x84,0x08,0xf3,0xc9
19+
20+
# ATT: {nf} blsrl 123(%rax,%rbx,4), %ecx
21+
# INTEL: {nf} blsr ecx, dword ptr [rax + 4*rbx + 123]
22+
0x62,0xf2,0x74,0x0c,0xf3,0x8c,0x98,0x7b,0x00,0x00,0x00
23+
24+
# ATT: blsrl 123(%rax,%rbx,4), %ecx
25+
# INTEL: blsr ecx, dword ptr [rax + 4*rbx + 123]
26+
0x62,0xf2,0x74,0x08,0xf3,0x8c,0x98,0x7b,0x00,0x00,0x00
27+
28+
# ATT: {nf} blsrq 123(%rax,%rbx,4), %r9
29+
# INTEL: {nf} blsr r9, qword ptr [rax + 4*rbx + 123]
30+
0x62,0xf2,0xb4,0x0c,0xf3,0x8c,0x98,0x7b,0x00,0x00,0x00
31+
32+
# ATT: blsrq 123(%rax,%rbx,4), %r9
33+
# INTEL: blsr r9, qword ptr [rax + 4*rbx + 123]
34+
0x62,0xf2,0xb4,0x08,0xf3,0x8c,0x98,0x7b,0x00,0x00,0x00
35+
436
# ATT: blsrl %r18d, %r22d
537
# INTEL: blsr r22d, r18d
638
0x62,0xfa,0x4c,0x00,0xf3,0xca

llvm/test/MC/Disassembler/X86/apx/bzhi.txt

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,38 @@
11
# RUN: llvm-mc --disassemble %s -triple=x86_64 | FileCheck %s --check-prefixes=ATT
22
# RUN: llvm-mc --disassemble %s -triple=x86_64 -x86-asm-syntax=intel --output-asm-variant=1 | FileCheck %s --check-prefixes=INTEL
33

4+
# ATT: {nf} bzhil %ecx, %edx, %r10d
5+
# INTEL: {nf} bzhi r10d, edx, ecx
6+
0x62,0x72,0x74,0x0c,0xf5,0xd2
7+
8+
# ATT: bzhil %ecx, %edx, %r10d
9+
# INTEL: bzhi r10d, edx, ecx
10+
0x62,0x72,0x74,0x08,0xf5,0xd2
11+
12+
# ATT: {nf} bzhil %ecx, 123(%rax,%rbx,4), %edx
13+
# INTEL: {nf} bzhi edx, dword ptr [rax + 4*rbx + 123], ecx
14+
0x62,0xf2,0x74,0x0c,0xf5,0x94,0x98,0x7b,0x00,0x00,0x00
15+
16+
# ATT: bzhil %ecx, 123(%rax,%rbx,4), %edx
17+
# INTEL: bzhi edx, dword ptr [rax + 4*rbx + 123], ecx
18+
0x62,0xf2,0x74,0x08,0xf5,0x94,0x98,0x7b,0x00,0x00,0x00
19+
20+
# ATT: {nf} bzhiq %r9, %r15, %r11
21+
# INTEL: {nf} bzhi r11, r15, r9
22+
0x62,0x52,0xb4,0x0c,0xf5,0xdf
23+
24+
# ATT: bzhiq %r9, %r15, %r11
25+
# INTEL: bzhi r11, r15, r9
26+
0x62,0x52,0xb4,0x08,0xf5,0xdf
27+
28+
# ATT: {nf} bzhiq %r9, 123(%rax,%rbx,4), %r15
29+
# INTEL: {nf} bzhi r15, qword ptr [rax + 4*rbx + 123], r9
30+
0x62,0x72,0xb4,0x0c,0xf5,0xbc,0x98,0x7b,0x00,0x00,0x00
31+
32+
# ATT: bzhiq %r9, 123(%rax,%rbx,4), %r15
33+
# INTEL: bzhi r15, qword ptr [rax + 4*rbx + 123], r9
34+
0x62,0x72,0xb4,0x08,0xf5,0xbc,0x98,0x7b,0x00,0x00,0x00
35+
436
# ATT: bzhil %r18d, %r22d, %r26d
537
# INTEL: bzhi r26d, r22d, r18d
638
0x62,0x6a,0x6c,0x00,0xf5,0xd6

llvm/test/MC/X86/apx/andn-att.s

Lines changed: 33 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,40 @@
11
# RUN: llvm-mc -triple x86_64 --show-encoding %s | FileCheck %s
22
# RUN: not llvm-mc -triple i386 -show-encoding %s 2>&1 | FileCheck %s --check-prefix=ERROR
33

4-
# ERROR-COUNT-4: error:
4+
# ERROR-COUNT-12: error:
55
# ERROR-NOT: error:
6+
# CHECK: {nf} andnl %ecx, %edx, %r10d
7+
# CHECK: encoding: [0x62,0x72,0x6c,0x0c,0xf2,0xd1]
8+
{nf} andnl %ecx, %edx, %r10d
9+
10+
# CHECK: {evex} andnl %ecx, %edx, %r10d
11+
# CHECK: encoding: [0x62,0x72,0x6c,0x08,0xf2,0xd1]
12+
{evex} andnl %ecx, %edx, %r10d
13+
14+
# CHECK: {nf} andnq %r9, %r15, %r11
15+
# CHECK: encoding: [0x62,0x52,0x84,0x0c,0xf2,0xd9]
16+
{nf} andnq %r9, %r15, %r11
17+
18+
# CHECK: {evex} andnq %r9, %r15, %r11
19+
# CHECK: encoding: [0x62,0x52,0x84,0x08,0xf2,0xd9]
20+
{evex} andnq %r9, %r15, %r11
21+
22+
# CHECK: {nf} andnl 123(%rax,%rbx,4), %ecx, %edx
23+
# CHECK: encoding: [0x62,0xf2,0x74,0x0c,0xf2,0x94,0x98,0x7b,0x00,0x00,0x00]
24+
{nf} andnl 123(%rax,%rbx,4), %ecx, %edx
25+
26+
# CHECK: {evex} andnl 123(%rax,%rbx,4), %ecx, %edx
27+
# CHECK: encoding: [0x62,0xf2,0x74,0x08,0xf2,0x94,0x98,0x7b,0x00,0x00,0x00]
28+
{evex} andnl 123(%rax,%rbx,4), %ecx, %edx
29+
30+
# CHECK: {nf} andnq 123(%rax,%rbx,4), %r9, %r15
31+
# CHECK: encoding: [0x62,0x72,0xb4,0x0c,0xf2,0xbc,0x98,0x7b,0x00,0x00,0x00]
32+
{nf} andnq 123(%rax,%rbx,4), %r9, %r15
33+
34+
# CHECK: {evex} andnq 123(%rax,%rbx,4), %r9, %r15
35+
# CHECK: encoding: [0x62,0x72,0xb4,0x08,0xf2,0xbc,0x98,0x7b,0x00,0x00,0x00]
36+
{evex} andnq 123(%rax,%rbx,4), %r9, %r15
37+
638
# CHECK: andnl %r18d, %r22d, %r26d
739
# CHECK: encoding: [0x62,0x6a,0x4c,0x00,0xf2,0xd2]
840
andnl %r18d, %r22d, %r26d

llvm/test/MC/X86/apx/andn-intel.s

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,37 @@
11
# RUN: llvm-mc -triple x86_64 -x86-asm-syntax=intel -output-asm-variant=1 --show-encoding %s | FileCheck %s
22

3+
# CHECK: {nf} andn r10d, edx, ecx
4+
# CHECK: encoding: [0x62,0x72,0x6c,0x0c,0xf2,0xd1]
5+
{nf} andn r10d, edx, ecx
6+
7+
# CHECK: {evex} andn r10d, edx, ecx
8+
# CHECK: encoding: [0x62,0x72,0x6c,0x08,0xf2,0xd1]
9+
{evex} andn r10d, edx, ecx
10+
11+
# CHECK: {nf} andn r11, r15, r9
12+
# CHECK: encoding: [0x62,0x52,0x84,0x0c,0xf2,0xd9]
13+
{nf} andn r11, r15, r9
14+
15+
# CHECK: {evex} andn r11, r15, r9
16+
# CHECK: encoding: [0x62,0x52,0x84,0x08,0xf2,0xd9]
17+
{evex} andn r11, r15, r9
18+
19+
# CHECK: {nf} andn edx, ecx, dword ptr [rax + 4*rbx + 123]
20+
# CHECK: encoding: [0x62,0xf2,0x74,0x0c,0xf2,0x94,0x98,0x7b,0x00,0x00,0x00]
21+
{nf} andn edx, ecx, dword ptr [rax + 4*rbx + 123]
22+
23+
# CHECK: {evex} andn edx, ecx, dword ptr [rax + 4*rbx + 123]
24+
# CHECK: encoding: [0x62,0xf2,0x74,0x08,0xf2,0x94,0x98,0x7b,0x00,0x00,0x00]
25+
{evex} andn edx, ecx, dword ptr [rax + 4*rbx + 123]
26+
27+
# CHECK: {nf} andn r15, r9, qword ptr [rax + 4*rbx + 123]
28+
# CHECK: encoding: [0x62,0x72,0xb4,0x0c,0xf2,0xbc,0x98,0x7b,0x00,0x00,0x00]
29+
{nf} andn r15, r9, qword ptr [rax + 4*rbx + 123]
30+
31+
# CHECK: {evex} andn r15, r9, qword ptr [rax + 4*rbx + 123]
32+
# CHECK: encoding: [0x62,0x72,0xb4,0x08,0xf2,0xbc,0x98,0x7b,0x00,0x00,0x00]
33+
{evex} andn r15, r9, qword ptr [rax + 4*rbx + 123]
34+
335
# CHECK: andn r26d, r22d, r18d
436
# CHECK: encoding: [0x62,0x6a,0x4c,0x00,0xf2,0xd2]
537
andn r26d, r22d, r18d

llvm/test/MC/X86/apx/bextr-att.s

Lines changed: 33 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,40 @@
11
# RUN: llvm-mc -triple x86_64 --show-encoding %s | FileCheck %s
22
# RUN: not llvm-mc -triple i386 -show-encoding %s 2>&1 | FileCheck %s --check-prefix=ERROR
33

4-
# ERROR-COUNT-4: error:
4+
# ERROR-COUNT-12: error:
55
# ERROR-NOT: error:
6+
# CHECK: {nf} bextrl %ecx, %edx, %r10d
7+
# CHECK: encoding: [0x62,0x72,0x74,0x0c,0xf7,0xd2]
8+
{nf} bextrl %ecx, %edx, %r10d
9+
10+
# CHECK: {evex} bextrl %ecx, %edx, %r10d
11+
# CHECK: encoding: [0x62,0x72,0x74,0x08,0xf7,0xd2]
12+
{evex} bextrl %ecx, %edx, %r10d
13+
14+
# CHECK: {nf} bextrl %ecx, 123(%rax,%rbx,4), %edx
15+
# CHECK: encoding: [0x62,0xf2,0x74,0x0c,0xf7,0x94,0x98,0x7b,0x00,0x00,0x00]
16+
{nf} bextrl %ecx, 123(%rax,%rbx,4), %edx
17+
18+
# CHECK: {evex} bextrl %ecx, 123(%rax,%rbx,4), %edx
19+
# CHECK: encoding: [0x62,0xf2,0x74,0x08,0xf7,0x94,0x98,0x7b,0x00,0x00,0x00]
20+
{evex} bextrl %ecx, 123(%rax,%rbx,4), %edx
21+
22+
# CHECK: {nf} bextrq %r9, %r15, %r11
23+
# CHECK: encoding: [0x62,0x52,0xb4,0x0c,0xf7,0xdf]
24+
{nf} bextrq %r9, %r15, %r11
25+
26+
# CHECK: {evex} bextrq %r9, %r15, %r11
27+
# CHECK: encoding: [0x62,0x52,0xb4,0x08,0xf7,0xdf]
28+
{evex} bextrq %r9, %r15, %r11
29+
30+
# CHECK: {nf} bextrq %r9, 123(%rax,%rbx,4), %r15
31+
# CHECK: encoding: [0x62,0x72,0xb4,0x0c,0xf7,0xbc,0x98,0x7b,0x00,0x00,0x00]
32+
{nf} bextrq %r9, 123(%rax,%rbx,4), %r15
33+
34+
# CHECK: {evex} bextrq %r9, 123(%rax,%rbx,4), %r15
35+
# CHECK: encoding: [0x62,0x72,0xb4,0x08,0xf7,0xbc,0x98,0x7b,0x00,0x00,0x00]
36+
{evex} bextrq %r9, 123(%rax,%rbx,4), %r15
37+
638
# CHECK: bextrl %r18d, %r22d, %r26d
739
# CHECK: encoding: [0x62,0x6a,0x6c,0x00,0xf7,0xd6]
840
bextrl %r18d, %r22d, %r26d

llvm/test/MC/X86/apx/bextr-intel.s

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,37 @@
11
# RUN: llvm-mc -triple x86_64 -x86-asm-syntax=intel -output-asm-variant=1 --show-encoding %s | FileCheck %s
22

3+
# CHECK: {nf} bextr r10d, edx, ecx
4+
# CHECK: encoding: [0x62,0x72,0x74,0x0c,0xf7,0xd2]
5+
{nf} bextr r10d, edx, ecx
6+
7+
# CHECK: {evex} bextr r10d, edx, ecx
8+
# CHECK: encoding: [0x62,0x72,0x74,0x08,0xf7,0xd2]
9+
{evex} bextr r10d, edx, ecx
10+
11+
# CHECK: {nf} bextr edx, dword ptr [rax + 4*rbx + 123], ecx
12+
# CHECK: encoding: [0x62,0xf2,0x74,0x0c,0xf7,0x94,0x98,0x7b,0x00,0x00,0x00]
13+
{nf} bextr edx, dword ptr [rax + 4*rbx + 123], ecx
14+
15+
# CHECK: {evex} bextr edx, dword ptr [rax + 4*rbx + 123], ecx
16+
# CHECK: encoding: [0x62,0xf2,0x74,0x08,0xf7,0x94,0x98,0x7b,0x00,0x00,0x00]
17+
{evex} bextr edx, dword ptr [rax + 4*rbx + 123], ecx
18+
19+
# CHECK: {nf} bextr r11, r15, r9
20+
# CHECK: encoding: [0x62,0x52,0xb4,0x0c,0xf7,0xdf]
21+
{nf} bextr r11, r15, r9
22+
23+
# CHECK: {evex} bextr r11, r15, r9
24+
# CHECK: encoding: [0x62,0x52,0xb4,0x08,0xf7,0xdf]
25+
{evex} bextr r11, r15, r9
26+
27+
# CHECK: {nf} bextr r15, qword ptr [rax + 4*rbx + 123], r9
28+
# CHECK: encoding: [0x62,0x72,0xb4,0x0c,0xf7,0xbc,0x98,0x7b,0x00,0x00,0x00]
29+
{nf} bextr r15, qword ptr [rax + 4*rbx + 123], r9
30+
31+
# CHECK: {evex} bextr r15, qword ptr [rax + 4*rbx + 123], r9
32+
# CHECK: encoding: [0x62,0x72,0xb4,0x08,0xf7,0xbc,0x98,0x7b,0x00,0x00,0x00]
33+
{evex} bextr r15, qword ptr [rax + 4*rbx + 123], r9
34+
335
# CHECK: bextr r26d, r22d, r18d
436
# CHECK: encoding: [0x62,0x6a,0x6c,0x00,0xf7,0xd6]
537
bextr r26d, r22d, r18d

0 commit comments

Comments
 (0)