diff options
Diffstat (limited to 'llvm/lib/Target')
| -rw-r--r-- | llvm/lib/Target/X86/AsmParser/X86AsmParser.cpp | 40 | 
1 files changed, 32 insertions, 8 deletions
diff --git a/llvm/lib/Target/X86/AsmParser/X86AsmParser.cpp b/llvm/lib/Target/X86/AsmParser/X86AsmParser.cpp index 1b14ebf7b25..a856e9cc7a4 100644 --- a/llvm/lib/Target/X86/AsmParser/X86AsmParser.cpp +++ b/llvm/lib/Target/X86/AsmParser/X86AsmParser.cpp @@ -693,14 +693,38 @@ ParseInstruction(const StringRef &Name, SMLoc NameLoc,      unsigned SSECCIdx = IsVCMP ? 4 : 3;      unsigned SSEComparisonCode = StringSwitch<unsigned>(        PatchedName.slice(SSECCIdx, PatchedName.size() - 2)) -      .Case("eq", 0) -      .Case("lt", 1) -      .Case("le", 2) -      .Case("unord", 3) -      .Case("neq", 4) -      .Case("nlt", 5) -      .Case("nle", 6) -      .Case("ord", 7) +      .Case("eq",          0) +      .Case("lt",          1) +      .Case("le",          2) +      .Case("unord",       3) +      .Case("neq",         4) +      .Case("nlt",         5) +      .Case("nle",         6) +      .Case("ord",         7) +      .Case("eq_uq",       8) +      .Case("nge",         9) +      .Case("ngt",      0x0A) +      .Case("false",    0x0B) +      .Case("neq_oq",   0x0C) +      .Case("ge",       0x0D) +      .Case("gt",       0x0E) +      .Case("true",     0x0F) +      .Case("eq_os",    0x10) +      .Case("lt_oq",    0x11) +      .Case("le_oq",    0x12) +      .Case("unord_s",  0x13) +      .Case("neq_us",   0x14) +      .Case("nlt_uq",   0x15) +      .Case("nle_uq",   0x16) +      .Case("ord_s",    0x17) +      .Case("eq_us",    0x18) +      .Case("nge_uq",   0x19) +      .Case("ngt_uq",   0x1A) +      .Case("false_os", 0x1B) +      .Case("neq_os",   0x1C) +      .Case("ge_oq",    0x1D) +      .Case("gt_oq",    0x1E) +      .Case("true_us",  0x1F)        .Default(~0U);      if (SSEComparisonCode != ~0U) {        ExtraImmOp = MCConstantExpr::Create(SSEComparisonCode,  | 

