# 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} byte ptr [r8 + 4*rax + 123], bl
# CHECK: encoding: [0x62,0xd4,0x44,0x02,0x84,0x5c,0x80,0x7b]
         ctestb {dfv=of} bl, byte ptr [r8 + 4*rax + 123]
# CHECK: ctestb {dfv=of} word ptr [r8 + 4*rax + 123], dx
# CHECK: encoding: [0x62,0xd4,0x45,0x02,0x85,0x54,0x80,0x7b]
         ctestb {dfv=of} dx, word ptr [r8 + 4*rax + 123]
# CHECK: ctestb {dfv=of} dword ptr [r8 + 4*rax + 123], ecx
# CHECK: encoding: [0x62,0xd4,0x44,0x02,0x85,0x4c,0x80,0x7b]
         ctestb {dfv=of} ecx, dword ptr [r8 + 4*rax + 123]
# CHECK: ctestb {dfv=of} qword ptr [r8 + 4*rax + 123], r9
# CHECK: encoding: [0x62,0x54,0xc4,0x02,0x85,0x4c,0x80,0x7b]
         ctestb {dfv=of} r9, qword ptr [r8 + 4*rax + 123]
# 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

## "{evex} test*" are alias for "ctestt* {dfv=}"

# CHECK: ctestt	{dfv=}	byte ptr [r8 + 4*rax + 123], 123
# CHECK: encoding: [0x62,0xd4,0x04,0x0a,0xf6,0x44,0x80,0x7b,0x7b]
         {evex} test	byte ptr [r8 + 4*rax + 123], 123
# CHECK: ctestt	{dfv=}	word ptr [r8 + 4*rax + 123], 1234
# CHECK: encoding: [0x62,0xd4,0x05,0x0a,0xf7,0x44,0x80,0x7b,0xd2,0x04]
         {evex} test	word ptr [r8 + 4*rax + 123], 1234
# CHECK: ctestt	{dfv=}	dword ptr [r8 + 4*rax + 123], 123456
# CHECK: encoding: [0x62,0xd4,0x04,0x0a,0xf7,0x44,0x80,0x7b,0x40,0xe2,0x01,0x00]
         {evex} test	dword ptr [r8 + 4*rax + 123], 123456
# CHECK: ctestt	{dfv=}	qword ptr [r8 + 4*rax + 123], 123456
# CHECK: encoding: [0x62,0xd4,0x84,0x0a,0xf7,0x44,0x80,0x7b,0x40,0xe2,0x01,0x00]
         {evex} test	qword ptr [r8 + 4*rax + 123], 123456
# CHECK: ctestt	{dfv=}	byte ptr [r8 + 4*rax + 123], bl
# CHECK: encoding: [0x62,0xd4,0x04,0x0a,0x84,0x5c,0x80,0x7b]
         {evex} test	byte ptr [r8 + 4*rax + 123], bl
# CHECK: ctestt	{dfv=}	word ptr [r8 + 4*rax + 123], dx
# CHECK: encoding: [0x62,0xd4,0x05,0x0a,0x85,0x54,0x80,0x7b]
         {evex} test	word ptr [r8 + 4*rax + 123], dx
# CHECK: ctestt	{dfv=}	dword ptr [r8 + 4*rax + 123], ecx
# CHECK: encoding: [0x62,0xd4,0x04,0x0a,0x85,0x4c,0x80,0x7b]
         {evex} test	dword ptr [r8 + 4*rax + 123], ecx
# CHECK: ctestt	{dfv=}	qword ptr [r8 + 4*rax + 123], r9
# CHECK: encoding: [0x62,0x54,0x84,0x0a,0x85,0x4c,0x80,0x7b]
         {evex} test	qword ptr [r8 + 4*rax + 123], r9
# CHECK: ctestt	{dfv=}	bl, 123
# CHECK: encoding: [0x62,0xf4,0x04,0x0a,0xf6,0xc3,0x7b]
         {evex} test	bl, 123
# CHECK: ctestt	{dfv=}	dx, 1234
# CHECK: encoding: [0x62,0xf4,0x05,0x0a,0xf7,0xc2,0xd2,0x04]
         {evex} test	dx, 1234
# CHECK: ctestt	{dfv=}	ecx, 123456
# CHECK: encoding: [0x62,0xf4,0x04,0x0a,0xf7,0xc1,0x40,0xe2,0x01,0x00]
         {evex} test	ecx, 123456
# CHECK: ctestt	{dfv=}	r9, 123456
# CHECK: encoding: [0x62,0xd4,0x84,0x0a,0xf7,0xc1,0x40,0xe2,0x01,0x00]
         {evex} test	r9, 123456
# CHECK: ctestt	{dfv=}	dl, bl
# CHECK: encoding: [0x62,0xf4,0x04,0x0a,0x84,0xda]
         {evex} test	dl, bl
# CHECK: ctestt	{dfv=}	ax, dx
# CHECK: encoding: [0x62,0xf4,0x05,0x0a,0x85,0xd0]
         {evex} test	ax, dx
# CHECK: ctestt	{dfv=}	edx, ecx
# CHECK: encoding: [0x62,0xf4,0x04,0x0a,0x85,0xca]
         {evex} test	edx, ecx
# CHECK: ctestt	{dfv=}	r15, r9
# CHECK: encoding: [0x62,0x54,0x84,0x0a,0x85,0xcf]
         {evex} test	r15, r9

## Condition Code Aliases

# CHECK: ctestb {dfv=of} edx, ecx
# CHECK: encoding: [0x62,0xf4,0x44,0x02,0x85,0xca]
         ctestc {dfv=of} edx, ecx
# CHECK: ctestb {dfv=of} edx, ecx
# CHECK: encoding: [0x62,0xf4,0x44,0x02,0x85,0xca]
         ctestnae {dfv=of} edx, ecx
# CHECK: ctestae {dfv=of} edx, ecx
# CHECK: encoding: [0x62,0xf4,0x44,0x03,0x85,0xca]
         ctestnb {dfv=of} edx, ecx
# CHECK: ctestae {dfv=of} edx, ecx
# CHECK: encoding: [0x62,0xf4,0x44,0x03,0x85,0xca]
         ctestnc {dfv=of} edx, ecx
# CHECK: cteste {dfv=of} edx, ecx
# CHECK: encoding: [0x62,0xf4,0x44,0x04,0x85,0xca]
         ctestz {dfv=of} edx, ecx
# CHECK: ctestne {dfv=of} edx, ecx
# CHECK: encoding: [0x62,0xf4,0x44,0x05,0x85,0xca]
         ctestnz {dfv=of} edx, ecx
# CHECK: ctesta {dfv=of} edx, ecx
# CHECK: encoding: [0x62,0xf4,0x44,0x07,0x85,0xca]
         ctestnbe {dfv=of} edx, ecx
# CHECK: ctestl {dfv=of} edx, ecx
# CHECK: encoding: [0x62,0xf4,0x44,0x0c,0x85,0xca]
         ctestnge {dfv=of} edx, ecx
# CHECK: ctestge {dfv=of} edx, ecx
# CHECK: encoding: [0x62,0xf4,0x44,0x0d,0x85,0xca]
         ctestnl {dfv=of} edx, ecx
# CHECK: ctestle {dfv=of} edx, ecx
# CHECK: encoding: [0x62,0xf4,0x44,0x0e,0x85,0xca]
         ctestng {dfv=of} edx, ecx
# CHECK: ctestg {dfv=of} edx, ecx
# CHECK: encoding: [0x62,0xf4,0x44,0x0f,0x85,0xca]
         ctestnle {dfv=of} edx, ecx
# CHECK: ctestbe {dfv=of} edx, ecx
# CHECK: encoding: [0x62,0xf4,0x44,0x06,0x85,0xca]
         ctestna {dfv=of} edx, ecx
