[llvm] 6eb8fc9 - [X86] Add some missing dependency-breaking zero idiom patterns to scheduler models

Simon Pilgrim via llvm-commits llvm-commits at lists.llvm.org
Wed Jan 19 03:30:41 PST 2022


Author: Simon Pilgrim
Date: 2022-01-19T11:29:33Z
New Revision: 6eb8fc924485facd911b49370f53ab93728b2935

URL: https://github.com/llvm/llvm-project/commit/6eb8fc924485facd911b49370f53ab93728b2935
DIFF: https://github.com/llvm/llvm-project/commit/6eb8fc924485facd911b49370f53ab93728b2935.diff

LOG: [X86] Add some missing dependency-breaking zero idiom patterns to scheduler models

Many of the x86 scheduler models are not accounting for their microarch's ability to handle dependency-breaking zero idioms (pxor xmm0,xmm0 etc.), which is causing some notable differences when comparing llvm-mca reports to iaca, uops.info etc.

These are based on the Intel AoMs and Agner's docs which list the instructions handled on each cpu model - there may be more, although tbh the xor/pxor/xorps/xorpd are by far the most commonly encountered.

Once this is in place we also need to review missing support for 'allones' idioms and reg-reg move elimination, but this needs fixing first.

@lebedev.ri The Barcelona test changes are due to the cpu still being tagged as using the SandyBridge model, if/when you get back to D63628 these will need to be addressed.

Based on an original patch by @andreadb (Andrea Di Biagio)

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

Added: 
    

Modified: 
    llvm/lib/Target/X86/X86SchedBroadwell.td
    llvm/lib/Target/X86/X86SchedHaswell.td
    llvm/lib/Target/X86/X86SchedIceLake.td
    llvm/lib/Target/X86/X86SchedSandyBridge.td
    llvm/lib/Target/X86/X86SchedSkylakeClient.td
    llvm/lib/Target/X86/X86SchedSkylakeServer.td
    llvm/lib/Target/X86/X86ScheduleSLM.td
    llvm/lib/Target/X86/X86ScheduleZnver1.td
    llvm/lib/Target/X86/X86ScheduleZnver2.td
    llvm/test/tools/llvm-mca/X86/Barcelona/reg-move-elimination-1.s
    llvm/test/tools/llvm-mca/X86/Barcelona/reg-move-elimination-2.s
    llvm/test/tools/llvm-mca/X86/Barcelona/reg-move-elimination-3.s
    llvm/test/tools/llvm-mca/X86/Barcelona/reg-move-elimination-4.s
    llvm/test/tools/llvm-mca/X86/Barcelona/reg-move-elimination-5.s
    llvm/test/tools/llvm-mca/X86/Barcelona/reg-move-elimination-6.s
    llvm/test/tools/llvm-mca/X86/Barcelona/zero-idioms.s
    llvm/test/tools/llvm-mca/X86/Broadwell/zero-idioms.s
    llvm/test/tools/llvm-mca/X86/Haswell/zero-idioms.s
    llvm/test/tools/llvm-mca/X86/IceLakeServer/zero-idioms.s
    llvm/test/tools/llvm-mca/X86/SLM/zero-idioms.s
    llvm/test/tools/llvm-mca/X86/SandyBridge/zero-idioms.s
    llvm/test/tools/llvm-mca/X86/SkylakeClient/zero-idioms.s
    llvm/test/tools/llvm-mca/X86/SkylakeServer/zero-idioms.s
    llvm/test/tools/llvm-mca/X86/Znver1/zero-idioms.s
    llvm/test/tools/llvm-mca/X86/Znver2/zero-idioms.s

Removed: 
    


################################################################################
diff  --git a/llvm/lib/Target/X86/X86SchedBroadwell.td b/llvm/lib/Target/X86/X86SchedBroadwell.td
index a47abf1e83a0c..8e317dc22bd65 100644
--- a/llvm/lib/Target/X86/X86SchedBroadwell.td
+++ b/llvm/lib/Target/X86/X86SchedBroadwell.td
@@ -1743,4 +1743,40 @@ def BWSETA_SETBErm :  SchedWriteVariant<[
 def : InstRW<[BWSETA_SETBErr], (instrs SETCCr)>;
 def : InstRW<[BWSETA_SETBErm], (instrs SETCCm)>;
 
+///////////////////////////////////////////////////////////////////////////////
+// Dependency breaking instructions.
+///////////////////////////////////////////////////////////////////////////////
+
+def : IsZeroIdiomFunction<[
+  // GPR Zero-idioms.
+  DepBreakingClass<[ SUB32rr, SUB64rr, XOR32rr, XOR64rr ], ZeroIdiomPredicate>,
+
+  // SSE Zero-idioms.
+  DepBreakingClass<[
+    // fp variants.
+    XORPSrr, XORPDrr,
+
+    // int variants.
+    PXORrr,
+    PSUBBrr, PSUBWrr, PSUBDrr, PSUBQrr,
+    PCMPGTBrr, PCMPGTDrr, PCMPGTQrr, PCMPGTWrr
+  ], ZeroIdiomPredicate>,
+
+  // AVX Zero-idioms.
+  DepBreakingClass<[
+    // xmm fp variants.
+    VXORPSrr, VXORPDrr,
+
+    // xmm int variants.
+    VPXORrr,
+    VPSUBBrr, VPSUBWrr, VPSUBDrr, VPSUBQrr,
+    VPCMPGTBrr, VPCMPGTWrr, VPCMPGTDrr, VPCMPGTQrr,
+
+    // ymm variants.
+    VXORPSYrr, VXORPDYrr, VPXORYrr,
+    VPSUBBYrr, VPSUBWYrr, VPSUBDYrr, VPSUBQYrr,
+    VPCMPGTBYrr, VPCMPGTWYrr, VPCMPGTDYrr, VPCMPGTQYrr
+  ], ZeroIdiomPredicate>,
+]>;
+
 } // SchedModel

diff  --git a/llvm/lib/Target/X86/X86SchedHaswell.td b/llvm/lib/Target/X86/X86SchedHaswell.td
index 278e11dfa727c..1cd0b33796847 100644
--- a/llvm/lib/Target/X86/X86SchedHaswell.td
+++ b/llvm/lib/Target/X86/X86SchedHaswell.td
@@ -2032,4 +2032,40 @@ def HWSETA_SETBErm :  SchedWriteVariant<[
 def : InstRW<[HWSETA_SETBErr], (instrs SETCCr)>;
 def : InstRW<[HWSETA_SETBErm], (instrs SETCCm)>;
 
+///////////////////////////////////////////////////////////////////////////////
+// Dependency breaking instructions.
+///////////////////////////////////////////////////////////////////////////////
+
+def : IsZeroIdiomFunction<[
+  // GPR Zero-idioms.
+  DepBreakingClass<[ SUB32rr, SUB64rr, XOR32rr, XOR64rr ], ZeroIdiomPredicate>,
+
+  // SSE Zero-idioms.
+  DepBreakingClass<[
+    // fp variants.
+    XORPSrr, XORPDrr,
+
+    // int variants.
+    PXORrr,
+    PSUBBrr, PSUBWrr, PSUBDrr, PSUBQrr,
+    PCMPGTBrr, PCMPGTDrr, PCMPGTQrr, PCMPGTWrr
+  ], ZeroIdiomPredicate>,
+
+  // AVX Zero-idioms.
+  DepBreakingClass<[
+    // xmm fp variants.
+    VXORPSrr, VXORPDrr,
+
+    // xmm int variants.
+    VPXORrr,
+    VPSUBBrr, VPSUBWrr, VPSUBDrr, VPSUBQrr,
+    VPCMPGTBrr, VPCMPGTWrr, VPCMPGTDrr, VPCMPGTQrr,
+
+    // ymm variants.
+    VXORPSYrr, VXORPDYrr, VPXORYrr,
+    VPSUBBYrr, VPSUBWYrr, VPSUBDYrr, VPSUBQYrr,
+    VPCMPGTBYrr, VPCMPGTWYrr, VPCMPGTDYrr
+  ], ZeroIdiomPredicate>,
+]>;
+
 } // SchedModel

diff  --git a/llvm/lib/Target/X86/X86SchedIceLake.td b/llvm/lib/Target/X86/X86SchedIceLake.td
index 7a6bedf3d748a..9fd986e341816 100644
--- a/llvm/lib/Target/X86/X86SchedIceLake.td
+++ b/llvm/lib/Target/X86/X86SchedIceLake.td
@@ -2632,4 +2632,48 @@ def ICXSETA_SETBErm :  SchedWriteVariant<[
 def : InstRW<[ICXSETA_SETBErr], (instrs SETCCr)>;
 def : InstRW<[ICXSETA_SETBErm], (instrs SETCCm)>;
 
+///////////////////////////////////////////////////////////////////////////////
+// Dependency breaking instructions.
+///////////////////////////////////////////////////////////////////////////////
+
+def : IsZeroIdiomFunction<[
+  // GPR Zero-idioms.
+  DepBreakingClass<[ SUB32rr, SUB64rr, XOR32rr, XOR64rr ], ZeroIdiomPredicate>,
+
+  // SSE Zero-idioms.
+  DepBreakingClass<[
+    // fp variants.
+    XORPSrr, XORPDrr,
+
+    // int variants.
+    PXORrr,
+    PSUBBrr, PSUBWrr, PSUBDrr, PSUBQrr,
+    PCMPGTBrr, PCMPGTDrr, PCMPGTQrr, PCMPGTWrr
+  ], ZeroIdiomPredicate>,
+
+  // AVX Zero-idioms.
+  DepBreakingClass<[
+    // xmm fp variants.
+    VXORPSrr, VXORPDrr,
+
+    // xmm int variants.
+    VPXORrr,
+    VPSUBBrr, VPSUBWrr, VPSUBDrr, VPSUBQrr,
+    VPCMPGTBrr, VPCMPGTWrr, VPCMPGTDrr, VPCMPGTQrr,
+
+    // ymm variants.
+    VXORPSYrr, VXORPDYrr, VPXORYrr,
+    VPSUBBYrr, VPSUBWYrr, VPSUBDYrr, VPSUBQYrr,
+    VPCMPGTBYrr, VPCMPGTWYrr, VPCMPGTDYrr, VPCMPGTQYrr,
+
+    // zmm variants.
+    VXORPSZrr, VXORPDZrr, VPXORDZrr, VPXORQZrr,
+    VXORPSZ128rr, VXORPDZ128rr, VPXORDZ128rr, VPXORQZ128rr,
+    VXORPSZ256rr, VXORPDZ256rr, VPXORDZ256rr, VPXORQZ256rr,
+    VPSUBBZrr, VPSUBWZrr, VPSUBDZrr, VPSUBQZrr,
+    VPSUBBZ128rr, VPSUBWZ128rr, VPSUBDZ128rr, VPSUBQZ128rr,
+    VPSUBBZ256rr, VPSUBWZ256rr, VPSUBDZ256rr, VPSUBQZ256rr,
+  ], ZeroIdiomPredicate>,
+]>;
+
 } // SchedModel

diff  --git a/llvm/lib/Target/X86/X86SchedSandyBridge.td b/llvm/lib/Target/X86/X86SchedSandyBridge.td
index e2599e04d6358..7e619a3a87221 100644
--- a/llvm/lib/Target/X86/X86SchedSandyBridge.td
+++ b/llvm/lib/Target/X86/X86SchedSandyBridge.td
@@ -1232,4 +1232,35 @@ def SBSETA_SETBErm :  SchedWriteVariant<[
 def : InstRW<[SBSETA_SETBErr], (instrs SETCCr)>;
 def : InstRW<[SBSETA_SETBErm], (instrs SETCCm)>;
 
+///////////////////////////////////////////////////////////////////////////////
+// Dependency breaking instructions.
+///////////////////////////////////////////////////////////////////////////////
+
+def : IsZeroIdiomFunction<[
+  // GPR Zero-idioms.
+  DepBreakingClass<[ SUB32rr, SUB64rr, XOR32rr, XOR64rr ], ZeroIdiomPredicate>,
+
+  // SSE Zero-idioms.
+  DepBreakingClass<[
+    // fp variants.
+    XORPSrr, XORPDrr,
+
+    // int variants.
+    PXORrr,
+    PSUBBrr, PSUBWrr, PSUBDrr, PSUBQrr,
+    PCMPGTBrr, PCMPGTDrr, PCMPGTQrr, PCMPGTWrr
+  ], ZeroIdiomPredicate>,
+
+  // AVX Zero-idioms.
+  DepBreakingClass<[
+    // xmm fp variants.
+    VXORPSrr, VXORPDrr,
+
+    // xmm int variants.
+    VPXORrr,
+    VPSUBBrr, VPSUBWrr, VPSUBDrr, VPSUBQrr,
+    VPCMPGTBrr, VPCMPGTWrr, VPCMPGTDrr, VPCMPGTQrr,
+  ], ZeroIdiomPredicate>,
+]>;
+
 } // SchedModel

diff  --git a/llvm/lib/Target/X86/X86SchedSkylakeClient.td b/llvm/lib/Target/X86/X86SchedSkylakeClient.td
index d7d18da7dde90..0a88bac5aa660 100644
--- a/llvm/lib/Target/X86/X86SchedSkylakeClient.td
+++ b/llvm/lib/Target/X86/X86SchedSkylakeClient.td
@@ -1903,4 +1903,40 @@ def SKLSETA_SETBErm :  SchedWriteVariant<[
 def : InstRW<[SKLSETA_SETBErr], (instrs SETCCr)>;
 def : InstRW<[SKLSETA_SETBErm], (instrs SETCCm)>;
 
+///////////////////////////////////////////////////////////////////////////////
+// Dependency breaking instructions.
+///////////////////////////////////////////////////////////////////////////////
+
+def : IsZeroIdiomFunction<[
+  // GPR Zero-idioms.
+  DepBreakingClass<[ SUB32rr, SUB64rr, XOR32rr, XOR64rr ], ZeroIdiomPredicate>,
+
+  // SSE Zero-idioms.
+  DepBreakingClass<[
+    // fp variants.
+    XORPSrr, XORPDrr,
+
+    // int variants.
+    PXORrr,
+    PSUBBrr, PSUBWrr, PSUBDrr, PSUBQrr,
+    PCMPGTBrr, PCMPGTDrr, PCMPGTQrr, PCMPGTWrr
+  ], ZeroIdiomPredicate>,
+
+  // AVX Zero-idioms.
+  DepBreakingClass<[
+    // xmm fp variants.
+    VXORPSrr, VXORPDrr,
+
+    // xmm int variants.
+    VPXORrr,
+    VPSUBBrr, VPSUBWrr, VPSUBDrr, VPSUBQrr,
+    VPCMPGTBrr, VPCMPGTWrr, VPCMPGTDrr, VPCMPGTQrr,
+
+    // ymm variants.
+    VXORPSYrr, VXORPDYrr, VPXORYrr,
+    VPSUBBYrr, VPSUBWYrr, VPSUBDYrr, VPSUBQYrr,
+    VPCMPGTBYrr, VPCMPGTWYrr, VPCMPGTDYrr, VPCMPGTQYrr
+  ], ZeroIdiomPredicate>,
+]>;
+
 } // SchedModel

diff  --git a/llvm/lib/Target/X86/X86SchedSkylakeServer.td b/llvm/lib/Target/X86/X86SchedSkylakeServer.td
index f8d5f484dca89..b28a18f0dcd71 100644
--- a/llvm/lib/Target/X86/X86SchedSkylakeServer.td
+++ b/llvm/lib/Target/X86/X86SchedSkylakeServer.td
@@ -2615,4 +2615,48 @@ def SKXSETA_SETBErm :  SchedWriteVariant<[
 def : InstRW<[SKXSETA_SETBErr], (instrs SETCCr)>;
 def : InstRW<[SKXSETA_SETBErm], (instrs SETCCm)>;
 
+///////////////////////////////////////////////////////////////////////////////
+// Dependency breaking instructions.
+///////////////////////////////////////////////////////////////////////////////
+
+def : IsZeroIdiomFunction<[
+  // GPR Zero-idioms.
+  DepBreakingClass<[ SUB32rr, SUB64rr, XOR32rr, XOR64rr ], ZeroIdiomPredicate>,
+
+  // SSE Zero-idioms.
+  DepBreakingClass<[
+    // fp variants.
+    XORPSrr, XORPDrr,
+
+    // int variants.
+    PXORrr,
+    PSUBBrr, PSUBWrr, PSUBDrr, PSUBQrr,
+    PCMPGTBrr, PCMPGTDrr, PCMPGTQrr, PCMPGTWrr
+  ], ZeroIdiomPredicate>,
+
+  // AVX Zero-idioms.
+  DepBreakingClass<[
+    // xmm fp variants.
+    VXORPSrr, VXORPDrr,
+
+    // xmm int variants.
+    VPXORrr,
+    VPSUBBrr, VPSUBWrr, VPSUBDrr, VPSUBQrr,
+    VPCMPGTBrr, VPCMPGTWrr, VPCMPGTDrr, VPCMPGTQrr,
+
+    // ymm variants.
+    VXORPSYrr, VXORPDYrr, VPXORYrr,
+    VPSUBBYrr, VPSUBWYrr, VPSUBDYrr, VPSUBQYrr,
+    VPCMPGTBYrr, VPCMPGTWYrr, VPCMPGTDYrr, VPCMPGTQYrr,
+
+    // zmm variants.
+    VXORPSZrr, VXORPDZrr, VPXORDZrr, VPXORQZrr,
+    VXORPSZ128rr, VXORPDZ128rr, VPXORDZ128rr, VPXORQZ128rr,
+    VXORPSZ256rr, VXORPDZ256rr, VPXORDZ256rr, VPXORQZ256rr,
+    VPSUBBZrr, VPSUBWZrr, VPSUBDZrr, VPSUBQZrr,
+    VPSUBBZ128rr, VPSUBWZ128rr, VPSUBDZ128rr, VPSUBQZ128rr,
+    VPSUBBZ256rr, VPSUBWZ256rr, VPSUBDZ256rr, VPSUBQZ256rr,
+  ], ZeroIdiomPredicate>,
+]>;
+
 } // SchedModel

diff  --git a/llvm/lib/Target/X86/X86ScheduleSLM.td b/llvm/lib/Target/X86/X86ScheduleSLM.td
index 43cf5c9f98a40..52605c0316170 100644
--- a/llvm/lib/Target/X86/X86ScheduleSLM.td
+++ b/llvm/lib/Target/X86/X86ScheduleSLM.td
@@ -482,4 +482,22 @@ def: InstRW<[SLMWriteResGroup1rm], (instrs MMX_PADDQrm, PADDQrm,
                                            MMX_PSUBQrm, PSUBQrm,
                                            PCMPEQQrm)>;
 
+///////////////////////////////////////////////////////////////////////////////
+// Dependency breaking instructions.
+///////////////////////////////////////////////////////////////////////////////
+
+def : IsZeroIdiomFunction<[
+  // GPR Zero-idioms.
+  DepBreakingClass<[ XOR32rr ], ZeroIdiomPredicate>,
+
+  // SSE Zero-idioms.
+  DepBreakingClass<[
+    // fp variants.
+    XORPSrr, XORPDrr,
+
+    // int variants.
+    PXORrr,
+  ], ZeroIdiomPredicate>,
+]>;
+
 } // SchedModel

diff  --git a/llvm/lib/Target/X86/X86ScheduleZnver1.td b/llvm/lib/Target/X86/X86ScheduleZnver1.td
index 9655ed987733d..fe0484afd2277 100644
--- a/llvm/lib/Target/X86/X86ScheduleZnver1.td
+++ b/llvm/lib/Target/X86/X86ScheduleZnver1.td
@@ -1543,4 +1543,83 @@ def : InstRW<[WriteMicrocoded], (instrs VZEROUPPER)>;
 // VZEROALL.
 def : InstRW<[WriteMicrocoded], (instrs VZEROALL)>;
 
+///////////////////////////////////////////////////////////////////////////////
+// Dependency breaking instructions.
+///////////////////////////////////////////////////////////////////////////////
+
+def : IsZeroIdiomFunction<[
+  // GPR Zero-idioms.
+  DepBreakingClass<[
+    SUB32rr, SUB64rr,
+    XOR32rr, XOR64rr
+  ], ZeroIdiomPredicate>,
+
+  // MMX Zero-idioms.
+  DepBreakingClass<[
+    MMX_PXORrr, MMX_PANDNrr, MMX_PSUBBrr,
+    MMX_PSUBDrr, MMX_PSUBQrr, MMX_PSUBWrr,
+    MMX_PSUBSBrr, MMX_PSUBSWrr, MMX_PSUBUSBrr, MMX_PSUBUSWrr,
+    MMX_PCMPGTBrr, MMX_PCMPGTDrr, MMX_PCMPGTWrr
+  ], ZeroIdiomPredicate>,
+
+  // SSE Zero-idioms.
+  DepBreakingClass<[
+    // fp variants.
+    XORPSrr, XORPDrr, ANDNPSrr, ANDNPDrr,
+
+    // int variants.
+    PXORrr, PANDNrr,
+    PSUBBrr, PSUBWrr, PSUBDrr, PSUBQrr,
+    PCMPGTBrr, PCMPGTDrr, PCMPGTQrr, PCMPGTWrr
+  ], ZeroIdiomPredicate>,
+
+  // AVX XMM Zero-idioms.
+  DepBreakingClass<[
+    // fp variants.
+    VXORPSrr, VXORPDrr, VANDNPSrr, VANDNPDrr,
+
+    // int variants.
+    VPXORrr, VPANDNrr,
+    VPSUBBrr, VPSUBWrr, VPSUBDrr, VPSUBQrr,
+    VPCMPGTBrr, VPCMPGTWrr, VPCMPGTDrr, VPCMPGTQrr
+  ], ZeroIdiomPredicate>,
+
+  // AVX YMM Zero-idioms.
+  DepBreakingClass<[
+    // fp variants
+    VXORPSYrr, VXORPDYrr, VANDNPSYrr, VANDNPDYrr,
+
+    // int variants
+    VPXORYrr, VPANDNYrr,
+    VPSUBBYrr, VPSUBWYrr, VPSUBDYrr, VPSUBQYrr,
+    VPCMPGTBYrr, VPCMPGTWYrr, VPCMPGTDYrr, VPCMPGTQYrr
+  ], ZeroIdiomPredicate>
+]>;
+
+def : IsDepBreakingFunction<[
+  // GPR
+  DepBreakingClass<[ SBB32rr, SBB64rr ], ZeroIdiomPredicate>,
+  DepBreakingClass<[ CMP32rr, CMP64rr ], CheckSameRegOperand<0, 1> >,
+
+  // MMX
+  DepBreakingClass<[
+    MMX_PCMPEQBrr, MMX_PCMPEQWrr, MMX_PCMPEQDrr
+  ], ZeroIdiomPredicate>,
+
+  // SSE
+  DepBreakingClass<[
+    PCMPEQBrr, PCMPEQWrr, PCMPEQDrr, PCMPEQQrr
+  ], ZeroIdiomPredicate>,
+
+  // AVX XMM
+  DepBreakingClass<[
+    VPCMPEQBrr, VPCMPEQWrr, VPCMPEQDrr, VPCMPEQQrr
+  ], ZeroIdiomPredicate>,
+
+  // AVX YMM
+  DepBreakingClass<[
+    VPCMPEQBYrr, VPCMPEQWYrr, VPCMPEQDYrr, VPCMPEQQYrr
+  ], ZeroIdiomPredicate>,
+]>;
+
 } // SchedModel

diff  --git a/llvm/lib/Target/X86/X86ScheduleZnver2.td b/llvm/lib/Target/X86/X86ScheduleZnver2.td
index 249cbfff5dc62..38908a9875958 100644
--- a/llvm/lib/Target/X86/X86ScheduleZnver2.td
+++ b/llvm/lib/Target/X86/X86ScheduleZnver2.td
@@ -1532,4 +1532,83 @@ def : InstRW<[WriteALU], (instrs VZEROUPPER)>;
 // VZEROALL.
 def : InstRW<[WriteMicrocoded], (instrs VZEROALL)>;
 
+///////////////////////////////////////////////////////////////////////////////
+// Dependency breaking instructions.
+///////////////////////////////////////////////////////////////////////////////
+
+def : IsZeroIdiomFunction<[
+  // GPR Zero-idioms.
+  DepBreakingClass<[
+    SUB32rr, SUB64rr,
+    XOR32rr, XOR64rr
+  ], ZeroIdiomPredicate>,
+
+  // MMX Zero-idioms.
+  DepBreakingClass<[
+    MMX_PXORrr, MMX_PANDNrr, MMX_PSUBBrr,
+    MMX_PSUBDrr, MMX_PSUBQrr, MMX_PSUBWrr,
+    MMX_PSUBSBrr, MMX_PSUBSWrr, MMX_PSUBUSBrr, MMX_PSUBUSWrr,
+    MMX_PCMPGTBrr, MMX_PCMPGTDrr, MMX_PCMPGTWrr
+  ], ZeroIdiomPredicate>,
+
+  // SSE Zero-idioms.
+  DepBreakingClass<[
+    // fp variants.
+    XORPSrr, XORPDrr, ANDNPSrr, ANDNPDrr,
+
+    // int variants.
+    PXORrr, PANDNrr,
+    PSUBBrr, PSUBWrr, PSUBDrr, PSUBQrr,
+    PCMPGTBrr, PCMPGTDrr, PCMPGTQrr, PCMPGTWrr
+  ], ZeroIdiomPredicate>,
+
+  // AVX XMM Zero-idioms.
+  DepBreakingClass<[
+    // fp variants.
+    VXORPSrr, VXORPDrr, VANDNPSrr, VANDNPDrr,
+
+    // int variants.
+    VPXORrr, VPANDNrr,
+    VPSUBBrr, VPSUBWrr, VPSUBDrr, VPSUBQrr,
+    VPCMPGTBrr, VPCMPGTWrr, VPCMPGTDrr, VPCMPGTQrr
+  ], ZeroIdiomPredicate>,
+
+  // AVX YMM Zero-idioms.
+  DepBreakingClass<[
+    // fp variants
+    VXORPSYrr, VXORPDYrr, VANDNPSYrr, VANDNPDYrr,
+
+    // int variants
+    VPXORYrr, VPANDNYrr,
+    VPSUBBYrr, VPSUBWYrr, VPSUBDYrr, VPSUBQYrr,
+    VPCMPGTBYrr, VPCMPGTWYrr, VPCMPGTDYrr, VPCMPGTQYrr
+  ], ZeroIdiomPredicate>
+]>;
+
+def : IsDepBreakingFunction<[
+  // GPR
+  DepBreakingClass<[ SBB32rr, SBB64rr ], ZeroIdiomPredicate>,
+  DepBreakingClass<[ CMP32rr, CMP64rr ], CheckSameRegOperand<0, 1> >,
+
+  // MMX
+  DepBreakingClass<[
+    MMX_PCMPEQBrr, MMX_PCMPEQWrr, MMX_PCMPEQDrr
+  ], ZeroIdiomPredicate>,
+
+  // SSE
+  DepBreakingClass<[
+    PCMPEQBrr, PCMPEQWrr, PCMPEQDrr, PCMPEQQrr
+  ], ZeroIdiomPredicate>,
+
+  // AVX XMM
+  DepBreakingClass<[
+    VPCMPEQBrr, VPCMPEQWrr, VPCMPEQDrr, VPCMPEQQrr
+  ], ZeroIdiomPredicate>,
+
+  // AVX YMM
+  DepBreakingClass<[
+    VPCMPEQBYrr, VPCMPEQWYrr, VPCMPEQDYrr, VPCMPEQQYrr
+  ], ZeroIdiomPredicate>,
+]>;
+
 } // SchedModel

diff  --git a/llvm/test/tools/llvm-mca/X86/Barcelona/reg-move-elimination-1.s b/llvm/test/tools/llvm-mca/X86/Barcelona/reg-move-elimination-1.s
index 9e8de6266cc39..46852e69dd9a7 100644
--- a/llvm/test/tools/llvm-mca/X86/Barcelona/reg-move-elimination-1.s
+++ b/llvm/test/tools/llvm-mca/X86/Barcelona/reg-move-elimination-1.s
@@ -32,8 +32,8 @@ addps %xmm1, %xmm1
 # CHECK-NEXT:  1      3     1.00                        addps	%xmm1, %xmm1
 
 # CHECK:      Register File statistics:
-# CHECK-NEXT: Total number of mappings created:    9
-# CHECK-NEXT: Max number of mappings used:         8
+# CHECK-NEXT: Total number of mappings created:    6
+# CHECK-NEXT: Max number of mappings used:         6
 
 # CHECK:      Resources:
 # CHECK-NEXT: [0]   - SBDivider

diff  --git a/llvm/test/tools/llvm-mca/X86/Barcelona/reg-move-elimination-2.s b/llvm/test/tools/llvm-mca/X86/Barcelona/reg-move-elimination-2.s
index a20fb0ce4adc0..598319ee6b55a 100644
--- a/llvm/test/tools/llvm-mca/X86/Barcelona/reg-move-elimination-2.s
+++ b/llvm/test/tools/llvm-mca/X86/Barcelona/reg-move-elimination-2.s
@@ -14,12 +14,12 @@ movdqu %xmm5, %xmm0
 
 # CHECK:      Iterations:        3
 # CHECK-NEXT: Instructions:      27
-# CHECK-NEXT: Total Cycles:      22
+# CHECK-NEXT: Total Cycles:      18
 # CHECK-NEXT: Total uOps:        27
 
 # CHECK:      Dispatch Width:    4
-# CHECK-NEXT: uOps Per Cycle:    1.23
-# CHECK-NEXT: IPC:               1.23
+# CHECK-NEXT: uOps Per Cycle:    1.50
+# CHECK-NEXT: IPC:               1.50
 # CHECK-NEXT: Block RThroughput: 4.0
 
 # CHECK:      Instruction Info:
@@ -42,8 +42,8 @@ movdqu %xmm5, %xmm0
 # CHECK-NEXT:  1      1     0.33                        movdqu	%xmm5, %xmm0
 
 # CHECK:      Register File statistics:
-# CHECK-NEXT: Total number of mappings created:    27
-# CHECK-NEXT: Max number of mappings used:         21
+# CHECK-NEXT: Total number of mappings created:    24
+# CHECK-NEXT: Max number of mappings used:         19
 
 # CHECK:      Resources:
 # CHECK-NEXT: [0]   - SBDivider
@@ -57,7 +57,7 @@ movdqu %xmm5, %xmm0
 
 # CHECK:      Resource pressure per iteration:
 # CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6.0]  [6.1]
-# CHECK-NEXT:  -      -     1.67   1.67    -     4.67    -      -
+# CHECK-NEXT:  -      -     1.67   2.00    -     4.33    -      -
 
 # CHECK:      Resource pressure by instruction:
 # CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6.0]  [6.1]  Instructions:
@@ -68,40 +68,40 @@ movdqu %xmm5, %xmm0
 # CHECK-NEXT:  -      -      -      -      -     1.00    -      -     movups	%xmm1, %xmm2
 # CHECK-NEXT:  -      -      -      -      -     1.00    -      -     movapd	%xmm2, %xmm3
 # CHECK-NEXT:  -      -      -      -      -     1.00    -      -     movupd	%xmm3, %xmm4
-# CHECK-NEXT:  -      -      -     1.00    -      -      -      -     movdqa	%xmm4, %xmm5
-# CHECK-NEXT:  -      -     0.67    -      -     0.33    -      -     movdqu	%xmm5, %xmm0
+# CHECK-NEXT:  -      -     0.67   0.33    -      -      -      -     movdqa	%xmm4, %xmm5
+# CHECK-NEXT:  -      -      -     1.00    -      -      -      -     movdqu	%xmm5, %xmm0
 
 # CHECK:      Timeline view:
-# CHECK-NEXT:                     0123456789
-# CHECK-NEXT: Index     0123456789          01
+# CHECK-NEXT:                     01234567
+# CHECK-NEXT: Index     0123456789
 
-# CHECK:      [0,0]     DeER .    .    .    ..   pxor	%mm0, %mm0
-# CHECK-NEXT: [0,1]     D=eER.    .    .    ..   movq	%mm0, %mm1
-# CHECK-NEXT: [0,2]     D---R.    .    .    ..   xorps	%xmm0, %xmm0
-# CHECK-NEXT: [0,3]     D=eER.    .    .    ..   movaps	%xmm0, %xmm1
-# CHECK-NEXT: [0,4]     .D=eER    .    .    ..   movups	%xmm1, %xmm2
-# CHECK-NEXT: [0,5]     .D==eER   .    .    ..   movapd	%xmm2, %xmm3
-# CHECK-NEXT: [0,6]     .D===eER  .    .    ..   movupd	%xmm3, %xmm4
-# CHECK-NEXT: [0,7]     .D====eER .    .    ..   movdqa	%xmm4, %xmm5
-# CHECK-NEXT: [0,8]     . D====eER.    .    ..   movdqu	%xmm5, %xmm0
-# CHECK-NEXT: [1,0]     . DeE----R.    .    ..   pxor	%mm0, %mm0
-# CHECK-NEXT: [1,1]     . D=eE---R.    .    ..   movq	%mm0, %mm1
-# CHECK-NEXT: [1,2]     . D=====ER.    .    ..   xorps	%xmm0, %xmm0
-# CHECK-NEXT: [1,3]     .  D====eER    .    ..   movaps	%xmm0, %xmm1
-# CHECK-NEXT: [1,4]     .  D=====eER   .    ..   movups	%xmm1, %xmm2
-# CHECK-NEXT: [1,5]     .  D======eER  .    ..   movapd	%xmm2, %xmm3
-# CHECK-NEXT: [1,6]     .  D=======eER .    ..   movupd	%xmm3, %xmm4
-# CHECK-NEXT: [1,7]     .   D=======eER.    ..   movdqa	%xmm4, %xmm5
-# CHECK-NEXT: [1,8]     .   D========eER    ..   movdqu	%xmm5, %xmm0
-# CHECK-NEXT: [2,0]     .   DeE--------R    ..   pxor	%mm0, %mm0
-# CHECK-NEXT: [2,1]     .   D=eE-------R    ..   movq	%mm0, %mm1
-# CHECK-NEXT: [2,2]     .    D========ER    ..   xorps	%xmm0, %xmm0
-# CHECK-NEXT: [2,3]     .    D========eER   ..   movaps	%xmm0, %xmm1
-# CHECK-NEXT: [2,4]     .    D=========eER  ..   movups	%xmm1, %xmm2
-# CHECK-NEXT: [2,5]     .    D==========eER ..   movapd	%xmm2, %xmm3
-# CHECK-NEXT: [2,6]     .    .D==========eER..   movupd	%xmm3, %xmm4
-# CHECK-NEXT: [2,7]     .    .D===========eER.   movdqa	%xmm4, %xmm5
-# CHECK-NEXT: [2,8]     .    .D============eER   movdqu	%xmm5, %xmm0
+# CHECK:      [0,0]     DeER .    .    . .   pxor	%mm0, %mm0
+# CHECK-NEXT: [0,1]     D=eER.    .    . .   movq	%mm0, %mm1
+# CHECK-NEXT: [0,2]     D---R.    .    . .   xorps	%xmm0, %xmm0
+# CHECK-NEXT: [0,3]     D=eER.    .    . .   movaps	%xmm0, %xmm1
+# CHECK-NEXT: [0,4]     .D=eER    .    . .   movups	%xmm1, %xmm2
+# CHECK-NEXT: [0,5]     .D==eER   .    . .   movapd	%xmm2, %xmm3
+# CHECK-NEXT: [0,6]     .D===eER  .    . .   movupd	%xmm3, %xmm4
+# CHECK-NEXT: [0,7]     .D====eER .    . .   movdqa	%xmm4, %xmm5
+# CHECK-NEXT: [0,8]     . D====eER.    . .   movdqu	%xmm5, %xmm0
+# CHECK-NEXT: [1,0]     . DeE----R.    . .   pxor	%mm0, %mm0
+# CHECK-NEXT: [1,1]     . D=eE---R.    . .   movq	%mm0, %mm1
+# CHECK-NEXT: [1,2]     . D------R.    . .   xorps	%xmm0, %xmm0
+# CHECK-NEXT: [1,3]     .  D==eE-R.    . .   movaps	%xmm0, %xmm1
+# CHECK-NEXT: [1,4]     .  D===eER.    . .   movups	%xmm1, %xmm2
+# CHECK-NEXT: [1,5]     .  D====eER    . .   movapd	%xmm2, %xmm3
+# CHECK-NEXT: [1,6]     .  D=====eER   . .   movupd	%xmm3, %xmm4
+# CHECK-NEXT: [1,7]     .   D=====eER  . .   movdqa	%xmm4, %xmm5
+# CHECK-NEXT: [1,8]     .   D======eER . .   movdqu	%xmm5, %xmm0
+# CHECK-NEXT: [2,0]     .   DeE------R . .   pxor	%mm0, %mm0
+# CHECK-NEXT: [2,1]     .   D=eE-----R . .   movq	%mm0, %mm1
+# CHECK-NEXT: [2,2]     .    D-------R . .   xorps	%xmm0, %xmm0
+# CHECK-NEXT: [2,3]     .    D====eE-R . .   movaps	%xmm0, %xmm1
+# CHECK-NEXT: [2,4]     .    D=====eER . .   movups	%xmm1, %xmm2
+# CHECK-NEXT: [2,5]     .    D======eER. .   movapd	%xmm2, %xmm3
+# CHECK-NEXT: [2,6]     .    .D======eER .   movupd	%xmm3, %xmm4
+# CHECK-NEXT: [2,7]     .    .D=======eER.   movdqa	%xmm4, %xmm5
+# CHECK-NEXT: [2,8]     .    .D========eER   movdqu	%xmm5, %xmm0
 
 # CHECK:      Average Wait times (based on the timeline view):
 # CHECK-NEXT: [0]: Executions
@@ -110,13 +110,13 @@ movdqu %xmm5, %xmm0
 # CHECK-NEXT: [3]: Average time elapsed from WB until retire stage
 
 # CHECK:            [0]    [1]    [2]    [3]
-# CHECK-NEXT: 0.     3     1.0    1.0    4.0       pxor	%mm0, %mm0
-# CHECK-NEXT: 1.     3     2.0    0.0    3.3       movq	%mm0, %mm1
-# CHECK-NEXT: 2.     3     5.0    0.0    1.0       xorps	%xmm0, %xmm0
-# CHECK-NEXT: 3.     3     5.3    0.7    0.0       movaps	%xmm0, %xmm1
-# CHECK-NEXT: 4.     3     6.0    0.0    0.0       movups	%xmm1, %xmm2
-# CHECK-NEXT: 5.     3     7.0    0.0    0.0       movapd	%xmm2, %xmm3
-# CHECK-NEXT: 6.     3     7.7    0.0    0.0       movupd	%xmm3, %xmm4
-# CHECK-NEXT: 7.     3     8.3    0.0    0.0       movdqa	%xmm4, %xmm5
-# CHECK-NEXT: 8.     3     9.0    0.0    0.0       movdqu	%xmm5, %xmm0
-# CHECK-NEXT:        3     5.7    0.2    0.9       <total>
+# CHECK-NEXT: 0.     3     1.0    1.0    3.3       pxor	%mm0, %mm0
+# CHECK-NEXT: 1.     3     2.0    0.0    2.7       movq	%mm0, %mm1
+# CHECK-NEXT: 2.     3     0.0    0.0    5.3       xorps	%xmm0, %xmm0
+# CHECK-NEXT: 3.     3     3.3    3.3    0.7       movaps	%xmm0, %xmm1
+# CHECK-NEXT: 4.     3     4.0    0.0    0.0       movups	%xmm1, %xmm2
+# CHECK-NEXT: 5.     3     5.0    0.0    0.0       movapd	%xmm2, %xmm3
+# CHECK-NEXT: 6.     3     5.7    0.0    0.0       movupd	%xmm3, %xmm4
+# CHECK-NEXT: 7.     3     6.3    0.0    0.0       movdqa	%xmm4, %xmm5
+# CHECK-NEXT: 8.     3     7.0    0.0    0.0       movdqu	%xmm5, %xmm0
+# CHECK-NEXT:        3     3.8    0.5    1.3       <total>

diff  --git a/llvm/test/tools/llvm-mca/X86/Barcelona/reg-move-elimination-3.s b/llvm/test/tools/llvm-mca/X86/Barcelona/reg-move-elimination-3.s
index 30f2e7d8a20b6..f37d4199514cf 100644
--- a/llvm/test/tools/llvm-mca/X86/Barcelona/reg-move-elimination-3.s
+++ b/llvm/test/tools/llvm-mca/X86/Barcelona/reg-move-elimination-3.s
@@ -11,12 +11,12 @@ movdqu %xmm5, %xmm0
 
 # CHECK:      Iterations:        3
 # CHECK-NEXT: Instructions:      21
-# CHECK-NEXT: Total Cycles:      21
+# CHECK-NEXT: Total Cycles:      17
 # CHECK-NEXT: Total uOps:        21
 
 # CHECK:      Dispatch Width:    4
-# CHECK-NEXT: uOps Per Cycle:    1.00
-# CHECK-NEXT: IPC:               1.00
+# CHECK-NEXT: uOps Per Cycle:    1.24
+# CHECK-NEXT: IPC:               1.24
 # CHECK-NEXT: Block RThroughput: 4.0
 
 # CHECK:      Instruction Info:
@@ -37,8 +37,8 @@ movdqu %xmm5, %xmm0
 # CHECK-NEXT:  1      1     0.33                        movdqu	%xmm5, %xmm0
 
 # CHECK:      Register File statistics:
-# CHECK-NEXT: Total number of mappings created:    21
-# CHECK-NEXT: Max number of mappings used:         17
+# CHECK-NEXT: Total number of mappings created:    18
+# CHECK-NEXT: Max number of mappings used:         15
 
 # CHECK:      Resources:
 # CHECK-NEXT: [0]   - SBDivider
@@ -65,30 +65,30 @@ movdqu %xmm5, %xmm0
 # CHECK-NEXT:  -      -     1.00    -      -      -      -      -     movdqu	%xmm5, %xmm0
 
 # CHECK:      Timeline view:
-# CHECK-NEXT:                     0123456789
-# CHECK-NEXT: Index     0123456789          0
+# CHECK-NEXT:                     0123456
+# CHECK-NEXT: Index     0123456789
 
-# CHECK:      [0,0]     DR   .    .    .    .   vxorps	%xmm0, %xmm0, %xmm0
-# CHECK-NEXT: [0,1]     DeER .    .    .    .   movaps	%xmm0, %xmm1
-# CHECK-NEXT: [0,2]     D=eER.    .    .    .   movups	%xmm1, %xmm2
-# CHECK-NEXT: [0,3]     D==eER    .    .    .   movapd	%xmm2, %xmm3
-# CHECK-NEXT: [0,4]     .D==eER   .    .    .   movupd	%xmm3, %xmm4
-# CHECK-NEXT: [0,5]     .D===eER  .    .    .   movdqa	%xmm4, %xmm5
-# CHECK-NEXT: [0,6]     .D====eER .    .    .   movdqu	%xmm5, %xmm0
-# CHECK-NEXT: [1,0]     .D=====ER .    .    .   vxorps	%xmm0, %xmm0, %xmm0
-# CHECK-NEXT: [1,1]     . D====eER.    .    .   movaps	%xmm0, %xmm1
-# CHECK-NEXT: [1,2]     . D=====eER    .    .   movups	%xmm1, %xmm2
-# CHECK-NEXT: [1,3]     . D======eER   .    .   movapd	%xmm2, %xmm3
-# CHECK-NEXT: [1,4]     . D=======eER  .    .   movupd	%xmm3, %xmm4
-# CHECK-NEXT: [1,5]     .  D=======eER .    .   movdqa	%xmm4, %xmm5
-# CHECK-NEXT: [1,6]     .  D========eER.    .   movdqu	%xmm5, %xmm0
-# CHECK-NEXT: [2,0]     .  D=========ER.    .   vxorps	%xmm0, %xmm0, %xmm0
-# CHECK-NEXT: [2,1]     .  D=========eER    .   movaps	%xmm0, %xmm1
-# CHECK-NEXT: [2,2]     .   D=========eER   .   movups	%xmm1, %xmm2
-# CHECK-NEXT: [2,3]     .   D==========eER  .   movapd	%xmm2, %xmm3
-# CHECK-NEXT: [2,4]     .   D===========eER .   movupd	%xmm3, %xmm4
-# CHECK-NEXT: [2,5]     .   D============eER.   movdqa	%xmm4, %xmm5
-# CHECK-NEXT: [2,6]     .    D============eER   movdqu	%xmm5, %xmm0
+# CHECK:      [0,0]     DR   .    .    ..   vxorps	%xmm0, %xmm0, %xmm0
+# CHECK-NEXT: [0,1]     DeER .    .    ..   movaps	%xmm0, %xmm1
+# CHECK-NEXT: [0,2]     D=eER.    .    ..   movups	%xmm1, %xmm2
+# CHECK-NEXT: [0,3]     D==eER    .    ..   movapd	%xmm2, %xmm3
+# CHECK-NEXT: [0,4]     .D==eER   .    ..   movupd	%xmm3, %xmm4
+# CHECK-NEXT: [0,5]     .D===eER  .    ..   movdqa	%xmm4, %xmm5
+# CHECK-NEXT: [0,6]     .D====eER .    ..   movdqu	%xmm5, %xmm0
+# CHECK-NEXT: [1,0]     .D------R .    ..   vxorps	%xmm0, %xmm0, %xmm0
+# CHECK-NEXT: [1,1]     . D==eE-R .    ..   movaps	%xmm0, %xmm1
+# CHECK-NEXT: [1,2]     . D===eER .    ..   movups	%xmm1, %xmm2
+# CHECK-NEXT: [1,3]     . D====eER.    ..   movapd	%xmm2, %xmm3
+# CHECK-NEXT: [1,4]     . D=====eER    ..   movupd	%xmm3, %xmm4
+# CHECK-NEXT: [1,5]     .  D=====eER   ..   movdqa	%xmm4, %xmm5
+# CHECK-NEXT: [1,6]     .  D======eER  ..   movdqu	%xmm5, %xmm0
+# CHECK-NEXT: [2,0]     .  D--------R  ..   vxorps	%xmm0, %xmm0, %xmm0
+# CHECK-NEXT: [2,1]     .  D=====eE-R  ..   movaps	%xmm0, %xmm1
+# CHECK-NEXT: [2,2]     .   D=====eER  ..   movups	%xmm1, %xmm2
+# CHECK-NEXT: [2,3]     .   D======eER ..   movapd	%xmm2, %xmm3
+# CHECK-NEXT: [2,4]     .   D=======eER..   movupd	%xmm3, %xmm4
+# CHECK-NEXT: [2,5]     .   D========eER.   movdqa	%xmm4, %xmm5
+# CHECK-NEXT: [2,6]     .    D========eER   movdqu	%xmm5, %xmm0
 
 # CHECK:      Average Wait times (based on the timeline view):
 # CHECK-NEXT: [0]: Executions
@@ -97,11 +97,11 @@ movdqu %xmm5, %xmm0
 # CHECK-NEXT: [3]: Average time elapsed from WB until retire stage
 
 # CHECK:            [0]    [1]    [2]    [3]
-# CHECK-NEXT: 0.     3     5.3    0.0    0.0       vxorps	%xmm0, %xmm0, %xmm0
-# CHECK-NEXT: 1.     3     5.3    0.3    0.0       movaps	%xmm0, %xmm1
-# CHECK-NEXT: 2.     3     6.0    0.0    0.0       movups	%xmm1, %xmm2
-# CHECK-NEXT: 3.     3     7.0    0.0    0.0       movapd	%xmm2, %xmm3
-# CHECK-NEXT: 4.     3     7.7    0.0    0.0       movupd	%xmm3, %xmm4
-# CHECK-NEXT: 5.     3     8.3    0.0    0.0       movdqa	%xmm4, %xmm5
-# CHECK-NEXT: 6.     3     9.0    0.0    0.0       movdqu	%xmm5, %xmm0
-# CHECK-NEXT:        3     7.0    0.0    0.0       <total>
+# CHECK-NEXT: 0.     3     0.0    0.0    4.7       vxorps	%xmm0, %xmm0, %xmm0
+# CHECK-NEXT: 1.     3     3.3    3.3    0.7       movaps	%xmm0, %xmm1
+# CHECK-NEXT: 2.     3     4.0    0.0    0.0       movups	%xmm1, %xmm2
+# CHECK-NEXT: 3.     3     5.0    0.0    0.0       movapd	%xmm2, %xmm3
+# CHECK-NEXT: 4.     3     5.7    0.0    0.0       movupd	%xmm3, %xmm4
+# CHECK-NEXT: 5.     3     6.3    0.0    0.0       movdqa	%xmm4, %xmm5
+# CHECK-NEXT: 6.     3     7.0    0.0    0.0       movdqu	%xmm5, %xmm0
+# CHECK-NEXT:        3     4.5    0.5    0.8       <total>

diff  --git a/llvm/test/tools/llvm-mca/X86/Barcelona/reg-move-elimination-4.s b/llvm/test/tools/llvm-mca/X86/Barcelona/reg-move-elimination-4.s
index 390dee10ed10c..93c3e4c5fee59 100644
--- a/llvm/test/tools/llvm-mca/X86/Barcelona/reg-move-elimination-4.s
+++ b/llvm/test/tools/llvm-mca/X86/Barcelona/reg-move-elimination-4.s
@@ -9,12 +9,12 @@ mov %edx, %eax
 
 # CHECK:      Iterations:        3
 # CHECK-NEXT: Instructions:      15
-# CHECK-NEXT: Total Cycles:      15
+# CHECK-NEXT: Total Cycles:      9
 # CHECK-NEXT: Total uOps:        15
 
 # CHECK:      Dispatch Width:    4
-# CHECK-NEXT: uOps Per Cycle:    1.00
-# CHECK-NEXT: IPC:               1.00
+# CHECK-NEXT: uOps Per Cycle:    1.67
+# CHECK-NEXT: IPC:               1.67
 # CHECK-NEXT: Block RThroughput: 1.3
 
 # CHECK:      Instruction Info:
@@ -33,8 +33,8 @@ mov %edx, %eax
 # CHECK-NEXT:  1      1     0.33                        movl	%edx, %eax
 
 # CHECK:      Register File statistics:
-# CHECK-NEXT: Total number of mappings created:    18
-# CHECK-NEXT: Max number of mappings used:         15
+# CHECK-NEXT: Total number of mappings created:    12
+# CHECK-NEXT: Max number of mappings used:         11
 
 # CHECK:      Resources:
 # CHECK-NEXT: [0]   - SBDivider
@@ -53,30 +53,29 @@ mov %edx, %eax
 # CHECK:      Resource pressure by instruction:
 # CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6.0]  [6.1]  Instructions:
 # CHECK-NEXT:  -      -      -      -      -      -      -      -     xorl	%eax, %eax
-# CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     movl	%eax, %ebx
-# CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     movl	%ebx, %ecx
-# CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     movl	%ecx, %edx
-# CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     movl	%edx, %eax
+# CHECK-NEXT:  -      -     0.67    -      -     0.33    -      -     movl	%eax, %ebx
+# CHECK-NEXT:  -      -     0.33   0.67    -      -      -      -     movl	%ebx, %ecx
+# CHECK-NEXT:  -      -      -     0.67    -     0.33    -      -     movl	%ecx, %edx
+# CHECK-NEXT:  -      -     0.33    -      -     0.67    -      -     movl	%edx, %eax
 
 # CHECK:      Timeline view:
-# CHECK-NEXT:                     01234
-# CHECK-NEXT: Index     0123456789
+# CHECK-NEXT: Index     012345678
 
-# CHECK:      [0,0]     DR   .    .   .   xorl	%eax, %eax
-# CHECK-NEXT: [0,1]     DeER .    .   .   movl	%eax, %ebx
-# CHECK-NEXT: [0,2]     D=eER.    .   .   movl	%ebx, %ecx
-# CHECK-NEXT: [0,3]     D==eER    .   .   movl	%ecx, %edx
-# CHECK-NEXT: [0,4]     .D==eER   .   .   movl	%edx, %eax
-# CHECK-NEXT: [1,0]     .D===ER   .   .   xorl	%eax, %eax
-# CHECK-NEXT: [1,1]     .D===eER  .   .   movl	%eax, %ebx
-# CHECK-NEXT: [1,2]     .D====eER .   .   movl	%ebx, %ecx
-# CHECK-NEXT: [1,3]     . D====eER.   .   movl	%ecx, %edx
-# CHECK-NEXT: [1,4]     . D=====eER   .   movl	%edx, %eax
-# CHECK-NEXT: [2,0]     . D======ER   .   xorl	%eax, %eax
-# CHECK-NEXT: [2,1]     . D======eER  .   movl	%eax, %ebx
-# CHECK-NEXT: [2,2]     .  D======eER .   movl	%ebx, %ecx
-# CHECK-NEXT: [2,3]     .  D=======eER.   movl	%ecx, %edx
-# CHECK-NEXT: [2,4]     .  D========eER   movl	%edx, %eax
+# CHECK:      [0,0]     DR   .  .   xorl	%eax, %eax
+# CHECK-NEXT: [0,1]     DeER .  .   movl	%eax, %ebx
+# CHECK-NEXT: [0,2]     D=eER.  .   movl	%ebx, %ecx
+# CHECK-NEXT: [0,3]     D==eER  .   movl	%ecx, %edx
+# CHECK-NEXT: [0,4]     .D==eER .   movl	%edx, %eax
+# CHECK-NEXT: [1,0]     .D----R .   xorl	%eax, %eax
+# CHECK-NEXT: [1,1]     .DeE--R .   movl	%eax, %ebx
+# CHECK-NEXT: [1,2]     .D=eE-R .   movl	%ebx, %ecx
+# CHECK-NEXT: [1,3]     . D=eER .   movl	%ecx, %edx
+# CHECK-NEXT: [1,4]     . D==eER.   movl	%edx, %eax
+# CHECK-NEXT: [2,0]     . D----R.   xorl	%eax, %eax
+# CHECK-NEXT: [2,1]     . DeE--R.   movl	%eax, %ebx
+# CHECK-NEXT: [2,2]     .  DeE-R.   movl	%ebx, %ecx
+# CHECK-NEXT: [2,3]     .  D=eER.   movl	%ecx, %edx
+# CHECK-NEXT: [2,4]     .  D==eER   movl	%edx, %eax
 
 # CHECK:      Average Wait times (based on the timeline view):
 # CHECK-NEXT: [0]: Executions
@@ -85,9 +84,9 @@ mov %edx, %eax
 # CHECK-NEXT: [3]: Average time elapsed from WB until retire stage
 
 # CHECK:            [0]    [1]    [2]    [3]
-# CHECK-NEXT: 0.     3     3.7    0.0    0.0       xorl	%eax, %eax
-# CHECK-NEXT: 1.     3     4.0    0.3    0.0       movl	%eax, %ebx
-# CHECK-NEXT: 2.     3     4.7    0.0    0.0       movl	%ebx, %ecx
-# CHECK-NEXT: 3.     3     5.3    0.0    0.0       movl	%ecx, %edx
-# CHECK-NEXT: 4.     3     6.0    0.0    0.0       movl	%edx, %eax
-# CHECK-NEXT:        3     4.7    0.1    0.0       <total>
+# CHECK-NEXT: 0.     3     0.0    0.0    2.7       xorl	%eax, %eax
+# CHECK-NEXT: 1.     3     1.0    1.0    1.3       movl	%eax, %ebx
+# CHECK-NEXT: 2.     3     1.7    0.0    0.7       movl	%ebx, %ecx
+# CHECK-NEXT: 3.     3     2.3    0.0    0.0       movl	%ecx, %edx
+# CHECK-NEXT: 4.     3     3.0    0.0    0.0       movl	%edx, %eax
+# CHECK-NEXT:        3     1.6    0.2    0.9       <total>

diff  --git a/llvm/test/tools/llvm-mca/X86/Barcelona/reg-move-elimination-5.s b/llvm/test/tools/llvm-mca/X86/Barcelona/reg-move-elimination-5.s
index 2408e794fcdf3..775781c5072d5 100644
--- a/llvm/test/tools/llvm-mca/X86/Barcelona/reg-move-elimination-5.s
+++ b/llvm/test/tools/llvm-mca/X86/Barcelona/reg-move-elimination-5.s
@@ -9,12 +9,12 @@ mov %rdx, %rax
 
 # CHECK:      Iterations:        3
 # CHECK-NEXT: Instructions:      15
-# CHECK-NEXT: Total Cycles:      15
+# CHECK-NEXT: Total Cycles:      9
 # CHECK-NEXT: Total uOps:        15
 
 # CHECK:      Dispatch Width:    4
-# CHECK-NEXT: uOps Per Cycle:    1.00
-# CHECK-NEXT: IPC:               1.00
+# CHECK-NEXT: uOps Per Cycle:    1.67
+# CHECK-NEXT: IPC:               1.67
 # CHECK-NEXT: Block RThroughput: 1.3
 
 # CHECK:      Instruction Info:
@@ -33,8 +33,8 @@ mov %rdx, %rax
 # CHECK-NEXT:  1      1     0.33                        movq	%rdx, %rax
 
 # CHECK:      Register File statistics:
-# CHECK-NEXT: Total number of mappings created:    18
-# CHECK-NEXT: Max number of mappings used:         15
+# CHECK-NEXT: Total number of mappings created:    12
+# CHECK-NEXT: Max number of mappings used:         11
 
 # CHECK:      Resources:
 # CHECK-NEXT: [0]   - SBDivider
@@ -53,30 +53,29 @@ mov %rdx, %rax
 # CHECK:      Resource pressure by instruction:
 # CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6.0]  [6.1]  Instructions:
 # CHECK-NEXT:  -      -      -      -      -      -      -      -     xorq	%rax, %rax
-# CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     movq	%rax, %rbx
-# CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     movq	%rbx, %rcx
-# CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     movq	%rcx, %rdx
-# CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     movq	%rdx, %rax
+# CHECK-NEXT:  -      -     0.67    -      -     0.33    -      -     movq	%rax, %rbx
+# CHECK-NEXT:  -      -     0.33   0.67    -      -      -      -     movq	%rbx, %rcx
+# CHECK-NEXT:  -      -      -     0.67    -     0.33    -      -     movq	%rcx, %rdx
+# CHECK-NEXT:  -      -     0.33    -      -     0.67    -      -     movq	%rdx, %rax
 
 # CHECK:      Timeline view:
-# CHECK-NEXT:                     01234
-# CHECK-NEXT: Index     0123456789
+# CHECK-NEXT: Index     012345678
 
-# CHECK:      [0,0]     DR   .    .   .   xorq	%rax, %rax
-# CHECK-NEXT: [0,1]     DeER .    .   .   movq	%rax, %rbx
-# CHECK-NEXT: [0,2]     D=eER.    .   .   movq	%rbx, %rcx
-# CHECK-NEXT: [0,3]     D==eER    .   .   movq	%rcx, %rdx
-# CHECK-NEXT: [0,4]     .D==eER   .   .   movq	%rdx, %rax
-# CHECK-NEXT: [1,0]     .D===ER   .   .   xorq	%rax, %rax
-# CHECK-NEXT: [1,1]     .D===eER  .   .   movq	%rax, %rbx
-# CHECK-NEXT: [1,2]     .D====eER .   .   movq	%rbx, %rcx
-# CHECK-NEXT: [1,3]     . D====eER.   .   movq	%rcx, %rdx
-# CHECK-NEXT: [1,4]     . D=====eER   .   movq	%rdx, %rax
-# CHECK-NEXT: [2,0]     . D======ER   .   xorq	%rax, %rax
-# CHECK-NEXT: [2,1]     . D======eER  .   movq	%rax, %rbx
-# CHECK-NEXT: [2,2]     .  D======eER .   movq	%rbx, %rcx
-# CHECK-NEXT: [2,3]     .  D=======eER.   movq	%rcx, %rdx
-# CHECK-NEXT: [2,4]     .  D========eER   movq	%rdx, %rax
+# CHECK:      [0,0]     DR   .  .   xorq	%rax, %rax
+# CHECK-NEXT: [0,1]     DeER .  .   movq	%rax, %rbx
+# CHECK-NEXT: [0,2]     D=eER.  .   movq	%rbx, %rcx
+# CHECK-NEXT: [0,3]     D==eER  .   movq	%rcx, %rdx
+# CHECK-NEXT: [0,4]     .D==eER .   movq	%rdx, %rax
+# CHECK-NEXT: [1,0]     .D----R .   xorq	%rax, %rax
+# CHECK-NEXT: [1,1]     .DeE--R .   movq	%rax, %rbx
+# CHECK-NEXT: [1,2]     .D=eE-R .   movq	%rbx, %rcx
+# CHECK-NEXT: [1,3]     . D=eER .   movq	%rcx, %rdx
+# CHECK-NEXT: [1,4]     . D==eER.   movq	%rdx, %rax
+# CHECK-NEXT: [2,0]     . D----R.   xorq	%rax, %rax
+# CHECK-NEXT: [2,1]     . DeE--R.   movq	%rax, %rbx
+# CHECK-NEXT: [2,2]     .  DeE-R.   movq	%rbx, %rcx
+# CHECK-NEXT: [2,3]     .  D=eER.   movq	%rcx, %rdx
+# CHECK-NEXT: [2,4]     .  D==eER   movq	%rdx, %rax
 
 # CHECK:      Average Wait times (based on the timeline view):
 # CHECK-NEXT: [0]: Executions
@@ -85,9 +84,9 @@ mov %rdx, %rax
 # CHECK-NEXT: [3]: Average time elapsed from WB until retire stage
 
 # CHECK:            [0]    [1]    [2]    [3]
-# CHECK-NEXT: 0.     3     3.7    0.0    0.0       xorq	%rax, %rax
-# CHECK-NEXT: 1.     3     4.0    0.3    0.0       movq	%rax, %rbx
-# CHECK-NEXT: 2.     3     4.7    0.0    0.0       movq	%rbx, %rcx
-# CHECK-NEXT: 3.     3     5.3    0.0    0.0       movq	%rcx, %rdx
-# CHECK-NEXT: 4.     3     6.0    0.0    0.0       movq	%rdx, %rax
-# CHECK-NEXT:        3     4.7    0.1    0.0       <total>
+# CHECK-NEXT: 0.     3     0.0    0.0    2.7       xorq	%rax, %rax
+# CHECK-NEXT: 1.     3     1.0    1.0    1.3       movq	%rax, %rbx
+# CHECK-NEXT: 2.     3     1.7    0.0    0.7       movq	%rbx, %rcx
+# CHECK-NEXT: 3.     3     2.3    0.0    0.0       movq	%rcx, %rdx
+# CHECK-NEXT: 4.     3     3.0    0.0    0.0       movq	%rdx, %rax
+# CHECK-NEXT:        3     1.6    0.2    0.9       <total>

diff  --git a/llvm/test/tools/llvm-mca/X86/Barcelona/reg-move-elimination-6.s b/llvm/test/tools/llvm-mca/X86/Barcelona/reg-move-elimination-6.s
index 7380eb2300660..d3aee3db57356 100644
--- a/llvm/test/tools/llvm-mca/X86/Barcelona/reg-move-elimination-6.s
+++ b/llvm/test/tools/llvm-mca/X86/Barcelona/reg-move-elimination-6.s
@@ -35,8 +35,8 @@ mov %esi, %ecx
 # CHECK-NEXT:  1      1     0.33                        movl	%esi, %ecx
 
 # CHECK:      Register File statistics:
-# CHECK-NEXT: Total number of mappings created:    1100
-# CHECK-NEXT: Max number of mappings used:         141
+# CHECK-NEXT: Total number of mappings created:    900
+# CHECK-NEXT: Max number of mappings used:         115
 
 # CHECK:      Resources:
 # CHECK-NEXT: [0]   - SBDivider

diff  --git a/llvm/test/tools/llvm-mca/X86/Barcelona/zero-idioms.s b/llvm/test/tools/llvm-mca/X86/Barcelona/zero-idioms.s
index 62ff7b54cb6c8..71902fe3625c8 100644
--- a/llvm/test/tools/llvm-mca/X86/Barcelona/zero-idioms.s
+++ b/llvm/test/tools/llvm-mca/X86/Barcelona/zero-idioms.s
@@ -103,8 +103,8 @@ pxor   %xmm2, %xmm2
 # CHECK-NEXT:  1      0     0.25                        pxor	%xmm2, %xmm2
 
 # CHECK:      Register File statistics:
-# CHECK-NEXT: Total number of mappings created:    39
-# CHECK-NEXT: Max number of mappings used:         30
+# CHECK-NEXT: Total number of mappings created:    20
+# CHECK-NEXT: Max number of mappings used:         19
 
 # CHECK:      Resources:
 # CHECK-NEXT: [0]   - SBDivider
@@ -193,10 +193,10 @@ pxor   %xmm2, %xmm2
 # CHECK-NEXT: [0,28]    .    . D==eE------------------------R .   andnpd	%xmm1, %xmm1
 # CHECK-NEXT: [0,29]    .    . D===========================eER.   pandn	%mm2, %mm2
 # CHECK-NEXT: [0,30]    .    . D==eE-------------------------R.   pandn	%xmm2, %xmm2
-# CHECK-NEXT: [0,31]    .    . D==E--------------------------R.   xorps	%xmm0, %xmm0
-# CHECK-NEXT: [0,32]    .    .  D==E-------------------------R.   xorpd	%xmm1, %xmm1
+# CHECK-NEXT: [0,31]    .    . D-----------------------------R.   xorps	%xmm0, %xmm0
+# CHECK-NEXT: [0,32]    .    .  D----------------------------R.   xorpd	%xmm1, %xmm1
 # CHECK-NEXT: [0,33]    .    .  D===========================eER   pxor	%mm2, %mm2
-# CHECK-NEXT: [0,34]    .    .  D==E--------------------------R   pxor	%xmm2, %xmm2
+# CHECK-NEXT: [0,34]    .    .  D-----------------------------R   pxor	%xmm2, %xmm2
 
 # CHECK:      Average Wait times (based on the timeline view):
 # CHECK-NEXT: [0]: Executions
@@ -236,8 +236,8 @@ pxor   %xmm2, %xmm2
 # CHECK-NEXT: 28.    1     3.0    3.0    24.0      andnpd	%xmm1, %xmm1
 # CHECK-NEXT: 29.    1     28.0   0.0    0.0       pandn	%mm2, %mm2
 # CHECK-NEXT: 30.    1     3.0    0.0    25.0      pandn	%xmm2, %xmm2
-# CHECK-NEXT: 31.    1     3.0    0.0    26.0      xorps	%xmm0, %xmm0
-# CHECK-NEXT: 32.    1     3.0    0.0    25.0      xorpd	%xmm1, %xmm1
+# CHECK-NEXT: 31.    1     0.0    0.0    29.0      xorps	%xmm0, %xmm0
+# CHECK-NEXT: 32.    1     0.0    0.0    28.0      xorpd	%xmm1, %xmm1
 # CHECK-NEXT: 33.    1     28.0   0.0    0.0       pxor	%mm2, %mm2
-# CHECK-NEXT: 34.    1     3.0    0.0    26.0      pxor	%xmm2, %xmm2
-# CHECK-NEXT:        1     6.7    0.2    10.3      <total>
+# CHECK-NEXT: 34.    1     0.0    0.0    29.0      pxor	%xmm2, %xmm2
+# CHECK-NEXT:        1     6.5    0.2    10.5      <total>

diff  --git a/llvm/test/tools/llvm-mca/X86/Broadwell/zero-idioms.s b/llvm/test/tools/llvm-mca/X86/Broadwell/zero-idioms.s
index 4fdb7c11d6fd8..b93b501d09baa 100644
--- a/llvm/test/tools/llvm-mca/X86/Broadwell/zero-idioms.s
+++ b/llvm/test/tools/llvm-mca/X86/Broadwell/zero-idioms.s
@@ -189,8 +189,8 @@ vpxor  %ymm3, %ymm3, %ymm5
 # CHECK-NEXT:  1      0     0.25                        vpxor	%ymm3, %ymm3, %ymm5
 
 # CHECK:      Register File statistics:
-# CHECK-NEXT: Total number of mappings created:    79
-# CHECK-NEXT: Max number of mappings used:         24
+# CHECK-NEXT: Total number of mappings created:    24
+# CHECK-NEXT: Max number of mappings used:         14
 
 # CHECK:      Resources:
 # CHECK-NEXT: [0]   - BWDivider
@@ -350,13 +350,13 @@ vpxor  %ymm3, %ymm3, %ymm5
 # CHECK-NEXT: [0,57]    .    .    .   D=====eER   vandnpd	%ymm1, %ymm1, %ymm5
 # CHECK-NEXT: [0,58]    .    .    .   DeE-----R   vpandn	%ymm3, %ymm3, %ymm5
 # CHECK-NEXT: [0,59]    .    .    .   D-------R   xorps	%xmm0, %xmm0
-# CHECK-NEXT: [0,60]    .    .    .    D=E----R   xorpd	%xmm1, %xmm1
-# CHECK-NEXT: [0,61]    .    .    .    D=E----R   vxorps	%xmm2, %xmm2, %xmm2
-# CHECK-NEXT: [0,62]    .    .    .    D=E----R   vxorpd	%xmm1, %xmm1, %xmm1
-# CHECK-NEXT: [0,63]    .    .    .    D=E----R   vxorps	%ymm2, %ymm2, %ymm2
-# CHECK-NEXT: [0,64]    .    .    .    .DE----R   vxorpd	%ymm1, %ymm1, %ymm1
+# CHECK-NEXT: [0,60]    .    .    .    D------R   xorpd	%xmm1, %xmm1
+# CHECK-NEXT: [0,61]    .    .    .    D------R   vxorps	%xmm2, %xmm2, %xmm2
+# CHECK-NEXT: [0,62]    .    .    .    D------R   vxorpd	%xmm1, %xmm1, %xmm1
+# CHECK-NEXT: [0,63]    .    .    .    D------R   vxorps	%ymm2, %ymm2, %ymm2
+# CHECK-NEXT: [0,64]    .    .    .    .D-----R   vxorpd	%ymm1, %ymm1, %ymm1
 # CHECK-NEXT: [0,65]    .    .    .    .DeE---R   pxor	%mm2, %mm2
-# CHECK-NEXT: [0,66]    .    .    .    .DE----R   pxor	%xmm2, %xmm2
+# CHECK-NEXT: [0,66]    .    .    .    .D-----R   pxor	%xmm2, %xmm2
 # CHECK-NEXT: [0,67]    .    .    .    .D-----R   vpxor	%xmm3, %xmm3, %xmm3
 # CHECK-NEXT: [0,68]    .    .    .    . D----R   vpxor	%ymm3, %ymm3, %ymm3
 # CHECK-NEXT: [0,69]    .    .    .    . D----R   vxorps	%xmm4, %xmm4, %xmm5
@@ -433,13 +433,13 @@ vpxor  %ymm3, %ymm3, %ymm5
 # CHECK-NEXT: 57.    1     6.0    3.0    0.0       vandnpd	%ymm1, %ymm1, %ymm5
 # CHECK-NEXT: 58.    1     1.0    0.0    5.0       vpandn	%ymm3, %ymm3, %ymm5
 # CHECK-NEXT: 59.    1     0.0    0.0    7.0       xorps	%xmm0, %xmm0
-# CHECK-NEXT: 60.    1     2.0    0.0    4.0       xorpd	%xmm1, %xmm1
-# CHECK-NEXT: 61.    1     2.0    0.0    4.0       vxorps	%xmm2, %xmm2, %xmm2
-# CHECK-NEXT: 62.    1     2.0    0.0    4.0       vxorpd	%xmm1, %xmm1, %xmm1
-# CHECK-NEXT: 63.    1     2.0    0.0    4.0       vxorps	%ymm2, %ymm2, %ymm2
-# CHECK-NEXT: 64.    1     1.0    0.0    4.0       vxorpd	%ymm1, %ymm1, %ymm1
+# CHECK-NEXT: 60.    1     0.0    0.0    6.0       xorpd	%xmm1, %xmm1
+# CHECK-NEXT: 61.    1     0.0    0.0    6.0       vxorps	%xmm2, %xmm2, %xmm2
+# CHECK-NEXT: 62.    1     0.0    0.0    6.0       vxorpd	%xmm1, %xmm1, %xmm1
+# CHECK-NEXT: 63.    1     0.0    0.0    6.0       vxorps	%ymm2, %ymm2, %ymm2
+# CHECK-NEXT: 64.    1     0.0    0.0    5.0       vxorpd	%ymm1, %ymm1, %ymm1
 # CHECK-NEXT: 65.    1     1.0    1.0    3.0       pxor	%mm2, %mm2
-# CHECK-NEXT: 66.    1     1.0    0.0    4.0       pxor	%xmm2, %xmm2
+# CHECK-NEXT: 66.    1     0.0    0.0    5.0       pxor	%xmm2, %xmm2
 # CHECK-NEXT: 67.    1     0.0    0.0    5.0       vpxor	%xmm3, %xmm3, %xmm3
 # CHECK-NEXT: 68.    1     0.0    0.0    4.0       vpxor	%ymm3, %ymm3, %ymm3
 # CHECK-NEXT: 69.    1     0.0    0.0    4.0       vxorps	%xmm4, %xmm4, %xmm5
@@ -448,4 +448,4 @@ vpxor  %ymm3, %ymm3, %ymm5
 # CHECK-NEXT: 72.    1     0.0    0.0    3.0       vxorpd	%ymm1, %ymm1, %ymm3
 # CHECK-NEXT: 73.    1     0.0    0.0    3.0       vpxor	%xmm3, %xmm3, %xmm5
 # CHECK-NEXT: 74.    1     0.0    0.0    3.0       vpxor	%ymm3, %ymm3, %ymm5
-# CHECK-NEXT:        1     0.9    0.2    1.8       <total>
+# CHECK-NEXT:        1     0.8    0.2    1.9       <total>

diff  --git a/llvm/test/tools/llvm-mca/X86/Haswell/zero-idioms.s b/llvm/test/tools/llvm-mca/X86/Haswell/zero-idioms.s
index b7e47894fd9cf..fb9b90c450364 100644
--- a/llvm/test/tools/llvm-mca/X86/Haswell/zero-idioms.s
+++ b/llvm/test/tools/llvm-mca/X86/Haswell/zero-idioms.s
@@ -207,8 +207,8 @@ vpxor  %ymm3, %ymm3, %ymm5
 # CHECK-NEXT:  1      0     0.25                        vpxor	%ymm3, %ymm3, %ymm5
 
 # CHECK:      Register File statistics:
-# CHECK-NEXT: Total number of mappings created:    87
-# CHECK-NEXT: Max number of mappings used:         24
+# CHECK-NEXT: Total number of mappings created:    26
+# CHECK-NEXT: Max number of mappings used:         14
 
 # CHECK:      Resources:
 # CHECK-NEXT: [0]   - HWDivider
@@ -384,13 +384,13 @@ vpxor  %ymm3, %ymm3, %ymm5
 # CHECK-NEXT: [0,65]    .    .    .    .D=====eER   vandnpd	%ymm1, %ymm1, %ymm5
 # CHECK-NEXT: [0,66]    .    .    .    .DeE-----R   vpandn	%ymm3, %ymm3, %ymm5
 # CHECK-NEXT: [0,67]    .    .    .    .D-------R   xorps	%xmm0, %xmm0
-# CHECK-NEXT: [0,68]    .    .    .    . D=E----R   xorpd	%xmm1, %xmm1
-# CHECK-NEXT: [0,69]    .    .    .    . D=E----R   vxorps	%xmm2, %xmm2, %xmm2
-# CHECK-NEXT: [0,70]    .    .    .    . D=E----R   vxorpd	%xmm1, %xmm1, %xmm1
-# CHECK-NEXT: [0,71]    .    .    .    . D=E----R   vxorps	%ymm2, %ymm2, %ymm2
-# CHECK-NEXT: [0,72]    .    .    .    .  DE----R   vxorpd	%ymm1, %ymm1, %ymm1
+# CHECK-NEXT: [0,68]    .    .    .    . D------R   xorpd	%xmm1, %xmm1
+# CHECK-NEXT: [0,69]    .    .    .    . D------R   vxorps	%xmm2, %xmm2, %xmm2
+# CHECK-NEXT: [0,70]    .    .    .    . D------R   vxorpd	%xmm1, %xmm1, %xmm1
+# CHECK-NEXT: [0,71]    .    .    .    . D------R   vxorps	%ymm2, %ymm2, %ymm2
+# CHECK-NEXT: [0,72]    .    .    .    .  D-----R   vxorpd	%ymm1, %ymm1, %ymm1
 # CHECK-NEXT: [0,73]    .    .    .    .  DeE---R   pxor	%mm2, %mm2
-# CHECK-NEXT: [0,74]    .    .    .    .  DE----R   pxor	%xmm2, %xmm2
+# CHECK-NEXT: [0,74]    .    .    .    .  D-----R   pxor	%xmm2, %xmm2
 # CHECK-NEXT: [0,75]    .    .    .    .  D-----R   vpxor	%xmm3, %xmm3, %xmm3
 # CHECK-NEXT: [0,76]    .    .    .    .   D----R   vpxor	%ymm3, %ymm3, %ymm3
 # CHECK-NEXT: [0,77]    .    .    .    .   D----R   vxorps	%xmm4, %xmm4, %xmm5
@@ -475,13 +475,13 @@ vpxor  %ymm3, %ymm3, %ymm5
 # CHECK-NEXT: 65.    1     6.0    3.0    0.0       vandnpd	%ymm1, %ymm1, %ymm5
 # CHECK-NEXT: 66.    1     1.0    0.0    5.0       vpandn	%ymm3, %ymm3, %ymm5
 # CHECK-NEXT: 67.    1     0.0    0.0    7.0       xorps	%xmm0, %xmm0
-# CHECK-NEXT: 68.    1     2.0    0.0    4.0       xorpd	%xmm1, %xmm1
-# CHECK-NEXT: 69.    1     2.0    0.0    4.0       vxorps	%xmm2, %xmm2, %xmm2
-# CHECK-NEXT: 70.    1     2.0    0.0    4.0       vxorpd	%xmm1, %xmm1, %xmm1
-# CHECK-NEXT: 71.    1     2.0    0.0    4.0       vxorps	%ymm2, %ymm2, %ymm2
-# CHECK-NEXT: 72.    1     1.0    0.0    4.0       vxorpd	%ymm1, %ymm1, %ymm1
+# CHECK-NEXT: 68.    1     0.0    0.0    6.0       xorpd	%xmm1, %xmm1
+# CHECK-NEXT: 69.    1     0.0    0.0    6.0       vxorps	%xmm2, %xmm2, %xmm2
+# CHECK-NEXT: 70.    1     0.0    0.0    6.0       vxorpd	%xmm1, %xmm1, %xmm1
+# CHECK-NEXT: 71.    1     0.0    0.0    6.0       vxorps	%ymm2, %ymm2, %ymm2
+# CHECK-NEXT: 72.    1     0.0    0.0    5.0       vxorpd	%ymm1, %ymm1, %ymm1
 # CHECK-NEXT: 73.    1     1.0    1.0    3.0       pxor	%mm2, %mm2
-# CHECK-NEXT: 74.    1     1.0    0.0    4.0       pxor	%xmm2, %xmm2
+# CHECK-NEXT: 74.    1     0.0    0.0    5.0       pxor	%xmm2, %xmm2
 # CHECK-NEXT: 75.    1     0.0    0.0    5.0       vpxor	%xmm3, %xmm3, %xmm3
 # CHECK-NEXT: 76.    1     0.0    0.0    4.0       vpxor	%ymm3, %ymm3, %ymm3
 # CHECK-NEXT: 77.    1     0.0    0.0    4.0       vxorps	%xmm4, %xmm4, %xmm5
@@ -490,4 +490,4 @@ vpxor  %ymm3, %ymm3, %ymm5
 # CHECK-NEXT: 80.    1     0.0    0.0    3.0       vxorpd	%ymm1, %ymm1, %ymm3
 # CHECK-NEXT: 81.    1     0.0    0.0    3.0       vpxor	%xmm3, %xmm3, %xmm5
 # CHECK-NEXT: 82.    1     0.0    0.0    3.0       vpxor	%ymm3, %ymm3, %ymm5
-# CHECK-NEXT:        1     0.8    0.2    1.6       <total>
+# CHECK-NEXT:        1     0.7    0.2    1.8       <total>

diff  --git a/llvm/test/tools/llvm-mca/X86/IceLakeServer/zero-idioms.s b/llvm/test/tools/llvm-mca/X86/IceLakeServer/zero-idioms.s
index d398d3565d73a..353448606af59 100644
--- a/llvm/test/tools/llvm-mca/X86/IceLakeServer/zero-idioms.s
+++ b/llvm/test/tools/llvm-mca/X86/IceLakeServer/zero-idioms.s
@@ -325,8 +325,8 @@ vpxorq  %zmm19, %zmm19, %zmm21
 # CHECK-NEXT:  1      0     0.17                        vpxorq	%zmm19, %zmm19, %zmm21
 
 # CHECK:      Register File statistics:
-# CHECK-NEXT: Total number of mappings created:    143
-# CHECK-NEXT: Max number of mappings used:         47
+# CHECK-NEXT: Total number of mappings created:    40
+# CHECK-NEXT: Max number of mappings used:         25
 
 # CHECK:      Resources:
 # CHECK-NEXT: [0]   - ICXDivider
@@ -611,12 +611,12 @@ vpxorq  %zmm19, %zmm19, %zmm21
 # CHECK-NEXT: [0,116]   .    .    .    .   D------R   pxor	%xmm2, %xmm2
 # CHECK-NEXT: [0,117]   .    .    .    .   D------R   vpxor	%xmm3, %xmm3, %xmm3
 # CHECK-NEXT: [0,118]   .    .    .    .   D------R   vpxor	%ymm3, %ymm3, %ymm3
-# CHECK-NEXT: [0,119]   .    .    .    .   D===E--R   vpxord	%xmm19, %xmm19, %xmm19
-# CHECK-NEXT: [0,120]   .    .    .    .    D==E--R   vpxorq	%xmm19, %xmm19, %xmm19
-# CHECK-NEXT: [0,121]   .    .    .    .    D==E--R   vpxord	%ymm19, %ymm19, %ymm19
-# CHECK-NEXT: [0,122]   .    .    .    .    D==E--R   vpxorq	%ymm19, %ymm19, %ymm19
-# CHECK-NEXT: [0,123]   .    .    .    .    D==E--R   vpxord	%zmm19, %zmm19, %zmm19
-# CHECK-NEXT: [0,124]   .    .    .    .    D==E--R   vpxorq	%zmm19, %zmm19, %zmm19
+# CHECK-NEXT: [0,119]   .    .    .    .   D------R   vpxord	%xmm19, %xmm19, %xmm19
+# CHECK-NEXT: [0,120]   .    .    .    .    D-----R   vpxorq	%xmm19, %xmm19, %xmm19
+# CHECK-NEXT: [0,121]   .    .    .    .    D-----R   vpxord	%ymm19, %ymm19, %ymm19
+# CHECK-NEXT: [0,122]   .    .    .    .    D-----R   vpxorq	%ymm19, %ymm19, %ymm19
+# CHECK-NEXT: [0,123]   .    .    .    .    D-----R   vpxord	%zmm19, %zmm19, %zmm19
+# CHECK-NEXT: [0,124]   .    .    .    .    D-----R   vpxorq	%zmm19, %zmm19, %zmm19
 # CHECK-NEXT: [0,125]   .    .    .    .    D-----R   vxorps	%xmm4, %xmm4, %xmm5
 # CHECK-NEXT: [0,126]   .    .    .    .    .D----R   vxorpd	%xmm1, %xmm1, %xmm3
 # CHECK-NEXT: [0,127]   .    .    .    .    .D----R   vxorps	%ymm4, %ymm4, %ymm5
@@ -625,11 +625,11 @@ vpxorq  %zmm19, %zmm19, %zmm21
 # CHECK-NEXT: [0,130]   .    .    .    .    .D----R   vxorpd	%zmm1, %zmm1, %zmm3
 # CHECK-NEXT: [0,131]   .    .    .    .    .D----R   vpxor	%xmm3, %xmm3, %xmm5
 # CHECK-NEXT: [0,132]   .    .    .    .    . D---R   vpxor	%ymm3, %ymm3, %ymm5
-# CHECK-NEXT: [0,133]   .    .    .    .    . DE--R   vpxord	%xmm19, %xmm19, %xmm21
-# CHECK-NEXT: [0,134]   .    .    .    .    . DE--R   vpxorq	%xmm19, %xmm19, %xmm21
-# CHECK-NEXT: [0,135]   .    .    .    .    . DE--R   vpxord	%ymm19, %ymm19, %ymm21
-# CHECK-NEXT: [0,136]   .    .    .    .    . DE--R   vpxorq	%ymm19, %ymm19, %ymm21
-# CHECK-NEXT: [0,137]   .    .    .    .    . DE--R   vpxord	%zmm19, %zmm19, %zmm21
+# CHECK-NEXT: [0,133]   .    .    .    .    . D---R   vpxord	%xmm19, %xmm19, %xmm21
+# CHECK-NEXT: [0,134]   .    .    .    .    . D---R   vpxorq	%xmm19, %xmm19, %xmm21
+# CHECK-NEXT: [0,135]   .    .    .    .    . D---R   vpxord	%ymm19, %ymm19, %ymm21
+# CHECK-NEXT: [0,136]   .    .    .    .    . D---R   vpxorq	%ymm19, %ymm19, %ymm21
+# CHECK-NEXT: [0,137]   .    .    .    .    . D---R   vpxord	%zmm19, %zmm19, %zmm21
 # CHECK-NEXT: [0,138]   .    .    .    .    .  D--R   vpxorq	%zmm19, %zmm19, %zmm21
 
 # CHECK:      Average Wait times (based on the timeline view):
@@ -758,12 +758,12 @@ vpxorq  %zmm19, %zmm19, %zmm21
 # CHECK-NEXT: 116.   1     0.0    0.0    6.0       pxor	%xmm2, %xmm2
 # CHECK-NEXT: 117.   1     0.0    0.0    6.0       vpxor	%xmm3, %xmm3, %xmm3
 # CHECK-NEXT: 118.   1     0.0    0.0    6.0       vpxor	%ymm3, %ymm3, %ymm3
-# CHECK-NEXT: 119.   1     4.0    0.0    2.0       vpxord	%xmm19, %xmm19, %xmm19
-# CHECK-NEXT: 120.   1     3.0    0.0    2.0       vpxorq	%xmm19, %xmm19, %xmm19
-# CHECK-NEXT: 121.   1     3.0    0.0    2.0       vpxord	%ymm19, %ymm19, %ymm19
-# CHECK-NEXT: 122.   1     3.0    0.0    2.0       vpxorq	%ymm19, %ymm19, %ymm19
-# CHECK-NEXT: 123.   1     3.0    0.0    2.0       vpxord	%zmm19, %zmm19, %zmm19
-# CHECK-NEXT: 124.   1     3.0    0.0    2.0       vpxorq	%zmm19, %zmm19, %zmm19
+# CHECK-NEXT: 119.   1     0.0    0.0    6.0       vpxord	%xmm19, %xmm19, %xmm19
+# CHECK-NEXT: 120.   1     0.0    0.0    5.0       vpxorq	%xmm19, %xmm19, %xmm19
+# CHECK-NEXT: 121.   1     0.0    0.0    5.0       vpxord	%ymm19, %ymm19, %ymm19
+# CHECK-NEXT: 122.   1     0.0    0.0    5.0       vpxorq	%ymm19, %ymm19, %ymm19
+# CHECK-NEXT: 123.   1     0.0    0.0    5.0       vpxord	%zmm19, %zmm19, %zmm19
+# CHECK-NEXT: 124.   1     0.0    0.0    5.0       vpxorq	%zmm19, %zmm19, %zmm19
 # CHECK-NEXT: 125.   1     0.0    0.0    5.0       vxorps	%xmm4, %xmm4, %xmm5
 # CHECK-NEXT: 126.   1     0.0    0.0    4.0       vxorpd	%xmm1, %xmm1, %xmm3
 # CHECK-NEXT: 127.   1     0.0    0.0    4.0       vxorps	%ymm4, %ymm4, %ymm5
@@ -772,10 +772,10 @@ vpxorq  %zmm19, %zmm19, %zmm21
 # CHECK-NEXT: 130.   1     0.0    0.0    4.0       vxorpd	%zmm1, %zmm1, %zmm3
 # CHECK-NEXT: 131.   1     0.0    0.0    4.0       vpxor	%xmm3, %xmm3, %xmm5
 # CHECK-NEXT: 132.   1     0.0    0.0    3.0       vpxor	%ymm3, %ymm3, %ymm5
-# CHECK-NEXT: 133.   1     1.0    0.0    2.0       vpxord	%xmm19, %xmm19, %xmm21
-# CHECK-NEXT: 134.   1     1.0    0.0    2.0       vpxorq	%xmm19, %xmm19, %xmm21
-# CHECK-NEXT: 135.   1     1.0    0.0    2.0       vpxord	%ymm19, %ymm19, %ymm21
-# CHECK-NEXT: 136.   1     1.0    0.0    2.0       vpxorq	%ymm19, %ymm19, %ymm21
-# CHECK-NEXT: 137.   1     1.0    0.0    2.0       vpxord	%zmm19, %zmm19, %zmm21
+# CHECK-NEXT: 133.   1     0.0    0.0    3.0       vpxord	%xmm19, %xmm19, %xmm21
+# CHECK-NEXT: 134.   1     0.0    0.0    3.0       vpxorq	%xmm19, %xmm19, %xmm21
+# CHECK-NEXT: 135.   1     0.0    0.0    3.0       vpxord	%ymm19, %ymm19, %ymm21
+# CHECK-NEXT: 136.   1     0.0    0.0    3.0       vpxorq	%ymm19, %ymm19, %ymm21
+# CHECK-NEXT: 137.   1     0.0    0.0    3.0       vpxord	%zmm19, %zmm19, %zmm21
 # CHECK-NEXT: 138.   1     0.0    0.0    2.0       vpxorq	%zmm19, %zmm19, %zmm21
-# CHECK-NEXT:        1     1.1    0.2    1.8       <total>
+# CHECK-NEXT:        1     0.9    0.2    2.0       <total>

diff  --git a/llvm/test/tools/llvm-mca/X86/SLM/zero-idioms.s b/llvm/test/tools/llvm-mca/X86/SLM/zero-idioms.s
index 945391125d8b9..e8271597e6cd4 100644
--- a/llvm/test/tools/llvm-mca/X86/SLM/zero-idioms.s
+++ b/llvm/test/tools/llvm-mca/X86/SLM/zero-idioms.s
@@ -103,7 +103,7 @@ pxor   %xmm2, %xmm2
 # CHECK-NEXT:  1      1     0.50                        pxor	%xmm2, %xmm2
 
 # CHECK:      Register File statistics:
-# CHECK-NEXT: Total number of mappings created:    40
+# CHECK-NEXT: Total number of mappings created:    35
 # CHECK-NEXT: Max number of mappings used:         18
 
 # CHECK:      Resources:
@@ -123,8 +123,8 @@ pxor   %xmm2, %xmm2
 # CHECK:      Resource pressure by instruction:
 # CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    Instructions:
 # CHECK-NEXT:  -      -      -      -      -      -     1.00    -     subl	%eax, %eax
-# CHECK-NEXT:  -      -      -      -      -     1.00    -      -     subq	%rax, %rax
-# CHECK-NEXT:  -      -      -      -      -      -     1.00    -     xorl	%eax, %eax
+# CHECK-NEXT:  -      -      -      -      -      -     1.00    -     subq	%rax, %rax
+# CHECK-NEXT:  -      -      -      -      -     1.00    -      -     xorl	%eax, %eax
 # CHECK-NEXT:  -      -      -      -      -     1.00    -      -     xorq	%rax, %rax
 # CHECK-NEXT:  -      -      -      -     1.00    -      -      -     pcmpgtb	%mm2, %mm2
 # CHECK-NEXT:  -      -      -     1.00    -      -      -      -     pcmpgtd	%mm2, %mm2
@@ -150,8 +150,8 @@ pxor   %xmm2, %xmm2
 # CHECK-NEXT:  -      -      -     1.00    -      -      -      -     psubusb	%xmm2, %xmm2
 # CHECK-NEXT:  -      -      -      -     1.00    -      -      -     psubusw	%xmm2, %xmm2
 # CHECK-NEXT:  -      -      -     1.00    -      -      -      -     andnps	%xmm0, %xmm0
-# CHECK-NEXT:  -      -      -      -     1.00    -      -      -     andnpd	%xmm1, %xmm1
-# CHECK-NEXT:  -      -      -     1.00    -      -      -      -     pandn	%mm2, %mm2
+# CHECK-NEXT:  -      -      -     1.00    -      -      -      -     andnpd	%xmm1, %xmm1
+# CHECK-NEXT:  -      -      -      -     1.00    -      -      -     pandn	%mm2, %mm2
 # CHECK-NEXT:  -      -      -      -     1.00    -      -      -     pandn	%xmm2, %xmm2
 # CHECK-NEXT:  -      -      -     1.00    -      -      -      -     vpandn	%xmm3, %xmm3, %xmm3
 # CHECK-NEXT:  -      -      -      -     1.00    -      -      -     xorps	%xmm0, %xmm0
@@ -165,9 +165,9 @@ pxor   %xmm2, %xmm2
 
 # CHECK:      [0,0]     DeER .    .    .    .    .  .   subl	%eax, %eax
 # CHECK-NEXT: [0,1]     D=eER.    .    .    .    .  .   subq	%rax, %rax
-# CHECK-NEXT: [0,2]     .D=eER    .    .    .    .  .   xorl	%eax, %eax
-# CHECK-NEXT: [0,3]     .D==eER   .    .    .    .  .   xorq	%rax, %rax
-# CHECK-NEXT: [0,4]     . DeE-R   .    .    .    .  .   pcmpgtb	%mm2, %mm2
+# CHECK-NEXT: [0,2]     .DeER.    .    .    .    .  .   xorl	%eax, %eax
+# CHECK-NEXT: [0,3]     .D=eER    .    .    .    .  .   xorq	%rax, %rax
+# CHECK-NEXT: [0,4]     . DeER    .    .    .    .  .   pcmpgtb	%mm2, %mm2
 # CHECK-NEXT: [0,5]     . D=eER   .    .    .    .  .   pcmpgtd	%mm2, %mm2
 # CHECK-NEXT: [0,6]     .  D=eER  .    .    .    .  .   pcmpgtw	%mm2, %mm2
 # CHECK-NEXT: [0,7]     .  DeE-R  .    .    .    .  .   pcmpgtb	%xmm2, %xmm2
@@ -209,9 +209,9 @@ pxor   %xmm2, %xmm2
 # CHECK:            [0]    [1]    [2]    [3]
 # CHECK-NEXT: 0.     1     1.0    1.0    0.0       subl	%eax, %eax
 # CHECK-NEXT: 1.     1     2.0    0.0    0.0       subq	%rax, %rax
-# CHECK-NEXT: 2.     1     2.0    0.0    0.0       xorl	%eax, %eax
-# CHECK-NEXT: 3.     1     3.0    0.0    0.0       xorq	%rax, %rax
-# CHECK-NEXT: 4.     1     1.0    1.0    1.0       pcmpgtb	%mm2, %mm2
+# CHECK-NEXT: 2.     1     1.0    1.0    0.0       xorl	%eax, %eax
+# CHECK-NEXT: 3.     1     2.0    0.0    0.0       xorq	%rax, %rax
+# CHECK-NEXT: 4.     1     1.0    1.0    0.0       pcmpgtb	%mm2, %mm2
 # CHECK-NEXT: 5.     1     2.0    0.0    0.0       pcmpgtd	%mm2, %mm2
 # CHECK-NEXT: 6.     1     2.0    0.0    0.0       pcmpgtw	%mm2, %mm2
 # CHECK-NEXT: 7.     1     1.0    1.0    1.0       pcmpgtb	%xmm2, %xmm2
@@ -239,8 +239,8 @@ pxor   %xmm2, %xmm2
 # CHECK-NEXT: 29.    1     7.0    1.0    0.0       pandn	%mm2, %mm2
 # CHECK-NEXT: 30.    1     7.0    1.0    0.0       pandn	%xmm2, %xmm2
 # CHECK-NEXT: 31.    1     7.0    7.0    0.0       vpandn	%xmm3, %xmm3, %xmm3
-# CHECK-NEXT: 32.    1     7.0    2.0    0.0       xorps	%xmm0, %xmm0
-# CHECK-NEXT: 33.    1     7.0    1.0    0.0       xorpd	%xmm1, %xmm1
+# CHECK-NEXT: 32.    1     7.0    7.0    0.0       xorps	%xmm0, %xmm0
+# CHECK-NEXT: 33.    1     7.0    7.0    0.0       xorpd	%xmm1, %xmm1
 # CHECK-NEXT: 34.    1     7.0    2.0    0.0       pxor	%mm2, %mm2
-# CHECK-NEXT: 35.    1     7.0    1.0    0.0       pxor	%xmm2, %xmm2
-# CHECK-NEXT:        1     4.4    1.1    0.5       <total>
+# CHECK-NEXT: 35.    1     7.0    7.0    0.0       pxor	%xmm2, %xmm2
+# CHECK-NEXT:        1     4.3    1.6    0.5       <total>

diff  --git a/llvm/test/tools/llvm-mca/X86/SandyBridge/zero-idioms.s b/llvm/test/tools/llvm-mca/X86/SandyBridge/zero-idioms.s
index 1a1e83070def3..4a034cc2ee191 100644
--- a/llvm/test/tools/llvm-mca/X86/SandyBridge/zero-idioms.s
+++ b/llvm/test/tools/llvm-mca/X86/SandyBridge/zero-idioms.s
@@ -165,8 +165,8 @@ vpxor  %xmm3, %xmm3, %xmm5
 # CHECK-NEXT:  1      0     0.25                        vpxor	%xmm3, %xmm3, %xmm5
 
 # CHECK:      Register File statistics:
-# CHECK-NEXT: Total number of mappings created:    67
-# CHECK-NEXT: Max number of mappings used:         43
+# CHECK-NEXT: Total number of mappings created:    26
+# CHECK-NEXT: Max number of mappings used:         22
 
 # CHECK:      Resources:
 # CHECK-NEXT: [0]   - SBDivider
@@ -302,16 +302,16 @@ vpxor  %xmm3, %xmm3, %xmm5
 # CHECK-NEXT: [0,47]    .    .    .D=====eE------R.   vandnps	%ymm2, %ymm2, %ymm5
 # CHECK-NEXT: [0,48]    .    .    . D=====eE-----R.   vandnpd	%ymm1, %ymm1, %ymm5
 # CHECK-NEXT: [0,49]    .    .    . D------------R.   xorps	%xmm0, %xmm0
-# CHECK-NEXT: [0,50]    .    .    . D==E---------R.   xorpd	%xmm1, %xmm1
-# CHECK-NEXT: [0,51]    .    .    . D=E----------R.   vxorps	%xmm2, %xmm2, %xmm2
-# CHECK-NEXT: [0,52]    .    .    .  D=E---------R.   vxorpd	%xmm1, %xmm1, %xmm1
-# CHECK-NEXT: [0,53]    .    .    .  DE----------R.   vxorps	%ymm2, %ymm2, %ymm2
-# CHECK-NEXT: [0,54]    .    .    .  D=E---------R.   vxorpd	%ymm1, %ymm1, %ymm1
+# CHECK-NEXT: [0,50]    .    .    . D------------R.   xorpd	%xmm1, %xmm1
+# CHECK-NEXT: [0,51]    .    .    . D------------R.   vxorps	%xmm2, %xmm2, %xmm2
+# CHECK-NEXT: [0,52]    .    .    .  D-----------R.   vxorpd	%xmm1, %xmm1, %xmm1
+# CHECK-NEXT: [0,53]    .    .    .  D-----------R.   vxorps	%ymm2, %ymm2, %ymm2
+# CHECK-NEXT: [0,54]    .    .    .  D-----------R.   vxorpd	%ymm1, %ymm1, %ymm1
 # CHECK-NEXT: [0,55]    .    .    .  D==========eER   pxor	%mm2, %mm2
 # CHECK-NEXT: [0,56]    .    .    .   D-----------R   pxor	%xmm2, %xmm2
 # CHECK-NEXT: [0,57]    .    .    .   D-----------R   vpxor	%xmm3, %xmm3, %xmm3
 # CHECK-NEXT: [0,58]    .    .    .   D-----------R   vxorps	%xmm4, %xmm4, %xmm5
-# CHECK-NEXT: [0,59]    .    .    .   DE----------R   vxorpd	%xmm1, %xmm1, %xmm3
+# CHECK-NEXT: [0,59]    .    .    .   D-----------R   vxorpd	%xmm1, %xmm1, %xmm3
 # CHECK-NEXT: [0,60]    .    .    .    D----------R   vxorps	%ymm4, %ymm4, %ymm5
 # CHECK-NEXT: [0,61]    .    .    .    D----------R   vxorpd	%ymm1, %ymm1, %ymm3
 # CHECK-NEXT: [0,62]    .    .    .    D----------R   vpxor	%xmm3, %xmm3, %xmm5
@@ -373,17 +373,17 @@ vpxor  %xmm3, %xmm3, %xmm5
 # CHECK-NEXT: 47.    1     6.0    3.0    6.0       vandnps	%ymm2, %ymm2, %ymm5
 # CHECK-NEXT: 48.    1     6.0    3.0    5.0       vandnpd	%ymm1, %ymm1, %ymm5
 # CHECK-NEXT: 49.    1     0.0    0.0    12.0      xorps	%xmm0, %xmm0
-# CHECK-NEXT: 50.    1     3.0    0.0    9.0       xorpd	%xmm1, %xmm1
-# CHECK-NEXT: 51.    1     2.0    0.0    10.0      vxorps	%xmm2, %xmm2, %xmm2
-# CHECK-NEXT: 52.    1     2.0    0.0    9.0       vxorpd	%xmm1, %xmm1, %xmm1
-# CHECK-NEXT: 53.    1     1.0    0.0    10.0      vxorps	%ymm2, %ymm2, %ymm2
-# CHECK-NEXT: 54.    1     2.0    0.0    9.0       vxorpd	%ymm1, %ymm1, %ymm1
+# CHECK-NEXT: 50.    1     0.0    0.0    12.0      xorpd	%xmm1, %xmm1
+# CHECK-NEXT: 51.    1     0.0    0.0    12.0      vxorps	%xmm2, %xmm2, %xmm2
+# CHECK-NEXT: 52.    1     0.0    0.0    11.0      vxorpd	%xmm1, %xmm1, %xmm1
+# CHECK-NEXT: 53.    1     0.0    0.0    11.0      vxorps	%ymm2, %ymm2, %ymm2
+# CHECK-NEXT: 54.    1     0.0    0.0    11.0      vxorpd	%ymm1, %ymm1, %ymm1
 # CHECK-NEXT: 55.    1     11.0   0.0    0.0       pxor	%mm2, %mm2
 # CHECK-NEXT: 56.    1     0.0    0.0    11.0      pxor	%xmm2, %xmm2
 # CHECK-NEXT: 57.    1     0.0    0.0    11.0      vpxor	%xmm3, %xmm3, %xmm3
 # CHECK-NEXT: 58.    1     0.0    0.0    11.0      vxorps	%xmm4, %xmm4, %xmm5
-# CHECK-NEXT: 59.    1     1.0    0.0    10.0      vxorpd	%xmm1, %xmm1, %xmm3
+# CHECK-NEXT: 59.    1     0.0    0.0    11.0      vxorpd	%xmm1, %xmm1, %xmm3
 # CHECK-NEXT: 60.    1     0.0    0.0    10.0      vxorps	%ymm4, %ymm4, %ymm5
 # CHECK-NEXT: 61.    1     0.0    0.0    10.0      vxorpd	%ymm1, %ymm1, %ymm3
 # CHECK-NEXT: 62.    1     0.0    0.0    10.0      vpxor	%xmm3, %xmm3, %xmm5
-# CHECK-NEXT:        1     2.1    0.3    8.7       <total>
+# CHECK-NEXT:        1     1.9    0.3    8.9       <total>

diff  --git a/llvm/test/tools/llvm-mca/X86/SkylakeClient/zero-idioms.s b/llvm/test/tools/llvm-mca/X86/SkylakeClient/zero-idioms.s
index a8d608cdd392f..0f19ef26806a9 100644
--- a/llvm/test/tools/llvm-mca/X86/SkylakeClient/zero-idioms.s
+++ b/llvm/test/tools/llvm-mca/X86/SkylakeClient/zero-idioms.s
@@ -207,8 +207,8 @@ vpxor  %ymm3, %ymm3, %ymm5
 # CHECK-NEXT:  1      0     0.17                        vpxor	%ymm3, %ymm3, %ymm5
 
 # CHECK:      Register File statistics:
-# CHECK-NEXT: Total number of mappings created:    87
-# CHECK-NEXT: Max number of mappings used:         30
+# CHECK-NEXT: Total number of mappings created:    24
+# CHECK-NEXT: Max number of mappings used:         15
 
 # CHECK:      Resources:
 # CHECK-NEXT: [0]   - SKLDivider
@@ -384,15 +384,15 @@ vpxor  %ymm3, %ymm3, %ymm5
 # CHECK-NEXT: [0,65]    .    .    D==eER.   vandnpd	%ymm1, %ymm1, %ymm5
 # CHECK-NEXT: [0,66]    .    .    .D==eER   vpandn	%ymm3, %ymm3, %ymm5
 # CHECK-NEXT: [0,67]    .    .    .D----R   xorps	%xmm0, %xmm0
-# CHECK-NEXT: [0,68]    .    .    .DE---R   xorpd	%xmm1, %xmm1
-# CHECK-NEXT: [0,69]    .    .    .DE---R   vxorps	%xmm2, %xmm2, %xmm2
-# CHECK-NEXT: [0,70]    .    .    .DE---R   vxorpd	%xmm1, %xmm1, %xmm1
-# CHECK-NEXT: [0,71]    .    .    .DE---R   vxorps	%ymm2, %ymm2, %ymm2
+# CHECK-NEXT: [0,68]    .    .    .D----R   xorpd	%xmm1, %xmm1
+# CHECK-NEXT: [0,69]    .    .    .D----R   vxorps	%xmm2, %xmm2, %xmm2
+# CHECK-NEXT: [0,70]    .    .    .D----R   vxorpd	%xmm1, %xmm1, %xmm1
+# CHECK-NEXT: [0,71]    .    .    .D----R   vxorps	%ymm2, %ymm2, %ymm2
 # CHECK-NEXT: [0,72]    .    .    . D---R   vxorpd	%ymm1, %ymm1, %ymm1
 # CHECK-NEXT: [0,73]    .    .    . D=eER   pxor	%mm2, %mm2
 # CHECK-NEXT: [0,74]    .    .    . D---R   pxor	%xmm2, %xmm2
-# CHECK-NEXT: [0,75]    .    .    . DE--R   vpxor	%xmm3, %xmm3, %xmm3
-# CHECK-NEXT: [0,76]    .    .    . DE--R   vpxor	%ymm3, %ymm3, %ymm3
+# CHECK-NEXT: [0,75]    .    .    . D---R   vpxor	%xmm3, %xmm3, %xmm3
+# CHECK-NEXT: [0,76]    .    .    . D---R   vpxor	%ymm3, %ymm3, %ymm3
 # CHECK-NEXT: [0,77]    .    .    . D---R   vxorps	%xmm4, %xmm4, %xmm5
 # CHECK-NEXT: [0,78]    .    .    .  D--R   vxorpd	%xmm1, %xmm1, %xmm3
 # CHECK-NEXT: [0,79]    .    .    .  D--R   vxorps	%ymm4, %ymm4, %ymm5
@@ -475,19 +475,19 @@ vpxor  %ymm3, %ymm3, %ymm5
 # CHECK-NEXT: 65.    1     3.0    1.0    0.0       vandnpd	%ymm1, %ymm1, %ymm5
 # CHECK-NEXT: 66.    1     3.0    1.0    0.0       vpandn	%ymm3, %ymm3, %ymm5
 # CHECK-NEXT: 67.    1     0.0    0.0    4.0       xorps	%xmm0, %xmm0
-# CHECK-NEXT: 68.    1     1.0    0.0    3.0       xorpd	%xmm1, %xmm1
-# CHECK-NEXT: 69.    1     1.0    0.0    3.0       vxorps	%xmm2, %xmm2, %xmm2
-# CHECK-NEXT: 70.    1     1.0    0.0    3.0       vxorpd	%xmm1, %xmm1, %xmm1
-# CHECK-NEXT: 71.    1     1.0    0.0    3.0       vxorps	%ymm2, %ymm2, %ymm2
+# CHECK-NEXT: 68.    1     0.0    0.0    4.0       xorpd	%xmm1, %xmm1
+# CHECK-NEXT: 69.    1     0.0    0.0    4.0       vxorps	%xmm2, %xmm2, %xmm2
+# CHECK-NEXT: 70.    1     0.0    0.0    4.0       vxorpd	%xmm1, %xmm1, %xmm1
+# CHECK-NEXT: 71.    1     0.0    0.0    4.0       vxorps	%ymm2, %ymm2, %ymm2
 # CHECK-NEXT: 72.    1     0.0    0.0    3.0       vxorpd	%ymm1, %ymm1, %ymm1
 # CHECK-NEXT: 73.    1     2.0    2.0    0.0       pxor	%mm2, %mm2
 # CHECK-NEXT: 74.    1     0.0    0.0    3.0       pxor	%xmm2, %xmm2
-# CHECK-NEXT: 75.    1     1.0    0.0    2.0       vpxor	%xmm3, %xmm3, %xmm3
-# CHECK-NEXT: 76.    1     1.0    0.0    2.0       vpxor	%ymm3, %ymm3, %ymm3
+# CHECK-NEXT: 75.    1     0.0    0.0    3.0       vpxor	%xmm3, %xmm3, %xmm3
+# CHECK-NEXT: 76.    1     0.0    0.0    3.0       vpxor	%ymm3, %ymm3, %ymm3
 # CHECK-NEXT: 77.    1     0.0    0.0    3.0       vxorps	%xmm4, %xmm4, %xmm5
 # CHECK-NEXT: 78.    1     0.0    0.0    2.0       vxorpd	%xmm1, %xmm1, %xmm3
 # CHECK-NEXT: 79.    1     0.0    0.0    2.0       vxorps	%ymm4, %ymm4, %ymm5
 # CHECK-NEXT: 80.    1     0.0    0.0    2.0       vxorpd	%ymm1, %ymm1, %ymm3
 # CHECK-NEXT: 81.    1     0.0    0.0    2.0       vpxor	%xmm3, %xmm3, %xmm5
 # CHECK-NEXT: 82.    1     0.0    0.0    2.0       vpxor	%ymm3, %ymm3, %ymm5
-# CHECK-NEXT:        1     0.6    0.2    1.5       <total>
+# CHECK-NEXT:        1     0.6    0.2    1.6       <total>

diff  --git a/llvm/test/tools/llvm-mca/X86/SkylakeServer/zero-idioms.s b/llvm/test/tools/llvm-mca/X86/SkylakeServer/zero-idioms.s
index 13c9293d4260a..d3f94c27641ed 100644
--- a/llvm/test/tools/llvm-mca/X86/SkylakeServer/zero-idioms.s
+++ b/llvm/test/tools/llvm-mca/X86/SkylakeServer/zero-idioms.s
@@ -325,8 +325,8 @@ vpxorq  %zmm19, %zmm19, %zmm21
 # CHECK-NEXT:  1      0     0.17                        vpxorq	%zmm19, %zmm19, %zmm21
 
 # CHECK:      Register File statistics:
-# CHECK-NEXT: Total number of mappings created:    143
-# CHECK-NEXT: Max number of mappings used:         47
+# CHECK-NEXT: Total number of mappings created:    40
+# CHECK-NEXT: Max number of mappings used:         25
 
 # CHECK:      Resources:
 # CHECK-NEXT: [0]   - SKXDivider
@@ -609,12 +609,12 @@ vpxorq  %zmm19, %zmm19, %zmm21
 # CHECK-NEXT: [0,116]   .    .    .    .   D------R   pxor	%xmm2, %xmm2
 # CHECK-NEXT: [0,117]   .    .    .    .   D------R   vpxor	%xmm3, %xmm3, %xmm3
 # CHECK-NEXT: [0,118]   .    .    .    .   D------R   vpxor	%ymm3, %ymm3, %ymm3
-# CHECK-NEXT: [0,119]   .    .    .    .   D===E--R   vpxord	%xmm19, %xmm19, %xmm19
-# CHECK-NEXT: [0,120]   .    .    .    .    D==E--R   vpxorq	%xmm19, %xmm19, %xmm19
-# CHECK-NEXT: [0,121]   .    .    .    .    D==E--R   vpxord	%ymm19, %ymm19, %ymm19
-# CHECK-NEXT: [0,122]   .    .    .    .    D==E--R   vpxorq	%ymm19, %ymm19, %ymm19
-# CHECK-NEXT: [0,123]   .    .    .    .    D==E--R   vpxord	%zmm19, %zmm19, %zmm19
-# CHECK-NEXT: [0,124]   .    .    .    .    D==E--R   vpxorq	%zmm19, %zmm19, %zmm19
+# CHECK-NEXT: [0,119]   .    .    .    .   D------R   vpxord	%xmm19, %xmm19, %xmm19
+# CHECK-NEXT: [0,120]   .    .    .    .    D-----R   vpxorq	%xmm19, %xmm19, %xmm19
+# CHECK-NEXT: [0,121]   .    .    .    .    D-----R   vpxord	%ymm19, %ymm19, %ymm19
+# CHECK-NEXT: [0,122]   .    .    .    .    D-----R   vpxorq	%ymm19, %ymm19, %ymm19
+# CHECK-NEXT: [0,123]   .    .    .    .    D-----R   vpxord	%zmm19, %zmm19, %zmm19
+# CHECK-NEXT: [0,124]   .    .    .    .    D-----R   vpxorq	%zmm19, %zmm19, %zmm19
 # CHECK-NEXT: [0,125]   .    .    .    .    D-----R   vxorps	%xmm4, %xmm4, %xmm5
 # CHECK-NEXT: [0,126]   .    .    .    .    .D----R   vxorpd	%xmm1, %xmm1, %xmm3
 # CHECK-NEXT: [0,127]   .    .    .    .    .D----R   vxorps	%ymm4, %ymm4, %ymm5
@@ -623,11 +623,11 @@ vpxorq  %zmm19, %zmm19, %zmm21
 # CHECK-NEXT: [0,130]   .    .    .    .    .D----R   vxorpd	%zmm1, %zmm1, %zmm3
 # CHECK-NEXT: [0,131]   .    .    .    .    .D----R   vpxor	%xmm3, %xmm3, %xmm5
 # CHECK-NEXT: [0,132]   .    .    .    .    . D---R   vpxor	%ymm3, %ymm3, %ymm5
-# CHECK-NEXT: [0,133]   .    .    .    .    . DE--R   vpxord	%xmm19, %xmm19, %xmm21
-# CHECK-NEXT: [0,134]   .    .    .    .    . DE--R   vpxorq	%xmm19, %xmm19, %xmm21
-# CHECK-NEXT: [0,135]   .    .    .    .    . DE--R   vpxord	%ymm19, %ymm19, %ymm21
-# CHECK-NEXT: [0,136]   .    .    .    .    . DE--R   vpxorq	%ymm19, %ymm19, %ymm21
-# CHECK-NEXT: [0,137]   .    .    .    .    . DE--R   vpxord	%zmm19, %zmm19, %zmm21
+# CHECK-NEXT: [0,133]   .    .    .    .    . D---R   vpxord	%xmm19, %xmm19, %xmm21
+# CHECK-NEXT: [0,134]   .    .    .    .    . D---R   vpxorq	%xmm19, %xmm19, %xmm21
+# CHECK-NEXT: [0,135]   .    .    .    .    . D---R   vpxord	%ymm19, %ymm19, %ymm21
+# CHECK-NEXT: [0,136]   .    .    .    .    . D---R   vpxorq	%ymm19, %ymm19, %ymm21
+# CHECK-NEXT: [0,137]   .    .    .    .    . D---R   vpxord	%zmm19, %zmm19, %zmm21
 # CHECK-NEXT: [0,138]   .    .    .    .    .  D--R   vpxorq	%zmm19, %zmm19, %zmm21
 
 # CHECK:      Average Wait times (based on the timeline view):
@@ -756,12 +756,12 @@ vpxorq  %zmm19, %zmm19, %zmm21
 # CHECK-NEXT: 116.   1     0.0    0.0    6.0       pxor	%xmm2, %xmm2
 # CHECK-NEXT: 117.   1     0.0    0.0    6.0       vpxor	%xmm3, %xmm3, %xmm3
 # CHECK-NEXT: 118.   1     0.0    0.0    6.0       vpxor	%ymm3, %ymm3, %ymm3
-# CHECK-NEXT: 119.   1     4.0    0.0    2.0       vpxord	%xmm19, %xmm19, %xmm19
-# CHECK-NEXT: 120.   1     3.0    0.0    2.0       vpxorq	%xmm19, %xmm19, %xmm19
-# CHECK-NEXT: 121.   1     3.0    0.0    2.0       vpxord	%ymm19, %ymm19, %ymm19
-# CHECK-NEXT: 122.   1     3.0    0.0    2.0       vpxorq	%ymm19, %ymm19, %ymm19
-# CHECK-NEXT: 123.   1     3.0    0.0    2.0       vpxord	%zmm19, %zmm19, %zmm19
-# CHECK-NEXT: 124.   1     3.0    0.0    2.0       vpxorq	%zmm19, %zmm19, %zmm19
+# CHECK-NEXT: 119.   1     0.0    0.0    6.0       vpxord	%xmm19, %xmm19, %xmm19
+# CHECK-NEXT: 120.   1     0.0    0.0    5.0       vpxorq	%xmm19, %xmm19, %xmm19
+# CHECK-NEXT: 121.   1     0.0    0.0    5.0       vpxord	%ymm19, %ymm19, %ymm19
+# CHECK-NEXT: 122.   1     0.0    0.0    5.0       vpxorq	%ymm19, %ymm19, %ymm19
+# CHECK-NEXT: 123.   1     0.0    0.0    5.0       vpxord	%zmm19, %zmm19, %zmm19
+# CHECK-NEXT: 124.   1     0.0    0.0    5.0       vpxorq	%zmm19, %zmm19, %zmm19
 # CHECK-NEXT: 125.   1     0.0    0.0    5.0       vxorps	%xmm4, %xmm4, %xmm5
 # CHECK-NEXT: 126.   1     0.0    0.0    4.0       vxorpd	%xmm1, %xmm1, %xmm3
 # CHECK-NEXT: 127.   1     0.0    0.0    4.0       vxorps	%ymm4, %ymm4, %ymm5
@@ -770,10 +770,10 @@ vpxorq  %zmm19, %zmm19, %zmm21
 # CHECK-NEXT: 130.   1     0.0    0.0    4.0       vxorpd	%zmm1, %zmm1, %zmm3
 # CHECK-NEXT: 131.   1     0.0    0.0    4.0       vpxor	%xmm3, %xmm3, %xmm5
 # CHECK-NEXT: 132.   1     0.0    0.0    3.0       vpxor	%ymm3, %ymm3, %ymm5
-# CHECK-NEXT: 133.   1     1.0    0.0    2.0       vpxord	%xmm19, %xmm19, %xmm21
-# CHECK-NEXT: 134.   1     1.0    0.0    2.0       vpxorq	%xmm19, %xmm19, %xmm21
-# CHECK-NEXT: 135.   1     1.0    0.0    2.0       vpxord	%ymm19, %ymm19, %ymm21
-# CHECK-NEXT: 136.   1     1.0    0.0    2.0       vpxorq	%ymm19, %ymm19, %ymm21
-# CHECK-NEXT: 137.   1     1.0    0.0    2.0       vpxord	%zmm19, %zmm19, %zmm21
+# CHECK-NEXT: 133.   1     0.0    0.0    3.0       vpxord	%xmm19, %xmm19, %xmm21
+# CHECK-NEXT: 134.   1     0.0    0.0    3.0       vpxorq	%xmm19, %xmm19, %xmm21
+# CHECK-NEXT: 135.   1     0.0    0.0    3.0       vpxord	%ymm19, %ymm19, %ymm21
+# CHECK-NEXT: 136.   1     0.0    0.0    3.0       vpxorq	%ymm19, %ymm19, %ymm21
+# CHECK-NEXT: 137.   1     0.0    0.0    3.0       vpxord	%zmm19, %zmm19, %zmm21
 # CHECK-NEXT: 138.   1     0.0    0.0    2.0       vpxorq	%zmm19, %zmm19, %zmm21
-# CHECK-NEXT:        1     1.1    0.2    1.8       <total>
+# CHECK-NEXT:        1     0.9    0.2    2.0       <total>

diff  --git a/llvm/test/tools/llvm-mca/X86/Znver1/zero-idioms.s b/llvm/test/tools/llvm-mca/X86/Znver1/zero-idioms.s
index 6fb23bd3377fc..4596ff6b26c68 100644
--- a/llvm/test/tools/llvm-mca/X86/Znver1/zero-idioms.s
+++ b/llvm/test/tools/llvm-mca/X86/Znver1/zero-idioms.s
@@ -100,12 +100,12 @@ vpxor  %ymm3, %ymm3, %ymm5
 
 # CHECK:      Iterations:        1
 # CHECK-NEXT: Instructions:      83
-# CHECK-NEXT: Total Cycles:      29
+# CHECK-NEXT: Total Cycles:      24
 # CHECK-NEXT: Total uOps:        83
 
 # CHECK:      Dispatch Width:    4
-# CHECK-NEXT: uOps Per Cycle:    2.86
-# CHECK-NEXT: IPC:               2.86
+# CHECK-NEXT: uOps Per Cycle:    3.46
+# CHECK-NEXT: IPC:               3.46
 # CHECK-NEXT: Block RThroughput: 20.8
 
 # CHECK:      Instruction Info:
@@ -202,18 +202,18 @@ vpxor  %ymm3, %ymm3, %ymm5
 # CHECK-NEXT:  1      1     0.25                        vpxor	%ymm3, %ymm3, %ymm5
 
 # CHECK:      Register File statistics:
-# CHECK-NEXT: Total number of mappings created:    115
-# CHECK-NEXT: Max number of mappings used:         58
+# CHECK-NEXT: Total number of mappings created:    0
+# CHECK-NEXT: Max number of mappings used:         0
 
 # CHECK:      *  Register File #1 -- ZnFpuPRF:
 # CHECK-NEXT:    Number of physical registers:     160
-# CHECK-NEXT:    Total number of mappings created: 107
-# CHECK-NEXT:    Max number of mappings used:      58
+# CHECK-NEXT:    Total number of mappings created: 0
+# CHECK-NEXT:    Max number of mappings used:      0
 
 # CHECK:      *  Register File #2 -- ZnIntegerPRF:
 # CHECK-NEXT:    Number of physical registers:     168
-# CHECK-NEXT:    Total number of mappings created: 8
-# CHECK-NEXT:    Max number of mappings used:      8
+# CHECK-NEXT:    Total number of mappings created: 0
+# CHECK-NEXT:    Max number of mappings used:      0
 
 # CHECK:      Resources:
 # CHECK-NEXT: [0]   - ZnAGU0
@@ -231,7 +231,7 @@ vpxor  %ymm3, %ymm3, %ymm5
 
 # CHECK:      Resource pressure per iteration:
 # CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    [10]   [11]
-# CHECK-NEXT:  -      -     1.00   1.00   1.00   1.00    -     20.00  19.00  20.00  20.00   -
+# CHECK-NEXT:  -      -     1.00   1.00   1.00   1.00    -     19.00  20.00  20.00  20.00   -
 
 # CHECK:      Resource pressure by instruction:
 # CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    [10]   [11]   Instructions:
@@ -240,172 +240,172 @@ vpxor  %ymm3, %ymm3, %ymm5
 # CHECK-NEXT:  -      -      -     1.00    -      -      -      -      -      -      -      -     xorl	%eax, %eax
 # CHECK-NEXT:  -      -     1.00    -      -      -      -      -      -      -      -      -     xorq	%rax, %rax
 # CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00    -     pcmpgtb	%mm2, %mm2
-# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -      -     pcmpgtd	%mm2, %mm2
-# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -     pcmpgtw	%mm2, %mm2
-# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -     pcmpgtb	%xmm2, %xmm2
-# CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -      -      -     pcmpgtd	%xmm2, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -     pcmpgtd	%mm2, %mm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -      -     pcmpgtw	%mm2, %mm2
+# CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -      -      -     pcmpgtb	%xmm2, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00    -     pcmpgtd	%xmm2, %xmm2
 # CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -      -      -     pcmpgtq	%xmm2, %xmm2
-# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00    -     pcmpgtw	%xmm2, %xmm2
-# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00    -     vpcmpgtb	%xmm3, %xmm3, %xmm3
-# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -      -     vpcmpgtd	%xmm3, %xmm3, %xmm3
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -     pcmpgtw	%xmm2, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -      -     vpcmpgtb	%xmm3, %xmm3, %xmm3
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00    -     vpcmpgtd	%xmm3, %xmm3, %xmm3
 # CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -      -      -     vpcmpgtq	%xmm3, %xmm3, %xmm3
 # CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -     vpcmpgtw	%xmm3, %xmm3, %xmm3
 # CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -      -     vpcmpgtb	%xmm3, %xmm3, %xmm5
 # CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00    -     vpcmpgtd	%xmm3, %xmm3, %xmm5
 # CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -      -      -     vpcmpgtq	%xmm3, %xmm3, %xmm5
-# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -      -     vpcmpgtw	%xmm3, %xmm3, %xmm5
-# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -     vpcmpgtb	%ymm3, %ymm3, %ymm3
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -     vpcmpgtw	%xmm3, %xmm3, %xmm5
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -      -     vpcmpgtb	%ymm3, %ymm3, %ymm3
 # CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00    -     vpcmpgtd	%ymm3, %ymm3, %ymm3
-# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00    -     vpcmpgtq	%ymm3, %ymm3, %ymm3
-# CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -      -      -     vpcmpgtw	%ymm3, %ymm3, %ymm3
+# CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -      -      -     vpcmpgtq	%ymm3, %ymm3, %ymm3
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -     vpcmpgtw	%ymm3, %ymm3, %ymm3
 # CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -      -     vpcmpgtb	%ymm3, %ymm3, %ymm5
-# CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -      -      -     vpcmpgtd	%ymm3, %ymm3, %ymm5
-# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00    -     vpcmpgtq	%ymm3, %ymm3, %ymm5
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00    -     vpcmpgtd	%ymm3, %ymm3, %ymm5
+# CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -      -      -     vpcmpgtq	%ymm3, %ymm3, %ymm5
 # CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -     vpcmpgtw	%ymm3, %ymm3, %ymm5
-# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -     psubb	%mm2, %mm2
-# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -     psubd	%mm2, %mm2
-# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00    -     psubq	%mm2, %mm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -      -     psubb	%mm2, %mm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00    -     psubd	%mm2, %mm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -     psubq	%mm2, %mm2
 # CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -      -     psubw	%mm2, %mm2
 # CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -      -      -     psubb	%xmm2, %xmm2
-# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -      -     psubd	%xmm2, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00    -     psubd	%xmm2, %xmm2
 # CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -     psubq	%xmm2, %xmm2
-# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00    -     psubw	%xmm2, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -      -     psubw	%xmm2, %xmm2
 # CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -      -      -     vpsubb	%xmm3, %xmm3, %xmm3
-# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -     vpsubd	%xmm3, %xmm3, %xmm3
-# CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -      -      -     vpsubq	%xmm3, %xmm3, %xmm3
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00    -     vpsubd	%xmm3, %xmm3, %xmm3
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -     vpsubq	%xmm3, %xmm3, %xmm3
 # CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -      -     vpsubw	%xmm3, %xmm3, %xmm3
-# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -      -     vpsubb	%ymm3, %ymm3, %ymm3
-# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -     vpsubd	%ymm3, %ymm3, %ymm3
+# CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -      -      -     vpsubb	%ymm3, %ymm3, %ymm3
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00    -     vpsubd	%ymm3, %ymm3, %ymm3
 # CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -     vpsubq	%ymm3, %ymm3, %ymm3
-# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -     vpsubw	%ymm3, %ymm3, %ymm3
-# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -     vpsubb	%xmm3, %xmm3, %xmm5
-# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -      -     vpsubd	%xmm3, %xmm3, %xmm5
-# CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -      -      -     vpsubq	%xmm3, %xmm3, %xmm5
-# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00    -     vpsubw	%xmm3, %xmm3, %xmm5
-# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -     vpsubb	%ymm3, %ymm3, %ymm5
-# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -      -     vpsubd	%ymm3, %ymm3, %ymm5
-# CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -      -      -     vpsubq	%ymm3, %ymm3, %ymm5
-# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00    -     vpsubw	%ymm3, %ymm3, %ymm5
-# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -      -     andnps	%xmm0, %xmm0
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -      -     vpsubw	%ymm3, %ymm3, %ymm3
+# CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -      -      -     vpsubb	%xmm3, %xmm3, %xmm5
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00    -     vpsubd	%xmm3, %xmm3, %xmm5
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -     vpsubq	%xmm3, %xmm3, %xmm5
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -      -     vpsubw	%xmm3, %xmm3, %xmm5
+# CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -      -      -     vpsubb	%ymm3, %ymm3, %ymm5
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00    -     vpsubd	%ymm3, %ymm3, %ymm5
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -     vpsubq	%ymm3, %ymm3, %ymm5
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -      -     vpsubw	%ymm3, %ymm3, %ymm5
+# CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -      -      -     andnps	%xmm0, %xmm0
 # CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00    -     andnpd	%xmm1, %xmm1
 # CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -     vandnps	%xmm2, %xmm2, %xmm2
-# CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -      -      -     vandnpd	%xmm1, %xmm1, %xmm1
-# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00    -     vandnps	%ymm2, %ymm2, %ymm2
-# CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -      -      -     vandnpd	%ymm1, %ymm1, %ymm1
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -      -     vandnpd	%xmm1, %xmm1, %xmm1
+# CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -      -      -     vandnps	%ymm2, %ymm2, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00    -     vandnpd	%ymm1, %ymm1, %ymm1
 # CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -     pandn	%mm2, %mm2
-# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00    -     pandn	%xmm2, %xmm2
-# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -     vpandn	%xmm3, %xmm3, %xmm3
-# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -     vpandn	%ymm3, %ymm3, %ymm3
-# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -      -     vandnps	%xmm2, %xmm2, %xmm5
-# CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -      -      -     vandnpd	%xmm1, %xmm1, %xmm5
-# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -     vpandn	%xmm3, %xmm3, %xmm5
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -      -     pandn	%xmm2, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -      -      -     vpandn	%xmm3, %xmm3, %xmm3
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00    -     vpandn	%ymm3, %ymm3, %ymm3
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -     vandnps	%xmm2, %xmm2, %xmm5
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -      -     vandnpd	%xmm1, %xmm1, %xmm5
+# CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -      -      -     vpandn	%xmm3, %xmm3, %xmm5
 # CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00    -     vandnps	%ymm2, %ymm2, %ymm5
-# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -      -     vandnpd	%ymm1, %ymm1, %ymm5
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -     vandnpd	%ymm1, %ymm1, %ymm5
 # CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -      -     vpandn	%ymm3, %ymm3, %ymm5
-# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00    -     xorps	%xmm0, %xmm0
-# CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -      -      -     xorpd	%xmm1, %xmm1
-# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -      -     vxorps	%xmm2, %xmm2, %xmm2
-# CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -      -      -     vxorpd	%xmm1, %xmm1, %xmm1
+# CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -      -      -     xorps	%xmm0, %xmm0
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00    -     xorpd	%xmm1, %xmm1
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -     vxorps	%xmm2, %xmm2, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -      -     vxorpd	%xmm1, %xmm1, %xmm1
 # CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -      -      -     vxorps	%ymm2, %ymm2, %ymm2
-# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -      -     vxorpd	%ymm1, %ymm1, %ymm1
-# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00    -     pxor	%mm2, %mm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00    -     vxorpd	%ymm1, %ymm1, %ymm1
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -     pxor	%mm2, %mm2
 # CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -      -     pxor	%xmm2, %xmm2
 # CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -      -      -     vpxor	%xmm3, %xmm3, %xmm3
-# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -     vpxor	%ymm3, %ymm3, %ymm3
-# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00    -     vxorps	%xmm4, %xmm4, %xmm5
-# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00    -     vxorpd	%xmm1, %xmm1, %xmm3
-# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00    -     vxorps	%ymm4, %ymm4, %ymm5
-# CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -      -      -     vxorpd	%ymm1, %ymm1, %ymm3
-# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -      -     vpxor	%xmm3, %xmm3, %xmm5
-# CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -      -      -     vpxor	%ymm3, %ymm3, %ymm5
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00    -     vpxor	%ymm3, %ymm3, %ymm3
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -     vxorps	%xmm4, %xmm4, %xmm5
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -      -     vxorpd	%xmm1, %xmm1, %xmm3
+# CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -      -      -     vxorps	%ymm4, %ymm4, %ymm5
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00    -     vxorpd	%ymm1, %ymm1, %ymm3
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -     vpxor	%xmm3, %xmm3, %xmm5
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -      -     vpxor	%ymm3, %ymm3, %ymm5
 
 # CHECK:      Timeline view:
 # CHECK-NEXT:                     0123456789
-# CHECK-NEXT: Index     0123456789          012345678
+# CHECK-NEXT: Index     0123456789          0123
 
-# CHECK:      [0,0]     DeER .    .    .    .    .  .   subl	%eax, %eax
-# CHECK-NEXT: [0,1]     D=eER.    .    .    .    .  .   subq	%rax, %rax
-# CHECK-NEXT: [0,2]     D==eER    .    .    .    .  .   xorl	%eax, %eax
-# CHECK-NEXT: [0,3]     D===eER   .    .    .    .  .   xorq	%rax, %rax
-# CHECK-NEXT: [0,4]     .DeE--R   .    .    .    .  .   pcmpgtb	%mm2, %mm2
-# CHECK-NEXT: [0,5]     .D=eE-R   .    .    .    .  .   pcmpgtd	%mm2, %mm2
-# CHECK-NEXT: [0,6]     .D==eER   .    .    .    .  .   pcmpgtw	%mm2, %mm2
-# CHECK-NEXT: [0,7]     .DeE--R   .    .    .    .  .   pcmpgtb	%xmm2, %xmm2
-# CHECK-NEXT: [0,8]     . DeE-R   .    .    .    .  .   pcmpgtd	%xmm2, %xmm2
-# CHECK-NEXT: [0,9]     . D=eER   .    .    .    .  .   pcmpgtq	%xmm2, %xmm2
-# CHECK-NEXT: [0,10]    . D==eER  .    .    .    .  .   pcmpgtw	%xmm2, %xmm2
-# CHECK-NEXT: [0,11]    . DeE--R  .    .    .    .  .   vpcmpgtb	%xmm3, %xmm3, %xmm3
-# CHECK-NEXT: [0,12]    .  DeE-R  .    .    .    .  .   vpcmpgtd	%xmm3, %xmm3, %xmm3
-# CHECK-NEXT: [0,13]    .  D=eER  .    .    .    .  .   vpcmpgtq	%xmm3, %xmm3, %xmm3
-# CHECK-NEXT: [0,14]    .  D==eER .    .    .    .  .   vpcmpgtw	%xmm3, %xmm3, %xmm3
-# CHECK-NEXT: [0,15]    .  D===eER.    .    .    .  .   vpcmpgtb	%xmm3, %xmm3, %xmm5
-# CHECK-NEXT: [0,16]    .   D==eER.    .    .    .  .   vpcmpgtd	%xmm3, %xmm3, %xmm5
-# CHECK-NEXT: [0,17]    .   D==eER.    .    .    .  .   vpcmpgtq	%xmm3, %xmm3, %xmm5
-# CHECK-NEXT: [0,18]    .   D===eER    .    .    .  .   vpcmpgtw	%xmm3, %xmm3, %xmm5
-# CHECK-NEXT: [0,19]    .   D==eE-R    .    .    .  .   vpcmpgtb	%ymm3, %ymm3, %ymm3
-# CHECK-NEXT: [0,20]    .    D==eER    .    .    .  .   vpcmpgtd	%ymm3, %ymm3, %ymm3
-# CHECK-NEXT: [0,21]    .    D===eER   .    .    .  .   vpcmpgtq	%ymm3, %ymm3, %ymm3
-# CHECK-NEXT: [0,22]    .    D====eER  .    .    .  .   vpcmpgtw	%ymm3, %ymm3, %ymm3
-# CHECK-NEXT: [0,23]    .    D=====eER .    .    .  .   vpcmpgtb	%ymm3, %ymm3, %ymm5
-# CHECK-NEXT: [0,24]    .    .D====eER .    .    .  .   vpcmpgtd	%ymm3, %ymm3, %ymm5
-# CHECK-NEXT: [0,25]    .    .D====eER .    .    .  .   vpcmpgtq	%ymm3, %ymm3, %ymm5
-# CHECK-NEXT: [0,26]    .    .D====eER .    .    .  .   vpcmpgtw	%ymm3, %ymm3, %ymm5
-# CHECK-NEXT: [0,27]    .    .D=eE---R .    .    .  .   psubb	%mm2, %mm2
-# CHECK-NEXT: [0,28]    .    . D=eE--R .    .    .  .   psubd	%mm2, %mm2
-# CHECK-NEXT: [0,29]    .    . D==eE-R .    .    .  .   psubq	%mm2, %mm2
-# CHECK-NEXT: [0,30]    .    . D====eER.    .    .  .   psubw	%mm2, %mm2
-# CHECK-NEXT: [0,31]    .    . DeE----R.    .    .  .   psubb	%xmm2, %xmm2
-# CHECK-NEXT: [0,32]    .    .  DeE---R.    .    .  .   psubd	%xmm2, %xmm2
-# CHECK-NEXT: [0,33]    .    .  D=eE--R.    .    .  .   psubq	%xmm2, %xmm2
-# CHECK-NEXT: [0,34]    .    .  D===eER.    .    .  .   psubw	%xmm2, %xmm2
-# CHECK-NEXT: [0,35]    .    .  D===eER.    .    .  .   vpsubb	%xmm3, %xmm3, %xmm3
-# CHECK-NEXT: [0,36]    .    .   D===eER    .    .  .   vpsubd	%xmm3, %xmm3, %xmm3
-# CHECK-NEXT: [0,37]    .    .   D====eER   .    .  .   vpsubq	%xmm3, %xmm3, %xmm3
-# CHECK-NEXT: [0,38]    .    .   D=====eER  .    .  .   vpsubw	%xmm3, %xmm3, %xmm3
-# CHECK-NEXT: [0,39]    .    .   D======eER .    .  .   vpsubb	%ymm3, %ymm3, %ymm3
-# CHECK-NEXT: [0,40]    .    .    D======eER.    .  .   vpsubd	%ymm3, %ymm3, %ymm3
-# CHECK-NEXT: [0,41]    .    .    D=======eER    .  .   vpsubq	%ymm3, %ymm3, %ymm3
-# CHECK-NEXT: [0,42]    .    .    D========eER   .  .   vpsubw	%ymm3, %ymm3, %ymm3
-# CHECK-NEXT: [0,43]    .    .    D=========eER  .  .   vpsubb	%xmm3, %xmm3, %xmm5
-# CHECK-NEXT: [0,44]    .    .    .D========eER  .  .   vpsubd	%xmm3, %xmm3, %xmm5
-# CHECK-NEXT: [0,45]    .    .    .D========eER  .  .   vpsubq	%xmm3, %xmm3, %xmm5
-# CHECK-NEXT: [0,46]    .    .    .D========eER  .  .   vpsubw	%xmm3, %xmm3, %xmm5
-# CHECK-NEXT: [0,47]    .    .    .D=========eER .  .   vpsubb	%ymm3, %ymm3, %ymm5
-# CHECK-NEXT: [0,48]    .    .    . D========eER .  .   vpsubd	%ymm3, %ymm3, %ymm5
-# CHECK-NEXT: [0,49]    .    .    . D========eER .  .   vpsubq	%ymm3, %ymm3, %ymm5
-# CHECK-NEXT: [0,50]    .    .    . D========eER .  .   vpsubw	%ymm3, %ymm3, %ymm5
-# CHECK-NEXT: [0,51]    .    .    . DeE--------R .  .   andnps	%xmm0, %xmm0
-# CHECK-NEXT: [0,52]    .    .    .  DeE-------R .  .   andnpd	%xmm1, %xmm1
-# CHECK-NEXT: [0,53]    .    .    .  DeE-------R .  .   vandnps	%xmm2, %xmm2, %xmm2
-# CHECK-NEXT: [0,54]    .    .    .  D=eE------R .  .   vandnpd	%xmm1, %xmm1, %xmm1
-# CHECK-NEXT: [0,55]    .    .    .  D=eE-------R.  .   vandnps	%ymm2, %ymm2, %ymm2
-# CHECK-NEXT: [0,56]    .    .    .   D=eE------R.  .   vandnpd	%ymm1, %ymm1, %ymm1
-# CHECK-NEXT: [0,57]    .    .    .   DeE-------R.  .   pandn	%mm2, %mm2
-# CHECK-NEXT: [0,58]    .    .    .   D=eE------R.  .   pandn	%xmm2, %xmm2
-# CHECK-NEXT: [0,59]    .    .    .   D=======eER.  .   vpandn	%xmm3, %xmm3, %xmm3
-# CHECK-NEXT: [0,60]    .    .    .    D=======eER  .   vpandn	%ymm3, %ymm3, %ymm3
-# CHECK-NEXT: [0,61]    .    .    .    D=eE------R  .   vandnps	%xmm2, %xmm2, %xmm5
-# CHECK-NEXT: [0,62]    .    .    .    D=eE------R  .   vandnpd	%xmm1, %xmm1, %xmm5
-# CHECK-NEXT: [0,63]    .    .    .    D========eER .   vpandn	%xmm3, %xmm3, %xmm5
-# CHECK-NEXT: [0,64]    .    .    .    .DeE-------R .   vandnps	%ymm2, %ymm2, %ymm5
-# CHECK-NEXT: [0,65]    .    .    .    .D=eE------R .   vandnpd	%ymm1, %ymm1, %ymm5
-# CHECK-NEXT: [0,66]    .    .    .    .D=======eER .   vpandn	%ymm3, %ymm3, %ymm5
-# CHECK-NEXT: [0,67]    .    .    .    .D=eE------R .   xorps	%xmm0, %xmm0
-# CHECK-NEXT: [0,68]    .    .    .    . DeE------R .   xorpd	%xmm1, %xmm1
-# CHECK-NEXT: [0,69]    .    .    .    . D=eE-----R .   vxorps	%xmm2, %xmm2, %xmm2
-# CHECK-NEXT: [0,70]    .    .    .    . D=eE-----R .   vxorpd	%xmm1, %xmm1, %xmm1
-# CHECK-NEXT: [0,71]    .    .    .    . D====eE---R.   vxorps	%ymm2, %ymm2, %ymm2
-# CHECK-NEXT: [0,72]    .    .    .    .  D===eE---R.   vxorpd	%ymm1, %ymm1, %ymm1
-# CHECK-NEXT: [0,73]    .    .    .    .  DeE------R.   pxor	%mm2, %mm2
-# CHECK-NEXT: [0,74]    .    .    .    .  D====eE--R.   pxor	%xmm2, %xmm2
-# CHECK-NEXT: [0,75]    .    .    .    .  D=====eE-R.   vpxor	%xmm3, %xmm3, %xmm3
-# CHECK-NEXT: [0,76]    .    .    .    .   D=====eER.   vpxor	%ymm3, %ymm3, %ymm3
-# CHECK-NEXT: [0,77]    .    .    .    .   D==eE---R.   vxorps	%xmm4, %xmm4, %xmm5
-# CHECK-NEXT: [0,78]    .    .    .    .   D===eE--R.   vxorpd	%xmm1, %xmm1, %xmm3
-# CHECK-NEXT: [0,79]    .    .    .    .   D====eE--R   vxorps	%ymm4, %ymm4, %ymm5
-# CHECK-NEXT: [0,80]    .    .    .    .    D==eE---R   vxorpd	%ymm1, %ymm1, %ymm3
-# CHECK-NEXT: [0,81]    .    .    .    .    D====eE-R   vpxor	%xmm3, %xmm3, %xmm5
-# CHECK-NEXT: [0,82]    .    .    .    .    D====eE-R   vpxor	%ymm3, %ymm3, %ymm5
+# CHECK:      [0,0]     DeER .    .    .    .  .   subl	%eax, %eax
+# CHECK-NEXT: [0,1]     DeER .    .    .    .  .   subq	%rax, %rax
+# CHECK-NEXT: [0,2]     DeER .    .    .    .  .   xorl	%eax, %eax
+# CHECK-NEXT: [0,3]     DeER .    .    .    .  .   xorq	%rax, %rax
+# CHECK-NEXT: [0,4]     .DeER.    .    .    .  .   pcmpgtb	%mm2, %mm2
+# CHECK-NEXT: [0,5]     .DeER.    .    .    .  .   pcmpgtd	%mm2, %mm2
+# CHECK-NEXT: [0,6]     .DeER.    .    .    .  .   pcmpgtw	%mm2, %mm2
+# CHECK-NEXT: [0,7]     .DeER.    .    .    .  .   pcmpgtb	%xmm2, %xmm2
+# CHECK-NEXT: [0,8]     . DeER    .    .    .  .   pcmpgtd	%xmm2, %xmm2
+# CHECK-NEXT: [0,9]     . DeER    .    .    .  .   pcmpgtq	%xmm2, %xmm2
+# CHECK-NEXT: [0,10]    . DeER    .    .    .  .   pcmpgtw	%xmm2, %xmm2
+# CHECK-NEXT: [0,11]    . DeER    .    .    .  .   vpcmpgtb	%xmm3, %xmm3, %xmm3
+# CHECK-NEXT: [0,12]    .  DeER   .    .    .  .   vpcmpgtd	%xmm3, %xmm3, %xmm3
+# CHECK-NEXT: [0,13]    .  DeER   .    .    .  .   vpcmpgtq	%xmm3, %xmm3, %xmm3
+# CHECK-NEXT: [0,14]    .  DeER   .    .    .  .   vpcmpgtw	%xmm3, %xmm3, %xmm3
+# CHECK-NEXT: [0,15]    .  DeER   .    .    .  .   vpcmpgtb	%xmm3, %xmm3, %xmm5
+# CHECK-NEXT: [0,16]    .   DeER  .    .    .  .   vpcmpgtd	%xmm3, %xmm3, %xmm5
+# CHECK-NEXT: [0,17]    .   DeER  .    .    .  .   vpcmpgtq	%xmm3, %xmm3, %xmm5
+# CHECK-NEXT: [0,18]    .   DeER  .    .    .  .   vpcmpgtw	%xmm3, %xmm3, %xmm5
+# CHECK-NEXT: [0,19]    .   DeER  .    .    .  .   vpcmpgtb	%ymm3, %ymm3, %ymm3
+# CHECK-NEXT: [0,20]    .    DeER .    .    .  .   vpcmpgtd	%ymm3, %ymm3, %ymm3
+# CHECK-NEXT: [0,21]    .    DeER .    .    .  .   vpcmpgtq	%ymm3, %ymm3, %ymm3
+# CHECK-NEXT: [0,22]    .    DeER .    .    .  .   vpcmpgtw	%ymm3, %ymm3, %ymm3
+# CHECK-NEXT: [0,23]    .    DeER .    .    .  .   vpcmpgtb	%ymm3, %ymm3, %ymm5
+# CHECK-NEXT: [0,24]    .    .DeER.    .    .  .   vpcmpgtd	%ymm3, %ymm3, %ymm5
+# CHECK-NEXT: [0,25]    .    .DeER.    .    .  .   vpcmpgtq	%ymm3, %ymm3, %ymm5
+# CHECK-NEXT: [0,26]    .    .DeER.    .    .  .   vpcmpgtw	%ymm3, %ymm3, %ymm5
+# CHECK-NEXT: [0,27]    .    .DeER.    .    .  .   psubb	%mm2, %mm2
+# CHECK-NEXT: [0,28]    .    . DeER    .    .  .   psubd	%mm2, %mm2
+# CHECK-NEXT: [0,29]    .    . DeER    .    .  .   psubq	%mm2, %mm2
+# CHECK-NEXT: [0,30]    .    . DeER    .    .  .   psubw	%mm2, %mm2
+# CHECK-NEXT: [0,31]    .    . DeER    .    .  .   psubb	%xmm2, %xmm2
+# CHECK-NEXT: [0,32]    .    .  DeER   .    .  .   psubd	%xmm2, %xmm2
+# CHECK-NEXT: [0,33]    .    .  DeER   .    .  .   psubq	%xmm2, %xmm2
+# CHECK-NEXT: [0,34]    .    .  DeER   .    .  .   psubw	%xmm2, %xmm2
+# CHECK-NEXT: [0,35]    .    .  DeER   .    .  .   vpsubb	%xmm3, %xmm3, %xmm3
+# CHECK-NEXT: [0,36]    .    .   DeER  .    .  .   vpsubd	%xmm3, %xmm3, %xmm3
+# CHECK-NEXT: [0,37]    .    .   DeER  .    .  .   vpsubq	%xmm3, %xmm3, %xmm3
+# CHECK-NEXT: [0,38]    .    .   DeER  .    .  .   vpsubw	%xmm3, %xmm3, %xmm3
+# CHECK-NEXT: [0,39]    .    .   DeER  .    .  .   vpsubb	%ymm3, %ymm3, %ymm3
+# CHECK-NEXT: [0,40]    .    .    DeER .    .  .   vpsubd	%ymm3, %ymm3, %ymm3
+# CHECK-NEXT: [0,41]    .    .    DeER .    .  .   vpsubq	%ymm3, %ymm3, %ymm3
+# CHECK-NEXT: [0,42]    .    .    DeER .    .  .   vpsubw	%ymm3, %ymm3, %ymm3
+# CHECK-NEXT: [0,43]    .    .    DeER .    .  .   vpsubb	%xmm3, %xmm3, %xmm5
+# CHECK-NEXT: [0,44]    .    .    .DeER.    .  .   vpsubd	%xmm3, %xmm3, %xmm5
+# CHECK-NEXT: [0,45]    .    .    .DeER.    .  .   vpsubq	%xmm3, %xmm3, %xmm5
+# CHECK-NEXT: [0,46]    .    .    .DeER.    .  .   vpsubw	%xmm3, %xmm3, %xmm5
+# CHECK-NEXT: [0,47]    .    .    .DeER.    .  .   vpsubb	%ymm3, %ymm3, %ymm5
+# CHECK-NEXT: [0,48]    .    .    . DeER    .  .   vpsubd	%ymm3, %ymm3, %ymm5
+# CHECK-NEXT: [0,49]    .    .    . DeER    .  .   vpsubq	%ymm3, %ymm3, %ymm5
+# CHECK-NEXT: [0,50]    .    .    . DeER    .  .   vpsubw	%ymm3, %ymm3, %ymm5
+# CHECK-NEXT: [0,51]    .    .    . DeER    .  .   andnps	%xmm0, %xmm0
+# CHECK-NEXT: [0,52]    .    .    .  DeER   .  .   andnpd	%xmm1, %xmm1
+# CHECK-NEXT: [0,53]    .    .    .  DeER   .  .   vandnps	%xmm2, %xmm2, %xmm2
+# CHECK-NEXT: [0,54]    .    .    .  DeER   .  .   vandnpd	%xmm1, %xmm1, %xmm1
+# CHECK-NEXT: [0,55]    .    .    .  DeER   .  .   vandnps	%ymm2, %ymm2, %ymm2
+# CHECK-NEXT: [0,56]    .    .    .   DeER  .  .   vandnpd	%ymm1, %ymm1, %ymm1
+# CHECK-NEXT: [0,57]    .    .    .   DeER  .  .   pandn	%mm2, %mm2
+# CHECK-NEXT: [0,58]    .    .    .   DeER  .  .   pandn	%xmm2, %xmm2
+# CHECK-NEXT: [0,59]    .    .    .   DeER  .  .   vpandn	%xmm3, %xmm3, %xmm3
+# CHECK-NEXT: [0,60]    .    .    .    DeER .  .   vpandn	%ymm3, %ymm3, %ymm3
+# CHECK-NEXT: [0,61]    .    .    .    DeER .  .   vandnps	%xmm2, %xmm2, %xmm5
+# CHECK-NEXT: [0,62]    .    .    .    DeER .  .   vandnpd	%xmm1, %xmm1, %xmm5
+# CHECK-NEXT: [0,63]    .    .    .    DeER .  .   vpandn	%xmm3, %xmm3, %xmm5
+# CHECK-NEXT: [0,64]    .    .    .    .DeER.  .   vandnps	%ymm2, %ymm2, %ymm5
+# CHECK-NEXT: [0,65]    .    .    .    .DeER.  .   vandnpd	%ymm1, %ymm1, %ymm5
+# CHECK-NEXT: [0,66]    .    .    .    .DeER.  .   vpandn	%ymm3, %ymm3, %ymm5
+# CHECK-NEXT: [0,67]    .    .    .    .DeER.  .   xorps	%xmm0, %xmm0
+# CHECK-NEXT: [0,68]    .    .    .    . DeER  .   xorpd	%xmm1, %xmm1
+# CHECK-NEXT: [0,69]    .    .    .    . DeER  .   vxorps	%xmm2, %xmm2, %xmm2
+# CHECK-NEXT: [0,70]    .    .    .    . DeER  .   vxorpd	%xmm1, %xmm1, %xmm1
+# CHECK-NEXT: [0,71]    .    .    .    . DeER  .   vxorps	%ymm2, %ymm2, %ymm2
+# CHECK-NEXT: [0,72]    .    .    .    .  DeER .   vxorpd	%ymm1, %ymm1, %ymm1
+# CHECK-NEXT: [0,73]    .    .    .    .  DeER .   pxor	%mm2, %mm2
+# CHECK-NEXT: [0,74]    .    .    .    .  DeER .   pxor	%xmm2, %xmm2
+# CHECK-NEXT: [0,75]    .    .    .    .  DeER .   vpxor	%xmm3, %xmm3, %xmm3
+# CHECK-NEXT: [0,76]    .    .    .    .   DeER.   vpxor	%ymm3, %ymm3, %ymm3
+# CHECK-NEXT: [0,77]    .    .    .    .   DeER.   vxorps	%xmm4, %xmm4, %xmm5
+# CHECK-NEXT: [0,78]    .    .    .    .   DeER.   vxorpd	%xmm1, %xmm1, %xmm3
+# CHECK-NEXT: [0,79]    .    .    .    .   DeER.   vxorps	%ymm4, %ymm4, %ymm5
+# CHECK-NEXT: [0,80]    .    .    .    .    DeER   vxorpd	%ymm1, %ymm1, %ymm3
+# CHECK-NEXT: [0,81]    .    .    .    .    DeER   vpxor	%xmm3, %xmm3, %xmm5
+# CHECK-NEXT: [0,82]    .    .    .    .    DeER   vpxor	%ymm3, %ymm3, %ymm5
 
 # CHECK:      Average Wait times (based on the timeline view):
 # CHECK-NEXT: [0]: Executions
@@ -415,86 +415,86 @@ vpxor  %ymm3, %ymm3, %ymm5
 
 # CHECK:            [0]    [1]    [2]    [3]
 # CHECK-NEXT: 0.     1     1.0    1.0    0.0       subl	%eax, %eax
-# CHECK-NEXT: 1.     1     2.0    0.0    0.0       subq	%rax, %rax
-# CHECK-NEXT: 2.     1     3.0    0.0    0.0       xorl	%eax, %eax
-# CHECK-NEXT: 3.     1     4.0    0.0    0.0       xorq	%rax, %rax
-# CHECK-NEXT: 4.     1     1.0    1.0    2.0       pcmpgtb	%mm2, %mm2
-# CHECK-NEXT: 5.     1     2.0    0.0    1.0       pcmpgtd	%mm2, %mm2
-# CHECK-NEXT: 6.     1     3.0    0.0    0.0       pcmpgtw	%mm2, %mm2
-# CHECK-NEXT: 7.     1     1.0    1.0    2.0       pcmpgtb	%xmm2, %xmm2
-# CHECK-NEXT: 8.     1     1.0    0.0    1.0       pcmpgtd	%xmm2, %xmm2
-# CHECK-NEXT: 9.     1     2.0    0.0    0.0       pcmpgtq	%xmm2, %xmm2
-# CHECK-NEXT: 10.    1     3.0    0.0    0.0       pcmpgtw	%xmm2, %xmm2
-# CHECK-NEXT: 11.    1     1.0    1.0    2.0       vpcmpgtb	%xmm3, %xmm3, %xmm3
-# CHECK-NEXT: 12.    1     1.0    0.0    1.0       vpcmpgtd	%xmm3, %xmm3, %xmm3
-# CHECK-NEXT: 13.    1     2.0    0.0    0.0       vpcmpgtq	%xmm3, %xmm3, %xmm3
-# CHECK-NEXT: 14.    1     3.0    0.0    0.0       vpcmpgtw	%xmm3, %xmm3, %xmm3
-# CHECK-NEXT: 15.    1     4.0    0.0    0.0       vpcmpgtb	%xmm3, %xmm3, %xmm5
-# CHECK-NEXT: 16.    1     3.0    0.0    0.0       vpcmpgtd	%xmm3, %xmm3, %xmm5
-# CHECK-NEXT: 17.    1     3.0    0.0    0.0       vpcmpgtq	%xmm3, %xmm3, %xmm5
-# CHECK-NEXT: 18.    1     4.0    1.0    0.0       vpcmpgtw	%xmm3, %xmm3, %xmm5
-# CHECK-NEXT: 19.    1     3.0    0.0    1.0       vpcmpgtb	%ymm3, %ymm3, %ymm3
-# CHECK-NEXT: 20.    1     3.0    0.0    0.0       vpcmpgtd	%ymm3, %ymm3, %ymm3
-# CHECK-NEXT: 21.    1     4.0    0.0    0.0       vpcmpgtq	%ymm3, %ymm3, %ymm3
-# CHECK-NEXT: 22.    1     5.0    0.0    0.0       vpcmpgtw	%ymm3, %ymm3, %ymm3
-# CHECK-NEXT: 23.    1     6.0    0.0    0.0       vpcmpgtb	%ymm3, %ymm3, %ymm5
-# CHECK-NEXT: 24.    1     5.0    0.0    0.0       vpcmpgtd	%ymm3, %ymm3, %ymm5
-# CHECK-NEXT: 25.    1     5.0    0.0    0.0       vpcmpgtq	%ymm3, %ymm3, %ymm5
-# CHECK-NEXT: 26.    1     5.0    0.0    0.0       vpcmpgtw	%ymm3, %ymm3, %ymm5
-# CHECK-NEXT: 27.    1     2.0    2.0    3.0       psubb	%mm2, %mm2
-# CHECK-NEXT: 28.    1     2.0    0.0    2.0       psubd	%mm2, %mm2
-# CHECK-NEXT: 29.    1     3.0    0.0    1.0       psubq	%mm2, %mm2
-# CHECK-NEXT: 30.    1     5.0    1.0    0.0       psubw	%mm2, %mm2
-# CHECK-NEXT: 31.    1     1.0    1.0    4.0       psubb	%xmm2, %xmm2
-# CHECK-NEXT: 32.    1     1.0    0.0    3.0       psubd	%xmm2, %xmm2
-# CHECK-NEXT: 33.    1     2.0    0.0    2.0       psubq	%xmm2, %xmm2
-# CHECK-NEXT: 34.    1     4.0    1.0    0.0       psubw	%xmm2, %xmm2
-# CHECK-NEXT: 35.    1     4.0    1.0    0.0       vpsubb	%xmm3, %xmm3, %xmm3
-# CHECK-NEXT: 36.    1     4.0    0.0    0.0       vpsubd	%xmm3, %xmm3, %xmm3
-# CHECK-NEXT: 37.    1     5.0    0.0    0.0       vpsubq	%xmm3, %xmm3, %xmm3
-# CHECK-NEXT: 38.    1     6.0    0.0    0.0       vpsubw	%xmm3, %xmm3, %xmm3
-# CHECK-NEXT: 39.    1     7.0    0.0    0.0       vpsubb	%ymm3, %ymm3, %ymm3
-# CHECK-NEXT: 40.    1     7.0    0.0    0.0       vpsubd	%ymm3, %ymm3, %ymm3
-# CHECK-NEXT: 41.    1     8.0    0.0    0.0       vpsubq	%ymm3, %ymm3, %ymm3
-# CHECK-NEXT: 42.    1     9.0    0.0    0.0       vpsubw	%ymm3, %ymm3, %ymm3
-# CHECK-NEXT: 43.    1     10.0   0.0    0.0       vpsubb	%xmm3, %xmm3, %xmm5
-# CHECK-NEXT: 44.    1     9.0    0.0    0.0       vpsubd	%xmm3, %xmm3, %xmm5
-# CHECK-NEXT: 45.    1     9.0    0.0    0.0       vpsubq	%xmm3, %xmm3, %xmm5
-# CHECK-NEXT: 46.    1     9.0    0.0    0.0       vpsubw	%xmm3, %xmm3, %xmm5
-# CHECK-NEXT: 47.    1     10.0   1.0    0.0       vpsubb	%ymm3, %ymm3, %ymm5
-# CHECK-NEXT: 48.    1     9.0    1.0    0.0       vpsubd	%ymm3, %ymm3, %ymm5
-# CHECK-NEXT: 49.    1     9.0    1.0    0.0       vpsubq	%ymm3, %ymm3, %ymm5
-# CHECK-NEXT: 50.    1     9.0    1.0    0.0       vpsubw	%ymm3, %ymm3, %ymm5
-# CHECK-NEXT: 51.    1     1.0    1.0    8.0       andnps	%xmm0, %xmm0
-# CHECK-NEXT: 52.    1     1.0    1.0    7.0       andnpd	%xmm1, %xmm1
-# CHECK-NEXT: 53.    1     1.0    1.0    7.0       vandnps	%xmm2, %xmm2, %xmm2
-# CHECK-NEXT: 54.    1     2.0    0.0    6.0       vandnpd	%xmm1, %xmm1, %xmm1
-# CHECK-NEXT: 55.    1     2.0    0.0    7.0       vandnps	%ymm2, %ymm2, %ymm2
-# CHECK-NEXT: 56.    1     2.0    0.0    6.0       vandnpd	%ymm1, %ymm1, %ymm1
-# CHECK-NEXT: 57.    1     1.0    1.0    7.0       pandn	%mm2, %mm2
-# CHECK-NEXT: 58.    1     2.0    0.0    6.0       pandn	%xmm2, %xmm2
-# CHECK-NEXT: 59.    1     8.0    2.0    0.0       vpandn	%xmm3, %xmm3, %xmm3
-# CHECK-NEXT: 60.    1     8.0    0.0    0.0       vpandn	%ymm3, %ymm3, %ymm3
-# CHECK-NEXT: 61.    1     2.0    0.0    6.0       vandnps	%xmm2, %xmm2, %xmm5
-# CHECK-NEXT: 62.    1     2.0    0.0    6.0       vandnpd	%xmm1, %xmm1, %xmm5
-# CHECK-NEXT: 63.    1     9.0    0.0    0.0       vpandn	%xmm3, %xmm3, %xmm5
-# CHECK-NEXT: 64.    1     1.0    0.0    7.0       vandnps	%ymm2, %ymm2, %ymm5
-# CHECK-NEXT: 65.    1     2.0    1.0    6.0       vandnpd	%ymm1, %ymm1, %ymm5
-# CHECK-NEXT: 66.    1     8.0    0.0    0.0       vpandn	%ymm3, %ymm3, %ymm5
-# CHECK-NEXT: 67.    1     2.0    2.0    6.0       xorps	%xmm0, %xmm0
-# CHECK-NEXT: 68.    1     1.0    1.0    6.0       xorpd	%xmm1, %xmm1
-# CHECK-NEXT: 69.    1     2.0    2.0    5.0       vxorps	%xmm2, %xmm2, %xmm2
-# CHECK-NEXT: 70.    1     2.0    0.0    5.0       vxorpd	%xmm1, %xmm1, %xmm1
-# CHECK-NEXT: 71.    1     5.0    2.0    3.0       vxorps	%ymm2, %ymm2, %ymm2
-# CHECK-NEXT: 72.    1     4.0    2.0    3.0       vxorpd	%ymm1, %ymm1, %ymm1
-# CHECK-NEXT: 73.    1     1.0    1.0    6.0       pxor	%mm2, %mm2
-# CHECK-NEXT: 74.    1     5.0    0.0    2.0       pxor	%xmm2, %xmm2
-# CHECK-NEXT: 75.    1     6.0    0.0    1.0       vpxor	%xmm3, %xmm3, %xmm3
-# CHECK-NEXT: 76.    1     6.0    0.0    0.0       vpxor	%ymm3, %ymm3, %ymm3
-# CHECK-NEXT: 77.    1     3.0    3.0    3.0       vxorps	%xmm4, %xmm4, %xmm5
-# CHECK-NEXT: 78.    1     4.0    0.0    2.0       vxorpd	%xmm1, %xmm1, %xmm3
-# CHECK-NEXT: 79.    1     5.0    5.0    2.0       vxorps	%ymm4, %ymm4, %ymm5
-# CHECK-NEXT: 80.    1     3.0    0.0    3.0       vxorpd	%ymm1, %ymm1, %ymm3
-# CHECK-NEXT: 81.    1     5.0    1.0    1.0       vpxor	%xmm3, %xmm3, %xmm5
-# CHECK-NEXT: 82.    1     5.0    1.0    1.0       vpxor	%ymm3, %ymm3, %ymm5
-# CHECK-NEXT:        1     4.0    0.5    1.8       <total>
+# CHECK-NEXT: 1.     1     1.0    1.0    0.0       subq	%rax, %rax
+# CHECK-NEXT: 2.     1     1.0    1.0    0.0       xorl	%eax, %eax
+# CHECK-NEXT: 3.     1     1.0    1.0    0.0       xorq	%rax, %rax
+# CHECK-NEXT: 4.     1     1.0    1.0    0.0       pcmpgtb	%mm2, %mm2
+# CHECK-NEXT: 5.     1     1.0    1.0    0.0       pcmpgtd	%mm2, %mm2
+# CHECK-NEXT: 6.     1     1.0    1.0    0.0       pcmpgtw	%mm2, %mm2
+# CHECK-NEXT: 7.     1     1.0    1.0    0.0       pcmpgtb	%xmm2, %xmm2
+# CHECK-NEXT: 8.     1     1.0    1.0    0.0       pcmpgtd	%xmm2, %xmm2
+# CHECK-NEXT: 9.     1     1.0    1.0    0.0       pcmpgtq	%xmm2, %xmm2
+# CHECK-NEXT: 10.    1     1.0    1.0    0.0       pcmpgtw	%xmm2, %xmm2
+# CHECK-NEXT: 11.    1     1.0    1.0    0.0       vpcmpgtb	%xmm3, %xmm3, %xmm3
+# CHECK-NEXT: 12.    1     1.0    1.0    0.0       vpcmpgtd	%xmm3, %xmm3, %xmm3
+# CHECK-NEXT: 13.    1     1.0    1.0    0.0       vpcmpgtq	%xmm3, %xmm3, %xmm3
+# CHECK-NEXT: 14.    1     1.0    1.0    0.0       vpcmpgtw	%xmm3, %xmm3, %xmm3
+# CHECK-NEXT: 15.    1     1.0    1.0    0.0       vpcmpgtb	%xmm3, %xmm3, %xmm5
+# CHECK-NEXT: 16.    1     1.0    1.0    0.0       vpcmpgtd	%xmm3, %xmm3, %xmm5
+# CHECK-NEXT: 17.    1     1.0    1.0    0.0       vpcmpgtq	%xmm3, %xmm3, %xmm5
+# CHECK-NEXT: 18.    1     1.0    1.0    0.0       vpcmpgtw	%xmm3, %xmm3, %xmm5
+# CHECK-NEXT: 19.    1     1.0    1.0    0.0       vpcmpgtb	%ymm3, %ymm3, %ymm3
+# CHECK-NEXT: 20.    1     1.0    1.0    0.0       vpcmpgtd	%ymm3, %ymm3, %ymm3
+# CHECK-NEXT: 21.    1     1.0    1.0    0.0       vpcmpgtq	%ymm3, %ymm3, %ymm3
+# CHECK-NEXT: 22.    1     1.0    1.0    0.0       vpcmpgtw	%ymm3, %ymm3, %ymm3
+# CHECK-NEXT: 23.    1     1.0    1.0    0.0       vpcmpgtb	%ymm3, %ymm3, %ymm5
+# CHECK-NEXT: 24.    1     1.0    1.0    0.0       vpcmpgtd	%ymm3, %ymm3, %ymm5
+# CHECK-NEXT: 25.    1     1.0    1.0    0.0       vpcmpgtq	%ymm3, %ymm3, %ymm5
+# CHECK-NEXT: 26.    1     1.0    1.0    0.0       vpcmpgtw	%ymm3, %ymm3, %ymm5
+# CHECK-NEXT: 27.    1     1.0    1.0    0.0       psubb	%mm2, %mm2
+# CHECK-NEXT: 28.    1     1.0    1.0    0.0       psubd	%mm2, %mm2
+# CHECK-NEXT: 29.    1     1.0    1.0    0.0       psubq	%mm2, %mm2
+# CHECK-NEXT: 30.    1     1.0    1.0    0.0       psubw	%mm2, %mm2
+# CHECK-NEXT: 31.    1     1.0    1.0    0.0       psubb	%xmm2, %xmm2
+# CHECK-NEXT: 32.    1     1.0    1.0    0.0       psubd	%xmm2, %xmm2
+# CHECK-NEXT: 33.    1     1.0    1.0    0.0       psubq	%xmm2, %xmm2
+# CHECK-NEXT: 34.    1     1.0    1.0    0.0       psubw	%xmm2, %xmm2
+# CHECK-NEXT: 35.    1     1.0    1.0    0.0       vpsubb	%xmm3, %xmm3, %xmm3
+# CHECK-NEXT: 36.    1     1.0    1.0    0.0       vpsubd	%xmm3, %xmm3, %xmm3
+# CHECK-NEXT: 37.    1     1.0    1.0    0.0       vpsubq	%xmm3, %xmm3, %xmm3
+# CHECK-NEXT: 38.    1     1.0    1.0    0.0       vpsubw	%xmm3, %xmm3, %xmm3
+# CHECK-NEXT: 39.    1     1.0    1.0    0.0       vpsubb	%ymm3, %ymm3, %ymm3
+# CHECK-NEXT: 40.    1     1.0    1.0    0.0       vpsubd	%ymm3, %ymm3, %ymm3
+# CHECK-NEXT: 41.    1     1.0    1.0    0.0       vpsubq	%ymm3, %ymm3, %ymm3
+# CHECK-NEXT: 42.    1     1.0    1.0    0.0       vpsubw	%ymm3, %ymm3, %ymm3
+# CHECK-NEXT: 43.    1     1.0    1.0    0.0       vpsubb	%xmm3, %xmm3, %xmm5
+# CHECK-NEXT: 44.    1     1.0    1.0    0.0       vpsubd	%xmm3, %xmm3, %xmm5
+# CHECK-NEXT: 45.    1     1.0    1.0    0.0       vpsubq	%xmm3, %xmm3, %xmm5
+# CHECK-NEXT: 46.    1     1.0    1.0    0.0       vpsubw	%xmm3, %xmm3, %xmm5
+# CHECK-NEXT: 47.    1     1.0    1.0    0.0       vpsubb	%ymm3, %ymm3, %ymm5
+# CHECK-NEXT: 48.    1     1.0    1.0    0.0       vpsubd	%ymm3, %ymm3, %ymm5
+# CHECK-NEXT: 49.    1     1.0    1.0    0.0       vpsubq	%ymm3, %ymm3, %ymm5
+# CHECK-NEXT: 50.    1     1.0    1.0    0.0       vpsubw	%ymm3, %ymm3, %ymm5
+# CHECK-NEXT: 51.    1     1.0    1.0    0.0       andnps	%xmm0, %xmm0
+# CHECK-NEXT: 52.    1     1.0    1.0    0.0       andnpd	%xmm1, %xmm1
+# CHECK-NEXT: 53.    1     1.0    1.0    0.0       vandnps	%xmm2, %xmm2, %xmm2
+# CHECK-NEXT: 54.    1     1.0    1.0    0.0       vandnpd	%xmm1, %xmm1, %xmm1
+# CHECK-NEXT: 55.    1     1.0    1.0    0.0       vandnps	%ymm2, %ymm2, %ymm2
+# CHECK-NEXT: 56.    1     1.0    1.0    0.0       vandnpd	%ymm1, %ymm1, %ymm1
+# CHECK-NEXT: 57.    1     1.0    1.0    0.0       pandn	%mm2, %mm2
+# CHECK-NEXT: 58.    1     1.0    1.0    0.0       pandn	%xmm2, %xmm2
+# CHECK-NEXT: 59.    1     1.0    1.0    0.0       vpandn	%xmm3, %xmm3, %xmm3
+# CHECK-NEXT: 60.    1     1.0    1.0    0.0       vpandn	%ymm3, %ymm3, %ymm3
+# CHECK-NEXT: 61.    1     1.0    1.0    0.0       vandnps	%xmm2, %xmm2, %xmm5
+# CHECK-NEXT: 62.    1     1.0    1.0    0.0       vandnpd	%xmm1, %xmm1, %xmm5
+# CHECK-NEXT: 63.    1     1.0    1.0    0.0       vpandn	%xmm3, %xmm3, %xmm5
+# CHECK-NEXT: 64.    1     1.0    1.0    0.0       vandnps	%ymm2, %ymm2, %ymm5
+# CHECK-NEXT: 65.    1     1.0    1.0    0.0       vandnpd	%ymm1, %ymm1, %ymm5
+# CHECK-NEXT: 66.    1     1.0    1.0    0.0       vpandn	%ymm3, %ymm3, %ymm5
+# CHECK-NEXT: 67.    1     1.0    1.0    0.0       xorps	%xmm0, %xmm0
+# CHECK-NEXT: 68.    1     1.0    1.0    0.0       xorpd	%xmm1, %xmm1
+# CHECK-NEXT: 69.    1     1.0    1.0    0.0       vxorps	%xmm2, %xmm2, %xmm2
+# CHECK-NEXT: 70.    1     1.0    1.0    0.0       vxorpd	%xmm1, %xmm1, %xmm1
+# CHECK-NEXT: 71.    1     1.0    1.0    0.0       vxorps	%ymm2, %ymm2, %ymm2
+# CHECK-NEXT: 72.    1     1.0    1.0    0.0       vxorpd	%ymm1, %ymm1, %ymm1
+# CHECK-NEXT: 73.    1     1.0    1.0    0.0       pxor	%mm2, %mm2
+# CHECK-NEXT: 74.    1     1.0    1.0    0.0       pxor	%xmm2, %xmm2
+# CHECK-NEXT: 75.    1     1.0    1.0    0.0       vpxor	%xmm3, %xmm3, %xmm3
+# CHECK-NEXT: 76.    1     1.0    1.0    0.0       vpxor	%ymm3, %ymm3, %ymm3
+# CHECK-NEXT: 77.    1     1.0    1.0    0.0       vxorps	%xmm4, %xmm4, %xmm5
+# CHECK-NEXT: 78.    1     1.0    1.0    0.0       vxorpd	%xmm1, %xmm1, %xmm3
+# CHECK-NEXT: 79.    1     1.0    1.0    0.0       vxorps	%ymm4, %ymm4, %ymm5
+# CHECK-NEXT: 80.    1     1.0    1.0    0.0       vxorpd	%ymm1, %ymm1, %ymm3
+# CHECK-NEXT: 81.    1     1.0    1.0    0.0       vpxor	%xmm3, %xmm3, %xmm5
+# CHECK-NEXT: 82.    1     1.0    1.0    0.0       vpxor	%ymm3, %ymm3, %ymm5
+# CHECK-NEXT:        1     1.0    1.0    0.0       <total>

diff  --git a/llvm/test/tools/llvm-mca/X86/Znver2/zero-idioms.s b/llvm/test/tools/llvm-mca/X86/Znver2/zero-idioms.s
index eaba39249a37c..4d3a7b98e97ed 100644
--- a/llvm/test/tools/llvm-mca/X86/Znver2/zero-idioms.s
+++ b/llvm/test/tools/llvm-mca/X86/Znver2/zero-idioms.s
@@ -100,12 +100,12 @@ vpxor  %ymm3, %ymm3, %ymm5
 
 # CHECK:      Iterations:        1
 # CHECK-NEXT: Instructions:      83
-# CHECK-NEXT: Total Cycles:      29
+# CHECK-NEXT: Total Cycles:      24
 # CHECK-NEXT: Total uOps:        83
 
 # CHECK:      Dispatch Width:    4
-# CHECK-NEXT: uOps Per Cycle:    2.86
-# CHECK-NEXT: IPC:               2.86
+# CHECK-NEXT: uOps Per Cycle:    3.46
+# CHECK-NEXT: IPC:               3.46
 # CHECK-NEXT: Block RThroughput: 20.8
 
 # CHECK:      Instruction Info:
@@ -202,18 +202,18 @@ vpxor  %ymm3, %ymm3, %ymm5
 # CHECK-NEXT:  1      1     0.25                        vpxor	%ymm3, %ymm3, %ymm5
 
 # CHECK:      Register File statistics:
-# CHECK-NEXT: Total number of mappings created:    115
-# CHECK-NEXT: Max number of mappings used:         58
+# CHECK-NEXT: Total number of mappings created:    0
+# CHECK-NEXT: Max number of mappings used:         0
 
 # CHECK:      *  Register File #1 -- Zn2FpuPRF:
 # CHECK-NEXT:    Number of physical registers:     160
-# CHECK-NEXT:    Total number of mappings created: 107
-# CHECK-NEXT:    Max number of mappings used:      58
+# CHECK-NEXT:    Total number of mappings created: 0
+# CHECK-NEXT:    Max number of mappings used:      0
 
 # CHECK:      *  Register File #2 -- Zn2IntegerPRF:
 # CHECK-NEXT:    Number of physical registers:     168
-# CHECK-NEXT:    Total number of mappings created: 8
-# CHECK-NEXT:    Max number of mappings used:      8
+# CHECK-NEXT:    Total number of mappings created: 0
+# CHECK-NEXT:    Max number of mappings used:      0
 
 # CHECK:      Resources:
 # CHECK-NEXT: [0]   - Zn2AGU0
@@ -232,7 +232,7 @@ vpxor  %ymm3, %ymm3, %ymm5
 
 # CHECK:      Resource pressure per iteration:
 # CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    [10]   [11]   [12]
-# CHECK-NEXT:  -      -      -     1.00   1.00   1.00   1.00    -     20.00  19.00  20.00  20.00   -
+# CHECK-NEXT:  -      -      -     1.00   1.00   1.00   1.00    -     19.00  20.00  20.00  20.00   -
 
 # CHECK:      Resource pressure by instruction:
 # CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    [10]   [11]   [12]   Instructions:
@@ -241,172 +241,172 @@ vpxor  %ymm3, %ymm3, %ymm5
 # CHECK-NEXT:  -      -      -      -     1.00    -      -      -      -      -      -      -      -     xorl	%eax, %eax
 # CHECK-NEXT:  -      -      -     1.00    -      -      -      -      -      -      -      -      -     xorq	%rax, %rax
 # CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -     1.00    -     pcmpgtb	%mm2, %mm2
-# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -      -     pcmpgtd	%mm2, %mm2
-# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00    -      -     pcmpgtw	%mm2, %mm2
-# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00    -      -     pcmpgtb	%xmm2, %xmm2
-# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -      -      -     pcmpgtd	%xmm2, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00    -      -     pcmpgtd	%mm2, %mm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -      -     pcmpgtw	%mm2, %mm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -      -      -     pcmpgtb	%xmm2, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -     1.00    -     pcmpgtd	%xmm2, %xmm2
 # CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -      -      -     pcmpgtq	%xmm2, %xmm2
-# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -     1.00    -     pcmpgtw	%xmm2, %xmm2
-# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -     1.00    -     vpcmpgtb	%xmm3, %xmm3, %xmm3
-# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -      -     vpcmpgtd	%xmm3, %xmm3, %xmm3
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00    -      -     pcmpgtw	%xmm2, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -      -     vpcmpgtb	%xmm3, %xmm3, %xmm3
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -     1.00    -     vpcmpgtd	%xmm3, %xmm3, %xmm3
 # CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -      -      -     vpcmpgtq	%xmm3, %xmm3, %xmm3
 # CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00    -      -     vpcmpgtw	%xmm3, %xmm3, %xmm3
 # CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -      -     vpcmpgtb	%xmm3, %xmm3, %xmm5
 # CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -     1.00    -     vpcmpgtd	%xmm3, %xmm3, %xmm5
 # CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -      -      -     vpcmpgtq	%xmm3, %xmm3, %xmm5
-# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -      -     vpcmpgtw	%xmm3, %xmm3, %xmm5
-# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00    -      -     vpcmpgtb	%ymm3, %ymm3, %ymm3
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00    -      -     vpcmpgtw	%xmm3, %xmm3, %xmm5
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -      -     vpcmpgtb	%ymm3, %ymm3, %ymm3
 # CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -     1.00    -     vpcmpgtd	%ymm3, %ymm3, %ymm3
-# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -     1.00    -     vpcmpgtq	%ymm3, %ymm3, %ymm3
-# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -      -      -     vpcmpgtw	%ymm3, %ymm3, %ymm3
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -      -      -     vpcmpgtq	%ymm3, %ymm3, %ymm3
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00    -      -     vpcmpgtw	%ymm3, %ymm3, %ymm3
 # CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -      -     vpcmpgtb	%ymm3, %ymm3, %ymm5
-# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -      -      -     vpcmpgtd	%ymm3, %ymm3, %ymm5
-# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -     1.00    -     vpcmpgtq	%ymm3, %ymm3, %ymm5
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -     1.00    -     vpcmpgtd	%ymm3, %ymm3, %ymm5
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -      -      -     vpcmpgtq	%ymm3, %ymm3, %ymm5
 # CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00    -      -     vpcmpgtw	%ymm3, %ymm3, %ymm5
-# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00    -      -     psubb	%mm2, %mm2
-# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00    -      -     psubd	%mm2, %mm2
-# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -     1.00    -     psubq	%mm2, %mm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -      -     psubb	%mm2, %mm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -     1.00    -     psubd	%mm2, %mm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00    -      -     psubq	%mm2, %mm2
 # CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -      -     psubw	%mm2, %mm2
 # CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -      -      -     psubb	%xmm2, %xmm2
-# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -      -     psubd	%xmm2, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -     1.00    -     psubd	%xmm2, %xmm2
 # CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00    -      -     psubq	%xmm2, %xmm2
-# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -     1.00    -     psubw	%xmm2, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -      -     psubw	%xmm2, %xmm2
 # CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -      -      -     vpsubb	%xmm3, %xmm3, %xmm3
-# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00    -      -     vpsubd	%xmm3, %xmm3, %xmm3
-# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -      -      -     vpsubq	%xmm3, %xmm3, %xmm3
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -     1.00    -     vpsubd	%xmm3, %xmm3, %xmm3
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00    -      -     vpsubq	%xmm3, %xmm3, %xmm3
 # CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -      -     vpsubw	%xmm3, %xmm3, %xmm3
-# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -      -     vpsubb	%ymm3, %ymm3, %ymm3
-# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00    -      -     vpsubd	%ymm3, %ymm3, %ymm3
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -      -      -     vpsubb	%ymm3, %ymm3, %ymm3
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -     1.00    -     vpsubd	%ymm3, %ymm3, %ymm3
 # CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00    -      -     vpsubq	%ymm3, %ymm3, %ymm3
-# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00    -      -     vpsubw	%ymm3, %ymm3, %ymm3
-# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00    -      -     vpsubb	%xmm3, %xmm3, %xmm5
-# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -      -     vpsubd	%xmm3, %xmm3, %xmm5
-# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -      -      -     vpsubq	%xmm3, %xmm3, %xmm5
-# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -     1.00    -     vpsubw	%xmm3, %xmm3, %xmm5
-# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00    -      -     vpsubb	%ymm3, %ymm3, %ymm5
-# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -      -     vpsubd	%ymm3, %ymm3, %ymm5
-# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -      -      -     vpsubq	%ymm3, %ymm3, %ymm5
-# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -     1.00    -     vpsubw	%ymm3, %ymm3, %ymm5
-# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -      -     andnps	%xmm0, %xmm0
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -      -     vpsubw	%ymm3, %ymm3, %ymm3
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -      -      -     vpsubb	%xmm3, %xmm3, %xmm5
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -     1.00    -     vpsubd	%xmm3, %xmm3, %xmm5
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00    -      -     vpsubq	%xmm3, %xmm3, %xmm5
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -      -     vpsubw	%xmm3, %xmm3, %xmm5
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -      -      -     vpsubb	%ymm3, %ymm3, %ymm5
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -     1.00    -     vpsubd	%ymm3, %ymm3, %ymm5
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00    -      -     vpsubq	%ymm3, %ymm3, %ymm5
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -      -     vpsubw	%ymm3, %ymm3, %ymm5
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -      -      -     andnps	%xmm0, %xmm0
 # CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -     1.00    -     andnpd	%xmm1, %xmm1
 # CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00    -      -     vandnps	%xmm2, %xmm2, %xmm2
-# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -      -      -     vandnpd	%xmm1, %xmm1, %xmm1
-# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -     1.00    -     vandnps	%ymm2, %ymm2, %ymm2
-# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -      -      -     vandnpd	%ymm1, %ymm1, %ymm1
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -      -     vandnpd	%xmm1, %xmm1, %xmm1
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -      -      -     vandnps	%ymm2, %ymm2, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -     1.00    -     vandnpd	%ymm1, %ymm1, %ymm1
 # CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00    -      -     pandn	%mm2, %mm2
-# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -     1.00    -     pandn	%xmm2, %xmm2
-# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00    -      -     vpandn	%xmm3, %xmm3, %xmm3
-# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00    -      -     vpandn	%ymm3, %ymm3, %ymm3
-# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -      -     vandnps	%xmm2, %xmm2, %xmm5
-# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -      -      -     vandnpd	%xmm1, %xmm1, %xmm5
-# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00    -      -     vpandn	%xmm3, %xmm3, %xmm5
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -      -     pandn	%xmm2, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -      -      -     vpandn	%xmm3, %xmm3, %xmm3
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -     1.00    -     vpandn	%ymm3, %ymm3, %ymm3
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00    -      -     vandnps	%xmm2, %xmm2, %xmm5
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -      -     vandnpd	%xmm1, %xmm1, %xmm5
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -      -      -     vpandn	%xmm3, %xmm3, %xmm5
 # CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -     1.00    -     vandnps	%ymm2, %ymm2, %ymm5
-# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -      -     vandnpd	%ymm1, %ymm1, %ymm5
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00    -      -     vandnpd	%ymm1, %ymm1, %ymm5
 # CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -      -     vpandn	%ymm3, %ymm3, %ymm5
-# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -     1.00    -     xorps	%xmm0, %xmm0
-# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -      -      -     xorpd	%xmm1, %xmm1
-# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -      -     vxorps	%xmm2, %xmm2, %xmm2
-# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -      -      -     vxorpd	%xmm1, %xmm1, %xmm1
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -      -      -     xorps	%xmm0, %xmm0
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -     1.00    -     xorpd	%xmm1, %xmm1
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00    -      -     vxorps	%xmm2, %xmm2, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -      -     vxorpd	%xmm1, %xmm1, %xmm1
 # CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -      -      -     vxorps	%ymm2, %ymm2, %ymm2
-# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -      -     vxorpd	%ymm1, %ymm1, %ymm1
-# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -     1.00    -     pxor	%mm2, %mm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -     1.00    -     vxorpd	%ymm1, %ymm1, %ymm1
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00    -      -     pxor	%mm2, %mm2
 # CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -      -     pxor	%xmm2, %xmm2
 # CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -      -      -     vpxor	%xmm3, %xmm3, %xmm3
-# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00    -      -     vpxor	%ymm3, %ymm3, %ymm3
-# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -     1.00    -     vxorps	%xmm4, %xmm4, %xmm5
-# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -     1.00    -     vxorpd	%xmm1, %xmm1, %xmm3
-# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -     1.00    -     vxorps	%ymm4, %ymm4, %ymm5
-# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -      -      -     vxorpd	%ymm1, %ymm1, %ymm3
-# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -      -     vpxor	%xmm3, %xmm3, %xmm5
-# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -      -      -     vpxor	%ymm3, %ymm3, %ymm5
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -     1.00    -     vpxor	%ymm3, %ymm3, %ymm3
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00    -      -     vxorps	%xmm4, %xmm4, %xmm5
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -      -     vxorpd	%xmm1, %xmm1, %xmm3
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -      -      -     vxorps	%ymm4, %ymm4, %ymm5
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -     1.00    -     vxorpd	%ymm1, %ymm1, %ymm3
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00    -      -     vpxor	%xmm3, %xmm3, %xmm5
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -      -     vpxor	%ymm3, %ymm3, %ymm5
 
 # CHECK:      Timeline view:
 # CHECK-NEXT:                     0123456789
-# CHECK-NEXT: Index     0123456789          012345678
+# CHECK-NEXT: Index     0123456789          0123
 
-# CHECK:      [0,0]     DeER .    .    .    .    .  .   subl	%eax, %eax
-# CHECK-NEXT: [0,1]     D=eER.    .    .    .    .  .   subq	%rax, %rax
-# CHECK-NEXT: [0,2]     D==eER    .    .    .    .  .   xorl	%eax, %eax
-# CHECK-NEXT: [0,3]     D===eER   .    .    .    .  .   xorq	%rax, %rax
-# CHECK-NEXT: [0,4]     .DeE--R   .    .    .    .  .   pcmpgtb	%mm2, %mm2
-# CHECK-NEXT: [0,5]     .D=eE-R   .    .    .    .  .   pcmpgtd	%mm2, %mm2
-# CHECK-NEXT: [0,6]     .D==eER   .    .    .    .  .   pcmpgtw	%mm2, %mm2
-# CHECK-NEXT: [0,7]     .DeE--R   .    .    .    .  .   pcmpgtb	%xmm2, %xmm2
-# CHECK-NEXT: [0,8]     . DeE-R   .    .    .    .  .   pcmpgtd	%xmm2, %xmm2
-# CHECK-NEXT: [0,9]     . D=eER   .    .    .    .  .   pcmpgtq	%xmm2, %xmm2
-# CHECK-NEXT: [0,10]    . D==eER  .    .    .    .  .   pcmpgtw	%xmm2, %xmm2
-# CHECK-NEXT: [0,11]    . DeE--R  .    .    .    .  .   vpcmpgtb	%xmm3, %xmm3, %xmm3
-# CHECK-NEXT: [0,12]    .  DeE-R  .    .    .    .  .   vpcmpgtd	%xmm3, %xmm3, %xmm3
-# CHECK-NEXT: [0,13]    .  D=eER  .    .    .    .  .   vpcmpgtq	%xmm3, %xmm3, %xmm3
-# CHECK-NEXT: [0,14]    .  D==eER .    .    .    .  .   vpcmpgtw	%xmm3, %xmm3, %xmm3
-# CHECK-NEXT: [0,15]    .  D===eER.    .    .    .  .   vpcmpgtb	%xmm3, %xmm3, %xmm5
-# CHECK-NEXT: [0,16]    .   D==eER.    .    .    .  .   vpcmpgtd	%xmm3, %xmm3, %xmm5
-# CHECK-NEXT: [0,17]    .   D==eER.    .    .    .  .   vpcmpgtq	%xmm3, %xmm3, %xmm5
-# CHECK-NEXT: [0,18]    .   D===eER    .    .    .  .   vpcmpgtw	%xmm3, %xmm3, %xmm5
-# CHECK-NEXT: [0,19]    .   D==eE-R    .    .    .  .   vpcmpgtb	%ymm3, %ymm3, %ymm3
-# CHECK-NEXT: [0,20]    .    D==eER    .    .    .  .   vpcmpgtd	%ymm3, %ymm3, %ymm3
-# CHECK-NEXT: [0,21]    .    D===eER   .    .    .  .   vpcmpgtq	%ymm3, %ymm3, %ymm3
-# CHECK-NEXT: [0,22]    .    D====eER  .    .    .  .   vpcmpgtw	%ymm3, %ymm3, %ymm3
-# CHECK-NEXT: [0,23]    .    D=====eER .    .    .  .   vpcmpgtb	%ymm3, %ymm3, %ymm5
-# CHECK-NEXT: [0,24]    .    .D====eER .    .    .  .   vpcmpgtd	%ymm3, %ymm3, %ymm5
-# CHECK-NEXT: [0,25]    .    .D====eER .    .    .  .   vpcmpgtq	%ymm3, %ymm3, %ymm5
-# CHECK-NEXT: [0,26]    .    .D====eER .    .    .  .   vpcmpgtw	%ymm3, %ymm3, %ymm5
-# CHECK-NEXT: [0,27]    .    .D=eE---R .    .    .  .   psubb	%mm2, %mm2
-# CHECK-NEXT: [0,28]    .    . D=eE--R .    .    .  .   psubd	%mm2, %mm2
-# CHECK-NEXT: [0,29]    .    . D==eE-R .    .    .  .   psubq	%mm2, %mm2
-# CHECK-NEXT: [0,30]    .    . D====eER.    .    .  .   psubw	%mm2, %mm2
-# CHECK-NEXT: [0,31]    .    . DeE----R.    .    .  .   psubb	%xmm2, %xmm2
-# CHECK-NEXT: [0,32]    .    .  DeE---R.    .    .  .   psubd	%xmm2, %xmm2
-# CHECK-NEXT: [0,33]    .    .  D=eE--R.    .    .  .   psubq	%xmm2, %xmm2
-# CHECK-NEXT: [0,34]    .    .  D===eER.    .    .  .   psubw	%xmm2, %xmm2
-# CHECK-NEXT: [0,35]    .    .  D===eER.    .    .  .   vpsubb	%xmm3, %xmm3, %xmm3
-# CHECK-NEXT: [0,36]    .    .   D===eER    .    .  .   vpsubd	%xmm3, %xmm3, %xmm3
-# CHECK-NEXT: [0,37]    .    .   D====eER   .    .  .   vpsubq	%xmm3, %xmm3, %xmm3
-# CHECK-NEXT: [0,38]    .    .   D=====eER  .    .  .   vpsubw	%xmm3, %xmm3, %xmm3
-# CHECK-NEXT: [0,39]    .    .   D======eER .    .  .   vpsubb	%ymm3, %ymm3, %ymm3
-# CHECK-NEXT: [0,40]    .    .    D======eER.    .  .   vpsubd	%ymm3, %ymm3, %ymm3
-# CHECK-NEXT: [0,41]    .    .    D=======eER    .  .   vpsubq	%ymm3, %ymm3, %ymm3
-# CHECK-NEXT: [0,42]    .    .    D========eER   .  .   vpsubw	%ymm3, %ymm3, %ymm3
-# CHECK-NEXT: [0,43]    .    .    D=========eER  .  .   vpsubb	%xmm3, %xmm3, %xmm5
-# CHECK-NEXT: [0,44]    .    .    .D========eER  .  .   vpsubd	%xmm3, %xmm3, %xmm5
-# CHECK-NEXT: [0,45]    .    .    .D========eER  .  .   vpsubq	%xmm3, %xmm3, %xmm5
-# CHECK-NEXT: [0,46]    .    .    .D========eER  .  .   vpsubw	%xmm3, %xmm3, %xmm5
-# CHECK-NEXT: [0,47]    .    .    .D=========eER .  .   vpsubb	%ymm3, %ymm3, %ymm5
-# CHECK-NEXT: [0,48]    .    .    . D========eER .  .   vpsubd	%ymm3, %ymm3, %ymm5
-# CHECK-NEXT: [0,49]    .    .    . D========eER .  .   vpsubq	%ymm3, %ymm3, %ymm5
-# CHECK-NEXT: [0,50]    .    .    . D========eER .  .   vpsubw	%ymm3, %ymm3, %ymm5
-# CHECK-NEXT: [0,51]    .    .    . DeE--------R .  .   andnps	%xmm0, %xmm0
-# CHECK-NEXT: [0,52]    .    .    .  DeE-------R .  .   andnpd	%xmm1, %xmm1
-# CHECK-NEXT: [0,53]    .    .    .  DeE-------R .  .   vandnps	%xmm2, %xmm2, %xmm2
-# CHECK-NEXT: [0,54]    .    .    .  D=eE------R .  .   vandnpd	%xmm1, %xmm1, %xmm1
-# CHECK-NEXT: [0,55]    .    .    .  D=eE-------R.  .   vandnps	%ymm2, %ymm2, %ymm2
-# CHECK-NEXT: [0,56]    .    .    .   D=eE------R.  .   vandnpd	%ymm1, %ymm1, %ymm1
-# CHECK-NEXT: [0,57]    .    .    .   DeE-------R.  .   pandn	%mm2, %mm2
-# CHECK-NEXT: [0,58]    .    .    .   D=eE------R.  .   pandn	%xmm2, %xmm2
-# CHECK-NEXT: [0,59]    .    .    .   D=======eER.  .   vpandn	%xmm3, %xmm3, %xmm3
-# CHECK-NEXT: [0,60]    .    .    .    D=======eER  .   vpandn	%ymm3, %ymm3, %ymm3
-# CHECK-NEXT: [0,61]    .    .    .    D=eE------R  .   vandnps	%xmm2, %xmm2, %xmm5
-# CHECK-NEXT: [0,62]    .    .    .    D=eE------R  .   vandnpd	%xmm1, %xmm1, %xmm5
-# CHECK-NEXT: [0,63]    .    .    .    D========eER .   vpandn	%xmm3, %xmm3, %xmm5
-# CHECK-NEXT: [0,64]    .    .    .    .DeE-------R .   vandnps	%ymm2, %ymm2, %ymm5
-# CHECK-NEXT: [0,65]    .    .    .    .D=eE------R .   vandnpd	%ymm1, %ymm1, %ymm5
-# CHECK-NEXT: [0,66]    .    .    .    .D=======eER .   vpandn	%ymm3, %ymm3, %ymm5
-# CHECK-NEXT: [0,67]    .    .    .    .D=eE------R .   xorps	%xmm0, %xmm0
-# CHECK-NEXT: [0,68]    .    .    .    . DeE------R .   xorpd	%xmm1, %xmm1
-# CHECK-NEXT: [0,69]    .    .    .    . D=eE-----R .   vxorps	%xmm2, %xmm2, %xmm2
-# CHECK-NEXT: [0,70]    .    .    .    . D=eE-----R .   vxorpd	%xmm1, %xmm1, %xmm1
-# CHECK-NEXT: [0,71]    .    .    .    . D====eE---R.   vxorps	%ymm2, %ymm2, %ymm2
-# CHECK-NEXT: [0,72]    .    .    .    .  D===eE---R.   vxorpd	%ymm1, %ymm1, %ymm1
-# CHECK-NEXT: [0,73]    .    .    .    .  DeE------R.   pxor	%mm2, %mm2
-# CHECK-NEXT: [0,74]    .    .    .    .  D====eE--R.   pxor	%xmm2, %xmm2
-# CHECK-NEXT: [0,75]    .    .    .    .  D=====eE-R.   vpxor	%xmm3, %xmm3, %xmm3
-# CHECK-NEXT: [0,76]    .    .    .    .   D=====eER.   vpxor	%ymm3, %ymm3, %ymm3
-# CHECK-NEXT: [0,77]    .    .    .    .   D==eE---R.   vxorps	%xmm4, %xmm4, %xmm5
-# CHECK-NEXT: [0,78]    .    .    .    .   D===eE--R.   vxorpd	%xmm1, %xmm1, %xmm3
-# CHECK-NEXT: [0,79]    .    .    .    .   D====eE--R   vxorps	%ymm4, %ymm4, %ymm5
-# CHECK-NEXT: [0,80]    .    .    .    .    D==eE---R   vxorpd	%ymm1, %ymm1, %ymm3
-# CHECK-NEXT: [0,81]    .    .    .    .    D====eE-R   vpxor	%xmm3, %xmm3, %xmm5
-# CHECK-NEXT: [0,82]    .    .    .    .    D====eE-R   vpxor	%ymm3, %ymm3, %ymm5
+# CHECK:      [0,0]     DeER .    .    .    .  .   subl	%eax, %eax
+# CHECK-NEXT: [0,1]     DeER .    .    .    .  .   subq	%rax, %rax
+# CHECK-NEXT: [0,2]     DeER .    .    .    .  .   xorl	%eax, %eax
+# CHECK-NEXT: [0,3]     DeER .    .    .    .  .   xorq	%rax, %rax
+# CHECK-NEXT: [0,4]     .DeER.    .    .    .  .   pcmpgtb	%mm2, %mm2
+# CHECK-NEXT: [0,5]     .DeER.    .    .    .  .   pcmpgtd	%mm2, %mm2
+# CHECK-NEXT: [0,6]     .DeER.    .    .    .  .   pcmpgtw	%mm2, %mm2
+# CHECK-NEXT: [0,7]     .DeER.    .    .    .  .   pcmpgtb	%xmm2, %xmm2
+# CHECK-NEXT: [0,8]     . DeER    .    .    .  .   pcmpgtd	%xmm2, %xmm2
+# CHECK-NEXT: [0,9]     . DeER    .    .    .  .   pcmpgtq	%xmm2, %xmm2
+# CHECK-NEXT: [0,10]    . DeER    .    .    .  .   pcmpgtw	%xmm2, %xmm2
+# CHECK-NEXT: [0,11]    . DeER    .    .    .  .   vpcmpgtb	%xmm3, %xmm3, %xmm3
+# CHECK-NEXT: [0,12]    .  DeER   .    .    .  .   vpcmpgtd	%xmm3, %xmm3, %xmm3
+# CHECK-NEXT: [0,13]    .  DeER   .    .    .  .   vpcmpgtq	%xmm3, %xmm3, %xmm3
+# CHECK-NEXT: [0,14]    .  DeER   .    .    .  .   vpcmpgtw	%xmm3, %xmm3, %xmm3
+# CHECK-NEXT: [0,15]    .  DeER   .    .    .  .   vpcmpgtb	%xmm3, %xmm3, %xmm5
+# CHECK-NEXT: [0,16]    .   DeER  .    .    .  .   vpcmpgtd	%xmm3, %xmm3, %xmm5
+# CHECK-NEXT: [0,17]    .   DeER  .    .    .  .   vpcmpgtq	%xmm3, %xmm3, %xmm5
+# CHECK-NEXT: [0,18]    .   DeER  .    .    .  .   vpcmpgtw	%xmm3, %xmm3, %xmm5
+# CHECK-NEXT: [0,19]    .   DeER  .    .    .  .   vpcmpgtb	%ymm3, %ymm3, %ymm3
+# CHECK-NEXT: [0,20]    .    DeER .    .    .  .   vpcmpgtd	%ymm3, %ymm3, %ymm3
+# CHECK-NEXT: [0,21]    .    DeER .    .    .  .   vpcmpgtq	%ymm3, %ymm3, %ymm3
+# CHECK-NEXT: [0,22]    .    DeER .    .    .  .   vpcmpgtw	%ymm3, %ymm3, %ymm3
+# CHECK-NEXT: [0,23]    .    DeER .    .    .  .   vpcmpgtb	%ymm3, %ymm3, %ymm5
+# CHECK-NEXT: [0,24]    .    .DeER.    .    .  .   vpcmpgtd	%ymm3, %ymm3, %ymm5
+# CHECK-NEXT: [0,25]    .    .DeER.    .    .  .   vpcmpgtq	%ymm3, %ymm3, %ymm5
+# CHECK-NEXT: [0,26]    .    .DeER.    .    .  .   vpcmpgtw	%ymm3, %ymm3, %ymm5
+# CHECK-NEXT: [0,27]    .    .DeER.    .    .  .   psubb	%mm2, %mm2
+# CHECK-NEXT: [0,28]    .    . DeER    .    .  .   psubd	%mm2, %mm2
+# CHECK-NEXT: [0,29]    .    . DeER    .    .  .   psubq	%mm2, %mm2
+# CHECK-NEXT: [0,30]    .    . DeER    .    .  .   psubw	%mm2, %mm2
+# CHECK-NEXT: [0,31]    .    . DeER    .    .  .   psubb	%xmm2, %xmm2
+# CHECK-NEXT: [0,32]    .    .  DeER   .    .  .   psubd	%xmm2, %xmm2
+# CHECK-NEXT: [0,33]    .    .  DeER   .    .  .   psubq	%xmm2, %xmm2
+# CHECK-NEXT: [0,34]    .    .  DeER   .    .  .   psubw	%xmm2, %xmm2
+# CHECK-NEXT: [0,35]    .    .  DeER   .    .  .   vpsubb	%xmm3, %xmm3, %xmm3
+# CHECK-NEXT: [0,36]    .    .   DeER  .    .  .   vpsubd	%xmm3, %xmm3, %xmm3
+# CHECK-NEXT: [0,37]    .    .   DeER  .    .  .   vpsubq	%xmm3, %xmm3, %xmm3
+# CHECK-NEXT: [0,38]    .    .   DeER  .    .  .   vpsubw	%xmm3, %xmm3, %xmm3
+# CHECK-NEXT: [0,39]    .    .   DeER  .    .  .   vpsubb	%ymm3, %ymm3, %ymm3
+# CHECK-NEXT: [0,40]    .    .    DeER .    .  .   vpsubd	%ymm3, %ymm3, %ymm3
+# CHECK-NEXT: [0,41]    .    .    DeER .    .  .   vpsubq	%ymm3, %ymm3, %ymm3
+# CHECK-NEXT: [0,42]    .    .    DeER .    .  .   vpsubw	%ymm3, %ymm3, %ymm3
+# CHECK-NEXT: [0,43]    .    .    DeER .    .  .   vpsubb	%xmm3, %xmm3, %xmm5
+# CHECK-NEXT: [0,44]    .    .    .DeER.    .  .   vpsubd	%xmm3, %xmm3, %xmm5
+# CHECK-NEXT: [0,45]    .    .    .DeER.    .  .   vpsubq	%xmm3, %xmm3, %xmm5
+# CHECK-NEXT: [0,46]    .    .    .DeER.    .  .   vpsubw	%xmm3, %xmm3, %xmm5
+# CHECK-NEXT: [0,47]    .    .    .DeER.    .  .   vpsubb	%ymm3, %ymm3, %ymm5
+# CHECK-NEXT: [0,48]    .    .    . DeER    .  .   vpsubd	%ymm3, %ymm3, %ymm5
+# CHECK-NEXT: [0,49]    .    .    . DeER    .  .   vpsubq	%ymm3, %ymm3, %ymm5
+# CHECK-NEXT: [0,50]    .    .    . DeER    .  .   vpsubw	%ymm3, %ymm3, %ymm5
+# CHECK-NEXT: [0,51]    .    .    . DeER    .  .   andnps	%xmm0, %xmm0
+# CHECK-NEXT: [0,52]    .    .    .  DeER   .  .   andnpd	%xmm1, %xmm1
+# CHECK-NEXT: [0,53]    .    .    .  DeER   .  .   vandnps	%xmm2, %xmm2, %xmm2
+# CHECK-NEXT: [0,54]    .    .    .  DeER   .  .   vandnpd	%xmm1, %xmm1, %xmm1
+# CHECK-NEXT: [0,55]    .    .    .  DeER   .  .   vandnps	%ymm2, %ymm2, %ymm2
+# CHECK-NEXT: [0,56]    .    .    .   DeER  .  .   vandnpd	%ymm1, %ymm1, %ymm1
+# CHECK-NEXT: [0,57]    .    .    .   DeER  .  .   pandn	%mm2, %mm2
+# CHECK-NEXT: [0,58]    .    .    .   DeER  .  .   pandn	%xmm2, %xmm2
+# CHECK-NEXT: [0,59]    .    .    .   DeER  .  .   vpandn	%xmm3, %xmm3, %xmm3
+# CHECK-NEXT: [0,60]    .    .    .    DeER .  .   vpandn	%ymm3, %ymm3, %ymm3
+# CHECK-NEXT: [0,61]    .    .    .    DeER .  .   vandnps	%xmm2, %xmm2, %xmm5
+# CHECK-NEXT: [0,62]    .    .    .    DeER .  .   vandnpd	%xmm1, %xmm1, %xmm5
+# CHECK-NEXT: [0,63]    .    .    .    DeER .  .   vpandn	%xmm3, %xmm3, %xmm5
+# CHECK-NEXT: [0,64]    .    .    .    .DeER.  .   vandnps	%ymm2, %ymm2, %ymm5
+# CHECK-NEXT: [0,65]    .    .    .    .DeER.  .   vandnpd	%ymm1, %ymm1, %ymm5
+# CHECK-NEXT: [0,66]    .    .    .    .DeER.  .   vpandn	%ymm3, %ymm3, %ymm5
+# CHECK-NEXT: [0,67]    .    .    .    .DeER.  .   xorps	%xmm0, %xmm0
+# CHECK-NEXT: [0,68]    .    .    .    . DeER  .   xorpd	%xmm1, %xmm1
+# CHECK-NEXT: [0,69]    .    .    .    . DeER  .   vxorps	%xmm2, %xmm2, %xmm2
+# CHECK-NEXT: [0,70]    .    .    .    . DeER  .   vxorpd	%xmm1, %xmm1, %xmm1
+# CHECK-NEXT: [0,71]    .    .    .    . DeER  .   vxorps	%ymm2, %ymm2, %ymm2
+# CHECK-NEXT: [0,72]    .    .    .    .  DeER .   vxorpd	%ymm1, %ymm1, %ymm1
+# CHECK-NEXT: [0,73]    .    .    .    .  DeER .   pxor	%mm2, %mm2
+# CHECK-NEXT: [0,74]    .    .    .    .  DeER .   pxor	%xmm2, %xmm2
+# CHECK-NEXT: [0,75]    .    .    .    .  DeER .   vpxor	%xmm3, %xmm3, %xmm3
+# CHECK-NEXT: [0,76]    .    .    .    .   DeER.   vpxor	%ymm3, %ymm3, %ymm3
+# CHECK-NEXT: [0,77]    .    .    .    .   DeER.   vxorps	%xmm4, %xmm4, %xmm5
+# CHECK-NEXT: [0,78]    .    .    .    .   DeER.   vxorpd	%xmm1, %xmm1, %xmm3
+# CHECK-NEXT: [0,79]    .    .    .    .   DeER.   vxorps	%ymm4, %ymm4, %ymm5
+# CHECK-NEXT: [0,80]    .    .    .    .    DeER   vxorpd	%ymm1, %ymm1, %ymm3
+# CHECK-NEXT: [0,81]    .    .    .    .    DeER   vpxor	%xmm3, %xmm3, %xmm5
+# CHECK-NEXT: [0,82]    .    .    .    .    DeER   vpxor	%ymm3, %ymm3, %ymm5
 
 # CHECK:      Average Wait times (based on the timeline view):
 # CHECK-NEXT: [0]: Executions
@@ -416,86 +416,86 @@ vpxor  %ymm3, %ymm3, %ymm5
 
 # CHECK:            [0]    [1]    [2]    [3]
 # CHECK-NEXT: 0.     1     1.0    1.0    0.0       subl	%eax, %eax
-# CHECK-NEXT: 1.     1     2.0    0.0    0.0       subq	%rax, %rax
-# CHECK-NEXT: 2.     1     3.0    0.0    0.0       xorl	%eax, %eax
-# CHECK-NEXT: 3.     1     4.0    0.0    0.0       xorq	%rax, %rax
-# CHECK-NEXT: 4.     1     1.0    1.0    2.0       pcmpgtb	%mm2, %mm2
-# CHECK-NEXT: 5.     1     2.0    0.0    1.0       pcmpgtd	%mm2, %mm2
-# CHECK-NEXT: 6.     1     3.0    0.0    0.0       pcmpgtw	%mm2, %mm2
-# CHECK-NEXT: 7.     1     1.0    1.0    2.0       pcmpgtb	%xmm2, %xmm2
-# CHECK-NEXT: 8.     1     1.0    0.0    1.0       pcmpgtd	%xmm2, %xmm2
-# CHECK-NEXT: 9.     1     2.0    0.0    0.0       pcmpgtq	%xmm2, %xmm2
-# CHECK-NEXT: 10.    1     3.0    0.0    0.0       pcmpgtw	%xmm2, %xmm2
-# CHECK-NEXT: 11.    1     1.0    1.0    2.0       vpcmpgtb	%xmm3, %xmm3, %xmm3
-# CHECK-NEXT: 12.    1     1.0    0.0    1.0       vpcmpgtd	%xmm3, %xmm3, %xmm3
-# CHECK-NEXT: 13.    1     2.0    0.0    0.0       vpcmpgtq	%xmm3, %xmm3, %xmm3
-# CHECK-NEXT: 14.    1     3.0    0.0    0.0       vpcmpgtw	%xmm3, %xmm3, %xmm3
-# CHECK-NEXT: 15.    1     4.0    0.0    0.0       vpcmpgtb	%xmm3, %xmm3, %xmm5
-# CHECK-NEXT: 16.    1     3.0    0.0    0.0       vpcmpgtd	%xmm3, %xmm3, %xmm5
-# CHECK-NEXT: 17.    1     3.0    0.0    0.0       vpcmpgtq	%xmm3, %xmm3, %xmm5
-# CHECK-NEXT: 18.    1     4.0    1.0    0.0       vpcmpgtw	%xmm3, %xmm3, %xmm5
-# CHECK-NEXT: 19.    1     3.0    0.0    1.0       vpcmpgtb	%ymm3, %ymm3, %ymm3
-# CHECK-NEXT: 20.    1     3.0    0.0    0.0       vpcmpgtd	%ymm3, %ymm3, %ymm3
-# CHECK-NEXT: 21.    1     4.0    0.0    0.0       vpcmpgtq	%ymm3, %ymm3, %ymm3
-# CHECK-NEXT: 22.    1     5.0    0.0    0.0       vpcmpgtw	%ymm3, %ymm3, %ymm3
-# CHECK-NEXT: 23.    1     6.0    0.0    0.0       vpcmpgtb	%ymm3, %ymm3, %ymm5
-# CHECK-NEXT: 24.    1     5.0    0.0    0.0       vpcmpgtd	%ymm3, %ymm3, %ymm5
-# CHECK-NEXT: 25.    1     5.0    0.0    0.0       vpcmpgtq	%ymm3, %ymm3, %ymm5
-# CHECK-NEXT: 26.    1     5.0    0.0    0.0       vpcmpgtw	%ymm3, %ymm3, %ymm5
-# CHECK-NEXT: 27.    1     2.0    2.0    3.0       psubb	%mm2, %mm2
-# CHECK-NEXT: 28.    1     2.0    0.0    2.0       psubd	%mm2, %mm2
-# CHECK-NEXT: 29.    1     3.0    0.0    1.0       psubq	%mm2, %mm2
-# CHECK-NEXT: 30.    1     5.0    1.0    0.0       psubw	%mm2, %mm2
-# CHECK-NEXT: 31.    1     1.0    1.0    4.0       psubb	%xmm2, %xmm2
-# CHECK-NEXT: 32.    1     1.0    0.0    3.0       psubd	%xmm2, %xmm2
-# CHECK-NEXT: 33.    1     2.0    0.0    2.0       psubq	%xmm2, %xmm2
-# CHECK-NEXT: 34.    1     4.0    1.0    0.0       psubw	%xmm2, %xmm2
-# CHECK-NEXT: 35.    1     4.0    1.0    0.0       vpsubb	%xmm3, %xmm3, %xmm3
-# CHECK-NEXT: 36.    1     4.0    0.0    0.0       vpsubd	%xmm3, %xmm3, %xmm3
-# CHECK-NEXT: 37.    1     5.0    0.0    0.0       vpsubq	%xmm3, %xmm3, %xmm3
-# CHECK-NEXT: 38.    1     6.0    0.0    0.0       vpsubw	%xmm3, %xmm3, %xmm3
-# CHECK-NEXT: 39.    1     7.0    0.0    0.0       vpsubb	%ymm3, %ymm3, %ymm3
-# CHECK-NEXT: 40.    1     7.0    0.0    0.0       vpsubd	%ymm3, %ymm3, %ymm3
-# CHECK-NEXT: 41.    1     8.0    0.0    0.0       vpsubq	%ymm3, %ymm3, %ymm3
-# CHECK-NEXT: 42.    1     9.0    0.0    0.0       vpsubw	%ymm3, %ymm3, %ymm3
-# CHECK-NEXT: 43.    1     10.0   0.0    0.0       vpsubb	%xmm3, %xmm3, %xmm5
-# CHECK-NEXT: 44.    1     9.0    0.0    0.0       vpsubd	%xmm3, %xmm3, %xmm5
-# CHECK-NEXT: 45.    1     9.0    0.0    0.0       vpsubq	%xmm3, %xmm3, %xmm5
-# CHECK-NEXT: 46.    1     9.0    0.0    0.0       vpsubw	%xmm3, %xmm3, %xmm5
-# CHECK-NEXT: 47.    1     10.0   1.0    0.0       vpsubb	%ymm3, %ymm3, %ymm5
-# CHECK-NEXT: 48.    1     9.0    1.0    0.0       vpsubd	%ymm3, %ymm3, %ymm5
-# CHECK-NEXT: 49.    1     9.0    1.0    0.0       vpsubq	%ymm3, %ymm3, %ymm5
-# CHECK-NEXT: 50.    1     9.0    1.0    0.0       vpsubw	%ymm3, %ymm3, %ymm5
-# CHECK-NEXT: 51.    1     1.0    1.0    8.0       andnps	%xmm0, %xmm0
-# CHECK-NEXT: 52.    1     1.0    1.0    7.0       andnpd	%xmm1, %xmm1
-# CHECK-NEXT: 53.    1     1.0    1.0    7.0       vandnps	%xmm2, %xmm2, %xmm2
-# CHECK-NEXT: 54.    1     2.0    0.0    6.0       vandnpd	%xmm1, %xmm1, %xmm1
-# CHECK-NEXT: 55.    1     2.0    0.0    7.0       vandnps	%ymm2, %ymm2, %ymm2
-# CHECK-NEXT: 56.    1     2.0    0.0    6.0       vandnpd	%ymm1, %ymm1, %ymm1
-# CHECK-NEXT: 57.    1     1.0    1.0    7.0       pandn	%mm2, %mm2
-# CHECK-NEXT: 58.    1     2.0    0.0    6.0       pandn	%xmm2, %xmm2
-# CHECK-NEXT: 59.    1     8.0    2.0    0.0       vpandn	%xmm3, %xmm3, %xmm3
-# CHECK-NEXT: 60.    1     8.0    0.0    0.0       vpandn	%ymm3, %ymm3, %ymm3
-# CHECK-NEXT: 61.    1     2.0    0.0    6.0       vandnps	%xmm2, %xmm2, %xmm5
-# CHECK-NEXT: 62.    1     2.0    0.0    6.0       vandnpd	%xmm1, %xmm1, %xmm5
-# CHECK-NEXT: 63.    1     9.0    0.0    0.0       vpandn	%xmm3, %xmm3, %xmm5
-# CHECK-NEXT: 64.    1     1.0    0.0    7.0       vandnps	%ymm2, %ymm2, %ymm5
-# CHECK-NEXT: 65.    1     2.0    1.0    6.0       vandnpd	%ymm1, %ymm1, %ymm5
-# CHECK-NEXT: 66.    1     8.0    0.0    0.0       vpandn	%ymm3, %ymm3, %ymm5
-# CHECK-NEXT: 67.    1     2.0    2.0    6.0       xorps	%xmm0, %xmm0
-# CHECK-NEXT: 68.    1     1.0    1.0    6.0       xorpd	%xmm1, %xmm1
-# CHECK-NEXT: 69.    1     2.0    2.0    5.0       vxorps	%xmm2, %xmm2, %xmm2
-# CHECK-NEXT: 70.    1     2.0    0.0    5.0       vxorpd	%xmm1, %xmm1, %xmm1
-# CHECK-NEXT: 71.    1     5.0    2.0    3.0       vxorps	%ymm2, %ymm2, %ymm2
-# CHECK-NEXT: 72.    1     4.0    2.0    3.0       vxorpd	%ymm1, %ymm1, %ymm1
-# CHECK-NEXT: 73.    1     1.0    1.0    6.0       pxor	%mm2, %mm2
-# CHECK-NEXT: 74.    1     5.0    0.0    2.0       pxor	%xmm2, %xmm2
-# CHECK-NEXT: 75.    1     6.0    0.0    1.0       vpxor	%xmm3, %xmm3, %xmm3
-# CHECK-NEXT: 76.    1     6.0    0.0    0.0       vpxor	%ymm3, %ymm3, %ymm3
-# CHECK-NEXT: 77.    1     3.0    3.0    3.0       vxorps	%xmm4, %xmm4, %xmm5
-# CHECK-NEXT: 78.    1     4.0    0.0    2.0       vxorpd	%xmm1, %xmm1, %xmm3
-# CHECK-NEXT: 79.    1     5.0    5.0    2.0       vxorps	%ymm4, %ymm4, %ymm5
-# CHECK-NEXT: 80.    1     3.0    0.0    3.0       vxorpd	%ymm1, %ymm1, %ymm3
-# CHECK-NEXT: 81.    1     5.0    1.0    1.0       vpxor	%xmm3, %xmm3, %xmm5
-# CHECK-NEXT: 82.    1     5.0    1.0    1.0       vpxor	%ymm3, %ymm3, %ymm5
-# CHECK-NEXT:        1     4.0    0.5    1.8       <total>
+# CHECK-NEXT: 1.     1     1.0    1.0    0.0       subq	%rax, %rax
+# CHECK-NEXT: 2.     1     1.0    1.0    0.0       xorl	%eax, %eax
+# CHECK-NEXT: 3.     1     1.0    1.0    0.0       xorq	%rax, %rax
+# CHECK-NEXT: 4.     1     1.0    1.0    0.0       pcmpgtb	%mm2, %mm2
+# CHECK-NEXT: 5.     1     1.0    1.0    0.0       pcmpgtd	%mm2, %mm2
+# CHECK-NEXT: 6.     1     1.0    1.0    0.0       pcmpgtw	%mm2, %mm2
+# CHECK-NEXT: 7.     1     1.0    1.0    0.0       pcmpgtb	%xmm2, %xmm2
+# CHECK-NEXT: 8.     1     1.0    1.0    0.0       pcmpgtd	%xmm2, %xmm2
+# CHECK-NEXT: 9.     1     1.0    1.0    0.0       pcmpgtq	%xmm2, %xmm2
+# CHECK-NEXT: 10.    1     1.0    1.0    0.0       pcmpgtw	%xmm2, %xmm2
+# CHECK-NEXT: 11.    1     1.0    1.0    0.0       vpcmpgtb	%xmm3, %xmm3, %xmm3
+# CHECK-NEXT: 12.    1     1.0    1.0    0.0       vpcmpgtd	%xmm3, %xmm3, %xmm3
+# CHECK-NEXT: 13.    1     1.0    1.0    0.0       vpcmpgtq	%xmm3, %xmm3, %xmm3
+# CHECK-NEXT: 14.    1     1.0    1.0    0.0       vpcmpgtw	%xmm3, %xmm3, %xmm3
+# CHECK-NEXT: 15.    1     1.0    1.0    0.0       vpcmpgtb	%xmm3, %xmm3, %xmm5
+# CHECK-NEXT: 16.    1     1.0    1.0    0.0       vpcmpgtd	%xmm3, %xmm3, %xmm5
+# CHECK-NEXT: 17.    1     1.0    1.0    0.0       vpcmpgtq	%xmm3, %xmm3, %xmm5
+# CHECK-NEXT: 18.    1     1.0    1.0    0.0       vpcmpgtw	%xmm3, %xmm3, %xmm5
+# CHECK-NEXT: 19.    1     1.0    1.0    0.0       vpcmpgtb	%ymm3, %ymm3, %ymm3
+# CHECK-NEXT: 20.    1     1.0    1.0    0.0       vpcmpgtd	%ymm3, %ymm3, %ymm3
+# CHECK-NEXT: 21.    1     1.0    1.0    0.0       vpcmpgtq	%ymm3, %ymm3, %ymm3
+# CHECK-NEXT: 22.    1     1.0    1.0    0.0       vpcmpgtw	%ymm3, %ymm3, %ymm3
+# CHECK-NEXT: 23.    1     1.0    1.0    0.0       vpcmpgtb	%ymm3, %ymm3, %ymm5
+# CHECK-NEXT: 24.    1     1.0    1.0    0.0       vpcmpgtd	%ymm3, %ymm3, %ymm5
+# CHECK-NEXT: 25.    1     1.0    1.0    0.0       vpcmpgtq	%ymm3, %ymm3, %ymm5
+# CHECK-NEXT: 26.    1     1.0    1.0    0.0       vpcmpgtw	%ymm3, %ymm3, %ymm5
+# CHECK-NEXT: 27.    1     1.0    1.0    0.0       psubb	%mm2, %mm2
+# CHECK-NEXT: 28.    1     1.0    1.0    0.0       psubd	%mm2, %mm2
+# CHECK-NEXT: 29.    1     1.0    1.0    0.0       psubq	%mm2, %mm2
+# CHECK-NEXT: 30.    1     1.0    1.0    0.0       psubw	%mm2, %mm2
+# CHECK-NEXT: 31.    1     1.0    1.0    0.0       psubb	%xmm2, %xmm2
+# CHECK-NEXT: 32.    1     1.0    1.0    0.0       psubd	%xmm2, %xmm2
+# CHECK-NEXT: 33.    1     1.0    1.0    0.0       psubq	%xmm2, %xmm2
+# CHECK-NEXT: 34.    1     1.0    1.0    0.0       psubw	%xmm2, %xmm2
+# CHECK-NEXT: 35.    1     1.0    1.0    0.0       vpsubb	%xmm3, %xmm3, %xmm3
+# CHECK-NEXT: 36.    1     1.0    1.0    0.0       vpsubd	%xmm3, %xmm3, %xmm3
+# CHECK-NEXT: 37.    1     1.0    1.0    0.0       vpsubq	%xmm3, %xmm3, %xmm3
+# CHECK-NEXT: 38.    1     1.0    1.0    0.0       vpsubw	%xmm3, %xmm3, %xmm3
+# CHECK-NEXT: 39.    1     1.0    1.0    0.0       vpsubb	%ymm3, %ymm3, %ymm3
+# CHECK-NEXT: 40.    1     1.0    1.0    0.0       vpsubd	%ymm3, %ymm3, %ymm3
+# CHECK-NEXT: 41.    1     1.0    1.0    0.0       vpsubq	%ymm3, %ymm3, %ymm3
+# CHECK-NEXT: 42.    1     1.0    1.0    0.0       vpsubw	%ymm3, %ymm3, %ymm3
+# CHECK-NEXT: 43.    1     1.0    1.0    0.0       vpsubb	%xmm3, %xmm3, %xmm5
+# CHECK-NEXT: 44.    1     1.0    1.0    0.0       vpsubd	%xmm3, %xmm3, %xmm5
+# CHECK-NEXT: 45.    1     1.0    1.0    0.0       vpsubq	%xmm3, %xmm3, %xmm5
+# CHECK-NEXT: 46.    1     1.0    1.0    0.0       vpsubw	%xmm3, %xmm3, %xmm5
+# CHECK-NEXT: 47.    1     1.0    1.0    0.0       vpsubb	%ymm3, %ymm3, %ymm5
+# CHECK-NEXT: 48.    1     1.0    1.0    0.0       vpsubd	%ymm3, %ymm3, %ymm5
+# CHECK-NEXT: 49.    1     1.0    1.0    0.0       vpsubq	%ymm3, %ymm3, %ymm5
+# CHECK-NEXT: 50.    1     1.0    1.0    0.0       vpsubw	%ymm3, %ymm3, %ymm5
+# CHECK-NEXT: 51.    1     1.0    1.0    0.0       andnps	%xmm0, %xmm0
+# CHECK-NEXT: 52.    1     1.0    1.0    0.0       andnpd	%xmm1, %xmm1
+# CHECK-NEXT: 53.    1     1.0    1.0    0.0       vandnps	%xmm2, %xmm2, %xmm2
+# CHECK-NEXT: 54.    1     1.0    1.0    0.0       vandnpd	%xmm1, %xmm1, %xmm1
+# CHECK-NEXT: 55.    1     1.0    1.0    0.0       vandnps	%ymm2, %ymm2, %ymm2
+# CHECK-NEXT: 56.    1     1.0    1.0    0.0       vandnpd	%ymm1, %ymm1, %ymm1
+# CHECK-NEXT: 57.    1     1.0    1.0    0.0       pandn	%mm2, %mm2
+# CHECK-NEXT: 58.    1     1.0    1.0    0.0       pandn	%xmm2, %xmm2
+# CHECK-NEXT: 59.    1     1.0    1.0    0.0       vpandn	%xmm3, %xmm3, %xmm3
+# CHECK-NEXT: 60.    1     1.0    1.0    0.0       vpandn	%ymm3, %ymm3, %ymm3
+# CHECK-NEXT: 61.    1     1.0    1.0    0.0       vandnps	%xmm2, %xmm2, %xmm5
+# CHECK-NEXT: 62.    1     1.0    1.0    0.0       vandnpd	%xmm1, %xmm1, %xmm5
+# CHECK-NEXT: 63.    1     1.0    1.0    0.0       vpandn	%xmm3, %xmm3, %xmm5
+# CHECK-NEXT: 64.    1     1.0    1.0    0.0       vandnps	%ymm2, %ymm2, %ymm5
+# CHECK-NEXT: 65.    1     1.0    1.0    0.0       vandnpd	%ymm1, %ymm1, %ymm5
+# CHECK-NEXT: 66.    1     1.0    1.0    0.0       vpandn	%ymm3, %ymm3, %ymm5
+# CHECK-NEXT: 67.    1     1.0    1.0    0.0       xorps	%xmm0, %xmm0
+# CHECK-NEXT: 68.    1     1.0    1.0    0.0       xorpd	%xmm1, %xmm1
+# CHECK-NEXT: 69.    1     1.0    1.0    0.0       vxorps	%xmm2, %xmm2, %xmm2
+# CHECK-NEXT: 70.    1     1.0    1.0    0.0       vxorpd	%xmm1, %xmm1, %xmm1
+# CHECK-NEXT: 71.    1     1.0    1.0    0.0       vxorps	%ymm2, %ymm2, %ymm2
+# CHECK-NEXT: 72.    1     1.0    1.0    0.0       vxorpd	%ymm1, %ymm1, %ymm1
+# CHECK-NEXT: 73.    1     1.0    1.0    0.0       pxor	%mm2, %mm2
+# CHECK-NEXT: 74.    1     1.0    1.0    0.0       pxor	%xmm2, %xmm2
+# CHECK-NEXT: 75.    1     1.0    1.0    0.0       vpxor	%xmm3, %xmm3, %xmm3
+# CHECK-NEXT: 76.    1     1.0    1.0    0.0       vpxor	%ymm3, %ymm3, %ymm3
+# CHECK-NEXT: 77.    1     1.0    1.0    0.0       vxorps	%xmm4, %xmm4, %xmm5
+# CHECK-NEXT: 78.    1     1.0    1.0    0.0       vxorpd	%xmm1, %xmm1, %xmm3
+# CHECK-NEXT: 79.    1     1.0    1.0    0.0       vxorps	%ymm4, %ymm4, %ymm5
+# CHECK-NEXT: 80.    1     1.0    1.0    0.0       vxorpd	%ymm1, %ymm1, %ymm3
+# CHECK-NEXT: 81.    1     1.0    1.0    0.0       vpxor	%xmm3, %xmm3, %xmm5
+# CHECK-NEXT: 82.    1     1.0    1.0    0.0       vpxor	%ymm3, %ymm3, %ymm5
+# CHECK-NEXT:        1     1.0    1.0    0.0       <total>


        


More information about the llvm-commits mailing list