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 +# 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 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 +# 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 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 +# 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 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 +# 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 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 +# CHECK-NEXT: 34. 1 0.0 0.0 29.0 pxor %xmm2, %xmm2 +# CHECK-NEXT: 1 6.5 0.2 10.5 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 +# CHECK-NEXT: 1 0.8 0.2 1.9 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 +# CHECK-NEXT: 1 0.7 0.2 1.8 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 +# CHECK-NEXT: 1 0.9 0.2 2.0 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 +# CHECK-NEXT: 35. 1 7.0 7.0 0.0 pxor %xmm2, %xmm2 +# CHECK-NEXT: 1 4.3 1.6 0.5 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 +# CHECK-NEXT: 1 1.9 0.3 8.9 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 +# CHECK-NEXT: 1 0.6 0.2 1.6 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 +# CHECK-NEXT: 1 0.9 0.2 2.0 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 +# 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 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 +# 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