[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