[llvm] 71590e7 - [X86][test] Add missing enc/dec tests for CTEST

Shengchen Kan via llvm-commits llvm-commits at lists.llvm.org
Mon Mar 11 22:12:24 PDT 2024


Author: Shengchen Kan
Date: 2024-03-12T13:11:16+08:00
New Revision: 71590e7d1ec29c3ba9f6f5b4cfe36345a7ccd25b

URL: https://github.com/llvm/llvm-project/commit/71590e7d1ec29c3ba9f6f5b4cfe36345a7ccd25b
DIFF: https://github.com/llvm/llvm-project/commit/71590e7d1ec29c3ba9f6f5b4cfe36345a7ccd25b.diff

LOG: [X86][test] Add missing enc/dec tests for CTEST

These tests were accidentally missed in #83863

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

Modified: 
    

Removed: 
    


################################################################################
diff  --git a/llvm/test/MC/Disassembler/X86/apx/ctest.txt b/llvm/test/MC/Disassembler/X86/apx/ctest.txt
new file mode 100644
index 00000000000000..9a29a98b5d7889
--- /dev/null
+++ b/llvm/test/MC/Disassembler/X86/apx/ctest.txt
@@ -0,0 +1,1026 @@
+# 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:   ctestbb {dfv=of} $123, 123(%r8,%rax,4)
+# INTEL: ctestb {dfv=of} byte ptr [r8 + 4*rax + 123], 123
+0x62,0xd4,0x44,0x02,0xf6,0x44,0x80,0x7b,0x7b
+
+# ATT:   ctestbw {dfv=of} $1234, 123(%r8,%rax,4)
+# INTEL: ctestb {dfv=of} word ptr [r8 + 4*rax + 123], 1234
+0x62,0xd4,0x45,0x02,0xf7,0x44,0x80,0x7b,0xd2,0x04
+
+# ATT:   ctestbl {dfv=of} $123456, 123(%r8,%rax,4)
+# INTEL: ctestb {dfv=of} dword ptr [r8 + 4*rax + 123], 123456
+0x62,0xd4,0x44,0x02,0xf7,0x44,0x80,0x7b,0x40,0xe2,0x01,0x00
+
+# ATT:   ctestbq {dfv=of} $123456, 123(%r8,%rax,4)
+# INTEL: ctestb {dfv=of} qword ptr [r8 + 4*rax + 123], 123456
+0x62,0xd4,0xc4,0x02,0xf7,0x44,0x80,0x7b,0x40,0xe2,0x01,0x00
+
+# ATT:   ctestbb {dfv=of} %bl, 123(%r8,%rax,4)
+# INTEL: ctestb {dfv=of} byte ptr [r8 + 4*rax + 123], bl
+0x62,0xd4,0x44,0x02,0x84,0x5c,0x80,0x7b
+
+# ATT:   ctestbw {dfv=of} %dx, 123(%r8,%rax,4)
+# INTEL: ctestb {dfv=of} word ptr [r8 + 4*rax + 123], dx
+0x62,0xd4,0x45,0x02,0x85,0x54,0x80,0x7b
+
+# ATT:   ctestbl {dfv=of} %ecx, 123(%r8,%rax,4)
+# INTEL: ctestb {dfv=of} dword ptr [r8 + 4*rax + 123], ecx
+0x62,0xd4,0x44,0x02,0x85,0x4c,0x80,0x7b
+
+# ATT:   ctestbq {dfv=of} %r9, 123(%r8,%rax,4)
+# INTEL: ctestb {dfv=of} qword ptr [r8 + 4*rax + 123], r9
+0x62,0x54,0xc4,0x02,0x85,0x4c,0x80,0x7b
+
+# ATT:   ctestbb {dfv=of} $123, %bl
+# INTEL: ctestb {dfv=of} bl, 123
+0x62,0xf4,0x44,0x02,0xf6,0xc3,0x7b
+
+# ATT:   ctestbw {dfv=of} $1234, %dx
+# INTEL: ctestb {dfv=of} dx, 1234
+0x62,0xf4,0x45,0x02,0xf7,0xc2,0xd2,0x04
+
+# ATT:   ctestbl {dfv=of} $123456, %ecx
+# INTEL: ctestb {dfv=of} ecx, 123456
+0x62,0xf4,0x44,0x02,0xf7,0xc1,0x40,0xe2,0x01,0x00
+
+# ATT:   ctestbq {dfv=of} $123456, %r9
+# INTEL: ctestb {dfv=of} r9, 123456
+0x62,0xd4,0xc4,0x02,0xf7,0xc1,0x40,0xe2,0x01,0x00
+
+# ATT:   ctestbb {dfv=of} %bl, %dl
+# INTEL: ctestb {dfv=of} dl, bl
+0x62,0xf4,0x44,0x02,0x84,0xda
+
+# ATT:   ctestbw {dfv=of} %dx, %ax
+# INTEL: ctestb {dfv=of} ax, dx
+0x62,0xf4,0x45,0x02,0x85,0xd0
+
+# ATT:   ctestbl {dfv=of} %ecx, %edx
+# INTEL: ctestb {dfv=of} edx, ecx
+0x62,0xf4,0x44,0x02,0x85,0xca
+
+# ATT:   ctestbq {dfv=of} %r9, %r15
+# INTEL: ctestb {dfv=of} r15, r9
+0x62,0x54,0xc4,0x02,0x85,0xcf
+
+# ATT:   ctestbeb {dfv=of} $123, 123(%r8,%rax,4)
+# INTEL: ctestbe {dfv=of} byte ptr [r8 + 4*rax + 123], 123
+0x62,0xd4,0x44,0x06,0xf6,0x44,0x80,0x7b,0x7b
+
+# ATT:   ctestbew {dfv=of} $1234, 123(%r8,%rax,4)
+# INTEL: ctestbe {dfv=of} word ptr [r8 + 4*rax + 123], 1234
+0x62,0xd4,0x45,0x06,0xf7,0x44,0x80,0x7b,0xd2,0x04
+
+# ATT:   ctestbel {dfv=of} $123456, 123(%r8,%rax,4)
+# INTEL: ctestbe {dfv=of} dword ptr [r8 + 4*rax + 123], 123456
+0x62,0xd4,0x44,0x06,0xf7,0x44,0x80,0x7b,0x40,0xe2,0x01,0x00
+
+# ATT:   ctestbeq {dfv=of} $123456, 123(%r8,%rax,4)
+# INTEL: ctestbe {dfv=of} qword ptr [r8 + 4*rax + 123], 123456
+0x62,0xd4,0xc4,0x06,0xf7,0x44,0x80,0x7b,0x40,0xe2,0x01,0x00
+
+# ATT:   ctestbeb {dfv=of} %bl, 123(%r8,%rax,4)
+# INTEL: ctestbe {dfv=of} byte ptr [r8 + 4*rax + 123], bl
+0x62,0xd4,0x44,0x06,0x84,0x5c,0x80,0x7b
+
+# ATT:   ctestbew {dfv=of} %dx, 123(%r8,%rax,4)
+# INTEL: ctestbe {dfv=of} word ptr [r8 + 4*rax + 123], dx
+0x62,0xd4,0x45,0x06,0x85,0x54,0x80,0x7b
+
+# ATT:   ctestbel {dfv=of} %ecx, 123(%r8,%rax,4)
+# INTEL: ctestbe {dfv=of} dword ptr [r8 + 4*rax + 123], ecx
+0x62,0xd4,0x44,0x06,0x85,0x4c,0x80,0x7b
+
+# ATT:   ctestbeq {dfv=of} %r9, 123(%r8,%rax,4)
+# INTEL: ctestbe {dfv=of} qword ptr [r8 + 4*rax + 123], r9
+0x62,0x54,0xc4,0x06,0x85,0x4c,0x80,0x7b
+
+# ATT:   ctestbeb {dfv=of} $123, %bl
+# INTEL: ctestbe {dfv=of} bl, 123
+0x62,0xf4,0x44,0x06,0xf6,0xc3,0x7b
+
+# ATT:   ctestbew {dfv=of} $1234, %dx
+# INTEL: ctestbe {dfv=of} dx, 1234
+0x62,0xf4,0x45,0x06,0xf7,0xc2,0xd2,0x04
+
+# ATT:   ctestbel {dfv=of} $123456, %ecx
+# INTEL: ctestbe {dfv=of} ecx, 123456
+0x62,0xf4,0x44,0x06,0xf7,0xc1,0x40,0xe2,0x01,0x00
+
+# ATT:   ctestbeq {dfv=of} $123456, %r9
+# INTEL: ctestbe {dfv=of} r9, 123456
+0x62,0xd4,0xc4,0x06,0xf7,0xc1,0x40,0xe2,0x01,0x00
+
+# ATT:   ctestbeb {dfv=of} %bl, %dl
+# INTEL: ctestbe {dfv=of} dl, bl
+0x62,0xf4,0x44,0x06,0x84,0xda
+
+# ATT:   ctestbew {dfv=of} %dx, %ax
+# INTEL: ctestbe {dfv=of} ax, dx
+0x62,0xf4,0x45,0x06,0x85,0xd0
+
+# ATT:   ctestbel {dfv=of} %ecx, %edx
+# INTEL: ctestbe {dfv=of} edx, ecx
+0x62,0xf4,0x44,0x06,0x85,0xca
+
+# ATT:   ctestbeq {dfv=of} %r9, %r15
+# INTEL: ctestbe {dfv=of} r15, r9
+0x62,0x54,0xc4,0x06,0x85,0xcf
+
+# ATT:   ctestfb {dfv=of} $123, 123(%r8,%rax,4)
+# INTEL: ctestf {dfv=of} byte ptr [r8 + 4*rax + 123], 123
+0x62,0xd4,0x44,0x0b,0xf6,0x44,0x80,0x7b,0x7b
+
+# ATT:   ctestfw {dfv=of} $1234, 123(%r8,%rax,4)
+# INTEL: ctestf {dfv=of} word ptr [r8 + 4*rax + 123], 1234
+0x62,0xd4,0x45,0x0b,0xf7,0x44,0x80,0x7b,0xd2,0x04
+
+# ATT:   ctestfl {dfv=of} $123456, 123(%r8,%rax,4)
+# INTEL: ctestf {dfv=of} dword ptr [r8 + 4*rax + 123], 123456
+0x62,0xd4,0x44,0x0b,0xf7,0x44,0x80,0x7b,0x40,0xe2,0x01,0x00
+
+# ATT:   ctestfq {dfv=of} $123456, 123(%r8,%rax,4)
+# INTEL: ctestf {dfv=of} qword ptr [r8 + 4*rax + 123], 123456
+0x62,0xd4,0xc4,0x0b,0xf7,0x44,0x80,0x7b,0x40,0xe2,0x01,0x00
+
+# ATT:   ctestfb {dfv=of} %bl, 123(%r8,%rax,4)
+# INTEL: ctestf {dfv=of} byte ptr [r8 + 4*rax + 123], bl
+0x62,0xd4,0x44,0x0b,0x84,0x5c,0x80,0x7b
+
+# ATT:   ctestfw {dfv=of} %dx, 123(%r8,%rax,4)
+# INTEL: ctestf {dfv=of} word ptr [r8 + 4*rax + 123], dx
+0x62,0xd4,0x45,0x0b,0x85,0x54,0x80,0x7b
+
+# ATT:   ctestfl {dfv=of} %ecx, 123(%r8,%rax,4)
+# INTEL: ctestf {dfv=of} dword ptr [r8 + 4*rax + 123], ecx
+0x62,0xd4,0x44,0x0b,0x85,0x4c,0x80,0x7b
+
+# ATT:   ctestfq {dfv=of} %r9, 123(%r8,%rax,4)
+# INTEL: ctestf {dfv=of} qword ptr [r8 + 4*rax + 123], r9
+0x62,0x54,0xc4,0x0b,0x85,0x4c,0x80,0x7b
+
+# ATT:   ctestfb {dfv=of} $123, %bl
+# INTEL: ctestf {dfv=of} bl, 123
+0x62,0xf4,0x44,0x0b,0xf6,0xc3,0x7b
+
+# ATT:   ctestfw {dfv=of} $1234, %dx
+# INTEL: ctestf {dfv=of} dx, 1234
+0x62,0xf4,0x45,0x0b,0xf7,0xc2,0xd2,0x04
+
+# ATT:   ctestfl {dfv=of} $123456, %ecx
+# INTEL: ctestf {dfv=of} ecx, 123456
+0x62,0xf4,0x44,0x0b,0xf7,0xc1,0x40,0xe2,0x01,0x00
+
+# ATT:   ctestfq {dfv=of} $123456, %r9
+# INTEL: ctestf {dfv=of} r9, 123456
+0x62,0xd4,0xc4,0x0b,0xf7,0xc1,0x40,0xe2,0x01,0x00
+
+# ATT:   ctestfb {dfv=of} %bl, %dl
+# INTEL: ctestf {dfv=of} dl, bl
+0x62,0xf4,0x44,0x0b,0x84,0xda
+
+# ATT:   ctestfw {dfv=of} %dx, %ax
+# INTEL: ctestf {dfv=of} ax, dx
+0x62,0xf4,0x45,0x0b,0x85,0xd0
+
+# ATT:   ctestfl {dfv=of} %ecx, %edx
+# INTEL: ctestf {dfv=of} edx, ecx
+0x62,0xf4,0x44,0x0b,0x85,0xca
+
+# ATT:   ctestfq {dfv=of} %r9, %r15
+# INTEL: ctestf {dfv=of} r15, r9
+0x62,0x54,0xc4,0x0b,0x85,0xcf
+
+# ATT:   ctestlb {dfv=of} $123, 123(%r8,%rax,4)
+# INTEL: ctestl {dfv=of} byte ptr [r8 + 4*rax + 123], 123
+0x62,0xd4,0x44,0x0c,0xf6,0x44,0x80,0x7b,0x7b
+
+# ATT:   ctestlw {dfv=of} $1234, 123(%r8,%rax,4)
+# INTEL: ctestl {dfv=of} word ptr [r8 + 4*rax + 123], 1234
+0x62,0xd4,0x45,0x0c,0xf7,0x44,0x80,0x7b,0xd2,0x04
+
+# ATT:   ctestll {dfv=of} $123456, 123(%r8,%rax,4)
+# INTEL: ctestl {dfv=of} dword ptr [r8 + 4*rax + 123], 123456
+0x62,0xd4,0x44,0x0c,0xf7,0x44,0x80,0x7b,0x40,0xe2,0x01,0x00
+
+# ATT:   ctestlq {dfv=of} $123456, 123(%r8,%rax,4)
+# INTEL: ctestl {dfv=of} qword ptr [r8 + 4*rax + 123], 123456
+0x62,0xd4,0xc4,0x0c,0xf7,0x44,0x80,0x7b,0x40,0xe2,0x01,0x00
+
+# ATT:   ctestlb {dfv=of} %bl, 123(%r8,%rax,4)
+# INTEL: ctestl {dfv=of} byte ptr [r8 + 4*rax + 123], bl
+0x62,0xd4,0x44,0x0c,0x84,0x5c,0x80,0x7b
+
+# ATT:   ctestlw {dfv=of} %dx, 123(%r8,%rax,4)
+# INTEL: ctestl {dfv=of} word ptr [r8 + 4*rax + 123], dx
+0x62,0xd4,0x45,0x0c,0x85,0x54,0x80,0x7b
+
+# ATT:   ctestll {dfv=of} %ecx, 123(%r8,%rax,4)
+# INTEL: ctestl {dfv=of} dword ptr [r8 + 4*rax + 123], ecx
+0x62,0xd4,0x44,0x0c,0x85,0x4c,0x80,0x7b
+
+# ATT:   ctestlq {dfv=of} %r9, 123(%r8,%rax,4)
+# INTEL: ctestl {dfv=of} qword ptr [r8 + 4*rax + 123], r9
+0x62,0x54,0xc4,0x0c,0x85,0x4c,0x80,0x7b
+
+# ATT:   ctestlb {dfv=of} $123, %bl
+# INTEL: ctestl {dfv=of} bl, 123
+0x62,0xf4,0x44,0x0c,0xf6,0xc3,0x7b
+
+# ATT:   ctestlw {dfv=of} $1234, %dx
+# INTEL: ctestl {dfv=of} dx, 1234
+0x62,0xf4,0x45,0x0c,0xf7,0xc2,0xd2,0x04
+
+# ATT:   ctestll {dfv=of} $123456, %ecx
+# INTEL: ctestl {dfv=of} ecx, 123456
+0x62,0xf4,0x44,0x0c,0xf7,0xc1,0x40,0xe2,0x01,0x00
+
+# ATT:   ctestlq {dfv=of} $123456, %r9
+# INTEL: ctestl {dfv=of} r9, 123456
+0x62,0xd4,0xc4,0x0c,0xf7,0xc1,0x40,0xe2,0x01,0x00
+
+# ATT:   ctestlb {dfv=of} %bl, %dl
+# INTEL: ctestl {dfv=of} dl, bl
+0x62,0xf4,0x44,0x0c,0x84,0xda
+
+# ATT:   ctestlw {dfv=of} %dx, %ax
+# INTEL: ctestl {dfv=of} ax, dx
+0x62,0xf4,0x45,0x0c,0x85,0xd0
+
+# ATT:   ctestll {dfv=of} %ecx, %edx
+# INTEL: ctestl {dfv=of} edx, ecx
+0x62,0xf4,0x44,0x0c,0x85,0xca
+
+# ATT:   ctestlq {dfv=of} %r9, %r15
+# INTEL: ctestl {dfv=of} r15, r9
+0x62,0x54,0xc4,0x0c,0x85,0xcf
+
+# ATT:   ctestleb {dfv=of} $123, 123(%r8,%rax,4)
+# INTEL: ctestle {dfv=of} byte ptr [r8 + 4*rax + 123], 123
+0x62,0xd4,0x44,0x0e,0xf6,0x44,0x80,0x7b,0x7b
+
+# ATT:   ctestlew {dfv=of} $1234, 123(%r8,%rax,4)
+# INTEL: ctestle {dfv=of} word ptr [r8 + 4*rax + 123], 1234
+0x62,0xd4,0x45,0x0e,0xf7,0x44,0x80,0x7b,0xd2,0x04
+
+# ATT:   ctestlel {dfv=of} $123456, 123(%r8,%rax,4)
+# INTEL: ctestle {dfv=of} dword ptr [r8 + 4*rax + 123], 123456
+0x62,0xd4,0x44,0x0e,0xf7,0x44,0x80,0x7b,0x40,0xe2,0x01,0x00
+
+# ATT:   ctestleq {dfv=of} $123456, 123(%r8,%rax,4)
+# INTEL: ctestle {dfv=of} qword ptr [r8 + 4*rax + 123], 123456
+0x62,0xd4,0xc4,0x0e,0xf7,0x44,0x80,0x7b,0x40,0xe2,0x01,0x00
+
+# ATT:   ctestleb {dfv=of} %bl, 123(%r8,%rax,4)
+# INTEL: ctestle {dfv=of} byte ptr [r8 + 4*rax + 123], bl
+0x62,0xd4,0x44,0x0e,0x84,0x5c,0x80,0x7b
+
+# ATT:   ctestlew {dfv=of} %dx, 123(%r8,%rax,4)
+# INTEL: ctestle {dfv=of} word ptr [r8 + 4*rax + 123], dx
+0x62,0xd4,0x45,0x0e,0x85,0x54,0x80,0x7b
+
+# ATT:   ctestlel {dfv=of} %ecx, 123(%r8,%rax,4)
+# INTEL: ctestle {dfv=of} dword ptr [r8 + 4*rax + 123], ecx
+0x62,0xd4,0x44,0x0e,0x85,0x4c,0x80,0x7b
+
+# ATT:   ctestleq {dfv=of} %r9, 123(%r8,%rax,4)
+# INTEL: ctestle {dfv=of} qword ptr [r8 + 4*rax + 123], r9
+0x62,0x54,0xc4,0x0e,0x85,0x4c,0x80,0x7b
+
+# ATT:   ctestleb {dfv=of} $123, %bl
+# INTEL: ctestle {dfv=of} bl, 123
+0x62,0xf4,0x44,0x0e,0xf6,0xc3,0x7b
+
+# ATT:   ctestlew {dfv=of} $1234, %dx
+# INTEL: ctestle {dfv=of} dx, 1234
+0x62,0xf4,0x45,0x0e,0xf7,0xc2,0xd2,0x04
+
+# ATT:   ctestlel {dfv=of} $123456, %ecx
+# INTEL: ctestle {dfv=of} ecx, 123456
+0x62,0xf4,0x44,0x0e,0xf7,0xc1,0x40,0xe2,0x01,0x00
+
+# ATT:   ctestleq {dfv=of} $123456, %r9
+# INTEL: ctestle {dfv=of} r9, 123456
+0x62,0xd4,0xc4,0x0e,0xf7,0xc1,0x40,0xe2,0x01,0x00
+
+# ATT:   ctestleb {dfv=of} %bl, %dl
+# INTEL: ctestle {dfv=of} dl, bl
+0x62,0xf4,0x44,0x0e,0x84,0xda
+
+# ATT:   ctestlew {dfv=of} %dx, %ax
+# INTEL: ctestle {dfv=of} ax, dx
+0x62,0xf4,0x45,0x0e,0x85,0xd0
+
+# ATT:   ctestlel {dfv=of} %ecx, %edx
+# INTEL: ctestle {dfv=of} edx, ecx
+0x62,0xf4,0x44,0x0e,0x85,0xca
+
+# ATT:   ctestleq {dfv=of} %r9, %r15
+# INTEL: ctestle {dfv=of} r15, r9
+0x62,0x54,0xc4,0x0e,0x85,0xcf
+
+# ATT:   ctestaeb {dfv=of} $123, 123(%r8,%rax,4)
+# INTEL: ctestae {dfv=of} byte ptr [r8 + 4*rax + 123], 123
+0x62,0xd4,0x44,0x03,0xf6,0x44,0x80,0x7b,0x7b
+
+# ATT:   ctestaew {dfv=of} $1234, 123(%r8,%rax,4)
+# INTEL: ctestae {dfv=of} word ptr [r8 + 4*rax + 123], 1234
+0x62,0xd4,0x45,0x03,0xf7,0x44,0x80,0x7b,0xd2,0x04
+
+# ATT:   ctestael {dfv=of} $123456, 123(%r8,%rax,4)
+# INTEL: ctestae {dfv=of} dword ptr [r8 + 4*rax + 123], 123456
+0x62,0xd4,0x44,0x03,0xf7,0x44,0x80,0x7b,0x40,0xe2,0x01,0x00
+
+# ATT:   ctestaeq {dfv=of} $123456, 123(%r8,%rax,4)
+# INTEL: ctestae {dfv=of} qword ptr [r8 + 4*rax + 123], 123456
+0x62,0xd4,0xc4,0x03,0xf7,0x44,0x80,0x7b,0x40,0xe2,0x01,0x00
+
+# ATT:   ctestaeb {dfv=of} %bl, 123(%r8,%rax,4)
+# INTEL: ctestae {dfv=of} byte ptr [r8 + 4*rax + 123], bl
+0x62,0xd4,0x44,0x03,0x84,0x5c,0x80,0x7b
+
+# ATT:   ctestaew {dfv=of} %dx, 123(%r8,%rax,4)
+# INTEL: ctestae {dfv=of} word ptr [r8 + 4*rax + 123], dx
+0x62,0xd4,0x45,0x03,0x85,0x54,0x80,0x7b
+
+# ATT:   ctestael {dfv=of} %ecx, 123(%r8,%rax,4)
+# INTEL: ctestae {dfv=of} dword ptr [r8 + 4*rax + 123], ecx
+0x62,0xd4,0x44,0x03,0x85,0x4c,0x80,0x7b
+
+# ATT:   ctestaeq {dfv=of} %r9, 123(%r8,%rax,4)
+# INTEL: ctestae {dfv=of} qword ptr [r8 + 4*rax + 123], r9
+0x62,0x54,0xc4,0x03,0x85,0x4c,0x80,0x7b
+
+# ATT:   ctestaeb {dfv=of} $123, %bl
+# INTEL: ctestae {dfv=of} bl, 123
+0x62,0xf4,0x44,0x03,0xf6,0xc3,0x7b
+
+# ATT:   ctestaew {dfv=of} $1234, %dx
+# INTEL: ctestae {dfv=of} dx, 1234
+0x62,0xf4,0x45,0x03,0xf7,0xc2,0xd2,0x04
+
+# ATT:   ctestael {dfv=of} $123456, %ecx
+# INTEL: ctestae {dfv=of} ecx, 123456
+0x62,0xf4,0x44,0x03,0xf7,0xc1,0x40,0xe2,0x01,0x00
+
+# ATT:   ctestaeq {dfv=of} $123456, %r9
+# INTEL: ctestae {dfv=of} r9, 123456
+0x62,0xd4,0xc4,0x03,0xf7,0xc1,0x40,0xe2,0x01,0x00
+
+# ATT:   ctestaeb {dfv=of} %bl, %dl
+# INTEL: ctestae {dfv=of} dl, bl
+0x62,0xf4,0x44,0x03,0x84,0xda
+
+# ATT:   ctestaew {dfv=of} %dx, %ax
+# INTEL: ctestae {dfv=of} ax, dx
+0x62,0xf4,0x45,0x03,0x85,0xd0
+
+# ATT:   ctestael {dfv=of} %ecx, %edx
+# INTEL: ctestae {dfv=of} edx, ecx
+0x62,0xf4,0x44,0x03,0x85,0xca
+
+# ATT:   ctestaeq {dfv=of} %r9, %r15
+# INTEL: ctestae {dfv=of} r15, r9
+0x62,0x54,0xc4,0x03,0x85,0xcf
+
+# ATT:   ctestab {dfv=of} $123, 123(%r8,%rax,4)
+# INTEL: ctesta {dfv=of} byte ptr [r8 + 4*rax + 123], 123
+0x62,0xd4,0x44,0x07,0xf6,0x44,0x80,0x7b,0x7b
+
+# ATT:   ctestaw {dfv=of} $1234, 123(%r8,%rax,4)
+# INTEL: ctesta {dfv=of} word ptr [r8 + 4*rax + 123], 1234
+0x62,0xd4,0x45,0x07,0xf7,0x44,0x80,0x7b,0xd2,0x04
+
+# ATT:   ctestal {dfv=of} $123456, 123(%r8,%rax,4)
+# INTEL: ctesta {dfv=of} dword ptr [r8 + 4*rax + 123], 123456
+0x62,0xd4,0x44,0x07,0xf7,0x44,0x80,0x7b,0x40,0xe2,0x01,0x00
+
+# ATT:   ctestaq {dfv=of} $123456, 123(%r8,%rax,4)
+# INTEL: ctesta {dfv=of} qword ptr [r8 + 4*rax + 123], 123456
+0x62,0xd4,0xc4,0x07,0xf7,0x44,0x80,0x7b,0x40,0xe2,0x01,0x00
+
+# ATT:   ctestab {dfv=of} %bl, 123(%r8,%rax,4)
+# INTEL: ctesta {dfv=of} byte ptr [r8 + 4*rax + 123], bl
+0x62,0xd4,0x44,0x07,0x84,0x5c,0x80,0x7b
+
+# ATT:   ctestaw {dfv=of} %dx, 123(%r8,%rax,4)
+# INTEL: ctesta {dfv=of} word ptr [r8 + 4*rax + 123], dx
+0x62,0xd4,0x45,0x07,0x85,0x54,0x80,0x7b
+
+# ATT:   ctestal {dfv=of} %ecx, 123(%r8,%rax,4)
+# INTEL: ctesta {dfv=of} dword ptr [r8 + 4*rax + 123], ecx
+0x62,0xd4,0x44,0x07,0x85,0x4c,0x80,0x7b
+
+# ATT:   ctestaq {dfv=of} %r9, 123(%r8,%rax,4)
+# INTEL: ctesta {dfv=of} qword ptr [r8 + 4*rax + 123], r9
+0x62,0x54,0xc4,0x07,0x85,0x4c,0x80,0x7b
+
+# ATT:   ctestab {dfv=of} $123, %bl
+# INTEL: ctesta {dfv=of} bl, 123
+0x62,0xf4,0x44,0x07,0xf6,0xc3,0x7b
+
+# ATT:   ctestaw {dfv=of} $1234, %dx
+# INTEL: ctesta {dfv=of} dx, 1234
+0x62,0xf4,0x45,0x07,0xf7,0xc2,0xd2,0x04
+
+# ATT:   ctestal {dfv=of} $123456, %ecx
+# INTEL: ctesta {dfv=of} ecx, 123456
+0x62,0xf4,0x44,0x07,0xf7,0xc1,0x40,0xe2,0x01,0x00
+
+# ATT:   ctestaq {dfv=of} $123456, %r9
+# INTEL: ctesta {dfv=of} r9, 123456
+0x62,0xd4,0xc4,0x07,0xf7,0xc1,0x40,0xe2,0x01,0x00
+
+# ATT:   ctestab {dfv=of} %bl, %dl
+# INTEL: ctesta {dfv=of} dl, bl
+0x62,0xf4,0x44,0x07,0x84,0xda
+
+# ATT:   ctestaw {dfv=of} %dx, %ax
+# INTEL: ctesta {dfv=of} ax, dx
+0x62,0xf4,0x45,0x07,0x85,0xd0
+
+# ATT:   ctestal {dfv=of} %ecx, %edx
+# INTEL: ctesta {dfv=of} edx, ecx
+0x62,0xf4,0x44,0x07,0x85,0xca
+
+# ATT:   ctestaq {dfv=of} %r9, %r15
+# INTEL: ctesta {dfv=of} r15, r9
+0x62,0x54,0xc4,0x07,0x85,0xcf
+
+# ATT:   ctestgeb {dfv=of} $123, 123(%r8,%rax,4)
+# INTEL: ctestge {dfv=of} byte ptr [r8 + 4*rax + 123], 123
+0x62,0xd4,0x44,0x0d,0xf6,0x44,0x80,0x7b,0x7b
+
+# ATT:   ctestgew {dfv=of} $1234, 123(%r8,%rax,4)
+# INTEL: ctestge {dfv=of} word ptr [r8 + 4*rax + 123], 1234
+0x62,0xd4,0x45,0x0d,0xf7,0x44,0x80,0x7b,0xd2,0x04
+
+# ATT:   ctestgel {dfv=of} $123456, 123(%r8,%rax,4)
+# INTEL: ctestge {dfv=of} dword ptr [r8 + 4*rax + 123], 123456
+0x62,0xd4,0x44,0x0d,0xf7,0x44,0x80,0x7b,0x40,0xe2,0x01,0x00
+
+# ATT:   ctestgeq {dfv=of} $123456, 123(%r8,%rax,4)
+# INTEL: ctestge {dfv=of} qword ptr [r8 + 4*rax + 123], 123456
+0x62,0xd4,0xc4,0x0d,0xf7,0x44,0x80,0x7b,0x40,0xe2,0x01,0x00
+
+# ATT:   ctestgeb {dfv=of} %bl, 123(%r8,%rax,4)
+# INTEL: ctestge {dfv=of} byte ptr [r8 + 4*rax + 123], bl
+0x62,0xd4,0x44,0x0d,0x84,0x5c,0x80,0x7b
+
+# ATT:   ctestgew {dfv=of} %dx, 123(%r8,%rax,4)
+# INTEL: ctestge {dfv=of} word ptr [r8 + 4*rax + 123], dx
+0x62,0xd4,0x45,0x0d,0x85,0x54,0x80,0x7b
+
+# ATT:   ctestgel {dfv=of} %ecx, 123(%r8,%rax,4)
+# INTEL: ctestge {dfv=of} dword ptr [r8 + 4*rax + 123], ecx
+0x62,0xd4,0x44,0x0d,0x85,0x4c,0x80,0x7b
+
+# ATT:   ctestgeq {dfv=of} %r9, 123(%r8,%rax,4)
+# INTEL: ctestge {dfv=of} qword ptr [r8 + 4*rax + 123], r9
+0x62,0x54,0xc4,0x0d,0x85,0x4c,0x80,0x7b
+
+# ATT:   ctestgeb {dfv=of} $123, %bl
+# INTEL: ctestge {dfv=of} bl, 123
+0x62,0xf4,0x44,0x0d,0xf6,0xc3,0x7b
+
+# ATT:   ctestgew {dfv=of} $1234, %dx
+# INTEL: ctestge {dfv=of} dx, 1234
+0x62,0xf4,0x45,0x0d,0xf7,0xc2,0xd2,0x04
+
+# ATT:   ctestgel {dfv=of} $123456, %ecx
+# INTEL: ctestge {dfv=of} ecx, 123456
+0x62,0xf4,0x44,0x0d,0xf7,0xc1,0x40,0xe2,0x01,0x00
+
+# ATT:   ctestgeq {dfv=of} $123456, %r9
+# INTEL: ctestge {dfv=of} r9, 123456
+0x62,0xd4,0xc4,0x0d,0xf7,0xc1,0x40,0xe2,0x01,0x00
+
+# ATT:   ctestgeb {dfv=of} %bl, %dl
+# INTEL: ctestge {dfv=of} dl, bl
+0x62,0xf4,0x44,0x0d,0x84,0xda
+
+# ATT:   ctestgew {dfv=of} %dx, %ax
+# INTEL: ctestge {dfv=of} ax, dx
+0x62,0xf4,0x45,0x0d,0x85,0xd0
+
+# ATT:   ctestgel {dfv=of} %ecx, %edx
+# INTEL: ctestge {dfv=of} edx, ecx
+0x62,0xf4,0x44,0x0d,0x85,0xca
+
+# ATT:   ctestgeq {dfv=of} %r9, %r15
+# INTEL: ctestge {dfv=of} r15, r9
+0x62,0x54,0xc4,0x0d,0x85,0xcf
+
+# ATT:   ctestgb {dfv=of} $123, 123(%r8,%rax,4)
+# INTEL: ctestg {dfv=of} byte ptr [r8 + 4*rax + 123], 123
+0x62,0xd4,0x44,0x0f,0xf6,0x44,0x80,0x7b,0x7b
+
+# ATT:   ctestgw {dfv=of} $1234, 123(%r8,%rax,4)
+# INTEL: ctestg {dfv=of} word ptr [r8 + 4*rax + 123], 1234
+0x62,0xd4,0x45,0x0f,0xf7,0x44,0x80,0x7b,0xd2,0x04
+
+# ATT:   ctestgl {dfv=of} $123456, 123(%r8,%rax,4)
+# INTEL: ctestg {dfv=of} dword ptr [r8 + 4*rax + 123], 123456
+0x62,0xd4,0x44,0x0f,0xf7,0x44,0x80,0x7b,0x40,0xe2,0x01,0x00
+
+# ATT:   ctestgq {dfv=of} $123456, 123(%r8,%rax,4)
+# INTEL: ctestg {dfv=of} qword ptr [r8 + 4*rax + 123], 123456
+0x62,0xd4,0xc4,0x0f,0xf7,0x44,0x80,0x7b,0x40,0xe2,0x01,0x00
+
+# ATT:   ctestgb {dfv=of} %bl, 123(%r8,%rax,4)
+# INTEL: ctestg {dfv=of} byte ptr [r8 + 4*rax + 123], bl
+0x62,0xd4,0x44,0x0f,0x84,0x5c,0x80,0x7b
+
+# ATT:   ctestgw {dfv=of} %dx, 123(%r8,%rax,4)
+# INTEL: ctestg {dfv=of} word ptr [r8 + 4*rax + 123], dx
+0x62,0xd4,0x45,0x0f,0x85,0x54,0x80,0x7b
+
+# ATT:   ctestgl {dfv=of} %ecx, 123(%r8,%rax,4)
+# INTEL: ctestg {dfv=of} dword ptr [r8 + 4*rax + 123], ecx
+0x62,0xd4,0x44,0x0f,0x85,0x4c,0x80,0x7b
+
+# ATT:   ctestgq {dfv=of} %r9, 123(%r8,%rax,4)
+# INTEL: ctestg {dfv=of} qword ptr [r8 + 4*rax + 123], r9
+0x62,0x54,0xc4,0x0f,0x85,0x4c,0x80,0x7b
+
+# ATT:   ctestgb {dfv=of} $123, %bl
+# INTEL: ctestg {dfv=of} bl, 123
+0x62,0xf4,0x44,0x0f,0xf6,0xc3,0x7b
+
+# ATT:   ctestgw {dfv=of} $1234, %dx
+# INTEL: ctestg {dfv=of} dx, 1234
+0x62,0xf4,0x45,0x0f,0xf7,0xc2,0xd2,0x04
+
+# ATT:   ctestgl {dfv=of} $123456, %ecx
+# INTEL: ctestg {dfv=of} ecx, 123456
+0x62,0xf4,0x44,0x0f,0xf7,0xc1,0x40,0xe2,0x01,0x00
+
+# ATT:   ctestgq {dfv=of} $123456, %r9
+# INTEL: ctestg {dfv=of} r9, 123456
+0x62,0xd4,0xc4,0x0f,0xf7,0xc1,0x40,0xe2,0x01,0x00
+
+# ATT:   ctestgb {dfv=of} %bl, %dl
+# INTEL: ctestg {dfv=of} dl, bl
+0x62,0xf4,0x44,0x0f,0x84,0xda
+
+# ATT:   ctestgw {dfv=of} %dx, %ax
+# INTEL: ctestg {dfv=of} ax, dx
+0x62,0xf4,0x45,0x0f,0x85,0xd0
+
+# ATT:   ctestgl {dfv=of} %ecx, %edx
+# INTEL: ctestg {dfv=of} edx, ecx
+0x62,0xf4,0x44,0x0f,0x85,0xca
+
+# ATT:   ctestgq {dfv=of} %r9, %r15
+# INTEL: ctestg {dfv=of} r15, r9
+0x62,0x54,0xc4,0x0f,0x85,0xcf
+
+# ATT:   ctestnob {dfv=of} $123, 123(%r8,%rax,4)
+# INTEL: ctestno {dfv=of} byte ptr [r8 + 4*rax + 123], 123
+0x62,0xd4,0x44,0x01,0xf6,0x44,0x80,0x7b,0x7b
+
+# ATT:   ctestnow {dfv=of} $1234, 123(%r8,%rax,4)
+# INTEL: ctestno {dfv=of} word ptr [r8 + 4*rax + 123], 1234
+0x62,0xd4,0x45,0x01,0xf7,0x44,0x80,0x7b,0xd2,0x04
+
+# ATT:   ctestnol {dfv=of} $123456, 123(%r8,%rax,4)
+# INTEL: ctestno {dfv=of} dword ptr [r8 + 4*rax + 123], 123456
+0x62,0xd4,0x44,0x01,0xf7,0x44,0x80,0x7b,0x40,0xe2,0x01,0x00
+
+# ATT:   ctestnoq {dfv=of} $123456, 123(%r8,%rax,4)
+# INTEL: ctestno {dfv=of} qword ptr [r8 + 4*rax + 123], 123456
+0x62,0xd4,0xc4,0x01,0xf7,0x44,0x80,0x7b,0x40,0xe2,0x01,0x00
+
+# ATT:   ctestnob {dfv=of} %bl, 123(%r8,%rax,4)
+# INTEL: ctestno {dfv=of} byte ptr [r8 + 4*rax + 123], bl
+0x62,0xd4,0x44,0x01,0x84,0x5c,0x80,0x7b
+
+# ATT:   ctestnow {dfv=of} %dx, 123(%r8,%rax,4)
+# INTEL: ctestno {dfv=of} word ptr [r8 + 4*rax + 123], dx
+0x62,0xd4,0x45,0x01,0x85,0x54,0x80,0x7b
+
+# ATT:   ctestnol {dfv=of} %ecx, 123(%r8,%rax,4)
+# INTEL: ctestno {dfv=of} dword ptr [r8 + 4*rax + 123], ecx
+0x62,0xd4,0x44,0x01,0x85,0x4c,0x80,0x7b
+
+# ATT:   ctestnoq {dfv=of} %r9, 123(%r8,%rax,4)
+# INTEL: ctestno {dfv=of} qword ptr [r8 + 4*rax + 123], r9
+0x62,0x54,0xc4,0x01,0x85,0x4c,0x80,0x7b
+
+# ATT:   ctestnob {dfv=of} $123, %bl
+# INTEL: ctestno {dfv=of} bl, 123
+0x62,0xf4,0x44,0x01,0xf6,0xc3,0x7b
+
+# ATT:   ctestnow {dfv=of} $1234, %dx
+# INTEL: ctestno {dfv=of} dx, 1234
+0x62,0xf4,0x45,0x01,0xf7,0xc2,0xd2,0x04
+
+# ATT:   ctestnol {dfv=of} $123456, %ecx
+# INTEL: ctestno {dfv=of} ecx, 123456
+0x62,0xf4,0x44,0x01,0xf7,0xc1,0x40,0xe2,0x01,0x00
+
+# ATT:   ctestnoq {dfv=of} $123456, %r9
+# INTEL: ctestno {dfv=of} r9, 123456
+0x62,0xd4,0xc4,0x01,0xf7,0xc1,0x40,0xe2,0x01,0x00
+
+# ATT:   ctestnob {dfv=of} %bl, %dl
+# INTEL: ctestno {dfv=of} dl, bl
+0x62,0xf4,0x44,0x01,0x84,0xda
+
+# ATT:   ctestnow {dfv=of} %dx, %ax
+# INTEL: ctestno {dfv=of} ax, dx
+0x62,0xf4,0x45,0x01,0x85,0xd0
+
+# ATT:   ctestnol {dfv=of} %ecx, %edx
+# INTEL: ctestno {dfv=of} edx, ecx
+0x62,0xf4,0x44,0x01,0x85,0xca
+
+# ATT:   ctestnoq {dfv=of} %r9, %r15
+# INTEL: ctestno {dfv=of} r15, r9
+0x62,0x54,0xc4,0x01,0x85,0xcf
+
+# ATT:   ctestnsb {dfv=of} $123, 123(%r8,%rax,4)
+# INTEL: ctestns {dfv=of} byte ptr [r8 + 4*rax + 123], 123
+0x62,0xd4,0x44,0x09,0xf6,0x44,0x80,0x7b,0x7b
+
+# ATT:   ctestnsw {dfv=of} $1234, 123(%r8,%rax,4)
+# INTEL: ctestns {dfv=of} word ptr [r8 + 4*rax + 123], 1234
+0x62,0xd4,0x45,0x09,0xf7,0x44,0x80,0x7b,0xd2,0x04
+
+# ATT:   ctestnsl {dfv=of} $123456, 123(%r8,%rax,4)
+# INTEL: ctestns {dfv=of} dword ptr [r8 + 4*rax + 123], 123456
+0x62,0xd4,0x44,0x09,0xf7,0x44,0x80,0x7b,0x40,0xe2,0x01,0x00
+
+# ATT:   ctestnsq {dfv=of} $123456, 123(%r8,%rax,4)
+# INTEL: ctestns {dfv=of} qword ptr [r8 + 4*rax + 123], 123456
+0x62,0xd4,0xc4,0x09,0xf7,0x44,0x80,0x7b,0x40,0xe2,0x01,0x00
+
+# ATT:   ctestnsb {dfv=of} %bl, 123(%r8,%rax,4)
+# INTEL: ctestns {dfv=of} byte ptr [r8 + 4*rax + 123], bl
+0x62,0xd4,0x44,0x09,0x84,0x5c,0x80,0x7b
+
+# ATT:   ctestnsw {dfv=of} %dx, 123(%r8,%rax,4)
+# INTEL: ctestns {dfv=of} word ptr [r8 + 4*rax + 123], dx
+0x62,0xd4,0x45,0x09,0x85,0x54,0x80,0x7b
+
+# ATT:   ctestnsl {dfv=of} %ecx, 123(%r8,%rax,4)
+# INTEL: ctestns {dfv=of} dword ptr [r8 + 4*rax + 123], ecx
+0x62,0xd4,0x44,0x09,0x85,0x4c,0x80,0x7b
+
+# ATT:   ctestnsq {dfv=of} %r9, 123(%r8,%rax,4)
+# INTEL: ctestns {dfv=of} qword ptr [r8 + 4*rax + 123], r9
+0x62,0x54,0xc4,0x09,0x85,0x4c,0x80,0x7b
+
+# ATT:   ctestnsb {dfv=of} $123, %bl
+# INTEL: ctestns {dfv=of} bl, 123
+0x62,0xf4,0x44,0x09,0xf6,0xc3,0x7b
+
+# ATT:   ctestnsw {dfv=of} $1234, %dx
+# INTEL: ctestns {dfv=of} dx, 1234
+0x62,0xf4,0x45,0x09,0xf7,0xc2,0xd2,0x04
+
+# ATT:   ctestnsl {dfv=of} $123456, %ecx
+# INTEL: ctestns {dfv=of} ecx, 123456
+0x62,0xf4,0x44,0x09,0xf7,0xc1,0x40,0xe2,0x01,0x00
+
+# ATT:   ctestnsq {dfv=of} $123456, %r9
+# INTEL: ctestns {dfv=of} r9, 123456
+0x62,0xd4,0xc4,0x09,0xf7,0xc1,0x40,0xe2,0x01,0x00
+
+# ATT:   ctestnsb {dfv=of} %bl, %dl
+# INTEL: ctestns {dfv=of} dl, bl
+0x62,0xf4,0x44,0x09,0x84,0xda
+
+# ATT:   ctestnsw {dfv=of} %dx, %ax
+# INTEL: ctestns {dfv=of} ax, dx
+0x62,0xf4,0x45,0x09,0x85,0xd0
+
+# ATT:   ctestnsl {dfv=of} %ecx, %edx
+# INTEL: ctestns {dfv=of} edx, ecx
+0x62,0xf4,0x44,0x09,0x85,0xca
+
+# ATT:   ctestnsq {dfv=of} %r9, %r15
+# INTEL: ctestns {dfv=of} r15, r9
+0x62,0x54,0xc4,0x09,0x85,0xcf
+
+# ATT:   ctestneb {dfv=of} $123, 123(%r8,%rax,4)
+# INTEL: ctestne {dfv=of} byte ptr [r8 + 4*rax + 123], 123
+0x62,0xd4,0x44,0x05,0xf6,0x44,0x80,0x7b,0x7b
+
+# ATT:   ctestnew {dfv=of} $1234, 123(%r8,%rax,4)
+# INTEL: ctestne {dfv=of} word ptr [r8 + 4*rax + 123], 1234
+0x62,0xd4,0x45,0x05,0xf7,0x44,0x80,0x7b,0xd2,0x04
+
+# ATT:   ctestnel {dfv=of} $123456, 123(%r8,%rax,4)
+# INTEL: ctestne {dfv=of} dword ptr [r8 + 4*rax + 123], 123456
+0x62,0xd4,0x44,0x05,0xf7,0x44,0x80,0x7b,0x40,0xe2,0x01,0x00
+
+# ATT:   ctestneq {dfv=of} $123456, 123(%r8,%rax,4)
+# INTEL: ctestne {dfv=of} qword ptr [r8 + 4*rax + 123], 123456
+0x62,0xd4,0xc4,0x05,0xf7,0x44,0x80,0x7b,0x40,0xe2,0x01,0x00
+
+# ATT:   ctestneb {dfv=of} %bl, 123(%r8,%rax,4)
+# INTEL: ctestne {dfv=of} byte ptr [r8 + 4*rax + 123], bl
+0x62,0xd4,0x44,0x05,0x84,0x5c,0x80,0x7b
+
+# ATT:   ctestnew {dfv=of} %dx, 123(%r8,%rax,4)
+# INTEL: ctestne {dfv=of} word ptr [r8 + 4*rax + 123], dx
+0x62,0xd4,0x45,0x05,0x85,0x54,0x80,0x7b
+
+# ATT:   ctestnel {dfv=of} %ecx, 123(%r8,%rax,4)
+# INTEL: ctestne {dfv=of} dword ptr [r8 + 4*rax + 123], ecx
+0x62,0xd4,0x44,0x05,0x85,0x4c,0x80,0x7b
+
+# ATT:   ctestneq {dfv=of} %r9, 123(%r8,%rax,4)
+# INTEL: ctestne {dfv=of} qword ptr [r8 + 4*rax + 123], r9
+0x62,0x54,0xc4,0x05,0x85,0x4c,0x80,0x7b
+
+# ATT:   ctestneb {dfv=of} $123, %bl
+# INTEL: ctestne {dfv=of} bl, 123
+0x62,0xf4,0x44,0x05,0xf6,0xc3,0x7b
+
+# ATT:   ctestnew {dfv=of} $1234, %dx
+# INTEL: ctestne {dfv=of} dx, 1234
+0x62,0xf4,0x45,0x05,0xf7,0xc2,0xd2,0x04
+
+# ATT:   ctestnel {dfv=of} $123456, %ecx
+# INTEL: ctestne {dfv=of} ecx, 123456
+0x62,0xf4,0x44,0x05,0xf7,0xc1,0x40,0xe2,0x01,0x00
+
+# ATT:   ctestneq {dfv=of} $123456, %r9
+# INTEL: ctestne {dfv=of} r9, 123456
+0x62,0xd4,0xc4,0x05,0xf7,0xc1,0x40,0xe2,0x01,0x00
+
+# ATT:   ctestneb {dfv=of} %bl, %dl
+# INTEL: ctestne {dfv=of} dl, bl
+0x62,0xf4,0x44,0x05,0x84,0xda
+
+# ATT:   ctestnew {dfv=of} %dx, %ax
+# INTEL: ctestne {dfv=of} ax, dx
+0x62,0xf4,0x45,0x05,0x85,0xd0
+
+# ATT:   ctestnel {dfv=of} %ecx, %edx
+# INTEL: ctestne {dfv=of} edx, ecx
+0x62,0xf4,0x44,0x05,0x85,0xca
+
+# ATT:   ctestneq {dfv=of} %r9, %r15
+# INTEL: ctestne {dfv=of} r15, r9
+0x62,0x54,0xc4,0x05,0x85,0xcf
+
+# ATT:   ctestob {dfv=of} $123, 123(%r8,%rax,4)
+# INTEL: ctesto {dfv=of} byte ptr [r8 + 4*rax + 123], 123
+0x62,0xd4,0x44,0x00,0xf6,0x44,0x80,0x7b,0x7b
+
+# ATT:   ctestow {dfv=of} $1234, 123(%r8,%rax,4)
+# INTEL: ctesto {dfv=of} word ptr [r8 + 4*rax + 123], 1234
+0x62,0xd4,0x45,0x00,0xf7,0x44,0x80,0x7b,0xd2,0x04
+
+# ATT:   ctestol {dfv=of} $123456, 123(%r8,%rax,4)
+# INTEL: ctesto {dfv=of} dword ptr [r8 + 4*rax + 123], 123456
+0x62,0xd4,0x44,0x00,0xf7,0x44,0x80,0x7b,0x40,0xe2,0x01,0x00
+
+# ATT:   ctestoq {dfv=of} $123456, 123(%r8,%rax,4)
+# INTEL: ctesto {dfv=of} qword ptr [r8 + 4*rax + 123], 123456
+0x62,0xd4,0xc4,0x00,0xf7,0x44,0x80,0x7b,0x40,0xe2,0x01,0x00
+
+# ATT:   ctestob {dfv=of} %bl, 123(%r8,%rax,4)
+# INTEL: ctesto {dfv=of} byte ptr [r8 + 4*rax + 123], bl
+0x62,0xd4,0x44,0x00,0x84,0x5c,0x80,0x7b
+
+# ATT:   ctestow {dfv=of} %dx, 123(%r8,%rax,4)
+# INTEL: ctesto {dfv=of} word ptr [r8 + 4*rax + 123], dx
+0x62,0xd4,0x45,0x00,0x85,0x54,0x80,0x7b
+
+# ATT:   ctestol {dfv=of} %ecx, 123(%r8,%rax,4)
+# INTEL: ctesto {dfv=of} dword ptr [r8 + 4*rax + 123], ecx
+0x62,0xd4,0x44,0x00,0x85,0x4c,0x80,0x7b
+
+# ATT:   ctestoq {dfv=of} %r9, 123(%r8,%rax,4)
+# INTEL: ctesto {dfv=of} qword ptr [r8 + 4*rax + 123], r9
+0x62,0x54,0xc4,0x00,0x85,0x4c,0x80,0x7b
+
+# ATT:   ctestob {dfv=of} $123, %bl
+# INTEL: ctesto {dfv=of} bl, 123
+0x62,0xf4,0x44,0x00,0xf6,0xc3,0x7b
+
+# ATT:   ctestow {dfv=of} $1234, %dx
+# INTEL: ctesto {dfv=of} dx, 1234
+0x62,0xf4,0x45,0x00,0xf7,0xc2,0xd2,0x04
+
+# ATT:   ctestol {dfv=of} $123456, %ecx
+# INTEL: ctesto {dfv=of} ecx, 123456
+0x62,0xf4,0x44,0x00,0xf7,0xc1,0x40,0xe2,0x01,0x00
+
+# ATT:   ctestoq {dfv=of} $123456, %r9
+# INTEL: ctesto {dfv=of} r9, 123456
+0x62,0xd4,0xc4,0x00,0xf7,0xc1,0x40,0xe2,0x01,0x00
+
+# ATT:   ctestob {dfv=of} %bl, %dl
+# INTEL: ctesto {dfv=of} dl, bl
+0x62,0xf4,0x44,0x00,0x84,0xda
+
+# ATT:   ctestow {dfv=of} %dx, %ax
+# INTEL: ctesto {dfv=of} ax, dx
+0x62,0xf4,0x45,0x00,0x85,0xd0
+
+# ATT:   ctestol {dfv=of} %ecx, %edx
+# INTEL: ctesto {dfv=of} edx, ecx
+0x62,0xf4,0x44,0x00,0x85,0xca
+
+# ATT:   ctestoq {dfv=of} %r9, %r15
+# INTEL: ctesto {dfv=of} r15, r9
+0x62,0x54,0xc4,0x00,0x85,0xcf
+
+# ATT:   ctestsb {dfv=of} $123, 123(%r8,%rax,4)
+# INTEL: ctests {dfv=of} byte ptr [r8 + 4*rax + 123], 123
+0x62,0xd4,0x44,0x08,0xf6,0x44,0x80,0x7b,0x7b
+
+# ATT:   ctestsw {dfv=of} $1234, 123(%r8,%rax,4)
+# INTEL: ctests {dfv=of} word ptr [r8 + 4*rax + 123], 1234
+0x62,0xd4,0x45,0x08,0xf7,0x44,0x80,0x7b,0xd2,0x04
+
+# ATT:   ctestsl {dfv=of} $123456, 123(%r8,%rax,4)
+# INTEL: ctests {dfv=of} dword ptr [r8 + 4*rax + 123], 123456
+0x62,0xd4,0x44,0x08,0xf7,0x44,0x80,0x7b,0x40,0xe2,0x01,0x00
+
+# ATT:   ctestsq {dfv=of} $123456, 123(%r8,%rax,4)
+# INTEL: ctests {dfv=of} qword ptr [r8 + 4*rax + 123], 123456
+0x62,0xd4,0xc4,0x08,0xf7,0x44,0x80,0x7b,0x40,0xe2,0x01,0x00
+
+# ATT:   ctestsb {dfv=of} %bl, 123(%r8,%rax,4)
+# INTEL: ctests {dfv=of} byte ptr [r8 + 4*rax + 123], bl
+0x62,0xd4,0x44,0x08,0x84,0x5c,0x80,0x7b
+
+# ATT:   ctestsw {dfv=of} %dx, 123(%r8,%rax,4)
+# INTEL: ctests {dfv=of} word ptr [r8 + 4*rax + 123], dx
+0x62,0xd4,0x45,0x08,0x85,0x54,0x80,0x7b
+
+# ATT:   ctestsl {dfv=of} %ecx, 123(%r8,%rax,4)
+# INTEL: ctests {dfv=of} dword ptr [r8 + 4*rax + 123], ecx
+0x62,0xd4,0x44,0x08,0x85,0x4c,0x80,0x7b
+
+# ATT:   ctestsq {dfv=of} %r9, 123(%r8,%rax,4)
+# INTEL: ctests {dfv=of} qword ptr [r8 + 4*rax + 123], r9
+0x62,0x54,0xc4,0x08,0x85,0x4c,0x80,0x7b
+
+# ATT:   ctestsb {dfv=of} $123, %bl
+# INTEL: ctests {dfv=of} bl, 123
+0x62,0xf4,0x44,0x08,0xf6,0xc3,0x7b
+
+# ATT:   ctestsw {dfv=of} $1234, %dx
+# INTEL: ctests {dfv=of} dx, 1234
+0x62,0xf4,0x45,0x08,0xf7,0xc2,0xd2,0x04
+
+# ATT:   ctestsl {dfv=of} $123456, %ecx
+# INTEL: ctests {dfv=of} ecx, 123456
+0x62,0xf4,0x44,0x08,0xf7,0xc1,0x40,0xe2,0x01,0x00
+
+# ATT:   ctestsq {dfv=of} $123456, %r9
+# INTEL: ctests {dfv=of} r9, 123456
+0x62,0xd4,0xc4,0x08,0xf7,0xc1,0x40,0xe2,0x01,0x00
+
+# ATT:   ctestsb {dfv=of} %bl, %dl
+# INTEL: ctests {dfv=of} dl, bl
+0x62,0xf4,0x44,0x08,0x84,0xda
+
+# ATT:   ctestsw {dfv=of} %dx, %ax
+# INTEL: ctests {dfv=of} ax, dx
+0x62,0xf4,0x45,0x08,0x85,0xd0
+
+# ATT:   ctestsl {dfv=of} %ecx, %edx
+# INTEL: ctests {dfv=of} edx, ecx
+0x62,0xf4,0x44,0x08,0x85,0xca
+
+# ATT:   ctestsq {dfv=of} %r9, %r15
+# INTEL: ctests {dfv=of} r15, r9
+0x62,0x54,0xc4,0x08,0x85,0xcf
+
+# ATT:   ctesttb {dfv=of} $123, 123(%r8,%rax,4)
+# INTEL: ctestt {dfv=of} byte ptr [r8 + 4*rax + 123], 123
+0x62,0xd4,0x44,0x0a,0xf6,0x44,0x80,0x7b,0x7b
+
+# ATT:   ctesttw {dfv=of} $1234, 123(%r8,%rax,4)
+# INTEL: ctestt {dfv=of} word ptr [r8 + 4*rax + 123], 1234
+0x62,0xd4,0x45,0x0a,0xf7,0x44,0x80,0x7b,0xd2,0x04
+
+# ATT:   ctesttl {dfv=of} $123456, 123(%r8,%rax,4)
+# INTEL: ctestt {dfv=of} dword ptr [r8 + 4*rax + 123], 123456
+0x62,0xd4,0x44,0x0a,0xf7,0x44,0x80,0x7b,0x40,0xe2,0x01,0x00
+
+# ATT:   ctesttq {dfv=of} $123456, 123(%r8,%rax,4)
+# INTEL: ctestt {dfv=of} qword ptr [r8 + 4*rax + 123], 123456
+0x62,0xd4,0xc4,0x0a,0xf7,0x44,0x80,0x7b,0x40,0xe2,0x01,0x00
+
+# ATT:   ctesttb {dfv=of} %bl, 123(%r8,%rax,4)
+# INTEL: ctestt {dfv=of} byte ptr [r8 + 4*rax + 123], bl
+0x62,0xd4,0x44,0x0a,0x84,0x5c,0x80,0x7b
+
+# ATT:   ctesttw {dfv=of} %dx, 123(%r8,%rax,4)
+# INTEL: ctestt {dfv=of} word ptr [r8 + 4*rax + 123], dx
+0x62,0xd4,0x45,0x0a,0x85,0x54,0x80,0x7b
+
+# ATT:   ctesttl {dfv=of} %ecx, 123(%r8,%rax,4)
+# INTEL: ctestt {dfv=of} dword ptr [r8 + 4*rax + 123], ecx
+0x62,0xd4,0x44,0x0a,0x85,0x4c,0x80,0x7b
+
+# ATT:   ctesttq {dfv=of} %r9, 123(%r8,%rax,4)
+# INTEL: ctestt {dfv=of} qword ptr [r8 + 4*rax + 123], r9
+0x62,0x54,0xc4,0x0a,0x85,0x4c,0x80,0x7b
+
+# ATT:   ctesttb {dfv=of} $123, %bl
+# INTEL: ctestt {dfv=of} bl, 123
+0x62,0xf4,0x44,0x0a,0xf6,0xc3,0x7b
+
+# ATT:   ctesttw {dfv=of} $1234, %dx
+# INTEL: ctestt {dfv=of} dx, 1234
+0x62,0xf4,0x45,0x0a,0xf7,0xc2,0xd2,0x04
+
+# ATT:   ctesttl {dfv=of} $123456, %ecx
+# INTEL: ctestt {dfv=of} ecx, 123456
+0x62,0xf4,0x44,0x0a,0xf7,0xc1,0x40,0xe2,0x01,0x00
+
+# ATT:   ctesttq {dfv=of} $123456, %r9
+# INTEL: ctestt {dfv=of} r9, 123456
+0x62,0xd4,0xc4,0x0a,0xf7,0xc1,0x40,0xe2,0x01,0x00
+
+# ATT:   ctesttb {dfv=of} %bl, %dl
+# INTEL: ctestt {dfv=of} dl, bl
+0x62,0xf4,0x44,0x0a,0x84,0xda
+
+# ATT:   ctesttw {dfv=of} %dx, %ax
+# INTEL: ctestt {dfv=of} ax, dx
+0x62,0xf4,0x45,0x0a,0x85,0xd0
+
+# ATT:   ctesttl {dfv=of} %ecx, %edx
+# INTEL: ctestt {dfv=of} edx, ecx
+0x62,0xf4,0x44,0x0a,0x85,0xca
+
+# ATT:   ctesttq {dfv=of} %r9, %r15
+# INTEL: ctestt {dfv=of} r15, r9
+0x62,0x54,0xc4,0x0a,0x85,0xcf
+
+# ATT:   ctesteb {dfv=of} $123, 123(%r8,%rax,4)
+# INTEL: cteste {dfv=of} byte ptr [r8 + 4*rax + 123], 123
+0x62,0xd4,0x44,0x04,0xf6,0x44,0x80,0x7b,0x7b
+
+# ATT:   ctestew {dfv=of} $1234, 123(%r8,%rax,4)
+# INTEL: cteste {dfv=of} word ptr [r8 + 4*rax + 123], 1234
+0x62,0xd4,0x45,0x04,0xf7,0x44,0x80,0x7b,0xd2,0x04
+
+# ATT:   ctestel {dfv=of} $123456, 123(%r8,%rax,4)
+# INTEL: cteste {dfv=of} dword ptr [r8 + 4*rax + 123], 123456
+0x62,0xd4,0x44,0x04,0xf7,0x44,0x80,0x7b,0x40,0xe2,0x01,0x00
+
+# ATT:   ctesteq {dfv=of} $123456, 123(%r8,%rax,4)
+# INTEL: cteste {dfv=of} qword ptr [r8 + 4*rax + 123], 123456
+0x62,0xd4,0xc4,0x04,0xf7,0x44,0x80,0x7b,0x40,0xe2,0x01,0x00
+
+# ATT:   ctesteb {dfv=of} %bl, 123(%r8,%rax,4)
+# INTEL: cteste {dfv=of} byte ptr [r8 + 4*rax + 123], bl
+0x62,0xd4,0x44,0x04,0x84,0x5c,0x80,0x7b
+
+# ATT:   ctestew {dfv=of} %dx, 123(%r8,%rax,4)
+# INTEL: cteste {dfv=of} word ptr [r8 + 4*rax + 123], dx
+0x62,0xd4,0x45,0x04,0x85,0x54,0x80,0x7b
+
+# ATT:   ctestel {dfv=of} %ecx, 123(%r8,%rax,4)
+# INTEL: cteste {dfv=of} dword ptr [r8 + 4*rax + 123], ecx
+0x62,0xd4,0x44,0x04,0x85,0x4c,0x80,0x7b
+
+# ATT:   ctesteq {dfv=of} %r9, 123(%r8,%rax,4)
+# INTEL: cteste {dfv=of} qword ptr [r8 + 4*rax + 123], r9
+0x62,0x54,0xc4,0x04,0x85,0x4c,0x80,0x7b
+
+# ATT:   ctesteb {dfv=of} $123, %bl
+# INTEL: cteste {dfv=of} bl, 123
+0x62,0xf4,0x44,0x04,0xf6,0xc3,0x7b
+
+# ATT:   ctestew {dfv=of} $1234, %dx
+# INTEL: cteste {dfv=of} dx, 1234
+0x62,0xf4,0x45,0x04,0xf7,0xc2,0xd2,0x04
+
+# ATT:   ctestel {dfv=of} $123456, %ecx
+# INTEL: cteste {dfv=of} ecx, 123456
+0x62,0xf4,0x44,0x04,0xf7,0xc1,0x40,0xe2,0x01,0x00
+
+# ATT:   ctesteq {dfv=of} $123456, %r9
+# INTEL: cteste {dfv=of} r9, 123456
+0x62,0xd4,0xc4,0x04,0xf7,0xc1,0x40,0xe2,0x01,0x00
+
+# ATT:   ctesteb {dfv=of} %bl, %dl
+# INTEL: cteste {dfv=of} dl, bl
+0x62,0xf4,0x44,0x04,0x84,0xda
+
+# ATT:   ctestew {dfv=of} %dx, %ax
+# INTEL: cteste {dfv=of} ax, dx
+0x62,0xf4,0x45,0x04,0x85,0xd0
+
+# ATT:   ctestel {dfv=of} %ecx, %edx
+# INTEL: cteste {dfv=of} edx, ecx
+0x62,0xf4,0x44,0x04,0x85,0xca
+
+# ATT:   ctesteq {dfv=of} %r9, %r15
+# INTEL: cteste {dfv=of} r15, r9
+0x62,0x54,0xc4,0x04,0x85,0xcf

diff  --git a/llvm/test/MC/X86/apx/ctest-att.s b/llvm/test/MC/X86/apx/ctest-att.s
new file mode 100644
index 00000000000000..b9e98adc9841b0
--- /dev/null
+++ b/llvm/test/MC/X86/apx/ctest-att.s
@@ -0,0 +1,773 @@
+# RUN: llvm-mc -triple x86_64 -show-encoding %s | FileCheck %s
+# RUN: not llvm-mc -triple i386 -show-encoding %s 2>&1 | FileCheck %s --check-prefix=ERROR
+
+# ERROR-COUNT-256: error:
+# ERROR-NOT: error:
+# CHECK: ctestbb {dfv=of} $123, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0x44,0x02,0xf6,0x44,0x80,0x7b,0x7b]
+         ctestbb {dfv=of} $123, 123(%r8,%rax,4)
+# CHECK: ctestbw {dfv=of} $1234, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0x45,0x02,0xf7,0x44,0x80,0x7b,0xd2,0x04]
+         ctestbw {dfv=of} $1234, 123(%r8,%rax,4)
+# CHECK: ctestbl {dfv=of} $123456, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0x44,0x02,0xf7,0x44,0x80,0x7b,0x40,0xe2,0x01,0x00]
+         ctestbl {dfv=of} $123456, 123(%r8,%rax,4)
+# CHECK: ctestbq {dfv=of} $123456, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0xc4,0x02,0xf7,0x44,0x80,0x7b,0x40,0xe2,0x01,0x00]
+         ctestbq {dfv=of} $123456, 123(%r8,%rax,4)
+# CHECK: ctestbb {dfv=of} %bl, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0x44,0x02,0x84,0x5c,0x80,0x7b]
+         ctestbb {dfv=of} %bl, 123(%r8,%rax,4)
+# CHECK: ctestbw {dfv=of} %dx, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0x45,0x02,0x85,0x54,0x80,0x7b]
+         ctestbw {dfv=of} %dx, 123(%r8,%rax,4)
+# CHECK: ctestbl {dfv=of} %ecx, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0x44,0x02,0x85,0x4c,0x80,0x7b]
+         ctestbl {dfv=of} %ecx, 123(%r8,%rax,4)
+# CHECK: ctestbq {dfv=of} %r9, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0x54,0xc4,0x02,0x85,0x4c,0x80,0x7b]
+         ctestbq {dfv=of} %r9, 123(%r8,%rax,4)
+# CHECK: ctestbb {dfv=of} $123, %bl
+# CHECK: encoding: [0x62,0xf4,0x44,0x02,0xf6,0xc3,0x7b]
+         ctestbb {dfv=of} $123, %bl
+# CHECK: ctestbw {dfv=of} $1234, %dx
+# CHECK: encoding: [0x62,0xf4,0x45,0x02,0xf7,0xc2,0xd2,0x04]
+         ctestbw {dfv=of} $1234, %dx
+# CHECK: ctestbl {dfv=of} $123456, %ecx
+# CHECK: encoding: [0x62,0xf4,0x44,0x02,0xf7,0xc1,0x40,0xe2,0x01,0x00]
+         ctestbl {dfv=of} $123456, %ecx
+# CHECK: ctestbq {dfv=of} $123456, %r9
+# CHECK: encoding: [0x62,0xd4,0xc4,0x02,0xf7,0xc1,0x40,0xe2,0x01,0x00]
+         ctestbq {dfv=of} $123456, %r9
+# CHECK: ctestbb {dfv=of} %bl, %dl
+# CHECK: encoding: [0x62,0xf4,0x44,0x02,0x84,0xda]
+         ctestbb {dfv=of} %bl, %dl
+# CHECK: ctestbw {dfv=of} %dx, %ax
+# CHECK: encoding: [0x62,0xf4,0x45,0x02,0x85,0xd0]
+         ctestbw {dfv=of} %dx, %ax
+# CHECK: ctestbl {dfv=of} %ecx, %edx
+# CHECK: encoding: [0x62,0xf4,0x44,0x02,0x85,0xca]
+         ctestbl {dfv=of} %ecx, %edx
+# CHECK: ctestbq {dfv=of} %r9, %r15
+# CHECK: encoding: [0x62,0x54,0xc4,0x02,0x85,0xcf]
+         ctestbq {dfv=of} %r9, %r15
+# CHECK: ctestbeb {dfv=of} $123, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0x44,0x06,0xf6,0x44,0x80,0x7b,0x7b]
+         ctestbeb {dfv=of} $123, 123(%r8,%rax,4)
+# CHECK: ctestbew {dfv=of} $1234, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0x45,0x06,0xf7,0x44,0x80,0x7b,0xd2,0x04]
+         ctestbew {dfv=of} $1234, 123(%r8,%rax,4)
+# CHECK: ctestbel {dfv=of} $123456, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0x44,0x06,0xf7,0x44,0x80,0x7b,0x40,0xe2,0x01,0x00]
+         ctestbel {dfv=of} $123456, 123(%r8,%rax,4)
+# CHECK: ctestbeq {dfv=of} $123456, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0xc4,0x06,0xf7,0x44,0x80,0x7b,0x40,0xe2,0x01,0x00]
+         ctestbeq {dfv=of} $123456, 123(%r8,%rax,4)
+# CHECK: ctestbeb {dfv=of} %bl, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0x44,0x06,0x84,0x5c,0x80,0x7b]
+         ctestbeb {dfv=of} %bl, 123(%r8,%rax,4)
+# CHECK: ctestbew {dfv=of} %dx, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0x45,0x06,0x85,0x54,0x80,0x7b]
+         ctestbew {dfv=of} %dx, 123(%r8,%rax,4)
+# CHECK: ctestbel {dfv=of} %ecx, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0x44,0x06,0x85,0x4c,0x80,0x7b]
+         ctestbel {dfv=of} %ecx, 123(%r8,%rax,4)
+# CHECK: ctestbeq {dfv=of} %r9, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0x54,0xc4,0x06,0x85,0x4c,0x80,0x7b]
+         ctestbeq {dfv=of} %r9, 123(%r8,%rax,4)
+# CHECK: ctestbeb {dfv=of} $123, %bl
+# CHECK: encoding: [0x62,0xf4,0x44,0x06,0xf6,0xc3,0x7b]
+         ctestbeb {dfv=of} $123, %bl
+# CHECK: ctestbew {dfv=of} $1234, %dx
+# CHECK: encoding: [0x62,0xf4,0x45,0x06,0xf7,0xc2,0xd2,0x04]
+         ctestbew {dfv=of} $1234, %dx
+# CHECK: ctestbel {dfv=of} $123456, %ecx
+# CHECK: encoding: [0x62,0xf4,0x44,0x06,0xf7,0xc1,0x40,0xe2,0x01,0x00]
+         ctestbel {dfv=of} $123456, %ecx
+# CHECK: ctestbeq {dfv=of} $123456, %r9
+# CHECK: encoding: [0x62,0xd4,0xc4,0x06,0xf7,0xc1,0x40,0xe2,0x01,0x00]
+         ctestbeq {dfv=of} $123456, %r9
+# CHECK: ctestbeb {dfv=of} %bl, %dl
+# CHECK: encoding: [0x62,0xf4,0x44,0x06,0x84,0xda]
+         ctestbeb {dfv=of} %bl, %dl
+# CHECK: ctestbew {dfv=of} %dx, %ax
+# CHECK: encoding: [0x62,0xf4,0x45,0x06,0x85,0xd0]
+         ctestbew {dfv=of} %dx, %ax
+# CHECK: ctestbel {dfv=of} %ecx, %edx
+# CHECK: encoding: [0x62,0xf4,0x44,0x06,0x85,0xca]
+         ctestbel {dfv=of} %ecx, %edx
+# CHECK: ctestbeq {dfv=of} %r9, %r15
+# CHECK: encoding: [0x62,0x54,0xc4,0x06,0x85,0xcf]
+         ctestbeq {dfv=of} %r9, %r15
+# CHECK: ctestfb {dfv=of} $123, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0x44,0x0b,0xf6,0x44,0x80,0x7b,0x7b]
+         ctestfb {dfv=of} $123, 123(%r8,%rax,4)
+# CHECK: ctestfw {dfv=of} $1234, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0x45,0x0b,0xf7,0x44,0x80,0x7b,0xd2,0x04]
+         ctestfw {dfv=of} $1234, 123(%r8,%rax,4)
+# CHECK: ctestfl {dfv=of} $123456, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0x44,0x0b,0xf7,0x44,0x80,0x7b,0x40,0xe2,0x01,0x00]
+         ctestfl {dfv=of} $123456, 123(%r8,%rax,4)
+# CHECK: ctestfq {dfv=of} $123456, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0xc4,0x0b,0xf7,0x44,0x80,0x7b,0x40,0xe2,0x01,0x00]
+         ctestfq {dfv=of} $123456, 123(%r8,%rax,4)
+# CHECK: ctestfb {dfv=of} %bl, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0x44,0x0b,0x84,0x5c,0x80,0x7b]
+         ctestfb {dfv=of} %bl, 123(%r8,%rax,4)
+# CHECK: ctestfw {dfv=of} %dx, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0x45,0x0b,0x85,0x54,0x80,0x7b]
+         ctestfw {dfv=of} %dx, 123(%r8,%rax,4)
+# CHECK: ctestfl {dfv=of} %ecx, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0x44,0x0b,0x85,0x4c,0x80,0x7b]
+         ctestfl {dfv=of} %ecx, 123(%r8,%rax,4)
+# CHECK: ctestfq {dfv=of} %r9, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0x54,0xc4,0x0b,0x85,0x4c,0x80,0x7b]
+         ctestfq {dfv=of} %r9, 123(%r8,%rax,4)
+# CHECK: ctestfb {dfv=of} $123, %bl
+# CHECK: encoding: [0x62,0xf4,0x44,0x0b,0xf6,0xc3,0x7b]
+         ctestfb {dfv=of} $123, %bl
+# CHECK: ctestfw {dfv=of} $1234, %dx
+# CHECK: encoding: [0x62,0xf4,0x45,0x0b,0xf7,0xc2,0xd2,0x04]
+         ctestfw {dfv=of} $1234, %dx
+# CHECK: ctestfl {dfv=of} $123456, %ecx
+# CHECK: encoding: [0x62,0xf4,0x44,0x0b,0xf7,0xc1,0x40,0xe2,0x01,0x00]
+         ctestfl {dfv=of} $123456, %ecx
+# CHECK: ctestfq {dfv=of} $123456, %r9
+# CHECK: encoding: [0x62,0xd4,0xc4,0x0b,0xf7,0xc1,0x40,0xe2,0x01,0x00]
+         ctestfq {dfv=of} $123456, %r9
+# CHECK: ctestfb {dfv=of} %bl, %dl
+# CHECK: encoding: [0x62,0xf4,0x44,0x0b,0x84,0xda]
+         ctestfb {dfv=of} %bl, %dl
+# CHECK: ctestfw {dfv=of} %dx, %ax
+# CHECK: encoding: [0x62,0xf4,0x45,0x0b,0x85,0xd0]
+         ctestfw {dfv=of} %dx, %ax
+# CHECK: ctestfl {dfv=of} %ecx, %edx
+# CHECK: encoding: [0x62,0xf4,0x44,0x0b,0x85,0xca]
+         ctestfl {dfv=of} %ecx, %edx
+# CHECK: ctestfq {dfv=of} %r9, %r15
+# CHECK: encoding: [0x62,0x54,0xc4,0x0b,0x85,0xcf]
+         ctestfq {dfv=of} %r9, %r15
+# CHECK: ctestlb {dfv=of} $123, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0x44,0x0c,0xf6,0x44,0x80,0x7b,0x7b]
+         ctestlb {dfv=of} $123, 123(%r8,%rax,4)
+# CHECK: ctestlw {dfv=of} $1234, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0x45,0x0c,0xf7,0x44,0x80,0x7b,0xd2,0x04]
+         ctestlw {dfv=of} $1234, 123(%r8,%rax,4)
+# CHECK: ctestll {dfv=of} $123456, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0x44,0x0c,0xf7,0x44,0x80,0x7b,0x40,0xe2,0x01,0x00]
+         ctestll {dfv=of} $123456, 123(%r8,%rax,4)
+# CHECK: ctestlq {dfv=of} $123456, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0xc4,0x0c,0xf7,0x44,0x80,0x7b,0x40,0xe2,0x01,0x00]
+         ctestlq {dfv=of} $123456, 123(%r8,%rax,4)
+# CHECK: ctestlb {dfv=of} %bl, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0x44,0x0c,0x84,0x5c,0x80,0x7b]
+         ctestlb {dfv=of} %bl, 123(%r8,%rax,4)
+# CHECK: ctestlw {dfv=of} %dx, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0x45,0x0c,0x85,0x54,0x80,0x7b]
+         ctestlw {dfv=of} %dx, 123(%r8,%rax,4)
+# CHECK: ctestll {dfv=of} %ecx, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0x44,0x0c,0x85,0x4c,0x80,0x7b]
+         ctestll {dfv=of} %ecx, 123(%r8,%rax,4)
+# CHECK: ctestlq {dfv=of} %r9, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0x54,0xc4,0x0c,0x85,0x4c,0x80,0x7b]
+         ctestlq {dfv=of} %r9, 123(%r8,%rax,4)
+# CHECK: ctestlb {dfv=of} $123, %bl
+# CHECK: encoding: [0x62,0xf4,0x44,0x0c,0xf6,0xc3,0x7b]
+         ctestlb {dfv=of} $123, %bl
+# CHECK: ctestlw {dfv=of} $1234, %dx
+# CHECK: encoding: [0x62,0xf4,0x45,0x0c,0xf7,0xc2,0xd2,0x04]
+         ctestlw {dfv=of} $1234, %dx
+# CHECK: ctestll {dfv=of} $123456, %ecx
+# CHECK: encoding: [0x62,0xf4,0x44,0x0c,0xf7,0xc1,0x40,0xe2,0x01,0x00]
+         ctestll {dfv=of} $123456, %ecx
+# CHECK: ctestlq {dfv=of} $123456, %r9
+# CHECK: encoding: [0x62,0xd4,0xc4,0x0c,0xf7,0xc1,0x40,0xe2,0x01,0x00]
+         ctestlq {dfv=of} $123456, %r9
+# CHECK: ctestlb {dfv=of} %bl, %dl
+# CHECK: encoding: [0x62,0xf4,0x44,0x0c,0x84,0xda]
+         ctestlb {dfv=of} %bl, %dl
+# CHECK: ctestlw {dfv=of} %dx, %ax
+# CHECK: encoding: [0x62,0xf4,0x45,0x0c,0x85,0xd0]
+         ctestlw {dfv=of} %dx, %ax
+# CHECK: ctestll {dfv=of} %ecx, %edx
+# CHECK: encoding: [0x62,0xf4,0x44,0x0c,0x85,0xca]
+         ctestll {dfv=of} %ecx, %edx
+# CHECK: ctestlq {dfv=of} %r9, %r15
+# CHECK: encoding: [0x62,0x54,0xc4,0x0c,0x85,0xcf]
+         ctestlq {dfv=of} %r9, %r15
+# CHECK: ctestleb {dfv=of} $123, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0x44,0x0e,0xf6,0x44,0x80,0x7b,0x7b]
+         ctestleb {dfv=of} $123, 123(%r8,%rax,4)
+# CHECK: ctestlew {dfv=of} $1234, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0x45,0x0e,0xf7,0x44,0x80,0x7b,0xd2,0x04]
+         ctestlew {dfv=of} $1234, 123(%r8,%rax,4)
+# CHECK: ctestlel {dfv=of} $123456, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0x44,0x0e,0xf7,0x44,0x80,0x7b,0x40,0xe2,0x01,0x00]
+         ctestlel {dfv=of} $123456, 123(%r8,%rax,4)
+# CHECK: ctestleq {dfv=of} $123456, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0xc4,0x0e,0xf7,0x44,0x80,0x7b,0x40,0xe2,0x01,0x00]
+         ctestleq {dfv=of} $123456, 123(%r8,%rax,4)
+# CHECK: ctestleb {dfv=of} %bl, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0x44,0x0e,0x84,0x5c,0x80,0x7b]
+         ctestleb {dfv=of} %bl, 123(%r8,%rax,4)
+# CHECK: ctestlew {dfv=of} %dx, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0x45,0x0e,0x85,0x54,0x80,0x7b]
+         ctestlew {dfv=of} %dx, 123(%r8,%rax,4)
+# CHECK: ctestlel {dfv=of} %ecx, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0x44,0x0e,0x85,0x4c,0x80,0x7b]
+         ctestlel {dfv=of} %ecx, 123(%r8,%rax,4)
+# CHECK: ctestleq {dfv=of} %r9, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0x54,0xc4,0x0e,0x85,0x4c,0x80,0x7b]
+         ctestleq {dfv=of} %r9, 123(%r8,%rax,4)
+# CHECK: ctestleb {dfv=of} $123, %bl
+# CHECK: encoding: [0x62,0xf4,0x44,0x0e,0xf6,0xc3,0x7b]
+         ctestleb {dfv=of} $123, %bl
+# CHECK: ctestlew {dfv=of} $1234, %dx
+# CHECK: encoding: [0x62,0xf4,0x45,0x0e,0xf7,0xc2,0xd2,0x04]
+         ctestlew {dfv=of} $1234, %dx
+# CHECK: ctestlel {dfv=of} $123456, %ecx
+# CHECK: encoding: [0x62,0xf4,0x44,0x0e,0xf7,0xc1,0x40,0xe2,0x01,0x00]
+         ctestlel {dfv=of} $123456, %ecx
+# CHECK: ctestleq {dfv=of} $123456, %r9
+# CHECK: encoding: [0x62,0xd4,0xc4,0x0e,0xf7,0xc1,0x40,0xe2,0x01,0x00]
+         ctestleq {dfv=of} $123456, %r9
+# CHECK: ctestleb {dfv=of} %bl, %dl
+# CHECK: encoding: [0x62,0xf4,0x44,0x0e,0x84,0xda]
+         ctestleb {dfv=of} %bl, %dl
+# CHECK: ctestlew {dfv=of} %dx, %ax
+# CHECK: encoding: [0x62,0xf4,0x45,0x0e,0x85,0xd0]
+         ctestlew {dfv=of} %dx, %ax
+# CHECK: ctestlel {dfv=of} %ecx, %edx
+# CHECK: encoding: [0x62,0xf4,0x44,0x0e,0x85,0xca]
+         ctestlel {dfv=of} %ecx, %edx
+# CHECK: ctestleq {dfv=of} %r9, %r15
+# CHECK: encoding: [0x62,0x54,0xc4,0x0e,0x85,0xcf]
+         ctestleq {dfv=of} %r9, %r15
+# CHECK: ctestaeb {dfv=of} $123, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0x44,0x03,0xf6,0x44,0x80,0x7b,0x7b]
+         ctestaeb {dfv=of} $123, 123(%r8,%rax,4)
+# CHECK: ctestaew {dfv=of} $1234, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0x45,0x03,0xf7,0x44,0x80,0x7b,0xd2,0x04]
+         ctestaew {dfv=of} $1234, 123(%r8,%rax,4)
+# CHECK: ctestael {dfv=of} $123456, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0x44,0x03,0xf7,0x44,0x80,0x7b,0x40,0xe2,0x01,0x00]
+         ctestael {dfv=of} $123456, 123(%r8,%rax,4)
+# CHECK: ctestaeq {dfv=of} $123456, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0xc4,0x03,0xf7,0x44,0x80,0x7b,0x40,0xe2,0x01,0x00]
+         ctestaeq {dfv=of} $123456, 123(%r8,%rax,4)
+# CHECK: ctestaeb {dfv=of} %bl, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0x44,0x03,0x84,0x5c,0x80,0x7b]
+         ctestaeb {dfv=of} %bl, 123(%r8,%rax,4)
+# CHECK: ctestaew {dfv=of} %dx, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0x45,0x03,0x85,0x54,0x80,0x7b]
+         ctestaew {dfv=of} %dx, 123(%r8,%rax,4)
+# CHECK: ctestael {dfv=of} %ecx, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0x44,0x03,0x85,0x4c,0x80,0x7b]
+         ctestael {dfv=of} %ecx, 123(%r8,%rax,4)
+# CHECK: ctestaeq {dfv=of} %r9, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0x54,0xc4,0x03,0x85,0x4c,0x80,0x7b]
+         ctestaeq {dfv=of} %r9, 123(%r8,%rax,4)
+# CHECK: ctestaeb {dfv=of} $123, %bl
+# CHECK: encoding: [0x62,0xf4,0x44,0x03,0xf6,0xc3,0x7b]
+         ctestaeb {dfv=of} $123, %bl
+# CHECK: ctestaew {dfv=of} $1234, %dx
+# CHECK: encoding: [0x62,0xf4,0x45,0x03,0xf7,0xc2,0xd2,0x04]
+         ctestaew {dfv=of} $1234, %dx
+# CHECK: ctestael {dfv=of} $123456, %ecx
+# CHECK: encoding: [0x62,0xf4,0x44,0x03,0xf7,0xc1,0x40,0xe2,0x01,0x00]
+         ctestael {dfv=of} $123456, %ecx
+# CHECK: ctestaeq {dfv=of} $123456, %r9
+# CHECK: encoding: [0x62,0xd4,0xc4,0x03,0xf7,0xc1,0x40,0xe2,0x01,0x00]
+         ctestaeq {dfv=of} $123456, %r9
+# CHECK: ctestaeb {dfv=of} %bl, %dl
+# CHECK: encoding: [0x62,0xf4,0x44,0x03,0x84,0xda]
+         ctestaeb {dfv=of} %bl, %dl
+# CHECK: ctestaew {dfv=of} %dx, %ax
+# CHECK: encoding: [0x62,0xf4,0x45,0x03,0x85,0xd0]
+         ctestaew {dfv=of} %dx, %ax
+# CHECK: ctestael {dfv=of} %ecx, %edx
+# CHECK: encoding: [0x62,0xf4,0x44,0x03,0x85,0xca]
+         ctestael {dfv=of} %ecx, %edx
+# CHECK: ctestaeq {dfv=of} %r9, %r15
+# CHECK: encoding: [0x62,0x54,0xc4,0x03,0x85,0xcf]
+         ctestaeq {dfv=of} %r9, %r15
+# CHECK: ctestab {dfv=of} $123, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0x44,0x07,0xf6,0x44,0x80,0x7b,0x7b]
+         ctestab {dfv=of} $123, 123(%r8,%rax,4)
+# CHECK: ctestaw {dfv=of} $1234, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0x45,0x07,0xf7,0x44,0x80,0x7b,0xd2,0x04]
+         ctestaw {dfv=of} $1234, 123(%r8,%rax,4)
+# CHECK: ctestal {dfv=of} $123456, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0x44,0x07,0xf7,0x44,0x80,0x7b,0x40,0xe2,0x01,0x00]
+         ctestal {dfv=of} $123456, 123(%r8,%rax,4)
+# CHECK: ctestaq {dfv=of} $123456, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0xc4,0x07,0xf7,0x44,0x80,0x7b,0x40,0xe2,0x01,0x00]
+         ctestaq {dfv=of} $123456, 123(%r8,%rax,4)
+# CHECK: ctestab {dfv=of} %bl, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0x44,0x07,0x84,0x5c,0x80,0x7b]
+         ctestab {dfv=of} %bl, 123(%r8,%rax,4)
+# CHECK: ctestaw {dfv=of} %dx, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0x45,0x07,0x85,0x54,0x80,0x7b]
+         ctestaw {dfv=of} %dx, 123(%r8,%rax,4)
+# CHECK: ctestal {dfv=of} %ecx, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0x44,0x07,0x85,0x4c,0x80,0x7b]
+         ctestal {dfv=of} %ecx, 123(%r8,%rax,4)
+# CHECK: ctestaq {dfv=of} %r9, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0x54,0xc4,0x07,0x85,0x4c,0x80,0x7b]
+         ctestaq {dfv=of} %r9, 123(%r8,%rax,4)
+# CHECK: ctestab {dfv=of} $123, %bl
+# CHECK: encoding: [0x62,0xf4,0x44,0x07,0xf6,0xc3,0x7b]
+         ctestab {dfv=of} $123, %bl
+# CHECK: ctestaw {dfv=of} $1234, %dx
+# CHECK: encoding: [0x62,0xf4,0x45,0x07,0xf7,0xc2,0xd2,0x04]
+         ctestaw {dfv=of} $1234, %dx
+# CHECK: ctestal {dfv=of} $123456, %ecx
+# CHECK: encoding: [0x62,0xf4,0x44,0x07,0xf7,0xc1,0x40,0xe2,0x01,0x00]
+         ctestal {dfv=of} $123456, %ecx
+# CHECK: ctestaq {dfv=of} $123456, %r9
+# CHECK: encoding: [0x62,0xd4,0xc4,0x07,0xf7,0xc1,0x40,0xe2,0x01,0x00]
+         ctestaq {dfv=of} $123456, %r9
+# CHECK: ctestab {dfv=of} %bl, %dl
+# CHECK: encoding: [0x62,0xf4,0x44,0x07,0x84,0xda]
+         ctestab {dfv=of} %bl, %dl
+# CHECK: ctestaw {dfv=of} %dx, %ax
+# CHECK: encoding: [0x62,0xf4,0x45,0x07,0x85,0xd0]
+         ctestaw {dfv=of} %dx, %ax
+# CHECK: ctestal {dfv=of} %ecx, %edx
+# CHECK: encoding: [0x62,0xf4,0x44,0x07,0x85,0xca]
+         ctestal {dfv=of} %ecx, %edx
+# CHECK: ctestaq {dfv=of} %r9, %r15
+# CHECK: encoding: [0x62,0x54,0xc4,0x07,0x85,0xcf]
+         ctestaq {dfv=of} %r9, %r15
+# CHECK: ctestgeb {dfv=of} $123, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0x44,0x0d,0xf6,0x44,0x80,0x7b,0x7b]
+         ctestgeb {dfv=of} $123, 123(%r8,%rax,4)
+# CHECK: ctestgew {dfv=of} $1234, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0x45,0x0d,0xf7,0x44,0x80,0x7b,0xd2,0x04]
+         ctestgew {dfv=of} $1234, 123(%r8,%rax,4)
+# CHECK: ctestgel {dfv=of} $123456, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0x44,0x0d,0xf7,0x44,0x80,0x7b,0x40,0xe2,0x01,0x00]
+         ctestgel {dfv=of} $123456, 123(%r8,%rax,4)
+# CHECK: ctestgeq {dfv=of} $123456, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0xc4,0x0d,0xf7,0x44,0x80,0x7b,0x40,0xe2,0x01,0x00]
+         ctestgeq {dfv=of} $123456, 123(%r8,%rax,4)
+# CHECK: ctestgeb {dfv=of} %bl, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0x44,0x0d,0x84,0x5c,0x80,0x7b]
+         ctestgeb {dfv=of} %bl, 123(%r8,%rax,4)
+# CHECK: ctestgew {dfv=of} %dx, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0x45,0x0d,0x85,0x54,0x80,0x7b]
+         ctestgew {dfv=of} %dx, 123(%r8,%rax,4)
+# CHECK: ctestgel {dfv=of} %ecx, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0x44,0x0d,0x85,0x4c,0x80,0x7b]
+         ctestgel {dfv=of} %ecx, 123(%r8,%rax,4)
+# CHECK: ctestgeq {dfv=of} %r9, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0x54,0xc4,0x0d,0x85,0x4c,0x80,0x7b]
+         ctestgeq {dfv=of} %r9, 123(%r8,%rax,4)
+# CHECK: ctestgeb {dfv=of} $123, %bl
+# CHECK: encoding: [0x62,0xf4,0x44,0x0d,0xf6,0xc3,0x7b]
+         ctestgeb {dfv=of} $123, %bl
+# CHECK: ctestgew {dfv=of} $1234, %dx
+# CHECK: encoding: [0x62,0xf4,0x45,0x0d,0xf7,0xc2,0xd2,0x04]
+         ctestgew {dfv=of} $1234, %dx
+# CHECK: ctestgel {dfv=of} $123456, %ecx
+# CHECK: encoding: [0x62,0xf4,0x44,0x0d,0xf7,0xc1,0x40,0xe2,0x01,0x00]
+         ctestgel {dfv=of} $123456, %ecx
+# CHECK: ctestgeq {dfv=of} $123456, %r9
+# CHECK: encoding: [0x62,0xd4,0xc4,0x0d,0xf7,0xc1,0x40,0xe2,0x01,0x00]
+         ctestgeq {dfv=of} $123456, %r9
+# CHECK: ctestgeb {dfv=of} %bl, %dl
+# CHECK: encoding: [0x62,0xf4,0x44,0x0d,0x84,0xda]
+         ctestgeb {dfv=of} %bl, %dl
+# CHECK: ctestgew {dfv=of} %dx, %ax
+# CHECK: encoding: [0x62,0xf4,0x45,0x0d,0x85,0xd0]
+         ctestgew {dfv=of} %dx, %ax
+# CHECK: ctestgel {dfv=of} %ecx, %edx
+# CHECK: encoding: [0x62,0xf4,0x44,0x0d,0x85,0xca]
+         ctestgel {dfv=of} %ecx, %edx
+# CHECK: ctestgeq {dfv=of} %r9, %r15
+# CHECK: encoding: [0x62,0x54,0xc4,0x0d,0x85,0xcf]
+         ctestgeq {dfv=of} %r9, %r15
+# CHECK: ctestgb {dfv=of} $123, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0x44,0x0f,0xf6,0x44,0x80,0x7b,0x7b]
+         ctestgb {dfv=of} $123, 123(%r8,%rax,4)
+# CHECK: ctestgw {dfv=of} $1234, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0x45,0x0f,0xf7,0x44,0x80,0x7b,0xd2,0x04]
+         ctestgw {dfv=of} $1234, 123(%r8,%rax,4)
+# CHECK: ctestgl {dfv=of} $123456, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0x44,0x0f,0xf7,0x44,0x80,0x7b,0x40,0xe2,0x01,0x00]
+         ctestgl {dfv=of} $123456, 123(%r8,%rax,4)
+# CHECK: ctestgq {dfv=of} $123456, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0xc4,0x0f,0xf7,0x44,0x80,0x7b,0x40,0xe2,0x01,0x00]
+         ctestgq {dfv=of} $123456, 123(%r8,%rax,4)
+# CHECK: ctestgb {dfv=of} %bl, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0x44,0x0f,0x84,0x5c,0x80,0x7b]
+         ctestgb {dfv=of} %bl, 123(%r8,%rax,4)
+# CHECK: ctestgw {dfv=of} %dx, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0x45,0x0f,0x85,0x54,0x80,0x7b]
+         ctestgw {dfv=of} %dx, 123(%r8,%rax,4)
+# CHECK: ctestgl {dfv=of} %ecx, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0x44,0x0f,0x85,0x4c,0x80,0x7b]
+         ctestgl {dfv=of} %ecx, 123(%r8,%rax,4)
+# CHECK: ctestgq {dfv=of} %r9, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0x54,0xc4,0x0f,0x85,0x4c,0x80,0x7b]
+         ctestgq {dfv=of} %r9, 123(%r8,%rax,4)
+# CHECK: ctestgb {dfv=of} $123, %bl
+# CHECK: encoding: [0x62,0xf4,0x44,0x0f,0xf6,0xc3,0x7b]
+         ctestgb {dfv=of} $123, %bl
+# CHECK: ctestgw {dfv=of} $1234, %dx
+# CHECK: encoding: [0x62,0xf4,0x45,0x0f,0xf7,0xc2,0xd2,0x04]
+         ctestgw {dfv=of} $1234, %dx
+# CHECK: ctestgl {dfv=of} $123456, %ecx
+# CHECK: encoding: [0x62,0xf4,0x44,0x0f,0xf7,0xc1,0x40,0xe2,0x01,0x00]
+         ctestgl {dfv=of} $123456, %ecx
+# CHECK: ctestgq {dfv=of} $123456, %r9
+# CHECK: encoding: [0x62,0xd4,0xc4,0x0f,0xf7,0xc1,0x40,0xe2,0x01,0x00]
+         ctestgq {dfv=of} $123456, %r9
+# CHECK: ctestgb {dfv=of} %bl, %dl
+# CHECK: encoding: [0x62,0xf4,0x44,0x0f,0x84,0xda]
+         ctestgb {dfv=of} %bl, %dl
+# CHECK: ctestgw {dfv=of} %dx, %ax
+# CHECK: encoding: [0x62,0xf4,0x45,0x0f,0x85,0xd0]
+         ctestgw {dfv=of} %dx, %ax
+# CHECK: ctestgl {dfv=of} %ecx, %edx
+# CHECK: encoding: [0x62,0xf4,0x44,0x0f,0x85,0xca]
+         ctestgl {dfv=of} %ecx, %edx
+# CHECK: ctestgq {dfv=of} %r9, %r15
+# CHECK: encoding: [0x62,0x54,0xc4,0x0f,0x85,0xcf]
+         ctestgq {dfv=of} %r9, %r15
+# CHECK: ctestnob {dfv=of} $123, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0x44,0x01,0xf6,0x44,0x80,0x7b,0x7b]
+         ctestnob {dfv=of} $123, 123(%r8,%rax,4)
+# CHECK: ctestnow {dfv=of} $1234, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0x45,0x01,0xf7,0x44,0x80,0x7b,0xd2,0x04]
+         ctestnow {dfv=of} $1234, 123(%r8,%rax,4)
+# CHECK: ctestnol {dfv=of} $123456, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0x44,0x01,0xf7,0x44,0x80,0x7b,0x40,0xe2,0x01,0x00]
+         ctestnol {dfv=of} $123456, 123(%r8,%rax,4)
+# CHECK: ctestnoq {dfv=of} $123456, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0xc4,0x01,0xf7,0x44,0x80,0x7b,0x40,0xe2,0x01,0x00]
+         ctestnoq {dfv=of} $123456, 123(%r8,%rax,4)
+# CHECK: ctestnob {dfv=of} %bl, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0x44,0x01,0x84,0x5c,0x80,0x7b]
+         ctestnob {dfv=of} %bl, 123(%r8,%rax,4)
+# CHECK: ctestnow {dfv=of} %dx, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0x45,0x01,0x85,0x54,0x80,0x7b]
+         ctestnow {dfv=of} %dx, 123(%r8,%rax,4)
+# CHECK: ctestnol {dfv=of} %ecx, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0x44,0x01,0x85,0x4c,0x80,0x7b]
+         ctestnol {dfv=of} %ecx, 123(%r8,%rax,4)
+# CHECK: ctestnoq {dfv=of} %r9, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0x54,0xc4,0x01,0x85,0x4c,0x80,0x7b]
+         ctestnoq {dfv=of} %r9, 123(%r8,%rax,4)
+# CHECK: ctestnob {dfv=of} $123, %bl
+# CHECK: encoding: [0x62,0xf4,0x44,0x01,0xf6,0xc3,0x7b]
+         ctestnob {dfv=of} $123, %bl
+# CHECK: ctestnow {dfv=of} $1234, %dx
+# CHECK: encoding: [0x62,0xf4,0x45,0x01,0xf7,0xc2,0xd2,0x04]
+         ctestnow {dfv=of} $1234, %dx
+# CHECK: ctestnol {dfv=of} $123456, %ecx
+# CHECK: encoding: [0x62,0xf4,0x44,0x01,0xf7,0xc1,0x40,0xe2,0x01,0x00]
+         ctestnol {dfv=of} $123456, %ecx
+# CHECK: ctestnoq {dfv=of} $123456, %r9
+# CHECK: encoding: [0x62,0xd4,0xc4,0x01,0xf7,0xc1,0x40,0xe2,0x01,0x00]
+         ctestnoq {dfv=of} $123456, %r9
+# CHECK: ctestnob {dfv=of} %bl, %dl
+# CHECK: encoding: [0x62,0xf4,0x44,0x01,0x84,0xda]
+         ctestnob {dfv=of} %bl, %dl
+# CHECK: ctestnow {dfv=of} %dx, %ax
+# CHECK: encoding: [0x62,0xf4,0x45,0x01,0x85,0xd0]
+         ctestnow {dfv=of} %dx, %ax
+# CHECK: ctestnol {dfv=of} %ecx, %edx
+# CHECK: encoding: [0x62,0xf4,0x44,0x01,0x85,0xca]
+         ctestnol {dfv=of} %ecx, %edx
+# CHECK: ctestnoq {dfv=of} %r9, %r15
+# CHECK: encoding: [0x62,0x54,0xc4,0x01,0x85,0xcf]
+         ctestnoq {dfv=of} %r9, %r15
+# CHECK: ctestnsb {dfv=of} $123, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0x44,0x09,0xf6,0x44,0x80,0x7b,0x7b]
+         ctestnsb {dfv=of} $123, 123(%r8,%rax,4)
+# CHECK: ctestnsw {dfv=of} $1234, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0x45,0x09,0xf7,0x44,0x80,0x7b,0xd2,0x04]
+         ctestnsw {dfv=of} $1234, 123(%r8,%rax,4)
+# CHECK: ctestnsl {dfv=of} $123456, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0x44,0x09,0xf7,0x44,0x80,0x7b,0x40,0xe2,0x01,0x00]
+         ctestnsl {dfv=of} $123456, 123(%r8,%rax,4)
+# CHECK: ctestnsq {dfv=of} $123456, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0xc4,0x09,0xf7,0x44,0x80,0x7b,0x40,0xe2,0x01,0x00]
+         ctestnsq {dfv=of} $123456, 123(%r8,%rax,4)
+# CHECK: ctestnsb {dfv=of} %bl, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0x44,0x09,0x84,0x5c,0x80,0x7b]
+         ctestnsb {dfv=of} %bl, 123(%r8,%rax,4)
+# CHECK: ctestnsw {dfv=of} %dx, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0x45,0x09,0x85,0x54,0x80,0x7b]
+         ctestnsw {dfv=of} %dx, 123(%r8,%rax,4)
+# CHECK: ctestnsl {dfv=of} %ecx, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0x44,0x09,0x85,0x4c,0x80,0x7b]
+         ctestnsl {dfv=of} %ecx, 123(%r8,%rax,4)
+# CHECK: ctestnsq {dfv=of} %r9, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0x54,0xc4,0x09,0x85,0x4c,0x80,0x7b]
+         ctestnsq {dfv=of} %r9, 123(%r8,%rax,4)
+# CHECK: ctestnsb {dfv=of} $123, %bl
+# CHECK: encoding: [0x62,0xf4,0x44,0x09,0xf6,0xc3,0x7b]
+         ctestnsb {dfv=of} $123, %bl
+# CHECK: ctestnsw {dfv=of} $1234, %dx
+# CHECK: encoding: [0x62,0xf4,0x45,0x09,0xf7,0xc2,0xd2,0x04]
+         ctestnsw {dfv=of} $1234, %dx
+# CHECK: ctestnsl {dfv=of} $123456, %ecx
+# CHECK: encoding: [0x62,0xf4,0x44,0x09,0xf7,0xc1,0x40,0xe2,0x01,0x00]
+         ctestnsl {dfv=of} $123456, %ecx
+# CHECK: ctestnsq {dfv=of} $123456, %r9
+# CHECK: encoding: [0x62,0xd4,0xc4,0x09,0xf7,0xc1,0x40,0xe2,0x01,0x00]
+         ctestnsq {dfv=of} $123456, %r9
+# CHECK: ctestnsb {dfv=of} %bl, %dl
+# CHECK: encoding: [0x62,0xf4,0x44,0x09,0x84,0xda]
+         ctestnsb {dfv=of} %bl, %dl
+# CHECK: ctestnsw {dfv=of} %dx, %ax
+# CHECK: encoding: [0x62,0xf4,0x45,0x09,0x85,0xd0]
+         ctestnsw {dfv=of} %dx, %ax
+# CHECK: ctestnsl {dfv=of} %ecx, %edx
+# CHECK: encoding: [0x62,0xf4,0x44,0x09,0x85,0xca]
+         ctestnsl {dfv=of} %ecx, %edx
+# CHECK: ctestnsq {dfv=of} %r9, %r15
+# CHECK: encoding: [0x62,0x54,0xc4,0x09,0x85,0xcf]
+         ctestnsq {dfv=of} %r9, %r15
+# CHECK: ctestneb {dfv=of} $123, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0x44,0x05,0xf6,0x44,0x80,0x7b,0x7b]
+         ctestneb {dfv=of} $123, 123(%r8,%rax,4)
+# CHECK: ctestnew {dfv=of} $1234, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0x45,0x05,0xf7,0x44,0x80,0x7b,0xd2,0x04]
+         ctestnew {dfv=of} $1234, 123(%r8,%rax,4)
+# CHECK: ctestnel {dfv=of} $123456, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0x44,0x05,0xf7,0x44,0x80,0x7b,0x40,0xe2,0x01,0x00]
+         ctestnel {dfv=of} $123456, 123(%r8,%rax,4)
+# CHECK: ctestneq {dfv=of} $123456, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0xc4,0x05,0xf7,0x44,0x80,0x7b,0x40,0xe2,0x01,0x00]
+         ctestneq {dfv=of} $123456, 123(%r8,%rax,4)
+# CHECK: ctestneb {dfv=of} %bl, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0x44,0x05,0x84,0x5c,0x80,0x7b]
+         ctestneb {dfv=of} %bl, 123(%r8,%rax,4)
+# CHECK: ctestnew {dfv=of} %dx, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0x45,0x05,0x85,0x54,0x80,0x7b]
+         ctestnew {dfv=of} %dx, 123(%r8,%rax,4)
+# CHECK: ctestnel {dfv=of} %ecx, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0x44,0x05,0x85,0x4c,0x80,0x7b]
+         ctestnel {dfv=of} %ecx, 123(%r8,%rax,4)
+# CHECK: ctestneq {dfv=of} %r9, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0x54,0xc4,0x05,0x85,0x4c,0x80,0x7b]
+         ctestneq {dfv=of} %r9, 123(%r8,%rax,4)
+# CHECK: ctestneb {dfv=of} $123, %bl
+# CHECK: encoding: [0x62,0xf4,0x44,0x05,0xf6,0xc3,0x7b]
+         ctestneb {dfv=of} $123, %bl
+# CHECK: ctestnew {dfv=of} $1234, %dx
+# CHECK: encoding: [0x62,0xf4,0x45,0x05,0xf7,0xc2,0xd2,0x04]
+         ctestnew {dfv=of} $1234, %dx
+# CHECK: ctestnel {dfv=of} $123456, %ecx
+# CHECK: encoding: [0x62,0xf4,0x44,0x05,0xf7,0xc1,0x40,0xe2,0x01,0x00]
+         ctestnel {dfv=of} $123456, %ecx
+# CHECK: ctestneq {dfv=of} $123456, %r9
+# CHECK: encoding: [0x62,0xd4,0xc4,0x05,0xf7,0xc1,0x40,0xe2,0x01,0x00]
+         ctestneq {dfv=of} $123456, %r9
+# CHECK: ctestneb {dfv=of} %bl, %dl
+# CHECK: encoding: [0x62,0xf4,0x44,0x05,0x84,0xda]
+         ctestneb {dfv=of} %bl, %dl
+# CHECK: ctestnew {dfv=of} %dx, %ax
+# CHECK: encoding: [0x62,0xf4,0x45,0x05,0x85,0xd0]
+         ctestnew {dfv=of} %dx, %ax
+# CHECK: ctestnel {dfv=of} %ecx, %edx
+# CHECK: encoding: [0x62,0xf4,0x44,0x05,0x85,0xca]
+         ctestnel {dfv=of} %ecx, %edx
+# CHECK: ctestneq {dfv=of} %r9, %r15
+# CHECK: encoding: [0x62,0x54,0xc4,0x05,0x85,0xcf]
+         ctestneq {dfv=of} %r9, %r15
+# CHECK: ctestob {dfv=of} $123, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0x44,0x00,0xf6,0x44,0x80,0x7b,0x7b]
+         ctestob {dfv=of} $123, 123(%r8,%rax,4)
+# CHECK: ctestow {dfv=of} $1234, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0x45,0x00,0xf7,0x44,0x80,0x7b,0xd2,0x04]
+         ctestow {dfv=of} $1234, 123(%r8,%rax,4)
+# CHECK: ctestol {dfv=of} $123456, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0x44,0x00,0xf7,0x44,0x80,0x7b,0x40,0xe2,0x01,0x00]
+         ctestol {dfv=of} $123456, 123(%r8,%rax,4)
+# CHECK: ctestoq {dfv=of} $123456, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0xc4,0x00,0xf7,0x44,0x80,0x7b,0x40,0xe2,0x01,0x00]
+         ctestoq {dfv=of} $123456, 123(%r8,%rax,4)
+# CHECK: ctestob {dfv=of} %bl, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0x44,0x00,0x84,0x5c,0x80,0x7b]
+         ctestob {dfv=of} %bl, 123(%r8,%rax,4)
+# CHECK: ctestow {dfv=of} %dx, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0x45,0x00,0x85,0x54,0x80,0x7b]
+         ctestow {dfv=of} %dx, 123(%r8,%rax,4)
+# CHECK: ctestol {dfv=of} %ecx, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0x44,0x00,0x85,0x4c,0x80,0x7b]
+         ctestol {dfv=of} %ecx, 123(%r8,%rax,4)
+# CHECK: ctestoq {dfv=of} %r9, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0x54,0xc4,0x00,0x85,0x4c,0x80,0x7b]
+         ctestoq {dfv=of} %r9, 123(%r8,%rax,4)
+# CHECK: ctestob {dfv=of} $123, %bl
+# CHECK: encoding: [0x62,0xf4,0x44,0x00,0xf6,0xc3,0x7b]
+         ctestob {dfv=of} $123, %bl
+# CHECK: ctestow {dfv=of} $1234, %dx
+# CHECK: encoding: [0x62,0xf4,0x45,0x00,0xf7,0xc2,0xd2,0x04]
+         ctestow {dfv=of} $1234, %dx
+# CHECK: ctestol {dfv=of} $123456, %ecx
+# CHECK: encoding: [0x62,0xf4,0x44,0x00,0xf7,0xc1,0x40,0xe2,0x01,0x00]
+         ctestol {dfv=of} $123456, %ecx
+# CHECK: ctestoq {dfv=of} $123456, %r9
+# CHECK: encoding: [0x62,0xd4,0xc4,0x00,0xf7,0xc1,0x40,0xe2,0x01,0x00]
+         ctestoq {dfv=of} $123456, %r9
+# CHECK: ctestob {dfv=of} %bl, %dl
+# CHECK: encoding: [0x62,0xf4,0x44,0x00,0x84,0xda]
+         ctestob {dfv=of} %bl, %dl
+# CHECK: ctestow {dfv=of} %dx, %ax
+# CHECK: encoding: [0x62,0xf4,0x45,0x00,0x85,0xd0]
+         ctestow {dfv=of} %dx, %ax
+# CHECK: ctestol {dfv=of} %ecx, %edx
+# CHECK: encoding: [0x62,0xf4,0x44,0x00,0x85,0xca]
+         ctestol {dfv=of} %ecx, %edx
+# CHECK: ctestoq {dfv=of} %r9, %r15
+# CHECK: encoding: [0x62,0x54,0xc4,0x00,0x85,0xcf]
+         ctestoq {dfv=of} %r9, %r15
+# CHECK: ctestsb {dfv=of} $123, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0x44,0x08,0xf6,0x44,0x80,0x7b,0x7b]
+         ctestsb {dfv=of} $123, 123(%r8,%rax,4)
+# CHECK: ctestsw {dfv=of} $1234, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0x45,0x08,0xf7,0x44,0x80,0x7b,0xd2,0x04]
+         ctestsw {dfv=of} $1234, 123(%r8,%rax,4)
+# CHECK: ctestsl {dfv=of} $123456, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0x44,0x08,0xf7,0x44,0x80,0x7b,0x40,0xe2,0x01,0x00]
+         ctestsl {dfv=of} $123456, 123(%r8,%rax,4)
+# CHECK: ctestsq {dfv=of} $123456, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0xc4,0x08,0xf7,0x44,0x80,0x7b,0x40,0xe2,0x01,0x00]
+         ctestsq {dfv=of} $123456, 123(%r8,%rax,4)
+# CHECK: ctestsb {dfv=of} %bl, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0x44,0x08,0x84,0x5c,0x80,0x7b]
+         ctestsb {dfv=of} %bl, 123(%r8,%rax,4)
+# CHECK: ctestsw {dfv=of} %dx, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0x45,0x08,0x85,0x54,0x80,0x7b]
+         ctestsw {dfv=of} %dx, 123(%r8,%rax,4)
+# CHECK: ctestsl {dfv=of} %ecx, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0x44,0x08,0x85,0x4c,0x80,0x7b]
+         ctestsl {dfv=of} %ecx, 123(%r8,%rax,4)
+# CHECK: ctestsq {dfv=of} %r9, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0x54,0xc4,0x08,0x85,0x4c,0x80,0x7b]
+         ctestsq {dfv=of} %r9, 123(%r8,%rax,4)
+# CHECK: ctestsb {dfv=of} $123, %bl
+# CHECK: encoding: [0x62,0xf4,0x44,0x08,0xf6,0xc3,0x7b]
+         ctestsb {dfv=of} $123, %bl
+# CHECK: ctestsw {dfv=of} $1234, %dx
+# CHECK: encoding: [0x62,0xf4,0x45,0x08,0xf7,0xc2,0xd2,0x04]
+         ctestsw {dfv=of} $1234, %dx
+# CHECK: ctestsl {dfv=of} $123456, %ecx
+# CHECK: encoding: [0x62,0xf4,0x44,0x08,0xf7,0xc1,0x40,0xe2,0x01,0x00]
+         ctestsl {dfv=of} $123456, %ecx
+# CHECK: ctestsq {dfv=of} $123456, %r9
+# CHECK: encoding: [0x62,0xd4,0xc4,0x08,0xf7,0xc1,0x40,0xe2,0x01,0x00]
+         ctestsq {dfv=of} $123456, %r9
+# CHECK: ctestsb {dfv=of} %bl, %dl
+# CHECK: encoding: [0x62,0xf4,0x44,0x08,0x84,0xda]
+         ctestsb {dfv=of} %bl, %dl
+# CHECK: ctestsw {dfv=of} %dx, %ax
+# CHECK: encoding: [0x62,0xf4,0x45,0x08,0x85,0xd0]
+         ctestsw {dfv=of} %dx, %ax
+# CHECK: ctestsl {dfv=of} %ecx, %edx
+# CHECK: encoding: [0x62,0xf4,0x44,0x08,0x85,0xca]
+         ctestsl {dfv=of} %ecx, %edx
+# CHECK: ctestsq {dfv=of} %r9, %r15
+# CHECK: encoding: [0x62,0x54,0xc4,0x08,0x85,0xcf]
+         ctestsq {dfv=of} %r9, %r15
+# CHECK: ctesttb {dfv=of} $123, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0x44,0x0a,0xf6,0x44,0x80,0x7b,0x7b]
+         ctesttb {dfv=of} $123, 123(%r8,%rax,4)
+# CHECK: ctesttw {dfv=of} $1234, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0x45,0x0a,0xf7,0x44,0x80,0x7b,0xd2,0x04]
+         ctesttw {dfv=of} $1234, 123(%r8,%rax,4)
+# CHECK: ctesttl {dfv=of} $123456, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0x44,0x0a,0xf7,0x44,0x80,0x7b,0x40,0xe2,0x01,0x00]
+         ctesttl {dfv=of} $123456, 123(%r8,%rax,4)
+# CHECK: ctesttq {dfv=of} $123456, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0xc4,0x0a,0xf7,0x44,0x80,0x7b,0x40,0xe2,0x01,0x00]
+         ctesttq {dfv=of} $123456, 123(%r8,%rax,4)
+# CHECK: ctesttb {dfv=of} %bl, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0x44,0x0a,0x84,0x5c,0x80,0x7b]
+         ctesttb {dfv=of} %bl, 123(%r8,%rax,4)
+# CHECK: ctesttw {dfv=of} %dx, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0x45,0x0a,0x85,0x54,0x80,0x7b]
+         ctesttw {dfv=of} %dx, 123(%r8,%rax,4)
+# CHECK: ctesttl {dfv=of} %ecx, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0x44,0x0a,0x85,0x4c,0x80,0x7b]
+         ctesttl {dfv=of} %ecx, 123(%r8,%rax,4)
+# CHECK: ctesttq {dfv=of} %r9, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0x54,0xc4,0x0a,0x85,0x4c,0x80,0x7b]
+         ctesttq {dfv=of} %r9, 123(%r8,%rax,4)
+# CHECK: ctesttb {dfv=of} $123, %bl
+# CHECK: encoding: [0x62,0xf4,0x44,0x0a,0xf6,0xc3,0x7b]
+         ctesttb {dfv=of} $123, %bl
+# CHECK: ctesttw {dfv=of} $1234, %dx
+# CHECK: encoding: [0x62,0xf4,0x45,0x0a,0xf7,0xc2,0xd2,0x04]
+         ctesttw {dfv=of} $1234, %dx
+# CHECK: ctesttl {dfv=of} $123456, %ecx
+# CHECK: encoding: [0x62,0xf4,0x44,0x0a,0xf7,0xc1,0x40,0xe2,0x01,0x00]
+         ctesttl {dfv=of} $123456, %ecx
+# CHECK: ctesttq {dfv=of} $123456, %r9
+# CHECK: encoding: [0x62,0xd4,0xc4,0x0a,0xf7,0xc1,0x40,0xe2,0x01,0x00]
+         ctesttq {dfv=of} $123456, %r9
+# CHECK: ctesttb {dfv=of} %bl, %dl
+# CHECK: encoding: [0x62,0xf4,0x44,0x0a,0x84,0xda]
+         ctesttb {dfv=of} %bl, %dl
+# CHECK: ctesttw {dfv=of} %dx, %ax
+# CHECK: encoding: [0x62,0xf4,0x45,0x0a,0x85,0xd0]
+         ctesttw {dfv=of} %dx, %ax
+# CHECK: ctesttl {dfv=of} %ecx, %edx
+# CHECK: encoding: [0x62,0xf4,0x44,0x0a,0x85,0xca]
+         ctesttl {dfv=of} %ecx, %edx
+# CHECK: ctesttq {dfv=of} %r9, %r15
+# CHECK: encoding: [0x62,0x54,0xc4,0x0a,0x85,0xcf]
+         ctesttq {dfv=of} %r9, %r15
+# CHECK: ctesteb {dfv=of} $123, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0x44,0x04,0xf6,0x44,0x80,0x7b,0x7b]
+         ctesteb {dfv=of} $123, 123(%r8,%rax,4)
+# CHECK: ctestew {dfv=of} $1234, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0x45,0x04,0xf7,0x44,0x80,0x7b,0xd2,0x04]
+         ctestew {dfv=of} $1234, 123(%r8,%rax,4)
+# CHECK: ctestel {dfv=of} $123456, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0x44,0x04,0xf7,0x44,0x80,0x7b,0x40,0xe2,0x01,0x00]
+         ctestel {dfv=of} $123456, 123(%r8,%rax,4)
+# CHECK: ctesteq {dfv=of} $123456, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0xc4,0x04,0xf7,0x44,0x80,0x7b,0x40,0xe2,0x01,0x00]
+         ctesteq {dfv=of} $123456, 123(%r8,%rax,4)
+# CHECK: ctesteb {dfv=of} %bl, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0x44,0x04,0x84,0x5c,0x80,0x7b]
+         ctesteb {dfv=of} %bl, 123(%r8,%rax,4)
+# CHECK: ctestew {dfv=of} %dx, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0x45,0x04,0x85,0x54,0x80,0x7b]
+         ctestew {dfv=of} %dx, 123(%r8,%rax,4)
+# CHECK: ctestel {dfv=of} %ecx, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0x44,0x04,0x85,0x4c,0x80,0x7b]
+         ctestel {dfv=of} %ecx, 123(%r8,%rax,4)
+# CHECK: ctesteq {dfv=of} %r9, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0x54,0xc4,0x04,0x85,0x4c,0x80,0x7b]
+         ctesteq {dfv=of} %r9, 123(%r8,%rax,4)
+# CHECK: ctesteb {dfv=of} $123, %bl
+# CHECK: encoding: [0x62,0xf4,0x44,0x04,0xf6,0xc3,0x7b]
+         ctesteb {dfv=of} $123, %bl
+# CHECK: ctestew {dfv=of} $1234, %dx
+# CHECK: encoding: [0x62,0xf4,0x45,0x04,0xf7,0xc2,0xd2,0x04]
+         ctestew {dfv=of} $1234, %dx
+# CHECK: ctestel {dfv=of} $123456, %ecx
+# CHECK: encoding: [0x62,0xf4,0x44,0x04,0xf7,0xc1,0x40,0xe2,0x01,0x00]
+         ctestel {dfv=of} $123456, %ecx
+# CHECK: ctesteq {dfv=of} $123456, %r9
+# CHECK: encoding: [0x62,0xd4,0xc4,0x04,0xf7,0xc1,0x40,0xe2,0x01,0x00]
+         ctesteq {dfv=of} $123456, %r9
+# CHECK: ctesteb {dfv=of} %bl, %dl
+# CHECK: encoding: [0x62,0xf4,0x44,0x04,0x84,0xda]
+         ctesteb {dfv=of} %bl, %dl
+# CHECK: ctestew {dfv=of} %dx, %ax
+# CHECK: encoding: [0x62,0xf4,0x45,0x04,0x85,0xd0]
+         ctestew {dfv=of} %dx, %ax
+# CHECK: ctestel {dfv=of} %ecx, %edx
+# CHECK: encoding: [0x62,0xf4,0x44,0x04,0x85,0xca]
+         ctestel {dfv=of} %ecx, %edx
+# CHECK: ctesteq {dfv=of} %r9, %r15
+# CHECK: encoding: [0x62,0x54,0xc4,0x04,0x85,0xcf]
+         ctesteq {dfv=of} %r9, %r15

diff  --git a/llvm/test/MC/X86/apx/ctest-intel.s b/llvm/test/MC/X86/apx/ctest-intel.s
new file mode 100644
index 00000000000000..17cea489b47656
--- /dev/null
+++ b/llvm/test/MC/X86/apx/ctest-intel.s
@@ -0,0 +1,770 @@
+# RUN: llvm-mc -triple x86_64 -show-encoding -x86-asm-syntax=intel -output-asm-variant=1 %s | FileCheck %s
+
+# CHECK: ctestb {dfv=of} byte ptr [r8 + 4*rax + 123], 123
+# CHECK: encoding: [0x62,0xd4,0x44,0x02,0xf6,0x44,0x80,0x7b,0x7b]
+         ctestb {dfv=of} byte ptr [r8 + 4*rax + 123], 123
+# CHECK: ctestb {dfv=of} word ptr [r8 + 4*rax + 123], 1234
+# CHECK: encoding: [0x62,0xd4,0x45,0x02,0xf7,0x44,0x80,0x7b,0xd2,0x04]
+         ctestb {dfv=of} word ptr [r8 + 4*rax + 123], 1234
+# CHECK: ctestb {dfv=of} qword ptr [r8 + 4*rax + 123], 123456
+# CHECK: encoding: [0x62,0xd4,0xc4,0x02,0xf7,0x44,0x80,0x7b,0x40,0xe2,0x01,0x00]
+         ctestb {dfv=of} qword ptr [r8 + 4*rax + 123], 123456
+# CHECK: ctestb {dfv=of} dword ptr [r8 + 4*rax + 123], 123456
+# CHECK: encoding: [0x62,0xd4,0x44,0x02,0xf7,0x44,0x80,0x7b,0x40,0xe2,0x01,0x00]
+         ctestb {dfv=of} dword ptr [r8 + 4*rax + 123], 123456
+# CHECK: ctestb {dfv=of} byte ptr [r8 + 4*rax + 123], bl
+# CHECK: encoding: [0x62,0xd4,0x44,0x02,0x84,0x5c,0x80,0x7b]
+         ctestb {dfv=of} byte ptr [r8 + 4*rax + 123], bl
+# CHECK: ctestb {dfv=of} word ptr [r8 + 4*rax + 123], dx
+# CHECK: encoding: [0x62,0xd4,0x45,0x02,0x85,0x54,0x80,0x7b]
+         ctestb {dfv=of} word ptr [r8 + 4*rax + 123], dx
+# CHECK: ctestb {dfv=of} dword ptr [r8 + 4*rax + 123], ecx
+# CHECK: encoding: [0x62,0xd4,0x44,0x02,0x85,0x4c,0x80,0x7b]
+         ctestb {dfv=of} dword ptr [r8 + 4*rax + 123], ecx
+# CHECK: ctestb {dfv=of} qword ptr [r8 + 4*rax + 123], r9
+# CHECK: encoding: [0x62,0x54,0xc4,0x02,0x85,0x4c,0x80,0x7b]
+         ctestb {dfv=of} qword ptr [r8 + 4*rax + 123], r9
+# CHECK: ctestb {dfv=of} bl, 123
+# CHECK: encoding: [0x62,0xf4,0x44,0x02,0xf6,0xc3,0x7b]
+         ctestb {dfv=of} bl, 123
+# CHECK: ctestb {dfv=of} dx, 1234
+# CHECK: encoding: [0x62,0xf4,0x45,0x02,0xf7,0xc2,0xd2,0x04]
+         ctestb {dfv=of} dx, 1234
+# CHECK: ctestb {dfv=of} ecx, 123456
+# CHECK: encoding: [0x62,0xf4,0x44,0x02,0xf7,0xc1,0x40,0xe2,0x01,0x00]
+         ctestb {dfv=of} ecx, 123456
+# CHECK: ctestb {dfv=of} r9, 123456
+# CHECK: encoding: [0x62,0xd4,0xc4,0x02,0xf7,0xc1,0x40,0xe2,0x01,0x00]
+         ctestb {dfv=of} r9, 123456
+# CHECK: ctestb {dfv=of} dl, bl
+# CHECK: encoding: [0x62,0xf4,0x44,0x02,0x84,0xda]
+         ctestb {dfv=of} dl, bl
+# CHECK: ctestb {dfv=of} ax, dx
+# CHECK: encoding: [0x62,0xf4,0x45,0x02,0x85,0xd0]
+         ctestb {dfv=of} ax, dx
+# CHECK: ctestb {dfv=of} edx, ecx
+# CHECK: encoding: [0x62,0xf4,0x44,0x02,0x85,0xca]
+         ctestb {dfv=of} edx, ecx
+# CHECK: ctestb {dfv=of} r15, r9
+# CHECK: encoding: [0x62,0x54,0xc4,0x02,0x85,0xcf]
+         ctestb {dfv=of} r15, r9
+# CHECK: ctestbe {dfv=of} byte ptr [r8 + 4*rax + 123], 123
+# CHECK: encoding: [0x62,0xd4,0x44,0x06,0xf6,0x44,0x80,0x7b,0x7b]
+         ctestbe {dfv=of} byte ptr [r8 + 4*rax + 123], 123
+# CHECK: ctestbe {dfv=of} word ptr [r8 + 4*rax + 123], 1234
+# CHECK: encoding: [0x62,0xd4,0x45,0x06,0xf7,0x44,0x80,0x7b,0xd2,0x04]
+         ctestbe {dfv=of} word ptr [r8 + 4*rax + 123], 1234
+# CHECK: ctestbe {dfv=of} qword ptr [r8 + 4*rax + 123], 123456
+# CHECK: encoding: [0x62,0xd4,0xc4,0x06,0xf7,0x44,0x80,0x7b,0x40,0xe2,0x01,0x00]
+         ctestbe {dfv=of} qword ptr [r8 + 4*rax + 123], 123456
+# CHECK: ctestbe {dfv=of} dword ptr [r8 + 4*rax + 123], 123456
+# CHECK: encoding: [0x62,0xd4,0x44,0x06,0xf7,0x44,0x80,0x7b,0x40,0xe2,0x01,0x00]
+         ctestbe {dfv=of} dword ptr [r8 + 4*rax + 123], 123456
+# CHECK: ctestbe {dfv=of} byte ptr [r8 + 4*rax + 123], bl
+# CHECK: encoding: [0x62,0xd4,0x44,0x06,0x84,0x5c,0x80,0x7b]
+         ctestbe {dfv=of} byte ptr [r8 + 4*rax + 123], bl
+# CHECK: ctestbe {dfv=of} word ptr [r8 + 4*rax + 123], dx
+# CHECK: encoding: [0x62,0xd4,0x45,0x06,0x85,0x54,0x80,0x7b]
+         ctestbe {dfv=of} word ptr [r8 + 4*rax + 123], dx
+# CHECK: ctestbe {dfv=of} dword ptr [r8 + 4*rax + 123], ecx
+# CHECK: encoding: [0x62,0xd4,0x44,0x06,0x85,0x4c,0x80,0x7b]
+         ctestbe {dfv=of} dword ptr [r8 + 4*rax + 123], ecx
+# CHECK: ctestbe {dfv=of} qword ptr [r8 + 4*rax + 123], r9
+# CHECK: encoding: [0x62,0x54,0xc4,0x06,0x85,0x4c,0x80,0x7b]
+         ctestbe {dfv=of} qword ptr [r8 + 4*rax + 123], r9
+# CHECK: ctestbe {dfv=of} bl, 123
+# CHECK: encoding: [0x62,0xf4,0x44,0x06,0xf6,0xc3,0x7b]
+         ctestbe {dfv=of} bl, 123
+# CHECK: ctestbe {dfv=of} dx, 1234
+# CHECK: encoding: [0x62,0xf4,0x45,0x06,0xf7,0xc2,0xd2,0x04]
+         ctestbe {dfv=of} dx, 1234
+# CHECK: ctestbe {dfv=of} ecx, 123456
+# CHECK: encoding: [0x62,0xf4,0x44,0x06,0xf7,0xc1,0x40,0xe2,0x01,0x00]
+         ctestbe {dfv=of} ecx, 123456
+# CHECK: ctestbe {dfv=of} r9, 123456
+# CHECK: encoding: [0x62,0xd4,0xc4,0x06,0xf7,0xc1,0x40,0xe2,0x01,0x00]
+         ctestbe {dfv=of} r9, 123456
+# CHECK: ctestbe {dfv=of} dl, bl
+# CHECK: encoding: [0x62,0xf4,0x44,0x06,0x84,0xda]
+         ctestbe {dfv=of} dl, bl
+# CHECK: ctestbe {dfv=of} ax, dx
+# CHECK: encoding: [0x62,0xf4,0x45,0x06,0x85,0xd0]
+         ctestbe {dfv=of} ax, dx
+# CHECK: ctestbe {dfv=of} edx, ecx
+# CHECK: encoding: [0x62,0xf4,0x44,0x06,0x85,0xca]
+         ctestbe {dfv=of} edx, ecx
+# CHECK: ctestbe {dfv=of} r15, r9
+# CHECK: encoding: [0x62,0x54,0xc4,0x06,0x85,0xcf]
+         ctestbe {dfv=of} r15, r9
+# CHECK: ctestf {dfv=of} byte ptr [r8 + 4*rax + 123], 123
+# CHECK: encoding: [0x62,0xd4,0x44,0x0b,0xf6,0x44,0x80,0x7b,0x7b]
+         ctestf {dfv=of} byte ptr [r8 + 4*rax + 123], 123
+# CHECK: ctestf {dfv=of} word ptr [r8 + 4*rax + 123], 1234
+# CHECK: encoding: [0x62,0xd4,0x45,0x0b,0xf7,0x44,0x80,0x7b,0xd2,0x04]
+         ctestf {dfv=of} word ptr [r8 + 4*rax + 123], 1234
+# CHECK: ctestf {dfv=of} qword ptr [r8 + 4*rax + 123], 123456
+# CHECK: encoding: [0x62,0xd4,0xc4,0x0b,0xf7,0x44,0x80,0x7b,0x40,0xe2,0x01,0x00]
+         ctestf {dfv=of} qword ptr [r8 + 4*rax + 123], 123456
+# CHECK: ctestf {dfv=of} dword ptr [r8 + 4*rax + 123], 123456
+# CHECK: encoding: [0x62,0xd4,0x44,0x0b,0xf7,0x44,0x80,0x7b,0x40,0xe2,0x01,0x00]
+         ctestf {dfv=of} dword ptr [r8 + 4*rax + 123], 123456
+# CHECK: ctestf {dfv=of} byte ptr [r8 + 4*rax + 123], bl
+# CHECK: encoding: [0x62,0xd4,0x44,0x0b,0x84,0x5c,0x80,0x7b]
+         ctestf {dfv=of} byte ptr [r8 + 4*rax + 123], bl
+# CHECK: ctestf {dfv=of} word ptr [r8 + 4*rax + 123], dx
+# CHECK: encoding: [0x62,0xd4,0x45,0x0b,0x85,0x54,0x80,0x7b]
+         ctestf {dfv=of} word ptr [r8 + 4*rax + 123], dx
+# CHECK: ctestf {dfv=of} dword ptr [r8 + 4*rax + 123], ecx
+# CHECK: encoding: [0x62,0xd4,0x44,0x0b,0x85,0x4c,0x80,0x7b]
+         ctestf {dfv=of} dword ptr [r8 + 4*rax + 123], ecx
+# CHECK: ctestf {dfv=of} qword ptr [r8 + 4*rax + 123], r9
+# CHECK: encoding: [0x62,0x54,0xc4,0x0b,0x85,0x4c,0x80,0x7b]
+         ctestf {dfv=of} qword ptr [r8 + 4*rax + 123], r9
+# CHECK: ctestf {dfv=of} bl, 123
+# CHECK: encoding: [0x62,0xf4,0x44,0x0b,0xf6,0xc3,0x7b]
+         ctestf {dfv=of} bl, 123
+# CHECK: ctestf {dfv=of} dx, 1234
+# CHECK: encoding: [0x62,0xf4,0x45,0x0b,0xf7,0xc2,0xd2,0x04]
+         ctestf {dfv=of} dx, 1234
+# CHECK: ctestf {dfv=of} ecx, 123456
+# CHECK: encoding: [0x62,0xf4,0x44,0x0b,0xf7,0xc1,0x40,0xe2,0x01,0x00]
+         ctestf {dfv=of} ecx, 123456
+# CHECK: ctestf {dfv=of} r9, 123456
+# CHECK: encoding: [0x62,0xd4,0xc4,0x0b,0xf7,0xc1,0x40,0xe2,0x01,0x00]
+         ctestf {dfv=of} r9, 123456
+# CHECK: ctestf {dfv=of} dl, bl
+# CHECK: encoding: [0x62,0xf4,0x44,0x0b,0x84,0xda]
+         ctestf {dfv=of} dl, bl
+# CHECK: ctestf {dfv=of} ax, dx
+# CHECK: encoding: [0x62,0xf4,0x45,0x0b,0x85,0xd0]
+         ctestf {dfv=of} ax, dx
+# CHECK: ctestf {dfv=of} edx, ecx
+# CHECK: encoding: [0x62,0xf4,0x44,0x0b,0x85,0xca]
+         ctestf {dfv=of} edx, ecx
+# CHECK: ctestf {dfv=of} r15, r9
+# CHECK: encoding: [0x62,0x54,0xc4,0x0b,0x85,0xcf]
+         ctestf {dfv=of} r15, r9
+# CHECK: ctestl {dfv=of} byte ptr [r8 + 4*rax + 123], 123
+# CHECK: encoding: [0x62,0xd4,0x44,0x0c,0xf6,0x44,0x80,0x7b,0x7b]
+         ctestl {dfv=of} byte ptr [r8 + 4*rax + 123], 123
+# CHECK: ctestl {dfv=of} word ptr [r8 + 4*rax + 123], 1234
+# CHECK: encoding: [0x62,0xd4,0x45,0x0c,0xf7,0x44,0x80,0x7b,0xd2,0x04]
+         ctestl {dfv=of} word ptr [r8 + 4*rax + 123], 1234
+# CHECK: ctestl {dfv=of} qword ptr [r8 + 4*rax + 123], 123456
+# CHECK: encoding: [0x62,0xd4,0xc4,0x0c,0xf7,0x44,0x80,0x7b,0x40,0xe2,0x01,0x00]
+         ctestl {dfv=of} qword ptr [r8 + 4*rax + 123], 123456
+# CHECK: ctestl {dfv=of} dword ptr [r8 + 4*rax + 123], 123456
+# CHECK: encoding: [0x62,0xd4,0x44,0x0c,0xf7,0x44,0x80,0x7b,0x40,0xe2,0x01,0x00]
+         ctestl {dfv=of} dword ptr [r8 + 4*rax + 123], 123456
+# CHECK: ctestl {dfv=of} byte ptr [r8 + 4*rax + 123], bl
+# CHECK: encoding: [0x62,0xd4,0x44,0x0c,0x84,0x5c,0x80,0x7b]
+         ctestl {dfv=of} byte ptr [r8 + 4*rax + 123], bl
+# CHECK: ctestl {dfv=of} word ptr [r8 + 4*rax + 123], dx
+# CHECK: encoding: [0x62,0xd4,0x45,0x0c,0x85,0x54,0x80,0x7b]
+         ctestl {dfv=of} word ptr [r8 + 4*rax + 123], dx
+# CHECK: ctestl {dfv=of} dword ptr [r8 + 4*rax + 123], ecx
+# CHECK: encoding: [0x62,0xd4,0x44,0x0c,0x85,0x4c,0x80,0x7b]
+         ctestl {dfv=of} dword ptr [r8 + 4*rax + 123], ecx
+# CHECK: ctestl {dfv=of} qword ptr [r8 + 4*rax + 123], r9
+# CHECK: encoding: [0x62,0x54,0xc4,0x0c,0x85,0x4c,0x80,0x7b]
+         ctestl {dfv=of} qword ptr [r8 + 4*rax + 123], r9
+# CHECK: ctestl {dfv=of} bl, 123
+# CHECK: encoding: [0x62,0xf4,0x44,0x0c,0xf6,0xc3,0x7b]
+         ctestl {dfv=of} bl, 123
+# CHECK: ctestl {dfv=of} dx, 1234
+# CHECK: encoding: [0x62,0xf4,0x45,0x0c,0xf7,0xc2,0xd2,0x04]
+         ctestl {dfv=of} dx, 1234
+# CHECK: ctestl {dfv=of} ecx, 123456
+# CHECK: encoding: [0x62,0xf4,0x44,0x0c,0xf7,0xc1,0x40,0xe2,0x01,0x00]
+         ctestl {dfv=of} ecx, 123456
+# CHECK: ctestl {dfv=of} r9, 123456
+# CHECK: encoding: [0x62,0xd4,0xc4,0x0c,0xf7,0xc1,0x40,0xe2,0x01,0x00]
+         ctestl {dfv=of} r9, 123456
+# CHECK: ctestl {dfv=of} dl, bl
+# CHECK: encoding: [0x62,0xf4,0x44,0x0c,0x84,0xda]
+         ctestl {dfv=of} dl, bl
+# CHECK: ctestl {dfv=of} ax, dx
+# CHECK: encoding: [0x62,0xf4,0x45,0x0c,0x85,0xd0]
+         ctestl {dfv=of} ax, dx
+# CHECK: ctestl {dfv=of} edx, ecx
+# CHECK: encoding: [0x62,0xf4,0x44,0x0c,0x85,0xca]
+         ctestl {dfv=of} edx, ecx
+# CHECK: ctestl {dfv=of} r15, r9
+# CHECK: encoding: [0x62,0x54,0xc4,0x0c,0x85,0xcf]
+         ctestl {dfv=of} r15, r9
+# CHECK: ctestle {dfv=of} byte ptr [r8 + 4*rax + 123], 123
+# CHECK: encoding: [0x62,0xd4,0x44,0x0e,0xf6,0x44,0x80,0x7b,0x7b]
+         ctestle {dfv=of} byte ptr [r8 + 4*rax + 123], 123
+# CHECK: ctestle {dfv=of} word ptr [r8 + 4*rax + 123], 1234
+# CHECK: encoding: [0x62,0xd4,0x45,0x0e,0xf7,0x44,0x80,0x7b,0xd2,0x04]
+         ctestle {dfv=of} word ptr [r8 + 4*rax + 123], 1234
+# CHECK: ctestle {dfv=of} qword ptr [r8 + 4*rax + 123], 123456
+# CHECK: encoding: [0x62,0xd4,0xc4,0x0e,0xf7,0x44,0x80,0x7b,0x40,0xe2,0x01,0x00]
+         ctestle {dfv=of} qword ptr [r8 + 4*rax + 123], 123456
+# CHECK: ctestle {dfv=of} dword ptr [r8 + 4*rax + 123], 123456
+# CHECK: encoding: [0x62,0xd4,0x44,0x0e,0xf7,0x44,0x80,0x7b,0x40,0xe2,0x01,0x00]
+         ctestle {dfv=of} dword ptr [r8 + 4*rax + 123], 123456
+# CHECK: ctestle {dfv=of} byte ptr [r8 + 4*rax + 123], bl
+# CHECK: encoding: [0x62,0xd4,0x44,0x0e,0x84,0x5c,0x80,0x7b]
+         ctestle {dfv=of} byte ptr [r8 + 4*rax + 123], bl
+# CHECK: ctestle {dfv=of} word ptr [r8 + 4*rax + 123], dx
+# CHECK: encoding: [0x62,0xd4,0x45,0x0e,0x85,0x54,0x80,0x7b]
+         ctestle {dfv=of} word ptr [r8 + 4*rax + 123], dx
+# CHECK: ctestle {dfv=of} dword ptr [r8 + 4*rax + 123], ecx
+# CHECK: encoding: [0x62,0xd4,0x44,0x0e,0x85,0x4c,0x80,0x7b]
+         ctestle {dfv=of} dword ptr [r8 + 4*rax + 123], ecx
+# CHECK: ctestle {dfv=of} qword ptr [r8 + 4*rax + 123], r9
+# CHECK: encoding: [0x62,0x54,0xc4,0x0e,0x85,0x4c,0x80,0x7b]
+         ctestle {dfv=of} qword ptr [r8 + 4*rax + 123], r9
+# CHECK: ctestle {dfv=of} bl, 123
+# CHECK: encoding: [0x62,0xf4,0x44,0x0e,0xf6,0xc3,0x7b]
+         ctestle {dfv=of} bl, 123
+# CHECK: ctestle {dfv=of} dx, 1234
+# CHECK: encoding: [0x62,0xf4,0x45,0x0e,0xf7,0xc2,0xd2,0x04]
+         ctestle {dfv=of} dx, 1234
+# CHECK: ctestle {dfv=of} ecx, 123456
+# CHECK: encoding: [0x62,0xf4,0x44,0x0e,0xf7,0xc1,0x40,0xe2,0x01,0x00]
+         ctestle {dfv=of} ecx, 123456
+# CHECK: ctestle {dfv=of} r9, 123456
+# CHECK: encoding: [0x62,0xd4,0xc4,0x0e,0xf7,0xc1,0x40,0xe2,0x01,0x00]
+         ctestle {dfv=of} r9, 123456
+# CHECK: ctestle {dfv=of} dl, bl
+# CHECK: encoding: [0x62,0xf4,0x44,0x0e,0x84,0xda]
+         ctestle {dfv=of} dl, bl
+# CHECK: ctestle {dfv=of} ax, dx
+# CHECK: encoding: [0x62,0xf4,0x45,0x0e,0x85,0xd0]
+         ctestle {dfv=of} ax, dx
+# CHECK: ctestle {dfv=of} edx, ecx
+# CHECK: encoding: [0x62,0xf4,0x44,0x0e,0x85,0xca]
+         ctestle {dfv=of} edx, ecx
+# CHECK: ctestle {dfv=of} r15, r9
+# CHECK: encoding: [0x62,0x54,0xc4,0x0e,0x85,0xcf]
+         ctestle {dfv=of} r15, r9
+# CHECK: ctestae {dfv=of} byte ptr [r8 + 4*rax + 123], 123
+# CHECK: encoding: [0x62,0xd4,0x44,0x03,0xf6,0x44,0x80,0x7b,0x7b]
+         ctestae {dfv=of} byte ptr [r8 + 4*rax + 123], 123
+# CHECK: ctestae {dfv=of} word ptr [r8 + 4*rax + 123], 1234
+# CHECK: encoding: [0x62,0xd4,0x45,0x03,0xf7,0x44,0x80,0x7b,0xd2,0x04]
+         ctestae {dfv=of} word ptr [r8 + 4*rax + 123], 1234
+# CHECK: ctestae {dfv=of} qword ptr [r8 + 4*rax + 123], 123456
+# CHECK: encoding: [0x62,0xd4,0xc4,0x03,0xf7,0x44,0x80,0x7b,0x40,0xe2,0x01,0x00]
+         ctestae {dfv=of} qword ptr [r8 + 4*rax + 123], 123456
+# CHECK: ctestae {dfv=of} dword ptr [r8 + 4*rax + 123], 123456
+# CHECK: encoding: [0x62,0xd4,0x44,0x03,0xf7,0x44,0x80,0x7b,0x40,0xe2,0x01,0x00]
+         ctestae {dfv=of} dword ptr [r8 + 4*rax + 123], 123456
+# CHECK: ctestae {dfv=of} byte ptr [r8 + 4*rax + 123], bl
+# CHECK: encoding: [0x62,0xd4,0x44,0x03,0x84,0x5c,0x80,0x7b]
+         ctestae {dfv=of} byte ptr [r8 + 4*rax + 123], bl
+# CHECK: ctestae {dfv=of} word ptr [r8 + 4*rax + 123], dx
+# CHECK: encoding: [0x62,0xd4,0x45,0x03,0x85,0x54,0x80,0x7b]
+         ctestae {dfv=of} word ptr [r8 + 4*rax + 123], dx
+# CHECK: ctestae {dfv=of} dword ptr [r8 + 4*rax + 123], ecx
+# CHECK: encoding: [0x62,0xd4,0x44,0x03,0x85,0x4c,0x80,0x7b]
+         ctestae {dfv=of} dword ptr [r8 + 4*rax + 123], ecx
+# CHECK: ctestae {dfv=of} qword ptr [r8 + 4*rax + 123], r9
+# CHECK: encoding: [0x62,0x54,0xc4,0x03,0x85,0x4c,0x80,0x7b]
+         ctestae {dfv=of} qword ptr [r8 + 4*rax + 123], r9
+# CHECK: ctestae {dfv=of} bl, 123
+# CHECK: encoding: [0x62,0xf4,0x44,0x03,0xf6,0xc3,0x7b]
+         ctestae {dfv=of} bl, 123
+# CHECK: ctestae {dfv=of} dx, 1234
+# CHECK: encoding: [0x62,0xf4,0x45,0x03,0xf7,0xc2,0xd2,0x04]
+         ctestae {dfv=of} dx, 1234
+# CHECK: ctestae {dfv=of} ecx, 123456
+# CHECK: encoding: [0x62,0xf4,0x44,0x03,0xf7,0xc1,0x40,0xe2,0x01,0x00]
+         ctestae {dfv=of} ecx, 123456
+# CHECK: ctestae {dfv=of} r9, 123456
+# CHECK: encoding: [0x62,0xd4,0xc4,0x03,0xf7,0xc1,0x40,0xe2,0x01,0x00]
+         ctestae {dfv=of} r9, 123456
+# CHECK: ctestae {dfv=of} dl, bl
+# CHECK: encoding: [0x62,0xf4,0x44,0x03,0x84,0xda]
+         ctestae {dfv=of} dl, bl
+# CHECK: ctestae {dfv=of} ax, dx
+# CHECK: encoding: [0x62,0xf4,0x45,0x03,0x85,0xd0]
+         ctestae {dfv=of} ax, dx
+# CHECK: ctestae {dfv=of} edx, ecx
+# CHECK: encoding: [0x62,0xf4,0x44,0x03,0x85,0xca]
+         ctestae {dfv=of} edx, ecx
+# CHECK: ctestae {dfv=of} r15, r9
+# CHECK: encoding: [0x62,0x54,0xc4,0x03,0x85,0xcf]
+         ctestae {dfv=of} r15, r9
+# CHECK: ctesta {dfv=of} byte ptr [r8 + 4*rax + 123], 123
+# CHECK: encoding: [0x62,0xd4,0x44,0x07,0xf6,0x44,0x80,0x7b,0x7b]
+         ctesta {dfv=of} byte ptr [r8 + 4*rax + 123], 123
+# CHECK: ctesta {dfv=of} word ptr [r8 + 4*rax + 123], 1234
+# CHECK: encoding: [0x62,0xd4,0x45,0x07,0xf7,0x44,0x80,0x7b,0xd2,0x04]
+         ctesta {dfv=of} word ptr [r8 + 4*rax + 123], 1234
+# CHECK: ctesta {dfv=of} qword ptr [r8 + 4*rax + 123], 123456
+# CHECK: encoding: [0x62,0xd4,0xc4,0x07,0xf7,0x44,0x80,0x7b,0x40,0xe2,0x01,0x00]
+         ctesta {dfv=of} qword ptr [r8 + 4*rax + 123], 123456
+# CHECK: ctesta {dfv=of} dword ptr [r8 + 4*rax + 123], 123456
+# CHECK: encoding: [0x62,0xd4,0x44,0x07,0xf7,0x44,0x80,0x7b,0x40,0xe2,0x01,0x00]
+         ctesta {dfv=of} dword ptr [r8 + 4*rax + 123], 123456
+# CHECK: ctesta {dfv=of} byte ptr [r8 + 4*rax + 123], bl
+# CHECK: encoding: [0x62,0xd4,0x44,0x07,0x84,0x5c,0x80,0x7b]
+         ctesta {dfv=of} byte ptr [r8 + 4*rax + 123], bl
+# CHECK: ctesta {dfv=of} word ptr [r8 + 4*rax + 123], dx
+# CHECK: encoding: [0x62,0xd4,0x45,0x07,0x85,0x54,0x80,0x7b]
+         ctesta {dfv=of} word ptr [r8 + 4*rax + 123], dx
+# CHECK: ctesta {dfv=of} dword ptr [r8 + 4*rax + 123], ecx
+# CHECK: encoding: [0x62,0xd4,0x44,0x07,0x85,0x4c,0x80,0x7b]
+         ctesta {dfv=of} dword ptr [r8 + 4*rax + 123], ecx
+# CHECK: ctesta {dfv=of} qword ptr [r8 + 4*rax + 123], r9
+# CHECK: encoding: [0x62,0x54,0xc4,0x07,0x85,0x4c,0x80,0x7b]
+         ctesta {dfv=of} qword ptr [r8 + 4*rax + 123], r9
+# CHECK: ctesta {dfv=of} bl, 123
+# CHECK: encoding: [0x62,0xf4,0x44,0x07,0xf6,0xc3,0x7b]
+         ctesta {dfv=of} bl, 123
+# CHECK: ctesta {dfv=of} dx, 1234
+# CHECK: encoding: [0x62,0xf4,0x45,0x07,0xf7,0xc2,0xd2,0x04]
+         ctesta {dfv=of} dx, 1234
+# CHECK: ctesta {dfv=of} ecx, 123456
+# CHECK: encoding: [0x62,0xf4,0x44,0x07,0xf7,0xc1,0x40,0xe2,0x01,0x00]
+         ctesta {dfv=of} ecx, 123456
+# CHECK: ctesta {dfv=of} r9, 123456
+# CHECK: encoding: [0x62,0xd4,0xc4,0x07,0xf7,0xc1,0x40,0xe2,0x01,0x00]
+         ctesta {dfv=of} r9, 123456
+# CHECK: ctesta {dfv=of} dl, bl
+# CHECK: encoding: [0x62,0xf4,0x44,0x07,0x84,0xda]
+         ctesta {dfv=of} dl, bl
+# CHECK: ctesta {dfv=of} ax, dx
+# CHECK: encoding: [0x62,0xf4,0x45,0x07,0x85,0xd0]
+         ctesta {dfv=of} ax, dx
+# CHECK: ctesta {dfv=of} edx, ecx
+# CHECK: encoding: [0x62,0xf4,0x44,0x07,0x85,0xca]
+         ctesta {dfv=of} edx, ecx
+# CHECK: ctesta {dfv=of} r15, r9
+# CHECK: encoding: [0x62,0x54,0xc4,0x07,0x85,0xcf]
+         ctesta {dfv=of} r15, r9
+# CHECK: ctestge {dfv=of} byte ptr [r8 + 4*rax + 123], 123
+# CHECK: encoding: [0x62,0xd4,0x44,0x0d,0xf6,0x44,0x80,0x7b,0x7b]
+         ctestge {dfv=of} byte ptr [r8 + 4*rax + 123], 123
+# CHECK: ctestge {dfv=of} word ptr [r8 + 4*rax + 123], 1234
+# CHECK: encoding: [0x62,0xd4,0x45,0x0d,0xf7,0x44,0x80,0x7b,0xd2,0x04]
+         ctestge {dfv=of} word ptr [r8 + 4*rax + 123], 1234
+# CHECK: ctestge {dfv=of} qword ptr [r8 + 4*rax + 123], 123456
+# CHECK: encoding: [0x62,0xd4,0xc4,0x0d,0xf7,0x44,0x80,0x7b,0x40,0xe2,0x01,0x00]
+         ctestge {dfv=of} qword ptr [r8 + 4*rax + 123], 123456
+# CHECK: ctestge {dfv=of} dword ptr [r8 + 4*rax + 123], 123456
+# CHECK: encoding: [0x62,0xd4,0x44,0x0d,0xf7,0x44,0x80,0x7b,0x40,0xe2,0x01,0x00]
+         ctestge {dfv=of} dword ptr [r8 + 4*rax + 123], 123456
+# CHECK: ctestge {dfv=of} byte ptr [r8 + 4*rax + 123], bl
+# CHECK: encoding: [0x62,0xd4,0x44,0x0d,0x84,0x5c,0x80,0x7b]
+         ctestge {dfv=of} byte ptr [r8 + 4*rax + 123], bl
+# CHECK: ctestge {dfv=of} word ptr [r8 + 4*rax + 123], dx
+# CHECK: encoding: [0x62,0xd4,0x45,0x0d,0x85,0x54,0x80,0x7b]
+         ctestge {dfv=of} word ptr [r8 + 4*rax + 123], dx
+# CHECK: ctestge {dfv=of} dword ptr [r8 + 4*rax + 123], ecx
+# CHECK: encoding: [0x62,0xd4,0x44,0x0d,0x85,0x4c,0x80,0x7b]
+         ctestge {dfv=of} dword ptr [r8 + 4*rax + 123], ecx
+# CHECK: ctestge {dfv=of} qword ptr [r8 + 4*rax + 123], r9
+# CHECK: encoding: [0x62,0x54,0xc4,0x0d,0x85,0x4c,0x80,0x7b]
+         ctestge {dfv=of} qword ptr [r8 + 4*rax + 123], r9
+# CHECK: ctestge {dfv=of} bl, 123
+# CHECK: encoding: [0x62,0xf4,0x44,0x0d,0xf6,0xc3,0x7b]
+         ctestge {dfv=of} bl, 123
+# CHECK: ctestge {dfv=of} dx, 1234
+# CHECK: encoding: [0x62,0xf4,0x45,0x0d,0xf7,0xc2,0xd2,0x04]
+         ctestge {dfv=of} dx, 1234
+# CHECK: ctestge {dfv=of} ecx, 123456
+# CHECK: encoding: [0x62,0xf4,0x44,0x0d,0xf7,0xc1,0x40,0xe2,0x01,0x00]
+         ctestge {dfv=of} ecx, 123456
+# CHECK: ctestge {dfv=of} r9, 123456
+# CHECK: encoding: [0x62,0xd4,0xc4,0x0d,0xf7,0xc1,0x40,0xe2,0x01,0x00]
+         ctestge {dfv=of} r9, 123456
+# CHECK: ctestge {dfv=of} dl, bl
+# CHECK: encoding: [0x62,0xf4,0x44,0x0d,0x84,0xda]
+         ctestge {dfv=of} dl, bl
+# CHECK: ctestge {dfv=of} ax, dx
+# CHECK: encoding: [0x62,0xf4,0x45,0x0d,0x85,0xd0]
+         ctestge {dfv=of} ax, dx
+# CHECK: ctestge {dfv=of} edx, ecx
+# CHECK: encoding: [0x62,0xf4,0x44,0x0d,0x85,0xca]
+         ctestge {dfv=of} edx, ecx
+# CHECK: ctestge {dfv=of} r15, r9
+# CHECK: encoding: [0x62,0x54,0xc4,0x0d,0x85,0xcf]
+         ctestge {dfv=of} r15, r9
+# CHECK: ctestg {dfv=of} byte ptr [r8 + 4*rax + 123], 123
+# CHECK: encoding: [0x62,0xd4,0x44,0x0f,0xf6,0x44,0x80,0x7b,0x7b]
+         ctestg {dfv=of} byte ptr [r8 + 4*rax + 123], 123
+# CHECK: ctestg {dfv=of} word ptr [r8 + 4*rax + 123], 1234
+# CHECK: encoding: [0x62,0xd4,0x45,0x0f,0xf7,0x44,0x80,0x7b,0xd2,0x04]
+         ctestg {dfv=of} word ptr [r8 + 4*rax + 123], 1234
+# CHECK: ctestg {dfv=of} qword ptr [r8 + 4*rax + 123], 123456
+# CHECK: encoding: [0x62,0xd4,0xc4,0x0f,0xf7,0x44,0x80,0x7b,0x40,0xe2,0x01,0x00]
+         ctestg {dfv=of} qword ptr [r8 + 4*rax + 123], 123456
+# CHECK: ctestg {dfv=of} dword ptr [r8 + 4*rax + 123], 123456
+# CHECK: encoding: [0x62,0xd4,0x44,0x0f,0xf7,0x44,0x80,0x7b,0x40,0xe2,0x01,0x00]
+         ctestg {dfv=of} dword ptr [r8 + 4*rax + 123], 123456
+# CHECK: ctestg {dfv=of} byte ptr [r8 + 4*rax + 123], bl
+# CHECK: encoding: [0x62,0xd4,0x44,0x0f,0x84,0x5c,0x80,0x7b]
+         ctestg {dfv=of} byte ptr [r8 + 4*rax + 123], bl
+# CHECK: ctestg {dfv=of} word ptr [r8 + 4*rax + 123], dx
+# CHECK: encoding: [0x62,0xd4,0x45,0x0f,0x85,0x54,0x80,0x7b]
+         ctestg {dfv=of} word ptr [r8 + 4*rax + 123], dx
+# CHECK: ctestg {dfv=of} dword ptr [r8 + 4*rax + 123], ecx
+# CHECK: encoding: [0x62,0xd4,0x44,0x0f,0x85,0x4c,0x80,0x7b]
+         ctestg {dfv=of} dword ptr [r8 + 4*rax + 123], ecx
+# CHECK: ctestg {dfv=of} qword ptr [r8 + 4*rax + 123], r9
+# CHECK: encoding: [0x62,0x54,0xc4,0x0f,0x85,0x4c,0x80,0x7b]
+         ctestg {dfv=of} qword ptr [r8 + 4*rax + 123], r9
+# CHECK: ctestg {dfv=of} bl, 123
+# CHECK: encoding: [0x62,0xf4,0x44,0x0f,0xf6,0xc3,0x7b]
+         ctestg {dfv=of} bl, 123
+# CHECK: ctestg {dfv=of} dx, 1234
+# CHECK: encoding: [0x62,0xf4,0x45,0x0f,0xf7,0xc2,0xd2,0x04]
+         ctestg {dfv=of} dx, 1234
+# CHECK: ctestg {dfv=of} ecx, 123456
+# CHECK: encoding: [0x62,0xf4,0x44,0x0f,0xf7,0xc1,0x40,0xe2,0x01,0x00]
+         ctestg {dfv=of} ecx, 123456
+# CHECK: ctestg {dfv=of} r9, 123456
+# CHECK: encoding: [0x62,0xd4,0xc4,0x0f,0xf7,0xc1,0x40,0xe2,0x01,0x00]
+         ctestg {dfv=of} r9, 123456
+# CHECK: ctestg {dfv=of} dl, bl
+# CHECK: encoding: [0x62,0xf4,0x44,0x0f,0x84,0xda]
+         ctestg {dfv=of} dl, bl
+# CHECK: ctestg {dfv=of} ax, dx
+# CHECK: encoding: [0x62,0xf4,0x45,0x0f,0x85,0xd0]
+         ctestg {dfv=of} ax, dx
+# CHECK: ctestg {dfv=of} edx, ecx
+# CHECK: encoding: [0x62,0xf4,0x44,0x0f,0x85,0xca]
+         ctestg {dfv=of} edx, ecx
+# CHECK: ctestg {dfv=of} r15, r9
+# CHECK: encoding: [0x62,0x54,0xc4,0x0f,0x85,0xcf]
+         ctestg {dfv=of} r15, r9
+# CHECK: ctestno {dfv=of} byte ptr [r8 + 4*rax + 123], 123
+# CHECK: encoding: [0x62,0xd4,0x44,0x01,0xf6,0x44,0x80,0x7b,0x7b]
+         ctestno {dfv=of} byte ptr [r8 + 4*rax + 123], 123
+# CHECK: ctestno {dfv=of} word ptr [r8 + 4*rax + 123], 1234
+# CHECK: encoding: [0x62,0xd4,0x45,0x01,0xf7,0x44,0x80,0x7b,0xd2,0x04]
+         ctestno {dfv=of} word ptr [r8 + 4*rax + 123], 1234
+# CHECK: ctestno {dfv=of} qword ptr [r8 + 4*rax + 123], 123456
+# CHECK: encoding: [0x62,0xd4,0xc4,0x01,0xf7,0x44,0x80,0x7b,0x40,0xe2,0x01,0x00]
+         ctestno {dfv=of} qword ptr [r8 + 4*rax + 123], 123456
+# CHECK: ctestno {dfv=of} dword ptr [r8 + 4*rax + 123], 123456
+# CHECK: encoding: [0x62,0xd4,0x44,0x01,0xf7,0x44,0x80,0x7b,0x40,0xe2,0x01,0x00]
+         ctestno {dfv=of} dword ptr [r8 + 4*rax + 123], 123456
+# CHECK: ctestno {dfv=of} byte ptr [r8 + 4*rax + 123], bl
+# CHECK: encoding: [0x62,0xd4,0x44,0x01,0x84,0x5c,0x80,0x7b]
+         ctestno {dfv=of} byte ptr [r8 + 4*rax + 123], bl
+# CHECK: ctestno {dfv=of} word ptr [r8 + 4*rax + 123], dx
+# CHECK: encoding: [0x62,0xd4,0x45,0x01,0x85,0x54,0x80,0x7b]
+         ctestno {dfv=of} word ptr [r8 + 4*rax + 123], dx
+# CHECK: ctestno {dfv=of} dword ptr [r8 + 4*rax + 123], ecx
+# CHECK: encoding: [0x62,0xd4,0x44,0x01,0x85,0x4c,0x80,0x7b]
+         ctestno {dfv=of} dword ptr [r8 + 4*rax + 123], ecx
+# CHECK: ctestno {dfv=of} qword ptr [r8 + 4*rax + 123], r9
+# CHECK: encoding: [0x62,0x54,0xc4,0x01,0x85,0x4c,0x80,0x7b]
+         ctestno {dfv=of} qword ptr [r8 + 4*rax + 123], r9
+# CHECK: ctestno {dfv=of} bl, 123
+# CHECK: encoding: [0x62,0xf4,0x44,0x01,0xf6,0xc3,0x7b]
+         ctestno {dfv=of} bl, 123
+# CHECK: ctestno {dfv=of} dx, 1234
+# CHECK: encoding: [0x62,0xf4,0x45,0x01,0xf7,0xc2,0xd2,0x04]
+         ctestno {dfv=of} dx, 1234
+# CHECK: ctestno {dfv=of} ecx, 123456
+# CHECK: encoding: [0x62,0xf4,0x44,0x01,0xf7,0xc1,0x40,0xe2,0x01,0x00]
+         ctestno {dfv=of} ecx, 123456
+# CHECK: ctestno {dfv=of} r9, 123456
+# CHECK: encoding: [0x62,0xd4,0xc4,0x01,0xf7,0xc1,0x40,0xe2,0x01,0x00]
+         ctestno {dfv=of} r9, 123456
+# CHECK: ctestno {dfv=of} dl, bl
+# CHECK: encoding: [0x62,0xf4,0x44,0x01,0x84,0xda]
+         ctestno {dfv=of} dl, bl
+# CHECK: ctestno {dfv=of} ax, dx
+# CHECK: encoding: [0x62,0xf4,0x45,0x01,0x85,0xd0]
+         ctestno {dfv=of} ax, dx
+# CHECK: ctestno {dfv=of} edx, ecx
+# CHECK: encoding: [0x62,0xf4,0x44,0x01,0x85,0xca]
+         ctestno {dfv=of} edx, ecx
+# CHECK: ctestno {dfv=of} r15, r9
+# CHECK: encoding: [0x62,0x54,0xc4,0x01,0x85,0xcf]
+         ctestno {dfv=of} r15, r9
+# CHECK: ctestns {dfv=of} byte ptr [r8 + 4*rax + 123], 123
+# CHECK: encoding: [0x62,0xd4,0x44,0x09,0xf6,0x44,0x80,0x7b,0x7b]
+         ctestns {dfv=of} byte ptr [r8 + 4*rax + 123], 123
+# CHECK: ctestns {dfv=of} word ptr [r8 + 4*rax + 123], 1234
+# CHECK: encoding: [0x62,0xd4,0x45,0x09,0xf7,0x44,0x80,0x7b,0xd2,0x04]
+         ctestns {dfv=of} word ptr [r8 + 4*rax + 123], 1234
+# CHECK: ctestns {dfv=of} qword ptr [r8 + 4*rax + 123], 123456
+# CHECK: encoding: [0x62,0xd4,0xc4,0x09,0xf7,0x44,0x80,0x7b,0x40,0xe2,0x01,0x00]
+         ctestns {dfv=of} qword ptr [r8 + 4*rax + 123], 123456
+# CHECK: ctestns {dfv=of} dword ptr [r8 + 4*rax + 123], 123456
+# CHECK: encoding: [0x62,0xd4,0x44,0x09,0xf7,0x44,0x80,0x7b,0x40,0xe2,0x01,0x00]
+         ctestns {dfv=of} dword ptr [r8 + 4*rax + 123], 123456
+# CHECK: ctestns {dfv=of} byte ptr [r8 + 4*rax + 123], bl
+# CHECK: encoding: [0x62,0xd4,0x44,0x09,0x84,0x5c,0x80,0x7b]
+         ctestns {dfv=of} byte ptr [r8 + 4*rax + 123], bl
+# CHECK: ctestns {dfv=of} word ptr [r8 + 4*rax + 123], dx
+# CHECK: encoding: [0x62,0xd4,0x45,0x09,0x85,0x54,0x80,0x7b]
+         ctestns {dfv=of} word ptr [r8 + 4*rax + 123], dx
+# CHECK: ctestns {dfv=of} dword ptr [r8 + 4*rax + 123], ecx
+# CHECK: encoding: [0x62,0xd4,0x44,0x09,0x85,0x4c,0x80,0x7b]
+         ctestns {dfv=of} dword ptr [r8 + 4*rax + 123], ecx
+# CHECK: ctestns {dfv=of} qword ptr [r8 + 4*rax + 123], r9
+# CHECK: encoding: [0x62,0x54,0xc4,0x09,0x85,0x4c,0x80,0x7b]
+         ctestns {dfv=of} qword ptr [r8 + 4*rax + 123], r9
+# CHECK: ctestns {dfv=of} bl, 123
+# CHECK: encoding: [0x62,0xf4,0x44,0x09,0xf6,0xc3,0x7b]
+         ctestns {dfv=of} bl, 123
+# CHECK: ctestns {dfv=of} dx, 1234
+# CHECK: encoding: [0x62,0xf4,0x45,0x09,0xf7,0xc2,0xd2,0x04]
+         ctestns {dfv=of} dx, 1234
+# CHECK: ctestns {dfv=of} ecx, 123456
+# CHECK: encoding: [0x62,0xf4,0x44,0x09,0xf7,0xc1,0x40,0xe2,0x01,0x00]
+         ctestns {dfv=of} ecx, 123456
+# CHECK: ctestns {dfv=of} r9, 123456
+# CHECK: encoding: [0x62,0xd4,0xc4,0x09,0xf7,0xc1,0x40,0xe2,0x01,0x00]
+         ctestns {dfv=of} r9, 123456
+# CHECK: ctestns {dfv=of} dl, bl
+# CHECK: encoding: [0x62,0xf4,0x44,0x09,0x84,0xda]
+         ctestns {dfv=of} dl, bl
+# CHECK: ctestns {dfv=of} ax, dx
+# CHECK: encoding: [0x62,0xf4,0x45,0x09,0x85,0xd0]
+         ctestns {dfv=of} ax, dx
+# CHECK: ctestns {dfv=of} edx, ecx
+# CHECK: encoding: [0x62,0xf4,0x44,0x09,0x85,0xca]
+         ctestns {dfv=of} edx, ecx
+# CHECK: ctestns {dfv=of} r15, r9
+# CHECK: encoding: [0x62,0x54,0xc4,0x09,0x85,0xcf]
+         ctestns {dfv=of} r15, r9
+# CHECK: ctestne {dfv=of} byte ptr [r8 + 4*rax + 123], 123
+# CHECK: encoding: [0x62,0xd4,0x44,0x05,0xf6,0x44,0x80,0x7b,0x7b]
+         ctestne {dfv=of} byte ptr [r8 + 4*rax + 123], 123
+# CHECK: ctestne {dfv=of} word ptr [r8 + 4*rax + 123], 1234
+# CHECK: encoding: [0x62,0xd4,0x45,0x05,0xf7,0x44,0x80,0x7b,0xd2,0x04]
+         ctestne {dfv=of} word ptr [r8 + 4*rax + 123], 1234
+# CHECK: ctestne {dfv=of} qword ptr [r8 + 4*rax + 123], 123456
+# CHECK: encoding: [0x62,0xd4,0xc4,0x05,0xf7,0x44,0x80,0x7b,0x40,0xe2,0x01,0x00]
+         ctestne {dfv=of} qword ptr [r8 + 4*rax + 123], 123456
+# CHECK: ctestne {dfv=of} dword ptr [r8 + 4*rax + 123], 123456
+# CHECK: encoding: [0x62,0xd4,0x44,0x05,0xf7,0x44,0x80,0x7b,0x40,0xe2,0x01,0x00]
+         ctestne {dfv=of} dword ptr [r8 + 4*rax + 123], 123456
+# CHECK: ctestne {dfv=of} byte ptr [r8 + 4*rax + 123], bl
+# CHECK: encoding: [0x62,0xd4,0x44,0x05,0x84,0x5c,0x80,0x7b]
+         ctestne {dfv=of} byte ptr [r8 + 4*rax + 123], bl
+# CHECK: ctestne {dfv=of} word ptr [r8 + 4*rax + 123], dx
+# CHECK: encoding: [0x62,0xd4,0x45,0x05,0x85,0x54,0x80,0x7b]
+         ctestne {dfv=of} word ptr [r8 + 4*rax + 123], dx
+# CHECK: ctestne {dfv=of} dword ptr [r8 + 4*rax + 123], ecx
+# CHECK: encoding: [0x62,0xd4,0x44,0x05,0x85,0x4c,0x80,0x7b]
+         ctestne {dfv=of} dword ptr [r8 + 4*rax + 123], ecx
+# CHECK: ctestne {dfv=of} qword ptr [r8 + 4*rax + 123], r9
+# CHECK: encoding: [0x62,0x54,0xc4,0x05,0x85,0x4c,0x80,0x7b]
+         ctestne {dfv=of} qword ptr [r8 + 4*rax + 123], r9
+# CHECK: ctestne {dfv=of} bl, 123
+# CHECK: encoding: [0x62,0xf4,0x44,0x05,0xf6,0xc3,0x7b]
+         ctestne {dfv=of} bl, 123
+# CHECK: ctestne {dfv=of} dx, 1234
+# CHECK: encoding: [0x62,0xf4,0x45,0x05,0xf7,0xc2,0xd2,0x04]
+         ctestne {dfv=of} dx, 1234
+# CHECK: ctestne {dfv=of} ecx, 123456
+# CHECK: encoding: [0x62,0xf4,0x44,0x05,0xf7,0xc1,0x40,0xe2,0x01,0x00]
+         ctestne {dfv=of} ecx, 123456
+# CHECK: ctestne {dfv=of} r9, 123456
+# CHECK: encoding: [0x62,0xd4,0xc4,0x05,0xf7,0xc1,0x40,0xe2,0x01,0x00]
+         ctestne {dfv=of} r9, 123456
+# CHECK: ctestne {dfv=of} dl, bl
+# CHECK: encoding: [0x62,0xf4,0x44,0x05,0x84,0xda]
+         ctestne {dfv=of} dl, bl
+# CHECK: ctestne {dfv=of} ax, dx
+# CHECK: encoding: [0x62,0xf4,0x45,0x05,0x85,0xd0]
+         ctestne {dfv=of} ax, dx
+# CHECK: ctestne {dfv=of} edx, ecx
+# CHECK: encoding: [0x62,0xf4,0x44,0x05,0x85,0xca]
+         ctestne {dfv=of} edx, ecx
+# CHECK: ctestne {dfv=of} r15, r9
+# CHECK: encoding: [0x62,0x54,0xc4,0x05,0x85,0xcf]
+         ctestne {dfv=of} r15, r9
+# CHECK: ctesto {dfv=of} byte ptr [r8 + 4*rax + 123], 123
+# CHECK: encoding: [0x62,0xd4,0x44,0x00,0xf6,0x44,0x80,0x7b,0x7b]
+         ctesto {dfv=of} byte ptr [r8 + 4*rax + 123], 123
+# CHECK: ctesto {dfv=of} word ptr [r8 + 4*rax + 123], 1234
+# CHECK: encoding: [0x62,0xd4,0x45,0x00,0xf7,0x44,0x80,0x7b,0xd2,0x04]
+         ctesto {dfv=of} word ptr [r8 + 4*rax + 123], 1234
+# CHECK: ctesto {dfv=of} qword ptr [r8 + 4*rax + 123], 123456
+# CHECK: encoding: [0x62,0xd4,0xc4,0x00,0xf7,0x44,0x80,0x7b,0x40,0xe2,0x01,0x00]
+         ctesto {dfv=of} qword ptr [r8 + 4*rax + 123], 123456
+# CHECK: ctesto {dfv=of} dword ptr [r8 + 4*rax + 123], 123456
+# CHECK: encoding: [0x62,0xd4,0x44,0x00,0xf7,0x44,0x80,0x7b,0x40,0xe2,0x01,0x00]
+         ctesto {dfv=of} dword ptr [r8 + 4*rax + 123], 123456
+# CHECK: ctesto {dfv=of} byte ptr [r8 + 4*rax + 123], bl
+# CHECK: encoding: [0x62,0xd4,0x44,0x00,0x84,0x5c,0x80,0x7b]
+         ctesto {dfv=of} byte ptr [r8 + 4*rax + 123], bl
+# CHECK: ctesto {dfv=of} word ptr [r8 + 4*rax + 123], dx
+# CHECK: encoding: [0x62,0xd4,0x45,0x00,0x85,0x54,0x80,0x7b]
+         ctesto {dfv=of} word ptr [r8 + 4*rax + 123], dx
+# CHECK: ctesto {dfv=of} dword ptr [r8 + 4*rax + 123], ecx
+# CHECK: encoding: [0x62,0xd4,0x44,0x00,0x85,0x4c,0x80,0x7b]
+         ctesto {dfv=of} dword ptr [r8 + 4*rax + 123], ecx
+# CHECK: ctesto {dfv=of} qword ptr [r8 + 4*rax + 123], r9
+# CHECK: encoding: [0x62,0x54,0xc4,0x00,0x85,0x4c,0x80,0x7b]
+         ctesto {dfv=of} qword ptr [r8 + 4*rax + 123], r9
+# CHECK: ctesto {dfv=of} bl, 123
+# CHECK: encoding: [0x62,0xf4,0x44,0x00,0xf6,0xc3,0x7b]
+         ctesto {dfv=of} bl, 123
+# CHECK: ctesto {dfv=of} dx, 1234
+# CHECK: encoding: [0x62,0xf4,0x45,0x00,0xf7,0xc2,0xd2,0x04]
+         ctesto {dfv=of} dx, 1234
+# CHECK: ctesto {dfv=of} ecx, 123456
+# CHECK: encoding: [0x62,0xf4,0x44,0x00,0xf7,0xc1,0x40,0xe2,0x01,0x00]
+         ctesto {dfv=of} ecx, 123456
+# CHECK: ctesto {dfv=of} r9, 123456
+# CHECK: encoding: [0x62,0xd4,0xc4,0x00,0xf7,0xc1,0x40,0xe2,0x01,0x00]
+         ctesto {dfv=of} r9, 123456
+# CHECK: ctesto {dfv=of} dl, bl
+# CHECK: encoding: [0x62,0xf4,0x44,0x00,0x84,0xda]
+         ctesto {dfv=of} dl, bl
+# CHECK: ctesto {dfv=of} ax, dx
+# CHECK: encoding: [0x62,0xf4,0x45,0x00,0x85,0xd0]
+         ctesto {dfv=of} ax, dx
+# CHECK: ctesto {dfv=of} edx, ecx
+# CHECK: encoding: [0x62,0xf4,0x44,0x00,0x85,0xca]
+         ctesto {dfv=of} edx, ecx
+# CHECK: ctesto {dfv=of} r15, r9
+# CHECK: encoding: [0x62,0x54,0xc4,0x00,0x85,0xcf]
+         ctesto {dfv=of} r15, r9
+# CHECK: ctests {dfv=of} byte ptr [r8 + 4*rax + 123], 123
+# CHECK: encoding: [0x62,0xd4,0x44,0x08,0xf6,0x44,0x80,0x7b,0x7b]
+         ctests {dfv=of} byte ptr [r8 + 4*rax + 123], 123
+# CHECK: ctests {dfv=of} word ptr [r8 + 4*rax + 123], 1234
+# CHECK: encoding: [0x62,0xd4,0x45,0x08,0xf7,0x44,0x80,0x7b,0xd2,0x04]
+         ctests {dfv=of} word ptr [r8 + 4*rax + 123], 1234
+# CHECK: ctests {dfv=of} qword ptr [r8 + 4*rax + 123], 123456
+# CHECK: encoding: [0x62,0xd4,0xc4,0x08,0xf7,0x44,0x80,0x7b,0x40,0xe2,0x01,0x00]
+         ctests {dfv=of} qword ptr [r8 + 4*rax + 123], 123456
+# CHECK: ctests {dfv=of} dword ptr [r8 + 4*rax + 123], 123456
+# CHECK: encoding: [0x62,0xd4,0x44,0x08,0xf7,0x44,0x80,0x7b,0x40,0xe2,0x01,0x00]
+         ctests {dfv=of} dword ptr [r8 + 4*rax + 123], 123456
+# CHECK: ctests {dfv=of} byte ptr [r8 + 4*rax + 123], bl
+# CHECK: encoding: [0x62,0xd4,0x44,0x08,0x84,0x5c,0x80,0x7b]
+         ctests {dfv=of} byte ptr [r8 + 4*rax + 123], bl
+# CHECK: ctests {dfv=of} word ptr [r8 + 4*rax + 123], dx
+# CHECK: encoding: [0x62,0xd4,0x45,0x08,0x85,0x54,0x80,0x7b]
+         ctests {dfv=of} word ptr [r8 + 4*rax + 123], dx
+# CHECK: ctests {dfv=of} dword ptr [r8 + 4*rax + 123], ecx
+# CHECK: encoding: [0x62,0xd4,0x44,0x08,0x85,0x4c,0x80,0x7b]
+         ctests {dfv=of} dword ptr [r8 + 4*rax + 123], ecx
+# CHECK: ctests {dfv=of} qword ptr [r8 + 4*rax + 123], r9
+# CHECK: encoding: [0x62,0x54,0xc4,0x08,0x85,0x4c,0x80,0x7b]
+         ctests {dfv=of} qword ptr [r8 + 4*rax + 123], r9
+# CHECK: ctests {dfv=of} bl, 123
+# CHECK: encoding: [0x62,0xf4,0x44,0x08,0xf6,0xc3,0x7b]
+         ctests {dfv=of} bl, 123
+# CHECK: ctests {dfv=of} dx, 1234
+# CHECK: encoding: [0x62,0xf4,0x45,0x08,0xf7,0xc2,0xd2,0x04]
+         ctests {dfv=of} dx, 1234
+# CHECK: ctests {dfv=of} ecx, 123456
+# CHECK: encoding: [0x62,0xf4,0x44,0x08,0xf7,0xc1,0x40,0xe2,0x01,0x00]
+         ctests {dfv=of} ecx, 123456
+# CHECK: ctests {dfv=of} r9, 123456
+# CHECK: encoding: [0x62,0xd4,0xc4,0x08,0xf7,0xc1,0x40,0xe2,0x01,0x00]
+         ctests {dfv=of} r9, 123456
+# CHECK: ctests {dfv=of} dl, bl
+# CHECK: encoding: [0x62,0xf4,0x44,0x08,0x84,0xda]
+         ctests {dfv=of} dl, bl
+# CHECK: ctests {dfv=of} ax, dx
+# CHECK: encoding: [0x62,0xf4,0x45,0x08,0x85,0xd0]
+         ctests {dfv=of} ax, dx
+# CHECK: ctests {dfv=of} edx, ecx
+# CHECK: encoding: [0x62,0xf4,0x44,0x08,0x85,0xca]
+         ctests {dfv=of} edx, ecx
+# CHECK: ctests {dfv=of} r15, r9
+# CHECK: encoding: [0x62,0x54,0xc4,0x08,0x85,0xcf]
+         ctests {dfv=of} r15, r9
+# CHECK: ctestt {dfv=of} byte ptr [r8 + 4*rax + 123], 123
+# CHECK: encoding: [0x62,0xd4,0x44,0x0a,0xf6,0x44,0x80,0x7b,0x7b]
+         ctestt {dfv=of} byte ptr [r8 + 4*rax + 123], 123
+# CHECK: ctestt {dfv=of} word ptr [r8 + 4*rax + 123], 1234
+# CHECK: encoding: [0x62,0xd4,0x45,0x0a,0xf7,0x44,0x80,0x7b,0xd2,0x04]
+         ctestt {dfv=of} word ptr [r8 + 4*rax + 123], 1234
+# CHECK: ctestt {dfv=of} qword ptr [r8 + 4*rax + 123], 123456
+# CHECK: encoding: [0x62,0xd4,0xc4,0x0a,0xf7,0x44,0x80,0x7b,0x40,0xe2,0x01,0x00]
+         ctestt {dfv=of} qword ptr [r8 + 4*rax + 123], 123456
+# CHECK: ctestt {dfv=of} dword ptr [r8 + 4*rax + 123], 123456
+# CHECK: encoding: [0x62,0xd4,0x44,0x0a,0xf7,0x44,0x80,0x7b,0x40,0xe2,0x01,0x00]
+         ctestt {dfv=of} dword ptr [r8 + 4*rax + 123], 123456
+# CHECK: ctestt {dfv=of} byte ptr [r8 + 4*rax + 123], bl
+# CHECK: encoding: [0x62,0xd4,0x44,0x0a,0x84,0x5c,0x80,0x7b]
+         ctestt {dfv=of} byte ptr [r8 + 4*rax + 123], bl
+# CHECK: ctestt {dfv=of} word ptr [r8 + 4*rax + 123], dx
+# CHECK: encoding: [0x62,0xd4,0x45,0x0a,0x85,0x54,0x80,0x7b]
+         ctestt {dfv=of} word ptr [r8 + 4*rax + 123], dx
+# CHECK: ctestt {dfv=of} dword ptr [r8 + 4*rax + 123], ecx
+# CHECK: encoding: [0x62,0xd4,0x44,0x0a,0x85,0x4c,0x80,0x7b]
+         ctestt {dfv=of} dword ptr [r8 + 4*rax + 123], ecx
+# CHECK: ctestt {dfv=of} qword ptr [r8 + 4*rax + 123], r9
+# CHECK: encoding: [0x62,0x54,0xc4,0x0a,0x85,0x4c,0x80,0x7b]
+         ctestt {dfv=of} qword ptr [r8 + 4*rax + 123], r9
+# CHECK: ctestt {dfv=of} bl, 123
+# CHECK: encoding: [0x62,0xf4,0x44,0x0a,0xf6,0xc3,0x7b]
+         ctestt {dfv=of} bl, 123
+# CHECK: ctestt {dfv=of} dx, 1234
+# CHECK: encoding: [0x62,0xf4,0x45,0x0a,0xf7,0xc2,0xd2,0x04]
+         ctestt {dfv=of} dx, 1234
+# CHECK: ctestt {dfv=of} ecx, 123456
+# CHECK: encoding: [0x62,0xf4,0x44,0x0a,0xf7,0xc1,0x40,0xe2,0x01,0x00]
+         ctestt {dfv=of} ecx, 123456
+# CHECK: ctestt {dfv=of} r9, 123456
+# CHECK: encoding: [0x62,0xd4,0xc4,0x0a,0xf7,0xc1,0x40,0xe2,0x01,0x00]
+         ctestt {dfv=of} r9, 123456
+# CHECK: ctestt {dfv=of} dl, bl
+# CHECK: encoding: [0x62,0xf4,0x44,0x0a,0x84,0xda]
+         ctestt {dfv=of} dl, bl
+# CHECK: ctestt {dfv=of} ax, dx
+# CHECK: encoding: [0x62,0xf4,0x45,0x0a,0x85,0xd0]
+         ctestt {dfv=of} ax, dx
+# CHECK: ctestt {dfv=of} edx, ecx
+# CHECK: encoding: [0x62,0xf4,0x44,0x0a,0x85,0xca]
+         ctestt {dfv=of} edx, ecx
+# CHECK: ctestt {dfv=of} r15, r9
+# CHECK: encoding: [0x62,0x54,0xc4,0x0a,0x85,0xcf]
+         ctestt {dfv=of} r15, r9
+# CHECK: cteste {dfv=of} byte ptr [r8 + 4*rax + 123], 123
+# CHECK: encoding: [0x62,0xd4,0x44,0x04,0xf6,0x44,0x80,0x7b,0x7b]
+         cteste {dfv=of} byte ptr [r8 + 4*rax + 123], 123
+# CHECK: cteste {dfv=of} word ptr [r8 + 4*rax + 123], 1234
+# CHECK: encoding: [0x62,0xd4,0x45,0x04,0xf7,0x44,0x80,0x7b,0xd2,0x04]
+         cteste {dfv=of} word ptr [r8 + 4*rax + 123], 1234
+# CHECK: cteste {dfv=of} qword ptr [r8 + 4*rax + 123], 123456
+# CHECK: encoding: [0x62,0xd4,0xc4,0x04,0xf7,0x44,0x80,0x7b,0x40,0xe2,0x01,0x00]
+         cteste {dfv=of} qword ptr [r8 + 4*rax + 123], 123456
+# CHECK: cteste {dfv=of} dword ptr [r8 + 4*rax + 123], 123456
+# CHECK: encoding: [0x62,0xd4,0x44,0x04,0xf7,0x44,0x80,0x7b,0x40,0xe2,0x01,0x00]
+         cteste {dfv=of} dword ptr [r8 + 4*rax + 123], 123456
+# CHECK: cteste {dfv=of} byte ptr [r8 + 4*rax + 123], bl
+# CHECK: encoding: [0x62,0xd4,0x44,0x04,0x84,0x5c,0x80,0x7b]
+         cteste {dfv=of} byte ptr [r8 + 4*rax + 123], bl
+# CHECK: cteste {dfv=of} word ptr [r8 + 4*rax + 123], dx
+# CHECK: encoding: [0x62,0xd4,0x45,0x04,0x85,0x54,0x80,0x7b]
+         cteste {dfv=of} word ptr [r8 + 4*rax + 123], dx
+# CHECK: cteste {dfv=of} dword ptr [r8 + 4*rax + 123], ecx
+# CHECK: encoding: [0x62,0xd4,0x44,0x04,0x85,0x4c,0x80,0x7b]
+         cteste {dfv=of} dword ptr [r8 + 4*rax + 123], ecx
+# CHECK: cteste {dfv=of} qword ptr [r8 + 4*rax + 123], r9
+# CHECK: encoding: [0x62,0x54,0xc4,0x04,0x85,0x4c,0x80,0x7b]
+         cteste {dfv=of} qword ptr [r8 + 4*rax + 123], r9
+# CHECK: cteste {dfv=of} bl, 123
+# CHECK: encoding: [0x62,0xf4,0x44,0x04,0xf6,0xc3,0x7b]
+         cteste {dfv=of} bl, 123
+# CHECK: cteste {dfv=of} dx, 1234
+# CHECK: encoding: [0x62,0xf4,0x45,0x04,0xf7,0xc2,0xd2,0x04]
+         cteste {dfv=of} dx, 1234
+# CHECK: cteste {dfv=of} ecx, 123456
+# CHECK: encoding: [0x62,0xf4,0x44,0x04,0xf7,0xc1,0x40,0xe2,0x01,0x00]
+         cteste {dfv=of} ecx, 123456
+# CHECK: cteste {dfv=of} r9, 123456
+# CHECK: encoding: [0x62,0xd4,0xc4,0x04,0xf7,0xc1,0x40,0xe2,0x01,0x00]
+         cteste {dfv=of} r9, 123456
+# CHECK: cteste {dfv=of} dl, bl
+# CHECK: encoding: [0x62,0xf4,0x44,0x04,0x84,0xda]
+         cteste {dfv=of} dl, bl
+# CHECK: cteste {dfv=of} ax, dx
+# CHECK: encoding: [0x62,0xf4,0x45,0x04,0x85,0xd0]
+         cteste {dfv=of} ax, dx
+# CHECK: cteste {dfv=of} edx, ecx
+# CHECK: encoding: [0x62,0xf4,0x44,0x04,0x85,0xca]
+         cteste {dfv=of} edx, ecx
+# CHECK: cteste {dfv=of} r15, r9
+# CHECK: encoding: [0x62,0x54,0xc4,0x04,0x85,0xcf]
+         cteste {dfv=of} r15, r9


        


More information about the llvm-commits mailing list