[llvm] [X86][MC] Support encoding/decoding for APX CCMP/CTEST (PR #83863)
Shengchen Kan via llvm-commits
llvm-commits at lists.llvm.org
Tue Mar 5 18:10:52 PST 2024
https://github.com/KanRobert updated https://github.com/llvm/llvm-project/pull/83863
>From 8fa96be4df3a53cdb4813573078604737da6b667 Mon Sep 17 00:00:00 2001
From: Shengchen Kan <shengchen.kan at intel.com>
Date: Mon, 4 Mar 2024 15:16:04 +0800
Subject: [PATCH 1/9] [X86][MC] Support encoding/decoding for APX CCMP/CTEST
APX assembly syntax recommendations:
https://cdrdv2.intel.com/v1/dl/getContent/817241
---
.../Support/X86DisassemblerDecoderCommon.h | 1 +
.../lib/Target/X86/AsmParser/X86AsmParser.cpp | 58 +
.../X86/Disassembler/X86Disassembler.cpp | 33 +-
.../X86/Disassembler/X86DisassemblerDecoder.h | 9 +-
.../lib/Target/X86/MCTargetDesc/X86BaseInfo.h | 5 +-
.../X86/MCTargetDesc/X86InstPrinterCommon.cpp | 29 +-
.../X86/MCTargetDesc/X86InstPrinterCommon.h | 1 +
.../X86/MCTargetDesc/X86MCCodeEmitter.cpp | 51 +-
llvm/lib/Target/X86/X86InstrAsmAlias.td | 128 ++
.../Target/X86/X86InstrConditionalCompare.td | 110 ++
llvm/lib/Target/X86/X86InstrFormats.td | 2 +
llvm/lib/Target/X86/X86InstrInfo.td | 1 +
llvm/lib/Target/X86/X86InstrOperands.td | 6 +
llvm/test/MC/Disassembler/X86/apx/ccmp.txt | 1598 +++++++++++++++++
llvm/test/MC/X86/apx/ccmp-att-error.s | 26 +
llvm/test/MC/X86/apx/ccmp-att.s | 1213 +++++++++++++
llvm/test/MC/X86/apx/ccmp-intel-error.s | 26 +
llvm/test/MC/X86/apx/ccmp-intel.s | 1210 +++++++++++++
llvm/utils/TableGen/X86RecognizableInstr.cpp | 11 +
llvm/utils/TableGen/X86RecognizableInstr.h | 2 +
20 files changed, 4505 insertions(+), 15 deletions(-)
create mode 100644 llvm/lib/Target/X86/X86InstrConditionalCompare.td
create mode 100644 llvm/test/MC/Disassembler/X86/apx/ccmp.txt
create mode 100644 llvm/test/MC/X86/apx/ccmp-att-error.s
create mode 100644 llvm/test/MC/X86/apx/ccmp-att.s
create mode 100644 llvm/test/MC/X86/apx/ccmp-intel-error.s
create mode 100644 llvm/test/MC/X86/apx/ccmp-intel.s
diff --git a/llvm/include/llvm/Support/X86DisassemblerDecoderCommon.h b/llvm/include/llvm/Support/X86DisassemblerDecoderCommon.h
index 0dc974ea9efd8d..5daae45df2f830 100644
--- a/llvm/include/llvm/Support/X86DisassemblerDecoderCommon.h
+++ b/llvm/include/llvm/Support/X86DisassemblerDecoderCommon.h
@@ -434,6 +434,7 @@ enum ModRMDecisionType { MODRMTYPES MODRM_max };
ENUM_ENTRY(ENCODING_Rv, \
"Register code of operand size added to the opcode byte") \
ENUM_ENTRY(ENCODING_CC, "Condition code encoded in opcode") \
+ ENUM_ENTRY(ENCODING_CF, "Condition flags encoded in EVEX.VVVV") \
ENUM_ENTRY(ENCODING_DUP, \
"Duplicate of another operand; ID is encoded in type") \
ENUM_ENTRY(ENCODING_SI, "Source index; encoded in OpSize/Adsize prefix") \
diff --git a/llvm/lib/Target/X86/AsmParser/X86AsmParser.cpp b/llvm/lib/Target/X86/AsmParser/X86AsmParser.cpp
index 051f6caa8c047f..5735ba8396b332 100644
--- a/llvm/lib/Target/X86/AsmParser/X86AsmParser.cpp
+++ b/llvm/lib/Target/X86/AsmParser/X86AsmParser.cpp
@@ -1122,6 +1122,7 @@ class X86AsmParser : public MCTargetAsmParser {
unsigned IdentifyMasmOperator(StringRef Name);
bool ParseMasmOperator(unsigned OpKind, int64_t &Val);
bool ParseRoundingModeOp(SMLoc Start, OperandVector &Operands);
+ bool parseCFlagsOp(OperandVector &Operands);
bool ParseIntelNamedOperator(StringRef Name, IntelExprStateMachine &SM,
bool &ParseError, SMLoc &End);
bool ParseMasmNamedOperator(StringRef Name, IntelExprStateMachine &SM,
@@ -2306,6 +2307,58 @@ bool X86AsmParser::ParseRoundingModeOp(SMLoc Start, OperandVector &Operands) {
return Error(Tok.getLoc(), "unknown token in expression");
}
+/// Parse condtional flags for CCMP/CTEST, e.g {of,sf,zf,cf} right after
+/// mnemonic.
+bool X86AsmParser::parseCFlagsOp(OperandVector &Operands) {
+ MCAsmParser &Parser = getParser();
+ const AsmToken StartTok = Parser.getTok();
+ const SMLoc Start = StartTok.getLoc();
+ if (!StartTok.is(AsmToken::LCurly))
+ return Error(StartTok.getLoc(), "Expected { at this point");
+ Parser.Lex(); // Eat "{"
+ AsmToken Tok = Parser.getTok();
+ SMLoc End;
+ if (Tok.is(AsmToken::RCurly)) {
+ End = Tok.getEndLoc();
+ Operands.push_back(X86Operand::CreateImm(
+ MCConstantExpr::create(0, Parser.getContext()), Start, End));
+ Parser.Lex(); // Eat "}"
+ return false;
+ }
+ unsigned CFlags = 0;
+ for (unsigned I = 0; I < 4; ++I) {
+ Tok = Parser.getTok();
+ unsigned CFlag = StringSwitch<unsigned>(Tok.getIdentifier())
+ .Case("of", 0x8)
+ .Case("sf", 0x4)
+ .Case("zf", 0x2)
+ .Case("cf", 0x1)
+ .Default(~0U);
+ if (CFlag == ~0U)
+ return Error(Tok.getLoc(), "Invalid conditional flags");
+
+ if (CFlags & CFlag)
+ return Error(Tok.getLoc(), "Duplicated conditional flag");
+ CFlags |= CFlag;
+
+ Parser.Lex(); // Eat one conditional flag
+ Tok = Parser.getTok();
+ if (Tok.is(AsmToken::RCurly)) {
+ End = Tok.getEndLoc();
+ Operands.push_back(X86Operand::CreateImm(
+ MCConstantExpr::create(CFlags, Parser.getContext()), Start, End));
+ Parser.Lex(); // Eat "}"
+ return false;
+ } else if (I == 3) {
+ return Error(Tok.getLoc(), "Expected } at this point");
+ } else if (Tok.isNot(AsmToken::Comma)) {
+ return Error(Tok.getLoc(), "Expected } or , at this point");
+ }
+ Parser.Lex(); // Eat ","
+ }
+ llvm_unreachable("Unexpected control flow");
+}
+
/// Parse the '.' operator.
bool X86AsmParser::ParseIntelDotOperator(IntelExprStateMachine &SM,
SMLoc &End) {
@@ -3461,6 +3514,11 @@ bool X86AsmParser::ParseInstruction(ParseInstructionInfo &Info, StringRef Name,
Operands.push_back(X86Operand::CreateImm(ImmOp, NameLoc, NameLoc));
}
+ // Parse condtional flags after mnemonic.
+ if ((Name.starts_with("ccmp") || Name.starts_with("ctest")) &&
+ parseCFlagsOp(Operands))
+ return true;
+
// This does the actual operand parsing. Don't parse any more if we have a
// prefix juxtaposed with an operation like "lock incl 4(%rax)", because we
// just want to parse the "lock" as the first instruction and the "incl" as
diff --git a/llvm/lib/Target/X86/Disassembler/X86Disassembler.cpp b/llvm/lib/Target/X86/Disassembler/X86Disassembler.cpp
index dbc2cef39d8682..f8546bfc4df4ad 100644
--- a/llvm/lib/Target/X86/Disassembler/X86Disassembler.cpp
+++ b/llvm/lib/Target/X86/Disassembler/X86Disassembler.cpp
@@ -1141,6 +1141,15 @@ static int getInstructionIDWithAttrMask(uint16_t *instructionID,
return 0;
}
+static bool isCCMPOrCTEST(InternalInstruction *insn) {
+ return (insn->opcodeType == MAP4) &&
+ (((insn->opcode & 0xfe) == 0x38) || ((insn->opcode & 0xfe) == 0x3a) ||
+ (((insn->opcode & 0xfe) == 0x80 || insn->opcode == 0x83) &&
+ regFromModRM(insn->modRM) == 7) ||
+ (insn->opcode & 0xfe) == 0x84 ||
+ ((insn->opcode & 0xfe) == 0xf6 && regFromModRM(insn->modRM) == 0));
+}
+
static bool isNF(InternalInstruction *insn) {
if (!nfFromEVEX4of4(insn->vectorExtensionPrefix[3]))
return false;
@@ -1197,9 +1206,12 @@ static int getInstructionID(struct InternalInstruction *insn,
attrMask |= ATTR_EVEXKZ;
if (bFromEVEX4of4(insn->vectorExtensionPrefix[3]))
attrMask |= ATTR_EVEXB;
- if (isNF(insn)) // NF bit is the MSB of aaa.
+ if (isNF(insn) && !readModRM(insn) &&
+ !isCCMPOrCTEST(insn)) // NF bit is the MSB of aaa.
attrMask |= ATTR_EVEXNF;
- else if (aaaFromEVEX4of4(insn->vectorExtensionPrefix[3]))
+ // aaa is not used a opmask in MAP4
+ else if (aaaFromEVEX4of4(insn->vectorExtensionPrefix[3]) &&
+ (insn->opcodeType != MAP4))
attrMask |= ATTR_EVEXK;
if (lFromEVEX4of4(insn->vectorExtensionPrefix[3]))
attrMask |= ATTR_VEXL;
@@ -1732,8 +1744,15 @@ static int readOperands(struct InternalInstruction *insn) {
if (readOpcodeRegister(insn, 0))
return -1;
break;
+ case ENCODING_CF:
+ insn->immediates[1] = oszcFromEVEX3of4(insn->vectorExtensionPrefix[2]);
+ needVVVV = false; // oszc shares the same bits with VVVV
+ break;
case ENCODING_CC:
- insn->immediates[1] = insn->opcode & 0xf;
+ if (isCCMPOrCTEST(insn))
+ insn->immediates[2] = scFromEVEX4of4(insn->vectorExtensionPrefix[3]);
+ else
+ insn->immediates[1] = insn->opcode & 0xf;
break;
case ENCODING_FP:
break;
@@ -2371,9 +2390,15 @@ static bool translateOperand(MCInst &mcInst, const OperandSpecifier &operand,
case ENCODING_Rv:
translateRegister(mcInst, insn.opcodeRegister);
return false;
- case ENCODING_CC:
+ case ENCODING_CF:
mcInst.addOperand(MCOperand::createImm(insn.immediates[1]));
return false;
+ case ENCODING_CC:
+ if (isCCMPOrCTEST(&insn))
+ mcInst.addOperand(MCOperand::createImm(insn.immediates[2]));
+ else
+ mcInst.addOperand(MCOperand::createImm(insn.immediates[1]));
+ return false;
case ENCODING_FP:
translateFPRegister(mcInst, insn.modRM & 7);
return false;
diff --git a/llvm/lib/Target/X86/Disassembler/X86DisassemblerDecoder.h b/llvm/lib/Target/X86/Disassembler/X86DisassemblerDecoder.h
index 9cae0f02926fce..42e4de4ee682a4 100644
--- a/llvm/lib/Target/X86/Disassembler/X86DisassemblerDecoder.h
+++ b/llvm/lib/Target/X86/Disassembler/X86DisassemblerDecoder.h
@@ -33,6 +33,8 @@ namespace X86Disassembler {
#define twoBitsFromOffset6(val) (((val) >> 6) & 0x3)
#define threeBitsFromOffset0(val) ((val) & 0x7)
#define threeBitsFromOffset3(val) (((val) >> 3) & 0x7)
+#define fourBitsFromOffset0(val) ((val) & 0xf)
+#define fourBitsFromOffset3(val) (((val) >> 3) & 0xf)
#define fiveBitsFromOffset0(val) ((val) & 0x1f)
#define invertedBitFromOffset2(val) (((~(val)) >> 2) & 0x1)
#define invertedBitFromOffset3(val) (((~(val)) >> 3) & 0x1)
@@ -97,6 +99,7 @@ namespace X86Disassembler {
#define vvvvFromEVEX3of4(evex) invertedFourBitsFromOffset3(evex)
#define x2FromEVEX3of4(evex) invertedBitFromOffset2(evex)
#define ppFromEVEX3of4(evex) twoBitsFromOffset0(evex)
+#define oszcFromEVEX3of4(evex) fourBitsFromOffset3(evex)
#define zFromEVEX4of4(evex) bitFromOffset7(evex)
#define l2FromEVEX4of4(evex) bitFromOffset6(evex)
#define lFromEVEX4of4(evex) bitFromOffset5(evex)
@@ -104,6 +107,8 @@ namespace X86Disassembler {
#define v2FromEVEX4of4(evex) invertedBitFromOffset3(evex)
#define aaaFromEVEX4of4(evex) threeBitsFromOffset0(evex)
#define nfFromEVEX4of4(evex) bitFromOffset2(evex)
+#define oszcFromEVEX3of4(evex) fourBitsFromOffset3(evex)
+#define scFromEVEX4of4(evex) fourBitsFromOffset0(evex)
// These enums represent Intel registers for use by the decoder.
#define REGS_8BIT \
@@ -755,10 +760,10 @@ struct InternalInstruction {
// The displacement, used for memory operands
int32_t displacement;
- // Immediates. There can be two in some cases
+ // Immediates. There can be three in some cases
uint8_t numImmediatesConsumed;
uint8_t numImmediatesTranslated;
- uint64_t immediates[2];
+ uint64_t immediates[3];
// A register or immediate operand encoded into the opcode
Reg opcodeRegister;
diff --git a/llvm/lib/Target/X86/MCTargetDesc/X86BaseInfo.h b/llvm/lib/Target/X86/MCTargetDesc/X86BaseInfo.h
index 28a067d525e010..65b8ebc0b9b994 100644
--- a/llvm/lib/Target/X86/MCTargetDesc/X86BaseInfo.h
+++ b/llvm/lib/Target/X86/MCTargetDesc/X86BaseInfo.h
@@ -875,7 +875,10 @@ enum : uint64_t {
ExplicitOpPrefixMask = 3ULL << ExplicitOpPrefixShift,
/// EVEX_NF - Set if this instruction has EVEX.NF field set.
EVEX_NFShift = ExplicitOpPrefixShift + 2,
- EVEX_NF = 1ULL << EVEX_NFShift
+ EVEX_NF = 1ULL << EVEX_NFShift,
+ // TwoConditionalOps - Set if this instruction has two conditional operands
+ TwoConditionalOps_Shift = EVEX_NFShift + 1,
+ TwoConditionalOps = 1ULL << TwoConditionalOps_Shift
};
/// \returns true if the instruction with given opcode is a prefix.
diff --git a/llvm/lib/Target/X86/MCTargetDesc/X86InstPrinterCommon.cpp b/llvm/lib/Target/X86/MCTargetDesc/X86InstPrinterCommon.cpp
index 7422a989734653..30ff6e5c6bbbbe 100644
--- a/llvm/lib/Target/X86/MCTargetDesc/X86InstPrinterCommon.cpp
+++ b/llvm/lib/Target/X86/MCTargetDesc/X86InstPrinterCommon.cpp
@@ -29,7 +29,9 @@ using namespace llvm;
void X86InstPrinterCommon::printCondCode(const MCInst *MI, unsigned Op,
raw_ostream &O) {
int64_t Imm = MI->getOperand(Op).getImm();
- bool IsCMPCCXADD = X86::isCMPCCXADD(MI->getOpcode());
+ unsigned Opc = MI->getOpcode();
+ bool IsCMPCCXADD = X86::isCMPCCXADD(Opc);
+ bool IsCCMPOrCTEST = X86::isCCMPCC(Opc) || X86::isCTESTCC(Opc);
// clang-format off
switch (Imm) {
@@ -44,8 +46,8 @@ void X86InstPrinterCommon::printCondCode(const MCInst *MI, unsigned Op,
case 7: O << (IsCMPCCXADD ? "nbe" : "a"); break;
case 8: O << "s"; break;
case 9: O << "ns"; break;
- case 0xa: O << "p"; break;
- case 0xb: O << "np"; break;
+ case 0xa: O << (IsCCMPOrCTEST ? "t" : "p"); break;
+ case 0xb: O << (IsCCMPOrCTEST ? "f" : "np"); break;
case 0xc: O << "l"; break;
case 0xd: O << (IsCMPCCXADD ? "nl" : "ge"); break;
case 0xe: O << "le"; break;
@@ -54,6 +56,27 @@ void X86InstPrinterCommon::printCondCode(const MCInst *MI, unsigned Op,
// clang-format on
}
+void X86InstPrinterCommon::printCondFlags(const MCInst *MI, unsigned Op,
+ raw_ostream &O) {
+ // +----+----+----+----+
+ // | OF | SF | ZF | CF |
+ // +----+----+----+----+
+ int64_t Imm = MI->getOperand(Op).getImm();
+ assert(Imm >= 0 && Imm < 16 && "Invalid condition flags");
+ O << "{";
+ std::string Flags;
+ if (Imm & 0x8)
+ Flags += "of,";
+ if (Imm & 0x4)
+ Flags += "sf,";
+ if (Imm & 0x2)
+ Flags += "zf,";
+ if (Imm & 0x1)
+ Flags += "cf,";
+ StringRef SimplifiedFlags = StringRef(Flags).rtrim(",");
+ O << SimplifiedFlags << "}";
+}
+
void X86InstPrinterCommon::printSSEAVXCC(const MCInst *MI, unsigned Op,
raw_ostream &O) {
int64_t Imm = MI->getOperand(Op).getImm();
diff --git a/llvm/lib/Target/X86/MCTargetDesc/X86InstPrinterCommon.h b/llvm/lib/Target/X86/MCTargetDesc/X86InstPrinterCommon.h
index 0cb5bf014b209e..221102e17c6538 100644
--- a/llvm/lib/Target/X86/MCTargetDesc/X86InstPrinterCommon.h
+++ b/llvm/lib/Target/X86/MCTargetDesc/X86InstPrinterCommon.h
@@ -24,6 +24,7 @@ class X86InstPrinterCommon : public MCInstPrinter {
virtual void printOperand(const MCInst *MI, unsigned OpNo, raw_ostream &O) = 0;
void printCondCode(const MCInst *MI, unsigned Op, raw_ostream &OS);
+ void printCondFlags(const MCInst *MI, unsigned Op, raw_ostream &OS);
void printSSEAVXCC(const MCInst *MI, unsigned Op, raw_ostream &OS);
void printVPCOMMnemonic(const MCInst *MI, raw_ostream &OS);
void printVPCMPMnemonic(const MCInst *MI, raw_ostream &OS);
diff --git a/llvm/lib/Target/X86/MCTargetDesc/X86MCCodeEmitter.cpp b/llvm/lib/Target/X86/MCTargetDesc/X86MCCodeEmitter.cpp
index 1fa676eeb79b0f..dcd0551b7b7653 100644
--- a/llvm/lib/Target/X86/MCTargetDesc/X86MCCodeEmitter.cpp
+++ b/llvm/lib/Target/X86/MCTargetDesc/X86MCCodeEmitter.cpp
@@ -200,8 +200,12 @@ class X86OpcodePrefixHelper {
void setB(const MCInst &MI, unsigned OpNum) {
B = getRegEncoding(MI, OpNum) >> 3 & 1;
}
- void set4V(const MCInst &MI, unsigned OpNum) {
- set4V(getRegEncoding(MI, OpNum));
+ void set4V(const MCInst &MI, unsigned OpNum, bool IsImm = false) {
+ // OF, SF, ZF and CF reuse VEX_4V bits but are not reversed
+ if (IsImm)
+ set4V(~(MI.getOperand(OpNum).getImm()));
+ else
+ set4V(getRegEncoding(MI, OpNum));
}
void setL(bool V) { VEX_L = V; }
void setPP(unsigned V) { VEX_PP = V; }
@@ -252,6 +256,11 @@ class X86OpcodePrefixHelper {
EVEX_aaa = getRegEncoding(MI, OpNum);
}
void setNF(bool V) { EVEX_aaa |= V << 2; }
+ void setSC(const MCInst &MI, unsigned OpNum) {
+ unsigned Encoding = MI.getOperand(OpNum).getImm();
+ EVEX_V2 = ~(Encoding >> 3) & 0x1;
+ EVEX_aaa = Encoding & 0x7;
+ }
X86OpcodePrefixHelper(const MCRegisterInfo &MRI)
: W(0), R(0), X(0), B(0), M(0), R2(0), X2(0), B2(0), VEX_4V(0), VEX_L(0),
@@ -1045,6 +1054,7 @@ X86MCCodeEmitter::emitVEXOpcodePrefix(int MemOperand, const MCInst &MI,
uint8_t EVEX_rc = 0;
unsigned CurOp = X86II::getOperandBias(Desc);
+ bool HasTwoConditionalOps = TSFlags & X86II::TwoConditionalOps;
switch (TSFlags & X86II::FormMask) {
default:
@@ -1086,6 +1096,10 @@ X86MCCodeEmitter::emitVEXOpcodePrefix(int MemOperand, const MCInst &MI,
Prefix.set4VV2(MI, CurOp++);
Prefix.setRR2(MI, CurOp++);
+ if (HasTwoConditionalOps) {
+ Prefix.set4V(MI, CurOp++, /*IsImm=*/true);
+ Prefix.setSC(MI, CurOp++);
+ }
break;
}
case X86II::MRMSrcMemFSIB:
@@ -1115,7 +1129,11 @@ X86MCCodeEmitter::emitVEXOpcodePrefix(int MemOperand, const MCInst &MI,
Prefix.setBB2(MI, MemOperand + X86::AddrBaseReg);
Prefix.setXX2(MI, MemOperand + X86::AddrIndexReg);
Prefix.setV2(MI, MemOperand + X86::AddrIndexReg, HasVEX_4V);
-
+ CurOp += X86::AddrNumOperands;
+ if (HasTwoConditionalOps) {
+ Prefix.set4V(MI, CurOp++, /*IsImm=*/true);
+ Prefix.setSC(MI, CurOp++);
+ }
break;
}
case X86II::MRMSrcMem4VOp3: {
@@ -1155,7 +1173,11 @@ X86MCCodeEmitter::emitVEXOpcodePrefix(int MemOperand, const MCInst &MI,
Prefix.setBB2(MI, MemOperand + X86::AddrBaseReg);
Prefix.setXX2(MI, MemOperand + X86::AddrIndexReg);
Prefix.setV2(MI, MemOperand + X86::AddrIndexReg, HasVEX_4V);
-
+ CurOp += X86::AddrNumOperands + 1; // Skip first imm.
+ if (HasTwoConditionalOps) {
+ Prefix.set4V(MI, CurOp++, /*IsImm=*/true);
+ Prefix.setSC(MI, CurOp++);
+ }
break;
}
case X86II::MRMSrcReg: {
@@ -1183,6 +1205,11 @@ X86MCCodeEmitter::emitVEXOpcodePrefix(int MemOperand, const MCInst &MI,
Prefix.setX(MI, CurOp, 4);
++CurOp;
+ if (HasTwoConditionalOps) {
+ Prefix.set4V(MI, CurOp++, /*IsImm=*/true);
+ Prefix.setSC(MI, CurOp++);
+ }
+
if (TSFlags & X86II::EVEX_B) {
if (HasEVEX_RC) {
unsigned NumOps = Desc.getNumOperands();
@@ -1236,6 +1263,10 @@ X86MCCodeEmitter::emitVEXOpcodePrefix(int MemOperand, const MCInst &MI,
Prefix.set4VV2(MI, CurOp++);
Prefix.setRR2(MI, CurOp++);
+ if (HasTwoConditionalOps) {
+ Prefix.set4V(MI, CurOp++, /*IsImm=*/true);
+ Prefix.setSC(MI, CurOp++);
+ }
if (TSFlags & X86II::EVEX_B)
EncodeRC = true;
break;
@@ -1266,6 +1297,10 @@ X86MCCodeEmitter::emitVEXOpcodePrefix(int MemOperand, const MCInst &MI,
Prefix.setBB2(MI, CurOp);
Prefix.setX(MI, CurOp, 4);
++CurOp;
+ if (HasTwoConditionalOps) {
+ Prefix.set4V(MI, ++CurOp, /*IsImm=*/true);
+ Prefix.setSC(MI, ++CurOp);
+ }
break;
}
}
@@ -1525,6 +1560,7 @@ void X86MCCodeEmitter::encodeInstruction(const MCInst &MI,
unsigned OpcodeOffset = 0;
bool IsND = X86II::hasNewDataDest(TSFlags);
+ bool HasTwoConditionalOps = TSFlags & X86II::TwoConditionalOps;
uint64_t Form = TSFlags & X86II::FormMask;
switch (Form) {
@@ -1914,11 +1950,16 @@ void X86MCCodeEmitter::encodeInstruction(const MCInst &MI,
// If there is a remaining operand, it must be a trailing immediate. Emit it
// according to the right size for the instruction. Some instructions
// (SSE4a extrq and insertq) have two trailing immediates.
- while (CurOp != NumOps && NumOps - CurOp <= 2) {
+
+ // Skip two trainling conditional operands encoded in EVEX prefix
+ unsigned RemaningOps = NumOps - CurOp - 2 * HasTwoConditionalOps;
+ while (RemaningOps) {
emitImmediate(MI.getOperand(CurOp++), MI.getLoc(),
X86II::getSizeOfImm(TSFlags), getImmFixupKind(TSFlags),
StartByte, CB, Fixups);
+ --RemaningOps;
}
+ CurOp += 2 * HasTwoConditionalOps;
}
if ((TSFlags & X86II::OpMapMask) == X86II::ThreeDNow)
diff --git a/llvm/lib/Target/X86/X86InstrAsmAlias.td b/llvm/lib/Target/X86/X86InstrAsmAlias.td
index 2590be8651d517..fab058dc390bb3 100644
--- a/llvm/lib/Target/X86/X86InstrAsmAlias.td
+++ b/llvm/lib/Target/X86/X86InstrAsmAlias.td
@@ -62,6 +62,134 @@ multiclass CMPCCXADD_Aliases<string Cond, int CC> {
(CMPCCXADDmr64_EVEX GR64:$dst, i64mem:$dstsrc2, GR64:$src3, CC), 0>;
}
+// CCMP Instructions Alias
+multiclass CCMP_Aliases<string Cond, int CC> {
+let Predicates = [In64BitMode] in {
+def : InstAlias<"ccmp"#Cond#"{b} $dcf\t{$src2, $src1|$src1, $src2}",
+ (CCMP8rr GR8:$src1, GR8:$src2, cflags:$dcf, CC), 0>;
+def : InstAlias<"ccmp"#Cond#"{w} $dcf\t{$src2, $src1|$src1, $src2}",
+ (CCMP16rr GR16:$src1, GR16:$src2, cflags:$dcf, CC), 0>;
+def : InstAlias<"ccmp"#Cond#"{l} $dcf\t{$src2, $src1|$src1, $src2}",
+ (CCMP32rr GR32:$src1, GR32:$src2, cflags:$dcf, CC), 0>;
+def : InstAlias<"ccmp"#Cond#"{q} $dcf\t{$src2, $src1|$src1, $src2}",
+ (CCMP64rr GR64:$src1, GR64:$src2, cflags:$dcf, CC), 0>;
+def : InstAlias<"ccmp"#Cond#"{b} $dcf\t{$src2, $src1|$src1, $src2}",
+ (CCMP8rm GR8:$src1, i8mem:$src2, cflags:$dcf, CC), 0>;
+def : InstAlias<"ccmp"#Cond#"{w} $dcf\t{$src2, $src1|$src1, $src2}",
+ (CCMP16rm GR16:$src1, i16mem:$src2, cflags:$dcf, CC), 0>;
+def : InstAlias<"ccmp"#Cond#"{l} $dcf\t{$src2, $src1|$src1, $src2}",
+ (CCMP32rm GR32:$src1, i32mem:$src2, cflags:$dcf, CC), 0>;
+def : InstAlias<"ccmp"#Cond#"{q} $dcf\t{$src2, $src1|$src1, $src2}",
+ (CCMP64rm GR64:$src1, i64mem:$src2, cflags:$dcf, CC), 0>;
+def : InstAlias<"ccmp"#Cond#"{b} $dcf\t{$src2, $src1|$src1, $src2}",
+ (CCMP8mr i8mem:$src1, GR8:$src2, cflags:$dcf, CC), 0>;
+def : InstAlias<"ccmp"#Cond#"{w} $dcf\t{$src2, $src1|$src1, $src2}",
+ (CCMP16mr i16mem:$src1, GR16:$src2, cflags:$dcf, CC), 0>;
+def : InstAlias<"ccmp"#Cond#"{l} $dcf\t{$src2, $src1|$src1, $src2}",
+ (CCMP32mr i32mem:$src1, GR32:$src2, cflags:$dcf, CC), 0>;
+def : InstAlias<"ccmp"#Cond#"{q} $dcf\t{$src2, $src1|$src1, $src2}",
+ (CCMP64mr i64mem:$src1, GR64:$src2, cflags:$dcf, CC), 0>;
+def : InstAlias<"ccmp"#Cond#"{b} $dcf\t{$src2, $src1|$src1, $src2}",
+ (CCMP8ri GR8:$src1, i8imm:$src2, cflags:$dcf, CC), 0>;
+def : InstAlias<"ccmp"#Cond#"{w} $dcf\t{$src2, $src1|$src1, $src2}",
+ (CCMP16ri GR16:$src1, i16imm:$src2, cflags:$dcf, CC), 0>;
+def : InstAlias<"ccmp"#Cond#"{l} $dcf\t{$src2, $src1|$src1, $src2}",
+ (CCMP32ri GR32:$src1, i32imm:$src2, cflags:$dcf, CC), 0>;
+def : InstAlias<"ccmp"#Cond#"{q} $dcf\t{$src2, $src1|$src1, $src2}",
+ (CCMP64ri32 GR64:$src1, i64i32imm:$src2, cflags:$dcf, CC), 0>;
+def : InstAlias<"ccmp"#Cond#"{w} $dcf\t{$src2, $src1|$src1, $src2}",
+ (CCMP16ri8 GR16:$src1, i16i8imm:$src2, cflags:$dcf, CC), 0>;
+def : InstAlias<"ccmp"#Cond#"{l} $dcf\t{$src2, $src1|$src1, $src2}",
+ (CCMP32ri8 GR32:$src1, i32i8imm:$src2, cflags:$dcf, CC), 0>;
+def : InstAlias<"ccmp"#Cond#"{q} $dcf\t{$src2, $src1|$src1, $src2}",
+ (CCMP64ri8 GR64:$src1, i64i8imm:$src2, cflags:$dcf, CC), 0>;
+def : InstAlias<"ccmp"#Cond#"{b} $dcf\t{$src2, $src1|$src1, $src2}",
+ (CCMP8mi i8mem:$src1, i8imm:$src2, cflags:$dcf, CC), 0>;
+def : InstAlias<"ccmp"#Cond#"{w} $dcf\t{$src2, $src1|$src1, $src2}",
+ (CCMP16mi i16mem:$src1, i16imm:$src2, cflags:$dcf, CC), 0>;
+def : InstAlias<"ccmp"#Cond#"{l} $dcf\t{$src2, $src1|$src1, $src2}",
+ (CCMP32mi i32mem:$src1, i32imm:$src2, cflags:$dcf, CC), 0>;
+def : InstAlias<"ccmp"#Cond#"{q} $dcf\t{$src2, $src1|$src1, $src2}",
+ (CCMP64mi32 i64mem:$src1, i64i32imm:$src2, cflags:$dcf, CC), 0>;
+def : InstAlias<"ccmp"#Cond#"{w} $dcf\t{$src2, $src1|$src1, $src2}",
+ (CCMP16mi8 i16mem:$src1, i16i8imm:$src2, cflags:$dcf, CC), 0>;
+def : InstAlias<"ccmp"#Cond#"{l} $dcf\t{$src2, $src1|$src1, $src2}",
+ (CCMP32mi8 i32mem:$src1, i32i8imm:$src2, cflags:$dcf, CC), 0>;
+def : InstAlias<"ccmp"#Cond#"{q} $dcf\t{$src2, $src1|$src1, $src2}",
+ (CCMP64mi8 i64mem:$src1, i64i8imm:$src2, cflags:$dcf, CC), 0>;
+}
+}
+defm : CCMP_Aliases<"o" , 0>;
+defm : CCMP_Aliases<"no", 1>;
+defm : CCMP_Aliases<"b" , 2>;
+defm : CCMP_Aliases<"ae", 3>;
+defm : CCMP_Aliases<"e" , 4>;
+defm : CCMP_Aliases<"ne", 5>;
+defm : CCMP_Aliases<"be", 6>;
+defm : CCMP_Aliases<"a" , 7>;
+defm : CCMP_Aliases<"s" , 8>;
+defm : CCMP_Aliases<"ns", 9>;
+defm : CCMP_Aliases<"t" , 10>;
+defm : CCMP_Aliases<"f", 11>;
+defm : CCMP_Aliases<"l" , 12>;
+defm : CCMP_Aliases<"ge", 13>;
+defm : CCMP_Aliases<"le", 14>;
+defm : CCMP_Aliases<"g" , 15>;
+
+// CTEST Instructions Alias
+multiclass CTEST_Aliases<string Cond, int CC> {
+let Predicates = [In64BitMode] in {
+def : InstAlias<"ctest"#Cond#"{b} $dcf\t{$src2, $src1|$src1, $src2}",
+ (CTEST8rr GR8:$src1, GR8:$src2, cflags:$dcf, CC), 0>;
+def : InstAlias<"ctest"#Cond#"{w} $dcf\t{$src2, $src1|$src1, $src2}",
+ (CTEST16rr GR16:$src1, GR16:$src2, cflags:$dcf, CC), 0>;
+def : InstAlias<"ctest"#Cond#"{l} $dcf\t{$src2, $src1|$src1, $src2}",
+ (CTEST32rr GR32:$src1, GR32:$src2, cflags:$dcf, CC), 0>;
+def : InstAlias<"ctest"#Cond#"{q} $dcf\t{$src2, $src1|$src1, $src2}",
+ (CTEST64rr GR64:$src1, GR64:$src2, cflags:$dcf, CC), 0>;
+def : InstAlias<"ctest"#Cond#"{b} $dcf\t{$src2, $src1|$src1, $src2}",
+ (CTEST8mr i8mem:$src1, GR8:$src2, cflags:$dcf, CC), 0>;
+def : InstAlias<"ctest"#Cond#"{w} $dcf\t{$src2, $src1|$src1, $src2}",
+ (CTEST16mr i16mem:$src1, GR16:$src2, cflags:$dcf, CC), 0>;
+def : InstAlias<"ctest"#Cond#"{l} $dcf\t{$src2, $src1|$src1, $src2}",
+ (CTEST32mr i32mem:$src1, GR32:$src2, cflags:$dcf, CC), 0>;
+def : InstAlias<"ctest"#Cond#"{q} $dcf\t{$src2, $src1|$src1, $src2}",
+ (CTEST64mr i64mem:$src1, GR64:$src2, cflags:$dcf, CC), 0>;
+def : InstAlias<"ctest"#Cond#"{b} $dcf\t{$src2, $src1|$src1, $src2}",
+ (CTEST8ri GR8:$src1, i8imm:$src2, cflags:$dcf, CC), 0>;
+def : InstAlias<"ctest"#Cond#"{w} $dcf\t{$src2, $src1|$src1, $src2}",
+ (CTEST16ri GR16:$src1, i16imm:$src2, cflags:$dcf, CC), 0>;
+def : InstAlias<"ctest"#Cond#"{l} $dcf\t{$src2, $src1|$src1, $src2}",
+ (CTEST32ri GR32:$src1, i32imm:$src2, cflags:$dcf, CC), 0>;
+def : InstAlias<"ctest"#Cond#"{q} $dcf\t{$src2, $src1|$src1, $src2}",
+ (CTEST64ri32 GR64:$src1, i64i32imm:$src2, cflags:$dcf, CC), 0>;
+def : InstAlias<"ctest"#Cond#"{b} $dcf\t{$src2, $src1|$src1, $src2}",
+ (CTEST8mi i8mem:$src1, i8imm:$src2, cflags:$dcf, CC), 0>;
+def : InstAlias<"ctest"#Cond#"{w} $dcf\t{$src2, $src1|$src1, $src2}",
+ (CTEST16mi i16mem:$src1, i16imm:$src2, cflags:$dcf, CC), 0>;
+def : InstAlias<"ctest"#Cond#"{l} $dcf\t{$src2, $src1|$src1, $src2}",
+ (CTEST32mi i32mem:$src1, i32imm:$src2, cflags:$dcf, CC), 0>;
+def : InstAlias<"ctest"#Cond#"{q} $dcf\t{$src2, $src1|$src1, $src2}",
+ (CTEST64mi32 i64mem:$src1, i64i32imm:$src2, cflags:$dcf, CC), 0>;
+}
+}
+defm : CTEST_Aliases<"o" , 0>;
+defm : CTEST_Aliases<"no", 1>;
+defm : CTEST_Aliases<"b" , 2>;
+defm : CTEST_Aliases<"ae", 3>;
+defm : CTEST_Aliases<"e" , 4>;
+defm : CTEST_Aliases<"ne", 5>;
+defm : CTEST_Aliases<"be", 6>;
+defm : CTEST_Aliases<"a" , 7>;
+defm : CTEST_Aliases<"s" , 8>;
+defm : CTEST_Aliases<"ns", 9>;
+defm : CTEST_Aliases<"t" , 10>;
+defm : CTEST_Aliases<"f", 11>;
+defm : CTEST_Aliases<"l" , 12>;
+defm : CTEST_Aliases<"ge", 13>;
+defm : CTEST_Aliases<"le", 14>;
+defm : CTEST_Aliases<"g" , 15>;
+
//===----------------------------------------------------------------------===//
// Assembler Mnemonic Aliases
//===----------------------------------------------------------------------===//
diff --git a/llvm/lib/Target/X86/X86InstrConditionalCompare.td b/llvm/lib/Target/X86/X86InstrConditionalCompare.td
new file mode 100644
index 00000000000000..e5c1143eba87f0
--- /dev/null
+++ b/llvm/lib/Target/X86/X86InstrConditionalCompare.td
@@ -0,0 +1,110 @@
+//===-- X86InstrConditionalCompare.td - Conditional Compare --*- tablegen -*-==//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+//
+//===----------------------------------------------------------------------===//
+//
+// This file describes the X86 conditional compare instructions.
+//
+//===----------------------------------------------------------------------===//
+
+class BinCondOp<bits<8> o, Format f, X86TypeInfo t, DAGOperand op1, DAGOperand op2, string m>
+ : ITy<o, f, t, (outs), (ins op1:$src1, op2:$src2, cflags:$dcf, ccode:$cond),
+ m#"${cond}", "$dcf\t{$src2, $src1|$src1, $src2}" , []>, T_MAP4, EVEX, Requires<[In64BitMode]> {
+ let isCodeGenOnly = 1;
+ let ForceDisassemble = 1;
+ let Uses = [EFLAGS];
+ let Defs = [EFLAGS];
+ let hasTwoConditionalOps = 1;
+ let ImmT = !if(!eq(op2, i16i8imm), Imm8,
+ !if(!eq(op2, i32i8imm), Imm8,
+ !if(!eq(op2, i64i8imm), Imm8,
+ !if(!eq(op2, i8imm), Imm8,
+ !if(!eq(op2, i16imm), Imm16,
+ !if(!eq(op2, i32imm), Imm32,
+ !if(!eq(op2, i64i32imm), Imm32S, NoImm)))))));
+}
+
+class Ccmp<bits<8> o, Format f, X86TypeInfo t, DAGOperand op1, DAGOperand op2>:
+ BinCondOp<o, f, t, op1, op2, "ccmp">;
+
+class Ctest<bits<8> o, Format f, X86TypeInfo t, DAGOperand op1, DAGOperand op2>:
+ BinCondOp<o, f, t, op1, op2, "ctest">;
+
+//===----------------------------------------------------------------------===//
+// CCMP Instructions
+//
+let SchedRW = [WriteALU] in {
+ def CCMP8rr : Ccmp<0x38, MRMDestReg, Xi8, GR8, GR8>;
+ def CCMP16rr: Ccmp<0x39, MRMDestReg, Xi16, GR16, GR16>, PD;
+ def CCMP32rr: Ccmp<0x39, MRMDestReg, Xi32, GR32, GR32>;
+ def CCMP64rr: Ccmp<0x39, MRMDestReg, Xi64, GR64, GR64>;
+ def CCMP8rr_REV : Ccmp<0x3a, MRMSrcReg, Xi8, GR8, GR8>;
+ def CCMP16rr_REV: Ccmp<0x3b, MRMSrcReg, Xi16, GR16, GR16>, PD;
+ def CCMP32rr_REV: Ccmp<0x3b, MRMSrcReg, Xi32, GR32, GR32>;
+ def CCMP64rr_REV: Ccmp<0x3b, MRMSrcReg, Xi64, GR64, GR64>;
+ def CCMP16ri8: Ccmp<0x83, MRM7r, Xi16, GR16, i16i8imm>, PD;
+ def CCMP32ri8: Ccmp<0x83, MRM7r, Xi32, GR32, i32i8imm>;
+ def CCMP64ri8: Ccmp<0x83, MRM7r, Xi64, GR64, i64i8imm>;
+
+ def CCMP8ri : Ccmp<0x80, MRM7r, Xi8, GR8, i8imm>;
+ def CCMP16ri: Ccmp<0x81, MRM7r, Xi16, GR16, i16imm>, PD;
+ def CCMP32ri: Ccmp<0x81, MRM7r, Xi32, GR32, i32imm>;
+ def CCMP64ri32: Ccmp<0x81, MRM7r, Xi64, GR64, i64i32imm>;
+}
+
+let mayLoad = 1 in {
+ let SchedRW = [WriteALU.Folded] in {
+ def CCMP16mi8: Ccmp<0x83, MRM7m, Xi16, i16mem, i16i8imm>, PD;
+ def CCMP32mi8: Ccmp<0x83, MRM7m, Xi32, i32mem, i32i8imm>;
+ def CCMP64mi8: Ccmp<0x83, MRM7m, Xi64, i64mem, i64i8imm>;
+ def CCMP8mi : Ccmp<0x80, MRM7m, Xi8, i8mem, i8imm>;
+ def CCMP16mi: Ccmp<0x81, MRM7m, Xi16, i16mem, i16imm>, PD;
+ def CCMP32mi: Ccmp<0x81, MRM7m, Xi32, i32mem, i32imm>;
+ def CCMP64mi32: Ccmp<0x81, MRM7m, Xi64, i64mem, i64i32imm>;
+ }
+ let SchedRW = [WriteALU.Folded, WriteALU.ReadAfterFold] in {
+ def CCMP8rm : Ccmp<0x3a, MRMSrcMem, Xi8, GR8, i8mem>;
+ def CCMP16rm: Ccmp<0x3b, MRMSrcMem, Xi16, GR16, i16mem>, PD;
+ def CCMP32rm: Ccmp<0x3b, MRMSrcMem, Xi32, GR32, i32mem>;
+ def CCMP64rm: Ccmp<0x3b, MRMSrcMem, Xi64, GR64, i64mem>;
+
+ def CCMP8mr : Ccmp<0x38, MRMDestMem, Xi8, i8mem, GR8>;
+ def CCMP16mr: Ccmp<0x39, MRMDestMem, Xi16, i16mem, GR16>, PD;
+ def CCMP32mr: Ccmp<0x39, MRMDestMem, Xi32, i32mem, GR32>;
+ def CCMP64mr: Ccmp<0x39, MRMDestMem, Xi64, i64mem, GR64>;
+ }
+}
+
+//===----------------------------------------------------------------------===//
+// CTEST Instructions
+//
+let SchedRW = [WriteALU] in {
+ let isCommutable = 1 in {
+ def CTEST8rr : Ctest<0x84, MRMDestReg, Xi8, GR8, GR8>;
+ def CTEST16rr: Ctest<0x85, MRMDestReg, Xi16, GR16, GR16>, PD;
+ def CTEST32rr: Ctest<0x85, MRMDestReg, Xi32, GR32, GR32>;
+ def CTEST64rr: Ctest<0x85, MRMDestReg, Xi64, GR64, GR64>;
+ }
+ def CTEST8ri : Ctest<0xF6, MRM0r, Xi8, GR8, i8imm>;
+ def CTEST16ri: Ctest<0xF7, MRM0r, Xi16, GR16, i16imm>, PD;
+ def CTEST32ri: Ctest<0xF7, MRM0r, Xi32, GR32, i32imm>;
+ def CTEST64ri32: Ctest<0xF7, MRM0r, Xi64, GR64, i64i32imm>;
+}
+
+let mayLoad = 1 in {
+ let SchedRW = [WriteALU.Folded] in {
+ def CTEST8mi : Ctest<0xF6, MRM0m, Xi8, i8mem, i8imm>;
+ def CTEST16mi: Ctest<0xF7, MRM0m, Xi16, i16mem, i16imm>, PD;
+ def CTEST32mi: Ctest<0xF7, MRM0m, Xi32, i32mem, i32imm>;
+ def CTEST64mi32: Ctest<0xF7, MRM0m, Xi64, i64mem, i64i32imm>;
+ }
+ let SchedRW = [WriteALU.Folded, WriteALU.ReadAfterFold] in {
+ def CTEST8mr : Ctest<0x84, MRMDestMem, Xi8, i8mem, GR8>;
+ def CTEST16mr: Ctest<0x85, MRMDestMem, Xi16, i16mem, GR16>, PD;
+ def CTEST32mr: Ctest<0x85, MRMDestMem, Xi32, i32mem, GR32>;
+ def CTEST64mr: Ctest<0x85, MRMDestMem, Xi64, i64mem, GR64>;
+ }
+}
diff --git a/llvm/lib/Target/X86/X86InstrFormats.td b/llvm/lib/Target/X86/X86InstrFormats.td
index 8798b13a176126..13014293267b32 100644
--- a/llvm/lib/Target/X86/X86InstrFormats.td
+++ b/llvm/lib/Target/X86/X86InstrFormats.td
@@ -255,6 +255,7 @@ class X86Inst<bits<8> opcod, Format f, ImmType i, dag outs, dag ins,
bit hasEVEX_L2 = 0; // Does this inst set the EVEX_L2 field?
bit hasEVEX_B = 0; // Does this inst set the EVEX_B field?
bit hasEVEX_NF = 0; // Does this inst set the EVEX_NF field?
+ bit hasTwoConditionalOps = 0; // Does this inst have two conditional operands?
bits<3> CD8_Form = 0; // Compressed disp8 form - vector-width.
// Declare it int rather than bits<4> so that all bits are defined when
// assigning to bits<7>.
@@ -305,4 +306,5 @@ class X86Inst<bits<8> opcod, Format f, ImmType i, dag outs, dag ins,
let TSFlags{49} = hasNoTrackPrefix;
let TSFlags{51-50} = explicitOpPrefixBits;
let TSFlags{52} = hasEVEX_NF;
+ let TSFlags{53} = hasTwoConditionalOps;
}
diff --git a/llvm/lib/Target/X86/X86InstrInfo.td b/llvm/lib/Target/X86/X86InstrInfo.td
index ee54796323b82c..4792784336109d 100644
--- a/llvm/lib/Target/X86/X86InstrInfo.td
+++ b/llvm/lib/Target/X86/X86InstrInfo.td
@@ -45,6 +45,7 @@ include "X86InstrMisc.td"
include "X86InstrTBM.td"
include "X86InstrArithmetic.td"
include "X86InstrCMovSetCC.td"
+include "X86InstrConditionalCompare.td"
include "X86InstrExtension.td"
include "X86InstrControl.td"
include "X86InstrShiftRotate.td"
diff --git a/llvm/lib/Target/X86/X86InstrOperands.td b/llvm/lib/Target/X86/X86InstrOperands.td
index 761458f9cffc35..f8f5cd83166e33 100644
--- a/llvm/lib/Target/X86/X86InstrOperands.td
+++ b/llvm/lib/Target/X86/X86InstrOperands.td
@@ -424,6 +424,12 @@ def u4imm : Operand<i8> {
let OperandType = "OPERAND_IMMEDIATE";
}
+def cflags : Operand<i8> {
+ let PrintMethod = "printCondFlags";
+ let ParserMatchClass = ImmUnsignedi4AsmOperand;
+ let OperandType = "OPERAND_IMMEDIATE";
+}
+
// Unsigned 8-bit immediate used by SSE/AVX instructions.
def u8imm : Operand<i8> {
let PrintMethod = "printU8Imm";
diff --git a/llvm/test/MC/Disassembler/X86/apx/ccmp.txt b/llvm/test/MC/Disassembler/X86/apx/ccmp.txt
new file mode 100644
index 00000000000000..93686a95798393
--- /dev/null
+++ b/llvm/test/MC/Disassembler/X86/apx/ccmp.txt
@@ -0,0 +1,1598 @@
+# 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
+
+## Condition flags
+
+# ATT: ccmpoq {} %rax, %rbx
+# INTEL: ccmpo {} rbx, rax
+0x62,0xf4,0x84,0x00,0x39,0xc3
+
+# ATT: ccmpoq {of} %rax, %rbx
+# INTEL: ccmpo {of} rbx, rax
+0x62,0xf4,0xc4,0x00,0x39,0xc3
+
+# ATT: ccmpoq {sf} %rax, %rbx
+# INTEL: ccmpo {sf} rbx, rax
+0x62,0xf4,0xa4,0x00,0x39,0xc3
+
+# ATT: ccmpoq {zf} %rax, %rbx
+# INTEL: ccmpo {zf} rbx, rax
+0x62,0xf4,0x94,0x00,0x39,0xc3
+
+# ATT: ccmpoq {cf} %rax, %rbx
+# INTEL: ccmpo {cf} rbx, rax
+0x62,0xf4,0x8c,0x00,0x39,0xc3
+
+# ATT: ccmpoq {of,sf} %rax, %rbx
+# INTEL: ccmpo {of,sf} rbx, rax
+0x62,0xf4,0xe4,0x00,0x39,0xc3
+
+# ATT: ccmpoq {of,sf,zf} %rax, %rbx
+# INTEL: ccmpo {of,sf,zf} rbx, rax
+0x62,0xf4,0xf4,0x00,0x39,0xc3
+
+# ATT: ccmpoq {of,sf,zf,cf} %rax, %rbx
+# INTEL: ccmpo {of,sf,zf,cf} rbx, rax
+0x62,0xf4,0xfc,0x00,0x39,0xc3
+
+## Condition code
+
+# ATT: ccmpbb {of} $123, 123(%r8,%rax,4)
+# INTEL: ccmpb {of} byte ptr [r8 + 4*rax + 123], 123
+0x62,0xd4,0x44,0x02,0x80,0x7c,0x80,0x7b,0x7b
+
+# ATT: ccmpbw {of} $123, 123(%r8,%rax,4)
+# INTEL: ccmpb {of} word ptr [r8 + 4*rax + 123], 123
+0x62,0xd4,0x45,0x02,0x83,0x7c,0x80,0x7b,0x7b
+
+# ATT: ccmpbw {of} $1234, 123(%r8,%rax,4)
+# INTEL: ccmpb {of} word ptr [r8 + 4*rax + 123], 1234
+0x62,0xd4,0x45,0x02,0x81,0x7c,0x80,0x7b,0xd2,0x04
+
+# ATT: ccmpbl {of} $123, 123(%r8,%rax,4)
+# INTEL: ccmpb {of} dword ptr [r8 + 4*rax + 123], 123
+0x62,0xd4,0x44,0x02,0x83,0x7c,0x80,0x7b,0x7b
+
+# ATT: ccmpbl {of} $123456, 123(%r8,%rax,4)
+# INTEL: ccmpb {of} dword ptr [r8 + 4*rax + 123], 123456
+0x62,0xd4,0x44,0x02,0x81,0x7c,0x80,0x7b,0x40,0xe2,0x01,0x00
+
+# ATT: ccmpbq {of} $123, 123(%r8,%rax,4)
+# INTEL: ccmpb {of} qword ptr [r8 + 4*rax + 123], 123
+0x62,0xd4,0xc4,0x02,0x83,0x7c,0x80,0x7b,0x7b
+
+# ATT: ccmpbq {of} $123456, 123(%r8,%rax,4)
+# INTEL: ccmpb {of} qword ptr [r8 + 4*rax + 123], 123456
+0x62,0xd4,0xc4,0x02,0x81,0x7c,0x80,0x7b,0x40,0xe2,0x01,0x00
+
+# ATT: ccmpbb {of} %bl, 123(%r8,%rax,4)
+# INTEL: ccmpb {of} byte ptr [r8 + 4*rax + 123], bl
+0x62,0xd4,0x44,0x02,0x38,0x5c,0x80,0x7b
+
+# ATT: ccmpbw {of} %dx, 123(%r8,%rax,4)
+# INTEL: ccmpb {of} word ptr [r8 + 4*rax + 123], dx
+0x62,0xd4,0x45,0x02,0x39,0x54,0x80,0x7b
+
+# ATT: ccmpbl {of} %ecx, 123(%r8,%rax,4)
+# INTEL: ccmpb {of} dword ptr [r8 + 4*rax + 123], ecx
+0x62,0xd4,0x44,0x02,0x39,0x4c,0x80,0x7b
+
+# ATT: ccmpbq {of} %r9, 123(%r8,%rax,4)
+# INTEL: ccmpb {of} qword ptr [r8 + 4*rax + 123], r9
+0x62,0x54,0xc4,0x02,0x39,0x4c,0x80,0x7b
+
+# ATT: ccmpbb {of} 123(%r8,%rax,4), %bl
+# INTEL: ccmpb {of} bl, byte ptr [r8 + 4*rax + 123]
+0x62,0xd4,0x44,0x02,0x3a,0x5c,0x80,0x7b
+
+# ATT: ccmpbw {of} 123(%r8,%rax,4), %dx
+# INTEL: ccmpb {of} dx, word ptr [r8 + 4*rax + 123]
+0x62,0xd4,0x45,0x02,0x3b,0x54,0x80,0x7b
+
+# ATT: ccmpbl {of} 123(%r8,%rax,4), %ecx
+# INTEL: ccmpb {of} ecx, dword ptr [r8 + 4*rax + 123]
+0x62,0xd4,0x44,0x02,0x3b,0x4c,0x80,0x7b
+
+# ATT: ccmpbq {of} 123(%r8,%rax,4), %r9
+# INTEL: ccmpb {of} r9, qword ptr [r8 + 4*rax + 123]
+0x62,0x54,0xc4,0x02,0x3b,0x4c,0x80,0x7b
+
+# ATT: ccmpbb {of} $123, %bl
+# INTEL: ccmpb {of} bl, 123
+0x62,0xf4,0x44,0x02,0x80,0xfb,0x7b
+
+# ATT: ccmpbw {of} $123, %dx
+# INTEL: ccmpb {of} dx, 123
+0x62,0xf4,0x45,0x02,0x83,0xfa,0x7b
+
+# ATT: ccmpbl {of} $123, %ecx
+# INTEL: ccmpb {of} ecx, 123
+0x62,0xf4,0x44,0x02,0x83,0xf9,0x7b
+
+# ATT: ccmpbq {of} $123, %r9
+# INTEL: ccmpb {of} r9, 123
+0x62,0xd4,0xc4,0x02,0x83,0xf9,0x7b
+
+# ATT: ccmpbw {of} $1234, %dx
+# INTEL: ccmpb {of} dx, 1234
+0x62,0xf4,0x45,0x02,0x81,0xfa,0xd2,0x04
+
+# ATT: ccmpbl {of} $123456, %ecx
+# INTEL: ccmpb {of} ecx, 123456
+0x62,0xf4,0x44,0x02,0x81,0xf9,0x40,0xe2,0x01,0x00
+
+# ATT: ccmpbq {of} $123456, %r9
+# INTEL: ccmpb {of} r9, 123456
+0x62,0xd4,0xc4,0x02,0x81,0xf9,0x40,0xe2,0x01,0x00
+
+# ATT: ccmpbb {of} %bl, %dl
+# INTEL: ccmpb {of} dl, bl
+0x62,0xf4,0x44,0x02,0x3a,0xd3
+
+# ATT: ccmpbw {of} %dx, %ax
+# INTEL: ccmpb {of} ax, dx
+0x62,0xf4,0x45,0x02,0x3b,0xc2
+
+# ATT: ccmpbl {of} %ecx, %edx
+# INTEL: ccmpb {of} edx, ecx
+0x62,0xf4,0x44,0x02,0x3b,0xd1
+
+# ATT: ccmpbq {of} %r9, %r15
+# INTEL: ccmpb {of} r15, r9
+0x62,0x54,0xc4,0x02,0x3b,0xf9
+
+# ATT: ccmpfb {of} $123, 123(%r8,%rax,4)
+# INTEL: ccmpf {of} byte ptr [r8 + 4*rax + 123], 123
+0x62,0xd4,0x44,0x0b,0x80,0x7c,0x80,0x7b,0x7b
+
+# ATT: ccmpfw {of} $123, 123(%r8,%rax,4)
+# INTEL: ccmpf {of} word ptr [r8 + 4*rax + 123], 123
+0x62,0xd4,0x45,0x0b,0x83,0x7c,0x80,0x7b,0x7b
+
+# ATT: ccmpfw {of} $1234, 123(%r8,%rax,4)
+# INTEL: ccmpf {of} word ptr [r8 + 4*rax + 123], 1234
+0x62,0xd4,0x45,0x0b,0x81,0x7c,0x80,0x7b,0xd2,0x04
+
+# ATT: ccmpfl {of} $123, 123(%r8,%rax,4)
+# INTEL: ccmpf {of} dword ptr [r8 + 4*rax + 123], 123
+0x62,0xd4,0x44,0x0b,0x83,0x7c,0x80,0x7b,0x7b
+
+# ATT: ccmpfl {of} $123456, 123(%r8,%rax,4)
+# INTEL: ccmpf {of} dword ptr [r8 + 4*rax + 123], 123456
+0x62,0xd4,0x44,0x0b,0x81,0x7c,0x80,0x7b,0x40,0xe2,0x01,0x00
+
+# ATT: ccmpfq {of} $123, 123(%r8,%rax,4)
+# INTEL: ccmpf {of} qword ptr [r8 + 4*rax + 123], 123
+0x62,0xd4,0xc4,0x0b,0x83,0x7c,0x80,0x7b,0x7b
+
+# ATT: ccmpfq {of} $123456, 123(%r8,%rax,4)
+# INTEL: ccmpf {of} qword ptr [r8 + 4*rax + 123], 123456
+0x62,0xd4,0xc4,0x0b,0x81,0x7c,0x80,0x7b,0x40,0xe2,0x01,0x00
+
+# ATT: ccmpfb {of} %bl, 123(%r8,%rax,4)
+# INTEL: ccmpf {of} byte ptr [r8 + 4*rax + 123], bl
+0x62,0xd4,0x44,0x0b,0x38,0x5c,0x80,0x7b
+
+# ATT: ccmpfw {of} %dx, 123(%r8,%rax,4)
+# INTEL: ccmpf {of} word ptr [r8 + 4*rax + 123], dx
+0x62,0xd4,0x45,0x0b,0x39,0x54,0x80,0x7b
+
+# ATT: ccmpfl {of} %ecx, 123(%r8,%rax,4)
+# INTEL: ccmpf {of} dword ptr [r8 + 4*rax + 123], ecx
+0x62,0xd4,0x44,0x0b,0x39,0x4c,0x80,0x7b
+
+# ATT: ccmpfq {of} %r9, 123(%r8,%rax,4)
+# INTEL: ccmpf {of} qword ptr [r8 + 4*rax + 123], r9
+0x62,0x54,0xc4,0x0b,0x39,0x4c,0x80,0x7b
+
+# ATT: ccmpfb {of} 123(%r8,%rax,4), %bl
+# INTEL: ccmpf {of} bl, byte ptr [r8 + 4*rax + 123]
+0x62,0xd4,0x44,0x0b,0x3a,0x5c,0x80,0x7b
+
+# ATT: ccmpfw {of} 123(%r8,%rax,4), %dx
+# INTEL: ccmpf {of} dx, word ptr [r8 + 4*rax + 123]
+0x62,0xd4,0x45,0x0b,0x3b,0x54,0x80,0x7b
+
+# ATT: ccmpfl {of} 123(%r8,%rax,4), %ecx
+# INTEL: ccmpf {of} ecx, dword ptr [r8 + 4*rax + 123]
+0x62,0xd4,0x44,0x0b,0x3b,0x4c,0x80,0x7b
+
+# ATT: ccmpfq {of} 123(%r8,%rax,4), %r9
+# INTEL: ccmpf {of} r9, qword ptr [r8 + 4*rax + 123]
+0x62,0x54,0xc4,0x0b,0x3b,0x4c,0x80,0x7b
+
+# ATT: ccmpfb {of} $123, %bl
+# INTEL: ccmpf {of} bl, 123
+0x62,0xf4,0x44,0x0b,0x80,0xfb,0x7b
+
+# ATT: ccmpfw {of} $123, %dx
+# INTEL: ccmpf {of} dx, 123
+0x62,0xf4,0x45,0x0b,0x83,0xfa,0x7b
+
+# ATT: ccmpfl {of} $123, %ecx
+# INTEL: ccmpf {of} ecx, 123
+0x62,0xf4,0x44,0x0b,0x83,0xf9,0x7b
+
+# ATT: ccmpfq {of} $123, %r9
+# INTEL: ccmpf {of} r9, 123
+0x62,0xd4,0xc4,0x0b,0x83,0xf9,0x7b
+
+# ATT: ccmpfw {of} $1234, %dx
+# INTEL: ccmpf {of} dx, 1234
+0x62,0xf4,0x45,0x0b,0x81,0xfa,0xd2,0x04
+
+# ATT: ccmpfl {of} $123456, %ecx
+# INTEL: ccmpf {of} ecx, 123456
+0x62,0xf4,0x44,0x0b,0x81,0xf9,0x40,0xe2,0x01,0x00
+
+# ATT: ccmpfq {of} $123456, %r9
+# INTEL: ccmpf {of} r9, 123456
+0x62,0xd4,0xc4,0x0b,0x81,0xf9,0x40,0xe2,0x01,0x00
+
+# ATT: ccmpfb {of} %bl, %dl
+# INTEL: ccmpf {of} dl, bl
+0x62,0xf4,0x44,0x0b,0x3a,0xd3
+
+# ATT: ccmpfw {of} %dx, %ax
+# INTEL: ccmpf {of} ax, dx
+0x62,0xf4,0x45,0x0b,0x3b,0xc2
+
+# ATT: ccmpfl {of} %ecx, %edx
+# INTEL: ccmpf {of} edx, ecx
+0x62,0xf4,0x44,0x0b,0x3b,0xd1
+
+# ATT: ccmpfq {of} %r9, %r15
+# INTEL: ccmpf {of} r15, r9
+0x62,0x54,0xc4,0x0b,0x3b,0xf9
+
+# ATT: ccmplb {of} $123, 123(%r8,%rax,4)
+# INTEL: ccmpl {of} byte ptr [r8 + 4*rax + 123], 123
+0x62,0xd4,0x44,0x0c,0x80,0x7c,0x80,0x7b,0x7b
+
+# ATT: ccmplw {of} $123, 123(%r8,%rax,4)
+# INTEL: ccmpl {of} word ptr [r8 + 4*rax + 123], 123
+0x62,0xd4,0x45,0x0c,0x83,0x7c,0x80,0x7b,0x7b
+
+# ATT: ccmplw {of} $1234, 123(%r8,%rax,4)
+# INTEL: ccmpl {of} word ptr [r8 + 4*rax + 123], 1234
+0x62,0xd4,0x45,0x0c,0x81,0x7c,0x80,0x7b,0xd2,0x04
+
+# ATT: ccmpll {of} $123, 123(%r8,%rax,4)
+# INTEL: ccmpl {of} dword ptr [r8 + 4*rax + 123], 123
+0x62,0xd4,0x44,0x0c,0x83,0x7c,0x80,0x7b,0x7b
+
+# ATT: ccmpll {of} $123456, 123(%r8,%rax,4)
+# INTEL: ccmpl {of} dword ptr [r8 + 4*rax + 123], 123456
+0x62,0xd4,0x44,0x0c,0x81,0x7c,0x80,0x7b,0x40,0xe2,0x01,0x00
+
+# ATT: ccmplq {of} $123, 123(%r8,%rax,4)
+# INTEL: ccmpl {of} qword ptr [r8 + 4*rax + 123], 123
+0x62,0xd4,0xc4,0x0c,0x83,0x7c,0x80,0x7b,0x7b
+
+# ATT: ccmplq {of} $123456, 123(%r8,%rax,4)
+# INTEL: ccmpl {of} qword ptr [r8 + 4*rax + 123], 123456
+0x62,0xd4,0xc4,0x0c,0x81,0x7c,0x80,0x7b,0x40,0xe2,0x01,0x00
+
+# ATT: ccmplb {of} %bl, 123(%r8,%rax,4)
+# INTEL: ccmpl {of} byte ptr [r8 + 4*rax + 123], bl
+0x62,0xd4,0x44,0x0c,0x38,0x5c,0x80,0x7b
+
+# ATT: ccmplw {of} %dx, 123(%r8,%rax,4)
+# INTEL: ccmpl {of} word ptr [r8 + 4*rax + 123], dx
+0x62,0xd4,0x45,0x0c,0x39,0x54,0x80,0x7b
+
+# ATT: ccmpll {of} %ecx, 123(%r8,%rax,4)
+# INTEL: ccmpl {of} dword ptr [r8 + 4*rax + 123], ecx
+0x62,0xd4,0x44,0x0c,0x39,0x4c,0x80,0x7b
+
+# ATT: ccmplq {of} %r9, 123(%r8,%rax,4)
+# INTEL: ccmpl {of} qword ptr [r8 + 4*rax + 123], r9
+0x62,0x54,0xc4,0x0c,0x39,0x4c,0x80,0x7b
+
+# ATT: ccmplb {of} 123(%r8,%rax,4), %bl
+# INTEL: ccmpl {of} bl, byte ptr [r8 + 4*rax + 123]
+0x62,0xd4,0x44,0x0c,0x3a,0x5c,0x80,0x7b
+
+# ATT: ccmplw {of} 123(%r8,%rax,4), %dx
+# INTEL: ccmpl {of} dx, word ptr [r8 + 4*rax + 123]
+0x62,0xd4,0x45,0x0c,0x3b,0x54,0x80,0x7b
+
+# ATT: ccmpll {of} 123(%r8,%rax,4), %ecx
+# INTEL: ccmpl {of} ecx, dword ptr [r8 + 4*rax + 123]
+0x62,0xd4,0x44,0x0c,0x3b,0x4c,0x80,0x7b
+
+# ATT: ccmplq {of} 123(%r8,%rax,4), %r9
+# INTEL: ccmpl {of} r9, qword ptr [r8 + 4*rax + 123]
+0x62,0x54,0xc4,0x0c,0x3b,0x4c,0x80,0x7b
+
+# ATT: ccmplb {of} $123, %bl
+# INTEL: ccmpl {of} bl, 123
+0x62,0xf4,0x44,0x0c,0x80,0xfb,0x7b
+
+# ATT: ccmplw {of} $123, %dx
+# INTEL: ccmpl {of} dx, 123
+0x62,0xf4,0x45,0x0c,0x83,0xfa,0x7b
+
+# ATT: ccmpll {of} $123, %ecx
+# INTEL: ccmpl {of} ecx, 123
+0x62,0xf4,0x44,0x0c,0x83,0xf9,0x7b
+
+# ATT: ccmplq {of} $123, %r9
+# INTEL: ccmpl {of} r9, 123
+0x62,0xd4,0xc4,0x0c,0x83,0xf9,0x7b
+
+# ATT: ccmplw {of} $1234, %dx
+# INTEL: ccmpl {of} dx, 1234
+0x62,0xf4,0x45,0x0c,0x81,0xfa,0xd2,0x04
+
+# ATT: ccmpll {of} $123456, %ecx
+# INTEL: ccmpl {of} ecx, 123456
+0x62,0xf4,0x44,0x0c,0x81,0xf9,0x40,0xe2,0x01,0x00
+
+# ATT: ccmplq {of} $123456, %r9
+# INTEL: ccmpl {of} r9, 123456
+0x62,0xd4,0xc4,0x0c,0x81,0xf9,0x40,0xe2,0x01,0x00
+
+# ATT: ccmplb {of} %bl, %dl
+# INTEL: ccmpl {of} dl, bl
+0x62,0xf4,0x44,0x0c,0x3a,0xd3
+
+# ATT: ccmplw {of} %dx, %ax
+# INTEL: ccmpl {of} ax, dx
+0x62,0xf4,0x45,0x0c,0x3b,0xc2
+
+# ATT: ccmpll {of} %ecx, %edx
+# INTEL: ccmpl {of} edx, ecx
+0x62,0xf4,0x44,0x0c,0x3b,0xd1
+
+# ATT: ccmplq {of} %r9, %r15
+# INTEL: ccmpl {of} r15, r9
+0x62,0x54,0xc4,0x0c,0x3b,0xf9
+
+# ATT: ccmpleb {of} $123, 123(%r8,%rax,4)
+# INTEL: ccmple {of} byte ptr [r8 + 4*rax + 123], 123
+0x62,0xd4,0x44,0x0e,0x80,0x7c,0x80,0x7b,0x7b
+
+# ATT: ccmplew {of} $123, 123(%r8,%rax,4)
+# INTEL: ccmple {of} word ptr [r8 + 4*rax + 123], 123
+0x62,0xd4,0x45,0x0e,0x83,0x7c,0x80,0x7b,0x7b
+
+# ATT: ccmplew {of} $1234, 123(%r8,%rax,4)
+# INTEL: ccmple {of} word ptr [r8 + 4*rax + 123], 1234
+0x62,0xd4,0x45,0x0e,0x81,0x7c,0x80,0x7b,0xd2,0x04
+
+# ATT: ccmplel {of} $123, 123(%r8,%rax,4)
+# INTEL: ccmple {of} dword ptr [r8 + 4*rax + 123], 123
+0x62,0xd4,0x44,0x0e,0x83,0x7c,0x80,0x7b,0x7b
+
+# ATT: ccmplel {of} $123456, 123(%r8,%rax,4)
+# INTEL: ccmple {of} dword ptr [r8 + 4*rax + 123], 123456
+0x62,0xd4,0x44,0x0e,0x81,0x7c,0x80,0x7b,0x40,0xe2,0x01,0x00
+
+# ATT: ccmpleq {of} $123, 123(%r8,%rax,4)
+# INTEL: ccmple {of} qword ptr [r8 + 4*rax + 123], 123
+0x62,0xd4,0xc4,0x0e,0x83,0x7c,0x80,0x7b,0x7b
+
+# ATT: ccmpleq {of} $123456, 123(%r8,%rax,4)
+# INTEL: ccmple {of} qword ptr [r8 + 4*rax + 123], 123456
+0x62,0xd4,0xc4,0x0e,0x81,0x7c,0x80,0x7b,0x40,0xe2,0x01,0x00
+
+# ATT: ccmpleb {of} %bl, 123(%r8,%rax,4)
+# INTEL: ccmple {of} byte ptr [r8 + 4*rax + 123], bl
+0x62,0xd4,0x44,0x0e,0x38,0x5c,0x80,0x7b
+
+# ATT: ccmplew {of} %dx, 123(%r8,%rax,4)
+# INTEL: ccmple {of} word ptr [r8 + 4*rax + 123], dx
+0x62,0xd4,0x45,0x0e,0x39,0x54,0x80,0x7b
+
+# ATT: ccmplel {of} %ecx, 123(%r8,%rax,4)
+# INTEL: ccmple {of} dword ptr [r8 + 4*rax + 123], ecx
+0x62,0xd4,0x44,0x0e,0x39,0x4c,0x80,0x7b
+
+# ATT: ccmpleq {of} %r9, 123(%r8,%rax,4)
+# INTEL: ccmple {of} qword ptr [r8 + 4*rax + 123], r9
+0x62,0x54,0xc4,0x0e,0x39,0x4c,0x80,0x7b
+
+# ATT: ccmpleb {of} 123(%r8,%rax,4), %bl
+# INTEL: ccmple {of} bl, byte ptr [r8 + 4*rax + 123]
+0x62,0xd4,0x44,0x0e,0x3a,0x5c,0x80,0x7b
+
+# ATT: ccmplew {of} 123(%r8,%rax,4), %dx
+# INTEL: ccmple {of} dx, word ptr [r8 + 4*rax + 123]
+0x62,0xd4,0x45,0x0e,0x3b,0x54,0x80,0x7b
+
+# ATT: ccmplel {of} 123(%r8,%rax,4), %ecx
+# INTEL: ccmple {of} ecx, dword ptr [r8 + 4*rax + 123]
+0x62,0xd4,0x44,0x0e,0x3b,0x4c,0x80,0x7b
+
+# ATT: ccmpleq {of} 123(%r8,%rax,4), %r9
+# INTEL: ccmple {of} r9, qword ptr [r8 + 4*rax + 123]
+0x62,0x54,0xc4,0x0e,0x3b,0x4c,0x80,0x7b
+
+# ATT: ccmpleb {of} $123, %bl
+# INTEL: ccmple {of} bl, 123
+0x62,0xf4,0x44,0x0e,0x80,0xfb,0x7b
+
+# ATT: ccmplew {of} $123, %dx
+# INTEL: ccmple {of} dx, 123
+0x62,0xf4,0x45,0x0e,0x83,0xfa,0x7b
+
+# ATT: ccmplel {of} $123, %ecx
+# INTEL: ccmple {of} ecx, 123
+0x62,0xf4,0x44,0x0e,0x83,0xf9,0x7b
+
+# ATT: ccmpleq {of} $123, %r9
+# INTEL: ccmple {of} r9, 123
+0x62,0xd4,0xc4,0x0e,0x83,0xf9,0x7b
+
+# ATT: ccmplew {of} $1234, %dx
+# INTEL: ccmple {of} dx, 1234
+0x62,0xf4,0x45,0x0e,0x81,0xfa,0xd2,0x04
+
+# ATT: ccmplel {of} $123456, %ecx
+# INTEL: ccmple {of} ecx, 123456
+0x62,0xf4,0x44,0x0e,0x81,0xf9,0x40,0xe2,0x01,0x00
+
+# ATT: ccmpleq {of} $123456, %r9
+# INTEL: ccmple {of} r9, 123456
+0x62,0xd4,0xc4,0x0e,0x81,0xf9,0x40,0xe2,0x01,0x00
+
+# ATT: ccmpleb {of} %bl, %dl
+# INTEL: ccmple {of} dl, bl
+0x62,0xf4,0x44,0x0e,0x3a,0xd3
+
+# ATT: ccmplew {of} %dx, %ax
+# INTEL: ccmple {of} ax, dx
+0x62,0xf4,0x45,0x0e,0x3b,0xc2
+
+# ATT: ccmplel {of} %ecx, %edx
+# INTEL: ccmple {of} edx, ecx
+0x62,0xf4,0x44,0x0e,0x3b,0xd1
+
+# ATT: ccmpleq {of} %r9, %r15
+# INTEL: ccmple {of} r15, r9
+0x62,0x54,0xc4,0x0e,0x3b,0xf9
+
+# ATT: ccmpaeb {of} $123, 123(%r8,%rax,4)
+# INTEL: ccmpae {of} byte ptr [r8 + 4*rax + 123], 123
+0x62,0xd4,0x44,0x03,0x80,0x7c,0x80,0x7b,0x7b
+
+# ATT: ccmpaew {of} $123, 123(%r8,%rax,4)
+# INTEL: ccmpae {of} word ptr [r8 + 4*rax + 123], 123
+0x62,0xd4,0x45,0x03,0x83,0x7c,0x80,0x7b,0x7b
+
+# ATT: ccmpaew {of} $1234, 123(%r8,%rax,4)
+# INTEL: ccmpae {of} word ptr [r8 + 4*rax + 123], 1234
+0x62,0xd4,0x45,0x03,0x81,0x7c,0x80,0x7b,0xd2,0x04
+
+# ATT: ccmpael {of} $123, 123(%r8,%rax,4)
+# INTEL: ccmpae {of} dword ptr [r8 + 4*rax + 123], 123
+0x62,0xd4,0x44,0x03,0x83,0x7c,0x80,0x7b,0x7b
+
+# ATT: ccmpael {of} $123456, 123(%r8,%rax,4)
+# INTEL: ccmpae {of} dword ptr [r8 + 4*rax + 123], 123456
+0x62,0xd4,0x44,0x03,0x81,0x7c,0x80,0x7b,0x40,0xe2,0x01,0x00
+
+# ATT: ccmpaeq {of} $123, 123(%r8,%rax,4)
+# INTEL: ccmpae {of} qword ptr [r8 + 4*rax + 123], 123
+0x62,0xd4,0xc4,0x03,0x83,0x7c,0x80,0x7b,0x7b
+
+# ATT: ccmpaeq {of} $123456, 123(%r8,%rax,4)
+# INTEL: ccmpae {of} qword ptr [r8 + 4*rax + 123], 123456
+0x62,0xd4,0xc4,0x03,0x81,0x7c,0x80,0x7b,0x40,0xe2,0x01,0x00
+
+# ATT: ccmpaeb {of} %bl, 123(%r8,%rax,4)
+# INTEL: ccmpae {of} byte ptr [r8 + 4*rax + 123], bl
+0x62,0xd4,0x44,0x03,0x38,0x5c,0x80,0x7b
+
+# ATT: ccmpaew {of} %dx, 123(%r8,%rax,4)
+# INTEL: ccmpae {of} word ptr [r8 + 4*rax + 123], dx
+0x62,0xd4,0x45,0x03,0x39,0x54,0x80,0x7b
+
+# ATT: ccmpael {of} %ecx, 123(%r8,%rax,4)
+# INTEL: ccmpae {of} dword ptr [r8 + 4*rax + 123], ecx
+0x62,0xd4,0x44,0x03,0x39,0x4c,0x80,0x7b
+
+# ATT: ccmpaeq {of} %r9, 123(%r8,%rax,4)
+# INTEL: ccmpae {of} qword ptr [r8 + 4*rax + 123], r9
+0x62,0x54,0xc4,0x03,0x39,0x4c,0x80,0x7b
+
+# ATT: ccmpaeb {of} 123(%r8,%rax,4), %bl
+# INTEL: ccmpae {of} bl, byte ptr [r8 + 4*rax + 123]
+0x62,0xd4,0x44,0x03,0x3a,0x5c,0x80,0x7b
+
+# ATT: ccmpaew {of} 123(%r8,%rax,4), %dx
+# INTEL: ccmpae {of} dx, word ptr [r8 + 4*rax + 123]
+0x62,0xd4,0x45,0x03,0x3b,0x54,0x80,0x7b
+
+# ATT: ccmpael {of} 123(%r8,%rax,4), %ecx
+# INTEL: ccmpae {of} ecx, dword ptr [r8 + 4*rax + 123]
+0x62,0xd4,0x44,0x03,0x3b,0x4c,0x80,0x7b
+
+# ATT: ccmpaeq {of} 123(%r8,%rax,4), %r9
+# INTEL: ccmpae {of} r9, qword ptr [r8 + 4*rax + 123]
+0x62,0x54,0xc4,0x03,0x3b,0x4c,0x80,0x7b
+
+# ATT: ccmpaeb {of} $123, %bl
+# INTEL: ccmpae {of} bl, 123
+0x62,0xf4,0x44,0x03,0x80,0xfb,0x7b
+
+# ATT: ccmpaew {of} $123, %dx
+# INTEL: ccmpae {of} dx, 123
+0x62,0xf4,0x45,0x03,0x83,0xfa,0x7b
+
+# ATT: ccmpael {of} $123, %ecx
+# INTEL: ccmpae {of} ecx, 123
+0x62,0xf4,0x44,0x03,0x83,0xf9,0x7b
+
+# ATT: ccmpaeq {of} $123, %r9
+# INTEL: ccmpae {of} r9, 123
+0x62,0xd4,0xc4,0x03,0x83,0xf9,0x7b
+
+# ATT: ccmpaew {of} $1234, %dx
+# INTEL: ccmpae {of} dx, 1234
+0x62,0xf4,0x45,0x03,0x81,0xfa,0xd2,0x04
+
+# ATT: ccmpael {of} $123456, %ecx
+# INTEL: ccmpae {of} ecx, 123456
+0x62,0xf4,0x44,0x03,0x81,0xf9,0x40,0xe2,0x01,0x00
+
+# ATT: ccmpaeq {of} $123456, %r9
+# INTEL: ccmpae {of} r9, 123456
+0x62,0xd4,0xc4,0x03,0x81,0xf9,0x40,0xe2,0x01,0x00
+
+# ATT: ccmpaeb {of} %bl, %dl
+# INTEL: ccmpae {of} dl, bl
+0x62,0xf4,0x44,0x03,0x3a,0xd3
+
+# ATT: ccmpaew {of} %dx, %ax
+# INTEL: ccmpae {of} ax, dx
+0x62,0xf4,0x45,0x03,0x3b,0xc2
+
+# ATT: ccmpael {of} %ecx, %edx
+# INTEL: ccmpae {of} edx, ecx
+0x62,0xf4,0x44,0x03,0x3b,0xd1
+
+# ATT: ccmpaeq {of} %r9, %r15
+# INTEL: ccmpae {of} r15, r9
+0x62,0x54,0xc4,0x03,0x3b,0xf9
+
+# ATT: ccmpab {of} $123, 123(%r8,%rax,4)
+# INTEL: ccmpa {of} byte ptr [r8 + 4*rax + 123], 123
+0x62,0xd4,0x44,0x07,0x80,0x7c,0x80,0x7b,0x7b
+
+# ATT: ccmpaw {of} $123, 123(%r8,%rax,4)
+# INTEL: ccmpa {of} word ptr [r8 + 4*rax + 123], 123
+0x62,0xd4,0x45,0x07,0x83,0x7c,0x80,0x7b,0x7b
+
+# ATT: ccmpaw {of} $1234, 123(%r8,%rax,4)
+# INTEL: ccmpa {of} word ptr [r8 + 4*rax + 123], 1234
+0x62,0xd4,0x45,0x07,0x81,0x7c,0x80,0x7b,0xd2,0x04
+
+# ATT: ccmpal {of} $123, 123(%r8,%rax,4)
+# INTEL: ccmpa {of} dword ptr [r8 + 4*rax + 123], 123
+0x62,0xd4,0x44,0x07,0x83,0x7c,0x80,0x7b,0x7b
+
+# ATT: ccmpal {of} $123456, 123(%r8,%rax,4)
+# INTEL: ccmpa {of} dword ptr [r8 + 4*rax + 123], 123456
+0x62,0xd4,0x44,0x07,0x81,0x7c,0x80,0x7b,0x40,0xe2,0x01,0x00
+
+# ATT: ccmpaq {of} $123, 123(%r8,%rax,4)
+# INTEL: ccmpa {of} qword ptr [r8 + 4*rax + 123], 123
+0x62,0xd4,0xc4,0x07,0x83,0x7c,0x80,0x7b,0x7b
+
+# ATT: ccmpaq {of} $123456, 123(%r8,%rax,4)
+# INTEL: ccmpa {of} qword ptr [r8 + 4*rax + 123], 123456
+0x62,0xd4,0xc4,0x07,0x81,0x7c,0x80,0x7b,0x40,0xe2,0x01,0x00
+
+# ATT: ccmpab {of} %bl, 123(%r8,%rax,4)
+# INTEL: ccmpa {of} byte ptr [r8 + 4*rax + 123], bl
+0x62,0xd4,0x44,0x07,0x38,0x5c,0x80,0x7b
+
+# ATT: ccmpaw {of} %dx, 123(%r8,%rax,4)
+# INTEL: ccmpa {of} word ptr [r8 + 4*rax + 123], dx
+0x62,0xd4,0x45,0x07,0x39,0x54,0x80,0x7b
+
+# ATT: ccmpal {of} %ecx, 123(%r8,%rax,4)
+# INTEL: ccmpa {of} dword ptr [r8 + 4*rax + 123], ecx
+0x62,0xd4,0x44,0x07,0x39,0x4c,0x80,0x7b
+
+# ATT: ccmpaq {of} %r9, 123(%r8,%rax,4)
+# INTEL: ccmpa {of} qword ptr [r8 + 4*rax + 123], r9
+0x62,0x54,0xc4,0x07,0x39,0x4c,0x80,0x7b
+
+# ATT: ccmpab {of} 123(%r8,%rax,4), %bl
+# INTEL: ccmpa {of} bl, byte ptr [r8 + 4*rax + 123]
+0x62,0xd4,0x44,0x07,0x3a,0x5c,0x80,0x7b
+
+# ATT: ccmpaw {of} 123(%r8,%rax,4), %dx
+# INTEL: ccmpa {of} dx, word ptr [r8 + 4*rax + 123]
+0x62,0xd4,0x45,0x07,0x3b,0x54,0x80,0x7b
+
+# ATT: ccmpal {of} 123(%r8,%rax,4), %ecx
+# INTEL: ccmpa {of} ecx, dword ptr [r8 + 4*rax + 123]
+0x62,0xd4,0x44,0x07,0x3b,0x4c,0x80,0x7b
+
+# ATT: ccmpaq {of} 123(%r8,%rax,4), %r9
+# INTEL: ccmpa {of} r9, qword ptr [r8 + 4*rax + 123]
+0x62,0x54,0xc4,0x07,0x3b,0x4c,0x80,0x7b
+
+# ATT: ccmpab {of} $123, %bl
+# INTEL: ccmpa {of} bl, 123
+0x62,0xf4,0x44,0x07,0x80,0xfb,0x7b
+
+# ATT: ccmpaw {of} $123, %dx
+# INTEL: ccmpa {of} dx, 123
+0x62,0xf4,0x45,0x07,0x83,0xfa,0x7b
+
+# ATT: ccmpal {of} $123, %ecx
+# INTEL: ccmpa {of} ecx, 123
+0x62,0xf4,0x44,0x07,0x83,0xf9,0x7b
+
+# ATT: ccmpaq {of} $123, %r9
+# INTEL: ccmpa {of} r9, 123
+0x62,0xd4,0xc4,0x07,0x83,0xf9,0x7b
+
+# ATT: ccmpaw {of} $1234, %dx
+# INTEL: ccmpa {of} dx, 1234
+0x62,0xf4,0x45,0x07,0x81,0xfa,0xd2,0x04
+
+# ATT: ccmpal {of} $123456, %ecx
+# INTEL: ccmpa {of} ecx, 123456
+0x62,0xf4,0x44,0x07,0x81,0xf9,0x40,0xe2,0x01,0x00
+
+# ATT: ccmpaq {of} $123456, %r9
+# INTEL: ccmpa {of} r9, 123456
+0x62,0xd4,0xc4,0x07,0x81,0xf9,0x40,0xe2,0x01,0x00
+
+# ATT: ccmpab {of} %bl, %dl
+# INTEL: ccmpa {of} dl, bl
+0x62,0xf4,0x44,0x07,0x3a,0xd3
+
+# ATT: ccmpaw {of} %dx, %ax
+# INTEL: ccmpa {of} ax, dx
+0x62,0xf4,0x45,0x07,0x3b,0xc2
+
+# ATT: ccmpal {of} %ecx, %edx
+# INTEL: ccmpa {of} edx, ecx
+0x62,0xf4,0x44,0x07,0x3b,0xd1
+
+# ATT: ccmpaq {of} %r9, %r15
+# INTEL: ccmpa {of} r15, r9
+0x62,0x54,0xc4,0x07,0x3b,0xf9
+
+# ATT: ccmpgeb {of} $123, 123(%r8,%rax,4)
+# INTEL: ccmpge {of} byte ptr [r8 + 4*rax + 123], 123
+0x62,0xd4,0x44,0x0d,0x80,0x7c,0x80,0x7b,0x7b
+
+# ATT: ccmpgew {of} $123, 123(%r8,%rax,4)
+# INTEL: ccmpge {of} word ptr [r8 + 4*rax + 123], 123
+0x62,0xd4,0x45,0x0d,0x83,0x7c,0x80,0x7b,0x7b
+
+# ATT: ccmpgew {of} $1234, 123(%r8,%rax,4)
+# INTEL: ccmpge {of} word ptr [r8 + 4*rax + 123], 1234
+0x62,0xd4,0x45,0x0d,0x81,0x7c,0x80,0x7b,0xd2,0x04
+
+# ATT: ccmpgel {of} $123, 123(%r8,%rax,4)
+# INTEL: ccmpge {of} dword ptr [r8 + 4*rax + 123], 123
+0x62,0xd4,0x44,0x0d,0x83,0x7c,0x80,0x7b,0x7b
+
+# ATT: ccmpgel {of} $123456, 123(%r8,%rax,4)
+# INTEL: ccmpge {of} dword ptr [r8 + 4*rax + 123], 123456
+0x62,0xd4,0x44,0x0d,0x81,0x7c,0x80,0x7b,0x40,0xe2,0x01,0x00
+
+# ATT: ccmpgeq {of} $123, 123(%r8,%rax,4)
+# INTEL: ccmpge {of} qword ptr [r8 + 4*rax + 123], 123
+0x62,0xd4,0xc4,0x0d,0x83,0x7c,0x80,0x7b,0x7b
+
+# ATT: ccmpgeq {of} $123456, 123(%r8,%rax,4)
+# INTEL: ccmpge {of} qword ptr [r8 + 4*rax + 123], 123456
+0x62,0xd4,0xc4,0x0d,0x81,0x7c,0x80,0x7b,0x40,0xe2,0x01,0x00
+
+# ATT: ccmpgeb {of} %bl, 123(%r8,%rax,4)
+# INTEL: ccmpge {of} byte ptr [r8 + 4*rax + 123], bl
+0x62,0xd4,0x44,0x0d,0x38,0x5c,0x80,0x7b
+
+# ATT: ccmpgew {of} %dx, 123(%r8,%rax,4)
+# INTEL: ccmpge {of} word ptr [r8 + 4*rax + 123], dx
+0x62,0xd4,0x45,0x0d,0x39,0x54,0x80,0x7b
+
+# ATT: ccmpgel {of} %ecx, 123(%r8,%rax,4)
+# INTEL: ccmpge {of} dword ptr [r8 + 4*rax + 123], ecx
+0x62,0xd4,0x44,0x0d,0x39,0x4c,0x80,0x7b
+
+# ATT: ccmpgeq {of} %r9, 123(%r8,%rax,4)
+# INTEL: ccmpge {of} qword ptr [r8 + 4*rax + 123], r9
+0x62,0x54,0xc4,0x0d,0x39,0x4c,0x80,0x7b
+
+# ATT: ccmpgeb {of} 123(%r8,%rax,4), %bl
+# INTEL: ccmpge {of} bl, byte ptr [r8 + 4*rax + 123]
+0x62,0xd4,0x44,0x0d,0x3a,0x5c,0x80,0x7b
+
+# ATT: ccmpgew {of} 123(%r8,%rax,4), %dx
+# INTEL: ccmpge {of} dx, word ptr [r8 + 4*rax + 123]
+0x62,0xd4,0x45,0x0d,0x3b,0x54,0x80,0x7b
+
+# ATT: ccmpgel {of} 123(%r8,%rax,4), %ecx
+# INTEL: ccmpge {of} ecx, dword ptr [r8 + 4*rax + 123]
+0x62,0xd4,0x44,0x0d,0x3b,0x4c,0x80,0x7b
+
+# ATT: ccmpgeq {of} 123(%r8,%rax,4), %r9
+# INTEL: ccmpge {of} r9, qword ptr [r8 + 4*rax + 123]
+0x62,0x54,0xc4,0x0d,0x3b,0x4c,0x80,0x7b
+
+# ATT: ccmpgeb {of} $123, %bl
+# INTEL: ccmpge {of} bl, 123
+0x62,0xf4,0x44,0x0d,0x80,0xfb,0x7b
+
+# ATT: ccmpgew {of} $123, %dx
+# INTEL: ccmpge {of} dx, 123
+0x62,0xf4,0x45,0x0d,0x83,0xfa,0x7b
+
+# ATT: ccmpgel {of} $123, %ecx
+# INTEL: ccmpge {of} ecx, 123
+0x62,0xf4,0x44,0x0d,0x83,0xf9,0x7b
+
+# ATT: ccmpgeq {of} $123, %r9
+# INTEL: ccmpge {of} r9, 123
+0x62,0xd4,0xc4,0x0d,0x83,0xf9,0x7b
+
+# ATT: ccmpgew {of} $1234, %dx
+# INTEL: ccmpge {of} dx, 1234
+0x62,0xf4,0x45,0x0d,0x81,0xfa,0xd2,0x04
+
+# ATT: ccmpgel {of} $123456, %ecx
+# INTEL: ccmpge {of} ecx, 123456
+0x62,0xf4,0x44,0x0d,0x81,0xf9,0x40,0xe2,0x01,0x00
+
+# ATT: ccmpgeq {of} $123456, %r9
+# INTEL: ccmpge {of} r9, 123456
+0x62,0xd4,0xc4,0x0d,0x81,0xf9,0x40,0xe2,0x01,0x00
+
+# ATT: ccmpgeb {of} %bl, %dl
+# INTEL: ccmpge {of} dl, bl
+0x62,0xf4,0x44,0x0d,0x3a,0xd3
+
+# ATT: ccmpgew {of} %dx, %ax
+# INTEL: ccmpge {of} ax, dx
+0x62,0xf4,0x45,0x0d,0x3b,0xc2
+
+# ATT: ccmpgel {of} %ecx, %edx
+# INTEL: ccmpge {of} edx, ecx
+0x62,0xf4,0x44,0x0d,0x3b,0xd1
+
+# ATT: ccmpgeq {of} %r9, %r15
+# INTEL: ccmpge {of} r15, r9
+0x62,0x54,0xc4,0x0d,0x3b,0xf9
+
+# ATT: ccmpgb {of} $123, 123(%r8,%rax,4)
+# INTEL: ccmpg {of} byte ptr [r8 + 4*rax + 123], 123
+0x62,0xd4,0x44,0x0f,0x80,0x7c,0x80,0x7b,0x7b
+
+# ATT: ccmpgw {of} $123, 123(%r8,%rax,4)
+# INTEL: ccmpg {of} word ptr [r8 + 4*rax + 123], 123
+0x62,0xd4,0x45,0x0f,0x83,0x7c,0x80,0x7b,0x7b
+
+# ATT: ccmpgw {of} $1234, 123(%r8,%rax,4)
+# INTEL: ccmpg {of} word ptr [r8 + 4*rax + 123], 1234
+0x62,0xd4,0x45,0x0f,0x81,0x7c,0x80,0x7b,0xd2,0x04
+
+# ATT: ccmpgl {of} $123, 123(%r8,%rax,4)
+# INTEL: ccmpg {of} dword ptr [r8 + 4*rax + 123], 123
+0x62,0xd4,0x44,0x0f,0x83,0x7c,0x80,0x7b,0x7b
+
+# ATT: ccmpgl {of} $123456, 123(%r8,%rax,4)
+# INTEL: ccmpg {of} dword ptr [r8 + 4*rax + 123], 123456
+0x62,0xd4,0x44,0x0f,0x81,0x7c,0x80,0x7b,0x40,0xe2,0x01,0x00
+
+# ATT: ccmpgq {of} $123, 123(%r8,%rax,4)
+# INTEL: ccmpg {of} qword ptr [r8 + 4*rax + 123], 123
+0x62,0xd4,0xc4,0x0f,0x83,0x7c,0x80,0x7b,0x7b
+
+# ATT: ccmpgq {of} $123456, 123(%r8,%rax,4)
+# INTEL: ccmpg {of} qword ptr [r8 + 4*rax + 123], 123456
+0x62,0xd4,0xc4,0x0f,0x81,0x7c,0x80,0x7b,0x40,0xe2,0x01,0x00
+
+# ATT: ccmpgb {of} %bl, 123(%r8,%rax,4)
+# INTEL: ccmpg {of} byte ptr [r8 + 4*rax + 123], bl
+0x62,0xd4,0x44,0x0f,0x38,0x5c,0x80,0x7b
+
+# ATT: ccmpgw {of} %dx, 123(%r8,%rax,4)
+# INTEL: ccmpg {of} word ptr [r8 + 4*rax + 123], dx
+0x62,0xd4,0x45,0x0f,0x39,0x54,0x80,0x7b
+
+# ATT: ccmpgl {of} %ecx, 123(%r8,%rax,4)
+# INTEL: ccmpg {of} dword ptr [r8 + 4*rax + 123], ecx
+0x62,0xd4,0x44,0x0f,0x39,0x4c,0x80,0x7b
+
+# ATT: ccmpgq {of} %r9, 123(%r8,%rax,4)
+# INTEL: ccmpg {of} qword ptr [r8 + 4*rax + 123], r9
+0x62,0x54,0xc4,0x0f,0x39,0x4c,0x80,0x7b
+
+# ATT: ccmpgb {of} 123(%r8,%rax,4), %bl
+# INTEL: ccmpg {of} bl, byte ptr [r8 + 4*rax + 123]
+0x62,0xd4,0x44,0x0f,0x3a,0x5c,0x80,0x7b
+
+# ATT: ccmpgw {of} 123(%r8,%rax,4), %dx
+# INTEL: ccmpg {of} dx, word ptr [r8 + 4*rax + 123]
+0x62,0xd4,0x45,0x0f,0x3b,0x54,0x80,0x7b
+
+# ATT: ccmpgl {of} 123(%r8,%rax,4), %ecx
+# INTEL: ccmpg {of} ecx, dword ptr [r8 + 4*rax + 123]
+0x62,0xd4,0x44,0x0f,0x3b,0x4c,0x80,0x7b
+
+# ATT: ccmpgq {of} 123(%r8,%rax,4), %r9
+# INTEL: ccmpg {of} r9, qword ptr [r8 + 4*rax + 123]
+0x62,0x54,0xc4,0x0f,0x3b,0x4c,0x80,0x7b
+
+# ATT: ccmpgb {of} $123, %bl
+# INTEL: ccmpg {of} bl, 123
+0x62,0xf4,0x44,0x0f,0x80,0xfb,0x7b
+
+# ATT: ccmpgw {of} $123, %dx
+# INTEL: ccmpg {of} dx, 123
+0x62,0xf4,0x45,0x0f,0x83,0xfa,0x7b
+
+# ATT: ccmpgl {of} $123, %ecx
+# INTEL: ccmpg {of} ecx, 123
+0x62,0xf4,0x44,0x0f,0x83,0xf9,0x7b
+
+# ATT: ccmpgq {of} $123, %r9
+# INTEL: ccmpg {of} r9, 123
+0x62,0xd4,0xc4,0x0f,0x83,0xf9,0x7b
+
+# ATT: ccmpgw {of} $1234, %dx
+# INTEL: ccmpg {of} dx, 1234
+0x62,0xf4,0x45,0x0f,0x81,0xfa,0xd2,0x04
+
+# ATT: ccmpgl {of} $123456, %ecx
+# INTEL: ccmpg {of} ecx, 123456
+0x62,0xf4,0x44,0x0f,0x81,0xf9,0x40,0xe2,0x01,0x00
+
+# ATT: ccmpgq {of} $123456, %r9
+# INTEL: ccmpg {of} r9, 123456
+0x62,0xd4,0xc4,0x0f,0x81,0xf9,0x40,0xe2,0x01,0x00
+
+# ATT: ccmpgb {of} %bl, %dl
+# INTEL: ccmpg {of} dl, bl
+0x62,0xf4,0x44,0x0f,0x3a,0xd3
+
+# ATT: ccmpgw {of} %dx, %ax
+# INTEL: ccmpg {of} ax, dx
+0x62,0xf4,0x45,0x0f,0x3b,0xc2
+
+# ATT: ccmpgl {of} %ecx, %edx
+# INTEL: ccmpg {of} edx, ecx
+0x62,0xf4,0x44,0x0f,0x3b,0xd1
+
+# ATT: ccmpgq {of} %r9, %r15
+# INTEL: ccmpg {of} r15, r9
+0x62,0x54,0xc4,0x0f,0x3b,0xf9
+
+# ATT: ccmpnob {of} $123, 123(%r8,%rax,4)
+# INTEL: ccmpno {of} byte ptr [r8 + 4*rax + 123], 123
+0x62,0xd4,0x44,0x01,0x80,0x7c,0x80,0x7b,0x7b
+
+# ATT: ccmpnow {of} $123, 123(%r8,%rax,4)
+# INTEL: ccmpno {of} word ptr [r8 + 4*rax + 123], 123
+0x62,0xd4,0x45,0x01,0x83,0x7c,0x80,0x7b,0x7b
+
+# ATT: ccmpnow {of} $1234, 123(%r8,%rax,4)
+# INTEL: ccmpno {of} word ptr [r8 + 4*rax + 123], 1234
+0x62,0xd4,0x45,0x01,0x81,0x7c,0x80,0x7b,0xd2,0x04
+
+# ATT: ccmpnol {of} $123, 123(%r8,%rax,4)
+# INTEL: ccmpno {of} dword ptr [r8 + 4*rax + 123], 123
+0x62,0xd4,0x44,0x01,0x83,0x7c,0x80,0x7b,0x7b
+
+# ATT: ccmpnol {of} $123456, 123(%r8,%rax,4)
+# INTEL: ccmpno {of} dword ptr [r8 + 4*rax + 123], 123456
+0x62,0xd4,0x44,0x01,0x81,0x7c,0x80,0x7b,0x40,0xe2,0x01,0x00
+
+# ATT: ccmpnoq {of} $123, 123(%r8,%rax,4)
+# INTEL: ccmpno {of} qword ptr [r8 + 4*rax + 123], 123
+0x62,0xd4,0xc4,0x01,0x83,0x7c,0x80,0x7b,0x7b
+
+# ATT: ccmpnoq {of} $123456, 123(%r8,%rax,4)
+# INTEL: ccmpno {of} qword ptr [r8 + 4*rax + 123], 123456
+0x62,0xd4,0xc4,0x01,0x81,0x7c,0x80,0x7b,0x40,0xe2,0x01,0x00
+
+# ATT: ccmpnob {of} %bl, 123(%r8,%rax,4)
+# INTEL: ccmpno {of} byte ptr [r8 + 4*rax + 123], bl
+0x62,0xd4,0x44,0x01,0x38,0x5c,0x80,0x7b
+
+# ATT: ccmpnow {of} %dx, 123(%r8,%rax,4)
+# INTEL: ccmpno {of} word ptr [r8 + 4*rax + 123], dx
+0x62,0xd4,0x45,0x01,0x39,0x54,0x80,0x7b
+
+# ATT: ccmpnol {of} %ecx, 123(%r8,%rax,4)
+# INTEL: ccmpno {of} dword ptr [r8 + 4*rax + 123], ecx
+0x62,0xd4,0x44,0x01,0x39,0x4c,0x80,0x7b
+
+# ATT: ccmpnoq {of} %r9, 123(%r8,%rax,4)
+# INTEL: ccmpno {of} qword ptr [r8 + 4*rax + 123], r9
+0x62,0x54,0xc4,0x01,0x39,0x4c,0x80,0x7b
+
+# ATT: ccmpnob {of} 123(%r8,%rax,4), %bl
+# INTEL: ccmpno {of} bl, byte ptr [r8 + 4*rax + 123]
+0x62,0xd4,0x44,0x01,0x3a,0x5c,0x80,0x7b
+
+# ATT: ccmpnow {of} 123(%r8,%rax,4), %dx
+# INTEL: ccmpno {of} dx, word ptr [r8 + 4*rax + 123]
+0x62,0xd4,0x45,0x01,0x3b,0x54,0x80,0x7b
+
+# ATT: ccmpnol {of} 123(%r8,%rax,4), %ecx
+# INTEL: ccmpno {of} ecx, dword ptr [r8 + 4*rax + 123]
+0x62,0xd4,0x44,0x01,0x3b,0x4c,0x80,0x7b
+
+# ATT: ccmpnoq {of} 123(%r8,%rax,4), %r9
+# INTEL: ccmpno {of} r9, qword ptr [r8 + 4*rax + 123]
+0x62,0x54,0xc4,0x01,0x3b,0x4c,0x80,0x7b
+
+# ATT: ccmpnob {of} $123, %bl
+# INTEL: ccmpno {of} bl, 123
+0x62,0xf4,0x44,0x01,0x80,0xfb,0x7b
+
+# ATT: ccmpnow {of} $123, %dx
+# INTEL: ccmpno {of} dx, 123
+0x62,0xf4,0x45,0x01,0x83,0xfa,0x7b
+
+# ATT: ccmpnol {of} $123, %ecx
+# INTEL: ccmpno {of} ecx, 123
+0x62,0xf4,0x44,0x01,0x83,0xf9,0x7b
+
+# ATT: ccmpnoq {of} $123, %r9
+# INTEL: ccmpno {of} r9, 123
+0x62,0xd4,0xc4,0x01,0x83,0xf9,0x7b
+
+# ATT: ccmpnow {of} $1234, %dx
+# INTEL: ccmpno {of} dx, 1234
+0x62,0xf4,0x45,0x01,0x81,0xfa,0xd2,0x04
+
+# ATT: ccmpnol {of} $123456, %ecx
+# INTEL: ccmpno {of} ecx, 123456
+0x62,0xf4,0x44,0x01,0x81,0xf9,0x40,0xe2,0x01,0x00
+
+# ATT: ccmpnoq {of} $123456, %r9
+# INTEL: ccmpno {of} r9, 123456
+0x62,0xd4,0xc4,0x01,0x81,0xf9,0x40,0xe2,0x01,0x00
+
+# ATT: ccmpnob {of} %bl, %dl
+# INTEL: ccmpno {of} dl, bl
+0x62,0xf4,0x44,0x01,0x3a,0xd3
+
+# ATT: ccmpnow {of} %dx, %ax
+# INTEL: ccmpno {of} ax, dx
+0x62,0xf4,0x45,0x01,0x3b,0xc2
+
+# ATT: ccmpnol {of} %ecx, %edx
+# INTEL: ccmpno {of} edx, ecx
+0x62,0xf4,0x44,0x01,0x3b,0xd1
+
+# ATT: ccmpnoq {of} %r9, %r15
+# INTEL: ccmpno {of} r15, r9
+0x62,0x54,0xc4,0x01,0x3b,0xf9
+
+# ATT: ccmpnsb {of} $123, 123(%r8,%rax,4)
+# INTEL: ccmpns {of} byte ptr [r8 + 4*rax + 123], 123
+0x62,0xd4,0x44,0x09,0x80,0x7c,0x80,0x7b,0x7b
+
+# ATT: ccmpnsw {of} $123, 123(%r8,%rax,4)
+# INTEL: ccmpns {of} word ptr [r8 + 4*rax + 123], 123
+0x62,0xd4,0x45,0x09,0x83,0x7c,0x80,0x7b,0x7b
+
+# ATT: ccmpnsw {of} $1234, 123(%r8,%rax,4)
+# INTEL: ccmpns {of} word ptr [r8 + 4*rax + 123], 1234
+0x62,0xd4,0x45,0x09,0x81,0x7c,0x80,0x7b,0xd2,0x04
+
+# ATT: ccmpnsl {of} $123, 123(%r8,%rax,4)
+# INTEL: ccmpns {of} dword ptr [r8 + 4*rax + 123], 123
+0x62,0xd4,0x44,0x09,0x83,0x7c,0x80,0x7b,0x7b
+
+# ATT: ccmpnsl {of} $123456, 123(%r8,%rax,4)
+# INTEL: ccmpns {of} dword ptr [r8 + 4*rax + 123], 123456
+0x62,0xd4,0x44,0x09,0x81,0x7c,0x80,0x7b,0x40,0xe2,0x01,0x00
+
+# ATT: ccmpnsq {of} $123, 123(%r8,%rax,4)
+# INTEL: ccmpns {of} qword ptr [r8 + 4*rax + 123], 123
+0x62,0xd4,0xc4,0x09,0x83,0x7c,0x80,0x7b,0x7b
+
+# ATT: ccmpnsq {of} $123456, 123(%r8,%rax,4)
+# INTEL: ccmpns {of} qword ptr [r8 + 4*rax + 123], 123456
+0x62,0xd4,0xc4,0x09,0x81,0x7c,0x80,0x7b,0x40,0xe2,0x01,0x00
+
+# ATT: ccmpnsb {of} %bl, 123(%r8,%rax,4)
+# INTEL: ccmpns {of} byte ptr [r8 + 4*rax + 123], bl
+0x62,0xd4,0x44,0x09,0x38,0x5c,0x80,0x7b
+
+# ATT: ccmpnsw {of} %dx, 123(%r8,%rax,4)
+# INTEL: ccmpns {of} word ptr [r8 + 4*rax + 123], dx
+0x62,0xd4,0x45,0x09,0x39,0x54,0x80,0x7b
+
+# ATT: ccmpnsl {of} %ecx, 123(%r8,%rax,4)
+# INTEL: ccmpns {of} dword ptr [r8 + 4*rax + 123], ecx
+0x62,0xd4,0x44,0x09,0x39,0x4c,0x80,0x7b
+
+# ATT: ccmpnsq {of} %r9, 123(%r8,%rax,4)
+# INTEL: ccmpns {of} qword ptr [r8 + 4*rax + 123], r9
+0x62,0x54,0xc4,0x09,0x39,0x4c,0x80,0x7b
+
+# ATT: ccmpnsb {of} 123(%r8,%rax,4), %bl
+# INTEL: ccmpns {of} bl, byte ptr [r8 + 4*rax + 123]
+0x62,0xd4,0x44,0x09,0x3a,0x5c,0x80,0x7b
+
+# ATT: ccmpnsw {of} 123(%r8,%rax,4), %dx
+# INTEL: ccmpns {of} dx, word ptr [r8 + 4*rax + 123]
+0x62,0xd4,0x45,0x09,0x3b,0x54,0x80,0x7b
+
+# ATT: ccmpnsl {of} 123(%r8,%rax,4), %ecx
+# INTEL: ccmpns {of} ecx, dword ptr [r8 + 4*rax + 123]
+0x62,0xd4,0x44,0x09,0x3b,0x4c,0x80,0x7b
+
+# ATT: ccmpnsq {of} 123(%r8,%rax,4), %r9
+# INTEL: ccmpns {of} r9, qword ptr [r8 + 4*rax + 123]
+0x62,0x54,0xc4,0x09,0x3b,0x4c,0x80,0x7b
+
+# ATT: ccmpnsb {of} $123, %bl
+# INTEL: ccmpns {of} bl, 123
+0x62,0xf4,0x44,0x09,0x80,0xfb,0x7b
+
+# ATT: ccmpnsw {of} $123, %dx
+# INTEL: ccmpns {of} dx, 123
+0x62,0xf4,0x45,0x09,0x83,0xfa,0x7b
+
+# ATT: ccmpnsl {of} $123, %ecx
+# INTEL: ccmpns {of} ecx, 123
+0x62,0xf4,0x44,0x09,0x83,0xf9,0x7b
+
+# ATT: ccmpnsq {of} $123, %r9
+# INTEL: ccmpns {of} r9, 123
+0x62,0xd4,0xc4,0x09,0x83,0xf9,0x7b
+
+# ATT: ccmpnsw {of} $1234, %dx
+# INTEL: ccmpns {of} dx, 1234
+0x62,0xf4,0x45,0x09,0x81,0xfa,0xd2,0x04
+
+# ATT: ccmpnsl {of} $123456, %ecx
+# INTEL: ccmpns {of} ecx, 123456
+0x62,0xf4,0x44,0x09,0x81,0xf9,0x40,0xe2,0x01,0x00
+
+# ATT: ccmpnsq {of} $123456, %r9
+# INTEL: ccmpns {of} r9, 123456
+0x62,0xd4,0xc4,0x09,0x81,0xf9,0x40,0xe2,0x01,0x00
+
+# ATT: ccmpnsb {of} %bl, %dl
+# INTEL: ccmpns {of} dl, bl
+0x62,0xf4,0x44,0x09,0x3a,0xd3
+
+# ATT: ccmpnsw {of} %dx, %ax
+# INTEL: ccmpns {of} ax, dx
+0x62,0xf4,0x45,0x09,0x3b,0xc2
+
+# ATT: ccmpnsl {of} %ecx, %edx
+# INTEL: ccmpns {of} edx, ecx
+0x62,0xf4,0x44,0x09,0x3b,0xd1
+
+# ATT: ccmpnsq {of} %r9, %r15
+# INTEL: ccmpns {of} r15, r9
+0x62,0x54,0xc4,0x09,0x3b,0xf9
+
+# ATT: ccmpneb {of} $123, 123(%r8,%rax,4)
+# INTEL: ccmpne {of} byte ptr [r8 + 4*rax + 123], 123
+0x62,0xd4,0x44,0x05,0x80,0x7c,0x80,0x7b,0x7b
+
+# ATT: ccmpnew {of} $123, 123(%r8,%rax,4)
+# INTEL: ccmpne {of} word ptr [r8 + 4*rax + 123], 123
+0x62,0xd4,0x45,0x05,0x83,0x7c,0x80,0x7b,0x7b
+
+# ATT: ccmpnew {of} $1234, 123(%r8,%rax,4)
+# INTEL: ccmpne {of} word ptr [r8 + 4*rax + 123], 1234
+0x62,0xd4,0x45,0x05,0x81,0x7c,0x80,0x7b,0xd2,0x04
+
+# ATT: ccmpnel {of} $123, 123(%r8,%rax,4)
+# INTEL: ccmpne {of} dword ptr [r8 + 4*rax + 123], 123
+0x62,0xd4,0x44,0x05,0x83,0x7c,0x80,0x7b,0x7b
+
+# ATT: ccmpnel {of} $123456, 123(%r8,%rax,4)
+# INTEL: ccmpne {of} dword ptr [r8 + 4*rax + 123], 123456
+0x62,0xd4,0x44,0x05,0x81,0x7c,0x80,0x7b,0x40,0xe2,0x01,0x00
+
+# ATT: ccmpneq {of} $123, 123(%r8,%rax,4)
+# INTEL: ccmpne {of} qword ptr [r8 + 4*rax + 123], 123
+0x62,0xd4,0xc4,0x05,0x83,0x7c,0x80,0x7b,0x7b
+
+# ATT: ccmpneq {of} $123456, 123(%r8,%rax,4)
+# INTEL: ccmpne {of} qword ptr [r8 + 4*rax + 123], 123456
+0x62,0xd4,0xc4,0x05,0x81,0x7c,0x80,0x7b,0x40,0xe2,0x01,0x00
+
+# ATT: ccmpneb {of} %bl, 123(%r8,%rax,4)
+# INTEL: ccmpne {of} byte ptr [r8 + 4*rax + 123], bl
+0x62,0xd4,0x44,0x05,0x38,0x5c,0x80,0x7b
+
+# ATT: ccmpnew {of} %dx, 123(%r8,%rax,4)
+# INTEL: ccmpne {of} word ptr [r8 + 4*rax + 123], dx
+0x62,0xd4,0x45,0x05,0x39,0x54,0x80,0x7b
+
+# ATT: ccmpnel {of} %ecx, 123(%r8,%rax,4)
+# INTEL: ccmpne {of} dword ptr [r8 + 4*rax + 123], ecx
+0x62,0xd4,0x44,0x05,0x39,0x4c,0x80,0x7b
+
+# ATT: ccmpneq {of} %r9, 123(%r8,%rax,4)
+# INTEL: ccmpne {of} qword ptr [r8 + 4*rax + 123], r9
+0x62,0x54,0xc4,0x05,0x39,0x4c,0x80,0x7b
+
+# ATT: ccmpneb {of} 123(%r8,%rax,4), %bl
+# INTEL: ccmpne {of} bl, byte ptr [r8 + 4*rax + 123]
+0x62,0xd4,0x44,0x05,0x3a,0x5c,0x80,0x7b
+
+# ATT: ccmpnew {of} 123(%r8,%rax,4), %dx
+# INTEL: ccmpne {of} dx, word ptr [r8 + 4*rax + 123]
+0x62,0xd4,0x45,0x05,0x3b,0x54,0x80,0x7b
+
+# ATT: ccmpnel {of} 123(%r8,%rax,4), %ecx
+# INTEL: ccmpne {of} ecx, dword ptr [r8 + 4*rax + 123]
+0x62,0xd4,0x44,0x05,0x3b,0x4c,0x80,0x7b
+
+# ATT: ccmpneq {of} 123(%r8,%rax,4), %r9
+# INTEL: ccmpne {of} r9, qword ptr [r8 + 4*rax + 123]
+0x62,0x54,0xc4,0x05,0x3b,0x4c,0x80,0x7b
+
+# ATT: ccmpneb {of} $123, %bl
+# INTEL: ccmpne {of} bl, 123
+0x62,0xf4,0x44,0x05,0x80,0xfb,0x7b
+
+# ATT: ccmpnew {of} $123, %dx
+# INTEL: ccmpne {of} dx, 123
+0x62,0xf4,0x45,0x05,0x83,0xfa,0x7b
+
+# ATT: ccmpnel {of} $123, %ecx
+# INTEL: ccmpne {of} ecx, 123
+0x62,0xf4,0x44,0x05,0x83,0xf9,0x7b
+
+# ATT: ccmpneq {of} $123, %r9
+# INTEL: ccmpne {of} r9, 123
+0x62,0xd4,0xc4,0x05,0x83,0xf9,0x7b
+
+# ATT: ccmpnew {of} $1234, %dx
+# INTEL: ccmpne {of} dx, 1234
+0x62,0xf4,0x45,0x05,0x81,0xfa,0xd2,0x04
+
+# ATT: ccmpnel {of} $123456, %ecx
+# INTEL: ccmpne {of} ecx, 123456
+0x62,0xf4,0x44,0x05,0x81,0xf9,0x40,0xe2,0x01,0x00
+
+# ATT: ccmpneq {of} $123456, %r9
+# INTEL: ccmpne {of} r9, 123456
+0x62,0xd4,0xc4,0x05,0x81,0xf9,0x40,0xe2,0x01,0x00
+
+# ATT: ccmpneb {of} %bl, %dl
+# INTEL: ccmpne {of} dl, bl
+0x62,0xf4,0x44,0x05,0x3a,0xd3
+
+# ATT: ccmpnew {of} %dx, %ax
+# INTEL: ccmpne {of} ax, dx
+0x62,0xf4,0x45,0x05,0x3b,0xc2
+
+# ATT: ccmpnel {of} %ecx, %edx
+# INTEL: ccmpne {of} edx, ecx
+0x62,0xf4,0x44,0x05,0x3b,0xd1
+
+# ATT: ccmpneq {of} %r9, %r15
+# INTEL: ccmpne {of} r15, r9
+0x62,0x54,0xc4,0x05,0x3b,0xf9
+
+# ATT: ccmpob {of} $123, 123(%r8,%rax,4)
+# INTEL: ccmpo {of} byte ptr [r8 + 4*rax + 123], 123
+0x62,0xd4,0x44,0x00,0x80,0x7c,0x80,0x7b,0x7b
+
+# ATT: ccmpow {of} $123, 123(%r8,%rax,4)
+# INTEL: ccmpo {of} word ptr [r8 + 4*rax + 123], 123
+0x62,0xd4,0x45,0x00,0x83,0x7c,0x80,0x7b,0x7b
+
+# ATT: ccmpow {of} $1234, 123(%r8,%rax,4)
+# INTEL: ccmpo {of} word ptr [r8 + 4*rax + 123], 1234
+0x62,0xd4,0x45,0x00,0x81,0x7c,0x80,0x7b,0xd2,0x04
+
+# ATT: ccmpol {of} $123, 123(%r8,%rax,4)
+# INTEL: ccmpo {of} dword ptr [r8 + 4*rax + 123], 123
+0x62,0xd4,0x44,0x00,0x83,0x7c,0x80,0x7b,0x7b
+
+# ATT: ccmpol {of} $123456, 123(%r8,%rax,4)
+# INTEL: ccmpo {of} dword ptr [r8 + 4*rax + 123], 123456
+0x62,0xd4,0x44,0x00,0x81,0x7c,0x80,0x7b,0x40,0xe2,0x01,0x00
+
+# ATT: ccmpoq {of} $123, 123(%r8,%rax,4)
+# INTEL: ccmpo {of} qword ptr [r8 + 4*rax + 123], 123
+0x62,0xd4,0xc4,0x00,0x83,0x7c,0x80,0x7b,0x7b
+
+# ATT: ccmpoq {of} $123456, 123(%r8,%rax,4)
+# INTEL: ccmpo {of} qword ptr [r8 + 4*rax + 123], 123456
+0x62,0xd4,0xc4,0x00,0x81,0x7c,0x80,0x7b,0x40,0xe2,0x01,0x00
+
+# ATT: ccmpob {of} %bl, 123(%r8,%rax,4)
+# INTEL: ccmpo {of} byte ptr [r8 + 4*rax + 123], bl
+0x62,0xd4,0x44,0x00,0x38,0x5c,0x80,0x7b
+
+# ATT: ccmpow {of} %dx, 123(%r8,%rax,4)
+# INTEL: ccmpo {of} word ptr [r8 + 4*rax + 123], dx
+0x62,0xd4,0x45,0x00,0x39,0x54,0x80,0x7b
+
+# ATT: ccmpol {of} %ecx, 123(%r8,%rax,4)
+# INTEL: ccmpo {of} dword ptr [r8 + 4*rax + 123], ecx
+0x62,0xd4,0x44,0x00,0x39,0x4c,0x80,0x7b
+
+# ATT: ccmpoq {of} %r9, 123(%r8,%rax,4)
+# INTEL: ccmpo {of} qword ptr [r8 + 4*rax + 123], r9
+0x62,0x54,0xc4,0x00,0x39,0x4c,0x80,0x7b
+
+# ATT: ccmpob {of} 123(%r8,%rax,4), %bl
+# INTEL: ccmpo {of} bl, byte ptr [r8 + 4*rax + 123]
+0x62,0xd4,0x44,0x00,0x3a,0x5c,0x80,0x7b
+
+# ATT: ccmpow {of} 123(%r8,%rax,4), %dx
+# INTEL: ccmpo {of} dx, word ptr [r8 + 4*rax + 123]
+0x62,0xd4,0x45,0x00,0x3b,0x54,0x80,0x7b
+
+# ATT: ccmpol {of} 123(%r8,%rax,4), %ecx
+# INTEL: ccmpo {of} ecx, dword ptr [r8 + 4*rax + 123]
+0x62,0xd4,0x44,0x00,0x3b,0x4c,0x80,0x7b
+
+# ATT: ccmpoq {of} 123(%r8,%rax,4), %r9
+# INTEL: ccmpo {of} r9, qword ptr [r8 + 4*rax + 123]
+0x62,0x54,0xc4,0x00,0x3b,0x4c,0x80,0x7b
+
+# ATT: ccmpob {of} $123, %bl
+# INTEL: ccmpo {of} bl, 123
+0x62,0xf4,0x44,0x00,0x80,0xfb,0x7b
+
+# ATT: ccmpow {of} $123, %dx
+# INTEL: ccmpo {of} dx, 123
+0x62,0xf4,0x45,0x00,0x83,0xfa,0x7b
+
+# ATT: ccmpol {of} $123, %ecx
+# INTEL: ccmpo {of} ecx, 123
+0x62,0xf4,0x44,0x00,0x83,0xf9,0x7b
+
+# ATT: ccmpoq {of} $123, %r9
+# INTEL: ccmpo {of} r9, 123
+0x62,0xd4,0xc4,0x00,0x83,0xf9,0x7b
+
+# ATT: ccmpow {of} $1234, %dx
+# INTEL: ccmpo {of} dx, 1234
+0x62,0xf4,0x45,0x00,0x81,0xfa,0xd2,0x04
+
+# ATT: ccmpol {of} $123456, %ecx
+# INTEL: ccmpo {of} ecx, 123456
+0x62,0xf4,0x44,0x00,0x81,0xf9,0x40,0xe2,0x01,0x00
+
+# ATT: ccmpoq {of} $123456, %r9
+# INTEL: ccmpo {of} r9, 123456
+0x62,0xd4,0xc4,0x00,0x81,0xf9,0x40,0xe2,0x01,0x00
+
+# ATT: ccmpob {of} %bl, %dl
+# INTEL: ccmpo {of} dl, bl
+0x62,0xf4,0x44,0x00,0x3a,0xd3
+
+# ATT: ccmpow {of} %dx, %ax
+# INTEL: ccmpo {of} ax, dx
+0x62,0xf4,0x45,0x00,0x3b,0xc2
+
+# ATT: ccmpol {of} %ecx, %edx
+# INTEL: ccmpo {of} edx, ecx
+0x62,0xf4,0x44,0x00,0x3b,0xd1
+
+# ATT: ccmpoq {of} %r9, %r15
+# INTEL: ccmpo {of} r15, r9
+0x62,0x54,0xc4,0x00,0x3b,0xf9
+
+# ATT: ccmpsb {of} $123, 123(%r8,%rax,4)
+# INTEL: ccmps {of} byte ptr [r8 + 4*rax + 123], 123
+0x62,0xd4,0x44,0x08,0x80,0x7c,0x80,0x7b,0x7b
+
+# ATT: ccmpsw {of} $123, 123(%r8,%rax,4)
+# INTEL: ccmps {of} word ptr [r8 + 4*rax + 123], 123
+0x62,0xd4,0x45,0x08,0x83,0x7c,0x80,0x7b,0x7b
+
+# ATT: ccmpsw {of} $1234, 123(%r8,%rax,4)
+# INTEL: ccmps {of} word ptr [r8 + 4*rax + 123], 1234
+0x62,0xd4,0x45,0x08,0x81,0x7c,0x80,0x7b,0xd2,0x04
+
+# ATT: ccmpsl {of} $123, 123(%r8,%rax,4)
+# INTEL: ccmps {of} dword ptr [r8 + 4*rax + 123], 123
+0x62,0xd4,0x44,0x08,0x83,0x7c,0x80,0x7b,0x7b
+
+# ATT: ccmpsl {of} $123456, 123(%r8,%rax,4)
+# INTEL: ccmps {of} dword ptr [r8 + 4*rax + 123], 123456
+0x62,0xd4,0x44,0x08,0x81,0x7c,0x80,0x7b,0x40,0xe2,0x01,0x00
+
+# ATT: ccmpsq {of} $123, 123(%r8,%rax,4)
+# INTEL: ccmps {of} qword ptr [r8 + 4*rax + 123], 123
+0x62,0xd4,0xc4,0x08,0x83,0x7c,0x80,0x7b,0x7b
+
+# ATT: ccmpsq {of} $123456, 123(%r8,%rax,4)
+# INTEL: ccmps {of} qword ptr [r8 + 4*rax + 123], 123456
+0x62,0xd4,0xc4,0x08,0x81,0x7c,0x80,0x7b,0x40,0xe2,0x01,0x00
+
+# ATT: ccmpsb {of} %bl, 123(%r8,%rax,4)
+# INTEL: ccmps {of} byte ptr [r8 + 4*rax + 123], bl
+0x62,0xd4,0x44,0x08,0x38,0x5c,0x80,0x7b
+
+# ATT: ccmpsw {of} %dx, 123(%r8,%rax,4)
+# INTEL: ccmps {of} word ptr [r8 + 4*rax + 123], dx
+0x62,0xd4,0x45,0x08,0x39,0x54,0x80,0x7b
+
+# ATT: ccmpsl {of} %ecx, 123(%r8,%rax,4)
+# INTEL: ccmps {of} dword ptr [r8 + 4*rax + 123], ecx
+0x62,0xd4,0x44,0x08,0x39,0x4c,0x80,0x7b
+
+# ATT: ccmpsq {of} %r9, 123(%r8,%rax,4)
+# INTEL: ccmps {of} qword ptr [r8 + 4*rax + 123], r9
+0x62,0x54,0xc4,0x08,0x39,0x4c,0x80,0x7b
+
+# ATT: ccmpsb {of} 123(%r8,%rax,4), %bl
+# INTEL: ccmps {of} bl, byte ptr [r8 + 4*rax + 123]
+0x62,0xd4,0x44,0x08,0x3a,0x5c,0x80,0x7b
+
+# ATT: ccmpsw {of} 123(%r8,%rax,4), %dx
+# INTEL: ccmps {of} dx, word ptr [r8 + 4*rax + 123]
+0x62,0xd4,0x45,0x08,0x3b,0x54,0x80,0x7b
+
+# ATT: ccmpsl {of} 123(%r8,%rax,4), %ecx
+# INTEL: ccmps {of} ecx, dword ptr [r8 + 4*rax + 123]
+0x62,0xd4,0x44,0x08,0x3b,0x4c,0x80,0x7b
+
+# ATT: ccmpsq {of} 123(%r8,%rax,4), %r9
+# INTEL: ccmps {of} r9, qword ptr [r8 + 4*rax + 123]
+0x62,0x54,0xc4,0x08,0x3b,0x4c,0x80,0x7b
+
+# ATT: ccmpsb {of} $123, %bl
+# INTEL: ccmps {of} bl, 123
+0x62,0xf4,0x44,0x08,0x80,0xfb,0x7b
+
+# ATT: ccmpsw {of} $123, %dx
+# INTEL: ccmps {of} dx, 123
+0x62,0xf4,0x45,0x08,0x83,0xfa,0x7b
+
+# ATT: ccmpsl {of} $123, %ecx
+# INTEL: ccmps {of} ecx, 123
+0x62,0xf4,0x44,0x08,0x83,0xf9,0x7b
+
+# ATT: ccmpsq {of} $123, %r9
+# INTEL: ccmps {of} r9, 123
+0x62,0xd4,0xc4,0x08,0x83,0xf9,0x7b
+
+# ATT: ccmpsw {of} $1234, %dx
+# INTEL: ccmps {of} dx, 1234
+0x62,0xf4,0x45,0x08,0x81,0xfa,0xd2,0x04
+
+# ATT: ccmpsl {of} $123456, %ecx
+# INTEL: ccmps {of} ecx, 123456
+0x62,0xf4,0x44,0x08,0x81,0xf9,0x40,0xe2,0x01,0x00
+
+# ATT: ccmpsq {of} $123456, %r9
+# INTEL: ccmps {of} r9, 123456
+0x62,0xd4,0xc4,0x08,0x81,0xf9,0x40,0xe2,0x01,0x00
+
+# ATT: ccmpsb {of} %bl, %dl
+# INTEL: ccmps {of} dl, bl
+0x62,0xf4,0x44,0x08,0x3a,0xd3
+
+# ATT: ccmpsw {of} %dx, %ax
+# INTEL: ccmps {of} ax, dx
+0x62,0xf4,0x45,0x08,0x3b,0xc2
+
+# ATT: ccmpsl {of} %ecx, %edx
+# INTEL: ccmps {of} edx, ecx
+0x62,0xf4,0x44,0x08,0x3b,0xd1
+
+# ATT: ccmpsq {of} %r9, %r15
+# INTEL: ccmps {of} r15, r9
+0x62,0x54,0xc4,0x08,0x3b,0xf9
+
+# ATT: ccmptb {of} $123, 123(%r8,%rax,4)
+# INTEL: ccmpt {of} byte ptr [r8 + 4*rax + 123], 123
+0x62,0xd4,0x44,0x0a,0x80,0x7c,0x80,0x7b,0x7b
+
+# ATT: ccmptw {of} $123, 123(%r8,%rax,4)
+# INTEL: ccmpt {of} word ptr [r8 + 4*rax + 123], 123
+0x62,0xd4,0x45,0x0a,0x83,0x7c,0x80,0x7b,0x7b
+
+# ATT: ccmptw {of} $1234, 123(%r8,%rax,4)
+# INTEL: ccmpt {of} word ptr [r8 + 4*rax + 123], 1234
+0x62,0xd4,0x45,0x0a,0x81,0x7c,0x80,0x7b,0xd2,0x04
+
+# ATT: ccmptl {of} $123, 123(%r8,%rax,4)
+# INTEL: ccmpt {of} dword ptr [r8 + 4*rax + 123], 123
+0x62,0xd4,0x44,0x0a,0x83,0x7c,0x80,0x7b,0x7b
+
+# ATT: ccmptl {of} $123456, 123(%r8,%rax,4)
+# INTEL: ccmpt {of} dword ptr [r8 + 4*rax + 123], 123456
+0x62,0xd4,0x44,0x0a,0x81,0x7c,0x80,0x7b,0x40,0xe2,0x01,0x00
+
+# ATT: ccmptq {of} $123, 123(%r8,%rax,4)
+# INTEL: ccmpt {of} qword ptr [r8 + 4*rax + 123], 123
+0x62,0xd4,0xc4,0x0a,0x83,0x7c,0x80,0x7b,0x7b
+
+# ATT: ccmptq {of} $123456, 123(%r8,%rax,4)
+# INTEL: ccmpt {of} qword ptr [r8 + 4*rax + 123], 123456
+0x62,0xd4,0xc4,0x0a,0x81,0x7c,0x80,0x7b,0x40,0xe2,0x01,0x00
+
+# ATT: ccmptb {of} %bl, 123(%r8,%rax,4)
+# INTEL: ccmpt {of} byte ptr [r8 + 4*rax + 123], bl
+0x62,0xd4,0x44,0x0a,0x38,0x5c,0x80,0x7b
+
+# ATT: ccmptw {of} %dx, 123(%r8,%rax,4)
+# INTEL: ccmpt {of} word ptr [r8 + 4*rax + 123], dx
+0x62,0xd4,0x45,0x0a,0x39,0x54,0x80,0x7b
+
+# ATT: ccmptl {of} %ecx, 123(%r8,%rax,4)
+# INTEL: ccmpt {of} dword ptr [r8 + 4*rax + 123], ecx
+0x62,0xd4,0x44,0x0a,0x39,0x4c,0x80,0x7b
+
+# ATT: ccmptq {of} %r9, 123(%r8,%rax,4)
+# INTEL: ccmpt {of} qword ptr [r8 + 4*rax + 123], r9
+0x62,0x54,0xc4,0x0a,0x39,0x4c,0x80,0x7b
+
+# ATT: ccmptb {of} 123(%r8,%rax,4), %bl
+# INTEL: ccmpt {of} bl, byte ptr [r8 + 4*rax + 123]
+0x62,0xd4,0x44,0x0a,0x3a,0x5c,0x80,0x7b
+
+# ATT: ccmptw {of} 123(%r8,%rax,4), %dx
+# INTEL: ccmpt {of} dx, word ptr [r8 + 4*rax + 123]
+0x62,0xd4,0x45,0x0a,0x3b,0x54,0x80,0x7b
+
+# ATT: ccmptl {of} 123(%r8,%rax,4), %ecx
+# INTEL: ccmpt {of} ecx, dword ptr [r8 + 4*rax + 123]
+0x62,0xd4,0x44,0x0a,0x3b,0x4c,0x80,0x7b
+
+# ATT: ccmptq {of} 123(%r8,%rax,4), %r9
+# INTEL: ccmpt {of} r9, qword ptr [r8 + 4*rax + 123]
+0x62,0x54,0xc4,0x0a,0x3b,0x4c,0x80,0x7b
+
+# ATT: ccmptb {of} $123, %bl
+# INTEL: ccmpt {of} bl, 123
+0x62,0xf4,0x44,0x0a,0x80,0xfb,0x7b
+
+# ATT: ccmptw {of} $123, %dx
+# INTEL: ccmpt {of} dx, 123
+0x62,0xf4,0x45,0x0a,0x83,0xfa,0x7b
+
+# ATT: ccmptl {of} $123, %ecx
+# INTEL: ccmpt {of} ecx, 123
+0x62,0xf4,0x44,0x0a,0x83,0xf9,0x7b
+
+# ATT: ccmptq {of} $123, %r9
+# INTEL: ccmpt {of} r9, 123
+0x62,0xd4,0xc4,0x0a,0x83,0xf9,0x7b
+
+# ATT: ccmptw {of} $1234, %dx
+# INTEL: ccmpt {of} dx, 1234
+0x62,0xf4,0x45,0x0a,0x81,0xfa,0xd2,0x04
+
+# ATT: ccmptl {of} $123456, %ecx
+# INTEL: ccmpt {of} ecx, 123456
+0x62,0xf4,0x44,0x0a,0x81,0xf9,0x40,0xe2,0x01,0x00
+
+# ATT: ccmptq {of} $123456, %r9
+# INTEL: ccmpt {of} r9, 123456
+0x62,0xd4,0xc4,0x0a,0x81,0xf9,0x40,0xe2,0x01,0x00
+
+# ATT: ccmptb {of} %bl, %dl
+# INTEL: ccmpt {of} dl, bl
+0x62,0xf4,0x44,0x0a,0x3a,0xd3
+
+# ATT: ccmptw {of} %dx, %ax
+# INTEL: ccmpt {of} ax, dx
+0x62,0xf4,0x45,0x0a,0x3b,0xc2
+
+# ATT: ccmptl {of} %ecx, %edx
+# INTEL: ccmpt {of} edx, ecx
+0x62,0xf4,0x44,0x0a,0x3b,0xd1
+
+# ATT: ccmptq {of} %r9, %r15
+# INTEL: ccmpt {of} r15, r9
+0x62,0x54,0xc4,0x0a,0x3b,0xf9
+
+# ATT: ccmpeb {of} $123, 123(%r8,%rax,4)
+# INTEL: ccmpe {of} byte ptr [r8 + 4*rax + 123], 123
+0x62,0xd4,0x44,0x04,0x80,0x7c,0x80,0x7b,0x7b
+
+# ATT: ccmpew {of} $123, 123(%r8,%rax,4)
+# INTEL: ccmpe {of} word ptr [r8 + 4*rax + 123], 123
+0x62,0xd4,0x45,0x04,0x83,0x7c,0x80,0x7b,0x7b
+
+# ATT: ccmpew {of} $1234, 123(%r8,%rax,4)
+# INTEL: ccmpe {of} word ptr [r8 + 4*rax + 123], 1234
+0x62,0xd4,0x45,0x04,0x81,0x7c,0x80,0x7b,0xd2,0x04
+
+# ATT: ccmpel {of} $123, 123(%r8,%rax,4)
+# INTEL: ccmpe {of} dword ptr [r8 + 4*rax + 123], 123
+0x62,0xd4,0x44,0x04,0x83,0x7c,0x80,0x7b,0x7b
+
+# ATT: ccmpel {of} $123456, 123(%r8,%rax,4)
+# INTEL: ccmpe {of} dword ptr [r8 + 4*rax + 123], 123456
+0x62,0xd4,0x44,0x04,0x81,0x7c,0x80,0x7b,0x40,0xe2,0x01,0x00
+
+# ATT: ccmpeq {of} $123, 123(%r8,%rax,4)
+# INTEL: ccmpe {of} qword ptr [r8 + 4*rax + 123], 123
+0x62,0xd4,0xc4,0x04,0x83,0x7c,0x80,0x7b,0x7b
+
+# ATT: ccmpeq {of} $123456, 123(%r8,%rax,4)
+# INTEL: ccmpe {of} qword ptr [r8 + 4*rax + 123], 123456
+0x62,0xd4,0xc4,0x04,0x81,0x7c,0x80,0x7b,0x40,0xe2,0x01,0x00
+
+# ATT: ccmpeb {of} %bl, 123(%r8,%rax,4)
+# INTEL: ccmpe {of} byte ptr [r8 + 4*rax + 123], bl
+0x62,0xd4,0x44,0x04,0x38,0x5c,0x80,0x7b
+
+# ATT: ccmpew {of} %dx, 123(%r8,%rax,4)
+# INTEL: ccmpe {of} word ptr [r8 + 4*rax + 123], dx
+0x62,0xd4,0x45,0x04,0x39,0x54,0x80,0x7b
+
+# ATT: ccmpel {of} %ecx, 123(%r8,%rax,4)
+# INTEL: ccmpe {of} dword ptr [r8 + 4*rax + 123], ecx
+0x62,0xd4,0x44,0x04,0x39,0x4c,0x80,0x7b
+
+# ATT: ccmpeq {of} %r9, 123(%r8,%rax,4)
+# INTEL: ccmpe {of} qword ptr [r8 + 4*rax + 123], r9
+0x62,0x54,0xc4,0x04,0x39,0x4c,0x80,0x7b
+
+# ATT: ccmpeb {of} 123(%r8,%rax,4), %bl
+# INTEL: ccmpe {of} bl, byte ptr [r8 + 4*rax + 123]
+0x62,0xd4,0x44,0x04,0x3a,0x5c,0x80,0x7b
+
+# ATT: ccmpew {of} 123(%r8,%rax,4), %dx
+# INTEL: ccmpe {of} dx, word ptr [r8 + 4*rax + 123]
+0x62,0xd4,0x45,0x04,0x3b,0x54,0x80,0x7b
+
+# ATT: ccmpel {of} 123(%r8,%rax,4), %ecx
+# INTEL: ccmpe {of} ecx, dword ptr [r8 + 4*rax + 123]
+0x62,0xd4,0x44,0x04,0x3b,0x4c,0x80,0x7b
+
+# ATT: ccmpeq {of} 123(%r8,%rax,4), %r9
+# INTEL: ccmpe {of} r9, qword ptr [r8 + 4*rax + 123]
+0x62,0x54,0xc4,0x04,0x3b,0x4c,0x80,0x7b
+
+# ATT: ccmpeb {of} $123, %bl
+# INTEL: ccmpe {of} bl, 123
+0x62,0xf4,0x44,0x04,0x80,0xfb,0x7b
+
+# ATT: ccmpew {of} $123, %dx
+# INTEL: ccmpe {of} dx, 123
+0x62,0xf4,0x45,0x04,0x83,0xfa,0x7b
+
+# ATT: ccmpel {of} $123, %ecx
+# INTEL: ccmpe {of} ecx, 123
+0x62,0xf4,0x44,0x04,0x83,0xf9,0x7b
+
+# ATT: ccmpeq {of} $123, %r9
+# INTEL: ccmpe {of} r9, 123
+0x62,0xd4,0xc4,0x04,0x83,0xf9,0x7b
+
+# ATT: ccmpew {of} $1234, %dx
+# INTEL: ccmpe {of} dx, 1234
+0x62,0xf4,0x45,0x04,0x81,0xfa,0xd2,0x04
+
+# ATT: ccmpel {of} $123456, %ecx
+# INTEL: ccmpe {of} ecx, 123456
+0x62,0xf4,0x44,0x04,0x81,0xf9,0x40,0xe2,0x01,0x00
+
+# ATT: ccmpeq {of} $123456, %r9
+# INTEL: ccmpe {of} r9, 123456
+0x62,0xd4,0xc4,0x04,0x81,0xf9,0x40,0xe2,0x01,0x00
+
+# ATT: ccmpeb {of} %bl, %dl
+# INTEL: ccmpe {of} dl, bl
+0x62,0xf4,0x44,0x04,0x3a,0xd3
+
+# ATT: ccmpew {of} %dx, %ax
+# INTEL: ccmpe {of} ax, dx
+0x62,0xf4,0x45,0x04,0x3b,0xc2
+
+# ATT: ccmpel {of} %ecx, %edx
+# INTEL: ccmpe {of} edx, ecx
+0x62,0xf4,0x44,0x04,0x3b,0xd1
+
+# ATT: ccmpeq {of} %r9, %r15
+# INTEL: ccmpe {of} r15, r9
+0x62,0x54,0xc4,0x04,0x3b,0xf9
diff --git a/llvm/test/MC/X86/apx/ccmp-att-error.s b/llvm/test/MC/X86/apx/ccmp-att-error.s
new file mode 100644
index 00000000000000..3321a2547a6b81
--- /dev/null
+++ b/llvm/test/MC/X86/apx/ccmp-att-error.s
@@ -0,0 +1,26 @@
+# RUN: not llvm-mc -triple x86_64 -show-encoding %s 2>&1 | FileCheck --strict-whitespace %s
+
+# CHECK: error: Expected { at this point
+# CHECK: ccmpeq $1 %rax, %rbx
+# CHECK: ^
+ccmpeq $1 %rax, %rbx
+
+# CHECK: error: Expected } or , at this point
+# CHECK: ccmpeq {sf,cf%rax, %rbx
+# CHECK: ^
+ccmpeq {sf,cf%rax, %rbx
+
+# CHECK: error: Invalid conditional flags
+# CHECK: ccmpeq {pf} %rax, %rbx
+# CHECK: ^
+ccmpeq {pf} %rax, %rbx
+
+# CHECK: error: Duplicated conditional flag
+# CHECK: ccmpeq {of,zf,of} %rax, %rbx
+# CHECK: ^
+ccmpeq {of,zf,of} %rax, %rbx
+
+# CHECK: error: Expected } at this point
+# CHECK: ccmpeq {of,sf,zf,cf,of} %rax, %rbx
+# CHECK: ^
+ccmpeq {of,sf,zf,cf,of} %rax, %rbx
diff --git a/llvm/test/MC/X86/apx/ccmp-att.s b/llvm/test/MC/X86/apx/ccmp-att.s
new file mode 100644
index 00000000000000..679ef93d7f6016
--- /dev/null
+++ b/llvm/test/MC/X86/apx/ccmp-att.s
@@ -0,0 +1,1213 @@
+# 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-401: error:
+# ERROR-NOT: error:
+## Condition flags
+
+# CHECK: ccmpoq {} %rax, %rbx
+# CHECK: encoding: [0x62,0xf4,0x84,0x00,0x39,0xc3]
+ ccmpoq {} %rax, %rbx
+# CHECK: ccmpoq {of} %rax, %rbx
+# CHECK: encoding: [0x62,0xf4,0xc4,0x00,0x39,0xc3]
+ ccmpoq {of} %rax, %rbx
+# CHECK: ccmpoq {sf} %rax, %rbx
+# CHECK: encoding: [0x62,0xf4,0xa4,0x00,0x39,0xc3]
+ ccmpoq {sf} %rax, %rbx
+# CHECK: ccmpoq {zf} %rax, %rbx
+# CHECK: encoding: [0x62,0xf4,0x94,0x00,0x39,0xc3]
+ ccmpoq {zf} %rax, %rbx
+# CHECK: ccmpoq {cf} %rax, %rbx
+# CHECK: encoding: [0x62,0xf4,0x8c,0x00,0x39,0xc3]
+ ccmpoq {cf} %rax, %rbx
+# CHECK: ccmpoq {of,sf} %rax, %rbx
+# CHECK: encoding: [0x62,0xf4,0xe4,0x00,0x39,0xc3]
+ ccmpoq {of,sf} %rax, %rbx
+# CHECK: ccmpoq {of,sf} %rax, %rbx
+# CHECK: encoding: [0x62,0xf4,0xe4,0x00,0x39,0xc3]
+ ccmpoq {sf,of} %rax, %rbx
+# CHECK: ccmpoq {of,sf,zf} %rax, %rbx
+# CHECK: encoding: [0x62,0xf4,0xf4,0x00,0x39,0xc3]
+ ccmpoq {of,sf,zf} %rax, %rbx
+# CHECK: ccmpoq {of,sf,zf} %rax, %rbx
+# CHECK: encoding: [0x62,0xf4,0xf4,0x00,0x39,0xc3]
+ ccmpoq {zf,of,sf} %rax, %rbx
+# CHECK: ccmpoq {of,sf,zf,cf} %rax, %rbx
+# CHECK: encoding: [0x62,0xf4,0xfc,0x00,0x39,0xc3]
+ ccmpoq {of,sf,zf,cf} %rax, %rbx
+# CHECK: ccmpoq {of,sf,zf,cf} %rax, %rbx
+# CHECK: encoding: [0x62,0xf4,0xfc,0x00,0x39,0xc3]
+ ccmpoq {cf,zf,sf,of} %rax, %rbx
+
+## Condition code
+
+# CHECK: ccmpbb {of} $123, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0x44,0x02,0x80,0x7c,0x80,0x7b,0x7b]
+ ccmpbb {of} $123, 123(%r8,%rax,4)
+# CHECK: ccmpbw {of} $123, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0x45,0x02,0x83,0x7c,0x80,0x7b,0x7b]
+ ccmpbw {of} $123, 123(%r8,%rax,4)
+# CHECK: ccmpbw {of} $1234, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0x45,0x02,0x81,0x7c,0x80,0x7b,0xd2,0x04]
+ ccmpbw {of} $1234, 123(%r8,%rax,4)
+# CHECK: ccmpbl {of} $123, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0x44,0x02,0x83,0x7c,0x80,0x7b,0x7b]
+ ccmpbl {of} $123, 123(%r8,%rax,4)
+# CHECK: ccmpbl {of} $123456, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0x44,0x02,0x81,0x7c,0x80,0x7b,0x40,0xe2,0x01,0x00]
+ ccmpbl {of} $123456, 123(%r8,%rax,4)
+# CHECK: ccmpbq {of} $123, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0xc4,0x02,0x83,0x7c,0x80,0x7b,0x7b]
+ ccmpbq {of} $123, 123(%r8,%rax,4)
+# CHECK: ccmpbq {of} $123456, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0xc4,0x02,0x81,0x7c,0x80,0x7b,0x40,0xe2,0x01,0x00]
+ ccmpbq {of} $123456, 123(%r8,%rax,4)
+# CHECK: ccmpbb {of} %bl, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0x44,0x02,0x38,0x5c,0x80,0x7b]
+ ccmpbb {of} %bl, 123(%r8,%rax,4)
+# CHECK: ccmpbw {of} %dx, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0x45,0x02,0x39,0x54,0x80,0x7b]
+ ccmpbw {of} %dx, 123(%r8,%rax,4)
+# CHECK: ccmpbl {of} %ecx, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0x44,0x02,0x39,0x4c,0x80,0x7b]
+ ccmpbl {of} %ecx, 123(%r8,%rax,4)
+# CHECK: ccmpbq {of} %r9, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0x54,0xc4,0x02,0x39,0x4c,0x80,0x7b]
+ ccmpbq {of} %r9, 123(%r8,%rax,4)
+# CHECK: ccmpbb {of} 123(%r8,%rax,4), %bl
+# CHECK: encoding: [0x62,0xd4,0x44,0x02,0x3a,0x5c,0x80,0x7b]
+ ccmpbb {of} 123(%r8,%rax,4), %bl
+# CHECK: ccmpbw {of} 123(%r8,%rax,4), %dx
+# CHECK: encoding: [0x62,0xd4,0x45,0x02,0x3b,0x54,0x80,0x7b]
+ ccmpbw {of} 123(%r8,%rax,4), %dx
+# CHECK: ccmpbl {of} 123(%r8,%rax,4), %ecx
+# CHECK: encoding: [0x62,0xd4,0x44,0x02,0x3b,0x4c,0x80,0x7b]
+ ccmpbl {of} 123(%r8,%rax,4), %ecx
+# CHECK: ccmpbq {of} 123(%r8,%rax,4), %r9
+# CHECK: encoding: [0x62,0x54,0xc4,0x02,0x3b,0x4c,0x80,0x7b]
+ ccmpbq {of} 123(%r8,%rax,4), %r9
+# CHECK: ccmpbb {of} $123, %bl
+# CHECK: encoding: [0x62,0xf4,0x44,0x02,0x80,0xfb,0x7b]
+ ccmpbb {of} $123, %bl
+# CHECK: ccmpbw {of} $123, %dx
+# CHECK: encoding: [0x62,0xf4,0x45,0x02,0x83,0xfa,0x7b]
+ ccmpbw {of} $123, %dx
+# CHECK: ccmpbl {of} $123, %ecx
+# CHECK: encoding: [0x62,0xf4,0x44,0x02,0x83,0xf9,0x7b]
+ ccmpbl {of} $123, %ecx
+# CHECK: ccmpbq {of} $123, %r9
+# CHECK: encoding: [0x62,0xd4,0xc4,0x02,0x83,0xf9,0x7b]
+ ccmpbq {of} $123, %r9
+# CHECK: ccmpbw {of} $1234, %dx
+# CHECK: encoding: [0x62,0xf4,0x45,0x02,0x81,0xfa,0xd2,0x04]
+ ccmpbw {of} $1234, %dx
+# CHECK: ccmpbl {of} $123456, %ecx
+# CHECK: encoding: [0x62,0xf4,0x44,0x02,0x81,0xf9,0x40,0xe2,0x01,0x00]
+ ccmpbl {of} $123456, %ecx
+# CHECK: ccmpbq {of} $123456, %r9
+# CHECK: encoding: [0x62,0xd4,0xc4,0x02,0x81,0xf9,0x40,0xe2,0x01,0x00]
+ ccmpbq {of} $123456, %r9
+# CHECK: ccmpbb {of} %bl, %dl
+# CHECK: encoding: [0x62,0xf4,0x44,0x02,0x38,0xda]
+ ccmpbb {of} %bl, %dl
+# CHECK: ccmpbw {of} %dx, %ax
+# CHECK: encoding: [0x62,0xf4,0x45,0x02,0x39,0xd0]
+ ccmpbw {of} %dx, %ax
+# CHECK: ccmpbl {of} %ecx, %edx
+# CHECK: encoding: [0x62,0xf4,0x44,0x02,0x39,0xca]
+ ccmpbl {of} %ecx, %edx
+# CHECK: ccmpbq {of} %r9, %r15
+# CHECK: encoding: [0x62,0x54,0xc4,0x02,0x39,0xcf]
+ ccmpbq {of} %r9, %r15
+# CHECK: ccmpfb {of} $123, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0x44,0x0b,0x80,0x7c,0x80,0x7b,0x7b]
+ ccmpfb {of} $123, 123(%r8,%rax,4)
+# CHECK: ccmpfw {of} $123, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0x45,0x0b,0x83,0x7c,0x80,0x7b,0x7b]
+ ccmpfw {of} $123, 123(%r8,%rax,4)
+# CHECK: ccmpfw {of} $1234, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0x45,0x0b,0x81,0x7c,0x80,0x7b,0xd2,0x04]
+ ccmpfw {of} $1234, 123(%r8,%rax,4)
+# CHECK: ccmpfl {of} $123, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0x44,0x0b,0x83,0x7c,0x80,0x7b,0x7b]
+ ccmpfl {of} $123, 123(%r8,%rax,4)
+# CHECK: ccmpfl {of} $123456, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0x44,0x0b,0x81,0x7c,0x80,0x7b,0x40,0xe2,0x01,0x00]
+ ccmpfl {of} $123456, 123(%r8,%rax,4)
+# CHECK: ccmpfq {of} $123, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0xc4,0x0b,0x83,0x7c,0x80,0x7b,0x7b]
+ ccmpfq {of} $123, 123(%r8,%rax,4)
+# CHECK: ccmpfq {of} $123456, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0xc4,0x0b,0x81,0x7c,0x80,0x7b,0x40,0xe2,0x01,0x00]
+ ccmpfq {of} $123456, 123(%r8,%rax,4)
+# CHECK: ccmpfb {of} %bl, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0x44,0x0b,0x38,0x5c,0x80,0x7b]
+ ccmpfb {of} %bl, 123(%r8,%rax,4)
+# CHECK: ccmpfw {of} %dx, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0x45,0x0b,0x39,0x54,0x80,0x7b]
+ ccmpfw {of} %dx, 123(%r8,%rax,4)
+# CHECK: ccmpfl {of} %ecx, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0x44,0x0b,0x39,0x4c,0x80,0x7b]
+ ccmpfl {of} %ecx, 123(%r8,%rax,4)
+# CHECK: ccmpfq {of} %r9, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0x54,0xc4,0x0b,0x39,0x4c,0x80,0x7b]
+ ccmpfq {of} %r9, 123(%r8,%rax,4)
+# CHECK: ccmpfb {of} 123(%r8,%rax,4), %bl
+# CHECK: encoding: [0x62,0xd4,0x44,0x0b,0x3a,0x5c,0x80,0x7b]
+ ccmpfb {of} 123(%r8,%rax,4), %bl
+# CHECK: ccmpfw {of} 123(%r8,%rax,4), %dx
+# CHECK: encoding: [0x62,0xd4,0x45,0x0b,0x3b,0x54,0x80,0x7b]
+ ccmpfw {of} 123(%r8,%rax,4), %dx
+# CHECK: ccmpfl {of} 123(%r8,%rax,4), %ecx
+# CHECK: encoding: [0x62,0xd4,0x44,0x0b,0x3b,0x4c,0x80,0x7b]
+ ccmpfl {of} 123(%r8,%rax,4), %ecx
+# CHECK: ccmpfq {of} 123(%r8,%rax,4), %r9
+# CHECK: encoding: [0x62,0x54,0xc4,0x0b,0x3b,0x4c,0x80,0x7b]
+ ccmpfq {of} 123(%r8,%rax,4), %r9
+# CHECK: ccmpfb {of} $123, %bl
+# CHECK: encoding: [0x62,0xf4,0x44,0x0b,0x80,0xfb,0x7b]
+ ccmpfb {of} $123, %bl
+# CHECK: ccmpfw {of} $123, %dx
+# CHECK: encoding: [0x62,0xf4,0x45,0x0b,0x83,0xfa,0x7b]
+ ccmpfw {of} $123, %dx
+# CHECK: ccmpfl {of} $123, %ecx
+# CHECK: encoding: [0x62,0xf4,0x44,0x0b,0x83,0xf9,0x7b]
+ ccmpfl {of} $123, %ecx
+# CHECK: ccmpfq {of} $123, %r9
+# CHECK: encoding: [0x62,0xd4,0xc4,0x0b,0x83,0xf9,0x7b]
+ ccmpfq {of} $123, %r9
+# CHECK: ccmpfw {of} $1234, %dx
+# CHECK: encoding: [0x62,0xf4,0x45,0x0b,0x81,0xfa,0xd2,0x04]
+ ccmpfw {of} $1234, %dx
+# CHECK: ccmpfl {of} $123456, %ecx
+# CHECK: encoding: [0x62,0xf4,0x44,0x0b,0x81,0xf9,0x40,0xe2,0x01,0x00]
+ ccmpfl {of} $123456, %ecx
+# CHECK: ccmpfq {of} $123456, %r9
+# CHECK: encoding: [0x62,0xd4,0xc4,0x0b,0x81,0xf9,0x40,0xe2,0x01,0x00]
+ ccmpfq {of} $123456, %r9
+# CHECK: ccmpfb {of} %bl, %dl
+# CHECK: encoding: [0x62,0xf4,0x44,0x0b,0x38,0xda]
+ ccmpfb {of} %bl, %dl
+# CHECK: ccmpfw {of} %dx, %ax
+# CHECK: encoding: [0x62,0xf4,0x45,0x0b,0x39,0xd0]
+ ccmpfw {of} %dx, %ax
+# CHECK: ccmpfl {of} %ecx, %edx
+# CHECK: encoding: [0x62,0xf4,0x44,0x0b,0x39,0xca]
+ ccmpfl {of} %ecx, %edx
+# CHECK: ccmpfq {of} %r9, %r15
+# CHECK: encoding: [0x62,0x54,0xc4,0x0b,0x39,0xcf]
+ ccmpfq {of} %r9, %r15
+# CHECK: ccmplb {of} $123, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0x44,0x0c,0x80,0x7c,0x80,0x7b,0x7b]
+ ccmplb {of} $123, 123(%r8,%rax,4)
+# CHECK: ccmplw {of} $123, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0x45,0x0c,0x83,0x7c,0x80,0x7b,0x7b]
+ ccmplw {of} $123, 123(%r8,%rax,4)
+# CHECK: ccmplw {of} $1234, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0x45,0x0c,0x81,0x7c,0x80,0x7b,0xd2,0x04]
+ ccmplw {of} $1234, 123(%r8,%rax,4)
+# CHECK: ccmpll {of} $123, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0x44,0x0c,0x83,0x7c,0x80,0x7b,0x7b]
+ ccmpll {of} $123, 123(%r8,%rax,4)
+# CHECK: ccmpll {of} $123456, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0x44,0x0c,0x81,0x7c,0x80,0x7b,0x40,0xe2,0x01,0x00]
+ ccmpll {of} $123456, 123(%r8,%rax,4)
+# CHECK: ccmplq {of} $123, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0xc4,0x0c,0x83,0x7c,0x80,0x7b,0x7b]
+ ccmplq {of} $123, 123(%r8,%rax,4)
+# CHECK: ccmplq {of} $123456, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0xc4,0x0c,0x81,0x7c,0x80,0x7b,0x40,0xe2,0x01,0x00]
+ ccmplq {of} $123456, 123(%r8,%rax,4)
+# CHECK: ccmplb {of} %bl, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0x44,0x0c,0x38,0x5c,0x80,0x7b]
+ ccmplb {of} %bl, 123(%r8,%rax,4)
+# CHECK: ccmplw {of} %dx, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0x45,0x0c,0x39,0x54,0x80,0x7b]
+ ccmplw {of} %dx, 123(%r8,%rax,4)
+# CHECK: ccmpll {of} %ecx, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0x44,0x0c,0x39,0x4c,0x80,0x7b]
+ ccmpll {of} %ecx, 123(%r8,%rax,4)
+# CHECK: ccmplq {of} %r9, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0x54,0xc4,0x0c,0x39,0x4c,0x80,0x7b]
+ ccmplq {of} %r9, 123(%r8,%rax,4)
+# CHECK: ccmplb {of} 123(%r8,%rax,4), %bl
+# CHECK: encoding: [0x62,0xd4,0x44,0x0c,0x3a,0x5c,0x80,0x7b]
+ ccmplb {of} 123(%r8,%rax,4), %bl
+# CHECK: ccmplw {of} 123(%r8,%rax,4), %dx
+# CHECK: encoding: [0x62,0xd4,0x45,0x0c,0x3b,0x54,0x80,0x7b]
+ ccmplw {of} 123(%r8,%rax,4), %dx
+# CHECK: ccmpll {of} 123(%r8,%rax,4), %ecx
+# CHECK: encoding: [0x62,0xd4,0x44,0x0c,0x3b,0x4c,0x80,0x7b]
+ ccmpll {of} 123(%r8,%rax,4), %ecx
+# CHECK: ccmplq {of} 123(%r8,%rax,4), %r9
+# CHECK: encoding: [0x62,0x54,0xc4,0x0c,0x3b,0x4c,0x80,0x7b]
+ ccmplq {of} 123(%r8,%rax,4), %r9
+# CHECK: ccmplb {of} $123, %bl
+# CHECK: encoding: [0x62,0xf4,0x44,0x0c,0x80,0xfb,0x7b]
+ ccmplb {of} $123, %bl
+# CHECK: ccmplw {of} $123, %dx
+# CHECK: encoding: [0x62,0xf4,0x45,0x0c,0x83,0xfa,0x7b]
+ ccmplw {of} $123, %dx
+# CHECK: ccmpll {of} $123, %ecx
+# CHECK: encoding: [0x62,0xf4,0x44,0x0c,0x83,0xf9,0x7b]
+ ccmpll {of} $123, %ecx
+# CHECK: ccmplq {of} $123, %r9
+# CHECK: encoding: [0x62,0xd4,0xc4,0x0c,0x83,0xf9,0x7b]
+ ccmplq {of} $123, %r9
+# CHECK: ccmplw {of} $1234, %dx
+# CHECK: encoding: [0x62,0xf4,0x45,0x0c,0x81,0xfa,0xd2,0x04]
+ ccmplw {of} $1234, %dx
+# CHECK: ccmpll {of} $123456, %ecx
+# CHECK: encoding: [0x62,0xf4,0x44,0x0c,0x81,0xf9,0x40,0xe2,0x01,0x00]
+ ccmpll {of} $123456, %ecx
+# CHECK: ccmplq {of} $123456, %r9
+# CHECK: encoding: [0x62,0xd4,0xc4,0x0c,0x81,0xf9,0x40,0xe2,0x01,0x00]
+ ccmplq {of} $123456, %r9
+# CHECK: ccmplb {of} %bl, %dl
+# CHECK: encoding: [0x62,0xf4,0x44,0x0c,0x38,0xda]
+ ccmplb {of} %bl, %dl
+# CHECK: ccmplw {of} %dx, %ax
+# CHECK: encoding: [0x62,0xf4,0x45,0x0c,0x39,0xd0]
+ ccmplw {of} %dx, %ax
+# CHECK: ccmpll {of} %ecx, %edx
+# CHECK: encoding: [0x62,0xf4,0x44,0x0c,0x39,0xca]
+ ccmpll {of} %ecx, %edx
+# CHECK: ccmplq {of} %r9, %r15
+# CHECK: encoding: [0x62,0x54,0xc4,0x0c,0x39,0xcf]
+ ccmplq {of} %r9, %r15
+# CHECK: ccmpleb {of} $123, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0x44,0x0e,0x80,0x7c,0x80,0x7b,0x7b]
+ ccmpleb {of} $123, 123(%r8,%rax,4)
+# CHECK: ccmplew {of} $123, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0x45,0x0e,0x83,0x7c,0x80,0x7b,0x7b]
+ ccmplew {of} $123, 123(%r8,%rax,4)
+# CHECK: ccmplew {of} $1234, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0x45,0x0e,0x81,0x7c,0x80,0x7b,0xd2,0x04]
+ ccmplew {of} $1234, 123(%r8,%rax,4)
+# CHECK: ccmplel {of} $123, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0x44,0x0e,0x83,0x7c,0x80,0x7b,0x7b]
+ ccmplel {of} $123, 123(%r8,%rax,4)
+# CHECK: ccmplel {of} $123456, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0x44,0x0e,0x81,0x7c,0x80,0x7b,0x40,0xe2,0x01,0x00]
+ ccmplel {of} $123456, 123(%r8,%rax,4)
+# CHECK: ccmpleq {of} $123, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0xc4,0x0e,0x83,0x7c,0x80,0x7b,0x7b]
+ ccmpleq {of} $123, 123(%r8,%rax,4)
+# CHECK: ccmpleq {of} $123456, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0xc4,0x0e,0x81,0x7c,0x80,0x7b,0x40,0xe2,0x01,0x00]
+ ccmpleq {of} $123456, 123(%r8,%rax,4)
+# CHECK: ccmpleb {of} %bl, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0x44,0x0e,0x38,0x5c,0x80,0x7b]
+ ccmpleb {of} %bl, 123(%r8,%rax,4)
+# CHECK: ccmplew {of} %dx, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0x45,0x0e,0x39,0x54,0x80,0x7b]
+ ccmplew {of} %dx, 123(%r8,%rax,4)
+# CHECK: ccmplel {of} %ecx, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0x44,0x0e,0x39,0x4c,0x80,0x7b]
+ ccmplel {of} %ecx, 123(%r8,%rax,4)
+# CHECK: ccmpleq {of} %r9, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0x54,0xc4,0x0e,0x39,0x4c,0x80,0x7b]
+ ccmpleq {of} %r9, 123(%r8,%rax,4)
+# CHECK: ccmpleb {of} 123(%r8,%rax,4), %bl
+# CHECK: encoding: [0x62,0xd4,0x44,0x0e,0x3a,0x5c,0x80,0x7b]
+ ccmpleb {of} 123(%r8,%rax,4), %bl
+# CHECK: ccmplew {of} 123(%r8,%rax,4), %dx
+# CHECK: encoding: [0x62,0xd4,0x45,0x0e,0x3b,0x54,0x80,0x7b]
+ ccmplew {of} 123(%r8,%rax,4), %dx
+# CHECK: ccmplel {of} 123(%r8,%rax,4), %ecx
+# CHECK: encoding: [0x62,0xd4,0x44,0x0e,0x3b,0x4c,0x80,0x7b]
+ ccmplel {of} 123(%r8,%rax,4), %ecx
+# CHECK: ccmpleq {of} 123(%r8,%rax,4), %r9
+# CHECK: encoding: [0x62,0x54,0xc4,0x0e,0x3b,0x4c,0x80,0x7b]
+ ccmpleq {of} 123(%r8,%rax,4), %r9
+# CHECK: ccmpleb {of} $123, %bl
+# CHECK: encoding: [0x62,0xf4,0x44,0x0e,0x80,0xfb,0x7b]
+ ccmpleb {of} $123, %bl
+# CHECK: ccmplew {of} $123, %dx
+# CHECK: encoding: [0x62,0xf4,0x45,0x0e,0x83,0xfa,0x7b]
+ ccmplew {of} $123, %dx
+# CHECK: ccmplel {of} $123, %ecx
+# CHECK: encoding: [0x62,0xf4,0x44,0x0e,0x83,0xf9,0x7b]
+ ccmplel {of} $123, %ecx
+# CHECK: ccmpleq {of} $123, %r9
+# CHECK: encoding: [0x62,0xd4,0xc4,0x0e,0x83,0xf9,0x7b]
+ ccmpleq {of} $123, %r9
+# CHECK: ccmplew {of} $1234, %dx
+# CHECK: encoding: [0x62,0xf4,0x45,0x0e,0x81,0xfa,0xd2,0x04]
+ ccmplew {of} $1234, %dx
+# CHECK: ccmplel {of} $123456, %ecx
+# CHECK: encoding: [0x62,0xf4,0x44,0x0e,0x81,0xf9,0x40,0xe2,0x01,0x00]
+ ccmplel {of} $123456, %ecx
+# CHECK: ccmpleq {of} $123456, %r9
+# CHECK: encoding: [0x62,0xd4,0xc4,0x0e,0x81,0xf9,0x40,0xe2,0x01,0x00]
+ ccmpleq {of} $123456, %r9
+# CHECK: ccmpleb {of} %bl, %dl
+# CHECK: encoding: [0x62,0xf4,0x44,0x0e,0x38,0xda]
+ ccmpleb {of} %bl, %dl
+# CHECK: ccmplew {of} %dx, %ax
+# CHECK: encoding: [0x62,0xf4,0x45,0x0e,0x39,0xd0]
+ ccmplew {of} %dx, %ax
+# CHECK: ccmplel {of} %ecx, %edx
+# CHECK: encoding: [0x62,0xf4,0x44,0x0e,0x39,0xca]
+ ccmplel {of} %ecx, %edx
+# CHECK: ccmpleq {of} %r9, %r15
+# CHECK: encoding: [0x62,0x54,0xc4,0x0e,0x39,0xcf]
+ ccmpleq {of} %r9, %r15
+# CHECK: ccmpaeb {of} $123, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0x44,0x03,0x80,0x7c,0x80,0x7b,0x7b]
+ ccmpaeb {of} $123, 123(%r8,%rax,4)
+# CHECK: ccmpaew {of} $123, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0x45,0x03,0x83,0x7c,0x80,0x7b,0x7b]
+ ccmpaew {of} $123, 123(%r8,%rax,4)
+# CHECK: ccmpaew {of} $1234, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0x45,0x03,0x81,0x7c,0x80,0x7b,0xd2,0x04]
+ ccmpaew {of} $1234, 123(%r8,%rax,4)
+# CHECK: ccmpael {of} $123, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0x44,0x03,0x83,0x7c,0x80,0x7b,0x7b]
+ ccmpael {of} $123, 123(%r8,%rax,4)
+# CHECK: ccmpael {of} $123456, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0x44,0x03,0x81,0x7c,0x80,0x7b,0x40,0xe2,0x01,0x00]
+ ccmpael {of} $123456, 123(%r8,%rax,4)
+# CHECK: ccmpaeq {of} $123, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0xc4,0x03,0x83,0x7c,0x80,0x7b,0x7b]
+ ccmpaeq {of} $123, 123(%r8,%rax,4)
+# CHECK: ccmpaeq {of} $123456, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0xc4,0x03,0x81,0x7c,0x80,0x7b,0x40,0xe2,0x01,0x00]
+ ccmpaeq {of} $123456, 123(%r8,%rax,4)
+# CHECK: ccmpaeb {of} %bl, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0x44,0x03,0x38,0x5c,0x80,0x7b]
+ ccmpaeb {of} %bl, 123(%r8,%rax,4)
+# CHECK: ccmpaew {of} %dx, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0x45,0x03,0x39,0x54,0x80,0x7b]
+ ccmpaew {of} %dx, 123(%r8,%rax,4)
+# CHECK: ccmpael {of} %ecx, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0x44,0x03,0x39,0x4c,0x80,0x7b]
+ ccmpael {of} %ecx, 123(%r8,%rax,4)
+# CHECK: ccmpaeq {of} %r9, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0x54,0xc4,0x03,0x39,0x4c,0x80,0x7b]
+ ccmpaeq {of} %r9, 123(%r8,%rax,4)
+# CHECK: ccmpaeb {of} 123(%r8,%rax,4), %bl
+# CHECK: encoding: [0x62,0xd4,0x44,0x03,0x3a,0x5c,0x80,0x7b]
+ ccmpaeb {of} 123(%r8,%rax,4), %bl
+# CHECK: ccmpaew {of} 123(%r8,%rax,4), %dx
+# CHECK: encoding: [0x62,0xd4,0x45,0x03,0x3b,0x54,0x80,0x7b]
+ ccmpaew {of} 123(%r8,%rax,4), %dx
+# CHECK: ccmpael {of} 123(%r8,%rax,4), %ecx
+# CHECK: encoding: [0x62,0xd4,0x44,0x03,0x3b,0x4c,0x80,0x7b]
+ ccmpael {of} 123(%r8,%rax,4), %ecx
+# CHECK: ccmpaeq {of} 123(%r8,%rax,4), %r9
+# CHECK: encoding: [0x62,0x54,0xc4,0x03,0x3b,0x4c,0x80,0x7b]
+ ccmpaeq {of} 123(%r8,%rax,4), %r9
+# CHECK: ccmpaeb {of} $123, %bl
+# CHECK: encoding: [0x62,0xf4,0x44,0x03,0x80,0xfb,0x7b]
+ ccmpaeb {of} $123, %bl
+# CHECK: ccmpaew {of} $123, %dx
+# CHECK: encoding: [0x62,0xf4,0x45,0x03,0x83,0xfa,0x7b]
+ ccmpaew {of} $123, %dx
+# CHECK: ccmpael {of} $123, %ecx
+# CHECK: encoding: [0x62,0xf4,0x44,0x03,0x83,0xf9,0x7b]
+ ccmpael {of} $123, %ecx
+# CHECK: ccmpaeq {of} $123, %r9
+# CHECK: encoding: [0x62,0xd4,0xc4,0x03,0x83,0xf9,0x7b]
+ ccmpaeq {of} $123, %r9
+# CHECK: ccmpaew {of} $1234, %dx
+# CHECK: encoding: [0x62,0xf4,0x45,0x03,0x81,0xfa,0xd2,0x04]
+ ccmpaew {of} $1234, %dx
+# CHECK: ccmpael {of} $123456, %ecx
+# CHECK: encoding: [0x62,0xf4,0x44,0x03,0x81,0xf9,0x40,0xe2,0x01,0x00]
+ ccmpael {of} $123456, %ecx
+# CHECK: ccmpaeq {of} $123456, %r9
+# CHECK: encoding: [0x62,0xd4,0xc4,0x03,0x81,0xf9,0x40,0xe2,0x01,0x00]
+ ccmpaeq {of} $123456, %r9
+# CHECK: ccmpaeb {of} %bl, %dl
+# CHECK: encoding: [0x62,0xf4,0x44,0x03,0x38,0xda]
+ ccmpaeb {of} %bl, %dl
+# CHECK: ccmpaew {of} %dx, %ax
+# CHECK: encoding: [0x62,0xf4,0x45,0x03,0x39,0xd0]
+ ccmpaew {of} %dx, %ax
+# CHECK: ccmpael {of} %ecx, %edx
+# CHECK: encoding: [0x62,0xf4,0x44,0x03,0x39,0xca]
+ ccmpael {of} %ecx, %edx
+# CHECK: ccmpaeq {of} %r9, %r15
+# CHECK: encoding: [0x62,0x54,0xc4,0x03,0x39,0xcf]
+ ccmpaeq {of} %r9, %r15
+# CHECK: ccmpab {of} $123, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0x44,0x07,0x80,0x7c,0x80,0x7b,0x7b]
+ ccmpab {of} $123, 123(%r8,%rax,4)
+# CHECK: ccmpaw {of} $123, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0x45,0x07,0x83,0x7c,0x80,0x7b,0x7b]
+ ccmpaw {of} $123, 123(%r8,%rax,4)
+# CHECK: ccmpaw {of} $1234, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0x45,0x07,0x81,0x7c,0x80,0x7b,0xd2,0x04]
+ ccmpaw {of} $1234, 123(%r8,%rax,4)
+# CHECK: ccmpal {of} $123, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0x44,0x07,0x83,0x7c,0x80,0x7b,0x7b]
+ ccmpal {of} $123, 123(%r8,%rax,4)
+# CHECK: ccmpal {of} $123456, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0x44,0x07,0x81,0x7c,0x80,0x7b,0x40,0xe2,0x01,0x00]
+ ccmpal {of} $123456, 123(%r8,%rax,4)
+# CHECK: ccmpaq {of} $123, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0xc4,0x07,0x83,0x7c,0x80,0x7b,0x7b]
+ ccmpaq {of} $123, 123(%r8,%rax,4)
+# CHECK: ccmpaq {of} $123456, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0xc4,0x07,0x81,0x7c,0x80,0x7b,0x40,0xe2,0x01,0x00]
+ ccmpaq {of} $123456, 123(%r8,%rax,4)
+# CHECK: ccmpab {of} %bl, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0x44,0x07,0x38,0x5c,0x80,0x7b]
+ ccmpab {of} %bl, 123(%r8,%rax,4)
+# CHECK: ccmpaw {of} %dx, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0x45,0x07,0x39,0x54,0x80,0x7b]
+ ccmpaw {of} %dx, 123(%r8,%rax,4)
+# CHECK: ccmpal {of} %ecx, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0x44,0x07,0x39,0x4c,0x80,0x7b]
+ ccmpal {of} %ecx, 123(%r8,%rax,4)
+# CHECK: ccmpaq {of} %r9, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0x54,0xc4,0x07,0x39,0x4c,0x80,0x7b]
+ ccmpaq {of} %r9, 123(%r8,%rax,4)
+# CHECK: ccmpab {of} 123(%r8,%rax,4), %bl
+# CHECK: encoding: [0x62,0xd4,0x44,0x07,0x3a,0x5c,0x80,0x7b]
+ ccmpab {of} 123(%r8,%rax,4), %bl
+# CHECK: ccmpaw {of} 123(%r8,%rax,4), %dx
+# CHECK: encoding: [0x62,0xd4,0x45,0x07,0x3b,0x54,0x80,0x7b]
+ ccmpaw {of} 123(%r8,%rax,4), %dx
+# CHECK: ccmpal {of} 123(%r8,%rax,4), %ecx
+# CHECK: encoding: [0x62,0xd4,0x44,0x07,0x3b,0x4c,0x80,0x7b]
+ ccmpal {of} 123(%r8,%rax,4), %ecx
+# CHECK: ccmpaq {of} 123(%r8,%rax,4), %r9
+# CHECK: encoding: [0x62,0x54,0xc4,0x07,0x3b,0x4c,0x80,0x7b]
+ ccmpaq {of} 123(%r8,%rax,4), %r9
+# CHECK: ccmpab {of} $123, %bl
+# CHECK: encoding: [0x62,0xf4,0x44,0x07,0x80,0xfb,0x7b]
+ ccmpab {of} $123, %bl
+# CHECK: ccmpaw {of} $123, %dx
+# CHECK: encoding: [0x62,0xf4,0x45,0x07,0x83,0xfa,0x7b]
+ ccmpaw {of} $123, %dx
+# CHECK: ccmpal {of} $123, %ecx
+# CHECK: encoding: [0x62,0xf4,0x44,0x07,0x83,0xf9,0x7b]
+ ccmpal {of} $123, %ecx
+# CHECK: ccmpaq {of} $123, %r9
+# CHECK: encoding: [0x62,0xd4,0xc4,0x07,0x83,0xf9,0x7b]
+ ccmpaq {of} $123, %r9
+# CHECK: ccmpaw {of} $1234, %dx
+# CHECK: encoding: [0x62,0xf4,0x45,0x07,0x81,0xfa,0xd2,0x04]
+ ccmpaw {of} $1234, %dx
+# CHECK: ccmpal {of} $123456, %ecx
+# CHECK: encoding: [0x62,0xf4,0x44,0x07,0x81,0xf9,0x40,0xe2,0x01,0x00]
+ ccmpal {of} $123456, %ecx
+# CHECK: ccmpaq {of} $123456, %r9
+# CHECK: encoding: [0x62,0xd4,0xc4,0x07,0x81,0xf9,0x40,0xe2,0x01,0x00]
+ ccmpaq {of} $123456, %r9
+# CHECK: ccmpab {of} %bl, %dl
+# CHECK: encoding: [0x62,0xf4,0x44,0x07,0x38,0xda]
+ ccmpab {of} %bl, %dl
+# CHECK: ccmpaw {of} %dx, %ax
+# CHECK: encoding: [0x62,0xf4,0x45,0x07,0x39,0xd0]
+ ccmpaw {of} %dx, %ax
+# CHECK: ccmpal {of} %ecx, %edx
+# CHECK: encoding: [0x62,0xf4,0x44,0x07,0x39,0xca]
+ ccmpal {of} %ecx, %edx
+# CHECK: ccmpaq {of} %r9, %r15
+# CHECK: encoding: [0x62,0x54,0xc4,0x07,0x39,0xcf]
+ ccmpaq {of} %r9, %r15
+# CHECK: ccmpgeb {of} $123, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0x44,0x0d,0x80,0x7c,0x80,0x7b,0x7b]
+ ccmpgeb {of} $123, 123(%r8,%rax,4)
+# CHECK: ccmpgew {of} $123, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0x45,0x0d,0x83,0x7c,0x80,0x7b,0x7b]
+ ccmpgew {of} $123, 123(%r8,%rax,4)
+# CHECK: ccmpgew {of} $1234, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0x45,0x0d,0x81,0x7c,0x80,0x7b,0xd2,0x04]
+ ccmpgew {of} $1234, 123(%r8,%rax,4)
+# CHECK: ccmpgel {of} $123, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0x44,0x0d,0x83,0x7c,0x80,0x7b,0x7b]
+ ccmpgel {of} $123, 123(%r8,%rax,4)
+# CHECK: ccmpgel {of} $123456, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0x44,0x0d,0x81,0x7c,0x80,0x7b,0x40,0xe2,0x01,0x00]
+ ccmpgel {of} $123456, 123(%r8,%rax,4)
+# CHECK: ccmpgeq {of} $123, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0xc4,0x0d,0x83,0x7c,0x80,0x7b,0x7b]
+ ccmpgeq {of} $123, 123(%r8,%rax,4)
+# CHECK: ccmpgeq {of} $123456, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0xc4,0x0d,0x81,0x7c,0x80,0x7b,0x40,0xe2,0x01,0x00]
+ ccmpgeq {of} $123456, 123(%r8,%rax,4)
+# CHECK: ccmpgeb {of} %bl, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0x44,0x0d,0x38,0x5c,0x80,0x7b]
+ ccmpgeb {of} %bl, 123(%r8,%rax,4)
+# CHECK: ccmpgew {of} %dx, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0x45,0x0d,0x39,0x54,0x80,0x7b]
+ ccmpgew {of} %dx, 123(%r8,%rax,4)
+# CHECK: ccmpgel {of} %ecx, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0x44,0x0d,0x39,0x4c,0x80,0x7b]
+ ccmpgel {of} %ecx, 123(%r8,%rax,4)
+# CHECK: ccmpgeq {of} %r9, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0x54,0xc4,0x0d,0x39,0x4c,0x80,0x7b]
+ ccmpgeq {of} %r9, 123(%r8,%rax,4)
+# CHECK: ccmpgeb {of} 123(%r8,%rax,4), %bl
+# CHECK: encoding: [0x62,0xd4,0x44,0x0d,0x3a,0x5c,0x80,0x7b]
+ ccmpgeb {of} 123(%r8,%rax,4), %bl
+# CHECK: ccmpgew {of} 123(%r8,%rax,4), %dx
+# CHECK: encoding: [0x62,0xd4,0x45,0x0d,0x3b,0x54,0x80,0x7b]
+ ccmpgew {of} 123(%r8,%rax,4), %dx
+# CHECK: ccmpgel {of} 123(%r8,%rax,4), %ecx
+# CHECK: encoding: [0x62,0xd4,0x44,0x0d,0x3b,0x4c,0x80,0x7b]
+ ccmpgel {of} 123(%r8,%rax,4), %ecx
+# CHECK: ccmpgeq {of} 123(%r8,%rax,4), %r9
+# CHECK: encoding: [0x62,0x54,0xc4,0x0d,0x3b,0x4c,0x80,0x7b]
+ ccmpgeq {of} 123(%r8,%rax,4), %r9
+# CHECK: ccmpgeb {of} $123, %bl
+# CHECK: encoding: [0x62,0xf4,0x44,0x0d,0x80,0xfb,0x7b]
+ ccmpgeb {of} $123, %bl
+# CHECK: ccmpgew {of} $123, %dx
+# CHECK: encoding: [0x62,0xf4,0x45,0x0d,0x83,0xfa,0x7b]
+ ccmpgew {of} $123, %dx
+# CHECK: ccmpgel {of} $123, %ecx
+# CHECK: encoding: [0x62,0xf4,0x44,0x0d,0x83,0xf9,0x7b]
+ ccmpgel {of} $123, %ecx
+# CHECK: ccmpgeq {of} $123, %r9
+# CHECK: encoding: [0x62,0xd4,0xc4,0x0d,0x83,0xf9,0x7b]
+ ccmpgeq {of} $123, %r9
+# CHECK: ccmpgew {of} $1234, %dx
+# CHECK: encoding: [0x62,0xf4,0x45,0x0d,0x81,0xfa,0xd2,0x04]
+ ccmpgew {of} $1234, %dx
+# CHECK: ccmpgel {of} $123456, %ecx
+# CHECK: encoding: [0x62,0xf4,0x44,0x0d,0x81,0xf9,0x40,0xe2,0x01,0x00]
+ ccmpgel {of} $123456, %ecx
+# CHECK: ccmpgeq {of} $123456, %r9
+# CHECK: encoding: [0x62,0xd4,0xc4,0x0d,0x81,0xf9,0x40,0xe2,0x01,0x00]
+ ccmpgeq {of} $123456, %r9
+# CHECK: ccmpgeb {of} %bl, %dl
+# CHECK: encoding: [0x62,0xf4,0x44,0x0d,0x38,0xda]
+ ccmpgeb {of} %bl, %dl
+# CHECK: ccmpgew {of} %dx, %ax
+# CHECK: encoding: [0x62,0xf4,0x45,0x0d,0x39,0xd0]
+ ccmpgew {of} %dx, %ax
+# CHECK: ccmpgel {of} %ecx, %edx
+# CHECK: encoding: [0x62,0xf4,0x44,0x0d,0x39,0xca]
+ ccmpgel {of} %ecx, %edx
+# CHECK: ccmpgeq {of} %r9, %r15
+# CHECK: encoding: [0x62,0x54,0xc4,0x0d,0x39,0xcf]
+ ccmpgeq {of} %r9, %r15
+# CHECK: ccmpgb {of} $123, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0x44,0x0f,0x80,0x7c,0x80,0x7b,0x7b]
+ ccmpgb {of} $123, 123(%r8,%rax,4)
+# CHECK: ccmpgw {of} $123, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0x45,0x0f,0x83,0x7c,0x80,0x7b,0x7b]
+ ccmpgw {of} $123, 123(%r8,%rax,4)
+# CHECK: ccmpgw {of} $1234, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0x45,0x0f,0x81,0x7c,0x80,0x7b,0xd2,0x04]
+ ccmpgw {of} $1234, 123(%r8,%rax,4)
+# CHECK: ccmpgl {of} $123, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0x44,0x0f,0x83,0x7c,0x80,0x7b,0x7b]
+ ccmpgl {of} $123, 123(%r8,%rax,4)
+# CHECK: ccmpgl {of} $123456, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0x44,0x0f,0x81,0x7c,0x80,0x7b,0x40,0xe2,0x01,0x00]
+ ccmpgl {of} $123456, 123(%r8,%rax,4)
+# CHECK: ccmpgq {of} $123, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0xc4,0x0f,0x83,0x7c,0x80,0x7b,0x7b]
+ ccmpgq {of} $123, 123(%r8,%rax,4)
+# CHECK: ccmpgq {of} $123456, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0xc4,0x0f,0x81,0x7c,0x80,0x7b,0x40,0xe2,0x01,0x00]
+ ccmpgq {of} $123456, 123(%r8,%rax,4)
+# CHECK: ccmpgb {of} %bl, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0x44,0x0f,0x38,0x5c,0x80,0x7b]
+ ccmpgb {of} %bl, 123(%r8,%rax,4)
+# CHECK: ccmpgw {of} %dx, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0x45,0x0f,0x39,0x54,0x80,0x7b]
+ ccmpgw {of} %dx, 123(%r8,%rax,4)
+# CHECK: ccmpgl {of} %ecx, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0x44,0x0f,0x39,0x4c,0x80,0x7b]
+ ccmpgl {of} %ecx, 123(%r8,%rax,4)
+# CHECK: ccmpgq {of} %r9, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0x54,0xc4,0x0f,0x39,0x4c,0x80,0x7b]
+ ccmpgq {of} %r9, 123(%r8,%rax,4)
+# CHECK: ccmpgb {of} 123(%r8,%rax,4), %bl
+# CHECK: encoding: [0x62,0xd4,0x44,0x0f,0x3a,0x5c,0x80,0x7b]
+ ccmpgb {of} 123(%r8,%rax,4), %bl
+# CHECK: ccmpgw {of} 123(%r8,%rax,4), %dx
+# CHECK: encoding: [0x62,0xd4,0x45,0x0f,0x3b,0x54,0x80,0x7b]
+ ccmpgw {of} 123(%r8,%rax,4), %dx
+# CHECK: ccmpgl {of} 123(%r8,%rax,4), %ecx
+# CHECK: encoding: [0x62,0xd4,0x44,0x0f,0x3b,0x4c,0x80,0x7b]
+ ccmpgl {of} 123(%r8,%rax,4), %ecx
+# CHECK: ccmpgq {of} 123(%r8,%rax,4), %r9
+# CHECK: encoding: [0x62,0x54,0xc4,0x0f,0x3b,0x4c,0x80,0x7b]
+ ccmpgq {of} 123(%r8,%rax,4), %r9
+# CHECK: ccmpgb {of} $123, %bl
+# CHECK: encoding: [0x62,0xf4,0x44,0x0f,0x80,0xfb,0x7b]
+ ccmpgb {of} $123, %bl
+# CHECK: ccmpgw {of} $123, %dx
+# CHECK: encoding: [0x62,0xf4,0x45,0x0f,0x83,0xfa,0x7b]
+ ccmpgw {of} $123, %dx
+# CHECK: ccmpgl {of} $123, %ecx
+# CHECK: encoding: [0x62,0xf4,0x44,0x0f,0x83,0xf9,0x7b]
+ ccmpgl {of} $123, %ecx
+# CHECK: ccmpgq {of} $123, %r9
+# CHECK: encoding: [0x62,0xd4,0xc4,0x0f,0x83,0xf9,0x7b]
+ ccmpgq {of} $123, %r9
+# CHECK: ccmpgw {of} $1234, %dx
+# CHECK: encoding: [0x62,0xf4,0x45,0x0f,0x81,0xfa,0xd2,0x04]
+ ccmpgw {of} $1234, %dx
+# CHECK: ccmpgl {of} $123456, %ecx
+# CHECK: encoding: [0x62,0xf4,0x44,0x0f,0x81,0xf9,0x40,0xe2,0x01,0x00]
+ ccmpgl {of} $123456, %ecx
+# CHECK: ccmpgq {of} $123456, %r9
+# CHECK: encoding: [0x62,0xd4,0xc4,0x0f,0x81,0xf9,0x40,0xe2,0x01,0x00]
+ ccmpgq {of} $123456, %r9
+# CHECK: ccmpgb {of} %bl, %dl
+# CHECK: encoding: [0x62,0xf4,0x44,0x0f,0x38,0xda]
+ ccmpgb {of} %bl, %dl
+# CHECK: ccmpgw {of} %dx, %ax
+# CHECK: encoding: [0x62,0xf4,0x45,0x0f,0x39,0xd0]
+ ccmpgw {of} %dx, %ax
+# CHECK: ccmpgl {of} %ecx, %edx
+# CHECK: encoding: [0x62,0xf4,0x44,0x0f,0x39,0xca]
+ ccmpgl {of} %ecx, %edx
+# CHECK: ccmpgq {of} %r9, %r15
+# CHECK: encoding: [0x62,0x54,0xc4,0x0f,0x39,0xcf]
+ ccmpgq {of} %r9, %r15
+# CHECK: ccmpnob {of} $123, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0x44,0x01,0x80,0x7c,0x80,0x7b,0x7b]
+ ccmpnob {of} $123, 123(%r8,%rax,4)
+# CHECK: ccmpnow {of} $123, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0x45,0x01,0x83,0x7c,0x80,0x7b,0x7b]
+ ccmpnow {of} $123, 123(%r8,%rax,4)
+# CHECK: ccmpnow {of} $1234, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0x45,0x01,0x81,0x7c,0x80,0x7b,0xd2,0x04]
+ ccmpnow {of} $1234, 123(%r8,%rax,4)
+# CHECK: ccmpnol {of} $123, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0x44,0x01,0x83,0x7c,0x80,0x7b,0x7b]
+ ccmpnol {of} $123, 123(%r8,%rax,4)
+# CHECK: ccmpnol {of} $123456, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0x44,0x01,0x81,0x7c,0x80,0x7b,0x40,0xe2,0x01,0x00]
+ ccmpnol {of} $123456, 123(%r8,%rax,4)
+# CHECK: ccmpnoq {of} $123, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0xc4,0x01,0x83,0x7c,0x80,0x7b,0x7b]
+ ccmpnoq {of} $123, 123(%r8,%rax,4)
+# CHECK: ccmpnoq {of} $123456, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0xc4,0x01,0x81,0x7c,0x80,0x7b,0x40,0xe2,0x01,0x00]
+ ccmpnoq {of} $123456, 123(%r8,%rax,4)
+# CHECK: ccmpnob {of} %bl, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0x44,0x01,0x38,0x5c,0x80,0x7b]
+ ccmpnob {of} %bl, 123(%r8,%rax,4)
+# CHECK: ccmpnow {of} %dx, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0x45,0x01,0x39,0x54,0x80,0x7b]
+ ccmpnow {of} %dx, 123(%r8,%rax,4)
+# CHECK: ccmpnol {of} %ecx, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0x44,0x01,0x39,0x4c,0x80,0x7b]
+ ccmpnol {of} %ecx, 123(%r8,%rax,4)
+# CHECK: ccmpnoq {of} %r9, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0x54,0xc4,0x01,0x39,0x4c,0x80,0x7b]
+ ccmpnoq {of} %r9, 123(%r8,%rax,4)
+# CHECK: ccmpnob {of} 123(%r8,%rax,4), %bl
+# CHECK: encoding: [0x62,0xd4,0x44,0x01,0x3a,0x5c,0x80,0x7b]
+ ccmpnob {of} 123(%r8,%rax,4), %bl
+# CHECK: ccmpnow {of} 123(%r8,%rax,4), %dx
+# CHECK: encoding: [0x62,0xd4,0x45,0x01,0x3b,0x54,0x80,0x7b]
+ ccmpnow {of} 123(%r8,%rax,4), %dx
+# CHECK: ccmpnol {of} 123(%r8,%rax,4), %ecx
+# CHECK: encoding: [0x62,0xd4,0x44,0x01,0x3b,0x4c,0x80,0x7b]
+ ccmpnol {of} 123(%r8,%rax,4), %ecx
+# CHECK: ccmpnoq {of} 123(%r8,%rax,4), %r9
+# CHECK: encoding: [0x62,0x54,0xc4,0x01,0x3b,0x4c,0x80,0x7b]
+ ccmpnoq {of} 123(%r8,%rax,4), %r9
+# CHECK: ccmpnob {of} $123, %bl
+# CHECK: encoding: [0x62,0xf4,0x44,0x01,0x80,0xfb,0x7b]
+ ccmpnob {of} $123, %bl
+# CHECK: ccmpnow {of} $123, %dx
+# CHECK: encoding: [0x62,0xf4,0x45,0x01,0x83,0xfa,0x7b]
+ ccmpnow {of} $123, %dx
+# CHECK: ccmpnol {of} $123, %ecx
+# CHECK: encoding: [0x62,0xf4,0x44,0x01,0x83,0xf9,0x7b]
+ ccmpnol {of} $123, %ecx
+# CHECK: ccmpnoq {of} $123, %r9
+# CHECK: encoding: [0x62,0xd4,0xc4,0x01,0x83,0xf9,0x7b]
+ ccmpnoq {of} $123, %r9
+# CHECK: ccmpnow {of} $1234, %dx
+# CHECK: encoding: [0x62,0xf4,0x45,0x01,0x81,0xfa,0xd2,0x04]
+ ccmpnow {of} $1234, %dx
+# CHECK: ccmpnol {of} $123456, %ecx
+# CHECK: encoding: [0x62,0xf4,0x44,0x01,0x81,0xf9,0x40,0xe2,0x01,0x00]
+ ccmpnol {of} $123456, %ecx
+# CHECK: ccmpnoq {of} $123456, %r9
+# CHECK: encoding: [0x62,0xd4,0xc4,0x01,0x81,0xf9,0x40,0xe2,0x01,0x00]
+ ccmpnoq {of} $123456, %r9
+# CHECK: ccmpnob {of} %bl, %dl
+# CHECK: encoding: [0x62,0xf4,0x44,0x01,0x38,0xda]
+ ccmpnob {of} %bl, %dl
+# CHECK: ccmpnow {of} %dx, %ax
+# CHECK: encoding: [0x62,0xf4,0x45,0x01,0x39,0xd0]
+ ccmpnow {of} %dx, %ax
+# CHECK: ccmpnol {of} %ecx, %edx
+# CHECK: encoding: [0x62,0xf4,0x44,0x01,0x39,0xca]
+ ccmpnol {of} %ecx, %edx
+# CHECK: ccmpnoq {of} %r9, %r15
+# CHECK: encoding: [0x62,0x54,0xc4,0x01,0x39,0xcf]
+ ccmpnoq {of} %r9, %r15
+# CHECK: ccmpnsb {of} $123, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0x44,0x09,0x80,0x7c,0x80,0x7b,0x7b]
+ ccmpnsb {of} $123, 123(%r8,%rax,4)
+# CHECK: ccmpnsw {of} $123, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0x45,0x09,0x83,0x7c,0x80,0x7b,0x7b]
+ ccmpnsw {of} $123, 123(%r8,%rax,4)
+# CHECK: ccmpnsw {of} $1234, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0x45,0x09,0x81,0x7c,0x80,0x7b,0xd2,0x04]
+ ccmpnsw {of} $1234, 123(%r8,%rax,4)
+# CHECK: ccmpnsl {of} $123, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0x44,0x09,0x83,0x7c,0x80,0x7b,0x7b]
+ ccmpnsl {of} $123, 123(%r8,%rax,4)
+# CHECK: ccmpnsl {of} $123456, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0x44,0x09,0x81,0x7c,0x80,0x7b,0x40,0xe2,0x01,0x00]
+ ccmpnsl {of} $123456, 123(%r8,%rax,4)
+# CHECK: ccmpnsq {of} $123, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0xc4,0x09,0x83,0x7c,0x80,0x7b,0x7b]
+ ccmpnsq {of} $123, 123(%r8,%rax,4)
+# CHECK: ccmpnsq {of} $123456, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0xc4,0x09,0x81,0x7c,0x80,0x7b,0x40,0xe2,0x01,0x00]
+ ccmpnsq {of} $123456, 123(%r8,%rax,4)
+# CHECK: ccmpnsb {of} %bl, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0x44,0x09,0x38,0x5c,0x80,0x7b]
+ ccmpnsb {of} %bl, 123(%r8,%rax,4)
+# CHECK: ccmpnsw {of} %dx, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0x45,0x09,0x39,0x54,0x80,0x7b]
+ ccmpnsw {of} %dx, 123(%r8,%rax,4)
+# CHECK: ccmpnsl {of} %ecx, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0x44,0x09,0x39,0x4c,0x80,0x7b]
+ ccmpnsl {of} %ecx, 123(%r8,%rax,4)
+# CHECK: ccmpnsq {of} %r9, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0x54,0xc4,0x09,0x39,0x4c,0x80,0x7b]
+ ccmpnsq {of} %r9, 123(%r8,%rax,4)
+# CHECK: ccmpnsb {of} 123(%r8,%rax,4), %bl
+# CHECK: encoding: [0x62,0xd4,0x44,0x09,0x3a,0x5c,0x80,0x7b]
+ ccmpnsb {of} 123(%r8,%rax,4), %bl
+# CHECK: ccmpnsw {of} 123(%r8,%rax,4), %dx
+# CHECK: encoding: [0x62,0xd4,0x45,0x09,0x3b,0x54,0x80,0x7b]
+ ccmpnsw {of} 123(%r8,%rax,4), %dx
+# CHECK: ccmpnsl {of} 123(%r8,%rax,4), %ecx
+# CHECK: encoding: [0x62,0xd4,0x44,0x09,0x3b,0x4c,0x80,0x7b]
+ ccmpnsl {of} 123(%r8,%rax,4), %ecx
+# CHECK: ccmpnsq {of} 123(%r8,%rax,4), %r9
+# CHECK: encoding: [0x62,0x54,0xc4,0x09,0x3b,0x4c,0x80,0x7b]
+ ccmpnsq {of} 123(%r8,%rax,4), %r9
+# CHECK: ccmpnsb {of} $123, %bl
+# CHECK: encoding: [0x62,0xf4,0x44,0x09,0x80,0xfb,0x7b]
+ ccmpnsb {of} $123, %bl
+# CHECK: ccmpnsw {of} $123, %dx
+# CHECK: encoding: [0x62,0xf4,0x45,0x09,0x83,0xfa,0x7b]
+ ccmpnsw {of} $123, %dx
+# CHECK: ccmpnsl {of} $123, %ecx
+# CHECK: encoding: [0x62,0xf4,0x44,0x09,0x83,0xf9,0x7b]
+ ccmpnsl {of} $123, %ecx
+# CHECK: ccmpnsq {of} $123, %r9
+# CHECK: encoding: [0x62,0xd4,0xc4,0x09,0x83,0xf9,0x7b]
+ ccmpnsq {of} $123, %r9
+# CHECK: ccmpnsw {of} $1234, %dx
+# CHECK: encoding: [0x62,0xf4,0x45,0x09,0x81,0xfa,0xd2,0x04]
+ ccmpnsw {of} $1234, %dx
+# CHECK: ccmpnsl {of} $123456, %ecx
+# CHECK: encoding: [0x62,0xf4,0x44,0x09,0x81,0xf9,0x40,0xe2,0x01,0x00]
+ ccmpnsl {of} $123456, %ecx
+# CHECK: ccmpnsq {of} $123456, %r9
+# CHECK: encoding: [0x62,0xd4,0xc4,0x09,0x81,0xf9,0x40,0xe2,0x01,0x00]
+ ccmpnsq {of} $123456, %r9
+# CHECK: ccmpnsb {of} %bl, %dl
+# CHECK: encoding: [0x62,0xf4,0x44,0x09,0x38,0xda]
+ ccmpnsb {of} %bl, %dl
+# CHECK: ccmpnsw {of} %dx, %ax
+# CHECK: encoding: [0x62,0xf4,0x45,0x09,0x39,0xd0]
+ ccmpnsw {of} %dx, %ax
+# CHECK: ccmpnsl {of} %ecx, %edx
+# CHECK: encoding: [0x62,0xf4,0x44,0x09,0x39,0xca]
+ ccmpnsl {of} %ecx, %edx
+# CHECK: ccmpnsq {of} %r9, %r15
+# CHECK: encoding: [0x62,0x54,0xc4,0x09,0x39,0xcf]
+ ccmpnsq {of} %r9, %r15
+# CHECK: ccmpneb {of} $123, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0x44,0x05,0x80,0x7c,0x80,0x7b,0x7b]
+ ccmpneb {of} $123, 123(%r8,%rax,4)
+# CHECK: ccmpnew {of} $123, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0x45,0x05,0x83,0x7c,0x80,0x7b,0x7b]
+ ccmpnew {of} $123, 123(%r8,%rax,4)
+# CHECK: ccmpnew {of} $1234, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0x45,0x05,0x81,0x7c,0x80,0x7b,0xd2,0x04]
+ ccmpnew {of} $1234, 123(%r8,%rax,4)
+# CHECK: ccmpnel {of} $123, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0x44,0x05,0x83,0x7c,0x80,0x7b,0x7b]
+ ccmpnel {of} $123, 123(%r8,%rax,4)
+# CHECK: ccmpnel {of} $123456, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0x44,0x05,0x81,0x7c,0x80,0x7b,0x40,0xe2,0x01,0x00]
+ ccmpnel {of} $123456, 123(%r8,%rax,4)
+# CHECK: ccmpneq {of} $123, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0xc4,0x05,0x83,0x7c,0x80,0x7b,0x7b]
+ ccmpneq {of} $123, 123(%r8,%rax,4)
+# CHECK: ccmpneq {of} $123456, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0xc4,0x05,0x81,0x7c,0x80,0x7b,0x40,0xe2,0x01,0x00]
+ ccmpneq {of} $123456, 123(%r8,%rax,4)
+# CHECK: ccmpneb {of} %bl, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0x44,0x05,0x38,0x5c,0x80,0x7b]
+ ccmpneb {of} %bl, 123(%r8,%rax,4)
+# CHECK: ccmpnew {of} %dx, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0x45,0x05,0x39,0x54,0x80,0x7b]
+ ccmpnew {of} %dx, 123(%r8,%rax,4)
+# CHECK: ccmpnel {of} %ecx, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0x44,0x05,0x39,0x4c,0x80,0x7b]
+ ccmpnel {of} %ecx, 123(%r8,%rax,4)
+# CHECK: ccmpneq {of} %r9, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0x54,0xc4,0x05,0x39,0x4c,0x80,0x7b]
+ ccmpneq {of} %r9, 123(%r8,%rax,4)
+# CHECK: ccmpneb {of} 123(%r8,%rax,4), %bl
+# CHECK: encoding: [0x62,0xd4,0x44,0x05,0x3a,0x5c,0x80,0x7b]
+ ccmpneb {of} 123(%r8,%rax,4), %bl
+# CHECK: ccmpnew {of} 123(%r8,%rax,4), %dx
+# CHECK: encoding: [0x62,0xd4,0x45,0x05,0x3b,0x54,0x80,0x7b]
+ ccmpnew {of} 123(%r8,%rax,4), %dx
+# CHECK: ccmpnel {of} 123(%r8,%rax,4), %ecx
+# CHECK: encoding: [0x62,0xd4,0x44,0x05,0x3b,0x4c,0x80,0x7b]
+ ccmpnel {of} 123(%r8,%rax,4), %ecx
+# CHECK: ccmpneq {of} 123(%r8,%rax,4), %r9
+# CHECK: encoding: [0x62,0x54,0xc4,0x05,0x3b,0x4c,0x80,0x7b]
+ ccmpneq {of} 123(%r8,%rax,4), %r9
+# CHECK: ccmpneb {of} $123, %bl
+# CHECK: encoding: [0x62,0xf4,0x44,0x05,0x80,0xfb,0x7b]
+ ccmpneb {of} $123, %bl
+# CHECK: ccmpnew {of} $123, %dx
+# CHECK: encoding: [0x62,0xf4,0x45,0x05,0x83,0xfa,0x7b]
+ ccmpnew {of} $123, %dx
+# CHECK: ccmpnel {of} $123, %ecx
+# CHECK: encoding: [0x62,0xf4,0x44,0x05,0x83,0xf9,0x7b]
+ ccmpnel {of} $123, %ecx
+# CHECK: ccmpneq {of} $123, %r9
+# CHECK: encoding: [0x62,0xd4,0xc4,0x05,0x83,0xf9,0x7b]
+ ccmpneq {of} $123, %r9
+# CHECK: ccmpnew {of} $1234, %dx
+# CHECK: encoding: [0x62,0xf4,0x45,0x05,0x81,0xfa,0xd2,0x04]
+ ccmpnew {of} $1234, %dx
+# CHECK: ccmpnel {of} $123456, %ecx
+# CHECK: encoding: [0x62,0xf4,0x44,0x05,0x81,0xf9,0x40,0xe2,0x01,0x00]
+ ccmpnel {of} $123456, %ecx
+# CHECK: ccmpneq {of} $123456, %r9
+# CHECK: encoding: [0x62,0xd4,0xc4,0x05,0x81,0xf9,0x40,0xe2,0x01,0x00]
+ ccmpneq {of} $123456, %r9
+# CHECK: ccmpneb {of} %bl, %dl
+# CHECK: encoding: [0x62,0xf4,0x44,0x05,0x38,0xda]
+ ccmpneb {of} %bl, %dl
+# CHECK: ccmpnew {of} %dx, %ax
+# CHECK: encoding: [0x62,0xf4,0x45,0x05,0x39,0xd0]
+ ccmpnew {of} %dx, %ax
+# CHECK: ccmpnel {of} %ecx, %edx
+# CHECK: encoding: [0x62,0xf4,0x44,0x05,0x39,0xca]
+ ccmpnel {of} %ecx, %edx
+# CHECK: ccmpneq {of} %r9, %r15
+# CHECK: encoding: [0x62,0x54,0xc4,0x05,0x39,0xcf]
+ ccmpneq {of} %r9, %r15
+# CHECK: ccmpob {of} $123, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0x44,0x00,0x80,0x7c,0x80,0x7b,0x7b]
+ ccmpob {of} $123, 123(%r8,%rax,4)
+# CHECK: ccmpow {of} $123, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0x45,0x00,0x83,0x7c,0x80,0x7b,0x7b]
+ ccmpow {of} $123, 123(%r8,%rax,4)
+# CHECK: ccmpow {of} $1234, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0x45,0x00,0x81,0x7c,0x80,0x7b,0xd2,0x04]
+ ccmpow {of} $1234, 123(%r8,%rax,4)
+# CHECK: ccmpol {of} $123, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0x44,0x00,0x83,0x7c,0x80,0x7b,0x7b]
+ ccmpol {of} $123, 123(%r8,%rax,4)
+# CHECK: ccmpol {of} $123456, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0x44,0x00,0x81,0x7c,0x80,0x7b,0x40,0xe2,0x01,0x00]
+ ccmpol {of} $123456, 123(%r8,%rax,4)
+# CHECK: ccmpoq {of} $123, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0xc4,0x00,0x83,0x7c,0x80,0x7b,0x7b]
+ ccmpoq {of} $123, 123(%r8,%rax,4)
+# CHECK: ccmpoq {of} $123456, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0xc4,0x00,0x81,0x7c,0x80,0x7b,0x40,0xe2,0x01,0x00]
+ ccmpoq {of} $123456, 123(%r8,%rax,4)
+# CHECK: ccmpob {of} %bl, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0x44,0x00,0x38,0x5c,0x80,0x7b]
+ ccmpob {of} %bl, 123(%r8,%rax,4)
+# CHECK: ccmpow {of} %dx, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0x45,0x00,0x39,0x54,0x80,0x7b]
+ ccmpow {of} %dx, 123(%r8,%rax,4)
+# CHECK: ccmpol {of} %ecx, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0x44,0x00,0x39,0x4c,0x80,0x7b]
+ ccmpol {of} %ecx, 123(%r8,%rax,4)
+# CHECK: ccmpoq {of} %r9, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0x54,0xc4,0x00,0x39,0x4c,0x80,0x7b]
+ ccmpoq {of} %r9, 123(%r8,%rax,4)
+# CHECK: ccmpob {of} 123(%r8,%rax,4), %bl
+# CHECK: encoding: [0x62,0xd4,0x44,0x00,0x3a,0x5c,0x80,0x7b]
+ ccmpob {of} 123(%r8,%rax,4), %bl
+# CHECK: ccmpow {of} 123(%r8,%rax,4), %dx
+# CHECK: encoding: [0x62,0xd4,0x45,0x00,0x3b,0x54,0x80,0x7b]
+ ccmpow {of} 123(%r8,%rax,4), %dx
+# CHECK: ccmpol {of} 123(%r8,%rax,4), %ecx
+# CHECK: encoding: [0x62,0xd4,0x44,0x00,0x3b,0x4c,0x80,0x7b]
+ ccmpol {of} 123(%r8,%rax,4), %ecx
+# CHECK: ccmpoq {of} 123(%r8,%rax,4), %r9
+# CHECK: encoding: [0x62,0x54,0xc4,0x00,0x3b,0x4c,0x80,0x7b]
+ ccmpoq {of} 123(%r8,%rax,4), %r9
+# CHECK: ccmpob {of} $123, %bl
+# CHECK: encoding: [0x62,0xf4,0x44,0x00,0x80,0xfb,0x7b]
+ ccmpob {of} $123, %bl
+# CHECK: ccmpow {of} $123, %dx
+# CHECK: encoding: [0x62,0xf4,0x45,0x00,0x83,0xfa,0x7b]
+ ccmpow {of} $123, %dx
+# CHECK: ccmpol {of} $123, %ecx
+# CHECK: encoding: [0x62,0xf4,0x44,0x00,0x83,0xf9,0x7b]
+ ccmpol {of} $123, %ecx
+# CHECK: ccmpoq {of} $123, %r9
+# CHECK: encoding: [0x62,0xd4,0xc4,0x00,0x83,0xf9,0x7b]
+ ccmpoq {of} $123, %r9
+# CHECK: ccmpow {of} $1234, %dx
+# CHECK: encoding: [0x62,0xf4,0x45,0x00,0x81,0xfa,0xd2,0x04]
+ ccmpow {of} $1234, %dx
+# CHECK: ccmpol {of} $123456, %ecx
+# CHECK: encoding: [0x62,0xf4,0x44,0x00,0x81,0xf9,0x40,0xe2,0x01,0x00]
+ ccmpol {of} $123456, %ecx
+# CHECK: ccmpoq {of} $123456, %r9
+# CHECK: encoding: [0x62,0xd4,0xc4,0x00,0x81,0xf9,0x40,0xe2,0x01,0x00]
+ ccmpoq {of} $123456, %r9
+# CHECK: ccmpob {of} %bl, %dl
+# CHECK: encoding: [0x62,0xf4,0x44,0x00,0x38,0xda]
+ ccmpob {of} %bl, %dl
+# CHECK: ccmpow {of} %dx, %ax
+# CHECK: encoding: [0x62,0xf4,0x45,0x00,0x39,0xd0]
+ ccmpow {of} %dx, %ax
+# CHECK: ccmpol {of} %ecx, %edx
+# CHECK: encoding: [0x62,0xf4,0x44,0x00,0x39,0xca]
+ ccmpol {of} %ecx, %edx
+# CHECK: ccmpoq {of} %r9, %r15
+# CHECK: encoding: [0x62,0x54,0xc4,0x00,0x39,0xcf]
+ ccmpoq {of} %r9, %r15
+# CHECK: ccmpsb {of} $123, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0x44,0x08,0x80,0x7c,0x80,0x7b,0x7b]
+ ccmpsb {of} $123, 123(%r8,%rax,4)
+# CHECK: ccmpsw {of} $123, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0x45,0x08,0x83,0x7c,0x80,0x7b,0x7b]
+ ccmpsw {of} $123, 123(%r8,%rax,4)
+# CHECK: ccmpsw {of} $1234, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0x45,0x08,0x81,0x7c,0x80,0x7b,0xd2,0x04]
+ ccmpsw {of} $1234, 123(%r8,%rax,4)
+# CHECK: ccmpsl {of} $123, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0x44,0x08,0x83,0x7c,0x80,0x7b,0x7b]
+ ccmpsl {of} $123, 123(%r8,%rax,4)
+# CHECK: ccmpsl {of} $123456, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0x44,0x08,0x81,0x7c,0x80,0x7b,0x40,0xe2,0x01,0x00]
+ ccmpsl {of} $123456, 123(%r8,%rax,4)
+# CHECK: ccmpsq {of} $123, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0xc4,0x08,0x83,0x7c,0x80,0x7b,0x7b]
+ ccmpsq {of} $123, 123(%r8,%rax,4)
+# CHECK: ccmpsq {of} $123456, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0xc4,0x08,0x81,0x7c,0x80,0x7b,0x40,0xe2,0x01,0x00]
+ ccmpsq {of} $123456, 123(%r8,%rax,4)
+# CHECK: ccmpsb {of} %bl, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0x44,0x08,0x38,0x5c,0x80,0x7b]
+ ccmpsb {of} %bl, 123(%r8,%rax,4)
+# CHECK: ccmpsw {of} %dx, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0x45,0x08,0x39,0x54,0x80,0x7b]
+ ccmpsw {of} %dx, 123(%r8,%rax,4)
+# CHECK: ccmpsl {of} %ecx, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0x44,0x08,0x39,0x4c,0x80,0x7b]
+ ccmpsl {of} %ecx, 123(%r8,%rax,4)
+# CHECK: ccmpsq {of} %r9, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0x54,0xc4,0x08,0x39,0x4c,0x80,0x7b]
+ ccmpsq {of} %r9, 123(%r8,%rax,4)
+# CHECK: ccmpsb {of} 123(%r8,%rax,4), %bl
+# CHECK: encoding: [0x62,0xd4,0x44,0x08,0x3a,0x5c,0x80,0x7b]
+ ccmpsb {of} 123(%r8,%rax,4), %bl
+# CHECK: ccmpsw {of} 123(%r8,%rax,4), %dx
+# CHECK: encoding: [0x62,0xd4,0x45,0x08,0x3b,0x54,0x80,0x7b]
+ ccmpsw {of} 123(%r8,%rax,4), %dx
+# CHECK: ccmpsl {of} 123(%r8,%rax,4), %ecx
+# CHECK: encoding: [0x62,0xd4,0x44,0x08,0x3b,0x4c,0x80,0x7b]
+ ccmpsl {of} 123(%r8,%rax,4), %ecx
+# CHECK: ccmpsq {of} 123(%r8,%rax,4), %r9
+# CHECK: encoding: [0x62,0x54,0xc4,0x08,0x3b,0x4c,0x80,0x7b]
+ ccmpsq {of} 123(%r8,%rax,4), %r9
+# CHECK: ccmpsb {of} $123, %bl
+# CHECK: encoding: [0x62,0xf4,0x44,0x08,0x80,0xfb,0x7b]
+ ccmpsb {of} $123, %bl
+# CHECK: ccmpsw {of} $123, %dx
+# CHECK: encoding: [0x62,0xf4,0x45,0x08,0x83,0xfa,0x7b]
+ ccmpsw {of} $123, %dx
+# CHECK: ccmpsl {of} $123, %ecx
+# CHECK: encoding: [0x62,0xf4,0x44,0x08,0x83,0xf9,0x7b]
+ ccmpsl {of} $123, %ecx
+# CHECK: ccmpsq {of} $123, %r9
+# CHECK: encoding: [0x62,0xd4,0xc4,0x08,0x83,0xf9,0x7b]
+ ccmpsq {of} $123, %r9
+# CHECK: ccmpsw {of} $1234, %dx
+# CHECK: encoding: [0x62,0xf4,0x45,0x08,0x81,0xfa,0xd2,0x04]
+ ccmpsw {of} $1234, %dx
+# CHECK: ccmpsl {of} $123456, %ecx
+# CHECK: encoding: [0x62,0xf4,0x44,0x08,0x81,0xf9,0x40,0xe2,0x01,0x00]
+ ccmpsl {of} $123456, %ecx
+# CHECK: ccmpsq {of} $123456, %r9
+# CHECK: encoding: [0x62,0xd4,0xc4,0x08,0x81,0xf9,0x40,0xe2,0x01,0x00]
+ ccmpsq {of} $123456, %r9
+# CHECK: ccmpsb {of} %bl, %dl
+# CHECK: encoding: [0x62,0xf4,0x44,0x08,0x38,0xda]
+ ccmpsb {of} %bl, %dl
+# CHECK: ccmpsw {of} %dx, %ax
+# CHECK: encoding: [0x62,0xf4,0x45,0x08,0x39,0xd0]
+ ccmpsw {of} %dx, %ax
+# CHECK: ccmpsl {of} %ecx, %edx
+# CHECK: encoding: [0x62,0xf4,0x44,0x08,0x39,0xca]
+ ccmpsl {of} %ecx, %edx
+# CHECK: ccmpsq {of} %r9, %r15
+# CHECK: encoding: [0x62,0x54,0xc4,0x08,0x39,0xcf]
+ ccmpsq {of} %r9, %r15
+# CHECK: ccmptb {of} $123, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0x44,0x0a,0x80,0x7c,0x80,0x7b,0x7b]
+ ccmptb {of} $123, 123(%r8,%rax,4)
+# CHECK: ccmptw {of} $123, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0x45,0x0a,0x83,0x7c,0x80,0x7b,0x7b]
+ ccmptw {of} $123, 123(%r8,%rax,4)
+# CHECK: ccmptw {of} $1234, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0x45,0x0a,0x81,0x7c,0x80,0x7b,0xd2,0x04]
+ ccmptw {of} $1234, 123(%r8,%rax,4)
+# CHECK: ccmptl {of} $123, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0x44,0x0a,0x83,0x7c,0x80,0x7b,0x7b]
+ ccmptl {of} $123, 123(%r8,%rax,4)
+# CHECK: ccmptl {of} $123456, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0x44,0x0a,0x81,0x7c,0x80,0x7b,0x40,0xe2,0x01,0x00]
+ ccmptl {of} $123456, 123(%r8,%rax,4)
+# CHECK: ccmptq {of} $123, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0xc4,0x0a,0x83,0x7c,0x80,0x7b,0x7b]
+ ccmptq {of} $123, 123(%r8,%rax,4)
+# CHECK: ccmptq {of} $123456, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0xc4,0x0a,0x81,0x7c,0x80,0x7b,0x40,0xe2,0x01,0x00]
+ ccmptq {of} $123456, 123(%r8,%rax,4)
+# CHECK: ccmptb {of} %bl, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0x44,0x0a,0x38,0x5c,0x80,0x7b]
+ ccmptb {of} %bl, 123(%r8,%rax,4)
+# CHECK: ccmptw {of} %dx, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0x45,0x0a,0x39,0x54,0x80,0x7b]
+ ccmptw {of} %dx, 123(%r8,%rax,4)
+# CHECK: ccmptl {of} %ecx, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0x44,0x0a,0x39,0x4c,0x80,0x7b]
+ ccmptl {of} %ecx, 123(%r8,%rax,4)
+# CHECK: ccmptq {of} %r9, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0x54,0xc4,0x0a,0x39,0x4c,0x80,0x7b]
+ ccmptq {of} %r9, 123(%r8,%rax,4)
+# CHECK: ccmptb {of} 123(%r8,%rax,4), %bl
+# CHECK: encoding: [0x62,0xd4,0x44,0x0a,0x3a,0x5c,0x80,0x7b]
+ ccmptb {of} 123(%r8,%rax,4), %bl
+# CHECK: ccmptw {of} 123(%r8,%rax,4), %dx
+# CHECK: encoding: [0x62,0xd4,0x45,0x0a,0x3b,0x54,0x80,0x7b]
+ ccmptw {of} 123(%r8,%rax,4), %dx
+# CHECK: ccmptl {of} 123(%r8,%rax,4), %ecx
+# CHECK: encoding: [0x62,0xd4,0x44,0x0a,0x3b,0x4c,0x80,0x7b]
+ ccmptl {of} 123(%r8,%rax,4), %ecx
+# CHECK: ccmptq {of} 123(%r8,%rax,4), %r9
+# CHECK: encoding: [0x62,0x54,0xc4,0x0a,0x3b,0x4c,0x80,0x7b]
+ ccmptq {of} 123(%r8,%rax,4), %r9
+# CHECK: ccmptb {of} $123, %bl
+# CHECK: encoding: [0x62,0xf4,0x44,0x0a,0x80,0xfb,0x7b]
+ ccmptb {of} $123, %bl
+# CHECK: ccmptw {of} $123, %dx
+# CHECK: encoding: [0x62,0xf4,0x45,0x0a,0x83,0xfa,0x7b]
+ ccmptw {of} $123, %dx
+# CHECK: ccmptl {of} $123, %ecx
+# CHECK: encoding: [0x62,0xf4,0x44,0x0a,0x83,0xf9,0x7b]
+ ccmptl {of} $123, %ecx
+# CHECK: ccmptq {of} $123, %r9
+# CHECK: encoding: [0x62,0xd4,0xc4,0x0a,0x83,0xf9,0x7b]
+ ccmptq {of} $123, %r9
+# CHECK: ccmptw {of} $1234, %dx
+# CHECK: encoding: [0x62,0xf4,0x45,0x0a,0x81,0xfa,0xd2,0x04]
+ ccmptw {of} $1234, %dx
+# CHECK: ccmptl {of} $123456, %ecx
+# CHECK: encoding: [0x62,0xf4,0x44,0x0a,0x81,0xf9,0x40,0xe2,0x01,0x00]
+ ccmptl {of} $123456, %ecx
+# CHECK: ccmptq {of} $123456, %r9
+# CHECK: encoding: [0x62,0xd4,0xc4,0x0a,0x81,0xf9,0x40,0xe2,0x01,0x00]
+ ccmptq {of} $123456, %r9
+# CHECK: ccmptb {of} %bl, %dl
+# CHECK: encoding: [0x62,0xf4,0x44,0x0a,0x38,0xda]
+ ccmptb {of} %bl, %dl
+# CHECK: ccmptw {of} %dx, %ax
+# CHECK: encoding: [0x62,0xf4,0x45,0x0a,0x39,0xd0]
+ ccmptw {of} %dx, %ax
+# CHECK: ccmptl {of} %ecx, %edx
+# CHECK: encoding: [0x62,0xf4,0x44,0x0a,0x39,0xca]
+ ccmptl {of} %ecx, %edx
+# CHECK: ccmptq {of} %r9, %r15
+# CHECK: encoding: [0x62,0x54,0xc4,0x0a,0x39,0xcf]
+ ccmptq {of} %r9, %r15
+# CHECK: ccmpeb {of} $123, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0x44,0x04,0x80,0x7c,0x80,0x7b,0x7b]
+ ccmpeb {of} $123, 123(%r8,%rax,4)
+# CHECK: ccmpew {of} $123, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0x45,0x04,0x83,0x7c,0x80,0x7b,0x7b]
+ ccmpew {of} $123, 123(%r8,%rax,4)
+# CHECK: ccmpew {of} $1234, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0x45,0x04,0x81,0x7c,0x80,0x7b,0xd2,0x04]
+ ccmpew {of} $1234, 123(%r8,%rax,4)
+# CHECK: ccmpel {of} $123, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0x44,0x04,0x83,0x7c,0x80,0x7b,0x7b]
+ ccmpel {of} $123, 123(%r8,%rax,4)
+# CHECK: ccmpel {of} $123456, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0x44,0x04,0x81,0x7c,0x80,0x7b,0x40,0xe2,0x01,0x00]
+ ccmpel {of} $123456, 123(%r8,%rax,4)
+# CHECK: ccmpeq {of} $123, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0xc4,0x04,0x83,0x7c,0x80,0x7b,0x7b]
+ ccmpeq {of} $123, 123(%r8,%rax,4)
+# CHECK: ccmpeq {of} $123456, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0xc4,0x04,0x81,0x7c,0x80,0x7b,0x40,0xe2,0x01,0x00]
+ ccmpeq {of} $123456, 123(%r8,%rax,4)
+# CHECK: ccmpeb {of} %bl, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0x44,0x04,0x38,0x5c,0x80,0x7b]
+ ccmpeb {of} %bl, 123(%r8,%rax,4)
+# CHECK: ccmpew {of} %dx, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0x45,0x04,0x39,0x54,0x80,0x7b]
+ ccmpew {of} %dx, 123(%r8,%rax,4)
+# CHECK: ccmpel {of} %ecx, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0xd4,0x44,0x04,0x39,0x4c,0x80,0x7b]
+ ccmpel {of} %ecx, 123(%r8,%rax,4)
+# CHECK: ccmpeq {of} %r9, 123(%r8,%rax,4)
+# CHECK: encoding: [0x62,0x54,0xc4,0x04,0x39,0x4c,0x80,0x7b]
+ ccmpeq {of} %r9, 123(%r8,%rax,4)
+# CHECK: ccmpeb {of} 123(%r8,%rax,4), %bl
+# CHECK: encoding: [0x62,0xd4,0x44,0x04,0x3a,0x5c,0x80,0x7b]
+ ccmpeb {of} 123(%r8,%rax,4), %bl
+# CHECK: ccmpew {of} 123(%r8,%rax,4), %dx
+# CHECK: encoding: [0x62,0xd4,0x45,0x04,0x3b,0x54,0x80,0x7b]
+ ccmpew {of} 123(%r8,%rax,4), %dx
+# CHECK: ccmpel {of} 123(%r8,%rax,4), %ecx
+# CHECK: encoding: [0x62,0xd4,0x44,0x04,0x3b,0x4c,0x80,0x7b]
+ ccmpel {of} 123(%r8,%rax,4), %ecx
+# CHECK: ccmpeq {of} 123(%r8,%rax,4), %r9
+# CHECK: encoding: [0x62,0x54,0xc4,0x04,0x3b,0x4c,0x80,0x7b]
+ ccmpeq {of} 123(%r8,%rax,4), %r9
+# CHECK: ccmpeb {of} $123, %bl
+# CHECK: encoding: [0x62,0xf4,0x44,0x04,0x80,0xfb,0x7b]
+ ccmpeb {of} $123, %bl
+# CHECK: ccmpew {of} $123, %dx
+# CHECK: encoding: [0x62,0xf4,0x45,0x04,0x83,0xfa,0x7b]
+ ccmpew {of} $123, %dx
+# CHECK: ccmpel {of} $123, %ecx
+# CHECK: encoding: [0x62,0xf4,0x44,0x04,0x83,0xf9,0x7b]
+ ccmpel {of} $123, %ecx
+# CHECK: ccmpeq {of} $123, %r9
+# CHECK: encoding: [0x62,0xd4,0xc4,0x04,0x83,0xf9,0x7b]
+ ccmpeq {of} $123, %r9
+# CHECK: ccmpew {of} $1234, %dx
+# CHECK: encoding: [0x62,0xf4,0x45,0x04,0x81,0xfa,0xd2,0x04]
+ ccmpew {of} $1234, %dx
+# CHECK: ccmpel {of} $123456, %ecx
+# CHECK: encoding: [0x62,0xf4,0x44,0x04,0x81,0xf9,0x40,0xe2,0x01,0x00]
+ ccmpel {of} $123456, %ecx
+# CHECK: ccmpeq {of} $123456, %r9
+# CHECK: encoding: [0x62,0xd4,0xc4,0x04,0x81,0xf9,0x40,0xe2,0x01,0x00]
+ ccmpeq {of} $123456, %r9
+# CHECK: ccmpeb {of} %bl, %dl
+# CHECK: encoding: [0x62,0xf4,0x44,0x04,0x38,0xda]
+ ccmpeb {of} %bl, %dl
+# CHECK: ccmpew {of} %dx, %ax
+# CHECK: encoding: [0x62,0xf4,0x45,0x04,0x39,0xd0]
+ ccmpew {of} %dx, %ax
+# CHECK: ccmpel {of} %ecx, %edx
+# CHECK: encoding: [0x62,0xf4,0x44,0x04,0x39,0xca]
+ ccmpel {of} %ecx, %edx
+# CHECK: ccmpeq {of} %r9, %r15
+# CHECK: encoding: [0x62,0x54,0xc4,0x04,0x39,0xcf]
+ ccmpeq {of} %r9, %r15
diff --git a/llvm/test/MC/X86/apx/ccmp-intel-error.s b/llvm/test/MC/X86/apx/ccmp-intel-error.s
new file mode 100644
index 00000000000000..8d46473f8350a6
--- /dev/null
+++ b/llvm/test/MC/X86/apx/ccmp-intel-error.s
@@ -0,0 +1,26 @@
+# RUN: not llvm-mc -triple x86_64 -show-encoding -x86-asm-syntax=intel -output-asm-variant=1 %s 2>&1 | FileCheck --strict-whitespace %s
+
+# CHECK: error: Expected { at this point
+# CHECK: ccmpe 1 rbx, rax
+# CHECK: ^
+ccmpe 1 rbx, rax
+
+# CHECK: error: Expected } or , at this point
+# CHECK: ccmpe {sf,cf rbx, rax
+# CHECK: ^
+ccmpe {sf,cf rbx, rax
+
+# CHECK: error: Invalid conditional flags
+# CHECK: ccmpe {pf} rbx, rax
+# CHECK: ^
+ccmpe {pf} rbx, rax
+
+# CHECK: error: Duplicated conditional flag
+# CHECK: ccmpeq {of,zf,of} rbx, rax
+# CHECK: ^
+ccmpeq {of,zf,of} rbx, rax
+
+# CHECK: error: Expected } at this point
+# CHECK: ccmpeq {of,sf,zf,cf,of} rbx, rax
+# CHECK: ^
+ccmpeq {of,sf,zf,cf,of} rbx, rax
diff --git a/llvm/test/MC/X86/apx/ccmp-intel.s b/llvm/test/MC/X86/apx/ccmp-intel.s
new file mode 100644
index 00000000000000..323f3a92c5328e
--- /dev/null
+++ b/llvm/test/MC/X86/apx/ccmp-intel.s
@@ -0,0 +1,1210 @@
+# RUN: llvm-mc -triple x86_64 -show-encoding -x86-asm-syntax=intel -output-asm-variant=1 %s | FileCheck %s
+
+## Condition flags
+
+# CHECK: ccmpo {} rbx, rax
+# CHECK: encoding: [0x62,0xf4,0x84,0x00,0x39,0xc3]
+ ccmpo {} rbx, rax
+# CHECK: ccmpo {of} rbx, rax
+# CHECK: encoding: [0x62,0xf4,0xc4,0x00,0x39,0xc3]
+ ccmpo {of} rbx, rax
+# CHECK: ccmpo {sf} rbx, rax
+# CHECK: encoding: [0x62,0xf4,0xa4,0x00,0x39,0xc3]
+ ccmpo {sf} rbx, rax
+# CHECK: ccmpo {zf} rbx, rax
+# CHECK: encoding: [0x62,0xf4,0x94,0x00,0x39,0xc3]
+ ccmpo {zf} rbx, rax
+# CHECK: ccmpo {cf} rbx, rax
+# CHECK: encoding: [0x62,0xf4,0x8c,0x00,0x39,0xc3]
+ ccmpo {cf} rbx, rax
+# CHECK: ccmpo {of,sf} rbx, rax
+# CHECK: encoding: [0x62,0xf4,0xe4,0x00,0x39,0xc3]
+ ccmpo {of,sf} rbx, rax
+# CHECK: ccmpo {of,sf} rbx, rax
+# CHECK: encoding: [0x62,0xf4,0xe4,0x00,0x39,0xc3]
+ ccmpo {sf,of} rbx, rax
+# CHECK: ccmpo {of,sf,zf} rbx, rax
+# CHECK: encoding: [0x62,0xf4,0xf4,0x00,0x39,0xc3]
+ ccmpo {of,sf,zf} rbx, rax
+# CHECK: ccmpo {of,sf,zf} rbx, rax
+# CHECK: encoding: [0x62,0xf4,0xf4,0x00,0x39,0xc3]
+ ccmpo {zf,of,sf} rbx, rax
+# CHECK: ccmpo {of,sf,zf,cf} rbx, rax
+# CHECK: encoding: [0x62,0xf4,0xfc,0x00,0x39,0xc3]
+ ccmpo {of,sf,zf,cf} rbx, rax
+# CHECK: ccmpo {of,sf,zf,cf} rbx, rax
+# CHECK: encoding: [0x62,0xf4,0xfc,0x00,0x39,0xc3]
+ ccmpo {cf,zf,sf,of} rbx, rax
+
+## Condition code
+
+# CHECK: ccmpb {of} byte ptr [r8 + 4*rax + 123], 123
+# CHECK: encoding: [0x62,0xd4,0x44,0x02,0x80,0x7c,0x80,0x7b,0x7b]
+ ccmpb {of} byte ptr [r8 + 4*rax + 123], 123
+# CHECK: ccmpb {of} word ptr [r8 + 4*rax + 123], 123
+# CHECK: encoding: [0x62,0xd4,0x45,0x02,0x83,0x7c,0x80,0x7b,0x7b]
+ ccmpb {of} word ptr [r8 + 4*rax + 123], 123
+# CHECK: ccmpb {of} word ptr [r8 + 4*rax + 123], 1234
+# CHECK: encoding: [0x62,0xd4,0x45,0x02,0x81,0x7c,0x80,0x7b,0xd2,0x04]
+ ccmpb {of} word ptr [r8 + 4*rax + 123], 1234
+# CHECK: ccmpb {of} dword ptr [r8 + 4*rax + 123], 123
+# CHECK: encoding: [0x62,0xd4,0x44,0x02,0x83,0x7c,0x80,0x7b,0x7b]
+ ccmpb {of} dword ptr [r8 + 4*rax + 123], 123
+# CHECK: ccmpb {of} dword ptr [r8 + 4*rax + 123], 123456
+# CHECK: encoding: [0x62,0xd4,0x44,0x02,0x81,0x7c,0x80,0x7b,0x40,0xe2,0x01,0x00]
+ ccmpb {of} dword ptr [r8 + 4*rax + 123], 123456
+# CHECK: ccmpb {of} qword ptr [r8 + 4*rax + 123], 123
+# CHECK: encoding: [0x62,0xd4,0xc4,0x02,0x83,0x7c,0x80,0x7b,0x7b]
+ ccmpb {of} qword ptr [r8 + 4*rax + 123], 123
+# CHECK: ccmpb {of} qword ptr [r8 + 4*rax + 123], 123456
+# CHECK: encoding: [0x62,0xd4,0xc4,0x02,0x81,0x7c,0x80,0x7b,0x40,0xe2,0x01,0x00]
+ ccmpb {of} qword ptr [r8 + 4*rax + 123], 123456
+# CHECK: ccmpb {of} byte ptr [r8 + 4*rax + 123], bl
+# CHECK: encoding: [0x62,0xd4,0x44,0x02,0x38,0x5c,0x80,0x7b]
+ ccmpb {of} byte ptr [r8 + 4*rax + 123], bl
+# CHECK: ccmpb {of} word ptr [r8 + 4*rax + 123], dx
+# CHECK: encoding: [0x62,0xd4,0x45,0x02,0x39,0x54,0x80,0x7b]
+ ccmpb {of} word ptr [r8 + 4*rax + 123], dx
+# CHECK: ccmpb {of} dword ptr [r8 + 4*rax + 123], ecx
+# CHECK: encoding: [0x62,0xd4,0x44,0x02,0x39,0x4c,0x80,0x7b]
+ ccmpb {of} dword ptr [r8 + 4*rax + 123], ecx
+# CHECK: ccmpb {of} qword ptr [r8 + 4*rax + 123], r9
+# CHECK: encoding: [0x62,0x54,0xc4,0x02,0x39,0x4c,0x80,0x7b]
+ ccmpb {of} qword ptr [r8 + 4*rax + 123], r9
+# CHECK: ccmpb {of} bl, byte ptr [r8 + 4*rax + 123]
+# CHECK: encoding: [0x62,0xd4,0x44,0x02,0x3a,0x5c,0x80,0x7b]
+ ccmpb {of} bl, byte ptr [r8 + 4*rax + 123]
+# CHECK: ccmpb {of} dx, word ptr [r8 + 4*rax + 123]
+# CHECK: encoding: [0x62,0xd4,0x45,0x02,0x3b,0x54,0x80,0x7b]
+ ccmpb {of} dx, word ptr [r8 + 4*rax + 123]
+# CHECK: ccmpb {of} ecx, dword ptr [r8 + 4*rax + 123]
+# CHECK: encoding: [0x62,0xd4,0x44,0x02,0x3b,0x4c,0x80,0x7b]
+ ccmpb {of} ecx, dword ptr [r8 + 4*rax + 123]
+# CHECK: ccmpb {of} r9, qword ptr [r8 + 4*rax + 123]
+# CHECK: encoding: [0x62,0x54,0xc4,0x02,0x3b,0x4c,0x80,0x7b]
+ ccmpb {of} r9, qword ptr [r8 + 4*rax + 123]
+# CHECK: ccmpb {of} bl, 123
+# CHECK: encoding: [0x62,0xf4,0x44,0x02,0x80,0xfb,0x7b]
+ ccmpb {of} bl, 123
+# CHECK: ccmpb {of} dx, 123
+# CHECK: encoding: [0x62,0xf4,0x45,0x02,0x83,0xfa,0x7b]
+ ccmpb {of} dx, 123
+# CHECK: ccmpb {of} ecx, 123
+# CHECK: encoding: [0x62,0xf4,0x44,0x02,0x83,0xf9,0x7b]
+ ccmpb {of} ecx, 123
+# CHECK: ccmpb {of} r9, 123
+# CHECK: encoding: [0x62,0xd4,0xc4,0x02,0x83,0xf9,0x7b]
+ ccmpb {of} r9, 123
+# CHECK: ccmpb {of} dx, 1234
+# CHECK: encoding: [0x62,0xf4,0x45,0x02,0x81,0xfa,0xd2,0x04]
+ ccmpb {of} dx, 1234
+# CHECK: ccmpb {of} ecx, 123456
+# CHECK: encoding: [0x62,0xf4,0x44,0x02,0x81,0xf9,0x40,0xe2,0x01,0x00]
+ ccmpb {of} ecx, 123456
+# CHECK: ccmpb {of} r9, 123456
+# CHECK: encoding: [0x62,0xd4,0xc4,0x02,0x81,0xf9,0x40,0xe2,0x01,0x00]
+ ccmpb {of} r9, 123456
+# CHECK: ccmpb {of} dl, bl
+# CHECK: encoding: [0x62,0xf4,0x44,0x02,0x38,0xda]
+ ccmpb {of} dl, bl
+# CHECK: ccmpb {of} ax, dx
+# CHECK: encoding: [0x62,0xf4,0x45,0x02,0x39,0xd0]
+ ccmpb {of} ax, dx
+# CHECK: ccmpb {of} edx, ecx
+# CHECK: encoding: [0x62,0xf4,0x44,0x02,0x39,0xca]
+ ccmpb {of} edx, ecx
+# CHECK: ccmpb {of} r15, r9
+# CHECK: encoding: [0x62,0x54,0xc4,0x02,0x39,0xcf]
+ ccmpb {of} r15, r9
+# CHECK: ccmpf {of} byte ptr [r8 + 4*rax + 123], 123
+# CHECK: encoding: [0x62,0xd4,0x44,0x0b,0x80,0x7c,0x80,0x7b,0x7b]
+ ccmpf {of} byte ptr [r8 + 4*rax + 123], 123
+# CHECK: ccmpf {of} word ptr [r8 + 4*rax + 123], 123
+# CHECK: encoding: [0x62,0xd4,0x45,0x0b,0x83,0x7c,0x80,0x7b,0x7b]
+ ccmpf {of} word ptr [r8 + 4*rax + 123], 123
+# CHECK: ccmpf {of} word ptr [r8 + 4*rax + 123], 1234
+# CHECK: encoding: [0x62,0xd4,0x45,0x0b,0x81,0x7c,0x80,0x7b,0xd2,0x04]
+ ccmpf {of} word ptr [r8 + 4*rax + 123], 1234
+# CHECK: ccmpf {of} dword ptr [r8 + 4*rax + 123], 123
+# CHECK: encoding: [0x62,0xd4,0x44,0x0b,0x83,0x7c,0x80,0x7b,0x7b]
+ ccmpf {of} dword ptr [r8 + 4*rax + 123], 123
+# CHECK: ccmpf {of} dword ptr [r8 + 4*rax + 123], 123456
+# CHECK: encoding: [0x62,0xd4,0x44,0x0b,0x81,0x7c,0x80,0x7b,0x40,0xe2,0x01,0x00]
+ ccmpf {of} dword ptr [r8 + 4*rax + 123], 123456
+# CHECK: ccmpf {of} qword ptr [r8 + 4*rax + 123], 123
+# CHECK: encoding: [0x62,0xd4,0xc4,0x0b,0x83,0x7c,0x80,0x7b,0x7b]
+ ccmpf {of} qword ptr [r8 + 4*rax + 123], 123
+# CHECK: ccmpf {of} qword ptr [r8 + 4*rax + 123], 123456
+# CHECK: encoding: [0x62,0xd4,0xc4,0x0b,0x81,0x7c,0x80,0x7b,0x40,0xe2,0x01,0x00]
+ ccmpf {of} qword ptr [r8 + 4*rax + 123], 123456
+# CHECK: ccmpf {of} byte ptr [r8 + 4*rax + 123], bl
+# CHECK: encoding: [0x62,0xd4,0x44,0x0b,0x38,0x5c,0x80,0x7b]
+ ccmpf {of} byte ptr [r8 + 4*rax + 123], bl
+# CHECK: ccmpf {of} word ptr [r8 + 4*rax + 123], dx
+# CHECK: encoding: [0x62,0xd4,0x45,0x0b,0x39,0x54,0x80,0x7b]
+ ccmpf {of} word ptr [r8 + 4*rax + 123], dx
+# CHECK: ccmpf {of} dword ptr [r8 + 4*rax + 123], ecx
+# CHECK: encoding: [0x62,0xd4,0x44,0x0b,0x39,0x4c,0x80,0x7b]
+ ccmpf {of} dword ptr [r8 + 4*rax + 123], ecx
+# CHECK: ccmpf {of} qword ptr [r8 + 4*rax + 123], r9
+# CHECK: encoding: [0x62,0x54,0xc4,0x0b,0x39,0x4c,0x80,0x7b]
+ ccmpf {of} qword ptr [r8 + 4*rax + 123], r9
+# CHECK: ccmpf {of} bl, byte ptr [r8 + 4*rax + 123]
+# CHECK: encoding: [0x62,0xd4,0x44,0x0b,0x3a,0x5c,0x80,0x7b]
+ ccmpf {of} bl, byte ptr [r8 + 4*rax + 123]
+# CHECK: ccmpf {of} dx, word ptr [r8 + 4*rax + 123]
+# CHECK: encoding: [0x62,0xd4,0x45,0x0b,0x3b,0x54,0x80,0x7b]
+ ccmpf {of} dx, word ptr [r8 + 4*rax + 123]
+# CHECK: ccmpf {of} ecx, dword ptr [r8 + 4*rax + 123]
+# CHECK: encoding: [0x62,0xd4,0x44,0x0b,0x3b,0x4c,0x80,0x7b]
+ ccmpf {of} ecx, dword ptr [r8 + 4*rax + 123]
+# CHECK: ccmpf {of} r9, qword ptr [r8 + 4*rax + 123]
+# CHECK: encoding: [0x62,0x54,0xc4,0x0b,0x3b,0x4c,0x80,0x7b]
+ ccmpf {of} r9, qword ptr [r8 + 4*rax + 123]
+# CHECK: ccmpf {of} bl, 123
+# CHECK: encoding: [0x62,0xf4,0x44,0x0b,0x80,0xfb,0x7b]
+ ccmpf {of} bl, 123
+# CHECK: ccmpf {of} dx, 123
+# CHECK: encoding: [0x62,0xf4,0x45,0x0b,0x83,0xfa,0x7b]
+ ccmpf {of} dx, 123
+# CHECK: ccmpf {of} ecx, 123
+# CHECK: encoding: [0x62,0xf4,0x44,0x0b,0x83,0xf9,0x7b]
+ ccmpf {of} ecx, 123
+# CHECK: ccmpf {of} r9, 123
+# CHECK: encoding: [0x62,0xd4,0xc4,0x0b,0x83,0xf9,0x7b]
+ ccmpf {of} r9, 123
+# CHECK: ccmpf {of} dx, 1234
+# CHECK: encoding: [0x62,0xf4,0x45,0x0b,0x81,0xfa,0xd2,0x04]
+ ccmpf {of} dx, 1234
+# CHECK: ccmpf {of} ecx, 123456
+# CHECK: encoding: [0x62,0xf4,0x44,0x0b,0x81,0xf9,0x40,0xe2,0x01,0x00]
+ ccmpf {of} ecx, 123456
+# CHECK: ccmpf {of} r9, 123456
+# CHECK: encoding: [0x62,0xd4,0xc4,0x0b,0x81,0xf9,0x40,0xe2,0x01,0x00]
+ ccmpf {of} r9, 123456
+# CHECK: ccmpf {of} dl, bl
+# CHECK: encoding: [0x62,0xf4,0x44,0x0b,0x38,0xda]
+ ccmpf {of} dl, bl
+# CHECK: ccmpf {of} ax, dx
+# CHECK: encoding: [0x62,0xf4,0x45,0x0b,0x39,0xd0]
+ ccmpf {of} ax, dx
+# CHECK: ccmpf {of} edx, ecx
+# CHECK: encoding: [0x62,0xf4,0x44,0x0b,0x39,0xca]
+ ccmpf {of} edx, ecx
+# CHECK: ccmpf {of} r15, r9
+# CHECK: encoding: [0x62,0x54,0xc4,0x0b,0x39,0xcf]
+ ccmpf {of} r15, r9
+# CHECK: ccmpl {of} byte ptr [r8 + 4*rax + 123], 123
+# CHECK: encoding: [0x62,0xd4,0x44,0x0c,0x80,0x7c,0x80,0x7b,0x7b]
+ ccmpl {of} byte ptr [r8 + 4*rax + 123], 123
+# CHECK: ccmpl {of} word ptr [r8 + 4*rax + 123], 123
+# CHECK: encoding: [0x62,0xd4,0x45,0x0c,0x83,0x7c,0x80,0x7b,0x7b]
+ ccmpl {of} word ptr [r8 + 4*rax + 123], 123
+# CHECK: ccmpl {of} word ptr [r8 + 4*rax + 123], 1234
+# CHECK: encoding: [0x62,0xd4,0x45,0x0c,0x81,0x7c,0x80,0x7b,0xd2,0x04]
+ ccmpl {of} word ptr [r8 + 4*rax + 123], 1234
+# CHECK: ccmpl {of} dword ptr [r8 + 4*rax + 123], 123
+# CHECK: encoding: [0x62,0xd4,0x44,0x0c,0x83,0x7c,0x80,0x7b,0x7b]
+ ccmpl {of} dword ptr [r8 + 4*rax + 123], 123
+# CHECK: ccmpl {of} dword ptr [r8 + 4*rax + 123], 123456
+# CHECK: encoding: [0x62,0xd4,0x44,0x0c,0x81,0x7c,0x80,0x7b,0x40,0xe2,0x01,0x00]
+ ccmpl {of} dword ptr [r8 + 4*rax + 123], 123456
+# CHECK: ccmpl {of} qword ptr [r8 + 4*rax + 123], 123
+# CHECK: encoding: [0x62,0xd4,0xc4,0x0c,0x83,0x7c,0x80,0x7b,0x7b]
+ ccmpl {of} qword ptr [r8 + 4*rax + 123], 123
+# CHECK: ccmpl {of} qword ptr [r8 + 4*rax + 123], 123456
+# CHECK: encoding: [0x62,0xd4,0xc4,0x0c,0x81,0x7c,0x80,0x7b,0x40,0xe2,0x01,0x00]
+ ccmpl {of} qword ptr [r8 + 4*rax + 123], 123456
+# CHECK: ccmpl {of} byte ptr [r8 + 4*rax + 123], bl
+# CHECK: encoding: [0x62,0xd4,0x44,0x0c,0x38,0x5c,0x80,0x7b]
+ ccmpl {of} byte ptr [r8 + 4*rax + 123], bl
+# CHECK: ccmpl {of} word ptr [r8 + 4*rax + 123], dx
+# CHECK: encoding: [0x62,0xd4,0x45,0x0c,0x39,0x54,0x80,0x7b]
+ ccmpl {of} word ptr [r8 + 4*rax + 123], dx
+# CHECK: ccmpl {of} dword ptr [r8 + 4*rax + 123], ecx
+# CHECK: encoding: [0x62,0xd4,0x44,0x0c,0x39,0x4c,0x80,0x7b]
+ ccmpl {of} dword ptr [r8 + 4*rax + 123], ecx
+# CHECK: ccmpl {of} qword ptr [r8 + 4*rax + 123], r9
+# CHECK: encoding: [0x62,0x54,0xc4,0x0c,0x39,0x4c,0x80,0x7b]
+ ccmpl {of} qword ptr [r8 + 4*rax + 123], r9
+# CHECK: ccmpl {of} bl, byte ptr [r8 + 4*rax + 123]
+# CHECK: encoding: [0x62,0xd4,0x44,0x0c,0x3a,0x5c,0x80,0x7b]
+ ccmpl {of} bl, byte ptr [r8 + 4*rax + 123]
+# CHECK: ccmpl {of} dx, word ptr [r8 + 4*rax + 123]
+# CHECK: encoding: [0x62,0xd4,0x45,0x0c,0x3b,0x54,0x80,0x7b]
+ ccmpl {of} dx, word ptr [r8 + 4*rax + 123]
+# CHECK: ccmpl {of} ecx, dword ptr [r8 + 4*rax + 123]
+# CHECK: encoding: [0x62,0xd4,0x44,0x0c,0x3b,0x4c,0x80,0x7b]
+ ccmpl {of} ecx, dword ptr [r8 + 4*rax + 123]
+# CHECK: ccmpl {of} r9, qword ptr [r8 + 4*rax + 123]
+# CHECK: encoding: [0x62,0x54,0xc4,0x0c,0x3b,0x4c,0x80,0x7b]
+ ccmpl {of} r9, qword ptr [r8 + 4*rax + 123]
+# CHECK: ccmpl {of} bl, 123
+# CHECK: encoding: [0x62,0xf4,0x44,0x0c,0x80,0xfb,0x7b]
+ ccmpl {of} bl, 123
+# CHECK: ccmpl {of} dx, 123
+# CHECK: encoding: [0x62,0xf4,0x45,0x0c,0x83,0xfa,0x7b]
+ ccmpl {of} dx, 123
+# CHECK: ccmpl {of} ecx, 123
+# CHECK: encoding: [0x62,0xf4,0x44,0x0c,0x83,0xf9,0x7b]
+ ccmpl {of} ecx, 123
+# CHECK: ccmpl {of} r9, 123
+# CHECK: encoding: [0x62,0xd4,0xc4,0x0c,0x83,0xf9,0x7b]
+ ccmpl {of} r9, 123
+# CHECK: ccmpl {of} dx, 1234
+# CHECK: encoding: [0x62,0xf4,0x45,0x0c,0x81,0xfa,0xd2,0x04]
+ ccmpl {of} dx, 1234
+# CHECK: ccmpl {of} ecx, 123456
+# CHECK: encoding: [0x62,0xf4,0x44,0x0c,0x81,0xf9,0x40,0xe2,0x01,0x00]
+ ccmpl {of} ecx, 123456
+# CHECK: ccmpl {of} r9, 123456
+# CHECK: encoding: [0x62,0xd4,0xc4,0x0c,0x81,0xf9,0x40,0xe2,0x01,0x00]
+ ccmpl {of} r9, 123456
+# CHECK: ccmpl {of} dl, bl
+# CHECK: encoding: [0x62,0xf4,0x44,0x0c,0x38,0xda]
+ ccmpl {of} dl, bl
+# CHECK: ccmpl {of} ax, dx
+# CHECK: encoding: [0x62,0xf4,0x45,0x0c,0x39,0xd0]
+ ccmpl {of} ax, dx
+# CHECK: ccmpl {of} edx, ecx
+# CHECK: encoding: [0x62,0xf4,0x44,0x0c,0x39,0xca]
+ ccmpl {of} edx, ecx
+# CHECK: ccmpl {of} r15, r9
+# CHECK: encoding: [0x62,0x54,0xc4,0x0c,0x39,0xcf]
+ ccmpl {of} r15, r9
+# CHECK: ccmple {of} byte ptr [r8 + 4*rax + 123], 123
+# CHECK: encoding: [0x62,0xd4,0x44,0x0e,0x80,0x7c,0x80,0x7b,0x7b]
+ ccmple {of} byte ptr [r8 + 4*rax + 123], 123
+# CHECK: ccmple {of} word ptr [r8 + 4*rax + 123], 123
+# CHECK: encoding: [0x62,0xd4,0x45,0x0e,0x83,0x7c,0x80,0x7b,0x7b]
+ ccmple {of} word ptr [r8 + 4*rax + 123], 123
+# CHECK: ccmple {of} word ptr [r8 + 4*rax + 123], 1234
+# CHECK: encoding: [0x62,0xd4,0x45,0x0e,0x81,0x7c,0x80,0x7b,0xd2,0x04]
+ ccmple {of} word ptr [r8 + 4*rax + 123], 1234
+# CHECK: ccmple {of} dword ptr [r8 + 4*rax + 123], 123
+# CHECK: encoding: [0x62,0xd4,0x44,0x0e,0x83,0x7c,0x80,0x7b,0x7b]
+ ccmple {of} dword ptr [r8 + 4*rax + 123], 123
+# CHECK: ccmple {of} dword ptr [r8 + 4*rax + 123], 123456
+# CHECK: encoding: [0x62,0xd4,0x44,0x0e,0x81,0x7c,0x80,0x7b,0x40,0xe2,0x01,0x00]
+ ccmple {of} dword ptr [r8 + 4*rax + 123], 123456
+# CHECK: ccmple {of} qword ptr [r8 + 4*rax + 123], 123
+# CHECK: encoding: [0x62,0xd4,0xc4,0x0e,0x83,0x7c,0x80,0x7b,0x7b]
+ ccmple {of} qword ptr [r8 + 4*rax + 123], 123
+# CHECK: ccmple {of} qword ptr [r8 + 4*rax + 123], 123456
+# CHECK: encoding: [0x62,0xd4,0xc4,0x0e,0x81,0x7c,0x80,0x7b,0x40,0xe2,0x01,0x00]
+ ccmple {of} qword ptr [r8 + 4*rax + 123], 123456
+# CHECK: ccmple {of} byte ptr [r8 + 4*rax + 123], bl
+# CHECK: encoding: [0x62,0xd4,0x44,0x0e,0x38,0x5c,0x80,0x7b]
+ ccmple {of} byte ptr [r8 + 4*rax + 123], bl
+# CHECK: ccmple {of} word ptr [r8 + 4*rax + 123], dx
+# CHECK: encoding: [0x62,0xd4,0x45,0x0e,0x39,0x54,0x80,0x7b]
+ ccmple {of} word ptr [r8 + 4*rax + 123], dx
+# CHECK: ccmple {of} dword ptr [r8 + 4*rax + 123], ecx
+# CHECK: encoding: [0x62,0xd4,0x44,0x0e,0x39,0x4c,0x80,0x7b]
+ ccmple {of} dword ptr [r8 + 4*rax + 123], ecx
+# CHECK: ccmple {of} qword ptr [r8 + 4*rax + 123], r9
+# CHECK: encoding: [0x62,0x54,0xc4,0x0e,0x39,0x4c,0x80,0x7b]
+ ccmple {of} qword ptr [r8 + 4*rax + 123], r9
+# CHECK: ccmple {of} bl, byte ptr [r8 + 4*rax + 123]
+# CHECK: encoding: [0x62,0xd4,0x44,0x0e,0x3a,0x5c,0x80,0x7b]
+ ccmple {of} bl, byte ptr [r8 + 4*rax + 123]
+# CHECK: ccmple {of} dx, word ptr [r8 + 4*rax + 123]
+# CHECK: encoding: [0x62,0xd4,0x45,0x0e,0x3b,0x54,0x80,0x7b]
+ ccmple {of} dx, word ptr [r8 + 4*rax + 123]
+# CHECK: ccmple {of} ecx, dword ptr [r8 + 4*rax + 123]
+# CHECK: encoding: [0x62,0xd4,0x44,0x0e,0x3b,0x4c,0x80,0x7b]
+ ccmple {of} ecx, dword ptr [r8 + 4*rax + 123]
+# CHECK: ccmple {of} r9, qword ptr [r8 + 4*rax + 123]
+# CHECK: encoding: [0x62,0x54,0xc4,0x0e,0x3b,0x4c,0x80,0x7b]
+ ccmple {of} r9, qword ptr [r8 + 4*rax + 123]
+# CHECK: ccmple {of} bl, 123
+# CHECK: encoding: [0x62,0xf4,0x44,0x0e,0x80,0xfb,0x7b]
+ ccmple {of} bl, 123
+# CHECK: ccmple {of} dx, 123
+# CHECK: encoding: [0x62,0xf4,0x45,0x0e,0x83,0xfa,0x7b]
+ ccmple {of} dx, 123
+# CHECK: ccmple {of} ecx, 123
+# CHECK: encoding: [0x62,0xf4,0x44,0x0e,0x83,0xf9,0x7b]
+ ccmple {of} ecx, 123
+# CHECK: ccmple {of} r9, 123
+# CHECK: encoding: [0x62,0xd4,0xc4,0x0e,0x83,0xf9,0x7b]
+ ccmple {of} r9, 123
+# CHECK: ccmple {of} dx, 1234
+# CHECK: encoding: [0x62,0xf4,0x45,0x0e,0x81,0xfa,0xd2,0x04]
+ ccmple {of} dx, 1234
+# CHECK: ccmple {of} ecx, 123456
+# CHECK: encoding: [0x62,0xf4,0x44,0x0e,0x81,0xf9,0x40,0xe2,0x01,0x00]
+ ccmple {of} ecx, 123456
+# CHECK: ccmple {of} r9, 123456
+# CHECK: encoding: [0x62,0xd4,0xc4,0x0e,0x81,0xf9,0x40,0xe2,0x01,0x00]
+ ccmple {of} r9, 123456
+# CHECK: ccmple {of} dl, bl
+# CHECK: encoding: [0x62,0xf4,0x44,0x0e,0x38,0xda]
+ ccmple {of} dl, bl
+# CHECK: ccmple {of} ax, dx
+# CHECK: encoding: [0x62,0xf4,0x45,0x0e,0x39,0xd0]
+ ccmple {of} ax, dx
+# CHECK: ccmple {of} edx, ecx
+# CHECK: encoding: [0x62,0xf4,0x44,0x0e,0x39,0xca]
+ ccmple {of} edx, ecx
+# CHECK: ccmple {of} r15, r9
+# CHECK: encoding: [0x62,0x54,0xc4,0x0e,0x39,0xcf]
+ ccmple {of} r15, r9
+# CHECK: ccmpae {of} byte ptr [r8 + 4*rax + 123], 123
+# CHECK: encoding: [0x62,0xd4,0x44,0x03,0x80,0x7c,0x80,0x7b,0x7b]
+ ccmpae {of} byte ptr [r8 + 4*rax + 123], 123
+# CHECK: ccmpae {of} word ptr [r8 + 4*rax + 123], 123
+# CHECK: encoding: [0x62,0xd4,0x45,0x03,0x83,0x7c,0x80,0x7b,0x7b]
+ ccmpae {of} word ptr [r8 + 4*rax + 123], 123
+# CHECK: ccmpae {of} word ptr [r8 + 4*rax + 123], 1234
+# CHECK: encoding: [0x62,0xd4,0x45,0x03,0x81,0x7c,0x80,0x7b,0xd2,0x04]
+ ccmpae {of} word ptr [r8 + 4*rax + 123], 1234
+# CHECK: ccmpae {of} dword ptr [r8 + 4*rax + 123], 123
+# CHECK: encoding: [0x62,0xd4,0x44,0x03,0x83,0x7c,0x80,0x7b,0x7b]
+ ccmpae {of} dword ptr [r8 + 4*rax + 123], 123
+# CHECK: ccmpae {of} dword ptr [r8 + 4*rax + 123], 123456
+# CHECK: encoding: [0x62,0xd4,0x44,0x03,0x81,0x7c,0x80,0x7b,0x40,0xe2,0x01,0x00]
+ ccmpae {of} dword ptr [r8 + 4*rax + 123], 123456
+# CHECK: ccmpae {of} qword ptr [r8 + 4*rax + 123], 123
+# CHECK: encoding: [0x62,0xd4,0xc4,0x03,0x83,0x7c,0x80,0x7b,0x7b]
+ ccmpae {of} qword ptr [r8 + 4*rax + 123], 123
+# CHECK: ccmpae {of} qword ptr [r8 + 4*rax + 123], 123456
+# CHECK: encoding: [0x62,0xd4,0xc4,0x03,0x81,0x7c,0x80,0x7b,0x40,0xe2,0x01,0x00]
+ ccmpae {of} qword ptr [r8 + 4*rax + 123], 123456
+# CHECK: ccmpae {of} byte ptr [r8 + 4*rax + 123], bl
+# CHECK: encoding: [0x62,0xd4,0x44,0x03,0x38,0x5c,0x80,0x7b]
+ ccmpae {of} byte ptr [r8 + 4*rax + 123], bl
+# CHECK: ccmpae {of} word ptr [r8 + 4*rax + 123], dx
+# CHECK: encoding: [0x62,0xd4,0x45,0x03,0x39,0x54,0x80,0x7b]
+ ccmpae {of} word ptr [r8 + 4*rax + 123], dx
+# CHECK: ccmpae {of} dword ptr [r8 + 4*rax + 123], ecx
+# CHECK: encoding: [0x62,0xd4,0x44,0x03,0x39,0x4c,0x80,0x7b]
+ ccmpae {of} dword ptr [r8 + 4*rax + 123], ecx
+# CHECK: ccmpae {of} qword ptr [r8 + 4*rax + 123], r9
+# CHECK: encoding: [0x62,0x54,0xc4,0x03,0x39,0x4c,0x80,0x7b]
+ ccmpae {of} qword ptr [r8 + 4*rax + 123], r9
+# CHECK: ccmpae {of} bl, byte ptr [r8 + 4*rax + 123]
+# CHECK: encoding: [0x62,0xd4,0x44,0x03,0x3a,0x5c,0x80,0x7b]
+ ccmpae {of} bl, byte ptr [r8 + 4*rax + 123]
+# CHECK: ccmpae {of} dx, word ptr [r8 + 4*rax + 123]
+# CHECK: encoding: [0x62,0xd4,0x45,0x03,0x3b,0x54,0x80,0x7b]
+ ccmpae {of} dx, word ptr [r8 + 4*rax + 123]
+# CHECK: ccmpae {of} ecx, dword ptr [r8 + 4*rax + 123]
+# CHECK: encoding: [0x62,0xd4,0x44,0x03,0x3b,0x4c,0x80,0x7b]
+ ccmpae {of} ecx, dword ptr [r8 + 4*rax + 123]
+# CHECK: ccmpae {of} r9, qword ptr [r8 + 4*rax + 123]
+# CHECK: encoding: [0x62,0x54,0xc4,0x03,0x3b,0x4c,0x80,0x7b]
+ ccmpae {of} r9, qword ptr [r8 + 4*rax + 123]
+# CHECK: ccmpae {of} bl, 123
+# CHECK: encoding: [0x62,0xf4,0x44,0x03,0x80,0xfb,0x7b]
+ ccmpae {of} bl, 123
+# CHECK: ccmpae {of} dx, 123
+# CHECK: encoding: [0x62,0xf4,0x45,0x03,0x83,0xfa,0x7b]
+ ccmpae {of} dx, 123
+# CHECK: ccmpae {of} ecx, 123
+# CHECK: encoding: [0x62,0xf4,0x44,0x03,0x83,0xf9,0x7b]
+ ccmpae {of} ecx, 123
+# CHECK: ccmpae {of} r9, 123
+# CHECK: encoding: [0x62,0xd4,0xc4,0x03,0x83,0xf9,0x7b]
+ ccmpae {of} r9, 123
+# CHECK: ccmpae {of} dx, 1234
+# CHECK: encoding: [0x62,0xf4,0x45,0x03,0x81,0xfa,0xd2,0x04]
+ ccmpae {of} dx, 1234
+# CHECK: ccmpae {of} ecx, 123456
+# CHECK: encoding: [0x62,0xf4,0x44,0x03,0x81,0xf9,0x40,0xe2,0x01,0x00]
+ ccmpae {of} ecx, 123456
+# CHECK: ccmpae {of} r9, 123456
+# CHECK: encoding: [0x62,0xd4,0xc4,0x03,0x81,0xf9,0x40,0xe2,0x01,0x00]
+ ccmpae {of} r9, 123456
+# CHECK: ccmpae {of} dl, bl
+# CHECK: encoding: [0x62,0xf4,0x44,0x03,0x38,0xda]
+ ccmpae {of} dl, bl
+# CHECK: ccmpae {of} ax, dx
+# CHECK: encoding: [0x62,0xf4,0x45,0x03,0x39,0xd0]
+ ccmpae {of} ax, dx
+# CHECK: ccmpae {of} edx, ecx
+# CHECK: encoding: [0x62,0xf4,0x44,0x03,0x39,0xca]
+ ccmpae {of} edx, ecx
+# CHECK: ccmpae {of} r15, r9
+# CHECK: encoding: [0x62,0x54,0xc4,0x03,0x39,0xcf]
+ ccmpae {of} r15, r9
+# CHECK: ccmpa {of} byte ptr [r8 + 4*rax + 123], 123
+# CHECK: encoding: [0x62,0xd4,0x44,0x07,0x80,0x7c,0x80,0x7b,0x7b]
+ ccmpa {of} byte ptr [r8 + 4*rax + 123], 123
+# CHECK: ccmpa {of} word ptr [r8 + 4*rax + 123], 123
+# CHECK: encoding: [0x62,0xd4,0x45,0x07,0x83,0x7c,0x80,0x7b,0x7b]
+ ccmpa {of} word ptr [r8 + 4*rax + 123], 123
+# CHECK: ccmpa {of} word ptr [r8 + 4*rax + 123], 1234
+# CHECK: encoding: [0x62,0xd4,0x45,0x07,0x81,0x7c,0x80,0x7b,0xd2,0x04]
+ ccmpa {of} word ptr [r8 + 4*rax + 123], 1234
+# CHECK: ccmpa {of} dword ptr [r8 + 4*rax + 123], 123
+# CHECK: encoding: [0x62,0xd4,0x44,0x07,0x83,0x7c,0x80,0x7b,0x7b]
+ ccmpa {of} dword ptr [r8 + 4*rax + 123], 123
+# CHECK: ccmpa {of} dword ptr [r8 + 4*rax + 123], 123456
+# CHECK: encoding: [0x62,0xd4,0x44,0x07,0x81,0x7c,0x80,0x7b,0x40,0xe2,0x01,0x00]
+ ccmpa {of} dword ptr [r8 + 4*rax + 123], 123456
+# CHECK: ccmpa {of} qword ptr [r8 + 4*rax + 123], 123
+# CHECK: encoding: [0x62,0xd4,0xc4,0x07,0x83,0x7c,0x80,0x7b,0x7b]
+ ccmpa {of} qword ptr [r8 + 4*rax + 123], 123
+# CHECK: ccmpa {of} qword ptr [r8 + 4*rax + 123], 123456
+# CHECK: encoding: [0x62,0xd4,0xc4,0x07,0x81,0x7c,0x80,0x7b,0x40,0xe2,0x01,0x00]
+ ccmpa {of} qword ptr [r8 + 4*rax + 123], 123456
+# CHECK: ccmpa {of} byte ptr [r8 + 4*rax + 123], bl
+# CHECK: encoding: [0x62,0xd4,0x44,0x07,0x38,0x5c,0x80,0x7b]
+ ccmpa {of} byte ptr [r8 + 4*rax + 123], bl
+# CHECK: ccmpa {of} word ptr [r8 + 4*rax + 123], dx
+# CHECK: encoding: [0x62,0xd4,0x45,0x07,0x39,0x54,0x80,0x7b]
+ ccmpa {of} word ptr [r8 + 4*rax + 123], dx
+# CHECK: ccmpa {of} dword ptr [r8 + 4*rax + 123], ecx
+# CHECK: encoding: [0x62,0xd4,0x44,0x07,0x39,0x4c,0x80,0x7b]
+ ccmpa {of} dword ptr [r8 + 4*rax + 123], ecx
+# CHECK: ccmpa {of} qword ptr [r8 + 4*rax + 123], r9
+# CHECK: encoding: [0x62,0x54,0xc4,0x07,0x39,0x4c,0x80,0x7b]
+ ccmpa {of} qword ptr [r8 + 4*rax + 123], r9
+# CHECK: ccmpa {of} bl, byte ptr [r8 + 4*rax + 123]
+# CHECK: encoding: [0x62,0xd4,0x44,0x07,0x3a,0x5c,0x80,0x7b]
+ ccmpa {of} bl, byte ptr [r8 + 4*rax + 123]
+# CHECK: ccmpa {of} dx, word ptr [r8 + 4*rax + 123]
+# CHECK: encoding: [0x62,0xd4,0x45,0x07,0x3b,0x54,0x80,0x7b]
+ ccmpa {of} dx, word ptr [r8 + 4*rax + 123]
+# CHECK: ccmpa {of} ecx, dword ptr [r8 + 4*rax + 123]
+# CHECK: encoding: [0x62,0xd4,0x44,0x07,0x3b,0x4c,0x80,0x7b]
+ ccmpa {of} ecx, dword ptr [r8 + 4*rax + 123]
+# CHECK: ccmpa {of} r9, qword ptr [r8 + 4*rax + 123]
+# CHECK: encoding: [0x62,0x54,0xc4,0x07,0x3b,0x4c,0x80,0x7b]
+ ccmpa {of} r9, qword ptr [r8 + 4*rax + 123]
+# CHECK: ccmpa {of} bl, 123
+# CHECK: encoding: [0x62,0xf4,0x44,0x07,0x80,0xfb,0x7b]
+ ccmpa {of} bl, 123
+# CHECK: ccmpa {of} dx, 123
+# CHECK: encoding: [0x62,0xf4,0x45,0x07,0x83,0xfa,0x7b]
+ ccmpa {of} dx, 123
+# CHECK: ccmpa {of} ecx, 123
+# CHECK: encoding: [0x62,0xf4,0x44,0x07,0x83,0xf9,0x7b]
+ ccmpa {of} ecx, 123
+# CHECK: ccmpa {of} r9, 123
+# CHECK: encoding: [0x62,0xd4,0xc4,0x07,0x83,0xf9,0x7b]
+ ccmpa {of} r9, 123
+# CHECK: ccmpa {of} dx, 1234
+# CHECK: encoding: [0x62,0xf4,0x45,0x07,0x81,0xfa,0xd2,0x04]
+ ccmpa {of} dx, 1234
+# CHECK: ccmpa {of} ecx, 123456
+# CHECK: encoding: [0x62,0xf4,0x44,0x07,0x81,0xf9,0x40,0xe2,0x01,0x00]
+ ccmpa {of} ecx, 123456
+# CHECK: ccmpa {of} r9, 123456
+# CHECK: encoding: [0x62,0xd4,0xc4,0x07,0x81,0xf9,0x40,0xe2,0x01,0x00]
+ ccmpa {of} r9, 123456
+# CHECK: ccmpa {of} dl, bl
+# CHECK: encoding: [0x62,0xf4,0x44,0x07,0x38,0xda]
+ ccmpa {of} dl, bl
+# CHECK: ccmpa {of} ax, dx
+# CHECK: encoding: [0x62,0xf4,0x45,0x07,0x39,0xd0]
+ ccmpa {of} ax, dx
+# CHECK: ccmpa {of} edx, ecx
+# CHECK: encoding: [0x62,0xf4,0x44,0x07,0x39,0xca]
+ ccmpa {of} edx, ecx
+# CHECK: ccmpa {of} r15, r9
+# CHECK: encoding: [0x62,0x54,0xc4,0x07,0x39,0xcf]
+ ccmpa {of} r15, r9
+# CHECK: ccmpge {of} byte ptr [r8 + 4*rax + 123], 123
+# CHECK: encoding: [0x62,0xd4,0x44,0x0d,0x80,0x7c,0x80,0x7b,0x7b]
+ ccmpge {of} byte ptr [r8 + 4*rax + 123], 123
+# CHECK: ccmpge {of} word ptr [r8 + 4*rax + 123], 123
+# CHECK: encoding: [0x62,0xd4,0x45,0x0d,0x83,0x7c,0x80,0x7b,0x7b]
+ ccmpge {of} word ptr [r8 + 4*rax + 123], 123
+# CHECK: ccmpge {of} word ptr [r8 + 4*rax + 123], 1234
+# CHECK: encoding: [0x62,0xd4,0x45,0x0d,0x81,0x7c,0x80,0x7b,0xd2,0x04]
+ ccmpge {of} word ptr [r8 + 4*rax + 123], 1234
+# CHECK: ccmpge {of} dword ptr [r8 + 4*rax + 123], 123
+# CHECK: encoding: [0x62,0xd4,0x44,0x0d,0x83,0x7c,0x80,0x7b,0x7b]
+ ccmpge {of} dword ptr [r8 + 4*rax + 123], 123
+# CHECK: ccmpge {of} dword ptr [r8 + 4*rax + 123], 123456
+# CHECK: encoding: [0x62,0xd4,0x44,0x0d,0x81,0x7c,0x80,0x7b,0x40,0xe2,0x01,0x00]
+ ccmpge {of} dword ptr [r8 + 4*rax + 123], 123456
+# CHECK: ccmpge {of} qword ptr [r8 + 4*rax + 123], 123
+# CHECK: encoding: [0x62,0xd4,0xc4,0x0d,0x83,0x7c,0x80,0x7b,0x7b]
+ ccmpge {of} qword ptr [r8 + 4*rax + 123], 123
+# CHECK: ccmpge {of} qword ptr [r8 + 4*rax + 123], 123456
+# CHECK: encoding: [0x62,0xd4,0xc4,0x0d,0x81,0x7c,0x80,0x7b,0x40,0xe2,0x01,0x00]
+ ccmpge {of} qword ptr [r8 + 4*rax + 123], 123456
+# CHECK: ccmpge {of} byte ptr [r8 + 4*rax + 123], bl
+# CHECK: encoding: [0x62,0xd4,0x44,0x0d,0x38,0x5c,0x80,0x7b]
+ ccmpge {of} byte ptr [r8 + 4*rax + 123], bl
+# CHECK: ccmpge {of} word ptr [r8 + 4*rax + 123], dx
+# CHECK: encoding: [0x62,0xd4,0x45,0x0d,0x39,0x54,0x80,0x7b]
+ ccmpge {of} word ptr [r8 + 4*rax + 123], dx
+# CHECK: ccmpge {of} dword ptr [r8 + 4*rax + 123], ecx
+# CHECK: encoding: [0x62,0xd4,0x44,0x0d,0x39,0x4c,0x80,0x7b]
+ ccmpge {of} dword ptr [r8 + 4*rax + 123], ecx
+# CHECK: ccmpge {of} qword ptr [r8 + 4*rax + 123], r9
+# CHECK: encoding: [0x62,0x54,0xc4,0x0d,0x39,0x4c,0x80,0x7b]
+ ccmpge {of} qword ptr [r8 + 4*rax + 123], r9
+# CHECK: ccmpge {of} bl, byte ptr [r8 + 4*rax + 123]
+# CHECK: encoding: [0x62,0xd4,0x44,0x0d,0x3a,0x5c,0x80,0x7b]
+ ccmpge {of} bl, byte ptr [r8 + 4*rax + 123]
+# CHECK: ccmpge {of} dx, word ptr [r8 + 4*rax + 123]
+# CHECK: encoding: [0x62,0xd4,0x45,0x0d,0x3b,0x54,0x80,0x7b]
+ ccmpge {of} dx, word ptr [r8 + 4*rax + 123]
+# CHECK: ccmpge {of} ecx, dword ptr [r8 + 4*rax + 123]
+# CHECK: encoding: [0x62,0xd4,0x44,0x0d,0x3b,0x4c,0x80,0x7b]
+ ccmpge {of} ecx, dword ptr [r8 + 4*rax + 123]
+# CHECK: ccmpge {of} r9, qword ptr [r8 + 4*rax + 123]
+# CHECK: encoding: [0x62,0x54,0xc4,0x0d,0x3b,0x4c,0x80,0x7b]
+ ccmpge {of} r9, qword ptr [r8 + 4*rax + 123]
+# CHECK: ccmpge {of} bl, 123
+# CHECK: encoding: [0x62,0xf4,0x44,0x0d,0x80,0xfb,0x7b]
+ ccmpge {of} bl, 123
+# CHECK: ccmpge {of} dx, 123
+# CHECK: encoding: [0x62,0xf4,0x45,0x0d,0x83,0xfa,0x7b]
+ ccmpge {of} dx, 123
+# CHECK: ccmpge {of} ecx, 123
+# CHECK: encoding: [0x62,0xf4,0x44,0x0d,0x83,0xf9,0x7b]
+ ccmpge {of} ecx, 123
+# CHECK: ccmpge {of} r9, 123
+# CHECK: encoding: [0x62,0xd4,0xc4,0x0d,0x83,0xf9,0x7b]
+ ccmpge {of} r9, 123
+# CHECK: ccmpge {of} dx, 1234
+# CHECK: encoding: [0x62,0xf4,0x45,0x0d,0x81,0xfa,0xd2,0x04]
+ ccmpge {of} dx, 1234
+# CHECK: ccmpge {of} ecx, 123456
+# CHECK: encoding: [0x62,0xf4,0x44,0x0d,0x81,0xf9,0x40,0xe2,0x01,0x00]
+ ccmpge {of} ecx, 123456
+# CHECK: ccmpge {of} r9, 123456
+# CHECK: encoding: [0x62,0xd4,0xc4,0x0d,0x81,0xf9,0x40,0xe2,0x01,0x00]
+ ccmpge {of} r9, 123456
+# CHECK: ccmpge {of} dl, bl
+# CHECK: encoding: [0x62,0xf4,0x44,0x0d,0x38,0xda]
+ ccmpge {of} dl, bl
+# CHECK: ccmpge {of} ax, dx
+# CHECK: encoding: [0x62,0xf4,0x45,0x0d,0x39,0xd0]
+ ccmpge {of} ax, dx
+# CHECK: ccmpge {of} edx, ecx
+# CHECK: encoding: [0x62,0xf4,0x44,0x0d,0x39,0xca]
+ ccmpge {of} edx, ecx
+# CHECK: ccmpge {of} r15, r9
+# CHECK: encoding: [0x62,0x54,0xc4,0x0d,0x39,0xcf]
+ ccmpge {of} r15, r9
+# CHECK: ccmpg {of} byte ptr [r8 + 4*rax + 123], 123
+# CHECK: encoding: [0x62,0xd4,0x44,0x0f,0x80,0x7c,0x80,0x7b,0x7b]
+ ccmpg {of} byte ptr [r8 + 4*rax + 123], 123
+# CHECK: ccmpg {of} word ptr [r8 + 4*rax + 123], 123
+# CHECK: encoding: [0x62,0xd4,0x45,0x0f,0x83,0x7c,0x80,0x7b,0x7b]
+ ccmpg {of} word ptr [r8 + 4*rax + 123], 123
+# CHECK: ccmpg {of} word ptr [r8 + 4*rax + 123], 1234
+# CHECK: encoding: [0x62,0xd4,0x45,0x0f,0x81,0x7c,0x80,0x7b,0xd2,0x04]
+ ccmpg {of} word ptr [r8 + 4*rax + 123], 1234
+# CHECK: ccmpg {of} dword ptr [r8 + 4*rax + 123], 123
+# CHECK: encoding: [0x62,0xd4,0x44,0x0f,0x83,0x7c,0x80,0x7b,0x7b]
+ ccmpg {of} dword ptr [r8 + 4*rax + 123], 123
+# CHECK: ccmpg {of} dword ptr [r8 + 4*rax + 123], 123456
+# CHECK: encoding: [0x62,0xd4,0x44,0x0f,0x81,0x7c,0x80,0x7b,0x40,0xe2,0x01,0x00]
+ ccmpg {of} dword ptr [r8 + 4*rax + 123], 123456
+# CHECK: ccmpg {of} qword ptr [r8 + 4*rax + 123], 123
+# CHECK: encoding: [0x62,0xd4,0xc4,0x0f,0x83,0x7c,0x80,0x7b,0x7b]
+ ccmpg {of} qword ptr [r8 + 4*rax + 123], 123
+# CHECK: ccmpg {of} qword ptr [r8 + 4*rax + 123], 123456
+# CHECK: encoding: [0x62,0xd4,0xc4,0x0f,0x81,0x7c,0x80,0x7b,0x40,0xe2,0x01,0x00]
+ ccmpg {of} qword ptr [r8 + 4*rax + 123], 123456
+# CHECK: ccmpg {of} byte ptr [r8 + 4*rax + 123], bl
+# CHECK: encoding: [0x62,0xd4,0x44,0x0f,0x38,0x5c,0x80,0x7b]
+ ccmpg {of} byte ptr [r8 + 4*rax + 123], bl
+# CHECK: ccmpg {of} word ptr [r8 + 4*rax + 123], dx
+# CHECK: encoding: [0x62,0xd4,0x45,0x0f,0x39,0x54,0x80,0x7b]
+ ccmpg {of} word ptr [r8 + 4*rax + 123], dx
+# CHECK: ccmpg {of} dword ptr [r8 + 4*rax + 123], ecx
+# CHECK: encoding: [0x62,0xd4,0x44,0x0f,0x39,0x4c,0x80,0x7b]
+ ccmpg {of} dword ptr [r8 + 4*rax + 123], ecx
+# CHECK: ccmpg {of} qword ptr [r8 + 4*rax + 123], r9
+# CHECK: encoding: [0x62,0x54,0xc4,0x0f,0x39,0x4c,0x80,0x7b]
+ ccmpg {of} qword ptr [r8 + 4*rax + 123], r9
+# CHECK: ccmpg {of} bl, byte ptr [r8 + 4*rax + 123]
+# CHECK: encoding: [0x62,0xd4,0x44,0x0f,0x3a,0x5c,0x80,0x7b]
+ ccmpg {of} bl, byte ptr [r8 + 4*rax + 123]
+# CHECK: ccmpg {of} dx, word ptr [r8 + 4*rax + 123]
+# CHECK: encoding: [0x62,0xd4,0x45,0x0f,0x3b,0x54,0x80,0x7b]
+ ccmpg {of} dx, word ptr [r8 + 4*rax + 123]
+# CHECK: ccmpg {of} ecx, dword ptr [r8 + 4*rax + 123]
+# CHECK: encoding: [0x62,0xd4,0x44,0x0f,0x3b,0x4c,0x80,0x7b]
+ ccmpg {of} ecx, dword ptr [r8 + 4*rax + 123]
+# CHECK: ccmpg {of} r9, qword ptr [r8 + 4*rax + 123]
+# CHECK: encoding: [0x62,0x54,0xc4,0x0f,0x3b,0x4c,0x80,0x7b]
+ ccmpg {of} r9, qword ptr [r8 + 4*rax + 123]
+# CHECK: ccmpg {of} bl, 123
+# CHECK: encoding: [0x62,0xf4,0x44,0x0f,0x80,0xfb,0x7b]
+ ccmpg {of} bl, 123
+# CHECK: ccmpg {of} dx, 123
+# CHECK: encoding: [0x62,0xf4,0x45,0x0f,0x83,0xfa,0x7b]
+ ccmpg {of} dx, 123
+# CHECK: ccmpg {of} ecx, 123
+# CHECK: encoding: [0x62,0xf4,0x44,0x0f,0x83,0xf9,0x7b]
+ ccmpg {of} ecx, 123
+# CHECK: ccmpg {of} r9, 123
+# CHECK: encoding: [0x62,0xd4,0xc4,0x0f,0x83,0xf9,0x7b]
+ ccmpg {of} r9, 123
+# CHECK: ccmpg {of} dx, 1234
+# CHECK: encoding: [0x62,0xf4,0x45,0x0f,0x81,0xfa,0xd2,0x04]
+ ccmpg {of} dx, 1234
+# CHECK: ccmpg {of} ecx, 123456
+# CHECK: encoding: [0x62,0xf4,0x44,0x0f,0x81,0xf9,0x40,0xe2,0x01,0x00]
+ ccmpg {of} ecx, 123456
+# CHECK: ccmpg {of} r9, 123456
+# CHECK: encoding: [0x62,0xd4,0xc4,0x0f,0x81,0xf9,0x40,0xe2,0x01,0x00]
+ ccmpg {of} r9, 123456
+# CHECK: ccmpg {of} dl, bl
+# CHECK: encoding: [0x62,0xf4,0x44,0x0f,0x38,0xda]
+ ccmpg {of} dl, bl
+# CHECK: ccmpg {of} ax, dx
+# CHECK: encoding: [0x62,0xf4,0x45,0x0f,0x39,0xd0]
+ ccmpg {of} ax, dx
+# CHECK: ccmpg {of} edx, ecx
+# CHECK: encoding: [0x62,0xf4,0x44,0x0f,0x39,0xca]
+ ccmpg {of} edx, ecx
+# CHECK: ccmpg {of} r15, r9
+# CHECK: encoding: [0x62,0x54,0xc4,0x0f,0x39,0xcf]
+ ccmpg {of} r15, r9
+# CHECK: ccmpno {of} byte ptr [r8 + 4*rax + 123], 123
+# CHECK: encoding: [0x62,0xd4,0x44,0x01,0x80,0x7c,0x80,0x7b,0x7b]
+ ccmpno {of} byte ptr [r8 + 4*rax + 123], 123
+# CHECK: ccmpno {of} word ptr [r8 + 4*rax + 123], 123
+# CHECK: encoding: [0x62,0xd4,0x45,0x01,0x83,0x7c,0x80,0x7b,0x7b]
+ ccmpno {of} word ptr [r8 + 4*rax + 123], 123
+# CHECK: ccmpno {of} word ptr [r8 + 4*rax + 123], 1234
+# CHECK: encoding: [0x62,0xd4,0x45,0x01,0x81,0x7c,0x80,0x7b,0xd2,0x04]
+ ccmpno {of} word ptr [r8 + 4*rax + 123], 1234
+# CHECK: ccmpno {of} dword ptr [r8 + 4*rax + 123], 123
+# CHECK: encoding: [0x62,0xd4,0x44,0x01,0x83,0x7c,0x80,0x7b,0x7b]
+ ccmpno {of} dword ptr [r8 + 4*rax + 123], 123
+# CHECK: ccmpno {of} dword ptr [r8 + 4*rax + 123], 123456
+# CHECK: encoding: [0x62,0xd4,0x44,0x01,0x81,0x7c,0x80,0x7b,0x40,0xe2,0x01,0x00]
+ ccmpno {of} dword ptr [r8 + 4*rax + 123], 123456
+# CHECK: ccmpno {of} qword ptr [r8 + 4*rax + 123], 123
+# CHECK: encoding: [0x62,0xd4,0xc4,0x01,0x83,0x7c,0x80,0x7b,0x7b]
+ ccmpno {of} qword ptr [r8 + 4*rax + 123], 123
+# CHECK: ccmpno {of} qword ptr [r8 + 4*rax + 123], 123456
+# CHECK: encoding: [0x62,0xd4,0xc4,0x01,0x81,0x7c,0x80,0x7b,0x40,0xe2,0x01,0x00]
+ ccmpno {of} qword ptr [r8 + 4*rax + 123], 123456
+# CHECK: ccmpno {of} byte ptr [r8 + 4*rax + 123], bl
+# CHECK: encoding: [0x62,0xd4,0x44,0x01,0x38,0x5c,0x80,0x7b]
+ ccmpno {of} byte ptr [r8 + 4*rax + 123], bl
+# CHECK: ccmpno {of} word ptr [r8 + 4*rax + 123], dx
+# CHECK: encoding: [0x62,0xd4,0x45,0x01,0x39,0x54,0x80,0x7b]
+ ccmpno {of} word ptr [r8 + 4*rax + 123], dx
+# CHECK: ccmpno {of} dword ptr [r8 + 4*rax + 123], ecx
+# CHECK: encoding: [0x62,0xd4,0x44,0x01,0x39,0x4c,0x80,0x7b]
+ ccmpno {of} dword ptr [r8 + 4*rax + 123], ecx
+# CHECK: ccmpno {of} qword ptr [r8 + 4*rax + 123], r9
+# CHECK: encoding: [0x62,0x54,0xc4,0x01,0x39,0x4c,0x80,0x7b]
+ ccmpno {of} qword ptr [r8 + 4*rax + 123], r9
+# CHECK: ccmpno {of} bl, byte ptr [r8 + 4*rax + 123]
+# CHECK: encoding: [0x62,0xd4,0x44,0x01,0x3a,0x5c,0x80,0x7b]
+ ccmpno {of} bl, byte ptr [r8 + 4*rax + 123]
+# CHECK: ccmpno {of} dx, word ptr [r8 + 4*rax + 123]
+# CHECK: encoding: [0x62,0xd4,0x45,0x01,0x3b,0x54,0x80,0x7b]
+ ccmpno {of} dx, word ptr [r8 + 4*rax + 123]
+# CHECK: ccmpno {of} ecx, dword ptr [r8 + 4*rax + 123]
+# CHECK: encoding: [0x62,0xd4,0x44,0x01,0x3b,0x4c,0x80,0x7b]
+ ccmpno {of} ecx, dword ptr [r8 + 4*rax + 123]
+# CHECK: ccmpno {of} r9, qword ptr [r8 + 4*rax + 123]
+# CHECK: encoding: [0x62,0x54,0xc4,0x01,0x3b,0x4c,0x80,0x7b]
+ ccmpno {of} r9, qword ptr [r8 + 4*rax + 123]
+# CHECK: ccmpno {of} bl, 123
+# CHECK: encoding: [0x62,0xf4,0x44,0x01,0x80,0xfb,0x7b]
+ ccmpno {of} bl, 123
+# CHECK: ccmpno {of} dx, 123
+# CHECK: encoding: [0x62,0xf4,0x45,0x01,0x83,0xfa,0x7b]
+ ccmpno {of} dx, 123
+# CHECK: ccmpno {of} ecx, 123
+# CHECK: encoding: [0x62,0xf4,0x44,0x01,0x83,0xf9,0x7b]
+ ccmpno {of} ecx, 123
+# CHECK: ccmpno {of} r9, 123
+# CHECK: encoding: [0x62,0xd4,0xc4,0x01,0x83,0xf9,0x7b]
+ ccmpno {of} r9, 123
+# CHECK: ccmpno {of} dx, 1234
+# CHECK: encoding: [0x62,0xf4,0x45,0x01,0x81,0xfa,0xd2,0x04]
+ ccmpno {of} dx, 1234
+# CHECK: ccmpno {of} ecx, 123456
+# CHECK: encoding: [0x62,0xf4,0x44,0x01,0x81,0xf9,0x40,0xe2,0x01,0x00]
+ ccmpno {of} ecx, 123456
+# CHECK: ccmpno {of} r9, 123456
+# CHECK: encoding: [0x62,0xd4,0xc4,0x01,0x81,0xf9,0x40,0xe2,0x01,0x00]
+ ccmpno {of} r9, 123456
+# CHECK: ccmpno {of} dl, bl
+# CHECK: encoding: [0x62,0xf4,0x44,0x01,0x38,0xda]
+ ccmpno {of} dl, bl
+# CHECK: ccmpno {of} ax, dx
+# CHECK: encoding: [0x62,0xf4,0x45,0x01,0x39,0xd0]
+ ccmpno {of} ax, dx
+# CHECK: ccmpno {of} edx, ecx
+# CHECK: encoding: [0x62,0xf4,0x44,0x01,0x39,0xca]
+ ccmpno {of} edx, ecx
+# CHECK: ccmpno {of} r15, r9
+# CHECK: encoding: [0x62,0x54,0xc4,0x01,0x39,0xcf]
+ ccmpno {of} r15, r9
+# CHECK: ccmpns {of} byte ptr [r8 + 4*rax + 123], 123
+# CHECK: encoding: [0x62,0xd4,0x44,0x09,0x80,0x7c,0x80,0x7b,0x7b]
+ ccmpns {of} byte ptr [r8 + 4*rax + 123], 123
+# CHECK: ccmpns {of} word ptr [r8 + 4*rax + 123], 123
+# CHECK: encoding: [0x62,0xd4,0x45,0x09,0x83,0x7c,0x80,0x7b,0x7b]
+ ccmpns {of} word ptr [r8 + 4*rax + 123], 123
+# CHECK: ccmpns {of} word ptr [r8 + 4*rax + 123], 1234
+# CHECK: encoding: [0x62,0xd4,0x45,0x09,0x81,0x7c,0x80,0x7b,0xd2,0x04]
+ ccmpns {of} word ptr [r8 + 4*rax + 123], 1234
+# CHECK: ccmpns {of} dword ptr [r8 + 4*rax + 123], 123
+# CHECK: encoding: [0x62,0xd4,0x44,0x09,0x83,0x7c,0x80,0x7b,0x7b]
+ ccmpns {of} dword ptr [r8 + 4*rax + 123], 123
+# CHECK: ccmpns {of} dword ptr [r8 + 4*rax + 123], 123456
+# CHECK: encoding: [0x62,0xd4,0x44,0x09,0x81,0x7c,0x80,0x7b,0x40,0xe2,0x01,0x00]
+ ccmpns {of} dword ptr [r8 + 4*rax + 123], 123456
+# CHECK: ccmpns {of} qword ptr [r8 + 4*rax + 123], 123
+# CHECK: encoding: [0x62,0xd4,0xc4,0x09,0x83,0x7c,0x80,0x7b,0x7b]
+ ccmpns {of} qword ptr [r8 + 4*rax + 123], 123
+# CHECK: ccmpns {of} qword ptr [r8 + 4*rax + 123], 123456
+# CHECK: encoding: [0x62,0xd4,0xc4,0x09,0x81,0x7c,0x80,0x7b,0x40,0xe2,0x01,0x00]
+ ccmpns {of} qword ptr [r8 + 4*rax + 123], 123456
+# CHECK: ccmpns {of} byte ptr [r8 + 4*rax + 123], bl
+# CHECK: encoding: [0x62,0xd4,0x44,0x09,0x38,0x5c,0x80,0x7b]
+ ccmpns {of} byte ptr [r8 + 4*rax + 123], bl
+# CHECK: ccmpns {of} word ptr [r8 + 4*rax + 123], dx
+# CHECK: encoding: [0x62,0xd4,0x45,0x09,0x39,0x54,0x80,0x7b]
+ ccmpns {of} word ptr [r8 + 4*rax + 123], dx
+# CHECK: ccmpns {of} dword ptr [r8 + 4*rax + 123], ecx
+# CHECK: encoding: [0x62,0xd4,0x44,0x09,0x39,0x4c,0x80,0x7b]
+ ccmpns {of} dword ptr [r8 + 4*rax + 123], ecx
+# CHECK: ccmpns {of} qword ptr [r8 + 4*rax + 123], r9
+# CHECK: encoding: [0x62,0x54,0xc4,0x09,0x39,0x4c,0x80,0x7b]
+ ccmpns {of} qword ptr [r8 + 4*rax + 123], r9
+# CHECK: ccmpns {of} bl, byte ptr [r8 + 4*rax + 123]
+# CHECK: encoding: [0x62,0xd4,0x44,0x09,0x3a,0x5c,0x80,0x7b]
+ ccmpns {of} bl, byte ptr [r8 + 4*rax + 123]
+# CHECK: ccmpns {of} dx, word ptr [r8 + 4*rax + 123]
+# CHECK: encoding: [0x62,0xd4,0x45,0x09,0x3b,0x54,0x80,0x7b]
+ ccmpns {of} dx, word ptr [r8 + 4*rax + 123]
+# CHECK: ccmpns {of} ecx, dword ptr [r8 + 4*rax + 123]
+# CHECK: encoding: [0x62,0xd4,0x44,0x09,0x3b,0x4c,0x80,0x7b]
+ ccmpns {of} ecx, dword ptr [r8 + 4*rax + 123]
+# CHECK: ccmpns {of} r9, qword ptr [r8 + 4*rax + 123]
+# CHECK: encoding: [0x62,0x54,0xc4,0x09,0x3b,0x4c,0x80,0x7b]
+ ccmpns {of} r9, qword ptr [r8 + 4*rax + 123]
+# CHECK: ccmpns {of} bl, 123
+# CHECK: encoding: [0x62,0xf4,0x44,0x09,0x80,0xfb,0x7b]
+ ccmpns {of} bl, 123
+# CHECK: ccmpns {of} dx, 123
+# CHECK: encoding: [0x62,0xf4,0x45,0x09,0x83,0xfa,0x7b]
+ ccmpns {of} dx, 123
+# CHECK: ccmpns {of} ecx, 123
+# CHECK: encoding: [0x62,0xf4,0x44,0x09,0x83,0xf9,0x7b]
+ ccmpns {of} ecx, 123
+# CHECK: ccmpns {of} r9, 123
+# CHECK: encoding: [0x62,0xd4,0xc4,0x09,0x83,0xf9,0x7b]
+ ccmpns {of} r9, 123
+# CHECK: ccmpns {of} dx, 1234
+# CHECK: encoding: [0x62,0xf4,0x45,0x09,0x81,0xfa,0xd2,0x04]
+ ccmpns {of} dx, 1234
+# CHECK: ccmpns {of} ecx, 123456
+# CHECK: encoding: [0x62,0xf4,0x44,0x09,0x81,0xf9,0x40,0xe2,0x01,0x00]
+ ccmpns {of} ecx, 123456
+# CHECK: ccmpns {of} r9, 123456
+# CHECK: encoding: [0x62,0xd4,0xc4,0x09,0x81,0xf9,0x40,0xe2,0x01,0x00]
+ ccmpns {of} r9, 123456
+# CHECK: ccmpns {of} dl, bl
+# CHECK: encoding: [0x62,0xf4,0x44,0x09,0x38,0xda]
+ ccmpns {of} dl, bl
+# CHECK: ccmpns {of} ax, dx
+# CHECK: encoding: [0x62,0xf4,0x45,0x09,0x39,0xd0]
+ ccmpns {of} ax, dx
+# CHECK: ccmpns {of} edx, ecx
+# CHECK: encoding: [0x62,0xf4,0x44,0x09,0x39,0xca]
+ ccmpns {of} edx, ecx
+# CHECK: ccmpns {of} r15, r9
+# CHECK: encoding: [0x62,0x54,0xc4,0x09,0x39,0xcf]
+ ccmpns {of} r15, r9
+# CHECK: ccmpne {of} byte ptr [r8 + 4*rax + 123], 123
+# CHECK: encoding: [0x62,0xd4,0x44,0x05,0x80,0x7c,0x80,0x7b,0x7b]
+ ccmpne {of} byte ptr [r8 + 4*rax + 123], 123
+# CHECK: ccmpne {of} word ptr [r8 + 4*rax + 123], 123
+# CHECK: encoding: [0x62,0xd4,0x45,0x05,0x83,0x7c,0x80,0x7b,0x7b]
+ ccmpne {of} word ptr [r8 + 4*rax + 123], 123
+# CHECK: ccmpne {of} word ptr [r8 + 4*rax + 123], 1234
+# CHECK: encoding: [0x62,0xd4,0x45,0x05,0x81,0x7c,0x80,0x7b,0xd2,0x04]
+ ccmpne {of} word ptr [r8 + 4*rax + 123], 1234
+# CHECK: ccmpne {of} dword ptr [r8 + 4*rax + 123], 123
+# CHECK: encoding: [0x62,0xd4,0x44,0x05,0x83,0x7c,0x80,0x7b,0x7b]
+ ccmpne {of} dword ptr [r8 + 4*rax + 123], 123
+# CHECK: ccmpne {of} dword ptr [r8 + 4*rax + 123], 123456
+# CHECK: encoding: [0x62,0xd4,0x44,0x05,0x81,0x7c,0x80,0x7b,0x40,0xe2,0x01,0x00]
+ ccmpne {of} dword ptr [r8 + 4*rax + 123], 123456
+# CHECK: ccmpne {of} qword ptr [r8 + 4*rax + 123], 123
+# CHECK: encoding: [0x62,0xd4,0xc4,0x05,0x83,0x7c,0x80,0x7b,0x7b]
+ ccmpne {of} qword ptr [r8 + 4*rax + 123], 123
+# CHECK: ccmpne {of} qword ptr [r8 + 4*rax + 123], 123456
+# CHECK: encoding: [0x62,0xd4,0xc4,0x05,0x81,0x7c,0x80,0x7b,0x40,0xe2,0x01,0x00]
+ ccmpne {of} qword ptr [r8 + 4*rax + 123], 123456
+# CHECK: ccmpne {of} byte ptr [r8 + 4*rax + 123], bl
+# CHECK: encoding: [0x62,0xd4,0x44,0x05,0x38,0x5c,0x80,0x7b]
+ ccmpne {of} byte ptr [r8 + 4*rax + 123], bl
+# CHECK: ccmpne {of} word ptr [r8 + 4*rax + 123], dx
+# CHECK: encoding: [0x62,0xd4,0x45,0x05,0x39,0x54,0x80,0x7b]
+ ccmpne {of} word ptr [r8 + 4*rax + 123], dx
+# CHECK: ccmpne {of} dword ptr [r8 + 4*rax + 123], ecx
+# CHECK: encoding: [0x62,0xd4,0x44,0x05,0x39,0x4c,0x80,0x7b]
+ ccmpne {of} dword ptr [r8 + 4*rax + 123], ecx
+# CHECK: ccmpne {of} qword ptr [r8 + 4*rax + 123], r9
+# CHECK: encoding: [0x62,0x54,0xc4,0x05,0x39,0x4c,0x80,0x7b]
+ ccmpne {of} qword ptr [r8 + 4*rax + 123], r9
+# CHECK: ccmpne {of} bl, byte ptr [r8 + 4*rax + 123]
+# CHECK: encoding: [0x62,0xd4,0x44,0x05,0x3a,0x5c,0x80,0x7b]
+ ccmpne {of} bl, byte ptr [r8 + 4*rax + 123]
+# CHECK: ccmpne {of} dx, word ptr [r8 + 4*rax + 123]
+# CHECK: encoding: [0x62,0xd4,0x45,0x05,0x3b,0x54,0x80,0x7b]
+ ccmpne {of} dx, word ptr [r8 + 4*rax + 123]
+# CHECK: ccmpne {of} ecx, dword ptr [r8 + 4*rax + 123]
+# CHECK: encoding: [0x62,0xd4,0x44,0x05,0x3b,0x4c,0x80,0x7b]
+ ccmpne {of} ecx, dword ptr [r8 + 4*rax + 123]
+# CHECK: ccmpne {of} r9, qword ptr [r8 + 4*rax + 123]
+# CHECK: encoding: [0x62,0x54,0xc4,0x05,0x3b,0x4c,0x80,0x7b]
+ ccmpne {of} r9, qword ptr [r8 + 4*rax + 123]
+# CHECK: ccmpne {of} bl, 123
+# CHECK: encoding: [0x62,0xf4,0x44,0x05,0x80,0xfb,0x7b]
+ ccmpne {of} bl, 123
+# CHECK: ccmpne {of} dx, 123
+# CHECK: encoding: [0x62,0xf4,0x45,0x05,0x83,0xfa,0x7b]
+ ccmpne {of} dx, 123
+# CHECK: ccmpne {of} ecx, 123
+# CHECK: encoding: [0x62,0xf4,0x44,0x05,0x83,0xf9,0x7b]
+ ccmpne {of} ecx, 123
+# CHECK: ccmpne {of} r9, 123
+# CHECK: encoding: [0x62,0xd4,0xc4,0x05,0x83,0xf9,0x7b]
+ ccmpne {of} r9, 123
+# CHECK: ccmpne {of} dx, 1234
+# CHECK: encoding: [0x62,0xf4,0x45,0x05,0x81,0xfa,0xd2,0x04]
+ ccmpne {of} dx, 1234
+# CHECK: ccmpne {of} ecx, 123456
+# CHECK: encoding: [0x62,0xf4,0x44,0x05,0x81,0xf9,0x40,0xe2,0x01,0x00]
+ ccmpne {of} ecx, 123456
+# CHECK: ccmpne {of} r9, 123456
+# CHECK: encoding: [0x62,0xd4,0xc4,0x05,0x81,0xf9,0x40,0xe2,0x01,0x00]
+ ccmpne {of} r9, 123456
+# CHECK: ccmpne {of} dl, bl
+# CHECK: encoding: [0x62,0xf4,0x44,0x05,0x38,0xda]
+ ccmpne {of} dl, bl
+# CHECK: ccmpne {of} ax, dx
+# CHECK: encoding: [0x62,0xf4,0x45,0x05,0x39,0xd0]
+ ccmpne {of} ax, dx
+# CHECK: ccmpne {of} edx, ecx
+# CHECK: encoding: [0x62,0xf4,0x44,0x05,0x39,0xca]
+ ccmpne {of} edx, ecx
+# CHECK: ccmpne {of} r15, r9
+# CHECK: encoding: [0x62,0x54,0xc4,0x05,0x39,0xcf]
+ ccmpne {of} r15, r9
+# CHECK: ccmpo {of} byte ptr [r8 + 4*rax + 123], 123
+# CHECK: encoding: [0x62,0xd4,0x44,0x00,0x80,0x7c,0x80,0x7b,0x7b]
+ ccmpo {of} byte ptr [r8 + 4*rax + 123], 123
+# CHECK: ccmpo {of} word ptr [r8 + 4*rax + 123], 123
+# CHECK: encoding: [0x62,0xd4,0x45,0x00,0x83,0x7c,0x80,0x7b,0x7b]
+ ccmpo {of} word ptr [r8 + 4*rax + 123], 123
+# CHECK: ccmpo {of} word ptr [r8 + 4*rax + 123], 1234
+# CHECK: encoding: [0x62,0xd4,0x45,0x00,0x81,0x7c,0x80,0x7b,0xd2,0x04]
+ ccmpo {of} word ptr [r8 + 4*rax + 123], 1234
+# CHECK: ccmpo {of} dword ptr [r8 + 4*rax + 123], 123
+# CHECK: encoding: [0x62,0xd4,0x44,0x00,0x83,0x7c,0x80,0x7b,0x7b]
+ ccmpo {of} dword ptr [r8 + 4*rax + 123], 123
+# CHECK: ccmpo {of} dword ptr [r8 + 4*rax + 123], 123456
+# CHECK: encoding: [0x62,0xd4,0x44,0x00,0x81,0x7c,0x80,0x7b,0x40,0xe2,0x01,0x00]
+ ccmpo {of} dword ptr [r8 + 4*rax + 123], 123456
+# CHECK: ccmpo {of} qword ptr [r8 + 4*rax + 123], 123
+# CHECK: encoding: [0x62,0xd4,0xc4,0x00,0x83,0x7c,0x80,0x7b,0x7b]
+ ccmpo {of} qword ptr [r8 + 4*rax + 123], 123
+# CHECK: ccmpo {of} qword ptr [r8 + 4*rax + 123], 123456
+# CHECK: encoding: [0x62,0xd4,0xc4,0x00,0x81,0x7c,0x80,0x7b,0x40,0xe2,0x01,0x00]
+ ccmpo {of} qword ptr [r8 + 4*rax + 123], 123456
+# CHECK: ccmpo {of} byte ptr [r8 + 4*rax + 123], bl
+# CHECK: encoding: [0x62,0xd4,0x44,0x00,0x38,0x5c,0x80,0x7b]
+ ccmpo {of} byte ptr [r8 + 4*rax + 123], bl
+# CHECK: ccmpo {of} word ptr [r8 + 4*rax + 123], dx
+# CHECK: encoding: [0x62,0xd4,0x45,0x00,0x39,0x54,0x80,0x7b]
+ ccmpo {of} word ptr [r8 + 4*rax + 123], dx
+# CHECK: ccmpo {of} dword ptr [r8 + 4*rax + 123], ecx
+# CHECK: encoding: [0x62,0xd4,0x44,0x00,0x39,0x4c,0x80,0x7b]
+ ccmpo {of} dword ptr [r8 + 4*rax + 123], ecx
+# CHECK: ccmpo {of} qword ptr [r8 + 4*rax + 123], r9
+# CHECK: encoding: [0x62,0x54,0xc4,0x00,0x39,0x4c,0x80,0x7b]
+ ccmpo {of} qword ptr [r8 + 4*rax + 123], r9
+# CHECK: ccmpo {of} bl, byte ptr [r8 + 4*rax + 123]
+# CHECK: encoding: [0x62,0xd4,0x44,0x00,0x3a,0x5c,0x80,0x7b]
+ ccmpo {of} bl, byte ptr [r8 + 4*rax + 123]
+# CHECK: ccmpo {of} dx, word ptr [r8 + 4*rax + 123]
+# CHECK: encoding: [0x62,0xd4,0x45,0x00,0x3b,0x54,0x80,0x7b]
+ ccmpo {of} dx, word ptr [r8 + 4*rax + 123]
+# CHECK: ccmpo {of} ecx, dword ptr [r8 + 4*rax + 123]
+# CHECK: encoding: [0x62,0xd4,0x44,0x00,0x3b,0x4c,0x80,0x7b]
+ ccmpo {of} ecx, dword ptr [r8 + 4*rax + 123]
+# CHECK: ccmpo {of} r9, qword ptr [r8 + 4*rax + 123]
+# CHECK: encoding: [0x62,0x54,0xc4,0x00,0x3b,0x4c,0x80,0x7b]
+ ccmpo {of} r9, qword ptr [r8 + 4*rax + 123]
+# CHECK: ccmpo {of} bl, 123
+# CHECK: encoding: [0x62,0xf4,0x44,0x00,0x80,0xfb,0x7b]
+ ccmpo {of} bl, 123
+# CHECK: ccmpo {of} dx, 123
+# CHECK: encoding: [0x62,0xf4,0x45,0x00,0x83,0xfa,0x7b]
+ ccmpo {of} dx, 123
+# CHECK: ccmpo {of} ecx, 123
+# CHECK: encoding: [0x62,0xf4,0x44,0x00,0x83,0xf9,0x7b]
+ ccmpo {of} ecx, 123
+# CHECK: ccmpo {of} r9, 123
+# CHECK: encoding: [0x62,0xd4,0xc4,0x00,0x83,0xf9,0x7b]
+ ccmpo {of} r9, 123
+# CHECK: ccmpo {of} dx, 1234
+# CHECK: encoding: [0x62,0xf4,0x45,0x00,0x81,0xfa,0xd2,0x04]
+ ccmpo {of} dx, 1234
+# CHECK: ccmpo {of} ecx, 123456
+# CHECK: encoding: [0x62,0xf4,0x44,0x00,0x81,0xf9,0x40,0xe2,0x01,0x00]
+ ccmpo {of} ecx, 123456
+# CHECK: ccmpo {of} r9, 123456
+# CHECK: encoding: [0x62,0xd4,0xc4,0x00,0x81,0xf9,0x40,0xe2,0x01,0x00]
+ ccmpo {of} r9, 123456
+# CHECK: ccmpo {of} dl, bl
+# CHECK: encoding: [0x62,0xf4,0x44,0x00,0x38,0xda]
+ ccmpo {of} dl, bl
+# CHECK: ccmpo {of} ax, dx
+# CHECK: encoding: [0x62,0xf4,0x45,0x00,0x39,0xd0]
+ ccmpo {of} ax, dx
+# CHECK: ccmpo {of} edx, ecx
+# CHECK: encoding: [0x62,0xf4,0x44,0x00,0x39,0xca]
+ ccmpo {of} edx, ecx
+# CHECK: ccmpo {of} r15, r9
+# CHECK: encoding: [0x62,0x54,0xc4,0x00,0x39,0xcf]
+ ccmpo {of} r15, r9
+# CHECK: ccmps {of} byte ptr [r8 + 4*rax + 123], 123
+# CHECK: encoding: [0x62,0xd4,0x44,0x08,0x80,0x7c,0x80,0x7b,0x7b]
+ ccmps {of} byte ptr [r8 + 4*rax + 123], 123
+# CHECK: ccmps {of} word ptr [r8 + 4*rax + 123], 123
+# CHECK: encoding: [0x62,0xd4,0x45,0x08,0x83,0x7c,0x80,0x7b,0x7b]
+ ccmps {of} word ptr [r8 + 4*rax + 123], 123
+# CHECK: ccmps {of} word ptr [r8 + 4*rax + 123], 1234
+# CHECK: encoding: [0x62,0xd4,0x45,0x08,0x81,0x7c,0x80,0x7b,0xd2,0x04]
+ ccmps {of} word ptr [r8 + 4*rax + 123], 1234
+# CHECK: ccmps {of} dword ptr [r8 + 4*rax + 123], 123
+# CHECK: encoding: [0x62,0xd4,0x44,0x08,0x83,0x7c,0x80,0x7b,0x7b]
+ ccmps {of} dword ptr [r8 + 4*rax + 123], 123
+# CHECK: ccmps {of} dword ptr [r8 + 4*rax + 123], 123456
+# CHECK: encoding: [0x62,0xd4,0x44,0x08,0x81,0x7c,0x80,0x7b,0x40,0xe2,0x01,0x00]
+ ccmps {of} dword ptr [r8 + 4*rax + 123], 123456
+# CHECK: ccmps {of} qword ptr [r8 + 4*rax + 123], 123
+# CHECK: encoding: [0x62,0xd4,0xc4,0x08,0x83,0x7c,0x80,0x7b,0x7b]
+ ccmps {of} qword ptr [r8 + 4*rax + 123], 123
+# CHECK: ccmps {of} qword ptr [r8 + 4*rax + 123], 123456
+# CHECK: encoding: [0x62,0xd4,0xc4,0x08,0x81,0x7c,0x80,0x7b,0x40,0xe2,0x01,0x00]
+ ccmps {of} qword ptr [r8 + 4*rax + 123], 123456
+# CHECK: ccmps {of} byte ptr [r8 + 4*rax + 123], bl
+# CHECK: encoding: [0x62,0xd4,0x44,0x08,0x38,0x5c,0x80,0x7b]
+ ccmps {of} byte ptr [r8 + 4*rax + 123], bl
+# CHECK: ccmps {of} word ptr [r8 + 4*rax + 123], dx
+# CHECK: encoding: [0x62,0xd4,0x45,0x08,0x39,0x54,0x80,0x7b]
+ ccmps {of} word ptr [r8 + 4*rax + 123], dx
+# CHECK: ccmps {of} dword ptr [r8 + 4*rax + 123], ecx
+# CHECK: encoding: [0x62,0xd4,0x44,0x08,0x39,0x4c,0x80,0x7b]
+ ccmps {of} dword ptr [r8 + 4*rax + 123], ecx
+# CHECK: ccmps {of} qword ptr [r8 + 4*rax + 123], r9
+# CHECK: encoding: [0x62,0x54,0xc4,0x08,0x39,0x4c,0x80,0x7b]
+ ccmps {of} qword ptr [r8 + 4*rax + 123], r9
+# CHECK: ccmps {of} bl, byte ptr [r8 + 4*rax + 123]
+# CHECK: encoding: [0x62,0xd4,0x44,0x08,0x3a,0x5c,0x80,0x7b]
+ ccmps {of} bl, byte ptr [r8 + 4*rax + 123]
+# CHECK: ccmps {of} dx, word ptr [r8 + 4*rax + 123]
+# CHECK: encoding: [0x62,0xd4,0x45,0x08,0x3b,0x54,0x80,0x7b]
+ ccmps {of} dx, word ptr [r8 + 4*rax + 123]
+# CHECK: ccmps {of} ecx, dword ptr [r8 + 4*rax + 123]
+# CHECK: encoding: [0x62,0xd4,0x44,0x08,0x3b,0x4c,0x80,0x7b]
+ ccmps {of} ecx, dword ptr [r8 + 4*rax + 123]
+# CHECK: ccmps {of} r9, qword ptr [r8 + 4*rax + 123]
+# CHECK: encoding: [0x62,0x54,0xc4,0x08,0x3b,0x4c,0x80,0x7b]
+ ccmps {of} r9, qword ptr [r8 + 4*rax + 123]
+# CHECK: ccmps {of} bl, 123
+# CHECK: encoding: [0x62,0xf4,0x44,0x08,0x80,0xfb,0x7b]
+ ccmps {of} bl, 123
+# CHECK: ccmps {of} dx, 123
+# CHECK: encoding: [0x62,0xf4,0x45,0x08,0x83,0xfa,0x7b]
+ ccmps {of} dx, 123
+# CHECK: ccmps {of} ecx, 123
+# CHECK: encoding: [0x62,0xf4,0x44,0x08,0x83,0xf9,0x7b]
+ ccmps {of} ecx, 123
+# CHECK: ccmps {of} r9, 123
+# CHECK: encoding: [0x62,0xd4,0xc4,0x08,0x83,0xf9,0x7b]
+ ccmps {of} r9, 123
+# CHECK: ccmps {of} dx, 1234
+# CHECK: encoding: [0x62,0xf4,0x45,0x08,0x81,0xfa,0xd2,0x04]
+ ccmps {of} dx, 1234
+# CHECK: ccmps {of} ecx, 123456
+# CHECK: encoding: [0x62,0xf4,0x44,0x08,0x81,0xf9,0x40,0xe2,0x01,0x00]
+ ccmps {of} ecx, 123456
+# CHECK: ccmps {of} r9, 123456
+# CHECK: encoding: [0x62,0xd4,0xc4,0x08,0x81,0xf9,0x40,0xe2,0x01,0x00]
+ ccmps {of} r9, 123456
+# CHECK: ccmps {of} dl, bl
+# CHECK: encoding: [0x62,0xf4,0x44,0x08,0x38,0xda]
+ ccmps {of} dl, bl
+# CHECK: ccmps {of} ax, dx
+# CHECK: encoding: [0x62,0xf4,0x45,0x08,0x39,0xd0]
+ ccmps {of} ax, dx
+# CHECK: ccmps {of} edx, ecx
+# CHECK: encoding: [0x62,0xf4,0x44,0x08,0x39,0xca]
+ ccmps {of} edx, ecx
+# CHECK: ccmps {of} r15, r9
+# CHECK: encoding: [0x62,0x54,0xc4,0x08,0x39,0xcf]
+ ccmps {of} r15, r9
+# CHECK: ccmpt {of} byte ptr [r8 + 4*rax + 123], 123
+# CHECK: encoding: [0x62,0xd4,0x44,0x0a,0x80,0x7c,0x80,0x7b,0x7b]
+ ccmpt {of} byte ptr [r8 + 4*rax + 123], 123
+# CHECK: ccmpt {of} word ptr [r8 + 4*rax + 123], 123
+# CHECK: encoding: [0x62,0xd4,0x45,0x0a,0x83,0x7c,0x80,0x7b,0x7b]
+ ccmpt {of} word ptr [r8 + 4*rax + 123], 123
+# CHECK: ccmpt {of} word ptr [r8 + 4*rax + 123], 1234
+# CHECK: encoding: [0x62,0xd4,0x45,0x0a,0x81,0x7c,0x80,0x7b,0xd2,0x04]
+ ccmpt {of} word ptr [r8 + 4*rax + 123], 1234
+# CHECK: ccmpt {of} dword ptr [r8 + 4*rax + 123], 123
+# CHECK: encoding: [0x62,0xd4,0x44,0x0a,0x83,0x7c,0x80,0x7b,0x7b]
+ ccmpt {of} dword ptr [r8 + 4*rax + 123], 123
+# CHECK: ccmpt {of} dword ptr [r8 + 4*rax + 123], 123456
+# CHECK: encoding: [0x62,0xd4,0x44,0x0a,0x81,0x7c,0x80,0x7b,0x40,0xe2,0x01,0x00]
+ ccmpt {of} dword ptr [r8 + 4*rax + 123], 123456
+# CHECK: ccmpt {of} qword ptr [r8 + 4*rax + 123], 123
+# CHECK: encoding: [0x62,0xd4,0xc4,0x0a,0x83,0x7c,0x80,0x7b,0x7b]
+ ccmpt {of} qword ptr [r8 + 4*rax + 123], 123
+# CHECK: ccmpt {of} qword ptr [r8 + 4*rax + 123], 123456
+# CHECK: encoding: [0x62,0xd4,0xc4,0x0a,0x81,0x7c,0x80,0x7b,0x40,0xe2,0x01,0x00]
+ ccmpt {of} qword ptr [r8 + 4*rax + 123], 123456
+# CHECK: ccmpt {of} byte ptr [r8 + 4*rax + 123], bl
+# CHECK: encoding: [0x62,0xd4,0x44,0x0a,0x38,0x5c,0x80,0x7b]
+ ccmpt {of} byte ptr [r8 + 4*rax + 123], bl
+# CHECK: ccmpt {of} word ptr [r8 + 4*rax + 123], dx
+# CHECK: encoding: [0x62,0xd4,0x45,0x0a,0x39,0x54,0x80,0x7b]
+ ccmpt {of} word ptr [r8 + 4*rax + 123], dx
+# CHECK: ccmpt {of} dword ptr [r8 + 4*rax + 123], ecx
+# CHECK: encoding: [0x62,0xd4,0x44,0x0a,0x39,0x4c,0x80,0x7b]
+ ccmpt {of} dword ptr [r8 + 4*rax + 123], ecx
+# CHECK: ccmpt {of} qword ptr [r8 + 4*rax + 123], r9
+# CHECK: encoding: [0x62,0x54,0xc4,0x0a,0x39,0x4c,0x80,0x7b]
+ ccmpt {of} qword ptr [r8 + 4*rax + 123], r9
+# CHECK: ccmpt {of} bl, byte ptr [r8 + 4*rax + 123]
+# CHECK: encoding: [0x62,0xd4,0x44,0x0a,0x3a,0x5c,0x80,0x7b]
+ ccmpt {of} bl, byte ptr [r8 + 4*rax + 123]
+# CHECK: ccmpt {of} dx, word ptr [r8 + 4*rax + 123]
+# CHECK: encoding: [0x62,0xd4,0x45,0x0a,0x3b,0x54,0x80,0x7b]
+ ccmpt {of} dx, word ptr [r8 + 4*rax + 123]
+# CHECK: ccmpt {of} ecx, dword ptr [r8 + 4*rax + 123]
+# CHECK: encoding: [0x62,0xd4,0x44,0x0a,0x3b,0x4c,0x80,0x7b]
+ ccmpt {of} ecx, dword ptr [r8 + 4*rax + 123]
+# CHECK: ccmpt {of} r9, qword ptr [r8 + 4*rax + 123]
+# CHECK: encoding: [0x62,0x54,0xc4,0x0a,0x3b,0x4c,0x80,0x7b]
+ ccmpt {of} r9, qword ptr [r8 + 4*rax + 123]
+# CHECK: ccmpt {of} bl, 123
+# CHECK: encoding: [0x62,0xf4,0x44,0x0a,0x80,0xfb,0x7b]
+ ccmpt {of} bl, 123
+# CHECK: ccmpt {of} dx, 123
+# CHECK: encoding: [0x62,0xf4,0x45,0x0a,0x83,0xfa,0x7b]
+ ccmpt {of} dx, 123
+# CHECK: ccmpt {of} ecx, 123
+# CHECK: encoding: [0x62,0xf4,0x44,0x0a,0x83,0xf9,0x7b]
+ ccmpt {of} ecx, 123
+# CHECK: ccmpt {of} r9, 123
+# CHECK: encoding: [0x62,0xd4,0xc4,0x0a,0x83,0xf9,0x7b]
+ ccmpt {of} r9, 123
+# CHECK: ccmpt {of} dx, 1234
+# CHECK: encoding: [0x62,0xf4,0x45,0x0a,0x81,0xfa,0xd2,0x04]
+ ccmpt {of} dx, 1234
+# CHECK: ccmpt {of} ecx, 123456
+# CHECK: encoding: [0x62,0xf4,0x44,0x0a,0x81,0xf9,0x40,0xe2,0x01,0x00]
+ ccmpt {of} ecx, 123456
+# CHECK: ccmpt {of} r9, 123456
+# CHECK: encoding: [0x62,0xd4,0xc4,0x0a,0x81,0xf9,0x40,0xe2,0x01,0x00]
+ ccmpt {of} r9, 123456
+# CHECK: ccmpt {of} dl, bl
+# CHECK: encoding: [0x62,0xf4,0x44,0x0a,0x38,0xda]
+ ccmpt {of} dl, bl
+# CHECK: ccmpt {of} ax, dx
+# CHECK: encoding: [0x62,0xf4,0x45,0x0a,0x39,0xd0]
+ ccmpt {of} ax, dx
+# CHECK: ccmpt {of} edx, ecx
+# CHECK: encoding: [0x62,0xf4,0x44,0x0a,0x39,0xca]
+ ccmpt {of} edx, ecx
+# CHECK: ccmpt {of} r15, r9
+# CHECK: encoding: [0x62,0x54,0xc4,0x0a,0x39,0xcf]
+ ccmpt {of} r15, r9
+# CHECK: ccmpe {of} byte ptr [r8 + 4*rax + 123], 123
+# CHECK: encoding: [0x62,0xd4,0x44,0x04,0x80,0x7c,0x80,0x7b,0x7b]
+ ccmpe {of} byte ptr [r8 + 4*rax + 123], 123
+# CHECK: ccmpe {of} word ptr [r8 + 4*rax + 123], 123
+# CHECK: encoding: [0x62,0xd4,0x45,0x04,0x83,0x7c,0x80,0x7b,0x7b]
+ ccmpe {of} word ptr [r8 + 4*rax + 123], 123
+# CHECK: ccmpe {of} word ptr [r8 + 4*rax + 123], 1234
+# CHECK: encoding: [0x62,0xd4,0x45,0x04,0x81,0x7c,0x80,0x7b,0xd2,0x04]
+ ccmpe {of} word ptr [r8 + 4*rax + 123], 1234
+# CHECK: ccmpe {of} dword ptr [r8 + 4*rax + 123], 123
+# CHECK: encoding: [0x62,0xd4,0x44,0x04,0x83,0x7c,0x80,0x7b,0x7b]
+ ccmpe {of} dword ptr [r8 + 4*rax + 123], 123
+# CHECK: ccmpe {of} dword ptr [r8 + 4*rax + 123], 123456
+# CHECK: encoding: [0x62,0xd4,0x44,0x04,0x81,0x7c,0x80,0x7b,0x40,0xe2,0x01,0x00]
+ ccmpe {of} dword ptr [r8 + 4*rax + 123], 123456
+# CHECK: ccmpe {of} qword ptr [r8 + 4*rax + 123], 123
+# CHECK: encoding: [0x62,0xd4,0xc4,0x04,0x83,0x7c,0x80,0x7b,0x7b]
+ ccmpe {of} qword ptr [r8 + 4*rax + 123], 123
+# CHECK: ccmpe {of} qword ptr [r8 + 4*rax + 123], 123456
+# CHECK: encoding: [0x62,0xd4,0xc4,0x04,0x81,0x7c,0x80,0x7b,0x40,0xe2,0x01,0x00]
+ ccmpe {of} qword ptr [r8 + 4*rax + 123], 123456
+# CHECK: ccmpe {of} byte ptr [r8 + 4*rax + 123], bl
+# CHECK: encoding: [0x62,0xd4,0x44,0x04,0x38,0x5c,0x80,0x7b]
+ ccmpe {of} byte ptr [r8 + 4*rax + 123], bl
+# CHECK: ccmpe {of} word ptr [r8 + 4*rax + 123], dx
+# CHECK: encoding: [0x62,0xd4,0x45,0x04,0x39,0x54,0x80,0x7b]
+ ccmpe {of} word ptr [r8 + 4*rax + 123], dx
+# CHECK: ccmpe {of} dword ptr [r8 + 4*rax + 123], ecx
+# CHECK: encoding: [0x62,0xd4,0x44,0x04,0x39,0x4c,0x80,0x7b]
+ ccmpe {of} dword ptr [r8 + 4*rax + 123], ecx
+# CHECK: ccmpe {of} qword ptr [r8 + 4*rax + 123], r9
+# CHECK: encoding: [0x62,0x54,0xc4,0x04,0x39,0x4c,0x80,0x7b]
+ ccmpe {of} qword ptr [r8 + 4*rax + 123], r9
+# CHECK: ccmpe {of} bl, byte ptr [r8 + 4*rax + 123]
+# CHECK: encoding: [0x62,0xd4,0x44,0x04,0x3a,0x5c,0x80,0x7b]
+ ccmpe {of} bl, byte ptr [r8 + 4*rax + 123]
+# CHECK: ccmpe {of} dx, word ptr [r8 + 4*rax + 123]
+# CHECK: encoding: [0x62,0xd4,0x45,0x04,0x3b,0x54,0x80,0x7b]
+ ccmpe {of} dx, word ptr [r8 + 4*rax + 123]
+# CHECK: ccmpe {of} ecx, dword ptr [r8 + 4*rax + 123]
+# CHECK: encoding: [0x62,0xd4,0x44,0x04,0x3b,0x4c,0x80,0x7b]
+ ccmpe {of} ecx, dword ptr [r8 + 4*rax + 123]
+# CHECK: ccmpe {of} r9, qword ptr [r8 + 4*rax + 123]
+# CHECK: encoding: [0x62,0x54,0xc4,0x04,0x3b,0x4c,0x80,0x7b]
+ ccmpe {of} r9, qword ptr [r8 + 4*rax + 123]
+# CHECK: ccmpe {of} bl, 123
+# CHECK: encoding: [0x62,0xf4,0x44,0x04,0x80,0xfb,0x7b]
+ ccmpe {of} bl, 123
+# CHECK: ccmpe {of} dx, 123
+# CHECK: encoding: [0x62,0xf4,0x45,0x04,0x83,0xfa,0x7b]
+ ccmpe {of} dx, 123
+# CHECK: ccmpe {of} ecx, 123
+# CHECK: encoding: [0x62,0xf4,0x44,0x04,0x83,0xf9,0x7b]
+ ccmpe {of} ecx, 123
+# CHECK: ccmpe {of} r9, 123
+# CHECK: encoding: [0x62,0xd4,0xc4,0x04,0x83,0xf9,0x7b]
+ ccmpe {of} r9, 123
+# CHECK: ccmpe {of} dx, 1234
+# CHECK: encoding: [0x62,0xf4,0x45,0x04,0x81,0xfa,0xd2,0x04]
+ ccmpe {of} dx, 1234
+# CHECK: ccmpe {of} ecx, 123456
+# CHECK: encoding: [0x62,0xf4,0x44,0x04,0x81,0xf9,0x40,0xe2,0x01,0x00]
+ ccmpe {of} ecx, 123456
+# CHECK: ccmpe {of} r9, 123456
+# CHECK: encoding: [0x62,0xd4,0xc4,0x04,0x81,0xf9,0x40,0xe2,0x01,0x00]
+ ccmpe {of} r9, 123456
+# CHECK: ccmpe {of} dl, bl
+# CHECK: encoding: [0x62,0xf4,0x44,0x04,0x38,0xda]
+ ccmpe {of} dl, bl
+# CHECK: ccmpe {of} ax, dx
+# CHECK: encoding: [0x62,0xf4,0x45,0x04,0x39,0xd0]
+ ccmpe {of} ax, dx
+# CHECK: ccmpe {of} edx, ecx
+# CHECK: encoding: [0x62,0xf4,0x44,0x04,0x39,0xca]
+ ccmpe {of} edx, ecx
+# CHECK: ccmpe {of} r15, r9
+# CHECK: encoding: [0x62,0x54,0xc4,0x04,0x39,0xcf]
+ ccmpe {of} r15, r9
diff --git a/llvm/utils/TableGen/X86RecognizableInstr.cpp b/llvm/utils/TableGen/X86RecognizableInstr.cpp
index 5aa2e51c78ba29..39006a40daeb6a 100644
--- a/llvm/utils/TableGen/X86RecognizableInstr.cpp
+++ b/llvm/utils/TableGen/X86RecognizableInstr.cpp
@@ -127,6 +127,7 @@ RecognizableInstrBase::RecognizableInstrBase(const CodeGenInstruction &insn) {
HasEVEX_KZ = Rec->getValueAsBit("hasEVEX_Z");
HasEVEX_B = Rec->getValueAsBit("hasEVEX_B");
HasEVEX_NF = Rec->getValueAsBit("hasEVEX_NF");
+ HasTwoConditionalOps = Rec->getValueAsBit("hasTwoConditionalOps");
IsCodeGenOnly = Rec->getValueAsBit("isCodeGenOnly");
IsAsmParserOnly = Rec->getValueAsBit("isAsmParserOnly");
ForceDisassemble = Rec->getValueAsBit("ForceDisassemble");
@@ -494,6 +495,8 @@ void RecognizableInstr::emitInstructionSpecifier() {
++additionalOperands;
if (HasEVEX_K)
++additionalOperands;
+ if (HasTwoConditionalOps)
+ additionalOperands += 2;
#endif
bool IsND = OpMap == X86Local::T_MAP4 && HasEVEX_B && HasVEX_4V;
@@ -561,6 +564,7 @@ void RecognizableInstr::emitInstructionSpecifier() {
HANDLE_OPERAND(roRegister)
HANDLE_OPTIONAL(immediate)
+ HANDLE_OPTIONAL(immediate)
break;
case X86Local::MRMDestMem4VOp3CC:
// Operand 1 is a register operand in the Reg/Opcode field.
@@ -599,6 +603,7 @@ void RecognizableInstr::emitInstructionSpecifier() {
HANDLE_OPERAND(roRegister)
HANDLE_OPTIONAL(immediate)
+ HANDLE_OPTIONAL(immediate)
break;
case X86Local::MRMSrcReg:
// Operand 1 is a register operand in the Reg/Opcode field.
@@ -735,6 +740,7 @@ void RecognizableInstr::emitInstructionSpecifier() {
HANDLE_OPTIONAL(rmRegister)
HANDLE_OPTIONAL(relocation)
HANDLE_OPTIONAL(immediate)
+ HANDLE_OPTIONAL(immediate)
break;
case X86Local::MRMXmCC:
assert(numPhysicalOperands == 2 &&
@@ -763,6 +769,8 @@ void RecognizableInstr::emitInstructionSpecifier() {
HANDLE_OPERAND(writemaskRegister)
HANDLE_OPERAND(memory)
HANDLE_OPTIONAL(relocation)
+ HANDLE_OPTIONAL(immediate)
+ HANDLE_OPTIONAL(immediate)
break;
case X86Local::RawFrmImm8:
// operand 1 is a 16-bit immediate
@@ -1032,6 +1040,7 @@ OperandType RecognizableInstr::typeFromString(const std::string &s,
TYPE("i16imm_brtarget", TYPE_REL)
TYPE("i32imm_brtarget", TYPE_REL)
TYPE("ccode", TYPE_IMM)
+ TYPE("cflags", TYPE_IMM)
TYPE("AVX512RC", TYPE_IMM)
TYPE("brtarget32", TYPE_REL)
TYPE("brtarget16", TYPE_REL)
@@ -1127,6 +1136,8 @@ RecognizableInstr::immediateEncodingFromString(const std::string &s,
ENCODING("i64i32imm", ENCODING_ID)
ENCODING("i64i8imm", ENCODING_IB)
ENCODING("i8imm", ENCODING_IB)
+ ENCODING("ccode", ENCODING_CC)
+ ENCODING("cflags", ENCODING_CF)
ENCODING("u4imm", ENCODING_IB)
ENCODING("u8imm", ENCODING_IB)
ENCODING("i16u8imm", ENCODING_IB)
diff --git a/llvm/utils/TableGen/X86RecognizableInstr.h b/llvm/utils/TableGen/X86RecognizableInstr.h
index 549fc5b4d5438c..ad319b3f28b723 100644
--- a/llvm/utils/TableGen/X86RecognizableInstr.h
+++ b/llvm/utils/TableGen/X86RecognizableInstr.h
@@ -214,6 +214,8 @@ struct RecognizableInstrBase {
bool HasEVEX_B;
/// The hasEVEX_NF field from the record
bool HasEVEX_NF;
+ /// The hasTwoConditionalOps field from the record
+ bool HasTwoConditionalOps;
/// Indicates that the instruction uses the L and L' fields for RC.
bool EncodeRC;
/// The isCodeGenOnly field from the record
>From ffc92833f80b7c84d346b8c8f12fac2932d801fa Mon Sep 17 00:00:00 2001
From: Shengchen Kan <shengchen.kan at intel.com>
Date: Tue, 5 Mar 2024 13:12:05 +0800
Subject: [PATCH 2/9] add decoding test for reverse encoding
---
.../Disassembler/X86/apx/reverse-encoding.txt | 18 ++++++++++++++++++
1 file changed, 18 insertions(+)
diff --git a/llvm/test/MC/Disassembler/X86/apx/reverse-encoding.txt b/llvm/test/MC/Disassembler/X86/apx/reverse-encoding.txt
index 94499299477de7..a148d2a3f3b648 100644
--- a/llvm/test/MC/Disassembler/X86/apx/reverse-encoding.txt
+++ b/llvm/test/MC/Disassembler/X86/apx/reverse-encoding.txt
@@ -412,3 +412,21 @@
# ATT: movbeq %r16, %r17
# INTEL: movbe r17, r16
0x62,0xec,0xfc,0x08,0x60,0xc8
+
+## ccmp
+
+# ATT: ccmpob {} %r16b, %r17b
+# INTEL: ccmpo {} r17b, r16b
+0x62,0xec,0x04,0x00,0x3a,0xc8
+
+# ATT: ccmpow {} %r16w, %r17w
+# INTEL: ccmpo {} r17w, r16w
+0x62,0xec,0x05,0x00,0x3b,0xc8
+
+# ATT: ccmpol {} %r16d, %r17d
+# INTEL: ccmpo {} r17d, r16d
+0x62,0xec,0x04,0x00,0x3b,0xc8
+
+# ATT: ccmpoq {} %r16, %r17
+# INTEL: ccmpo {} r17, r16
+0x62,0xec,0x84,0x00,0x3b,0xc8
>From 04af88d5dc417a6f9cc46434ed873d8107a63894 Mon Sep 17 00:00:00 2001
From: Shengchen Kan <shengchen.kan at intel.com>
Date: Tue, 5 Mar 2024 13:31:43 +0800
Subject: [PATCH 3/9] check line info in error test
---
llvm/test/MC/X86/apx/ccmp-att-error.s | 15 +++++----------
llvm/test/MC/X86/apx/ccmp-intel-error.s | 15 +++++----------
2 files changed, 10 insertions(+), 20 deletions(-)
diff --git a/llvm/test/MC/X86/apx/ccmp-att-error.s b/llvm/test/MC/X86/apx/ccmp-att-error.s
index 3321a2547a6b81..052b70c8f2665d 100644
--- a/llvm/test/MC/X86/apx/ccmp-att-error.s
+++ b/llvm/test/MC/X86/apx/ccmp-att-error.s
@@ -1,26 +1,21 @@
# RUN: not llvm-mc -triple x86_64 -show-encoding %s 2>&1 | FileCheck --strict-whitespace %s
-# CHECK: error: Expected { at this point
+# CHECK: [[#@LINE+2]]:8: error: Expected { at this point
# CHECK: ccmpeq $1 %rax, %rbx
-# CHECK: ^
ccmpeq $1 %rax, %rbx
-# CHECK: error: Expected } or , at this point
+# CHECK: [[#@LINE+2]]:14: error: Expected } or , at this point
# CHECK: ccmpeq {sf,cf%rax, %rbx
-# CHECK: ^
ccmpeq {sf,cf%rax, %rbx
-# CHECK: error: Invalid conditional flags
+# CHECK: [[#@LINE+2]]:9: error: Invalid conditional flags
# CHECK: ccmpeq {pf} %rax, %rbx
-# CHECK: ^
ccmpeq {pf} %rax, %rbx
-# CHECK: error: Duplicated conditional flag
+# CHECK: [[#@LINE+2]]:15: error: Duplicated conditional flag
# CHECK: ccmpeq {of,zf,of} %rax, %rbx
-# CHECK: ^
ccmpeq {of,zf,of} %rax, %rbx
-# CHECK: error: Expected } at this point
+# CHECK: [[#@LINE+2]]:20: error: Expected } at this point
# CHECK: ccmpeq {of,sf,zf,cf,of} %rax, %rbx
-# CHECK: ^
ccmpeq {of,sf,zf,cf,of} %rax, %rbx
diff --git a/llvm/test/MC/X86/apx/ccmp-intel-error.s b/llvm/test/MC/X86/apx/ccmp-intel-error.s
index 8d46473f8350a6..56c65f5adfd2c2 100644
--- a/llvm/test/MC/X86/apx/ccmp-intel-error.s
+++ b/llvm/test/MC/X86/apx/ccmp-intel-error.s
@@ -1,26 +1,21 @@
# RUN: not llvm-mc -triple x86_64 -show-encoding -x86-asm-syntax=intel -output-asm-variant=1 %s 2>&1 | FileCheck --strict-whitespace %s
-# CHECK: error: Expected { at this point
+# CHECK: [[#@LINE+2]]:7: error: Expected { at this point
# CHECK: ccmpe 1 rbx, rax
-# CHECK: ^
ccmpe 1 rbx, rax
-# CHECK: error: Expected } or , at this point
+# CHECK: [[#@LINE+2]]:14: error: Expected } or , at this point
# CHECK: ccmpe {sf,cf rbx, rax
-# CHECK: ^
ccmpe {sf,cf rbx, rax
-# CHECK: error: Invalid conditional flags
+# CHECK: [[#@LINE+2]]:8: error: Invalid conditional flags
# CHECK: ccmpe {pf} rbx, rax
-# CHECK: ^
ccmpe {pf} rbx, rax
-# CHECK: error: Duplicated conditional flag
+# CHECK: [[#@LINE+2]]:15: error: Duplicated conditional flag
# CHECK: ccmpeq {of,zf,of} rbx, rax
-# CHECK: ^
ccmpeq {of,zf,of} rbx, rax
-# CHECK: error: Expected } at this point
+# CHECK: [[#@LINE+2]]:20: error: Expected } at this point
# CHECK: ccmpeq {of,sf,zf,cf,of} rbx, rax
-# CHECK: ^
ccmpeq {of,sf,zf,cf,of} rbx, rax
>From 1b82f59252808275f6c3a5a8d65a44ac4748c608 Mon Sep 17 00:00:00 2001
From: Shengchen Kan <shengchen.kan at intel.com>
Date: Tue, 5 Mar 2024 14:23:02 +0800
Subject: [PATCH 4/9] fix LIT test LLVM ::
tools/llvm-exegesis/X86/latency/latency-SETCCr-cond-codes-sweep.s
---
llvm/tools/llvm-exegesis/lib/X86/Target.cpp | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/llvm/tools/llvm-exegesis/lib/X86/Target.cpp b/llvm/tools/llvm-exegesis/lib/X86/Target.cpp
index a41a995f5560af..31bec2545926b6 100644
--- a/llvm/tools/llvm-exegesis/lib/X86/Target.cpp
+++ b/llvm/tools/llvm-exegesis/lib/X86/Target.cpp
@@ -884,6 +884,10 @@ Error ExegesisX86Target::randomizeTargetMCOperand(
const BitVector &ForbiddenRegs) const {
const Operand &Op = Instr.getPrimaryOperand(Var);
switch (Op.getExplicitOperandInfo().OperandType) {
+ case X86::OperandType::OPERAND_COND_CODE:
+ AssignedValue =
+ MCOperand::createImm(randomIndex(X86::CondCode::LAST_VALID_COND));
+ return Error::success();
case X86::OperandType::OPERAND_ROUNDING_CONTROL:
AssignedValue =
MCOperand::createImm(randomIndex(X86::STATIC_ROUNDING::TO_ZERO));
>From 66191f091b99163bd637b07535c31e9a5c59878d Mon Sep 17 00:00:00 2001
From: Shengchen Kan <shengchen.kan at intel.com>
Date: Tue, 5 Mar 2024 15:28:47 +0800
Subject: [PATCH 5/9] update memory fold table
---
llvm/test/TableGen/x86-fold-tables.inc | 23 +++++++++++++++++++++++
1 file changed, 23 insertions(+)
diff --git a/llvm/test/TableGen/x86-fold-tables.inc b/llvm/test/TableGen/x86-fold-tables.inc
index abeef29c80edf9..c35f22ff36de0b 100644
--- a/llvm/test/TableGen/x86-fold-tables.inc
+++ b/llvm/test/TableGen/x86-fold-tables.inc
@@ -363,6 +363,17 @@ static const X86FoldTableEntry Table0[] = {
{X86::CALL32r_NT, X86::CALL32m_NT, TB_FOLDED_LOAD},
{X86::CALL64r, X86::CALL64m, TB_FOLDED_LOAD},
{X86::CALL64r_NT, X86::CALL64m_NT, TB_FOLDED_LOAD},
+ {X86::CCMP16ri, X86::CCMP16mi, TB_FOLDED_LOAD},
+ {X86::CCMP16ri8, X86::CCMP16mi8, TB_FOLDED_LOAD},
+ {X86::CCMP16rr, X86::CCMP16mr, TB_FOLDED_LOAD},
+ {X86::CCMP32ri, X86::CCMP32mi, TB_FOLDED_LOAD},
+ {X86::CCMP32ri8, X86::CCMP32mi8, TB_FOLDED_LOAD},
+ {X86::CCMP32rr, X86::CCMP32mr, TB_FOLDED_LOAD},
+ {X86::CCMP64ri32, X86::CCMP64mi32, TB_FOLDED_LOAD},
+ {X86::CCMP64ri8, X86::CCMP64mi8, TB_FOLDED_LOAD},
+ {X86::CCMP64rr, X86::CCMP64mr, TB_FOLDED_LOAD},
+ {X86::CCMP8ri, X86::CCMP8mi, TB_FOLDED_LOAD},
+ {X86::CCMP8rr, X86::CCMP8mr, TB_FOLDED_LOAD},
{X86::CMP16ri, X86::CMP16mi, TB_FOLDED_LOAD},
{X86::CMP16ri8, X86::CMP16mi8, TB_FOLDED_LOAD},
{X86::CMP16rr, X86::CMP16mr, TB_FOLDED_LOAD},
@@ -375,6 +386,14 @@ static const X86FoldTableEntry Table0[] = {
{X86::CMP8ri, X86::CMP8mi, TB_FOLDED_LOAD},
{X86::CMP8ri8, X86::CMP8mi8, TB_FOLDED_LOAD},
{X86::CMP8rr, X86::CMP8mr, TB_FOLDED_LOAD},
+ {X86::CTEST16ri, X86::CTEST16mi, TB_FOLDED_LOAD},
+ {X86::CTEST16rr, X86::CTEST16mr, TB_FOLDED_LOAD},
+ {X86::CTEST32ri, X86::CTEST32mi, TB_FOLDED_LOAD},
+ {X86::CTEST32rr, X86::CTEST32mr, TB_FOLDED_LOAD},
+ {X86::CTEST64ri32, X86::CTEST64mi32, TB_FOLDED_LOAD},
+ {X86::CTEST64rr, X86::CTEST64mr, TB_FOLDED_LOAD},
+ {X86::CTEST8ri, X86::CTEST8mi, TB_FOLDED_LOAD},
+ {X86::CTEST8rr, X86::CTEST8mr, TB_FOLDED_LOAD},
{X86::DIV16r, X86::DIV16m, TB_FOLDED_LOAD},
{X86::DIV16r_NF, X86::DIV16m_NF, TB_FOLDED_LOAD},
{X86::DIV32r, X86::DIV32m, TB_FOLDED_LOAD},
@@ -675,6 +694,10 @@ static const X86FoldTableEntry Table1[] = {
{X86::BZHI64rr, X86::BZHI64rm, 0},
{X86::BZHI64rr_EVEX, X86::BZHI64rm_EVEX, 0},
{X86::BZHI64rr_NF, X86::BZHI64rm_NF, 0},
+ {X86::CCMP16rr, X86::CCMP16rm, 0},
+ {X86::CCMP32rr, X86::CCMP32rm, 0},
+ {X86::CCMP64rr, X86::CCMP64rm, 0},
+ {X86::CCMP8rr, X86::CCMP8rm, 0},
{X86::CMP16rr, X86::CMP16rm, 0},
{X86::CMP32rr, X86::CMP32rm, 0},
{X86::CMP64rr, X86::CMP64rm, 0},
>From 2a83eb16580c9c786ad6e3f1e3b75ed7c7e25cbb Mon Sep 17 00:00:00 2001
From: Shengchen Kan <shengchen.kan at intel.com>
Date: Tue, 5 Mar 2024 15:54:53 +0800
Subject: [PATCH 6/9] combine variable
---
llvm/lib/Target/X86/AsmParser/X86AsmParser.cpp | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/llvm/lib/Target/X86/AsmParser/X86AsmParser.cpp b/llvm/lib/Target/X86/AsmParser/X86AsmParser.cpp
index 5735ba8396b332..e595a3df4661ed 100644
--- a/llvm/lib/Target/X86/AsmParser/X86AsmParser.cpp
+++ b/llvm/lib/Target/X86/AsmParser/X86AsmParser.cpp
@@ -2311,12 +2311,12 @@ bool X86AsmParser::ParseRoundingModeOp(SMLoc Start, OperandVector &Operands) {
/// mnemonic.
bool X86AsmParser::parseCFlagsOp(OperandVector &Operands) {
MCAsmParser &Parser = getParser();
- const AsmToken StartTok = Parser.getTok();
- const SMLoc Start = StartTok.getLoc();
- if (!StartTok.is(AsmToken::LCurly))
- return Error(StartTok.getLoc(), "Expected { at this point");
- Parser.Lex(); // Eat "{"
AsmToken Tok = Parser.getTok();
+ const SMLoc Start = Tok.getLoc();
+ if (!Tok.is(AsmToken::LCurly))
+ return Error(Tok.getLoc(), "Expected { at this point");
+ Parser.Lex(); // Eat "{"
+ Tok = Parser.getTok();
SMLoc End;
if (Tok.is(AsmToken::RCurly)) {
End = Tok.getEndLoc();
>From f3b3ce538175b4251864084d7dae4f09832084ef Mon Sep 17 00:00:00 2001
From: Shengchen Kan <shengchen.kan at intel.com>
Date: Tue, 5 Mar 2024 16:33:41 +0800
Subject: [PATCH 7/9] add dfv=
---
.../lib/Target/X86/AsmParser/X86AsmParser.cpp | 11 +-
.../X86/MCTargetDesc/X86InstPrinterCommon.cpp | 2 +-
llvm/test/MC/Disassembler/X86/apx/ccmp.txt | 1592 ++++++++--------
.../Disassembler/X86/apx/reverse-encoding.txt | 16 +-
llvm/test/MC/X86/apx/ccmp-att-error.s | 32 +-
llvm/test/MC/X86/apx/ccmp-att.s | 1604 ++++++++---------
llvm/test/MC/X86/apx/ccmp-intel-error.s | 32 +-
llvm/test/MC/X86/apx/ccmp-intel.s | 1604 ++++++++---------
8 files changed, 2459 insertions(+), 2434 deletions(-)
diff --git a/llvm/lib/Target/X86/AsmParser/X86AsmParser.cpp b/llvm/lib/Target/X86/AsmParser/X86AsmParser.cpp
index e595a3df4661ed..e3701d69934c08 100644
--- a/llvm/lib/Target/X86/AsmParser/X86AsmParser.cpp
+++ b/llvm/lib/Target/X86/AsmParser/X86AsmParser.cpp
@@ -2307,7 +2307,7 @@ bool X86AsmParser::ParseRoundingModeOp(SMLoc Start, OperandVector &Operands) {
return Error(Tok.getLoc(), "unknown token in expression");
}
-/// Parse condtional flags for CCMP/CTEST, e.g {of,sf,zf,cf} right after
+/// Parse condtional flags for CCMP/CTEST, e.g {dfv=of,sf,zf,cf} right after
/// mnemonic.
bool X86AsmParser::parseCFlagsOp(OperandVector &Operands) {
MCAsmParser &Parser = getParser();
@@ -2316,6 +2316,15 @@ bool X86AsmParser::parseCFlagsOp(OperandVector &Operands) {
if (!Tok.is(AsmToken::LCurly))
return Error(Tok.getLoc(), "Expected { at this point");
Parser.Lex(); // Eat "{"
+ Tok = Parser.getTok();
+ if (Tok.getIdentifier() != "dfv")
+ return Error(Tok.getLoc(), "Expected dfv at this point");
+ Parser.Lex(); // Eat "dfv"
+ Tok = Parser.getTok();
+ if (!Tok.is(AsmToken::Equal))
+ return Error(Tok.getLoc(), "Expected = at this point");
+ Parser.Lex(); // Eat "="
+
Tok = Parser.getTok();
SMLoc End;
if (Tok.is(AsmToken::RCurly)) {
diff --git a/llvm/lib/Target/X86/MCTargetDesc/X86InstPrinterCommon.cpp b/llvm/lib/Target/X86/MCTargetDesc/X86InstPrinterCommon.cpp
index 30ff6e5c6bbbbe..fd46e4e1df821a 100644
--- a/llvm/lib/Target/X86/MCTargetDesc/X86InstPrinterCommon.cpp
+++ b/llvm/lib/Target/X86/MCTargetDesc/X86InstPrinterCommon.cpp
@@ -63,7 +63,7 @@ void X86InstPrinterCommon::printCondFlags(const MCInst *MI, unsigned Op,
// +----+----+----+----+
int64_t Imm = MI->getOperand(Op).getImm();
assert(Imm >= 0 && Imm < 16 && "Invalid condition flags");
- O << "{";
+ O << "{dfv=";
std::string Flags;
if (Imm & 0x8)
Flags += "of,";
diff --git a/llvm/test/MC/Disassembler/X86/apx/ccmp.txt b/llvm/test/MC/Disassembler/X86/apx/ccmp.txt
index 93686a95798393..a904090d5a682c 100644
--- a/llvm/test/MC/Disassembler/X86/apx/ccmp.txt
+++ b/llvm/test/MC/Disassembler/X86/apx/ccmp.txt
@@ -3,1596 +3,1596 @@
## Condition flags
-# ATT: ccmpoq {} %rax, %rbx
-# INTEL: ccmpo {} rbx, rax
+# ATT: ccmpoq {dfv=} %rax, %rbx
+# INTEL: ccmpo {dfv=} rbx, rax
0x62,0xf4,0x84,0x00,0x39,0xc3
-# ATT: ccmpoq {of} %rax, %rbx
-# INTEL: ccmpo {of} rbx, rax
+# ATT: ccmpoq {dfv=of} %rax, %rbx
+# INTEL: ccmpo {dfv=of} rbx, rax
0x62,0xf4,0xc4,0x00,0x39,0xc3
-# ATT: ccmpoq {sf} %rax, %rbx
-# INTEL: ccmpo {sf} rbx, rax
+# ATT: ccmpoq {dfv=sf} %rax, %rbx
+# INTEL: ccmpo {dfv=sf} rbx, rax
0x62,0xf4,0xa4,0x00,0x39,0xc3
-# ATT: ccmpoq {zf} %rax, %rbx
-# INTEL: ccmpo {zf} rbx, rax
+# ATT: ccmpoq {dfv=zf} %rax, %rbx
+# INTEL: ccmpo {dfv=zf} rbx, rax
0x62,0xf4,0x94,0x00,0x39,0xc3
-# ATT: ccmpoq {cf} %rax, %rbx
-# INTEL: ccmpo {cf} rbx, rax
+# ATT: ccmpoq {dfv=cf} %rax, %rbx
+# INTEL: ccmpo {dfv=cf} rbx, rax
0x62,0xf4,0x8c,0x00,0x39,0xc3
-# ATT: ccmpoq {of,sf} %rax, %rbx
-# INTEL: ccmpo {of,sf} rbx, rax
+# ATT: ccmpoq {dfv=of,sf} %rax, %rbx
+# INTEL: ccmpo {dfv=of,sf} rbx, rax
0x62,0xf4,0xe4,0x00,0x39,0xc3
-# ATT: ccmpoq {of,sf,zf} %rax, %rbx
-# INTEL: ccmpo {of,sf,zf} rbx, rax
+# ATT: ccmpoq {dfv=of,sf,zf} %rax, %rbx
+# INTEL: ccmpo {dfv=of,sf,zf} rbx, rax
0x62,0xf4,0xf4,0x00,0x39,0xc3
-# ATT: ccmpoq {of,sf,zf,cf} %rax, %rbx
-# INTEL: ccmpo {of,sf,zf,cf} rbx, rax
+# ATT: ccmpoq {dfv=of,sf,zf,cf} %rax, %rbx
+# INTEL: ccmpo {dfv=of,sf,zf,cf} rbx, rax
0x62,0xf4,0xfc,0x00,0x39,0xc3
## Condition code
-# ATT: ccmpbb {of} $123, 123(%r8,%rax,4)
-# INTEL: ccmpb {of} byte ptr [r8 + 4*rax + 123], 123
+# ATT: ccmpbb {dfv=of} $123, 123(%r8,%rax,4)
+# INTEL: ccmpb {dfv=of} byte ptr [r8 + 4*rax + 123], 123
0x62,0xd4,0x44,0x02,0x80,0x7c,0x80,0x7b,0x7b
-# ATT: ccmpbw {of} $123, 123(%r8,%rax,4)
-# INTEL: ccmpb {of} word ptr [r8 + 4*rax + 123], 123
+# ATT: ccmpbw {dfv=of} $123, 123(%r8,%rax,4)
+# INTEL: ccmpb {dfv=of} word ptr [r8 + 4*rax + 123], 123
0x62,0xd4,0x45,0x02,0x83,0x7c,0x80,0x7b,0x7b
-# ATT: ccmpbw {of} $1234, 123(%r8,%rax,4)
-# INTEL: ccmpb {of} word ptr [r8 + 4*rax + 123], 1234
+# ATT: ccmpbw {dfv=of} $1234, 123(%r8,%rax,4)
+# INTEL: ccmpb {dfv=of} word ptr [r8 + 4*rax + 123], 1234
0x62,0xd4,0x45,0x02,0x81,0x7c,0x80,0x7b,0xd2,0x04
-# ATT: ccmpbl {of} $123, 123(%r8,%rax,4)
-# INTEL: ccmpb {of} dword ptr [r8 + 4*rax + 123], 123
+# ATT: ccmpbl {dfv=of} $123, 123(%r8,%rax,4)
+# INTEL: ccmpb {dfv=of} dword ptr [r8 + 4*rax + 123], 123
0x62,0xd4,0x44,0x02,0x83,0x7c,0x80,0x7b,0x7b
-# ATT: ccmpbl {of} $123456, 123(%r8,%rax,4)
-# INTEL: ccmpb {of} dword ptr [r8 + 4*rax + 123], 123456
+# ATT: ccmpbl {dfv=of} $123456, 123(%r8,%rax,4)
+# INTEL: ccmpb {dfv=of} dword ptr [r8 + 4*rax + 123], 123456
0x62,0xd4,0x44,0x02,0x81,0x7c,0x80,0x7b,0x40,0xe2,0x01,0x00
-# ATT: ccmpbq {of} $123, 123(%r8,%rax,4)
-# INTEL: ccmpb {of} qword ptr [r8 + 4*rax + 123], 123
+# ATT: ccmpbq {dfv=of} $123, 123(%r8,%rax,4)
+# INTEL: ccmpb {dfv=of} qword ptr [r8 + 4*rax + 123], 123
0x62,0xd4,0xc4,0x02,0x83,0x7c,0x80,0x7b,0x7b
-# ATT: ccmpbq {of} $123456, 123(%r8,%rax,4)
-# INTEL: ccmpb {of} qword ptr [r8 + 4*rax + 123], 123456
+# ATT: ccmpbq {dfv=of} $123456, 123(%r8,%rax,4)
+# INTEL: ccmpb {dfv=of} qword ptr [r8 + 4*rax + 123], 123456
0x62,0xd4,0xc4,0x02,0x81,0x7c,0x80,0x7b,0x40,0xe2,0x01,0x00
-# ATT: ccmpbb {of} %bl, 123(%r8,%rax,4)
-# INTEL: ccmpb {of} byte ptr [r8 + 4*rax + 123], bl
+# ATT: ccmpbb {dfv=of} %bl, 123(%r8,%rax,4)
+# INTEL: ccmpb {dfv=of} byte ptr [r8 + 4*rax + 123], bl
0x62,0xd4,0x44,0x02,0x38,0x5c,0x80,0x7b
-# ATT: ccmpbw {of} %dx, 123(%r8,%rax,4)
-# INTEL: ccmpb {of} word ptr [r8 + 4*rax + 123], dx
+# ATT: ccmpbw {dfv=of} %dx, 123(%r8,%rax,4)
+# INTEL: ccmpb {dfv=of} word ptr [r8 + 4*rax + 123], dx
0x62,0xd4,0x45,0x02,0x39,0x54,0x80,0x7b
-# ATT: ccmpbl {of} %ecx, 123(%r8,%rax,4)
-# INTEL: ccmpb {of} dword ptr [r8 + 4*rax + 123], ecx
+# ATT: ccmpbl {dfv=of} %ecx, 123(%r8,%rax,4)
+# INTEL: ccmpb {dfv=of} dword ptr [r8 + 4*rax + 123], ecx
0x62,0xd4,0x44,0x02,0x39,0x4c,0x80,0x7b
-# ATT: ccmpbq {of} %r9, 123(%r8,%rax,4)
-# INTEL: ccmpb {of} qword ptr [r8 + 4*rax + 123], r9
+# ATT: ccmpbq {dfv=of} %r9, 123(%r8,%rax,4)
+# INTEL: ccmpb {dfv=of} qword ptr [r8 + 4*rax + 123], r9
0x62,0x54,0xc4,0x02,0x39,0x4c,0x80,0x7b
-# ATT: ccmpbb {of} 123(%r8,%rax,4), %bl
-# INTEL: ccmpb {of} bl, byte ptr [r8 + 4*rax + 123]
+# ATT: ccmpbb {dfv=of} 123(%r8,%rax,4), %bl
+# INTEL: ccmpb {dfv=of} bl, byte ptr [r8 + 4*rax + 123]
0x62,0xd4,0x44,0x02,0x3a,0x5c,0x80,0x7b
-# ATT: ccmpbw {of} 123(%r8,%rax,4), %dx
-# INTEL: ccmpb {of} dx, word ptr [r8 + 4*rax + 123]
+# ATT: ccmpbw {dfv=of} 123(%r8,%rax,4), %dx
+# INTEL: ccmpb {dfv=of} dx, word ptr [r8 + 4*rax + 123]
0x62,0xd4,0x45,0x02,0x3b,0x54,0x80,0x7b
-# ATT: ccmpbl {of} 123(%r8,%rax,4), %ecx
-# INTEL: ccmpb {of} ecx, dword ptr [r8 + 4*rax + 123]
+# ATT: ccmpbl {dfv=of} 123(%r8,%rax,4), %ecx
+# INTEL: ccmpb {dfv=of} ecx, dword ptr [r8 + 4*rax + 123]
0x62,0xd4,0x44,0x02,0x3b,0x4c,0x80,0x7b
-# ATT: ccmpbq {of} 123(%r8,%rax,4), %r9
-# INTEL: ccmpb {of} r9, qword ptr [r8 + 4*rax + 123]
+# ATT: ccmpbq {dfv=of} 123(%r8,%rax,4), %r9
+# INTEL: ccmpb {dfv=of} r9, qword ptr [r8 + 4*rax + 123]
0x62,0x54,0xc4,0x02,0x3b,0x4c,0x80,0x7b
-# ATT: ccmpbb {of} $123, %bl
-# INTEL: ccmpb {of} bl, 123
+# ATT: ccmpbb {dfv=of} $123, %bl
+# INTEL: ccmpb {dfv=of} bl, 123
0x62,0xf4,0x44,0x02,0x80,0xfb,0x7b
-# ATT: ccmpbw {of} $123, %dx
-# INTEL: ccmpb {of} dx, 123
+# ATT: ccmpbw {dfv=of} $123, %dx
+# INTEL: ccmpb {dfv=of} dx, 123
0x62,0xf4,0x45,0x02,0x83,0xfa,0x7b
-# ATT: ccmpbl {of} $123, %ecx
-# INTEL: ccmpb {of} ecx, 123
+# ATT: ccmpbl {dfv=of} $123, %ecx
+# INTEL: ccmpb {dfv=of} ecx, 123
0x62,0xf4,0x44,0x02,0x83,0xf9,0x7b
-# ATT: ccmpbq {of} $123, %r9
-# INTEL: ccmpb {of} r9, 123
+# ATT: ccmpbq {dfv=of} $123, %r9
+# INTEL: ccmpb {dfv=of} r9, 123
0x62,0xd4,0xc4,0x02,0x83,0xf9,0x7b
-# ATT: ccmpbw {of} $1234, %dx
-# INTEL: ccmpb {of} dx, 1234
+# ATT: ccmpbw {dfv=of} $1234, %dx
+# INTEL: ccmpb {dfv=of} dx, 1234
0x62,0xf4,0x45,0x02,0x81,0xfa,0xd2,0x04
-# ATT: ccmpbl {of} $123456, %ecx
-# INTEL: ccmpb {of} ecx, 123456
+# ATT: ccmpbl {dfv=of} $123456, %ecx
+# INTEL: ccmpb {dfv=of} ecx, 123456
0x62,0xf4,0x44,0x02,0x81,0xf9,0x40,0xe2,0x01,0x00
-# ATT: ccmpbq {of} $123456, %r9
-# INTEL: ccmpb {of} r9, 123456
+# ATT: ccmpbq {dfv=of} $123456, %r9
+# INTEL: ccmpb {dfv=of} r9, 123456
0x62,0xd4,0xc4,0x02,0x81,0xf9,0x40,0xe2,0x01,0x00
-# ATT: ccmpbb {of} %bl, %dl
-# INTEL: ccmpb {of} dl, bl
+# ATT: ccmpbb {dfv=of} %bl, %dl
+# INTEL: ccmpb {dfv=of} dl, bl
0x62,0xf4,0x44,0x02,0x3a,0xd3
-# ATT: ccmpbw {of} %dx, %ax
-# INTEL: ccmpb {of} ax, dx
+# ATT: ccmpbw {dfv=of} %dx, %ax
+# INTEL: ccmpb {dfv=of} ax, dx
0x62,0xf4,0x45,0x02,0x3b,0xc2
-# ATT: ccmpbl {of} %ecx, %edx
-# INTEL: ccmpb {of} edx, ecx
+# ATT: ccmpbl {dfv=of} %ecx, %edx
+# INTEL: ccmpb {dfv=of} edx, ecx
0x62,0xf4,0x44,0x02,0x3b,0xd1
-# ATT: ccmpbq {of} %r9, %r15
-# INTEL: ccmpb {of} r15, r9
+# ATT: ccmpbq {dfv=of} %r9, %r15
+# INTEL: ccmpb {dfv=of} r15, r9
0x62,0x54,0xc4,0x02,0x3b,0xf9
-# ATT: ccmpfb {of} $123, 123(%r8,%rax,4)
-# INTEL: ccmpf {of} byte ptr [r8 + 4*rax + 123], 123
+# ATT: ccmpfb {dfv=of} $123, 123(%r8,%rax,4)
+# INTEL: ccmpf {dfv=of} byte ptr [r8 + 4*rax + 123], 123
0x62,0xd4,0x44,0x0b,0x80,0x7c,0x80,0x7b,0x7b
-# ATT: ccmpfw {of} $123, 123(%r8,%rax,4)
-# INTEL: ccmpf {of} word ptr [r8 + 4*rax + 123], 123
+# ATT: ccmpfw {dfv=of} $123, 123(%r8,%rax,4)
+# INTEL: ccmpf {dfv=of} word ptr [r8 + 4*rax + 123], 123
0x62,0xd4,0x45,0x0b,0x83,0x7c,0x80,0x7b,0x7b
-# ATT: ccmpfw {of} $1234, 123(%r8,%rax,4)
-# INTEL: ccmpf {of} word ptr [r8 + 4*rax + 123], 1234
+# ATT: ccmpfw {dfv=of} $1234, 123(%r8,%rax,4)
+# INTEL: ccmpf {dfv=of} word ptr [r8 + 4*rax + 123], 1234
0x62,0xd4,0x45,0x0b,0x81,0x7c,0x80,0x7b,0xd2,0x04
-# ATT: ccmpfl {of} $123, 123(%r8,%rax,4)
-# INTEL: ccmpf {of} dword ptr [r8 + 4*rax + 123], 123
+# ATT: ccmpfl {dfv=of} $123, 123(%r8,%rax,4)
+# INTEL: ccmpf {dfv=of} dword ptr [r8 + 4*rax + 123], 123
0x62,0xd4,0x44,0x0b,0x83,0x7c,0x80,0x7b,0x7b
-# ATT: ccmpfl {of} $123456, 123(%r8,%rax,4)
-# INTEL: ccmpf {of} dword ptr [r8 + 4*rax + 123], 123456
+# ATT: ccmpfl {dfv=of} $123456, 123(%r8,%rax,4)
+# INTEL: ccmpf {dfv=of} dword ptr [r8 + 4*rax + 123], 123456
0x62,0xd4,0x44,0x0b,0x81,0x7c,0x80,0x7b,0x40,0xe2,0x01,0x00
-# ATT: ccmpfq {of} $123, 123(%r8,%rax,4)
-# INTEL: ccmpf {of} qword ptr [r8 + 4*rax + 123], 123
+# ATT: ccmpfq {dfv=of} $123, 123(%r8,%rax,4)
+# INTEL: ccmpf {dfv=of} qword ptr [r8 + 4*rax + 123], 123
0x62,0xd4,0xc4,0x0b,0x83,0x7c,0x80,0x7b,0x7b
-# ATT: ccmpfq {of} $123456, 123(%r8,%rax,4)
-# INTEL: ccmpf {of} qword ptr [r8 + 4*rax + 123], 123456
+# ATT: ccmpfq {dfv=of} $123456, 123(%r8,%rax,4)
+# INTEL: ccmpf {dfv=of} qword ptr [r8 + 4*rax + 123], 123456
0x62,0xd4,0xc4,0x0b,0x81,0x7c,0x80,0x7b,0x40,0xe2,0x01,0x00
-# ATT: ccmpfb {of} %bl, 123(%r8,%rax,4)
-# INTEL: ccmpf {of} byte ptr [r8 + 4*rax + 123], bl
+# ATT: ccmpfb {dfv=of} %bl, 123(%r8,%rax,4)
+# INTEL: ccmpf {dfv=of} byte ptr [r8 + 4*rax + 123], bl
0x62,0xd4,0x44,0x0b,0x38,0x5c,0x80,0x7b
-# ATT: ccmpfw {of} %dx, 123(%r8,%rax,4)
-# INTEL: ccmpf {of} word ptr [r8 + 4*rax + 123], dx
+# ATT: ccmpfw {dfv=of} %dx, 123(%r8,%rax,4)
+# INTEL: ccmpf {dfv=of} word ptr [r8 + 4*rax + 123], dx
0x62,0xd4,0x45,0x0b,0x39,0x54,0x80,0x7b
-# ATT: ccmpfl {of} %ecx, 123(%r8,%rax,4)
-# INTEL: ccmpf {of} dword ptr [r8 + 4*rax + 123], ecx
+# ATT: ccmpfl {dfv=of} %ecx, 123(%r8,%rax,4)
+# INTEL: ccmpf {dfv=of} dword ptr [r8 + 4*rax + 123], ecx
0x62,0xd4,0x44,0x0b,0x39,0x4c,0x80,0x7b
-# ATT: ccmpfq {of} %r9, 123(%r8,%rax,4)
-# INTEL: ccmpf {of} qword ptr [r8 + 4*rax + 123], r9
+# ATT: ccmpfq {dfv=of} %r9, 123(%r8,%rax,4)
+# INTEL: ccmpf {dfv=of} qword ptr [r8 + 4*rax + 123], r9
0x62,0x54,0xc4,0x0b,0x39,0x4c,0x80,0x7b
-# ATT: ccmpfb {of} 123(%r8,%rax,4), %bl
-# INTEL: ccmpf {of} bl, byte ptr [r8 + 4*rax + 123]
+# ATT: ccmpfb {dfv=of} 123(%r8,%rax,4), %bl
+# INTEL: ccmpf {dfv=of} bl, byte ptr [r8 + 4*rax + 123]
0x62,0xd4,0x44,0x0b,0x3a,0x5c,0x80,0x7b
-# ATT: ccmpfw {of} 123(%r8,%rax,4), %dx
-# INTEL: ccmpf {of} dx, word ptr [r8 + 4*rax + 123]
+# ATT: ccmpfw {dfv=of} 123(%r8,%rax,4), %dx
+# INTEL: ccmpf {dfv=of} dx, word ptr [r8 + 4*rax + 123]
0x62,0xd4,0x45,0x0b,0x3b,0x54,0x80,0x7b
-# ATT: ccmpfl {of} 123(%r8,%rax,4), %ecx
-# INTEL: ccmpf {of} ecx, dword ptr [r8 + 4*rax + 123]
+# ATT: ccmpfl {dfv=of} 123(%r8,%rax,4), %ecx
+# INTEL: ccmpf {dfv=of} ecx, dword ptr [r8 + 4*rax + 123]
0x62,0xd4,0x44,0x0b,0x3b,0x4c,0x80,0x7b
-# ATT: ccmpfq {of} 123(%r8,%rax,4), %r9
-# INTEL: ccmpf {of} r9, qword ptr [r8 + 4*rax + 123]
+# ATT: ccmpfq {dfv=of} 123(%r8,%rax,4), %r9
+# INTEL: ccmpf {dfv=of} r9, qword ptr [r8 + 4*rax + 123]
0x62,0x54,0xc4,0x0b,0x3b,0x4c,0x80,0x7b
-# ATT: ccmpfb {of} $123, %bl
-# INTEL: ccmpf {of} bl, 123
+# ATT: ccmpfb {dfv=of} $123, %bl
+# INTEL: ccmpf {dfv=of} bl, 123
0x62,0xf4,0x44,0x0b,0x80,0xfb,0x7b
-# ATT: ccmpfw {of} $123, %dx
-# INTEL: ccmpf {of} dx, 123
+# ATT: ccmpfw {dfv=of} $123, %dx
+# INTEL: ccmpf {dfv=of} dx, 123
0x62,0xf4,0x45,0x0b,0x83,0xfa,0x7b
-# ATT: ccmpfl {of} $123, %ecx
-# INTEL: ccmpf {of} ecx, 123
+# ATT: ccmpfl {dfv=of} $123, %ecx
+# INTEL: ccmpf {dfv=of} ecx, 123
0x62,0xf4,0x44,0x0b,0x83,0xf9,0x7b
-# ATT: ccmpfq {of} $123, %r9
-# INTEL: ccmpf {of} r9, 123
+# ATT: ccmpfq {dfv=of} $123, %r9
+# INTEL: ccmpf {dfv=of} r9, 123
0x62,0xd4,0xc4,0x0b,0x83,0xf9,0x7b
-# ATT: ccmpfw {of} $1234, %dx
-# INTEL: ccmpf {of} dx, 1234
+# ATT: ccmpfw {dfv=of} $1234, %dx
+# INTEL: ccmpf {dfv=of} dx, 1234
0x62,0xf4,0x45,0x0b,0x81,0xfa,0xd2,0x04
-# ATT: ccmpfl {of} $123456, %ecx
-# INTEL: ccmpf {of} ecx, 123456
+# ATT: ccmpfl {dfv=of} $123456, %ecx
+# INTEL: ccmpf {dfv=of} ecx, 123456
0x62,0xf4,0x44,0x0b,0x81,0xf9,0x40,0xe2,0x01,0x00
-# ATT: ccmpfq {of} $123456, %r9
-# INTEL: ccmpf {of} r9, 123456
+# ATT: ccmpfq {dfv=of} $123456, %r9
+# INTEL: ccmpf {dfv=of} r9, 123456
0x62,0xd4,0xc4,0x0b,0x81,0xf9,0x40,0xe2,0x01,0x00
-# ATT: ccmpfb {of} %bl, %dl
-# INTEL: ccmpf {of} dl, bl
+# ATT: ccmpfb {dfv=of} %bl, %dl
+# INTEL: ccmpf {dfv=of} dl, bl
0x62,0xf4,0x44,0x0b,0x3a,0xd3
-# ATT: ccmpfw {of} %dx, %ax
-# INTEL: ccmpf {of} ax, dx
+# ATT: ccmpfw {dfv=of} %dx, %ax
+# INTEL: ccmpf {dfv=of} ax, dx
0x62,0xf4,0x45,0x0b,0x3b,0xc2
-# ATT: ccmpfl {of} %ecx, %edx
-# INTEL: ccmpf {of} edx, ecx
+# ATT: ccmpfl {dfv=of} %ecx, %edx
+# INTEL: ccmpf {dfv=of} edx, ecx
0x62,0xf4,0x44,0x0b,0x3b,0xd1
-# ATT: ccmpfq {of} %r9, %r15
-# INTEL: ccmpf {of} r15, r9
+# ATT: ccmpfq {dfv=of} %r9, %r15
+# INTEL: ccmpf {dfv=of} r15, r9
0x62,0x54,0xc4,0x0b,0x3b,0xf9
-# ATT: ccmplb {of} $123, 123(%r8,%rax,4)
-# INTEL: ccmpl {of} byte ptr [r8 + 4*rax + 123], 123
+# ATT: ccmplb {dfv=of} $123, 123(%r8,%rax,4)
+# INTEL: ccmpl {dfv=of} byte ptr [r8 + 4*rax + 123], 123
0x62,0xd4,0x44,0x0c,0x80,0x7c,0x80,0x7b,0x7b
-# ATT: ccmplw {of} $123, 123(%r8,%rax,4)
-# INTEL: ccmpl {of} word ptr [r8 + 4*rax + 123], 123
+# ATT: ccmplw {dfv=of} $123, 123(%r8,%rax,4)
+# INTEL: ccmpl {dfv=of} word ptr [r8 + 4*rax + 123], 123
0x62,0xd4,0x45,0x0c,0x83,0x7c,0x80,0x7b,0x7b
-# ATT: ccmplw {of} $1234, 123(%r8,%rax,4)
-# INTEL: ccmpl {of} word ptr [r8 + 4*rax + 123], 1234
+# ATT: ccmplw {dfv=of} $1234, 123(%r8,%rax,4)
+# INTEL: ccmpl {dfv=of} word ptr [r8 + 4*rax + 123], 1234
0x62,0xd4,0x45,0x0c,0x81,0x7c,0x80,0x7b,0xd2,0x04
-# ATT: ccmpll {of} $123, 123(%r8,%rax,4)
-# INTEL: ccmpl {of} dword ptr [r8 + 4*rax + 123], 123
+# ATT: ccmpll {dfv=of} $123, 123(%r8,%rax,4)
+# INTEL: ccmpl {dfv=of} dword ptr [r8 + 4*rax + 123], 123
0x62,0xd4,0x44,0x0c,0x83,0x7c,0x80,0x7b,0x7b
-# ATT: ccmpll {of} $123456, 123(%r8,%rax,4)
-# INTEL: ccmpl {of} dword ptr [r8 + 4*rax + 123], 123456
+# ATT: ccmpll {dfv=of} $123456, 123(%r8,%rax,4)
+# INTEL: ccmpl {dfv=of} dword ptr [r8 + 4*rax + 123], 123456
0x62,0xd4,0x44,0x0c,0x81,0x7c,0x80,0x7b,0x40,0xe2,0x01,0x00
-# ATT: ccmplq {of} $123, 123(%r8,%rax,4)
-# INTEL: ccmpl {of} qword ptr [r8 + 4*rax + 123], 123
+# ATT: ccmplq {dfv=of} $123, 123(%r8,%rax,4)
+# INTEL: ccmpl {dfv=of} qword ptr [r8 + 4*rax + 123], 123
0x62,0xd4,0xc4,0x0c,0x83,0x7c,0x80,0x7b,0x7b
-# ATT: ccmplq {of} $123456, 123(%r8,%rax,4)
-# INTEL: ccmpl {of} qword ptr [r8 + 4*rax + 123], 123456
+# ATT: ccmplq {dfv=of} $123456, 123(%r8,%rax,4)
+# INTEL: ccmpl {dfv=of} qword ptr [r8 + 4*rax + 123], 123456
0x62,0xd4,0xc4,0x0c,0x81,0x7c,0x80,0x7b,0x40,0xe2,0x01,0x00
-# ATT: ccmplb {of} %bl, 123(%r8,%rax,4)
-# INTEL: ccmpl {of} byte ptr [r8 + 4*rax + 123], bl
+# ATT: ccmplb {dfv=of} %bl, 123(%r8,%rax,4)
+# INTEL: ccmpl {dfv=of} byte ptr [r8 + 4*rax + 123], bl
0x62,0xd4,0x44,0x0c,0x38,0x5c,0x80,0x7b
-# ATT: ccmplw {of} %dx, 123(%r8,%rax,4)
-# INTEL: ccmpl {of} word ptr [r8 + 4*rax + 123], dx
+# ATT: ccmplw {dfv=of} %dx, 123(%r8,%rax,4)
+# INTEL: ccmpl {dfv=of} word ptr [r8 + 4*rax + 123], dx
0x62,0xd4,0x45,0x0c,0x39,0x54,0x80,0x7b
-# ATT: ccmpll {of} %ecx, 123(%r8,%rax,4)
-# INTEL: ccmpl {of} dword ptr [r8 + 4*rax + 123], ecx
+# ATT: ccmpll {dfv=of} %ecx, 123(%r8,%rax,4)
+# INTEL: ccmpl {dfv=of} dword ptr [r8 + 4*rax + 123], ecx
0x62,0xd4,0x44,0x0c,0x39,0x4c,0x80,0x7b
-# ATT: ccmplq {of} %r9, 123(%r8,%rax,4)
-# INTEL: ccmpl {of} qword ptr [r8 + 4*rax + 123], r9
+# ATT: ccmplq {dfv=of} %r9, 123(%r8,%rax,4)
+# INTEL: ccmpl {dfv=of} qword ptr [r8 + 4*rax + 123], r9
0x62,0x54,0xc4,0x0c,0x39,0x4c,0x80,0x7b
-# ATT: ccmplb {of} 123(%r8,%rax,4), %bl
-# INTEL: ccmpl {of} bl, byte ptr [r8 + 4*rax + 123]
+# ATT: ccmplb {dfv=of} 123(%r8,%rax,4), %bl
+# INTEL: ccmpl {dfv=of} bl, byte ptr [r8 + 4*rax + 123]
0x62,0xd4,0x44,0x0c,0x3a,0x5c,0x80,0x7b
-# ATT: ccmplw {of} 123(%r8,%rax,4), %dx
-# INTEL: ccmpl {of} dx, word ptr [r8 + 4*rax + 123]
+# ATT: ccmplw {dfv=of} 123(%r8,%rax,4), %dx
+# INTEL: ccmpl {dfv=of} dx, word ptr [r8 + 4*rax + 123]
0x62,0xd4,0x45,0x0c,0x3b,0x54,0x80,0x7b
-# ATT: ccmpll {of} 123(%r8,%rax,4), %ecx
-# INTEL: ccmpl {of} ecx, dword ptr [r8 + 4*rax + 123]
+# ATT: ccmpll {dfv=of} 123(%r8,%rax,4), %ecx
+# INTEL: ccmpl {dfv=of} ecx, dword ptr [r8 + 4*rax + 123]
0x62,0xd4,0x44,0x0c,0x3b,0x4c,0x80,0x7b
-# ATT: ccmplq {of} 123(%r8,%rax,4), %r9
-# INTEL: ccmpl {of} r9, qword ptr [r8 + 4*rax + 123]
+# ATT: ccmplq {dfv=of} 123(%r8,%rax,4), %r9
+# INTEL: ccmpl {dfv=of} r9, qword ptr [r8 + 4*rax + 123]
0x62,0x54,0xc4,0x0c,0x3b,0x4c,0x80,0x7b
-# ATT: ccmplb {of} $123, %bl
-# INTEL: ccmpl {of} bl, 123
+# ATT: ccmplb {dfv=of} $123, %bl
+# INTEL: ccmpl {dfv=of} bl, 123
0x62,0xf4,0x44,0x0c,0x80,0xfb,0x7b
-# ATT: ccmplw {of} $123, %dx
-# INTEL: ccmpl {of} dx, 123
+# ATT: ccmplw {dfv=of} $123, %dx
+# INTEL: ccmpl {dfv=of} dx, 123
0x62,0xf4,0x45,0x0c,0x83,0xfa,0x7b
-# ATT: ccmpll {of} $123, %ecx
-# INTEL: ccmpl {of} ecx, 123
+# ATT: ccmpll {dfv=of} $123, %ecx
+# INTEL: ccmpl {dfv=of} ecx, 123
0x62,0xf4,0x44,0x0c,0x83,0xf9,0x7b
-# ATT: ccmplq {of} $123, %r9
-# INTEL: ccmpl {of} r9, 123
+# ATT: ccmplq {dfv=of} $123, %r9
+# INTEL: ccmpl {dfv=of} r9, 123
0x62,0xd4,0xc4,0x0c,0x83,0xf9,0x7b
-# ATT: ccmplw {of} $1234, %dx
-# INTEL: ccmpl {of} dx, 1234
+# ATT: ccmplw {dfv=of} $1234, %dx
+# INTEL: ccmpl {dfv=of} dx, 1234
0x62,0xf4,0x45,0x0c,0x81,0xfa,0xd2,0x04
-# ATT: ccmpll {of} $123456, %ecx
-# INTEL: ccmpl {of} ecx, 123456
+# ATT: ccmpll {dfv=of} $123456, %ecx
+# INTEL: ccmpl {dfv=of} ecx, 123456
0x62,0xf4,0x44,0x0c,0x81,0xf9,0x40,0xe2,0x01,0x00
-# ATT: ccmplq {of} $123456, %r9
-# INTEL: ccmpl {of} r9, 123456
+# ATT: ccmplq {dfv=of} $123456, %r9
+# INTEL: ccmpl {dfv=of} r9, 123456
0x62,0xd4,0xc4,0x0c,0x81,0xf9,0x40,0xe2,0x01,0x00
-# ATT: ccmplb {of} %bl, %dl
-# INTEL: ccmpl {of} dl, bl
+# ATT: ccmplb {dfv=of} %bl, %dl
+# INTEL: ccmpl {dfv=of} dl, bl
0x62,0xf4,0x44,0x0c,0x3a,0xd3
-# ATT: ccmplw {of} %dx, %ax
-# INTEL: ccmpl {of} ax, dx
+# ATT: ccmplw {dfv=of} %dx, %ax
+# INTEL: ccmpl {dfv=of} ax, dx
0x62,0xf4,0x45,0x0c,0x3b,0xc2
-# ATT: ccmpll {of} %ecx, %edx
-# INTEL: ccmpl {of} edx, ecx
+# ATT: ccmpll {dfv=of} %ecx, %edx
+# INTEL: ccmpl {dfv=of} edx, ecx
0x62,0xf4,0x44,0x0c,0x3b,0xd1
-# ATT: ccmplq {of} %r9, %r15
-# INTEL: ccmpl {of} r15, r9
+# ATT: ccmplq {dfv=of} %r9, %r15
+# INTEL: ccmpl {dfv=of} r15, r9
0x62,0x54,0xc4,0x0c,0x3b,0xf9
-# ATT: ccmpleb {of} $123, 123(%r8,%rax,4)
-# INTEL: ccmple {of} byte ptr [r8 + 4*rax + 123], 123
+# ATT: ccmpleb {dfv=of} $123, 123(%r8,%rax,4)
+# INTEL: ccmple {dfv=of} byte ptr [r8 + 4*rax + 123], 123
0x62,0xd4,0x44,0x0e,0x80,0x7c,0x80,0x7b,0x7b
-# ATT: ccmplew {of} $123, 123(%r8,%rax,4)
-# INTEL: ccmple {of} word ptr [r8 + 4*rax + 123], 123
+# ATT: ccmplew {dfv=of} $123, 123(%r8,%rax,4)
+# INTEL: ccmple {dfv=of} word ptr [r8 + 4*rax + 123], 123
0x62,0xd4,0x45,0x0e,0x83,0x7c,0x80,0x7b,0x7b
-# ATT: ccmplew {of} $1234, 123(%r8,%rax,4)
-# INTEL: ccmple {of} word ptr [r8 + 4*rax + 123], 1234
+# ATT: ccmplew {dfv=of} $1234, 123(%r8,%rax,4)
+# INTEL: ccmple {dfv=of} word ptr [r8 + 4*rax + 123], 1234
0x62,0xd4,0x45,0x0e,0x81,0x7c,0x80,0x7b,0xd2,0x04
-# ATT: ccmplel {of} $123, 123(%r8,%rax,4)
-# INTEL: ccmple {of} dword ptr [r8 + 4*rax + 123], 123
+# ATT: ccmplel {dfv=of} $123, 123(%r8,%rax,4)
+# INTEL: ccmple {dfv=of} dword ptr [r8 + 4*rax + 123], 123
0x62,0xd4,0x44,0x0e,0x83,0x7c,0x80,0x7b,0x7b
-# ATT: ccmplel {of} $123456, 123(%r8,%rax,4)
-# INTEL: ccmple {of} dword ptr [r8 + 4*rax + 123], 123456
+# ATT: ccmplel {dfv=of} $123456, 123(%r8,%rax,4)
+# INTEL: ccmple {dfv=of} dword ptr [r8 + 4*rax + 123], 123456
0x62,0xd4,0x44,0x0e,0x81,0x7c,0x80,0x7b,0x40,0xe2,0x01,0x00
-# ATT: ccmpleq {of} $123, 123(%r8,%rax,4)
-# INTEL: ccmple {of} qword ptr [r8 + 4*rax + 123], 123
+# ATT: ccmpleq {dfv=of} $123, 123(%r8,%rax,4)
+# INTEL: ccmple {dfv=of} qword ptr [r8 + 4*rax + 123], 123
0x62,0xd4,0xc4,0x0e,0x83,0x7c,0x80,0x7b,0x7b
-# ATT: ccmpleq {of} $123456, 123(%r8,%rax,4)
-# INTEL: ccmple {of} qword ptr [r8 + 4*rax + 123], 123456
+# ATT: ccmpleq {dfv=of} $123456, 123(%r8,%rax,4)
+# INTEL: ccmple {dfv=of} qword ptr [r8 + 4*rax + 123], 123456
0x62,0xd4,0xc4,0x0e,0x81,0x7c,0x80,0x7b,0x40,0xe2,0x01,0x00
-# ATT: ccmpleb {of} %bl, 123(%r8,%rax,4)
-# INTEL: ccmple {of} byte ptr [r8 + 4*rax + 123], bl
+# ATT: ccmpleb {dfv=of} %bl, 123(%r8,%rax,4)
+# INTEL: ccmple {dfv=of} byte ptr [r8 + 4*rax + 123], bl
0x62,0xd4,0x44,0x0e,0x38,0x5c,0x80,0x7b
-# ATT: ccmplew {of} %dx, 123(%r8,%rax,4)
-# INTEL: ccmple {of} word ptr [r8 + 4*rax + 123], dx
+# ATT: ccmplew {dfv=of} %dx, 123(%r8,%rax,4)
+# INTEL: ccmple {dfv=of} word ptr [r8 + 4*rax + 123], dx
0x62,0xd4,0x45,0x0e,0x39,0x54,0x80,0x7b
-# ATT: ccmplel {of} %ecx, 123(%r8,%rax,4)
-# INTEL: ccmple {of} dword ptr [r8 + 4*rax + 123], ecx
+# ATT: ccmplel {dfv=of} %ecx, 123(%r8,%rax,4)
+# INTEL: ccmple {dfv=of} dword ptr [r8 + 4*rax + 123], ecx
0x62,0xd4,0x44,0x0e,0x39,0x4c,0x80,0x7b
-# ATT: ccmpleq {of} %r9, 123(%r8,%rax,4)
-# INTEL: ccmple {of} qword ptr [r8 + 4*rax + 123], r9
+# ATT: ccmpleq {dfv=of} %r9, 123(%r8,%rax,4)
+# INTEL: ccmple {dfv=of} qword ptr [r8 + 4*rax + 123], r9
0x62,0x54,0xc4,0x0e,0x39,0x4c,0x80,0x7b
-# ATT: ccmpleb {of} 123(%r8,%rax,4), %bl
-# INTEL: ccmple {of} bl, byte ptr [r8 + 4*rax + 123]
+# ATT: ccmpleb {dfv=of} 123(%r8,%rax,4), %bl
+# INTEL: ccmple {dfv=of} bl, byte ptr [r8 + 4*rax + 123]
0x62,0xd4,0x44,0x0e,0x3a,0x5c,0x80,0x7b
-# ATT: ccmplew {of} 123(%r8,%rax,4), %dx
-# INTEL: ccmple {of} dx, word ptr [r8 + 4*rax + 123]
+# ATT: ccmplew {dfv=of} 123(%r8,%rax,4), %dx
+# INTEL: ccmple {dfv=of} dx, word ptr [r8 + 4*rax + 123]
0x62,0xd4,0x45,0x0e,0x3b,0x54,0x80,0x7b
-# ATT: ccmplel {of} 123(%r8,%rax,4), %ecx
-# INTEL: ccmple {of} ecx, dword ptr [r8 + 4*rax + 123]
+# ATT: ccmplel {dfv=of} 123(%r8,%rax,4), %ecx
+# INTEL: ccmple {dfv=of} ecx, dword ptr [r8 + 4*rax + 123]
0x62,0xd4,0x44,0x0e,0x3b,0x4c,0x80,0x7b
-# ATT: ccmpleq {of} 123(%r8,%rax,4), %r9
-# INTEL: ccmple {of} r9, qword ptr [r8 + 4*rax + 123]
+# ATT: ccmpleq {dfv=of} 123(%r8,%rax,4), %r9
+# INTEL: ccmple {dfv=of} r9, qword ptr [r8 + 4*rax + 123]
0x62,0x54,0xc4,0x0e,0x3b,0x4c,0x80,0x7b
-# ATT: ccmpleb {of} $123, %bl
-# INTEL: ccmple {of} bl, 123
+# ATT: ccmpleb {dfv=of} $123, %bl
+# INTEL: ccmple {dfv=of} bl, 123
0x62,0xf4,0x44,0x0e,0x80,0xfb,0x7b
-# ATT: ccmplew {of} $123, %dx
-# INTEL: ccmple {of} dx, 123
+# ATT: ccmplew {dfv=of} $123, %dx
+# INTEL: ccmple {dfv=of} dx, 123
0x62,0xf4,0x45,0x0e,0x83,0xfa,0x7b
-# ATT: ccmplel {of} $123, %ecx
-# INTEL: ccmple {of} ecx, 123
+# ATT: ccmplel {dfv=of} $123, %ecx
+# INTEL: ccmple {dfv=of} ecx, 123
0x62,0xf4,0x44,0x0e,0x83,0xf9,0x7b
-# ATT: ccmpleq {of} $123, %r9
-# INTEL: ccmple {of} r9, 123
+# ATT: ccmpleq {dfv=of} $123, %r9
+# INTEL: ccmple {dfv=of} r9, 123
0x62,0xd4,0xc4,0x0e,0x83,0xf9,0x7b
-# ATT: ccmplew {of} $1234, %dx
-# INTEL: ccmple {of} dx, 1234
+# ATT: ccmplew {dfv=of} $1234, %dx
+# INTEL: ccmple {dfv=of} dx, 1234
0x62,0xf4,0x45,0x0e,0x81,0xfa,0xd2,0x04
-# ATT: ccmplel {of} $123456, %ecx
-# INTEL: ccmple {of} ecx, 123456
+# ATT: ccmplel {dfv=of} $123456, %ecx
+# INTEL: ccmple {dfv=of} ecx, 123456
0x62,0xf4,0x44,0x0e,0x81,0xf9,0x40,0xe2,0x01,0x00
-# ATT: ccmpleq {of} $123456, %r9
-# INTEL: ccmple {of} r9, 123456
+# ATT: ccmpleq {dfv=of} $123456, %r9
+# INTEL: ccmple {dfv=of} r9, 123456
0x62,0xd4,0xc4,0x0e,0x81,0xf9,0x40,0xe2,0x01,0x00
-# ATT: ccmpleb {of} %bl, %dl
-# INTEL: ccmple {of} dl, bl
+# ATT: ccmpleb {dfv=of} %bl, %dl
+# INTEL: ccmple {dfv=of} dl, bl
0x62,0xf4,0x44,0x0e,0x3a,0xd3
-# ATT: ccmplew {of} %dx, %ax
-# INTEL: ccmple {of} ax, dx
+# ATT: ccmplew {dfv=of} %dx, %ax
+# INTEL: ccmple {dfv=of} ax, dx
0x62,0xf4,0x45,0x0e,0x3b,0xc2
-# ATT: ccmplel {of} %ecx, %edx
-# INTEL: ccmple {of} edx, ecx
+# ATT: ccmplel {dfv=of} %ecx, %edx
+# INTEL: ccmple {dfv=of} edx, ecx
0x62,0xf4,0x44,0x0e,0x3b,0xd1
-# ATT: ccmpleq {of} %r9, %r15
-# INTEL: ccmple {of} r15, r9
+# ATT: ccmpleq {dfv=of} %r9, %r15
+# INTEL: ccmple {dfv=of} r15, r9
0x62,0x54,0xc4,0x0e,0x3b,0xf9
-# ATT: ccmpaeb {of} $123, 123(%r8,%rax,4)
-# INTEL: ccmpae {of} byte ptr [r8 + 4*rax + 123], 123
+# ATT: ccmpaeb {dfv=of} $123, 123(%r8,%rax,4)
+# INTEL: ccmpae {dfv=of} byte ptr [r8 + 4*rax + 123], 123
0x62,0xd4,0x44,0x03,0x80,0x7c,0x80,0x7b,0x7b
-# ATT: ccmpaew {of} $123, 123(%r8,%rax,4)
-# INTEL: ccmpae {of} word ptr [r8 + 4*rax + 123], 123
+# ATT: ccmpaew {dfv=of} $123, 123(%r8,%rax,4)
+# INTEL: ccmpae {dfv=of} word ptr [r8 + 4*rax + 123], 123
0x62,0xd4,0x45,0x03,0x83,0x7c,0x80,0x7b,0x7b
-# ATT: ccmpaew {of} $1234, 123(%r8,%rax,4)
-# INTEL: ccmpae {of} word ptr [r8 + 4*rax + 123], 1234
+# ATT: ccmpaew {dfv=of} $1234, 123(%r8,%rax,4)
+# INTEL: ccmpae {dfv=of} word ptr [r8 + 4*rax + 123], 1234
0x62,0xd4,0x45,0x03,0x81,0x7c,0x80,0x7b,0xd2,0x04
-# ATT: ccmpael {of} $123, 123(%r8,%rax,4)
-# INTEL: ccmpae {of} dword ptr [r8 + 4*rax + 123], 123
+# ATT: ccmpael {dfv=of} $123, 123(%r8,%rax,4)
+# INTEL: ccmpae {dfv=of} dword ptr [r8 + 4*rax + 123], 123
0x62,0xd4,0x44,0x03,0x83,0x7c,0x80,0x7b,0x7b
-# ATT: ccmpael {of} $123456, 123(%r8,%rax,4)
-# INTEL: ccmpae {of} dword ptr [r8 + 4*rax + 123], 123456
+# ATT: ccmpael {dfv=of} $123456, 123(%r8,%rax,4)
+# INTEL: ccmpae {dfv=of} dword ptr [r8 + 4*rax + 123], 123456
0x62,0xd4,0x44,0x03,0x81,0x7c,0x80,0x7b,0x40,0xe2,0x01,0x00
-# ATT: ccmpaeq {of} $123, 123(%r8,%rax,4)
-# INTEL: ccmpae {of} qword ptr [r8 + 4*rax + 123], 123
+# ATT: ccmpaeq {dfv=of} $123, 123(%r8,%rax,4)
+# INTEL: ccmpae {dfv=of} qword ptr [r8 + 4*rax + 123], 123
0x62,0xd4,0xc4,0x03,0x83,0x7c,0x80,0x7b,0x7b
-# ATT: ccmpaeq {of} $123456, 123(%r8,%rax,4)
-# INTEL: ccmpae {of} qword ptr [r8 + 4*rax + 123], 123456
+# ATT: ccmpaeq {dfv=of} $123456, 123(%r8,%rax,4)
+# INTEL: ccmpae {dfv=of} qword ptr [r8 + 4*rax + 123], 123456
0x62,0xd4,0xc4,0x03,0x81,0x7c,0x80,0x7b,0x40,0xe2,0x01,0x00
-# ATT: ccmpaeb {of} %bl, 123(%r8,%rax,4)
-# INTEL: ccmpae {of} byte ptr [r8 + 4*rax + 123], bl
+# ATT: ccmpaeb {dfv=of} %bl, 123(%r8,%rax,4)
+# INTEL: ccmpae {dfv=of} byte ptr [r8 + 4*rax + 123], bl
0x62,0xd4,0x44,0x03,0x38,0x5c,0x80,0x7b
-# ATT: ccmpaew {of} %dx, 123(%r8,%rax,4)
-# INTEL: ccmpae {of} word ptr [r8 + 4*rax + 123], dx
+# ATT: ccmpaew {dfv=of} %dx, 123(%r8,%rax,4)
+# INTEL: ccmpae {dfv=of} word ptr [r8 + 4*rax + 123], dx
0x62,0xd4,0x45,0x03,0x39,0x54,0x80,0x7b
-# ATT: ccmpael {of} %ecx, 123(%r8,%rax,4)
-# INTEL: ccmpae {of} dword ptr [r8 + 4*rax + 123], ecx
+# ATT: ccmpael {dfv=of} %ecx, 123(%r8,%rax,4)
+# INTEL: ccmpae {dfv=of} dword ptr [r8 + 4*rax + 123], ecx
0x62,0xd4,0x44,0x03,0x39,0x4c,0x80,0x7b
-# ATT: ccmpaeq {of} %r9, 123(%r8,%rax,4)
-# INTEL: ccmpae {of} qword ptr [r8 + 4*rax + 123], r9
+# ATT: ccmpaeq {dfv=of} %r9, 123(%r8,%rax,4)
+# INTEL: ccmpae {dfv=of} qword ptr [r8 + 4*rax + 123], r9
0x62,0x54,0xc4,0x03,0x39,0x4c,0x80,0x7b
-# ATT: ccmpaeb {of} 123(%r8,%rax,4), %bl
-# INTEL: ccmpae {of} bl, byte ptr [r8 + 4*rax + 123]
+# ATT: ccmpaeb {dfv=of} 123(%r8,%rax,4), %bl
+# INTEL: ccmpae {dfv=of} bl, byte ptr [r8 + 4*rax + 123]
0x62,0xd4,0x44,0x03,0x3a,0x5c,0x80,0x7b
-# ATT: ccmpaew {of} 123(%r8,%rax,4), %dx
-# INTEL: ccmpae {of} dx, word ptr [r8 + 4*rax + 123]
+# ATT: ccmpaew {dfv=of} 123(%r8,%rax,4), %dx
+# INTEL: ccmpae {dfv=of} dx, word ptr [r8 + 4*rax + 123]
0x62,0xd4,0x45,0x03,0x3b,0x54,0x80,0x7b
-# ATT: ccmpael {of} 123(%r8,%rax,4), %ecx
-# INTEL: ccmpae {of} ecx, dword ptr [r8 + 4*rax + 123]
+# ATT: ccmpael {dfv=of} 123(%r8,%rax,4), %ecx
+# INTEL: ccmpae {dfv=of} ecx, dword ptr [r8 + 4*rax + 123]
0x62,0xd4,0x44,0x03,0x3b,0x4c,0x80,0x7b
-# ATT: ccmpaeq {of} 123(%r8,%rax,4), %r9
-# INTEL: ccmpae {of} r9, qword ptr [r8 + 4*rax + 123]
+# ATT: ccmpaeq {dfv=of} 123(%r8,%rax,4), %r9
+# INTEL: ccmpae {dfv=of} r9, qword ptr [r8 + 4*rax + 123]
0x62,0x54,0xc4,0x03,0x3b,0x4c,0x80,0x7b
-# ATT: ccmpaeb {of} $123, %bl
-# INTEL: ccmpae {of} bl, 123
+# ATT: ccmpaeb {dfv=of} $123, %bl
+# INTEL: ccmpae {dfv=of} bl, 123
0x62,0xf4,0x44,0x03,0x80,0xfb,0x7b
-# ATT: ccmpaew {of} $123, %dx
-# INTEL: ccmpae {of} dx, 123
+# ATT: ccmpaew {dfv=of} $123, %dx
+# INTEL: ccmpae {dfv=of} dx, 123
0x62,0xf4,0x45,0x03,0x83,0xfa,0x7b
-# ATT: ccmpael {of} $123, %ecx
-# INTEL: ccmpae {of} ecx, 123
+# ATT: ccmpael {dfv=of} $123, %ecx
+# INTEL: ccmpae {dfv=of} ecx, 123
0x62,0xf4,0x44,0x03,0x83,0xf9,0x7b
-# ATT: ccmpaeq {of} $123, %r9
-# INTEL: ccmpae {of} r9, 123
+# ATT: ccmpaeq {dfv=of} $123, %r9
+# INTEL: ccmpae {dfv=of} r9, 123
0x62,0xd4,0xc4,0x03,0x83,0xf9,0x7b
-# ATT: ccmpaew {of} $1234, %dx
-# INTEL: ccmpae {of} dx, 1234
+# ATT: ccmpaew {dfv=of} $1234, %dx
+# INTEL: ccmpae {dfv=of} dx, 1234
0x62,0xf4,0x45,0x03,0x81,0xfa,0xd2,0x04
-# ATT: ccmpael {of} $123456, %ecx
-# INTEL: ccmpae {of} ecx, 123456
+# ATT: ccmpael {dfv=of} $123456, %ecx
+# INTEL: ccmpae {dfv=of} ecx, 123456
0x62,0xf4,0x44,0x03,0x81,0xf9,0x40,0xe2,0x01,0x00
-# ATT: ccmpaeq {of} $123456, %r9
-# INTEL: ccmpae {of} r9, 123456
+# ATT: ccmpaeq {dfv=of} $123456, %r9
+# INTEL: ccmpae {dfv=of} r9, 123456
0x62,0xd4,0xc4,0x03,0x81,0xf9,0x40,0xe2,0x01,0x00
-# ATT: ccmpaeb {of} %bl, %dl
-# INTEL: ccmpae {of} dl, bl
+# ATT: ccmpaeb {dfv=of} %bl, %dl
+# INTEL: ccmpae {dfv=of} dl, bl
0x62,0xf4,0x44,0x03,0x3a,0xd3
-# ATT: ccmpaew {of} %dx, %ax
-# INTEL: ccmpae {of} ax, dx
+# ATT: ccmpaew {dfv=of} %dx, %ax
+# INTEL: ccmpae {dfv=of} ax, dx
0x62,0xf4,0x45,0x03,0x3b,0xc2
-# ATT: ccmpael {of} %ecx, %edx
-# INTEL: ccmpae {of} edx, ecx
+# ATT: ccmpael {dfv=of} %ecx, %edx
+# INTEL: ccmpae {dfv=of} edx, ecx
0x62,0xf4,0x44,0x03,0x3b,0xd1
-# ATT: ccmpaeq {of} %r9, %r15
-# INTEL: ccmpae {of} r15, r9
+# ATT: ccmpaeq {dfv=of} %r9, %r15
+# INTEL: ccmpae {dfv=of} r15, r9
0x62,0x54,0xc4,0x03,0x3b,0xf9
-# ATT: ccmpab {of} $123, 123(%r8,%rax,4)
-# INTEL: ccmpa {of} byte ptr [r8 + 4*rax + 123], 123
+# ATT: ccmpab {dfv=of} $123, 123(%r8,%rax,4)
+# INTEL: ccmpa {dfv=of} byte ptr [r8 + 4*rax + 123], 123
0x62,0xd4,0x44,0x07,0x80,0x7c,0x80,0x7b,0x7b
-# ATT: ccmpaw {of} $123, 123(%r8,%rax,4)
-# INTEL: ccmpa {of} word ptr [r8 + 4*rax + 123], 123
+# ATT: ccmpaw {dfv=of} $123, 123(%r8,%rax,4)
+# INTEL: ccmpa {dfv=of} word ptr [r8 + 4*rax + 123], 123
0x62,0xd4,0x45,0x07,0x83,0x7c,0x80,0x7b,0x7b
-# ATT: ccmpaw {of} $1234, 123(%r8,%rax,4)
-# INTEL: ccmpa {of} word ptr [r8 + 4*rax + 123], 1234
+# ATT: ccmpaw {dfv=of} $1234, 123(%r8,%rax,4)
+# INTEL: ccmpa {dfv=of} word ptr [r8 + 4*rax + 123], 1234
0x62,0xd4,0x45,0x07,0x81,0x7c,0x80,0x7b,0xd2,0x04
-# ATT: ccmpal {of} $123, 123(%r8,%rax,4)
-# INTEL: ccmpa {of} dword ptr [r8 + 4*rax + 123], 123
+# ATT: ccmpal {dfv=of} $123, 123(%r8,%rax,4)
+# INTEL: ccmpa {dfv=of} dword ptr [r8 + 4*rax + 123], 123
0x62,0xd4,0x44,0x07,0x83,0x7c,0x80,0x7b,0x7b
-# ATT: ccmpal {of} $123456, 123(%r8,%rax,4)
-# INTEL: ccmpa {of} dword ptr [r8 + 4*rax + 123], 123456
+# ATT: ccmpal {dfv=of} $123456, 123(%r8,%rax,4)
+# INTEL: ccmpa {dfv=of} dword ptr [r8 + 4*rax + 123], 123456
0x62,0xd4,0x44,0x07,0x81,0x7c,0x80,0x7b,0x40,0xe2,0x01,0x00
-# ATT: ccmpaq {of} $123, 123(%r8,%rax,4)
-# INTEL: ccmpa {of} qword ptr [r8 + 4*rax + 123], 123
+# ATT: ccmpaq {dfv=of} $123, 123(%r8,%rax,4)
+# INTEL: ccmpa {dfv=of} qword ptr [r8 + 4*rax + 123], 123
0x62,0xd4,0xc4,0x07,0x83,0x7c,0x80,0x7b,0x7b
-# ATT: ccmpaq {of} $123456, 123(%r8,%rax,4)
-# INTEL: ccmpa {of} qword ptr [r8 + 4*rax + 123], 123456
+# ATT: ccmpaq {dfv=of} $123456, 123(%r8,%rax,4)
+# INTEL: ccmpa {dfv=of} qword ptr [r8 + 4*rax + 123], 123456
0x62,0xd4,0xc4,0x07,0x81,0x7c,0x80,0x7b,0x40,0xe2,0x01,0x00
-# ATT: ccmpab {of} %bl, 123(%r8,%rax,4)
-# INTEL: ccmpa {of} byte ptr [r8 + 4*rax + 123], bl
+# ATT: ccmpab {dfv=of} %bl, 123(%r8,%rax,4)
+# INTEL: ccmpa {dfv=of} byte ptr [r8 + 4*rax + 123], bl
0x62,0xd4,0x44,0x07,0x38,0x5c,0x80,0x7b
-# ATT: ccmpaw {of} %dx, 123(%r8,%rax,4)
-# INTEL: ccmpa {of} word ptr [r8 + 4*rax + 123], dx
+# ATT: ccmpaw {dfv=of} %dx, 123(%r8,%rax,4)
+# INTEL: ccmpa {dfv=of} word ptr [r8 + 4*rax + 123], dx
0x62,0xd4,0x45,0x07,0x39,0x54,0x80,0x7b
-# ATT: ccmpal {of} %ecx, 123(%r8,%rax,4)
-# INTEL: ccmpa {of} dword ptr [r8 + 4*rax + 123], ecx
+# ATT: ccmpal {dfv=of} %ecx, 123(%r8,%rax,4)
+# INTEL: ccmpa {dfv=of} dword ptr [r8 + 4*rax + 123], ecx
0x62,0xd4,0x44,0x07,0x39,0x4c,0x80,0x7b
-# ATT: ccmpaq {of} %r9, 123(%r8,%rax,4)
-# INTEL: ccmpa {of} qword ptr [r8 + 4*rax + 123], r9
+# ATT: ccmpaq {dfv=of} %r9, 123(%r8,%rax,4)
+# INTEL: ccmpa {dfv=of} qword ptr [r8 + 4*rax + 123], r9
0x62,0x54,0xc4,0x07,0x39,0x4c,0x80,0x7b
-# ATT: ccmpab {of} 123(%r8,%rax,4), %bl
-# INTEL: ccmpa {of} bl, byte ptr [r8 + 4*rax + 123]
+# ATT: ccmpab {dfv=of} 123(%r8,%rax,4), %bl
+# INTEL: ccmpa {dfv=of} bl, byte ptr [r8 + 4*rax + 123]
0x62,0xd4,0x44,0x07,0x3a,0x5c,0x80,0x7b
-# ATT: ccmpaw {of} 123(%r8,%rax,4), %dx
-# INTEL: ccmpa {of} dx, word ptr [r8 + 4*rax + 123]
+# ATT: ccmpaw {dfv=of} 123(%r8,%rax,4), %dx
+# INTEL: ccmpa {dfv=of} dx, word ptr [r8 + 4*rax + 123]
0x62,0xd4,0x45,0x07,0x3b,0x54,0x80,0x7b
-# ATT: ccmpal {of} 123(%r8,%rax,4), %ecx
-# INTEL: ccmpa {of} ecx, dword ptr [r8 + 4*rax + 123]
+# ATT: ccmpal {dfv=of} 123(%r8,%rax,4), %ecx
+# INTEL: ccmpa {dfv=of} ecx, dword ptr [r8 + 4*rax + 123]
0x62,0xd4,0x44,0x07,0x3b,0x4c,0x80,0x7b
-# ATT: ccmpaq {of} 123(%r8,%rax,4), %r9
-# INTEL: ccmpa {of} r9, qword ptr [r8 + 4*rax + 123]
+# ATT: ccmpaq {dfv=of} 123(%r8,%rax,4), %r9
+# INTEL: ccmpa {dfv=of} r9, qword ptr [r8 + 4*rax + 123]
0x62,0x54,0xc4,0x07,0x3b,0x4c,0x80,0x7b
-# ATT: ccmpab {of} $123, %bl
-# INTEL: ccmpa {of} bl, 123
+# ATT: ccmpab {dfv=of} $123, %bl
+# INTEL: ccmpa {dfv=of} bl, 123
0x62,0xf4,0x44,0x07,0x80,0xfb,0x7b
-# ATT: ccmpaw {of} $123, %dx
-# INTEL: ccmpa {of} dx, 123
+# ATT: ccmpaw {dfv=of} $123, %dx
+# INTEL: ccmpa {dfv=of} dx, 123
0x62,0xf4,0x45,0x07,0x83,0xfa,0x7b
-# ATT: ccmpal {of} $123, %ecx
-# INTEL: ccmpa {of} ecx, 123
+# ATT: ccmpal {dfv=of} $123, %ecx
+# INTEL: ccmpa {dfv=of} ecx, 123
0x62,0xf4,0x44,0x07,0x83,0xf9,0x7b
-# ATT: ccmpaq {of} $123, %r9
-# INTEL: ccmpa {of} r9, 123
+# ATT: ccmpaq {dfv=of} $123, %r9
+# INTEL: ccmpa {dfv=of} r9, 123
0x62,0xd4,0xc4,0x07,0x83,0xf9,0x7b
-# ATT: ccmpaw {of} $1234, %dx
-# INTEL: ccmpa {of} dx, 1234
+# ATT: ccmpaw {dfv=of} $1234, %dx
+# INTEL: ccmpa {dfv=of} dx, 1234
0x62,0xf4,0x45,0x07,0x81,0xfa,0xd2,0x04
-# ATT: ccmpal {of} $123456, %ecx
-# INTEL: ccmpa {of} ecx, 123456
+# ATT: ccmpal {dfv=of} $123456, %ecx
+# INTEL: ccmpa {dfv=of} ecx, 123456
0x62,0xf4,0x44,0x07,0x81,0xf9,0x40,0xe2,0x01,0x00
-# ATT: ccmpaq {of} $123456, %r9
-# INTEL: ccmpa {of} r9, 123456
+# ATT: ccmpaq {dfv=of} $123456, %r9
+# INTEL: ccmpa {dfv=of} r9, 123456
0x62,0xd4,0xc4,0x07,0x81,0xf9,0x40,0xe2,0x01,0x00
-# ATT: ccmpab {of} %bl, %dl
-# INTEL: ccmpa {of} dl, bl
+# ATT: ccmpab {dfv=of} %bl, %dl
+# INTEL: ccmpa {dfv=of} dl, bl
0x62,0xf4,0x44,0x07,0x3a,0xd3
-# ATT: ccmpaw {of} %dx, %ax
-# INTEL: ccmpa {of} ax, dx
+# ATT: ccmpaw {dfv=of} %dx, %ax
+# INTEL: ccmpa {dfv=of} ax, dx
0x62,0xf4,0x45,0x07,0x3b,0xc2
-# ATT: ccmpal {of} %ecx, %edx
-# INTEL: ccmpa {of} edx, ecx
+# ATT: ccmpal {dfv=of} %ecx, %edx
+# INTEL: ccmpa {dfv=of} edx, ecx
0x62,0xf4,0x44,0x07,0x3b,0xd1
-# ATT: ccmpaq {of} %r9, %r15
-# INTEL: ccmpa {of} r15, r9
+# ATT: ccmpaq {dfv=of} %r9, %r15
+# INTEL: ccmpa {dfv=of} r15, r9
0x62,0x54,0xc4,0x07,0x3b,0xf9
-# ATT: ccmpgeb {of} $123, 123(%r8,%rax,4)
-# INTEL: ccmpge {of} byte ptr [r8 + 4*rax + 123], 123
+# ATT: ccmpgeb {dfv=of} $123, 123(%r8,%rax,4)
+# INTEL: ccmpge {dfv=of} byte ptr [r8 + 4*rax + 123], 123
0x62,0xd4,0x44,0x0d,0x80,0x7c,0x80,0x7b,0x7b
-# ATT: ccmpgew {of} $123, 123(%r8,%rax,4)
-# INTEL: ccmpge {of} word ptr [r8 + 4*rax + 123], 123
+# ATT: ccmpgew {dfv=of} $123, 123(%r8,%rax,4)
+# INTEL: ccmpge {dfv=of} word ptr [r8 + 4*rax + 123], 123
0x62,0xd4,0x45,0x0d,0x83,0x7c,0x80,0x7b,0x7b
-# ATT: ccmpgew {of} $1234, 123(%r8,%rax,4)
-# INTEL: ccmpge {of} word ptr [r8 + 4*rax + 123], 1234
+# ATT: ccmpgew {dfv=of} $1234, 123(%r8,%rax,4)
+# INTEL: ccmpge {dfv=of} word ptr [r8 + 4*rax + 123], 1234
0x62,0xd4,0x45,0x0d,0x81,0x7c,0x80,0x7b,0xd2,0x04
-# ATT: ccmpgel {of} $123, 123(%r8,%rax,4)
-# INTEL: ccmpge {of} dword ptr [r8 + 4*rax + 123], 123
+# ATT: ccmpgel {dfv=of} $123, 123(%r8,%rax,4)
+# INTEL: ccmpge {dfv=of} dword ptr [r8 + 4*rax + 123], 123
0x62,0xd4,0x44,0x0d,0x83,0x7c,0x80,0x7b,0x7b
-# ATT: ccmpgel {of} $123456, 123(%r8,%rax,4)
-# INTEL: ccmpge {of} dword ptr [r8 + 4*rax + 123], 123456
+# ATT: ccmpgel {dfv=of} $123456, 123(%r8,%rax,4)
+# INTEL: ccmpge {dfv=of} dword ptr [r8 + 4*rax + 123], 123456
0x62,0xd4,0x44,0x0d,0x81,0x7c,0x80,0x7b,0x40,0xe2,0x01,0x00
-# ATT: ccmpgeq {of} $123, 123(%r8,%rax,4)
-# INTEL: ccmpge {of} qword ptr [r8 + 4*rax + 123], 123
+# ATT: ccmpgeq {dfv=of} $123, 123(%r8,%rax,4)
+# INTEL: ccmpge {dfv=of} qword ptr [r8 + 4*rax + 123], 123
0x62,0xd4,0xc4,0x0d,0x83,0x7c,0x80,0x7b,0x7b
-# ATT: ccmpgeq {of} $123456, 123(%r8,%rax,4)
-# INTEL: ccmpge {of} qword ptr [r8 + 4*rax + 123], 123456
+# ATT: ccmpgeq {dfv=of} $123456, 123(%r8,%rax,4)
+# INTEL: ccmpge {dfv=of} qword ptr [r8 + 4*rax + 123], 123456
0x62,0xd4,0xc4,0x0d,0x81,0x7c,0x80,0x7b,0x40,0xe2,0x01,0x00
-# ATT: ccmpgeb {of} %bl, 123(%r8,%rax,4)
-# INTEL: ccmpge {of} byte ptr [r8 + 4*rax + 123], bl
+# ATT: ccmpgeb {dfv=of} %bl, 123(%r8,%rax,4)
+# INTEL: ccmpge {dfv=of} byte ptr [r8 + 4*rax + 123], bl
0x62,0xd4,0x44,0x0d,0x38,0x5c,0x80,0x7b
-# ATT: ccmpgew {of} %dx, 123(%r8,%rax,4)
-# INTEL: ccmpge {of} word ptr [r8 + 4*rax + 123], dx
+# ATT: ccmpgew {dfv=of} %dx, 123(%r8,%rax,4)
+# INTEL: ccmpge {dfv=of} word ptr [r8 + 4*rax + 123], dx
0x62,0xd4,0x45,0x0d,0x39,0x54,0x80,0x7b
-# ATT: ccmpgel {of} %ecx, 123(%r8,%rax,4)
-# INTEL: ccmpge {of} dword ptr [r8 + 4*rax + 123], ecx
+# ATT: ccmpgel {dfv=of} %ecx, 123(%r8,%rax,4)
+# INTEL: ccmpge {dfv=of} dword ptr [r8 + 4*rax + 123], ecx
0x62,0xd4,0x44,0x0d,0x39,0x4c,0x80,0x7b
-# ATT: ccmpgeq {of} %r9, 123(%r8,%rax,4)
-# INTEL: ccmpge {of} qword ptr [r8 + 4*rax + 123], r9
+# ATT: ccmpgeq {dfv=of} %r9, 123(%r8,%rax,4)
+# INTEL: ccmpge {dfv=of} qword ptr [r8 + 4*rax + 123], r9
0x62,0x54,0xc4,0x0d,0x39,0x4c,0x80,0x7b
-# ATT: ccmpgeb {of} 123(%r8,%rax,4), %bl
-# INTEL: ccmpge {of} bl, byte ptr [r8 + 4*rax + 123]
+# ATT: ccmpgeb {dfv=of} 123(%r8,%rax,4), %bl
+# INTEL: ccmpge {dfv=of} bl, byte ptr [r8 + 4*rax + 123]
0x62,0xd4,0x44,0x0d,0x3a,0x5c,0x80,0x7b
-# ATT: ccmpgew {of} 123(%r8,%rax,4), %dx
-# INTEL: ccmpge {of} dx, word ptr [r8 + 4*rax + 123]
+# ATT: ccmpgew {dfv=of} 123(%r8,%rax,4), %dx
+# INTEL: ccmpge {dfv=of} dx, word ptr [r8 + 4*rax + 123]
0x62,0xd4,0x45,0x0d,0x3b,0x54,0x80,0x7b
-# ATT: ccmpgel {of} 123(%r8,%rax,4), %ecx
-# INTEL: ccmpge {of} ecx, dword ptr [r8 + 4*rax + 123]
+# ATT: ccmpgel {dfv=of} 123(%r8,%rax,4), %ecx
+# INTEL: ccmpge {dfv=of} ecx, dword ptr [r8 + 4*rax + 123]
0x62,0xd4,0x44,0x0d,0x3b,0x4c,0x80,0x7b
-# ATT: ccmpgeq {of} 123(%r8,%rax,4), %r9
-# INTEL: ccmpge {of} r9, qword ptr [r8 + 4*rax + 123]
+# ATT: ccmpgeq {dfv=of} 123(%r8,%rax,4), %r9
+# INTEL: ccmpge {dfv=of} r9, qword ptr [r8 + 4*rax + 123]
0x62,0x54,0xc4,0x0d,0x3b,0x4c,0x80,0x7b
-# ATT: ccmpgeb {of} $123, %bl
-# INTEL: ccmpge {of} bl, 123
+# ATT: ccmpgeb {dfv=of} $123, %bl
+# INTEL: ccmpge {dfv=of} bl, 123
0x62,0xf4,0x44,0x0d,0x80,0xfb,0x7b
-# ATT: ccmpgew {of} $123, %dx
-# INTEL: ccmpge {of} dx, 123
+# ATT: ccmpgew {dfv=of} $123, %dx
+# INTEL: ccmpge {dfv=of} dx, 123
0x62,0xf4,0x45,0x0d,0x83,0xfa,0x7b
-# ATT: ccmpgel {of} $123, %ecx
-# INTEL: ccmpge {of} ecx, 123
+# ATT: ccmpgel {dfv=of} $123, %ecx
+# INTEL: ccmpge {dfv=of} ecx, 123
0x62,0xf4,0x44,0x0d,0x83,0xf9,0x7b
-# ATT: ccmpgeq {of} $123, %r9
-# INTEL: ccmpge {of} r9, 123
+# ATT: ccmpgeq {dfv=of} $123, %r9
+# INTEL: ccmpge {dfv=of} r9, 123
0x62,0xd4,0xc4,0x0d,0x83,0xf9,0x7b
-# ATT: ccmpgew {of} $1234, %dx
-# INTEL: ccmpge {of} dx, 1234
+# ATT: ccmpgew {dfv=of} $1234, %dx
+# INTEL: ccmpge {dfv=of} dx, 1234
0x62,0xf4,0x45,0x0d,0x81,0xfa,0xd2,0x04
-# ATT: ccmpgel {of} $123456, %ecx
-# INTEL: ccmpge {of} ecx, 123456
+# ATT: ccmpgel {dfv=of} $123456, %ecx
+# INTEL: ccmpge {dfv=of} ecx, 123456
0x62,0xf4,0x44,0x0d,0x81,0xf9,0x40,0xe2,0x01,0x00
-# ATT: ccmpgeq {of} $123456, %r9
-# INTEL: ccmpge {of} r9, 123456
+# ATT: ccmpgeq {dfv=of} $123456, %r9
+# INTEL: ccmpge {dfv=of} r9, 123456
0x62,0xd4,0xc4,0x0d,0x81,0xf9,0x40,0xe2,0x01,0x00
-# ATT: ccmpgeb {of} %bl, %dl
-# INTEL: ccmpge {of} dl, bl
+# ATT: ccmpgeb {dfv=of} %bl, %dl
+# INTEL: ccmpge {dfv=of} dl, bl
0x62,0xf4,0x44,0x0d,0x3a,0xd3
-# ATT: ccmpgew {of} %dx, %ax
-# INTEL: ccmpge {of} ax, dx
+# ATT: ccmpgew {dfv=of} %dx, %ax
+# INTEL: ccmpge {dfv=of} ax, dx
0x62,0xf4,0x45,0x0d,0x3b,0xc2
-# ATT: ccmpgel {of} %ecx, %edx
-# INTEL: ccmpge {of} edx, ecx
+# ATT: ccmpgel {dfv=of} %ecx, %edx
+# INTEL: ccmpge {dfv=of} edx, ecx
0x62,0xf4,0x44,0x0d,0x3b,0xd1
-# ATT: ccmpgeq {of} %r9, %r15
-# INTEL: ccmpge {of} r15, r9
+# ATT: ccmpgeq {dfv=of} %r9, %r15
+# INTEL: ccmpge {dfv=of} r15, r9
0x62,0x54,0xc4,0x0d,0x3b,0xf9
-# ATT: ccmpgb {of} $123, 123(%r8,%rax,4)
-# INTEL: ccmpg {of} byte ptr [r8 + 4*rax + 123], 123
+# ATT: ccmpgb {dfv=of} $123, 123(%r8,%rax,4)
+# INTEL: ccmpg {dfv=of} byte ptr [r8 + 4*rax + 123], 123
0x62,0xd4,0x44,0x0f,0x80,0x7c,0x80,0x7b,0x7b
-# ATT: ccmpgw {of} $123, 123(%r8,%rax,4)
-# INTEL: ccmpg {of} word ptr [r8 + 4*rax + 123], 123
+# ATT: ccmpgw {dfv=of} $123, 123(%r8,%rax,4)
+# INTEL: ccmpg {dfv=of} word ptr [r8 + 4*rax + 123], 123
0x62,0xd4,0x45,0x0f,0x83,0x7c,0x80,0x7b,0x7b
-# ATT: ccmpgw {of} $1234, 123(%r8,%rax,4)
-# INTEL: ccmpg {of} word ptr [r8 + 4*rax + 123], 1234
+# ATT: ccmpgw {dfv=of} $1234, 123(%r8,%rax,4)
+# INTEL: ccmpg {dfv=of} word ptr [r8 + 4*rax + 123], 1234
0x62,0xd4,0x45,0x0f,0x81,0x7c,0x80,0x7b,0xd2,0x04
-# ATT: ccmpgl {of} $123, 123(%r8,%rax,4)
-# INTEL: ccmpg {of} dword ptr [r8 + 4*rax + 123], 123
+# ATT: ccmpgl {dfv=of} $123, 123(%r8,%rax,4)
+# INTEL: ccmpg {dfv=of} dword ptr [r8 + 4*rax + 123], 123
0x62,0xd4,0x44,0x0f,0x83,0x7c,0x80,0x7b,0x7b
-# ATT: ccmpgl {of} $123456, 123(%r8,%rax,4)
-# INTEL: ccmpg {of} dword ptr [r8 + 4*rax + 123], 123456
+# ATT: ccmpgl {dfv=of} $123456, 123(%r8,%rax,4)
+# INTEL: ccmpg {dfv=of} dword ptr [r8 + 4*rax + 123], 123456
0x62,0xd4,0x44,0x0f,0x81,0x7c,0x80,0x7b,0x40,0xe2,0x01,0x00
-# ATT: ccmpgq {of} $123, 123(%r8,%rax,4)
-# INTEL: ccmpg {of} qword ptr [r8 + 4*rax + 123], 123
+# ATT: ccmpgq {dfv=of} $123, 123(%r8,%rax,4)
+# INTEL: ccmpg {dfv=of} qword ptr [r8 + 4*rax + 123], 123
0x62,0xd4,0xc4,0x0f,0x83,0x7c,0x80,0x7b,0x7b
-# ATT: ccmpgq {of} $123456, 123(%r8,%rax,4)
-# INTEL: ccmpg {of} qword ptr [r8 + 4*rax + 123], 123456
+# ATT: ccmpgq {dfv=of} $123456, 123(%r8,%rax,4)
+# INTEL: ccmpg {dfv=of} qword ptr [r8 + 4*rax + 123], 123456
0x62,0xd4,0xc4,0x0f,0x81,0x7c,0x80,0x7b,0x40,0xe2,0x01,0x00
-# ATT: ccmpgb {of} %bl, 123(%r8,%rax,4)
-# INTEL: ccmpg {of} byte ptr [r8 + 4*rax + 123], bl
+# ATT: ccmpgb {dfv=of} %bl, 123(%r8,%rax,4)
+# INTEL: ccmpg {dfv=of} byte ptr [r8 + 4*rax + 123], bl
0x62,0xd4,0x44,0x0f,0x38,0x5c,0x80,0x7b
-# ATT: ccmpgw {of} %dx, 123(%r8,%rax,4)
-# INTEL: ccmpg {of} word ptr [r8 + 4*rax + 123], dx
+# ATT: ccmpgw {dfv=of} %dx, 123(%r8,%rax,4)
+# INTEL: ccmpg {dfv=of} word ptr [r8 + 4*rax + 123], dx
0x62,0xd4,0x45,0x0f,0x39,0x54,0x80,0x7b
-# ATT: ccmpgl {of} %ecx, 123(%r8,%rax,4)
-# INTEL: ccmpg {of} dword ptr [r8 + 4*rax + 123], ecx
+# ATT: ccmpgl {dfv=of} %ecx, 123(%r8,%rax,4)
+# INTEL: ccmpg {dfv=of} dword ptr [r8 + 4*rax + 123], ecx
0x62,0xd4,0x44,0x0f,0x39,0x4c,0x80,0x7b
-# ATT: ccmpgq {of} %r9, 123(%r8,%rax,4)
-# INTEL: ccmpg {of} qword ptr [r8 + 4*rax + 123], r9
+# ATT: ccmpgq {dfv=of} %r9, 123(%r8,%rax,4)
+# INTEL: ccmpg {dfv=of} qword ptr [r8 + 4*rax + 123], r9
0x62,0x54,0xc4,0x0f,0x39,0x4c,0x80,0x7b
-# ATT: ccmpgb {of} 123(%r8,%rax,4), %bl
-# INTEL: ccmpg {of} bl, byte ptr [r8 + 4*rax + 123]
+# ATT: ccmpgb {dfv=of} 123(%r8,%rax,4), %bl
+# INTEL: ccmpg {dfv=of} bl, byte ptr [r8 + 4*rax + 123]
0x62,0xd4,0x44,0x0f,0x3a,0x5c,0x80,0x7b
-# ATT: ccmpgw {of} 123(%r8,%rax,4), %dx
-# INTEL: ccmpg {of} dx, word ptr [r8 + 4*rax + 123]
+# ATT: ccmpgw {dfv=of} 123(%r8,%rax,4), %dx
+# INTEL: ccmpg {dfv=of} dx, word ptr [r8 + 4*rax + 123]
0x62,0xd4,0x45,0x0f,0x3b,0x54,0x80,0x7b
-# ATT: ccmpgl {of} 123(%r8,%rax,4), %ecx
-# INTEL: ccmpg {of} ecx, dword ptr [r8 + 4*rax + 123]
+# ATT: ccmpgl {dfv=of} 123(%r8,%rax,4), %ecx
+# INTEL: ccmpg {dfv=of} ecx, dword ptr [r8 + 4*rax + 123]
0x62,0xd4,0x44,0x0f,0x3b,0x4c,0x80,0x7b
-# ATT: ccmpgq {of} 123(%r8,%rax,4), %r9
-# INTEL: ccmpg {of} r9, qword ptr [r8 + 4*rax + 123]
+# ATT: ccmpgq {dfv=of} 123(%r8,%rax,4), %r9
+# INTEL: ccmpg {dfv=of} r9, qword ptr [r8 + 4*rax + 123]
0x62,0x54,0xc4,0x0f,0x3b,0x4c,0x80,0x7b
-# ATT: ccmpgb {of} $123, %bl
-# INTEL: ccmpg {of} bl, 123
+# ATT: ccmpgb {dfv=of} $123, %bl
+# INTEL: ccmpg {dfv=of} bl, 123
0x62,0xf4,0x44,0x0f,0x80,0xfb,0x7b
-# ATT: ccmpgw {of} $123, %dx
-# INTEL: ccmpg {of} dx, 123
+# ATT: ccmpgw {dfv=of} $123, %dx
+# INTEL: ccmpg {dfv=of} dx, 123
0x62,0xf4,0x45,0x0f,0x83,0xfa,0x7b
-# ATT: ccmpgl {of} $123, %ecx
-# INTEL: ccmpg {of} ecx, 123
+# ATT: ccmpgl {dfv=of} $123, %ecx
+# INTEL: ccmpg {dfv=of} ecx, 123
0x62,0xf4,0x44,0x0f,0x83,0xf9,0x7b
-# ATT: ccmpgq {of} $123, %r9
-# INTEL: ccmpg {of} r9, 123
+# ATT: ccmpgq {dfv=of} $123, %r9
+# INTEL: ccmpg {dfv=of} r9, 123
0x62,0xd4,0xc4,0x0f,0x83,0xf9,0x7b
-# ATT: ccmpgw {of} $1234, %dx
-# INTEL: ccmpg {of} dx, 1234
+# ATT: ccmpgw {dfv=of} $1234, %dx
+# INTEL: ccmpg {dfv=of} dx, 1234
0x62,0xf4,0x45,0x0f,0x81,0xfa,0xd2,0x04
-# ATT: ccmpgl {of} $123456, %ecx
-# INTEL: ccmpg {of} ecx, 123456
+# ATT: ccmpgl {dfv=of} $123456, %ecx
+# INTEL: ccmpg {dfv=of} ecx, 123456
0x62,0xf4,0x44,0x0f,0x81,0xf9,0x40,0xe2,0x01,0x00
-# ATT: ccmpgq {of} $123456, %r9
-# INTEL: ccmpg {of} r9, 123456
+# ATT: ccmpgq {dfv=of} $123456, %r9
+# INTEL: ccmpg {dfv=of} r9, 123456
0x62,0xd4,0xc4,0x0f,0x81,0xf9,0x40,0xe2,0x01,0x00
-# ATT: ccmpgb {of} %bl, %dl
-# INTEL: ccmpg {of} dl, bl
+# ATT: ccmpgb {dfv=of} %bl, %dl
+# INTEL: ccmpg {dfv=of} dl, bl
0x62,0xf4,0x44,0x0f,0x3a,0xd3
-# ATT: ccmpgw {of} %dx, %ax
-# INTEL: ccmpg {of} ax, dx
+# ATT: ccmpgw {dfv=of} %dx, %ax
+# INTEL: ccmpg {dfv=of} ax, dx
0x62,0xf4,0x45,0x0f,0x3b,0xc2
-# ATT: ccmpgl {of} %ecx, %edx
-# INTEL: ccmpg {of} edx, ecx
+# ATT: ccmpgl {dfv=of} %ecx, %edx
+# INTEL: ccmpg {dfv=of} edx, ecx
0x62,0xf4,0x44,0x0f,0x3b,0xd1
-# ATT: ccmpgq {of} %r9, %r15
-# INTEL: ccmpg {of} r15, r9
+# ATT: ccmpgq {dfv=of} %r9, %r15
+# INTEL: ccmpg {dfv=of} r15, r9
0x62,0x54,0xc4,0x0f,0x3b,0xf9
-# ATT: ccmpnob {of} $123, 123(%r8,%rax,4)
-# INTEL: ccmpno {of} byte ptr [r8 + 4*rax + 123], 123
+# ATT: ccmpnob {dfv=of} $123, 123(%r8,%rax,4)
+# INTEL: ccmpno {dfv=of} byte ptr [r8 + 4*rax + 123], 123
0x62,0xd4,0x44,0x01,0x80,0x7c,0x80,0x7b,0x7b
-# ATT: ccmpnow {of} $123, 123(%r8,%rax,4)
-# INTEL: ccmpno {of} word ptr [r8 + 4*rax + 123], 123
+# ATT: ccmpnow {dfv=of} $123, 123(%r8,%rax,4)
+# INTEL: ccmpno {dfv=of} word ptr [r8 + 4*rax + 123], 123
0x62,0xd4,0x45,0x01,0x83,0x7c,0x80,0x7b,0x7b
-# ATT: ccmpnow {of} $1234, 123(%r8,%rax,4)
-# INTEL: ccmpno {of} word ptr [r8 + 4*rax + 123], 1234
+# ATT: ccmpnow {dfv=of} $1234, 123(%r8,%rax,4)
+# INTEL: ccmpno {dfv=of} word ptr [r8 + 4*rax + 123], 1234
0x62,0xd4,0x45,0x01,0x81,0x7c,0x80,0x7b,0xd2,0x04
-# ATT: ccmpnol {of} $123, 123(%r8,%rax,4)
-# INTEL: ccmpno {of} dword ptr [r8 + 4*rax + 123], 123
+# ATT: ccmpnol {dfv=of} $123, 123(%r8,%rax,4)
+# INTEL: ccmpno {dfv=of} dword ptr [r8 + 4*rax + 123], 123
0x62,0xd4,0x44,0x01,0x83,0x7c,0x80,0x7b,0x7b
-# ATT: ccmpnol {of} $123456, 123(%r8,%rax,4)
-# INTEL: ccmpno {of} dword ptr [r8 + 4*rax + 123], 123456
+# ATT: ccmpnol {dfv=of} $123456, 123(%r8,%rax,4)
+# INTEL: ccmpno {dfv=of} dword ptr [r8 + 4*rax + 123], 123456
0x62,0xd4,0x44,0x01,0x81,0x7c,0x80,0x7b,0x40,0xe2,0x01,0x00
-# ATT: ccmpnoq {of} $123, 123(%r8,%rax,4)
-# INTEL: ccmpno {of} qword ptr [r8 + 4*rax + 123], 123
+# ATT: ccmpnoq {dfv=of} $123, 123(%r8,%rax,4)
+# INTEL: ccmpno {dfv=of} qword ptr [r8 + 4*rax + 123], 123
0x62,0xd4,0xc4,0x01,0x83,0x7c,0x80,0x7b,0x7b
-# ATT: ccmpnoq {of} $123456, 123(%r8,%rax,4)
-# INTEL: ccmpno {of} qword ptr [r8 + 4*rax + 123], 123456
+# ATT: ccmpnoq {dfv=of} $123456, 123(%r8,%rax,4)
+# INTEL: ccmpno {dfv=of} qword ptr [r8 + 4*rax + 123], 123456
0x62,0xd4,0xc4,0x01,0x81,0x7c,0x80,0x7b,0x40,0xe2,0x01,0x00
-# ATT: ccmpnob {of} %bl, 123(%r8,%rax,4)
-# INTEL: ccmpno {of} byte ptr [r8 + 4*rax + 123], bl
+# ATT: ccmpnob {dfv=of} %bl, 123(%r8,%rax,4)
+# INTEL: ccmpno {dfv=of} byte ptr [r8 + 4*rax + 123], bl
0x62,0xd4,0x44,0x01,0x38,0x5c,0x80,0x7b
-# ATT: ccmpnow {of} %dx, 123(%r8,%rax,4)
-# INTEL: ccmpno {of} word ptr [r8 + 4*rax + 123], dx
+# ATT: ccmpnow {dfv=of} %dx, 123(%r8,%rax,4)
+# INTEL: ccmpno {dfv=of} word ptr [r8 + 4*rax + 123], dx
0x62,0xd4,0x45,0x01,0x39,0x54,0x80,0x7b
-# ATT: ccmpnol {of} %ecx, 123(%r8,%rax,4)
-# INTEL: ccmpno {of} dword ptr [r8 + 4*rax + 123], ecx
+# ATT: ccmpnol {dfv=of} %ecx, 123(%r8,%rax,4)
+# INTEL: ccmpno {dfv=of} dword ptr [r8 + 4*rax + 123], ecx
0x62,0xd4,0x44,0x01,0x39,0x4c,0x80,0x7b
-# ATT: ccmpnoq {of} %r9, 123(%r8,%rax,4)
-# INTEL: ccmpno {of} qword ptr [r8 + 4*rax + 123], r9
+# ATT: ccmpnoq {dfv=of} %r9, 123(%r8,%rax,4)
+# INTEL: ccmpno {dfv=of} qword ptr [r8 + 4*rax + 123], r9
0x62,0x54,0xc4,0x01,0x39,0x4c,0x80,0x7b
-# ATT: ccmpnob {of} 123(%r8,%rax,4), %bl
-# INTEL: ccmpno {of} bl, byte ptr [r8 + 4*rax + 123]
+# ATT: ccmpnob {dfv=of} 123(%r8,%rax,4), %bl
+# INTEL: ccmpno {dfv=of} bl, byte ptr [r8 + 4*rax + 123]
0x62,0xd4,0x44,0x01,0x3a,0x5c,0x80,0x7b
-# ATT: ccmpnow {of} 123(%r8,%rax,4), %dx
-# INTEL: ccmpno {of} dx, word ptr [r8 + 4*rax + 123]
+# ATT: ccmpnow {dfv=of} 123(%r8,%rax,4), %dx
+# INTEL: ccmpno {dfv=of} dx, word ptr [r8 + 4*rax + 123]
0x62,0xd4,0x45,0x01,0x3b,0x54,0x80,0x7b
-# ATT: ccmpnol {of} 123(%r8,%rax,4), %ecx
-# INTEL: ccmpno {of} ecx, dword ptr [r8 + 4*rax + 123]
+# ATT: ccmpnol {dfv=of} 123(%r8,%rax,4), %ecx
+# INTEL: ccmpno {dfv=of} ecx, dword ptr [r8 + 4*rax + 123]
0x62,0xd4,0x44,0x01,0x3b,0x4c,0x80,0x7b
-# ATT: ccmpnoq {of} 123(%r8,%rax,4), %r9
-# INTEL: ccmpno {of} r9, qword ptr [r8 + 4*rax + 123]
+# ATT: ccmpnoq {dfv=of} 123(%r8,%rax,4), %r9
+# INTEL: ccmpno {dfv=of} r9, qword ptr [r8 + 4*rax + 123]
0x62,0x54,0xc4,0x01,0x3b,0x4c,0x80,0x7b
-# ATT: ccmpnob {of} $123, %bl
-# INTEL: ccmpno {of} bl, 123
+# ATT: ccmpnob {dfv=of} $123, %bl
+# INTEL: ccmpno {dfv=of} bl, 123
0x62,0xf4,0x44,0x01,0x80,0xfb,0x7b
-# ATT: ccmpnow {of} $123, %dx
-# INTEL: ccmpno {of} dx, 123
+# ATT: ccmpnow {dfv=of} $123, %dx
+# INTEL: ccmpno {dfv=of} dx, 123
0x62,0xf4,0x45,0x01,0x83,0xfa,0x7b
-# ATT: ccmpnol {of} $123, %ecx
-# INTEL: ccmpno {of} ecx, 123
+# ATT: ccmpnol {dfv=of} $123, %ecx
+# INTEL: ccmpno {dfv=of} ecx, 123
0x62,0xf4,0x44,0x01,0x83,0xf9,0x7b
-# ATT: ccmpnoq {of} $123, %r9
-# INTEL: ccmpno {of} r9, 123
+# ATT: ccmpnoq {dfv=of} $123, %r9
+# INTEL: ccmpno {dfv=of} r9, 123
0x62,0xd4,0xc4,0x01,0x83,0xf9,0x7b
-# ATT: ccmpnow {of} $1234, %dx
-# INTEL: ccmpno {of} dx, 1234
+# ATT: ccmpnow {dfv=of} $1234, %dx
+# INTEL: ccmpno {dfv=of} dx, 1234
0x62,0xf4,0x45,0x01,0x81,0xfa,0xd2,0x04
-# ATT: ccmpnol {of} $123456, %ecx
-# INTEL: ccmpno {of} ecx, 123456
+# ATT: ccmpnol {dfv=of} $123456, %ecx
+# INTEL: ccmpno {dfv=of} ecx, 123456
0x62,0xf4,0x44,0x01,0x81,0xf9,0x40,0xe2,0x01,0x00
-# ATT: ccmpnoq {of} $123456, %r9
-# INTEL: ccmpno {of} r9, 123456
+# ATT: ccmpnoq {dfv=of} $123456, %r9
+# INTEL: ccmpno {dfv=of} r9, 123456
0x62,0xd4,0xc4,0x01,0x81,0xf9,0x40,0xe2,0x01,0x00
-# ATT: ccmpnob {of} %bl, %dl
-# INTEL: ccmpno {of} dl, bl
+# ATT: ccmpnob {dfv=of} %bl, %dl
+# INTEL: ccmpno {dfv=of} dl, bl
0x62,0xf4,0x44,0x01,0x3a,0xd3
-# ATT: ccmpnow {of} %dx, %ax
-# INTEL: ccmpno {of} ax, dx
+# ATT: ccmpnow {dfv=of} %dx, %ax
+# INTEL: ccmpno {dfv=of} ax, dx
0x62,0xf4,0x45,0x01,0x3b,0xc2
-# ATT: ccmpnol {of} %ecx, %edx
-# INTEL: ccmpno {of} edx, ecx
+# ATT: ccmpnol {dfv=of} %ecx, %edx
+# INTEL: ccmpno {dfv=of} edx, ecx
0x62,0xf4,0x44,0x01,0x3b,0xd1
-# ATT: ccmpnoq {of} %r9, %r15
-# INTEL: ccmpno {of} r15, r9
+# ATT: ccmpnoq {dfv=of} %r9, %r15
+# INTEL: ccmpno {dfv=of} r15, r9
0x62,0x54,0xc4,0x01,0x3b,0xf9
-# ATT: ccmpnsb {of} $123, 123(%r8,%rax,4)
-# INTEL: ccmpns {of} byte ptr [r8 + 4*rax + 123], 123
+# ATT: ccmpnsb {dfv=of} $123, 123(%r8,%rax,4)
+# INTEL: ccmpns {dfv=of} byte ptr [r8 + 4*rax + 123], 123
0x62,0xd4,0x44,0x09,0x80,0x7c,0x80,0x7b,0x7b
-# ATT: ccmpnsw {of} $123, 123(%r8,%rax,4)
-# INTEL: ccmpns {of} word ptr [r8 + 4*rax + 123], 123
+# ATT: ccmpnsw {dfv=of} $123, 123(%r8,%rax,4)
+# INTEL: ccmpns {dfv=of} word ptr [r8 + 4*rax + 123], 123
0x62,0xd4,0x45,0x09,0x83,0x7c,0x80,0x7b,0x7b
-# ATT: ccmpnsw {of} $1234, 123(%r8,%rax,4)
-# INTEL: ccmpns {of} word ptr [r8 + 4*rax + 123], 1234
+# ATT: ccmpnsw {dfv=of} $1234, 123(%r8,%rax,4)
+# INTEL: ccmpns {dfv=of} word ptr [r8 + 4*rax + 123], 1234
0x62,0xd4,0x45,0x09,0x81,0x7c,0x80,0x7b,0xd2,0x04
-# ATT: ccmpnsl {of} $123, 123(%r8,%rax,4)
-# INTEL: ccmpns {of} dword ptr [r8 + 4*rax + 123], 123
+# ATT: ccmpnsl {dfv=of} $123, 123(%r8,%rax,4)
+# INTEL: ccmpns {dfv=of} dword ptr [r8 + 4*rax + 123], 123
0x62,0xd4,0x44,0x09,0x83,0x7c,0x80,0x7b,0x7b
-# ATT: ccmpnsl {of} $123456, 123(%r8,%rax,4)
-# INTEL: ccmpns {of} dword ptr [r8 + 4*rax + 123], 123456
+# ATT: ccmpnsl {dfv=of} $123456, 123(%r8,%rax,4)
+# INTEL: ccmpns {dfv=of} dword ptr [r8 + 4*rax + 123], 123456
0x62,0xd4,0x44,0x09,0x81,0x7c,0x80,0x7b,0x40,0xe2,0x01,0x00
-# ATT: ccmpnsq {of} $123, 123(%r8,%rax,4)
-# INTEL: ccmpns {of} qword ptr [r8 + 4*rax + 123], 123
+# ATT: ccmpnsq {dfv=of} $123, 123(%r8,%rax,4)
+# INTEL: ccmpns {dfv=of} qword ptr [r8 + 4*rax + 123], 123
0x62,0xd4,0xc4,0x09,0x83,0x7c,0x80,0x7b,0x7b
-# ATT: ccmpnsq {of} $123456, 123(%r8,%rax,4)
-# INTEL: ccmpns {of} qword ptr [r8 + 4*rax + 123], 123456
+# ATT: ccmpnsq {dfv=of} $123456, 123(%r8,%rax,4)
+# INTEL: ccmpns {dfv=of} qword ptr [r8 + 4*rax + 123], 123456
0x62,0xd4,0xc4,0x09,0x81,0x7c,0x80,0x7b,0x40,0xe2,0x01,0x00
-# ATT: ccmpnsb {of} %bl, 123(%r8,%rax,4)
-# INTEL: ccmpns {of} byte ptr [r8 + 4*rax + 123], bl
+# ATT: ccmpnsb {dfv=of} %bl, 123(%r8,%rax,4)
+# INTEL: ccmpns {dfv=of} byte ptr [r8 + 4*rax + 123], bl
0x62,0xd4,0x44,0x09,0x38,0x5c,0x80,0x7b
-# ATT: ccmpnsw {of} %dx, 123(%r8,%rax,4)
-# INTEL: ccmpns {of} word ptr [r8 + 4*rax + 123], dx
+# ATT: ccmpnsw {dfv=of} %dx, 123(%r8,%rax,4)
+# INTEL: ccmpns {dfv=of} word ptr [r8 + 4*rax + 123], dx
0x62,0xd4,0x45,0x09,0x39,0x54,0x80,0x7b
-# ATT: ccmpnsl {of} %ecx, 123(%r8,%rax,4)
-# INTEL: ccmpns {of} dword ptr [r8 + 4*rax + 123], ecx
+# ATT: ccmpnsl {dfv=of} %ecx, 123(%r8,%rax,4)
+# INTEL: ccmpns {dfv=of} dword ptr [r8 + 4*rax + 123], ecx
0x62,0xd4,0x44,0x09,0x39,0x4c,0x80,0x7b
-# ATT: ccmpnsq {of} %r9, 123(%r8,%rax,4)
-# INTEL: ccmpns {of} qword ptr [r8 + 4*rax + 123], r9
+# ATT: ccmpnsq {dfv=of} %r9, 123(%r8,%rax,4)
+# INTEL: ccmpns {dfv=of} qword ptr [r8 + 4*rax + 123], r9
0x62,0x54,0xc4,0x09,0x39,0x4c,0x80,0x7b
-# ATT: ccmpnsb {of} 123(%r8,%rax,4), %bl
-# INTEL: ccmpns {of} bl, byte ptr [r8 + 4*rax + 123]
+# ATT: ccmpnsb {dfv=of} 123(%r8,%rax,4), %bl
+# INTEL: ccmpns {dfv=of} bl, byte ptr [r8 + 4*rax + 123]
0x62,0xd4,0x44,0x09,0x3a,0x5c,0x80,0x7b
-# ATT: ccmpnsw {of} 123(%r8,%rax,4), %dx
-# INTEL: ccmpns {of} dx, word ptr [r8 + 4*rax + 123]
+# ATT: ccmpnsw {dfv=of} 123(%r8,%rax,4), %dx
+# INTEL: ccmpns {dfv=of} dx, word ptr [r8 + 4*rax + 123]
0x62,0xd4,0x45,0x09,0x3b,0x54,0x80,0x7b
-# ATT: ccmpnsl {of} 123(%r8,%rax,4), %ecx
-# INTEL: ccmpns {of} ecx, dword ptr [r8 + 4*rax + 123]
+# ATT: ccmpnsl {dfv=of} 123(%r8,%rax,4), %ecx
+# INTEL: ccmpns {dfv=of} ecx, dword ptr [r8 + 4*rax + 123]
0x62,0xd4,0x44,0x09,0x3b,0x4c,0x80,0x7b
-# ATT: ccmpnsq {of} 123(%r8,%rax,4), %r9
-# INTEL: ccmpns {of} r9, qword ptr [r8 + 4*rax + 123]
+# ATT: ccmpnsq {dfv=of} 123(%r8,%rax,4), %r9
+# INTEL: ccmpns {dfv=of} r9, qword ptr [r8 + 4*rax + 123]
0x62,0x54,0xc4,0x09,0x3b,0x4c,0x80,0x7b
-# ATT: ccmpnsb {of} $123, %bl
-# INTEL: ccmpns {of} bl, 123
+# ATT: ccmpnsb {dfv=of} $123, %bl
+# INTEL: ccmpns {dfv=of} bl, 123
0x62,0xf4,0x44,0x09,0x80,0xfb,0x7b
-# ATT: ccmpnsw {of} $123, %dx
-# INTEL: ccmpns {of} dx, 123
+# ATT: ccmpnsw {dfv=of} $123, %dx
+# INTEL: ccmpns {dfv=of} dx, 123
0x62,0xf4,0x45,0x09,0x83,0xfa,0x7b
-# ATT: ccmpnsl {of} $123, %ecx
-# INTEL: ccmpns {of} ecx, 123
+# ATT: ccmpnsl {dfv=of} $123, %ecx
+# INTEL: ccmpns {dfv=of} ecx, 123
0x62,0xf4,0x44,0x09,0x83,0xf9,0x7b
-# ATT: ccmpnsq {of} $123, %r9
-# INTEL: ccmpns {of} r9, 123
+# ATT: ccmpnsq {dfv=of} $123, %r9
+# INTEL: ccmpns {dfv=of} r9, 123
0x62,0xd4,0xc4,0x09,0x83,0xf9,0x7b
-# ATT: ccmpnsw {of} $1234, %dx
-# INTEL: ccmpns {of} dx, 1234
+# ATT: ccmpnsw {dfv=of} $1234, %dx
+# INTEL: ccmpns {dfv=of} dx, 1234
0x62,0xf4,0x45,0x09,0x81,0xfa,0xd2,0x04
-# ATT: ccmpnsl {of} $123456, %ecx
-# INTEL: ccmpns {of} ecx, 123456
+# ATT: ccmpnsl {dfv=of} $123456, %ecx
+# INTEL: ccmpns {dfv=of} ecx, 123456
0x62,0xf4,0x44,0x09,0x81,0xf9,0x40,0xe2,0x01,0x00
-# ATT: ccmpnsq {of} $123456, %r9
-# INTEL: ccmpns {of} r9, 123456
+# ATT: ccmpnsq {dfv=of} $123456, %r9
+# INTEL: ccmpns {dfv=of} r9, 123456
0x62,0xd4,0xc4,0x09,0x81,0xf9,0x40,0xe2,0x01,0x00
-# ATT: ccmpnsb {of} %bl, %dl
-# INTEL: ccmpns {of} dl, bl
+# ATT: ccmpnsb {dfv=of} %bl, %dl
+# INTEL: ccmpns {dfv=of} dl, bl
0x62,0xf4,0x44,0x09,0x3a,0xd3
-# ATT: ccmpnsw {of} %dx, %ax
-# INTEL: ccmpns {of} ax, dx
+# ATT: ccmpnsw {dfv=of} %dx, %ax
+# INTEL: ccmpns {dfv=of} ax, dx
0x62,0xf4,0x45,0x09,0x3b,0xc2
-# ATT: ccmpnsl {of} %ecx, %edx
-# INTEL: ccmpns {of} edx, ecx
+# ATT: ccmpnsl {dfv=of} %ecx, %edx
+# INTEL: ccmpns {dfv=of} edx, ecx
0x62,0xf4,0x44,0x09,0x3b,0xd1
-# ATT: ccmpnsq {of} %r9, %r15
-# INTEL: ccmpns {of} r15, r9
+# ATT: ccmpnsq {dfv=of} %r9, %r15
+# INTEL: ccmpns {dfv=of} r15, r9
0x62,0x54,0xc4,0x09,0x3b,0xf9
-# ATT: ccmpneb {of} $123, 123(%r8,%rax,4)
-# INTEL: ccmpne {of} byte ptr [r8 + 4*rax + 123], 123
+# ATT: ccmpneb {dfv=of} $123, 123(%r8,%rax,4)
+# INTEL: ccmpne {dfv=of} byte ptr [r8 + 4*rax + 123], 123
0x62,0xd4,0x44,0x05,0x80,0x7c,0x80,0x7b,0x7b
-# ATT: ccmpnew {of} $123, 123(%r8,%rax,4)
-# INTEL: ccmpne {of} word ptr [r8 + 4*rax + 123], 123
+# ATT: ccmpnew {dfv=of} $123, 123(%r8,%rax,4)
+# INTEL: ccmpne {dfv=of} word ptr [r8 + 4*rax + 123], 123
0x62,0xd4,0x45,0x05,0x83,0x7c,0x80,0x7b,0x7b
-# ATT: ccmpnew {of} $1234, 123(%r8,%rax,4)
-# INTEL: ccmpne {of} word ptr [r8 + 4*rax + 123], 1234
+# ATT: ccmpnew {dfv=of} $1234, 123(%r8,%rax,4)
+# INTEL: ccmpne {dfv=of} word ptr [r8 + 4*rax + 123], 1234
0x62,0xd4,0x45,0x05,0x81,0x7c,0x80,0x7b,0xd2,0x04
-# ATT: ccmpnel {of} $123, 123(%r8,%rax,4)
-# INTEL: ccmpne {of} dword ptr [r8 + 4*rax + 123], 123
+# ATT: ccmpnel {dfv=of} $123, 123(%r8,%rax,4)
+# INTEL: ccmpne {dfv=of} dword ptr [r8 + 4*rax + 123], 123
0x62,0xd4,0x44,0x05,0x83,0x7c,0x80,0x7b,0x7b
-# ATT: ccmpnel {of} $123456, 123(%r8,%rax,4)
-# INTEL: ccmpne {of} dword ptr [r8 + 4*rax + 123], 123456
+# ATT: ccmpnel {dfv=of} $123456, 123(%r8,%rax,4)
+# INTEL: ccmpne {dfv=of} dword ptr [r8 + 4*rax + 123], 123456
0x62,0xd4,0x44,0x05,0x81,0x7c,0x80,0x7b,0x40,0xe2,0x01,0x00
-# ATT: ccmpneq {of} $123, 123(%r8,%rax,4)
-# INTEL: ccmpne {of} qword ptr [r8 + 4*rax + 123], 123
+# ATT: ccmpneq {dfv=of} $123, 123(%r8,%rax,4)
+# INTEL: ccmpne {dfv=of} qword ptr [r8 + 4*rax + 123], 123
0x62,0xd4,0xc4,0x05,0x83,0x7c,0x80,0x7b,0x7b
-# ATT: ccmpneq {of} $123456, 123(%r8,%rax,4)
-# INTEL: ccmpne {of} qword ptr [r8 + 4*rax + 123], 123456
+# ATT: ccmpneq {dfv=of} $123456, 123(%r8,%rax,4)
+# INTEL: ccmpne {dfv=of} qword ptr [r8 + 4*rax + 123], 123456
0x62,0xd4,0xc4,0x05,0x81,0x7c,0x80,0x7b,0x40,0xe2,0x01,0x00
-# ATT: ccmpneb {of} %bl, 123(%r8,%rax,4)
-# INTEL: ccmpne {of} byte ptr [r8 + 4*rax + 123], bl
+# ATT: ccmpneb {dfv=of} %bl, 123(%r8,%rax,4)
+# INTEL: ccmpne {dfv=of} byte ptr [r8 + 4*rax + 123], bl
0x62,0xd4,0x44,0x05,0x38,0x5c,0x80,0x7b
-# ATT: ccmpnew {of} %dx, 123(%r8,%rax,4)
-# INTEL: ccmpne {of} word ptr [r8 + 4*rax + 123], dx
+# ATT: ccmpnew {dfv=of} %dx, 123(%r8,%rax,4)
+# INTEL: ccmpne {dfv=of} word ptr [r8 + 4*rax + 123], dx
0x62,0xd4,0x45,0x05,0x39,0x54,0x80,0x7b
-# ATT: ccmpnel {of} %ecx, 123(%r8,%rax,4)
-# INTEL: ccmpne {of} dword ptr [r8 + 4*rax + 123], ecx
+# ATT: ccmpnel {dfv=of} %ecx, 123(%r8,%rax,4)
+# INTEL: ccmpne {dfv=of} dword ptr [r8 + 4*rax + 123], ecx
0x62,0xd4,0x44,0x05,0x39,0x4c,0x80,0x7b
-# ATT: ccmpneq {of} %r9, 123(%r8,%rax,4)
-# INTEL: ccmpne {of} qword ptr [r8 + 4*rax + 123], r9
+# ATT: ccmpneq {dfv=of} %r9, 123(%r8,%rax,4)
+# INTEL: ccmpne {dfv=of} qword ptr [r8 + 4*rax + 123], r9
0x62,0x54,0xc4,0x05,0x39,0x4c,0x80,0x7b
-# ATT: ccmpneb {of} 123(%r8,%rax,4), %bl
-# INTEL: ccmpne {of} bl, byte ptr [r8 + 4*rax + 123]
+# ATT: ccmpneb {dfv=of} 123(%r8,%rax,4), %bl
+# INTEL: ccmpne {dfv=of} bl, byte ptr [r8 + 4*rax + 123]
0x62,0xd4,0x44,0x05,0x3a,0x5c,0x80,0x7b
-# ATT: ccmpnew {of} 123(%r8,%rax,4), %dx
-# INTEL: ccmpne {of} dx, word ptr [r8 + 4*rax + 123]
+# ATT: ccmpnew {dfv=of} 123(%r8,%rax,4), %dx
+# INTEL: ccmpne {dfv=of} dx, word ptr [r8 + 4*rax + 123]
0x62,0xd4,0x45,0x05,0x3b,0x54,0x80,0x7b
-# ATT: ccmpnel {of} 123(%r8,%rax,4), %ecx
-# INTEL: ccmpne {of} ecx, dword ptr [r8 + 4*rax + 123]
+# ATT: ccmpnel {dfv=of} 123(%r8,%rax,4), %ecx
+# INTEL: ccmpne {dfv=of} ecx, dword ptr [r8 + 4*rax + 123]
0x62,0xd4,0x44,0x05,0x3b,0x4c,0x80,0x7b
-# ATT: ccmpneq {of} 123(%r8,%rax,4), %r9
-# INTEL: ccmpne {of} r9, qword ptr [r8 + 4*rax + 123]
+# ATT: ccmpneq {dfv=of} 123(%r8,%rax,4), %r9
+# INTEL: ccmpne {dfv=of} r9, qword ptr [r8 + 4*rax + 123]
0x62,0x54,0xc4,0x05,0x3b,0x4c,0x80,0x7b
-# ATT: ccmpneb {of} $123, %bl
-# INTEL: ccmpne {of} bl, 123
+# ATT: ccmpneb {dfv=of} $123, %bl
+# INTEL: ccmpne {dfv=of} bl, 123
0x62,0xf4,0x44,0x05,0x80,0xfb,0x7b
-# ATT: ccmpnew {of} $123, %dx
-# INTEL: ccmpne {of} dx, 123
+# ATT: ccmpnew {dfv=of} $123, %dx
+# INTEL: ccmpne {dfv=of} dx, 123
0x62,0xf4,0x45,0x05,0x83,0xfa,0x7b
-# ATT: ccmpnel {of} $123, %ecx
-# INTEL: ccmpne {of} ecx, 123
+# ATT: ccmpnel {dfv=of} $123, %ecx
+# INTEL: ccmpne {dfv=of} ecx, 123
0x62,0xf4,0x44,0x05,0x83,0xf9,0x7b
-# ATT: ccmpneq {of} $123, %r9
-# INTEL: ccmpne {of} r9, 123
+# ATT: ccmpneq {dfv=of} $123, %r9
+# INTEL: ccmpne {dfv=of} r9, 123
0x62,0xd4,0xc4,0x05,0x83,0xf9,0x7b
-# ATT: ccmpnew {of} $1234, %dx
-# INTEL: ccmpne {of} dx, 1234
+# ATT: ccmpnew {dfv=of} $1234, %dx
+# INTEL: ccmpne {dfv=of} dx, 1234
0x62,0xf4,0x45,0x05,0x81,0xfa,0xd2,0x04
-# ATT: ccmpnel {of} $123456, %ecx
-# INTEL: ccmpne {of} ecx, 123456
+# ATT: ccmpnel {dfv=of} $123456, %ecx
+# INTEL: ccmpne {dfv=of} ecx, 123456
0x62,0xf4,0x44,0x05,0x81,0xf9,0x40,0xe2,0x01,0x00
-# ATT: ccmpneq {of} $123456, %r9
-# INTEL: ccmpne {of} r9, 123456
+# ATT: ccmpneq {dfv=of} $123456, %r9
+# INTEL: ccmpne {dfv=of} r9, 123456
0x62,0xd4,0xc4,0x05,0x81,0xf9,0x40,0xe2,0x01,0x00
-# ATT: ccmpneb {of} %bl, %dl
-# INTEL: ccmpne {of} dl, bl
+# ATT: ccmpneb {dfv=of} %bl, %dl
+# INTEL: ccmpne {dfv=of} dl, bl
0x62,0xf4,0x44,0x05,0x3a,0xd3
-# ATT: ccmpnew {of} %dx, %ax
-# INTEL: ccmpne {of} ax, dx
+# ATT: ccmpnew {dfv=of} %dx, %ax
+# INTEL: ccmpne {dfv=of} ax, dx
0x62,0xf4,0x45,0x05,0x3b,0xc2
-# ATT: ccmpnel {of} %ecx, %edx
-# INTEL: ccmpne {of} edx, ecx
+# ATT: ccmpnel {dfv=of} %ecx, %edx
+# INTEL: ccmpne {dfv=of} edx, ecx
0x62,0xf4,0x44,0x05,0x3b,0xd1
-# ATT: ccmpneq {of} %r9, %r15
-# INTEL: ccmpne {of} r15, r9
+# ATT: ccmpneq {dfv=of} %r9, %r15
+# INTEL: ccmpne {dfv=of} r15, r9
0x62,0x54,0xc4,0x05,0x3b,0xf9
-# ATT: ccmpob {of} $123, 123(%r8,%rax,4)
-# INTEL: ccmpo {of} byte ptr [r8 + 4*rax + 123], 123
+# ATT: ccmpob {dfv=of} $123, 123(%r8,%rax,4)
+# INTEL: ccmpo {dfv=of} byte ptr [r8 + 4*rax + 123], 123
0x62,0xd4,0x44,0x00,0x80,0x7c,0x80,0x7b,0x7b
-# ATT: ccmpow {of} $123, 123(%r8,%rax,4)
-# INTEL: ccmpo {of} word ptr [r8 + 4*rax + 123], 123
+# ATT: ccmpow {dfv=of} $123, 123(%r8,%rax,4)
+# INTEL: ccmpo {dfv=of} word ptr [r8 + 4*rax + 123], 123
0x62,0xd4,0x45,0x00,0x83,0x7c,0x80,0x7b,0x7b
-# ATT: ccmpow {of} $1234, 123(%r8,%rax,4)
-# INTEL: ccmpo {of} word ptr [r8 + 4*rax + 123], 1234
+# ATT: ccmpow {dfv=of} $1234, 123(%r8,%rax,4)
+# INTEL: ccmpo {dfv=of} word ptr [r8 + 4*rax + 123], 1234
0x62,0xd4,0x45,0x00,0x81,0x7c,0x80,0x7b,0xd2,0x04
-# ATT: ccmpol {of} $123, 123(%r8,%rax,4)
-# INTEL: ccmpo {of} dword ptr [r8 + 4*rax + 123], 123
+# ATT: ccmpol {dfv=of} $123, 123(%r8,%rax,4)
+# INTEL: ccmpo {dfv=of} dword ptr [r8 + 4*rax + 123], 123
0x62,0xd4,0x44,0x00,0x83,0x7c,0x80,0x7b,0x7b
-# ATT: ccmpol {of} $123456, 123(%r8,%rax,4)
-# INTEL: ccmpo {of} dword ptr [r8 + 4*rax + 123], 123456
+# ATT: ccmpol {dfv=of} $123456, 123(%r8,%rax,4)
+# INTEL: ccmpo {dfv=of} dword ptr [r8 + 4*rax + 123], 123456
0x62,0xd4,0x44,0x00,0x81,0x7c,0x80,0x7b,0x40,0xe2,0x01,0x00
-# ATT: ccmpoq {of} $123, 123(%r8,%rax,4)
-# INTEL: ccmpo {of} qword ptr [r8 + 4*rax + 123], 123
+# ATT: ccmpoq {dfv=of} $123, 123(%r8,%rax,4)
+# INTEL: ccmpo {dfv=of} qword ptr [r8 + 4*rax + 123], 123
0x62,0xd4,0xc4,0x00,0x83,0x7c,0x80,0x7b,0x7b
-# ATT: ccmpoq {of} $123456, 123(%r8,%rax,4)
-# INTEL: ccmpo {of} qword ptr [r8 + 4*rax + 123], 123456
+# ATT: ccmpoq {dfv=of} $123456, 123(%r8,%rax,4)
+# INTEL: ccmpo {dfv=of} qword ptr [r8 + 4*rax + 123], 123456
0x62,0xd4,0xc4,0x00,0x81,0x7c,0x80,0x7b,0x40,0xe2,0x01,0x00
-# ATT: ccmpob {of} %bl, 123(%r8,%rax,4)
-# INTEL: ccmpo {of} byte ptr [r8 + 4*rax + 123], bl
+# ATT: ccmpob {dfv=of} %bl, 123(%r8,%rax,4)
+# INTEL: ccmpo {dfv=of} byte ptr [r8 + 4*rax + 123], bl
0x62,0xd4,0x44,0x00,0x38,0x5c,0x80,0x7b
-# ATT: ccmpow {of} %dx, 123(%r8,%rax,4)
-# INTEL: ccmpo {of} word ptr [r8 + 4*rax + 123], dx
+# ATT: ccmpow {dfv=of} %dx, 123(%r8,%rax,4)
+# INTEL: ccmpo {dfv=of} word ptr [r8 + 4*rax + 123], dx
0x62,0xd4,0x45,0x00,0x39,0x54,0x80,0x7b
-# ATT: ccmpol {of} %ecx, 123(%r8,%rax,4)
-# INTEL: ccmpo {of} dword ptr [r8 + 4*rax + 123], ecx
+# ATT: ccmpol {dfv=of} %ecx, 123(%r8,%rax,4)
+# INTEL: ccmpo {dfv=of} dword ptr [r8 + 4*rax + 123], ecx
0x62,0xd4,0x44,0x00,0x39,0x4c,0x80,0x7b
-# ATT: ccmpoq {of} %r9, 123(%r8,%rax,4)
-# INTEL: ccmpo {of} qword ptr [r8 + 4*rax + 123], r9
+# ATT: ccmpoq {dfv=of} %r9, 123(%r8,%rax,4)
+# INTEL: ccmpo {dfv=of} qword ptr [r8 + 4*rax + 123], r9
0x62,0x54,0xc4,0x00,0x39,0x4c,0x80,0x7b
-# ATT: ccmpob {of} 123(%r8,%rax,4), %bl
-# INTEL: ccmpo {of} bl, byte ptr [r8 + 4*rax + 123]
+# ATT: ccmpob {dfv=of} 123(%r8,%rax,4), %bl
+# INTEL: ccmpo {dfv=of} bl, byte ptr [r8 + 4*rax + 123]
0x62,0xd4,0x44,0x00,0x3a,0x5c,0x80,0x7b
-# ATT: ccmpow {of} 123(%r8,%rax,4), %dx
-# INTEL: ccmpo {of} dx, word ptr [r8 + 4*rax + 123]
+# ATT: ccmpow {dfv=of} 123(%r8,%rax,4), %dx
+# INTEL: ccmpo {dfv=of} dx, word ptr [r8 + 4*rax + 123]
0x62,0xd4,0x45,0x00,0x3b,0x54,0x80,0x7b
-# ATT: ccmpol {of} 123(%r8,%rax,4), %ecx
-# INTEL: ccmpo {of} ecx, dword ptr [r8 + 4*rax + 123]
+# ATT: ccmpol {dfv=of} 123(%r8,%rax,4), %ecx
+# INTEL: ccmpo {dfv=of} ecx, dword ptr [r8 + 4*rax + 123]
0x62,0xd4,0x44,0x00,0x3b,0x4c,0x80,0x7b
-# ATT: ccmpoq {of} 123(%r8,%rax,4), %r9
-# INTEL: ccmpo {of} r9, qword ptr [r8 + 4*rax + 123]
+# ATT: ccmpoq {dfv=of} 123(%r8,%rax,4), %r9
+# INTEL: ccmpo {dfv=of} r9, qword ptr [r8 + 4*rax + 123]
0x62,0x54,0xc4,0x00,0x3b,0x4c,0x80,0x7b
-# ATT: ccmpob {of} $123, %bl
-# INTEL: ccmpo {of} bl, 123
+# ATT: ccmpob {dfv=of} $123, %bl
+# INTEL: ccmpo {dfv=of} bl, 123
0x62,0xf4,0x44,0x00,0x80,0xfb,0x7b
-# ATT: ccmpow {of} $123, %dx
-# INTEL: ccmpo {of} dx, 123
+# ATT: ccmpow {dfv=of} $123, %dx
+# INTEL: ccmpo {dfv=of} dx, 123
0x62,0xf4,0x45,0x00,0x83,0xfa,0x7b
-# ATT: ccmpol {of} $123, %ecx
-# INTEL: ccmpo {of} ecx, 123
+# ATT: ccmpol {dfv=of} $123, %ecx
+# INTEL: ccmpo {dfv=of} ecx, 123
0x62,0xf4,0x44,0x00,0x83,0xf9,0x7b
-# ATT: ccmpoq {of} $123, %r9
-# INTEL: ccmpo {of} r9, 123
+# ATT: ccmpoq {dfv=of} $123, %r9
+# INTEL: ccmpo {dfv=of} r9, 123
0x62,0xd4,0xc4,0x00,0x83,0xf9,0x7b
-# ATT: ccmpow {of} $1234, %dx
-# INTEL: ccmpo {of} dx, 1234
+# ATT: ccmpow {dfv=of} $1234, %dx
+# INTEL: ccmpo {dfv=of} dx, 1234
0x62,0xf4,0x45,0x00,0x81,0xfa,0xd2,0x04
-# ATT: ccmpol {of} $123456, %ecx
-# INTEL: ccmpo {of} ecx, 123456
+# ATT: ccmpol {dfv=of} $123456, %ecx
+# INTEL: ccmpo {dfv=of} ecx, 123456
0x62,0xf4,0x44,0x00,0x81,0xf9,0x40,0xe2,0x01,0x00
-# ATT: ccmpoq {of} $123456, %r9
-# INTEL: ccmpo {of} r9, 123456
+# ATT: ccmpoq {dfv=of} $123456, %r9
+# INTEL: ccmpo {dfv=of} r9, 123456
0x62,0xd4,0xc4,0x00,0x81,0xf9,0x40,0xe2,0x01,0x00
-# ATT: ccmpob {of} %bl, %dl
-# INTEL: ccmpo {of} dl, bl
+# ATT: ccmpob {dfv=of} %bl, %dl
+# INTEL: ccmpo {dfv=of} dl, bl
0x62,0xf4,0x44,0x00,0x3a,0xd3
-# ATT: ccmpow {of} %dx, %ax
-# INTEL: ccmpo {of} ax, dx
+# ATT: ccmpow {dfv=of} %dx, %ax
+# INTEL: ccmpo {dfv=of} ax, dx
0x62,0xf4,0x45,0x00,0x3b,0xc2
-# ATT: ccmpol {of} %ecx, %edx
-# INTEL: ccmpo {of} edx, ecx
+# ATT: ccmpol {dfv=of} %ecx, %edx
+# INTEL: ccmpo {dfv=of} edx, ecx
0x62,0xf4,0x44,0x00,0x3b,0xd1
-# ATT: ccmpoq {of} %r9, %r15
-# INTEL: ccmpo {of} r15, r9
+# ATT: ccmpoq {dfv=of} %r9, %r15
+# INTEL: ccmpo {dfv=of} r15, r9
0x62,0x54,0xc4,0x00,0x3b,0xf9
-# ATT: ccmpsb {of} $123, 123(%r8,%rax,4)
-# INTEL: ccmps {of} byte ptr [r8 + 4*rax + 123], 123
+# ATT: ccmpsb {dfv=of} $123, 123(%r8,%rax,4)
+# INTEL: ccmps {dfv=of} byte ptr [r8 + 4*rax + 123], 123
0x62,0xd4,0x44,0x08,0x80,0x7c,0x80,0x7b,0x7b
-# ATT: ccmpsw {of} $123, 123(%r8,%rax,4)
-# INTEL: ccmps {of} word ptr [r8 + 4*rax + 123], 123
+# ATT: ccmpsw {dfv=of} $123, 123(%r8,%rax,4)
+# INTEL: ccmps {dfv=of} word ptr [r8 + 4*rax + 123], 123
0x62,0xd4,0x45,0x08,0x83,0x7c,0x80,0x7b,0x7b
-# ATT: ccmpsw {of} $1234, 123(%r8,%rax,4)
-# INTEL: ccmps {of} word ptr [r8 + 4*rax + 123], 1234
+# ATT: ccmpsw {dfv=of} $1234, 123(%r8,%rax,4)
+# INTEL: ccmps {dfv=of} word ptr [r8 + 4*rax + 123], 1234
0x62,0xd4,0x45,0x08,0x81,0x7c,0x80,0x7b,0xd2,0x04
-# ATT: ccmpsl {of} $123, 123(%r8,%rax,4)
-# INTEL: ccmps {of} dword ptr [r8 + 4*rax + 123], 123
+# ATT: ccmpsl {dfv=of} $123, 123(%r8,%rax,4)
+# INTEL: ccmps {dfv=of} dword ptr [r8 + 4*rax + 123], 123
0x62,0xd4,0x44,0x08,0x83,0x7c,0x80,0x7b,0x7b
-# ATT: ccmpsl {of} $123456, 123(%r8,%rax,4)
-# INTEL: ccmps {of} dword ptr [r8 + 4*rax + 123], 123456
+# ATT: ccmpsl {dfv=of} $123456, 123(%r8,%rax,4)
+# INTEL: ccmps {dfv=of} dword ptr [r8 + 4*rax + 123], 123456
0x62,0xd4,0x44,0x08,0x81,0x7c,0x80,0x7b,0x40,0xe2,0x01,0x00
-# ATT: ccmpsq {of} $123, 123(%r8,%rax,4)
-# INTEL: ccmps {of} qword ptr [r8 + 4*rax + 123], 123
+# ATT: ccmpsq {dfv=of} $123, 123(%r8,%rax,4)
+# INTEL: ccmps {dfv=of} qword ptr [r8 + 4*rax + 123], 123
0x62,0xd4,0xc4,0x08,0x83,0x7c,0x80,0x7b,0x7b
-# ATT: ccmpsq {of} $123456, 123(%r8,%rax,4)
-# INTEL: ccmps {of} qword ptr [r8 + 4*rax + 123], 123456
+# ATT: ccmpsq {dfv=of} $123456, 123(%r8,%rax,4)
+# INTEL: ccmps {dfv=of} qword ptr [r8 + 4*rax + 123], 123456
0x62,0xd4,0xc4,0x08,0x81,0x7c,0x80,0x7b,0x40,0xe2,0x01,0x00
-# ATT: ccmpsb {of} %bl, 123(%r8,%rax,4)
-# INTEL: ccmps {of} byte ptr [r8 + 4*rax + 123], bl
+# ATT: ccmpsb {dfv=of} %bl, 123(%r8,%rax,4)
+# INTEL: ccmps {dfv=of} byte ptr [r8 + 4*rax + 123], bl
0x62,0xd4,0x44,0x08,0x38,0x5c,0x80,0x7b
-# ATT: ccmpsw {of} %dx, 123(%r8,%rax,4)
-# INTEL: ccmps {of} word ptr [r8 + 4*rax + 123], dx
+# ATT: ccmpsw {dfv=of} %dx, 123(%r8,%rax,4)
+# INTEL: ccmps {dfv=of} word ptr [r8 + 4*rax + 123], dx
0x62,0xd4,0x45,0x08,0x39,0x54,0x80,0x7b
-# ATT: ccmpsl {of} %ecx, 123(%r8,%rax,4)
-# INTEL: ccmps {of} dword ptr [r8 + 4*rax + 123], ecx
+# ATT: ccmpsl {dfv=of} %ecx, 123(%r8,%rax,4)
+# INTEL: ccmps {dfv=of} dword ptr [r8 + 4*rax + 123], ecx
0x62,0xd4,0x44,0x08,0x39,0x4c,0x80,0x7b
-# ATT: ccmpsq {of} %r9, 123(%r8,%rax,4)
-# INTEL: ccmps {of} qword ptr [r8 + 4*rax + 123], r9
+# ATT: ccmpsq {dfv=of} %r9, 123(%r8,%rax,4)
+# INTEL: ccmps {dfv=of} qword ptr [r8 + 4*rax + 123], r9
0x62,0x54,0xc4,0x08,0x39,0x4c,0x80,0x7b
-# ATT: ccmpsb {of} 123(%r8,%rax,4), %bl
-# INTEL: ccmps {of} bl, byte ptr [r8 + 4*rax + 123]
+# ATT: ccmpsb {dfv=of} 123(%r8,%rax,4), %bl
+# INTEL: ccmps {dfv=of} bl, byte ptr [r8 + 4*rax + 123]
0x62,0xd4,0x44,0x08,0x3a,0x5c,0x80,0x7b
-# ATT: ccmpsw {of} 123(%r8,%rax,4), %dx
-# INTEL: ccmps {of} dx, word ptr [r8 + 4*rax + 123]
+# ATT: ccmpsw {dfv=of} 123(%r8,%rax,4), %dx
+# INTEL: ccmps {dfv=of} dx, word ptr [r8 + 4*rax + 123]
0x62,0xd4,0x45,0x08,0x3b,0x54,0x80,0x7b
-# ATT: ccmpsl {of} 123(%r8,%rax,4), %ecx
-# INTEL: ccmps {of} ecx, dword ptr [r8 + 4*rax + 123]
+# ATT: ccmpsl {dfv=of} 123(%r8,%rax,4), %ecx
+# INTEL: ccmps {dfv=of} ecx, dword ptr [r8 + 4*rax + 123]
0x62,0xd4,0x44,0x08,0x3b,0x4c,0x80,0x7b
-# ATT: ccmpsq {of} 123(%r8,%rax,4), %r9
-# INTEL: ccmps {of} r9, qword ptr [r8 + 4*rax + 123]
+# ATT: ccmpsq {dfv=of} 123(%r8,%rax,4), %r9
+# INTEL: ccmps {dfv=of} r9, qword ptr [r8 + 4*rax + 123]
0x62,0x54,0xc4,0x08,0x3b,0x4c,0x80,0x7b
-# ATT: ccmpsb {of} $123, %bl
-# INTEL: ccmps {of} bl, 123
+# ATT: ccmpsb {dfv=of} $123, %bl
+# INTEL: ccmps {dfv=of} bl, 123
0x62,0xf4,0x44,0x08,0x80,0xfb,0x7b
-# ATT: ccmpsw {of} $123, %dx
-# INTEL: ccmps {of} dx, 123
+# ATT: ccmpsw {dfv=of} $123, %dx
+# INTEL: ccmps {dfv=of} dx, 123
0x62,0xf4,0x45,0x08,0x83,0xfa,0x7b
-# ATT: ccmpsl {of} $123, %ecx
-# INTEL: ccmps {of} ecx, 123
+# ATT: ccmpsl {dfv=of} $123, %ecx
+# INTEL: ccmps {dfv=of} ecx, 123
0x62,0xf4,0x44,0x08,0x83,0xf9,0x7b
-# ATT: ccmpsq {of} $123, %r9
-# INTEL: ccmps {of} r9, 123
+# ATT: ccmpsq {dfv=of} $123, %r9
+# INTEL: ccmps {dfv=of} r9, 123
0x62,0xd4,0xc4,0x08,0x83,0xf9,0x7b
-# ATT: ccmpsw {of} $1234, %dx
-# INTEL: ccmps {of} dx, 1234
+# ATT: ccmpsw {dfv=of} $1234, %dx
+# INTEL: ccmps {dfv=of} dx, 1234
0x62,0xf4,0x45,0x08,0x81,0xfa,0xd2,0x04
-# ATT: ccmpsl {of} $123456, %ecx
-# INTEL: ccmps {of} ecx, 123456
+# ATT: ccmpsl {dfv=of} $123456, %ecx
+# INTEL: ccmps {dfv=of} ecx, 123456
0x62,0xf4,0x44,0x08,0x81,0xf9,0x40,0xe2,0x01,0x00
-# ATT: ccmpsq {of} $123456, %r9
-# INTEL: ccmps {of} r9, 123456
+# ATT: ccmpsq {dfv=of} $123456, %r9
+# INTEL: ccmps {dfv=of} r9, 123456
0x62,0xd4,0xc4,0x08,0x81,0xf9,0x40,0xe2,0x01,0x00
-# ATT: ccmpsb {of} %bl, %dl
-# INTEL: ccmps {of} dl, bl
+# ATT: ccmpsb {dfv=of} %bl, %dl
+# INTEL: ccmps {dfv=of} dl, bl
0x62,0xf4,0x44,0x08,0x3a,0xd3
-# ATT: ccmpsw {of} %dx, %ax
-# INTEL: ccmps {of} ax, dx
+# ATT: ccmpsw {dfv=of} %dx, %ax
+# INTEL: ccmps {dfv=of} ax, dx
0x62,0xf4,0x45,0x08,0x3b,0xc2
-# ATT: ccmpsl {of} %ecx, %edx
-# INTEL: ccmps {of} edx, ecx
+# ATT: ccmpsl {dfv=of} %ecx, %edx
+# INTEL: ccmps {dfv=of} edx, ecx
0x62,0xf4,0x44,0x08,0x3b,0xd1
-# ATT: ccmpsq {of} %r9, %r15
-# INTEL: ccmps {of} r15, r9
+# ATT: ccmpsq {dfv=of} %r9, %r15
+# INTEL: ccmps {dfv=of} r15, r9
0x62,0x54,0xc4,0x08,0x3b,0xf9
-# ATT: ccmptb {of} $123, 123(%r8,%rax,4)
-# INTEL: ccmpt {of} byte ptr [r8 + 4*rax + 123], 123
+# ATT: ccmptb {dfv=of} $123, 123(%r8,%rax,4)
+# INTEL: ccmpt {dfv=of} byte ptr [r8 + 4*rax + 123], 123
0x62,0xd4,0x44,0x0a,0x80,0x7c,0x80,0x7b,0x7b
-# ATT: ccmptw {of} $123, 123(%r8,%rax,4)
-# INTEL: ccmpt {of} word ptr [r8 + 4*rax + 123], 123
+# ATT: ccmptw {dfv=of} $123, 123(%r8,%rax,4)
+# INTEL: ccmpt {dfv=of} word ptr [r8 + 4*rax + 123], 123
0x62,0xd4,0x45,0x0a,0x83,0x7c,0x80,0x7b,0x7b
-# ATT: ccmptw {of} $1234, 123(%r8,%rax,4)
-# INTEL: ccmpt {of} word ptr [r8 + 4*rax + 123], 1234
+# ATT: ccmptw {dfv=of} $1234, 123(%r8,%rax,4)
+# INTEL: ccmpt {dfv=of} word ptr [r8 + 4*rax + 123], 1234
0x62,0xd4,0x45,0x0a,0x81,0x7c,0x80,0x7b,0xd2,0x04
-# ATT: ccmptl {of} $123, 123(%r8,%rax,4)
-# INTEL: ccmpt {of} dword ptr [r8 + 4*rax + 123], 123
+# ATT: ccmptl {dfv=of} $123, 123(%r8,%rax,4)
+# INTEL: ccmpt {dfv=of} dword ptr [r8 + 4*rax + 123], 123
0x62,0xd4,0x44,0x0a,0x83,0x7c,0x80,0x7b,0x7b
-# ATT: ccmptl {of} $123456, 123(%r8,%rax,4)
-# INTEL: ccmpt {of} dword ptr [r8 + 4*rax + 123], 123456
+# ATT: ccmptl {dfv=of} $123456, 123(%r8,%rax,4)
+# INTEL: ccmpt {dfv=of} dword ptr [r8 + 4*rax + 123], 123456
0x62,0xd4,0x44,0x0a,0x81,0x7c,0x80,0x7b,0x40,0xe2,0x01,0x00
-# ATT: ccmptq {of} $123, 123(%r8,%rax,4)
-# INTEL: ccmpt {of} qword ptr [r8 + 4*rax + 123], 123
+# ATT: ccmptq {dfv=of} $123, 123(%r8,%rax,4)
+# INTEL: ccmpt {dfv=of} qword ptr [r8 + 4*rax + 123], 123
0x62,0xd4,0xc4,0x0a,0x83,0x7c,0x80,0x7b,0x7b
-# ATT: ccmptq {of} $123456, 123(%r8,%rax,4)
-# INTEL: ccmpt {of} qword ptr [r8 + 4*rax + 123], 123456
+# ATT: ccmptq {dfv=of} $123456, 123(%r8,%rax,4)
+# INTEL: ccmpt {dfv=of} qword ptr [r8 + 4*rax + 123], 123456
0x62,0xd4,0xc4,0x0a,0x81,0x7c,0x80,0x7b,0x40,0xe2,0x01,0x00
-# ATT: ccmptb {of} %bl, 123(%r8,%rax,4)
-# INTEL: ccmpt {of} byte ptr [r8 + 4*rax + 123], bl
+# ATT: ccmptb {dfv=of} %bl, 123(%r8,%rax,4)
+# INTEL: ccmpt {dfv=of} byte ptr [r8 + 4*rax + 123], bl
0x62,0xd4,0x44,0x0a,0x38,0x5c,0x80,0x7b
-# ATT: ccmptw {of} %dx, 123(%r8,%rax,4)
-# INTEL: ccmpt {of} word ptr [r8 + 4*rax + 123], dx
+# ATT: ccmptw {dfv=of} %dx, 123(%r8,%rax,4)
+# INTEL: ccmpt {dfv=of} word ptr [r8 + 4*rax + 123], dx
0x62,0xd4,0x45,0x0a,0x39,0x54,0x80,0x7b
-# ATT: ccmptl {of} %ecx, 123(%r8,%rax,4)
-# INTEL: ccmpt {of} dword ptr [r8 + 4*rax + 123], ecx
+# ATT: ccmptl {dfv=of} %ecx, 123(%r8,%rax,4)
+# INTEL: ccmpt {dfv=of} dword ptr [r8 + 4*rax + 123], ecx
0x62,0xd4,0x44,0x0a,0x39,0x4c,0x80,0x7b
-# ATT: ccmptq {of} %r9, 123(%r8,%rax,4)
-# INTEL: ccmpt {of} qword ptr [r8 + 4*rax + 123], r9
+# ATT: ccmptq {dfv=of} %r9, 123(%r8,%rax,4)
+# INTEL: ccmpt {dfv=of} qword ptr [r8 + 4*rax + 123], r9
0x62,0x54,0xc4,0x0a,0x39,0x4c,0x80,0x7b
-# ATT: ccmptb {of} 123(%r8,%rax,4), %bl
-# INTEL: ccmpt {of} bl, byte ptr [r8 + 4*rax + 123]
+# ATT: ccmptb {dfv=of} 123(%r8,%rax,4), %bl
+# INTEL: ccmpt {dfv=of} bl, byte ptr [r8 + 4*rax + 123]
0x62,0xd4,0x44,0x0a,0x3a,0x5c,0x80,0x7b
-# ATT: ccmptw {of} 123(%r8,%rax,4), %dx
-# INTEL: ccmpt {of} dx, word ptr [r8 + 4*rax + 123]
+# ATT: ccmptw {dfv=of} 123(%r8,%rax,4), %dx
+# INTEL: ccmpt {dfv=of} dx, word ptr [r8 + 4*rax + 123]
0x62,0xd4,0x45,0x0a,0x3b,0x54,0x80,0x7b
-# ATT: ccmptl {of} 123(%r8,%rax,4), %ecx
-# INTEL: ccmpt {of} ecx, dword ptr [r8 + 4*rax + 123]
+# ATT: ccmptl {dfv=of} 123(%r8,%rax,4), %ecx
+# INTEL: ccmpt {dfv=of} ecx, dword ptr [r8 + 4*rax + 123]
0x62,0xd4,0x44,0x0a,0x3b,0x4c,0x80,0x7b
-# ATT: ccmptq {of} 123(%r8,%rax,4), %r9
-# INTEL: ccmpt {of} r9, qword ptr [r8 + 4*rax + 123]
+# ATT: ccmptq {dfv=of} 123(%r8,%rax,4), %r9
+# INTEL: ccmpt {dfv=of} r9, qword ptr [r8 + 4*rax + 123]
0x62,0x54,0xc4,0x0a,0x3b,0x4c,0x80,0x7b
-# ATT: ccmptb {of} $123, %bl
-# INTEL: ccmpt {of} bl, 123
+# ATT: ccmptb {dfv=of} $123, %bl
+# INTEL: ccmpt {dfv=of} bl, 123
0x62,0xf4,0x44,0x0a,0x80,0xfb,0x7b
-# ATT: ccmptw {of} $123, %dx
-# INTEL: ccmpt {of} dx, 123
+# ATT: ccmptw {dfv=of} $123, %dx
+# INTEL: ccmpt {dfv=of} dx, 123
0x62,0xf4,0x45,0x0a,0x83,0xfa,0x7b
-# ATT: ccmptl {of} $123, %ecx
-# INTEL: ccmpt {of} ecx, 123
+# ATT: ccmptl {dfv=of} $123, %ecx
+# INTEL: ccmpt {dfv=of} ecx, 123
0x62,0xf4,0x44,0x0a,0x83,0xf9,0x7b
-# ATT: ccmptq {of} $123, %r9
-# INTEL: ccmpt {of} r9, 123
+# ATT: ccmptq {dfv=of} $123, %r9
+# INTEL: ccmpt {dfv=of} r9, 123
0x62,0xd4,0xc4,0x0a,0x83,0xf9,0x7b
-# ATT: ccmptw {of} $1234, %dx
-# INTEL: ccmpt {of} dx, 1234
+# ATT: ccmptw {dfv=of} $1234, %dx
+# INTEL: ccmpt {dfv=of} dx, 1234
0x62,0xf4,0x45,0x0a,0x81,0xfa,0xd2,0x04
-# ATT: ccmptl {of} $123456, %ecx
-# INTEL: ccmpt {of} ecx, 123456
+# ATT: ccmptl {dfv=of} $123456, %ecx
+# INTEL: ccmpt {dfv=of} ecx, 123456
0x62,0xf4,0x44,0x0a,0x81,0xf9,0x40,0xe2,0x01,0x00
-# ATT: ccmptq {of} $123456, %r9
-# INTEL: ccmpt {of} r9, 123456
+# ATT: ccmptq {dfv=of} $123456, %r9
+# INTEL: ccmpt {dfv=of} r9, 123456
0x62,0xd4,0xc4,0x0a,0x81,0xf9,0x40,0xe2,0x01,0x00
-# ATT: ccmptb {of} %bl, %dl
-# INTEL: ccmpt {of} dl, bl
+# ATT: ccmptb {dfv=of} %bl, %dl
+# INTEL: ccmpt {dfv=of} dl, bl
0x62,0xf4,0x44,0x0a,0x3a,0xd3
-# ATT: ccmptw {of} %dx, %ax
-# INTEL: ccmpt {of} ax, dx
+# ATT: ccmptw {dfv=of} %dx, %ax
+# INTEL: ccmpt {dfv=of} ax, dx
0x62,0xf4,0x45,0x0a,0x3b,0xc2
-# ATT: ccmptl {of} %ecx, %edx
-# INTEL: ccmpt {of} edx, ecx
+# ATT: ccmptl {dfv=of} %ecx, %edx
+# INTEL: ccmpt {dfv=of} edx, ecx
0x62,0xf4,0x44,0x0a,0x3b,0xd1
-# ATT: ccmptq {of} %r9, %r15
-# INTEL: ccmpt {of} r15, r9
+# ATT: ccmptq {dfv=of} %r9, %r15
+# INTEL: ccmpt {dfv=of} r15, r9
0x62,0x54,0xc4,0x0a,0x3b,0xf9
-# ATT: ccmpeb {of} $123, 123(%r8,%rax,4)
-# INTEL: ccmpe {of} byte ptr [r8 + 4*rax + 123], 123
+# ATT: ccmpeb {dfv=of} $123, 123(%r8,%rax,4)
+# INTEL: ccmpe {dfv=of} byte ptr [r8 + 4*rax + 123], 123
0x62,0xd4,0x44,0x04,0x80,0x7c,0x80,0x7b,0x7b
-# ATT: ccmpew {of} $123, 123(%r8,%rax,4)
-# INTEL: ccmpe {of} word ptr [r8 + 4*rax + 123], 123
+# ATT: ccmpew {dfv=of} $123, 123(%r8,%rax,4)
+# INTEL: ccmpe {dfv=of} word ptr [r8 + 4*rax + 123], 123
0x62,0xd4,0x45,0x04,0x83,0x7c,0x80,0x7b,0x7b
-# ATT: ccmpew {of} $1234, 123(%r8,%rax,4)
-# INTEL: ccmpe {of} word ptr [r8 + 4*rax + 123], 1234
+# ATT: ccmpew {dfv=of} $1234, 123(%r8,%rax,4)
+# INTEL: ccmpe {dfv=of} word ptr [r8 + 4*rax + 123], 1234
0x62,0xd4,0x45,0x04,0x81,0x7c,0x80,0x7b,0xd2,0x04
-# ATT: ccmpel {of} $123, 123(%r8,%rax,4)
-# INTEL: ccmpe {of} dword ptr [r8 + 4*rax + 123], 123
+# ATT: ccmpel {dfv=of} $123, 123(%r8,%rax,4)
+# INTEL: ccmpe {dfv=of} dword ptr [r8 + 4*rax + 123], 123
0x62,0xd4,0x44,0x04,0x83,0x7c,0x80,0x7b,0x7b
-# ATT: ccmpel {of} $123456, 123(%r8,%rax,4)
-# INTEL: ccmpe {of} dword ptr [r8 + 4*rax + 123], 123456
+# ATT: ccmpel {dfv=of} $123456, 123(%r8,%rax,4)
+# INTEL: ccmpe {dfv=of} dword ptr [r8 + 4*rax + 123], 123456
0x62,0xd4,0x44,0x04,0x81,0x7c,0x80,0x7b,0x40,0xe2,0x01,0x00
-# ATT: ccmpeq {of} $123, 123(%r8,%rax,4)
-# INTEL: ccmpe {of} qword ptr [r8 + 4*rax + 123], 123
+# ATT: ccmpeq {dfv=of} $123, 123(%r8,%rax,4)
+# INTEL: ccmpe {dfv=of} qword ptr [r8 + 4*rax + 123], 123
0x62,0xd4,0xc4,0x04,0x83,0x7c,0x80,0x7b,0x7b
-# ATT: ccmpeq {of} $123456, 123(%r8,%rax,4)
-# INTEL: ccmpe {of} qword ptr [r8 + 4*rax + 123], 123456
+# ATT: ccmpeq {dfv=of} $123456, 123(%r8,%rax,4)
+# INTEL: ccmpe {dfv=of} qword ptr [r8 + 4*rax + 123], 123456
0x62,0xd4,0xc4,0x04,0x81,0x7c,0x80,0x7b,0x40,0xe2,0x01,0x00
-# ATT: ccmpeb {of} %bl, 123(%r8,%rax,4)
-# INTEL: ccmpe {of} byte ptr [r8 + 4*rax + 123], bl
+# ATT: ccmpeb {dfv=of} %bl, 123(%r8,%rax,4)
+# INTEL: ccmpe {dfv=of} byte ptr [r8 + 4*rax + 123], bl
0x62,0xd4,0x44,0x04,0x38,0x5c,0x80,0x7b
-# ATT: ccmpew {of} %dx, 123(%r8,%rax,4)
-# INTEL: ccmpe {of} word ptr [r8 + 4*rax + 123], dx
+# ATT: ccmpew {dfv=of} %dx, 123(%r8,%rax,4)
+# INTEL: ccmpe {dfv=of} word ptr [r8 + 4*rax + 123], dx
0x62,0xd4,0x45,0x04,0x39,0x54,0x80,0x7b
-# ATT: ccmpel {of} %ecx, 123(%r8,%rax,4)
-# INTEL: ccmpe {of} dword ptr [r8 + 4*rax + 123], ecx
+# ATT: ccmpel {dfv=of} %ecx, 123(%r8,%rax,4)
+# INTEL: ccmpe {dfv=of} dword ptr [r8 + 4*rax + 123], ecx
0x62,0xd4,0x44,0x04,0x39,0x4c,0x80,0x7b
-# ATT: ccmpeq {of} %r9, 123(%r8,%rax,4)
-# INTEL: ccmpe {of} qword ptr [r8 + 4*rax + 123], r9
+# ATT: ccmpeq {dfv=of} %r9, 123(%r8,%rax,4)
+# INTEL: ccmpe {dfv=of} qword ptr [r8 + 4*rax + 123], r9
0x62,0x54,0xc4,0x04,0x39,0x4c,0x80,0x7b
-# ATT: ccmpeb {of} 123(%r8,%rax,4), %bl
-# INTEL: ccmpe {of} bl, byte ptr [r8 + 4*rax + 123]
+# ATT: ccmpeb {dfv=of} 123(%r8,%rax,4), %bl
+# INTEL: ccmpe {dfv=of} bl, byte ptr [r8 + 4*rax + 123]
0x62,0xd4,0x44,0x04,0x3a,0x5c,0x80,0x7b
-# ATT: ccmpew {of} 123(%r8,%rax,4), %dx
-# INTEL: ccmpe {of} dx, word ptr [r8 + 4*rax + 123]
+# ATT: ccmpew {dfv=of} 123(%r8,%rax,4), %dx
+# INTEL: ccmpe {dfv=of} dx, word ptr [r8 + 4*rax + 123]
0x62,0xd4,0x45,0x04,0x3b,0x54,0x80,0x7b
-# ATT: ccmpel {of} 123(%r8,%rax,4), %ecx
-# INTEL: ccmpe {of} ecx, dword ptr [r8 + 4*rax + 123]
+# ATT: ccmpel {dfv=of} 123(%r8,%rax,4), %ecx
+# INTEL: ccmpe {dfv=of} ecx, dword ptr [r8 + 4*rax + 123]
0x62,0xd4,0x44,0x04,0x3b,0x4c,0x80,0x7b
-# ATT: ccmpeq {of} 123(%r8,%rax,4), %r9
-# INTEL: ccmpe {of} r9, qword ptr [r8 + 4*rax + 123]
+# ATT: ccmpeq {dfv=of} 123(%r8,%rax,4), %r9
+# INTEL: ccmpe {dfv=of} r9, qword ptr [r8 + 4*rax + 123]
0x62,0x54,0xc4,0x04,0x3b,0x4c,0x80,0x7b
-# ATT: ccmpeb {of} $123, %bl
-# INTEL: ccmpe {of} bl, 123
+# ATT: ccmpeb {dfv=of} $123, %bl
+# INTEL: ccmpe {dfv=of} bl, 123
0x62,0xf4,0x44,0x04,0x80,0xfb,0x7b
-# ATT: ccmpew {of} $123, %dx
-# INTEL: ccmpe {of} dx, 123
+# ATT: ccmpew {dfv=of} $123, %dx
+# INTEL: ccmpe {dfv=of} dx, 123
0x62,0xf4,0x45,0x04,0x83,0xfa,0x7b
-# ATT: ccmpel {of} $123, %ecx
-# INTEL: ccmpe {of} ecx, 123
+# ATT: ccmpel {dfv=of} $123, %ecx
+# INTEL: ccmpe {dfv=of} ecx, 123
0x62,0xf4,0x44,0x04,0x83,0xf9,0x7b
-# ATT: ccmpeq {of} $123, %r9
-# INTEL: ccmpe {of} r9, 123
+# ATT: ccmpeq {dfv=of} $123, %r9
+# INTEL: ccmpe {dfv=of} r9, 123
0x62,0xd4,0xc4,0x04,0x83,0xf9,0x7b
-# ATT: ccmpew {of} $1234, %dx
-# INTEL: ccmpe {of} dx, 1234
+# ATT: ccmpew {dfv=of} $1234, %dx
+# INTEL: ccmpe {dfv=of} dx, 1234
0x62,0xf4,0x45,0x04,0x81,0xfa,0xd2,0x04
-# ATT: ccmpel {of} $123456, %ecx
-# INTEL: ccmpe {of} ecx, 123456
+# ATT: ccmpel {dfv=of} $123456, %ecx
+# INTEL: ccmpe {dfv=of} ecx, 123456
0x62,0xf4,0x44,0x04,0x81,0xf9,0x40,0xe2,0x01,0x00
-# ATT: ccmpeq {of} $123456, %r9
-# INTEL: ccmpe {of} r9, 123456
+# ATT: ccmpeq {dfv=of} $123456, %r9
+# INTEL: ccmpe {dfv=of} r9, 123456
0x62,0xd4,0xc4,0x04,0x81,0xf9,0x40,0xe2,0x01,0x00
-# ATT: ccmpeb {of} %bl, %dl
-# INTEL: ccmpe {of} dl, bl
+# ATT: ccmpeb {dfv=of} %bl, %dl
+# INTEL: ccmpe {dfv=of} dl, bl
0x62,0xf4,0x44,0x04,0x3a,0xd3
-# ATT: ccmpew {of} %dx, %ax
-# INTEL: ccmpe {of} ax, dx
+# ATT: ccmpew {dfv=of} %dx, %ax
+# INTEL: ccmpe {dfv=of} ax, dx
0x62,0xf4,0x45,0x04,0x3b,0xc2
-# ATT: ccmpel {of} %ecx, %edx
-# INTEL: ccmpe {of} edx, ecx
+# ATT: ccmpel {dfv=of} %ecx, %edx
+# INTEL: ccmpe {dfv=of} edx, ecx
0x62,0xf4,0x44,0x04,0x3b,0xd1
-# ATT: ccmpeq {of} %r9, %r15
-# INTEL: ccmpe {of} r15, r9
+# ATT: ccmpeq {dfv=of} %r9, %r15
+# INTEL: ccmpe {dfv=of} r15, r9
0x62,0x54,0xc4,0x04,0x3b,0xf9
diff --git a/llvm/test/MC/Disassembler/X86/apx/reverse-encoding.txt b/llvm/test/MC/Disassembler/X86/apx/reverse-encoding.txt
index a148d2a3f3b648..9e812e370146ba 100644
--- a/llvm/test/MC/Disassembler/X86/apx/reverse-encoding.txt
+++ b/llvm/test/MC/Disassembler/X86/apx/reverse-encoding.txt
@@ -415,18 +415,18 @@
## ccmp
-# ATT: ccmpob {} %r16b, %r17b
-# INTEL: ccmpo {} r17b, r16b
+# ATT: ccmpob {dfv=} %r16b, %r17b
+# INTEL: ccmpo {dfv=} r17b, r16b
0x62,0xec,0x04,0x00,0x3a,0xc8
-# ATT: ccmpow {} %r16w, %r17w
-# INTEL: ccmpo {} r17w, r16w
+# ATT: ccmpow {dfv=} %r16w, %r17w
+# INTEL: ccmpo {dfv=} r17w, r16w
0x62,0xec,0x05,0x00,0x3b,0xc8
-# ATT: ccmpol {} %r16d, %r17d
-# INTEL: ccmpo {} r17d, r16d
+# ATT: ccmpol {dfv=} %r16d, %r17d
+# INTEL: ccmpo {dfv=} r17d, r16d
0x62,0xec,0x04,0x00,0x3b,0xc8
-# ATT: ccmpoq {} %r16, %r17
-# INTEL: ccmpo {} r17, r16
+# ATT: ccmpoq {dfv=} %r16, %r17
+# INTEL: ccmpo {dfv=} r17, r16
0x62,0xec,0x84,0x00,0x3b,0xc8
diff --git a/llvm/test/MC/X86/apx/ccmp-att-error.s b/llvm/test/MC/X86/apx/ccmp-att-error.s
index 052b70c8f2665d..5a1237195a2278 100644
--- a/llvm/test/MC/X86/apx/ccmp-att-error.s
+++ b/llvm/test/MC/X86/apx/ccmp-att-error.s
@@ -4,18 +4,26 @@
# CHECK: ccmpeq $1 %rax, %rbx
ccmpeq $1 %rax, %rbx
-# CHECK: [[#@LINE+2]]:14: error: Expected } or , at this point
-# CHECK: ccmpeq {sf,cf%rax, %rbx
-ccmpeq {sf,cf%rax, %rbx
+# CHECK: [[#@LINE+2]]:9: error: Expected dfv at this point
+# CHECK: ccmpeq {sf} %rax, %rbx
+ccmpeq {sf} %rax, %rbx
-# CHECK: [[#@LINE+2]]:9: error: Invalid conditional flags
-# CHECK: ccmpeq {pf} %rax, %rbx
-ccmpeq {pf} %rax, %rbx
+# CHECK: [[#@LINE+2]]:12: error: Expected = at this point
+# CHECK: ccmpeq {dfv:sf} %rax, %rbx
+ccmpeq {dfv:sf} %rax, %rbx
-# CHECK: [[#@LINE+2]]:15: error: Duplicated conditional flag
-# CHECK: ccmpeq {of,zf,of} %rax, %rbx
-ccmpeq {of,zf,of} %rax, %rbx
+# CHECK: [[#@LINE+2]]:18: error: Expected } or , at this point
+# CHECK: ccmpeq {dfv=sf,cf%rax, %rbx
+ccmpeq {dfv=sf,cf%rax, %rbx
-# CHECK: [[#@LINE+2]]:20: error: Expected } at this point
-# CHECK: ccmpeq {of,sf,zf,cf,of} %rax, %rbx
-ccmpeq {of,sf,zf,cf,of} %rax, %rbx
+# CHECK: [[#@LINE+2]]:13: error: Invalid conditional flags
+# CHECK: ccmpeq {dfv=pf} %rax, %rbx
+ccmpeq {dfv=pf} %rax, %rbx
+
+# CHECK: [[#@LINE+2]]:19: error: Duplicated conditional flag
+# CHECK: ccmpeq {dfv=of,zf,of} %rax, %rbx
+ccmpeq {dfv=of,zf,of} %rax, %rbx
+
+# CHECK: [[#@LINE+2]]:24: error: Expected } at this point
+# CHECK: ccmpeq {dfv=of,sf,zf,cf,of} %rax, %rbx
+ccmpeq {dfv=of,sf,zf,cf,of} %rax, %rbx
diff --git a/llvm/test/MC/X86/apx/ccmp-att.s b/llvm/test/MC/X86/apx/ccmp-att.s
index 679ef93d7f6016..72be0145401518 100644
--- a/llvm/test/MC/X86/apx/ccmp-att.s
+++ b/llvm/test/MC/X86/apx/ccmp-att.s
@@ -5,1209 +5,1209 @@
# ERROR-NOT: error:
## Condition flags
-# CHECK: ccmpoq {} %rax, %rbx
+# CHECK: ccmpoq {dfv=} %rax, %rbx
# CHECK: encoding: [0x62,0xf4,0x84,0x00,0x39,0xc3]
- ccmpoq {} %rax, %rbx
-# CHECK: ccmpoq {of} %rax, %rbx
+ ccmpoq {dfv=} %rax, %rbx
+# CHECK: ccmpoq {dfv=of} %rax, %rbx
# CHECK: encoding: [0x62,0xf4,0xc4,0x00,0x39,0xc3]
- ccmpoq {of} %rax, %rbx
-# CHECK: ccmpoq {sf} %rax, %rbx
+ ccmpoq {dfv=of} %rax, %rbx
+# CHECK: ccmpoq {dfv=sf} %rax, %rbx
# CHECK: encoding: [0x62,0xf4,0xa4,0x00,0x39,0xc3]
- ccmpoq {sf} %rax, %rbx
-# CHECK: ccmpoq {zf} %rax, %rbx
+ ccmpoq {dfv=sf} %rax, %rbx
+# CHECK: ccmpoq {dfv=zf} %rax, %rbx
# CHECK: encoding: [0x62,0xf4,0x94,0x00,0x39,0xc3]
- ccmpoq {zf} %rax, %rbx
-# CHECK: ccmpoq {cf} %rax, %rbx
+ ccmpoq {dfv=zf} %rax, %rbx
+# CHECK: ccmpoq {dfv=cf} %rax, %rbx
# CHECK: encoding: [0x62,0xf4,0x8c,0x00,0x39,0xc3]
- ccmpoq {cf} %rax, %rbx
-# CHECK: ccmpoq {of,sf} %rax, %rbx
+ ccmpoq {dfv=cf} %rax, %rbx
+# CHECK: ccmpoq {dfv=of,sf} %rax, %rbx
# CHECK: encoding: [0x62,0xf4,0xe4,0x00,0x39,0xc3]
- ccmpoq {of,sf} %rax, %rbx
-# CHECK: ccmpoq {of,sf} %rax, %rbx
+ ccmpoq {dfv=of,sf} %rax, %rbx
+# CHECK: ccmpoq {dfv=of,sf} %rax, %rbx
# CHECK: encoding: [0x62,0xf4,0xe4,0x00,0x39,0xc3]
- ccmpoq {sf,of} %rax, %rbx
-# CHECK: ccmpoq {of,sf,zf} %rax, %rbx
+ ccmpoq {dfv=sf,of} %rax, %rbx
+# CHECK: ccmpoq {dfv=of,sf,zf} %rax, %rbx
# CHECK: encoding: [0x62,0xf4,0xf4,0x00,0x39,0xc3]
- ccmpoq {of,sf,zf} %rax, %rbx
-# CHECK: ccmpoq {of,sf,zf} %rax, %rbx
+ ccmpoq {dfv=of,sf,zf} %rax, %rbx
+# CHECK: ccmpoq {dfv=of,sf,zf} %rax, %rbx
# CHECK: encoding: [0x62,0xf4,0xf4,0x00,0x39,0xc3]
- ccmpoq {zf,of,sf} %rax, %rbx
-# CHECK: ccmpoq {of,sf,zf,cf} %rax, %rbx
+ ccmpoq {dfv=zf,of,sf} %rax, %rbx
+# CHECK: ccmpoq {dfv=of,sf,zf,cf} %rax, %rbx
# CHECK: encoding: [0x62,0xf4,0xfc,0x00,0x39,0xc3]
- ccmpoq {of,sf,zf,cf} %rax, %rbx
-# CHECK: ccmpoq {of,sf,zf,cf} %rax, %rbx
+ ccmpoq {dfv=of,sf,zf,cf} %rax, %rbx
+# CHECK: ccmpoq {dfv=of,sf,zf,cf} %rax, %rbx
# CHECK: encoding: [0x62,0xf4,0xfc,0x00,0x39,0xc3]
- ccmpoq {cf,zf,sf,of} %rax, %rbx
+ ccmpoq {dfv=cf,zf,sf,of} %rax, %rbx
## Condition code
-# CHECK: ccmpbb {of} $123, 123(%r8,%rax,4)
+# CHECK: ccmpbb {dfv=of} $123, 123(%r8,%rax,4)
# CHECK: encoding: [0x62,0xd4,0x44,0x02,0x80,0x7c,0x80,0x7b,0x7b]
- ccmpbb {of} $123, 123(%r8,%rax,4)
-# CHECK: ccmpbw {of} $123, 123(%r8,%rax,4)
+ ccmpbb {dfv=of} $123, 123(%r8,%rax,4)
+# CHECK: ccmpbw {dfv=of} $123, 123(%r8,%rax,4)
# CHECK: encoding: [0x62,0xd4,0x45,0x02,0x83,0x7c,0x80,0x7b,0x7b]
- ccmpbw {of} $123, 123(%r8,%rax,4)
-# CHECK: ccmpbw {of} $1234, 123(%r8,%rax,4)
+ ccmpbw {dfv=of} $123, 123(%r8,%rax,4)
+# CHECK: ccmpbw {dfv=of} $1234, 123(%r8,%rax,4)
# CHECK: encoding: [0x62,0xd4,0x45,0x02,0x81,0x7c,0x80,0x7b,0xd2,0x04]
- ccmpbw {of} $1234, 123(%r8,%rax,4)
-# CHECK: ccmpbl {of} $123, 123(%r8,%rax,4)
+ ccmpbw {dfv=of} $1234, 123(%r8,%rax,4)
+# CHECK: ccmpbl {dfv=of} $123, 123(%r8,%rax,4)
# CHECK: encoding: [0x62,0xd4,0x44,0x02,0x83,0x7c,0x80,0x7b,0x7b]
- ccmpbl {of} $123, 123(%r8,%rax,4)
-# CHECK: ccmpbl {of} $123456, 123(%r8,%rax,4)
+ ccmpbl {dfv=of} $123, 123(%r8,%rax,4)
+# CHECK: ccmpbl {dfv=of} $123456, 123(%r8,%rax,4)
# CHECK: encoding: [0x62,0xd4,0x44,0x02,0x81,0x7c,0x80,0x7b,0x40,0xe2,0x01,0x00]
- ccmpbl {of} $123456, 123(%r8,%rax,4)
-# CHECK: ccmpbq {of} $123, 123(%r8,%rax,4)
+ ccmpbl {dfv=of} $123456, 123(%r8,%rax,4)
+# CHECK: ccmpbq {dfv=of} $123, 123(%r8,%rax,4)
# CHECK: encoding: [0x62,0xd4,0xc4,0x02,0x83,0x7c,0x80,0x7b,0x7b]
- ccmpbq {of} $123, 123(%r8,%rax,4)
-# CHECK: ccmpbq {of} $123456, 123(%r8,%rax,4)
+ ccmpbq {dfv=of} $123, 123(%r8,%rax,4)
+# CHECK: ccmpbq {dfv=of} $123456, 123(%r8,%rax,4)
# CHECK: encoding: [0x62,0xd4,0xc4,0x02,0x81,0x7c,0x80,0x7b,0x40,0xe2,0x01,0x00]
- ccmpbq {of} $123456, 123(%r8,%rax,4)
-# CHECK: ccmpbb {of} %bl, 123(%r8,%rax,4)
+ ccmpbq {dfv=of} $123456, 123(%r8,%rax,4)
+# CHECK: ccmpbb {dfv=of} %bl, 123(%r8,%rax,4)
# CHECK: encoding: [0x62,0xd4,0x44,0x02,0x38,0x5c,0x80,0x7b]
- ccmpbb {of} %bl, 123(%r8,%rax,4)
-# CHECK: ccmpbw {of} %dx, 123(%r8,%rax,4)
+ ccmpbb {dfv=of} %bl, 123(%r8,%rax,4)
+# CHECK: ccmpbw {dfv=of} %dx, 123(%r8,%rax,4)
# CHECK: encoding: [0x62,0xd4,0x45,0x02,0x39,0x54,0x80,0x7b]
- ccmpbw {of} %dx, 123(%r8,%rax,4)
-# CHECK: ccmpbl {of} %ecx, 123(%r8,%rax,4)
+ ccmpbw {dfv=of} %dx, 123(%r8,%rax,4)
+# CHECK: ccmpbl {dfv=of} %ecx, 123(%r8,%rax,4)
# CHECK: encoding: [0x62,0xd4,0x44,0x02,0x39,0x4c,0x80,0x7b]
- ccmpbl {of} %ecx, 123(%r8,%rax,4)
-# CHECK: ccmpbq {of} %r9, 123(%r8,%rax,4)
+ ccmpbl {dfv=of} %ecx, 123(%r8,%rax,4)
+# CHECK: ccmpbq {dfv=of} %r9, 123(%r8,%rax,4)
# CHECK: encoding: [0x62,0x54,0xc4,0x02,0x39,0x4c,0x80,0x7b]
- ccmpbq {of} %r9, 123(%r8,%rax,4)
-# CHECK: ccmpbb {of} 123(%r8,%rax,4), %bl
+ ccmpbq {dfv=of} %r9, 123(%r8,%rax,4)
+# CHECK: ccmpbb {dfv=of} 123(%r8,%rax,4), %bl
# CHECK: encoding: [0x62,0xd4,0x44,0x02,0x3a,0x5c,0x80,0x7b]
- ccmpbb {of} 123(%r8,%rax,4), %bl
-# CHECK: ccmpbw {of} 123(%r8,%rax,4), %dx
+ ccmpbb {dfv=of} 123(%r8,%rax,4), %bl
+# CHECK: ccmpbw {dfv=of} 123(%r8,%rax,4), %dx
# CHECK: encoding: [0x62,0xd4,0x45,0x02,0x3b,0x54,0x80,0x7b]
- ccmpbw {of} 123(%r8,%rax,4), %dx
-# CHECK: ccmpbl {of} 123(%r8,%rax,4), %ecx
+ ccmpbw {dfv=of} 123(%r8,%rax,4), %dx
+# CHECK: ccmpbl {dfv=of} 123(%r8,%rax,4), %ecx
# CHECK: encoding: [0x62,0xd4,0x44,0x02,0x3b,0x4c,0x80,0x7b]
- ccmpbl {of} 123(%r8,%rax,4), %ecx
-# CHECK: ccmpbq {of} 123(%r8,%rax,4), %r9
+ ccmpbl {dfv=of} 123(%r8,%rax,4), %ecx
+# CHECK: ccmpbq {dfv=of} 123(%r8,%rax,4), %r9
# CHECK: encoding: [0x62,0x54,0xc4,0x02,0x3b,0x4c,0x80,0x7b]
- ccmpbq {of} 123(%r8,%rax,4), %r9
-# CHECK: ccmpbb {of} $123, %bl
+ ccmpbq {dfv=of} 123(%r8,%rax,4), %r9
+# CHECK: ccmpbb {dfv=of} $123, %bl
# CHECK: encoding: [0x62,0xf4,0x44,0x02,0x80,0xfb,0x7b]
- ccmpbb {of} $123, %bl
-# CHECK: ccmpbw {of} $123, %dx
+ ccmpbb {dfv=of} $123, %bl
+# CHECK: ccmpbw {dfv=of} $123, %dx
# CHECK: encoding: [0x62,0xf4,0x45,0x02,0x83,0xfa,0x7b]
- ccmpbw {of} $123, %dx
-# CHECK: ccmpbl {of} $123, %ecx
+ ccmpbw {dfv=of} $123, %dx
+# CHECK: ccmpbl {dfv=of} $123, %ecx
# CHECK: encoding: [0x62,0xf4,0x44,0x02,0x83,0xf9,0x7b]
- ccmpbl {of} $123, %ecx
-# CHECK: ccmpbq {of} $123, %r9
+ ccmpbl {dfv=of} $123, %ecx
+# CHECK: ccmpbq {dfv=of} $123, %r9
# CHECK: encoding: [0x62,0xd4,0xc4,0x02,0x83,0xf9,0x7b]
- ccmpbq {of} $123, %r9
-# CHECK: ccmpbw {of} $1234, %dx
+ ccmpbq {dfv=of} $123, %r9
+# CHECK: ccmpbw {dfv=of} $1234, %dx
# CHECK: encoding: [0x62,0xf4,0x45,0x02,0x81,0xfa,0xd2,0x04]
- ccmpbw {of} $1234, %dx
-# CHECK: ccmpbl {of} $123456, %ecx
+ ccmpbw {dfv=of} $1234, %dx
+# CHECK: ccmpbl {dfv=of} $123456, %ecx
# CHECK: encoding: [0x62,0xf4,0x44,0x02,0x81,0xf9,0x40,0xe2,0x01,0x00]
- ccmpbl {of} $123456, %ecx
-# CHECK: ccmpbq {of} $123456, %r9
+ ccmpbl {dfv=of} $123456, %ecx
+# CHECK: ccmpbq {dfv=of} $123456, %r9
# CHECK: encoding: [0x62,0xd4,0xc4,0x02,0x81,0xf9,0x40,0xe2,0x01,0x00]
- ccmpbq {of} $123456, %r9
-# CHECK: ccmpbb {of} %bl, %dl
+ ccmpbq {dfv=of} $123456, %r9
+# CHECK: ccmpbb {dfv=of} %bl, %dl
# CHECK: encoding: [0x62,0xf4,0x44,0x02,0x38,0xda]
- ccmpbb {of} %bl, %dl
-# CHECK: ccmpbw {of} %dx, %ax
+ ccmpbb {dfv=of} %bl, %dl
+# CHECK: ccmpbw {dfv=of} %dx, %ax
# CHECK: encoding: [0x62,0xf4,0x45,0x02,0x39,0xd0]
- ccmpbw {of} %dx, %ax
-# CHECK: ccmpbl {of} %ecx, %edx
+ ccmpbw {dfv=of} %dx, %ax
+# CHECK: ccmpbl {dfv=of} %ecx, %edx
# CHECK: encoding: [0x62,0xf4,0x44,0x02,0x39,0xca]
- ccmpbl {of} %ecx, %edx
-# CHECK: ccmpbq {of} %r9, %r15
+ ccmpbl {dfv=of} %ecx, %edx
+# CHECK: ccmpbq {dfv=of} %r9, %r15
# CHECK: encoding: [0x62,0x54,0xc4,0x02,0x39,0xcf]
- ccmpbq {of} %r9, %r15
-# CHECK: ccmpfb {of} $123, 123(%r8,%rax,4)
+ ccmpbq {dfv=of} %r9, %r15
+# CHECK: ccmpfb {dfv=of} $123, 123(%r8,%rax,4)
# CHECK: encoding: [0x62,0xd4,0x44,0x0b,0x80,0x7c,0x80,0x7b,0x7b]
- ccmpfb {of} $123, 123(%r8,%rax,4)
-# CHECK: ccmpfw {of} $123, 123(%r8,%rax,4)
+ ccmpfb {dfv=of} $123, 123(%r8,%rax,4)
+# CHECK: ccmpfw {dfv=of} $123, 123(%r8,%rax,4)
# CHECK: encoding: [0x62,0xd4,0x45,0x0b,0x83,0x7c,0x80,0x7b,0x7b]
- ccmpfw {of} $123, 123(%r8,%rax,4)
-# CHECK: ccmpfw {of} $1234, 123(%r8,%rax,4)
+ ccmpfw {dfv=of} $123, 123(%r8,%rax,4)
+# CHECK: ccmpfw {dfv=of} $1234, 123(%r8,%rax,4)
# CHECK: encoding: [0x62,0xd4,0x45,0x0b,0x81,0x7c,0x80,0x7b,0xd2,0x04]
- ccmpfw {of} $1234, 123(%r8,%rax,4)
-# CHECK: ccmpfl {of} $123, 123(%r8,%rax,4)
+ ccmpfw {dfv=of} $1234, 123(%r8,%rax,4)
+# CHECK: ccmpfl {dfv=of} $123, 123(%r8,%rax,4)
# CHECK: encoding: [0x62,0xd4,0x44,0x0b,0x83,0x7c,0x80,0x7b,0x7b]
- ccmpfl {of} $123, 123(%r8,%rax,4)
-# CHECK: ccmpfl {of} $123456, 123(%r8,%rax,4)
+ ccmpfl {dfv=of} $123, 123(%r8,%rax,4)
+# CHECK: ccmpfl {dfv=of} $123456, 123(%r8,%rax,4)
# CHECK: encoding: [0x62,0xd4,0x44,0x0b,0x81,0x7c,0x80,0x7b,0x40,0xe2,0x01,0x00]
- ccmpfl {of} $123456, 123(%r8,%rax,4)
-# CHECK: ccmpfq {of} $123, 123(%r8,%rax,4)
+ ccmpfl {dfv=of} $123456, 123(%r8,%rax,4)
+# CHECK: ccmpfq {dfv=of} $123, 123(%r8,%rax,4)
# CHECK: encoding: [0x62,0xd4,0xc4,0x0b,0x83,0x7c,0x80,0x7b,0x7b]
- ccmpfq {of} $123, 123(%r8,%rax,4)
-# CHECK: ccmpfq {of} $123456, 123(%r8,%rax,4)
+ ccmpfq {dfv=of} $123, 123(%r8,%rax,4)
+# CHECK: ccmpfq {dfv=of} $123456, 123(%r8,%rax,4)
# CHECK: encoding: [0x62,0xd4,0xc4,0x0b,0x81,0x7c,0x80,0x7b,0x40,0xe2,0x01,0x00]
- ccmpfq {of} $123456, 123(%r8,%rax,4)
-# CHECK: ccmpfb {of} %bl, 123(%r8,%rax,4)
+ ccmpfq {dfv=of} $123456, 123(%r8,%rax,4)
+# CHECK: ccmpfb {dfv=of} %bl, 123(%r8,%rax,4)
# CHECK: encoding: [0x62,0xd4,0x44,0x0b,0x38,0x5c,0x80,0x7b]
- ccmpfb {of} %bl, 123(%r8,%rax,4)
-# CHECK: ccmpfw {of} %dx, 123(%r8,%rax,4)
+ ccmpfb {dfv=of} %bl, 123(%r8,%rax,4)
+# CHECK: ccmpfw {dfv=of} %dx, 123(%r8,%rax,4)
# CHECK: encoding: [0x62,0xd4,0x45,0x0b,0x39,0x54,0x80,0x7b]
- ccmpfw {of} %dx, 123(%r8,%rax,4)
-# CHECK: ccmpfl {of} %ecx, 123(%r8,%rax,4)
+ ccmpfw {dfv=of} %dx, 123(%r8,%rax,4)
+# CHECK: ccmpfl {dfv=of} %ecx, 123(%r8,%rax,4)
# CHECK: encoding: [0x62,0xd4,0x44,0x0b,0x39,0x4c,0x80,0x7b]
- ccmpfl {of} %ecx, 123(%r8,%rax,4)
-# CHECK: ccmpfq {of} %r9, 123(%r8,%rax,4)
+ ccmpfl {dfv=of} %ecx, 123(%r8,%rax,4)
+# CHECK: ccmpfq {dfv=of} %r9, 123(%r8,%rax,4)
# CHECK: encoding: [0x62,0x54,0xc4,0x0b,0x39,0x4c,0x80,0x7b]
- ccmpfq {of} %r9, 123(%r8,%rax,4)
-# CHECK: ccmpfb {of} 123(%r8,%rax,4), %bl
+ ccmpfq {dfv=of} %r9, 123(%r8,%rax,4)
+# CHECK: ccmpfb {dfv=of} 123(%r8,%rax,4), %bl
# CHECK: encoding: [0x62,0xd4,0x44,0x0b,0x3a,0x5c,0x80,0x7b]
- ccmpfb {of} 123(%r8,%rax,4), %bl
-# CHECK: ccmpfw {of} 123(%r8,%rax,4), %dx
+ ccmpfb {dfv=of} 123(%r8,%rax,4), %bl
+# CHECK: ccmpfw {dfv=of} 123(%r8,%rax,4), %dx
# CHECK: encoding: [0x62,0xd4,0x45,0x0b,0x3b,0x54,0x80,0x7b]
- ccmpfw {of} 123(%r8,%rax,4), %dx
-# CHECK: ccmpfl {of} 123(%r8,%rax,4), %ecx
+ ccmpfw {dfv=of} 123(%r8,%rax,4), %dx
+# CHECK: ccmpfl {dfv=of} 123(%r8,%rax,4), %ecx
# CHECK: encoding: [0x62,0xd4,0x44,0x0b,0x3b,0x4c,0x80,0x7b]
- ccmpfl {of} 123(%r8,%rax,4), %ecx
-# CHECK: ccmpfq {of} 123(%r8,%rax,4), %r9
+ ccmpfl {dfv=of} 123(%r8,%rax,4), %ecx
+# CHECK: ccmpfq {dfv=of} 123(%r8,%rax,4), %r9
# CHECK: encoding: [0x62,0x54,0xc4,0x0b,0x3b,0x4c,0x80,0x7b]
- ccmpfq {of} 123(%r8,%rax,4), %r9
-# CHECK: ccmpfb {of} $123, %bl
+ ccmpfq {dfv=of} 123(%r8,%rax,4), %r9
+# CHECK: ccmpfb {dfv=of} $123, %bl
# CHECK: encoding: [0x62,0xf4,0x44,0x0b,0x80,0xfb,0x7b]
- ccmpfb {of} $123, %bl
-# CHECK: ccmpfw {of} $123, %dx
+ ccmpfb {dfv=of} $123, %bl
+# CHECK: ccmpfw {dfv=of} $123, %dx
# CHECK: encoding: [0x62,0xf4,0x45,0x0b,0x83,0xfa,0x7b]
- ccmpfw {of} $123, %dx
-# CHECK: ccmpfl {of} $123, %ecx
+ ccmpfw {dfv=of} $123, %dx
+# CHECK: ccmpfl {dfv=of} $123, %ecx
# CHECK: encoding: [0x62,0xf4,0x44,0x0b,0x83,0xf9,0x7b]
- ccmpfl {of} $123, %ecx
-# CHECK: ccmpfq {of} $123, %r9
+ ccmpfl {dfv=of} $123, %ecx
+# CHECK: ccmpfq {dfv=of} $123, %r9
# CHECK: encoding: [0x62,0xd4,0xc4,0x0b,0x83,0xf9,0x7b]
- ccmpfq {of} $123, %r9
-# CHECK: ccmpfw {of} $1234, %dx
+ ccmpfq {dfv=of} $123, %r9
+# CHECK: ccmpfw {dfv=of} $1234, %dx
# CHECK: encoding: [0x62,0xf4,0x45,0x0b,0x81,0xfa,0xd2,0x04]
- ccmpfw {of} $1234, %dx
-# CHECK: ccmpfl {of} $123456, %ecx
+ ccmpfw {dfv=of} $1234, %dx
+# CHECK: ccmpfl {dfv=of} $123456, %ecx
# CHECK: encoding: [0x62,0xf4,0x44,0x0b,0x81,0xf9,0x40,0xe2,0x01,0x00]
- ccmpfl {of} $123456, %ecx
-# CHECK: ccmpfq {of} $123456, %r9
+ ccmpfl {dfv=of} $123456, %ecx
+# CHECK: ccmpfq {dfv=of} $123456, %r9
# CHECK: encoding: [0x62,0xd4,0xc4,0x0b,0x81,0xf9,0x40,0xe2,0x01,0x00]
- ccmpfq {of} $123456, %r9
-# CHECK: ccmpfb {of} %bl, %dl
+ ccmpfq {dfv=of} $123456, %r9
+# CHECK: ccmpfb {dfv=of} %bl, %dl
# CHECK: encoding: [0x62,0xf4,0x44,0x0b,0x38,0xda]
- ccmpfb {of} %bl, %dl
-# CHECK: ccmpfw {of} %dx, %ax
+ ccmpfb {dfv=of} %bl, %dl
+# CHECK: ccmpfw {dfv=of} %dx, %ax
# CHECK: encoding: [0x62,0xf4,0x45,0x0b,0x39,0xd0]
- ccmpfw {of} %dx, %ax
-# CHECK: ccmpfl {of} %ecx, %edx
+ ccmpfw {dfv=of} %dx, %ax
+# CHECK: ccmpfl {dfv=of} %ecx, %edx
# CHECK: encoding: [0x62,0xf4,0x44,0x0b,0x39,0xca]
- ccmpfl {of} %ecx, %edx
-# CHECK: ccmpfq {of} %r9, %r15
+ ccmpfl {dfv=of} %ecx, %edx
+# CHECK: ccmpfq {dfv=of} %r9, %r15
# CHECK: encoding: [0x62,0x54,0xc4,0x0b,0x39,0xcf]
- ccmpfq {of} %r9, %r15
-# CHECK: ccmplb {of} $123, 123(%r8,%rax,4)
+ ccmpfq {dfv=of} %r9, %r15
+# CHECK: ccmplb {dfv=of} $123, 123(%r8,%rax,4)
# CHECK: encoding: [0x62,0xd4,0x44,0x0c,0x80,0x7c,0x80,0x7b,0x7b]
- ccmplb {of} $123, 123(%r8,%rax,4)
-# CHECK: ccmplw {of} $123, 123(%r8,%rax,4)
+ ccmplb {dfv=of} $123, 123(%r8,%rax,4)
+# CHECK: ccmplw {dfv=of} $123, 123(%r8,%rax,4)
# CHECK: encoding: [0x62,0xd4,0x45,0x0c,0x83,0x7c,0x80,0x7b,0x7b]
- ccmplw {of} $123, 123(%r8,%rax,4)
-# CHECK: ccmplw {of} $1234, 123(%r8,%rax,4)
+ ccmplw {dfv=of} $123, 123(%r8,%rax,4)
+# CHECK: ccmplw {dfv=of} $1234, 123(%r8,%rax,4)
# CHECK: encoding: [0x62,0xd4,0x45,0x0c,0x81,0x7c,0x80,0x7b,0xd2,0x04]
- ccmplw {of} $1234, 123(%r8,%rax,4)
-# CHECK: ccmpll {of} $123, 123(%r8,%rax,4)
+ ccmplw {dfv=of} $1234, 123(%r8,%rax,4)
+# CHECK: ccmpll {dfv=of} $123, 123(%r8,%rax,4)
# CHECK: encoding: [0x62,0xd4,0x44,0x0c,0x83,0x7c,0x80,0x7b,0x7b]
- ccmpll {of} $123, 123(%r8,%rax,4)
-# CHECK: ccmpll {of} $123456, 123(%r8,%rax,4)
+ ccmpll {dfv=of} $123, 123(%r8,%rax,4)
+# CHECK: ccmpll {dfv=of} $123456, 123(%r8,%rax,4)
# CHECK: encoding: [0x62,0xd4,0x44,0x0c,0x81,0x7c,0x80,0x7b,0x40,0xe2,0x01,0x00]
- ccmpll {of} $123456, 123(%r8,%rax,4)
-# CHECK: ccmplq {of} $123, 123(%r8,%rax,4)
+ ccmpll {dfv=of} $123456, 123(%r8,%rax,4)
+# CHECK: ccmplq {dfv=of} $123, 123(%r8,%rax,4)
# CHECK: encoding: [0x62,0xd4,0xc4,0x0c,0x83,0x7c,0x80,0x7b,0x7b]
- ccmplq {of} $123, 123(%r8,%rax,4)
-# CHECK: ccmplq {of} $123456, 123(%r8,%rax,4)
+ ccmplq {dfv=of} $123, 123(%r8,%rax,4)
+# CHECK: ccmplq {dfv=of} $123456, 123(%r8,%rax,4)
# CHECK: encoding: [0x62,0xd4,0xc4,0x0c,0x81,0x7c,0x80,0x7b,0x40,0xe2,0x01,0x00]
- ccmplq {of} $123456, 123(%r8,%rax,4)
-# CHECK: ccmplb {of} %bl, 123(%r8,%rax,4)
+ ccmplq {dfv=of} $123456, 123(%r8,%rax,4)
+# CHECK: ccmplb {dfv=of} %bl, 123(%r8,%rax,4)
# CHECK: encoding: [0x62,0xd4,0x44,0x0c,0x38,0x5c,0x80,0x7b]
- ccmplb {of} %bl, 123(%r8,%rax,4)
-# CHECK: ccmplw {of} %dx, 123(%r8,%rax,4)
+ ccmplb {dfv=of} %bl, 123(%r8,%rax,4)
+# CHECK: ccmplw {dfv=of} %dx, 123(%r8,%rax,4)
# CHECK: encoding: [0x62,0xd4,0x45,0x0c,0x39,0x54,0x80,0x7b]
- ccmplw {of} %dx, 123(%r8,%rax,4)
-# CHECK: ccmpll {of} %ecx, 123(%r8,%rax,4)
+ ccmplw {dfv=of} %dx, 123(%r8,%rax,4)
+# CHECK: ccmpll {dfv=of} %ecx, 123(%r8,%rax,4)
# CHECK: encoding: [0x62,0xd4,0x44,0x0c,0x39,0x4c,0x80,0x7b]
- ccmpll {of} %ecx, 123(%r8,%rax,4)
-# CHECK: ccmplq {of} %r9, 123(%r8,%rax,4)
+ ccmpll {dfv=of} %ecx, 123(%r8,%rax,4)
+# CHECK: ccmplq {dfv=of} %r9, 123(%r8,%rax,4)
# CHECK: encoding: [0x62,0x54,0xc4,0x0c,0x39,0x4c,0x80,0x7b]
- ccmplq {of} %r9, 123(%r8,%rax,4)
-# CHECK: ccmplb {of} 123(%r8,%rax,4), %bl
+ ccmplq {dfv=of} %r9, 123(%r8,%rax,4)
+# CHECK: ccmplb {dfv=of} 123(%r8,%rax,4), %bl
# CHECK: encoding: [0x62,0xd4,0x44,0x0c,0x3a,0x5c,0x80,0x7b]
- ccmplb {of} 123(%r8,%rax,4), %bl
-# CHECK: ccmplw {of} 123(%r8,%rax,4), %dx
+ ccmplb {dfv=of} 123(%r8,%rax,4), %bl
+# CHECK: ccmplw {dfv=of} 123(%r8,%rax,4), %dx
# CHECK: encoding: [0x62,0xd4,0x45,0x0c,0x3b,0x54,0x80,0x7b]
- ccmplw {of} 123(%r8,%rax,4), %dx
-# CHECK: ccmpll {of} 123(%r8,%rax,4), %ecx
+ ccmplw {dfv=of} 123(%r8,%rax,4), %dx
+# CHECK: ccmpll {dfv=of} 123(%r8,%rax,4), %ecx
# CHECK: encoding: [0x62,0xd4,0x44,0x0c,0x3b,0x4c,0x80,0x7b]
- ccmpll {of} 123(%r8,%rax,4), %ecx
-# CHECK: ccmplq {of} 123(%r8,%rax,4), %r9
+ ccmpll {dfv=of} 123(%r8,%rax,4), %ecx
+# CHECK: ccmplq {dfv=of} 123(%r8,%rax,4), %r9
# CHECK: encoding: [0x62,0x54,0xc4,0x0c,0x3b,0x4c,0x80,0x7b]
- ccmplq {of} 123(%r8,%rax,4), %r9
-# CHECK: ccmplb {of} $123, %bl
+ ccmplq {dfv=of} 123(%r8,%rax,4), %r9
+# CHECK: ccmplb {dfv=of} $123, %bl
# CHECK: encoding: [0x62,0xf4,0x44,0x0c,0x80,0xfb,0x7b]
- ccmplb {of} $123, %bl
-# CHECK: ccmplw {of} $123, %dx
+ ccmplb {dfv=of} $123, %bl
+# CHECK: ccmplw {dfv=of} $123, %dx
# CHECK: encoding: [0x62,0xf4,0x45,0x0c,0x83,0xfa,0x7b]
- ccmplw {of} $123, %dx
-# CHECK: ccmpll {of} $123, %ecx
+ ccmplw {dfv=of} $123, %dx
+# CHECK: ccmpll {dfv=of} $123, %ecx
# CHECK: encoding: [0x62,0xf4,0x44,0x0c,0x83,0xf9,0x7b]
- ccmpll {of} $123, %ecx
-# CHECK: ccmplq {of} $123, %r9
+ ccmpll {dfv=of} $123, %ecx
+# CHECK: ccmplq {dfv=of} $123, %r9
# CHECK: encoding: [0x62,0xd4,0xc4,0x0c,0x83,0xf9,0x7b]
- ccmplq {of} $123, %r9
-# CHECK: ccmplw {of} $1234, %dx
+ ccmplq {dfv=of} $123, %r9
+# CHECK: ccmplw {dfv=of} $1234, %dx
# CHECK: encoding: [0x62,0xf4,0x45,0x0c,0x81,0xfa,0xd2,0x04]
- ccmplw {of} $1234, %dx
-# CHECK: ccmpll {of} $123456, %ecx
+ ccmplw {dfv=of} $1234, %dx
+# CHECK: ccmpll {dfv=of} $123456, %ecx
# CHECK: encoding: [0x62,0xf4,0x44,0x0c,0x81,0xf9,0x40,0xe2,0x01,0x00]
- ccmpll {of} $123456, %ecx
-# CHECK: ccmplq {of} $123456, %r9
+ ccmpll {dfv=of} $123456, %ecx
+# CHECK: ccmplq {dfv=of} $123456, %r9
# CHECK: encoding: [0x62,0xd4,0xc4,0x0c,0x81,0xf9,0x40,0xe2,0x01,0x00]
- ccmplq {of} $123456, %r9
-# CHECK: ccmplb {of} %bl, %dl
+ ccmplq {dfv=of} $123456, %r9
+# CHECK: ccmplb {dfv=of} %bl, %dl
# CHECK: encoding: [0x62,0xf4,0x44,0x0c,0x38,0xda]
- ccmplb {of} %bl, %dl
-# CHECK: ccmplw {of} %dx, %ax
+ ccmplb {dfv=of} %bl, %dl
+# CHECK: ccmplw {dfv=of} %dx, %ax
# CHECK: encoding: [0x62,0xf4,0x45,0x0c,0x39,0xd0]
- ccmplw {of} %dx, %ax
-# CHECK: ccmpll {of} %ecx, %edx
+ ccmplw {dfv=of} %dx, %ax
+# CHECK: ccmpll {dfv=of} %ecx, %edx
# CHECK: encoding: [0x62,0xf4,0x44,0x0c,0x39,0xca]
- ccmpll {of} %ecx, %edx
-# CHECK: ccmplq {of} %r9, %r15
+ ccmpll {dfv=of} %ecx, %edx
+# CHECK: ccmplq {dfv=of} %r9, %r15
# CHECK: encoding: [0x62,0x54,0xc4,0x0c,0x39,0xcf]
- ccmplq {of} %r9, %r15
-# CHECK: ccmpleb {of} $123, 123(%r8,%rax,4)
+ ccmplq {dfv=of} %r9, %r15
+# CHECK: ccmpleb {dfv=of} $123, 123(%r8,%rax,4)
# CHECK: encoding: [0x62,0xd4,0x44,0x0e,0x80,0x7c,0x80,0x7b,0x7b]
- ccmpleb {of} $123, 123(%r8,%rax,4)
-# CHECK: ccmplew {of} $123, 123(%r8,%rax,4)
+ ccmpleb {dfv=of} $123, 123(%r8,%rax,4)
+# CHECK: ccmplew {dfv=of} $123, 123(%r8,%rax,4)
# CHECK: encoding: [0x62,0xd4,0x45,0x0e,0x83,0x7c,0x80,0x7b,0x7b]
- ccmplew {of} $123, 123(%r8,%rax,4)
-# CHECK: ccmplew {of} $1234, 123(%r8,%rax,4)
+ ccmplew {dfv=of} $123, 123(%r8,%rax,4)
+# CHECK: ccmplew {dfv=of} $1234, 123(%r8,%rax,4)
# CHECK: encoding: [0x62,0xd4,0x45,0x0e,0x81,0x7c,0x80,0x7b,0xd2,0x04]
- ccmplew {of} $1234, 123(%r8,%rax,4)
-# CHECK: ccmplel {of} $123, 123(%r8,%rax,4)
+ ccmplew {dfv=of} $1234, 123(%r8,%rax,4)
+# CHECK: ccmplel {dfv=of} $123, 123(%r8,%rax,4)
# CHECK: encoding: [0x62,0xd4,0x44,0x0e,0x83,0x7c,0x80,0x7b,0x7b]
- ccmplel {of} $123, 123(%r8,%rax,4)
-# CHECK: ccmplel {of} $123456, 123(%r8,%rax,4)
+ ccmplel {dfv=of} $123, 123(%r8,%rax,4)
+# CHECK: ccmplel {dfv=of} $123456, 123(%r8,%rax,4)
# CHECK: encoding: [0x62,0xd4,0x44,0x0e,0x81,0x7c,0x80,0x7b,0x40,0xe2,0x01,0x00]
- ccmplel {of} $123456, 123(%r8,%rax,4)
-# CHECK: ccmpleq {of} $123, 123(%r8,%rax,4)
+ ccmplel {dfv=of} $123456, 123(%r8,%rax,4)
+# CHECK: ccmpleq {dfv=of} $123, 123(%r8,%rax,4)
# CHECK: encoding: [0x62,0xd4,0xc4,0x0e,0x83,0x7c,0x80,0x7b,0x7b]
- ccmpleq {of} $123, 123(%r8,%rax,4)
-# CHECK: ccmpleq {of} $123456, 123(%r8,%rax,4)
+ ccmpleq {dfv=of} $123, 123(%r8,%rax,4)
+# CHECK: ccmpleq {dfv=of} $123456, 123(%r8,%rax,4)
# CHECK: encoding: [0x62,0xd4,0xc4,0x0e,0x81,0x7c,0x80,0x7b,0x40,0xe2,0x01,0x00]
- ccmpleq {of} $123456, 123(%r8,%rax,4)
-# CHECK: ccmpleb {of} %bl, 123(%r8,%rax,4)
+ ccmpleq {dfv=of} $123456, 123(%r8,%rax,4)
+# CHECK: ccmpleb {dfv=of} %bl, 123(%r8,%rax,4)
# CHECK: encoding: [0x62,0xd4,0x44,0x0e,0x38,0x5c,0x80,0x7b]
- ccmpleb {of} %bl, 123(%r8,%rax,4)
-# CHECK: ccmplew {of} %dx, 123(%r8,%rax,4)
+ ccmpleb {dfv=of} %bl, 123(%r8,%rax,4)
+# CHECK: ccmplew {dfv=of} %dx, 123(%r8,%rax,4)
# CHECK: encoding: [0x62,0xd4,0x45,0x0e,0x39,0x54,0x80,0x7b]
- ccmplew {of} %dx, 123(%r8,%rax,4)
-# CHECK: ccmplel {of} %ecx, 123(%r8,%rax,4)
+ ccmplew {dfv=of} %dx, 123(%r8,%rax,4)
+# CHECK: ccmplel {dfv=of} %ecx, 123(%r8,%rax,4)
# CHECK: encoding: [0x62,0xd4,0x44,0x0e,0x39,0x4c,0x80,0x7b]
- ccmplel {of} %ecx, 123(%r8,%rax,4)
-# CHECK: ccmpleq {of} %r9, 123(%r8,%rax,4)
+ ccmplel {dfv=of} %ecx, 123(%r8,%rax,4)
+# CHECK: ccmpleq {dfv=of} %r9, 123(%r8,%rax,4)
# CHECK: encoding: [0x62,0x54,0xc4,0x0e,0x39,0x4c,0x80,0x7b]
- ccmpleq {of} %r9, 123(%r8,%rax,4)
-# CHECK: ccmpleb {of} 123(%r8,%rax,4), %bl
+ ccmpleq {dfv=of} %r9, 123(%r8,%rax,4)
+# CHECK: ccmpleb {dfv=of} 123(%r8,%rax,4), %bl
# CHECK: encoding: [0x62,0xd4,0x44,0x0e,0x3a,0x5c,0x80,0x7b]
- ccmpleb {of} 123(%r8,%rax,4), %bl
-# CHECK: ccmplew {of} 123(%r8,%rax,4), %dx
+ ccmpleb {dfv=of} 123(%r8,%rax,4), %bl
+# CHECK: ccmplew {dfv=of} 123(%r8,%rax,4), %dx
# CHECK: encoding: [0x62,0xd4,0x45,0x0e,0x3b,0x54,0x80,0x7b]
- ccmplew {of} 123(%r8,%rax,4), %dx
-# CHECK: ccmplel {of} 123(%r8,%rax,4), %ecx
+ ccmplew {dfv=of} 123(%r8,%rax,4), %dx
+# CHECK: ccmplel {dfv=of} 123(%r8,%rax,4), %ecx
# CHECK: encoding: [0x62,0xd4,0x44,0x0e,0x3b,0x4c,0x80,0x7b]
- ccmplel {of} 123(%r8,%rax,4), %ecx
-# CHECK: ccmpleq {of} 123(%r8,%rax,4), %r9
+ ccmplel {dfv=of} 123(%r8,%rax,4), %ecx
+# CHECK: ccmpleq {dfv=of} 123(%r8,%rax,4), %r9
# CHECK: encoding: [0x62,0x54,0xc4,0x0e,0x3b,0x4c,0x80,0x7b]
- ccmpleq {of} 123(%r8,%rax,4), %r9
-# CHECK: ccmpleb {of} $123, %bl
+ ccmpleq {dfv=of} 123(%r8,%rax,4), %r9
+# CHECK: ccmpleb {dfv=of} $123, %bl
# CHECK: encoding: [0x62,0xf4,0x44,0x0e,0x80,0xfb,0x7b]
- ccmpleb {of} $123, %bl
-# CHECK: ccmplew {of} $123, %dx
+ ccmpleb {dfv=of} $123, %bl
+# CHECK: ccmplew {dfv=of} $123, %dx
# CHECK: encoding: [0x62,0xf4,0x45,0x0e,0x83,0xfa,0x7b]
- ccmplew {of} $123, %dx
-# CHECK: ccmplel {of} $123, %ecx
+ ccmplew {dfv=of} $123, %dx
+# CHECK: ccmplel {dfv=of} $123, %ecx
# CHECK: encoding: [0x62,0xf4,0x44,0x0e,0x83,0xf9,0x7b]
- ccmplel {of} $123, %ecx
-# CHECK: ccmpleq {of} $123, %r9
+ ccmplel {dfv=of} $123, %ecx
+# CHECK: ccmpleq {dfv=of} $123, %r9
# CHECK: encoding: [0x62,0xd4,0xc4,0x0e,0x83,0xf9,0x7b]
- ccmpleq {of} $123, %r9
-# CHECK: ccmplew {of} $1234, %dx
+ ccmpleq {dfv=of} $123, %r9
+# CHECK: ccmplew {dfv=of} $1234, %dx
# CHECK: encoding: [0x62,0xf4,0x45,0x0e,0x81,0xfa,0xd2,0x04]
- ccmplew {of} $1234, %dx
-# CHECK: ccmplel {of} $123456, %ecx
+ ccmplew {dfv=of} $1234, %dx
+# CHECK: ccmplel {dfv=of} $123456, %ecx
# CHECK: encoding: [0x62,0xf4,0x44,0x0e,0x81,0xf9,0x40,0xe2,0x01,0x00]
- ccmplel {of} $123456, %ecx
-# CHECK: ccmpleq {of} $123456, %r9
+ ccmplel {dfv=of} $123456, %ecx
+# CHECK: ccmpleq {dfv=of} $123456, %r9
# CHECK: encoding: [0x62,0xd4,0xc4,0x0e,0x81,0xf9,0x40,0xe2,0x01,0x00]
- ccmpleq {of} $123456, %r9
-# CHECK: ccmpleb {of} %bl, %dl
+ ccmpleq {dfv=of} $123456, %r9
+# CHECK: ccmpleb {dfv=of} %bl, %dl
# CHECK: encoding: [0x62,0xf4,0x44,0x0e,0x38,0xda]
- ccmpleb {of} %bl, %dl
-# CHECK: ccmplew {of} %dx, %ax
+ ccmpleb {dfv=of} %bl, %dl
+# CHECK: ccmplew {dfv=of} %dx, %ax
# CHECK: encoding: [0x62,0xf4,0x45,0x0e,0x39,0xd0]
- ccmplew {of} %dx, %ax
-# CHECK: ccmplel {of} %ecx, %edx
+ ccmplew {dfv=of} %dx, %ax
+# CHECK: ccmplel {dfv=of} %ecx, %edx
# CHECK: encoding: [0x62,0xf4,0x44,0x0e,0x39,0xca]
- ccmplel {of} %ecx, %edx
-# CHECK: ccmpleq {of} %r9, %r15
+ ccmplel {dfv=of} %ecx, %edx
+# CHECK: ccmpleq {dfv=of} %r9, %r15
# CHECK: encoding: [0x62,0x54,0xc4,0x0e,0x39,0xcf]
- ccmpleq {of} %r9, %r15
-# CHECK: ccmpaeb {of} $123, 123(%r8,%rax,4)
+ ccmpleq {dfv=of} %r9, %r15
+# CHECK: ccmpaeb {dfv=of} $123, 123(%r8,%rax,4)
# CHECK: encoding: [0x62,0xd4,0x44,0x03,0x80,0x7c,0x80,0x7b,0x7b]
- ccmpaeb {of} $123, 123(%r8,%rax,4)
-# CHECK: ccmpaew {of} $123, 123(%r8,%rax,4)
+ ccmpaeb {dfv=of} $123, 123(%r8,%rax,4)
+# CHECK: ccmpaew {dfv=of} $123, 123(%r8,%rax,4)
# CHECK: encoding: [0x62,0xd4,0x45,0x03,0x83,0x7c,0x80,0x7b,0x7b]
- ccmpaew {of} $123, 123(%r8,%rax,4)
-# CHECK: ccmpaew {of} $1234, 123(%r8,%rax,4)
+ ccmpaew {dfv=of} $123, 123(%r8,%rax,4)
+# CHECK: ccmpaew {dfv=of} $1234, 123(%r8,%rax,4)
# CHECK: encoding: [0x62,0xd4,0x45,0x03,0x81,0x7c,0x80,0x7b,0xd2,0x04]
- ccmpaew {of} $1234, 123(%r8,%rax,4)
-# CHECK: ccmpael {of} $123, 123(%r8,%rax,4)
+ ccmpaew {dfv=of} $1234, 123(%r8,%rax,4)
+# CHECK: ccmpael {dfv=of} $123, 123(%r8,%rax,4)
# CHECK: encoding: [0x62,0xd4,0x44,0x03,0x83,0x7c,0x80,0x7b,0x7b]
- ccmpael {of} $123, 123(%r8,%rax,4)
-# CHECK: ccmpael {of} $123456, 123(%r8,%rax,4)
+ ccmpael {dfv=of} $123, 123(%r8,%rax,4)
+# CHECK: ccmpael {dfv=of} $123456, 123(%r8,%rax,4)
# CHECK: encoding: [0x62,0xd4,0x44,0x03,0x81,0x7c,0x80,0x7b,0x40,0xe2,0x01,0x00]
- ccmpael {of} $123456, 123(%r8,%rax,4)
-# CHECK: ccmpaeq {of} $123, 123(%r8,%rax,4)
+ ccmpael {dfv=of} $123456, 123(%r8,%rax,4)
+# CHECK: ccmpaeq {dfv=of} $123, 123(%r8,%rax,4)
# CHECK: encoding: [0x62,0xd4,0xc4,0x03,0x83,0x7c,0x80,0x7b,0x7b]
- ccmpaeq {of} $123, 123(%r8,%rax,4)
-# CHECK: ccmpaeq {of} $123456, 123(%r8,%rax,4)
+ ccmpaeq {dfv=of} $123, 123(%r8,%rax,4)
+# CHECK: ccmpaeq {dfv=of} $123456, 123(%r8,%rax,4)
# CHECK: encoding: [0x62,0xd4,0xc4,0x03,0x81,0x7c,0x80,0x7b,0x40,0xe2,0x01,0x00]
- ccmpaeq {of} $123456, 123(%r8,%rax,4)
-# CHECK: ccmpaeb {of} %bl, 123(%r8,%rax,4)
+ ccmpaeq {dfv=of} $123456, 123(%r8,%rax,4)
+# CHECK: ccmpaeb {dfv=of} %bl, 123(%r8,%rax,4)
# CHECK: encoding: [0x62,0xd4,0x44,0x03,0x38,0x5c,0x80,0x7b]
- ccmpaeb {of} %bl, 123(%r8,%rax,4)
-# CHECK: ccmpaew {of} %dx, 123(%r8,%rax,4)
+ ccmpaeb {dfv=of} %bl, 123(%r8,%rax,4)
+# CHECK: ccmpaew {dfv=of} %dx, 123(%r8,%rax,4)
# CHECK: encoding: [0x62,0xd4,0x45,0x03,0x39,0x54,0x80,0x7b]
- ccmpaew {of} %dx, 123(%r8,%rax,4)
-# CHECK: ccmpael {of} %ecx, 123(%r8,%rax,4)
+ ccmpaew {dfv=of} %dx, 123(%r8,%rax,4)
+# CHECK: ccmpael {dfv=of} %ecx, 123(%r8,%rax,4)
# CHECK: encoding: [0x62,0xd4,0x44,0x03,0x39,0x4c,0x80,0x7b]
- ccmpael {of} %ecx, 123(%r8,%rax,4)
-# CHECK: ccmpaeq {of} %r9, 123(%r8,%rax,4)
+ ccmpael {dfv=of} %ecx, 123(%r8,%rax,4)
+# CHECK: ccmpaeq {dfv=of} %r9, 123(%r8,%rax,4)
# CHECK: encoding: [0x62,0x54,0xc4,0x03,0x39,0x4c,0x80,0x7b]
- ccmpaeq {of} %r9, 123(%r8,%rax,4)
-# CHECK: ccmpaeb {of} 123(%r8,%rax,4), %bl
+ ccmpaeq {dfv=of} %r9, 123(%r8,%rax,4)
+# CHECK: ccmpaeb {dfv=of} 123(%r8,%rax,4), %bl
# CHECK: encoding: [0x62,0xd4,0x44,0x03,0x3a,0x5c,0x80,0x7b]
- ccmpaeb {of} 123(%r8,%rax,4), %bl
-# CHECK: ccmpaew {of} 123(%r8,%rax,4), %dx
+ ccmpaeb {dfv=of} 123(%r8,%rax,4), %bl
+# CHECK: ccmpaew {dfv=of} 123(%r8,%rax,4), %dx
# CHECK: encoding: [0x62,0xd4,0x45,0x03,0x3b,0x54,0x80,0x7b]
- ccmpaew {of} 123(%r8,%rax,4), %dx
-# CHECK: ccmpael {of} 123(%r8,%rax,4), %ecx
+ ccmpaew {dfv=of} 123(%r8,%rax,4), %dx
+# CHECK: ccmpael {dfv=of} 123(%r8,%rax,4), %ecx
# CHECK: encoding: [0x62,0xd4,0x44,0x03,0x3b,0x4c,0x80,0x7b]
- ccmpael {of} 123(%r8,%rax,4), %ecx
-# CHECK: ccmpaeq {of} 123(%r8,%rax,4), %r9
+ ccmpael {dfv=of} 123(%r8,%rax,4), %ecx
+# CHECK: ccmpaeq {dfv=of} 123(%r8,%rax,4), %r9
# CHECK: encoding: [0x62,0x54,0xc4,0x03,0x3b,0x4c,0x80,0x7b]
- ccmpaeq {of} 123(%r8,%rax,4), %r9
-# CHECK: ccmpaeb {of} $123, %bl
+ ccmpaeq {dfv=of} 123(%r8,%rax,4), %r9
+# CHECK: ccmpaeb {dfv=of} $123, %bl
# CHECK: encoding: [0x62,0xf4,0x44,0x03,0x80,0xfb,0x7b]
- ccmpaeb {of} $123, %bl
-# CHECK: ccmpaew {of} $123, %dx
+ ccmpaeb {dfv=of} $123, %bl
+# CHECK: ccmpaew {dfv=of} $123, %dx
# CHECK: encoding: [0x62,0xf4,0x45,0x03,0x83,0xfa,0x7b]
- ccmpaew {of} $123, %dx
-# CHECK: ccmpael {of} $123, %ecx
+ ccmpaew {dfv=of} $123, %dx
+# CHECK: ccmpael {dfv=of} $123, %ecx
# CHECK: encoding: [0x62,0xf4,0x44,0x03,0x83,0xf9,0x7b]
- ccmpael {of} $123, %ecx
-# CHECK: ccmpaeq {of} $123, %r9
+ ccmpael {dfv=of} $123, %ecx
+# CHECK: ccmpaeq {dfv=of} $123, %r9
# CHECK: encoding: [0x62,0xd4,0xc4,0x03,0x83,0xf9,0x7b]
- ccmpaeq {of} $123, %r9
-# CHECK: ccmpaew {of} $1234, %dx
+ ccmpaeq {dfv=of} $123, %r9
+# CHECK: ccmpaew {dfv=of} $1234, %dx
# CHECK: encoding: [0x62,0xf4,0x45,0x03,0x81,0xfa,0xd2,0x04]
- ccmpaew {of} $1234, %dx
-# CHECK: ccmpael {of} $123456, %ecx
+ ccmpaew {dfv=of} $1234, %dx
+# CHECK: ccmpael {dfv=of} $123456, %ecx
# CHECK: encoding: [0x62,0xf4,0x44,0x03,0x81,0xf9,0x40,0xe2,0x01,0x00]
- ccmpael {of} $123456, %ecx
-# CHECK: ccmpaeq {of} $123456, %r9
+ ccmpael {dfv=of} $123456, %ecx
+# CHECK: ccmpaeq {dfv=of} $123456, %r9
# CHECK: encoding: [0x62,0xd4,0xc4,0x03,0x81,0xf9,0x40,0xe2,0x01,0x00]
- ccmpaeq {of} $123456, %r9
-# CHECK: ccmpaeb {of} %bl, %dl
+ ccmpaeq {dfv=of} $123456, %r9
+# CHECK: ccmpaeb {dfv=of} %bl, %dl
# CHECK: encoding: [0x62,0xf4,0x44,0x03,0x38,0xda]
- ccmpaeb {of} %bl, %dl
-# CHECK: ccmpaew {of} %dx, %ax
+ ccmpaeb {dfv=of} %bl, %dl
+# CHECK: ccmpaew {dfv=of} %dx, %ax
# CHECK: encoding: [0x62,0xf4,0x45,0x03,0x39,0xd0]
- ccmpaew {of} %dx, %ax
-# CHECK: ccmpael {of} %ecx, %edx
+ ccmpaew {dfv=of} %dx, %ax
+# CHECK: ccmpael {dfv=of} %ecx, %edx
# CHECK: encoding: [0x62,0xf4,0x44,0x03,0x39,0xca]
- ccmpael {of} %ecx, %edx
-# CHECK: ccmpaeq {of} %r9, %r15
+ ccmpael {dfv=of} %ecx, %edx
+# CHECK: ccmpaeq {dfv=of} %r9, %r15
# CHECK: encoding: [0x62,0x54,0xc4,0x03,0x39,0xcf]
- ccmpaeq {of} %r9, %r15
-# CHECK: ccmpab {of} $123, 123(%r8,%rax,4)
+ ccmpaeq {dfv=of} %r9, %r15
+# CHECK: ccmpab {dfv=of} $123, 123(%r8,%rax,4)
# CHECK: encoding: [0x62,0xd4,0x44,0x07,0x80,0x7c,0x80,0x7b,0x7b]
- ccmpab {of} $123, 123(%r8,%rax,4)
-# CHECK: ccmpaw {of} $123, 123(%r8,%rax,4)
+ ccmpab {dfv=of} $123, 123(%r8,%rax,4)
+# CHECK: ccmpaw {dfv=of} $123, 123(%r8,%rax,4)
# CHECK: encoding: [0x62,0xd4,0x45,0x07,0x83,0x7c,0x80,0x7b,0x7b]
- ccmpaw {of} $123, 123(%r8,%rax,4)
-# CHECK: ccmpaw {of} $1234, 123(%r8,%rax,4)
+ ccmpaw {dfv=of} $123, 123(%r8,%rax,4)
+# CHECK: ccmpaw {dfv=of} $1234, 123(%r8,%rax,4)
# CHECK: encoding: [0x62,0xd4,0x45,0x07,0x81,0x7c,0x80,0x7b,0xd2,0x04]
- ccmpaw {of} $1234, 123(%r8,%rax,4)
-# CHECK: ccmpal {of} $123, 123(%r8,%rax,4)
+ ccmpaw {dfv=of} $1234, 123(%r8,%rax,4)
+# CHECK: ccmpal {dfv=of} $123, 123(%r8,%rax,4)
# CHECK: encoding: [0x62,0xd4,0x44,0x07,0x83,0x7c,0x80,0x7b,0x7b]
- ccmpal {of} $123, 123(%r8,%rax,4)
-# CHECK: ccmpal {of} $123456, 123(%r8,%rax,4)
+ ccmpal {dfv=of} $123, 123(%r8,%rax,4)
+# CHECK: ccmpal {dfv=of} $123456, 123(%r8,%rax,4)
# CHECK: encoding: [0x62,0xd4,0x44,0x07,0x81,0x7c,0x80,0x7b,0x40,0xe2,0x01,0x00]
- ccmpal {of} $123456, 123(%r8,%rax,4)
-# CHECK: ccmpaq {of} $123, 123(%r8,%rax,4)
+ ccmpal {dfv=of} $123456, 123(%r8,%rax,4)
+# CHECK: ccmpaq {dfv=of} $123, 123(%r8,%rax,4)
# CHECK: encoding: [0x62,0xd4,0xc4,0x07,0x83,0x7c,0x80,0x7b,0x7b]
- ccmpaq {of} $123, 123(%r8,%rax,4)
-# CHECK: ccmpaq {of} $123456, 123(%r8,%rax,4)
+ ccmpaq {dfv=of} $123, 123(%r8,%rax,4)
+# CHECK: ccmpaq {dfv=of} $123456, 123(%r8,%rax,4)
# CHECK: encoding: [0x62,0xd4,0xc4,0x07,0x81,0x7c,0x80,0x7b,0x40,0xe2,0x01,0x00]
- ccmpaq {of} $123456, 123(%r8,%rax,4)
-# CHECK: ccmpab {of} %bl, 123(%r8,%rax,4)
+ ccmpaq {dfv=of} $123456, 123(%r8,%rax,4)
+# CHECK: ccmpab {dfv=of} %bl, 123(%r8,%rax,4)
# CHECK: encoding: [0x62,0xd4,0x44,0x07,0x38,0x5c,0x80,0x7b]
- ccmpab {of} %bl, 123(%r8,%rax,4)
-# CHECK: ccmpaw {of} %dx, 123(%r8,%rax,4)
+ ccmpab {dfv=of} %bl, 123(%r8,%rax,4)
+# CHECK: ccmpaw {dfv=of} %dx, 123(%r8,%rax,4)
# CHECK: encoding: [0x62,0xd4,0x45,0x07,0x39,0x54,0x80,0x7b]
- ccmpaw {of} %dx, 123(%r8,%rax,4)
-# CHECK: ccmpal {of} %ecx, 123(%r8,%rax,4)
+ ccmpaw {dfv=of} %dx, 123(%r8,%rax,4)
+# CHECK: ccmpal {dfv=of} %ecx, 123(%r8,%rax,4)
# CHECK: encoding: [0x62,0xd4,0x44,0x07,0x39,0x4c,0x80,0x7b]
- ccmpal {of} %ecx, 123(%r8,%rax,4)
-# CHECK: ccmpaq {of} %r9, 123(%r8,%rax,4)
+ ccmpal {dfv=of} %ecx, 123(%r8,%rax,4)
+# CHECK: ccmpaq {dfv=of} %r9, 123(%r8,%rax,4)
# CHECK: encoding: [0x62,0x54,0xc4,0x07,0x39,0x4c,0x80,0x7b]
- ccmpaq {of} %r9, 123(%r8,%rax,4)
-# CHECK: ccmpab {of} 123(%r8,%rax,4), %bl
+ ccmpaq {dfv=of} %r9, 123(%r8,%rax,4)
+# CHECK: ccmpab {dfv=of} 123(%r8,%rax,4), %bl
# CHECK: encoding: [0x62,0xd4,0x44,0x07,0x3a,0x5c,0x80,0x7b]
- ccmpab {of} 123(%r8,%rax,4), %bl
-# CHECK: ccmpaw {of} 123(%r8,%rax,4), %dx
+ ccmpab {dfv=of} 123(%r8,%rax,4), %bl
+# CHECK: ccmpaw {dfv=of} 123(%r8,%rax,4), %dx
# CHECK: encoding: [0x62,0xd4,0x45,0x07,0x3b,0x54,0x80,0x7b]
- ccmpaw {of} 123(%r8,%rax,4), %dx
-# CHECK: ccmpal {of} 123(%r8,%rax,4), %ecx
+ ccmpaw {dfv=of} 123(%r8,%rax,4), %dx
+# CHECK: ccmpal {dfv=of} 123(%r8,%rax,4), %ecx
# CHECK: encoding: [0x62,0xd4,0x44,0x07,0x3b,0x4c,0x80,0x7b]
- ccmpal {of} 123(%r8,%rax,4), %ecx
-# CHECK: ccmpaq {of} 123(%r8,%rax,4), %r9
+ ccmpal {dfv=of} 123(%r8,%rax,4), %ecx
+# CHECK: ccmpaq {dfv=of} 123(%r8,%rax,4), %r9
# CHECK: encoding: [0x62,0x54,0xc4,0x07,0x3b,0x4c,0x80,0x7b]
- ccmpaq {of} 123(%r8,%rax,4), %r9
-# CHECK: ccmpab {of} $123, %bl
+ ccmpaq {dfv=of} 123(%r8,%rax,4), %r9
+# CHECK: ccmpab {dfv=of} $123, %bl
# CHECK: encoding: [0x62,0xf4,0x44,0x07,0x80,0xfb,0x7b]
- ccmpab {of} $123, %bl
-# CHECK: ccmpaw {of} $123, %dx
+ ccmpab {dfv=of} $123, %bl
+# CHECK: ccmpaw {dfv=of} $123, %dx
# CHECK: encoding: [0x62,0xf4,0x45,0x07,0x83,0xfa,0x7b]
- ccmpaw {of} $123, %dx
-# CHECK: ccmpal {of} $123, %ecx
+ ccmpaw {dfv=of} $123, %dx
+# CHECK: ccmpal {dfv=of} $123, %ecx
# CHECK: encoding: [0x62,0xf4,0x44,0x07,0x83,0xf9,0x7b]
- ccmpal {of} $123, %ecx
-# CHECK: ccmpaq {of} $123, %r9
+ ccmpal {dfv=of} $123, %ecx
+# CHECK: ccmpaq {dfv=of} $123, %r9
# CHECK: encoding: [0x62,0xd4,0xc4,0x07,0x83,0xf9,0x7b]
- ccmpaq {of} $123, %r9
-# CHECK: ccmpaw {of} $1234, %dx
+ ccmpaq {dfv=of} $123, %r9
+# CHECK: ccmpaw {dfv=of} $1234, %dx
# CHECK: encoding: [0x62,0xf4,0x45,0x07,0x81,0xfa,0xd2,0x04]
- ccmpaw {of} $1234, %dx
-# CHECK: ccmpal {of} $123456, %ecx
+ ccmpaw {dfv=of} $1234, %dx
+# CHECK: ccmpal {dfv=of} $123456, %ecx
# CHECK: encoding: [0x62,0xf4,0x44,0x07,0x81,0xf9,0x40,0xe2,0x01,0x00]
- ccmpal {of} $123456, %ecx
-# CHECK: ccmpaq {of} $123456, %r9
+ ccmpal {dfv=of} $123456, %ecx
+# CHECK: ccmpaq {dfv=of} $123456, %r9
# CHECK: encoding: [0x62,0xd4,0xc4,0x07,0x81,0xf9,0x40,0xe2,0x01,0x00]
- ccmpaq {of} $123456, %r9
-# CHECK: ccmpab {of} %bl, %dl
+ ccmpaq {dfv=of} $123456, %r9
+# CHECK: ccmpab {dfv=of} %bl, %dl
# CHECK: encoding: [0x62,0xf4,0x44,0x07,0x38,0xda]
- ccmpab {of} %bl, %dl
-# CHECK: ccmpaw {of} %dx, %ax
+ ccmpab {dfv=of} %bl, %dl
+# CHECK: ccmpaw {dfv=of} %dx, %ax
# CHECK: encoding: [0x62,0xf4,0x45,0x07,0x39,0xd0]
- ccmpaw {of} %dx, %ax
-# CHECK: ccmpal {of} %ecx, %edx
+ ccmpaw {dfv=of} %dx, %ax
+# CHECK: ccmpal {dfv=of} %ecx, %edx
# CHECK: encoding: [0x62,0xf4,0x44,0x07,0x39,0xca]
- ccmpal {of} %ecx, %edx
-# CHECK: ccmpaq {of} %r9, %r15
+ ccmpal {dfv=of} %ecx, %edx
+# CHECK: ccmpaq {dfv=of} %r9, %r15
# CHECK: encoding: [0x62,0x54,0xc4,0x07,0x39,0xcf]
- ccmpaq {of} %r9, %r15
-# CHECK: ccmpgeb {of} $123, 123(%r8,%rax,4)
+ ccmpaq {dfv=of} %r9, %r15
+# CHECK: ccmpgeb {dfv=of} $123, 123(%r8,%rax,4)
# CHECK: encoding: [0x62,0xd4,0x44,0x0d,0x80,0x7c,0x80,0x7b,0x7b]
- ccmpgeb {of} $123, 123(%r8,%rax,4)
-# CHECK: ccmpgew {of} $123, 123(%r8,%rax,4)
+ ccmpgeb {dfv=of} $123, 123(%r8,%rax,4)
+# CHECK: ccmpgew {dfv=of} $123, 123(%r8,%rax,4)
# CHECK: encoding: [0x62,0xd4,0x45,0x0d,0x83,0x7c,0x80,0x7b,0x7b]
- ccmpgew {of} $123, 123(%r8,%rax,4)
-# CHECK: ccmpgew {of} $1234, 123(%r8,%rax,4)
+ ccmpgew {dfv=of} $123, 123(%r8,%rax,4)
+# CHECK: ccmpgew {dfv=of} $1234, 123(%r8,%rax,4)
# CHECK: encoding: [0x62,0xd4,0x45,0x0d,0x81,0x7c,0x80,0x7b,0xd2,0x04]
- ccmpgew {of} $1234, 123(%r8,%rax,4)
-# CHECK: ccmpgel {of} $123, 123(%r8,%rax,4)
+ ccmpgew {dfv=of} $1234, 123(%r8,%rax,4)
+# CHECK: ccmpgel {dfv=of} $123, 123(%r8,%rax,4)
# CHECK: encoding: [0x62,0xd4,0x44,0x0d,0x83,0x7c,0x80,0x7b,0x7b]
- ccmpgel {of} $123, 123(%r8,%rax,4)
-# CHECK: ccmpgel {of} $123456, 123(%r8,%rax,4)
+ ccmpgel {dfv=of} $123, 123(%r8,%rax,4)
+# CHECK: ccmpgel {dfv=of} $123456, 123(%r8,%rax,4)
# CHECK: encoding: [0x62,0xd4,0x44,0x0d,0x81,0x7c,0x80,0x7b,0x40,0xe2,0x01,0x00]
- ccmpgel {of} $123456, 123(%r8,%rax,4)
-# CHECK: ccmpgeq {of} $123, 123(%r8,%rax,4)
+ ccmpgel {dfv=of} $123456, 123(%r8,%rax,4)
+# CHECK: ccmpgeq {dfv=of} $123, 123(%r8,%rax,4)
# CHECK: encoding: [0x62,0xd4,0xc4,0x0d,0x83,0x7c,0x80,0x7b,0x7b]
- ccmpgeq {of} $123, 123(%r8,%rax,4)
-# CHECK: ccmpgeq {of} $123456, 123(%r8,%rax,4)
+ ccmpgeq {dfv=of} $123, 123(%r8,%rax,4)
+# CHECK: ccmpgeq {dfv=of} $123456, 123(%r8,%rax,4)
# CHECK: encoding: [0x62,0xd4,0xc4,0x0d,0x81,0x7c,0x80,0x7b,0x40,0xe2,0x01,0x00]
- ccmpgeq {of} $123456, 123(%r8,%rax,4)
-# CHECK: ccmpgeb {of} %bl, 123(%r8,%rax,4)
+ ccmpgeq {dfv=of} $123456, 123(%r8,%rax,4)
+# CHECK: ccmpgeb {dfv=of} %bl, 123(%r8,%rax,4)
# CHECK: encoding: [0x62,0xd4,0x44,0x0d,0x38,0x5c,0x80,0x7b]
- ccmpgeb {of} %bl, 123(%r8,%rax,4)
-# CHECK: ccmpgew {of} %dx, 123(%r8,%rax,4)
+ ccmpgeb {dfv=of} %bl, 123(%r8,%rax,4)
+# CHECK: ccmpgew {dfv=of} %dx, 123(%r8,%rax,4)
# CHECK: encoding: [0x62,0xd4,0x45,0x0d,0x39,0x54,0x80,0x7b]
- ccmpgew {of} %dx, 123(%r8,%rax,4)
-# CHECK: ccmpgel {of} %ecx, 123(%r8,%rax,4)
+ ccmpgew {dfv=of} %dx, 123(%r8,%rax,4)
+# CHECK: ccmpgel {dfv=of} %ecx, 123(%r8,%rax,4)
# CHECK: encoding: [0x62,0xd4,0x44,0x0d,0x39,0x4c,0x80,0x7b]
- ccmpgel {of} %ecx, 123(%r8,%rax,4)
-# CHECK: ccmpgeq {of} %r9, 123(%r8,%rax,4)
+ ccmpgel {dfv=of} %ecx, 123(%r8,%rax,4)
+# CHECK: ccmpgeq {dfv=of} %r9, 123(%r8,%rax,4)
# CHECK: encoding: [0x62,0x54,0xc4,0x0d,0x39,0x4c,0x80,0x7b]
- ccmpgeq {of} %r9, 123(%r8,%rax,4)
-# CHECK: ccmpgeb {of} 123(%r8,%rax,4), %bl
+ ccmpgeq {dfv=of} %r9, 123(%r8,%rax,4)
+# CHECK: ccmpgeb {dfv=of} 123(%r8,%rax,4), %bl
# CHECK: encoding: [0x62,0xd4,0x44,0x0d,0x3a,0x5c,0x80,0x7b]
- ccmpgeb {of} 123(%r8,%rax,4), %bl
-# CHECK: ccmpgew {of} 123(%r8,%rax,4), %dx
+ ccmpgeb {dfv=of} 123(%r8,%rax,4), %bl
+# CHECK: ccmpgew {dfv=of} 123(%r8,%rax,4), %dx
# CHECK: encoding: [0x62,0xd4,0x45,0x0d,0x3b,0x54,0x80,0x7b]
- ccmpgew {of} 123(%r8,%rax,4), %dx
-# CHECK: ccmpgel {of} 123(%r8,%rax,4), %ecx
+ ccmpgew {dfv=of} 123(%r8,%rax,4), %dx
+# CHECK: ccmpgel {dfv=of} 123(%r8,%rax,4), %ecx
# CHECK: encoding: [0x62,0xd4,0x44,0x0d,0x3b,0x4c,0x80,0x7b]
- ccmpgel {of} 123(%r8,%rax,4), %ecx
-# CHECK: ccmpgeq {of} 123(%r8,%rax,4), %r9
+ ccmpgel {dfv=of} 123(%r8,%rax,4), %ecx
+# CHECK: ccmpgeq {dfv=of} 123(%r8,%rax,4), %r9
# CHECK: encoding: [0x62,0x54,0xc4,0x0d,0x3b,0x4c,0x80,0x7b]
- ccmpgeq {of} 123(%r8,%rax,4), %r9
-# CHECK: ccmpgeb {of} $123, %bl
+ ccmpgeq {dfv=of} 123(%r8,%rax,4), %r9
+# CHECK: ccmpgeb {dfv=of} $123, %bl
# CHECK: encoding: [0x62,0xf4,0x44,0x0d,0x80,0xfb,0x7b]
- ccmpgeb {of} $123, %bl
-# CHECK: ccmpgew {of} $123, %dx
+ ccmpgeb {dfv=of} $123, %bl
+# CHECK: ccmpgew {dfv=of} $123, %dx
# CHECK: encoding: [0x62,0xf4,0x45,0x0d,0x83,0xfa,0x7b]
- ccmpgew {of} $123, %dx
-# CHECK: ccmpgel {of} $123, %ecx
+ ccmpgew {dfv=of} $123, %dx
+# CHECK: ccmpgel {dfv=of} $123, %ecx
# CHECK: encoding: [0x62,0xf4,0x44,0x0d,0x83,0xf9,0x7b]
- ccmpgel {of} $123, %ecx
-# CHECK: ccmpgeq {of} $123, %r9
+ ccmpgel {dfv=of} $123, %ecx
+# CHECK: ccmpgeq {dfv=of} $123, %r9
# CHECK: encoding: [0x62,0xd4,0xc4,0x0d,0x83,0xf9,0x7b]
- ccmpgeq {of} $123, %r9
-# CHECK: ccmpgew {of} $1234, %dx
+ ccmpgeq {dfv=of} $123, %r9
+# CHECK: ccmpgew {dfv=of} $1234, %dx
# CHECK: encoding: [0x62,0xf4,0x45,0x0d,0x81,0xfa,0xd2,0x04]
- ccmpgew {of} $1234, %dx
-# CHECK: ccmpgel {of} $123456, %ecx
+ ccmpgew {dfv=of} $1234, %dx
+# CHECK: ccmpgel {dfv=of} $123456, %ecx
# CHECK: encoding: [0x62,0xf4,0x44,0x0d,0x81,0xf9,0x40,0xe2,0x01,0x00]
- ccmpgel {of} $123456, %ecx
-# CHECK: ccmpgeq {of} $123456, %r9
+ ccmpgel {dfv=of} $123456, %ecx
+# CHECK: ccmpgeq {dfv=of} $123456, %r9
# CHECK: encoding: [0x62,0xd4,0xc4,0x0d,0x81,0xf9,0x40,0xe2,0x01,0x00]
- ccmpgeq {of} $123456, %r9
-# CHECK: ccmpgeb {of} %bl, %dl
+ ccmpgeq {dfv=of} $123456, %r9
+# CHECK: ccmpgeb {dfv=of} %bl, %dl
# CHECK: encoding: [0x62,0xf4,0x44,0x0d,0x38,0xda]
- ccmpgeb {of} %bl, %dl
-# CHECK: ccmpgew {of} %dx, %ax
+ ccmpgeb {dfv=of} %bl, %dl
+# CHECK: ccmpgew {dfv=of} %dx, %ax
# CHECK: encoding: [0x62,0xf4,0x45,0x0d,0x39,0xd0]
- ccmpgew {of} %dx, %ax
-# CHECK: ccmpgel {of} %ecx, %edx
+ ccmpgew {dfv=of} %dx, %ax
+# CHECK: ccmpgel {dfv=of} %ecx, %edx
# CHECK: encoding: [0x62,0xf4,0x44,0x0d,0x39,0xca]
- ccmpgel {of} %ecx, %edx
-# CHECK: ccmpgeq {of} %r9, %r15
+ ccmpgel {dfv=of} %ecx, %edx
+# CHECK: ccmpgeq {dfv=of} %r9, %r15
# CHECK: encoding: [0x62,0x54,0xc4,0x0d,0x39,0xcf]
- ccmpgeq {of} %r9, %r15
-# CHECK: ccmpgb {of} $123, 123(%r8,%rax,4)
+ ccmpgeq {dfv=of} %r9, %r15
+# CHECK: ccmpgb {dfv=of} $123, 123(%r8,%rax,4)
# CHECK: encoding: [0x62,0xd4,0x44,0x0f,0x80,0x7c,0x80,0x7b,0x7b]
- ccmpgb {of} $123, 123(%r8,%rax,4)
-# CHECK: ccmpgw {of} $123, 123(%r8,%rax,4)
+ ccmpgb {dfv=of} $123, 123(%r8,%rax,4)
+# CHECK: ccmpgw {dfv=of} $123, 123(%r8,%rax,4)
# CHECK: encoding: [0x62,0xd4,0x45,0x0f,0x83,0x7c,0x80,0x7b,0x7b]
- ccmpgw {of} $123, 123(%r8,%rax,4)
-# CHECK: ccmpgw {of} $1234, 123(%r8,%rax,4)
+ ccmpgw {dfv=of} $123, 123(%r8,%rax,4)
+# CHECK: ccmpgw {dfv=of} $1234, 123(%r8,%rax,4)
# CHECK: encoding: [0x62,0xd4,0x45,0x0f,0x81,0x7c,0x80,0x7b,0xd2,0x04]
- ccmpgw {of} $1234, 123(%r8,%rax,4)
-# CHECK: ccmpgl {of} $123, 123(%r8,%rax,4)
+ ccmpgw {dfv=of} $1234, 123(%r8,%rax,4)
+# CHECK: ccmpgl {dfv=of} $123, 123(%r8,%rax,4)
# CHECK: encoding: [0x62,0xd4,0x44,0x0f,0x83,0x7c,0x80,0x7b,0x7b]
- ccmpgl {of} $123, 123(%r8,%rax,4)
-# CHECK: ccmpgl {of} $123456, 123(%r8,%rax,4)
+ ccmpgl {dfv=of} $123, 123(%r8,%rax,4)
+# CHECK: ccmpgl {dfv=of} $123456, 123(%r8,%rax,4)
# CHECK: encoding: [0x62,0xd4,0x44,0x0f,0x81,0x7c,0x80,0x7b,0x40,0xe2,0x01,0x00]
- ccmpgl {of} $123456, 123(%r8,%rax,4)
-# CHECK: ccmpgq {of} $123, 123(%r8,%rax,4)
+ ccmpgl {dfv=of} $123456, 123(%r8,%rax,4)
+# CHECK: ccmpgq {dfv=of} $123, 123(%r8,%rax,4)
# CHECK: encoding: [0x62,0xd4,0xc4,0x0f,0x83,0x7c,0x80,0x7b,0x7b]
- ccmpgq {of} $123, 123(%r8,%rax,4)
-# CHECK: ccmpgq {of} $123456, 123(%r8,%rax,4)
+ ccmpgq {dfv=of} $123, 123(%r8,%rax,4)
+# CHECK: ccmpgq {dfv=of} $123456, 123(%r8,%rax,4)
# CHECK: encoding: [0x62,0xd4,0xc4,0x0f,0x81,0x7c,0x80,0x7b,0x40,0xe2,0x01,0x00]
- ccmpgq {of} $123456, 123(%r8,%rax,4)
-# CHECK: ccmpgb {of} %bl, 123(%r8,%rax,4)
+ ccmpgq {dfv=of} $123456, 123(%r8,%rax,4)
+# CHECK: ccmpgb {dfv=of} %bl, 123(%r8,%rax,4)
# CHECK: encoding: [0x62,0xd4,0x44,0x0f,0x38,0x5c,0x80,0x7b]
- ccmpgb {of} %bl, 123(%r8,%rax,4)
-# CHECK: ccmpgw {of} %dx, 123(%r8,%rax,4)
+ ccmpgb {dfv=of} %bl, 123(%r8,%rax,4)
+# CHECK: ccmpgw {dfv=of} %dx, 123(%r8,%rax,4)
# CHECK: encoding: [0x62,0xd4,0x45,0x0f,0x39,0x54,0x80,0x7b]
- ccmpgw {of} %dx, 123(%r8,%rax,4)
-# CHECK: ccmpgl {of} %ecx, 123(%r8,%rax,4)
+ ccmpgw {dfv=of} %dx, 123(%r8,%rax,4)
+# CHECK: ccmpgl {dfv=of} %ecx, 123(%r8,%rax,4)
# CHECK: encoding: [0x62,0xd4,0x44,0x0f,0x39,0x4c,0x80,0x7b]
- ccmpgl {of} %ecx, 123(%r8,%rax,4)
-# CHECK: ccmpgq {of} %r9, 123(%r8,%rax,4)
+ ccmpgl {dfv=of} %ecx, 123(%r8,%rax,4)
+# CHECK: ccmpgq {dfv=of} %r9, 123(%r8,%rax,4)
# CHECK: encoding: [0x62,0x54,0xc4,0x0f,0x39,0x4c,0x80,0x7b]
- ccmpgq {of} %r9, 123(%r8,%rax,4)
-# CHECK: ccmpgb {of} 123(%r8,%rax,4), %bl
+ ccmpgq {dfv=of} %r9, 123(%r8,%rax,4)
+# CHECK: ccmpgb {dfv=of} 123(%r8,%rax,4), %bl
# CHECK: encoding: [0x62,0xd4,0x44,0x0f,0x3a,0x5c,0x80,0x7b]
- ccmpgb {of} 123(%r8,%rax,4), %bl
-# CHECK: ccmpgw {of} 123(%r8,%rax,4), %dx
+ ccmpgb {dfv=of} 123(%r8,%rax,4), %bl
+# CHECK: ccmpgw {dfv=of} 123(%r8,%rax,4), %dx
# CHECK: encoding: [0x62,0xd4,0x45,0x0f,0x3b,0x54,0x80,0x7b]
- ccmpgw {of} 123(%r8,%rax,4), %dx
-# CHECK: ccmpgl {of} 123(%r8,%rax,4), %ecx
+ ccmpgw {dfv=of} 123(%r8,%rax,4), %dx
+# CHECK: ccmpgl {dfv=of} 123(%r8,%rax,4), %ecx
# CHECK: encoding: [0x62,0xd4,0x44,0x0f,0x3b,0x4c,0x80,0x7b]
- ccmpgl {of} 123(%r8,%rax,4), %ecx
-# CHECK: ccmpgq {of} 123(%r8,%rax,4), %r9
+ ccmpgl {dfv=of} 123(%r8,%rax,4), %ecx
+# CHECK: ccmpgq {dfv=of} 123(%r8,%rax,4), %r9
# CHECK: encoding: [0x62,0x54,0xc4,0x0f,0x3b,0x4c,0x80,0x7b]
- ccmpgq {of} 123(%r8,%rax,4), %r9
-# CHECK: ccmpgb {of} $123, %bl
+ ccmpgq {dfv=of} 123(%r8,%rax,4), %r9
+# CHECK: ccmpgb {dfv=of} $123, %bl
# CHECK: encoding: [0x62,0xf4,0x44,0x0f,0x80,0xfb,0x7b]
- ccmpgb {of} $123, %bl
-# CHECK: ccmpgw {of} $123, %dx
+ ccmpgb {dfv=of} $123, %bl
+# CHECK: ccmpgw {dfv=of} $123, %dx
# CHECK: encoding: [0x62,0xf4,0x45,0x0f,0x83,0xfa,0x7b]
- ccmpgw {of} $123, %dx
-# CHECK: ccmpgl {of} $123, %ecx
+ ccmpgw {dfv=of} $123, %dx
+# CHECK: ccmpgl {dfv=of} $123, %ecx
# CHECK: encoding: [0x62,0xf4,0x44,0x0f,0x83,0xf9,0x7b]
- ccmpgl {of} $123, %ecx
-# CHECK: ccmpgq {of} $123, %r9
+ ccmpgl {dfv=of} $123, %ecx
+# CHECK: ccmpgq {dfv=of} $123, %r9
# CHECK: encoding: [0x62,0xd4,0xc4,0x0f,0x83,0xf9,0x7b]
- ccmpgq {of} $123, %r9
-# CHECK: ccmpgw {of} $1234, %dx
+ ccmpgq {dfv=of} $123, %r9
+# CHECK: ccmpgw {dfv=of} $1234, %dx
# CHECK: encoding: [0x62,0xf4,0x45,0x0f,0x81,0xfa,0xd2,0x04]
- ccmpgw {of} $1234, %dx
-# CHECK: ccmpgl {of} $123456, %ecx
+ ccmpgw {dfv=of} $1234, %dx
+# CHECK: ccmpgl {dfv=of} $123456, %ecx
# CHECK: encoding: [0x62,0xf4,0x44,0x0f,0x81,0xf9,0x40,0xe2,0x01,0x00]
- ccmpgl {of} $123456, %ecx
-# CHECK: ccmpgq {of} $123456, %r9
+ ccmpgl {dfv=of} $123456, %ecx
+# CHECK: ccmpgq {dfv=of} $123456, %r9
# CHECK: encoding: [0x62,0xd4,0xc4,0x0f,0x81,0xf9,0x40,0xe2,0x01,0x00]
- ccmpgq {of} $123456, %r9
-# CHECK: ccmpgb {of} %bl, %dl
+ ccmpgq {dfv=of} $123456, %r9
+# CHECK: ccmpgb {dfv=of} %bl, %dl
# CHECK: encoding: [0x62,0xf4,0x44,0x0f,0x38,0xda]
- ccmpgb {of} %bl, %dl
-# CHECK: ccmpgw {of} %dx, %ax
+ ccmpgb {dfv=of} %bl, %dl
+# CHECK: ccmpgw {dfv=of} %dx, %ax
# CHECK: encoding: [0x62,0xf4,0x45,0x0f,0x39,0xd0]
- ccmpgw {of} %dx, %ax
-# CHECK: ccmpgl {of} %ecx, %edx
+ ccmpgw {dfv=of} %dx, %ax
+# CHECK: ccmpgl {dfv=of} %ecx, %edx
# CHECK: encoding: [0x62,0xf4,0x44,0x0f,0x39,0xca]
- ccmpgl {of} %ecx, %edx
-# CHECK: ccmpgq {of} %r9, %r15
+ ccmpgl {dfv=of} %ecx, %edx
+# CHECK: ccmpgq {dfv=of} %r9, %r15
# CHECK: encoding: [0x62,0x54,0xc4,0x0f,0x39,0xcf]
- ccmpgq {of} %r9, %r15
-# CHECK: ccmpnob {of} $123, 123(%r8,%rax,4)
+ ccmpgq {dfv=of} %r9, %r15
+# CHECK: ccmpnob {dfv=of} $123, 123(%r8,%rax,4)
# CHECK: encoding: [0x62,0xd4,0x44,0x01,0x80,0x7c,0x80,0x7b,0x7b]
- ccmpnob {of} $123, 123(%r8,%rax,4)
-# CHECK: ccmpnow {of} $123, 123(%r8,%rax,4)
+ ccmpnob {dfv=of} $123, 123(%r8,%rax,4)
+# CHECK: ccmpnow {dfv=of} $123, 123(%r8,%rax,4)
# CHECK: encoding: [0x62,0xd4,0x45,0x01,0x83,0x7c,0x80,0x7b,0x7b]
- ccmpnow {of} $123, 123(%r8,%rax,4)
-# CHECK: ccmpnow {of} $1234, 123(%r8,%rax,4)
+ ccmpnow {dfv=of} $123, 123(%r8,%rax,4)
+# CHECK: ccmpnow {dfv=of} $1234, 123(%r8,%rax,4)
# CHECK: encoding: [0x62,0xd4,0x45,0x01,0x81,0x7c,0x80,0x7b,0xd2,0x04]
- ccmpnow {of} $1234, 123(%r8,%rax,4)
-# CHECK: ccmpnol {of} $123, 123(%r8,%rax,4)
+ ccmpnow {dfv=of} $1234, 123(%r8,%rax,4)
+# CHECK: ccmpnol {dfv=of} $123, 123(%r8,%rax,4)
# CHECK: encoding: [0x62,0xd4,0x44,0x01,0x83,0x7c,0x80,0x7b,0x7b]
- ccmpnol {of} $123, 123(%r8,%rax,4)
-# CHECK: ccmpnol {of} $123456, 123(%r8,%rax,4)
+ ccmpnol {dfv=of} $123, 123(%r8,%rax,4)
+# CHECK: ccmpnol {dfv=of} $123456, 123(%r8,%rax,4)
# CHECK: encoding: [0x62,0xd4,0x44,0x01,0x81,0x7c,0x80,0x7b,0x40,0xe2,0x01,0x00]
- ccmpnol {of} $123456, 123(%r8,%rax,4)
-# CHECK: ccmpnoq {of} $123, 123(%r8,%rax,4)
+ ccmpnol {dfv=of} $123456, 123(%r8,%rax,4)
+# CHECK: ccmpnoq {dfv=of} $123, 123(%r8,%rax,4)
# CHECK: encoding: [0x62,0xd4,0xc4,0x01,0x83,0x7c,0x80,0x7b,0x7b]
- ccmpnoq {of} $123, 123(%r8,%rax,4)
-# CHECK: ccmpnoq {of} $123456, 123(%r8,%rax,4)
+ ccmpnoq {dfv=of} $123, 123(%r8,%rax,4)
+# CHECK: ccmpnoq {dfv=of} $123456, 123(%r8,%rax,4)
# CHECK: encoding: [0x62,0xd4,0xc4,0x01,0x81,0x7c,0x80,0x7b,0x40,0xe2,0x01,0x00]
- ccmpnoq {of} $123456, 123(%r8,%rax,4)
-# CHECK: ccmpnob {of} %bl, 123(%r8,%rax,4)
+ ccmpnoq {dfv=of} $123456, 123(%r8,%rax,4)
+# CHECK: ccmpnob {dfv=of} %bl, 123(%r8,%rax,4)
# CHECK: encoding: [0x62,0xd4,0x44,0x01,0x38,0x5c,0x80,0x7b]
- ccmpnob {of} %bl, 123(%r8,%rax,4)
-# CHECK: ccmpnow {of} %dx, 123(%r8,%rax,4)
+ ccmpnob {dfv=of} %bl, 123(%r8,%rax,4)
+# CHECK: ccmpnow {dfv=of} %dx, 123(%r8,%rax,4)
# CHECK: encoding: [0x62,0xd4,0x45,0x01,0x39,0x54,0x80,0x7b]
- ccmpnow {of} %dx, 123(%r8,%rax,4)
-# CHECK: ccmpnol {of} %ecx, 123(%r8,%rax,4)
+ ccmpnow {dfv=of} %dx, 123(%r8,%rax,4)
+# CHECK: ccmpnol {dfv=of} %ecx, 123(%r8,%rax,4)
# CHECK: encoding: [0x62,0xd4,0x44,0x01,0x39,0x4c,0x80,0x7b]
- ccmpnol {of} %ecx, 123(%r8,%rax,4)
-# CHECK: ccmpnoq {of} %r9, 123(%r8,%rax,4)
+ ccmpnol {dfv=of} %ecx, 123(%r8,%rax,4)
+# CHECK: ccmpnoq {dfv=of} %r9, 123(%r8,%rax,4)
# CHECK: encoding: [0x62,0x54,0xc4,0x01,0x39,0x4c,0x80,0x7b]
- ccmpnoq {of} %r9, 123(%r8,%rax,4)
-# CHECK: ccmpnob {of} 123(%r8,%rax,4), %bl
+ ccmpnoq {dfv=of} %r9, 123(%r8,%rax,4)
+# CHECK: ccmpnob {dfv=of} 123(%r8,%rax,4), %bl
# CHECK: encoding: [0x62,0xd4,0x44,0x01,0x3a,0x5c,0x80,0x7b]
- ccmpnob {of} 123(%r8,%rax,4), %bl
-# CHECK: ccmpnow {of} 123(%r8,%rax,4), %dx
+ ccmpnob {dfv=of} 123(%r8,%rax,4), %bl
+# CHECK: ccmpnow {dfv=of} 123(%r8,%rax,4), %dx
# CHECK: encoding: [0x62,0xd4,0x45,0x01,0x3b,0x54,0x80,0x7b]
- ccmpnow {of} 123(%r8,%rax,4), %dx
-# CHECK: ccmpnol {of} 123(%r8,%rax,4), %ecx
+ ccmpnow {dfv=of} 123(%r8,%rax,4), %dx
+# CHECK: ccmpnol {dfv=of} 123(%r8,%rax,4), %ecx
# CHECK: encoding: [0x62,0xd4,0x44,0x01,0x3b,0x4c,0x80,0x7b]
- ccmpnol {of} 123(%r8,%rax,4), %ecx
-# CHECK: ccmpnoq {of} 123(%r8,%rax,4), %r9
+ ccmpnol {dfv=of} 123(%r8,%rax,4), %ecx
+# CHECK: ccmpnoq {dfv=of} 123(%r8,%rax,4), %r9
# CHECK: encoding: [0x62,0x54,0xc4,0x01,0x3b,0x4c,0x80,0x7b]
- ccmpnoq {of} 123(%r8,%rax,4), %r9
-# CHECK: ccmpnob {of} $123, %bl
+ ccmpnoq {dfv=of} 123(%r8,%rax,4), %r9
+# CHECK: ccmpnob {dfv=of} $123, %bl
# CHECK: encoding: [0x62,0xf4,0x44,0x01,0x80,0xfb,0x7b]
- ccmpnob {of} $123, %bl
-# CHECK: ccmpnow {of} $123, %dx
+ ccmpnob {dfv=of} $123, %bl
+# CHECK: ccmpnow {dfv=of} $123, %dx
# CHECK: encoding: [0x62,0xf4,0x45,0x01,0x83,0xfa,0x7b]
- ccmpnow {of} $123, %dx
-# CHECK: ccmpnol {of} $123, %ecx
+ ccmpnow {dfv=of} $123, %dx
+# CHECK: ccmpnol {dfv=of} $123, %ecx
# CHECK: encoding: [0x62,0xf4,0x44,0x01,0x83,0xf9,0x7b]
- ccmpnol {of} $123, %ecx
-# CHECK: ccmpnoq {of} $123, %r9
+ ccmpnol {dfv=of} $123, %ecx
+# CHECK: ccmpnoq {dfv=of} $123, %r9
# CHECK: encoding: [0x62,0xd4,0xc4,0x01,0x83,0xf9,0x7b]
- ccmpnoq {of} $123, %r9
-# CHECK: ccmpnow {of} $1234, %dx
+ ccmpnoq {dfv=of} $123, %r9
+# CHECK: ccmpnow {dfv=of} $1234, %dx
# CHECK: encoding: [0x62,0xf4,0x45,0x01,0x81,0xfa,0xd2,0x04]
- ccmpnow {of} $1234, %dx
-# CHECK: ccmpnol {of} $123456, %ecx
+ ccmpnow {dfv=of} $1234, %dx
+# CHECK: ccmpnol {dfv=of} $123456, %ecx
# CHECK: encoding: [0x62,0xf4,0x44,0x01,0x81,0xf9,0x40,0xe2,0x01,0x00]
- ccmpnol {of} $123456, %ecx
-# CHECK: ccmpnoq {of} $123456, %r9
+ ccmpnol {dfv=of} $123456, %ecx
+# CHECK: ccmpnoq {dfv=of} $123456, %r9
# CHECK: encoding: [0x62,0xd4,0xc4,0x01,0x81,0xf9,0x40,0xe2,0x01,0x00]
- ccmpnoq {of} $123456, %r9
-# CHECK: ccmpnob {of} %bl, %dl
+ ccmpnoq {dfv=of} $123456, %r9
+# CHECK: ccmpnob {dfv=of} %bl, %dl
# CHECK: encoding: [0x62,0xf4,0x44,0x01,0x38,0xda]
- ccmpnob {of} %bl, %dl
-# CHECK: ccmpnow {of} %dx, %ax
+ ccmpnob {dfv=of} %bl, %dl
+# CHECK: ccmpnow {dfv=of} %dx, %ax
# CHECK: encoding: [0x62,0xf4,0x45,0x01,0x39,0xd0]
- ccmpnow {of} %dx, %ax
-# CHECK: ccmpnol {of} %ecx, %edx
+ ccmpnow {dfv=of} %dx, %ax
+# CHECK: ccmpnol {dfv=of} %ecx, %edx
# CHECK: encoding: [0x62,0xf4,0x44,0x01,0x39,0xca]
- ccmpnol {of} %ecx, %edx
-# CHECK: ccmpnoq {of} %r9, %r15
+ ccmpnol {dfv=of} %ecx, %edx
+# CHECK: ccmpnoq {dfv=of} %r9, %r15
# CHECK: encoding: [0x62,0x54,0xc4,0x01,0x39,0xcf]
- ccmpnoq {of} %r9, %r15
-# CHECK: ccmpnsb {of} $123, 123(%r8,%rax,4)
+ ccmpnoq {dfv=of} %r9, %r15
+# CHECK: ccmpnsb {dfv=of} $123, 123(%r8,%rax,4)
# CHECK: encoding: [0x62,0xd4,0x44,0x09,0x80,0x7c,0x80,0x7b,0x7b]
- ccmpnsb {of} $123, 123(%r8,%rax,4)
-# CHECK: ccmpnsw {of} $123, 123(%r8,%rax,4)
+ ccmpnsb {dfv=of} $123, 123(%r8,%rax,4)
+# CHECK: ccmpnsw {dfv=of} $123, 123(%r8,%rax,4)
# CHECK: encoding: [0x62,0xd4,0x45,0x09,0x83,0x7c,0x80,0x7b,0x7b]
- ccmpnsw {of} $123, 123(%r8,%rax,4)
-# CHECK: ccmpnsw {of} $1234, 123(%r8,%rax,4)
+ ccmpnsw {dfv=of} $123, 123(%r8,%rax,4)
+# CHECK: ccmpnsw {dfv=of} $1234, 123(%r8,%rax,4)
# CHECK: encoding: [0x62,0xd4,0x45,0x09,0x81,0x7c,0x80,0x7b,0xd2,0x04]
- ccmpnsw {of} $1234, 123(%r8,%rax,4)
-# CHECK: ccmpnsl {of} $123, 123(%r8,%rax,4)
+ ccmpnsw {dfv=of} $1234, 123(%r8,%rax,4)
+# CHECK: ccmpnsl {dfv=of} $123, 123(%r8,%rax,4)
# CHECK: encoding: [0x62,0xd4,0x44,0x09,0x83,0x7c,0x80,0x7b,0x7b]
- ccmpnsl {of} $123, 123(%r8,%rax,4)
-# CHECK: ccmpnsl {of} $123456, 123(%r8,%rax,4)
+ ccmpnsl {dfv=of} $123, 123(%r8,%rax,4)
+# CHECK: ccmpnsl {dfv=of} $123456, 123(%r8,%rax,4)
# CHECK: encoding: [0x62,0xd4,0x44,0x09,0x81,0x7c,0x80,0x7b,0x40,0xe2,0x01,0x00]
- ccmpnsl {of} $123456, 123(%r8,%rax,4)
-# CHECK: ccmpnsq {of} $123, 123(%r8,%rax,4)
+ ccmpnsl {dfv=of} $123456, 123(%r8,%rax,4)
+# CHECK: ccmpnsq {dfv=of} $123, 123(%r8,%rax,4)
# CHECK: encoding: [0x62,0xd4,0xc4,0x09,0x83,0x7c,0x80,0x7b,0x7b]
- ccmpnsq {of} $123, 123(%r8,%rax,4)
-# CHECK: ccmpnsq {of} $123456, 123(%r8,%rax,4)
+ ccmpnsq {dfv=of} $123, 123(%r8,%rax,4)
+# CHECK: ccmpnsq {dfv=of} $123456, 123(%r8,%rax,4)
# CHECK: encoding: [0x62,0xd4,0xc4,0x09,0x81,0x7c,0x80,0x7b,0x40,0xe2,0x01,0x00]
- ccmpnsq {of} $123456, 123(%r8,%rax,4)
-# CHECK: ccmpnsb {of} %bl, 123(%r8,%rax,4)
+ ccmpnsq {dfv=of} $123456, 123(%r8,%rax,4)
+# CHECK: ccmpnsb {dfv=of} %bl, 123(%r8,%rax,4)
# CHECK: encoding: [0x62,0xd4,0x44,0x09,0x38,0x5c,0x80,0x7b]
- ccmpnsb {of} %bl, 123(%r8,%rax,4)
-# CHECK: ccmpnsw {of} %dx, 123(%r8,%rax,4)
+ ccmpnsb {dfv=of} %bl, 123(%r8,%rax,4)
+# CHECK: ccmpnsw {dfv=of} %dx, 123(%r8,%rax,4)
# CHECK: encoding: [0x62,0xd4,0x45,0x09,0x39,0x54,0x80,0x7b]
- ccmpnsw {of} %dx, 123(%r8,%rax,4)
-# CHECK: ccmpnsl {of} %ecx, 123(%r8,%rax,4)
+ ccmpnsw {dfv=of} %dx, 123(%r8,%rax,4)
+# CHECK: ccmpnsl {dfv=of} %ecx, 123(%r8,%rax,4)
# CHECK: encoding: [0x62,0xd4,0x44,0x09,0x39,0x4c,0x80,0x7b]
- ccmpnsl {of} %ecx, 123(%r8,%rax,4)
-# CHECK: ccmpnsq {of} %r9, 123(%r8,%rax,4)
+ ccmpnsl {dfv=of} %ecx, 123(%r8,%rax,4)
+# CHECK: ccmpnsq {dfv=of} %r9, 123(%r8,%rax,4)
# CHECK: encoding: [0x62,0x54,0xc4,0x09,0x39,0x4c,0x80,0x7b]
- ccmpnsq {of} %r9, 123(%r8,%rax,4)
-# CHECK: ccmpnsb {of} 123(%r8,%rax,4), %bl
+ ccmpnsq {dfv=of} %r9, 123(%r8,%rax,4)
+# CHECK: ccmpnsb {dfv=of} 123(%r8,%rax,4), %bl
# CHECK: encoding: [0x62,0xd4,0x44,0x09,0x3a,0x5c,0x80,0x7b]
- ccmpnsb {of} 123(%r8,%rax,4), %bl
-# CHECK: ccmpnsw {of} 123(%r8,%rax,4), %dx
+ ccmpnsb {dfv=of} 123(%r8,%rax,4), %bl
+# CHECK: ccmpnsw {dfv=of} 123(%r8,%rax,4), %dx
# CHECK: encoding: [0x62,0xd4,0x45,0x09,0x3b,0x54,0x80,0x7b]
- ccmpnsw {of} 123(%r8,%rax,4), %dx
-# CHECK: ccmpnsl {of} 123(%r8,%rax,4), %ecx
+ ccmpnsw {dfv=of} 123(%r8,%rax,4), %dx
+# CHECK: ccmpnsl {dfv=of} 123(%r8,%rax,4), %ecx
# CHECK: encoding: [0x62,0xd4,0x44,0x09,0x3b,0x4c,0x80,0x7b]
- ccmpnsl {of} 123(%r8,%rax,4), %ecx
-# CHECK: ccmpnsq {of} 123(%r8,%rax,4), %r9
+ ccmpnsl {dfv=of} 123(%r8,%rax,4), %ecx
+# CHECK: ccmpnsq {dfv=of} 123(%r8,%rax,4), %r9
# CHECK: encoding: [0x62,0x54,0xc4,0x09,0x3b,0x4c,0x80,0x7b]
- ccmpnsq {of} 123(%r8,%rax,4), %r9
-# CHECK: ccmpnsb {of} $123, %bl
+ ccmpnsq {dfv=of} 123(%r8,%rax,4), %r9
+# CHECK: ccmpnsb {dfv=of} $123, %bl
# CHECK: encoding: [0x62,0xf4,0x44,0x09,0x80,0xfb,0x7b]
- ccmpnsb {of} $123, %bl
-# CHECK: ccmpnsw {of} $123, %dx
+ ccmpnsb {dfv=of} $123, %bl
+# CHECK: ccmpnsw {dfv=of} $123, %dx
# CHECK: encoding: [0x62,0xf4,0x45,0x09,0x83,0xfa,0x7b]
- ccmpnsw {of} $123, %dx
-# CHECK: ccmpnsl {of} $123, %ecx
+ ccmpnsw {dfv=of} $123, %dx
+# CHECK: ccmpnsl {dfv=of} $123, %ecx
# CHECK: encoding: [0x62,0xf4,0x44,0x09,0x83,0xf9,0x7b]
- ccmpnsl {of} $123, %ecx
-# CHECK: ccmpnsq {of} $123, %r9
+ ccmpnsl {dfv=of} $123, %ecx
+# CHECK: ccmpnsq {dfv=of} $123, %r9
# CHECK: encoding: [0x62,0xd4,0xc4,0x09,0x83,0xf9,0x7b]
- ccmpnsq {of} $123, %r9
-# CHECK: ccmpnsw {of} $1234, %dx
+ ccmpnsq {dfv=of} $123, %r9
+# CHECK: ccmpnsw {dfv=of} $1234, %dx
# CHECK: encoding: [0x62,0xf4,0x45,0x09,0x81,0xfa,0xd2,0x04]
- ccmpnsw {of} $1234, %dx
-# CHECK: ccmpnsl {of} $123456, %ecx
+ ccmpnsw {dfv=of} $1234, %dx
+# CHECK: ccmpnsl {dfv=of} $123456, %ecx
# CHECK: encoding: [0x62,0xf4,0x44,0x09,0x81,0xf9,0x40,0xe2,0x01,0x00]
- ccmpnsl {of} $123456, %ecx
-# CHECK: ccmpnsq {of} $123456, %r9
+ ccmpnsl {dfv=of} $123456, %ecx
+# CHECK: ccmpnsq {dfv=of} $123456, %r9
# CHECK: encoding: [0x62,0xd4,0xc4,0x09,0x81,0xf9,0x40,0xe2,0x01,0x00]
- ccmpnsq {of} $123456, %r9
-# CHECK: ccmpnsb {of} %bl, %dl
+ ccmpnsq {dfv=of} $123456, %r9
+# CHECK: ccmpnsb {dfv=of} %bl, %dl
# CHECK: encoding: [0x62,0xf4,0x44,0x09,0x38,0xda]
- ccmpnsb {of} %bl, %dl
-# CHECK: ccmpnsw {of} %dx, %ax
+ ccmpnsb {dfv=of} %bl, %dl
+# CHECK: ccmpnsw {dfv=of} %dx, %ax
# CHECK: encoding: [0x62,0xf4,0x45,0x09,0x39,0xd0]
- ccmpnsw {of} %dx, %ax
-# CHECK: ccmpnsl {of} %ecx, %edx
+ ccmpnsw {dfv=of} %dx, %ax
+# CHECK: ccmpnsl {dfv=of} %ecx, %edx
# CHECK: encoding: [0x62,0xf4,0x44,0x09,0x39,0xca]
- ccmpnsl {of} %ecx, %edx
-# CHECK: ccmpnsq {of} %r9, %r15
+ ccmpnsl {dfv=of} %ecx, %edx
+# CHECK: ccmpnsq {dfv=of} %r9, %r15
# CHECK: encoding: [0x62,0x54,0xc4,0x09,0x39,0xcf]
- ccmpnsq {of} %r9, %r15
-# CHECK: ccmpneb {of} $123, 123(%r8,%rax,4)
+ ccmpnsq {dfv=of} %r9, %r15
+# CHECK: ccmpneb {dfv=of} $123, 123(%r8,%rax,4)
# CHECK: encoding: [0x62,0xd4,0x44,0x05,0x80,0x7c,0x80,0x7b,0x7b]
- ccmpneb {of} $123, 123(%r8,%rax,4)
-# CHECK: ccmpnew {of} $123, 123(%r8,%rax,4)
+ ccmpneb {dfv=of} $123, 123(%r8,%rax,4)
+# CHECK: ccmpnew {dfv=of} $123, 123(%r8,%rax,4)
# CHECK: encoding: [0x62,0xd4,0x45,0x05,0x83,0x7c,0x80,0x7b,0x7b]
- ccmpnew {of} $123, 123(%r8,%rax,4)
-# CHECK: ccmpnew {of} $1234, 123(%r8,%rax,4)
+ ccmpnew {dfv=of} $123, 123(%r8,%rax,4)
+# CHECK: ccmpnew {dfv=of} $1234, 123(%r8,%rax,4)
# CHECK: encoding: [0x62,0xd4,0x45,0x05,0x81,0x7c,0x80,0x7b,0xd2,0x04]
- ccmpnew {of} $1234, 123(%r8,%rax,4)
-# CHECK: ccmpnel {of} $123, 123(%r8,%rax,4)
+ ccmpnew {dfv=of} $1234, 123(%r8,%rax,4)
+# CHECK: ccmpnel {dfv=of} $123, 123(%r8,%rax,4)
# CHECK: encoding: [0x62,0xd4,0x44,0x05,0x83,0x7c,0x80,0x7b,0x7b]
- ccmpnel {of} $123, 123(%r8,%rax,4)
-# CHECK: ccmpnel {of} $123456, 123(%r8,%rax,4)
+ ccmpnel {dfv=of} $123, 123(%r8,%rax,4)
+# CHECK: ccmpnel {dfv=of} $123456, 123(%r8,%rax,4)
# CHECK: encoding: [0x62,0xd4,0x44,0x05,0x81,0x7c,0x80,0x7b,0x40,0xe2,0x01,0x00]
- ccmpnel {of} $123456, 123(%r8,%rax,4)
-# CHECK: ccmpneq {of} $123, 123(%r8,%rax,4)
+ ccmpnel {dfv=of} $123456, 123(%r8,%rax,4)
+# CHECK: ccmpneq {dfv=of} $123, 123(%r8,%rax,4)
# CHECK: encoding: [0x62,0xd4,0xc4,0x05,0x83,0x7c,0x80,0x7b,0x7b]
- ccmpneq {of} $123, 123(%r8,%rax,4)
-# CHECK: ccmpneq {of} $123456, 123(%r8,%rax,4)
+ ccmpneq {dfv=of} $123, 123(%r8,%rax,4)
+# CHECK: ccmpneq {dfv=of} $123456, 123(%r8,%rax,4)
# CHECK: encoding: [0x62,0xd4,0xc4,0x05,0x81,0x7c,0x80,0x7b,0x40,0xe2,0x01,0x00]
- ccmpneq {of} $123456, 123(%r8,%rax,4)
-# CHECK: ccmpneb {of} %bl, 123(%r8,%rax,4)
+ ccmpneq {dfv=of} $123456, 123(%r8,%rax,4)
+# CHECK: ccmpneb {dfv=of} %bl, 123(%r8,%rax,4)
# CHECK: encoding: [0x62,0xd4,0x44,0x05,0x38,0x5c,0x80,0x7b]
- ccmpneb {of} %bl, 123(%r8,%rax,4)
-# CHECK: ccmpnew {of} %dx, 123(%r8,%rax,4)
+ ccmpneb {dfv=of} %bl, 123(%r8,%rax,4)
+# CHECK: ccmpnew {dfv=of} %dx, 123(%r8,%rax,4)
# CHECK: encoding: [0x62,0xd4,0x45,0x05,0x39,0x54,0x80,0x7b]
- ccmpnew {of} %dx, 123(%r8,%rax,4)
-# CHECK: ccmpnel {of} %ecx, 123(%r8,%rax,4)
+ ccmpnew {dfv=of} %dx, 123(%r8,%rax,4)
+# CHECK: ccmpnel {dfv=of} %ecx, 123(%r8,%rax,4)
# CHECK: encoding: [0x62,0xd4,0x44,0x05,0x39,0x4c,0x80,0x7b]
- ccmpnel {of} %ecx, 123(%r8,%rax,4)
-# CHECK: ccmpneq {of} %r9, 123(%r8,%rax,4)
+ ccmpnel {dfv=of} %ecx, 123(%r8,%rax,4)
+# CHECK: ccmpneq {dfv=of} %r9, 123(%r8,%rax,4)
# CHECK: encoding: [0x62,0x54,0xc4,0x05,0x39,0x4c,0x80,0x7b]
- ccmpneq {of} %r9, 123(%r8,%rax,4)
-# CHECK: ccmpneb {of} 123(%r8,%rax,4), %bl
+ ccmpneq {dfv=of} %r9, 123(%r8,%rax,4)
+# CHECK: ccmpneb {dfv=of} 123(%r8,%rax,4), %bl
# CHECK: encoding: [0x62,0xd4,0x44,0x05,0x3a,0x5c,0x80,0x7b]
- ccmpneb {of} 123(%r8,%rax,4), %bl
-# CHECK: ccmpnew {of} 123(%r8,%rax,4), %dx
+ ccmpneb {dfv=of} 123(%r8,%rax,4), %bl
+# CHECK: ccmpnew {dfv=of} 123(%r8,%rax,4), %dx
# CHECK: encoding: [0x62,0xd4,0x45,0x05,0x3b,0x54,0x80,0x7b]
- ccmpnew {of} 123(%r8,%rax,4), %dx
-# CHECK: ccmpnel {of} 123(%r8,%rax,4), %ecx
+ ccmpnew {dfv=of} 123(%r8,%rax,4), %dx
+# CHECK: ccmpnel {dfv=of} 123(%r8,%rax,4), %ecx
# CHECK: encoding: [0x62,0xd4,0x44,0x05,0x3b,0x4c,0x80,0x7b]
- ccmpnel {of} 123(%r8,%rax,4), %ecx
-# CHECK: ccmpneq {of} 123(%r8,%rax,4), %r9
+ ccmpnel {dfv=of} 123(%r8,%rax,4), %ecx
+# CHECK: ccmpneq {dfv=of} 123(%r8,%rax,4), %r9
# CHECK: encoding: [0x62,0x54,0xc4,0x05,0x3b,0x4c,0x80,0x7b]
- ccmpneq {of} 123(%r8,%rax,4), %r9
-# CHECK: ccmpneb {of} $123, %bl
+ ccmpneq {dfv=of} 123(%r8,%rax,4), %r9
+# CHECK: ccmpneb {dfv=of} $123, %bl
# CHECK: encoding: [0x62,0xf4,0x44,0x05,0x80,0xfb,0x7b]
- ccmpneb {of} $123, %bl
-# CHECK: ccmpnew {of} $123, %dx
+ ccmpneb {dfv=of} $123, %bl
+# CHECK: ccmpnew {dfv=of} $123, %dx
# CHECK: encoding: [0x62,0xf4,0x45,0x05,0x83,0xfa,0x7b]
- ccmpnew {of} $123, %dx
-# CHECK: ccmpnel {of} $123, %ecx
+ ccmpnew {dfv=of} $123, %dx
+# CHECK: ccmpnel {dfv=of} $123, %ecx
# CHECK: encoding: [0x62,0xf4,0x44,0x05,0x83,0xf9,0x7b]
- ccmpnel {of} $123, %ecx
-# CHECK: ccmpneq {of} $123, %r9
+ ccmpnel {dfv=of} $123, %ecx
+# CHECK: ccmpneq {dfv=of} $123, %r9
# CHECK: encoding: [0x62,0xd4,0xc4,0x05,0x83,0xf9,0x7b]
- ccmpneq {of} $123, %r9
-# CHECK: ccmpnew {of} $1234, %dx
+ ccmpneq {dfv=of} $123, %r9
+# CHECK: ccmpnew {dfv=of} $1234, %dx
# CHECK: encoding: [0x62,0xf4,0x45,0x05,0x81,0xfa,0xd2,0x04]
- ccmpnew {of} $1234, %dx
-# CHECK: ccmpnel {of} $123456, %ecx
+ ccmpnew {dfv=of} $1234, %dx
+# CHECK: ccmpnel {dfv=of} $123456, %ecx
# CHECK: encoding: [0x62,0xf4,0x44,0x05,0x81,0xf9,0x40,0xe2,0x01,0x00]
- ccmpnel {of} $123456, %ecx
-# CHECK: ccmpneq {of} $123456, %r9
+ ccmpnel {dfv=of} $123456, %ecx
+# CHECK: ccmpneq {dfv=of} $123456, %r9
# CHECK: encoding: [0x62,0xd4,0xc4,0x05,0x81,0xf9,0x40,0xe2,0x01,0x00]
- ccmpneq {of} $123456, %r9
-# CHECK: ccmpneb {of} %bl, %dl
+ ccmpneq {dfv=of} $123456, %r9
+# CHECK: ccmpneb {dfv=of} %bl, %dl
# CHECK: encoding: [0x62,0xf4,0x44,0x05,0x38,0xda]
- ccmpneb {of} %bl, %dl
-# CHECK: ccmpnew {of} %dx, %ax
+ ccmpneb {dfv=of} %bl, %dl
+# CHECK: ccmpnew {dfv=of} %dx, %ax
# CHECK: encoding: [0x62,0xf4,0x45,0x05,0x39,0xd0]
- ccmpnew {of} %dx, %ax
-# CHECK: ccmpnel {of} %ecx, %edx
+ ccmpnew {dfv=of} %dx, %ax
+# CHECK: ccmpnel {dfv=of} %ecx, %edx
# CHECK: encoding: [0x62,0xf4,0x44,0x05,0x39,0xca]
- ccmpnel {of} %ecx, %edx
-# CHECK: ccmpneq {of} %r9, %r15
+ ccmpnel {dfv=of} %ecx, %edx
+# CHECK: ccmpneq {dfv=of} %r9, %r15
# CHECK: encoding: [0x62,0x54,0xc4,0x05,0x39,0xcf]
- ccmpneq {of} %r9, %r15
-# CHECK: ccmpob {of} $123, 123(%r8,%rax,4)
+ ccmpneq {dfv=of} %r9, %r15
+# CHECK: ccmpob {dfv=of} $123, 123(%r8,%rax,4)
# CHECK: encoding: [0x62,0xd4,0x44,0x00,0x80,0x7c,0x80,0x7b,0x7b]
- ccmpob {of} $123, 123(%r8,%rax,4)
-# CHECK: ccmpow {of} $123, 123(%r8,%rax,4)
+ ccmpob {dfv=of} $123, 123(%r8,%rax,4)
+# CHECK: ccmpow {dfv=of} $123, 123(%r8,%rax,4)
# CHECK: encoding: [0x62,0xd4,0x45,0x00,0x83,0x7c,0x80,0x7b,0x7b]
- ccmpow {of} $123, 123(%r8,%rax,4)
-# CHECK: ccmpow {of} $1234, 123(%r8,%rax,4)
+ ccmpow {dfv=of} $123, 123(%r8,%rax,4)
+# CHECK: ccmpow {dfv=of} $1234, 123(%r8,%rax,4)
# CHECK: encoding: [0x62,0xd4,0x45,0x00,0x81,0x7c,0x80,0x7b,0xd2,0x04]
- ccmpow {of} $1234, 123(%r8,%rax,4)
-# CHECK: ccmpol {of} $123, 123(%r8,%rax,4)
+ ccmpow {dfv=of} $1234, 123(%r8,%rax,4)
+# CHECK: ccmpol {dfv=of} $123, 123(%r8,%rax,4)
# CHECK: encoding: [0x62,0xd4,0x44,0x00,0x83,0x7c,0x80,0x7b,0x7b]
- ccmpol {of} $123, 123(%r8,%rax,4)
-# CHECK: ccmpol {of} $123456, 123(%r8,%rax,4)
+ ccmpol {dfv=of} $123, 123(%r8,%rax,4)
+# CHECK: ccmpol {dfv=of} $123456, 123(%r8,%rax,4)
# CHECK: encoding: [0x62,0xd4,0x44,0x00,0x81,0x7c,0x80,0x7b,0x40,0xe2,0x01,0x00]
- ccmpol {of} $123456, 123(%r8,%rax,4)
-# CHECK: ccmpoq {of} $123, 123(%r8,%rax,4)
+ ccmpol {dfv=of} $123456, 123(%r8,%rax,4)
+# CHECK: ccmpoq {dfv=of} $123, 123(%r8,%rax,4)
# CHECK: encoding: [0x62,0xd4,0xc4,0x00,0x83,0x7c,0x80,0x7b,0x7b]
- ccmpoq {of} $123, 123(%r8,%rax,4)
-# CHECK: ccmpoq {of} $123456, 123(%r8,%rax,4)
+ ccmpoq {dfv=of} $123, 123(%r8,%rax,4)
+# CHECK: ccmpoq {dfv=of} $123456, 123(%r8,%rax,4)
# CHECK: encoding: [0x62,0xd4,0xc4,0x00,0x81,0x7c,0x80,0x7b,0x40,0xe2,0x01,0x00]
- ccmpoq {of} $123456, 123(%r8,%rax,4)
-# CHECK: ccmpob {of} %bl, 123(%r8,%rax,4)
+ ccmpoq {dfv=of} $123456, 123(%r8,%rax,4)
+# CHECK: ccmpob {dfv=of} %bl, 123(%r8,%rax,4)
# CHECK: encoding: [0x62,0xd4,0x44,0x00,0x38,0x5c,0x80,0x7b]
- ccmpob {of} %bl, 123(%r8,%rax,4)
-# CHECK: ccmpow {of} %dx, 123(%r8,%rax,4)
+ ccmpob {dfv=of} %bl, 123(%r8,%rax,4)
+# CHECK: ccmpow {dfv=of} %dx, 123(%r8,%rax,4)
# CHECK: encoding: [0x62,0xd4,0x45,0x00,0x39,0x54,0x80,0x7b]
- ccmpow {of} %dx, 123(%r8,%rax,4)
-# CHECK: ccmpol {of} %ecx, 123(%r8,%rax,4)
+ ccmpow {dfv=of} %dx, 123(%r8,%rax,4)
+# CHECK: ccmpol {dfv=of} %ecx, 123(%r8,%rax,4)
# CHECK: encoding: [0x62,0xd4,0x44,0x00,0x39,0x4c,0x80,0x7b]
- ccmpol {of} %ecx, 123(%r8,%rax,4)
-# CHECK: ccmpoq {of} %r9, 123(%r8,%rax,4)
+ ccmpol {dfv=of} %ecx, 123(%r8,%rax,4)
+# CHECK: ccmpoq {dfv=of} %r9, 123(%r8,%rax,4)
# CHECK: encoding: [0x62,0x54,0xc4,0x00,0x39,0x4c,0x80,0x7b]
- ccmpoq {of} %r9, 123(%r8,%rax,4)
-# CHECK: ccmpob {of} 123(%r8,%rax,4), %bl
+ ccmpoq {dfv=of} %r9, 123(%r8,%rax,4)
+# CHECK: ccmpob {dfv=of} 123(%r8,%rax,4), %bl
# CHECK: encoding: [0x62,0xd4,0x44,0x00,0x3a,0x5c,0x80,0x7b]
- ccmpob {of} 123(%r8,%rax,4), %bl
-# CHECK: ccmpow {of} 123(%r8,%rax,4), %dx
+ ccmpob {dfv=of} 123(%r8,%rax,4), %bl
+# CHECK: ccmpow {dfv=of} 123(%r8,%rax,4), %dx
# CHECK: encoding: [0x62,0xd4,0x45,0x00,0x3b,0x54,0x80,0x7b]
- ccmpow {of} 123(%r8,%rax,4), %dx
-# CHECK: ccmpol {of} 123(%r8,%rax,4), %ecx
+ ccmpow {dfv=of} 123(%r8,%rax,4), %dx
+# CHECK: ccmpol {dfv=of} 123(%r8,%rax,4), %ecx
# CHECK: encoding: [0x62,0xd4,0x44,0x00,0x3b,0x4c,0x80,0x7b]
- ccmpol {of} 123(%r8,%rax,4), %ecx
-# CHECK: ccmpoq {of} 123(%r8,%rax,4), %r9
+ ccmpol {dfv=of} 123(%r8,%rax,4), %ecx
+# CHECK: ccmpoq {dfv=of} 123(%r8,%rax,4), %r9
# CHECK: encoding: [0x62,0x54,0xc4,0x00,0x3b,0x4c,0x80,0x7b]
- ccmpoq {of} 123(%r8,%rax,4), %r9
-# CHECK: ccmpob {of} $123, %bl
+ ccmpoq {dfv=of} 123(%r8,%rax,4), %r9
+# CHECK: ccmpob {dfv=of} $123, %bl
# CHECK: encoding: [0x62,0xf4,0x44,0x00,0x80,0xfb,0x7b]
- ccmpob {of} $123, %bl
-# CHECK: ccmpow {of} $123, %dx
+ ccmpob {dfv=of} $123, %bl
+# CHECK: ccmpow {dfv=of} $123, %dx
# CHECK: encoding: [0x62,0xf4,0x45,0x00,0x83,0xfa,0x7b]
- ccmpow {of} $123, %dx
-# CHECK: ccmpol {of} $123, %ecx
+ ccmpow {dfv=of} $123, %dx
+# CHECK: ccmpol {dfv=of} $123, %ecx
# CHECK: encoding: [0x62,0xf4,0x44,0x00,0x83,0xf9,0x7b]
- ccmpol {of} $123, %ecx
-# CHECK: ccmpoq {of} $123, %r9
+ ccmpol {dfv=of} $123, %ecx
+# CHECK: ccmpoq {dfv=of} $123, %r9
# CHECK: encoding: [0x62,0xd4,0xc4,0x00,0x83,0xf9,0x7b]
- ccmpoq {of} $123, %r9
-# CHECK: ccmpow {of} $1234, %dx
+ ccmpoq {dfv=of} $123, %r9
+# CHECK: ccmpow {dfv=of} $1234, %dx
# CHECK: encoding: [0x62,0xf4,0x45,0x00,0x81,0xfa,0xd2,0x04]
- ccmpow {of} $1234, %dx
-# CHECK: ccmpol {of} $123456, %ecx
+ ccmpow {dfv=of} $1234, %dx
+# CHECK: ccmpol {dfv=of} $123456, %ecx
# CHECK: encoding: [0x62,0xf4,0x44,0x00,0x81,0xf9,0x40,0xe2,0x01,0x00]
- ccmpol {of} $123456, %ecx
-# CHECK: ccmpoq {of} $123456, %r9
+ ccmpol {dfv=of} $123456, %ecx
+# CHECK: ccmpoq {dfv=of} $123456, %r9
# CHECK: encoding: [0x62,0xd4,0xc4,0x00,0x81,0xf9,0x40,0xe2,0x01,0x00]
- ccmpoq {of} $123456, %r9
-# CHECK: ccmpob {of} %bl, %dl
+ ccmpoq {dfv=of} $123456, %r9
+# CHECK: ccmpob {dfv=of} %bl, %dl
# CHECK: encoding: [0x62,0xf4,0x44,0x00,0x38,0xda]
- ccmpob {of} %bl, %dl
-# CHECK: ccmpow {of} %dx, %ax
+ ccmpob {dfv=of} %bl, %dl
+# CHECK: ccmpow {dfv=of} %dx, %ax
# CHECK: encoding: [0x62,0xf4,0x45,0x00,0x39,0xd0]
- ccmpow {of} %dx, %ax
-# CHECK: ccmpol {of} %ecx, %edx
+ ccmpow {dfv=of} %dx, %ax
+# CHECK: ccmpol {dfv=of} %ecx, %edx
# CHECK: encoding: [0x62,0xf4,0x44,0x00,0x39,0xca]
- ccmpol {of} %ecx, %edx
-# CHECK: ccmpoq {of} %r9, %r15
+ ccmpol {dfv=of} %ecx, %edx
+# CHECK: ccmpoq {dfv=of} %r9, %r15
# CHECK: encoding: [0x62,0x54,0xc4,0x00,0x39,0xcf]
- ccmpoq {of} %r9, %r15
-# CHECK: ccmpsb {of} $123, 123(%r8,%rax,4)
+ ccmpoq {dfv=of} %r9, %r15
+# CHECK: ccmpsb {dfv=of} $123, 123(%r8,%rax,4)
# CHECK: encoding: [0x62,0xd4,0x44,0x08,0x80,0x7c,0x80,0x7b,0x7b]
- ccmpsb {of} $123, 123(%r8,%rax,4)
-# CHECK: ccmpsw {of} $123, 123(%r8,%rax,4)
+ ccmpsb {dfv=of} $123, 123(%r8,%rax,4)
+# CHECK: ccmpsw {dfv=of} $123, 123(%r8,%rax,4)
# CHECK: encoding: [0x62,0xd4,0x45,0x08,0x83,0x7c,0x80,0x7b,0x7b]
- ccmpsw {of} $123, 123(%r8,%rax,4)
-# CHECK: ccmpsw {of} $1234, 123(%r8,%rax,4)
+ ccmpsw {dfv=of} $123, 123(%r8,%rax,4)
+# CHECK: ccmpsw {dfv=of} $1234, 123(%r8,%rax,4)
# CHECK: encoding: [0x62,0xd4,0x45,0x08,0x81,0x7c,0x80,0x7b,0xd2,0x04]
- ccmpsw {of} $1234, 123(%r8,%rax,4)
-# CHECK: ccmpsl {of} $123, 123(%r8,%rax,4)
+ ccmpsw {dfv=of} $1234, 123(%r8,%rax,4)
+# CHECK: ccmpsl {dfv=of} $123, 123(%r8,%rax,4)
# CHECK: encoding: [0x62,0xd4,0x44,0x08,0x83,0x7c,0x80,0x7b,0x7b]
- ccmpsl {of} $123, 123(%r8,%rax,4)
-# CHECK: ccmpsl {of} $123456, 123(%r8,%rax,4)
+ ccmpsl {dfv=of} $123, 123(%r8,%rax,4)
+# CHECK: ccmpsl {dfv=of} $123456, 123(%r8,%rax,4)
# CHECK: encoding: [0x62,0xd4,0x44,0x08,0x81,0x7c,0x80,0x7b,0x40,0xe2,0x01,0x00]
- ccmpsl {of} $123456, 123(%r8,%rax,4)
-# CHECK: ccmpsq {of} $123, 123(%r8,%rax,4)
+ ccmpsl {dfv=of} $123456, 123(%r8,%rax,4)
+# CHECK: ccmpsq {dfv=of} $123, 123(%r8,%rax,4)
# CHECK: encoding: [0x62,0xd4,0xc4,0x08,0x83,0x7c,0x80,0x7b,0x7b]
- ccmpsq {of} $123, 123(%r8,%rax,4)
-# CHECK: ccmpsq {of} $123456, 123(%r8,%rax,4)
+ ccmpsq {dfv=of} $123, 123(%r8,%rax,4)
+# CHECK: ccmpsq {dfv=of} $123456, 123(%r8,%rax,4)
# CHECK: encoding: [0x62,0xd4,0xc4,0x08,0x81,0x7c,0x80,0x7b,0x40,0xe2,0x01,0x00]
- ccmpsq {of} $123456, 123(%r8,%rax,4)
-# CHECK: ccmpsb {of} %bl, 123(%r8,%rax,4)
+ ccmpsq {dfv=of} $123456, 123(%r8,%rax,4)
+# CHECK: ccmpsb {dfv=of} %bl, 123(%r8,%rax,4)
# CHECK: encoding: [0x62,0xd4,0x44,0x08,0x38,0x5c,0x80,0x7b]
- ccmpsb {of} %bl, 123(%r8,%rax,4)
-# CHECK: ccmpsw {of} %dx, 123(%r8,%rax,4)
+ ccmpsb {dfv=of} %bl, 123(%r8,%rax,4)
+# CHECK: ccmpsw {dfv=of} %dx, 123(%r8,%rax,4)
# CHECK: encoding: [0x62,0xd4,0x45,0x08,0x39,0x54,0x80,0x7b]
- ccmpsw {of} %dx, 123(%r8,%rax,4)
-# CHECK: ccmpsl {of} %ecx, 123(%r8,%rax,4)
+ ccmpsw {dfv=of} %dx, 123(%r8,%rax,4)
+# CHECK: ccmpsl {dfv=of} %ecx, 123(%r8,%rax,4)
# CHECK: encoding: [0x62,0xd4,0x44,0x08,0x39,0x4c,0x80,0x7b]
- ccmpsl {of} %ecx, 123(%r8,%rax,4)
-# CHECK: ccmpsq {of} %r9, 123(%r8,%rax,4)
+ ccmpsl {dfv=of} %ecx, 123(%r8,%rax,4)
+# CHECK: ccmpsq {dfv=of} %r9, 123(%r8,%rax,4)
# CHECK: encoding: [0x62,0x54,0xc4,0x08,0x39,0x4c,0x80,0x7b]
- ccmpsq {of} %r9, 123(%r8,%rax,4)
-# CHECK: ccmpsb {of} 123(%r8,%rax,4), %bl
+ ccmpsq {dfv=of} %r9, 123(%r8,%rax,4)
+# CHECK: ccmpsb {dfv=of} 123(%r8,%rax,4), %bl
# CHECK: encoding: [0x62,0xd4,0x44,0x08,0x3a,0x5c,0x80,0x7b]
- ccmpsb {of} 123(%r8,%rax,4), %bl
-# CHECK: ccmpsw {of} 123(%r8,%rax,4), %dx
+ ccmpsb {dfv=of} 123(%r8,%rax,4), %bl
+# CHECK: ccmpsw {dfv=of} 123(%r8,%rax,4), %dx
# CHECK: encoding: [0x62,0xd4,0x45,0x08,0x3b,0x54,0x80,0x7b]
- ccmpsw {of} 123(%r8,%rax,4), %dx
-# CHECK: ccmpsl {of} 123(%r8,%rax,4), %ecx
+ ccmpsw {dfv=of} 123(%r8,%rax,4), %dx
+# CHECK: ccmpsl {dfv=of} 123(%r8,%rax,4), %ecx
# CHECK: encoding: [0x62,0xd4,0x44,0x08,0x3b,0x4c,0x80,0x7b]
- ccmpsl {of} 123(%r8,%rax,4), %ecx
-# CHECK: ccmpsq {of} 123(%r8,%rax,4), %r9
+ ccmpsl {dfv=of} 123(%r8,%rax,4), %ecx
+# CHECK: ccmpsq {dfv=of} 123(%r8,%rax,4), %r9
# CHECK: encoding: [0x62,0x54,0xc4,0x08,0x3b,0x4c,0x80,0x7b]
- ccmpsq {of} 123(%r8,%rax,4), %r9
-# CHECK: ccmpsb {of} $123, %bl
+ ccmpsq {dfv=of} 123(%r8,%rax,4), %r9
+# CHECK: ccmpsb {dfv=of} $123, %bl
# CHECK: encoding: [0x62,0xf4,0x44,0x08,0x80,0xfb,0x7b]
- ccmpsb {of} $123, %bl
-# CHECK: ccmpsw {of} $123, %dx
+ ccmpsb {dfv=of} $123, %bl
+# CHECK: ccmpsw {dfv=of} $123, %dx
# CHECK: encoding: [0x62,0xf4,0x45,0x08,0x83,0xfa,0x7b]
- ccmpsw {of} $123, %dx
-# CHECK: ccmpsl {of} $123, %ecx
+ ccmpsw {dfv=of} $123, %dx
+# CHECK: ccmpsl {dfv=of} $123, %ecx
# CHECK: encoding: [0x62,0xf4,0x44,0x08,0x83,0xf9,0x7b]
- ccmpsl {of} $123, %ecx
-# CHECK: ccmpsq {of} $123, %r9
+ ccmpsl {dfv=of} $123, %ecx
+# CHECK: ccmpsq {dfv=of} $123, %r9
# CHECK: encoding: [0x62,0xd4,0xc4,0x08,0x83,0xf9,0x7b]
- ccmpsq {of} $123, %r9
-# CHECK: ccmpsw {of} $1234, %dx
+ ccmpsq {dfv=of} $123, %r9
+# CHECK: ccmpsw {dfv=of} $1234, %dx
# CHECK: encoding: [0x62,0xf4,0x45,0x08,0x81,0xfa,0xd2,0x04]
- ccmpsw {of} $1234, %dx
-# CHECK: ccmpsl {of} $123456, %ecx
+ ccmpsw {dfv=of} $1234, %dx
+# CHECK: ccmpsl {dfv=of} $123456, %ecx
# CHECK: encoding: [0x62,0xf4,0x44,0x08,0x81,0xf9,0x40,0xe2,0x01,0x00]
- ccmpsl {of} $123456, %ecx
-# CHECK: ccmpsq {of} $123456, %r9
+ ccmpsl {dfv=of} $123456, %ecx
+# CHECK: ccmpsq {dfv=of} $123456, %r9
# CHECK: encoding: [0x62,0xd4,0xc4,0x08,0x81,0xf9,0x40,0xe2,0x01,0x00]
- ccmpsq {of} $123456, %r9
-# CHECK: ccmpsb {of} %bl, %dl
+ ccmpsq {dfv=of} $123456, %r9
+# CHECK: ccmpsb {dfv=of} %bl, %dl
# CHECK: encoding: [0x62,0xf4,0x44,0x08,0x38,0xda]
- ccmpsb {of} %bl, %dl
-# CHECK: ccmpsw {of} %dx, %ax
+ ccmpsb {dfv=of} %bl, %dl
+# CHECK: ccmpsw {dfv=of} %dx, %ax
# CHECK: encoding: [0x62,0xf4,0x45,0x08,0x39,0xd0]
- ccmpsw {of} %dx, %ax
-# CHECK: ccmpsl {of} %ecx, %edx
+ ccmpsw {dfv=of} %dx, %ax
+# CHECK: ccmpsl {dfv=of} %ecx, %edx
# CHECK: encoding: [0x62,0xf4,0x44,0x08,0x39,0xca]
- ccmpsl {of} %ecx, %edx
-# CHECK: ccmpsq {of} %r9, %r15
+ ccmpsl {dfv=of} %ecx, %edx
+# CHECK: ccmpsq {dfv=of} %r9, %r15
# CHECK: encoding: [0x62,0x54,0xc4,0x08,0x39,0xcf]
- ccmpsq {of} %r9, %r15
-# CHECK: ccmptb {of} $123, 123(%r8,%rax,4)
+ ccmpsq {dfv=of} %r9, %r15
+# CHECK: ccmptb {dfv=of} $123, 123(%r8,%rax,4)
# CHECK: encoding: [0x62,0xd4,0x44,0x0a,0x80,0x7c,0x80,0x7b,0x7b]
- ccmptb {of} $123, 123(%r8,%rax,4)
-# CHECK: ccmptw {of} $123, 123(%r8,%rax,4)
+ ccmptb {dfv=of} $123, 123(%r8,%rax,4)
+# CHECK: ccmptw {dfv=of} $123, 123(%r8,%rax,4)
# CHECK: encoding: [0x62,0xd4,0x45,0x0a,0x83,0x7c,0x80,0x7b,0x7b]
- ccmptw {of} $123, 123(%r8,%rax,4)
-# CHECK: ccmptw {of} $1234, 123(%r8,%rax,4)
+ ccmptw {dfv=of} $123, 123(%r8,%rax,4)
+# CHECK: ccmptw {dfv=of} $1234, 123(%r8,%rax,4)
# CHECK: encoding: [0x62,0xd4,0x45,0x0a,0x81,0x7c,0x80,0x7b,0xd2,0x04]
- ccmptw {of} $1234, 123(%r8,%rax,4)
-# CHECK: ccmptl {of} $123, 123(%r8,%rax,4)
+ ccmptw {dfv=of} $1234, 123(%r8,%rax,4)
+# CHECK: ccmptl {dfv=of} $123, 123(%r8,%rax,4)
# CHECK: encoding: [0x62,0xd4,0x44,0x0a,0x83,0x7c,0x80,0x7b,0x7b]
- ccmptl {of} $123, 123(%r8,%rax,4)
-# CHECK: ccmptl {of} $123456, 123(%r8,%rax,4)
+ ccmptl {dfv=of} $123, 123(%r8,%rax,4)
+# CHECK: ccmptl {dfv=of} $123456, 123(%r8,%rax,4)
# CHECK: encoding: [0x62,0xd4,0x44,0x0a,0x81,0x7c,0x80,0x7b,0x40,0xe2,0x01,0x00]
- ccmptl {of} $123456, 123(%r8,%rax,4)
-# CHECK: ccmptq {of} $123, 123(%r8,%rax,4)
+ ccmptl {dfv=of} $123456, 123(%r8,%rax,4)
+# CHECK: ccmptq {dfv=of} $123, 123(%r8,%rax,4)
# CHECK: encoding: [0x62,0xd4,0xc4,0x0a,0x83,0x7c,0x80,0x7b,0x7b]
- ccmptq {of} $123, 123(%r8,%rax,4)
-# CHECK: ccmptq {of} $123456, 123(%r8,%rax,4)
+ ccmptq {dfv=of} $123, 123(%r8,%rax,4)
+# CHECK: ccmptq {dfv=of} $123456, 123(%r8,%rax,4)
# CHECK: encoding: [0x62,0xd4,0xc4,0x0a,0x81,0x7c,0x80,0x7b,0x40,0xe2,0x01,0x00]
- ccmptq {of} $123456, 123(%r8,%rax,4)
-# CHECK: ccmptb {of} %bl, 123(%r8,%rax,4)
+ ccmptq {dfv=of} $123456, 123(%r8,%rax,4)
+# CHECK: ccmptb {dfv=of} %bl, 123(%r8,%rax,4)
# CHECK: encoding: [0x62,0xd4,0x44,0x0a,0x38,0x5c,0x80,0x7b]
- ccmptb {of} %bl, 123(%r8,%rax,4)
-# CHECK: ccmptw {of} %dx, 123(%r8,%rax,4)
+ ccmptb {dfv=of} %bl, 123(%r8,%rax,4)
+# CHECK: ccmptw {dfv=of} %dx, 123(%r8,%rax,4)
# CHECK: encoding: [0x62,0xd4,0x45,0x0a,0x39,0x54,0x80,0x7b]
- ccmptw {of} %dx, 123(%r8,%rax,4)
-# CHECK: ccmptl {of} %ecx, 123(%r8,%rax,4)
+ ccmptw {dfv=of} %dx, 123(%r8,%rax,4)
+# CHECK: ccmptl {dfv=of} %ecx, 123(%r8,%rax,4)
# CHECK: encoding: [0x62,0xd4,0x44,0x0a,0x39,0x4c,0x80,0x7b]
- ccmptl {of} %ecx, 123(%r8,%rax,4)
-# CHECK: ccmptq {of} %r9, 123(%r8,%rax,4)
+ ccmptl {dfv=of} %ecx, 123(%r8,%rax,4)
+# CHECK: ccmptq {dfv=of} %r9, 123(%r8,%rax,4)
# CHECK: encoding: [0x62,0x54,0xc4,0x0a,0x39,0x4c,0x80,0x7b]
- ccmptq {of} %r9, 123(%r8,%rax,4)
-# CHECK: ccmptb {of} 123(%r8,%rax,4), %bl
+ ccmptq {dfv=of} %r9, 123(%r8,%rax,4)
+# CHECK: ccmptb {dfv=of} 123(%r8,%rax,4), %bl
# CHECK: encoding: [0x62,0xd4,0x44,0x0a,0x3a,0x5c,0x80,0x7b]
- ccmptb {of} 123(%r8,%rax,4), %bl
-# CHECK: ccmptw {of} 123(%r8,%rax,4), %dx
+ ccmptb {dfv=of} 123(%r8,%rax,4), %bl
+# CHECK: ccmptw {dfv=of} 123(%r8,%rax,4), %dx
# CHECK: encoding: [0x62,0xd4,0x45,0x0a,0x3b,0x54,0x80,0x7b]
- ccmptw {of} 123(%r8,%rax,4), %dx
-# CHECK: ccmptl {of} 123(%r8,%rax,4), %ecx
+ ccmptw {dfv=of} 123(%r8,%rax,4), %dx
+# CHECK: ccmptl {dfv=of} 123(%r8,%rax,4), %ecx
# CHECK: encoding: [0x62,0xd4,0x44,0x0a,0x3b,0x4c,0x80,0x7b]
- ccmptl {of} 123(%r8,%rax,4), %ecx
-# CHECK: ccmptq {of} 123(%r8,%rax,4), %r9
+ ccmptl {dfv=of} 123(%r8,%rax,4), %ecx
+# CHECK: ccmptq {dfv=of} 123(%r8,%rax,4), %r9
# CHECK: encoding: [0x62,0x54,0xc4,0x0a,0x3b,0x4c,0x80,0x7b]
- ccmptq {of} 123(%r8,%rax,4), %r9
-# CHECK: ccmptb {of} $123, %bl
+ ccmptq {dfv=of} 123(%r8,%rax,4), %r9
+# CHECK: ccmptb {dfv=of} $123, %bl
# CHECK: encoding: [0x62,0xf4,0x44,0x0a,0x80,0xfb,0x7b]
- ccmptb {of} $123, %bl
-# CHECK: ccmptw {of} $123, %dx
+ ccmptb {dfv=of} $123, %bl
+# CHECK: ccmptw {dfv=of} $123, %dx
# CHECK: encoding: [0x62,0xf4,0x45,0x0a,0x83,0xfa,0x7b]
- ccmptw {of} $123, %dx
-# CHECK: ccmptl {of} $123, %ecx
+ ccmptw {dfv=of} $123, %dx
+# CHECK: ccmptl {dfv=of} $123, %ecx
# CHECK: encoding: [0x62,0xf4,0x44,0x0a,0x83,0xf9,0x7b]
- ccmptl {of} $123, %ecx
-# CHECK: ccmptq {of} $123, %r9
+ ccmptl {dfv=of} $123, %ecx
+# CHECK: ccmptq {dfv=of} $123, %r9
# CHECK: encoding: [0x62,0xd4,0xc4,0x0a,0x83,0xf9,0x7b]
- ccmptq {of} $123, %r9
-# CHECK: ccmptw {of} $1234, %dx
+ ccmptq {dfv=of} $123, %r9
+# CHECK: ccmptw {dfv=of} $1234, %dx
# CHECK: encoding: [0x62,0xf4,0x45,0x0a,0x81,0xfa,0xd2,0x04]
- ccmptw {of} $1234, %dx
-# CHECK: ccmptl {of} $123456, %ecx
+ ccmptw {dfv=of} $1234, %dx
+# CHECK: ccmptl {dfv=of} $123456, %ecx
# CHECK: encoding: [0x62,0xf4,0x44,0x0a,0x81,0xf9,0x40,0xe2,0x01,0x00]
- ccmptl {of} $123456, %ecx
-# CHECK: ccmptq {of} $123456, %r9
+ ccmptl {dfv=of} $123456, %ecx
+# CHECK: ccmptq {dfv=of} $123456, %r9
# CHECK: encoding: [0x62,0xd4,0xc4,0x0a,0x81,0xf9,0x40,0xe2,0x01,0x00]
- ccmptq {of} $123456, %r9
-# CHECK: ccmptb {of} %bl, %dl
+ ccmptq {dfv=of} $123456, %r9
+# CHECK: ccmptb {dfv=of} %bl, %dl
# CHECK: encoding: [0x62,0xf4,0x44,0x0a,0x38,0xda]
- ccmptb {of} %bl, %dl
-# CHECK: ccmptw {of} %dx, %ax
+ ccmptb {dfv=of} %bl, %dl
+# CHECK: ccmptw {dfv=of} %dx, %ax
# CHECK: encoding: [0x62,0xf4,0x45,0x0a,0x39,0xd0]
- ccmptw {of} %dx, %ax
-# CHECK: ccmptl {of} %ecx, %edx
+ ccmptw {dfv=of} %dx, %ax
+# CHECK: ccmptl {dfv=of} %ecx, %edx
# CHECK: encoding: [0x62,0xf4,0x44,0x0a,0x39,0xca]
- ccmptl {of} %ecx, %edx
-# CHECK: ccmptq {of} %r9, %r15
+ ccmptl {dfv=of} %ecx, %edx
+# CHECK: ccmptq {dfv=of} %r9, %r15
# CHECK: encoding: [0x62,0x54,0xc4,0x0a,0x39,0xcf]
- ccmptq {of} %r9, %r15
-# CHECK: ccmpeb {of} $123, 123(%r8,%rax,4)
+ ccmptq {dfv=of} %r9, %r15
+# CHECK: ccmpeb {dfv=of} $123, 123(%r8,%rax,4)
# CHECK: encoding: [0x62,0xd4,0x44,0x04,0x80,0x7c,0x80,0x7b,0x7b]
- ccmpeb {of} $123, 123(%r8,%rax,4)
-# CHECK: ccmpew {of} $123, 123(%r8,%rax,4)
+ ccmpeb {dfv=of} $123, 123(%r8,%rax,4)
+# CHECK: ccmpew {dfv=of} $123, 123(%r8,%rax,4)
# CHECK: encoding: [0x62,0xd4,0x45,0x04,0x83,0x7c,0x80,0x7b,0x7b]
- ccmpew {of} $123, 123(%r8,%rax,4)
-# CHECK: ccmpew {of} $1234, 123(%r8,%rax,4)
+ ccmpew {dfv=of} $123, 123(%r8,%rax,4)
+# CHECK: ccmpew {dfv=of} $1234, 123(%r8,%rax,4)
# CHECK: encoding: [0x62,0xd4,0x45,0x04,0x81,0x7c,0x80,0x7b,0xd2,0x04]
- ccmpew {of} $1234, 123(%r8,%rax,4)
-# CHECK: ccmpel {of} $123, 123(%r8,%rax,4)
+ ccmpew {dfv=of} $1234, 123(%r8,%rax,4)
+# CHECK: ccmpel {dfv=of} $123, 123(%r8,%rax,4)
# CHECK: encoding: [0x62,0xd4,0x44,0x04,0x83,0x7c,0x80,0x7b,0x7b]
- ccmpel {of} $123, 123(%r8,%rax,4)
-# CHECK: ccmpel {of} $123456, 123(%r8,%rax,4)
+ ccmpel {dfv=of} $123, 123(%r8,%rax,4)
+# CHECK: ccmpel {dfv=of} $123456, 123(%r8,%rax,4)
# CHECK: encoding: [0x62,0xd4,0x44,0x04,0x81,0x7c,0x80,0x7b,0x40,0xe2,0x01,0x00]
- ccmpel {of} $123456, 123(%r8,%rax,4)
-# CHECK: ccmpeq {of} $123, 123(%r8,%rax,4)
+ ccmpel {dfv=of} $123456, 123(%r8,%rax,4)
+# CHECK: ccmpeq {dfv=of} $123, 123(%r8,%rax,4)
# CHECK: encoding: [0x62,0xd4,0xc4,0x04,0x83,0x7c,0x80,0x7b,0x7b]
- ccmpeq {of} $123, 123(%r8,%rax,4)
-# CHECK: ccmpeq {of} $123456, 123(%r8,%rax,4)
+ ccmpeq {dfv=of} $123, 123(%r8,%rax,4)
+# CHECK: ccmpeq {dfv=of} $123456, 123(%r8,%rax,4)
# CHECK: encoding: [0x62,0xd4,0xc4,0x04,0x81,0x7c,0x80,0x7b,0x40,0xe2,0x01,0x00]
- ccmpeq {of} $123456, 123(%r8,%rax,4)
-# CHECK: ccmpeb {of} %bl, 123(%r8,%rax,4)
+ ccmpeq {dfv=of} $123456, 123(%r8,%rax,4)
+# CHECK: ccmpeb {dfv=of} %bl, 123(%r8,%rax,4)
# CHECK: encoding: [0x62,0xd4,0x44,0x04,0x38,0x5c,0x80,0x7b]
- ccmpeb {of} %bl, 123(%r8,%rax,4)
-# CHECK: ccmpew {of} %dx, 123(%r8,%rax,4)
+ ccmpeb {dfv=of} %bl, 123(%r8,%rax,4)
+# CHECK: ccmpew {dfv=of} %dx, 123(%r8,%rax,4)
# CHECK: encoding: [0x62,0xd4,0x45,0x04,0x39,0x54,0x80,0x7b]
- ccmpew {of} %dx, 123(%r8,%rax,4)
-# CHECK: ccmpel {of} %ecx, 123(%r8,%rax,4)
+ ccmpew {dfv=of} %dx, 123(%r8,%rax,4)
+# CHECK: ccmpel {dfv=of} %ecx, 123(%r8,%rax,4)
# CHECK: encoding: [0x62,0xd4,0x44,0x04,0x39,0x4c,0x80,0x7b]
- ccmpel {of} %ecx, 123(%r8,%rax,4)
-# CHECK: ccmpeq {of} %r9, 123(%r8,%rax,4)
+ ccmpel {dfv=of} %ecx, 123(%r8,%rax,4)
+# CHECK: ccmpeq {dfv=of} %r9, 123(%r8,%rax,4)
# CHECK: encoding: [0x62,0x54,0xc4,0x04,0x39,0x4c,0x80,0x7b]
- ccmpeq {of} %r9, 123(%r8,%rax,4)
-# CHECK: ccmpeb {of} 123(%r8,%rax,4), %bl
+ ccmpeq {dfv=of} %r9, 123(%r8,%rax,4)
+# CHECK: ccmpeb {dfv=of} 123(%r8,%rax,4), %bl
# CHECK: encoding: [0x62,0xd4,0x44,0x04,0x3a,0x5c,0x80,0x7b]
- ccmpeb {of} 123(%r8,%rax,4), %bl
-# CHECK: ccmpew {of} 123(%r8,%rax,4), %dx
+ ccmpeb {dfv=of} 123(%r8,%rax,4), %bl
+# CHECK: ccmpew {dfv=of} 123(%r8,%rax,4), %dx
# CHECK: encoding: [0x62,0xd4,0x45,0x04,0x3b,0x54,0x80,0x7b]
- ccmpew {of} 123(%r8,%rax,4), %dx
-# CHECK: ccmpel {of} 123(%r8,%rax,4), %ecx
+ ccmpew {dfv=of} 123(%r8,%rax,4), %dx
+# CHECK: ccmpel {dfv=of} 123(%r8,%rax,4), %ecx
# CHECK: encoding: [0x62,0xd4,0x44,0x04,0x3b,0x4c,0x80,0x7b]
- ccmpel {of} 123(%r8,%rax,4), %ecx
-# CHECK: ccmpeq {of} 123(%r8,%rax,4), %r9
+ ccmpel {dfv=of} 123(%r8,%rax,4), %ecx
+# CHECK: ccmpeq {dfv=of} 123(%r8,%rax,4), %r9
# CHECK: encoding: [0x62,0x54,0xc4,0x04,0x3b,0x4c,0x80,0x7b]
- ccmpeq {of} 123(%r8,%rax,4), %r9
-# CHECK: ccmpeb {of} $123, %bl
+ ccmpeq {dfv=of} 123(%r8,%rax,4), %r9
+# CHECK: ccmpeb {dfv=of} $123, %bl
# CHECK: encoding: [0x62,0xf4,0x44,0x04,0x80,0xfb,0x7b]
- ccmpeb {of} $123, %bl
-# CHECK: ccmpew {of} $123, %dx
+ ccmpeb {dfv=of} $123, %bl
+# CHECK: ccmpew {dfv=of} $123, %dx
# CHECK: encoding: [0x62,0xf4,0x45,0x04,0x83,0xfa,0x7b]
- ccmpew {of} $123, %dx
-# CHECK: ccmpel {of} $123, %ecx
+ ccmpew {dfv=of} $123, %dx
+# CHECK: ccmpel {dfv=of} $123, %ecx
# CHECK: encoding: [0x62,0xf4,0x44,0x04,0x83,0xf9,0x7b]
- ccmpel {of} $123, %ecx
-# CHECK: ccmpeq {of} $123, %r9
+ ccmpel {dfv=of} $123, %ecx
+# CHECK: ccmpeq {dfv=of} $123, %r9
# CHECK: encoding: [0x62,0xd4,0xc4,0x04,0x83,0xf9,0x7b]
- ccmpeq {of} $123, %r9
-# CHECK: ccmpew {of} $1234, %dx
+ ccmpeq {dfv=of} $123, %r9
+# CHECK: ccmpew {dfv=of} $1234, %dx
# CHECK: encoding: [0x62,0xf4,0x45,0x04,0x81,0xfa,0xd2,0x04]
- ccmpew {of} $1234, %dx
-# CHECK: ccmpel {of} $123456, %ecx
+ ccmpew {dfv=of} $1234, %dx
+# CHECK: ccmpel {dfv=of} $123456, %ecx
# CHECK: encoding: [0x62,0xf4,0x44,0x04,0x81,0xf9,0x40,0xe2,0x01,0x00]
- ccmpel {of} $123456, %ecx
-# CHECK: ccmpeq {of} $123456, %r9
+ ccmpel {dfv=of} $123456, %ecx
+# CHECK: ccmpeq {dfv=of} $123456, %r9
# CHECK: encoding: [0x62,0xd4,0xc4,0x04,0x81,0xf9,0x40,0xe2,0x01,0x00]
- ccmpeq {of} $123456, %r9
-# CHECK: ccmpeb {of} %bl, %dl
+ ccmpeq {dfv=of} $123456, %r9
+# CHECK: ccmpeb {dfv=of} %bl, %dl
# CHECK: encoding: [0x62,0xf4,0x44,0x04,0x38,0xda]
- ccmpeb {of} %bl, %dl
-# CHECK: ccmpew {of} %dx, %ax
+ ccmpeb {dfv=of} %bl, %dl
+# CHECK: ccmpew {dfv=of} %dx, %ax
# CHECK: encoding: [0x62,0xf4,0x45,0x04,0x39,0xd0]
- ccmpew {of} %dx, %ax
-# CHECK: ccmpel {of} %ecx, %edx
+ ccmpew {dfv=of} %dx, %ax
+# CHECK: ccmpel {dfv=of} %ecx, %edx
# CHECK: encoding: [0x62,0xf4,0x44,0x04,0x39,0xca]
- ccmpel {of} %ecx, %edx
-# CHECK: ccmpeq {of} %r9, %r15
+ ccmpel {dfv=of} %ecx, %edx
+# CHECK: ccmpeq {dfv=of} %r9, %r15
# CHECK: encoding: [0x62,0x54,0xc4,0x04,0x39,0xcf]
- ccmpeq {of} %r9, %r15
+ ccmpeq {dfv=of} %r9, %r15
diff --git a/llvm/test/MC/X86/apx/ccmp-intel-error.s b/llvm/test/MC/X86/apx/ccmp-intel-error.s
index 56c65f5adfd2c2..e37cc53548ae2f 100644
--- a/llvm/test/MC/X86/apx/ccmp-intel-error.s
+++ b/llvm/test/MC/X86/apx/ccmp-intel-error.s
@@ -4,18 +4,26 @@
# CHECK: ccmpe 1 rbx, rax
ccmpe 1 rbx, rax
-# CHECK: [[#@LINE+2]]:14: error: Expected } or , at this point
-# CHECK: ccmpe {sf,cf rbx, rax
-ccmpe {sf,cf rbx, rax
+# CHECK: [[#@LINE+2]]:8: error: Expected dfv at this point
+# CHECK: ccmpe {sf} rbx, rax
+ccmpe {sf} rbx, rax
-# CHECK: [[#@LINE+2]]:8: error: Invalid conditional flags
-# CHECK: ccmpe {pf} rbx, rax
-ccmpe {pf} rbx, rax
+# CHECK: [[#@LINE+2]]:11: error: Expected = at this point
+# CHECK: ccmpe {dfv:sf} rbx, rax
+ccmpe {dfv:sf} rbx, rax
-# CHECK: [[#@LINE+2]]:15: error: Duplicated conditional flag
-# CHECK: ccmpeq {of,zf,of} rbx, rax
-ccmpeq {of,zf,of} rbx, rax
+# CHECK: [[#@LINE+2]]:18: error: Expected } or , at this point
+# CHECK: ccmpe {dfv=sf,cf rbx, rax
+ccmpe {dfv=sf,cf rbx, rax
-# CHECK: [[#@LINE+2]]:20: error: Expected } at this point
-# CHECK: ccmpeq {of,sf,zf,cf,of} rbx, rax
-ccmpeq {of,sf,zf,cf,of} rbx, rax
+# CHECK: [[#@LINE+2]]:12: error: Invalid conditional flags
+# CHECK: ccmpe {dfv=pf} rbx, rax
+ccmpe {dfv=pf} rbx, rax
+
+# CHECK: [[#@LINE+2]]:19: error: Duplicated conditional flag
+# CHECK: ccmpeq {dfv=of,zf,of} rbx, rax
+ccmpeq {dfv=of,zf,of} rbx, rax
+
+# CHECK: [[#@LINE+2]]:24: error: Expected } at this point
+# CHECK: ccmpeq {dfv=of,sf,zf,cf,of} rbx, rax
+ccmpeq {dfv=of,sf,zf,cf,of} rbx, rax
diff --git a/llvm/test/MC/X86/apx/ccmp-intel.s b/llvm/test/MC/X86/apx/ccmp-intel.s
index 323f3a92c5328e..ab4bf0fa32b5cf 100644
--- a/llvm/test/MC/X86/apx/ccmp-intel.s
+++ b/llvm/test/MC/X86/apx/ccmp-intel.s
@@ -2,1209 +2,1209 @@
## Condition flags
-# CHECK: ccmpo {} rbx, rax
+# CHECK: ccmpo {dfv=} rbx, rax
# CHECK: encoding: [0x62,0xf4,0x84,0x00,0x39,0xc3]
- ccmpo {} rbx, rax
-# CHECK: ccmpo {of} rbx, rax
+ ccmpo {dfv=} rbx, rax
+# CHECK: ccmpo {dfv=of} rbx, rax
# CHECK: encoding: [0x62,0xf4,0xc4,0x00,0x39,0xc3]
- ccmpo {of} rbx, rax
-# CHECK: ccmpo {sf} rbx, rax
+ ccmpo {dfv=of} rbx, rax
+# CHECK: ccmpo {dfv=sf} rbx, rax
# CHECK: encoding: [0x62,0xf4,0xa4,0x00,0x39,0xc3]
- ccmpo {sf} rbx, rax
-# CHECK: ccmpo {zf} rbx, rax
+ ccmpo {dfv=sf} rbx, rax
+# CHECK: ccmpo {dfv=zf} rbx, rax
# CHECK: encoding: [0x62,0xf4,0x94,0x00,0x39,0xc3]
- ccmpo {zf} rbx, rax
-# CHECK: ccmpo {cf} rbx, rax
+ ccmpo {dfv=zf} rbx, rax
+# CHECK: ccmpo {dfv=cf} rbx, rax
# CHECK: encoding: [0x62,0xf4,0x8c,0x00,0x39,0xc3]
- ccmpo {cf} rbx, rax
-# CHECK: ccmpo {of,sf} rbx, rax
+ ccmpo {dfv=cf} rbx, rax
+# CHECK: ccmpo {dfv=of,sf} rbx, rax
# CHECK: encoding: [0x62,0xf4,0xe4,0x00,0x39,0xc3]
- ccmpo {of,sf} rbx, rax
-# CHECK: ccmpo {of,sf} rbx, rax
+ ccmpo {dfv=of,sf} rbx, rax
+# CHECK: ccmpo {dfv=of,sf} rbx, rax
# CHECK: encoding: [0x62,0xf4,0xe4,0x00,0x39,0xc3]
- ccmpo {sf,of} rbx, rax
-# CHECK: ccmpo {of,sf,zf} rbx, rax
+ ccmpo {dfv=sf,of} rbx, rax
+# CHECK: ccmpo {dfv=of,sf,zf} rbx, rax
# CHECK: encoding: [0x62,0xf4,0xf4,0x00,0x39,0xc3]
- ccmpo {of,sf,zf} rbx, rax
-# CHECK: ccmpo {of,sf,zf} rbx, rax
+ ccmpo {dfv=of,sf,zf} rbx, rax
+# CHECK: ccmpo {dfv=of,sf,zf} rbx, rax
# CHECK: encoding: [0x62,0xf4,0xf4,0x00,0x39,0xc3]
- ccmpo {zf,of,sf} rbx, rax
-# CHECK: ccmpo {of,sf,zf,cf} rbx, rax
+ ccmpo {dfv=zf,of,sf} rbx, rax
+# CHECK: ccmpo {dfv=of,sf,zf,cf} rbx, rax
# CHECK: encoding: [0x62,0xf4,0xfc,0x00,0x39,0xc3]
- ccmpo {of,sf,zf,cf} rbx, rax
-# CHECK: ccmpo {of,sf,zf,cf} rbx, rax
+ ccmpo {dfv=of,sf,zf,cf} rbx, rax
+# CHECK: ccmpo {dfv=of,sf,zf,cf} rbx, rax
# CHECK: encoding: [0x62,0xf4,0xfc,0x00,0x39,0xc3]
- ccmpo {cf,zf,sf,of} rbx, rax
+ ccmpo {dfv=cf,zf,sf,of} rbx, rax
## Condition code
-# CHECK: ccmpb {of} byte ptr [r8 + 4*rax + 123], 123
+# CHECK: ccmpb {dfv=of} byte ptr [r8 + 4*rax + 123], 123
# CHECK: encoding: [0x62,0xd4,0x44,0x02,0x80,0x7c,0x80,0x7b,0x7b]
- ccmpb {of} byte ptr [r8 + 4*rax + 123], 123
-# CHECK: ccmpb {of} word ptr [r8 + 4*rax + 123], 123
+ ccmpb {dfv=of} byte ptr [r8 + 4*rax + 123], 123
+# CHECK: ccmpb {dfv=of} word ptr [r8 + 4*rax + 123], 123
# CHECK: encoding: [0x62,0xd4,0x45,0x02,0x83,0x7c,0x80,0x7b,0x7b]
- ccmpb {of} word ptr [r8 + 4*rax + 123], 123
-# CHECK: ccmpb {of} word ptr [r8 + 4*rax + 123], 1234
+ ccmpb {dfv=of} word ptr [r8 + 4*rax + 123], 123
+# CHECK: ccmpb {dfv=of} word ptr [r8 + 4*rax + 123], 1234
# CHECK: encoding: [0x62,0xd4,0x45,0x02,0x81,0x7c,0x80,0x7b,0xd2,0x04]
- ccmpb {of} word ptr [r8 + 4*rax + 123], 1234
-# CHECK: ccmpb {of} dword ptr [r8 + 4*rax + 123], 123
+ ccmpb {dfv=of} word ptr [r8 + 4*rax + 123], 1234
+# CHECK: ccmpb {dfv=of} dword ptr [r8 + 4*rax + 123], 123
# CHECK: encoding: [0x62,0xd4,0x44,0x02,0x83,0x7c,0x80,0x7b,0x7b]
- ccmpb {of} dword ptr [r8 + 4*rax + 123], 123
-# CHECK: ccmpb {of} dword ptr [r8 + 4*rax + 123], 123456
+ ccmpb {dfv=of} dword ptr [r8 + 4*rax + 123], 123
+# CHECK: ccmpb {dfv=of} dword ptr [r8 + 4*rax + 123], 123456
# CHECK: encoding: [0x62,0xd4,0x44,0x02,0x81,0x7c,0x80,0x7b,0x40,0xe2,0x01,0x00]
- ccmpb {of} dword ptr [r8 + 4*rax + 123], 123456
-# CHECK: ccmpb {of} qword ptr [r8 + 4*rax + 123], 123
+ ccmpb {dfv=of} dword ptr [r8 + 4*rax + 123], 123456
+# CHECK: ccmpb {dfv=of} qword ptr [r8 + 4*rax + 123], 123
# CHECK: encoding: [0x62,0xd4,0xc4,0x02,0x83,0x7c,0x80,0x7b,0x7b]
- ccmpb {of} qword ptr [r8 + 4*rax + 123], 123
-# CHECK: ccmpb {of} qword ptr [r8 + 4*rax + 123], 123456
+ ccmpb {dfv=of} qword ptr [r8 + 4*rax + 123], 123
+# CHECK: ccmpb {dfv=of} qword ptr [r8 + 4*rax + 123], 123456
# CHECK: encoding: [0x62,0xd4,0xc4,0x02,0x81,0x7c,0x80,0x7b,0x40,0xe2,0x01,0x00]
- ccmpb {of} qword ptr [r8 + 4*rax + 123], 123456
-# CHECK: ccmpb {of} byte ptr [r8 + 4*rax + 123], bl
+ ccmpb {dfv=of} qword ptr [r8 + 4*rax + 123], 123456
+# CHECK: ccmpb {dfv=of} byte ptr [r8 + 4*rax + 123], bl
# CHECK: encoding: [0x62,0xd4,0x44,0x02,0x38,0x5c,0x80,0x7b]
- ccmpb {of} byte ptr [r8 + 4*rax + 123], bl
-# CHECK: ccmpb {of} word ptr [r8 + 4*rax + 123], dx
+ ccmpb {dfv=of} byte ptr [r8 + 4*rax + 123], bl
+# CHECK: ccmpb {dfv=of} word ptr [r8 + 4*rax + 123], dx
# CHECK: encoding: [0x62,0xd4,0x45,0x02,0x39,0x54,0x80,0x7b]
- ccmpb {of} word ptr [r8 + 4*rax + 123], dx
-# CHECK: ccmpb {of} dword ptr [r8 + 4*rax + 123], ecx
+ ccmpb {dfv=of} word ptr [r8 + 4*rax + 123], dx
+# CHECK: ccmpb {dfv=of} dword ptr [r8 + 4*rax + 123], ecx
# CHECK: encoding: [0x62,0xd4,0x44,0x02,0x39,0x4c,0x80,0x7b]
- ccmpb {of} dword ptr [r8 + 4*rax + 123], ecx
-# CHECK: ccmpb {of} qword ptr [r8 + 4*rax + 123], r9
+ ccmpb {dfv=of} dword ptr [r8 + 4*rax + 123], ecx
+# CHECK: ccmpb {dfv=of} qword ptr [r8 + 4*rax + 123], r9
# CHECK: encoding: [0x62,0x54,0xc4,0x02,0x39,0x4c,0x80,0x7b]
- ccmpb {of} qword ptr [r8 + 4*rax + 123], r9
-# CHECK: ccmpb {of} bl, byte ptr [r8 + 4*rax + 123]
+ ccmpb {dfv=of} qword ptr [r8 + 4*rax + 123], r9
+# CHECK: ccmpb {dfv=of} bl, byte ptr [r8 + 4*rax + 123]
# CHECK: encoding: [0x62,0xd4,0x44,0x02,0x3a,0x5c,0x80,0x7b]
- ccmpb {of} bl, byte ptr [r8 + 4*rax + 123]
-# CHECK: ccmpb {of} dx, word ptr [r8 + 4*rax + 123]
+ ccmpb {dfv=of} bl, byte ptr [r8 + 4*rax + 123]
+# CHECK: ccmpb {dfv=of} dx, word ptr [r8 + 4*rax + 123]
# CHECK: encoding: [0x62,0xd4,0x45,0x02,0x3b,0x54,0x80,0x7b]
- ccmpb {of} dx, word ptr [r8 + 4*rax + 123]
-# CHECK: ccmpb {of} ecx, dword ptr [r8 + 4*rax + 123]
+ ccmpb {dfv=of} dx, word ptr [r8 + 4*rax + 123]
+# CHECK: ccmpb {dfv=of} ecx, dword ptr [r8 + 4*rax + 123]
# CHECK: encoding: [0x62,0xd4,0x44,0x02,0x3b,0x4c,0x80,0x7b]
- ccmpb {of} ecx, dword ptr [r8 + 4*rax + 123]
-# CHECK: ccmpb {of} r9, qword ptr [r8 + 4*rax + 123]
+ ccmpb {dfv=of} ecx, dword ptr [r8 + 4*rax + 123]
+# CHECK: ccmpb {dfv=of} r9, qword ptr [r8 + 4*rax + 123]
# CHECK: encoding: [0x62,0x54,0xc4,0x02,0x3b,0x4c,0x80,0x7b]
- ccmpb {of} r9, qword ptr [r8 + 4*rax + 123]
-# CHECK: ccmpb {of} bl, 123
+ ccmpb {dfv=of} r9, qword ptr [r8 + 4*rax + 123]
+# CHECK: ccmpb {dfv=of} bl, 123
# CHECK: encoding: [0x62,0xf4,0x44,0x02,0x80,0xfb,0x7b]
- ccmpb {of} bl, 123
-# CHECK: ccmpb {of} dx, 123
+ ccmpb {dfv=of} bl, 123
+# CHECK: ccmpb {dfv=of} dx, 123
# CHECK: encoding: [0x62,0xf4,0x45,0x02,0x83,0xfa,0x7b]
- ccmpb {of} dx, 123
-# CHECK: ccmpb {of} ecx, 123
+ ccmpb {dfv=of} dx, 123
+# CHECK: ccmpb {dfv=of} ecx, 123
# CHECK: encoding: [0x62,0xf4,0x44,0x02,0x83,0xf9,0x7b]
- ccmpb {of} ecx, 123
-# CHECK: ccmpb {of} r9, 123
+ ccmpb {dfv=of} ecx, 123
+# CHECK: ccmpb {dfv=of} r9, 123
# CHECK: encoding: [0x62,0xd4,0xc4,0x02,0x83,0xf9,0x7b]
- ccmpb {of} r9, 123
-# CHECK: ccmpb {of} dx, 1234
+ ccmpb {dfv=of} r9, 123
+# CHECK: ccmpb {dfv=of} dx, 1234
# CHECK: encoding: [0x62,0xf4,0x45,0x02,0x81,0xfa,0xd2,0x04]
- ccmpb {of} dx, 1234
-# CHECK: ccmpb {of} ecx, 123456
+ ccmpb {dfv=of} dx, 1234
+# CHECK: ccmpb {dfv=of} ecx, 123456
# CHECK: encoding: [0x62,0xf4,0x44,0x02,0x81,0xf9,0x40,0xe2,0x01,0x00]
- ccmpb {of} ecx, 123456
-# CHECK: ccmpb {of} r9, 123456
+ ccmpb {dfv=of} ecx, 123456
+# CHECK: ccmpb {dfv=of} r9, 123456
# CHECK: encoding: [0x62,0xd4,0xc4,0x02,0x81,0xf9,0x40,0xe2,0x01,0x00]
- ccmpb {of} r9, 123456
-# CHECK: ccmpb {of} dl, bl
+ ccmpb {dfv=of} r9, 123456
+# CHECK: ccmpb {dfv=of} dl, bl
# CHECK: encoding: [0x62,0xf4,0x44,0x02,0x38,0xda]
- ccmpb {of} dl, bl
-# CHECK: ccmpb {of} ax, dx
+ ccmpb {dfv=of} dl, bl
+# CHECK: ccmpb {dfv=of} ax, dx
# CHECK: encoding: [0x62,0xf4,0x45,0x02,0x39,0xd0]
- ccmpb {of} ax, dx
-# CHECK: ccmpb {of} edx, ecx
+ ccmpb {dfv=of} ax, dx
+# CHECK: ccmpb {dfv=of} edx, ecx
# CHECK: encoding: [0x62,0xf4,0x44,0x02,0x39,0xca]
- ccmpb {of} edx, ecx
-# CHECK: ccmpb {of} r15, r9
+ ccmpb {dfv=of} edx, ecx
+# CHECK: ccmpb {dfv=of} r15, r9
# CHECK: encoding: [0x62,0x54,0xc4,0x02,0x39,0xcf]
- ccmpb {of} r15, r9
-# CHECK: ccmpf {of} byte ptr [r8 + 4*rax + 123], 123
+ ccmpb {dfv=of} r15, r9
+# CHECK: ccmpf {dfv=of} byte ptr [r8 + 4*rax + 123], 123
# CHECK: encoding: [0x62,0xd4,0x44,0x0b,0x80,0x7c,0x80,0x7b,0x7b]
- ccmpf {of} byte ptr [r8 + 4*rax + 123], 123
-# CHECK: ccmpf {of} word ptr [r8 + 4*rax + 123], 123
+ ccmpf {dfv=of} byte ptr [r8 + 4*rax + 123], 123
+# CHECK: ccmpf {dfv=of} word ptr [r8 + 4*rax + 123], 123
# CHECK: encoding: [0x62,0xd4,0x45,0x0b,0x83,0x7c,0x80,0x7b,0x7b]
- ccmpf {of} word ptr [r8 + 4*rax + 123], 123
-# CHECK: ccmpf {of} word ptr [r8 + 4*rax + 123], 1234
+ ccmpf {dfv=of} word ptr [r8 + 4*rax + 123], 123
+# CHECK: ccmpf {dfv=of} word ptr [r8 + 4*rax + 123], 1234
# CHECK: encoding: [0x62,0xd4,0x45,0x0b,0x81,0x7c,0x80,0x7b,0xd2,0x04]
- ccmpf {of} word ptr [r8 + 4*rax + 123], 1234
-# CHECK: ccmpf {of} dword ptr [r8 + 4*rax + 123], 123
+ ccmpf {dfv=of} word ptr [r8 + 4*rax + 123], 1234
+# CHECK: ccmpf {dfv=of} dword ptr [r8 + 4*rax + 123], 123
# CHECK: encoding: [0x62,0xd4,0x44,0x0b,0x83,0x7c,0x80,0x7b,0x7b]
- ccmpf {of} dword ptr [r8 + 4*rax + 123], 123
-# CHECK: ccmpf {of} dword ptr [r8 + 4*rax + 123], 123456
+ ccmpf {dfv=of} dword ptr [r8 + 4*rax + 123], 123
+# CHECK: ccmpf {dfv=of} dword ptr [r8 + 4*rax + 123], 123456
# CHECK: encoding: [0x62,0xd4,0x44,0x0b,0x81,0x7c,0x80,0x7b,0x40,0xe2,0x01,0x00]
- ccmpf {of} dword ptr [r8 + 4*rax + 123], 123456
-# CHECK: ccmpf {of} qword ptr [r8 + 4*rax + 123], 123
+ ccmpf {dfv=of} dword ptr [r8 + 4*rax + 123], 123456
+# CHECK: ccmpf {dfv=of} qword ptr [r8 + 4*rax + 123], 123
# CHECK: encoding: [0x62,0xd4,0xc4,0x0b,0x83,0x7c,0x80,0x7b,0x7b]
- ccmpf {of} qword ptr [r8 + 4*rax + 123], 123
-# CHECK: ccmpf {of} qword ptr [r8 + 4*rax + 123], 123456
+ ccmpf {dfv=of} qword ptr [r8 + 4*rax + 123], 123
+# CHECK: ccmpf {dfv=of} qword ptr [r8 + 4*rax + 123], 123456
# CHECK: encoding: [0x62,0xd4,0xc4,0x0b,0x81,0x7c,0x80,0x7b,0x40,0xe2,0x01,0x00]
- ccmpf {of} qword ptr [r8 + 4*rax + 123], 123456
-# CHECK: ccmpf {of} byte ptr [r8 + 4*rax + 123], bl
+ ccmpf {dfv=of} qword ptr [r8 + 4*rax + 123], 123456
+# CHECK: ccmpf {dfv=of} byte ptr [r8 + 4*rax + 123], bl
# CHECK: encoding: [0x62,0xd4,0x44,0x0b,0x38,0x5c,0x80,0x7b]
- ccmpf {of} byte ptr [r8 + 4*rax + 123], bl
-# CHECK: ccmpf {of} word ptr [r8 + 4*rax + 123], dx
+ ccmpf {dfv=of} byte ptr [r8 + 4*rax + 123], bl
+# CHECK: ccmpf {dfv=of} word ptr [r8 + 4*rax + 123], dx
# CHECK: encoding: [0x62,0xd4,0x45,0x0b,0x39,0x54,0x80,0x7b]
- ccmpf {of} word ptr [r8 + 4*rax + 123], dx
-# CHECK: ccmpf {of} dword ptr [r8 + 4*rax + 123], ecx
+ ccmpf {dfv=of} word ptr [r8 + 4*rax + 123], dx
+# CHECK: ccmpf {dfv=of} dword ptr [r8 + 4*rax + 123], ecx
# CHECK: encoding: [0x62,0xd4,0x44,0x0b,0x39,0x4c,0x80,0x7b]
- ccmpf {of} dword ptr [r8 + 4*rax + 123], ecx
-# CHECK: ccmpf {of} qword ptr [r8 + 4*rax + 123], r9
+ ccmpf {dfv=of} dword ptr [r8 + 4*rax + 123], ecx
+# CHECK: ccmpf {dfv=of} qword ptr [r8 + 4*rax + 123], r9
# CHECK: encoding: [0x62,0x54,0xc4,0x0b,0x39,0x4c,0x80,0x7b]
- ccmpf {of} qword ptr [r8 + 4*rax + 123], r9
-# CHECK: ccmpf {of} bl, byte ptr [r8 + 4*rax + 123]
+ ccmpf {dfv=of} qword ptr [r8 + 4*rax + 123], r9
+# CHECK: ccmpf {dfv=of} bl, byte ptr [r8 + 4*rax + 123]
# CHECK: encoding: [0x62,0xd4,0x44,0x0b,0x3a,0x5c,0x80,0x7b]
- ccmpf {of} bl, byte ptr [r8 + 4*rax + 123]
-# CHECK: ccmpf {of} dx, word ptr [r8 + 4*rax + 123]
+ ccmpf {dfv=of} bl, byte ptr [r8 + 4*rax + 123]
+# CHECK: ccmpf {dfv=of} dx, word ptr [r8 + 4*rax + 123]
# CHECK: encoding: [0x62,0xd4,0x45,0x0b,0x3b,0x54,0x80,0x7b]
- ccmpf {of} dx, word ptr [r8 + 4*rax + 123]
-# CHECK: ccmpf {of} ecx, dword ptr [r8 + 4*rax + 123]
+ ccmpf {dfv=of} dx, word ptr [r8 + 4*rax + 123]
+# CHECK: ccmpf {dfv=of} ecx, dword ptr [r8 + 4*rax + 123]
# CHECK: encoding: [0x62,0xd4,0x44,0x0b,0x3b,0x4c,0x80,0x7b]
- ccmpf {of} ecx, dword ptr [r8 + 4*rax + 123]
-# CHECK: ccmpf {of} r9, qword ptr [r8 + 4*rax + 123]
+ ccmpf {dfv=of} ecx, dword ptr [r8 + 4*rax + 123]
+# CHECK: ccmpf {dfv=of} r9, qword ptr [r8 + 4*rax + 123]
# CHECK: encoding: [0x62,0x54,0xc4,0x0b,0x3b,0x4c,0x80,0x7b]
- ccmpf {of} r9, qword ptr [r8 + 4*rax + 123]
-# CHECK: ccmpf {of} bl, 123
+ ccmpf {dfv=of} r9, qword ptr [r8 + 4*rax + 123]
+# CHECK: ccmpf {dfv=of} bl, 123
# CHECK: encoding: [0x62,0xf4,0x44,0x0b,0x80,0xfb,0x7b]
- ccmpf {of} bl, 123
-# CHECK: ccmpf {of} dx, 123
+ ccmpf {dfv=of} bl, 123
+# CHECK: ccmpf {dfv=of} dx, 123
# CHECK: encoding: [0x62,0xf4,0x45,0x0b,0x83,0xfa,0x7b]
- ccmpf {of} dx, 123
-# CHECK: ccmpf {of} ecx, 123
+ ccmpf {dfv=of} dx, 123
+# CHECK: ccmpf {dfv=of} ecx, 123
# CHECK: encoding: [0x62,0xf4,0x44,0x0b,0x83,0xf9,0x7b]
- ccmpf {of} ecx, 123
-# CHECK: ccmpf {of} r9, 123
+ ccmpf {dfv=of} ecx, 123
+# CHECK: ccmpf {dfv=of} r9, 123
# CHECK: encoding: [0x62,0xd4,0xc4,0x0b,0x83,0xf9,0x7b]
- ccmpf {of} r9, 123
-# CHECK: ccmpf {of} dx, 1234
+ ccmpf {dfv=of} r9, 123
+# CHECK: ccmpf {dfv=of} dx, 1234
# CHECK: encoding: [0x62,0xf4,0x45,0x0b,0x81,0xfa,0xd2,0x04]
- ccmpf {of} dx, 1234
-# CHECK: ccmpf {of} ecx, 123456
+ ccmpf {dfv=of} dx, 1234
+# CHECK: ccmpf {dfv=of} ecx, 123456
# CHECK: encoding: [0x62,0xf4,0x44,0x0b,0x81,0xf9,0x40,0xe2,0x01,0x00]
- ccmpf {of} ecx, 123456
-# CHECK: ccmpf {of} r9, 123456
+ ccmpf {dfv=of} ecx, 123456
+# CHECK: ccmpf {dfv=of} r9, 123456
# CHECK: encoding: [0x62,0xd4,0xc4,0x0b,0x81,0xf9,0x40,0xe2,0x01,0x00]
- ccmpf {of} r9, 123456
-# CHECK: ccmpf {of} dl, bl
+ ccmpf {dfv=of} r9, 123456
+# CHECK: ccmpf {dfv=of} dl, bl
# CHECK: encoding: [0x62,0xf4,0x44,0x0b,0x38,0xda]
- ccmpf {of} dl, bl
-# CHECK: ccmpf {of} ax, dx
+ ccmpf {dfv=of} dl, bl
+# CHECK: ccmpf {dfv=of} ax, dx
# CHECK: encoding: [0x62,0xf4,0x45,0x0b,0x39,0xd0]
- ccmpf {of} ax, dx
-# CHECK: ccmpf {of} edx, ecx
+ ccmpf {dfv=of} ax, dx
+# CHECK: ccmpf {dfv=of} edx, ecx
# CHECK: encoding: [0x62,0xf4,0x44,0x0b,0x39,0xca]
- ccmpf {of} edx, ecx
-# CHECK: ccmpf {of} r15, r9
+ ccmpf {dfv=of} edx, ecx
+# CHECK: ccmpf {dfv=of} r15, r9
# CHECK: encoding: [0x62,0x54,0xc4,0x0b,0x39,0xcf]
- ccmpf {of} r15, r9
-# CHECK: ccmpl {of} byte ptr [r8 + 4*rax + 123], 123
+ ccmpf {dfv=of} r15, r9
+# CHECK: ccmpl {dfv=of} byte ptr [r8 + 4*rax + 123], 123
# CHECK: encoding: [0x62,0xd4,0x44,0x0c,0x80,0x7c,0x80,0x7b,0x7b]
- ccmpl {of} byte ptr [r8 + 4*rax + 123], 123
-# CHECK: ccmpl {of} word ptr [r8 + 4*rax + 123], 123
+ ccmpl {dfv=of} byte ptr [r8 + 4*rax + 123], 123
+# CHECK: ccmpl {dfv=of} word ptr [r8 + 4*rax + 123], 123
# CHECK: encoding: [0x62,0xd4,0x45,0x0c,0x83,0x7c,0x80,0x7b,0x7b]
- ccmpl {of} word ptr [r8 + 4*rax + 123], 123
-# CHECK: ccmpl {of} word ptr [r8 + 4*rax + 123], 1234
+ ccmpl {dfv=of} word ptr [r8 + 4*rax + 123], 123
+# CHECK: ccmpl {dfv=of} word ptr [r8 + 4*rax + 123], 1234
# CHECK: encoding: [0x62,0xd4,0x45,0x0c,0x81,0x7c,0x80,0x7b,0xd2,0x04]
- ccmpl {of} word ptr [r8 + 4*rax + 123], 1234
-# CHECK: ccmpl {of} dword ptr [r8 + 4*rax + 123], 123
+ ccmpl {dfv=of} word ptr [r8 + 4*rax + 123], 1234
+# CHECK: ccmpl {dfv=of} dword ptr [r8 + 4*rax + 123], 123
# CHECK: encoding: [0x62,0xd4,0x44,0x0c,0x83,0x7c,0x80,0x7b,0x7b]
- ccmpl {of} dword ptr [r8 + 4*rax + 123], 123
-# CHECK: ccmpl {of} dword ptr [r8 + 4*rax + 123], 123456
+ ccmpl {dfv=of} dword ptr [r8 + 4*rax + 123], 123
+# CHECK: ccmpl {dfv=of} dword ptr [r8 + 4*rax + 123], 123456
# CHECK: encoding: [0x62,0xd4,0x44,0x0c,0x81,0x7c,0x80,0x7b,0x40,0xe2,0x01,0x00]
- ccmpl {of} dword ptr [r8 + 4*rax + 123], 123456
-# CHECK: ccmpl {of} qword ptr [r8 + 4*rax + 123], 123
+ ccmpl {dfv=of} dword ptr [r8 + 4*rax + 123], 123456
+# CHECK: ccmpl {dfv=of} qword ptr [r8 + 4*rax + 123], 123
# CHECK: encoding: [0x62,0xd4,0xc4,0x0c,0x83,0x7c,0x80,0x7b,0x7b]
- ccmpl {of} qword ptr [r8 + 4*rax + 123], 123
-# CHECK: ccmpl {of} qword ptr [r8 + 4*rax + 123], 123456
+ ccmpl {dfv=of} qword ptr [r8 + 4*rax + 123], 123
+# CHECK: ccmpl {dfv=of} qword ptr [r8 + 4*rax + 123], 123456
# CHECK: encoding: [0x62,0xd4,0xc4,0x0c,0x81,0x7c,0x80,0x7b,0x40,0xe2,0x01,0x00]
- ccmpl {of} qword ptr [r8 + 4*rax + 123], 123456
-# CHECK: ccmpl {of} byte ptr [r8 + 4*rax + 123], bl
+ ccmpl {dfv=of} qword ptr [r8 + 4*rax + 123], 123456
+# CHECK: ccmpl {dfv=of} byte ptr [r8 + 4*rax + 123], bl
# CHECK: encoding: [0x62,0xd4,0x44,0x0c,0x38,0x5c,0x80,0x7b]
- ccmpl {of} byte ptr [r8 + 4*rax + 123], bl
-# CHECK: ccmpl {of} word ptr [r8 + 4*rax + 123], dx
+ ccmpl {dfv=of} byte ptr [r8 + 4*rax + 123], bl
+# CHECK: ccmpl {dfv=of} word ptr [r8 + 4*rax + 123], dx
# CHECK: encoding: [0x62,0xd4,0x45,0x0c,0x39,0x54,0x80,0x7b]
- ccmpl {of} word ptr [r8 + 4*rax + 123], dx
-# CHECK: ccmpl {of} dword ptr [r8 + 4*rax + 123], ecx
+ ccmpl {dfv=of} word ptr [r8 + 4*rax + 123], dx
+# CHECK: ccmpl {dfv=of} dword ptr [r8 + 4*rax + 123], ecx
# CHECK: encoding: [0x62,0xd4,0x44,0x0c,0x39,0x4c,0x80,0x7b]
- ccmpl {of} dword ptr [r8 + 4*rax + 123], ecx
-# CHECK: ccmpl {of} qword ptr [r8 + 4*rax + 123], r9
+ ccmpl {dfv=of} dword ptr [r8 + 4*rax + 123], ecx
+# CHECK: ccmpl {dfv=of} qword ptr [r8 + 4*rax + 123], r9
# CHECK: encoding: [0x62,0x54,0xc4,0x0c,0x39,0x4c,0x80,0x7b]
- ccmpl {of} qword ptr [r8 + 4*rax + 123], r9
-# CHECK: ccmpl {of} bl, byte ptr [r8 + 4*rax + 123]
+ ccmpl {dfv=of} qword ptr [r8 + 4*rax + 123], r9
+# CHECK: ccmpl {dfv=of} bl, byte ptr [r8 + 4*rax + 123]
# CHECK: encoding: [0x62,0xd4,0x44,0x0c,0x3a,0x5c,0x80,0x7b]
- ccmpl {of} bl, byte ptr [r8 + 4*rax + 123]
-# CHECK: ccmpl {of} dx, word ptr [r8 + 4*rax + 123]
+ ccmpl {dfv=of} bl, byte ptr [r8 + 4*rax + 123]
+# CHECK: ccmpl {dfv=of} dx, word ptr [r8 + 4*rax + 123]
# CHECK: encoding: [0x62,0xd4,0x45,0x0c,0x3b,0x54,0x80,0x7b]
- ccmpl {of} dx, word ptr [r8 + 4*rax + 123]
-# CHECK: ccmpl {of} ecx, dword ptr [r8 + 4*rax + 123]
+ ccmpl {dfv=of} dx, word ptr [r8 + 4*rax + 123]
+# CHECK: ccmpl {dfv=of} ecx, dword ptr [r8 + 4*rax + 123]
# CHECK: encoding: [0x62,0xd4,0x44,0x0c,0x3b,0x4c,0x80,0x7b]
- ccmpl {of} ecx, dword ptr [r8 + 4*rax + 123]
-# CHECK: ccmpl {of} r9, qword ptr [r8 + 4*rax + 123]
+ ccmpl {dfv=of} ecx, dword ptr [r8 + 4*rax + 123]
+# CHECK: ccmpl {dfv=of} r9, qword ptr [r8 + 4*rax + 123]
# CHECK: encoding: [0x62,0x54,0xc4,0x0c,0x3b,0x4c,0x80,0x7b]
- ccmpl {of} r9, qword ptr [r8 + 4*rax + 123]
-# CHECK: ccmpl {of} bl, 123
+ ccmpl {dfv=of} r9, qword ptr [r8 + 4*rax + 123]
+# CHECK: ccmpl {dfv=of} bl, 123
# CHECK: encoding: [0x62,0xf4,0x44,0x0c,0x80,0xfb,0x7b]
- ccmpl {of} bl, 123
-# CHECK: ccmpl {of} dx, 123
+ ccmpl {dfv=of} bl, 123
+# CHECK: ccmpl {dfv=of} dx, 123
# CHECK: encoding: [0x62,0xf4,0x45,0x0c,0x83,0xfa,0x7b]
- ccmpl {of} dx, 123
-# CHECK: ccmpl {of} ecx, 123
+ ccmpl {dfv=of} dx, 123
+# CHECK: ccmpl {dfv=of} ecx, 123
# CHECK: encoding: [0x62,0xf4,0x44,0x0c,0x83,0xf9,0x7b]
- ccmpl {of} ecx, 123
-# CHECK: ccmpl {of} r9, 123
+ ccmpl {dfv=of} ecx, 123
+# CHECK: ccmpl {dfv=of} r9, 123
# CHECK: encoding: [0x62,0xd4,0xc4,0x0c,0x83,0xf9,0x7b]
- ccmpl {of} r9, 123
-# CHECK: ccmpl {of} dx, 1234
+ ccmpl {dfv=of} r9, 123
+# CHECK: ccmpl {dfv=of} dx, 1234
# CHECK: encoding: [0x62,0xf4,0x45,0x0c,0x81,0xfa,0xd2,0x04]
- ccmpl {of} dx, 1234
-# CHECK: ccmpl {of} ecx, 123456
+ ccmpl {dfv=of} dx, 1234
+# CHECK: ccmpl {dfv=of} ecx, 123456
# CHECK: encoding: [0x62,0xf4,0x44,0x0c,0x81,0xf9,0x40,0xe2,0x01,0x00]
- ccmpl {of} ecx, 123456
-# CHECK: ccmpl {of} r9, 123456
+ ccmpl {dfv=of} ecx, 123456
+# CHECK: ccmpl {dfv=of} r9, 123456
# CHECK: encoding: [0x62,0xd4,0xc4,0x0c,0x81,0xf9,0x40,0xe2,0x01,0x00]
- ccmpl {of} r9, 123456
-# CHECK: ccmpl {of} dl, bl
+ ccmpl {dfv=of} r9, 123456
+# CHECK: ccmpl {dfv=of} dl, bl
# CHECK: encoding: [0x62,0xf4,0x44,0x0c,0x38,0xda]
- ccmpl {of} dl, bl
-# CHECK: ccmpl {of} ax, dx
+ ccmpl {dfv=of} dl, bl
+# CHECK: ccmpl {dfv=of} ax, dx
# CHECK: encoding: [0x62,0xf4,0x45,0x0c,0x39,0xd0]
- ccmpl {of} ax, dx
-# CHECK: ccmpl {of} edx, ecx
+ ccmpl {dfv=of} ax, dx
+# CHECK: ccmpl {dfv=of} edx, ecx
# CHECK: encoding: [0x62,0xf4,0x44,0x0c,0x39,0xca]
- ccmpl {of} edx, ecx
-# CHECK: ccmpl {of} r15, r9
+ ccmpl {dfv=of} edx, ecx
+# CHECK: ccmpl {dfv=of} r15, r9
# CHECK: encoding: [0x62,0x54,0xc4,0x0c,0x39,0xcf]
- ccmpl {of} r15, r9
-# CHECK: ccmple {of} byte ptr [r8 + 4*rax + 123], 123
+ ccmpl {dfv=of} r15, r9
+# CHECK: ccmple {dfv=of} byte ptr [r8 + 4*rax + 123], 123
# CHECK: encoding: [0x62,0xd4,0x44,0x0e,0x80,0x7c,0x80,0x7b,0x7b]
- ccmple {of} byte ptr [r8 + 4*rax + 123], 123
-# CHECK: ccmple {of} word ptr [r8 + 4*rax + 123], 123
+ ccmple {dfv=of} byte ptr [r8 + 4*rax + 123], 123
+# CHECK: ccmple {dfv=of} word ptr [r8 + 4*rax + 123], 123
# CHECK: encoding: [0x62,0xd4,0x45,0x0e,0x83,0x7c,0x80,0x7b,0x7b]
- ccmple {of} word ptr [r8 + 4*rax + 123], 123
-# CHECK: ccmple {of} word ptr [r8 + 4*rax + 123], 1234
+ ccmple {dfv=of} word ptr [r8 + 4*rax + 123], 123
+# CHECK: ccmple {dfv=of} word ptr [r8 + 4*rax + 123], 1234
# CHECK: encoding: [0x62,0xd4,0x45,0x0e,0x81,0x7c,0x80,0x7b,0xd2,0x04]
- ccmple {of} word ptr [r8 + 4*rax + 123], 1234
-# CHECK: ccmple {of} dword ptr [r8 + 4*rax + 123], 123
+ ccmple {dfv=of} word ptr [r8 + 4*rax + 123], 1234
+# CHECK: ccmple {dfv=of} dword ptr [r8 + 4*rax + 123], 123
# CHECK: encoding: [0x62,0xd4,0x44,0x0e,0x83,0x7c,0x80,0x7b,0x7b]
- ccmple {of} dword ptr [r8 + 4*rax + 123], 123
-# CHECK: ccmple {of} dword ptr [r8 + 4*rax + 123], 123456
+ ccmple {dfv=of} dword ptr [r8 + 4*rax + 123], 123
+# CHECK: ccmple {dfv=of} dword ptr [r8 + 4*rax + 123], 123456
# CHECK: encoding: [0x62,0xd4,0x44,0x0e,0x81,0x7c,0x80,0x7b,0x40,0xe2,0x01,0x00]
- ccmple {of} dword ptr [r8 + 4*rax + 123], 123456
-# CHECK: ccmple {of} qword ptr [r8 + 4*rax + 123], 123
+ ccmple {dfv=of} dword ptr [r8 + 4*rax + 123], 123456
+# CHECK: ccmple {dfv=of} qword ptr [r8 + 4*rax + 123], 123
# CHECK: encoding: [0x62,0xd4,0xc4,0x0e,0x83,0x7c,0x80,0x7b,0x7b]
- ccmple {of} qword ptr [r8 + 4*rax + 123], 123
-# CHECK: ccmple {of} qword ptr [r8 + 4*rax + 123], 123456
+ ccmple {dfv=of} qword ptr [r8 + 4*rax + 123], 123
+# CHECK: ccmple {dfv=of} qword ptr [r8 + 4*rax + 123], 123456
# CHECK: encoding: [0x62,0xd4,0xc4,0x0e,0x81,0x7c,0x80,0x7b,0x40,0xe2,0x01,0x00]
- ccmple {of} qword ptr [r8 + 4*rax + 123], 123456
-# CHECK: ccmple {of} byte ptr [r8 + 4*rax + 123], bl
+ ccmple {dfv=of} qword ptr [r8 + 4*rax + 123], 123456
+# CHECK: ccmple {dfv=of} byte ptr [r8 + 4*rax + 123], bl
# CHECK: encoding: [0x62,0xd4,0x44,0x0e,0x38,0x5c,0x80,0x7b]
- ccmple {of} byte ptr [r8 + 4*rax + 123], bl
-# CHECK: ccmple {of} word ptr [r8 + 4*rax + 123], dx
+ ccmple {dfv=of} byte ptr [r8 + 4*rax + 123], bl
+# CHECK: ccmple {dfv=of} word ptr [r8 + 4*rax + 123], dx
# CHECK: encoding: [0x62,0xd4,0x45,0x0e,0x39,0x54,0x80,0x7b]
- ccmple {of} word ptr [r8 + 4*rax + 123], dx
-# CHECK: ccmple {of} dword ptr [r8 + 4*rax + 123], ecx
+ ccmple {dfv=of} word ptr [r8 + 4*rax + 123], dx
+# CHECK: ccmple {dfv=of} dword ptr [r8 + 4*rax + 123], ecx
# CHECK: encoding: [0x62,0xd4,0x44,0x0e,0x39,0x4c,0x80,0x7b]
- ccmple {of} dword ptr [r8 + 4*rax + 123], ecx
-# CHECK: ccmple {of} qword ptr [r8 + 4*rax + 123], r9
+ ccmple {dfv=of} dword ptr [r8 + 4*rax + 123], ecx
+# CHECK: ccmple {dfv=of} qword ptr [r8 + 4*rax + 123], r9
# CHECK: encoding: [0x62,0x54,0xc4,0x0e,0x39,0x4c,0x80,0x7b]
- ccmple {of} qword ptr [r8 + 4*rax + 123], r9
-# CHECK: ccmple {of} bl, byte ptr [r8 + 4*rax + 123]
+ ccmple {dfv=of} qword ptr [r8 + 4*rax + 123], r9
+# CHECK: ccmple {dfv=of} bl, byte ptr [r8 + 4*rax + 123]
# CHECK: encoding: [0x62,0xd4,0x44,0x0e,0x3a,0x5c,0x80,0x7b]
- ccmple {of} bl, byte ptr [r8 + 4*rax + 123]
-# CHECK: ccmple {of} dx, word ptr [r8 + 4*rax + 123]
+ ccmple {dfv=of} bl, byte ptr [r8 + 4*rax + 123]
+# CHECK: ccmple {dfv=of} dx, word ptr [r8 + 4*rax + 123]
# CHECK: encoding: [0x62,0xd4,0x45,0x0e,0x3b,0x54,0x80,0x7b]
- ccmple {of} dx, word ptr [r8 + 4*rax + 123]
-# CHECK: ccmple {of} ecx, dword ptr [r8 + 4*rax + 123]
+ ccmple {dfv=of} dx, word ptr [r8 + 4*rax + 123]
+# CHECK: ccmple {dfv=of} ecx, dword ptr [r8 + 4*rax + 123]
# CHECK: encoding: [0x62,0xd4,0x44,0x0e,0x3b,0x4c,0x80,0x7b]
- ccmple {of} ecx, dword ptr [r8 + 4*rax + 123]
-# CHECK: ccmple {of} r9, qword ptr [r8 + 4*rax + 123]
+ ccmple {dfv=of} ecx, dword ptr [r8 + 4*rax + 123]
+# CHECK: ccmple {dfv=of} r9, qword ptr [r8 + 4*rax + 123]
# CHECK: encoding: [0x62,0x54,0xc4,0x0e,0x3b,0x4c,0x80,0x7b]
- ccmple {of} r9, qword ptr [r8 + 4*rax + 123]
-# CHECK: ccmple {of} bl, 123
+ ccmple {dfv=of} r9, qword ptr [r8 + 4*rax + 123]
+# CHECK: ccmple {dfv=of} bl, 123
# CHECK: encoding: [0x62,0xf4,0x44,0x0e,0x80,0xfb,0x7b]
- ccmple {of} bl, 123
-# CHECK: ccmple {of} dx, 123
+ ccmple {dfv=of} bl, 123
+# CHECK: ccmple {dfv=of} dx, 123
# CHECK: encoding: [0x62,0xf4,0x45,0x0e,0x83,0xfa,0x7b]
- ccmple {of} dx, 123
-# CHECK: ccmple {of} ecx, 123
+ ccmple {dfv=of} dx, 123
+# CHECK: ccmple {dfv=of} ecx, 123
# CHECK: encoding: [0x62,0xf4,0x44,0x0e,0x83,0xf9,0x7b]
- ccmple {of} ecx, 123
-# CHECK: ccmple {of} r9, 123
+ ccmple {dfv=of} ecx, 123
+# CHECK: ccmple {dfv=of} r9, 123
# CHECK: encoding: [0x62,0xd4,0xc4,0x0e,0x83,0xf9,0x7b]
- ccmple {of} r9, 123
-# CHECK: ccmple {of} dx, 1234
+ ccmple {dfv=of} r9, 123
+# CHECK: ccmple {dfv=of} dx, 1234
# CHECK: encoding: [0x62,0xf4,0x45,0x0e,0x81,0xfa,0xd2,0x04]
- ccmple {of} dx, 1234
-# CHECK: ccmple {of} ecx, 123456
+ ccmple {dfv=of} dx, 1234
+# CHECK: ccmple {dfv=of} ecx, 123456
# CHECK: encoding: [0x62,0xf4,0x44,0x0e,0x81,0xf9,0x40,0xe2,0x01,0x00]
- ccmple {of} ecx, 123456
-# CHECK: ccmple {of} r9, 123456
+ ccmple {dfv=of} ecx, 123456
+# CHECK: ccmple {dfv=of} r9, 123456
# CHECK: encoding: [0x62,0xd4,0xc4,0x0e,0x81,0xf9,0x40,0xe2,0x01,0x00]
- ccmple {of} r9, 123456
-# CHECK: ccmple {of} dl, bl
+ ccmple {dfv=of} r9, 123456
+# CHECK: ccmple {dfv=of} dl, bl
# CHECK: encoding: [0x62,0xf4,0x44,0x0e,0x38,0xda]
- ccmple {of} dl, bl
-# CHECK: ccmple {of} ax, dx
+ ccmple {dfv=of} dl, bl
+# CHECK: ccmple {dfv=of} ax, dx
# CHECK: encoding: [0x62,0xf4,0x45,0x0e,0x39,0xd0]
- ccmple {of} ax, dx
-# CHECK: ccmple {of} edx, ecx
+ ccmple {dfv=of} ax, dx
+# CHECK: ccmple {dfv=of} edx, ecx
# CHECK: encoding: [0x62,0xf4,0x44,0x0e,0x39,0xca]
- ccmple {of} edx, ecx
-# CHECK: ccmple {of} r15, r9
+ ccmple {dfv=of} edx, ecx
+# CHECK: ccmple {dfv=of} r15, r9
# CHECK: encoding: [0x62,0x54,0xc4,0x0e,0x39,0xcf]
- ccmple {of} r15, r9
-# CHECK: ccmpae {of} byte ptr [r8 + 4*rax + 123], 123
+ ccmple {dfv=of} r15, r9
+# CHECK: ccmpae {dfv=of} byte ptr [r8 + 4*rax + 123], 123
# CHECK: encoding: [0x62,0xd4,0x44,0x03,0x80,0x7c,0x80,0x7b,0x7b]
- ccmpae {of} byte ptr [r8 + 4*rax + 123], 123
-# CHECK: ccmpae {of} word ptr [r8 + 4*rax + 123], 123
+ ccmpae {dfv=of} byte ptr [r8 + 4*rax + 123], 123
+# CHECK: ccmpae {dfv=of} word ptr [r8 + 4*rax + 123], 123
# CHECK: encoding: [0x62,0xd4,0x45,0x03,0x83,0x7c,0x80,0x7b,0x7b]
- ccmpae {of} word ptr [r8 + 4*rax + 123], 123
-# CHECK: ccmpae {of} word ptr [r8 + 4*rax + 123], 1234
+ ccmpae {dfv=of} word ptr [r8 + 4*rax + 123], 123
+# CHECK: ccmpae {dfv=of} word ptr [r8 + 4*rax + 123], 1234
# CHECK: encoding: [0x62,0xd4,0x45,0x03,0x81,0x7c,0x80,0x7b,0xd2,0x04]
- ccmpae {of} word ptr [r8 + 4*rax + 123], 1234
-# CHECK: ccmpae {of} dword ptr [r8 + 4*rax + 123], 123
+ ccmpae {dfv=of} word ptr [r8 + 4*rax + 123], 1234
+# CHECK: ccmpae {dfv=of} dword ptr [r8 + 4*rax + 123], 123
# CHECK: encoding: [0x62,0xd4,0x44,0x03,0x83,0x7c,0x80,0x7b,0x7b]
- ccmpae {of} dword ptr [r8 + 4*rax + 123], 123
-# CHECK: ccmpae {of} dword ptr [r8 + 4*rax + 123], 123456
+ ccmpae {dfv=of} dword ptr [r8 + 4*rax + 123], 123
+# CHECK: ccmpae {dfv=of} dword ptr [r8 + 4*rax + 123], 123456
# CHECK: encoding: [0x62,0xd4,0x44,0x03,0x81,0x7c,0x80,0x7b,0x40,0xe2,0x01,0x00]
- ccmpae {of} dword ptr [r8 + 4*rax + 123], 123456
-# CHECK: ccmpae {of} qword ptr [r8 + 4*rax + 123], 123
+ ccmpae {dfv=of} dword ptr [r8 + 4*rax + 123], 123456
+# CHECK: ccmpae {dfv=of} qword ptr [r8 + 4*rax + 123], 123
# CHECK: encoding: [0x62,0xd4,0xc4,0x03,0x83,0x7c,0x80,0x7b,0x7b]
- ccmpae {of} qword ptr [r8 + 4*rax + 123], 123
-# CHECK: ccmpae {of} qword ptr [r8 + 4*rax + 123], 123456
+ ccmpae {dfv=of} qword ptr [r8 + 4*rax + 123], 123
+# CHECK: ccmpae {dfv=of} qword ptr [r8 + 4*rax + 123], 123456
# CHECK: encoding: [0x62,0xd4,0xc4,0x03,0x81,0x7c,0x80,0x7b,0x40,0xe2,0x01,0x00]
- ccmpae {of} qword ptr [r8 + 4*rax + 123], 123456
-# CHECK: ccmpae {of} byte ptr [r8 + 4*rax + 123], bl
+ ccmpae {dfv=of} qword ptr [r8 + 4*rax + 123], 123456
+# CHECK: ccmpae {dfv=of} byte ptr [r8 + 4*rax + 123], bl
# CHECK: encoding: [0x62,0xd4,0x44,0x03,0x38,0x5c,0x80,0x7b]
- ccmpae {of} byte ptr [r8 + 4*rax + 123], bl
-# CHECK: ccmpae {of} word ptr [r8 + 4*rax + 123], dx
+ ccmpae {dfv=of} byte ptr [r8 + 4*rax + 123], bl
+# CHECK: ccmpae {dfv=of} word ptr [r8 + 4*rax + 123], dx
# CHECK: encoding: [0x62,0xd4,0x45,0x03,0x39,0x54,0x80,0x7b]
- ccmpae {of} word ptr [r8 + 4*rax + 123], dx
-# CHECK: ccmpae {of} dword ptr [r8 + 4*rax + 123], ecx
+ ccmpae {dfv=of} word ptr [r8 + 4*rax + 123], dx
+# CHECK: ccmpae {dfv=of} dword ptr [r8 + 4*rax + 123], ecx
# CHECK: encoding: [0x62,0xd4,0x44,0x03,0x39,0x4c,0x80,0x7b]
- ccmpae {of} dword ptr [r8 + 4*rax + 123], ecx
-# CHECK: ccmpae {of} qword ptr [r8 + 4*rax + 123], r9
+ ccmpae {dfv=of} dword ptr [r8 + 4*rax + 123], ecx
+# CHECK: ccmpae {dfv=of} qword ptr [r8 + 4*rax + 123], r9
# CHECK: encoding: [0x62,0x54,0xc4,0x03,0x39,0x4c,0x80,0x7b]
- ccmpae {of} qword ptr [r8 + 4*rax + 123], r9
-# CHECK: ccmpae {of} bl, byte ptr [r8 + 4*rax + 123]
+ ccmpae {dfv=of} qword ptr [r8 + 4*rax + 123], r9
+# CHECK: ccmpae {dfv=of} bl, byte ptr [r8 + 4*rax + 123]
# CHECK: encoding: [0x62,0xd4,0x44,0x03,0x3a,0x5c,0x80,0x7b]
- ccmpae {of} bl, byte ptr [r8 + 4*rax + 123]
-# CHECK: ccmpae {of} dx, word ptr [r8 + 4*rax + 123]
+ ccmpae {dfv=of} bl, byte ptr [r8 + 4*rax + 123]
+# CHECK: ccmpae {dfv=of} dx, word ptr [r8 + 4*rax + 123]
# CHECK: encoding: [0x62,0xd4,0x45,0x03,0x3b,0x54,0x80,0x7b]
- ccmpae {of} dx, word ptr [r8 + 4*rax + 123]
-# CHECK: ccmpae {of} ecx, dword ptr [r8 + 4*rax + 123]
+ ccmpae {dfv=of} dx, word ptr [r8 + 4*rax + 123]
+# CHECK: ccmpae {dfv=of} ecx, dword ptr [r8 + 4*rax + 123]
# CHECK: encoding: [0x62,0xd4,0x44,0x03,0x3b,0x4c,0x80,0x7b]
- ccmpae {of} ecx, dword ptr [r8 + 4*rax + 123]
-# CHECK: ccmpae {of} r9, qword ptr [r8 + 4*rax + 123]
+ ccmpae {dfv=of} ecx, dword ptr [r8 + 4*rax + 123]
+# CHECK: ccmpae {dfv=of} r9, qword ptr [r8 + 4*rax + 123]
# CHECK: encoding: [0x62,0x54,0xc4,0x03,0x3b,0x4c,0x80,0x7b]
- ccmpae {of} r9, qword ptr [r8 + 4*rax + 123]
-# CHECK: ccmpae {of} bl, 123
+ ccmpae {dfv=of} r9, qword ptr [r8 + 4*rax + 123]
+# CHECK: ccmpae {dfv=of} bl, 123
# CHECK: encoding: [0x62,0xf4,0x44,0x03,0x80,0xfb,0x7b]
- ccmpae {of} bl, 123
-# CHECK: ccmpae {of} dx, 123
+ ccmpae {dfv=of} bl, 123
+# CHECK: ccmpae {dfv=of} dx, 123
# CHECK: encoding: [0x62,0xf4,0x45,0x03,0x83,0xfa,0x7b]
- ccmpae {of} dx, 123
-# CHECK: ccmpae {of} ecx, 123
+ ccmpae {dfv=of} dx, 123
+# CHECK: ccmpae {dfv=of} ecx, 123
# CHECK: encoding: [0x62,0xf4,0x44,0x03,0x83,0xf9,0x7b]
- ccmpae {of} ecx, 123
-# CHECK: ccmpae {of} r9, 123
+ ccmpae {dfv=of} ecx, 123
+# CHECK: ccmpae {dfv=of} r9, 123
# CHECK: encoding: [0x62,0xd4,0xc4,0x03,0x83,0xf9,0x7b]
- ccmpae {of} r9, 123
-# CHECK: ccmpae {of} dx, 1234
+ ccmpae {dfv=of} r9, 123
+# CHECK: ccmpae {dfv=of} dx, 1234
# CHECK: encoding: [0x62,0xf4,0x45,0x03,0x81,0xfa,0xd2,0x04]
- ccmpae {of} dx, 1234
-# CHECK: ccmpae {of} ecx, 123456
+ ccmpae {dfv=of} dx, 1234
+# CHECK: ccmpae {dfv=of} ecx, 123456
# CHECK: encoding: [0x62,0xf4,0x44,0x03,0x81,0xf9,0x40,0xe2,0x01,0x00]
- ccmpae {of} ecx, 123456
-# CHECK: ccmpae {of} r9, 123456
+ ccmpae {dfv=of} ecx, 123456
+# CHECK: ccmpae {dfv=of} r9, 123456
# CHECK: encoding: [0x62,0xd4,0xc4,0x03,0x81,0xf9,0x40,0xe2,0x01,0x00]
- ccmpae {of} r9, 123456
-# CHECK: ccmpae {of} dl, bl
+ ccmpae {dfv=of} r9, 123456
+# CHECK: ccmpae {dfv=of} dl, bl
# CHECK: encoding: [0x62,0xf4,0x44,0x03,0x38,0xda]
- ccmpae {of} dl, bl
-# CHECK: ccmpae {of} ax, dx
+ ccmpae {dfv=of} dl, bl
+# CHECK: ccmpae {dfv=of} ax, dx
# CHECK: encoding: [0x62,0xf4,0x45,0x03,0x39,0xd0]
- ccmpae {of} ax, dx
-# CHECK: ccmpae {of} edx, ecx
+ ccmpae {dfv=of} ax, dx
+# CHECK: ccmpae {dfv=of} edx, ecx
# CHECK: encoding: [0x62,0xf4,0x44,0x03,0x39,0xca]
- ccmpae {of} edx, ecx
-# CHECK: ccmpae {of} r15, r9
+ ccmpae {dfv=of} edx, ecx
+# CHECK: ccmpae {dfv=of} r15, r9
# CHECK: encoding: [0x62,0x54,0xc4,0x03,0x39,0xcf]
- ccmpae {of} r15, r9
-# CHECK: ccmpa {of} byte ptr [r8 + 4*rax + 123], 123
+ ccmpae {dfv=of} r15, r9
+# CHECK: ccmpa {dfv=of} byte ptr [r8 + 4*rax + 123], 123
# CHECK: encoding: [0x62,0xd4,0x44,0x07,0x80,0x7c,0x80,0x7b,0x7b]
- ccmpa {of} byte ptr [r8 + 4*rax + 123], 123
-# CHECK: ccmpa {of} word ptr [r8 + 4*rax + 123], 123
+ ccmpa {dfv=of} byte ptr [r8 + 4*rax + 123], 123
+# CHECK: ccmpa {dfv=of} word ptr [r8 + 4*rax + 123], 123
# CHECK: encoding: [0x62,0xd4,0x45,0x07,0x83,0x7c,0x80,0x7b,0x7b]
- ccmpa {of} word ptr [r8 + 4*rax + 123], 123
-# CHECK: ccmpa {of} word ptr [r8 + 4*rax + 123], 1234
+ ccmpa {dfv=of} word ptr [r8 + 4*rax + 123], 123
+# CHECK: ccmpa {dfv=of} word ptr [r8 + 4*rax + 123], 1234
# CHECK: encoding: [0x62,0xd4,0x45,0x07,0x81,0x7c,0x80,0x7b,0xd2,0x04]
- ccmpa {of} word ptr [r8 + 4*rax + 123], 1234
-# CHECK: ccmpa {of} dword ptr [r8 + 4*rax + 123], 123
+ ccmpa {dfv=of} word ptr [r8 + 4*rax + 123], 1234
+# CHECK: ccmpa {dfv=of} dword ptr [r8 + 4*rax + 123], 123
# CHECK: encoding: [0x62,0xd4,0x44,0x07,0x83,0x7c,0x80,0x7b,0x7b]
- ccmpa {of} dword ptr [r8 + 4*rax + 123], 123
-# CHECK: ccmpa {of} dword ptr [r8 + 4*rax + 123], 123456
+ ccmpa {dfv=of} dword ptr [r8 + 4*rax + 123], 123
+# CHECK: ccmpa {dfv=of} dword ptr [r8 + 4*rax + 123], 123456
# CHECK: encoding: [0x62,0xd4,0x44,0x07,0x81,0x7c,0x80,0x7b,0x40,0xe2,0x01,0x00]
- ccmpa {of} dword ptr [r8 + 4*rax + 123], 123456
-# CHECK: ccmpa {of} qword ptr [r8 + 4*rax + 123], 123
+ ccmpa {dfv=of} dword ptr [r8 + 4*rax + 123], 123456
+# CHECK: ccmpa {dfv=of} qword ptr [r8 + 4*rax + 123], 123
# CHECK: encoding: [0x62,0xd4,0xc4,0x07,0x83,0x7c,0x80,0x7b,0x7b]
- ccmpa {of} qword ptr [r8 + 4*rax + 123], 123
-# CHECK: ccmpa {of} qword ptr [r8 + 4*rax + 123], 123456
+ ccmpa {dfv=of} qword ptr [r8 + 4*rax + 123], 123
+# CHECK: ccmpa {dfv=of} qword ptr [r8 + 4*rax + 123], 123456
# CHECK: encoding: [0x62,0xd4,0xc4,0x07,0x81,0x7c,0x80,0x7b,0x40,0xe2,0x01,0x00]
- ccmpa {of} qword ptr [r8 + 4*rax + 123], 123456
-# CHECK: ccmpa {of} byte ptr [r8 + 4*rax + 123], bl
+ ccmpa {dfv=of} qword ptr [r8 + 4*rax + 123], 123456
+# CHECK: ccmpa {dfv=of} byte ptr [r8 + 4*rax + 123], bl
# CHECK: encoding: [0x62,0xd4,0x44,0x07,0x38,0x5c,0x80,0x7b]
- ccmpa {of} byte ptr [r8 + 4*rax + 123], bl
-# CHECK: ccmpa {of} word ptr [r8 + 4*rax + 123], dx
+ ccmpa {dfv=of} byte ptr [r8 + 4*rax + 123], bl
+# CHECK: ccmpa {dfv=of} word ptr [r8 + 4*rax + 123], dx
# CHECK: encoding: [0x62,0xd4,0x45,0x07,0x39,0x54,0x80,0x7b]
- ccmpa {of} word ptr [r8 + 4*rax + 123], dx
-# CHECK: ccmpa {of} dword ptr [r8 + 4*rax + 123], ecx
+ ccmpa {dfv=of} word ptr [r8 + 4*rax + 123], dx
+# CHECK: ccmpa {dfv=of} dword ptr [r8 + 4*rax + 123], ecx
# CHECK: encoding: [0x62,0xd4,0x44,0x07,0x39,0x4c,0x80,0x7b]
- ccmpa {of} dword ptr [r8 + 4*rax + 123], ecx
-# CHECK: ccmpa {of} qword ptr [r8 + 4*rax + 123], r9
+ ccmpa {dfv=of} dword ptr [r8 + 4*rax + 123], ecx
+# CHECK: ccmpa {dfv=of} qword ptr [r8 + 4*rax + 123], r9
# CHECK: encoding: [0x62,0x54,0xc4,0x07,0x39,0x4c,0x80,0x7b]
- ccmpa {of} qword ptr [r8 + 4*rax + 123], r9
-# CHECK: ccmpa {of} bl, byte ptr [r8 + 4*rax + 123]
+ ccmpa {dfv=of} qword ptr [r8 + 4*rax + 123], r9
+# CHECK: ccmpa {dfv=of} bl, byte ptr [r8 + 4*rax + 123]
# CHECK: encoding: [0x62,0xd4,0x44,0x07,0x3a,0x5c,0x80,0x7b]
- ccmpa {of} bl, byte ptr [r8 + 4*rax + 123]
-# CHECK: ccmpa {of} dx, word ptr [r8 + 4*rax + 123]
+ ccmpa {dfv=of} bl, byte ptr [r8 + 4*rax + 123]
+# CHECK: ccmpa {dfv=of} dx, word ptr [r8 + 4*rax + 123]
# CHECK: encoding: [0x62,0xd4,0x45,0x07,0x3b,0x54,0x80,0x7b]
- ccmpa {of} dx, word ptr [r8 + 4*rax + 123]
-# CHECK: ccmpa {of} ecx, dword ptr [r8 + 4*rax + 123]
+ ccmpa {dfv=of} dx, word ptr [r8 + 4*rax + 123]
+# CHECK: ccmpa {dfv=of} ecx, dword ptr [r8 + 4*rax + 123]
# CHECK: encoding: [0x62,0xd4,0x44,0x07,0x3b,0x4c,0x80,0x7b]
- ccmpa {of} ecx, dword ptr [r8 + 4*rax + 123]
-# CHECK: ccmpa {of} r9, qword ptr [r8 + 4*rax + 123]
+ ccmpa {dfv=of} ecx, dword ptr [r8 + 4*rax + 123]
+# CHECK: ccmpa {dfv=of} r9, qword ptr [r8 + 4*rax + 123]
# CHECK: encoding: [0x62,0x54,0xc4,0x07,0x3b,0x4c,0x80,0x7b]
- ccmpa {of} r9, qword ptr [r8 + 4*rax + 123]
-# CHECK: ccmpa {of} bl, 123
+ ccmpa {dfv=of} r9, qword ptr [r8 + 4*rax + 123]
+# CHECK: ccmpa {dfv=of} bl, 123
# CHECK: encoding: [0x62,0xf4,0x44,0x07,0x80,0xfb,0x7b]
- ccmpa {of} bl, 123
-# CHECK: ccmpa {of} dx, 123
+ ccmpa {dfv=of} bl, 123
+# CHECK: ccmpa {dfv=of} dx, 123
# CHECK: encoding: [0x62,0xf4,0x45,0x07,0x83,0xfa,0x7b]
- ccmpa {of} dx, 123
-# CHECK: ccmpa {of} ecx, 123
+ ccmpa {dfv=of} dx, 123
+# CHECK: ccmpa {dfv=of} ecx, 123
# CHECK: encoding: [0x62,0xf4,0x44,0x07,0x83,0xf9,0x7b]
- ccmpa {of} ecx, 123
-# CHECK: ccmpa {of} r9, 123
+ ccmpa {dfv=of} ecx, 123
+# CHECK: ccmpa {dfv=of} r9, 123
# CHECK: encoding: [0x62,0xd4,0xc4,0x07,0x83,0xf9,0x7b]
- ccmpa {of} r9, 123
-# CHECK: ccmpa {of} dx, 1234
+ ccmpa {dfv=of} r9, 123
+# CHECK: ccmpa {dfv=of} dx, 1234
# CHECK: encoding: [0x62,0xf4,0x45,0x07,0x81,0xfa,0xd2,0x04]
- ccmpa {of} dx, 1234
-# CHECK: ccmpa {of} ecx, 123456
+ ccmpa {dfv=of} dx, 1234
+# CHECK: ccmpa {dfv=of} ecx, 123456
# CHECK: encoding: [0x62,0xf4,0x44,0x07,0x81,0xf9,0x40,0xe2,0x01,0x00]
- ccmpa {of} ecx, 123456
-# CHECK: ccmpa {of} r9, 123456
+ ccmpa {dfv=of} ecx, 123456
+# CHECK: ccmpa {dfv=of} r9, 123456
# CHECK: encoding: [0x62,0xd4,0xc4,0x07,0x81,0xf9,0x40,0xe2,0x01,0x00]
- ccmpa {of} r9, 123456
-# CHECK: ccmpa {of} dl, bl
+ ccmpa {dfv=of} r9, 123456
+# CHECK: ccmpa {dfv=of} dl, bl
# CHECK: encoding: [0x62,0xf4,0x44,0x07,0x38,0xda]
- ccmpa {of} dl, bl
-# CHECK: ccmpa {of} ax, dx
+ ccmpa {dfv=of} dl, bl
+# CHECK: ccmpa {dfv=of} ax, dx
# CHECK: encoding: [0x62,0xf4,0x45,0x07,0x39,0xd0]
- ccmpa {of} ax, dx
-# CHECK: ccmpa {of} edx, ecx
+ ccmpa {dfv=of} ax, dx
+# CHECK: ccmpa {dfv=of} edx, ecx
# CHECK: encoding: [0x62,0xf4,0x44,0x07,0x39,0xca]
- ccmpa {of} edx, ecx
-# CHECK: ccmpa {of} r15, r9
+ ccmpa {dfv=of} edx, ecx
+# CHECK: ccmpa {dfv=of} r15, r9
# CHECK: encoding: [0x62,0x54,0xc4,0x07,0x39,0xcf]
- ccmpa {of} r15, r9
-# CHECK: ccmpge {of} byte ptr [r8 + 4*rax + 123], 123
+ ccmpa {dfv=of} r15, r9
+# CHECK: ccmpge {dfv=of} byte ptr [r8 + 4*rax + 123], 123
# CHECK: encoding: [0x62,0xd4,0x44,0x0d,0x80,0x7c,0x80,0x7b,0x7b]
- ccmpge {of} byte ptr [r8 + 4*rax + 123], 123
-# CHECK: ccmpge {of} word ptr [r8 + 4*rax + 123], 123
+ ccmpge {dfv=of} byte ptr [r8 + 4*rax + 123], 123
+# CHECK: ccmpge {dfv=of} word ptr [r8 + 4*rax + 123], 123
# CHECK: encoding: [0x62,0xd4,0x45,0x0d,0x83,0x7c,0x80,0x7b,0x7b]
- ccmpge {of} word ptr [r8 + 4*rax + 123], 123
-# CHECK: ccmpge {of} word ptr [r8 + 4*rax + 123], 1234
+ ccmpge {dfv=of} word ptr [r8 + 4*rax + 123], 123
+# CHECK: ccmpge {dfv=of} word ptr [r8 + 4*rax + 123], 1234
# CHECK: encoding: [0x62,0xd4,0x45,0x0d,0x81,0x7c,0x80,0x7b,0xd2,0x04]
- ccmpge {of} word ptr [r8 + 4*rax + 123], 1234
-# CHECK: ccmpge {of} dword ptr [r8 + 4*rax + 123], 123
+ ccmpge {dfv=of} word ptr [r8 + 4*rax + 123], 1234
+# CHECK: ccmpge {dfv=of} dword ptr [r8 + 4*rax + 123], 123
# CHECK: encoding: [0x62,0xd4,0x44,0x0d,0x83,0x7c,0x80,0x7b,0x7b]
- ccmpge {of} dword ptr [r8 + 4*rax + 123], 123
-# CHECK: ccmpge {of} dword ptr [r8 + 4*rax + 123], 123456
+ ccmpge {dfv=of} dword ptr [r8 + 4*rax + 123], 123
+# CHECK: ccmpge {dfv=of} dword ptr [r8 + 4*rax + 123], 123456
# CHECK: encoding: [0x62,0xd4,0x44,0x0d,0x81,0x7c,0x80,0x7b,0x40,0xe2,0x01,0x00]
- ccmpge {of} dword ptr [r8 + 4*rax + 123], 123456
-# CHECK: ccmpge {of} qword ptr [r8 + 4*rax + 123], 123
+ ccmpge {dfv=of} dword ptr [r8 + 4*rax + 123], 123456
+# CHECK: ccmpge {dfv=of} qword ptr [r8 + 4*rax + 123], 123
# CHECK: encoding: [0x62,0xd4,0xc4,0x0d,0x83,0x7c,0x80,0x7b,0x7b]
- ccmpge {of} qword ptr [r8 + 4*rax + 123], 123
-# CHECK: ccmpge {of} qword ptr [r8 + 4*rax + 123], 123456
+ ccmpge {dfv=of} qword ptr [r8 + 4*rax + 123], 123
+# CHECK: ccmpge {dfv=of} qword ptr [r8 + 4*rax + 123], 123456
# CHECK: encoding: [0x62,0xd4,0xc4,0x0d,0x81,0x7c,0x80,0x7b,0x40,0xe2,0x01,0x00]
- ccmpge {of} qword ptr [r8 + 4*rax + 123], 123456
-# CHECK: ccmpge {of} byte ptr [r8 + 4*rax + 123], bl
+ ccmpge {dfv=of} qword ptr [r8 + 4*rax + 123], 123456
+# CHECK: ccmpge {dfv=of} byte ptr [r8 + 4*rax + 123], bl
# CHECK: encoding: [0x62,0xd4,0x44,0x0d,0x38,0x5c,0x80,0x7b]
- ccmpge {of} byte ptr [r8 + 4*rax + 123], bl
-# CHECK: ccmpge {of} word ptr [r8 + 4*rax + 123], dx
+ ccmpge {dfv=of} byte ptr [r8 + 4*rax + 123], bl
+# CHECK: ccmpge {dfv=of} word ptr [r8 + 4*rax + 123], dx
# CHECK: encoding: [0x62,0xd4,0x45,0x0d,0x39,0x54,0x80,0x7b]
- ccmpge {of} word ptr [r8 + 4*rax + 123], dx
-# CHECK: ccmpge {of} dword ptr [r8 + 4*rax + 123], ecx
+ ccmpge {dfv=of} word ptr [r8 + 4*rax + 123], dx
+# CHECK: ccmpge {dfv=of} dword ptr [r8 + 4*rax + 123], ecx
# CHECK: encoding: [0x62,0xd4,0x44,0x0d,0x39,0x4c,0x80,0x7b]
- ccmpge {of} dword ptr [r8 + 4*rax + 123], ecx
-# CHECK: ccmpge {of} qword ptr [r8 + 4*rax + 123], r9
+ ccmpge {dfv=of} dword ptr [r8 + 4*rax + 123], ecx
+# CHECK: ccmpge {dfv=of} qword ptr [r8 + 4*rax + 123], r9
# CHECK: encoding: [0x62,0x54,0xc4,0x0d,0x39,0x4c,0x80,0x7b]
- ccmpge {of} qword ptr [r8 + 4*rax + 123], r9
-# CHECK: ccmpge {of} bl, byte ptr [r8 + 4*rax + 123]
+ ccmpge {dfv=of} qword ptr [r8 + 4*rax + 123], r9
+# CHECK: ccmpge {dfv=of} bl, byte ptr [r8 + 4*rax + 123]
# CHECK: encoding: [0x62,0xd4,0x44,0x0d,0x3a,0x5c,0x80,0x7b]
- ccmpge {of} bl, byte ptr [r8 + 4*rax + 123]
-# CHECK: ccmpge {of} dx, word ptr [r8 + 4*rax + 123]
+ ccmpge {dfv=of} bl, byte ptr [r8 + 4*rax + 123]
+# CHECK: ccmpge {dfv=of} dx, word ptr [r8 + 4*rax + 123]
# CHECK: encoding: [0x62,0xd4,0x45,0x0d,0x3b,0x54,0x80,0x7b]
- ccmpge {of} dx, word ptr [r8 + 4*rax + 123]
-# CHECK: ccmpge {of} ecx, dword ptr [r8 + 4*rax + 123]
+ ccmpge {dfv=of} dx, word ptr [r8 + 4*rax + 123]
+# CHECK: ccmpge {dfv=of} ecx, dword ptr [r8 + 4*rax + 123]
# CHECK: encoding: [0x62,0xd4,0x44,0x0d,0x3b,0x4c,0x80,0x7b]
- ccmpge {of} ecx, dword ptr [r8 + 4*rax + 123]
-# CHECK: ccmpge {of} r9, qword ptr [r8 + 4*rax + 123]
+ ccmpge {dfv=of} ecx, dword ptr [r8 + 4*rax + 123]
+# CHECK: ccmpge {dfv=of} r9, qword ptr [r8 + 4*rax + 123]
# CHECK: encoding: [0x62,0x54,0xc4,0x0d,0x3b,0x4c,0x80,0x7b]
- ccmpge {of} r9, qword ptr [r8 + 4*rax + 123]
-# CHECK: ccmpge {of} bl, 123
+ ccmpge {dfv=of} r9, qword ptr [r8 + 4*rax + 123]
+# CHECK: ccmpge {dfv=of} bl, 123
# CHECK: encoding: [0x62,0xf4,0x44,0x0d,0x80,0xfb,0x7b]
- ccmpge {of} bl, 123
-# CHECK: ccmpge {of} dx, 123
+ ccmpge {dfv=of} bl, 123
+# CHECK: ccmpge {dfv=of} dx, 123
# CHECK: encoding: [0x62,0xf4,0x45,0x0d,0x83,0xfa,0x7b]
- ccmpge {of} dx, 123
-# CHECK: ccmpge {of} ecx, 123
+ ccmpge {dfv=of} dx, 123
+# CHECK: ccmpge {dfv=of} ecx, 123
# CHECK: encoding: [0x62,0xf4,0x44,0x0d,0x83,0xf9,0x7b]
- ccmpge {of} ecx, 123
-# CHECK: ccmpge {of} r9, 123
+ ccmpge {dfv=of} ecx, 123
+# CHECK: ccmpge {dfv=of} r9, 123
# CHECK: encoding: [0x62,0xd4,0xc4,0x0d,0x83,0xf9,0x7b]
- ccmpge {of} r9, 123
-# CHECK: ccmpge {of} dx, 1234
+ ccmpge {dfv=of} r9, 123
+# CHECK: ccmpge {dfv=of} dx, 1234
# CHECK: encoding: [0x62,0xf4,0x45,0x0d,0x81,0xfa,0xd2,0x04]
- ccmpge {of} dx, 1234
-# CHECK: ccmpge {of} ecx, 123456
+ ccmpge {dfv=of} dx, 1234
+# CHECK: ccmpge {dfv=of} ecx, 123456
# CHECK: encoding: [0x62,0xf4,0x44,0x0d,0x81,0xf9,0x40,0xe2,0x01,0x00]
- ccmpge {of} ecx, 123456
-# CHECK: ccmpge {of} r9, 123456
+ ccmpge {dfv=of} ecx, 123456
+# CHECK: ccmpge {dfv=of} r9, 123456
# CHECK: encoding: [0x62,0xd4,0xc4,0x0d,0x81,0xf9,0x40,0xe2,0x01,0x00]
- ccmpge {of} r9, 123456
-# CHECK: ccmpge {of} dl, bl
+ ccmpge {dfv=of} r9, 123456
+# CHECK: ccmpge {dfv=of} dl, bl
# CHECK: encoding: [0x62,0xf4,0x44,0x0d,0x38,0xda]
- ccmpge {of} dl, bl
-# CHECK: ccmpge {of} ax, dx
+ ccmpge {dfv=of} dl, bl
+# CHECK: ccmpge {dfv=of} ax, dx
# CHECK: encoding: [0x62,0xf4,0x45,0x0d,0x39,0xd0]
- ccmpge {of} ax, dx
-# CHECK: ccmpge {of} edx, ecx
+ ccmpge {dfv=of} ax, dx
+# CHECK: ccmpge {dfv=of} edx, ecx
# CHECK: encoding: [0x62,0xf4,0x44,0x0d,0x39,0xca]
- ccmpge {of} edx, ecx
-# CHECK: ccmpge {of} r15, r9
+ ccmpge {dfv=of} edx, ecx
+# CHECK: ccmpge {dfv=of} r15, r9
# CHECK: encoding: [0x62,0x54,0xc4,0x0d,0x39,0xcf]
- ccmpge {of} r15, r9
-# CHECK: ccmpg {of} byte ptr [r8 + 4*rax + 123], 123
+ ccmpge {dfv=of} r15, r9
+# CHECK: ccmpg {dfv=of} byte ptr [r8 + 4*rax + 123], 123
# CHECK: encoding: [0x62,0xd4,0x44,0x0f,0x80,0x7c,0x80,0x7b,0x7b]
- ccmpg {of} byte ptr [r8 + 4*rax + 123], 123
-# CHECK: ccmpg {of} word ptr [r8 + 4*rax + 123], 123
+ ccmpg {dfv=of} byte ptr [r8 + 4*rax + 123], 123
+# CHECK: ccmpg {dfv=of} word ptr [r8 + 4*rax + 123], 123
# CHECK: encoding: [0x62,0xd4,0x45,0x0f,0x83,0x7c,0x80,0x7b,0x7b]
- ccmpg {of} word ptr [r8 + 4*rax + 123], 123
-# CHECK: ccmpg {of} word ptr [r8 + 4*rax + 123], 1234
+ ccmpg {dfv=of} word ptr [r8 + 4*rax + 123], 123
+# CHECK: ccmpg {dfv=of} word ptr [r8 + 4*rax + 123], 1234
# CHECK: encoding: [0x62,0xd4,0x45,0x0f,0x81,0x7c,0x80,0x7b,0xd2,0x04]
- ccmpg {of} word ptr [r8 + 4*rax + 123], 1234
-# CHECK: ccmpg {of} dword ptr [r8 + 4*rax + 123], 123
+ ccmpg {dfv=of} word ptr [r8 + 4*rax + 123], 1234
+# CHECK: ccmpg {dfv=of} dword ptr [r8 + 4*rax + 123], 123
# CHECK: encoding: [0x62,0xd4,0x44,0x0f,0x83,0x7c,0x80,0x7b,0x7b]
- ccmpg {of} dword ptr [r8 + 4*rax + 123], 123
-# CHECK: ccmpg {of} dword ptr [r8 + 4*rax + 123], 123456
+ ccmpg {dfv=of} dword ptr [r8 + 4*rax + 123], 123
+# CHECK: ccmpg {dfv=of} dword ptr [r8 + 4*rax + 123], 123456
# CHECK: encoding: [0x62,0xd4,0x44,0x0f,0x81,0x7c,0x80,0x7b,0x40,0xe2,0x01,0x00]
- ccmpg {of} dword ptr [r8 + 4*rax + 123], 123456
-# CHECK: ccmpg {of} qword ptr [r8 + 4*rax + 123], 123
+ ccmpg {dfv=of} dword ptr [r8 + 4*rax + 123], 123456
+# CHECK: ccmpg {dfv=of} qword ptr [r8 + 4*rax + 123], 123
# CHECK: encoding: [0x62,0xd4,0xc4,0x0f,0x83,0x7c,0x80,0x7b,0x7b]
- ccmpg {of} qword ptr [r8 + 4*rax + 123], 123
-# CHECK: ccmpg {of} qword ptr [r8 + 4*rax + 123], 123456
+ ccmpg {dfv=of} qword ptr [r8 + 4*rax + 123], 123
+# CHECK: ccmpg {dfv=of} qword ptr [r8 + 4*rax + 123], 123456
# CHECK: encoding: [0x62,0xd4,0xc4,0x0f,0x81,0x7c,0x80,0x7b,0x40,0xe2,0x01,0x00]
- ccmpg {of} qword ptr [r8 + 4*rax + 123], 123456
-# CHECK: ccmpg {of} byte ptr [r8 + 4*rax + 123], bl
+ ccmpg {dfv=of} qword ptr [r8 + 4*rax + 123], 123456
+# CHECK: ccmpg {dfv=of} byte ptr [r8 + 4*rax + 123], bl
# CHECK: encoding: [0x62,0xd4,0x44,0x0f,0x38,0x5c,0x80,0x7b]
- ccmpg {of} byte ptr [r8 + 4*rax + 123], bl
-# CHECK: ccmpg {of} word ptr [r8 + 4*rax + 123], dx
+ ccmpg {dfv=of} byte ptr [r8 + 4*rax + 123], bl
+# CHECK: ccmpg {dfv=of} word ptr [r8 + 4*rax + 123], dx
# CHECK: encoding: [0x62,0xd4,0x45,0x0f,0x39,0x54,0x80,0x7b]
- ccmpg {of} word ptr [r8 + 4*rax + 123], dx
-# CHECK: ccmpg {of} dword ptr [r8 + 4*rax + 123], ecx
+ ccmpg {dfv=of} word ptr [r8 + 4*rax + 123], dx
+# CHECK: ccmpg {dfv=of} dword ptr [r8 + 4*rax + 123], ecx
# CHECK: encoding: [0x62,0xd4,0x44,0x0f,0x39,0x4c,0x80,0x7b]
- ccmpg {of} dword ptr [r8 + 4*rax + 123], ecx
-# CHECK: ccmpg {of} qword ptr [r8 + 4*rax + 123], r9
+ ccmpg {dfv=of} dword ptr [r8 + 4*rax + 123], ecx
+# CHECK: ccmpg {dfv=of} qword ptr [r8 + 4*rax + 123], r9
# CHECK: encoding: [0x62,0x54,0xc4,0x0f,0x39,0x4c,0x80,0x7b]
- ccmpg {of} qword ptr [r8 + 4*rax + 123], r9
-# CHECK: ccmpg {of} bl, byte ptr [r8 + 4*rax + 123]
+ ccmpg {dfv=of} qword ptr [r8 + 4*rax + 123], r9
+# CHECK: ccmpg {dfv=of} bl, byte ptr [r8 + 4*rax + 123]
# CHECK: encoding: [0x62,0xd4,0x44,0x0f,0x3a,0x5c,0x80,0x7b]
- ccmpg {of} bl, byte ptr [r8 + 4*rax + 123]
-# CHECK: ccmpg {of} dx, word ptr [r8 + 4*rax + 123]
+ ccmpg {dfv=of} bl, byte ptr [r8 + 4*rax + 123]
+# CHECK: ccmpg {dfv=of} dx, word ptr [r8 + 4*rax + 123]
# CHECK: encoding: [0x62,0xd4,0x45,0x0f,0x3b,0x54,0x80,0x7b]
- ccmpg {of} dx, word ptr [r8 + 4*rax + 123]
-# CHECK: ccmpg {of} ecx, dword ptr [r8 + 4*rax + 123]
+ ccmpg {dfv=of} dx, word ptr [r8 + 4*rax + 123]
+# CHECK: ccmpg {dfv=of} ecx, dword ptr [r8 + 4*rax + 123]
# CHECK: encoding: [0x62,0xd4,0x44,0x0f,0x3b,0x4c,0x80,0x7b]
- ccmpg {of} ecx, dword ptr [r8 + 4*rax + 123]
-# CHECK: ccmpg {of} r9, qword ptr [r8 + 4*rax + 123]
+ ccmpg {dfv=of} ecx, dword ptr [r8 + 4*rax + 123]
+# CHECK: ccmpg {dfv=of} r9, qword ptr [r8 + 4*rax + 123]
# CHECK: encoding: [0x62,0x54,0xc4,0x0f,0x3b,0x4c,0x80,0x7b]
- ccmpg {of} r9, qword ptr [r8 + 4*rax + 123]
-# CHECK: ccmpg {of} bl, 123
+ ccmpg {dfv=of} r9, qword ptr [r8 + 4*rax + 123]
+# CHECK: ccmpg {dfv=of} bl, 123
# CHECK: encoding: [0x62,0xf4,0x44,0x0f,0x80,0xfb,0x7b]
- ccmpg {of} bl, 123
-# CHECK: ccmpg {of} dx, 123
+ ccmpg {dfv=of} bl, 123
+# CHECK: ccmpg {dfv=of} dx, 123
# CHECK: encoding: [0x62,0xf4,0x45,0x0f,0x83,0xfa,0x7b]
- ccmpg {of} dx, 123
-# CHECK: ccmpg {of} ecx, 123
+ ccmpg {dfv=of} dx, 123
+# CHECK: ccmpg {dfv=of} ecx, 123
# CHECK: encoding: [0x62,0xf4,0x44,0x0f,0x83,0xf9,0x7b]
- ccmpg {of} ecx, 123
-# CHECK: ccmpg {of} r9, 123
+ ccmpg {dfv=of} ecx, 123
+# CHECK: ccmpg {dfv=of} r9, 123
# CHECK: encoding: [0x62,0xd4,0xc4,0x0f,0x83,0xf9,0x7b]
- ccmpg {of} r9, 123
-# CHECK: ccmpg {of} dx, 1234
+ ccmpg {dfv=of} r9, 123
+# CHECK: ccmpg {dfv=of} dx, 1234
# CHECK: encoding: [0x62,0xf4,0x45,0x0f,0x81,0xfa,0xd2,0x04]
- ccmpg {of} dx, 1234
-# CHECK: ccmpg {of} ecx, 123456
+ ccmpg {dfv=of} dx, 1234
+# CHECK: ccmpg {dfv=of} ecx, 123456
# CHECK: encoding: [0x62,0xf4,0x44,0x0f,0x81,0xf9,0x40,0xe2,0x01,0x00]
- ccmpg {of} ecx, 123456
-# CHECK: ccmpg {of} r9, 123456
+ ccmpg {dfv=of} ecx, 123456
+# CHECK: ccmpg {dfv=of} r9, 123456
# CHECK: encoding: [0x62,0xd4,0xc4,0x0f,0x81,0xf9,0x40,0xe2,0x01,0x00]
- ccmpg {of} r9, 123456
-# CHECK: ccmpg {of} dl, bl
+ ccmpg {dfv=of} r9, 123456
+# CHECK: ccmpg {dfv=of} dl, bl
# CHECK: encoding: [0x62,0xf4,0x44,0x0f,0x38,0xda]
- ccmpg {of} dl, bl
-# CHECK: ccmpg {of} ax, dx
+ ccmpg {dfv=of} dl, bl
+# CHECK: ccmpg {dfv=of} ax, dx
# CHECK: encoding: [0x62,0xf4,0x45,0x0f,0x39,0xd0]
- ccmpg {of} ax, dx
-# CHECK: ccmpg {of} edx, ecx
+ ccmpg {dfv=of} ax, dx
+# CHECK: ccmpg {dfv=of} edx, ecx
# CHECK: encoding: [0x62,0xf4,0x44,0x0f,0x39,0xca]
- ccmpg {of} edx, ecx
-# CHECK: ccmpg {of} r15, r9
+ ccmpg {dfv=of} edx, ecx
+# CHECK: ccmpg {dfv=of} r15, r9
# CHECK: encoding: [0x62,0x54,0xc4,0x0f,0x39,0xcf]
- ccmpg {of} r15, r9
-# CHECK: ccmpno {of} byte ptr [r8 + 4*rax + 123], 123
+ ccmpg {dfv=of} r15, r9
+# CHECK: ccmpno {dfv=of} byte ptr [r8 + 4*rax + 123], 123
# CHECK: encoding: [0x62,0xd4,0x44,0x01,0x80,0x7c,0x80,0x7b,0x7b]
- ccmpno {of} byte ptr [r8 + 4*rax + 123], 123
-# CHECK: ccmpno {of} word ptr [r8 + 4*rax + 123], 123
+ ccmpno {dfv=of} byte ptr [r8 + 4*rax + 123], 123
+# CHECK: ccmpno {dfv=of} word ptr [r8 + 4*rax + 123], 123
# CHECK: encoding: [0x62,0xd4,0x45,0x01,0x83,0x7c,0x80,0x7b,0x7b]
- ccmpno {of} word ptr [r8 + 4*rax + 123], 123
-# CHECK: ccmpno {of} word ptr [r8 + 4*rax + 123], 1234
+ ccmpno {dfv=of} word ptr [r8 + 4*rax + 123], 123
+# CHECK: ccmpno {dfv=of} word ptr [r8 + 4*rax + 123], 1234
# CHECK: encoding: [0x62,0xd4,0x45,0x01,0x81,0x7c,0x80,0x7b,0xd2,0x04]
- ccmpno {of} word ptr [r8 + 4*rax + 123], 1234
-# CHECK: ccmpno {of} dword ptr [r8 + 4*rax + 123], 123
+ ccmpno {dfv=of} word ptr [r8 + 4*rax + 123], 1234
+# CHECK: ccmpno {dfv=of} dword ptr [r8 + 4*rax + 123], 123
# CHECK: encoding: [0x62,0xd4,0x44,0x01,0x83,0x7c,0x80,0x7b,0x7b]
- ccmpno {of} dword ptr [r8 + 4*rax + 123], 123
-# CHECK: ccmpno {of} dword ptr [r8 + 4*rax + 123], 123456
+ ccmpno {dfv=of} dword ptr [r8 + 4*rax + 123], 123
+# CHECK: ccmpno {dfv=of} dword ptr [r8 + 4*rax + 123], 123456
# CHECK: encoding: [0x62,0xd4,0x44,0x01,0x81,0x7c,0x80,0x7b,0x40,0xe2,0x01,0x00]
- ccmpno {of} dword ptr [r8 + 4*rax + 123], 123456
-# CHECK: ccmpno {of} qword ptr [r8 + 4*rax + 123], 123
+ ccmpno {dfv=of} dword ptr [r8 + 4*rax + 123], 123456
+# CHECK: ccmpno {dfv=of} qword ptr [r8 + 4*rax + 123], 123
# CHECK: encoding: [0x62,0xd4,0xc4,0x01,0x83,0x7c,0x80,0x7b,0x7b]
- ccmpno {of} qword ptr [r8 + 4*rax + 123], 123
-# CHECK: ccmpno {of} qword ptr [r8 + 4*rax + 123], 123456
+ ccmpno {dfv=of} qword ptr [r8 + 4*rax + 123], 123
+# CHECK: ccmpno {dfv=of} qword ptr [r8 + 4*rax + 123], 123456
# CHECK: encoding: [0x62,0xd4,0xc4,0x01,0x81,0x7c,0x80,0x7b,0x40,0xe2,0x01,0x00]
- ccmpno {of} qword ptr [r8 + 4*rax + 123], 123456
-# CHECK: ccmpno {of} byte ptr [r8 + 4*rax + 123], bl
+ ccmpno {dfv=of} qword ptr [r8 + 4*rax + 123], 123456
+# CHECK: ccmpno {dfv=of} byte ptr [r8 + 4*rax + 123], bl
# CHECK: encoding: [0x62,0xd4,0x44,0x01,0x38,0x5c,0x80,0x7b]
- ccmpno {of} byte ptr [r8 + 4*rax + 123], bl
-# CHECK: ccmpno {of} word ptr [r8 + 4*rax + 123], dx
+ ccmpno {dfv=of} byte ptr [r8 + 4*rax + 123], bl
+# CHECK: ccmpno {dfv=of} word ptr [r8 + 4*rax + 123], dx
# CHECK: encoding: [0x62,0xd4,0x45,0x01,0x39,0x54,0x80,0x7b]
- ccmpno {of} word ptr [r8 + 4*rax + 123], dx
-# CHECK: ccmpno {of} dword ptr [r8 + 4*rax + 123], ecx
+ ccmpno {dfv=of} word ptr [r8 + 4*rax + 123], dx
+# CHECK: ccmpno {dfv=of} dword ptr [r8 + 4*rax + 123], ecx
# CHECK: encoding: [0x62,0xd4,0x44,0x01,0x39,0x4c,0x80,0x7b]
- ccmpno {of} dword ptr [r8 + 4*rax + 123], ecx
-# CHECK: ccmpno {of} qword ptr [r8 + 4*rax + 123], r9
+ ccmpno {dfv=of} dword ptr [r8 + 4*rax + 123], ecx
+# CHECK: ccmpno {dfv=of} qword ptr [r8 + 4*rax + 123], r9
# CHECK: encoding: [0x62,0x54,0xc4,0x01,0x39,0x4c,0x80,0x7b]
- ccmpno {of} qword ptr [r8 + 4*rax + 123], r9
-# CHECK: ccmpno {of} bl, byte ptr [r8 + 4*rax + 123]
+ ccmpno {dfv=of} qword ptr [r8 + 4*rax + 123], r9
+# CHECK: ccmpno {dfv=of} bl, byte ptr [r8 + 4*rax + 123]
# CHECK: encoding: [0x62,0xd4,0x44,0x01,0x3a,0x5c,0x80,0x7b]
- ccmpno {of} bl, byte ptr [r8 + 4*rax + 123]
-# CHECK: ccmpno {of} dx, word ptr [r8 + 4*rax + 123]
+ ccmpno {dfv=of} bl, byte ptr [r8 + 4*rax + 123]
+# CHECK: ccmpno {dfv=of} dx, word ptr [r8 + 4*rax + 123]
# CHECK: encoding: [0x62,0xd4,0x45,0x01,0x3b,0x54,0x80,0x7b]
- ccmpno {of} dx, word ptr [r8 + 4*rax + 123]
-# CHECK: ccmpno {of} ecx, dword ptr [r8 + 4*rax + 123]
+ ccmpno {dfv=of} dx, word ptr [r8 + 4*rax + 123]
+# CHECK: ccmpno {dfv=of} ecx, dword ptr [r8 + 4*rax + 123]
# CHECK: encoding: [0x62,0xd4,0x44,0x01,0x3b,0x4c,0x80,0x7b]
- ccmpno {of} ecx, dword ptr [r8 + 4*rax + 123]
-# CHECK: ccmpno {of} r9, qword ptr [r8 + 4*rax + 123]
+ ccmpno {dfv=of} ecx, dword ptr [r8 + 4*rax + 123]
+# CHECK: ccmpno {dfv=of} r9, qword ptr [r8 + 4*rax + 123]
# CHECK: encoding: [0x62,0x54,0xc4,0x01,0x3b,0x4c,0x80,0x7b]
- ccmpno {of} r9, qword ptr [r8 + 4*rax + 123]
-# CHECK: ccmpno {of} bl, 123
+ ccmpno {dfv=of} r9, qword ptr [r8 + 4*rax + 123]
+# CHECK: ccmpno {dfv=of} bl, 123
# CHECK: encoding: [0x62,0xf4,0x44,0x01,0x80,0xfb,0x7b]
- ccmpno {of} bl, 123
-# CHECK: ccmpno {of} dx, 123
+ ccmpno {dfv=of} bl, 123
+# CHECK: ccmpno {dfv=of} dx, 123
# CHECK: encoding: [0x62,0xf4,0x45,0x01,0x83,0xfa,0x7b]
- ccmpno {of} dx, 123
-# CHECK: ccmpno {of} ecx, 123
+ ccmpno {dfv=of} dx, 123
+# CHECK: ccmpno {dfv=of} ecx, 123
# CHECK: encoding: [0x62,0xf4,0x44,0x01,0x83,0xf9,0x7b]
- ccmpno {of} ecx, 123
-# CHECK: ccmpno {of} r9, 123
+ ccmpno {dfv=of} ecx, 123
+# CHECK: ccmpno {dfv=of} r9, 123
# CHECK: encoding: [0x62,0xd4,0xc4,0x01,0x83,0xf9,0x7b]
- ccmpno {of} r9, 123
-# CHECK: ccmpno {of} dx, 1234
+ ccmpno {dfv=of} r9, 123
+# CHECK: ccmpno {dfv=of} dx, 1234
# CHECK: encoding: [0x62,0xf4,0x45,0x01,0x81,0xfa,0xd2,0x04]
- ccmpno {of} dx, 1234
-# CHECK: ccmpno {of} ecx, 123456
+ ccmpno {dfv=of} dx, 1234
+# CHECK: ccmpno {dfv=of} ecx, 123456
# CHECK: encoding: [0x62,0xf4,0x44,0x01,0x81,0xf9,0x40,0xe2,0x01,0x00]
- ccmpno {of} ecx, 123456
-# CHECK: ccmpno {of} r9, 123456
+ ccmpno {dfv=of} ecx, 123456
+# CHECK: ccmpno {dfv=of} r9, 123456
# CHECK: encoding: [0x62,0xd4,0xc4,0x01,0x81,0xf9,0x40,0xe2,0x01,0x00]
- ccmpno {of} r9, 123456
-# CHECK: ccmpno {of} dl, bl
+ ccmpno {dfv=of} r9, 123456
+# CHECK: ccmpno {dfv=of} dl, bl
# CHECK: encoding: [0x62,0xf4,0x44,0x01,0x38,0xda]
- ccmpno {of} dl, bl
-# CHECK: ccmpno {of} ax, dx
+ ccmpno {dfv=of} dl, bl
+# CHECK: ccmpno {dfv=of} ax, dx
# CHECK: encoding: [0x62,0xf4,0x45,0x01,0x39,0xd0]
- ccmpno {of} ax, dx
-# CHECK: ccmpno {of} edx, ecx
+ ccmpno {dfv=of} ax, dx
+# CHECK: ccmpno {dfv=of} edx, ecx
# CHECK: encoding: [0x62,0xf4,0x44,0x01,0x39,0xca]
- ccmpno {of} edx, ecx
-# CHECK: ccmpno {of} r15, r9
+ ccmpno {dfv=of} edx, ecx
+# CHECK: ccmpno {dfv=of} r15, r9
# CHECK: encoding: [0x62,0x54,0xc4,0x01,0x39,0xcf]
- ccmpno {of} r15, r9
-# CHECK: ccmpns {of} byte ptr [r8 + 4*rax + 123], 123
+ ccmpno {dfv=of} r15, r9
+# CHECK: ccmpns {dfv=of} byte ptr [r8 + 4*rax + 123], 123
# CHECK: encoding: [0x62,0xd4,0x44,0x09,0x80,0x7c,0x80,0x7b,0x7b]
- ccmpns {of} byte ptr [r8 + 4*rax + 123], 123
-# CHECK: ccmpns {of} word ptr [r8 + 4*rax + 123], 123
+ ccmpns {dfv=of} byte ptr [r8 + 4*rax + 123], 123
+# CHECK: ccmpns {dfv=of} word ptr [r8 + 4*rax + 123], 123
# CHECK: encoding: [0x62,0xd4,0x45,0x09,0x83,0x7c,0x80,0x7b,0x7b]
- ccmpns {of} word ptr [r8 + 4*rax + 123], 123
-# CHECK: ccmpns {of} word ptr [r8 + 4*rax + 123], 1234
+ ccmpns {dfv=of} word ptr [r8 + 4*rax + 123], 123
+# CHECK: ccmpns {dfv=of} word ptr [r8 + 4*rax + 123], 1234
# CHECK: encoding: [0x62,0xd4,0x45,0x09,0x81,0x7c,0x80,0x7b,0xd2,0x04]
- ccmpns {of} word ptr [r8 + 4*rax + 123], 1234
-# CHECK: ccmpns {of} dword ptr [r8 + 4*rax + 123], 123
+ ccmpns {dfv=of} word ptr [r8 + 4*rax + 123], 1234
+# CHECK: ccmpns {dfv=of} dword ptr [r8 + 4*rax + 123], 123
# CHECK: encoding: [0x62,0xd4,0x44,0x09,0x83,0x7c,0x80,0x7b,0x7b]
- ccmpns {of} dword ptr [r8 + 4*rax + 123], 123
-# CHECK: ccmpns {of} dword ptr [r8 + 4*rax + 123], 123456
+ ccmpns {dfv=of} dword ptr [r8 + 4*rax + 123], 123
+# CHECK: ccmpns {dfv=of} dword ptr [r8 + 4*rax + 123], 123456
# CHECK: encoding: [0x62,0xd4,0x44,0x09,0x81,0x7c,0x80,0x7b,0x40,0xe2,0x01,0x00]
- ccmpns {of} dword ptr [r8 + 4*rax + 123], 123456
-# CHECK: ccmpns {of} qword ptr [r8 + 4*rax + 123], 123
+ ccmpns {dfv=of} dword ptr [r8 + 4*rax + 123], 123456
+# CHECK: ccmpns {dfv=of} qword ptr [r8 + 4*rax + 123], 123
# CHECK: encoding: [0x62,0xd4,0xc4,0x09,0x83,0x7c,0x80,0x7b,0x7b]
- ccmpns {of} qword ptr [r8 + 4*rax + 123], 123
-# CHECK: ccmpns {of} qword ptr [r8 + 4*rax + 123], 123456
+ ccmpns {dfv=of} qword ptr [r8 + 4*rax + 123], 123
+# CHECK: ccmpns {dfv=of} qword ptr [r8 + 4*rax + 123], 123456
# CHECK: encoding: [0x62,0xd4,0xc4,0x09,0x81,0x7c,0x80,0x7b,0x40,0xe2,0x01,0x00]
- ccmpns {of} qword ptr [r8 + 4*rax + 123], 123456
-# CHECK: ccmpns {of} byte ptr [r8 + 4*rax + 123], bl
+ ccmpns {dfv=of} qword ptr [r8 + 4*rax + 123], 123456
+# CHECK: ccmpns {dfv=of} byte ptr [r8 + 4*rax + 123], bl
# CHECK: encoding: [0x62,0xd4,0x44,0x09,0x38,0x5c,0x80,0x7b]
- ccmpns {of} byte ptr [r8 + 4*rax + 123], bl
-# CHECK: ccmpns {of} word ptr [r8 + 4*rax + 123], dx
+ ccmpns {dfv=of} byte ptr [r8 + 4*rax + 123], bl
+# CHECK: ccmpns {dfv=of} word ptr [r8 + 4*rax + 123], dx
# CHECK: encoding: [0x62,0xd4,0x45,0x09,0x39,0x54,0x80,0x7b]
- ccmpns {of} word ptr [r8 + 4*rax + 123], dx
-# CHECK: ccmpns {of} dword ptr [r8 + 4*rax + 123], ecx
+ ccmpns {dfv=of} word ptr [r8 + 4*rax + 123], dx
+# CHECK: ccmpns {dfv=of} dword ptr [r8 + 4*rax + 123], ecx
# CHECK: encoding: [0x62,0xd4,0x44,0x09,0x39,0x4c,0x80,0x7b]
- ccmpns {of} dword ptr [r8 + 4*rax + 123], ecx
-# CHECK: ccmpns {of} qword ptr [r8 + 4*rax + 123], r9
+ ccmpns {dfv=of} dword ptr [r8 + 4*rax + 123], ecx
+# CHECK: ccmpns {dfv=of} qword ptr [r8 + 4*rax + 123], r9
# CHECK: encoding: [0x62,0x54,0xc4,0x09,0x39,0x4c,0x80,0x7b]
- ccmpns {of} qword ptr [r8 + 4*rax + 123], r9
-# CHECK: ccmpns {of} bl, byte ptr [r8 + 4*rax + 123]
+ ccmpns {dfv=of} qword ptr [r8 + 4*rax + 123], r9
+# CHECK: ccmpns {dfv=of} bl, byte ptr [r8 + 4*rax + 123]
# CHECK: encoding: [0x62,0xd4,0x44,0x09,0x3a,0x5c,0x80,0x7b]
- ccmpns {of} bl, byte ptr [r8 + 4*rax + 123]
-# CHECK: ccmpns {of} dx, word ptr [r8 + 4*rax + 123]
+ ccmpns {dfv=of} bl, byte ptr [r8 + 4*rax + 123]
+# CHECK: ccmpns {dfv=of} dx, word ptr [r8 + 4*rax + 123]
# CHECK: encoding: [0x62,0xd4,0x45,0x09,0x3b,0x54,0x80,0x7b]
- ccmpns {of} dx, word ptr [r8 + 4*rax + 123]
-# CHECK: ccmpns {of} ecx, dword ptr [r8 + 4*rax + 123]
+ ccmpns {dfv=of} dx, word ptr [r8 + 4*rax + 123]
+# CHECK: ccmpns {dfv=of} ecx, dword ptr [r8 + 4*rax + 123]
# CHECK: encoding: [0x62,0xd4,0x44,0x09,0x3b,0x4c,0x80,0x7b]
- ccmpns {of} ecx, dword ptr [r8 + 4*rax + 123]
-# CHECK: ccmpns {of} r9, qword ptr [r8 + 4*rax + 123]
+ ccmpns {dfv=of} ecx, dword ptr [r8 + 4*rax + 123]
+# CHECK: ccmpns {dfv=of} r9, qword ptr [r8 + 4*rax + 123]
# CHECK: encoding: [0x62,0x54,0xc4,0x09,0x3b,0x4c,0x80,0x7b]
- ccmpns {of} r9, qword ptr [r8 + 4*rax + 123]
-# CHECK: ccmpns {of} bl, 123
+ ccmpns {dfv=of} r9, qword ptr [r8 + 4*rax + 123]
+# CHECK: ccmpns {dfv=of} bl, 123
# CHECK: encoding: [0x62,0xf4,0x44,0x09,0x80,0xfb,0x7b]
- ccmpns {of} bl, 123
-# CHECK: ccmpns {of} dx, 123
+ ccmpns {dfv=of} bl, 123
+# CHECK: ccmpns {dfv=of} dx, 123
# CHECK: encoding: [0x62,0xf4,0x45,0x09,0x83,0xfa,0x7b]
- ccmpns {of} dx, 123
-# CHECK: ccmpns {of} ecx, 123
+ ccmpns {dfv=of} dx, 123
+# CHECK: ccmpns {dfv=of} ecx, 123
# CHECK: encoding: [0x62,0xf4,0x44,0x09,0x83,0xf9,0x7b]
- ccmpns {of} ecx, 123
-# CHECK: ccmpns {of} r9, 123
+ ccmpns {dfv=of} ecx, 123
+# CHECK: ccmpns {dfv=of} r9, 123
# CHECK: encoding: [0x62,0xd4,0xc4,0x09,0x83,0xf9,0x7b]
- ccmpns {of} r9, 123
-# CHECK: ccmpns {of} dx, 1234
+ ccmpns {dfv=of} r9, 123
+# CHECK: ccmpns {dfv=of} dx, 1234
# CHECK: encoding: [0x62,0xf4,0x45,0x09,0x81,0xfa,0xd2,0x04]
- ccmpns {of} dx, 1234
-# CHECK: ccmpns {of} ecx, 123456
+ ccmpns {dfv=of} dx, 1234
+# CHECK: ccmpns {dfv=of} ecx, 123456
# CHECK: encoding: [0x62,0xf4,0x44,0x09,0x81,0xf9,0x40,0xe2,0x01,0x00]
- ccmpns {of} ecx, 123456
-# CHECK: ccmpns {of} r9, 123456
+ ccmpns {dfv=of} ecx, 123456
+# CHECK: ccmpns {dfv=of} r9, 123456
# CHECK: encoding: [0x62,0xd4,0xc4,0x09,0x81,0xf9,0x40,0xe2,0x01,0x00]
- ccmpns {of} r9, 123456
-# CHECK: ccmpns {of} dl, bl
+ ccmpns {dfv=of} r9, 123456
+# CHECK: ccmpns {dfv=of} dl, bl
# CHECK: encoding: [0x62,0xf4,0x44,0x09,0x38,0xda]
- ccmpns {of} dl, bl
-# CHECK: ccmpns {of} ax, dx
+ ccmpns {dfv=of} dl, bl
+# CHECK: ccmpns {dfv=of} ax, dx
# CHECK: encoding: [0x62,0xf4,0x45,0x09,0x39,0xd0]
- ccmpns {of} ax, dx
-# CHECK: ccmpns {of} edx, ecx
+ ccmpns {dfv=of} ax, dx
+# CHECK: ccmpns {dfv=of} edx, ecx
# CHECK: encoding: [0x62,0xf4,0x44,0x09,0x39,0xca]
- ccmpns {of} edx, ecx
-# CHECK: ccmpns {of} r15, r9
+ ccmpns {dfv=of} edx, ecx
+# CHECK: ccmpns {dfv=of} r15, r9
# CHECK: encoding: [0x62,0x54,0xc4,0x09,0x39,0xcf]
- ccmpns {of} r15, r9
-# CHECK: ccmpne {of} byte ptr [r8 + 4*rax + 123], 123
+ ccmpns {dfv=of} r15, r9
+# CHECK: ccmpne {dfv=of} byte ptr [r8 + 4*rax + 123], 123
# CHECK: encoding: [0x62,0xd4,0x44,0x05,0x80,0x7c,0x80,0x7b,0x7b]
- ccmpne {of} byte ptr [r8 + 4*rax + 123], 123
-# CHECK: ccmpne {of} word ptr [r8 + 4*rax + 123], 123
+ ccmpne {dfv=of} byte ptr [r8 + 4*rax + 123], 123
+# CHECK: ccmpne {dfv=of} word ptr [r8 + 4*rax + 123], 123
# CHECK: encoding: [0x62,0xd4,0x45,0x05,0x83,0x7c,0x80,0x7b,0x7b]
- ccmpne {of} word ptr [r8 + 4*rax + 123], 123
-# CHECK: ccmpne {of} word ptr [r8 + 4*rax + 123], 1234
+ ccmpne {dfv=of} word ptr [r8 + 4*rax + 123], 123
+# CHECK: ccmpne {dfv=of} word ptr [r8 + 4*rax + 123], 1234
# CHECK: encoding: [0x62,0xd4,0x45,0x05,0x81,0x7c,0x80,0x7b,0xd2,0x04]
- ccmpne {of} word ptr [r8 + 4*rax + 123], 1234
-# CHECK: ccmpne {of} dword ptr [r8 + 4*rax + 123], 123
+ ccmpne {dfv=of} word ptr [r8 + 4*rax + 123], 1234
+# CHECK: ccmpne {dfv=of} dword ptr [r8 + 4*rax + 123], 123
# CHECK: encoding: [0x62,0xd4,0x44,0x05,0x83,0x7c,0x80,0x7b,0x7b]
- ccmpne {of} dword ptr [r8 + 4*rax + 123], 123
-# CHECK: ccmpne {of} dword ptr [r8 + 4*rax + 123], 123456
+ ccmpne {dfv=of} dword ptr [r8 + 4*rax + 123], 123
+# CHECK: ccmpne {dfv=of} dword ptr [r8 + 4*rax + 123], 123456
# CHECK: encoding: [0x62,0xd4,0x44,0x05,0x81,0x7c,0x80,0x7b,0x40,0xe2,0x01,0x00]
- ccmpne {of} dword ptr [r8 + 4*rax + 123], 123456
-# CHECK: ccmpne {of} qword ptr [r8 + 4*rax + 123], 123
+ ccmpne {dfv=of} dword ptr [r8 + 4*rax + 123], 123456
+# CHECK: ccmpne {dfv=of} qword ptr [r8 + 4*rax + 123], 123
# CHECK: encoding: [0x62,0xd4,0xc4,0x05,0x83,0x7c,0x80,0x7b,0x7b]
- ccmpne {of} qword ptr [r8 + 4*rax + 123], 123
-# CHECK: ccmpne {of} qword ptr [r8 + 4*rax + 123], 123456
+ ccmpne {dfv=of} qword ptr [r8 + 4*rax + 123], 123
+# CHECK: ccmpne {dfv=of} qword ptr [r8 + 4*rax + 123], 123456
# CHECK: encoding: [0x62,0xd4,0xc4,0x05,0x81,0x7c,0x80,0x7b,0x40,0xe2,0x01,0x00]
- ccmpne {of} qword ptr [r8 + 4*rax + 123], 123456
-# CHECK: ccmpne {of} byte ptr [r8 + 4*rax + 123], bl
+ ccmpne {dfv=of} qword ptr [r8 + 4*rax + 123], 123456
+# CHECK: ccmpne {dfv=of} byte ptr [r8 + 4*rax + 123], bl
# CHECK: encoding: [0x62,0xd4,0x44,0x05,0x38,0x5c,0x80,0x7b]
- ccmpne {of} byte ptr [r8 + 4*rax + 123], bl
-# CHECK: ccmpne {of} word ptr [r8 + 4*rax + 123], dx
+ ccmpne {dfv=of} byte ptr [r8 + 4*rax + 123], bl
+# CHECK: ccmpne {dfv=of} word ptr [r8 + 4*rax + 123], dx
# CHECK: encoding: [0x62,0xd4,0x45,0x05,0x39,0x54,0x80,0x7b]
- ccmpne {of} word ptr [r8 + 4*rax + 123], dx
-# CHECK: ccmpne {of} dword ptr [r8 + 4*rax + 123], ecx
+ ccmpne {dfv=of} word ptr [r8 + 4*rax + 123], dx
+# CHECK: ccmpne {dfv=of} dword ptr [r8 + 4*rax + 123], ecx
# CHECK: encoding: [0x62,0xd4,0x44,0x05,0x39,0x4c,0x80,0x7b]
- ccmpne {of} dword ptr [r8 + 4*rax + 123], ecx
-# CHECK: ccmpne {of} qword ptr [r8 + 4*rax + 123], r9
+ ccmpne {dfv=of} dword ptr [r8 + 4*rax + 123], ecx
+# CHECK: ccmpne {dfv=of} qword ptr [r8 + 4*rax + 123], r9
# CHECK: encoding: [0x62,0x54,0xc4,0x05,0x39,0x4c,0x80,0x7b]
- ccmpne {of} qword ptr [r8 + 4*rax + 123], r9
-# CHECK: ccmpne {of} bl, byte ptr [r8 + 4*rax + 123]
+ ccmpne {dfv=of} qword ptr [r8 + 4*rax + 123], r9
+# CHECK: ccmpne {dfv=of} bl, byte ptr [r8 + 4*rax + 123]
# CHECK: encoding: [0x62,0xd4,0x44,0x05,0x3a,0x5c,0x80,0x7b]
- ccmpne {of} bl, byte ptr [r8 + 4*rax + 123]
-# CHECK: ccmpne {of} dx, word ptr [r8 + 4*rax + 123]
+ ccmpne {dfv=of} bl, byte ptr [r8 + 4*rax + 123]
+# CHECK: ccmpne {dfv=of} dx, word ptr [r8 + 4*rax + 123]
# CHECK: encoding: [0x62,0xd4,0x45,0x05,0x3b,0x54,0x80,0x7b]
- ccmpne {of} dx, word ptr [r8 + 4*rax + 123]
-# CHECK: ccmpne {of} ecx, dword ptr [r8 + 4*rax + 123]
+ ccmpne {dfv=of} dx, word ptr [r8 + 4*rax + 123]
+# CHECK: ccmpne {dfv=of} ecx, dword ptr [r8 + 4*rax + 123]
# CHECK: encoding: [0x62,0xd4,0x44,0x05,0x3b,0x4c,0x80,0x7b]
- ccmpne {of} ecx, dword ptr [r8 + 4*rax + 123]
-# CHECK: ccmpne {of} r9, qword ptr [r8 + 4*rax + 123]
+ ccmpne {dfv=of} ecx, dword ptr [r8 + 4*rax + 123]
+# CHECK: ccmpne {dfv=of} r9, qword ptr [r8 + 4*rax + 123]
# CHECK: encoding: [0x62,0x54,0xc4,0x05,0x3b,0x4c,0x80,0x7b]
- ccmpne {of} r9, qword ptr [r8 + 4*rax + 123]
-# CHECK: ccmpne {of} bl, 123
+ ccmpne {dfv=of} r9, qword ptr [r8 + 4*rax + 123]
+# CHECK: ccmpne {dfv=of} bl, 123
# CHECK: encoding: [0x62,0xf4,0x44,0x05,0x80,0xfb,0x7b]
- ccmpne {of} bl, 123
-# CHECK: ccmpne {of} dx, 123
+ ccmpne {dfv=of} bl, 123
+# CHECK: ccmpne {dfv=of} dx, 123
# CHECK: encoding: [0x62,0xf4,0x45,0x05,0x83,0xfa,0x7b]
- ccmpne {of} dx, 123
-# CHECK: ccmpne {of} ecx, 123
+ ccmpne {dfv=of} dx, 123
+# CHECK: ccmpne {dfv=of} ecx, 123
# CHECK: encoding: [0x62,0xf4,0x44,0x05,0x83,0xf9,0x7b]
- ccmpne {of} ecx, 123
-# CHECK: ccmpne {of} r9, 123
+ ccmpne {dfv=of} ecx, 123
+# CHECK: ccmpne {dfv=of} r9, 123
# CHECK: encoding: [0x62,0xd4,0xc4,0x05,0x83,0xf9,0x7b]
- ccmpne {of} r9, 123
-# CHECK: ccmpne {of} dx, 1234
+ ccmpne {dfv=of} r9, 123
+# CHECK: ccmpne {dfv=of} dx, 1234
# CHECK: encoding: [0x62,0xf4,0x45,0x05,0x81,0xfa,0xd2,0x04]
- ccmpne {of} dx, 1234
-# CHECK: ccmpne {of} ecx, 123456
+ ccmpne {dfv=of} dx, 1234
+# CHECK: ccmpne {dfv=of} ecx, 123456
# CHECK: encoding: [0x62,0xf4,0x44,0x05,0x81,0xf9,0x40,0xe2,0x01,0x00]
- ccmpne {of} ecx, 123456
-# CHECK: ccmpne {of} r9, 123456
+ ccmpne {dfv=of} ecx, 123456
+# CHECK: ccmpne {dfv=of} r9, 123456
# CHECK: encoding: [0x62,0xd4,0xc4,0x05,0x81,0xf9,0x40,0xe2,0x01,0x00]
- ccmpne {of} r9, 123456
-# CHECK: ccmpne {of} dl, bl
+ ccmpne {dfv=of} r9, 123456
+# CHECK: ccmpne {dfv=of} dl, bl
# CHECK: encoding: [0x62,0xf4,0x44,0x05,0x38,0xda]
- ccmpne {of} dl, bl
-# CHECK: ccmpne {of} ax, dx
+ ccmpne {dfv=of} dl, bl
+# CHECK: ccmpne {dfv=of} ax, dx
# CHECK: encoding: [0x62,0xf4,0x45,0x05,0x39,0xd0]
- ccmpne {of} ax, dx
-# CHECK: ccmpne {of} edx, ecx
+ ccmpne {dfv=of} ax, dx
+# CHECK: ccmpne {dfv=of} edx, ecx
# CHECK: encoding: [0x62,0xf4,0x44,0x05,0x39,0xca]
- ccmpne {of} edx, ecx
-# CHECK: ccmpne {of} r15, r9
+ ccmpne {dfv=of} edx, ecx
+# CHECK: ccmpne {dfv=of} r15, r9
# CHECK: encoding: [0x62,0x54,0xc4,0x05,0x39,0xcf]
- ccmpne {of} r15, r9
-# CHECK: ccmpo {of} byte ptr [r8 + 4*rax + 123], 123
+ ccmpne {dfv=of} r15, r9
+# CHECK: ccmpo {dfv=of} byte ptr [r8 + 4*rax + 123], 123
# CHECK: encoding: [0x62,0xd4,0x44,0x00,0x80,0x7c,0x80,0x7b,0x7b]
- ccmpo {of} byte ptr [r8 + 4*rax + 123], 123
-# CHECK: ccmpo {of} word ptr [r8 + 4*rax + 123], 123
+ ccmpo {dfv=of} byte ptr [r8 + 4*rax + 123], 123
+# CHECK: ccmpo {dfv=of} word ptr [r8 + 4*rax + 123], 123
# CHECK: encoding: [0x62,0xd4,0x45,0x00,0x83,0x7c,0x80,0x7b,0x7b]
- ccmpo {of} word ptr [r8 + 4*rax + 123], 123
-# CHECK: ccmpo {of} word ptr [r8 + 4*rax + 123], 1234
+ ccmpo {dfv=of} word ptr [r8 + 4*rax + 123], 123
+# CHECK: ccmpo {dfv=of} word ptr [r8 + 4*rax + 123], 1234
# CHECK: encoding: [0x62,0xd4,0x45,0x00,0x81,0x7c,0x80,0x7b,0xd2,0x04]
- ccmpo {of} word ptr [r8 + 4*rax + 123], 1234
-# CHECK: ccmpo {of} dword ptr [r8 + 4*rax + 123], 123
+ ccmpo {dfv=of} word ptr [r8 + 4*rax + 123], 1234
+# CHECK: ccmpo {dfv=of} dword ptr [r8 + 4*rax + 123], 123
# CHECK: encoding: [0x62,0xd4,0x44,0x00,0x83,0x7c,0x80,0x7b,0x7b]
- ccmpo {of} dword ptr [r8 + 4*rax + 123], 123
-# CHECK: ccmpo {of} dword ptr [r8 + 4*rax + 123], 123456
+ ccmpo {dfv=of} dword ptr [r8 + 4*rax + 123], 123
+# CHECK: ccmpo {dfv=of} dword ptr [r8 + 4*rax + 123], 123456
# CHECK: encoding: [0x62,0xd4,0x44,0x00,0x81,0x7c,0x80,0x7b,0x40,0xe2,0x01,0x00]
- ccmpo {of} dword ptr [r8 + 4*rax + 123], 123456
-# CHECK: ccmpo {of} qword ptr [r8 + 4*rax + 123], 123
+ ccmpo {dfv=of} dword ptr [r8 + 4*rax + 123], 123456
+# CHECK: ccmpo {dfv=of} qword ptr [r8 + 4*rax + 123], 123
# CHECK: encoding: [0x62,0xd4,0xc4,0x00,0x83,0x7c,0x80,0x7b,0x7b]
- ccmpo {of} qword ptr [r8 + 4*rax + 123], 123
-# CHECK: ccmpo {of} qword ptr [r8 + 4*rax + 123], 123456
+ ccmpo {dfv=of} qword ptr [r8 + 4*rax + 123], 123
+# CHECK: ccmpo {dfv=of} qword ptr [r8 + 4*rax + 123], 123456
# CHECK: encoding: [0x62,0xd4,0xc4,0x00,0x81,0x7c,0x80,0x7b,0x40,0xe2,0x01,0x00]
- ccmpo {of} qword ptr [r8 + 4*rax + 123], 123456
-# CHECK: ccmpo {of} byte ptr [r8 + 4*rax + 123], bl
+ ccmpo {dfv=of} qword ptr [r8 + 4*rax + 123], 123456
+# CHECK: ccmpo {dfv=of} byte ptr [r8 + 4*rax + 123], bl
# CHECK: encoding: [0x62,0xd4,0x44,0x00,0x38,0x5c,0x80,0x7b]
- ccmpo {of} byte ptr [r8 + 4*rax + 123], bl
-# CHECK: ccmpo {of} word ptr [r8 + 4*rax + 123], dx
+ ccmpo {dfv=of} byte ptr [r8 + 4*rax + 123], bl
+# CHECK: ccmpo {dfv=of} word ptr [r8 + 4*rax + 123], dx
# CHECK: encoding: [0x62,0xd4,0x45,0x00,0x39,0x54,0x80,0x7b]
- ccmpo {of} word ptr [r8 + 4*rax + 123], dx
-# CHECK: ccmpo {of} dword ptr [r8 + 4*rax + 123], ecx
+ ccmpo {dfv=of} word ptr [r8 + 4*rax + 123], dx
+# CHECK: ccmpo {dfv=of} dword ptr [r8 + 4*rax + 123], ecx
# CHECK: encoding: [0x62,0xd4,0x44,0x00,0x39,0x4c,0x80,0x7b]
- ccmpo {of} dword ptr [r8 + 4*rax + 123], ecx
-# CHECK: ccmpo {of} qword ptr [r8 + 4*rax + 123], r9
+ ccmpo {dfv=of} dword ptr [r8 + 4*rax + 123], ecx
+# CHECK: ccmpo {dfv=of} qword ptr [r8 + 4*rax + 123], r9
# CHECK: encoding: [0x62,0x54,0xc4,0x00,0x39,0x4c,0x80,0x7b]
- ccmpo {of} qword ptr [r8 + 4*rax + 123], r9
-# CHECK: ccmpo {of} bl, byte ptr [r8 + 4*rax + 123]
+ ccmpo {dfv=of} qword ptr [r8 + 4*rax + 123], r9
+# CHECK: ccmpo {dfv=of} bl, byte ptr [r8 + 4*rax + 123]
# CHECK: encoding: [0x62,0xd4,0x44,0x00,0x3a,0x5c,0x80,0x7b]
- ccmpo {of} bl, byte ptr [r8 + 4*rax + 123]
-# CHECK: ccmpo {of} dx, word ptr [r8 + 4*rax + 123]
+ ccmpo {dfv=of} bl, byte ptr [r8 + 4*rax + 123]
+# CHECK: ccmpo {dfv=of} dx, word ptr [r8 + 4*rax + 123]
# CHECK: encoding: [0x62,0xd4,0x45,0x00,0x3b,0x54,0x80,0x7b]
- ccmpo {of} dx, word ptr [r8 + 4*rax + 123]
-# CHECK: ccmpo {of} ecx, dword ptr [r8 + 4*rax + 123]
+ ccmpo {dfv=of} dx, word ptr [r8 + 4*rax + 123]
+# CHECK: ccmpo {dfv=of} ecx, dword ptr [r8 + 4*rax + 123]
# CHECK: encoding: [0x62,0xd4,0x44,0x00,0x3b,0x4c,0x80,0x7b]
- ccmpo {of} ecx, dword ptr [r8 + 4*rax + 123]
-# CHECK: ccmpo {of} r9, qword ptr [r8 + 4*rax + 123]
+ ccmpo {dfv=of} ecx, dword ptr [r8 + 4*rax + 123]
+# CHECK: ccmpo {dfv=of} r9, qword ptr [r8 + 4*rax + 123]
# CHECK: encoding: [0x62,0x54,0xc4,0x00,0x3b,0x4c,0x80,0x7b]
- ccmpo {of} r9, qword ptr [r8 + 4*rax + 123]
-# CHECK: ccmpo {of} bl, 123
+ ccmpo {dfv=of} r9, qword ptr [r8 + 4*rax + 123]
+# CHECK: ccmpo {dfv=of} bl, 123
# CHECK: encoding: [0x62,0xf4,0x44,0x00,0x80,0xfb,0x7b]
- ccmpo {of} bl, 123
-# CHECK: ccmpo {of} dx, 123
+ ccmpo {dfv=of} bl, 123
+# CHECK: ccmpo {dfv=of} dx, 123
# CHECK: encoding: [0x62,0xf4,0x45,0x00,0x83,0xfa,0x7b]
- ccmpo {of} dx, 123
-# CHECK: ccmpo {of} ecx, 123
+ ccmpo {dfv=of} dx, 123
+# CHECK: ccmpo {dfv=of} ecx, 123
# CHECK: encoding: [0x62,0xf4,0x44,0x00,0x83,0xf9,0x7b]
- ccmpo {of} ecx, 123
-# CHECK: ccmpo {of} r9, 123
+ ccmpo {dfv=of} ecx, 123
+# CHECK: ccmpo {dfv=of} r9, 123
# CHECK: encoding: [0x62,0xd4,0xc4,0x00,0x83,0xf9,0x7b]
- ccmpo {of} r9, 123
-# CHECK: ccmpo {of} dx, 1234
+ ccmpo {dfv=of} r9, 123
+# CHECK: ccmpo {dfv=of} dx, 1234
# CHECK: encoding: [0x62,0xf4,0x45,0x00,0x81,0xfa,0xd2,0x04]
- ccmpo {of} dx, 1234
-# CHECK: ccmpo {of} ecx, 123456
+ ccmpo {dfv=of} dx, 1234
+# CHECK: ccmpo {dfv=of} ecx, 123456
# CHECK: encoding: [0x62,0xf4,0x44,0x00,0x81,0xf9,0x40,0xe2,0x01,0x00]
- ccmpo {of} ecx, 123456
-# CHECK: ccmpo {of} r9, 123456
+ ccmpo {dfv=of} ecx, 123456
+# CHECK: ccmpo {dfv=of} r9, 123456
# CHECK: encoding: [0x62,0xd4,0xc4,0x00,0x81,0xf9,0x40,0xe2,0x01,0x00]
- ccmpo {of} r9, 123456
-# CHECK: ccmpo {of} dl, bl
+ ccmpo {dfv=of} r9, 123456
+# CHECK: ccmpo {dfv=of} dl, bl
# CHECK: encoding: [0x62,0xf4,0x44,0x00,0x38,0xda]
- ccmpo {of} dl, bl
-# CHECK: ccmpo {of} ax, dx
+ ccmpo {dfv=of} dl, bl
+# CHECK: ccmpo {dfv=of} ax, dx
# CHECK: encoding: [0x62,0xf4,0x45,0x00,0x39,0xd0]
- ccmpo {of} ax, dx
-# CHECK: ccmpo {of} edx, ecx
+ ccmpo {dfv=of} ax, dx
+# CHECK: ccmpo {dfv=of} edx, ecx
# CHECK: encoding: [0x62,0xf4,0x44,0x00,0x39,0xca]
- ccmpo {of} edx, ecx
-# CHECK: ccmpo {of} r15, r9
+ ccmpo {dfv=of} edx, ecx
+# CHECK: ccmpo {dfv=of} r15, r9
# CHECK: encoding: [0x62,0x54,0xc4,0x00,0x39,0xcf]
- ccmpo {of} r15, r9
-# CHECK: ccmps {of} byte ptr [r8 + 4*rax + 123], 123
+ ccmpo {dfv=of} r15, r9
+# CHECK: ccmps {dfv=of} byte ptr [r8 + 4*rax + 123], 123
# CHECK: encoding: [0x62,0xd4,0x44,0x08,0x80,0x7c,0x80,0x7b,0x7b]
- ccmps {of} byte ptr [r8 + 4*rax + 123], 123
-# CHECK: ccmps {of} word ptr [r8 + 4*rax + 123], 123
+ ccmps {dfv=of} byte ptr [r8 + 4*rax + 123], 123
+# CHECK: ccmps {dfv=of} word ptr [r8 + 4*rax + 123], 123
# CHECK: encoding: [0x62,0xd4,0x45,0x08,0x83,0x7c,0x80,0x7b,0x7b]
- ccmps {of} word ptr [r8 + 4*rax + 123], 123
-# CHECK: ccmps {of} word ptr [r8 + 4*rax + 123], 1234
+ ccmps {dfv=of} word ptr [r8 + 4*rax + 123], 123
+# CHECK: ccmps {dfv=of} word ptr [r8 + 4*rax + 123], 1234
# CHECK: encoding: [0x62,0xd4,0x45,0x08,0x81,0x7c,0x80,0x7b,0xd2,0x04]
- ccmps {of} word ptr [r8 + 4*rax + 123], 1234
-# CHECK: ccmps {of} dword ptr [r8 + 4*rax + 123], 123
+ ccmps {dfv=of} word ptr [r8 + 4*rax + 123], 1234
+# CHECK: ccmps {dfv=of} dword ptr [r8 + 4*rax + 123], 123
# CHECK: encoding: [0x62,0xd4,0x44,0x08,0x83,0x7c,0x80,0x7b,0x7b]
- ccmps {of} dword ptr [r8 + 4*rax + 123], 123
-# CHECK: ccmps {of} dword ptr [r8 + 4*rax + 123], 123456
+ ccmps {dfv=of} dword ptr [r8 + 4*rax + 123], 123
+# CHECK: ccmps {dfv=of} dword ptr [r8 + 4*rax + 123], 123456
# CHECK: encoding: [0x62,0xd4,0x44,0x08,0x81,0x7c,0x80,0x7b,0x40,0xe2,0x01,0x00]
- ccmps {of} dword ptr [r8 + 4*rax + 123], 123456
-# CHECK: ccmps {of} qword ptr [r8 + 4*rax + 123], 123
+ ccmps {dfv=of} dword ptr [r8 + 4*rax + 123], 123456
+# CHECK: ccmps {dfv=of} qword ptr [r8 + 4*rax + 123], 123
# CHECK: encoding: [0x62,0xd4,0xc4,0x08,0x83,0x7c,0x80,0x7b,0x7b]
- ccmps {of} qword ptr [r8 + 4*rax + 123], 123
-# CHECK: ccmps {of} qword ptr [r8 + 4*rax + 123], 123456
+ ccmps {dfv=of} qword ptr [r8 + 4*rax + 123], 123
+# CHECK: ccmps {dfv=of} qword ptr [r8 + 4*rax + 123], 123456
# CHECK: encoding: [0x62,0xd4,0xc4,0x08,0x81,0x7c,0x80,0x7b,0x40,0xe2,0x01,0x00]
- ccmps {of} qword ptr [r8 + 4*rax + 123], 123456
-# CHECK: ccmps {of} byte ptr [r8 + 4*rax + 123], bl
+ ccmps {dfv=of} qword ptr [r8 + 4*rax + 123], 123456
+# CHECK: ccmps {dfv=of} byte ptr [r8 + 4*rax + 123], bl
# CHECK: encoding: [0x62,0xd4,0x44,0x08,0x38,0x5c,0x80,0x7b]
- ccmps {of} byte ptr [r8 + 4*rax + 123], bl
-# CHECK: ccmps {of} word ptr [r8 + 4*rax + 123], dx
+ ccmps {dfv=of} byte ptr [r8 + 4*rax + 123], bl
+# CHECK: ccmps {dfv=of} word ptr [r8 + 4*rax + 123], dx
# CHECK: encoding: [0x62,0xd4,0x45,0x08,0x39,0x54,0x80,0x7b]
- ccmps {of} word ptr [r8 + 4*rax + 123], dx
-# CHECK: ccmps {of} dword ptr [r8 + 4*rax + 123], ecx
+ ccmps {dfv=of} word ptr [r8 + 4*rax + 123], dx
+# CHECK: ccmps {dfv=of} dword ptr [r8 + 4*rax + 123], ecx
# CHECK: encoding: [0x62,0xd4,0x44,0x08,0x39,0x4c,0x80,0x7b]
- ccmps {of} dword ptr [r8 + 4*rax + 123], ecx
-# CHECK: ccmps {of} qword ptr [r8 + 4*rax + 123], r9
+ ccmps {dfv=of} dword ptr [r8 + 4*rax + 123], ecx
+# CHECK: ccmps {dfv=of} qword ptr [r8 + 4*rax + 123], r9
# CHECK: encoding: [0x62,0x54,0xc4,0x08,0x39,0x4c,0x80,0x7b]
- ccmps {of} qword ptr [r8 + 4*rax + 123], r9
-# CHECK: ccmps {of} bl, byte ptr [r8 + 4*rax + 123]
+ ccmps {dfv=of} qword ptr [r8 + 4*rax + 123], r9
+# CHECK: ccmps {dfv=of} bl, byte ptr [r8 + 4*rax + 123]
# CHECK: encoding: [0x62,0xd4,0x44,0x08,0x3a,0x5c,0x80,0x7b]
- ccmps {of} bl, byte ptr [r8 + 4*rax + 123]
-# CHECK: ccmps {of} dx, word ptr [r8 + 4*rax + 123]
+ ccmps {dfv=of} bl, byte ptr [r8 + 4*rax + 123]
+# CHECK: ccmps {dfv=of} dx, word ptr [r8 + 4*rax + 123]
# CHECK: encoding: [0x62,0xd4,0x45,0x08,0x3b,0x54,0x80,0x7b]
- ccmps {of} dx, word ptr [r8 + 4*rax + 123]
-# CHECK: ccmps {of} ecx, dword ptr [r8 + 4*rax + 123]
+ ccmps {dfv=of} dx, word ptr [r8 + 4*rax + 123]
+# CHECK: ccmps {dfv=of} ecx, dword ptr [r8 + 4*rax + 123]
# CHECK: encoding: [0x62,0xd4,0x44,0x08,0x3b,0x4c,0x80,0x7b]
- ccmps {of} ecx, dword ptr [r8 + 4*rax + 123]
-# CHECK: ccmps {of} r9, qword ptr [r8 + 4*rax + 123]
+ ccmps {dfv=of} ecx, dword ptr [r8 + 4*rax + 123]
+# CHECK: ccmps {dfv=of} r9, qword ptr [r8 + 4*rax + 123]
# CHECK: encoding: [0x62,0x54,0xc4,0x08,0x3b,0x4c,0x80,0x7b]
- ccmps {of} r9, qword ptr [r8 + 4*rax + 123]
-# CHECK: ccmps {of} bl, 123
+ ccmps {dfv=of} r9, qword ptr [r8 + 4*rax + 123]
+# CHECK: ccmps {dfv=of} bl, 123
# CHECK: encoding: [0x62,0xf4,0x44,0x08,0x80,0xfb,0x7b]
- ccmps {of} bl, 123
-# CHECK: ccmps {of} dx, 123
+ ccmps {dfv=of} bl, 123
+# CHECK: ccmps {dfv=of} dx, 123
# CHECK: encoding: [0x62,0xf4,0x45,0x08,0x83,0xfa,0x7b]
- ccmps {of} dx, 123
-# CHECK: ccmps {of} ecx, 123
+ ccmps {dfv=of} dx, 123
+# CHECK: ccmps {dfv=of} ecx, 123
# CHECK: encoding: [0x62,0xf4,0x44,0x08,0x83,0xf9,0x7b]
- ccmps {of} ecx, 123
-# CHECK: ccmps {of} r9, 123
+ ccmps {dfv=of} ecx, 123
+# CHECK: ccmps {dfv=of} r9, 123
# CHECK: encoding: [0x62,0xd4,0xc4,0x08,0x83,0xf9,0x7b]
- ccmps {of} r9, 123
-# CHECK: ccmps {of} dx, 1234
+ ccmps {dfv=of} r9, 123
+# CHECK: ccmps {dfv=of} dx, 1234
# CHECK: encoding: [0x62,0xf4,0x45,0x08,0x81,0xfa,0xd2,0x04]
- ccmps {of} dx, 1234
-# CHECK: ccmps {of} ecx, 123456
+ ccmps {dfv=of} dx, 1234
+# CHECK: ccmps {dfv=of} ecx, 123456
# CHECK: encoding: [0x62,0xf4,0x44,0x08,0x81,0xf9,0x40,0xe2,0x01,0x00]
- ccmps {of} ecx, 123456
-# CHECK: ccmps {of} r9, 123456
+ ccmps {dfv=of} ecx, 123456
+# CHECK: ccmps {dfv=of} r9, 123456
# CHECK: encoding: [0x62,0xd4,0xc4,0x08,0x81,0xf9,0x40,0xe2,0x01,0x00]
- ccmps {of} r9, 123456
-# CHECK: ccmps {of} dl, bl
+ ccmps {dfv=of} r9, 123456
+# CHECK: ccmps {dfv=of} dl, bl
# CHECK: encoding: [0x62,0xf4,0x44,0x08,0x38,0xda]
- ccmps {of} dl, bl
-# CHECK: ccmps {of} ax, dx
+ ccmps {dfv=of} dl, bl
+# CHECK: ccmps {dfv=of} ax, dx
# CHECK: encoding: [0x62,0xf4,0x45,0x08,0x39,0xd0]
- ccmps {of} ax, dx
-# CHECK: ccmps {of} edx, ecx
+ ccmps {dfv=of} ax, dx
+# CHECK: ccmps {dfv=of} edx, ecx
# CHECK: encoding: [0x62,0xf4,0x44,0x08,0x39,0xca]
- ccmps {of} edx, ecx
-# CHECK: ccmps {of} r15, r9
+ ccmps {dfv=of} edx, ecx
+# CHECK: ccmps {dfv=of} r15, r9
# CHECK: encoding: [0x62,0x54,0xc4,0x08,0x39,0xcf]
- ccmps {of} r15, r9
-# CHECK: ccmpt {of} byte ptr [r8 + 4*rax + 123], 123
+ ccmps {dfv=of} r15, r9
+# CHECK: ccmpt {dfv=of} byte ptr [r8 + 4*rax + 123], 123
# CHECK: encoding: [0x62,0xd4,0x44,0x0a,0x80,0x7c,0x80,0x7b,0x7b]
- ccmpt {of} byte ptr [r8 + 4*rax + 123], 123
-# CHECK: ccmpt {of} word ptr [r8 + 4*rax + 123], 123
+ ccmpt {dfv=of} byte ptr [r8 + 4*rax + 123], 123
+# CHECK: ccmpt {dfv=of} word ptr [r8 + 4*rax + 123], 123
# CHECK: encoding: [0x62,0xd4,0x45,0x0a,0x83,0x7c,0x80,0x7b,0x7b]
- ccmpt {of} word ptr [r8 + 4*rax + 123], 123
-# CHECK: ccmpt {of} word ptr [r8 + 4*rax + 123], 1234
+ ccmpt {dfv=of} word ptr [r8 + 4*rax + 123], 123
+# CHECK: ccmpt {dfv=of} word ptr [r8 + 4*rax + 123], 1234
# CHECK: encoding: [0x62,0xd4,0x45,0x0a,0x81,0x7c,0x80,0x7b,0xd2,0x04]
- ccmpt {of} word ptr [r8 + 4*rax + 123], 1234
-# CHECK: ccmpt {of} dword ptr [r8 + 4*rax + 123], 123
+ ccmpt {dfv=of} word ptr [r8 + 4*rax + 123], 1234
+# CHECK: ccmpt {dfv=of} dword ptr [r8 + 4*rax + 123], 123
# CHECK: encoding: [0x62,0xd4,0x44,0x0a,0x83,0x7c,0x80,0x7b,0x7b]
- ccmpt {of} dword ptr [r8 + 4*rax + 123], 123
-# CHECK: ccmpt {of} dword ptr [r8 + 4*rax + 123], 123456
+ ccmpt {dfv=of} dword ptr [r8 + 4*rax + 123], 123
+# CHECK: ccmpt {dfv=of} dword ptr [r8 + 4*rax + 123], 123456
# CHECK: encoding: [0x62,0xd4,0x44,0x0a,0x81,0x7c,0x80,0x7b,0x40,0xe2,0x01,0x00]
- ccmpt {of} dword ptr [r8 + 4*rax + 123], 123456
-# CHECK: ccmpt {of} qword ptr [r8 + 4*rax + 123], 123
+ ccmpt {dfv=of} dword ptr [r8 + 4*rax + 123], 123456
+# CHECK: ccmpt {dfv=of} qword ptr [r8 + 4*rax + 123], 123
# CHECK: encoding: [0x62,0xd4,0xc4,0x0a,0x83,0x7c,0x80,0x7b,0x7b]
- ccmpt {of} qword ptr [r8 + 4*rax + 123], 123
-# CHECK: ccmpt {of} qword ptr [r8 + 4*rax + 123], 123456
+ ccmpt {dfv=of} qword ptr [r8 + 4*rax + 123], 123
+# CHECK: ccmpt {dfv=of} qword ptr [r8 + 4*rax + 123], 123456
# CHECK: encoding: [0x62,0xd4,0xc4,0x0a,0x81,0x7c,0x80,0x7b,0x40,0xe2,0x01,0x00]
- ccmpt {of} qword ptr [r8 + 4*rax + 123], 123456
-# CHECK: ccmpt {of} byte ptr [r8 + 4*rax + 123], bl
+ ccmpt {dfv=of} qword ptr [r8 + 4*rax + 123], 123456
+# CHECK: ccmpt {dfv=of} byte ptr [r8 + 4*rax + 123], bl
# CHECK: encoding: [0x62,0xd4,0x44,0x0a,0x38,0x5c,0x80,0x7b]
- ccmpt {of} byte ptr [r8 + 4*rax + 123], bl
-# CHECK: ccmpt {of} word ptr [r8 + 4*rax + 123], dx
+ ccmpt {dfv=of} byte ptr [r8 + 4*rax + 123], bl
+# CHECK: ccmpt {dfv=of} word ptr [r8 + 4*rax + 123], dx
# CHECK: encoding: [0x62,0xd4,0x45,0x0a,0x39,0x54,0x80,0x7b]
- ccmpt {of} word ptr [r8 + 4*rax + 123], dx
-# CHECK: ccmpt {of} dword ptr [r8 + 4*rax + 123], ecx
+ ccmpt {dfv=of} word ptr [r8 + 4*rax + 123], dx
+# CHECK: ccmpt {dfv=of} dword ptr [r8 + 4*rax + 123], ecx
# CHECK: encoding: [0x62,0xd4,0x44,0x0a,0x39,0x4c,0x80,0x7b]
- ccmpt {of} dword ptr [r8 + 4*rax + 123], ecx
-# CHECK: ccmpt {of} qword ptr [r8 + 4*rax + 123], r9
+ ccmpt {dfv=of} dword ptr [r8 + 4*rax + 123], ecx
+# CHECK: ccmpt {dfv=of} qword ptr [r8 + 4*rax + 123], r9
# CHECK: encoding: [0x62,0x54,0xc4,0x0a,0x39,0x4c,0x80,0x7b]
- ccmpt {of} qword ptr [r8 + 4*rax + 123], r9
-# CHECK: ccmpt {of} bl, byte ptr [r8 + 4*rax + 123]
+ ccmpt {dfv=of} qword ptr [r8 + 4*rax + 123], r9
+# CHECK: ccmpt {dfv=of} bl, byte ptr [r8 + 4*rax + 123]
# CHECK: encoding: [0x62,0xd4,0x44,0x0a,0x3a,0x5c,0x80,0x7b]
- ccmpt {of} bl, byte ptr [r8 + 4*rax + 123]
-# CHECK: ccmpt {of} dx, word ptr [r8 + 4*rax + 123]
+ ccmpt {dfv=of} bl, byte ptr [r8 + 4*rax + 123]
+# CHECK: ccmpt {dfv=of} dx, word ptr [r8 + 4*rax + 123]
# CHECK: encoding: [0x62,0xd4,0x45,0x0a,0x3b,0x54,0x80,0x7b]
- ccmpt {of} dx, word ptr [r8 + 4*rax + 123]
-# CHECK: ccmpt {of} ecx, dword ptr [r8 + 4*rax + 123]
+ ccmpt {dfv=of} dx, word ptr [r8 + 4*rax + 123]
+# CHECK: ccmpt {dfv=of} ecx, dword ptr [r8 + 4*rax + 123]
# CHECK: encoding: [0x62,0xd4,0x44,0x0a,0x3b,0x4c,0x80,0x7b]
- ccmpt {of} ecx, dword ptr [r8 + 4*rax + 123]
-# CHECK: ccmpt {of} r9, qword ptr [r8 + 4*rax + 123]
+ ccmpt {dfv=of} ecx, dword ptr [r8 + 4*rax + 123]
+# CHECK: ccmpt {dfv=of} r9, qword ptr [r8 + 4*rax + 123]
# CHECK: encoding: [0x62,0x54,0xc4,0x0a,0x3b,0x4c,0x80,0x7b]
- ccmpt {of} r9, qword ptr [r8 + 4*rax + 123]
-# CHECK: ccmpt {of} bl, 123
+ ccmpt {dfv=of} r9, qword ptr [r8 + 4*rax + 123]
+# CHECK: ccmpt {dfv=of} bl, 123
# CHECK: encoding: [0x62,0xf4,0x44,0x0a,0x80,0xfb,0x7b]
- ccmpt {of} bl, 123
-# CHECK: ccmpt {of} dx, 123
+ ccmpt {dfv=of} bl, 123
+# CHECK: ccmpt {dfv=of} dx, 123
# CHECK: encoding: [0x62,0xf4,0x45,0x0a,0x83,0xfa,0x7b]
- ccmpt {of} dx, 123
-# CHECK: ccmpt {of} ecx, 123
+ ccmpt {dfv=of} dx, 123
+# CHECK: ccmpt {dfv=of} ecx, 123
# CHECK: encoding: [0x62,0xf4,0x44,0x0a,0x83,0xf9,0x7b]
- ccmpt {of} ecx, 123
-# CHECK: ccmpt {of} r9, 123
+ ccmpt {dfv=of} ecx, 123
+# CHECK: ccmpt {dfv=of} r9, 123
# CHECK: encoding: [0x62,0xd4,0xc4,0x0a,0x83,0xf9,0x7b]
- ccmpt {of} r9, 123
-# CHECK: ccmpt {of} dx, 1234
+ ccmpt {dfv=of} r9, 123
+# CHECK: ccmpt {dfv=of} dx, 1234
# CHECK: encoding: [0x62,0xf4,0x45,0x0a,0x81,0xfa,0xd2,0x04]
- ccmpt {of} dx, 1234
-# CHECK: ccmpt {of} ecx, 123456
+ ccmpt {dfv=of} dx, 1234
+# CHECK: ccmpt {dfv=of} ecx, 123456
# CHECK: encoding: [0x62,0xf4,0x44,0x0a,0x81,0xf9,0x40,0xe2,0x01,0x00]
- ccmpt {of} ecx, 123456
-# CHECK: ccmpt {of} r9, 123456
+ ccmpt {dfv=of} ecx, 123456
+# CHECK: ccmpt {dfv=of} r9, 123456
# CHECK: encoding: [0x62,0xd4,0xc4,0x0a,0x81,0xf9,0x40,0xe2,0x01,0x00]
- ccmpt {of} r9, 123456
-# CHECK: ccmpt {of} dl, bl
+ ccmpt {dfv=of} r9, 123456
+# CHECK: ccmpt {dfv=of} dl, bl
# CHECK: encoding: [0x62,0xf4,0x44,0x0a,0x38,0xda]
- ccmpt {of} dl, bl
-# CHECK: ccmpt {of} ax, dx
+ ccmpt {dfv=of} dl, bl
+# CHECK: ccmpt {dfv=of} ax, dx
# CHECK: encoding: [0x62,0xf4,0x45,0x0a,0x39,0xd0]
- ccmpt {of} ax, dx
-# CHECK: ccmpt {of} edx, ecx
+ ccmpt {dfv=of} ax, dx
+# CHECK: ccmpt {dfv=of} edx, ecx
# CHECK: encoding: [0x62,0xf4,0x44,0x0a,0x39,0xca]
- ccmpt {of} edx, ecx
-# CHECK: ccmpt {of} r15, r9
+ ccmpt {dfv=of} edx, ecx
+# CHECK: ccmpt {dfv=of} r15, r9
# CHECK: encoding: [0x62,0x54,0xc4,0x0a,0x39,0xcf]
- ccmpt {of} r15, r9
-# CHECK: ccmpe {of} byte ptr [r8 + 4*rax + 123], 123
+ ccmpt {dfv=of} r15, r9
+# CHECK: ccmpe {dfv=of} byte ptr [r8 + 4*rax + 123], 123
# CHECK: encoding: [0x62,0xd4,0x44,0x04,0x80,0x7c,0x80,0x7b,0x7b]
- ccmpe {of} byte ptr [r8 + 4*rax + 123], 123
-# CHECK: ccmpe {of} word ptr [r8 + 4*rax + 123], 123
+ ccmpe {dfv=of} byte ptr [r8 + 4*rax + 123], 123
+# CHECK: ccmpe {dfv=of} word ptr [r8 + 4*rax + 123], 123
# CHECK: encoding: [0x62,0xd4,0x45,0x04,0x83,0x7c,0x80,0x7b,0x7b]
- ccmpe {of} word ptr [r8 + 4*rax + 123], 123
-# CHECK: ccmpe {of} word ptr [r8 + 4*rax + 123], 1234
+ ccmpe {dfv=of} word ptr [r8 + 4*rax + 123], 123
+# CHECK: ccmpe {dfv=of} word ptr [r8 + 4*rax + 123], 1234
# CHECK: encoding: [0x62,0xd4,0x45,0x04,0x81,0x7c,0x80,0x7b,0xd2,0x04]
- ccmpe {of} word ptr [r8 + 4*rax + 123], 1234
-# CHECK: ccmpe {of} dword ptr [r8 + 4*rax + 123], 123
+ ccmpe {dfv=of} word ptr [r8 + 4*rax + 123], 1234
+# CHECK: ccmpe {dfv=of} dword ptr [r8 + 4*rax + 123], 123
# CHECK: encoding: [0x62,0xd4,0x44,0x04,0x83,0x7c,0x80,0x7b,0x7b]
- ccmpe {of} dword ptr [r8 + 4*rax + 123], 123
-# CHECK: ccmpe {of} dword ptr [r8 + 4*rax + 123], 123456
+ ccmpe {dfv=of} dword ptr [r8 + 4*rax + 123], 123
+# CHECK: ccmpe {dfv=of} dword ptr [r8 + 4*rax + 123], 123456
# CHECK: encoding: [0x62,0xd4,0x44,0x04,0x81,0x7c,0x80,0x7b,0x40,0xe2,0x01,0x00]
- ccmpe {of} dword ptr [r8 + 4*rax + 123], 123456
-# CHECK: ccmpe {of} qword ptr [r8 + 4*rax + 123], 123
+ ccmpe {dfv=of} dword ptr [r8 + 4*rax + 123], 123456
+# CHECK: ccmpe {dfv=of} qword ptr [r8 + 4*rax + 123], 123
# CHECK: encoding: [0x62,0xd4,0xc4,0x04,0x83,0x7c,0x80,0x7b,0x7b]
- ccmpe {of} qword ptr [r8 + 4*rax + 123], 123
-# CHECK: ccmpe {of} qword ptr [r8 + 4*rax + 123], 123456
+ ccmpe {dfv=of} qword ptr [r8 + 4*rax + 123], 123
+# CHECK: ccmpe {dfv=of} qword ptr [r8 + 4*rax + 123], 123456
# CHECK: encoding: [0x62,0xd4,0xc4,0x04,0x81,0x7c,0x80,0x7b,0x40,0xe2,0x01,0x00]
- ccmpe {of} qword ptr [r8 + 4*rax + 123], 123456
-# CHECK: ccmpe {of} byte ptr [r8 + 4*rax + 123], bl
+ ccmpe {dfv=of} qword ptr [r8 + 4*rax + 123], 123456
+# CHECK: ccmpe {dfv=of} byte ptr [r8 + 4*rax + 123], bl
# CHECK: encoding: [0x62,0xd4,0x44,0x04,0x38,0x5c,0x80,0x7b]
- ccmpe {of} byte ptr [r8 + 4*rax + 123], bl
-# CHECK: ccmpe {of} word ptr [r8 + 4*rax + 123], dx
+ ccmpe {dfv=of} byte ptr [r8 + 4*rax + 123], bl
+# CHECK: ccmpe {dfv=of} word ptr [r8 + 4*rax + 123], dx
# CHECK: encoding: [0x62,0xd4,0x45,0x04,0x39,0x54,0x80,0x7b]
- ccmpe {of} word ptr [r8 + 4*rax + 123], dx
-# CHECK: ccmpe {of} dword ptr [r8 + 4*rax + 123], ecx
+ ccmpe {dfv=of} word ptr [r8 + 4*rax + 123], dx
+# CHECK: ccmpe {dfv=of} dword ptr [r8 + 4*rax + 123], ecx
# CHECK: encoding: [0x62,0xd4,0x44,0x04,0x39,0x4c,0x80,0x7b]
- ccmpe {of} dword ptr [r8 + 4*rax + 123], ecx
-# CHECK: ccmpe {of} qword ptr [r8 + 4*rax + 123], r9
+ ccmpe {dfv=of} dword ptr [r8 + 4*rax + 123], ecx
+# CHECK: ccmpe {dfv=of} qword ptr [r8 + 4*rax + 123], r9
# CHECK: encoding: [0x62,0x54,0xc4,0x04,0x39,0x4c,0x80,0x7b]
- ccmpe {of} qword ptr [r8 + 4*rax + 123], r9
-# CHECK: ccmpe {of} bl, byte ptr [r8 + 4*rax + 123]
+ ccmpe {dfv=of} qword ptr [r8 + 4*rax + 123], r9
+# CHECK: ccmpe {dfv=of} bl, byte ptr [r8 + 4*rax + 123]
# CHECK: encoding: [0x62,0xd4,0x44,0x04,0x3a,0x5c,0x80,0x7b]
- ccmpe {of} bl, byte ptr [r8 + 4*rax + 123]
-# CHECK: ccmpe {of} dx, word ptr [r8 + 4*rax + 123]
+ ccmpe {dfv=of} bl, byte ptr [r8 + 4*rax + 123]
+# CHECK: ccmpe {dfv=of} dx, word ptr [r8 + 4*rax + 123]
# CHECK: encoding: [0x62,0xd4,0x45,0x04,0x3b,0x54,0x80,0x7b]
- ccmpe {of} dx, word ptr [r8 + 4*rax + 123]
-# CHECK: ccmpe {of} ecx, dword ptr [r8 + 4*rax + 123]
+ ccmpe {dfv=of} dx, word ptr [r8 + 4*rax + 123]
+# CHECK: ccmpe {dfv=of} ecx, dword ptr [r8 + 4*rax + 123]
# CHECK: encoding: [0x62,0xd4,0x44,0x04,0x3b,0x4c,0x80,0x7b]
- ccmpe {of} ecx, dword ptr [r8 + 4*rax + 123]
-# CHECK: ccmpe {of} r9, qword ptr [r8 + 4*rax + 123]
+ ccmpe {dfv=of} ecx, dword ptr [r8 + 4*rax + 123]
+# CHECK: ccmpe {dfv=of} r9, qword ptr [r8 + 4*rax + 123]
# CHECK: encoding: [0x62,0x54,0xc4,0x04,0x3b,0x4c,0x80,0x7b]
- ccmpe {of} r9, qword ptr [r8 + 4*rax + 123]
-# CHECK: ccmpe {of} bl, 123
+ ccmpe {dfv=of} r9, qword ptr [r8 + 4*rax + 123]
+# CHECK: ccmpe {dfv=of} bl, 123
# CHECK: encoding: [0x62,0xf4,0x44,0x04,0x80,0xfb,0x7b]
- ccmpe {of} bl, 123
-# CHECK: ccmpe {of} dx, 123
+ ccmpe {dfv=of} bl, 123
+# CHECK: ccmpe {dfv=of} dx, 123
# CHECK: encoding: [0x62,0xf4,0x45,0x04,0x83,0xfa,0x7b]
- ccmpe {of} dx, 123
-# CHECK: ccmpe {of} ecx, 123
+ ccmpe {dfv=of} dx, 123
+# CHECK: ccmpe {dfv=of} ecx, 123
# CHECK: encoding: [0x62,0xf4,0x44,0x04,0x83,0xf9,0x7b]
- ccmpe {of} ecx, 123
-# CHECK: ccmpe {of} r9, 123
+ ccmpe {dfv=of} ecx, 123
+# CHECK: ccmpe {dfv=of} r9, 123
# CHECK: encoding: [0x62,0xd4,0xc4,0x04,0x83,0xf9,0x7b]
- ccmpe {of} r9, 123
-# CHECK: ccmpe {of} dx, 1234
+ ccmpe {dfv=of} r9, 123
+# CHECK: ccmpe {dfv=of} dx, 1234
# CHECK: encoding: [0x62,0xf4,0x45,0x04,0x81,0xfa,0xd2,0x04]
- ccmpe {of} dx, 1234
-# CHECK: ccmpe {of} ecx, 123456
+ ccmpe {dfv=of} dx, 1234
+# CHECK: ccmpe {dfv=of} ecx, 123456
# CHECK: encoding: [0x62,0xf4,0x44,0x04,0x81,0xf9,0x40,0xe2,0x01,0x00]
- ccmpe {of} ecx, 123456
-# CHECK: ccmpe {of} r9, 123456
+ ccmpe {dfv=of} ecx, 123456
+# CHECK: ccmpe {dfv=of} r9, 123456
# CHECK: encoding: [0x62,0xd4,0xc4,0x04,0x81,0xf9,0x40,0xe2,0x01,0x00]
- ccmpe {of} r9, 123456
-# CHECK: ccmpe {of} dl, bl
+ ccmpe {dfv=of} r9, 123456
+# CHECK: ccmpe {dfv=of} dl, bl
# CHECK: encoding: [0x62,0xf4,0x44,0x04,0x38,0xda]
- ccmpe {of} dl, bl
-# CHECK: ccmpe {of} ax, dx
+ ccmpe {dfv=of} dl, bl
+# CHECK: ccmpe {dfv=of} ax, dx
# CHECK: encoding: [0x62,0xf4,0x45,0x04,0x39,0xd0]
- ccmpe {of} ax, dx
-# CHECK: ccmpe {of} edx, ecx
+ ccmpe {dfv=of} ax, dx
+# CHECK: ccmpe {dfv=of} edx, ecx
# CHECK: encoding: [0x62,0xf4,0x44,0x04,0x39,0xca]
- ccmpe {of} edx, ecx
-# CHECK: ccmpe {of} r15, r9
+ ccmpe {dfv=of} edx, ecx
+# CHECK: ccmpe {dfv=of} r15, r9
# CHECK: encoding: [0x62,0x54,0xc4,0x04,0x39,0xcf]
- ccmpe {of} r15, r9
+ ccmpe {dfv=of} r15, r9
>From 842b84155dabf82ab9fc8129cc49b0fde472e135 Mon Sep 17 00:00:00 2001
From: Shengchen Kan <shengchen.kan at intel.com>
Date: Tue, 5 Mar 2024 17:44:09 +0800
Subject: [PATCH 8/9] address review comment
---
.../X86/Disassembler/X86Disassembler.cpp | 22 ++++++++++++++-----
1 file changed, 16 insertions(+), 6 deletions(-)
diff --git a/llvm/lib/Target/X86/Disassembler/X86Disassembler.cpp b/llvm/lib/Target/X86/Disassembler/X86Disassembler.cpp
index f8546bfc4df4ad..0ff440bdbe0de5 100644
--- a/llvm/lib/Target/X86/Disassembler/X86Disassembler.cpp
+++ b/llvm/lib/Target/X86/Disassembler/X86Disassembler.cpp
@@ -1142,12 +1142,22 @@ static int getInstructionIDWithAttrMask(uint16_t *instructionID,
}
static bool isCCMPOrCTEST(InternalInstruction *insn) {
- return (insn->opcodeType == MAP4) &&
- (((insn->opcode & 0xfe) == 0x38) || ((insn->opcode & 0xfe) == 0x3a) ||
- (((insn->opcode & 0xfe) == 0x80 || insn->opcode == 0x83) &&
- regFromModRM(insn->modRM) == 7) ||
- (insn->opcode & 0xfe) == 0x84 ||
- ((insn->opcode & 0xfe) == 0xf6 && regFromModRM(insn->modRM) == 0));
+ if (insn->opcodeType != MAP4)
+ return false;
+ if (insn->opcode == 0x83 && regFromModRM(insn->modRM) == 7)
+ return true;
+ switch (insn->opcode & 0xfe) {
+ default:
+ return false;
+ case 0x38:
+ case 0x3a:
+ case 0x84:
+ return true;
+ case 0x80:
+ return regFromModRM(insn->modRM) == 7;
+ case 0xf6:
+ return regFromModRM(insn->modRM) == 0;
+ }
}
static bool isNF(InternalInstruction *insn) {
>From e133314263bc085238a1c1ac471a4ff8ec5341e7 Mon Sep 17 00:00:00 2001
From: Shengchen Kan <shengchen.kan at intel.com>
Date: Wed, 6 Mar 2024 10:10:29 +0800
Subject: [PATCH 9/9] address review comment: remove duplicated macro
---
llvm/lib/Target/X86/Disassembler/X86DisassemblerDecoder.h | 1 -
1 file changed, 1 deletion(-)
diff --git a/llvm/lib/Target/X86/Disassembler/X86DisassemblerDecoder.h b/llvm/lib/Target/X86/Disassembler/X86DisassemblerDecoder.h
index 42e4de4ee682a4..7cd01c151ed233 100644
--- a/llvm/lib/Target/X86/Disassembler/X86DisassemblerDecoder.h
+++ b/llvm/lib/Target/X86/Disassembler/X86DisassemblerDecoder.h
@@ -107,7 +107,6 @@ namespace X86Disassembler {
#define v2FromEVEX4of4(evex) invertedBitFromOffset3(evex)
#define aaaFromEVEX4of4(evex) threeBitsFromOffset0(evex)
#define nfFromEVEX4of4(evex) bitFromOffset2(evex)
-#define oszcFromEVEX3of4(evex) fourBitsFromOffset3(evex)
#define scFromEVEX4of4(evex) fourBitsFromOffset0(evex)
// These enums represent Intel registers for use by the decoder.
More information about the llvm-commits
mailing list