]> granicus.if.org Git - llvm/commitdiff
[X86] Remove the _alt forms of (V)CMP instructions. Use a combination of custom print...
authorCraig Topper <craig.topper@intel.com>
Mon, 18 Mar 2019 17:59:59 +0000 (17:59 +0000)
committerCraig Topper <craig.topper@intel.com>
Mon, 18 Mar 2019 17:59:59 +0000 (17:59 +0000)
Similar to previous change done for VPCOM and VPCMP

Differential Revision: https://reviews.llvm.org/D59468

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@356384 91177308-0d34-0410-b5e6-96231b3b80d8

45 files changed:
include/llvm/Support/X86DisassemblerDecoderCommon.h
lib/Target/X86/AsmParser/X86AsmParser.cpp
lib/Target/X86/Disassembler/X86Disassembler.cpp
lib/Target/X86/InstPrinter/X86ATTInstPrinter.cpp
lib/Target/X86/InstPrinter/X86InstPrinterCommon.cpp
lib/Target/X86/InstPrinter/X86InstPrinterCommon.h
lib/Target/X86/InstPrinter/X86IntelInstPrinter.cpp
lib/Target/X86/X86InstrAVX512.td
lib/Target/X86/X86InstrInfo.td
lib/Target/X86/X86InstrSSE.td
test/MC/X86/x86-32-avx.s
test/MC/X86/x86-32.s
test/MC/X86/x86_64-avx-encoding.s
test/tools/llvm-mca/X86/Atom/resources-sse1.s
test/tools/llvm-mca/X86/Atom/resources-sse2.s
test/tools/llvm-mca/X86/BdVer2/resources-avx1.s
test/tools/llvm-mca/X86/BdVer2/resources-sse1.s
test/tools/llvm-mca/X86/BdVer2/resources-sse2.s
test/tools/llvm-mca/X86/Broadwell/resources-avx1.s
test/tools/llvm-mca/X86/Broadwell/resources-sse1.s
test/tools/llvm-mca/X86/Broadwell/resources-sse2.s
test/tools/llvm-mca/X86/BtVer2/resources-avx1.s
test/tools/llvm-mca/X86/BtVer2/resources-sse1.s
test/tools/llvm-mca/X86/BtVer2/resources-sse2.s
test/tools/llvm-mca/X86/Generic/resources-avx1.s
test/tools/llvm-mca/X86/Generic/resources-sse1.s
test/tools/llvm-mca/X86/Generic/resources-sse2.s
test/tools/llvm-mca/X86/Haswell/resources-avx1.s
test/tools/llvm-mca/X86/Haswell/resources-sse1.s
test/tools/llvm-mca/X86/Haswell/resources-sse2.s
test/tools/llvm-mca/X86/SLM/resources-sse1.s
test/tools/llvm-mca/X86/SLM/resources-sse2.s
test/tools/llvm-mca/X86/SandyBridge/resources-avx1.s
test/tools/llvm-mca/X86/SandyBridge/resources-sse1.s
test/tools/llvm-mca/X86/SandyBridge/resources-sse2.s
test/tools/llvm-mca/X86/SkylakeClient/resources-avx1.s
test/tools/llvm-mca/X86/SkylakeClient/resources-sse1.s
test/tools/llvm-mca/X86/SkylakeClient/resources-sse2.s
test/tools/llvm-mca/X86/SkylakeServer/resources-avx1.s
test/tools/llvm-mca/X86/SkylakeServer/resources-sse1.s
test/tools/llvm-mca/X86/SkylakeServer/resources-sse2.s
test/tools/llvm-mca/X86/Znver1/resources-avx1.s
test/tools/llvm-mca/X86/Znver1/resources-sse1.s
test/tools/llvm-mca/X86/Znver1/resources-sse2.s
utils/TableGen/X86RecognizableInstr.cpp

index 0213dffed30e3b86ae799bf77b9ccf00e670d3a9..c4b7edb4afb759b05301b7262941b991549d9d7d 100644 (file)
@@ -414,8 +414,6 @@ enum OperandEncoding {
   ENUM_ENTRY(TYPE_R32,        "4-byte")                                        \
   ENUM_ENTRY(TYPE_R64,        "8-byte")                                        \
   ENUM_ENTRY(TYPE_IMM,        "immediate operand")                             \
-  ENUM_ENTRY(TYPE_IMM3,       "1-byte immediate operand between 0 and 7")      \
-  ENUM_ENTRY(TYPE_IMM5,       "1-byte immediate operand between 0 and 31")     \
   ENUM_ENTRY(TYPE_UIMM8,      "1-byte unsigned immediate operand")             \
   ENUM_ENTRY(TYPE_M,          "Memory operand")                                \
   ENUM_ENTRY(TYPE_MVSIBX,     "Memory operand using XMM index")                \
index 737713e6edd9cf7d08fd2423d5f42704575a63ca..75db48928c9c093bde4fac176189338c5f672830 100644 (file)
@@ -2318,13 +2318,15 @@ bool X86AsmParser::ParseInstruction(ParseInstructionInfo &Info, StringRef Name,
       PatchedName != "setb" && PatchedName != "setnb")
     PatchedName = PatchedName.substr(0, Name.size()-1);
 
+  unsigned ComparisonCode = ~0U;
+
   // FIXME: Hack to recognize cmp<comparison code>{ss,sd,ps,pd}.
   if ((PatchedName.startswith("cmp") || PatchedName.startswith("vcmp")) &&
       (PatchedName.endswith("ss") || PatchedName.endswith("sd") ||
        PatchedName.endswith("ps") || PatchedName.endswith("pd"))) {
     bool IsVCMP = PatchedName[0] == 'v';
     unsigned CCIdx = IsVCMP ? 4 : 3;
-    unsigned ComparisonCode = StringSwitch<unsigned>(
+    unsigned CC = StringSwitch<unsigned>(
       PatchedName.slice(CCIdx, PatchedName.size() - 2))
       .Case("eq",       0x00)
       .Case("eq_oq",    0x00)
@@ -2374,21 +2376,22 @@ bool X86AsmParser::ParseInstruction(ParseInstructionInfo &Info, StringRef Name,
       .Case("gt_oq",    0x1E)
       .Case("true_us",  0x1F)
       .Default(~0U);
-    if (ComparisonCode != ~0U && (IsVCMP || ComparisonCode < 8)) {
-
-      Operands.push_back(X86Operand::CreateToken(PatchedName.slice(0, CCIdx),
-                                                 NameLoc));
-
-      const MCExpr *ImmOp = MCConstantExpr::create(ComparisonCode,
-                                                   getParser().getContext());
-      Operands.push_back(X86Operand::CreateImm(ImmOp, NameLoc, NameLoc));
+    if (CC != ~0U && (IsVCMP || CC < 8)) {
+      if (PatchedName.endswith("ss"))
+        PatchedName = IsVCMP ? "vcmpss" : "cmpss";
+      else if (PatchedName.endswith("sd"))
+        PatchedName = IsVCMP ? "vcmpsd" : "cmpsd";
+      else if (PatchedName.endswith("ps"))
+        PatchedName = IsVCMP ? "vcmpps" : "cmpps";
+      else if (PatchedName.endswith("pd"))
+        PatchedName = IsVCMP ? "vcmppd" : "cmppd";
+      else
+        llvm_unreachable("Unexpecte suffix!");
 
-      PatchedName = PatchedName.substr(PatchedName.size() - 2);
+      ComparisonCode = CC;
     }
   }
 
-  unsigned ComparisonCode = ~0U;
-
   // FIXME: Hack to recognize vpcmp<comparison code>{ub,uw,ud,uq,b,w,d,q}.
   if (PatchedName.startswith("vpcmp") &&
       (PatchedName.back() == 'b' || PatchedName.back() == 'w' ||
index 5b34249c154fc7c566193d873199327fe370e305..b990a67b133f005041c0d0e4ab88983c31d8dc7c 100644 (file)
@@ -445,66 +445,6 @@ static void translateImmediate(MCInst &mcInst, uint64_t immediate,
     case ENCODING_IO:
       break;
     }
-  } else if (type == TYPE_IMM3) {
-    // Check for immediates that printSSECC can't handle.
-    if (immediate >= 8) {
-      unsigned NewOpc;
-      switch (mcInst.getOpcode()) {
-      default: llvm_unreachable("unexpected opcode");
-      case X86::CMPPDrmi:  NewOpc = X86::CMPPDrmi_alt;  break;
-      case X86::CMPPDrri:  NewOpc = X86::CMPPDrri_alt;  break;
-      case X86::CMPPSrmi:  NewOpc = X86::CMPPSrmi_alt;  break;
-      case X86::CMPPSrri:  NewOpc = X86::CMPPSrri_alt;  break;
-      case X86::CMPSDrm:   NewOpc = X86::CMPSDrm_alt;   break;
-      case X86::CMPSDrr:   NewOpc = X86::CMPSDrr_alt;   break;
-      case X86::CMPSSrm:   NewOpc = X86::CMPSSrm_alt;   break;
-      case X86::CMPSSrr:   NewOpc = X86::CMPSSrr_alt;   break;
-      }
-      // Switch opcode to the one that doesn't get special printing.
-      mcInst.setOpcode(NewOpc);
-    }
-  } else if (type == TYPE_IMM5) {
-    // Check for immediates that printAVXCC can't handle.
-    if (immediate >= 32) {
-      unsigned NewOpc;
-      switch (mcInst.getOpcode()) {
-      default: llvm_unreachable("unexpected opcode");
-      case X86::VCMPPDrmi:   NewOpc = X86::VCMPPDrmi_alt;   break;
-      case X86::VCMPPDrri:   NewOpc = X86::VCMPPDrri_alt;   break;
-      case X86::VCMPPSrmi:   NewOpc = X86::VCMPPSrmi_alt;   break;
-      case X86::VCMPPSrri:   NewOpc = X86::VCMPPSrri_alt;   break;
-      case X86::VCMPSDrm:    NewOpc = X86::VCMPSDrm_alt;    break;
-      case X86::VCMPSDrr:    NewOpc = X86::VCMPSDrr_alt;    break;
-      case X86::VCMPSSrm:    NewOpc = X86::VCMPSSrm_alt;    break;
-      case X86::VCMPSSrr:    NewOpc = X86::VCMPSSrr_alt;    break;
-      case X86::VCMPPDYrmi:  NewOpc = X86::VCMPPDYrmi_alt;  break;
-      case X86::VCMPPDYrri:  NewOpc = X86::VCMPPDYrri_alt;  break;
-      case X86::VCMPPSYrmi:  NewOpc = X86::VCMPPSYrmi_alt;  break;
-      case X86::VCMPPSYrri:  NewOpc = X86::VCMPPSYrri_alt;  break;
-      case X86::VCMPPDZrmi:  NewOpc = X86::VCMPPDZrmi_alt;  break;
-      case X86::VCMPPDZrri:  NewOpc = X86::VCMPPDZrri_alt;  break;
-      case X86::VCMPPDZrrib: NewOpc = X86::VCMPPDZrrib_alt; break;
-      case X86::VCMPPSZrmi:  NewOpc = X86::VCMPPSZrmi_alt;  break;
-      case X86::VCMPPSZrri:  NewOpc = X86::VCMPPSZrri_alt;  break;
-      case X86::VCMPPSZrrib: NewOpc = X86::VCMPPSZrrib_alt; break;
-      case X86::VCMPPDZ128rmi:  NewOpc = X86::VCMPPDZ128rmi_alt;  break;
-      case X86::VCMPPDZ128rri:  NewOpc = X86::VCMPPDZ128rri_alt;  break;
-      case X86::VCMPPSZ128rmi:  NewOpc = X86::VCMPPSZ128rmi_alt;  break;
-      case X86::VCMPPSZ128rri:  NewOpc = X86::VCMPPSZ128rri_alt;  break;
-      case X86::VCMPPDZ256rmi:  NewOpc = X86::VCMPPDZ256rmi_alt;  break;
-      case X86::VCMPPDZ256rri:  NewOpc = X86::VCMPPDZ256rri_alt;  break;
-      case X86::VCMPPSZ256rmi:  NewOpc = X86::VCMPPSZ256rmi_alt;  break;
-      case X86::VCMPPSZ256rri:  NewOpc = X86::VCMPPSZ256rri_alt;  break;
-      case X86::VCMPSDZrm_Int:  NewOpc = X86::VCMPSDZrmi_alt;  break;
-      case X86::VCMPSDZrr_Int:  NewOpc = X86::VCMPSDZrri_alt;  break;
-      case X86::VCMPSDZrrb_Int: NewOpc = X86::VCMPSDZrrb_alt;  break;
-      case X86::VCMPSSZrm_Int:  NewOpc = X86::VCMPSSZrmi_alt;  break;
-      case X86::VCMPSSZrr_Int:  NewOpc = X86::VCMPSSZrri_alt;  break;
-      case X86::VCMPSSZrrb_Int: NewOpc = X86::VCMPSSZrrb_alt;  break;
-      }
-      // Switch opcode to the one that doesn't get special printing.
-      mcInst.setOpcode(NewOpc);
-    }
   }
 
   switch (type) {
index e0558a9d315f63cc36537a8374d8352d88fe49f6..ea36013681a0489cbc167882c5a18424a6326e21 100644 (file)
@@ -88,6 +88,127 @@ bool X86ATTInstPrinter::printVecCompareInstr(const MCInst *MI,
   // Custom print the vector compare instructions to get the immediate
   // translated into the mnemonic.
   switch (MI->getOpcode()) {
+  case X86::CMPPDrmi:    case X86::CMPPDrri:
+  case X86::CMPPSrmi:    case X86::CMPPSrri:
+  case X86::CMPSDrm:     case X86::CMPSDrr:
+  case X86::CMPSDrm_Int: case X86::CMPSDrr_Int:
+  case X86::CMPSSrm:     case X86::CMPSSrr:
+  case X86::CMPSSrm_Int: case X86::CMPSSrr_Int:
+    if (Imm >= 0 && Imm <= 7) {
+      OS << '\t';
+      printCMPMnemonic(MI, /*IsVCMP*/false, OS);
+
+      if ((Desc.TSFlags & X86II::FormMask) == X86II::MRMSrcMem) {
+        if ((Desc.TSFlags & X86II::OpPrefixMask) == X86II::XS)
+          printdwordmem(MI, 2, OS);
+        else if ((Desc.TSFlags & X86II::OpPrefixMask) == X86II::XD)
+          printqwordmem(MI, 2, OS);
+        else
+          printxmmwordmem(MI, 2, OS);
+      } else
+        printOperand(MI, 2, OS);
+
+      // Skip operand 1 as its tied to the dest.
+
+      OS << ", ";
+      printOperand(MI, 0, OS);
+      return true;
+    }
+    break;
+
+  case X86::VCMPPDrmi:      case X86::VCMPPDrri:
+  case X86::VCMPPDYrmi:     case X86::VCMPPDYrri:
+  case X86::VCMPPDZ128rmi:  case X86::VCMPPDZ128rri:
+  case X86::VCMPPDZ256rmi:  case X86::VCMPPDZ256rri:
+  case X86::VCMPPDZrmi:     case X86::VCMPPDZrri:
+  case X86::VCMPPSrmi:      case X86::VCMPPSrri:
+  case X86::VCMPPSYrmi:     case X86::VCMPPSYrri:
+  case X86::VCMPPSZ128rmi:  case X86::VCMPPSZ128rri:
+  case X86::VCMPPSZ256rmi:  case X86::VCMPPSZ256rri:
+  case X86::VCMPPSZrmi:     case X86::VCMPPSZrri:
+  case X86::VCMPSDrm:       case X86::VCMPSDrr:
+  case X86::VCMPSDZrm:      case X86::VCMPSDZrr:
+  case X86::VCMPSDrm_Int:   case X86::VCMPSDrr_Int:
+  case X86::VCMPSDZrm_Int:  case X86::VCMPSDZrr_Int:
+  case X86::VCMPSSrm:       case X86::VCMPSSrr:
+  case X86::VCMPSSZrm:      case X86::VCMPSSZrr:
+  case X86::VCMPSSrm_Int:   case X86::VCMPSSrr_Int:
+  case X86::VCMPSSZrm_Int:  case X86::VCMPSSZrr_Int:
+  case X86::VCMPPDZ128rmik: case X86::VCMPPDZ128rrik:
+  case X86::VCMPPDZ256rmik: case X86::VCMPPDZ256rrik:
+  case X86::VCMPPDZrmik:    case X86::VCMPPDZrrik:
+  case X86::VCMPPSZ128rmik: case X86::VCMPPSZ128rrik:
+  case X86::VCMPPSZ256rmik: case X86::VCMPPSZ256rrik:
+  case X86::VCMPPSZrmik:    case X86::VCMPPSZrrik:
+  case X86::VCMPSDZrm_Intk: case X86::VCMPSDZrr_Intk:
+  case X86::VCMPSSZrm_Intk: case X86::VCMPSSZrr_Intk:
+  case X86::VCMPPDZ128rmbi: case X86::VCMPPDZ128rmbik:
+  case X86::VCMPPDZ256rmbi: case X86::VCMPPDZ256rmbik:
+  case X86::VCMPPDZrmbi:    case X86::VCMPPDZrmbik:
+  case X86::VCMPPSZ128rmbi: case X86::VCMPPSZ128rmbik:
+  case X86::VCMPPSZ256rmbi: case X86::VCMPPSZ256rmbik:
+  case X86::VCMPPSZrmbi:    case X86::VCMPPSZrmbik:
+  case X86::VCMPPDZrrib:    case X86::VCMPPDZrribk:
+  case X86::VCMPPSZrrib:    case X86::VCMPPSZrribk:
+  case X86::VCMPSDZrrb_Int: case X86::VCMPSDZrrb_Intk:
+  case X86::VCMPSSZrrb_Int: case X86::VCMPSSZrrb_Intk:
+    if (Imm >= 0 && Imm <= 31) {
+      OS << '\t';
+      printCMPMnemonic(MI, /*IsVCMP*/true, OS);
+
+      unsigned CurOp = (Desc.TSFlags & X86II::EVEX_K) ? 3 : 2;
+
+      if ((Desc.TSFlags & X86II::FormMask) == X86II::MRMSrcMem) {
+        if (Desc.TSFlags & X86II::EVEX_B) {
+          // Broadcast form.
+          // Load size is based on W-bit.
+          if (Desc.TSFlags & X86II::VEX_W)
+            printqwordmem(MI, CurOp--, OS);
+          else
+            printdwordmem(MI, CurOp--, OS);
+
+          // Print the number of elements broadcasted.
+          unsigned NumElts;
+          if (Desc.TSFlags & X86II::EVEX_L2)
+            NumElts = (Desc.TSFlags & X86II::VEX_W) ? 8 : 16;
+          else if (Desc.TSFlags & X86II::VEX_L)
+            NumElts = (Desc.TSFlags & X86II::VEX_W) ? 4 : 8;
+          else
+            NumElts = (Desc.TSFlags & X86II::VEX_W) ? 2 : 4;
+          OS << "{1to" << NumElts << "}";
+        } else {
+          if ((Desc.TSFlags & X86II::OpPrefixMask) == X86II::XS)
+            printdwordmem(MI, CurOp--, OS);
+          else if ((Desc.TSFlags & X86II::OpPrefixMask) == X86II::XD)
+            printqwordmem(MI, CurOp--, OS);
+          else if (Desc.TSFlags & X86II::EVEX_L2)
+            printzmmwordmem(MI, CurOp--, OS);
+          else if (Desc.TSFlags & X86II::VEX_L)
+            printymmwordmem(MI, CurOp--, OS);
+          else
+            printxmmwordmem(MI, CurOp--, OS);
+        }
+      } else {
+        if (Desc.TSFlags & X86II::EVEX_B)
+          OS << "{sae}, ";
+        printOperand(MI, CurOp--, OS);
+      }
+
+      OS << ", ";
+      printOperand(MI, CurOp--, OS);
+      OS << ", ";
+      printOperand(MI, 0, OS);
+      if (CurOp > 0) {
+        // Print mask operand.
+        OS << " {";
+        printOperand(MI, CurOp--, OS);
+        OS << "}";
+      }
+
+      return true;
+    }
+    break;
+
   case X86::VPCOMBmi:  case X86::VPCOMBri:
   case X86::VPCOMDmi:  case X86::VPCOMDri:
   case X86::VPCOMQmi:  case X86::VPCOMQri:
index 90a3f4ccd585e02f79a5863d9d60fce339c7e1f3..133119b0a86efc1b9e1d188980ebc3d14fdf4350 100644 (file)
@@ -181,6 +181,67 @@ void X86InstPrinterCommon::printVPCMPMnemonic(const MCInst *MI,
   }
 }
 
+void X86InstPrinterCommon::printCMPMnemonic(const MCInst *MI, bool IsVCmp,
+                                            raw_ostream &OS) {
+  OS << (IsVCmp ? "vcmp" : "cmp");
+
+  printSSEAVXCC(MI, MI->getNumOperands() - 1, OS);
+
+  switch (MI->getOpcode()) {
+  default: llvm_unreachable("Unexpected opcode!");
+  case X86::CMPPDrmi:       case X86::CMPPDrri:
+  case X86::VCMPPDrmi:      case X86::VCMPPDrri:
+  case X86::VCMPPDYrmi:     case X86::VCMPPDYrri:
+  case X86::VCMPPDZ128rmi:  case X86::VCMPPDZ128rri:
+  case X86::VCMPPDZ256rmi:  case X86::VCMPPDZ256rri:
+  case X86::VCMPPDZrmi:     case X86::VCMPPDZrri:
+  case X86::VCMPPDZ128rmik: case X86::VCMPPDZ128rrik:
+  case X86::VCMPPDZ256rmik: case X86::VCMPPDZ256rrik:
+  case X86::VCMPPDZrmik:    case X86::VCMPPDZrrik:
+  case X86::VCMPPDZ128rmbi: case X86::VCMPPDZ128rmbik:
+  case X86::VCMPPDZ256rmbi: case X86::VCMPPDZ256rmbik:
+  case X86::VCMPPDZrmbi:    case X86::VCMPPDZrmbik:
+  case X86::VCMPPDZrrib:    case X86::VCMPPDZrribk:
+    OS << "pd\t";
+    break;
+  case X86::CMPPSrmi:       case X86::CMPPSrri:
+  case X86::VCMPPSrmi:      case X86::VCMPPSrri:
+  case X86::VCMPPSYrmi:     case X86::VCMPPSYrri:
+  case X86::VCMPPSZ128rmi:  case X86::VCMPPSZ128rri:
+  case X86::VCMPPSZ256rmi:  case X86::VCMPPSZ256rri:
+  case X86::VCMPPSZrmi:     case X86::VCMPPSZrri:
+  case X86::VCMPPSZ128rmik: case X86::VCMPPSZ128rrik:
+  case X86::VCMPPSZ256rmik: case X86::VCMPPSZ256rrik:
+  case X86::VCMPPSZrmik:    case X86::VCMPPSZrrik:
+  case X86::VCMPPSZ128rmbi: case X86::VCMPPSZ128rmbik:
+  case X86::VCMPPSZ256rmbi: case X86::VCMPPSZ256rmbik:
+  case X86::VCMPPSZrmbi:    case X86::VCMPPSZrmbik:
+  case X86::VCMPPSZrrib:    case X86::VCMPPSZrribk:
+    OS << "ps\t";
+    break;
+  case X86::CMPSDrm:        case X86::CMPSDrr:
+  case X86::CMPSDrm_Int:    case X86::CMPSDrr_Int:
+  case X86::VCMPSDrm:       case X86::VCMPSDrr:
+  case X86::VCMPSDrm_Int:   case X86::VCMPSDrr_Int:
+  case X86::VCMPSDZrm:      case X86::VCMPSDZrr:
+  case X86::VCMPSDZrm_Int:  case X86::VCMPSDZrr_Int:
+  case X86::VCMPSDZrm_Intk: case X86::VCMPSDZrr_Intk:
+  case X86::VCMPSDZrrb_Int: case X86::VCMPSDZrrb_Intk:
+    OS << "sd\t";
+    break;
+  case X86::CMPSSrm:        case X86::CMPSSrr:
+  case X86::CMPSSrm_Int:    case X86::CMPSSrr_Int:
+  case X86::VCMPSSrm:       case X86::VCMPSSrr:
+  case X86::VCMPSSrm_Int:   case X86::VCMPSSrr_Int:
+  case X86::VCMPSSZrm:      case X86::VCMPSSZrr:
+  case X86::VCMPSSZrm_Int:  case X86::VCMPSSZrr_Int:
+  case X86::VCMPSSZrm_Intk: case X86::VCMPSSZrr_Intk:
+  case X86::VCMPSSZrrb_Int: case X86::VCMPSSZrrb_Intk:
+    OS << "ss\t";
+    break;
+  }
+}
+
 void X86InstPrinterCommon::printRoundingControl(const MCInst *MI, unsigned Op,
                                                 raw_ostream &O) {
   int64_t Imm = MI->getOperand(Op).getImm();
index 40a222941645282454cb1a85c60c66f72c8b1324..489be73b650218680f50ee3fa08d8f3a15a98147 100644 (file)
@@ -26,6 +26,7 @@ public:
   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);
+  void printCMPMnemonic(const MCInst *MI, bool IsVCmp, raw_ostream &OS);
   void printRoundingControl(const MCInst *MI, unsigned Op, raw_ostream &O);
   void printPCRelImm(const MCInst *MI, unsigned OpNo, raw_ostream &O);
 protected:
index 380c4d9bfbb083d3eec71521bb52330bcffbdee0..ba40e13f59282cf9c0f73d5f26fd3808dfeccff2 100644 (file)
@@ -69,6 +69,126 @@ bool X86IntelInstPrinter::printVecCompareInstr(const MCInst *MI, raw_ostream &OS
   // Custom print the vector compare instructions to get the immediate
   // translated into the mnemonic.
   switch (MI->getOpcode()) {
+  case X86::CMPPDrmi:    case X86::CMPPDrri:
+  case X86::CMPPSrmi:    case X86::CMPPSrri:
+  case X86::CMPSDrm:     case X86::CMPSDrr:
+  case X86::CMPSDrm_Int: case X86::CMPSDrr_Int:
+  case X86::CMPSSrm:     case X86::CMPSSrr:
+  case X86::CMPSSrm_Int: case X86::CMPSSrr_Int:
+    if (Imm >= 0 && Imm <= 7) {
+      OS << '\t';
+      printCMPMnemonic(MI, /*IsVCMP*/false, OS);
+      printOperand(MI, 0, OS);
+      OS << ", ";
+      // Skip operand 1 as its tied to the dest.
+
+      if ((Desc.TSFlags & X86II::FormMask) == X86II::MRMSrcMem) {
+        if ((Desc.TSFlags & X86II::OpPrefixMask) == X86II::XS)
+          printdwordmem(MI, 2, OS);
+        else if ((Desc.TSFlags & X86II::OpPrefixMask) == X86II::XD)
+          printqwordmem(MI, 2, OS);
+        else
+          printxmmwordmem(MI, 2, OS);
+      } else
+        printOperand(MI, 2, OS);
+
+      return true;
+    }
+    break;
+
+  case X86::VCMPPDrmi:      case X86::VCMPPDrri:
+  case X86::VCMPPDYrmi:     case X86::VCMPPDYrri:
+  case X86::VCMPPDZ128rmi:  case X86::VCMPPDZ128rri:
+  case X86::VCMPPDZ256rmi:  case X86::VCMPPDZ256rri:
+  case X86::VCMPPDZrmi:     case X86::VCMPPDZrri:
+  case X86::VCMPPSrmi:      case X86::VCMPPSrri:
+  case X86::VCMPPSYrmi:     case X86::VCMPPSYrri:
+  case X86::VCMPPSZ128rmi:  case X86::VCMPPSZ128rri:
+  case X86::VCMPPSZ256rmi:  case X86::VCMPPSZ256rri:
+  case X86::VCMPPSZrmi:     case X86::VCMPPSZrri:
+  case X86::VCMPSDrm:       case X86::VCMPSDrr:
+  case X86::VCMPSDZrm:      case X86::VCMPSDZrr:
+  case X86::VCMPSDrm_Int:   case X86::VCMPSDrr_Int:
+  case X86::VCMPSDZrm_Int:  case X86::VCMPSDZrr_Int:
+  case X86::VCMPSSrm:       case X86::VCMPSSrr:
+  case X86::VCMPSSZrm:      case X86::VCMPSSZrr:
+  case X86::VCMPSSrm_Int:   case X86::VCMPSSrr_Int:
+  case X86::VCMPSSZrm_Int:  case X86::VCMPSSZrr_Int:
+  case X86::VCMPPDZ128rmik: case X86::VCMPPDZ128rrik:
+  case X86::VCMPPDZ256rmik: case X86::VCMPPDZ256rrik:
+  case X86::VCMPPDZrmik:    case X86::VCMPPDZrrik:
+  case X86::VCMPPSZ128rmik: case X86::VCMPPSZ128rrik:
+  case X86::VCMPPSZ256rmik: case X86::VCMPPSZ256rrik:
+  case X86::VCMPPSZrmik:    case X86::VCMPPSZrrik:
+  case X86::VCMPSDZrm_Intk: case X86::VCMPSDZrr_Intk:
+  case X86::VCMPSSZrm_Intk: case X86::VCMPSSZrr_Intk:
+  case X86::VCMPPDZ128rmbi: case X86::VCMPPDZ128rmbik:
+  case X86::VCMPPDZ256rmbi: case X86::VCMPPDZ256rmbik:
+  case X86::VCMPPDZrmbi:    case X86::VCMPPDZrmbik:
+  case X86::VCMPPSZ128rmbi: case X86::VCMPPSZ128rmbik:
+  case X86::VCMPPSZ256rmbi: case X86::VCMPPSZ256rmbik:
+  case X86::VCMPPSZrmbi:    case X86::VCMPPSZrmbik:
+  case X86::VCMPPDZrrib:    case X86::VCMPPDZrribk:
+  case X86::VCMPPSZrrib:    case X86::VCMPPSZrribk:
+  case X86::VCMPSDZrrb_Int: case X86::VCMPSDZrrb_Intk:
+  case X86::VCMPSSZrrb_Int: case X86::VCMPSSZrrb_Intk:
+    if (Imm >= 0 && Imm <= 31) {
+      OS << '\t';
+      printCMPMnemonic(MI, /*IsVCMP*/true, OS);
+
+      unsigned CurOp = 0;
+      printOperand(MI, CurOp++, OS);
+
+      if (Desc.TSFlags & X86II::EVEX_K) {
+        // Print mask operand.
+        OS << " {";
+        printOperand(MI, CurOp++, OS);
+        OS << "}";
+      }
+      OS << ", ";
+      printOperand(MI, CurOp++, OS);
+      OS << ", ";
+
+      if ((Desc.TSFlags & X86II::FormMask) == X86II::MRMSrcMem) {
+        if (Desc.TSFlags & X86II::EVEX_B) {
+          // Broadcast form.
+          // Load size is based on W-bit.
+          if (Desc.TSFlags & X86II::VEX_W)
+            printqwordmem(MI, CurOp++, OS);
+          else
+            printdwordmem(MI, CurOp++, OS);
+
+          // Print the number of elements broadcasted.
+          unsigned NumElts;
+          if (Desc.TSFlags & X86II::EVEX_L2)
+            NumElts = (Desc.TSFlags & X86II::VEX_W) ? 8 : 16;
+          else if (Desc.TSFlags & X86II::VEX_L)
+            NumElts = (Desc.TSFlags & X86II::VEX_W) ? 4 : 8;
+          else
+            NumElts = (Desc.TSFlags & X86II::VEX_W) ? 2 : 4;
+          OS << "{1to" << NumElts << "}";
+        } else {
+          if ((Desc.TSFlags & X86II::OpPrefixMask) == X86II::XS)
+            printdwordmem(MI, CurOp++, OS);
+          else if ((Desc.TSFlags & X86II::OpPrefixMask) == X86II::XD)
+            printqwordmem(MI, CurOp++, OS);
+          else if (Desc.TSFlags & X86II::EVEX_L2)
+            printzmmwordmem(MI, CurOp++, OS);
+          else if (Desc.TSFlags & X86II::VEX_L)
+            printymmwordmem(MI, CurOp++, OS);
+          else
+            printxmmwordmem(MI, CurOp++, OS);
+        }
+      } else {
+        printOperand(MI, CurOp++, OS);
+        if (Desc.TSFlags & X86II::EVEX_B)
+          OS << ", {sae}";
+      }
+
+      return true;
+    }
+    break;
+
   case X86::VPCOMBmi:  case X86::VPCOMBri:
   case X86::VPCOMDmi:  case X86::VPCOMDri:
   case X86::VPCOMQmi:  case X86::VPCOMQri:
index a904b4fb7ddf73368a1023b987e897bc11c518db..7148710748b784acab61036863a48ad5164b50fb 100644 (file)
@@ -2032,71 +2032,47 @@ multiclass avx512_cmp_scalar<X86VectorVTInfo _, SDNode OpNode, SDNode OpNodeSAE,
                              X86FoldableSchedWrite sched> {
   defm  rr_Int  : AVX512_maskable_cmp<0xC2, MRMSrcReg, _,
                       (outs _.KRC:$dst),
-                      (ins _.RC:$src1, _.RC:$src2, AVXCC:$cc),
-                      "vcmp${cc}"#_.Suffix,
-                      "$src2, $src1", "$src1, $src2",
+                      (ins _.RC:$src1, _.RC:$src2, u8imm:$cc),
+                      "vcmp"#_.Suffix,
+                      "$cc, $src2, $src1", "$src1, $src2, $cc",
                       (OpNode (_.VT _.RC:$src1),
                               (_.VT _.RC:$src2),
                               imm:$cc)>, EVEX_4V, Sched<[sched]>;
   let mayLoad = 1 in
   defm  rm_Int  : AVX512_maskable_cmp<0xC2, MRMSrcMem, _,
                     (outs _.KRC:$dst),
-                    (ins _.RC:$src1, _.IntScalarMemOp:$src2, AVXCC:$cc),
-                    "vcmp${cc}"#_.Suffix,
-                    "$src2, $src1", "$src1, $src2",
+                    (ins _.RC:$src1, _.IntScalarMemOp:$src2, u8imm:$cc),
+                    "vcmp"#_.Suffix,
+                    "$cc, $src2, $src1", "$src1, $src2, $cc",
                     (OpNode (_.VT _.RC:$src1), _.ScalarIntMemCPat:$src2,
                         imm:$cc)>, EVEX_4V, EVEX_CD8<_.EltSize, CD8VT1>,
                     Sched<[sched.Folded, sched.ReadAfterFold]>;
 
   defm  rrb_Int  : AVX512_maskable_cmp<0xC2, MRMSrcReg, _,
                      (outs _.KRC:$dst),
-                     (ins _.RC:$src1, _.RC:$src2, AVXCC:$cc),
-                     "vcmp${cc}"#_.Suffix,
-                     "{sae}, $src2, $src1", "$src1, $src2, {sae}",
+                     (ins _.RC:$src1, _.RC:$src2, u8imm:$cc),
+                     "vcmp"#_.Suffix,
+                     "$cc, {sae}, $src2, $src1","$src1, $src2, {sae}, $cc",
                      (OpNodeSAE (_.VT _.RC:$src1),
                                 (_.VT _.RC:$src2),
                                 imm:$cc)>,
                      EVEX_4V, EVEX_B, Sched<[sched]>;
-  // Accept explicit immediate argument form instead of comparison code.
-  let isAsmParserOnly = 1, hasSideEffects = 0 in {
-    defm  rri_alt  : AVX512_maskable_cmp_alt<0xC2, MRMSrcReg, _,
-                        (outs VK1:$dst),
-                        (ins _.RC:$src1, _.RC:$src2, u8imm:$cc),
-                        "vcmp"#_.Suffix,
-                        "$cc, $src2, $src1", "$src1, $src2, $cc">, EVEX_4V,
-                        Sched<[sched]>, NotMemoryFoldable;
-  let mayLoad = 1 in
-    defm  rmi_alt  : AVX512_maskable_cmp_alt<0xC2, MRMSrcMem, _,
-                        (outs _.KRC:$dst),
-                        (ins _.RC:$src1, _.ScalarMemOp:$src2, u8imm:$cc),
-                        "vcmp"#_.Suffix,
-                        "$cc, $src2, $src1", "$src1, $src2, $cc">,
-                        EVEX_4V, EVEX_CD8<_.EltSize, CD8VT1>,
-                        Sched<[sched.Folded, sched.ReadAfterFold]>, NotMemoryFoldable;
-
-    defm  rrb_alt  : AVX512_maskable_cmp_alt<0xC2, MRMSrcReg, _,
-                       (outs _.KRC:$dst),
-                       (ins _.RC:$src1, _.RC:$src2, u8imm:$cc),
-                       "vcmp"#_.Suffix,
-                       "$cc, {sae}, $src2, $src1","$src1, $src2, {sae}, $cc">,
-                       EVEX_4V, EVEX_B, Sched<[sched]>, NotMemoryFoldable;
-  }// let isAsmParserOnly = 1, hasSideEffects = 0
 
   let isCodeGenOnly = 1 in {
     let isCommutable = 1 in
     def rr : AVX512Ii8<0xC2, MRMSrcReg,
-                (outs _.KRC:$dst), (ins _.FRC:$src1, _.FRC:$src2, AVXCC:$cc),
-                !strconcat("vcmp${cc}", _.Suffix,
-                           "\t{$src2, $src1, $dst|$dst, $src1, $src2}"),
+                (outs _.KRC:$dst), (ins _.FRC:$src1, _.FRC:$src2, u8imm:$cc),
+                !strconcat("vcmp", _.Suffix,
+                           "\t{$cc, $src2, $src1, $dst|$dst, $src1, $src2, $cc}"),
                 [(set _.KRC:$dst, (OpNode _.FRC:$src1,
                                           _.FRC:$src2,
                                           imm:$cc))]>,
                 EVEX_4V, Sched<[sched]>;
     def rm : AVX512Ii8<0xC2, MRMSrcMem,
               (outs _.KRC:$dst),
-              (ins _.FRC:$src1, _.ScalarMemOp:$src2, AVXCC:$cc),
-              !strconcat("vcmp${cc}", _.Suffix,
-                         "\t{$src2, $src1, $dst|$dst, $src1, $src2}"),
+              (ins _.FRC:$src1, _.ScalarMemOp:$src2, u8imm:$cc),
+              !strconcat("vcmp", _.Suffix,
+                         "\t{$cc, $src2, $src1, $dst|$dst, $src1, $src2, $cc}"),
               [(set _.KRC:$dst, (OpNode _.FRC:$src1,
                                         (_.ScalarLdFrag addr:$src2),
                                         imm:$cc))]>,
@@ -2456,18 +2432,18 @@ defm VPCMPUQ : avx512_icmp_cc_rmb_vl<0x1E, "uq", X86pcmpum, X86pcmpum_commute,
 multiclass avx512_vcmp_common<X86FoldableSchedWrite sched, X86VectorVTInfo _,
                               string Name> {
   defm  rri  : AVX512_maskable_cmp<0xC2, MRMSrcReg, _,
-                   (outs _.KRC:$dst), (ins _.RC:$src1, _.RC:$src2,AVXCC:$cc),
-                   "vcmp${cc}"#_.Suffix,
-                   "$src2, $src1", "$src1, $src2",
+                   (outs _.KRC:$dst), (ins _.RC:$src1, _.RC:$src2,u8imm:$cc),
+                   "vcmp"#_.Suffix,
+                   "$cc, $src2, $src1", "$src1, $src2, $cc",
                    (X86cmpm (_.VT _.RC:$src1),
                          (_.VT _.RC:$src2),
                            imm:$cc), 1>,
                    Sched<[sched]>;
 
   defm  rmi  : AVX512_maskable_cmp<0xC2, MRMSrcMem, _,
-                (outs _.KRC:$dst),(ins _.RC:$src1, _.MemOp:$src2, AVXCC:$cc),
-                "vcmp${cc}"#_.Suffix,
-                "$src2, $src1", "$src1, $src2",
+                (outs _.KRC:$dst),(ins _.RC:$src1, _.MemOp:$src2, u8imm:$cc),
+                "vcmp"#_.Suffix,
+                "$cc, $src2, $src1", "$src1, $src2, $cc",
                 (X86cmpm (_.VT _.RC:$src1),
                         (_.VT (_.LdFrag addr:$src2)),
                         imm:$cc)>,
@@ -2475,42 +2451,14 @@ multiclass avx512_vcmp_common<X86FoldableSchedWrite sched, X86VectorVTInfo _,
 
   defm  rmbi : AVX512_maskable_cmp<0xC2, MRMSrcMem, _,
                 (outs _.KRC:$dst),
-                (ins _.RC:$src1, _.ScalarMemOp:$src2, AVXCC:$cc),
-                "vcmp${cc}"#_.Suffix,
-                "${src2}"##_.BroadcastStr##", $src1",
-                "$src1, ${src2}"##_.BroadcastStr,
+                (ins _.RC:$src1, _.ScalarMemOp:$src2, u8imm:$cc),
+                "vcmp"#_.Suffix,
+                "$cc, ${src2}"#_.BroadcastStr#", $src1",
+                "$src1, ${src2}"#_.BroadcastStr#", $cc",
                 (X86cmpm (_.VT _.RC:$src1),
                         (_.VT (X86VBroadcast(_.ScalarLdFrag addr:$src2))),
                         imm:$cc)>,
                 EVEX_B, Sched<[sched.Folded, sched.ReadAfterFold]>;
-  // Accept explicit immediate argument form instead of comparison code.
-  let isAsmParserOnly = 1, hasSideEffects = 0 in {
-    defm  rri_alt : AVX512_maskable_cmp_alt<0xC2, MRMSrcReg, _,
-                         (outs _.KRC:$dst),
-                         (ins _.RC:$src1, _.RC:$src2, u8imm:$cc),
-                         "vcmp"#_.Suffix,
-                         "$cc, $src2, $src1", "$src1, $src2, $cc">,
-                         Sched<[sched]>, NotMemoryFoldable;
-
-    let mayLoad = 1 in {
-      defm rmi_alt : AVX512_maskable_cmp_alt<0xC2, MRMSrcMem, _,
-                             (outs _.KRC:$dst),
-                             (ins _.RC:$src1, _.MemOp:$src2, u8imm:$cc),
-                             "vcmp"#_.Suffix,
-                             "$cc, $src2, $src1", "$src1, $src2, $cc">,
-                             Sched<[sched.Folded, sched.ReadAfterFold]>,
-                             NotMemoryFoldable;
-
-      defm  rmbi_alt : AVX512_maskable_cmp_alt<0xC2, MRMSrcMem, _,
-                         (outs _.KRC:$dst),
-                         (ins _.RC:$src1, _.ScalarMemOp:$src2, u8imm:$cc),
-                         "vcmp"#_.Suffix,
-                         "$cc, ${src2}"##_.BroadcastStr##", $src1",
-                         "$src1, ${src2}"##_.BroadcastStr##", $cc">,
-                         EVEX_B, Sched<[sched.Folded, sched.ReadAfterFold]>,
-                         NotMemoryFoldable;
-    }
-  }
 
   // Patterns for selecting with loads in other operand.
   def : Pat<(X86cmpm (_.LdFrag addr:$src2), (_.VT _.RC:$src1),
@@ -2542,23 +2490,14 @@ multiclass avx512_vcmp_common<X86FoldableSchedWrite sched, X86VectorVTInfo _,
 multiclass avx512_vcmp_sae<X86FoldableSchedWrite sched, X86VectorVTInfo _> {
   // comparison code form (VCMP[EQ/LT/LE/...]
   defm  rrib  : AVX512_maskable_cmp<0xC2, MRMSrcReg, _,
-                     (outs _.KRC:$dst),(ins _.RC:$src1, _.RC:$src2, AVXCC:$cc),
-                     "vcmp${cc}"#_.Suffix,
-                     "{sae}, $src2, $src1", "$src1, $src2, {sae}",
+                     (outs _.KRC:$dst),(ins _.RC:$src1, _.RC:$src2, u8imm:$cc),
+                     "vcmp"#_.Suffix,
+                     "$cc, {sae}, $src2, $src1",
+                     "$src1, $src2, {sae}, $cc",
                      (X86cmpmSAE (_.VT _.RC:$src1),
                                     (_.VT _.RC:$src2),
                                     imm:$cc)>,
                      EVEX_B, Sched<[sched]>;
-
-  let isAsmParserOnly = 1, hasSideEffects = 0 in {
-    defm  rrib_alt  : AVX512_maskable_cmp_alt<0xC2, MRMSrcReg, _,
-                         (outs _.KRC:$dst),
-                         (ins _.RC:$src1, _.RC:$src2, u8imm:$cc),
-                         "vcmp"#_.Suffix,
-                         "$cc, {sae}, $src2, $src1",
-                         "$src1, $src2, {sae}, $cc">,
-                         EVEX_B, Sched<[sched]>, NotMemoryFoldable;
-   }
 }
 
 multiclass avx512_vcmp<X86SchedWriteWidths sched, AVX512VLVectorVTInfo _> {
index 1fb6436d84fca1d5a31ba4e4b6fe9ae67fe47b99..2230a7a860b7d9b202690c2989787da947d980a1 100644 (file)
@@ -600,16 +600,6 @@ def offset64_32 : X86MemOffsOperand<i64imm, "printMemOffs32",
 def offset64_64 : X86MemOffsOperand<i64imm, "printMemOffs64",
                                     X86MemOffs64_64AsmOperand>;
 
-def SSECC : Operand<i8> {
-  let PrintMethod = "printSSEAVXCC";
-  let OperandType = "OPERAND_IMMEDIATE";
-}
-
-def AVXCC : Operand<i8> {
-  let PrintMethod = "printSSEAVXCC";
-  let OperandType = "OPERAND_IMMEDIATE";
-}
-
 class ImmSExtAsmOperandClass : AsmOperandClass {
   let SuperClasses = [ImmAsmOperand];
   let RenderMethod = "addImmOperands";
index 7f1cc8f3be476e28f5facdfa541c403776cefe29..f0c781cb2a8cb6da4b3411dfb929901e9a7f4f50 100644 (file)
@@ -1768,68 +1768,53 @@ let Predicates = [HasAVX, NoVLX] in {
 
 // sse12_cmp_scalar - sse 1 & 2 compare scalar instructions
 multiclass sse12_cmp_scalar<RegisterClass RC, X86MemOperand x86memop,
-                            Operand CC, SDNode OpNode, ValueType VT,
-                            PatFrag ld_frag, string asm, string asm_alt,
+                            SDNode OpNode, ValueType VT,
+                            PatFrag ld_frag, string asm,
                             X86FoldableSchedWrite sched> {
   let isCommutable = 1 in
   def rr : SIi8<0xC2, MRMSrcReg,
-                (outs RC:$dst), (ins RC:$src1, RC:$src2, CC:$cc), asm,
+                (outs RC:$dst), (ins RC:$src1, RC:$src2, u8imm:$cc), asm,
                 [(set RC:$dst, (OpNode (VT RC:$src1), RC:$src2, imm:$cc))]>,
                 Sched<[sched]>;
   def rm : SIi8<0xC2, MRMSrcMem,
-                (outs RC:$dst), (ins RC:$src1, x86memop:$src2, CC:$cc), asm,
+                (outs RC:$dst), (ins RC:$src1, x86memop:$src2, u8imm:$cc), asm,
                 [(set RC:$dst, (OpNode (VT RC:$src1),
                                          (ld_frag addr:$src2), imm:$cc))]>,
                 Sched<[sched.Folded, sched.ReadAfterFold]>;
-
-  // Accept explicit immediate argument form instead of comparison code.
-  let isAsmParserOnly = 1, hasSideEffects = 0 in {
-    def rr_alt : SIi8<0xC2, MRMSrcReg, (outs RC:$dst),
-                      (ins RC:$src1, RC:$src2, u8imm:$cc), asm_alt, []>,
-                      Sched<[sched]>, NotMemoryFoldable;
-    let mayLoad = 1 in
-    def rm_alt : SIi8<0xC2, MRMSrcMem, (outs RC:$dst),
-                      (ins RC:$src1, x86memop:$src2, u8imm:$cc), asm_alt, []>,
-                      Sched<[sched.Folded, sched.ReadAfterFold]>, NotMemoryFoldable;
-  }
 }
 
 let ExeDomain = SSEPackedSingle in
-defm VCMPSS : sse12_cmp_scalar<FR32, f32mem, AVXCC, X86cmps, f32, loadf32,
-                 "cmp${cc}ss\t{$src2, $src1, $dst|$dst, $src1, $src2}",
+defm VCMPSS : sse12_cmp_scalar<FR32, f32mem, X86cmps, f32, loadf32,
                  "cmpss\t{$cc, $src2, $src1, $dst|$dst, $src1, $src2, $cc}",
                  SchedWriteFCmpSizes.PS.Scl>, XS, VEX_4V, VEX_LIG, VEX_WIG;
 let ExeDomain = SSEPackedDouble in
-defm VCMPSD : sse12_cmp_scalar<FR64, f64mem, AVXCC, X86cmps, f64, loadf64,
-                 "cmp${cc}sd\t{$src2, $src1, $dst|$dst, $src1, $src2}",
+defm VCMPSD : sse12_cmp_scalar<FR64, f64mem, X86cmps, f64, loadf64,
                  "cmpsd\t{$cc, $src2, $src1, $dst|$dst, $src1, $src2, $cc}",
                  SchedWriteFCmpSizes.PD.Scl>,
                  XD, VEX_4V, VEX_LIG, VEX_WIG;
 
 let Constraints = "$src1 = $dst" in {
   let ExeDomain = SSEPackedSingle in
-  defm CMPSS : sse12_cmp_scalar<FR32, f32mem, SSECC, X86cmps, f32, loadf32,
-                  "cmp${cc}ss\t{$src2, $dst|$dst, $src2}",
+  defm CMPSS : sse12_cmp_scalar<FR32, f32mem, X86cmps, f32, loadf32,
                   "cmpss\t{$cc, $src2, $dst|$dst, $src2, $cc}",
                   SchedWriteFCmpSizes.PS.Scl>, XS;
   let ExeDomain = SSEPackedDouble in
-  defm CMPSD : sse12_cmp_scalar<FR64, f64mem, SSECC, X86cmps, f64, loadf64,
-                  "cmp${cc}sd\t{$src2, $dst|$dst, $src2}",
+  defm CMPSD : sse12_cmp_scalar<FR64, f64mem, X86cmps, f64, loadf64,
                   "cmpsd\t{$cc, $src2, $dst|$dst, $src2, $cc}",
                   SchedWriteFCmpSizes.PD.Scl>, XD;
 }
 
-multiclass sse12_cmp_scalar_int<Operand memop, Operand CC,
+multiclass sse12_cmp_scalar_int<Operand memop,
                          Intrinsic Int, string asm, X86FoldableSchedWrite sched,
                          ComplexPattern mem_cpat> {
   def rr_Int : SIi8<0xC2, MRMSrcReg, (outs VR128:$dst),
-                      (ins VR128:$src1, VR128:$src, CC:$cc), asm,
+                      (ins VR128:$src1, VR128:$src, u8imm:$cc), asm,
                         [(set VR128:$dst, (Int VR128:$src1,
                                                VR128:$src, imm:$cc))]>,
            Sched<[sched]>;
 let mayLoad = 1 in
   def rm_Int : SIi8<0xC2, MRMSrcMem, (outs VR128:$dst),
-                      (ins VR128:$src1, memop:$src, CC:$cc), asm,
+                      (ins VR128:$src1, memop:$src, u8imm:$cc), asm,
                         [(set VR128:$dst, (Int VR128:$src1,
                                                mem_cpat:$src, imm:$cc))]>,
            Sched<[sched.Folded, sched.ReadAfterFold]>;
@@ -1838,22 +1823,22 @@ let mayLoad = 1 in
 let isCodeGenOnly = 1 in {
   // Aliases to match intrinsics which expect XMM operand(s).
   let ExeDomain = SSEPackedSingle in
-  defm VCMPSS  : sse12_cmp_scalar_int<ssmem, AVXCC, int_x86_sse_cmp_ss,
-                       "cmp${cc}ss\t{$src, $src1, $dst|$dst, $src1, $src}",
+  defm VCMPSS  : sse12_cmp_scalar_int<ssmem, int_x86_sse_cmp_ss,
+                       "cmpss\t{$cc, $src, $src1, $dst|$dst, $src1, $src, $cc}",
                        SchedWriteFCmpSizes.PS.Scl, sse_load_f32>, XS, VEX_4V;
   let ExeDomain = SSEPackedDouble in
-  defm VCMPSD  : sse12_cmp_scalar_int<sdmem, AVXCC, int_x86_sse2_cmp_sd,
-                       "cmp${cc}sd\t{$src, $src1, $dst|$dst, $src1, $src}",
+  defm VCMPSD  : sse12_cmp_scalar_int<sdmem, int_x86_sse2_cmp_sd,
+                       "cmpsd\t{$cc, $src, $src1, $dst|$dst, $src1, $src, $cc}",
                        SchedWriteFCmpSizes.PD.Scl, sse_load_f64>,
                        XD, VEX_4V;
   let Constraints = "$src1 = $dst" in {
     let ExeDomain = SSEPackedSingle in
-    defm CMPSS  : sse12_cmp_scalar_int<ssmem, SSECC, int_x86_sse_cmp_ss,
-                         "cmp${cc}ss\t{$src, $dst|$dst, $src}",
+    defm CMPSS  : sse12_cmp_scalar_int<ssmem, int_x86_sse_cmp_ss,
+                         "cmpss\t{$cc, $src, $dst|$dst, $src, $cc}",
                          SchedWriteFCmpSizes.PS.Scl, sse_load_f32>, XS;
     let ExeDomain = SSEPackedDouble in
-    defm CMPSD  : sse12_cmp_scalar_int<sdmem, SSECC, int_x86_sse2_cmp_sd,
-                         "cmp${cc}sd\t{$src, $dst|$dst, $src}",
+    defm CMPSD  : sse12_cmp_scalar_int<sdmem, int_x86_sse2_cmp_sd,
+                         "cmpsd\t{$cc, $src, $dst|$dst, $src, $cc}",
                          SchedWriteFCmpSizes.PD.Scl, sse_load_f64>, XD;
 }
 }
@@ -1945,56 +1930,38 @@ let Defs = [EFLAGS] in {
 
 // sse12_cmp_packed - sse 1 & 2 compare packed instructions
 multiclass sse12_cmp_packed<RegisterClass RC, X86MemOperand x86memop,
-                            Operand CC,  ValueType VT, string asm,
-                            string asm_alt, X86FoldableSchedWrite sched,
+                            ValueType VT, string asm,
+                            X86FoldableSchedWrite sched,
                             Domain d, PatFrag ld_frag> {
   let isCommutable = 1 in
   def rri : PIi8<0xC2, MRMSrcReg,
-             (outs RC:$dst), (ins RC:$src1, RC:$src2, CC:$cc), asm,
+             (outs RC:$dst), (ins RC:$src1, RC:$src2, u8imm:$cc), asm,
              [(set RC:$dst, (VT (X86cmpp RC:$src1, RC:$src2, imm:$cc)))], d>,
             Sched<[sched]>;
   def rmi : PIi8<0xC2, MRMSrcMem,
-             (outs RC:$dst), (ins RC:$src1, x86memop:$src2, CC:$cc), asm,
+             (outs RC:$dst), (ins RC:$src1, x86memop:$src2, u8imm:$cc), asm,
              [(set RC:$dst,
                (VT (X86cmpp RC:$src1, (ld_frag addr:$src2), imm:$cc)))], d>,
             Sched<[sched.Folded, sched.ReadAfterFold]>;
-
-  // Accept explicit immediate argument form instead of comparison code.
-  let isAsmParserOnly = 1, hasSideEffects = 0 in {
-    def rri_alt : PIi8<0xC2, MRMSrcReg,
-               (outs RC:$dst), (ins RC:$src1, RC:$src2, u8imm:$cc),
-               asm_alt, [], d>, Sched<[sched]>, NotMemoryFoldable;
-    let mayLoad = 1 in
-    def rmi_alt : PIi8<0xC2, MRMSrcMem,
-               (outs RC:$dst), (ins RC:$src1, x86memop:$src2, u8imm:$cc),
-               asm_alt, [], d>, Sched<[sched.Folded, sched.ReadAfterFold]>,
-               NotMemoryFoldable;
-  }
 }
 
-defm VCMPPS : sse12_cmp_packed<VR128, f128mem, AVXCC, v4f32,
-               "cmp${cc}ps\t{$src2, $src1, $dst|$dst, $src1, $src2}",
+defm VCMPPS : sse12_cmp_packed<VR128, f128mem, v4f32,
                "cmpps\t{$cc, $src2, $src1, $dst|$dst, $src1, $src2, $cc}",
                SchedWriteFCmpSizes.PS.XMM, SSEPackedSingle, loadv4f32>, PS, VEX_4V, VEX_WIG;
-defm VCMPPD : sse12_cmp_packed<VR128, f128mem, AVXCC, v2f64,
-               "cmp${cc}pd\t{$src2, $src1, $dst|$dst, $src1, $src2}",
+defm VCMPPD : sse12_cmp_packed<VR128, f128mem, v2f64,
                "cmppd\t{$cc, $src2, $src1, $dst|$dst, $src1, $src2, $cc}",
                SchedWriteFCmpSizes.PD.XMM, SSEPackedDouble, loadv2f64>, PD, VEX_4V, VEX_WIG;
-defm VCMPPSY : sse12_cmp_packed<VR256, f256mem, AVXCC, v8f32,
-               "cmp${cc}ps\t{$src2, $src1, $dst|$dst, $src1, $src2}",
+defm VCMPPSY : sse12_cmp_packed<VR256, f256mem, v8f32,
                "cmpps\t{$cc, $src2, $src1, $dst|$dst, $src1, $src2, $cc}",
                SchedWriteFCmpSizes.PS.YMM, SSEPackedSingle, loadv8f32>, PS, VEX_4V, VEX_L, VEX_WIG;
-defm VCMPPDY : sse12_cmp_packed<VR256, f256mem, AVXCC, v4f64,
-               "cmp${cc}pd\t{$src2, $src1, $dst|$dst, $src1, $src2}",
+defm VCMPPDY : sse12_cmp_packed<VR256, f256mem, v4f64,
                "cmppd\t{$cc, $src2, $src1, $dst|$dst, $src1, $src2, $cc}",
                SchedWriteFCmpSizes.PD.YMM, SSEPackedDouble, loadv4f64>, PD, VEX_4V, VEX_L, VEX_WIG;
 let Constraints = "$src1 = $dst" in {
-  defm CMPPS : sse12_cmp_packed<VR128, f128mem, SSECC, v4f32,
-                 "cmp${cc}ps\t{$src2, $dst|$dst, $src2}",
+  defm CMPPS : sse12_cmp_packed<VR128, f128mem, v4f32,
                  "cmpps\t{$cc, $src2, $dst|$dst, $src2, $cc}",
                  SchedWriteFCmpSizes.PS.XMM, SSEPackedSingle, memopv4f32>, PS;
-  defm CMPPD : sse12_cmp_packed<VR128, f128mem, SSECC, v2f64,
-                 "cmp${cc}pd\t{$src2, $dst|$dst, $src2}",
+  defm CMPPD : sse12_cmp_packed<VR128, f128mem, v2f64,
                  "cmppd\t{$cc, $src2, $dst|$dst, $src2, $cc}",
                  SchedWriteFCmpSizes.PD.XMM, SSEPackedDouble, memopv2f64>, PD;
 }
index 65ebb3f660fc897b469b5f0f46683f46c6f0e152..beba7faa18299ff3eb4a07c1c672b7b9b51172ad 100644 (file)
 // CHECK: encoding: [0xc5,0xe9,0x14,0x6c,0xcb,0xfc]
           vunpcklpd  -4(%ebx,%ecx,8), %xmm2, %xmm5
 
-// CHECK: vcmpps  $0, %xmm0, %xmm6, %xmm1
+// CHECK: vcmpeqps  %xmm0, %xmm6, %xmm1
 // CHECK: encoding: [0xc5,0xc8,0xc2,0xc8,0x00]
           vcmpps  $0, %xmm0, %xmm6, %xmm1
 
-// CHECK: vcmpps  $0, (%eax), %xmm6, %xmm1
+// CHECK: vcmpeqps  (%eax), %xmm6, %xmm1
 // CHECK: encoding: [0xc5,0xc8,0xc2,0x08,0x00]
           vcmpps  $0, (%eax), %xmm6, %xmm1
 
-// CHECK: vcmpps  $7, %xmm0, %xmm6, %xmm1
+// CHECK: vcmpordps  %xmm0, %xmm6, %xmm1
 // CHECK: encoding: [0xc5,0xc8,0xc2,0xc8,0x07]
           vcmpps  $7, %xmm0, %xmm6, %xmm1
 
-// CHECK: vcmppd  $0, %xmm0, %xmm6, %xmm1
+// CHECK: vcmpeqpd  %xmm0, %xmm6, %xmm1
 // CHECK: encoding: [0xc5,0xc9,0xc2,0xc8,0x00]
           vcmppd  $0, %xmm0, %xmm6, %xmm1
 
-// CHECK: vcmppd  $0, (%eax), %xmm6, %xmm1
+// CHECK: vcmpeqpd  (%eax), %xmm6, %xmm1
 // CHECK: encoding: [0xc5,0xc9,0xc2,0x08,0x00]
           vcmppd  $0, (%eax), %xmm6, %xmm1
 
-// CHECK: vcmppd  $7, %xmm0, %xmm6, %xmm1
+// CHECK: vcmpordpd  %xmm0, %xmm6, %xmm1
 // CHECK: encoding: [0xc5,0xc9,0xc2,0xc8,0x07]
           vcmppd  $7, %xmm0, %xmm6, %xmm1
 
index 1593c26b9d029733673e337d852df8fccfe95ced..5b249a6d0252cca5b3e7d536020a08606fdbd735 100644 (file)
@@ -262,28 +262,28 @@ cmovnae   %bx,%bx
 // CHECK:  encoding: [0x0f,0x44,0xd0]
                cmovzl  %eax,%edx
 
-// CHECK: cmpps        $0, %xmm0, %xmm1
+// CHECK: cmpeqps      %xmm0, %xmm1
 // CHECK: encoding: [0x0f,0xc2,0xc8,0x00]
         cmpps $0, %xmm0, %xmm1
-// CHECK:      cmpps   $0, (%eax), %xmm1
+// CHECK:      cmpeqps (%eax), %xmm1
 // CHECK: encoding: [0x0f,0xc2,0x08,0x00]
         cmpps $0, 0(%eax), %xmm1
-// CHECK:      cmppd   $0, %xmm0, %xmm1
+// CHECK:      cmpeqpd %xmm0, %xmm1
 // CHECK: encoding: [0x66,0x0f,0xc2,0xc8,0x00]
         cmppd $0, %xmm0, %xmm1
-// CHECK:      cmppd   $0, (%eax), %xmm1
+// CHECK:      cmpeqpd (%eax), %xmm1
 // CHECK: encoding: [0x66,0x0f,0xc2,0x08,0x00]
         cmppd $0, 0(%eax), %xmm1
-// CHECK:      cmpss   $0, %xmm0, %xmm1
+// CHECK:      cmpeqss %xmm0, %xmm1
 // CHECK: encoding: [0xf3,0x0f,0xc2,0xc8,0x00]
         cmpss $0, %xmm0, %xmm1
-// CHECK:      cmpss   $0, (%eax), %xmm1
+// CHECK:      cmpeqss (%eax), %xmm1
 // CHECK: encoding: [0xf3,0x0f,0xc2,0x08,0x00]
         cmpss $0, 0(%eax), %xmm1
-// CHECK:      cmpsd   $0, %xmm0, %xmm1
+// CHECK:      cmpeqsd %xmm0, %xmm1
 // CHECK: encoding: [0xf2,0x0f,0xc2,0xc8,0x00]
         cmpsd $0, %xmm0, %xmm1
-// CHECK:      cmpsd   $0, (%eax), %xmm1
+// CHECK:      cmpeqsd (%eax), %xmm1
 // CHECK: encoding: [0xf2,0x0f,0xc2,0x08,0x00]
         cmpsd $0, 0(%eax), %xmm1
 
index 221629aa6a3d97e4f69629200c7590aa9ef3e790..ccb22c1e6fdbab3f689e949ec999c3874a1aa82b 100644 (file)
@@ -304,27 +304,27 @@ vdivpd  -4(%rcx,%rbx,8), %xmm10, %xmm11
 // CHECK: encoding: [0xc5,0x19,0x14,0x7c,0xcb,0xfc]
           vunpcklpd  -4(%rbx,%rcx,8), %xmm12, %xmm15
 
-// CHECK: vcmpps  $0, %xmm10, %xmm12, %xmm15
+// CHECK: vcmpeqps  %xmm10, %xmm12, %xmm15
 // CHECK: encoding: [0xc4,0x41,0x18,0xc2,0xfa,0x00]
           vcmpps  $0, %xmm10, %xmm12, %xmm15
 
-// CHECK: vcmpps  $0, (%rax), %xmm12, %xmm15
+// CHECK: vcmpeqps  (%rax), %xmm12, %xmm15
 // CHECK: encoding: [0xc5,0x18,0xc2,0x38,0x00]
           vcmpps  $0, (%rax), %xmm12, %xmm15
 
-// CHECK: vcmpps  $7, %xmm10, %xmm12, %xmm15
+// CHECK: vcmpordps  %xmm10, %xmm12, %xmm15
 // CHECK: encoding: [0xc4,0x41,0x18,0xc2,0xfa,0x07]
           vcmpps  $7, %xmm10, %xmm12, %xmm15
 
-// CHECK: vcmppd  $0, %xmm10, %xmm12, %xmm15
+// CHECK: vcmpeqpd  %xmm10, %xmm12, %xmm15
 // CHECK: encoding: [0xc4,0x41,0x19,0xc2,0xfa,0x00]
           vcmppd  $0, %xmm10, %xmm12, %xmm15
 
-// CHECK: vcmppd  $0, (%rax), %xmm12, %xmm15
+// CHECK: vcmpeqpd  (%rax), %xmm12, %xmm15
 // CHECK: encoding: [0xc5,0x19,0xc2,0x38,0x00]
           vcmppd  $0, (%rax), %xmm12, %xmm15
 
-// CHECK: vcmppd  $7, %xmm10, %xmm12, %xmm15
+// CHECK: vcmpordpd  %xmm10, %xmm12, %xmm15
 // CHECK: encoding: [0xc4,0x41,0x19,0xc2,0xfa,0x07]
           vcmppd  $7, %xmm10, %xmm12, %xmm15
 
index b9ec7c9cbe8a69a84189be9644a12f1dbb4b059a..7dfb0103b40b62811759c1912069b2161b4d8e01 100644 (file)
@@ -202,10 +202,10 @@ xorps       (%rax), %xmm2
 # CHECK-NEXT:  1      1     1.00    *                   andnps (%rax), %xmm2
 # CHECK-NEXT:  1      1     0.50                        andps  %xmm0, %xmm2
 # CHECK-NEXT:  1      1     1.00    *                   andps  (%rax), %xmm2
-# CHECK-NEXT:  1      5     5.00                        cmpps  $0, %xmm0, %xmm2
-# CHECK-NEXT:  1      5     5.00    *                   cmpps  $0, (%rax), %xmm2
-# CHECK-NEXT:  1      5     5.00                        cmpss  $0, %xmm0, %xmm2
-# CHECK-NEXT:  1      5     5.00    *                   cmpss  $0, (%rax), %xmm2
+# CHECK-NEXT:  1      5     5.00                        cmpeqps        %xmm0, %xmm2
+# CHECK-NEXT:  1      5     5.00    *                   cmpeqps        (%rax), %xmm2
+# CHECK-NEXT:  1      5     5.00                        cmpeqss        %xmm0, %xmm2
+# CHECK-NEXT:  1      5     5.00    *                   cmpeqss        (%rax), %xmm2
 # CHECK-NEXT:  1      9     4.50                        comiss %xmm0, %xmm1
 # CHECK-NEXT:  1      10    5.00    *                   comiss (%rax), %xmm1
 # CHECK-NEXT:  1      5     5.00                        cvtpi2ps       %mm0, %xmm2
@@ -337,10 +337,10 @@ xorps       (%rax), %xmm2
 # CHECK-NEXT: 1.00    -     andnps     (%rax), %xmm2
 # CHECK-NEXT: 0.50   0.50   andps      %xmm0, %xmm2
 # CHECK-NEXT: 1.00    -     andps      (%rax), %xmm2
-# CHECK-NEXT: 5.00    -     cmpps      $0, %xmm0, %xmm2
-# CHECK-NEXT: 5.00    -     cmpps      $0, (%rax), %xmm2
-# CHECK-NEXT: 5.00    -     cmpss      $0, %xmm0, %xmm2
-# CHECK-NEXT: 5.00    -     cmpss      $0, (%rax), %xmm2
+# CHECK-NEXT: 5.00    -     cmpeqps    %xmm0, %xmm2
+# CHECK-NEXT: 5.00    -     cmpeqps    (%rax), %xmm2
+# CHECK-NEXT: 5.00    -     cmpeqss    %xmm0, %xmm2
+# CHECK-NEXT: 5.00    -     cmpeqss    (%rax), %xmm2
 # CHECK-NEXT: 4.50   4.50   comiss     %xmm0, %xmm1
 # CHECK-NEXT: 5.00   5.00   comiss     (%rax), %xmm1
 # CHECK-NEXT:  -     5.00   cvtpi2ps   %mm0, %xmm2
index 3f65619e0f59f404e48f0be7c49c1c15915b1284..b46c33c08097e8d1fbd859f33a2c965ab0200735 100644 (file)
@@ -416,10 +416,10 @@ xorpd       (%rax), %xmm2
 # CHECK-NEXT:  1      1     0.50                        andpd  %xmm0, %xmm2
 # CHECK-NEXT:  1      1     1.00    *                   andpd  (%rax), %xmm2
 # CHECK-NEXT:  1      1     1.00    *      *      U     clflush        (%rax)
-# CHECK-NEXT:  1      6     3.00                        cmppd  $0, %xmm0, %xmm2
-# CHECK-NEXT:  1      7     3.50    *                   cmppd  $0, (%rax), %xmm2
-# CHECK-NEXT:  1      5     5.00                        cmpsd  $0, %xmm0, %xmm2
-# CHECK-NEXT:  1      5     5.00    *                   cmpsd  $0, (%rax), %xmm2
+# CHECK-NEXT:  1      6     3.00                        cmpeqpd        %xmm0, %xmm2
+# CHECK-NEXT:  1      7     3.50    *                   cmpeqpd        (%rax), %xmm2
+# CHECK-NEXT:  1      5     5.00                        cmpeqsd        %xmm0, %xmm2
+# CHECK-NEXT:  1      5     5.00    *                   cmpeqsd        (%rax), %xmm2
 # CHECK-NEXT:  1      9     4.50                        comisd %xmm0, %xmm1
 # CHECK-NEXT:  1      10    5.00    *                   comisd (%rax), %xmm1
 # CHECK-NEXT:  1      7     3.50                        cvtdq2pd       %xmm0, %xmm2
@@ -694,10 +694,10 @@ xorpd       (%rax), %xmm2
 # CHECK-NEXT: 0.50   0.50   andpd      %xmm0, %xmm2
 # CHECK-NEXT: 1.00    -     andpd      (%rax), %xmm2
 # CHECK-NEXT: 1.00    -     clflush    (%rax)
-# CHECK-NEXT: 3.00   3.00   cmppd      $0, %xmm0, %xmm2
-# CHECK-NEXT: 3.50   3.50   cmppd      $0, (%rax), %xmm2
-# CHECK-NEXT: 5.00    -     cmpsd      $0, %xmm0, %xmm2
-# CHECK-NEXT: 5.00    -     cmpsd      $0, (%rax), %xmm2
+# CHECK-NEXT: 3.00   3.00   cmpeqpd    %xmm0, %xmm2
+# CHECK-NEXT: 3.50   3.50   cmpeqpd    (%rax), %xmm2
+# CHECK-NEXT: 5.00    -     cmpeqsd    %xmm0, %xmm2
+# CHECK-NEXT: 5.00    -     cmpeqsd    (%rax), %xmm2
 # CHECK-NEXT: 4.50   4.50   comisd     %xmm0, %xmm1
 # CHECK-NEXT: 5.00   5.00   comisd     (%rax), %xmm1
 # CHECK-NEXT: 3.50   3.50   cvtdq2pd   %xmm0, %xmm2
index 5235eab449ca06d1a4cd6adc3b0d0f8e3157c7c6..917ceff1b6c9df6b91ab1db618d1426b6adca36c 100644 (file)
@@ -1098,18 +1098,18 @@ vzeroupper
 # CHECK-NEXT:  2      6     2.00    *                   vbroadcastsd   (%rax), %ymm2
 # CHECK-NEXT:  1      7     0.50    *                   vbroadcastss   (%rax), %xmm2
 # CHECK-NEXT:  2      6     2.00    *                   vbroadcastss   (%rax), %ymm2
-# CHECK-NEXT:  1      2     1.00                        vcmppd $0, %xmm0, %xmm1, %xmm2
-# CHECK-NEXT:  1      7     1.00    *                   vcmppd $0, (%rax), %xmm1, %xmm2
-# CHECK-NEXT:  2      2     2.00                        vcmppd $0, %ymm0, %ymm1, %ymm2
-# CHECK-NEXT:  2      7     2.00    *                   vcmppd $0, (%rax), %ymm1, %ymm2
-# CHECK-NEXT:  1      2     1.00                        vcmpps $0, %xmm0, %xmm1, %xmm2
-# CHECK-NEXT:  1      7     1.00    *                   vcmpps $0, (%rax), %xmm1, %xmm2
-# CHECK-NEXT:  2      2     2.00                        vcmpps $0, %ymm0, %ymm1, %ymm2
-# CHECK-NEXT:  2      7     2.00    *                   vcmpps $0, (%rax), %ymm1, %ymm2
-# CHECK-NEXT:  1      2     1.00                        vcmpsd $0, %xmm0, %xmm1, %xmm2
-# CHECK-NEXT:  1      7     1.00    *                   vcmpsd $0, (%rax), %xmm1, %xmm2
-# CHECK-NEXT:  1      2     1.00                        vcmpss $0, %xmm0, %xmm1, %xmm2
-# CHECK-NEXT:  1      7     1.00    *                   vcmpss $0, (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      2     1.00                        vcmpeqpd       %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  1      7     1.00    *                   vcmpeqpd       (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  2      2     2.00                        vcmpeqpd       %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  2      7     2.00    *                   vcmpeqpd       (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  1      2     1.00                        vcmpeqps       %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  1      7     1.00    *                   vcmpeqps       (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  2      2     2.00                        vcmpeqps       %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  2      7     2.00    *                   vcmpeqps       (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  1      2     1.00                        vcmpeqsd       %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  1      7     1.00    *                   vcmpeqsd       (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      2     1.00                        vcmpeqss       %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  1      7     1.00    *                   vcmpeqss       (%rax), %xmm1, %xmm2
 # CHECK-NEXT:  2      1     1.00                        vcomisd        %xmm0, %xmm1
 # CHECK-NEXT:  2      6     1.00    *                   vcomisd        (%rax), %xmm1
 # CHECK-NEXT:  2      1     1.00                        vcomiss        %xmm0, %xmm1
@@ -1821,18 +1821,18 @@ vzeroupper
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -     2.00   2.00    -      -      -      -     1.00   1.00    -      -      -     0.50   0.50    -      -     vbroadcastsd    (%rax), %ymm2
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -     0.50   0.50    -      -      -      -     0.50   0.50    -      -      -     0.50   0.50    -      -     vbroadcastss    (%rax), %xmm2
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -     2.00   2.00    -      -      -      -     1.00   1.00    -      -      -     0.50   0.50    -      -     vbroadcastss    (%rax), %ymm2
-# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -     1.00    -      -      -      -      -      -      -      -     vcmppd  $0, %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -     0.50   0.50    -      -      -      -     1.00    -      -      -      -     0.50   0.50    -      -     vcmppd  $0, (%rax), %xmm1, %xmm2
-# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -     2.00    -      -      -      -      -      -      -      -     vcmppd  $0, %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 1.00   1.00    -      -      -      -      -      -     0.50   0.50    -      -      -      -     2.00    -      -      -      -     1.00   1.00    -      -     vcmppd  $0, (%rax), %ymm1, %ymm2
-# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -     1.00    -      -      -      -      -      -      -      -     vcmpps  $0, %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -     0.50   0.50    -      -      -      -     1.00    -      -      -      -     0.50   0.50    -      -     vcmpps  $0, (%rax), %xmm1, %xmm2
-# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -     2.00    -      -      -      -      -      -      -      -     vcmpps  $0, %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 1.00   1.00    -      -      -      -      -      -     0.50   0.50    -      -      -      -     2.00    -      -      -      -     1.00   1.00    -      -     vcmpps  $0, (%rax), %ymm1, %ymm2
-# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -     1.00    -      -      -      -      -      -      -      -     vcmpsd  $0, %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -     0.50   0.50    -      -      -      -     1.00    -      -      -      -     0.50   0.50    -      -     vcmpsd  $0, (%rax), %xmm1, %xmm2
-# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -     1.00    -      -      -      -      -      -      -      -     vcmpss  $0, %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -     0.50   0.50    -      -      -      -     1.00    -      -      -      -     0.50   0.50    -      -     vcmpss  $0, (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -     1.00    -      -      -      -      -      -      -      -     vcmpeqpd        %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -     0.50   0.50    -      -      -      -     1.00    -      -      -      -     0.50   0.50    -      -     vcmpeqpd        (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -     2.00    -      -      -      -      -      -      -      -     vcmpeqpd        %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 1.00   1.00    -      -      -      -      -      -     0.50   0.50    -      -      -      -     2.00    -      -      -      -     1.00   1.00    -      -     vcmpeqpd        (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -     1.00    -      -      -      -      -      -      -      -     vcmpeqps        %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -     0.50   0.50    -      -      -      -     1.00    -      -      -      -     0.50   0.50    -      -     vcmpeqps        (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -     2.00    -      -      -      -      -      -      -      -     vcmpeqps        %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 1.00   1.00    -      -      -      -      -      -     0.50   0.50    -      -      -      -     2.00    -      -      -      -     1.00   1.00    -      -     vcmpeqps        (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -     1.00    -      -      -      -      -      -      -      -     vcmpeqsd        %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -     0.50   0.50    -      -      -      -     1.00    -      -      -      -     0.50   0.50    -      -     vcmpeqsd        (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -     1.00    -      -      -      -      -      -      -      -     vcmpeqss        %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -     0.50   0.50    -      -      -      -     1.00    -      -      -      -     0.50   0.50    -      -     vcmpeqss        (%rax), %xmm1, %xmm2
 # CHECK-NEXT:  -      -      -      -      -     1.00    -      -     0.50   0.50    -      -      -      -     1.00    -      -      -      -      -      -      -      -     vcomisd %xmm0, %xmm1
 # CHECK-NEXT: 0.50   0.50    -      -      -     1.00    -      -     0.50   0.50    -      -      -      -     1.00    -      -      -      -     0.50   0.50    -      -     vcomisd (%rax), %xmm1
 # CHECK-NEXT:  -      -      -      -      -     1.00    -      -     0.50   0.50    -      -      -      -     1.00    -      -      -      -      -      -      -      -     vcomiss %xmm0, %xmm1
index 8916504b18ea9bc015e9fb5402cb256b5b9b7d88..4bfb1cc7057335300b1d3645b5360d887bf0a6a0 100644 (file)
@@ -202,10 +202,10 @@ xorps       (%rax), %xmm2
 # CHECK-NEXT:  1      7     0.50    *                   andnps (%rax), %xmm2
 # CHECK-NEXT:  1      2     0.50                        andps  %xmm0, %xmm2
 # CHECK-NEXT:  1      7     0.50    *                   andps  (%rax), %xmm2
-# CHECK-NEXT:  1      2     1.00                        cmpps  $0, %xmm0, %xmm2
-# CHECK-NEXT:  1      7     1.00    *                   cmpps  $0, (%rax), %xmm2
-# CHECK-NEXT:  1      2     1.00                        cmpss  $0, %xmm0, %xmm2
-# CHECK-NEXT:  1      7     1.00    *                   cmpss  $0, (%rax), %xmm2
+# CHECK-NEXT:  1      2     1.00                        cmpeqps        %xmm0, %xmm2
+# CHECK-NEXT:  1      7     1.00    *                   cmpeqps        (%rax), %xmm2
+# CHECK-NEXT:  1      2     1.00                        cmpeqss        %xmm0, %xmm2
+# CHECK-NEXT:  1      7     1.00    *                   cmpeqss        (%rax), %xmm2
 # CHECK-NEXT:  2      1     1.00                        comiss %xmm0, %xmm1
 # CHECK-NEXT:  2      6     1.00    *                   comiss (%rax), %xmm1
 # CHECK-NEXT:  2      4     1.00                        cvtpi2ps       %mm0, %xmm2
@@ -358,10 +358,10 @@ xorps       (%rax), %xmm2
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -     0.50   0.50    -      -      -      -     0.50   0.50    -      -      -     0.50   0.50    -      -     andnps  (%rax), %xmm2
 # CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -     0.50   0.50    -      -      -      -      -      -      -     andps   %xmm0, %xmm2
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -     0.50   0.50    -      -      -      -     0.50   0.50    -      -      -     0.50   0.50    -      -     andps   (%rax), %xmm2
-# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -     1.00    -      -      -      -      -      -      -      -     cmpps   $0, %xmm0, %xmm2
-# CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -     0.50   0.50    -      -      -      -     1.00    -      -      -      -     0.50   0.50    -      -     cmpps   $0, (%rax), %xmm2
-# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -     1.00    -      -      -      -      -      -      -      -     cmpss   $0, %xmm0, %xmm2
-# CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -     0.50   0.50    -      -      -      -     1.00    -      -      -      -     0.50   0.50    -      -     cmpss   $0, (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -     1.00    -      -      -      -      -      -      -      -     cmpeqps %xmm0, %xmm2
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -     0.50   0.50    -      -      -      -     1.00    -      -      -      -     0.50   0.50    -      -     cmpeqps (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -     1.00    -      -      -      -      -      -      -      -     cmpeqss %xmm0, %xmm2
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -     0.50   0.50    -      -      -      -     1.00    -      -      -      -     0.50   0.50    -      -     cmpeqss (%rax), %xmm2
 # CHECK-NEXT:  -      -      -      -      -     1.00    -      -     0.50   0.50    -      -      -      -     1.00    -      -      -      -      -      -      -      -     comiss  %xmm0, %xmm1
 # CHECK-NEXT: 0.50   0.50    -      -      -     1.00    -      -     0.50   0.50    -      -      -      -     1.00    -      -      -      -     0.50   0.50    -      -     comiss  (%rax), %xmm1
 # CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -     1.00    -     1.00    -      -      -      -      -      -      -     cvtpi2ps        %mm0, %xmm2
index 093a6be03592c13c173ffa51cd89c59b109d0c2f..34bea00ff07ef3caacd267eccee8ab033da94b24 100644 (file)
@@ -416,10 +416,10 @@ xorpd       (%rax), %xmm2
 # CHECK-NEXT:  1      2     0.50                        andpd  %xmm0, %xmm2
 # CHECK-NEXT:  1      7     0.50    *                   andpd  (%rax), %xmm2
 # CHECK-NEXT:  1      5     0.50    *      *      U     clflush        (%rax)
-# CHECK-NEXT:  1      2     1.00                        cmppd  $0, %xmm0, %xmm2
-# CHECK-NEXT:  1      7     1.00    *                   cmppd  $0, (%rax), %xmm2
-# CHECK-NEXT:  1      2     1.00                        cmpsd  $0, %xmm0, %xmm2
-# CHECK-NEXT:  1      7     1.00    *                   cmpsd  $0, (%rax), %xmm2
+# CHECK-NEXT:  1      2     1.00                        cmpeqpd        %xmm0, %xmm2
+# CHECK-NEXT:  1      7     1.00    *                   cmpeqpd        (%rax), %xmm2
+# CHECK-NEXT:  1      2     1.00                        cmpeqsd        %xmm0, %xmm2
+# CHECK-NEXT:  1      7     1.00    *                   cmpeqsd        (%rax), %xmm2
 # CHECK-NEXT:  2      1     1.00                        comisd %xmm0, %xmm1
 # CHECK-NEXT:  2      6     1.00    *                   comisd (%rax), %xmm1
 # CHECK-NEXT:  2      8     1.00                        cvtdq2pd       %xmm0, %xmm2
@@ -715,10 +715,10 @@ xorpd       (%rax), %xmm2
 # CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -     0.50   0.50    -      -      -      -      -      -      -     andpd   %xmm0, %xmm2
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -     0.50   0.50    -      -      -      -     0.50   0.50    -      -      -     0.50   0.50    -      -     andpd   (%rax), %xmm2
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -     clflush (%rax)
-# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -     1.00    -      -      -      -      -      -      -      -     cmppd   $0, %xmm0, %xmm2
-# CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -     0.50   0.50    -      -      -      -     1.00    -      -      -      -     0.50   0.50    -      -     cmppd   $0, (%rax), %xmm2
-# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -     1.00    -      -      -      -      -      -      -      -     cmpsd   $0, %xmm0, %xmm2
-# CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -     0.50   0.50    -      -      -      -     1.00    -      -      -      -     0.50   0.50    -      -     cmpsd   $0, (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -     1.00    -      -      -      -      -      -      -      -     cmpeqpd %xmm0, %xmm2
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -     0.50   0.50    -      -      -      -     1.00    -      -      -      -     0.50   0.50    -      -     cmpeqpd (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -     1.00    -      -      -      -      -      -      -      -     cmpeqsd %xmm0, %xmm2
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -     0.50   0.50    -      -      -      -     1.00    -      -      -      -     0.50   0.50    -      -     cmpeqsd (%rax), %xmm2
 # CHECK-NEXT:  -      -      -      -      -     1.00    -      -     0.50   0.50    -      -      -      -     1.00    -      -      -      -      -      -      -      -     comisd  %xmm0, %xmm1
 # CHECK-NEXT: 0.50   0.50    -      -      -     1.00    -      -     0.50   0.50    -      -      -      -     1.00    -      -      -      -     0.50   0.50    -      -     comisd  (%rax), %xmm1
 # CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -     1.00    -     1.00    -      -      -      -      -      -      -     cvtdq2pd        %xmm0, %xmm2
index 3cd20c3b2b9b009aaf0e9a72bd52af7c951f25c8..8dc10ba72f7f16fc9c4998f777770ea8e891cc0a 100644 (file)
@@ -1098,18 +1098,18 @@ vzeroupper
 # CHECK-NEXT:  1      6     0.50    *                   vbroadcastsd   (%rax), %ymm2
 # CHECK-NEXT:  1      5     0.50    *                   vbroadcastss   (%rax), %xmm2
 # CHECK-NEXT:  1      6     0.50    *                   vbroadcastss   (%rax), %ymm2
-# CHECK-NEXT:  1      3     1.00                        vcmppd $0, %xmm0, %xmm1, %xmm2
-# CHECK-NEXT:  2      8     1.00    *                   vcmppd $0, (%rax), %xmm1, %xmm2
-# CHECK-NEXT:  1      3     1.00                        vcmppd $0, %ymm0, %ymm1, %ymm2
-# CHECK-NEXT:  2      9     1.00    *                   vcmppd $0, (%rax), %ymm1, %ymm2
-# CHECK-NEXT:  1      3     1.00                        vcmpps $0, %xmm0, %xmm1, %xmm2
-# CHECK-NEXT:  2      8     1.00    *                   vcmpps $0, (%rax), %xmm1, %xmm2
-# CHECK-NEXT:  1      3     1.00                        vcmpps $0, %ymm0, %ymm1, %ymm2
-# CHECK-NEXT:  2      9     1.00    *                   vcmpps $0, (%rax), %ymm1, %ymm2
-# CHECK-NEXT:  1      3     1.00                        vcmpsd $0, %xmm0, %xmm1, %xmm2
-# CHECK-NEXT:  2      8     1.00    *                   vcmpsd $0, (%rax), %xmm1, %xmm2
-# CHECK-NEXT:  1      3     1.00                        vcmpss $0, %xmm0, %xmm1, %xmm2
-# CHECK-NEXT:  2      8     1.00    *                   vcmpss $0, (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      3     1.00                        vcmpeqpd       %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  2      8     1.00    *                   vcmpeqpd       (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      3     1.00                        vcmpeqpd       %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  2      9     1.00    *                   vcmpeqpd       (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  1      3     1.00                        vcmpeqps       %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  2      8     1.00    *                   vcmpeqps       (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      3     1.00                        vcmpeqps       %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  2      9     1.00    *                   vcmpeqps       (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  1      3     1.00                        vcmpeqsd       %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  2      8     1.00    *                   vcmpeqsd       (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      3     1.00                        vcmpeqss       %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  2      8     1.00    *                   vcmpeqss       (%rax), %xmm1, %xmm2
 # CHECK-NEXT:  1      3     1.00                        vcomisd        %xmm0, %xmm1
 # CHECK-NEXT:  2      8     1.00    *                   vcomisd        (%rax), %xmm1
 # CHECK-NEXT:  1      3     1.00                        vcomiss        %xmm0, %xmm1
@@ -1808,18 +1808,18 @@ vzeroupper
 # CHECK-NEXT:  -      -      -      -     0.50   0.50    -      -      -      -     vbroadcastsd       (%rax), %ymm2
 # CHECK-NEXT:  -      -      -      -     0.50   0.50    -      -      -      -     vbroadcastss       (%rax), %xmm2
 # CHECK-NEXT:  -      -      -      -     0.50   0.50    -      -      -      -     vbroadcastss       (%rax), %ymm2
-# CHECK-NEXT:  -      -      -     1.00    -      -      -      -      -      -     vcmppd     $0, %xmm0, %xmm1, %xmm2
-# CHECK-NEXT:  -      -      -     1.00   0.50   0.50    -      -      -      -     vcmppd     $0, (%rax), %xmm1, %xmm2
-# CHECK-NEXT:  -      -      -     1.00    -      -      -      -      -      -     vcmppd     $0, %ymm0, %ymm1, %ymm2
-# CHECK-NEXT:  -      -      -     1.00   0.50   0.50    -      -      -      -     vcmppd     $0, (%rax), %ymm1, %ymm2
-# CHECK-NEXT:  -      -      -     1.00    -      -      -      -      -      -     vcmpps     $0, %xmm0, %xmm1, %xmm2
-# CHECK-NEXT:  -      -      -     1.00   0.50   0.50    -      -      -      -     vcmpps     $0, (%rax), %xmm1, %xmm2
-# CHECK-NEXT:  -      -      -     1.00    -      -      -      -      -      -     vcmpps     $0, %ymm0, %ymm1, %ymm2
-# CHECK-NEXT:  -      -      -     1.00   0.50   0.50    -      -      -      -     vcmpps     $0, (%rax), %ymm1, %ymm2
-# CHECK-NEXT:  -      -      -     1.00    -      -      -      -      -      -     vcmpsd     $0, %xmm0, %xmm1, %xmm2
-# CHECK-NEXT:  -      -      -     1.00   0.50   0.50    -      -      -      -     vcmpsd     $0, (%rax), %xmm1, %xmm2
-# CHECK-NEXT:  -      -      -     1.00    -      -      -      -      -      -     vcmpss     $0, %xmm0, %xmm1, %xmm2
-# CHECK-NEXT:  -      -      -     1.00   0.50   0.50    -      -      -      -     vcmpss     $0, (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -     1.00    -      -      -      -      -      -     vcmpeqpd   %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -     1.00   0.50   0.50    -      -      -      -     vcmpeqpd   (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -     1.00    -      -      -      -      -      -     vcmpeqpd   %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -     1.00   0.50   0.50    -      -      -      -     vcmpeqpd   (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -     1.00    -      -      -      -      -      -     vcmpeqps   %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -     1.00   0.50   0.50    -      -      -      -     vcmpeqps   (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -     1.00    -      -      -      -      -      -     vcmpeqps   %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -     1.00   0.50   0.50    -      -      -      -     vcmpeqps   (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -     1.00    -      -      -      -      -      -     vcmpeqsd   %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -     1.00   0.50   0.50    -      -      -      -     vcmpeqsd   (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -     1.00    -      -      -      -      -      -     vcmpeqss   %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -     1.00   0.50   0.50    -      -      -      -     vcmpeqss   (%rax), %xmm1, %xmm2
 # CHECK-NEXT:  -      -      -     1.00    -      -      -      -      -      -     vcomisd    %xmm0, %xmm1
 # CHECK-NEXT:  -      -      -     1.00   0.50   0.50    -      -      -      -     vcomisd    (%rax), %xmm1
 # CHECK-NEXT:  -      -      -     1.00    -      -      -      -      -      -     vcomiss    %xmm0, %xmm1
index c0700d19d01f00a1af0106780004538a666df234..a886333e79f9cae6be41105e23d2c5f63a3ac815 100644 (file)
@@ -202,10 +202,10 @@ xorps       (%rax), %xmm2
 # CHECK-NEXT:  2      6     1.00    *                   andnps (%rax), %xmm2
 # CHECK-NEXT:  1      1     1.00                        andps  %xmm0, %xmm2
 # CHECK-NEXT:  2      6     1.00    *                   andps  (%rax), %xmm2
-# CHECK-NEXT:  1      3     1.00                        cmpps  $0, %xmm0, %xmm2
-# CHECK-NEXT:  2      8     1.00    *                   cmpps  $0, (%rax), %xmm2
-# CHECK-NEXT:  1      3     1.00                        cmpss  $0, %xmm0, %xmm2
-# CHECK-NEXT:  2      8     1.00    *                   cmpss  $0, (%rax), %xmm2
+# CHECK-NEXT:  1      3     1.00                        cmpeqps        %xmm0, %xmm2
+# CHECK-NEXT:  2      8     1.00    *                   cmpeqps        (%rax), %xmm2
+# CHECK-NEXT:  1      3     1.00                        cmpeqss        %xmm0, %xmm2
+# CHECK-NEXT:  2      8     1.00    *                   cmpeqss        (%rax), %xmm2
 # CHECK-NEXT:  1      3     1.00                        comiss %xmm0, %xmm1
 # CHECK-NEXT:  2      8     1.00    *                   comiss (%rax), %xmm1
 # CHECK-NEXT:  1      3     1.00                        cvtpi2ps       %mm0, %xmm2
@@ -345,10 +345,10 @@ xorps       (%rax), %xmm2
 # CHECK-NEXT:  -      -      -      -     0.50   0.50    -     1.00    -      -     andnps     (%rax), %xmm2
 # CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -     andps      %xmm0, %xmm2
 # CHECK-NEXT:  -      -      -      -     0.50   0.50    -     1.00    -      -     andps      (%rax), %xmm2
-# CHECK-NEXT:  -      -      -     1.00    -      -      -      -      -      -     cmpps      $0, %xmm0, %xmm2
-# CHECK-NEXT:  -      -      -     1.00   0.50   0.50    -      -      -      -     cmpps      $0, (%rax), %xmm2
-# CHECK-NEXT:  -      -      -     1.00    -      -      -      -      -      -     cmpss      $0, %xmm0, %xmm2
-# CHECK-NEXT:  -      -      -     1.00   0.50   0.50    -      -      -      -     cmpss      $0, (%rax), %xmm2
+# CHECK-NEXT:  -      -      -     1.00    -      -      -      -      -      -     cmpeqps    %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -     1.00   0.50   0.50    -      -      -      -     cmpeqps    (%rax), %xmm2
+# CHECK-NEXT:  -      -      -     1.00    -      -      -      -      -      -     cmpeqss    %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -     1.00   0.50   0.50    -      -      -      -     cmpeqss    (%rax), %xmm2
 # CHECK-NEXT:  -      -      -     1.00    -      -      -      -      -      -     comiss     %xmm0, %xmm1
 # CHECK-NEXT:  -      -      -     1.00   0.50   0.50    -      -      -      -     comiss     (%rax), %xmm1
 # CHECK-NEXT:  -      -      -     1.00    -      -      -      -      -      -     cvtpi2ps   %mm0, %xmm2
index e4b2d680d0452fcc9d4bae267f6435173b9171d8..ed5335695972515ff0d59ebf328dc84fd79cb599 100644 (file)
@@ -416,10 +416,10 @@ xorpd       (%rax), %xmm2
 # CHECK-NEXT:  1      1     1.00                        andpd  %xmm0, %xmm2
 # CHECK-NEXT:  2      6     1.00    *                   andpd  (%rax), %xmm2
 # CHECK-NEXT:  2      2     1.00    *      *      U     clflush        (%rax)
-# CHECK-NEXT:  1      3     1.00                        cmppd  $0, %xmm0, %xmm2
-# CHECK-NEXT:  2      8     1.00    *                   cmppd  $0, (%rax), %xmm2
-# CHECK-NEXT:  1      3     1.00                        cmpsd  $0, %xmm0, %xmm2
-# CHECK-NEXT:  2      8     1.00    *                   cmpsd  $0, (%rax), %xmm2
+# CHECK-NEXT:  1      3     1.00                        cmpeqpd        %xmm0, %xmm2
+# CHECK-NEXT:  2      8     1.00    *                   cmpeqpd        (%rax), %xmm2
+# CHECK-NEXT:  1      3     1.00                        cmpeqsd        %xmm0, %xmm2
+# CHECK-NEXT:  2      8     1.00    *                   cmpeqsd        (%rax), %xmm2
 # CHECK-NEXT:  1      3     1.00                        comisd %xmm0, %xmm1
 # CHECK-NEXT:  2      8     1.00    *                   comisd (%rax), %xmm1
 # CHECK-NEXT:  2      4     1.00                        cvtdq2pd       %xmm0, %xmm2
@@ -702,10 +702,10 @@ xorpd       (%rax), %xmm2
 # CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -     andpd      %xmm0, %xmm2
 # CHECK-NEXT:  -      -      -      -     0.50   0.50    -     1.00    -      -     andpd      (%rax), %xmm2
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   1.25    -     clflush    (%rax)
-# CHECK-NEXT:  -      -      -     1.00    -      -      -      -      -      -     cmppd      $0, %xmm0, %xmm2
-# CHECK-NEXT:  -      -      -     1.00   0.50   0.50    -      -      -      -     cmppd      $0, (%rax), %xmm2
-# CHECK-NEXT:  -      -      -     1.00    -      -      -      -      -      -     cmpsd      $0, %xmm0, %xmm2
-# CHECK-NEXT:  -      -      -     1.00   0.50   0.50    -      -      -      -     cmpsd      $0, (%rax), %xmm2
+# CHECK-NEXT:  -      -      -     1.00    -      -      -      -      -      -     cmpeqpd    %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -     1.00   0.50   0.50    -      -      -      -     cmpeqpd    (%rax), %xmm2
+# CHECK-NEXT:  -      -      -     1.00    -      -      -      -      -      -     cmpeqsd    %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -     1.00   0.50   0.50    -      -      -      -     cmpeqsd    (%rax), %xmm2
 # CHECK-NEXT:  -      -      -     1.00    -      -      -      -      -      -     comisd     %xmm0, %xmm1
 # CHECK-NEXT:  -      -      -     1.00   0.50   0.50    -      -      -      -     comisd     (%rax), %xmm1
 # CHECK-NEXT:  -      -      -     1.00    -      -      -     1.00    -      -     cvtdq2pd   %xmm0, %xmm2
index 959d2eac3ba72407b87eb0e816ad4fe763294bba..f0dfa6b1d00eb83fcd62454ef7bce677a027ae1a 100644 (file)
@@ -1098,18 +1098,18 @@ vzeroupper
 # CHECK-NEXT:  2      6     2.00    *                   vbroadcastsd   (%rax), %ymm2
 # CHECK-NEXT:  1      6     1.00    *                   vbroadcastss   (%rax), %xmm2
 # CHECK-NEXT:  2      6     2.00    *                   vbroadcastss   (%rax), %ymm2
-# CHECK-NEXT:  1      2     1.00                        vcmppd $0, %xmm0, %xmm1, %xmm2
-# CHECK-NEXT:  1      7     1.00    *                   vcmppd $0, (%rax), %xmm1, %xmm2
-# CHECK-NEXT:  2      2     2.00                        vcmppd $0, %ymm0, %ymm1, %ymm2
-# CHECK-NEXT:  2      7     2.00    *                   vcmppd $0, (%rax), %ymm1, %ymm2
-# CHECK-NEXT:  1      2     1.00                        vcmpps $0, %xmm0, %xmm1, %xmm2
-# CHECK-NEXT:  1      7     1.00    *                   vcmpps $0, (%rax), %xmm1, %xmm2
-# CHECK-NEXT:  2      2     2.00                        vcmpps $0, %ymm0, %ymm1, %ymm2
-# CHECK-NEXT:  2      7     2.00    *                   vcmpps $0, (%rax), %ymm1, %ymm2
-# CHECK-NEXT:  1      2     1.00                        vcmpsd $0, %xmm0, %xmm1, %xmm2
-# CHECK-NEXT:  1      7     1.00    *                   vcmpsd $0, (%rax), %xmm1, %xmm2
-# CHECK-NEXT:  1      2     1.00                        vcmpss $0, %xmm0, %xmm1, %xmm2
-# CHECK-NEXT:  1      7     1.00    *                   vcmpss $0, (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      2     1.00                        vcmpeqpd       %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  1      7     1.00    *                   vcmpeqpd       (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  2      2     2.00                        vcmpeqpd       %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  2      7     2.00    *                   vcmpeqpd       (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  1      2     1.00                        vcmpeqps       %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  1      7     1.00    *                   vcmpeqps       (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  2      2     2.00                        vcmpeqps       %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  2      7     2.00    *                   vcmpeqps       (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  1      2     1.00                        vcmpeqsd       %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  1      7     1.00    *                   vcmpeqsd       (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      2     1.00                        vcmpeqss       %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  1      7     1.00    *                   vcmpeqss       (%rax), %xmm1, %xmm2
 # CHECK-NEXT:  1      3     1.00                        vcomisd        %xmm0, %xmm1
 # CHECK-NEXT:  1      8     1.00    *                   vcomisd        (%rax), %xmm1
 # CHECK-NEXT:  1      3     1.00                        vcomiss        %xmm0, %xmm1
@@ -1812,18 +1812,18 @@ vzeroupper
 # CHECK-NEXT:  -      -      -     2.00   2.00   1.00   1.00   1.00    -      -      -      -      -      -     vbroadcastsd   (%rax), %ymm2
 # CHECK-NEXT:  -      -      -     0.50   0.50   0.50   0.50   1.00    -      -      -      -      -      -     vbroadcastss   (%rax), %xmm2
 # CHECK-NEXT:  -      -      -     2.00   2.00   1.00   1.00   1.00    -      -      -      -      -      -     vbroadcastss   (%rax), %ymm2
-# CHECK-NEXT:  -      -      -     1.00    -     1.00    -      -      -      -      -      -      -      -     vcmppd $0, %xmm0, %xmm1, %xmm2
-# CHECK-NEXT:  -      -      -     1.00    -     1.00    -     1.00    -      -      -      -      -      -     vcmppd $0, (%rax), %xmm1, %xmm2
-# CHECK-NEXT:  -      -      -     2.00    -     2.00    -      -      -      -      -      -      -      -     vcmppd $0, %ymm0, %ymm1, %ymm2
-# CHECK-NEXT:  -      -      -     2.00    -     2.00    -     2.00    -      -      -      -      -      -     vcmppd $0, (%rax), %ymm1, %ymm2
-# CHECK-NEXT:  -      -      -     1.00    -     1.00    -      -      -      -      -      -      -      -     vcmpps $0, %xmm0, %xmm1, %xmm2
-# CHECK-NEXT:  -      -      -     1.00    -     1.00    -     1.00    -      -      -      -      -      -     vcmpps $0, (%rax), %xmm1, %xmm2
-# CHECK-NEXT:  -      -      -     2.00    -     2.00    -      -      -      -      -      -      -      -     vcmpps $0, %ymm0, %ymm1, %ymm2
-# CHECK-NEXT:  -      -      -     2.00    -     2.00    -     2.00    -      -      -      -      -      -     vcmpps $0, (%rax), %ymm1, %ymm2
-# CHECK-NEXT:  -      -      -     1.00    -     1.00    -      -      -      -      -      -      -      -     vcmpsd $0, %xmm0, %xmm1, %xmm2
-# CHECK-NEXT:  -      -      -     1.00    -     1.00    -     1.00    -      -      -      -      -      -     vcmpsd $0, (%rax), %xmm1, %xmm2
-# CHECK-NEXT:  -      -      -     1.00    -     1.00    -      -      -      -      -      -      -      -     vcmpss $0, %xmm0, %xmm1, %xmm2
-# CHECK-NEXT:  -      -      -     1.00    -     1.00    -     1.00    -      -      -      -      -      -     vcmpss $0, (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -     1.00    -     1.00    -      -      -      -      -      -      -      -     vcmpeqpd       %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -     1.00    -     1.00    -     1.00    -      -      -      -      -      -     vcmpeqpd       (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -     2.00    -     2.00    -      -      -      -      -      -      -      -     vcmpeqpd       %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -     2.00    -     2.00    -     2.00    -      -      -      -      -      -     vcmpeqpd       (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -     1.00    -     1.00    -      -      -      -      -      -      -      -     vcmpeqps       %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -     1.00    -     1.00    -     1.00    -      -      -      -      -      -     vcmpeqps       (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -     2.00    -     2.00    -      -      -      -      -      -      -      -     vcmpeqps       %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -     2.00    -     2.00    -     2.00    -      -      -      -      -      -     vcmpeqps       (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -     1.00    -     1.00    -      -      -      -      -      -      -      -     vcmpeqsd       %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -     1.00    -     1.00    -     1.00    -      -      -      -      -      -     vcmpeqsd       (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -     1.00    -     1.00    -      -      -      -      -      -      -      -     vcmpeqss       %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -     1.00    -     1.00    -     1.00    -      -      -      -      -      -     vcmpeqss       (%rax), %xmm1, %xmm2
 # CHECK-NEXT: 1.00    -      -     1.00    -     1.00    -      -      -      -      -      -      -      -     vcomisd        %xmm0, %xmm1
 # CHECK-NEXT: 1.00    -      -     1.00    -     1.00    -     1.00    -      -      -      -      -      -     vcomisd        (%rax), %xmm1
 # CHECK-NEXT: 1.00    -      -     1.00    -     1.00    -      -      -      -      -      -      -      -     vcomiss        %xmm0, %xmm1
index 2094e26ba92f0828384302c77507eb96fb115787..0a0522b7e0d658d74805264aa5dee3e29f5cb635 100644 (file)
@@ -202,10 +202,10 @@ xorps       (%rax), %xmm2
 # CHECK-NEXT:  1      6     1.00    *                   andnps (%rax), %xmm2
 # CHECK-NEXT:  1      1     0.50                        andps  %xmm0, %xmm2
 # CHECK-NEXT:  1      6     1.00    *                   andps  (%rax), %xmm2
-# CHECK-NEXT:  1      2     1.00                        cmpps  $0, %xmm0, %xmm2
-# CHECK-NEXT:  1      7     1.00    *                   cmpps  $0, (%rax), %xmm2
-# CHECK-NEXT:  1      2     1.00                        cmpss  $0, %xmm0, %xmm2
-# CHECK-NEXT:  1      7     1.00    *                   cmpss  $0, (%rax), %xmm2
+# CHECK-NEXT:  1      2     1.00                        cmpeqps        %xmm0, %xmm2
+# CHECK-NEXT:  1      7     1.00    *                   cmpeqps        (%rax), %xmm2
+# CHECK-NEXT:  1      2     1.00                        cmpeqss        %xmm0, %xmm2
+# CHECK-NEXT:  1      7     1.00    *                   cmpeqss        (%rax), %xmm2
 # CHECK-NEXT:  1      3     1.00                        comiss %xmm0, %xmm1
 # CHECK-NEXT:  1      8     1.00    *                   comiss (%rax), %xmm1
 # CHECK-NEXT:  1      3     1.00                        cvtpi2ps       %mm0, %xmm2
@@ -349,10 +349,10 @@ xorps       (%rax), %xmm2
 # CHECK-NEXT:  -      -      -     0.50   0.50   0.50   0.50   1.00    -      -      -      -      -      -     andnps (%rax), %xmm2
 # CHECK-NEXT:  -      -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -      -     andps  %xmm0, %xmm2
 # CHECK-NEXT:  -      -      -     0.50   0.50   0.50   0.50   1.00    -      -      -      -      -      -     andps  (%rax), %xmm2
-# CHECK-NEXT:  -      -      -     1.00    -     1.00    -      -      -      -      -      -      -      -     cmpps  $0, %xmm0, %xmm2
-# CHECK-NEXT:  -      -      -     1.00    -     1.00    -     1.00    -      -      -      -      -      -     cmpps  $0, (%rax), %xmm2
-# CHECK-NEXT:  -      -      -     1.00    -     1.00    -      -      -      -      -      -      -      -     cmpss  $0, %xmm0, %xmm2
-# CHECK-NEXT:  -      -      -     1.00    -     1.00    -     1.00    -      -      -      -      -      -     cmpss  $0, (%rax), %xmm2
+# CHECK-NEXT:  -      -      -     1.00    -     1.00    -      -      -      -      -      -      -      -     cmpeqps        %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -     1.00    -     1.00    -     1.00    -      -      -      -      -      -     cmpeqps        (%rax), %xmm2
+# CHECK-NEXT:  -      -      -     1.00    -     1.00    -      -      -      -      -      -      -      -     cmpeqss        %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -     1.00    -     1.00    -     1.00    -      -      -      -      -      -     cmpeqss        (%rax), %xmm2
 # CHECK-NEXT: 1.00    -      -     1.00    -     1.00    -      -      -      -      -      -      -      -     comiss %xmm0, %xmm1
 # CHECK-NEXT: 1.00    -      -     1.00    -     1.00    -     1.00    -      -      -      -      -      -     comiss (%rax), %xmm1
 # CHECK-NEXT:  -      -      -      -      -      -     1.00    -      -      -     1.00    -      -      -     cvtpi2ps       %mm0, %xmm2
index 9ac305d07a87fa5fc954bf0a9ed995eaa59250de..5b239ccd07c321ce9483e22d007dafd1dae7b7ff 100644 (file)
@@ -416,10 +416,10 @@ xorpd       (%rax), %xmm2
 # CHECK-NEXT:  1      1     0.50                        andpd  %xmm0, %xmm2
 # CHECK-NEXT:  1      6     1.00    *                   andpd  (%rax), %xmm2
 # CHECK-NEXT:  1      3     1.00    *      *      U     clflush        (%rax)
-# CHECK-NEXT:  1      2     1.00                        cmppd  $0, %xmm0, %xmm2
-# CHECK-NEXT:  1      7     1.00    *                   cmppd  $0, (%rax), %xmm2
-# CHECK-NEXT:  1      2     1.00                        cmpsd  $0, %xmm0, %xmm2
-# CHECK-NEXT:  1      7     1.00    *                   cmpsd  $0, (%rax), %xmm2
+# CHECK-NEXT:  1      2     1.00                        cmpeqpd        %xmm0, %xmm2
+# CHECK-NEXT:  1      7     1.00    *                   cmpeqpd        (%rax), %xmm2
+# CHECK-NEXT:  1      2     1.00                        cmpeqsd        %xmm0, %xmm2
+# CHECK-NEXT:  1      7     1.00    *                   cmpeqsd        (%rax), %xmm2
 # CHECK-NEXT:  1      3     1.00                        comisd %xmm0, %xmm1
 # CHECK-NEXT:  1      8     1.00    *                   comisd (%rax), %xmm1
 # CHECK-NEXT:  1      3     1.00                        cvtdq2pd       %xmm0, %xmm2
@@ -706,10 +706,10 @@ xorpd       (%rax), %xmm2
 # CHECK-NEXT:  -      -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -      -     andpd  %xmm0, %xmm2
 # CHECK-NEXT:  -      -      -     0.50   0.50   0.50   0.50   1.00    -      -      -      -      -      -     andpd  (%rax), %xmm2
 # CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -      -      -      -      -     clflush        (%rax)
-# CHECK-NEXT:  -      -      -     1.00    -     1.00    -      -      -      -      -      -      -      -     cmppd  $0, %xmm0, %xmm2
-# CHECK-NEXT:  -      -      -     1.00    -     1.00    -     1.00    -      -      -      -      -      -     cmppd  $0, (%rax), %xmm2
-# CHECK-NEXT:  -      -      -     1.00    -     1.00    -      -      -      -      -      -      -      -     cmpsd  $0, %xmm0, %xmm2
-# CHECK-NEXT:  -      -      -     1.00    -     1.00    -     1.00    -      -      -      -      -      -     cmpsd  $0, (%rax), %xmm2
+# CHECK-NEXT:  -      -      -     1.00    -     1.00    -      -      -      -      -      -      -      -     cmpeqpd        %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -     1.00    -     1.00    -     1.00    -      -      -      -      -      -     cmpeqpd        (%rax), %xmm2
+# CHECK-NEXT:  -      -      -     1.00    -     1.00    -      -      -      -      -      -      -      -     cmpeqsd        %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -     1.00    -     1.00    -     1.00    -      -      -      -      -      -     cmpeqsd        (%rax), %xmm2
 # CHECK-NEXT: 1.00    -      -     1.00    -     1.00    -      -      -      -      -      -      -      -     comisd %xmm0, %xmm1
 # CHECK-NEXT: 1.00    -      -     1.00    -     1.00    -     1.00    -      -      -      -      -      -     comisd (%rax), %xmm1
 # CHECK-NEXT:  -      -      -      -      -      -     1.00    -      -      -     1.00    -      -      -     cvtdq2pd       %xmm0, %xmm2
index cc4a3a54a04ff3ec6a3d549a551b9b5335f5cb04..cb5c5680eb3b9005d7d6d1b3bf62953fae249ca6 100644 (file)
@@ -1098,18 +1098,18 @@ vzeroupper
 # CHECK-NEXT:  1      7     0.50    *                   vbroadcastsd   (%rax), %ymm2
 # CHECK-NEXT:  1      6     0.50    *                   vbroadcastss   (%rax), %xmm2
 # CHECK-NEXT:  1      7     0.50    *                   vbroadcastss   (%rax), %ymm2
-# CHECK-NEXT:  1      3     1.00                        vcmppd $0, %xmm0, %xmm1, %xmm2
-# CHECK-NEXT:  2      9     1.00    *                   vcmppd $0, (%rax), %xmm1, %xmm2
-# CHECK-NEXT:  1      3     1.00                        vcmppd $0, %ymm0, %ymm1, %ymm2
-# CHECK-NEXT:  2      10    1.00    *                   vcmppd $0, (%rax), %ymm1, %ymm2
-# CHECK-NEXT:  1      3     1.00                        vcmpps $0, %xmm0, %xmm1, %xmm2
-# CHECK-NEXT:  2      9     1.00    *                   vcmpps $0, (%rax), %xmm1, %xmm2
-# CHECK-NEXT:  1      3     1.00                        vcmpps $0, %ymm0, %ymm1, %ymm2
-# CHECK-NEXT:  2      10    1.00    *                   vcmpps $0, (%rax), %ymm1, %ymm2
-# CHECK-NEXT:  1      3     1.00                        vcmpsd $0, %xmm0, %xmm1, %xmm2
-# CHECK-NEXT:  2      9     1.00    *                   vcmpsd $0, (%rax), %xmm1, %xmm2
-# CHECK-NEXT:  1      3     1.00                        vcmpss $0, %xmm0, %xmm1, %xmm2
-# CHECK-NEXT:  2      9     1.00    *                   vcmpss $0, (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      3     1.00                        vcmpeqpd       %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  2      9     1.00    *                   vcmpeqpd       (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      3     1.00                        vcmpeqpd       %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  2      10    1.00    *                   vcmpeqpd       (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  1      3     1.00                        vcmpeqps       %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  2      9     1.00    *                   vcmpeqps       (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      3     1.00                        vcmpeqps       %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  2      10    1.00    *                   vcmpeqps       (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  1      3     1.00                        vcmpeqsd       %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  2      9     1.00    *                   vcmpeqsd       (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      3     1.00                        vcmpeqss       %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  2      9     1.00    *                   vcmpeqss       (%rax), %xmm1, %xmm2
 # CHECK-NEXT:  2      2     1.00                        vcomisd        %xmm0, %xmm1
 # CHECK-NEXT:  3      8     1.00    *                   vcomisd        (%rax), %xmm1
 # CHECK-NEXT:  2      2     1.00                        vcomiss        %xmm0, %xmm1
@@ -1806,18 +1806,18 @@ vzeroupper
 # CHECK-NEXT:  -      -      -      -      -      -     0.50   0.50   vbroadcastsd     (%rax), %ymm2
 # CHECK-NEXT:  -      -      -      -      -      -     0.50   0.50   vbroadcastss     (%rax), %xmm2
 # CHECK-NEXT:  -      -      -      -      -      -     0.50   0.50   vbroadcastss     (%rax), %ymm2
-# CHECK-NEXT:  -      -      -     1.00    -      -      -      -     vcmppd   $0, %xmm0, %xmm1, %xmm2
-# CHECK-NEXT:  -      -      -     1.00    -      -     0.50   0.50   vcmppd   $0, (%rax), %xmm1, %xmm2
-# CHECK-NEXT:  -      -      -     1.00    -      -      -      -     vcmppd   $0, %ymm0, %ymm1, %ymm2
-# CHECK-NEXT:  -      -      -     1.00    -      -     0.50   0.50   vcmppd   $0, (%rax), %ymm1, %ymm2
-# CHECK-NEXT:  -      -      -     1.00    -      -      -      -     vcmpps   $0, %xmm0, %xmm1, %xmm2
-# CHECK-NEXT:  -      -      -     1.00    -      -     0.50   0.50   vcmpps   $0, (%rax), %xmm1, %xmm2
-# CHECK-NEXT:  -      -      -     1.00    -      -      -      -     vcmpps   $0, %ymm0, %ymm1, %ymm2
-# CHECK-NEXT:  -      -      -     1.00    -      -     0.50   0.50   vcmpps   $0, (%rax), %ymm1, %ymm2
-# CHECK-NEXT:  -      -      -     1.00    -      -      -      -     vcmpsd   $0, %xmm0, %xmm1, %xmm2
-# CHECK-NEXT:  -      -      -     1.00    -      -     0.50   0.50   vcmpsd   $0, (%rax), %xmm1, %xmm2
-# CHECK-NEXT:  -      -      -     1.00    -      -      -      -     vcmpss   $0, %xmm0, %xmm1, %xmm2
-# CHECK-NEXT:  -      -      -     1.00    -      -     0.50   0.50   vcmpss   $0, (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -     1.00    -      -      -      -     vcmpeqpd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -     1.00    -      -     0.50   0.50   vcmpeqpd (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -     1.00    -      -      -      -     vcmpeqpd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -     1.00    -      -     0.50   0.50   vcmpeqpd (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -     1.00    -      -      -      -     vcmpeqps %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -     1.00    -      -     0.50   0.50   vcmpeqps (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -     1.00    -      -      -      -     vcmpeqps %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -     1.00    -      -     0.50   0.50   vcmpeqps (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -     1.00    -      -      -      -     vcmpeqsd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -     1.00    -      -     0.50   0.50   vcmpeqsd (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -     1.00    -      -      -      -     vcmpeqss %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -     1.00    -      -     0.50   0.50   vcmpeqss (%rax), %xmm1, %xmm2
 # CHECK-NEXT:  -      -     1.00   1.00    -      -      -      -     vcomisd  %xmm0, %xmm1
 # CHECK-NEXT:  -      -     1.00   1.00    -      -     0.50   0.50   vcomisd  (%rax), %xmm1
 # CHECK-NEXT:  -      -     1.00   1.00    -      -      -      -     vcomiss  %xmm0, %xmm1
index cc4d6ed0b430b8e8d18da9b9210486aedcb4d904..b534a3487595d3325582070863d7e98cf03338ed 100644 (file)
@@ -202,10 +202,10 @@ xorps       (%rax), %xmm2
 # CHECK-NEXT:  2      7     1.00    *                   andnps (%rax), %xmm2
 # CHECK-NEXT:  1      1     1.00                        andps  %xmm0, %xmm2
 # CHECK-NEXT:  2      7     1.00    *                   andps  (%rax), %xmm2
-# CHECK-NEXT:  1      3     1.00                        cmpps  $0, %xmm0, %xmm2
-# CHECK-NEXT:  2      9     1.00    *                   cmpps  $0, (%rax), %xmm2
-# CHECK-NEXT:  1      3     1.00                        cmpss  $0, %xmm0, %xmm2
-# CHECK-NEXT:  2      9     1.00    *                   cmpss  $0, (%rax), %xmm2
+# CHECK-NEXT:  1      3     1.00                        cmpeqps        %xmm0, %xmm2
+# CHECK-NEXT:  2      9     1.00    *                   cmpeqps        (%rax), %xmm2
+# CHECK-NEXT:  1      3     1.00                        cmpeqss        %xmm0, %xmm2
+# CHECK-NEXT:  2      9     1.00    *                   cmpeqss        (%rax), %xmm2
 # CHECK-NEXT:  2      2     1.00                        comiss %xmm0, %xmm1
 # CHECK-NEXT:  3      8     1.00    *                   comiss (%rax), %xmm1
 # CHECK-NEXT:  1      3     1.00                        cvtpi2ps       %mm0, %xmm2
@@ -343,10 +343,10 @@ xorps       (%rax), %xmm2
 # CHECK-NEXT:  -      -      -      -      -     1.00   0.50   0.50   andnps   (%rax), %xmm2
 # CHECK-NEXT:  -      -      -      -      -     1.00    -      -     andps    %xmm0, %xmm2
 # CHECK-NEXT:  -      -      -      -      -     1.00   0.50   0.50   andps    (%rax), %xmm2
-# CHECK-NEXT:  -      -      -     1.00    -      -      -      -     cmpps    $0, %xmm0, %xmm2
-# CHECK-NEXT:  -      -      -     1.00    -      -     0.50   0.50   cmpps    $0, (%rax), %xmm2
-# CHECK-NEXT:  -      -      -     1.00    -      -      -      -     cmpss    $0, %xmm0, %xmm2
-# CHECK-NEXT:  -      -      -     1.00    -      -     0.50   0.50   cmpss    $0, (%rax), %xmm2
+# CHECK-NEXT:  -      -      -     1.00    -      -      -      -     cmpeqps  %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -     1.00    -      -     0.50   0.50   cmpeqps  (%rax), %xmm2
+# CHECK-NEXT:  -      -      -     1.00    -      -      -      -     cmpeqss  %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -     1.00    -      -     0.50   0.50   cmpeqss  (%rax), %xmm2
 # CHECK-NEXT:  -      -     1.00   1.00    -      -      -      -     comiss   %xmm0, %xmm1
 # CHECK-NEXT:  -      -     1.00   1.00    -      -     0.50   0.50   comiss   (%rax), %xmm1
 # CHECK-NEXT:  -      -      -     1.00    -      -      -      -     cvtpi2ps %mm0, %xmm2
index 63a40d5c717145a87f97e73f9837bcb9f41b2b7e..baa251e53092876cf54cee2fecc610543c55fa92 100644 (file)
@@ -416,10 +416,10 @@ xorpd       (%rax), %xmm2
 # CHECK-NEXT:  1      1     1.00                        andpd  %xmm0, %xmm2
 # CHECK-NEXT:  2      7     1.00    *                   andpd  (%rax), %xmm2
 # CHECK-NEXT:  4      5     1.00    *      *      U     clflush        (%rax)
-# CHECK-NEXT:  1      3     1.00                        cmppd  $0, %xmm0, %xmm2
-# CHECK-NEXT:  2      9     1.00    *                   cmppd  $0, (%rax), %xmm2
-# CHECK-NEXT:  1      3     1.00                        cmpsd  $0, %xmm0, %xmm2
-# CHECK-NEXT:  2      9     1.00    *                   cmpsd  $0, (%rax), %xmm2
+# CHECK-NEXT:  1      3     1.00                        cmpeqpd        %xmm0, %xmm2
+# CHECK-NEXT:  2      9     1.00    *                   cmpeqpd        (%rax), %xmm2
+# CHECK-NEXT:  1      3     1.00                        cmpeqsd        %xmm0, %xmm2
+# CHECK-NEXT:  2      9     1.00    *                   cmpeqsd        (%rax), %xmm2
 # CHECK-NEXT:  2      2     1.00                        comisd %xmm0, %xmm1
 # CHECK-NEXT:  3      8     1.00    *                   comisd (%rax), %xmm1
 # CHECK-NEXT:  2      4     1.00                        cvtdq2pd       %xmm0, %xmm2
@@ -700,10 +700,10 @@ xorpd       (%rax), %xmm2
 # CHECK-NEXT:  -      -      -      -      -     1.00    -      -     andpd    %xmm0, %xmm2
 # CHECK-NEXT:  -      -      -      -      -     1.00   0.50   0.50   andpd    (%rax), %xmm2
 # CHECK-NEXT:  -      -     0.50   0.50   1.00   1.00   0.50   0.50   clflush  (%rax)
-# CHECK-NEXT:  -      -      -     1.00    -      -      -      -     cmppd    $0, %xmm0, %xmm2
-# CHECK-NEXT:  -      -      -     1.00    -      -     0.50   0.50   cmppd    $0, (%rax), %xmm2
-# CHECK-NEXT:  -      -      -     1.00    -      -      -      -     cmpsd    $0, %xmm0, %xmm2
-# CHECK-NEXT:  -      -      -     1.00    -      -     0.50   0.50   cmpsd    $0, (%rax), %xmm2
+# CHECK-NEXT:  -      -      -     1.00    -      -      -      -     cmpeqpd  %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -     1.00    -      -     0.50   0.50   cmpeqpd  (%rax), %xmm2
+# CHECK-NEXT:  -      -      -     1.00    -      -      -      -     cmpeqsd  %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -     1.00    -      -     0.50   0.50   cmpeqsd  (%rax), %xmm2
 # CHECK-NEXT:  -      -     1.00   1.00    -      -      -      -     comisd   %xmm0, %xmm1
 # CHECK-NEXT:  -      -     1.00   1.00    -      -     0.50   0.50   comisd   (%rax), %xmm1
 # CHECK-NEXT:  -      -      -     1.00    -     1.00    -      -     cvtdq2pd %xmm0, %xmm2
index 387b4b2f1c252c6da39f7b6073c067bd22b6410b..53fc4606153186fd366dca6de05a7af4b7acc6a1 100644 (file)
@@ -1098,18 +1098,18 @@ vzeroupper
 # CHECK-NEXT:  1      7     0.50    *                   vbroadcastsd   (%rax), %ymm2
 # CHECK-NEXT:  1      6     0.50    *                   vbroadcastss   (%rax), %xmm2
 # CHECK-NEXT:  1      7     0.50    *                   vbroadcastss   (%rax), %ymm2
-# CHECK-NEXT:  1      3     1.00                        vcmppd $0, %xmm0, %xmm1, %xmm2
-# CHECK-NEXT:  2      9     1.00    *                   vcmppd $0, (%rax), %xmm1, %xmm2
-# CHECK-NEXT:  1      3     1.00                        vcmppd $0, %ymm0, %ymm1, %ymm2
-# CHECK-NEXT:  2      10    1.00    *                   vcmppd $0, (%rax), %ymm1, %ymm2
-# CHECK-NEXT:  1      3     1.00                        vcmpps $0, %xmm0, %xmm1, %xmm2
-# CHECK-NEXT:  2      9     1.00    *                   vcmpps $0, (%rax), %xmm1, %xmm2
-# CHECK-NEXT:  1      3     1.00                        vcmpps $0, %ymm0, %ymm1, %ymm2
-# CHECK-NEXT:  2      10    1.00    *                   vcmpps $0, (%rax), %ymm1, %ymm2
-# CHECK-NEXT:  1      3     1.00                        vcmpsd $0, %xmm0, %xmm1, %xmm2
-# CHECK-NEXT:  2      8     1.00    *                   vcmpsd $0, (%rax), %xmm1, %xmm2
-# CHECK-NEXT:  1      3     1.00                        vcmpss $0, %xmm0, %xmm1, %xmm2
-# CHECK-NEXT:  2      8     1.00    *                   vcmpss $0, (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      3     1.00                        vcmpeqpd       %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  2      9     1.00    *                   vcmpeqpd       (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      3     1.00                        vcmpeqpd       %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  2      10    1.00    *                   vcmpeqpd       (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  1      3     1.00                        vcmpeqps       %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  2      9     1.00    *                   vcmpeqps       (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      3     1.00                        vcmpeqps       %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  2      10    1.00    *                   vcmpeqps       (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  1      3     1.00                        vcmpeqsd       %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  2      8     1.00    *                   vcmpeqsd       (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      3     1.00                        vcmpeqss       %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  2      8     1.00    *                   vcmpeqss       (%rax), %xmm1, %xmm2
 # CHECK-NEXT:  1      3     1.00                        vcomisd        %xmm0, %xmm1
 # CHECK-NEXT:  2      8     1.00    *                   vcomisd        (%rax), %xmm1
 # CHECK-NEXT:  1      3     1.00                        vcomiss        %xmm0, %xmm1
@@ -1808,18 +1808,18 @@ vzeroupper
 # CHECK-NEXT:  -      -      -      -     0.50   0.50    -      -      -      -     vbroadcastsd       (%rax), %ymm2
 # CHECK-NEXT:  -      -      -      -     0.50   0.50    -      -      -      -     vbroadcastss       (%rax), %xmm2
 # CHECK-NEXT:  -      -      -      -     0.50   0.50    -      -      -      -     vbroadcastss       (%rax), %ymm2
-# CHECK-NEXT:  -      -      -     1.00    -      -      -      -      -      -     vcmppd     $0, %xmm0, %xmm1, %xmm2
-# CHECK-NEXT:  -      -      -     1.00   0.50   0.50    -      -      -      -     vcmppd     $0, (%rax), %xmm1, %xmm2
-# CHECK-NEXT:  -      -      -     1.00    -      -      -      -      -      -     vcmppd     $0, %ymm0, %ymm1, %ymm2
-# CHECK-NEXT:  -      -      -     1.00   0.50   0.50    -      -      -      -     vcmppd     $0, (%rax), %ymm1, %ymm2
-# CHECK-NEXT:  -      -      -     1.00    -      -      -      -      -      -     vcmpps     $0, %xmm0, %xmm1, %xmm2
-# CHECK-NEXT:  -      -      -     1.00   0.50   0.50    -      -      -      -     vcmpps     $0, (%rax), %xmm1, %xmm2
-# CHECK-NEXT:  -      -      -     1.00    -      -      -      -      -      -     vcmpps     $0, %ymm0, %ymm1, %ymm2
-# CHECK-NEXT:  -      -      -     1.00   0.50   0.50    -      -      -      -     vcmpps     $0, (%rax), %ymm1, %ymm2
-# CHECK-NEXT:  -      -      -     1.00    -      -      -      -      -      -     vcmpsd     $0, %xmm0, %xmm1, %xmm2
-# CHECK-NEXT:  -      -      -     1.00   0.50   0.50    -      -      -      -     vcmpsd     $0, (%rax), %xmm1, %xmm2
-# CHECK-NEXT:  -      -      -     1.00    -      -      -      -      -      -     vcmpss     $0, %xmm0, %xmm1, %xmm2
-# CHECK-NEXT:  -      -      -     1.00   0.50   0.50    -      -      -      -     vcmpss     $0, (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -     1.00    -      -      -      -      -      -     vcmpeqpd   %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -     1.00   0.50   0.50    -      -      -      -     vcmpeqpd   (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -     1.00    -      -      -      -      -      -     vcmpeqpd   %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -     1.00   0.50   0.50    -      -      -      -     vcmpeqpd   (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -     1.00    -      -      -      -      -      -     vcmpeqps   %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -     1.00   0.50   0.50    -      -      -      -     vcmpeqps   (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -     1.00    -      -      -      -      -      -     vcmpeqps   %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -     1.00   0.50   0.50    -      -      -      -     vcmpeqps   (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -     1.00    -      -      -      -      -      -     vcmpeqsd   %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -     1.00   0.50   0.50    -      -      -      -     vcmpeqsd   (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -     1.00    -      -      -      -      -      -     vcmpeqss   %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -     1.00   0.50   0.50    -      -      -      -     vcmpeqss   (%rax), %xmm1, %xmm2
 # CHECK-NEXT:  -      -      -     1.00    -      -      -      -      -      -     vcomisd    %xmm0, %xmm1
 # CHECK-NEXT:  -      -      -     1.00   0.50   0.50    -      -      -      -     vcomisd    (%rax), %xmm1
 # CHECK-NEXT:  -      -      -     1.00    -      -      -      -      -      -     vcomiss    %xmm0, %xmm1
index de54d76c45a6b0ed84b85c981ac9bcc9145887ff..dca5a4be19d4922f7594e9ce085c88b1de5aa8e6 100644 (file)
@@ -202,10 +202,10 @@ xorps       (%rax), %xmm2
 # CHECK-NEXT:  2      7     1.00    *                   andnps (%rax), %xmm2
 # CHECK-NEXT:  1      1     1.00                        andps  %xmm0, %xmm2
 # CHECK-NEXT:  2      7     1.00    *                   andps  (%rax), %xmm2
-# CHECK-NEXT:  1      3     1.00                        cmpps  $0, %xmm0, %xmm2
-# CHECK-NEXT:  2      9     1.00    *                   cmpps  $0, (%rax), %xmm2
-# CHECK-NEXT:  1      3     1.00                        cmpss  $0, %xmm0, %xmm2
-# CHECK-NEXT:  2      8     1.00    *                   cmpss  $0, (%rax), %xmm2
+# CHECK-NEXT:  1      3     1.00                        cmpeqps        %xmm0, %xmm2
+# CHECK-NEXT:  2      9     1.00    *                   cmpeqps        (%rax), %xmm2
+# CHECK-NEXT:  1      3     1.00                        cmpeqss        %xmm0, %xmm2
+# CHECK-NEXT:  2      8     1.00    *                   cmpeqss        (%rax), %xmm2
 # CHECK-NEXT:  1      3     1.00                        comiss %xmm0, %xmm1
 # CHECK-NEXT:  2      8     1.00    *                   comiss (%rax), %xmm1
 # CHECK-NEXT:  1      3     1.00                        cvtpi2ps       %mm0, %xmm2
@@ -345,10 +345,10 @@ xorps       (%rax), %xmm2
 # CHECK-NEXT:  -      -      -      -     0.50   0.50    -     1.00    -      -     andnps     (%rax), %xmm2
 # CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -     andps      %xmm0, %xmm2
 # CHECK-NEXT:  -      -      -      -     0.50   0.50    -     1.00    -      -     andps      (%rax), %xmm2
-# CHECK-NEXT:  -      -      -     1.00    -      -      -      -      -      -     cmpps      $0, %xmm0, %xmm2
-# CHECK-NEXT:  -      -      -     1.00   0.50   0.50    -      -      -      -     cmpps      $0, (%rax), %xmm2
-# CHECK-NEXT:  -      -      -     1.00    -      -      -      -      -      -     cmpss      $0, %xmm0, %xmm2
-# CHECK-NEXT:  -      -      -     1.00   0.50   0.50    -      -      -      -     cmpss      $0, (%rax), %xmm2
+# CHECK-NEXT:  -      -      -     1.00    -      -      -      -      -      -     cmpeqps    %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -     1.00   0.50   0.50    -      -      -      -     cmpeqps    (%rax), %xmm2
+# CHECK-NEXT:  -      -      -     1.00    -      -      -      -      -      -     cmpeqss    %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -     1.00   0.50   0.50    -      -      -      -     cmpeqss    (%rax), %xmm2
 # CHECK-NEXT:  -      -      -     1.00    -      -      -      -      -      -     comiss     %xmm0, %xmm1
 # CHECK-NEXT:  -      -      -     1.00   0.50   0.50    -      -      -      -     comiss     (%rax), %xmm1
 # CHECK-NEXT:  -      -      -     1.00    -      -      -      -      -      -     cvtpi2ps   %mm0, %xmm2
index 1a61240252d619233e0e5d4cb4d3c840eae4e6b2..5561433090026834e9c73f878fe9422017b9f826 100644 (file)
@@ -416,10 +416,10 @@ xorpd       (%rax), %xmm2
 # CHECK-NEXT:  1      1     1.00                        andpd  %xmm0, %xmm2
 # CHECK-NEXT:  2      7     1.00    *                   andpd  (%rax), %xmm2
 # CHECK-NEXT:  2      2     1.00    *      *      U     clflush        (%rax)
-# CHECK-NEXT:  1      3     1.00                        cmppd  $0, %xmm0, %xmm2
-# CHECK-NEXT:  2      9     1.00    *                   cmppd  $0, (%rax), %xmm2
-# CHECK-NEXT:  1      3     1.00                        cmpsd  $0, %xmm0, %xmm2
-# CHECK-NEXT:  2      8     1.00    *                   cmpsd  $0, (%rax), %xmm2
+# CHECK-NEXT:  1      3     1.00                        cmpeqpd        %xmm0, %xmm2
+# CHECK-NEXT:  2      9     1.00    *                   cmpeqpd        (%rax), %xmm2
+# CHECK-NEXT:  1      3     1.00                        cmpeqsd        %xmm0, %xmm2
+# CHECK-NEXT:  2      8     1.00    *                   cmpeqsd        (%rax), %xmm2
 # CHECK-NEXT:  1      3     1.00                        comisd %xmm0, %xmm1
 # CHECK-NEXT:  2      8     1.00    *                   comisd (%rax), %xmm1
 # CHECK-NEXT:  2      4     1.00                        cvtdq2pd       %xmm0, %xmm2
@@ -702,10 +702,10 @@ xorpd       (%rax), %xmm2
 # CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -     andpd      %xmm0, %xmm2
 # CHECK-NEXT:  -      -      -      -     0.50   0.50    -     1.00    -      -     andpd      (%rax), %xmm2
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   1.25    -     clflush    (%rax)
-# CHECK-NEXT:  -      -      -     1.00    -      -      -      -      -      -     cmppd      $0, %xmm0, %xmm2
-# CHECK-NEXT:  -      -      -     1.00   0.50   0.50    -      -      -      -     cmppd      $0, (%rax), %xmm2
-# CHECK-NEXT:  -      -      -     1.00    -      -      -      -      -      -     cmpsd      $0, %xmm0, %xmm2
-# CHECK-NEXT:  -      -      -     1.00   0.50   0.50    -      -      -      -     cmpsd      $0, (%rax), %xmm2
+# CHECK-NEXT:  -      -      -     1.00    -      -      -      -      -      -     cmpeqpd    %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -     1.00   0.50   0.50    -      -      -      -     cmpeqpd    (%rax), %xmm2
+# CHECK-NEXT:  -      -      -     1.00    -      -      -      -      -      -     cmpeqsd    %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -     1.00   0.50   0.50    -      -      -      -     cmpeqsd    (%rax), %xmm2
 # CHECK-NEXT:  -      -      -     1.00    -      -      -      -      -      -     comisd     %xmm0, %xmm1
 # CHECK-NEXT:  -      -      -     1.00   0.50   0.50    -      -      -      -     comisd     (%rax), %xmm1
 # CHECK-NEXT:  -      -      -     1.00    -      -      -     1.00    -      -     cvtdq2pd   %xmm0, %xmm2
index 18112741aa98c5b807cb66e4ef7e4b5f729fc5a3..1b30613229a0a6ea0b0137352f4f99ef5018fc00 100644 (file)
@@ -202,10 +202,10 @@ xorps       (%rax), %xmm2
 # CHECK-NEXT:  1      4     1.00    *                   andnps (%rax), %xmm2
 # CHECK-NEXT:  1      1     0.50                        andps  %xmm0, %xmm2
 # CHECK-NEXT:  1      4     1.00    *                   andps  (%rax), %xmm2
-# CHECK-NEXT:  1      3     1.00                        cmpps  $0, %xmm0, %xmm2
-# CHECK-NEXT:  1      6     1.00    *                   cmpps  $0, (%rax), %xmm2
-# CHECK-NEXT:  1      3     1.00                        cmpss  $0, %xmm0, %xmm2
-# CHECK-NEXT:  1      6     1.00    *                   cmpss  $0, (%rax), %xmm2
+# CHECK-NEXT:  1      3     1.00                        cmpeqps        %xmm0, %xmm2
+# CHECK-NEXT:  1      6     1.00    *                   cmpeqps        (%rax), %xmm2
+# CHECK-NEXT:  1      3     1.00                        cmpeqss        %xmm0, %xmm2
+# CHECK-NEXT:  1      6     1.00    *                   cmpeqss        (%rax), %xmm2
 # CHECK-NEXT:  1      3     1.00                        comiss %xmm0, %xmm1
 # CHECK-NEXT:  1      6     1.00    *                   comiss (%rax), %xmm1
 # CHECK-NEXT:  1      4     0.50                        cvtpi2ps       %mm0, %xmm2
@@ -343,10 +343,10 @@ xorps       (%rax), %xmm2
 # CHECK-NEXT:  -      -      -     0.50   0.50    -      -     1.00   andnps   (%rax), %xmm2
 # CHECK-NEXT:  -      -      -     0.50   0.50    -      -      -     andps    %xmm0, %xmm2
 # CHECK-NEXT:  -      -      -     0.50   0.50    -      -     1.00   andps    (%rax), %xmm2
-# CHECK-NEXT:  -      -      -      -     1.00    -      -      -     cmpps    $0, %xmm0, %xmm2
-# CHECK-NEXT:  -      -      -      -     1.00    -      -     1.00   cmpps    $0, (%rax), %xmm2
-# CHECK-NEXT:  -      -      -      -     1.00    -      -      -     cmpss    $0, %xmm0, %xmm2
-# CHECK-NEXT:  -      -      -      -     1.00    -      -     1.00   cmpss    $0, (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -     1.00    -      -      -     cmpeqps  %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -     1.00    -      -     1.00   cmpeqps  (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -     1.00    -      -      -     cmpeqss  %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -     1.00    -      -     1.00   cmpeqss  (%rax), %xmm2
 # CHECK-NEXT:  -      -      -      -     1.00    -      -      -     comiss   %xmm0, %xmm1
 # CHECK-NEXT:  -      -      -      -     1.00    -      -     1.00   comiss   (%rax), %xmm1
 # CHECK-NEXT:  -      -      -     0.50   0.50    -      -      -     cvtpi2ps %mm0, %xmm2
index 12b17629b8dfe1c84d884e13beb5ed86517196a2..664400a4e20538922a2eaff1b6e6a66c27232461 100644 (file)
@@ -416,10 +416,10 @@ xorpd       (%rax), %xmm2
 # CHECK-NEXT:  1      1     0.50                        andpd  %xmm0, %xmm2
 # CHECK-NEXT:  1      4     1.00    *                   andpd  (%rax), %xmm2
 # CHECK-NEXT:  1      3     1.00    *      *      U     clflush        (%rax)
-# CHECK-NEXT:  1      3     1.00                        cmppd  $0, %xmm0, %xmm2
-# CHECK-NEXT:  1      6     1.00    *                   cmppd  $0, (%rax), %xmm2
-# CHECK-NEXT:  1      3     1.00                        cmpsd  $0, %xmm0, %xmm2
-# CHECK-NEXT:  1      6     1.00    *                   cmpsd  $0, (%rax), %xmm2
+# CHECK-NEXT:  1      3     1.00                        cmpeqpd        %xmm0, %xmm2
+# CHECK-NEXT:  1      6     1.00    *                   cmpeqpd        (%rax), %xmm2
+# CHECK-NEXT:  1      3     1.00                        cmpeqsd        %xmm0, %xmm2
+# CHECK-NEXT:  1      6     1.00    *                   cmpeqsd        (%rax), %xmm2
 # CHECK-NEXT:  1      3     1.00                        comisd %xmm0, %xmm1
 # CHECK-NEXT:  1      6     1.00    *                   comisd (%rax), %xmm1
 # CHECK-NEXT:  1      4     0.50                        cvtdq2pd       %xmm0, %xmm2
@@ -700,10 +700,10 @@ xorpd       (%rax), %xmm2
 # CHECK-NEXT:  -      -      -     0.50   0.50    -      -      -     andpd    %xmm0, %xmm2
 # CHECK-NEXT:  -      -      -     0.50   0.50    -      -     1.00   andpd    (%rax), %xmm2
 # CHECK-NEXT:  -      -      -      -      -      -      -     1.00   clflush  (%rax)
-# CHECK-NEXT:  -      -      -      -     1.00    -      -      -     cmppd    $0, %xmm0, %xmm2
-# CHECK-NEXT:  -      -      -      -     1.00    -      -     1.00   cmppd    $0, (%rax), %xmm2
-# CHECK-NEXT:  -      -      -      -     1.00    -      -      -     cmpsd    $0, %xmm0, %xmm2
-# CHECK-NEXT:  -      -      -      -     1.00    -      -     1.00   cmpsd    $0, (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -     1.00    -      -      -     cmpeqpd  %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -     1.00    -      -     1.00   cmpeqpd  (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -     1.00    -      -      -     cmpeqsd  %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -     1.00    -      -     1.00   cmpeqsd  (%rax), %xmm2
 # CHECK-NEXT:  -      -      -      -     1.00    -      -      -     comisd   %xmm0, %xmm1
 # CHECK-NEXT:  -      -      -      -     1.00    -      -     1.00   comisd   (%rax), %xmm1
 # CHECK-NEXT:  -      -      -     0.50   0.50    -      -      -     cvtdq2pd %xmm0, %xmm2
index 2a4a5bf45d01dfc8d0fc599bab411fd1416a60cc..435d94c2ff9e2420864bc8c1537b3c9449f06458 100644 (file)
@@ -1098,18 +1098,18 @@ vzeroupper
 # CHECK-NEXT:  1      7     0.50    *                   vbroadcastsd   (%rax), %ymm2
 # CHECK-NEXT:  1      6     0.50    *                   vbroadcastss   (%rax), %xmm2
 # CHECK-NEXT:  1      7     0.50    *                   vbroadcastss   (%rax), %ymm2
-# CHECK-NEXT:  1      3     1.00                        vcmppd $0, %xmm0, %xmm1, %xmm2
-# CHECK-NEXT:  2      9     1.00    *                   vcmppd $0, (%rax), %xmm1, %xmm2
-# CHECK-NEXT:  1      3     1.00                        vcmppd $0, %ymm0, %ymm1, %ymm2
-# CHECK-NEXT:  2      10    1.00    *                   vcmppd $0, (%rax), %ymm1, %ymm2
-# CHECK-NEXT:  1      3     1.00                        vcmpps $0, %xmm0, %xmm1, %xmm2
-# CHECK-NEXT:  2      9     1.00    *                   vcmpps $0, (%rax), %xmm1, %xmm2
-# CHECK-NEXT:  1      3     1.00                        vcmpps $0, %ymm0, %ymm1, %ymm2
-# CHECK-NEXT:  2      10    1.00    *                   vcmpps $0, (%rax), %ymm1, %ymm2
-# CHECK-NEXT:  1      3     1.00                        vcmpsd $0, %xmm0, %xmm1, %xmm2
-# CHECK-NEXT:  2      9     1.00    *                   vcmpsd $0, (%rax), %xmm1, %xmm2
-# CHECK-NEXT:  1      3     1.00                        vcmpss $0, %xmm0, %xmm1, %xmm2
-# CHECK-NEXT:  2      9     1.00    *                   vcmpss $0, (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      3     1.00                        vcmpeqpd       %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  2      9     1.00    *                   vcmpeqpd       (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      3     1.00                        vcmpeqpd       %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  2      10    1.00    *                   vcmpeqpd       (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  1      3     1.00                        vcmpeqps       %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  2      9     1.00    *                   vcmpeqps       (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      3     1.00                        vcmpeqps       %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  2      10    1.00    *                   vcmpeqps       (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  1      3     1.00                        vcmpeqsd       %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  2      9     1.00    *                   vcmpeqsd       (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      3     1.00                        vcmpeqss       %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  2      9     1.00    *                   vcmpeqss       (%rax), %xmm1, %xmm2
 # CHECK-NEXT:  2      2     1.00                        vcomisd        %xmm0, %xmm1
 # CHECK-NEXT:  3      8     1.00    *                   vcomisd        (%rax), %xmm1
 # CHECK-NEXT:  2      2     1.00                        vcomiss        %xmm0, %xmm1
@@ -1806,18 +1806,18 @@ vzeroupper
 # CHECK-NEXT:  -      -      -      -      -      -     0.50   0.50   vbroadcastsd     (%rax), %ymm2
 # CHECK-NEXT:  -      -      -      -      -      -     0.50   0.50   vbroadcastss     (%rax), %xmm2
 # CHECK-NEXT:  -      -      -      -      -      -     0.50   0.50   vbroadcastss     (%rax), %ymm2
-# CHECK-NEXT:  -      -      -     1.00    -      -      -      -     vcmppd   $0, %xmm0, %xmm1, %xmm2
-# CHECK-NEXT:  -      -      -     1.00    -      -     0.50   0.50   vcmppd   $0, (%rax), %xmm1, %xmm2
-# CHECK-NEXT:  -      -      -     1.00    -      -      -      -     vcmppd   $0, %ymm0, %ymm1, %ymm2
-# CHECK-NEXT:  -      -      -     1.00    -      -     0.50   0.50   vcmppd   $0, (%rax), %ymm1, %ymm2
-# CHECK-NEXT:  -      -      -     1.00    -      -      -      -     vcmpps   $0, %xmm0, %xmm1, %xmm2
-# CHECK-NEXT:  -      -      -     1.00    -      -     0.50   0.50   vcmpps   $0, (%rax), %xmm1, %xmm2
-# CHECK-NEXT:  -      -      -     1.00    -      -      -      -     vcmpps   $0, %ymm0, %ymm1, %ymm2
-# CHECK-NEXT:  -      -      -     1.00    -      -     0.50   0.50   vcmpps   $0, (%rax), %ymm1, %ymm2
-# CHECK-NEXT:  -      -      -     1.00    -      -      -      -     vcmpsd   $0, %xmm0, %xmm1, %xmm2
-# CHECK-NEXT:  -      -      -     1.00    -      -     0.50   0.50   vcmpsd   $0, (%rax), %xmm1, %xmm2
-# CHECK-NEXT:  -      -      -     1.00    -      -      -      -     vcmpss   $0, %xmm0, %xmm1, %xmm2
-# CHECK-NEXT:  -      -      -     1.00    -      -     0.50   0.50   vcmpss   $0, (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -     1.00    -      -      -      -     vcmpeqpd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -     1.00    -      -     0.50   0.50   vcmpeqpd (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -     1.00    -      -      -      -     vcmpeqpd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -     1.00    -      -     0.50   0.50   vcmpeqpd (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -     1.00    -      -      -      -     vcmpeqps %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -     1.00    -      -     0.50   0.50   vcmpeqps (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -     1.00    -      -      -      -     vcmpeqps %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -     1.00    -      -     0.50   0.50   vcmpeqps (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -     1.00    -      -      -      -     vcmpeqsd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -     1.00    -      -     0.50   0.50   vcmpeqsd (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -     1.00    -      -      -      -     vcmpeqss %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -     1.00    -      -     0.50   0.50   vcmpeqss (%rax), %xmm1, %xmm2
 # CHECK-NEXT:  -      -     1.00   1.00    -      -      -      -     vcomisd  %xmm0, %xmm1
 # CHECK-NEXT:  -      -     1.00   1.00    -      -     0.50   0.50   vcomisd  (%rax), %xmm1
 # CHECK-NEXT:  -      -     1.00   1.00    -      -      -      -     vcomiss  %xmm0, %xmm1
index f6f7e215534d045d02f5b80d3d17a361b2905220..73f87ac31031c03d2530977fcdcf71b6673db4f6 100644 (file)
@@ -202,10 +202,10 @@ xorps       (%rax), %xmm2
 # CHECK-NEXT:  2      7     1.00    *                   andnps (%rax), %xmm2
 # CHECK-NEXT:  1      1     1.00                        andps  %xmm0, %xmm2
 # CHECK-NEXT:  2      7     1.00    *                   andps  (%rax), %xmm2
-# CHECK-NEXT:  1      3     1.00                        cmpps  $0, %xmm0, %xmm2
-# CHECK-NEXT:  2      9     1.00    *                   cmpps  $0, (%rax), %xmm2
-# CHECK-NEXT:  1      3     1.00                        cmpss  $0, %xmm0, %xmm2
-# CHECK-NEXT:  2      9     1.00    *                   cmpss  $0, (%rax), %xmm2
+# CHECK-NEXT:  1      3     1.00                        cmpeqps        %xmm0, %xmm2
+# CHECK-NEXT:  2      9     1.00    *                   cmpeqps        (%rax), %xmm2
+# CHECK-NEXT:  1      3     1.00                        cmpeqss        %xmm0, %xmm2
+# CHECK-NEXT:  2      9     1.00    *                   cmpeqss        (%rax), %xmm2
 # CHECK-NEXT:  2      2     1.00                        comiss %xmm0, %xmm1
 # CHECK-NEXT:  3      8     1.00    *                   comiss (%rax), %xmm1
 # CHECK-NEXT:  1      3     1.00                        cvtpi2ps       %mm0, %xmm2
@@ -343,10 +343,10 @@ xorps       (%rax), %xmm2
 # CHECK-NEXT:  -      -      -      -      -     1.00   0.50   0.50   andnps   (%rax), %xmm2
 # CHECK-NEXT:  -      -      -      -      -     1.00    -      -     andps    %xmm0, %xmm2
 # CHECK-NEXT:  -      -      -      -      -     1.00   0.50   0.50   andps    (%rax), %xmm2
-# CHECK-NEXT:  -      -      -     1.00    -      -      -      -     cmpps    $0, %xmm0, %xmm2
-# CHECK-NEXT:  -      -      -     1.00    -      -     0.50   0.50   cmpps    $0, (%rax), %xmm2
-# CHECK-NEXT:  -      -      -     1.00    -      -      -      -     cmpss    $0, %xmm0, %xmm2
-# CHECK-NEXT:  -      -      -     1.00    -      -     0.50   0.50   cmpss    $0, (%rax), %xmm2
+# CHECK-NEXT:  -      -      -     1.00    -      -      -      -     cmpeqps  %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -     1.00    -      -     0.50   0.50   cmpeqps  (%rax), %xmm2
+# CHECK-NEXT:  -      -      -     1.00    -      -      -      -     cmpeqss  %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -     1.00    -      -     0.50   0.50   cmpeqss  (%rax), %xmm2
 # CHECK-NEXT:  -      -     1.00   1.00    -      -      -      -     comiss   %xmm0, %xmm1
 # CHECK-NEXT:  -      -     1.00   1.00    -      -     0.50   0.50   comiss   (%rax), %xmm1
 # CHECK-NEXT:  -      -      -     1.00    -      -      -      -     cvtpi2ps %mm0, %xmm2
index 781ed65cd3d361d77d9bbf927820435ced0e1d61..4186cbfab250d2cadd253c2ee4e20d282b551ddb 100644 (file)
@@ -416,10 +416,10 @@ xorpd       (%rax), %xmm2
 # CHECK-NEXT:  1      1     1.00                        andpd  %xmm0, %xmm2
 # CHECK-NEXT:  2      7     1.00    *                   andpd  (%rax), %xmm2
 # CHECK-NEXT:  4      5     1.00    *      *      U     clflush        (%rax)
-# CHECK-NEXT:  1      3     1.00                        cmppd  $0, %xmm0, %xmm2
-# CHECK-NEXT:  2      9     1.00    *                   cmppd  $0, (%rax), %xmm2
-# CHECK-NEXT:  1      3     1.00                        cmpsd  $0, %xmm0, %xmm2
-# CHECK-NEXT:  2      9     1.00    *                   cmpsd  $0, (%rax), %xmm2
+# CHECK-NEXT:  1      3     1.00                        cmpeqpd        %xmm0, %xmm2
+# CHECK-NEXT:  2      9     1.00    *                   cmpeqpd        (%rax), %xmm2
+# CHECK-NEXT:  1      3     1.00                        cmpeqsd        %xmm0, %xmm2
+# CHECK-NEXT:  2      9     1.00    *                   cmpeqsd        (%rax), %xmm2
 # CHECK-NEXT:  2      2     1.00                        comisd %xmm0, %xmm1
 # CHECK-NEXT:  3      8     1.00    *                   comisd (%rax), %xmm1
 # CHECK-NEXT:  2      4     1.00                        cvtdq2pd       %xmm0, %xmm2
@@ -700,10 +700,10 @@ xorpd       (%rax), %xmm2
 # CHECK-NEXT:  -      -      -      -      -     1.00    -      -     andpd    %xmm0, %xmm2
 # CHECK-NEXT:  -      -      -      -      -     1.00   0.50   0.50   andpd    (%rax), %xmm2
 # CHECK-NEXT:  -      -     0.50   0.50   1.00   1.00   0.50   0.50   clflush  (%rax)
-# CHECK-NEXT:  -      -      -     1.00    -      -      -      -     cmppd    $0, %xmm0, %xmm2
-# CHECK-NEXT:  -      -      -     1.00    -      -     0.50   0.50   cmppd    $0, (%rax), %xmm2
-# CHECK-NEXT:  -      -      -     1.00    -      -      -      -     cmpsd    $0, %xmm0, %xmm2
-# CHECK-NEXT:  -      -      -     1.00    -      -     0.50   0.50   cmpsd    $0, (%rax), %xmm2
+# CHECK-NEXT:  -      -      -     1.00    -      -      -      -     cmpeqpd  %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -     1.00    -      -     0.50   0.50   cmpeqpd  (%rax), %xmm2
+# CHECK-NEXT:  -      -      -     1.00    -      -      -      -     cmpeqsd  %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -     1.00    -      -     0.50   0.50   cmpeqsd  (%rax), %xmm2
 # CHECK-NEXT:  -      -     1.00   1.00    -      -      -      -     comisd   %xmm0, %xmm1
 # CHECK-NEXT:  -      -     1.00   1.00    -      -     0.50   0.50   comisd   (%rax), %xmm1
 # CHECK-NEXT:  -      -      -     1.00    -     1.00    -      -     cvtdq2pd %xmm0, %xmm2
index 6002700cc96f8e4f11ec78c9488ec36f215228ae..1c7a39d40ea995db79a4d1b578cac5a7999fb897 100644 (file)
@@ -1098,18 +1098,18 @@ vzeroupper
 # CHECK-NEXT:  1      7     0.50    *                   vbroadcastsd   (%rax), %ymm2
 # CHECK-NEXT:  1      6     0.50    *                   vbroadcastss   (%rax), %xmm2
 # CHECK-NEXT:  1      7     0.50    *                   vbroadcastss   (%rax), %ymm2
-# CHECK-NEXT:  1      4     0.50                        vcmppd $0, %xmm0, %xmm1, %xmm2
-# CHECK-NEXT:  2      10    0.50    *                   vcmppd $0, (%rax), %xmm1, %xmm2
-# CHECK-NEXT:  1      4     0.50                        vcmppd $0, %ymm0, %ymm1, %ymm2
-# CHECK-NEXT:  2      11    0.50    *                   vcmppd $0, (%rax), %ymm1, %ymm2
-# CHECK-NEXT:  1      4     0.50                        vcmpps $0, %xmm0, %xmm1, %xmm2
-# CHECK-NEXT:  2      10    0.50    *                   vcmpps $0, (%rax), %xmm1, %xmm2
-# CHECK-NEXT:  1      4     0.50                        vcmpps $0, %ymm0, %ymm1, %ymm2
-# CHECK-NEXT:  2      11    0.50    *                   vcmpps $0, (%rax), %ymm1, %ymm2
-# CHECK-NEXT:  1      4     0.50                        vcmpsd $0, %xmm0, %xmm1, %xmm2
-# CHECK-NEXT:  2      9     0.50    *                   vcmpsd $0, (%rax), %xmm1, %xmm2
-# CHECK-NEXT:  1      4     0.50                        vcmpss $0, %xmm0, %xmm1, %xmm2
-# CHECK-NEXT:  2      9     0.50    *                   vcmpss $0, (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      4     0.50                        vcmpeqpd       %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  2      10    0.50    *                   vcmpeqpd       (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      4     0.50                        vcmpeqpd       %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  2      11    0.50    *                   vcmpeqpd       (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  1      4     0.50                        vcmpeqps       %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  2      10    0.50    *                   vcmpeqps       (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      4     0.50                        vcmpeqps       %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  2      11    0.50    *                   vcmpeqps       (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  1      4     0.50                        vcmpeqsd       %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  2      9     0.50    *                   vcmpeqsd       (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      4     0.50                        vcmpeqss       %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  2      9     0.50    *                   vcmpeqss       (%rax), %xmm1, %xmm2
 # CHECK-NEXT:  1      2     1.00                        vcomisd        %xmm0, %xmm1
 # CHECK-NEXT:  2      7     1.00    *                   vcomisd        (%rax), %xmm1
 # CHECK-NEXT:  1      2     1.00                        vcomiss        %xmm0, %xmm1
@@ -1808,18 +1808,18 @@ vzeroupper
 # CHECK-NEXT:  -      -      -      -     0.50   0.50    -      -      -      -     vbroadcastsd       (%rax), %ymm2
 # CHECK-NEXT:  -      -      -      -     0.50   0.50    -      -      -      -     vbroadcastss       (%rax), %xmm2
 # CHECK-NEXT:  -      -      -      -     0.50   0.50    -      -      -      -     vbroadcastss       (%rax), %ymm2
-# CHECK-NEXT:  -      -     0.50   0.50    -      -      -      -      -      -     vcmppd     $0, %xmm0, %xmm1, %xmm2
-# CHECK-NEXT:  -      -     0.50   0.50   0.50   0.50    -      -      -      -     vcmppd     $0, (%rax), %xmm1, %xmm2
-# CHECK-NEXT:  -      -     0.50   0.50    -      -      -      -      -      -     vcmppd     $0, %ymm0, %ymm1, %ymm2
-# CHECK-NEXT:  -      -     0.50   0.50   0.50   0.50    -      -      -      -     vcmppd     $0, (%rax), %ymm1, %ymm2
-# CHECK-NEXT:  -      -     0.50   0.50    -      -      -      -      -      -     vcmpps     $0, %xmm0, %xmm1, %xmm2
-# CHECK-NEXT:  -      -     0.50   0.50   0.50   0.50    -      -      -      -     vcmpps     $0, (%rax), %xmm1, %xmm2
-# CHECK-NEXT:  -      -     0.50   0.50    -      -      -      -      -      -     vcmpps     $0, %ymm0, %ymm1, %ymm2
-# CHECK-NEXT:  -      -     0.50   0.50   0.50   0.50    -      -      -      -     vcmpps     $0, (%rax), %ymm1, %ymm2
-# CHECK-NEXT:  -      -     0.50   0.50    -      -      -      -      -      -     vcmpsd     $0, %xmm0, %xmm1, %xmm2
-# CHECK-NEXT:  -      -     0.50   0.50   0.50   0.50    -      -      -      -     vcmpsd     $0, (%rax), %xmm1, %xmm2
-# CHECK-NEXT:  -      -     0.50   0.50    -      -      -      -      -      -     vcmpss     $0, %xmm0, %xmm1, %xmm2
-# CHECK-NEXT:  -      -     0.50   0.50   0.50   0.50    -      -      -      -     vcmpss     $0, (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -     0.50   0.50    -      -      -      -      -      -     vcmpeqpd   %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -     0.50   0.50   0.50   0.50    -      -      -      -     vcmpeqpd   (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -     0.50   0.50    -      -      -      -      -      -     vcmpeqpd   %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  -      -     0.50   0.50   0.50   0.50    -      -      -      -     vcmpeqpd   (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  -      -     0.50   0.50    -      -      -      -      -      -     vcmpeqps   %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -     0.50   0.50   0.50   0.50    -      -      -      -     vcmpeqps   (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -     0.50   0.50    -      -      -      -      -      -     vcmpeqps   %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  -      -     0.50   0.50   0.50   0.50    -      -      -      -     vcmpeqps   (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  -      -     0.50   0.50    -      -      -      -      -      -     vcmpeqsd   %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -     0.50   0.50   0.50   0.50    -      -      -      -     vcmpeqsd   (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -     0.50   0.50    -      -      -      -      -      -     vcmpeqss   %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -     0.50   0.50   0.50   0.50    -      -      -      -     vcmpeqss   (%rax), %xmm1, %xmm2
 # CHECK-NEXT:  -      -     1.00    -      -      -      -      -      -      -     vcomisd    %xmm0, %xmm1
 # CHECK-NEXT:  -      -     1.00    -     0.50   0.50    -      -      -      -     vcomisd    (%rax), %xmm1
 # CHECK-NEXT:  -      -     1.00    -      -      -      -      -      -      -     vcomiss    %xmm0, %xmm1
index 4f286b0918c389af3afa0038e744228451818f4d..84485469f7600b80836d2f572582e690ad646073 100644 (file)
@@ -202,10 +202,10 @@ xorps       (%rax), %xmm2
 # CHECK-NEXT:  2      7     0.50    *                   andnps (%rax), %xmm2
 # CHECK-NEXT:  1      1     0.33                        andps  %xmm0, %xmm2
 # CHECK-NEXT:  2      7     0.50    *                   andps  (%rax), %xmm2
-# CHECK-NEXT:  1      4     0.50                        cmpps  $0, %xmm0, %xmm2
-# CHECK-NEXT:  2      10    0.50    *                   cmpps  $0, (%rax), %xmm2
-# CHECK-NEXT:  1      4     0.50                        cmpss  $0, %xmm0, %xmm2
-# CHECK-NEXT:  2      9     0.50    *                   cmpss  $0, (%rax), %xmm2
+# CHECK-NEXT:  1      4     0.50                        cmpeqps        %xmm0, %xmm2
+# CHECK-NEXT:  2      10    0.50    *                   cmpeqps        (%rax), %xmm2
+# CHECK-NEXT:  1      4     0.50                        cmpeqss        %xmm0, %xmm2
+# CHECK-NEXT:  2      9     0.50    *                   cmpeqss        (%rax), %xmm2
 # CHECK-NEXT:  1      2     1.00                        comiss %xmm0, %xmm1
 # CHECK-NEXT:  2      7     1.00    *                   comiss (%rax), %xmm1
 # CHECK-NEXT:  2      6     2.00                        cvtpi2ps       %mm0, %xmm2
@@ -345,10 +345,10 @@ xorps       (%rax), %xmm2
 # CHECK-NEXT:  -      -     0.33   0.33   0.50   0.50    -     0.33    -      -     andnps     (%rax), %xmm2
 # CHECK-NEXT:  -      -     0.33   0.33    -      -      -     0.33    -      -     andps      %xmm0, %xmm2
 # CHECK-NEXT:  -      -     0.33   0.33   0.50   0.50    -     0.33    -      -     andps      (%rax), %xmm2
-# CHECK-NEXT:  -      -     0.50   0.50    -      -      -      -      -      -     cmpps      $0, %xmm0, %xmm2
-# CHECK-NEXT:  -      -     0.50   0.50   0.50   0.50    -      -      -      -     cmpps      $0, (%rax), %xmm2
-# CHECK-NEXT:  -      -     0.50   0.50    -      -      -      -      -      -     cmpss      $0, %xmm0, %xmm2
-# CHECK-NEXT:  -      -     0.50   0.50   0.50   0.50    -      -      -      -     cmpss      $0, (%rax), %xmm2
+# CHECK-NEXT:  -      -     0.50   0.50    -      -      -      -      -      -     cmpeqps    %xmm0, %xmm2
+# CHECK-NEXT:  -      -     0.50   0.50   0.50   0.50    -      -      -      -     cmpeqps    (%rax), %xmm2
+# CHECK-NEXT:  -      -     0.50   0.50    -      -      -      -      -      -     cmpeqss    %xmm0, %xmm2
+# CHECK-NEXT:  -      -     0.50   0.50   0.50   0.50    -      -      -      -     cmpeqss    (%rax), %xmm2
 # CHECK-NEXT:  -      -     1.00    -      -      -      -      -      -      -     comiss     %xmm0, %xmm1
 # CHECK-NEXT:  -      -     1.00    -     0.50   0.50    -      -      -      -     comiss     (%rax), %xmm1
 # CHECK-NEXT:  -      -     2.00    -      -      -      -      -      -      -     cvtpi2ps   %mm0, %xmm2
index 8c30e781b3931e1351635f225ed51021104a967c..20e333472afa69cd6f24e2445ffb32c5703bc80b 100644 (file)
@@ -416,10 +416,10 @@ xorpd       (%rax), %xmm2
 # CHECK-NEXT:  1      1     0.33                        andpd  %xmm0, %xmm2
 # CHECK-NEXT:  2      7     0.50    *                   andpd  (%rax), %xmm2
 # CHECK-NEXT:  2      2     1.00    *      *      U     clflush        (%rax)
-# CHECK-NEXT:  1      4     0.50                        cmppd  $0, %xmm0, %xmm2
-# CHECK-NEXT:  2      10    0.50    *                   cmppd  $0, (%rax), %xmm2
-# CHECK-NEXT:  1      4     0.50                        cmpsd  $0, %xmm0, %xmm2
-# CHECK-NEXT:  2      9     0.50    *                   cmpsd  $0, (%rax), %xmm2
+# CHECK-NEXT:  1      4     0.50                        cmpeqpd        %xmm0, %xmm2
+# CHECK-NEXT:  2      10    0.50    *                   cmpeqpd        (%rax), %xmm2
+# CHECK-NEXT:  1      4     0.50                        cmpeqsd        %xmm0, %xmm2
+# CHECK-NEXT:  2      9     0.50    *                   cmpeqsd        (%rax), %xmm2
 # CHECK-NEXT:  1      2     1.00                        comisd %xmm0, %xmm1
 # CHECK-NEXT:  2      7     1.00    *                   comisd (%rax), %xmm1
 # CHECK-NEXT:  2      5     1.00                        cvtdq2pd       %xmm0, %xmm2
@@ -702,10 +702,10 @@ xorpd       (%rax), %xmm2
 # CHECK-NEXT:  -      -     0.33   0.33    -      -      -     0.33    -      -     andpd      %xmm0, %xmm2
 # CHECK-NEXT:  -      -     0.33   0.33   0.50   0.50    -     0.33    -      -     andpd      (%rax), %xmm2
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   1.25    -     clflush    (%rax)
-# CHECK-NEXT:  -      -     0.50   0.50    -      -      -      -      -      -     cmppd      $0, %xmm0, %xmm2
-# CHECK-NEXT:  -      -     0.50   0.50   0.50   0.50    -      -      -      -     cmppd      $0, (%rax), %xmm2
-# CHECK-NEXT:  -      -     0.50   0.50    -      -      -      -      -      -     cmpsd      $0, %xmm0, %xmm2
-# CHECK-NEXT:  -      -     0.50   0.50   0.50   0.50    -      -      -      -     cmpsd      $0, (%rax), %xmm2
+# CHECK-NEXT:  -      -     0.50   0.50    -      -      -      -      -      -     cmpeqpd    %xmm0, %xmm2
+# CHECK-NEXT:  -      -     0.50   0.50   0.50   0.50    -      -      -      -     cmpeqpd    (%rax), %xmm2
+# CHECK-NEXT:  -      -     0.50   0.50    -      -      -      -      -      -     cmpeqsd    %xmm0, %xmm2
+# CHECK-NEXT:  -      -     0.50   0.50   0.50   0.50    -      -      -      -     cmpeqsd    (%rax), %xmm2
 # CHECK-NEXT:  -      -     1.00    -      -      -      -      -      -      -     comisd     %xmm0, %xmm1
 # CHECK-NEXT:  -      -     1.00    -     0.50   0.50    -      -      -      -     comisd     (%rax), %xmm1
 # CHECK-NEXT:  -      -     1.00    -      -      -      -     1.00    -      -     cvtdq2pd   %xmm0, %xmm2
index 5d97881062f6b0a9f5afd9bd36794f8319ed59a5..21acc8562d89683c55468d3986b0a2022e063b16 100644 (file)
@@ -1098,18 +1098,18 @@ vzeroupper
 # CHECK-NEXT:  1      7     0.50    *                   vbroadcastsd   (%rax), %ymm2
 # CHECK-NEXT:  1      6     0.50    *                   vbroadcastss   (%rax), %xmm2
 # CHECK-NEXT:  1      7     0.50    *                   vbroadcastss   (%rax), %ymm2
-# CHECK-NEXT:  1      4     0.50                        vcmppd $0, %xmm0, %xmm1, %xmm2
-# CHECK-NEXT:  2      10    0.50    *                   vcmppd $0, (%rax), %xmm1, %xmm2
-# CHECK-NEXT:  1      4     0.50                        vcmppd $0, %ymm0, %ymm1, %ymm2
-# CHECK-NEXT:  2      11    0.50    *                   vcmppd $0, (%rax), %ymm1, %ymm2
-# CHECK-NEXT:  1      4     0.50                        vcmpps $0, %xmm0, %xmm1, %xmm2
-# CHECK-NEXT:  2      10    0.50    *                   vcmpps $0, (%rax), %xmm1, %xmm2
-# CHECK-NEXT:  1      4     0.50                        vcmpps $0, %ymm0, %ymm1, %ymm2
-# CHECK-NEXT:  2      11    0.50    *                   vcmpps $0, (%rax), %ymm1, %ymm2
-# CHECK-NEXT:  1      4     0.50                        vcmpsd $0, %xmm0, %xmm1, %xmm2
-# CHECK-NEXT:  2      9     0.50    *                   vcmpsd $0, (%rax), %xmm1, %xmm2
-# CHECK-NEXT:  1      4     0.50                        vcmpss $0, %xmm0, %xmm1, %xmm2
-# CHECK-NEXT:  2      9     0.50    *                   vcmpss $0, (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      4     0.50                        vcmpeqpd       %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  2      10    0.50    *                   vcmpeqpd       (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      4     0.50                        vcmpeqpd       %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  2      11    0.50    *                   vcmpeqpd       (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  1      4     0.50                        vcmpeqps       %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  2      10    0.50    *                   vcmpeqps       (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      4     0.50                        vcmpeqps       %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  2      11    0.50    *                   vcmpeqps       (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  1      4     0.50                        vcmpeqsd       %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  2      9     0.50    *                   vcmpeqsd       (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      4     0.50                        vcmpeqss       %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  2      9     0.50    *                   vcmpeqss       (%rax), %xmm1, %xmm2
 # CHECK-NEXT:  1      2     1.00                        vcomisd        %xmm0, %xmm1
 # CHECK-NEXT:  2      7     1.00    *                   vcomisd        (%rax), %xmm1
 # CHECK-NEXT:  1      2     1.00                        vcomiss        %xmm0, %xmm1
@@ -1808,18 +1808,18 @@ vzeroupper
 # CHECK-NEXT:  -      -      -      -     0.50   0.50    -      -      -      -     vbroadcastsd       (%rax), %ymm2
 # CHECK-NEXT:  -      -      -      -     0.50   0.50    -      -      -      -     vbroadcastss       (%rax), %xmm2
 # CHECK-NEXT:  -      -      -      -     0.50   0.50    -      -      -      -     vbroadcastss       (%rax), %ymm2
-# CHECK-NEXT:  -      -     0.50   0.50    -      -      -      -      -      -     vcmppd     $0, %xmm0, %xmm1, %xmm2
-# CHECK-NEXT:  -      -     0.50   0.50   0.50   0.50    -      -      -      -     vcmppd     $0, (%rax), %xmm1, %xmm2
-# CHECK-NEXT:  -      -     0.50   0.50    -      -      -      -      -      -     vcmppd     $0, %ymm0, %ymm1, %ymm2
-# CHECK-NEXT:  -      -     0.50   0.50   0.50   0.50    -      -      -      -     vcmppd     $0, (%rax), %ymm1, %ymm2
-# CHECK-NEXT:  -      -     0.50   0.50    -      -      -      -      -      -     vcmpps     $0, %xmm0, %xmm1, %xmm2
-# CHECK-NEXT:  -      -     0.50   0.50   0.50   0.50    -      -      -      -     vcmpps     $0, (%rax), %xmm1, %xmm2
-# CHECK-NEXT:  -      -     0.50   0.50    -      -      -      -      -      -     vcmpps     $0, %ymm0, %ymm1, %ymm2
-# CHECK-NEXT:  -      -     0.50   0.50   0.50   0.50    -      -      -      -     vcmpps     $0, (%rax), %ymm1, %ymm2
-# CHECK-NEXT:  -      -     0.50   0.50    -      -      -      -      -      -     vcmpsd     $0, %xmm0, %xmm1, %xmm2
-# CHECK-NEXT:  -      -     0.50   0.50   0.50   0.50    -      -      -      -     vcmpsd     $0, (%rax), %xmm1, %xmm2
-# CHECK-NEXT:  -      -     0.50   0.50    -      -      -      -      -      -     vcmpss     $0, %xmm0, %xmm1, %xmm2
-# CHECK-NEXT:  -      -     0.50   0.50   0.50   0.50    -      -      -      -     vcmpss     $0, (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -     0.50   0.50    -      -      -      -      -      -     vcmpeqpd   %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -     0.50   0.50   0.50   0.50    -      -      -      -     vcmpeqpd   (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -     0.50   0.50    -      -      -      -      -      -     vcmpeqpd   %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  -      -     0.50   0.50   0.50   0.50    -      -      -      -     vcmpeqpd   (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  -      -     0.50   0.50    -      -      -      -      -      -     vcmpeqps   %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -     0.50   0.50   0.50   0.50    -      -      -      -     vcmpeqps   (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -     0.50   0.50    -      -      -      -      -      -     vcmpeqps   %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  -      -     0.50   0.50   0.50   0.50    -      -      -      -     vcmpeqps   (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  -      -     0.50   0.50    -      -      -      -      -      -     vcmpeqsd   %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -     0.50   0.50   0.50   0.50    -      -      -      -     vcmpeqsd   (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -     0.50   0.50    -      -      -      -      -      -     vcmpeqss   %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -     0.50   0.50   0.50   0.50    -      -      -      -     vcmpeqss   (%rax), %xmm1, %xmm2
 # CHECK-NEXT:  -      -     1.00    -      -      -      -      -      -      -     vcomisd    %xmm0, %xmm1
 # CHECK-NEXT:  -      -     1.00    -     0.50   0.50    -      -      -      -     vcomisd    (%rax), %xmm1
 # CHECK-NEXT:  -      -     1.00    -      -      -      -      -      -      -     vcomiss    %xmm0, %xmm1
index 3200671e8f829cd11eff1c7ca42a005dd1db31ae..b38f1dd9b56b5593cb22ce798c0ce292a3e81270 100644 (file)
@@ -202,10 +202,10 @@ xorps       (%rax), %xmm2
 # CHECK-NEXT:  2      7     0.50    *                   andnps (%rax), %xmm2
 # CHECK-NEXT:  1      1     0.33                        andps  %xmm0, %xmm2
 # CHECK-NEXT:  2      7     0.50    *                   andps  (%rax), %xmm2
-# CHECK-NEXT:  1      4     0.50                        cmpps  $0, %xmm0, %xmm2
-# CHECK-NEXT:  2      10    0.50    *                   cmpps  $0, (%rax), %xmm2
-# CHECK-NEXT:  1      4     0.50                        cmpss  $0, %xmm0, %xmm2
-# CHECK-NEXT:  2      9     0.50    *                   cmpss  $0, (%rax), %xmm2
+# CHECK-NEXT:  1      4     0.50                        cmpeqps        %xmm0, %xmm2
+# CHECK-NEXT:  2      10    0.50    *                   cmpeqps        (%rax), %xmm2
+# CHECK-NEXT:  1      4     0.50                        cmpeqss        %xmm0, %xmm2
+# CHECK-NEXT:  2      9     0.50    *                   cmpeqss        (%rax), %xmm2
 # CHECK-NEXT:  1      2     1.00                        comiss %xmm0, %xmm1
 # CHECK-NEXT:  2      7     1.00    *                   comiss (%rax), %xmm1
 # CHECK-NEXT:  2      6     2.00                        cvtpi2ps       %mm0, %xmm2
@@ -345,10 +345,10 @@ xorps       (%rax), %xmm2
 # CHECK-NEXT:  -      -     0.33   0.33   0.50   0.50    -     0.33    -      -     andnps     (%rax), %xmm2
 # CHECK-NEXT:  -      -     0.33   0.33    -      -      -     0.33    -      -     andps      %xmm0, %xmm2
 # CHECK-NEXT:  -      -     0.33   0.33   0.50   0.50    -     0.33    -      -     andps      (%rax), %xmm2
-# CHECK-NEXT:  -      -     0.50   0.50    -      -      -      -      -      -     cmpps      $0, %xmm0, %xmm2
-# CHECK-NEXT:  -      -     0.50   0.50   0.50   0.50    -      -      -      -     cmpps      $0, (%rax), %xmm2
-# CHECK-NEXT:  -      -     0.50   0.50    -      -      -      -      -      -     cmpss      $0, %xmm0, %xmm2
-# CHECK-NEXT:  -      -     0.50   0.50   0.50   0.50    -      -      -      -     cmpss      $0, (%rax), %xmm2
+# CHECK-NEXT:  -      -     0.50   0.50    -      -      -      -      -      -     cmpeqps    %xmm0, %xmm2
+# CHECK-NEXT:  -      -     0.50   0.50   0.50   0.50    -      -      -      -     cmpeqps    (%rax), %xmm2
+# CHECK-NEXT:  -      -     0.50   0.50    -      -      -      -      -      -     cmpeqss    %xmm0, %xmm2
+# CHECK-NEXT:  -      -     0.50   0.50   0.50   0.50    -      -      -      -     cmpeqss    (%rax), %xmm2
 # CHECK-NEXT:  -      -     1.00    -      -      -      -      -      -      -     comiss     %xmm0, %xmm1
 # CHECK-NEXT:  -      -     1.00    -     0.50   0.50    -      -      -      -     comiss     (%rax), %xmm1
 # CHECK-NEXT:  -      -      -      -      -      -      -     2.00    -      -     cvtpi2ps   %mm0, %xmm2
index 90e9b69a233d3b9ae166c73110f9a12546443382..e625300cdf98c0d15df9766c26ecb9433d32066d 100644 (file)
@@ -416,10 +416,10 @@ xorpd       (%rax), %xmm2
 # CHECK-NEXT:  1      1     0.33                        andpd  %xmm0, %xmm2
 # CHECK-NEXT:  2      7     0.50    *                   andpd  (%rax), %xmm2
 # CHECK-NEXT:  2      2     1.00    *      *      U     clflush        (%rax)
-# CHECK-NEXT:  1      4     0.50                        cmppd  $0, %xmm0, %xmm2
-# CHECK-NEXT:  2      10    0.50    *                   cmppd  $0, (%rax), %xmm2
-# CHECK-NEXT:  1      4     0.50                        cmpsd  $0, %xmm0, %xmm2
-# CHECK-NEXT:  2      9     0.50    *                   cmpsd  $0, (%rax), %xmm2
+# CHECK-NEXT:  1      4     0.50                        cmpeqpd        %xmm0, %xmm2
+# CHECK-NEXT:  2      10    0.50    *                   cmpeqpd        (%rax), %xmm2
+# CHECK-NEXT:  1      4     0.50                        cmpeqsd        %xmm0, %xmm2
+# CHECK-NEXT:  2      9     0.50    *                   cmpeqsd        (%rax), %xmm2
 # CHECK-NEXT:  1      2     1.00                        comisd %xmm0, %xmm1
 # CHECK-NEXT:  2      7     1.00    *                   comisd (%rax), %xmm1
 # CHECK-NEXT:  1      4     0.50                        cvtdq2pd       %xmm0, %xmm2
@@ -702,10 +702,10 @@ xorpd       (%rax), %xmm2
 # CHECK-NEXT:  -      -     0.33   0.33    -      -      -     0.33    -      -     andpd      %xmm0, %xmm2
 # CHECK-NEXT:  -      -     0.33   0.33   0.50   0.50    -     0.33    -      -     andpd      (%rax), %xmm2
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   1.25    -     clflush    (%rax)
-# CHECK-NEXT:  -      -     0.50   0.50    -      -      -      -      -      -     cmppd      $0, %xmm0, %xmm2
-# CHECK-NEXT:  -      -     0.50   0.50   0.50   0.50    -      -      -      -     cmppd      $0, (%rax), %xmm2
-# CHECK-NEXT:  -      -     0.50   0.50    -      -      -      -      -      -     cmpsd      $0, %xmm0, %xmm2
-# CHECK-NEXT:  -      -     0.50   0.50   0.50   0.50    -      -      -      -     cmpsd      $0, (%rax), %xmm2
+# CHECK-NEXT:  -      -     0.50   0.50    -      -      -      -      -      -     cmpeqpd    %xmm0, %xmm2
+# CHECK-NEXT:  -      -     0.50   0.50   0.50   0.50    -      -      -      -     cmpeqpd    (%rax), %xmm2
+# CHECK-NEXT:  -      -     0.50   0.50    -      -      -      -      -      -     cmpeqsd    %xmm0, %xmm2
+# CHECK-NEXT:  -      -     0.50   0.50   0.50   0.50    -      -      -      -     cmpeqsd    (%rax), %xmm2
 # CHECK-NEXT:  -      -     1.00    -      -      -      -      -      -      -     comisd     %xmm0, %xmm1
 # CHECK-NEXT:  -      -     1.00    -     0.50   0.50    -      -      -      -     comisd     (%rax), %xmm1
 # CHECK-NEXT:  -      -     0.50   0.50    -      -      -      -      -      -     cvtdq2pd   %xmm0, %xmm2
index 18befbff58483bdca3b4f48b88b128c3dff3ab08..ab11410c9d084f53c088a48f8cd86d5255c4de45 100644 (file)
@@ -1098,18 +1098,18 @@ vzeroupper
 # CHECK-NEXT:  1      8     0.50    *                   vbroadcastsd   (%rax), %ymm2
 # CHECK-NEXT:  1      8     0.50    *                   vbroadcastss   (%rax), %xmm2
 # CHECK-NEXT:  1      8     0.50    *                   vbroadcastss   (%rax), %ymm2
-# CHECK-NEXT:  1      3     1.00                        vcmppd $0, %xmm0, %xmm1, %xmm2
-# CHECK-NEXT:  1      10    1.00    *                   vcmppd $0, (%rax), %xmm1, %xmm2
-# CHECK-NEXT:  1      3     1.00                        vcmppd $0, %ymm0, %ymm1, %ymm2
-# CHECK-NEXT:  1      10    1.00    *                   vcmppd $0, (%rax), %ymm1, %ymm2
-# CHECK-NEXT:  1      3     1.00                        vcmpps $0, %xmm0, %xmm1, %xmm2
-# CHECK-NEXT:  1      10    1.00    *                   vcmpps $0, (%rax), %xmm1, %xmm2
-# CHECK-NEXT:  1      3     1.00                        vcmpps $0, %ymm0, %ymm1, %ymm2
-# CHECK-NEXT:  1      10    1.00    *                   vcmpps $0, (%rax), %ymm1, %ymm2
-# CHECK-NEXT:  1      3     1.00                        vcmpsd $0, %xmm0, %xmm1, %xmm2
-# CHECK-NEXT:  1      10    1.00    *                   vcmpsd $0, (%rax), %xmm1, %xmm2
-# CHECK-NEXT:  1      3     1.00                        vcmpss $0, %xmm0, %xmm1, %xmm2
-# CHECK-NEXT:  1      10    1.00    *                   vcmpss $0, (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      3     1.00                        vcmpeqpd       %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  1      10    1.00    *                   vcmpeqpd       (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      3     1.00                        vcmpeqpd       %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  1      10    1.00    *                   vcmpeqpd       (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  1      3     1.00                        vcmpeqps       %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  1      10    1.00    *                   vcmpeqps       (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      3     1.00                        vcmpeqps       %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  1      10    1.00    *                   vcmpeqps       (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  1      3     1.00                        vcmpeqsd       %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  1      10    1.00    *                   vcmpeqsd       (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      3     1.00                        vcmpeqss       %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  1      10    1.00    *                   vcmpeqss       (%rax), %xmm1, %xmm2
 # CHECK-NEXT:  1      3     1.00                        vcomisd        %xmm0, %xmm1
 # CHECK-NEXT:  1      10    1.00    *                   vcomisd        (%rax), %xmm1
 # CHECK-NEXT:  1      3     1.00                        vcomiss        %xmm0, %xmm1
@@ -1810,18 +1810,18 @@ vzeroupper
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -     0.50   0.50    -      -     vbroadcastsd (%rax), %ymm2
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -     0.50   0.50    -      -     vbroadcastss (%rax), %xmm2
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -     0.50   0.50    -      -     vbroadcastss (%rax), %ymm2
-# CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -      -      -     vcmppd       $0, %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -      -      -      -     vcmppd       $0, (%rax), %xmm1, %xmm2
-# CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -      -      -     vcmppd       $0, %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -      -      -      -     vcmppd       $0, (%rax), %ymm1, %ymm2
-# CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -      -      -     vcmpps       $0, %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -      -      -      -     vcmpps       $0, (%rax), %xmm1, %xmm2
-# CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -      -      -     vcmpps       $0, %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -      -      -      -     vcmpps       $0, (%rax), %ymm1, %ymm2
-# CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -      -      -     vcmpsd       $0, %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -      -      -      -     vcmpsd       $0, (%rax), %xmm1, %xmm2
-# CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -      -      -     vcmpss       $0, %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -      -      -      -     vcmpss       $0, (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -      -      -     vcmpeqpd     %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -      -      -      -     vcmpeqpd     (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -      -      -     vcmpeqpd     %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -      -      -      -     vcmpeqpd     (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -      -      -     vcmpeqps     %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -      -      -      -     vcmpeqps     (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -      -      -     vcmpeqps     %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -      -      -      -     vcmpeqps     (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -      -      -     vcmpeqsd     %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -      -      -      -     vcmpeqsd     (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -      -      -     vcmpeqss     %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -      -      -      -     vcmpeqss     (%rax), %xmm1, %xmm2
 # CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -      -      -     vcomisd      %xmm0, %xmm1
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -      -      -      -     vcomisd      (%rax), %xmm1
 # CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -      -      -     vcomiss      %xmm0, %xmm1
index d861e9d3857115395442cfd9f297713eedc1baa5..945bcdda7805d432f31d5213fd7400ac8a87bb37 100644 (file)
@@ -202,10 +202,10 @@ xorps       (%rax), %xmm2
 # CHECK-NEXT:  1      8     0.50    *                   andnps (%rax), %xmm2
 # CHECK-NEXT:  1      1     0.25                        andps  %xmm0, %xmm2
 # CHECK-NEXT:  1      8     0.50    *                   andps  (%rax), %xmm2
-# CHECK-NEXT:  1      3     1.00                        cmpps  $0, %xmm0, %xmm2
-# CHECK-NEXT:  1      10    1.00    *                   cmpps  $0, (%rax), %xmm2
-# CHECK-NEXT:  1      3     1.00                        cmpss  $0, %xmm0, %xmm2
-# CHECK-NEXT:  1      10    1.00    *                   cmpss  $0, (%rax), %xmm2
+# CHECK-NEXT:  1      3     1.00                        cmpeqps        %xmm0, %xmm2
+# CHECK-NEXT:  1      10    1.00    *                   cmpeqps        (%rax), %xmm2
+# CHECK-NEXT:  1      3     1.00                        cmpeqss        %xmm0, %xmm2
+# CHECK-NEXT:  1      10    1.00    *                   cmpeqss        (%rax), %xmm2
 # CHECK-NEXT:  1      3     1.00                        comiss %xmm0, %xmm1
 # CHECK-NEXT:  1      10    1.00    *                   comiss (%rax), %xmm1
 # CHECK-NEXT:  1      5     1.00                        cvtpi2ps       %mm0, %xmm2
@@ -347,10 +347,10 @@ xorps       (%rax), %xmm2
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -     0.25   0.25   0.25   0.25    -     andnps       (%rax), %xmm2
 # CHECK-NEXT:  -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -     andps        %xmm0, %xmm2
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -     0.25   0.25   0.25   0.25    -     andps        (%rax), %xmm2
-# CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -      -      -     cmpps        $0, %xmm0, %xmm2
-# CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -      -      -      -     cmpps        $0, (%rax), %xmm2
-# CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -      -      -     cmpss        $0, %xmm0, %xmm2
-# CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -      -      -      -     cmpss        $0, (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -      -      -     cmpeqps      %xmm0, %xmm2
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -      -      -      -     cmpeqps      (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -      -      -     cmpeqss      %xmm0, %xmm2
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -      -      -      -     cmpeqss      (%rax), %xmm2
 # CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -      -      -     comiss       %xmm0, %xmm1
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -      -      -      -     comiss       (%rax), %xmm1
 # CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00    -     cvtpi2ps     %mm0, %xmm2
index d6b9c025766221460f07556b66607441dca715bb..508efb191082b7b5739c7cafa804042eb98c8299 100644 (file)
@@ -416,10 +416,10 @@ xorpd       (%rax), %xmm2
 # CHECK-NEXT:  1      1     0.25                        andpd  %xmm0, %xmm2
 # CHECK-NEXT:  1      8     0.50    *                   andpd  (%rax), %xmm2
 # CHECK-NEXT:  1      8     0.50    *      *      U     clflush        (%rax)
-# CHECK-NEXT:  1      3     1.00                        cmppd  $0, %xmm0, %xmm2
-# CHECK-NEXT:  1      10    1.00    *                   cmppd  $0, (%rax), %xmm2
-# CHECK-NEXT:  1      3     1.00                        cmpsd  $0, %xmm0, %xmm2
-# CHECK-NEXT:  1      10    1.00    *                   cmpsd  $0, (%rax), %xmm2
+# CHECK-NEXT:  1      3     1.00                        cmpeqpd        %xmm0, %xmm2
+# CHECK-NEXT:  1      10    1.00    *                   cmpeqpd        (%rax), %xmm2
+# CHECK-NEXT:  1      3     1.00                        cmpeqsd        %xmm0, %xmm2
+# CHECK-NEXT:  1      10    1.00    *                   cmpeqsd        (%rax), %xmm2
 # CHECK-NEXT:  1      3     1.00                        comisd %xmm0, %xmm1
 # CHECK-NEXT:  1      10    1.00    *                   comisd (%rax), %xmm1
 # CHECK-NEXT:  1      5     1.00                        cvtdq2pd       %xmm0, %xmm2
@@ -704,10 +704,10 @@ xorpd       (%rax), %xmm2
 # CHECK-NEXT:  -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -     andpd        %xmm0, %xmm2
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -     0.25   0.25   0.25   0.25    -     andpd        (%rax), %xmm2
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -     clflush      (%rax)
-# CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -      -      -     cmppd        $0, %xmm0, %xmm2
-# CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -      -      -      -     cmppd        $0, (%rax), %xmm2
-# CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -      -      -     cmpsd        $0, %xmm0, %xmm2
-# CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -      -      -      -     cmpsd        $0, (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -      -      -     cmpeqpd      %xmm0, %xmm2
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -      -      -      -     cmpeqpd      (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -      -      -     cmpeqsd      %xmm0, %xmm2
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -      -      -      -     cmpeqsd      (%rax), %xmm2
 # CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -      -      -     comisd       %xmm0, %xmm1
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -      -      -      -     comisd       (%rax), %xmm1
 # CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   1.00    -     cvtdq2pd     %xmm0, %xmm2
index e18417385a8266edbbe2dc3a529c4d2dccb51b2a..ef897420215ea1dab751ff0e2c3d145b064efa94 100644 (file)
@@ -848,8 +848,6 @@ OperandType RecognizableInstr::typeFromString(const std::string &s,
   TYPE("i64i32imm_pcrel",     TYPE_REL)
   TYPE("i16imm_pcrel",        TYPE_REL)
   TYPE("i32imm_pcrel",        TYPE_REL)
-  TYPE("SSECC",               TYPE_IMM3)
-  TYPE("AVXCC",               TYPE_IMM5)
   TYPE("AVX512RC",            TYPE_IMM)
   TYPE("brtarget32",          TYPE_REL)
   TYPE("brtarget16",          TYPE_REL)
@@ -929,8 +927,6 @@ RecognizableInstr::immediateEncodingFromString(const std::string &s,
     ENCODING("i16imm",        ENCODING_IW)
   }
   ENCODING("i32i8imm",        ENCODING_IB)
-  ENCODING("SSECC",           ENCODING_IB)
-  ENCODING("AVXCC",           ENCODING_IB)
   ENCODING("AVX512RC",        ENCODING_IRC)
   ENCODING("i16imm",          ENCODING_Iv)
   ENCODING("i16i8imm",        ENCODING_IB)