[llvm] r360341 - [X86] AMD Piledriver (BdVer2): major cleanup (mainly inverse throughput)
Roman Lebedev via llvm-commits
llvm-commits at lists.llvm.org
Thu May 9 06:54:51 PDT 2019
Author: lebedevri
Date: Thu May 9 06:54:51 2019
New Revision: 360341
URL: http://llvm.org/viewvc/llvm-project?rev=360341&view=rev
Log:
[X86] AMD Piledriver (BdVer2): major cleanup (mainly inverse throughput)
I've started this cleanup more several times now, but got sidetracked
elsewhere, e.g. by llvm-exegesis problems. Not this time, finally!
This is mainly cleaning up the inverse throughput values,
and a few latencies/uops, based on the llvm-exegesis measured values.
Though this is not complete by any means,
there's certainly more cleanup to be done.
The performance numbers (i've only checked by RawSpeed benchmark) aren't
really surprising - overall this *slightly* (< -1%) improves perf.
Modified:
llvm/trunk/lib/Target/X86/X86ScheduleBdVer2.td
llvm/trunk/test/tools/llvm-mca/X86/BdVer2/add-sequence.s
llvm/trunk/test/tools/llvm-mca/X86/BdVer2/clear-super-register-1.s
llvm/trunk/test/tools/llvm-mca/X86/BdVer2/clear-super-register-2.s
llvm/trunk/test/tools/llvm-mca/X86/BdVer2/dependency-breaking-cmp.s
llvm/trunk/test/tools/llvm-mca/X86/BdVer2/dependency-breaking-pcmpeq.s
llvm/trunk/test/tools/llvm-mca/X86/BdVer2/dependency-breaking-pcmpgt.s
llvm/trunk/test/tools/llvm-mca/X86/BdVer2/dependency-breaking-sbb-2.s
llvm/trunk/test/tools/llvm-mca/X86/BdVer2/dependent-pmuld-paddd.s
llvm/trunk/test/tools/llvm-mca/X86/BdVer2/dot-product.s
llvm/trunk/test/tools/llvm-mca/X86/BdVer2/hadd-read-after-ld-1.s
llvm/trunk/test/tools/llvm-mca/X86/BdVer2/hadd-read-after-ld-2.s
llvm/trunk/test/tools/llvm-mca/X86/BdVer2/instruction-info-view.s
llvm/trunk/test/tools/llvm-mca/X86/BdVer2/int-to-fpu-forwarding-1.s
llvm/trunk/test/tools/llvm-mca/X86/BdVer2/int-to-fpu-forwarding-2.s
llvm/trunk/test/tools/llvm-mca/X86/BdVer2/int-to-fpu-forwarding-3.s
llvm/trunk/test/tools/llvm-mca/X86/BdVer2/load-store-alias.s
llvm/trunk/test/tools/llvm-mca/X86/BdVer2/load-throughput.s
llvm/trunk/test/tools/llvm-mca/X86/BdVer2/memcpy-like-test.s
llvm/trunk/test/tools/llvm-mca/X86/BdVer2/one-idioms.s
llvm/trunk/test/tools/llvm-mca/X86/BdVer2/partial-reg-update-2.s
llvm/trunk/test/tools/llvm-mca/X86/BdVer2/partial-reg-update-3.s
llvm/trunk/test/tools/llvm-mca/X86/BdVer2/partial-reg-update-4.s
llvm/trunk/test/tools/llvm-mca/X86/BdVer2/partial-reg-update-5.s
llvm/trunk/test/tools/llvm-mca/X86/BdVer2/partial-reg-update-6.s
llvm/trunk/test/tools/llvm-mca/X86/BdVer2/partial-reg-update.s
llvm/trunk/test/tools/llvm-mca/X86/BdVer2/pipes-fpu.s
llvm/trunk/test/tools/llvm-mca/X86/BdVer2/pr37790.s
llvm/trunk/test/tools/llvm-mca/X86/BdVer2/rank.s
llvm/trunk/test/tools/llvm-mca/X86/BdVer2/rcu-statistics.s
llvm/trunk/test/tools/llvm-mca/X86/BdVer2/read-advance-1.s
llvm/trunk/test/tools/llvm-mca/X86/BdVer2/read-advance-2.s
llvm/trunk/test/tools/llvm-mca/X86/BdVer2/read-advance-3.s
llvm/trunk/test/tools/llvm-mca/X86/BdVer2/reg-move-elimination-1.s
llvm/trunk/test/tools/llvm-mca/X86/BdVer2/reg-move-elimination-2.s
llvm/trunk/test/tools/llvm-mca/X86/BdVer2/reg-move-elimination-3.s
llvm/trunk/test/tools/llvm-mca/X86/BdVer2/reg-move-elimination-4.s
llvm/trunk/test/tools/llvm-mca/X86/BdVer2/reg-move-elimination-5.s
llvm/trunk/test/tools/llvm-mca/X86/BdVer2/register-files-5.s
llvm/trunk/test/tools/llvm-mca/X86/BdVer2/resources-3dnow.s
llvm/trunk/test/tools/llvm-mca/X86/BdVer2/resources-adx.s
llvm/trunk/test/tools/llvm-mca/X86/BdVer2/resources-aes.s
llvm/trunk/test/tools/llvm-mca/X86/BdVer2/resources-avx1.s
llvm/trunk/test/tools/llvm-mca/X86/BdVer2/resources-bmi1.s
llvm/trunk/test/tools/llvm-mca/X86/BdVer2/resources-clflushopt.s
llvm/trunk/test/tools/llvm-mca/X86/BdVer2/resources-cmov.s
llvm/trunk/test/tools/llvm-mca/X86/BdVer2/resources-cmpxchg.s
llvm/trunk/test/tools/llvm-mca/X86/BdVer2/resources-f16c.s
llvm/trunk/test/tools/llvm-mca/X86/BdVer2/resources-fma.s
llvm/trunk/test/tools/llvm-mca/X86/BdVer2/resources-fma4.s
llvm/trunk/test/tools/llvm-mca/X86/BdVer2/resources-lzcnt.s
llvm/trunk/test/tools/llvm-mca/X86/BdVer2/resources-mmx.s
llvm/trunk/test/tools/llvm-mca/X86/BdVer2/resources-movbe.s
llvm/trunk/test/tools/llvm-mca/X86/BdVer2/resources-pclmul.s
llvm/trunk/test/tools/llvm-mca/X86/BdVer2/resources-popcnt.s
llvm/trunk/test/tools/llvm-mca/X86/BdVer2/resources-prefetchw.s
llvm/trunk/test/tools/llvm-mca/X86/BdVer2/resources-sse1.s
llvm/trunk/test/tools/llvm-mca/X86/BdVer2/resources-sse2.s
llvm/trunk/test/tools/llvm-mca/X86/BdVer2/resources-sse3.s
llvm/trunk/test/tools/llvm-mca/X86/BdVer2/resources-sse41.s
llvm/trunk/test/tools/llvm-mca/X86/BdVer2/resources-sse42.s
llvm/trunk/test/tools/llvm-mca/X86/BdVer2/resources-sse4a.s
llvm/trunk/test/tools/llvm-mca/X86/BdVer2/resources-ssse3.s
llvm/trunk/test/tools/llvm-mca/X86/BdVer2/resources-tbm.s
llvm/trunk/test/tools/llvm-mca/X86/BdVer2/resources-x86_32.s
llvm/trunk/test/tools/llvm-mca/X86/BdVer2/resources-x86_64.s
llvm/trunk/test/tools/llvm-mca/X86/BdVer2/resources-x87.s
llvm/trunk/test/tools/llvm-mca/X86/BdVer2/resources-xop.s
llvm/trunk/test/tools/llvm-mca/X86/BdVer2/scheduler-queue-usage.s
llvm/trunk/test/tools/llvm-mca/X86/BdVer2/simple-test.s
llvm/trunk/test/tools/llvm-mca/X86/BdVer2/store-throughput.s
llvm/trunk/test/tools/llvm-mca/X86/BdVer2/vec-logic-read-after-ld-1.s
llvm/trunk/test/tools/llvm-mca/X86/BdVer2/vec-logic-read-after-ld-2.s
llvm/trunk/test/tools/llvm-mca/X86/BdVer2/xop-super-registers-1.s
llvm/trunk/test/tools/llvm-mca/X86/BdVer2/xop-super-registers-2.s
llvm/trunk/test/tools/llvm-mca/X86/BdVer2/zero-idioms-avx-256.s
llvm/trunk/test/tools/llvm-mca/X86/BdVer2/zero-idioms.s
llvm/trunk/test/tools/llvm-mca/X86/bextr-read-after-ld.s
llvm/trunk/test/tools/llvm-mca/X86/cpus.s
llvm/trunk/test/tools/llvm-mca/X86/read-after-ld-1.s
llvm/trunk/test/tools/llvm-mca/X86/variable-blend-read-after-ld-1.s
llvm/trunk/test/tools/llvm-mca/X86/variable-blend-read-after-ld-2.s
Modified: llvm/trunk/lib/Target/X86/X86ScheduleBdVer2.td
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/X86ScheduleBdVer2.td?rev=360341&r1=360340&r2=360341&view=diff
==============================================================================
--- llvm/trunk/lib/Target/X86/X86ScheduleBdVer2.td (original)
+++ llvm/trunk/lib/Target/X86/X86ScheduleBdVer2.td Thu May 9 06:54:51 2019
@@ -220,7 +220,7 @@ multiclass PdWriteResExPair<X86FoldableS
list<int> Res = [], int UOps = 1,
int LoadUOps = 0> {
defm : __pdWriteResPair<SchedRW, ExePorts, Lat, Res, UOps,
- /*LoadLat*/4, /*LoadRes*/1, LoadUOps>;
+ /*LoadLat*/4, /*LoadRes*/3, LoadUOps>;
}
multiclass PdWriteResXMMPair<X86FoldableSchedWrite SchedRW,
@@ -228,7 +228,7 @@ multiclass PdWriteResXMMPair<X86Foldable
list<int> Res = [], int UOps = 1,
int LoadUOps = 0> {
defm : __pdWriteResPair<SchedRW, ExePorts, Lat, Res, UOps,
- /*LoadLat*/5, /*LoadRes*/1, LoadUOps>;
+ /*LoadLat*/5, /*LoadRes*/3, LoadUOps>;
}
multiclass PdWriteResYMMPair<X86FoldableSchedWrite SchedRW,
@@ -236,7 +236,7 @@ multiclass PdWriteResYMMPair<X86Foldable
list<int> Res = [], int UOps = 2,
int LoadUOps = 0> {
defm : __pdWriteResPair<SchedRW, ExePorts, Lat, Res, UOps,
- /*LoadLat*/5, /*LoadRes*/2, LoadUOps>;
+ /*LoadLat*/5, /*LoadRes*/3, LoadUOps>;
}
//===----------------------------------------------------------------------===//
@@ -265,15 +265,15 @@ def : WriteRes<WriteRMW, [PdStore]>;
// Loads, stores, and moves, not folded with other operations.
////////////////////////////////////////////////////////////////////////////////
-def : WriteRes<WriteLoad, [PdLoad]> { let Latency = 5; }
+def : WriteRes<WriteLoad, [PdLoad]> { let Latency = 5; let ResourceCycles = [2]; }
def : WriteRes<WriteStore, [PdStore]>;
def : WriteRes<WriteStoreNT, [PdStore]>;
-def : WriteRes<WriteMove, [PdEX01]>;
+def : WriteRes<WriteMove, [PdEX01]> { let ResourceCycles = [2]; }
// Load/store MXCSR.
// FIXME: These are copy and pasted from WriteLoad/Store.
def : WriteRes<WriteLDMXCSR, [PdLoad]> { let Latency = 5; }
-def : WriteRes<WriteSTMXCSR, [PdStore]> { let NumMicroOps = 2; }
+def : WriteRes<WriteSTMXCSR, [PdStore]> { let NumMicroOps = 2; let ResourceCycles = [18]; }
// Treat misc copies as a move.
def : InstRW<[WriteMove], (instrs COPY)>;
@@ -307,6 +307,7 @@ def : InstRW<[PdWriteXLAT], (instrs XLAT
def PdWriteLARrr : SchedWriteRes<[PdEX01]> {
let Latency = 184;
+ let ResourceCycles = [375];
let NumMicroOps = 45;
}
def : InstRW<[PdWriteLARrr], (instregex "LAR(16|32|64)rr",
@@ -314,22 +315,31 @@ def : InstRW<[PdWriteLARrr], (instregex
// Nops don't have dependencies, so there's no actual latency, but we set this
// to '1' to tell the scheduler that the nop uses an ALU slot for a cycle.
-def : WriteRes<WriteNop, [PdEX01]>;
+def : WriteRes<WriteNop, [PdEX01]> { let ResourceCycles = [2]; }
////////////////////////////////////////////////////////////////////////////////
// Arithmetic.
////////////////////////////////////////////////////////////////////////////////
-defm : PdWriteResExPair<WriteALU, [PdEX01]>;
+defm : PdWriteResExPair<WriteALU, [PdEX01], 1, [2]>;
+
+def PdWriteALURMW : SchedWriteRes<[PdLoad, PdEX01, PdStore]> {
+ let Latency = 6;
+ let ResourceCycles = [3, 2, 1];
+ let NumMicroOps = 1;
+}
+def : SchedAlias<WriteALURMW, PdWriteALURMW>;
def PdWriteLXADD : SchedWriteRes<[PdEX01]> {
let Latency = 6;
+ let ResourceCycles = [88];
let NumMicroOps = 4;
}
def : InstRW<[PdWriteLXADD], (instrs LXADD8, LXADD16, LXADD32, LXADD64)>;
def PdWriteBMI1 : SchedWriteRes<[PdEX01]> {
let Latency = 2;
+ let ResourceCycles = [2];
let NumMicroOps = 2;
}
def : InstRW<[PdWriteBMI1],
@@ -339,8 +349,9 @@ def : InstRW<[PdWriteBMI1],
BLSIC32rr, BLSIC64rr, T1MSKC32rr, T1MSKC64rr,
TZMSK32rr, TZMSK64rr)>;
-def PdWriteBMI1m : SchedWriteRes<[PdEX01]> {
+def PdWriteBMI1m : SchedWriteRes<[PdLoad, PdEX01]> {
let Latency = 6;
+ let ResourceCycles = [3, 3];
let NumMicroOps = 2;
}
def : InstRW<[PdWriteBMI1m],
@@ -352,26 +363,34 @@ def : InstRW<[PdWriteBMI1m],
defm : PdWriteResExPair<WriteADC, [PdEX01], 1, [2]>;
-defm : PdWriteRes<WriteBSWAP32, [PdEX1]>;
-defm : PdWriteRes<WriteBSWAP64, [PdEX1]>;
-defm : PdWriteRes<WriteCMPXCHG, [PdEX1], 3, [], 5>;
-defm : PdWriteRes<WriteCMPXCHGRMW, [PdEX1, PdStore, PdLoad], 3, [], 2>;
-defm : PdWriteRes<WriteXCHG, [PdEX1], 1, [], 2>;
+def PdWriteADCSBB64ri32 : SchedWriteRes<[PdEX01]> {
+ let ResourceCycles = [3];
+}
+def : InstRW<[PdWriteADCSBB64ri32], (instrs ADC64ri32, SBB64ri32)>;
+
+defm : PdWriteRes<WriteBSWAP32, [PdEX01]>;
+defm : PdWriteRes<WriteBSWAP64, [PdEX01]>;
+defm : PdWriteRes<WriteCMPXCHG, [PdEX1], 3, [3], 5>;
+defm : PdWriteRes<WriteCMPXCHGRMW, [PdEX1, PdStore, PdLoad], 3, [44, 1, 1], 2>;
+defm : PdWriteRes<WriteXCHG, [PdEX1], 1, [], 2>;
def PdWriteCMPXCHG8rr : SchedWriteRes<[PdEX1]> {
let Latency = 3;
+ let ResourceCycles = [3];
let NumMicroOps = 3;
}
def : InstRW<[PdWriteCMPXCHG8rr], (instrs CMPXCHG8rr)>;
def PdWriteCMPXCHG8rm : SchedWriteRes<[PdEX1]> {
let Latency = 3;
+ let ResourceCycles = [23];
let NumMicroOps = 5;
}
def : InstRW<[PdWriteCMPXCHG8rm], (instrs CMPXCHG8rm)>;
def PdWriteCMPXCHG16rm_CMPXCHG32rm_CMPXCHG64rm : SchedWriteRes<[PdEX1]> {
let Latency = 3;
+ let ResourceCycles = [21];
let NumMicroOps = 6;
}
def : InstRW<[PdWriteCMPXCHG16rm_CMPXCHG32rm_CMPXCHG64rm],
@@ -379,36 +398,40 @@ def : InstRW<[PdWriteCMPXCHG16rm_CMPXCHG
def PdWriteCMPXCHG8B : SchedWriteRes<[PdEX1]> {
let Latency = 3;
+ let ResourceCycles = [26];
let NumMicroOps = 18;
}
def : InstRW<[PdWriteCMPXCHG8B], (instrs CMPXCHG8B)>;
def PdWriteCMPXCHG16B : SchedWriteRes<[PdEX1]> {
let Latency = 3;
+ let ResourceCycles = [69];
let NumMicroOps = 22;
}
def : InstRW<[PdWriteCMPXCHG16B], (instrs CMPXCHG16B)>;
def PdWriteXADD : SchedWriteRes<[PdEX1]> {
let Latency = 1;
- let NumMicroOps = 4;
+ let ResourceCycles = [1];
+ let NumMicroOps = 2;
}
def : InstRW<[PdWriteXADD], (instrs XADD8rr, XADD16rr, XADD32rr, XADD64rr)>;
def PdWriteXADDm : SchedWriteRes<[PdEX1]> {
-let Latency = 6;
-let NumMicroOps = 4;
+ let Latency = 6;
+ let ResourceCycles = [20];
+ let NumMicroOps = 4;
}
def : InstRW<[PdWriteXADDm], (instrs XADD8rm, XADD16rm, XADD32rm, XADD64rm)>;
-defm : PdWriteResExPair<WriteIMul8, [PdEX1, PdMul], 4>;
-defm : PdWriteResExPair<WriteIMul16, [PdEX1, PdMul], 4, [], 2>;
-defm : PdWriteResExPair<WriteIMul16Imm, [PdEX1, PdMul], 5, [], 2>;
-defm : PdWriteResExPair<WriteIMul16Reg, [PdEX1, PdMul], 4>;
-defm : PdWriteResExPair<WriteIMul32, [PdEX1, PdMul], 4>;
-defm : PdWriteResExPair<WriteIMul32Imm, [PdEX1, PdMul], 4, [], 1, 1>;
-defm : PdWriteResExPair<WriteIMul32Reg, [PdEX1, PdMul], 4>;
-defm : PdWriteResExPair<WriteIMul64, [PdEX1, PdMul], 6, [1, 4]>;
+defm : PdWriteResExPair<WriteIMul8, [PdEX1, PdMul], 4, [1, 4]>;
+defm : PdWriteResExPair<WriteIMul16, [PdEX1, PdMul], 4, [1, 5], 2>;
+defm : PdWriteResExPair<WriteIMul16Imm, [PdEX1, PdMul], 5, [1, 5], 2>;
+defm : PdWriteResExPair<WriteIMul16Reg, [PdEX1, PdMul], 4, [1, 2]>;
+defm : PdWriteResExPair<WriteIMul32, [PdEX1, PdMul], 4, [1, 4]>;
+defm : PdWriteResExPair<WriteIMul32Imm, [PdEX1, PdMul], 4, [1, 2], 1, 1>;
+defm : PdWriteResExPair<WriteIMul32Reg, [PdEX1, PdMul], 4, [1, 2]>;
+defm : PdWriteResExPair<WriteIMul64, [PdEX1, PdMul], 6, [1, 6]>;
defm : PdWriteResExPair<WriteIMul64Imm, [PdEX1, PdMul], 6, [1, 4],1, 1>;
defm : PdWriteResExPair<WriteIMul64Reg, [PdEX1, PdMul], 6, [1, 4]>;
defm : X86WriteResUnsupported<WriteIMulH>; // BMI2 MULX
@@ -427,21 +450,21 @@ defm : PdWriteResExPair<WriteCRC32, [P
def PdWriteCRC32r32r16 : SchedWriteRes<[PdEX01]> {
let Latency = 5;
- let ResourceCycles = [4];
+ let ResourceCycles = [10];
let NumMicroOps = 5;
}
def : InstRW<[PdWriteCRC32r32r16], (instrs CRC32r32r16)>;
def PdWriteCRC32r32r32 : SchedWriteRes<[PdEX01]> {
let Latency = 6;
- let ResourceCycles = [4];
+ let ResourceCycles = [12];
let NumMicroOps = 7;
}
def : InstRW<[PdWriteCRC32r32r32], (instrs CRC32r32r32)>;
def PdWriteCRC32r64r64 : SchedWriteRes<[PdEX01]> {
let Latency = 10;
- let ResourceCycles = [4];
+ let ResourceCycles = [17];
let NumMicroOps = 11;
}
def : InstRW<[PdWriteCRC32r64r64], (instrs CRC32r64r64)>;
@@ -450,7 +473,7 @@ defm : PdWriteResExPair<WriteCMOV, [P
def PdWriteCMOVm : SchedWriteRes<[PdLoad, PdEX01]> {
let Latency = 5;
- let ResourceCycles = [1, 1];
+ let ResourceCycles = [3, 3];
let NumMicroOps = 2;
}
@@ -485,110 +508,133 @@ def PdSETGEmSETGmSETLEmSETLm : SchedWri
]>;
def : InstRW<[PdSETGEmSETGmSETLEmSETLm], (instrs SETCCm)>;
-defm : PdWriteRes<WriteLAHFSAHF, [PdEX01], 2, [], 2>;
+defm : PdWriteRes<WriteLAHFSAHF, [PdEX01], 2, [4], 2>;
-def WriteLAHF : SchedWriteRes<[PdEX01]> {
+def PdWriteLAHF : SchedWriteRes<[PdEX01]> {
let Latency = 2;
+ let ResourceCycles = [4];
let NumMicroOps = 4;
}
-def : InstRW<[WriteLAHF], (instrs LAHF)>;
+def : InstRW<[PdWriteLAHF], (instrs LAHF)>;
-def WriteSAHF : SchedWriteRes<[PdEX01]> {
+def PdWriteSAHF : SchedWriteRes<[PdEX01]> {
let Latency = 2;
+ let ResourceCycles = [2];
let NumMicroOps = 2;
}
-def : InstRW<[WriteSAHF], (instrs SAHF)>;
+def : InstRW<[PdWriteSAHF], (instrs SAHF)>;
-defm : PdWriteRes<WriteBitTest, [PdEX01], 1, [1], 1>;
-defm : PdWriteRes<WriteBitTestImmLd, [PdEX01, PdLoad], 5, [1, 1], 1>;
-defm : PdWriteRes<WriteBitTestRegLd, [PdEX01, PdLoad], 5, [1, 1], 7>;
-defm : PdWriteRes<WriteBitTestSet, [PdEX01], 2, [1], 2>;
-defm : PdWriteRes<WriteBitTestSetImmLd, [PdEX01, PdLoad], 6, [1, 1], 4>;
-defm : PdWriteRes<WriteBitTestSetImmRMW, [PdEX01, PdLoad], 6, [1, 1], 4>;
-defm : PdWriteRes<WriteBitTestSetRegLd, [PdEX01, PdLoad], 6, [1, 1], 10>;
-defm : PdWriteRes<WriteBitTestSetRegRMW, [PdEX01, PdLoad], 6, [1, 1], 10>;
+defm : PdWriteRes<WriteBitTest, [PdEX01], 1, [2], 1>;
+defm : PdWriteRes<WriteBitTestImmLd, [PdEX01, PdLoad], 5, [2, 3], 1>;
+defm : PdWriteRes<WriteBitTestRegLd, [PdEX01, PdLoad], 5, [7, 2], 7>;
+defm : PdWriteRes<WriteBitTestSet, [PdEX01], 2, [2], 2>;
+defm : PdWriteRes<WriteBitTestSetImmLd, [PdEX01, PdLoad], 6, [1, 1], 4>;
+defm : PdWriteRes<WriteBitTestSetRegLd, [PdEX01, PdLoad], 6, [1, 1], 10>;
+
+def PdWriteBTSIm : SchedWriteRes<[PdEX01, PdLoad]> {
+ let Latency = 7;
+ let ResourceCycles = [42, 1];
+ let NumMicroOps = 4;
+}
+def : SchedAlias<WriteBitTestSetImmRMW, PdWriteBTSIm>;
+def PdWriteBTSRm : SchedWriteRes<[PdEX01, PdLoad]> {
+ let Latency = 7;
+ let ResourceCycles = [44, 1];
+ let NumMicroOps = 10;
+}
+def : SchedAlias<WriteBitTestSetRegRMW, PdWriteBTSRm>;
// This is for simple LEAs with one or two input operands.
// FIXME: SAGU 3-operand LEA
def : WriteRes<WriteLEA, [PdEX01]> { let NumMicroOps = 2; }
// Bit counts.
-defm : PdWriteResExPair<WriteBSF, [PdEX01], 3, [4], 6, 2>;
-defm : PdWriteResExPair<WriteBSR, [PdEX01], 4, [4], 7, 2>;
-defm : PdWriteResExPair<WritePOPCNT, [PdEX01], 4>;
-defm : PdWriteResExPair<WriteLZCNT, [PdEX01], 2, [], 2>;
-defm : PdWriteResExPair<WriteTZCNT, [PdEX01], 2, [2], 2>;
+defm : PdWriteResExPair<WriteBSF, [PdEX01], 3, [6], 6, 2>;
+defm : PdWriteResExPair<WriteBSR, [PdEX01], 4, [8], 7, 2>;
+defm : PdWriteResExPair<WritePOPCNT, [PdEX01], 4, [4]>;
+defm : PdWriteResExPair<WriteLZCNT, [PdEX0], 2, [2], 2>;
+defm : PdWriteResExPair<WriteTZCNT, [PdEX0], 2, [2], 2>;
// BMI1 BEXTR, BMI2 BZHI
-defm : PdWriteResExPair<WriteBEXTR, [PdEX01], 2, [], 2>;
-defm : PdWriteResExPair<WriteBLS, [PdEX01], 2, [], 2>;
+defm : PdWriteResExPair<WriteBEXTR, [PdEX01], 2, [2], 2>;
+defm : PdWriteResExPair<WriteBLS, [PdEX01], 2, [2], 2>;
defm : PdWriteResExPair<WriteBZHI, [PdEX01]>;
+def PdWriteBEXTRI : SchedWriteRes<[PdEX01]> {
+ let Latency = 2;
+ let ResourceCycles = [4];
+ let NumMicroOps = 2;
+}
+def : InstRW<[PdWriteBEXTRI], (instrs BEXTRI32ri, BEXTRI64ri)>;
+
+def PdWriteBEXTRIm : SchedWriteRes<[PdEX01]> {
+ let Latency = 2;
+ let ResourceCycles = [5];
+ let NumMicroOps = 2;
+}
+def : InstRW<[PdWriteBEXTRIm], (instrs BEXTRI32mi, BEXTRI64mi)>;
+
////////////////////////////////////////////////////////////////////////////////
// Integer shifts and rotates.
////////////////////////////////////////////////////////////////////////////////
-defm : PdWriteResExPair<WriteShift, [PdEX01]>;
+defm : PdWriteResExPair<WriteShift, [PdEX01], 1, [2]>;
defm : PdWriteResExPair<WriteShiftCL, [PdEX01]>;
-defm : PdWriteResExPair<WriteRotate, [PdEX01]>;
+defm : PdWriteResExPair<WriteRotate, [PdEX01], 1, [2]>;
defm : PdWriteResExPair<WriteRotateCL, [PdEX01]>;
def PdWriteRCL8rCL : SchedWriteRes<[PdEX01]> {
let Latency = 12;
+ let ResourceCycles = [24];
let NumMicroOps = 26;
}
def : InstRW<[PdWriteRCL8rCL], (instrs RCL8rCL)>;
def PdWriteRCR8ri : SchedWriteRes<[PdEX01]> {
let Latency = 12;
+ let ResourceCycles = [23];
let NumMicroOps = 23;
}
def : InstRW<[PdWriteRCR8ri], (instrs RCR8ri)>;
def PdWriteRCR8rCL : SchedWriteRes<[PdEX01]> {
let Latency = 11;
+ let ResourceCycles = [22];
let NumMicroOps = 24;
}
def : InstRW<[PdWriteRCR8rCL], (instrs RCR8rCL)>;
def PdWriteRCL16rCL : SchedWriteRes<[PdEX01]> {
let Latency = 10;
+ let ResourceCycles = [20];
let NumMicroOps = 22;
}
def : InstRW<[PdWriteRCL16rCL], (instrs RCL16rCL)>;
def PdWriteRCR16ri : SchedWriteRes<[PdEX01]> {
let Latency = 10;
+ let ResourceCycles = [19];
let NumMicroOps = 19;
}
def : InstRW<[PdWriteRCR16ri], (instrs RCR16ri)>;
-def PdWriteRCL32rCL : SchedWriteRes<[PdEX01]> {
+def PdWriteRCL3264rCL : SchedWriteRes<[PdEX01]> {
let Latency = 7;
+ let ResourceCycles = [14];
let NumMicroOps = 17;
}
-def : InstRW<[PdWriteRCL32rCL], (instrs RCL32rCL)>;
-
-def PdWriteRCL64rCL : SchedWriteRes<[PdEX01]> {
- let Latency = 8;
- let NumMicroOps = 17;
-}
-def : InstRW<[PdWriteRCL64rCL], (instrs RCL64rCL)>;
-
-def PdWriteRCR64rCL : SchedWriteRes<[PdEX01]> {
- let Latency = 7;
- let NumMicroOps = 16;
-}
-def : InstRW<[PdWriteRCR64rCL], (instrs RCR64rCL)>;
+def : InstRW<[PdWriteRCL3264rCL], (instrs RCL32rCL, RCL64rCL)>;
-def PdWriteRCR32rCL : SchedWriteRes<[PdEX01]> {
+def PdWriteRCR3264rCL : SchedWriteRes<[PdEX01]> {
let Latency = 7;
+ let ResourceCycles = [13];
let NumMicroOps = 16;
}
-def : InstRW<[PdWriteRCR32rCL ], (instrs RCR32rCL)>;
+def : InstRW<[PdWriteRCR3264rCL], (instrs RCR32rCL, RCR64rCL)>;
def PdWriteRCR32riRCR64ri : SchedWriteRes<[PdEX01]> {
let Latency = 7;
+ let ResourceCycles = [14];
let NumMicroOps = 15;
}
def : InstRW<[PdWriteRCR32riRCR64ri], (instrs RCR32ri, RCR64ri)>;
@@ -596,24 +642,28 @@ def : InstRW<[PdWriteRCR32riRCR64ri], (i
def PdWriteRCR16rCL : SchedWriteRes<[PdEX01]> {
let Latency = 9;
+ let ResourceCycles = [18];
let NumMicroOps = 20;
}
def : InstRW<[PdWriteRCR16rCL], (instrs RCR16rCL)>;
def PdWriteRCL16ri : SchedWriteRes<[PdEX01]> {
let Latency = 11;
+ let ResourceCycles = [21];
let NumMicroOps = 21;
}
def : InstRW<[PdWriteRCL16ri], (instrs RCL16ri)>;
def PdWriteRCL3264ri : SchedWriteRes<[PdEX01]> {
let Latency = 8;
+ let ResourceCycles = [15];
let NumMicroOps = 16;
}
def : InstRW<[PdWriteRCL3264ri], (instrs RCL32ri, RCL64ri)>;
def PdWriteRCL8ri : SchedWriteRes<[PdEX01]> {
let Latency = 13;
+ let ResourceCycles = [25];
let NumMicroOps = 25;
}
def : InstRW<[PdWriteRCL8ri], (instrs RCL8ri)>;
@@ -631,7 +681,7 @@ def : InstRW<[PdWriteSHLD32rri8SHRD16rri
def PdWriteSHLD16rrCLSHLD32rrCLSHRD32rrCL : SchedWriteRes<[PdEX01]> {
let Latency = 3;
- let ResourceCycles = [8];
+ let ResourceCycles = [6];
let NumMicroOps = 7;
}
def : InstRW<[PdWriteSHLD16rrCLSHLD32rrCLSHRD32rrCL], (instrs SHLD16rrCL,
@@ -649,19 +699,20 @@ defm : PdWriteRes<WriteFLD0,
defm : PdWriteRes<WriteFLD1, [PdFPU1, PdFPSTO], 3>;
defm : PdWriteRes<WriteFLDC, [PdFPU1, PdFPSTO], 3>;
-defm : PdWriteRes<WriteFLoad, [PdLoad, PdFPU01, PdFPFMA], 5>;
-defm : PdWriteRes<WriteFLoadX, [PdLoad, PdFPU01, PdFPFMA], 5>;
-defm : PdWriteRes<WriteFLoadY, [PdLoad, PdFPU01, PdFPFMA], 5, [], 2>;
-
-defm : PdWriteRes<WriteFMaskedLoad, [PdLoad, PdFPU01, PdFPFMA], 6, [1, 1, 2]>;
-defm : PdWriteRes<WriteFMaskedLoadY, [PdLoad, PdFPU01, PdFPFMA], 6, [2, 2, 4], 2>;
-
-defm : PdWriteRes<WriteFStore, [PdStore, PdFPU1, PdFPSTO], 2>;
-defm : PdWriteRes<WriteFStoreX, [PdStore, PdFPU1, PdFPSTO]>;
-defm : PdWriteRes<WriteFStoreY, [PdStore, PdFPU1, PdFPSTO], 1, [], 4>;
+defm : PdWriteRes<WriteFLoad, [PdLoad, PdFPU01, PdFPFMA], 5, [3, 1, 3]>;
+defm : PdWriteRes<WriteFLoadX, [PdLoad, PdFPU01, PdFPFMA], 5, [3, 1, 3]>;
+defm : PdWriteRes<WriteFLoadY, [PdLoad, PdFPU01, PdFPFMA], 5, [3, 1, 3], 2>;
+
+defm : PdWriteRes<WriteFMaskedLoad, [PdLoad, PdFPU01, PdFPFMA], 6, [3, 1, 4]>;
+defm : PdWriteRes<WriteFMaskedLoadY, [PdLoad, PdFPU01, PdFPFMA], 6, [3, 2, 4], 2>;
+
+defm : PdWriteRes<WriteFStore, [PdStore, PdFPU23, PdFPSTO], 2, [1, 3, 1]>;
+defm : PdWriteRes<WriteFStoreX, [PdStore, PdFPU23, PdFPSTO], 1, [1, 3, 1]>;
+defm : PdWriteRes<WriteFStoreY, [PdStore, PdFPU23, PdFPSTO], 1, [1, 36, 2], 4>;
-def PdWriteMOVHPm : SchedWriteRes<[PdStore, PdFPU1, PdFPSTO]> {
+def PdWriteMOVHPm : SchedWriteRes<[PdStore, PdFPU23, PdFPSTO]> {
let Latency = 2;
+ let ResourceCycles = [1, 3, 1];
let NumMicroOps = 2;
}
def : InstRW<[PdWriteMOVHPm], (instrs MOVHPDmr, MOVHPSmr, VMOVHPDmr, VMOVHPSmr)>;
@@ -675,33 +726,41 @@ defm : PdWriteRes<WriteFStoreNT,
defm : PdWriteRes<WriteFStoreNTX, [PdStore, PdFPU1, PdFPSTO], 3>;
defm : PdWriteRes<WriteFStoreNTY, [PdStore, PdFPU1, PdFPSTO], 3, [2, 2, 2], 4>;
-defm : PdWriteRes<WriteFMaskedStore, [PdStore, PdFPU01, PdFPFMA], 6, [1, 1, 4], 18>;
-defm : PdWriteRes<WriteFMaskedStoreY, [PdStore, PdFPU01, PdFPFMA], 6, [2, 2, 4], 34>;
+defm : PdWriteRes<WriteFMaskedStore, [PdStore, PdFPU01, PdFPFMA], 6, [1, 1, 188], 18>;
+defm : PdWriteRes<WriteFMaskedStoreY, [PdStore, PdFPU01, PdFPFMA], 6, [2, 2, 376], 34>;
defm : PdWriteRes<WriteFMove, [PdFPU01, PdFPFMA]>;
-defm : PdWriteRes<WriteFMoveX, [PdFPU01, PdFPFMA]>;
+defm : PdWriteRes<WriteFMoveX, [PdFPU01, PdFPFMA], 1, [1, 2]>;
defm : PdWriteRes<WriteFMoveY, [PdFPU01, PdFPFMA], 2, [2, 2], 2>;
defm : PdWriteRes<WriteEMMS, [PdFPU01, PdFPFMA], 2>;
defm : PdWriteResXMMPair<WriteFAdd, [PdFPU0, PdFPFMA], 5>;
defm : PdWriteResXMMPair<WriteFAddX, [PdFPU0, PdFPFMA], 5>;
-defm : PdWriteResYMMPair<WriteFAddY, [PdFPU0, PdFPFMA], 5, [2, 1]>;
+defm : PdWriteResYMMPair<WriteFAddY, [PdFPU0, PdFPFMA], 5, [1, 2]>;
defm : X86WriteResPairUnsupported<WriteFAddZ>;
+def PdWriteX87Add: SchedWriteRes<[PdLoad, PdFPU0, PdFPFMA]> {
+ let Latency = 5;
+ let ResourceCycles = [3, 1, 10];
+}
+def : InstRW<[PdWriteX87Add], (instrs ADD_FI16m, ADD_FI32m, ADD_F32m, ADD_F64m,
+ SUB_FI16m, SUB_FI32m, SUB_F32m, SUB_F64m,
+ SUBR_FI16m, SUBR_FI32m, SUBR_F32m, SUBR_F64m)>;
+
defm : PdWriteResXMMPair<WriteFAdd64, [PdFPU0, PdFPFMA], 5>;
defm : PdWriteResXMMPair<WriteFAdd64X, [PdFPU0, PdFPFMA], 5>;
-defm : PdWriteResYMMPair<WriteFAdd64Y, [PdFPU0, PdFPFMA], 5, [2, 1]>;
+defm : PdWriteResYMMPair<WriteFAdd64Y, [PdFPU0, PdFPFMA], 5, [1, 2]>;
defm : X86WriteResPairUnsupported<WriteFAdd64Z>;
defm : PdWriteResXMMPair<WriteFCmp, [PdFPU0, PdFPFMA], 2>;
defm : PdWriteResXMMPair<WriteFCmpX, [PdFPU0, PdFPFMA], 2>;
-defm : PdWriteResYMMPair<WriteFCmpY, [PdFPU0, PdFPFMA], 2, [2, 1]>;
+defm : PdWriteResYMMPair<WriteFCmpY, [PdFPU0, PdFPFMA], 2, [1, 2]>;
defm : X86WriteResPairUnsupported<WriteFCmpZ>;
defm : PdWriteResXMMPair<WriteFCmp64, [PdFPU0, PdFPFMA], 2>;
defm : PdWriteResXMMPair<WriteFCmp64X, [PdFPU0, PdFPFMA], 2>;
-defm : PdWriteResYMMPair<WriteFCmp64Y, [PdFPU0, PdFPFMA], 2, [2, 1]>;
+defm : PdWriteResYMMPair<WriteFCmp64Y, [PdFPU0, PdFPFMA], 2, [1, 2]>;
defm : X86WriteResPairUnsupported<WriteFCmp64Z>;
defm : PdWriteResXMMPair<WriteFCom, [PdFPU0, PdFPFMA, PdEX0], 1, [], 2>;
@@ -716,29 +775,35 @@ def : InstRW<[PdWriteTST_F_UCOM_FPPr], (
defm : PdWriteResXMMPair<WriteFMul, [PdFPU1, PdFPFMA], 5>;
defm : PdWriteResXMMPair<WriteFMulX, [PdFPU1, PdFPFMA], 5>;
-defm : PdWriteResYMMPair<WriteFMulY, [PdFPU1, PdFPFMA], 5, [2, 1]>;
+defm : PdWriteResYMMPair<WriteFMulY, [PdFPU1, PdFPFMA], 5, [1, 2]>;
defm : X86WriteResPairUnsupported<WriteFMulZ>;
+def PdWriteX87Mul: SchedWriteRes<[PdLoad, PdFPU1, PdFPFMA]> {
+ let Latency = 5;
+ let ResourceCycles = [3, 1, 10];
+}
+def : InstRW<[PdWriteX87Mul], (instrs MUL_FI16m, MUL_FI32m, MUL_F32m, MUL_F64m)>;
+
defm : PdWriteResXMMPair<WriteFMul64, [PdFPU1, PdFPFMA], 5>;
defm : PdWriteResXMMPair<WriteFMul64X, [PdFPU1, PdFPFMA], 5>;
-defm : PdWriteResYMMPair<WriteFMul64Y, [PdFPU1, PdFPFMA], 5, [2, 1]>;
+defm : PdWriteResYMMPair<WriteFMul64Y, [PdFPU1, PdFPFMA], 5, [1, 2]>;
defm : X86WriteResPairUnsupported<WriteFMul64Z>;
-defm : PdWriteResXMMPair<WriteFMA, [PdFPU, PdFPFMA], 5>;
-defm : PdWriteResXMMPair<WriteFMAX, [PdFPU, PdFPFMA], 5>;
-defm : PdWriteResYMMPair<WriteFMAY, [PdFPU, PdFPFMA], 5>;
+defm : PdWriteResXMMPair<WriteFMA, [PdFPU, PdFPFMA], 5, [1, 3]>;
+defm : PdWriteResXMMPair<WriteFMAX, [PdFPU, PdFPFMA], 5, [1, 3]>;
+defm : PdWriteResYMMPair<WriteFMAY, [PdFPU, PdFPFMA], 5, [1, 3]>;
defm : X86WriteResPairUnsupported<WriteFMAZ>;
-defm : PdWriteResXMMPair<WriteDPPD, [PdFPU1, PdFPFMA], 15, [1, 3], 15, 2>;
+defm : PdWriteResXMMPair<WriteDPPD, [PdFPU1, PdFPFMA], 15, [1, 10], 15, 2>;
-defm : PdWriteResXMMPair<WriteDPPS, [PdFPU1, PdFPFMA], 25, [1, 3], 16, 2>;
-defm : PdWriteResYMMPair<WriteDPPSY, [PdFPU1, PdFPFMA], 27, [2, 6], /*or 29*/ 25, 4>;
+defm : PdWriteResXMMPair<WriteDPPS, [PdFPU1, PdFPFMA], 25, [1, 14], 16, 2>;
+defm : PdWriteResYMMPair<WriteDPPSY, [PdFPU1, PdFPFMA], 27, [2, 25], /*or 29*/ 25, 4>;
defm : X86WriteResPairUnsupported<WriteDPPSZ>;
def PdWriteVDPPSrri : SchedWriteRes<[PdFPU1, PdFPFMA]> {
let Latency = 27;
- let ResourceCycles = [1, 3];
+ let ResourceCycles = [1, 14];
let NumMicroOps = 17;
}
def : InstRW<[PdWriteVDPPSrri], (instrs VDPPSrri)>;
@@ -748,118 +813,140 @@ defm : PdWriteResXMMPair<WriteFRcpX,
defm : PdWriteResYMMPair<WriteFRcpY, [PdFPU1, PdFPFMA], 5, [2, 1]>;
defm : X86WriteResPairUnsupported<WriteFRcpZ>;
-defm : PdWriteResXMMPair<WriteFRsqrt, [PdFPU1, PdFPFMA], 5>;
+defm : PdWriteResXMMPair<WriteFRsqrt, [PdFPU1, PdFPFMA], 5, [1, 2]>;
defm : PdWriteResXMMPair<WriteFRsqrtX, [PdFPU1, PdFPFMA], 5>;
-defm : PdWriteResYMMPair<WriteFRsqrtY, [PdFPU1, PdFPFMA], 5, [2, 1]>;
+defm : PdWriteResYMMPair<WriteFRsqrtY, [PdFPU1, PdFPFMA], 5, [2, 2]>;
defm : X86WriteResPairUnsupported<WriteFRsqrtZ>;
-defm : PdWriteResXMMPair<WriteFDiv, [PdFPU1, PdFPFMA], 9, [1, 19]>;
-defm : PdWriteResXMMPair<WriteFDivX, [PdFPU1, PdFPFMA], 9, [1, 19]>;
-defm : PdWriteResYMMPair<WriteFDivY, [PdFPU1, PdFPFMA], 9, [2, 38]>;
+defm : PdWriteResXMMPair<WriteFDiv, [PdFPU1, PdFPFMA], 9, [1, 9]>;
+defm : PdWriteResXMMPair<WriteFDivX, [PdFPU1, PdFPFMA], 9, [1, 9]>;
+defm : PdWriteResYMMPair<WriteFDivY, [PdFPU1, PdFPFMA], 9, [2, 18]>;
defm : X86WriteResPairUnsupported<WriteFDivZ>;
-defm : PdWriteResXMMPair<WriteFDiv64, [PdFPU1, PdFPFMA], 9, [1, 19]>;
-defm : PdWriteResXMMPair<WriteFDiv64X, [PdFPU1, PdFPFMA], 9, [1, 19]>;
-defm : PdWriteResYMMPair<WriteFDiv64Y, [PdFPU1, PdFPFMA], 9, [2, 38]>;
+def PdWriteX87Div: SchedWriteRes<[PdLoad, PdFPU0, PdFPFMA]> {
+ let Latency = 9;
+ let ResourceCycles = [3, 1, 18];
+}
+def : InstRW<[PdWriteX87Div], (instrs DIV_FI16m, DIV_FI32m,
+ DIVR_FI16m, DIVR_FI32m,
+ DIV_F32m, DIV_F64m,
+ DIVR_F32m, DIVR_F64m)>;
+
+defm : PdWriteResXMMPair<WriteFDiv64, [PdFPU1, PdFPFMA], 9, [1, 9]>;
+defm : PdWriteResXMMPair<WriteFDiv64X, [PdFPU1, PdFPFMA], 9, [1, 9]>;
+defm : PdWriteResYMMPair<WriteFDiv64Y, [PdFPU1, PdFPFMA], 9, [2, 18]>;
defm : X86WriteResPairUnsupported<WriteFDiv64Z>;
-defm : PdWriteResXMMPair<WriteFSqrt, [PdFPU1, PdFPFMA], 9, [1, 21]>;
-defm : PdWriteResXMMPair<WriteFSqrtX, [PdFPU1, PdFPFMA], 9, [1, 21]>;
-defm : PdWriteResYMMPair<WriteFSqrtY, [PdFPU1, PdFPFMA], 9, [2, 42]>;
+defm : PdWriteResXMMPair<WriteFSqrt, [PdFPU1, PdFPFMA], 9, [1, 9]>;
+defm : PdWriteResXMMPair<WriteFSqrtX, [PdFPU1, PdFPFMA], 9, [1, 9]>;
+defm : PdWriteResYMMPair<WriteFSqrtY, [PdFPU1, PdFPFMA], 9, [2, 18]>;
defm : X86WriteResPairUnsupported<WriteFSqrtZ>;
-defm : PdWriteResXMMPair<WriteFSqrt64, [PdFPU1, PdFPFMA], 9, [1, 27]>;
-defm : PdWriteResXMMPair<WriteFSqrt64X, [PdFPU1, PdFPFMA], 9, [1, 27]>;
-defm : PdWriteResYMMPair<WriteFSqrt64Y, [PdFPU1, PdFPFMA], 9, [2, 54]>;
+defm : PdWriteResXMMPair<WriteFSqrt64, [PdFPU1, PdFPFMA], 9, [1, 9]>;
+defm : PdWriteResXMMPair<WriteFSqrt64X, [PdFPU1, PdFPFMA], 9, [1, 9]>;
+defm : PdWriteResYMMPair<WriteFSqrt64Y, [PdFPU1, PdFPFMA], 9, [2, 18]>;
defm : X86WriteResPairUnsupported<WriteFSqrt64Z>;
-defm : PdWriteResXMMPair<WriteFSqrt80, [PdFPU1, PdFPFMA], 1, [1, 35]>;
-defm : PdWriteResXMMPair<WriteFSign, [PdFPU1, PdFPFMA]>;
+defm : PdWriteResXMMPair<WriteFSqrt80, [PdFPU1, PdFPFMA], 1, [1, 18]>;
+defm : PdWriteResXMMPair<WriteFSign, [PdFPU1, PdFPFMA], 1, [1, 4]>;
-defm : PdWriteResXMMPair<WriteFRnd, [PdFPU1, PdFPSTO], 4>;
+defm : PdWriteResXMMPair<WriteFRnd, [PdFPU1, PdFPSTO], 4, []>;
defm : PdWriteResYMMPair<WriteFRndY, [PdFPU1, PdFPSTO], 4, [2, 1], 2>;
defm : X86WriteResPairUnsupported<WriteFRndZ>;
-def PdWriteVFRCZ : SchedWriteRes<[PdFPU1, PdFPSTO]> {
+def PdWriteVFRCZP : SchedWriteRes<[PdFPU1, PdFPSTO]> {
let Latency = 10;
+ let ResourceCycles = [2, 1];
let NumMicroOps = 2;
}
-def : InstRW<[PdWriteVFRCZ], (instrs VFRCZPDrr, VFRCZPSrr,
- VFRCZSDrr, VFRCZSSrr)>;
+def : InstRW<[PdWriteVFRCZP], (instrs VFRCZPDrr, VFRCZPSrr)>;
+
+def PdWriteVFRCZS : SchedWriteRes<[PdFPU1, PdFPSTO]> {
+ let Latency = 10;
+ let ResourceCycles = [10, 1];
+ let NumMicroOps = 2;
+}
+def : InstRW<[PdWriteVFRCZS], (instrs VFRCZSDrr, VFRCZSSrr)>;
def PdWriteVFRCZm : SchedWriteRes<[PdFPU1, PdFPSTO]> {
let Latency = 15;
- let NumMicroOps = 2;
+ let ResourceCycles = [2, 1];
+ let NumMicroOps = 3;
}
def : InstRW<[PdWriteVFRCZm], (instrs VFRCZPDrm, VFRCZPSrm,
VFRCZSDrm, VFRCZSSrm)>;
def PdWriteVFRCZY : SchedWriteRes<[PdFPU1, PdFPSTO]> {
let Latency = 10;
- let ResourceCycles = [2, 1];
+ let ResourceCycles = [3, 1];
let NumMicroOps = 4;
}
def : InstRW<[PdWriteVFRCZY], (instrs VFRCZPSYrr, VFRCZPDYrr)>;
def PdWriteVFRCZYm : SchedWriteRes<[PdFPU1, PdFPSTO]> {
let Latency = 15;
- let ResourceCycles = [2, 1];
+ let ResourceCycles = [4, 1];
let NumMicroOps = 8;
}
def : InstRW<[PdWriteVFRCZYm], (instrs VFRCZPSYrm, VFRCZPDYrm)>;
-defm : PdWriteResXMMPair<WriteFLogic, [PdFPU01, PdFPFMA], 2>;
+defm : PdWriteResXMMPair<WriteFLogic, [PdFPU01, PdFPFMA], 2, [1, 2]>;
defm : PdWriteResYMMPair<WriteFLogicY, [PdFPU01, PdFPFMA], 2, [2, 2]>;
defm : X86WriteResPairUnsupported<WriteFLogicZ>;
defm : PdWriteResXMMPair<WriteFTest, [PdFPU0, PdFPFMA, PdEX0], 1, [], 2>;
-defm : PdWriteResYMMPair<WriteFTestY, [PdFPU01, PdFPFMA, PdEX0], 1, [2, 2, 1], 4, 2>;
+defm : PdWriteResYMMPair<WriteFTestY, [PdFPU01, PdFPFMA, PdEX0], 1, [4, 4, 1], 4, 2>;
defm : X86WriteResPairUnsupported<WriteFTestZ>;
-defm : PdWriteResXMMPair<WriteFShuffle, [PdFPU01, PdFPFMA], 2>;
-defm : PdWriteResYMMPair<WriteFShuffleY, [PdFPU01, PdFPFMA], 2, [2, 2], 2>;
+defm : PdWriteResXMMPair<WriteFShuffle, [PdFPU01, PdFPFMA], 2, [1, 2]>;
+defm : PdWriteResYMMPair<WriteFShuffleY, [PdFPU01, PdFPFMA], 2, [2, 4], 2>;
defm : X86WriteResPairUnsupported<WriteFShuffleZ>;
def PdWriteVBROADCASTF128 : SchedWriteRes<[PdFPU01, PdFPFMA]> {
let Latency = 7;
+ let ResourceCycles = [1, 3];
let NumMicroOps = 2;
}
def : InstRW<[PdWriteVBROADCASTF128], (instrs VBROADCASTF128)>;
-defm : PdWriteResXMMPair<WriteFVarShuffle, [PdFPU01, PdFPFMA], 3, [1, 4]>;
-defm : PdWriteResYMMPair<WriteFVarShuffleY, [PdFPU01, PdFPFMA], 3, [2, 6], 2>;
+defm : PdWriteResXMMPair<WriteFVarShuffle, [PdFPU01, PdFPFMA], 3, [1, 2]>;
+defm : PdWriteResYMMPair<WriteFVarShuffleY, [PdFPU01, PdFPFMA], 3, [2, 4], 2>;
defm : X86WriteResPairUnsupported<WriteFVarShuffleZ>;
-defm : PdWriteResXMMPair<WriteFBlend, [PdFPU01, PdFPFMA], 2>;
-defm : PdWriteResYMMPair<WriteFBlendY, [PdFPU01, PdFPFMA], 2, [2, 2], 2>;
+defm : PdWriteResXMMPair<WriteFBlend, [PdFPU01, PdFPFMA], 2, [1, 3]>;
+defm : PdWriteResYMMPair<WriteFBlendY, [PdFPU01, PdFPFMA], 2, [2, 3], 2>;
defm : X86WriteResPairUnsupported<WriteFBlendZ>;
-defm : PdWriteResXMMPair<WriteFVarBlend, [PdFPU01, PdFPFMA], 2, [1, 4]>;
-defm : PdWriteResYMMPair<WriteFVarBlendY, [PdFPU01, PdFPFMA], 2, [2, 6], 2>;
+defm : PdWriteResXMMPair<WriteFVarBlend, [PdFPU01, PdFPFMA], 2, [1, 3]>;
+defm : PdWriteResYMMPair<WriteFVarBlendY, [PdFPU01, PdFPFMA], 2, [2, 4], 2>;
defm : X86WriteResPairUnsupported<WriteFVarBlendZ>;
-defm : PdWriteResXMMPair<WriteFShuffle256, [PdFPU01, PdFPFMA], 2, [], 2>;
+defm : PdWriteResXMMPair<WriteFShuffle256, [PdFPU01, PdFPFMA], 2, [1, 3], 2>;
defm : X86WriteResPairUnsupported<WriteFVarShuffle256>;
def PdWriteVEXTRACTF128rr : SchedWriteRes<[PdFPU01, PdFPFMA]> {
let Latency = 2;
+ let ResourceCycles = [1, 2];
}
def : InstRW<[PdWriteVEXTRACTF128rr], (instrs VEXTRACTF128rr)>;
def PdWriteVEXTRACTF128mr : SchedWriteRes<[PdFPU01, PdFPFMA]> {
let Latency = 7;
+ let ResourceCycles = [1, 4];
let NumMicroOps = 2;
}
def : InstRW<[PdWriteVEXTRACTF128mr], (instrs VEXTRACTF128mr)>;
def PdWriteVPERM2F128rr : SchedWriteRes<[PdFPU01, PdFPFMA]> {
let Latency = 4;
+ let ResourceCycles = [1, 6];
let NumMicroOps = 8;
}
def : InstRW<[PdWriteVPERM2F128rr], (instrs VPERM2F128rr)>;
def PdWriteVPERM2F128rm : SchedWriteRes<[PdFPU01, PdFPFMA]> {
let Latency = 8; // 4 + 4
+ let ResourceCycles = [1, 8];
let NumMicroOps = 10;
}
def : InstRW<[PdWriteVPERM2F128rm], (instrs VPERM2F128rm)>;
@@ -868,100 +955,100 @@ def : InstRW<[PdWriteVPERM2F128rm], (ins
// Conversions.
////////////////////////////////////////////////////////////////////////////////
-defm : PdWriteResXMMPair<WriteCvtSS2I, [PdFPU1, PdFPSTO, PdFPFMA, PdEX0], 13, [], 2>;
+defm : PdWriteResXMMPair<WriteCvtSS2I, [PdFPU0, PdFPCVT, PdFPSTO, PdFPFMA, PdEX0], 13, [], 2>;
-defm : PdWriteResXMMPair<WriteCvtPS2I, [PdFPU1, PdFPSTO], 4>;
-defm : PdWriteResYMMPair<WriteCvtPS2IY, [PdFPU1, PdFPSTO], 4, [2, 1]>;
+defm : PdWriteResXMMPair<WriteCvtPS2I, [PdFPU0, PdFPCVT, PdFPSTO], 4>;
+defm : PdWriteResYMMPair<WriteCvtPS2IY, [PdFPU0, PdFPCVT, PdFPSTO], 4, [1, 2, 1]>;
defm : X86WriteResPairUnsupported<WriteCvtPS2IZ>;
-defm : PdWriteResXMMPair<WriteCvtSD2I, [PdFPU1, PdFPSTO, PdFPFMA, PdEX0], 13, [], 2>;
+defm : PdWriteResXMMPair<WriteCvtSD2I, [PdFPU0, PdFPCVT, PdFPSTO, PdFPFMA, PdEX0], 13, [], 2>;
-defm : PdWriteResXMMPair<WriteCvtPD2I, [PdFPU1, PdFPSTO], 8, [], 2>;
-defm : PdWriteResYMMPair<WriteCvtPD2IY, [PdFPU1, PdFPSTO, PdFPFMA], 8, [2, 1, 1], 4>;
+defm : PdWriteResXMMPair<WriteCvtPD2I, [PdFPU0, PdFPCVT, PdFPSTO], 8, [], 2>;
+defm : PdWriteResYMMPair<WriteCvtPD2IY, [PdFPU0, PdFPCVT, PdFPSTO, PdFPFMA], 8, [1, 2, 1, 1], 4>;
defm : X86WriteResPairUnsupported<WriteCvtPD2IZ>;
-def PdWriteMMX_CVTTPD2PIirr : SchedWriteRes<[PdFPU1, PdFPSTO]> {
+def PdWriteMMX_CVTTPD2PIirr : SchedWriteRes<[PdFPU0, PdFPCVT, PdFPSTO]> {
let Latency = 6;
let NumMicroOps = 2;
}
def : InstRW<[PdWriteMMX_CVTTPD2PIirr], (instrs MMX_CVTTPD2PIirr)>;
// FIXME: f+3 ST, LD+STC latency
-defm : PdWriteResXMMPair<WriteCvtI2SS, [PdFPU1, PdFPSTO], 4, [], 2>;
+defm : PdWriteResXMMPair<WriteCvtI2SS, [PdFPU0, PdFPCVT, PdFPSTO], 4, [], 2>;
// FIXME: .Folded version is one NumMicroOp *less*..
-defm : PdWriteResXMMPair<WriteCvtI2PS, [PdFPU1, PdFPSTO], 4>;
-defm : PdWriteResYMMPair<WriteCvtI2PSY, [PdFPU1, PdFPSTO], 4, [2, 1]>;
+defm : PdWriteResXMMPair<WriteCvtI2PS, [PdFPU0, PdFPCVT, PdFPSTO], 4>;
+defm : PdWriteResYMMPair<WriteCvtI2PSY, [PdFPU0, PdFPCVT, PdFPSTO], 4, [1, 2, 1]>;
defm : X86WriteResPairUnsupported<WriteCvtI2PSZ>;
-defm : PdWriteResXMMPair<WriteCvtI2SD, [PdFPU1, PdFPSTO], 4, [], 2>;
+defm : PdWriteResXMMPair<WriteCvtI2SD, [PdFPU0, PdFPCVT, PdFPSTO], 4, [], 2>;
// FIXME: .Folded version is one NumMicroOp *less*..
-def PdWriteCVTSI642SDrr_CVTSI642SSrr_CVTSI2SDr_CVTSI2SSrr : SchedWriteRes<[PdFPU1, PdFPSTO]> {
+def PdWriteCVTSI642SDrr_CVTSI642SSrr_CVTSI2SDr_CVTSI2SSrr : SchedWriteRes<[PdFPU0, PdFPCVT, PdFPSTO]> {
let Latency = 13;
+ let ResourceCycles = [1, 3, 1];
let NumMicroOps = 2;
}
-def : InstRW<[PdWriteCVTSI642SDrr_CVTSI642SSrr_CVTSI2SDr_CVTSI2SSrr], (instrs CVTSI642SDrr, CVTSI642SSrr, CVTSI2SDrr, CVTSI2SSrr,
- CVTSI642SDrr_Int, CVTSI642SSrr_Int, CVTSI2SDrr_Int, CVTSI2SSrr_Int)>;
+def : InstRW<[PdWriteCVTSI642SDrr_CVTSI642SSrr_CVTSI2SDr_CVTSI2SSrr], (instrs CVTSI642SDrr, CVTSI642SSrr, CVTSI2SDrr, CVTSI2SSrr)>;
-defm : PdWriteResXMMPair<WriteCvtI2PD, [PdFPU1, PdFPSTO], 8, [], 2>;
-defm : PdWriteResYMMPair<WriteCvtI2PDY, [PdFPU1, PdFPSTO], 8, [2, 1], 4, 1>;
+defm : PdWriteResXMMPair<WriteCvtI2PD, [PdFPU0, PdFPCVT, PdFPSTO], 8, [], 2>;
+defm : PdWriteResYMMPair<WriteCvtI2PDY, [PdFPU0, PdFPCVT, PdFPSTO], 8, [1, 2, 1], 4, 1>;
defm : X86WriteResPairUnsupported<WriteCvtI2PDZ>;
-defm : PdWriteResXMMPair<WriteCvtSS2SD, [PdFPU1, PdFPSTO], 4>;
+defm : PdWriteResXMMPair<WriteCvtSS2SD, [PdFPU0, PdFPCVT, PdFPSTO], 4, [1, 2, 1]>;
-defm : PdWriteResXMMPair<WriteCvtPS2PD, [PdFPU1, PdFPSTO], 8, [], 2>;
-defm : PdWriteResYMMPair<WriteCvtPS2PDY, [PdFPU1, PdFPSTO], 8, [2, 1], 4, 1>;
+defm : PdWriteResXMMPair<WriteCvtPS2PD, [PdFPU0, PdFPCVT, PdFPSTO], 8, [], 2>;
+defm : PdWriteResYMMPair<WriteCvtPS2PDY, [PdFPU0, PdFPCVT, PdFPSTO], 8, [1, 2, 1], 4, 1>;
defm : X86WriteResPairUnsupported<WriteCvtPS2PDZ>;
-defm : PdWriteResXMMPair<WriteCvtSD2SS, [PdFPU1, PdFPSTO], 4>;
+defm : PdWriteResXMMPair<WriteCvtSD2SS, [PdFPU0, PdFPCVT, PdFPSTO], 4, [1, 2, 1]>;
-defm : PdWriteResXMMPair<WriteCvtPD2PS, [PdFPU1, PdFPSTO], 8, [], 2>;
-defm : PdWriteResYMMPair<WriteCvtPD2PSY, [PdFPU1, PdFPSTO, PdFPFMA], 8, [2, 1, 1], 4>;
+defm : PdWriteResXMMPair<WriteCvtPD2PS, [PdFPU0, PdFPCVT, PdFPSTO], 8, [], 2>;
+defm : PdWriteResYMMPair<WriteCvtPD2PSY, [PdFPU0, PdFPCVT, PdFPSTO, PdFPFMA], 8, [1, 2, 1, 1], 4>;
defm : X86WriteResPairUnsupported<WriteCvtPD2PSZ>;
-def WriteMMX_CVTPD2PIirrMMX_CVTPI2PDirr : SchedWriteRes<[PdFPU1, PdFPSTO]> {
+def PdWriteMMX_CVTPD2PIirrMMX_CVTPI2PDirr : SchedWriteRes<[PdFPU0, PdFPCVT, PdFPSTO]> {
let Latency = 6;
let NumMicroOps = 2;
}
-def : InstRW<[WriteMMX_CVTPD2PIirrMMX_CVTPI2PDirr], (instrs MMX_CVTPD2PIirr,
+def : InstRW<[PdWriteMMX_CVTPD2PIirrMMX_CVTPI2PDirr], (instrs MMX_CVTPD2PIirr,
MMX_CVTPI2PDirr)>;
-def WriteMMX_CVTPI2PSirr : SchedWriteRes<[PdFPU1, PdFPSTO]> {
+def PdWriteMMX_CVTPI2PSirr : SchedWriteRes<[PdFPU0, PdFPCVT, PdFPSTO]> {
let Latency = 4;
let NumMicroOps = 2;
}
-def : InstRW<[WriteMMX_CVTPI2PSirr], (instrs MMX_CVTPI2PSirr)>;
+def : InstRW<[PdWriteMMX_CVTPI2PSirr], (instrs MMX_CVTPI2PSirr)>;
-defm : PdWriteResXMMPair<WriteCvtPH2PS, [PdFPU1, PdFPSTO], 8, [], 2, 1>;
-defm : PdWriteResYMMPair<WriteCvtPH2PSY, [PdFPU1, PdFPSTO], 8, [2, 1], 4, 3>;
+defm : PdWriteResXMMPair<WriteCvtPH2PS, [PdFPU0, PdFPCVT, PdFPSTO], 8, [1, 2, 1], 2, 1>;
+defm : PdWriteResYMMPair<WriteCvtPH2PSY, [PdFPU0, PdFPCVT, PdFPSTO], 8, [1, 2, 1], 4, 3>;
defm : X86WriteResPairUnsupported<WriteCvtPH2PSZ>;
-defm : PdWriteRes<WriteCvtPS2PH, [PdFPU1, PdFPSTO], 8, [], 2>;
-defm : PdWriteRes<WriteCvtPS2PHY, [PdFPU1, PdFPSTO, PdFPFMA], 8, [2, 1, 1], 4>;
+defm : PdWriteRes<WriteCvtPS2PH, [PdFPU0, PdFPCVT, PdFPSTO], 8, [1, 2, 1], 2>;
+defm : PdWriteRes<WriteCvtPS2PHY, [PdFPU0, PdFPCVT, PdFPSTO, PdFPFMA], 8, [1, 2, 1, 1], 4>;
defm : X86WriteResUnsupported<WriteCvtPS2PHZ>;
-defm : PdWriteRes<WriteCvtPS2PHSt, [PdFPU1, PdFPSTO, PdStore], 4, [], 3>;
-defm : PdWriteRes<WriteCvtPS2PHYSt, [PdFPU1, PdFPSTO, PdFPFMA, PdStore], 4, [2, 1, 1, 1], 4>;
+defm : PdWriteRes<WriteCvtPS2PHSt, [PdFPU0, PdFPCVT, PdFPSTO, PdStore], 4, [1, 2, 1, 1], 3>;
+defm : PdWriteRes<WriteCvtPS2PHYSt, [PdFPU0, PdFPCVT, PdFPSTO, PdFPFMA, PdStore], 4, [1, 2, 1, 1, 1], 4>;
defm : X86WriteResUnsupported<WriteCvtPS2PHZSt>;
////////////////////////////////////////////////////////////////////////////////
// Vector integer operations.
////////////////////////////////////////////////////////////////////////////////
-defm : PdWriteRes<WriteVecLoad, [PdLoad, PdFPU01, PdFPMAL], 5>;
-defm : PdWriteRes<WriteVecLoadX, [PdLoad, PdFPU01, PdFPMAL], 5>;
-defm : PdWriteRes<WriteVecLoadY, [PdLoad, PdFPU01, PdFPMAL], 5, [], 2>;
-
-defm : PdWriteRes<WriteVecLoadNT, [PdLoad, PdFPU01, PdFPMAL], 5>;
-defm : PdWriteRes<WriteVecLoadNTY, [PdLoad, PdFPU01, PdFPMAL], 5>;
-
-defm : PdWriteRes<WriteVecMaskedLoad, [PdLoad, PdFPU01, PdFPMAL], 6, [1, 1, 2]>;
-defm : PdWriteRes<WriteVecMaskedLoadY, [PdLoad, PdFPU01, PdFPMAL], 6, [2, 2, 4], 2>;
-
-defm : PdWriteRes<WriteVecStore, [PdStore, PdFPU1, PdFPSTO], 2>;
-defm : PdWriteRes<WriteVecStoreX, [PdStore, PdFPU1, PdFPSTO]>;
-defm : PdWriteRes<WriteVecStoreY, [PdStore, PdFPU1, PdFPSTO], 1, [], 4>;
+defm : PdWriteRes<WriteVecLoad, [PdLoad, PdFPU01, PdFPMAL], 5, [3, 1, 3]>;
+defm : PdWriteRes<WriteVecLoadX, [PdLoad, PdFPU01, PdFPMAL], 5, [3, 1, 3]>;
+defm : PdWriteRes<WriteVecLoadY, [PdLoad, PdFPU01, PdFPMAL], 5, [3, 2, 3], 2>;
+
+defm : PdWriteRes<WriteVecLoadNT, [PdLoad, PdFPU01, PdFPMAL], 5, [3, 1, 4]>;
+defm : PdWriteRes<WriteVecLoadNTY, [PdLoad, PdFPU01, PdFPMAL], 5, [3, 2, 4]>;
+
+defm : PdWriteRes<WriteVecMaskedLoad, [PdLoad, PdFPU01, PdFPMAL], 6, [3, 1, 2]>;
+defm : PdWriteRes<WriteVecMaskedLoadY, [PdLoad, PdFPU01, PdFPMAL], 6, [3, 2, 4], 2>;
+
+defm : PdWriteRes<WriteVecStore, [PdStore, PdFPU23, PdFPSTO], 2, [1, 3, 1]>;
+defm : PdWriteRes<WriteVecStoreX, [PdStore, PdFPU23, PdFPSTO], 1, [1, 3, 1]>;
+defm : PdWriteRes<WriteVecStoreY, [PdStore, PdFPU23, PdFPSTO], 1, [2, 36, 2], 4>;
def PdWriteVMOVDQUYmr : SchedWriteRes<[PdStore, PdFPU1, PdFPSTO]> {
let NumMicroOps = 8;
@@ -975,7 +1062,7 @@ defm : PdWriteRes<WriteVecMaskedStore,
defm : PdWriteRes<WriteVecMaskedStoreY, [PdStore, PdFPU01, PdFPMAL], 6, [2, 2, 4], 2>;
defm : PdWriteRes<WriteVecMove, [PdFPU01, PdFPMAL], 2>;
-defm : PdWriteRes<WriteVecMoveX, [PdFPU01, PdFPMAL], 1>;
+defm : PdWriteRes<WriteVecMoveX, [PdFPU01, PdFPMAL], 1, [1, 2]>;
defm : PdWriteRes<WriteVecMoveY, [PdFPU01, PdFPMAL], 2, [2, 2], 2>;
def PdWriteMOVDQArr : SchedWriteRes<[PdFPU01, PdFPMAL]> {
@@ -988,20 +1075,20 @@ def PdWriteMOVQ2DQrr : SchedWriteRes<[Pd
def : InstRW<[PdWriteMOVQ2DQrr], (instrs MMX_MOVQ2DQrr)>;
defm : PdWriteRes<WriteVecMoveToGpr, [PdFPU0, PdFPFMA, PdEX0], 11>;
-defm : PdWriteRes<WriteVecMoveFromGpr, [PdFPU01, PdFPFMA], 11, [], 2>;
+defm : PdWriteRes<WriteVecMoveFromGpr, [PdFPU01, PdFPFMA], 11, [1, 2], 2>;
defm : PdWriteResXMMPair<WriteVecALU, [PdFPU01, PdFPMAL], 2>;
-defm : PdWriteResXMMPair<WriteVecALUX, [PdFPU01, PdFPMAL], 2>;
+defm : PdWriteResXMMPair<WriteVecALUX, [PdFPU01, PdFPMAL], 2, [1, 2]>;
defm : X86WriteResPairUnsupported<WriteVecALUY>;
defm : X86WriteResPairUnsupported<WriteVecALUZ>;
-defm : PdWriteResXMMPair<WriteVecShift, [PdFPU01, PdFPMAL], 3>;
-defm : PdWriteResXMMPair<WriteVecShiftX, [PdFPU01, PdFPMAL], 3>;
+defm : PdWriteResXMMPair<WriteVecShift, [PdFPU01, PdFPMAL], 3, [1, 2]>;
+defm : PdWriteResXMMPair<WriteVecShiftX, [PdFPU01, PdFPMAL], 3, [1, 2]>;
defm : X86WriteResPairUnsupported<WriteVecShiftY>;
defm : X86WriteResPairUnsupported<WriteVecShiftZ>;
-defm : PdWriteResXMMPair<WriteVecShiftImm, [PdFPU01, PdFPMAL], 2>;
-defm : PdWriteResXMMPair<WriteVecShiftImmX, [PdFPU01, PdFPMAL], 2>;
+defm : PdWriteResXMMPair<WriteVecShiftImm, [PdFPU01, PdFPMAL], 2, [1, 2]>;
+defm : PdWriteResXMMPair<WriteVecShiftImmX, [PdFPU01, PdFPMAL], 2, [1, 2]>;
defm : X86WriteResPairUnsupported<WriteVecShiftImmY>;
defm : X86WriteResPairUnsupported<WriteVecShiftImmZ>;
@@ -1014,44 +1101,43 @@ defm : PdWriteResXMMPair<WritePMULLD,
defm : X86WriteResPairUnsupported<WritePMULLDY>;
defm : X86WriteResPairUnsupported<WritePMULLDZ>;
-def PdWriteVPMACS : SchedWriteRes<[PdFPU0, PdFPU01, PdFPMMA, PdFPMAL]> {
+def PdWriteVPMACS : SchedWriteRes<[PdFPU0, PdFPMMA, PdFPMAL]> {
let Latency = 4;
- let ResourceCycles = [2, 1, 2, 1];
}
def : InstRW<[PdWriteVPMACS], (instrs VPMACSDQHrr, VPMACSDQLrr, VPMACSSDQHrr,
- VPMACSSDQLrr)>;
+ VPMACSSDQLrr)>;
-defm : PdWriteResXMMPair<WriteMPSAD, [PdFPU0, PdFPMMA], 9, [1, 2], 9>;
+defm : PdWriteResXMMPair<WriteMPSAD, [PdFPU0, PdFPMMA], 9, [1, 4], 8>;
defm : X86WriteResPairUnsupported<WriteMPSADY>;
defm : X86WriteResPairUnsupported<WriteMPSADZ>;
def PdWriteVMPSADBW : SchedWriteRes<[PdFPU0, PdFPMMA]> {
let Latency = 8;
- let ResourceCycles = [1, 2];
- let NumMicroOps = 9;
+ let ResourceCycles = [1, 4];
+ let NumMicroOps = 10;
}
def : InstRW<[PdWriteVMPSADBW], (instrs VMPSADBWrri)>;
-defm : PdWriteResXMMPair<WritePSADBW, [PdFPU01, PdFPMAL], 4, [], 2>;
-defm : PdWriteResXMMPair<WritePSADBWX, [PdFPU01, PdFPMAL], 4, [], 2>;
+defm : PdWriteResXMMPair<WritePSADBW, [PdFPU01, PdFPMAL], 4, [1, 2], 2>;
+defm : PdWriteResXMMPair<WritePSADBWX, [PdFPU01, PdFPMAL], 4, [1, 2], 2>;
defm : X86WriteResPairUnsupported<WritePSADBWY>;
defm : X86WriteResPairUnsupported<WritePSADBWZ>;
defm : PdWriteResXMMPair<WritePHMINPOS, [PdFPU0, PdFPMAL], 4, [], 2>;
-defm : PdWriteResXMMPair<WriteShuffle, [PdFPU01, PdFPMAL], 2>;
-defm : PdWriteResXMMPair<WriteShuffleX, [PdFPU01, PdFPMAL], 2>;
-defm : PdWriteResYMMPair<WriteShuffleY, [PdFPU01, PdFPMAL], 2>;
+defm : PdWriteResXMMPair<WriteShuffle, [PdFPU01, PdFPMAL], 2, [1, 2]>;
+defm : PdWriteResXMMPair<WriteShuffleX, [PdFPU01, PdFPMAL], 2, [1, 2]>;
+defm : PdWriteResYMMPair<WriteShuffleY, [PdFPU01, PdFPMAL], 2, [1, 4]>;
defm : X86WriteResPairUnsupported<WriteShuffleZ>;
-defm : PdWriteResXMMPair<WriteVarShuffle, [PdFPU01, PdFPMAL], 3, [1, 4]>;
-defm : PdWriteResXMMPair<WriteVarShuffleX, [PdFPU01, PdFPMAL], 3, [1, 4]>;
+defm : PdWriteResXMMPair<WriteVarShuffle, [PdFPU01, PdFPMAL], 3, [1, 2]>;
+defm : PdWriteResXMMPair<WriteVarShuffleX, [PdFPU01, PdFPMAL], 3, [1, 3]>;
defm : X86WriteResPairUnsupported<WriteVarShuffleY>;
defm : X86WriteResPairUnsupported<WriteVarShuffleZ>;
def PdWriteVPPERM : SchedWriteRes<[PdFPU01, PdFPMAL]> {
let Latency = 2;
- let ResourceCycles = [1, 4];
+ let ResourceCycles = [1, 3];
}
def : InstRW<[PdWriteVPPERM], (instrs VPPERMrrr, VPPERMrrr_REV)>;
@@ -1059,23 +1145,23 @@ defm : PdWriteResXMMPair<WriteBlend,
defm : X86WriteResPairUnsupported<WriteBlendY>;
defm : X86WriteResPairUnsupported<WriteBlendZ>;
-defm : PdWriteResXMMPair<WriteVarBlend, [PdFPU01, PdFPMAL], 2, [1, 4]>;
+defm : PdWriteResXMMPair<WriteVarBlend, [PdFPU01, PdFPMAL], 2, [1, 2]>;
defm : X86WriteResPairUnsupported<WriteVarBlendY>;
defm : X86WriteResPairUnsupported<WriteVarBlendZ>;
defm : PdWriteResXMMPair<WriteVecLogic, [PdFPU01, PdFPMAL], 2>;
-defm : PdWriteResXMMPair<WriteVecLogicX, [PdFPU01, PdFPMAL], 2>;
+defm : PdWriteResXMMPair<WriteVecLogicX, [PdFPU01, PdFPMAL], 2, [1, 2]>;
defm : X86WriteResPairUnsupported<WriteVecLogicY>;
defm : X86WriteResPairUnsupported<WriteVecLogicZ>;
defm : PdWriteResXMMPair<WriteVecTest, [PdFPU0, PdFPFMA, PdEX0], 1, [], 2>;
-defm : PdWriteResYMMPair<WriteVecTestY, [PdFPU01, PdFPFMA, PdEX0], 1, [2, 2, 1], 4, 2>;
+defm : PdWriteResYMMPair<WriteVecTestY, [PdFPU01, PdFPFMA, PdEX0], 1, [2, 4, 1], 4, 2>;
defm : X86WriteResPairUnsupported<WriteVecTestZ>;
defm : PdWriteResXMMPair<WriteShuffle256, [PdFPU01, PdFPMAL]>;
defm : PdWriteResXMMPair<WriteVarShuffle256, [PdFPU01, PdFPMAL]>;
-defm : PdWriteResXMMPair<WriteVarVecShift, [PdFPU01, PdFPMAL], 3>;
+defm : PdWriteResXMMPair<WriteVarVecShift, [PdFPU01, PdFPMAL], 3, [1, 2]>;
defm : X86WriteResPairUnsupported<WriteVarVecShiftY>;
defm : X86WriteResPairUnsupported<WriteVarVecShiftZ>;
@@ -1083,14 +1169,15 @@ defm : X86WriteResPairUnsupported<WriteV
// Vector insert/extract operations.
////////////////////////////////////////////////////////////////////////////////
-defm : PdWriteRes<WriteVecInsert, [PdFPU01, PdFPMAL], 2, [], 2>;
-defm : PdWriteRes<WriteVecInsertLd, [PdFPU01, PdFPMAL, PdLoad], 6, [], 2>;
+defm : PdWriteRes<WriteVecInsert, [PdFPU01, PdFPMAL], 2, [1, 3], 2>;
+defm : PdWriteRes<WriteVecInsertLd, [PdFPU01, PdFPMAL, PdLoad], 6, [1, 4, 3], 2>;
-defm : PdWriteRes<WriteVecExtract, [PdFPU0, PdFPFMA, PdEX0], 12, [], 2>;
-defm : PdWriteRes<WriteVecExtractSt, [PdFPU1, PdFPSTO, PdStore], 13, [], 2>;
+defm : PdWriteRes<WriteVecExtract, [PdFPU0, PdFPFMA, PdEX0], 12, [1, 3, 1], 2>;
+defm : PdWriteRes<WriteVecExtractSt, [PdFPU1, PdFPSTO, PdStore], 13, [2, 1, 1], 2>;
def PdWriteEXTRQ : SchedWriteRes<[PdFPU01, PdFPMAL]> {
let Latency = 3;
+ let ResourceCycles = [1, 3];
}
def : InstRW<[PdWriteEXTRQ], (instrs EXTRQ, EXTRQI)>;
@@ -1098,11 +1185,11 @@ def : InstRW<[PdWriteEXTRQ], (instrs EXT
// SSE42 String instructions.
////////////////////////////////////////////////////////////////////////////////
-defm : PdWriteResXMMPair<WritePCmpIStrI, [PdFPU1, PdFPFMA, PdEX0], 11, [1, 2, 1], 7, 1>;
-defm : PdWriteResXMMPair<WritePCmpIStrM, [PdFPU1, PdFPFMA, PdEX0], 7, [1, 2, 1], 7, 2>;
+defm : PdWriteResXMMPair<WritePCmpIStrI, [PdFPU1, PdFPFMA, PdEX0], 11, [1, 6, 1], 7, 1>;
+defm : PdWriteResXMMPair<WritePCmpIStrM, [PdFPU1, PdFPFMA, PdEX0], 7, [1, 8, 1], 7, 2>;
-defm : PdWriteResXMMPair<WritePCmpEStrI, [PdFPU1, PdStore, PdLoad, PdFPMAL, PdFPFMA, PdEX0], 14, [1, 2, 6, 4, 1, 1], 27, 1>;
-defm : PdWriteResXMMPair<WritePCmpEStrM, [PdFPU1, PdStore, PdLoad, PdFPMAL, PdFPFMA, PdEX0], 10, [1, 2, 6, 4, 1, 1], 27, 1>;
+defm : PdWriteResXMMPair<WritePCmpEStrI, [PdFPU1, PdStore, PdLoad, PdFPMAL, PdFPFMA, PdEX0], 14, [1, 10, 10, 10, 1, 1], 27, 1>;
+defm : PdWriteResXMMPair<WritePCmpEStrM, [PdFPU1, PdStore, PdLoad, PdFPMAL, PdFPFMA, PdEX0], 10, [1, 10, 10, 10, 1, 1], 27, 1>;
////////////////////////////////////////////////////////////////////////////////
// MOVMSK Instructions.
@@ -1128,12 +1215,12 @@ defm : PdWriteResXMMPair<WriteAESDecEnc,
// Horizontal add/sub instructions.
////////////////////////////////////////////////////////////////////////////////
-defm : PdWriteResXMMPair<WriteFHAdd, [PdFPU0, PdFPFMA], 11, [], 3, 1>;
-defm : PdWriteResYMMPair<WriteFHAddY, [PdFPU0, PdFPFMA], 11, [2, 1], 8, 2>;
+defm : PdWriteResXMMPair<WriteFHAdd, [PdFPU0, PdFPFMA], 11, [1, 5], 3, 1>;
+defm : PdWriteResYMMPair<WriteFHAddY, [PdFPU0, PdFPFMA], 11, [1, 8], 8, 2>;
defm : X86WriteResPairUnsupported<WriteFHAddZ>;
-defm : PdWriteResXMMPair<WritePHAdd, [PdFPU01, PdFPMAL], 5, [], 3, 1>;
-defm : PdWriteResXMMPair<WritePHAddX, [PdFPU01, PdFPMAL], 2>;
+defm : PdWriteResXMMPair<WritePHAdd, [PdFPU01, PdFPMAL], 5, [1, 4], 3, 1>;
+defm : PdWriteResXMMPair<WritePHAddX, [PdFPU01, PdFPMAL], 2, [1, 2]>;
defm : X86WriteResPairUnsupported<WritePHAddY>;
defm : X86WriteResPairUnsupported<WritePHAddZ>;
@@ -1155,10 +1242,11 @@ def : InstRW<[WritePHAdd.Folded], (instr
// Carry-less multiplication instructions.
////////////////////////////////////////////////////////////////////////////////
-defm : PdWriteResXMMPair<WriteCLMul, [PdFPU0, PdFPMMA], 12, [], 5, 1>;
+defm : PdWriteResXMMPair<WriteCLMul, [PdFPU0, PdFPMMA], 12, [1, 7], 5, 1>;
def PdWriteVPCLMULQDQrr : SchedWriteRes<[PdFPU0, PdFPMMA]> {
let Latency = 12;
+ let ResourceCycles = [1, 7];
let NumMicroOps = 6;
}
def : InstRW<[PdWriteVPCLMULQDQrr], (instrs VPCLMULQDQrr)>;
@@ -1169,9 +1257,15 @@ def : InstRW<[PdWriteVPCLMULQDQrr], (ins
def PdWriteINSERTQ : SchedWriteRes<[PdFPU01, PdFPMAL]> {
let Latency = 3;
- let ResourceCycles = [1, 4];
+ let ResourceCycles = [1, 2];
+}
+def : InstRW<[PdWriteINSERTQ], (instrs INSERTQ)>;
+
+def PdWriteINSERTQI : SchedWriteRes<[PdFPU01, PdFPMAL]> {
+ let Latency = 3;
+ let ResourceCycles = [1, 3];
}
-def : InstRW<[PdWriteINSERTQ], (instrs INSERTQ, INSERTQI)>;
+def : InstRW<[PdWriteINSERTQI], (instrs INSERTQI)>;
////////////////////////////////////////////////////////////////////////////////
// AVX instructions.
Modified: llvm/trunk/test/tools/llvm-mca/X86/BdVer2/add-sequence.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-mca/X86/BdVer2/add-sequence.s?rev=360341&r1=360340&r2=360341&view=diff
==============================================================================
--- llvm/trunk/test/tools/llvm-mca/X86/BdVer2/add-sequence.s (original)
+++ llvm/trunk/test/tools/llvm-mca/X86/BdVer2/add-sequence.s Thu May 9 06:54:51 2019
@@ -7,13 +7,13 @@ add %eax, %edx
# CHECK: Iterations: 1000
# CHECK-NEXT: Instructions: 3000
-# CHECK-NEXT: Total Cycles: 1504
+# CHECK-NEXT: Total Cycles: 3003
# CHECK-NEXT: Total uOps: 3000
# CHECK: Dispatch Width: 4
-# CHECK-NEXT: uOps Per Cycle: 1.99
-# CHECK-NEXT: IPC: 1.99
-# CHECK-NEXT: Block RThroughput: 1.5
+# CHECK-NEXT: uOps Per Cycle: 1.00
+# CHECK-NEXT: IPC: 1.00
+# CHECK-NEXT: Block RThroughput: 3.0
# CHECK: Instruction Info:
# CHECK-NEXT: [1]: #uOps
@@ -24,9 +24,9 @@ add %eax, %edx
# CHECK-NEXT: [6]: HasSideEffects (U)
# CHECK: [1] [2] [3] [4] [5] [6] Instructions:
-# CHECK-NEXT: 1 1 0.50 addl %eax, %ecx
-# CHECK-NEXT: 1 1 0.50 addl %esi, %eax
-# CHECK-NEXT: 1 1 0.50 addl %eax, %edx
+# CHECK-NEXT: 1 1 1.00 addl %eax, %ecx
+# CHECK-NEXT: 1 1 1.00 addl %esi, %eax
+# CHECK-NEXT: 1 1 1.00 addl %eax, %edx
# CHECK: Resources:
# CHECK-NEXT: [0.0] - PdAGLU01
@@ -55,48 +55,48 @@ add %eax, %edx
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0.0] [0.1] [1] [2] [3] [4] [5] [6] [7.0] [7.1] [8.0] [8.1] [9] [10] [11] [12] [13] [14] [15] [16.0] [16.1] [17] [18]
-# CHECK-NEXT: - - - - - 1.50 1.50 - - - - - - - - - - - - - - - -
+# CHECK-NEXT: - - - - - 3.00 3.00 - - - - - - - - - - - - - - - -
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0.0] [0.1] [1] [2] [3] [4] [5] [6] [7.0] [7.1] [8.0] [8.1] [9] [10] [11] [12] [13] [14] [15] [16.0] [16.1] [17] [18] Instructions:
-# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - addl %eax, %ecx
-# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - addl %esi, %eax
-# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - addl %eax, %edx
+# CHECK-NEXT: - - - - - 1.00 1.00 - - - - - - - - - - - - - - - - addl %eax, %ecx
+# CHECK-NEXT: - - - - - 1.00 1.00 - - - - - - - - - - - - - - - - addl %esi, %eax
+# CHECK-NEXT: - - - - - 1.00 1.00 - - - - - - - - - - - - - - - - addl %eax, %edx
# CHECK: Timeline view:
-# CHECK-NEXT: 01234567
-# CHECK-NEXT: Index 0123456789
+# CHECK-NEXT: 0123456789 01
+# CHECK-NEXT: Index 0123456789 0123456789
-# CHECK: [0,0] DeER . . . . addl %eax, %ecx
-# CHECK-NEXT: [0,1] DeER . . . . addl %esi, %eax
-# CHECK-NEXT: [0,2] D=eER. . . . addl %eax, %edx
-# CHECK-NEXT: [1,0] D==eER . . . addl %eax, %ecx
-# CHECK-NEXT: [1,1] .DeE-R . . . addl %esi, %eax
-# CHECK-NEXT: [1,2] .D=eER . . . addl %eax, %edx
-# CHECK-NEXT: [2,0] .D==eER . . . addl %eax, %ecx
-# CHECK-NEXT: [2,1] .D==eER . . . addl %esi, %eax
-# CHECK-NEXT: [2,2] . D==eER . . . addl %eax, %edx
-# CHECK-NEXT: [3,0] . D===eER . . . addl %eax, %ecx
-# CHECK-NEXT: [3,1] . D==eE-R . . . addl %esi, %eax
-# CHECK-NEXT: [3,2] . D===eER . . . addl %eax, %edx
-# CHECK-NEXT: [4,0] . D===eER. . . addl %eax, %ecx
-# CHECK-NEXT: [4,1] . D===eER. . . addl %esi, %eax
-# CHECK-NEXT: [4,2] . D====eER . . addl %eax, %edx
-# CHECK-NEXT: [5,0] . D=====eER . . addl %eax, %ecx
-# CHECK-NEXT: [5,1] . D===eE-R . . addl %esi, %eax
-# CHECK-NEXT: [5,2] . D====eER . . addl %eax, %edx
-# CHECK-NEXT: [6,0] . D=====eER . . addl %eax, %ecx
-# CHECK-NEXT: [6,1] . D=====eER . . addl %esi, %eax
-# CHECK-NEXT: [6,2] . D=====eER . . addl %eax, %edx
-# CHECK-NEXT: [7,0] . D======eER. . addl %eax, %ecx
-# CHECK-NEXT: [7,1] . D=====eE-R. . addl %esi, %eax
-# CHECK-NEXT: [7,2] . D======eER. . addl %eax, %edx
-# CHECK-NEXT: [8,0] . .D======eER . addl %eax, %ecx
-# CHECK-NEXT: [8,1] . .D======eER . addl %esi, %eax
-# CHECK-NEXT: [8,2] . .D=======eER. addl %eax, %edx
-# CHECK-NEXT: [9,0] . .D========eER addl %eax, %ecx
-# CHECK-NEXT: [9,1] . . D======eE-R addl %esi, %eax
-# CHECK-NEXT: [9,2] . . D=======eER addl %eax, %edx
+# CHECK: [0,0] DeER . . . . . .. addl %eax, %ecx
+# CHECK-NEXT: [0,1] DeER . . . . . .. addl %esi, %eax
+# CHECK-NEXT: [0,2] D==eER . . . . .. addl %eax, %edx
+# CHECK-NEXT: [1,0] D====eER . . . . .. addl %eax, %ecx
+# CHECK-NEXT: [1,1] .D=eE--R . . . . .. addl %esi, %eax
+# CHECK-NEXT: [1,2] .D===eER . . . . .. addl %eax, %edx
+# CHECK-NEXT: [2,0] .D=====eER. . . . .. addl %eax, %ecx
+# CHECK-NEXT: [2,1] .D=====eER. . . . .. addl %esi, %eax
+# CHECK-NEXT: [2,2] . D======eER . . . .. addl %eax, %edx
+# CHECK-NEXT: [3,0] . D========eER . . . .. addl %eax, %ecx
+# CHECK-NEXT: [3,1] . D======eE--R . . . .. addl %esi, %eax
+# CHECK-NEXT: [3,2] . D========eER . . . .. addl %eax, %edx
+# CHECK-NEXT: [4,0] . D=========eER . . .. addl %eax, %ecx
+# CHECK-NEXT: [4,1] . D=========eER . . .. addl %esi, %eax
+# CHECK-NEXT: [4,2] . D===========eER . . .. addl %eax, %edx
+# CHECK-NEXT: [5,0] . D=============eER. . .. addl %eax, %ecx
+# CHECK-NEXT: [5,1] . D==========eE--R. . .. addl %esi, %eax
+# CHECK-NEXT: [5,2] . D============eER. . .. addl %eax, %edx
+# CHECK-NEXT: [6,0] . D==============eER . .. addl %eax, %ecx
+# CHECK-NEXT: [6,1] . D==============eER . .. addl %esi, %eax
+# CHECK-NEXT: [6,2] . D===============eER . .. addl %eax, %edx
+# CHECK-NEXT: [7,0] . D=================eER .. addl %eax, %ecx
+# CHECK-NEXT: [7,1] . D===============eE--R .. addl %esi, %eax
+# CHECK-NEXT: [7,2] . D=================eER .. addl %eax, %edx
+# CHECK-NEXT: [8,0] . .D==================eER .. addl %eax, %ecx
+# CHECK-NEXT: [8,1] . .D==================eER .. addl %esi, %eax
+# CHECK-NEXT: [8,2] . .D====================eER.. addl %eax, %edx
+# CHECK-NEXT: [9,0] . .D======================eER addl %eax, %ecx
+# CHECK-NEXT: [9,1] . . D===================eE--R addl %esi, %eax
+# CHECK-NEXT: [9,2] . . D=====================eER addl %eax, %edx
# CHECK: Average Wait times (based on the timeline view):
# CHECK-NEXT: [0]: Executions
@@ -105,6 +105,6 @@ add %eax, %edx
# CHECK-NEXT: [3]: Average time elapsed from WB until retire stage
# CHECK: [0] [1] [2] [3]
-# CHECK-NEXT: 0. 10 5.0 0.6 0.0 addl %eax, %ecx
-# CHECK-NEXT: 1. 10 4.2 0.5 0.5 addl %esi, %eax
-# CHECK-NEXT: 2. 10 5.0 0.0 0.0 addl %eax, %edx
+# CHECK-NEXT: 0. 10 12.0 2.0 0.0 addl %eax, %ecx
+# CHECK-NEXT: 1. 10 10.7 1.8 1.0 addl %esi, %eax
+# CHECK-NEXT: 2. 10 12.5 1.0 0.0 addl %eax, %edx
Modified: llvm/trunk/test/tools/llvm-mca/X86/BdVer2/clear-super-register-1.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-mca/X86/BdVer2/clear-super-register-1.s?rev=360341&r1=360340&r2=360341&view=diff
==============================================================================
--- llvm/trunk/test/tools/llvm-mca/X86/BdVer2/clear-super-register-1.s (original)
+++ llvm/trunk/test/tools/llvm-mca/X86/BdVer2/clear-super-register-1.s Thu May 9 06:54:51 2019
@@ -15,12 +15,12 @@ bsf %rax, %rcx
# CHECK: Iterations: 100
# CHECK-NEXT: Instructions: 400
-# CHECK-NEXT: Total Cycles: 702
+# CHECK-NEXT: Total Cycles: 900
# CHECK-NEXT: Total uOps: 1000
# CHECK: Dispatch Width: 4
-# CHECK-NEXT: uOps Per Cycle: 1.42
-# CHECK-NEXT: IPC: 0.57
+# CHECK-NEXT: uOps Per Cycle: 1.11
+# CHECK-NEXT: IPC: 0.44
# CHECK-NEXT: Block RThroughput: 4.0
# CHECK: Instruction Info:
@@ -33,22 +33,22 @@ bsf %rax, %rcx
# CHECK: [1] [2] [3] [4] [5] [6] Instructions:
# CHECK-NEXT: 1 6 4.00 imulq $5, %rcx, %rax
-# CHECK-NEXT: 2 2 0.50 lzcntl %ecx, %eax
-# CHECK-NEXT: 1 1 0.50 andq %rcx, %rax
-# CHECK-NEXT: 6 3 2.00 bsfq %rax, %rcx
+# CHECK-NEXT: 2 2 2.00 lzcntl %ecx, %eax
+# CHECK-NEXT: 1 1 1.00 andq %rcx, %rax
+# CHECK-NEXT: 6 3 3.00 bsfq %rax, %rcx
# CHECK: Timeline view:
-# CHECK-NEXT: 012345
+# CHECK-NEXT: 01234567
# CHECK-NEXT: Index 0123456789
-# CHECK: [0,0] DeeeeeeER . . imulq $5, %rcx, %rax
-# CHECK-NEXT: [0,1] DeeE----R . . lzcntl %ecx, %eax
-# CHECK-NEXT: [0,2] D==eE---R . . andq %rcx, %rax
-# CHECK-NEXT: [0,3] .D==eeeER . . bsfq %rax, %rcx
-# CHECK-NEXT: [1,0] . D====eeeeeeER. imulq $5, %rcx, %rax
-# CHECK-NEXT: [1,1] . D====eeE---R. lzcntl %ecx, %eax
-# CHECK-NEXT: [1,2] . D======eE--R. andq %rcx, %rax
-# CHECK-NEXT: [1,3] . D======eeeER bsfq %rax, %rcx
+# CHECK: [0,0] DeeeeeeER . . . imulq $5, %rcx, %rax
+# CHECK-NEXT: [0,1] DeeE----R . . . lzcntl %ecx, %eax
+# CHECK-NEXT: [0,2] D==eE---R . . . andq %rcx, %rax
+# CHECK-NEXT: [0,3] .D==eeeER . . . bsfq %rax, %rcx
+# CHECK-NEXT: [1,0] . D====eeeeeeER. . imulq $5, %rcx, %rax
+# CHECK-NEXT: [1,1] . D======eeE-R. . lzcntl %ecx, %eax
+# CHECK-NEXT: [1,2] . D========eER. . andq %rcx, %rax
+# CHECK-NEXT: [1,3] . D========eeeER bsfq %rax, %rcx
# CHECK: Average Wait times (based on the timeline view):
# CHECK-NEXT: [0]: Executions
@@ -58,6 +58,6 @@ bsf %rax, %rcx
# CHECK: [0] [1] [2] [3]
# CHECK-NEXT: 0. 2 3.0 0.5 0.0 imulq $5, %rcx, %rax
-# CHECK-NEXT: 1. 2 3.0 1.0 3.5 lzcntl %ecx, %eax
-# CHECK-NEXT: 2. 2 5.0 0.0 2.5 andq %rcx, %rax
-# CHECK-NEXT: 3. 2 5.0 0.0 0.0 bsfq %rax, %rcx
+# CHECK-NEXT: 1. 2 4.0 2.0 2.5 lzcntl %ecx, %eax
+# CHECK-NEXT: 2. 2 6.0 0.0 1.5 andq %rcx, %rax
+# CHECK-NEXT: 3. 2 6.0 0.0 0.0 bsfq %rax, %rcx
Modified: llvm/trunk/test/tools/llvm-mca/X86/BdVer2/clear-super-register-2.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-mca/X86/BdVer2/clear-super-register-2.s?rev=360341&r1=360340&r2=360341&view=diff
==============================================================================
--- llvm/trunk/test/tools/llvm-mca/X86/BdVer2/clear-super-register-2.s (original)
+++ llvm/trunk/test/tools/llvm-mca/X86/BdVer2/clear-super-register-2.s Thu May 9 06:54:51 2019
@@ -33,13 +33,13 @@ vandps %xmm4, %xmm1, %xmm0
# CHECK: Iterations: 100
# CHECK-NEXT: Instructions: 1800
-# CHECK-NEXT: Total Cycles: 4003
+# CHECK-NEXT: Total Cycles: 3203
# CHECK-NEXT: Total uOps: 3400
# CHECK: Dispatch Width: 4
-# CHECK-NEXT: uOps Per Cycle: 0.85
-# CHECK-NEXT: IPC: 0.45
-# CHECK-NEXT: Block RThroughput: 31.0
+# CHECK-NEXT: uOps Per Cycle: 1.06
+# CHECK-NEXT: IPC: 0.56
+# CHECK-NEXT: Block RThroughput: 25.5
# CHECK: Instruction Info:
# CHECK-NEXT: [1]: #uOps
@@ -50,63 +50,65 @@ vandps %xmm4, %xmm1, %xmm0
# CHECK-NEXT: [6]: HasSideEffects (U)
# CHECK: [1] [2] [3] [4] [5] [6] Instructions:
-# CHECK-NEXT: 2 9 19.00 vdivps %ymm0, %ymm1, %ymm3
+# CHECK-NEXT: 2 9 9.00 vdivps %ymm0, %ymm1, %ymm3
# CHECK-NEXT: 1 5 1.00 vaddps %xmm0, %xmm1, %xmm3
-# CHECK-NEXT: 2 5 2.00 vaddps %ymm3, %ymm1, %ymm4
-# CHECK-NEXT: 2 5 2.00 vaddps %ymm3, %ymm1, %ymm4
-# CHECK-NEXT: 2 5 2.00 vaddps %ymm3, %ymm1, %ymm4
-# CHECK-NEXT: 2 5 2.00 vaddps %ymm3, %ymm1, %ymm4
-# CHECK-NEXT: 2 5 2.00 vaddps %ymm3, %ymm1, %ymm4
-# CHECK-NEXT: 2 5 2.00 vaddps %ymm3, %ymm1, %ymm4
-# CHECK-NEXT: 2 5 2.00 vaddps %ymm3, %ymm1, %ymm4
-# CHECK-NEXT: 2 5 2.00 vaddps %ymm3, %ymm1, %ymm4
-# CHECK-NEXT: 2 5 2.00 vaddps %ymm3, %ymm1, %ymm4
-# CHECK-NEXT: 2 5 2.00 vaddps %ymm3, %ymm1, %ymm4
-# CHECK-NEXT: 2 5 2.00 vaddps %ymm3, %ymm1, %ymm4
-# CHECK-NEXT: 2 5 2.00 vaddps %ymm3, %ymm1, %ymm4
-# CHECK-NEXT: 2 5 2.00 vaddps %ymm3, %ymm1, %ymm4
-# CHECK-NEXT: 2 5 2.00 vaddps %ymm3, %ymm1, %ymm4
-# CHECK-NEXT: 2 5 2.00 vaddps %ymm3, %ymm1, %ymm4
-# CHECK-NEXT: 1 2 0.50 vandps %xmm4, %xmm1, %xmm0
+# CHECK-NEXT: 2 5 1.00 vaddps %ymm3, %ymm1, %ymm4
+# CHECK-NEXT: 2 5 1.00 vaddps %ymm3, %ymm1, %ymm4
+# CHECK-NEXT: 2 5 1.00 vaddps %ymm3, %ymm1, %ymm4
+# CHECK-NEXT: 2 5 1.00 vaddps %ymm3, %ymm1, %ymm4
+# CHECK-NEXT: 2 5 1.00 vaddps %ymm3, %ymm1, %ymm4
+# CHECK-NEXT: 2 5 1.00 vaddps %ymm3, %ymm1, %ymm4
+# CHECK-NEXT: 2 5 1.00 vaddps %ymm3, %ymm1, %ymm4
+# CHECK-NEXT: 2 5 1.00 vaddps %ymm3, %ymm1, %ymm4
+# CHECK-NEXT: 2 5 1.00 vaddps %ymm3, %ymm1, %ymm4
+# CHECK-NEXT: 2 5 1.00 vaddps %ymm3, %ymm1, %ymm4
+# CHECK-NEXT: 2 5 1.00 vaddps %ymm3, %ymm1, %ymm4
+# CHECK-NEXT: 2 5 1.00 vaddps %ymm3, %ymm1, %ymm4
+# CHECK-NEXT: 2 5 1.00 vaddps %ymm3, %ymm1, %ymm4
+# CHECK-NEXT: 2 5 1.00 vaddps %ymm3, %ymm1, %ymm4
+# CHECK-NEXT: 2 5 1.00 vaddps %ymm3, %ymm1, %ymm4
+# CHECK-NEXT: 1 2 1.00 vandps %xmm4, %xmm1, %xmm0
# CHECK: Timeline view:
-# CHECK-NEXT: 0123456789 0123456789 0123456789 0123456789
-# CHECK-NEXT: Index 0123456789 0123456789 0123456789 0123456789
+# CHECK-NEXT: 0123456789 0123456789 0123456789
+# CHECK-NEXT: Index 0123456789 0123456789 0123456789 0123456
-# CHECK: [0,0] DeeeeeeeeeER . . . . . . . . . . . . . . vdivps %ymm0, %ymm1, %ymm3
-# CHECK-NEXT: [0,1] DeeeeeE----R . . . . . . . . . . . . . . vaddps %xmm0, %xmm1, %xmm3
-# CHECK-NEXT: [0,2] .D====eeeeeER . . . . . . . . . . . . . . vaddps %ymm3, %ymm1, %ymm4
-# CHECK-NEXT: [0,3] .D======eeeeeER. . . . . . . . . . . . . . vaddps %ymm3, %ymm1, %ymm4
-# CHECK-NEXT: [0,4] . D=======eeeeeER . . . . . . . . . . . . . vaddps %ymm3, %ymm1, %ymm4
-# CHECK-NEXT: [0,5] . D=========eeeeeER . . . . . . . . . . . . . vaddps %ymm3, %ymm1, %ymm4
-# CHECK-NEXT: [0,6] . D==========eeeeeER . . . . . . . . . . . . vaddps %ymm3, %ymm1, %ymm4
-# CHECK-NEXT: [0,7] . D============eeeeeER . . . . . . . . . . . . vaddps %ymm3, %ymm1, %ymm4
-# CHECK-NEXT: [0,8] . D=============eeeeeER. . . . . . . . . . . . vaddps %ymm3, %ymm1, %ymm4
-# CHECK-NEXT: [0,9] . D===============eeeeeER . . . . . . . . . . . vaddps %ymm3, %ymm1, %ymm4
-# CHECK-NEXT: [0,10] . D================eeeeeER . . . . . . . . . . . vaddps %ymm3, %ymm1, %ymm4
-# CHECK-NEXT: [0,11] . D==================eeeeeER . . . . . . . . . . vaddps %ymm3, %ymm1, %ymm4
-# CHECK-NEXT: [0,12] . .D===================eeeeeER . . . . . . . . . . vaddps %ymm3, %ymm1, %ymm4
-# CHECK-NEXT: [0,13] . .D=====================eeeeeER. . . . . . . . . . vaddps %ymm3, %ymm1, %ymm4
-# CHECK-NEXT: [0,14] . . D======================eeeeeER . . . . . . . . . vaddps %ymm3, %ymm1, %ymm4
-# CHECK-NEXT: [0,15] . . D========================eeeeeER . . . . . . . . . vaddps %ymm3, %ymm1, %ymm4
-# CHECK-NEXT: [0,16] . . D=========================eeeeeER . . . . . . . . vaddps %ymm3, %ymm1, %ymm4
-# CHECK-NEXT: [0,17] . . D==============================eeER . . . . . . . . vandps %xmm4, %xmm1, %xmm0
-# CHECK-NEXT: [1,0] . . D===============================eeeeeeeeeER . . . . . . vdivps %ymm0, %ymm1, %ymm3
-# CHECK-NEXT: [1,1] . . D===============================eeeeeE----R . . . . . . vaddps %xmm0, %xmm1, %xmm3
-# CHECK-NEXT: [1,2] . . D===================================eeeeeER . . . . . . vaddps %ymm3, %ymm1, %ymm4
-# CHECK-NEXT: [1,3] . . D=====================================eeeeeER. . . . . . vaddps %ymm3, %ymm1, %ymm4
-# CHECK-NEXT: [1,4] . . .D======================================eeeeeER . . . . . vaddps %ymm3, %ymm1, %ymm4
-# CHECK-NEXT: [1,5] . . .D========================================eeeeeER . . . . . vaddps %ymm3, %ymm1, %ymm4
-# CHECK-NEXT: [1,6] . . . D=========================================eeeeeER . . . . vaddps %ymm3, %ymm1, %ymm4
-# CHECK-NEXT: [1,7] . . . D===========================================eeeeeER . . . . vaddps %ymm3, %ymm1, %ymm4
-# CHECK-NEXT: [1,8] . . . D============================================eeeeeER. . . . vaddps %ymm3, %ymm1, %ymm4
-# CHECK-NEXT: [1,9] . . . D==============================================eeeeeER . . . vaddps %ymm3, %ymm1, %ymm4
-# CHECK-NEXT: [1,10] . . . D===============================================eeeeeER . . . vaddps %ymm3, %ymm1, %ymm4
-# CHECK-NEXT: [1,11] . . . D=================================================eeeeeER . . vaddps %ymm3, %ymm1, %ymm4
-# CHECK-NEXT: [1,12] . . . D==================================================eeeeeER . . vaddps %ymm3, %ymm1, %ymm4
-# CHECK-NEXT: [1,13] . . . D====================================================eeeeeER. . vaddps %ymm3, %ymm1, %ymm4
-# CHECK-NEXT: [1,14] . . . .D=====================================================eeeeeER . vaddps %ymm3, %ymm1, %ymm4
-# CHECK-NEXT: [1,15] . . . .D=======================================================eeeeeER. vaddps %ymm3, %ymm1, %ymm4
+# CHECK: [0,0] DeeeeeeeeeER . . . . . . . . . . .. vdivps %ymm0, %ymm1, %ymm3
+# CHECK-NEXT: [0,1] DeeeeeE----R . . . . . . . . . . .. vaddps %xmm0, %xmm1, %xmm3
+# CHECK-NEXT: [0,2] .D====eeeeeER . . . . . . . . . . .. vaddps %ymm3, %ymm1, %ymm4
+# CHECK-NEXT: [0,3] .D======eeeeeER. . . . . . . . . . .. vaddps %ymm3, %ymm1, %ymm4
+# CHECK-NEXT: [0,4] . D=======eeeeeER . . . . . . . . . .. vaddps %ymm3, %ymm1, %ymm4
+# CHECK-NEXT: [0,5] . D=========eeeeeER . . . . . . . . . .. vaddps %ymm3, %ymm1, %ymm4
+# CHECK-NEXT: [0,6] . D==========eeeeeER . . . . . . . . .. vaddps %ymm3, %ymm1, %ymm4
+# CHECK-NEXT: [0,7] . D============eeeeeER . . . . . . . . .. vaddps %ymm3, %ymm1, %ymm4
+# CHECK-NEXT: [0,8] . D=============eeeeeER. . . . . . . . .. vaddps %ymm3, %ymm1, %ymm4
+# CHECK-NEXT: [0,9] . D==============eeeeeER . . . . . . . .. vaddps %ymm3, %ymm1, %ymm4
+# CHECK-NEXT: [0,10] . D==============eeeeeER . . . . . . . .. vaddps %ymm3, %ymm1, %ymm4
+# CHECK-NEXT: [0,11] . D===============eeeeeER . . . . . . . .. vaddps %ymm3, %ymm1, %ymm4
+# CHECK-NEXT: [0,12] . .D===============eeeeeER . . . . . . . .. vaddps %ymm3, %ymm1, %ymm4
+# CHECK-NEXT: [0,13] . .D================eeeeeER. . . . . . . .. vaddps %ymm3, %ymm1, %ymm4
+# CHECK-NEXT: [0,14] . . D================eeeeeER . . . . . . .. vaddps %ymm3, %ymm1, %ymm4
+# CHECK-NEXT: [0,15] . . D=================eeeeeER . . . . . . .. vaddps %ymm3, %ymm1, %ymm4
+# CHECK-NEXT: [0,16] . . D=================eeeeeER . . . . . . .. vaddps %ymm3, %ymm1, %ymm4
+# CHECK-NEXT: [0,17] . . D======================eeER. . . . . . .. vandps %xmm4, %xmm1, %xmm0
+# CHECK-NEXT: [1,0] . . D=======================eeeeeeeeeER . . . . .. vdivps %ymm0, %ymm1, %ymm3
+# CHECK-NEXT: [1,1] . . D=======================eeeeeE----R . . . . .. vaddps %xmm0, %xmm1, %xmm3
+# CHECK-NEXT: [1,2] . . D===========================eeeeeER. . . . .. vaddps %ymm3, %ymm1, %ymm4
+# CHECK-NEXT: [1,3] . . D=============================eeeeeER . . . .. vaddps %ymm3, %ymm1, %ymm4
+# CHECK-NEXT: [1,4] . . .D==============================eeeeeER . . . .. vaddps %ymm3, %ymm1, %ymm4
+# CHECK-NEXT: [1,5] . . .D================================eeeeeER . . .. vaddps %ymm3, %ymm1, %ymm4
+# CHECK-NEXT: [1,6] . . . D=================================eeeeeER . . .. vaddps %ymm3, %ymm1, %ymm4
+# CHECK-NEXT: [1,7] . . . D===================================eeeeeER. . .. vaddps %ymm3, %ymm1, %ymm4
+# CHECK-NEXT: [1,8] . . . D====================================eeeeeER . .. vaddps %ymm3, %ymm1, %ymm4
+# CHECK-NEXT: [1,9] . . . D=====================================eeeeeER . .. vaddps %ymm3, %ymm1, %ymm4
+# CHECK-NEXT: [1,10] . . . D=====================================eeeeeER . .. vaddps %ymm3, %ymm1, %ymm4
+# CHECK-NEXT: [1,11] . . . D======================================eeeeeER. .. vaddps %ymm3, %ymm1, %ymm4
+# CHECK-NEXT: [1,12] . . . D======================================eeeeeER .. vaddps %ymm3, %ymm1, %ymm4
+# CHECK-NEXT: [1,13] . . . D=======================================eeeeeER .. vaddps %ymm3, %ymm1, %ymm4
+# CHECK-NEXT: [1,14] . . . .D=======================================eeeeeER .. vaddps %ymm3, %ymm1, %ymm4
+# CHECK-NEXT: [1,15] . . . .D========================================eeeeeER .. vaddps %ymm3, %ymm1, %ymm4
+# CHECK-NEXT: [1,16] . . . . D========================================eeeeeER.. vaddps %ymm3, %ymm1, %ymm4
+# CHECK-NEXT: [1,17] . . . . D=============================================eeER vandps %xmm4, %xmm1, %xmm0
# CHECK: Average Wait times (based on the timeline view):
# CHECK-NEXT: [0]: Executions
@@ -115,21 +117,21 @@ vandps %xmm4, %xmm1, %xmm0
# CHECK-NEXT: [3]: Average time elapsed from WB until retire stage
# CHECK: [0] [1] [2] [3]
-# CHECK-NEXT: 0. 2 16.5 0.5 0.0 vdivps %ymm0, %ymm1, %ymm3
-# CHECK-NEXT: 1. 2 16.5 0.5 4.0 vaddps %xmm0, %xmm1, %xmm3
-# CHECK-NEXT: 2. 2 20.5 0.0 0.0 vaddps %ymm3, %ymm1, %ymm4
-# CHECK-NEXT: 3. 2 22.5 2.0 0.0 vaddps %ymm3, %ymm1, %ymm4
-# CHECK-NEXT: 4. 2 23.5 4.0 0.0 vaddps %ymm3, %ymm1, %ymm4
-# CHECK-NEXT: 5. 2 25.5 6.0 0.0 vaddps %ymm3, %ymm1, %ymm4
-# CHECK-NEXT: 6. 2 26.5 8.0 0.0 vaddps %ymm3, %ymm1, %ymm4
-# CHECK-NEXT: 7. 2 28.5 10.0 0.0 vaddps %ymm3, %ymm1, %ymm4
-# CHECK-NEXT: 8. 2 29.5 12.0 0.0 vaddps %ymm3, %ymm1, %ymm4
-# CHECK-NEXT: 9. 2 31.5 14.0 0.0 vaddps %ymm3, %ymm1, %ymm4
-# CHECK-NEXT: 10. 2 32.5 16.0 0.0 vaddps %ymm3, %ymm1, %ymm4
-# CHECK-NEXT: 11. 2 34.5 18.0 0.0 vaddps %ymm3, %ymm1, %ymm4
-# CHECK-NEXT: 12. 2 35.5 20.0 0.0 vaddps %ymm3, %ymm1, %ymm4
-# CHECK-NEXT: 13. 2 37.5 22.0 0.0 vaddps %ymm3, %ymm1, %ymm4
-# CHECK-NEXT: 14. 2 38.5 23.5 0.0 vaddps %ymm3, %ymm1, %ymm4
-# CHECK-NEXT: 15. 2 40.5 25.5 0.0 vaddps %ymm3, %ymm1, %ymm4
-# CHECK-NEXT: 16. 2 41.5 27.0 0.0 vaddps %ymm3, %ymm1, %ymm4
-# CHECK-NEXT: 17. 2 46.5 0.0 0.0 vandps %xmm4, %xmm1, %xmm0
+# CHECK-NEXT: 0. 2 12.5 0.5 0.0 vdivps %ymm0, %ymm1, %ymm3
+# CHECK-NEXT: 1. 2 12.5 0.5 4.0 vaddps %xmm0, %xmm1, %xmm3
+# CHECK-NEXT: 2. 2 16.5 0.0 0.0 vaddps %ymm3, %ymm1, %ymm4
+# CHECK-NEXT: 3. 2 18.5 2.0 0.0 vaddps %ymm3, %ymm1, %ymm4
+# CHECK-NEXT: 4. 2 19.5 4.0 0.0 vaddps %ymm3, %ymm1, %ymm4
+# CHECK-NEXT: 5. 2 21.5 6.0 0.0 vaddps %ymm3, %ymm1, %ymm4
+# CHECK-NEXT: 6. 2 22.5 8.0 0.0 vaddps %ymm3, %ymm1, %ymm4
+# CHECK-NEXT: 7. 2 24.5 10.0 0.0 vaddps %ymm3, %ymm1, %ymm4
+# CHECK-NEXT: 8. 2 25.5 12.0 0.0 vaddps %ymm3, %ymm1, %ymm4
+# CHECK-NEXT: 9. 2 26.5 13.0 0.0 vaddps %ymm3, %ymm1, %ymm4
+# CHECK-NEXT: 10. 2 26.5 14.0 0.0 vaddps %ymm3, %ymm1, %ymm4
+# CHECK-NEXT: 11. 2 27.5 15.0 0.0 vaddps %ymm3, %ymm1, %ymm4
+# CHECK-NEXT: 12. 2 27.5 16.0 0.0 vaddps %ymm3, %ymm1, %ymm4
+# CHECK-NEXT: 13. 2 28.5 17.0 0.0 vaddps %ymm3, %ymm1, %ymm4
+# CHECK-NEXT: 14. 2 28.5 17.5 0.0 vaddps %ymm3, %ymm1, %ymm4
+# CHECK-NEXT: 15. 2 29.5 18.5 0.0 vaddps %ymm3, %ymm1, %ymm4
+# CHECK-NEXT: 16. 2 29.5 19.0 0.0 vaddps %ymm3, %ymm1, %ymm4
+# CHECK-NEXT: 17. 2 34.5 0.0 0.0 vandps %xmm4, %xmm1, %xmm0
Modified: llvm/trunk/test/tools/llvm-mca/X86/BdVer2/dependency-breaking-cmp.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-mca/X86/BdVer2/dependency-breaking-cmp.s?rev=360341&r1=360340&r2=360341&view=diff
==============================================================================
--- llvm/trunk/test/tools/llvm-mca/X86/BdVer2/dependency-breaking-cmp.s (original)
+++ llvm/trunk/test/tools/llvm-mca/X86/BdVer2/dependency-breaking-cmp.s Thu May 9 06:54:51 2019
@@ -11,13 +11,13 @@ cmovae %ebx, %eax
# CHECK: Iterations: 1500
# CHECK-NEXT: Instructions: 3000
-# CHECK-NEXT: Total Cycles: 1504
+# CHECK-NEXT: Total Cycles: 2253
# CHECK-NEXT: Total uOps: 3000
# CHECK: Dispatch Width: 4
-# CHECK-NEXT: uOps Per Cycle: 1.99
-# CHECK-NEXT: IPC: 1.99
-# CHECK-NEXT: Block RThroughput: 1.0
+# CHECK-NEXT: uOps Per Cycle: 1.33
+# CHECK-NEXT: IPC: 1.33
+# CHECK-NEXT: Block RThroughput: 1.5
# CHECK: Instruction Info:
# CHECK-NEXT: [1]: #uOps
@@ -28,7 +28,7 @@ cmovae %ebx, %eax
# CHECK-NEXT: [6]: HasSideEffects (U)
# CHECK: [1] [2] [3] [4] [5] [6] Instructions:
-# CHECK-NEXT: 1 1 0.50 cmpl %eax, %eax
+# CHECK-NEXT: 1 1 1.00 cmpl %eax, %eax
# CHECK-NEXT: 1 1 0.50 cmovael %ebx, %eax
# CHECK: Resources:
@@ -58,22 +58,22 @@ cmovae %ebx, %eax
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0.0] [0.1] [1] [2] [3] [4] [5] [6] [7.0] [7.1] [8.0] [8.1] [9] [10] [11] [12] [13] [14] [15] [16.0] [16.1] [17] [18]
-# CHECK-NEXT: - - - - - 1.00 1.00 - - - - - - - - - - - - - - - -
+# CHECK-NEXT: - - - - - 1.50 1.50 - - - - - - - - - - - - - - - -
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0.0] [0.1] [1] [2] [3] [4] [5] [6] [7.0] [7.1] [8.0] [8.1] [9] [10] [11] [12] [13] [14] [15] [16.0] [16.1] [17] [18] Instructions:
-# CHECK-NEXT: - - - - - 1.00 - - - - - - - - - - - - - - - - - cmpl %eax, %eax
-# CHECK-NEXT: - - - - - - 1.00 - - - - - - - - - - - - - - - - cmovael %ebx, %eax
+# CHECK-NEXT: - - - - - 1.00 1.00 - - - - - - - - - - - - - - - - cmpl %eax, %eax
+# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - cmovael %ebx, %eax
# CHECK: Timeline view:
-# CHECK-NEXT: Index 0123456
+# CHECK-NEXT: Index 01234567
-# CHECK: [0,0] DeER .. cmpl %eax, %eax
-# CHECK-NEXT: [0,1] D=eER.. cmovael %ebx, %eax
-# CHECK-NEXT: [1,0] DeE-R.. cmpl %eax, %eax
-# CHECK-NEXT: [1,1] D==eER. cmovael %ebx, %eax
-# CHECK-NEXT: [2,0] .DeE-R. cmpl %eax, %eax
-# CHECK-NEXT: [2,1] .D==eER cmovael %ebx, %eax
+# CHECK: [0,0] DeER . . cmpl %eax, %eax
+# CHECK-NEXT: [0,1] D==eER . cmovael %ebx, %eax
+# CHECK-NEXT: [1,0] DeE--R . cmpl %eax, %eax
+# CHECK-NEXT: [1,1] D===eER. cmovael %ebx, %eax
+# CHECK-NEXT: [2,0] .D=eE-R. cmpl %eax, %eax
+# CHECK-NEXT: [2,1] .D===eER cmovael %ebx, %eax
# CHECK: Average Wait times (based on the timeline view):
# CHECK-NEXT: [0]: Executions
@@ -82,5 +82,5 @@ cmovae %ebx, %eax
# CHECK-NEXT: [3]: Average time elapsed from WB until retire stage
# CHECK: [0] [1] [2] [3]
-# CHECK-NEXT: 0. 3 1.0 1.0 0.7 cmpl %eax, %eax
-# CHECK-NEXT: 1. 3 2.7 0.0 0.0 cmovael %ebx, %eax
+# CHECK-NEXT: 0. 3 1.3 1.3 1.0 cmpl %eax, %eax
+# CHECK-NEXT: 1. 3 3.7 0.3 0.0 cmovael %ebx, %eax
Modified: llvm/trunk/test/tools/llvm-mca/X86/BdVer2/dependency-breaking-pcmpeq.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-mca/X86/BdVer2/dependency-breaking-pcmpeq.s?rev=360341&r1=360340&r2=360341&view=diff
==============================================================================
--- llvm/trunk/test/tools/llvm-mca/X86/BdVer2/dependency-breaking-pcmpeq.s (original)
+++ llvm/trunk/test/tools/llvm-mca/X86/BdVer2/dependency-breaking-pcmpeq.s Thu May 9 06:54:51 2019
@@ -14,13 +14,13 @@ vpcmpeqq %xmm3, %xmm3, %xmm0
# CHECK: Iterations: 1500
# CHECK-NEXT: Instructions: 6000
-# CHECK-NEXT: Total Cycles: 3005
+# CHECK-NEXT: Total Cycles: 6003
# CHECK-NEXT: Total uOps: 6000
# CHECK: Dispatch Width: 4
-# CHECK-NEXT: uOps Per Cycle: 2.00
-# CHECK-NEXT: IPC: 2.00
-# CHECK-NEXT: Block RThroughput: 2.0
+# CHECK-NEXT: uOps Per Cycle: 1.00
+# CHECK-NEXT: IPC: 1.00
+# CHECK-NEXT: Block RThroughput: 4.0
# CHECK: Instruction Info:
# CHECK-NEXT: [1]: #uOps
@@ -31,10 +31,10 @@ vpcmpeqq %xmm3, %xmm3, %xmm0
# CHECK-NEXT: [6]: HasSideEffects (U)
# CHECK: [1] [2] [3] [4] [5] [6] Instructions:
-# CHECK-NEXT: 1 2 0.50 vpcmpeqb %xmm0, %xmm0, %xmm1
-# CHECK-NEXT: 1 2 0.50 vpcmpeqw %xmm1, %xmm1, %xmm2
-# CHECK-NEXT: 1 2 0.50 vpcmpeqd %xmm2, %xmm2, %xmm3
-# CHECK-NEXT: 1 2 0.50 vpcmpeqq %xmm3, %xmm3, %xmm0
+# CHECK-NEXT: 1 2 1.00 vpcmpeqb %xmm0, %xmm0, %xmm1
+# CHECK-NEXT: 1 2 1.00 vpcmpeqw %xmm1, %xmm1, %xmm2
+# CHECK-NEXT: 1 2 1.00 vpcmpeqd %xmm2, %xmm2, %xmm3
+# CHECK-NEXT: 1 2 1.00 vpcmpeqq %xmm3, %xmm3, %xmm0
# CHECK: Resources:
# CHECK-NEXT: [0.0] - PdAGLU01
@@ -63,31 +63,31 @@ vpcmpeqq %xmm3, %xmm3, %xmm0
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0.0] [0.1] [1] [2] [3] [4] [5] [6] [7.0] [7.1] [8.0] [8.1] [9] [10] [11] [12] [13] [14] [15] [16.0] [16.1] [17] [18]
-# CHECK-NEXT: - - - - - - - - - - 2.00 2.00 - - 2.00 2.00 - - - - - - -
+# CHECK-NEXT: - - - - - - - - - - 4.00 4.00 - - 2.00 2.00 - - - - - - -
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0.0] [0.1] [1] [2] [3] [4] [5] [6] [7.0] [7.1] [8.0] [8.1] [9] [10] [11] [12] [13] [14] [15] [16.0] [16.1] [17] [18] Instructions:
-# CHECK-NEXT: - - - - - - - - - - 1.00 - - - 1.00 - - - - - - - - vpcmpeqb %xmm0, %xmm0, %xmm1
-# CHECK-NEXT: - - - - - - - - - - - 1.00 - - - 1.00 - - - - - - - vpcmpeqw %xmm1, %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - - - - 1.00 - - - 1.00 - - - - - - - - vpcmpeqd %xmm2, %xmm2, %xmm3
-# CHECK-NEXT: - - - - - - - - - - - 1.00 - - - 1.00 - - - - - - - vpcmpeqq %xmm3, %xmm3, %xmm0
+# CHECK-NEXT: - - - - - - - - - - - 2.00 - - - 1.00 - - - - - - - vpcmpeqb %xmm0, %xmm0, %xmm1
+# CHECK-NEXT: - - - - - - - - - - - 2.00 - - - 1.00 - - - - - - - vpcmpeqw %xmm1, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - - - 2.00 - - - 1.00 - - - - - - - - vpcmpeqd %xmm2, %xmm2, %xmm3
+# CHECK-NEXT: - - - - - - - - - - 2.00 - - - 1.00 - - - - - - - - vpcmpeqq %xmm3, %xmm3, %xmm0
# CHECK: Timeline view:
-# CHECK-NEXT: 0
+# CHECK-NEXT: 01234
# CHECK-NEXT: Index 0123456789
-# CHECK: [0,0] DeeER. . vpcmpeqb %xmm0, %xmm0, %xmm1
-# CHECK-NEXT: [0,1] D=eeER . vpcmpeqw %xmm1, %xmm1, %xmm2
-# CHECK-NEXT: [0,2] DeeE-R . vpcmpeqd %xmm2, %xmm2, %xmm3
-# CHECK-NEXT: [0,3] D==eeER . vpcmpeqq %xmm3, %xmm3, %xmm0
-# CHECK-NEXT: [1,0] .DeeE-R . vpcmpeqb %xmm0, %xmm0, %xmm1
-# CHECK-NEXT: [1,1] .D==eeER . vpcmpeqw %xmm1, %xmm1, %xmm2
-# CHECK-NEXT: [1,2] .D=eeE-R . vpcmpeqd %xmm2, %xmm2, %xmm3
-# CHECK-NEXT: [1,3] .D===eeER . vpcmpeqq %xmm3, %xmm3, %xmm0
-# CHECK-NEXT: [2,0] . D=eeE-R . vpcmpeqb %xmm0, %xmm0, %xmm1
-# CHECK-NEXT: [2,1] . D===eeER. vpcmpeqw %xmm1, %xmm1, %xmm2
-# CHECK-NEXT: [2,2] . D==eeE-R. vpcmpeqd %xmm2, %xmm2, %xmm3
-# CHECK-NEXT: [2,3] . D====eeER vpcmpeqq %xmm3, %xmm3, %xmm0
+# CHECK: [0,0] DeeER. . . vpcmpeqb %xmm0, %xmm0, %xmm1
+# CHECK-NEXT: [0,1] D==eeER . . vpcmpeqw %xmm1, %xmm1, %xmm2
+# CHECK-NEXT: [0,2] DeeE--R . . vpcmpeqd %xmm2, %xmm2, %xmm3
+# CHECK-NEXT: [0,3] D==eeER . . vpcmpeqq %xmm3, %xmm3, %xmm0
+# CHECK-NEXT: [1,0] .D===eeER . . vpcmpeqb %xmm0, %xmm0, %xmm1
+# CHECK-NEXT: [1,1] .D=====eeER . vpcmpeqw %xmm1, %xmm1, %xmm2
+# CHECK-NEXT: [1,2] .D===eeE--R . vpcmpeqd %xmm2, %xmm2, %xmm3
+# CHECK-NEXT: [1,3] .D=====eeER . vpcmpeqq %xmm3, %xmm3, %xmm0
+# CHECK-NEXT: [2,0] . D======eeER . vpcmpeqb %xmm0, %xmm0, %xmm1
+# CHECK-NEXT: [2,1] . D========eeER vpcmpeqw %xmm1, %xmm1, %xmm2
+# CHECK-NEXT: [2,2] . D======eeE--R vpcmpeqd %xmm2, %xmm2, %xmm3
+# CHECK-NEXT: [2,3] . D========eeER vpcmpeqq %xmm3, %xmm3, %xmm0
# CHECK: Average Wait times (based on the timeline view):
# CHECK-NEXT: [0]: Executions
@@ -96,7 +96,7 @@ vpcmpeqq %xmm3, %xmm3, %xmm0
# CHECK-NEXT: [3]: Average time elapsed from WB until retire stage
# CHECK: [0] [1] [2] [3]
-# CHECK-NEXT: 0. 3 1.3 1.3 0.7 vpcmpeqb %xmm0, %xmm0, %xmm1
-# CHECK-NEXT: 1. 3 3.0 3.0 0.0 vpcmpeqw %xmm1, %xmm1, %xmm2
-# CHECK-NEXT: 2. 3 2.0 2.0 1.0 vpcmpeqd %xmm2, %xmm2, %xmm3
-# CHECK-NEXT: 3. 3 4.0 0.0 0.0 vpcmpeqq %xmm3, %xmm3, %xmm0
+# CHECK-NEXT: 0. 3 4.0 4.0 0.0 vpcmpeqb %xmm0, %xmm0, %xmm1
+# CHECK-NEXT: 1. 3 6.0 6.0 0.0 vpcmpeqw %xmm1, %xmm1, %xmm2
+# CHECK-NEXT: 2. 3 4.0 4.0 2.0 vpcmpeqd %xmm2, %xmm2, %xmm3
+# CHECK-NEXT: 3. 3 6.0 0.0 0.0 vpcmpeqq %xmm3, %xmm3, %xmm0
Modified: llvm/trunk/test/tools/llvm-mca/X86/BdVer2/dependency-breaking-pcmpgt.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-mca/X86/BdVer2/dependency-breaking-pcmpgt.s?rev=360341&r1=360340&r2=360341&view=diff
==============================================================================
--- llvm/trunk/test/tools/llvm-mca/X86/BdVer2/dependency-breaking-pcmpgt.s (original)
+++ llvm/trunk/test/tools/llvm-mca/X86/BdVer2/dependency-breaking-pcmpgt.s Thu May 9 06:54:51 2019
@@ -35,7 +35,7 @@ vpcmpgtq %xmm3, %xmm3, %xmm0
# CHECK-NEXT: 1 0 0.25 vpcmpgtb %xmm0, %xmm0, %xmm1
# CHECK-NEXT: 1 0 0.25 vpcmpgtw %xmm1, %xmm1, %xmm2
# CHECK-NEXT: 1 0 0.25 vpcmpgtd %xmm2, %xmm2, %xmm3
-# CHECK-NEXT: 1 2 0.50 vpcmpgtq %xmm3, %xmm3, %xmm0
+# CHECK-NEXT: 1 2 1.00 vpcmpgtq %xmm3, %xmm3, %xmm0
# CHECK: Resources:
# CHECK-NEXT: [0.0] - PdAGLU01
@@ -64,14 +64,14 @@ vpcmpgtq %xmm3, %xmm3, %xmm0
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0.0] [0.1] [1] [2] [3] [4] [5] [6] [7.0] [7.1] [8.0] [8.1] [9] [10] [11] [12] [13] [14] [15] [16.0] [16.1] [17] [18]
-# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - - - -
+# CHECK-NEXT: - - - - - - - - - - 1.00 1.00 - - 0.50 0.50 - - - - - - -
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0.0] [0.1] [1] [2] [3] [4] [5] [6] [7.0] [7.1] [8.0] [8.1] [9] [10] [11] [12] [13] [14] [15] [16.0] [16.1] [17] [18] Instructions:
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - - - vpcmpgtb %xmm0, %xmm0, %xmm1
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - - - vpcmpgtw %xmm1, %xmm1, %xmm2
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - - - vpcmpgtd %xmm2, %xmm2, %xmm3
-# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - - - - vpcmpgtq %xmm3, %xmm3, %xmm0
+# CHECK-NEXT: - - - - - - - - - - 1.00 1.00 - - 0.50 0.50 - - - - - - - vpcmpgtq %xmm3, %xmm3, %xmm0
# CHECK: Timeline view:
# CHECK-NEXT: Index 0123456
Modified: llvm/trunk/test/tools/llvm-mca/X86/BdVer2/dependency-breaking-sbb-2.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-mca/X86/BdVer2/dependency-breaking-sbb-2.s?rev=360341&r1=360340&r2=360341&view=diff
==============================================================================
--- llvm/trunk/test/tools/llvm-mca/X86/BdVer2/dependency-breaking-sbb-2.s (original)
+++ llvm/trunk/test/tools/llvm-mca/X86/BdVer2/dependency-breaking-sbb-2.s Thu May 9 06:54:51 2019
@@ -13,13 +13,13 @@ sbb %eax, %eax
# CHECK: Iterations: 1500
# CHECK-NEXT: Instructions: 4500
-# CHECK-NEXT: Total Cycles: 3006
+# CHECK-NEXT: Total Cycles: 4014
# CHECK-NEXT: Total uOps: 4500
# CHECK: Dispatch Width: 4
-# CHECK-NEXT: uOps Per Cycle: 1.50
-# CHECK-NEXT: IPC: 1.50
-# CHECK-NEXT: Block RThroughput: 1.5
+# CHECK-NEXT: uOps Per Cycle: 1.12
+# CHECK-NEXT: IPC: 1.12
+# CHECK-NEXT: Block RThroughput: 2.0
# CHECK: Instruction Info:
# CHECK-NEXT: [1]: #uOps
@@ -30,8 +30,8 @@ sbb %eax, %eax
# CHECK-NEXT: [6]: HasSideEffects (U)
# CHECK: [1] [2] [3] [4] [5] [6] Instructions:
-# CHECK-NEXT: 1 4 1.00 imull %edx, %eax
-# CHECK-NEXT: 1 1 0.50 addl %edx, %edx
+# CHECK-NEXT: 1 4 2.00 imull %edx, %eax
+# CHECK-NEXT: 1 1 1.00 addl %edx, %edx
# CHECK-NEXT: 1 1 1.00 sbbl %eax, %eax
# CHECK: Resources:
@@ -61,27 +61,27 @@ sbb %eax, %eax
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0.0] [0.1] [1] [2] [3] [4] [5] [6] [7.0] [7.1] [8.0] [8.1] [9] [10] [11] [12] [13] [14] [15] [16.0] [16.1] [17] [18]
-# CHECK-NEXT: - - - - - 2.00 2.00 - - - - - - - - - - - - - - 1.00 -
+# CHECK-NEXT: - - - - - 2.66 2.34 - - - - - - - - - - - - - - 2.00 -
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0.0] [0.1] [1] [2] [3] [4] [5] [6] [7.0] [7.1] [8.0] [8.1] [9] [10] [11] [12] [13] [14] [15] [16.0] [16.1] [17] [18] Instructions:
-# CHECK-NEXT: - - - - - - 1.00 - - - - - - - - - - - - - - 1.00 - imull %edx, %eax
-# CHECK-NEXT: - - - - - - 1.00 - - - - - - - - - - - - - - - - addl %edx, %edx
-# CHECK-NEXT: - - - - - 2.00 - - - - - - - - - - - - - - - - - sbbl %eax, %eax
+# CHECK-NEXT: - - - - - - 1.00 - - - - - - - - - - - - - - 2.00 - imull %edx, %eax
+# CHECK-NEXT: - - - - - 1.33 0.67 - - - - - - - - - - - - - - - - addl %edx, %edx
+# CHECK-NEXT: - - - - - 1.33 0.67 - - - - - - - - - - - - - - - - sbbl %eax, %eax
# CHECK: Timeline view:
-# CHECK-NEXT: 01
+# CHECK-NEXT: 01234
# CHECK-NEXT: Index 0123456789
-# CHECK: [0,0] D=eeeeER .. imull %edx, %eax
-# CHECK-NEXT: [0,1] DeE----R .. addl %edx, %edx
-# CHECK-NEXT: [0,2] D==eE--R .. sbbl %eax, %eax
-# CHECK-NEXT: [1,0] D===eeeeER.. imull %edx, %eax
-# CHECK-NEXT: [1,1] .DeE-----R.. addl %edx, %edx
-# CHECK-NEXT: [1,2] .D===eE--R.. sbbl %eax, %eax
-# CHECK-NEXT: [2,0] .D====eeeeER imull %edx, %eax
-# CHECK-NEXT: [2,1] .D=eE------R addl %edx, %edx
-# CHECK-NEXT: [2,2] . D====eE--R sbbl %eax, %eax
+# CHECK: [0,0] D==eeeeER . . imull %edx, %eax
+# CHECK-NEXT: [0,1] DeE-----R . . addl %edx, %edx
+# CHECK-NEXT: [0,2] D===eE--R . . sbbl %eax, %eax
+# CHECK-NEXT: [1,0] D=====eeeeER . imull %edx, %eax
+# CHECK-NEXT: [1,1] .DeE-------R . addl %edx, %edx
+# CHECK-NEXT: [1,2] .D====eE---R . sbbl %eax, %eax
+# CHECK-NEXT: [2,0] .D=======eeeeER imull %edx, %eax
+# CHECK-NEXT: [2,1] .D==eE--------R addl %edx, %edx
+# CHECK-NEXT: [2,2] . D=====eE----R sbbl %eax, %eax
# CHECK: Average Wait times (based on the timeline view):
# CHECK-NEXT: [0]: Executions
@@ -90,6 +90,6 @@ sbb %eax, %eax
# CHECK-NEXT: [3]: Average time elapsed from WB until retire stage
# CHECK: [0] [1] [2] [3]
-# CHECK-NEXT: 0. 3 3.7 0.7 0.0 imull %edx, %eax
-# CHECK-NEXT: 1. 3 1.3 0.3 5.0 addl %edx, %edx
-# CHECK-NEXT: 2. 3 4.0 2.0 2.0 sbbl %eax, %eax
+# CHECK-NEXT: 0. 3 5.7 2.0 0.0 imull %edx, %eax
+# CHECK-NEXT: 1. 3 1.7 0.7 6.7 addl %edx, %edx
+# CHECK-NEXT: 2. 3 5.0 2.7 3.0 sbbl %eax, %eax
Modified: llvm/trunk/test/tools/llvm-mca/X86/BdVer2/dependent-pmuld-paddd.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-mca/X86/BdVer2/dependent-pmuld-paddd.s?rev=360341&r1=360340&r2=360341&view=diff
==============================================================================
--- llvm/trunk/test/tools/llvm-mca/X86/BdVer2/dependent-pmuld-paddd.s (original)
+++ llvm/trunk/test/tools/llvm-mca/X86/BdVer2/dependent-pmuld-paddd.s Thu May 9 06:54:51 2019
@@ -13,7 +13,7 @@ vpaddd %xmm0, %xmm0, %xmm3
# CHECK: Dispatch Width: 4
# CHECK-NEXT: uOps Per Cycle: 0.50
# CHECK-NEXT: IPC: 0.50
-# CHECK-NEXT: Block RThroughput: 1.0
+# CHECK-NEXT: Block RThroughput: 2.0
# CHECK: Instruction Info:
# CHECK-NEXT: [1]: #uOps
@@ -25,8 +25,8 @@ vpaddd %xmm0, %xmm0, %xmm3
# CHECK: [1] [2] [3] [4] [5] [6] Instructions:
# CHECK-NEXT: 1 4 1.00 vpmuldq %xmm0, %xmm0, %xmm1
-# CHECK-NEXT: 1 2 0.50 vpaddd %xmm1, %xmm1, %xmm0
-# CHECK-NEXT: 1 2 0.50 vpaddd %xmm0, %xmm0, %xmm3
+# CHECK-NEXT: 1 2 1.00 vpaddd %xmm1, %xmm1, %xmm0
+# CHECK-NEXT: 1 2 1.00 vpaddd %xmm0, %xmm0, %xmm3
# CHECK: Resources:
# CHECK-NEXT: [0.0] - PdAGLU01
@@ -55,13 +55,13 @@ vpaddd %xmm0, %xmm0, %xmm3
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0.0] [0.1] [1] [2] [3] [4] [5] [6] [7.0] [7.1] [8.0] [8.1] [9] [10] [11] [12] [13] [14] [15] [16.0] [16.1] [17] [18]
-# CHECK-NEXT: - - - - - - - - - - 1.00 1.00 1.00 - 1.50 1.50 - - - - - - -
+# CHECK-NEXT: - - - - - - - - - - 2.00 2.00 1.00 - 1.50 1.50 - - - - - - -
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0.0] [0.1] [1] [2] [3] [4] [5] [6] [7.0] [7.1] [8.0] [8.1] [9] [10] [11] [12] [13] [14] [15] [16.0] [16.1] [17] [18] Instructions:
# CHECK-NEXT: - - - - - - - - - - - - 1.00 - 1.00 - - - - - - - - vpmuldq %xmm0, %xmm0, %xmm1
-# CHECK-NEXT: - - - - - - - - - - - 1.00 - - 0.50 0.50 - - - - - - - vpaddd %xmm1, %xmm1, %xmm0
-# CHECK-NEXT: - - - - - - - - - - 1.00 - - - - 1.00 - - - - - - - vpaddd %xmm0, %xmm0, %xmm3
+# CHECK-NEXT: - - - - - - - - - - - 2.00 - - 0.50 0.50 - - - - - - - vpaddd %xmm1, %xmm1, %xmm0
+# CHECK-NEXT: - - - - - - - - - - 2.00 - - - - 1.00 - - - - - - - vpaddd %xmm0, %xmm0, %xmm3
# CHECK: Timeline view:
# CHECK-NEXT: 0123456789 0123456789 0123456789
Modified: llvm/trunk/test/tools/llvm-mca/X86/BdVer2/dot-product.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-mca/X86/BdVer2/dot-product.s?rev=360341&r1=360340&r2=360341&view=diff
==============================================================================
--- llvm/trunk/test/tools/llvm-mca/X86/BdVer2/dot-product.s (original)
+++ llvm/trunk/test/tools/llvm-mca/X86/BdVer2/dot-product.s Thu May 9 06:54:51 2019
@@ -7,13 +7,13 @@ vhaddps %xmm3, %xmm3, %xmm4
# CHECK: Iterations: 300
# CHECK-NEXT: Instructions: 900
-# CHECK-NEXT: Total Cycles: 627
+# CHECK-NEXT: Total Cycles: 1709
# CHECK-NEXT: Total uOps: 2100
# CHECK: Dispatch Width: 4
-# CHECK-NEXT: uOps Per Cycle: 3.35
-# CHECK-NEXT: IPC: 1.44
-# CHECK-NEXT: Block RThroughput: 2.0
+# CHECK-NEXT: uOps Per Cycle: 1.23
+# CHECK-NEXT: IPC: 0.53
+# CHECK-NEXT: Block RThroughput: 5.5
# CHECK: Instruction Info:
# CHECK-NEXT: [1]: #uOps
@@ -25,8 +25,8 @@ vhaddps %xmm3, %xmm3, %xmm4
# CHECK: [1] [2] [3] [4] [5] [6] Instructions:
# CHECK-NEXT: 1 5 1.00 vmulps %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 3 11 1.00 vhaddps %xmm2, %xmm2, %xmm3
-# CHECK-NEXT: 3 11 1.00 vhaddps %xmm3, %xmm3, %xmm4
+# CHECK-NEXT: 3 11 2.50 vhaddps %xmm2, %xmm2, %xmm3
+# CHECK-NEXT: 3 11 2.50 vhaddps %xmm3, %xmm3, %xmm4
# CHECK: Resources:
# CHECK-NEXT: [0.0] - PdAGLU01
@@ -55,27 +55,27 @@ vhaddps %xmm3, %xmm3, %xmm4
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0.0] [0.1] [1] [2] [3] [4] [5] [6] [7.0] [7.1] [8.0] [8.1] [9] [10] [11] [12] [13] [14] [15] [16.0] [16.1] [17] [18]
-# CHECK-NEXT: - - - - - - - - 1.50 1.50 - - - - 2.00 1.00 - - - - - - -
+# CHECK-NEXT: - - - - - - - - 5.50 5.50 - - - - 2.00 1.00 - - - - - - -
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0.0] [0.1] [1] [2] [3] [4] [5] [6] [7.0] [7.1] [8.0] [8.1] [9] [10] [11] [12] [13] [14] [15] [16.0] [16.1] [17] [18] Instructions:
# CHECK-NEXT: - - - - - - - - 0.49 0.51 - - - - - 1.00 - - - - - - - vmulps %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - - 0.51 0.49 - - - - 1.00 - - - - - - - - vhaddps %xmm2, %xmm2, %xmm3
-# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 1.00 - - - - - - - - vhaddps %xmm3, %xmm3, %xmm4
+# CHECK-NEXT: - - - - - - - - 2.53 2.47 - - - - 1.00 - - - - - - - - vhaddps %xmm2, %xmm2, %xmm3
+# CHECK-NEXT: - - - - - - - - 2.48 2.52 - - - - 1.00 - - - - - - - - vhaddps %xmm3, %xmm3, %xmm4
# CHECK: Timeline view:
-# CHECK-NEXT: 0123456789 012
+# CHECK-NEXT: 0123456789 01234
# CHECK-NEXT: Index 0123456789 0123456789
-# CHECK: [0,0] DeeeeeER . . . . . . vmulps %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: [0,1] D=====eeeeeeeeeeeER . . . . vhaddps %xmm2, %xmm2, %xmm3
-# CHECK-NEXT: [0,2] .D===============eeeeeeeeeeeER. . vhaddps %xmm3, %xmm3, %xmm4
-# CHECK-NEXT: [1,0] .DeeeeeE---------------------R. . vmulps %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: [1,1] . D====eeeeeeeeeeeE----------R. . vhaddps %xmm2, %xmm2, %xmm3
-# CHECK-NEXT: [1,2] . D==============eeeeeeeeeeeER . vhaddps %xmm3, %xmm3, %xmm4
-# CHECK-NEXT: [2,0] . DeeeeeE--------------------R . vmulps %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: [2,1] . D====eeeeeeeeeeeE---------R . vhaddps %xmm2, %xmm2, %xmm3
-# CHECK-NEXT: [2,2] . D==============eeeeeeeeeeeER vhaddps %xmm3, %xmm3, %xmm4
+# CHECK: [0,0] DeeeeeER . . . . . . vmulps %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: [0,1] D=====eeeeeeeeeeeER . . . . vhaddps %xmm2, %xmm2, %xmm3
+# CHECK-NEXT: [0,2] .D===============eeeeeeeeeeeER. . vhaddps %xmm3, %xmm3, %xmm4
+# CHECK-NEXT: [1,0] .DeeeeeE---------------------R. . vmulps %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: [1,1] . D====eeeeeeeeeeeE----------R. . vhaddps %xmm2, %xmm2, %xmm3
+# CHECK-NEXT: [1,2] . D==============eeeeeeeeeeeER . vhaddps %xmm3, %xmm3, %xmm4
+# CHECK-NEXT: [2,0] . DeeeeeE--------------------R . vmulps %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: [2,1] . D======eeeeeeeeeeeE-------R . vhaddps %xmm2, %xmm2, %xmm3
+# CHECK-NEXT: [2,2] . D================eeeeeeeeeeeER vhaddps %xmm3, %xmm3, %xmm4
# CHECK: Average Wait times (based on the timeline view):
# CHECK-NEXT: [0]: Executions
@@ -85,5 +85,5 @@ vhaddps %xmm3, %xmm3, %xmm4
# CHECK: [0] [1] [2] [3]
# CHECK-NEXT: 0. 3 1.0 1.0 13.7 vmulps %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1. 3 5.3 0.0 6.3 vhaddps %xmm2, %xmm2, %xmm3
-# CHECK-NEXT: 2. 3 15.3 0.0 0.0 vhaddps %xmm3, %xmm3, %xmm4
+# CHECK-NEXT: 1. 3 6.0 0.7 5.7 vhaddps %xmm2, %xmm2, %xmm3
+# CHECK-NEXT: 2. 3 16.0 0.0 0.0 vhaddps %xmm3, %xmm3, %xmm4
Modified: llvm/trunk/test/tools/llvm-mca/X86/BdVer2/hadd-read-after-ld-1.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-mca/X86/BdVer2/hadd-read-after-ld-1.s?rev=360341&r1=360340&r2=360341&view=diff
==============================================================================
--- llvm/trunk/test/tools/llvm-mca/X86/BdVer2/hadd-read-after-ld-1.s (original)
+++ llvm/trunk/test/tools/llvm-mca/X86/BdVer2/hadd-read-after-ld-1.s Thu May 9 06:54:51 2019
@@ -12,7 +12,7 @@ vhaddps (%rdi), %xmm1, %xmm2
# CHECK: Dispatch Width: 4
# CHECK-NEXT: uOps Per Cycle: 0.25
# CHECK-NEXT: IPC: 0.10
-# CHECK-NEXT: Block RThroughput: 1.3
+# CHECK-NEXT: Block RThroughput: 3.5
# CHECK: Instruction Info:
# CHECK-NEXT: [1]: #uOps
@@ -23,8 +23,8 @@ vhaddps (%rdi), %xmm1, %xmm2
# CHECK-NEXT: [6]: HasSideEffects (U)
# CHECK: [1] [2] [3] [4] [5] [6] Instructions:
-# CHECK-NEXT: 1 2 0.50 vshufps $0, %xmm0, %xmm1, %xmm1
-# CHECK-NEXT: 4 16 1.00 * vhaddps (%rdi), %xmm1, %xmm2
+# CHECK-NEXT: 1 2 1.00 vshufps $0, %xmm0, %xmm1, %xmm1
+# CHECK-NEXT: 4 16 2.50 * vhaddps (%rdi), %xmm1, %xmm2
# CHECK: Timeline view:
# CHECK-NEXT: 0123456789
Modified: llvm/trunk/test/tools/llvm-mca/X86/BdVer2/hadd-read-after-ld-2.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-mca/X86/BdVer2/hadd-read-after-ld-2.s?rev=360341&r1=360340&r2=360341&view=diff
==============================================================================
--- llvm/trunk/test/tools/llvm-mca/X86/BdVer2/hadd-read-after-ld-2.s (original)
+++ llvm/trunk/test/tools/llvm-mca/X86/BdVer2/hadd-read-after-ld-2.s Thu May 9 06:54:51 2019
@@ -12,7 +12,7 @@ vhaddps (%rdi), %ymm1, %ymm2
# CHECK: Dispatch Width: 4
# CHECK-NEXT: uOps Per Cycle: 0.55
# CHECK-NEXT: IPC: 0.10
-# CHECK-NEXT: Block RThroughput: 2.8
+# CHECK-NEXT: Block RThroughput: 5.0
# CHECK: Instruction Info:
# CHECK-NEXT: [1]: #uOps
@@ -23,8 +23,8 @@ vhaddps (%rdi), %ymm1, %ymm2
# CHECK-NEXT: [6]: HasSideEffects (U)
# CHECK: [1] [2] [3] [4] [5] [6] Instructions:
-# CHECK-NEXT: 1 2 0.50 vshufps $0, %xmm0, %xmm1, %xmm1
-# CHECK-NEXT: 10 16 2.00 * vhaddps (%rdi), %ymm1, %ymm2
+# CHECK-NEXT: 1 2 1.00 vshufps $0, %xmm0, %xmm1, %xmm1
+# CHECK-NEXT: 10 16 4.00 * vhaddps (%rdi), %ymm1, %ymm2
# CHECK: Timeline view:
# CHECK-NEXT: 0123456789
Modified: llvm/trunk/test/tools/llvm-mca/X86/BdVer2/instruction-info-view.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-mca/X86/BdVer2/instruction-info-view.s?rev=360341&r1=360340&r2=360341&view=diff
==============================================================================
--- llvm/trunk/test/tools/llvm-mca/X86/BdVer2/instruction-info-view.s (original)
+++ llvm/trunk/test/tools/llvm-mca/X86/BdVer2/instruction-info-view.s Thu May 9 06:54:51 2019
@@ -13,14 +13,14 @@ vhaddps %xmm3, %xmm3, %xmm4
# ENABLED: Iterations: 100
# ENABLED-NEXT: Instructions: 300
-# ENABLED-NEXT: Total Cycles: 228
+# ENABLED-NEXT: Total Cycles: 583
# ENABLED-NEXT: Total uOps: 700
# ENABLED: Dispatch Width: 4
-# ENABLED-NEXT: uOps Per Cycle: 3.07
-# ENABLED-NEXT: IPC: 1.32
-# ENABLED-NEXT: Block RThroughput: 2.0
+# ENABLED-NEXT: uOps Per Cycle: 1.20
+# ENABLED-NEXT: IPC: 0.51
+# ENABLED-NEXT: Block RThroughput: 5.5
# ENABLED: Instruction Info:
# ENABLED-NEXT: [1]: #uOps
@@ -32,5 +32,5 @@ vhaddps %xmm3, %xmm3, %xmm4
# ENABLED: [1] [2] [3] [4] [5] [6] Instructions:
# ENABLED-NEXT: 1 5 1.00 vmulps %xmm0, %xmm1, %xmm2
-# ENABLED-NEXT: 3 11 1.00 vhaddps %xmm2, %xmm2, %xmm3
-# ENABLED-NEXT: 3 11 1.00 vhaddps %xmm3, %xmm3, %xmm4
+# ENABLED-NEXT: 3 11 2.50 vhaddps %xmm2, %xmm2, %xmm3
+# ENABLED-NEXT: 3 11 2.50 vhaddps %xmm3, %xmm3, %xmm4
Modified: llvm/trunk/test/tools/llvm-mca/X86/BdVer2/int-to-fpu-forwarding-1.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-mca/X86/BdVer2/int-to-fpu-forwarding-1.s?rev=360341&r1=360340&r2=360341&view=diff
==============================================================================
--- llvm/trunk/test/tools/llvm-mca/X86/BdVer2/int-to-fpu-forwarding-1.s (original)
+++ llvm/trunk/test/tools/llvm-mca/X86/BdVer2/int-to-fpu-forwarding-1.s Thu May 9 06:54:51 2019
@@ -31,7 +31,7 @@ vpinsrq $1, %rax, %xmm0, %xmm0
# CHECK: Dispatch Width: 4
# CHECK-NEXT: uOps Per Cycle: 1.00
# CHECK-NEXT: IPC: 0.50
-# CHECK-NEXT: Block RThroughput: 1.0
+# CHECK-NEXT: Block RThroughput: 3.0
# CHECK: Instruction Info:
# CHECK-NEXT: [1]: #uOps
@@ -42,8 +42,8 @@ vpinsrq $1, %rax, %xmm0, %xmm0
# CHECK-NEXT: [6]: HasSideEffects (U)
# CHECK: [1] [2] [3] [4] [5] [6] Instructions:
-# CHECK-NEXT: 2 12 0.50 vpinsrb $0, %eax, %xmm0, %xmm0
-# CHECK-NEXT: 2 12 0.50 vpinsrb $1, %eax, %xmm0, %xmm0
+# CHECK-NEXT: 2 12 1.50 vpinsrb $0, %eax, %xmm0, %xmm0
+# CHECK-NEXT: 2 12 1.50 vpinsrb $1, %eax, %xmm0, %xmm0
# CHECK: Resources:
# CHECK-NEXT: [0.0] - PdAGLU01
@@ -72,12 +72,12 @@ vpinsrq $1, %rax, %xmm0, %xmm0
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0.0] [0.1] [1] [2] [3] [4] [5] [6] [7.0] [7.1] [8.0] [8.1] [9] [10] [11] [12] [13] [14] [15] [16.0] [16.1] [17] [18]
-# CHECK-NEXT: - - - - - - - - - - 1.00 1.00 - - 1.00 1.00 - - - - - - -
+# CHECK-NEXT: - - - - - - - - - - 3.00 3.00 - - 1.00 1.00 - - - - - - -
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0.0] [0.1] [1] [2] [3] [4] [5] [6] [7.0] [7.1] [8.0] [8.1] [9] [10] [11] [12] [13] [14] [15] [16.0] [16.1] [17] [18] Instructions:
-# CHECK-NEXT: - - - - - - - - - - - 1.00 - - - 1.00 - - - - - - - vpinsrb $0, %eax, %xmm0, %xmm0
-# CHECK-NEXT: - - - - - - - - - - 1.00 - - - 1.00 - - - - - - - - vpinsrb $1, %eax, %xmm0, %xmm0
+# CHECK-NEXT: - - - - - - - - - - - 3.00 - - - 1.00 - - - - - - - vpinsrb $0, %eax, %xmm0, %xmm0
+# CHECK-NEXT: - - - - - - - - - - 3.00 - - - 1.00 - - - - - - - - vpinsrb $1, %eax, %xmm0, %xmm0
# CHECK: [1] Code Region
@@ -89,7 +89,7 @@ vpinsrq $1, %rax, %xmm0, %xmm0
# CHECK: Dispatch Width: 4
# CHECK-NEXT: uOps Per Cycle: 1.00
# CHECK-NEXT: IPC: 0.50
-# CHECK-NEXT: Block RThroughput: 1.0
+# CHECK-NEXT: Block RThroughput: 3.0
# CHECK: Instruction Info:
# CHECK-NEXT: [1]: #uOps
@@ -100,8 +100,8 @@ vpinsrq $1, %rax, %xmm0, %xmm0
# CHECK-NEXT: [6]: HasSideEffects (U)
# CHECK: [1] [2] [3] [4] [5] [6] Instructions:
-# CHECK-NEXT: 2 12 0.50 vpinsrw $0, %eax, %xmm0, %xmm0
-# CHECK-NEXT: 2 12 0.50 vpinsrw $1, %eax, %xmm0, %xmm0
+# CHECK-NEXT: 2 12 1.50 vpinsrw $0, %eax, %xmm0, %xmm0
+# CHECK-NEXT: 2 12 1.50 vpinsrw $1, %eax, %xmm0, %xmm0
# CHECK: Resources:
# CHECK-NEXT: [0.0] - PdAGLU01
@@ -130,12 +130,12 @@ vpinsrq $1, %rax, %xmm0, %xmm0
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0.0] [0.1] [1] [2] [3] [4] [5] [6] [7.0] [7.1] [8.0] [8.1] [9] [10] [11] [12] [13] [14] [15] [16.0] [16.1] [17] [18]
-# CHECK-NEXT: - - - - - - - - - - 1.00 1.00 - - 1.00 1.00 - - - - - - -
+# CHECK-NEXT: - - - - - - - - - - 3.00 3.00 - - 1.00 1.00 - - - - - - -
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0.0] [0.1] [1] [2] [3] [4] [5] [6] [7.0] [7.1] [8.0] [8.1] [9] [10] [11] [12] [13] [14] [15] [16.0] [16.1] [17] [18] Instructions:
-# CHECK-NEXT: - - - - - - - - - - - 1.00 - - - 1.00 - - - - - - - vpinsrw $0, %eax, %xmm0, %xmm0
-# CHECK-NEXT: - - - - - - - - - - 1.00 - - - 1.00 - - - - - - - - vpinsrw $1, %eax, %xmm0, %xmm0
+# CHECK-NEXT: - - - - - - - - - - - 3.00 - - - 1.00 - - - - - - - vpinsrw $0, %eax, %xmm0, %xmm0
+# CHECK-NEXT: - - - - - - - - - - 3.00 - - - 1.00 - - - - - - - - vpinsrw $1, %eax, %xmm0, %xmm0
# CHECK: [2] Code Region
@@ -147,7 +147,7 @@ vpinsrq $1, %rax, %xmm0, %xmm0
# CHECK: Dispatch Width: 4
# CHECK-NEXT: uOps Per Cycle: 1.00
# CHECK-NEXT: IPC: 0.50
-# CHECK-NEXT: Block RThroughput: 1.0
+# CHECK-NEXT: Block RThroughput: 3.0
# CHECK: Instruction Info:
# CHECK-NEXT: [1]: #uOps
@@ -158,8 +158,8 @@ vpinsrq $1, %rax, %xmm0, %xmm0
# CHECK-NEXT: [6]: HasSideEffects (U)
# CHECK: [1] [2] [3] [4] [5] [6] Instructions:
-# CHECK-NEXT: 2 12 0.50 vpinsrd $0, %eax, %xmm0, %xmm0
-# CHECK-NEXT: 2 12 0.50 vpinsrd $1, %eax, %xmm0, %xmm0
+# CHECK-NEXT: 2 12 1.50 vpinsrd $0, %eax, %xmm0, %xmm0
+# CHECK-NEXT: 2 12 1.50 vpinsrd $1, %eax, %xmm0, %xmm0
# CHECK: Resources:
# CHECK-NEXT: [0.0] - PdAGLU01
@@ -188,12 +188,12 @@ vpinsrq $1, %rax, %xmm0, %xmm0
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0.0] [0.1] [1] [2] [3] [4] [5] [6] [7.0] [7.1] [8.0] [8.1] [9] [10] [11] [12] [13] [14] [15] [16.0] [16.1] [17] [18]
-# CHECK-NEXT: - - - - - - - - - - 1.00 1.00 - - 1.00 1.00 - - - - - - -
+# CHECK-NEXT: - - - - - - - - - - 3.00 3.00 - - 1.00 1.00 - - - - - - -
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0.0] [0.1] [1] [2] [3] [4] [5] [6] [7.0] [7.1] [8.0] [8.1] [9] [10] [11] [12] [13] [14] [15] [16.0] [16.1] [17] [18] Instructions:
-# CHECK-NEXT: - - - - - - - - - - - 1.00 - - - 1.00 - - - - - - - vpinsrd $0, %eax, %xmm0, %xmm0
-# CHECK-NEXT: - - - - - - - - - - 1.00 - - - 1.00 - - - - - - - - vpinsrd $1, %eax, %xmm0, %xmm0
+# CHECK-NEXT: - - - - - - - - - - - 3.00 - - - 1.00 - - - - - - - vpinsrd $0, %eax, %xmm0, %xmm0
+# CHECK-NEXT: - - - - - - - - - - 3.00 - - - 1.00 - - - - - - - - vpinsrd $1, %eax, %xmm0, %xmm0
# CHECK: [3] Code Region
@@ -205,7 +205,7 @@ vpinsrq $1, %rax, %xmm0, %xmm0
# CHECK: Dispatch Width: 4
# CHECK-NEXT: uOps Per Cycle: 1.00
# CHECK-NEXT: IPC: 0.50
-# CHECK-NEXT: Block RThroughput: 1.0
+# CHECK-NEXT: Block RThroughput: 3.0
# CHECK: Instruction Info:
# CHECK-NEXT: [1]: #uOps
@@ -216,8 +216,8 @@ vpinsrq $1, %rax, %xmm0, %xmm0
# CHECK-NEXT: [6]: HasSideEffects (U)
# CHECK: [1] [2] [3] [4] [5] [6] Instructions:
-# CHECK-NEXT: 2 12 0.50 vpinsrq $0, %rax, %xmm0, %xmm0
-# CHECK-NEXT: 2 12 0.50 vpinsrq $1, %rax, %xmm0, %xmm0
+# CHECK-NEXT: 2 12 1.50 vpinsrq $0, %rax, %xmm0, %xmm0
+# CHECK-NEXT: 2 12 1.50 vpinsrq $1, %rax, %xmm0, %xmm0
# CHECK: Resources:
# CHECK-NEXT: [0.0] - PdAGLU01
@@ -246,9 +246,9 @@ vpinsrq $1, %rax, %xmm0, %xmm0
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0.0] [0.1] [1] [2] [3] [4] [5] [6] [7.0] [7.1] [8.0] [8.1] [9] [10] [11] [12] [13] [14] [15] [16.0] [16.1] [17] [18]
-# CHECK-NEXT: - - - - - - - - - - 1.00 1.00 - - 1.00 1.00 - - - - - - -
+# CHECK-NEXT: - - - - - - - - - - 3.00 3.00 - - 1.00 1.00 - - - - - - -
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0.0] [0.1] [1] [2] [3] [4] [5] [6] [7.0] [7.1] [8.0] [8.1] [9] [10] [11] [12] [13] [14] [15] [16.0] [16.1] [17] [18] Instructions:
-# CHECK-NEXT: - - - - - - - - - - - 1.00 - - - 1.00 - - - - - - - vpinsrq $0, %rax, %xmm0, %xmm0
-# CHECK-NEXT: - - - - - - - - - - 1.00 - - - 1.00 - - - - - - - - vpinsrq $1, %rax, %xmm0, %xmm0
+# CHECK-NEXT: - - - - - - - - - - - 3.00 - - - 1.00 - - - - - - - vpinsrq $0, %rax, %xmm0, %xmm0
+# CHECK-NEXT: - - - - - - - - - - 3.00 - - - 1.00 - - - - - - - - vpinsrq $1, %rax, %xmm0, %xmm0
Modified: llvm/trunk/test/tools/llvm-mca/X86/BdVer2/int-to-fpu-forwarding-2.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-mca/X86/BdVer2/int-to-fpu-forwarding-2.s?rev=360341&r1=360340&r2=360341&view=diff
==============================================================================
--- llvm/trunk/test/tools/llvm-mca/X86/BdVer2/int-to-fpu-forwarding-2.s (original)
+++ llvm/trunk/test/tools/llvm-mca/X86/BdVer2/int-to-fpu-forwarding-2.s Thu May 9 06:54:51 2019
@@ -75,11 +75,11 @@ movq %rcx, %xmm0
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0.0] [0.1] [1] [2] [3] [4] [5] [6] [7.0] [7.1] [8.0] [8.1] [9] [10] [11] [12] [13] [14] [15] [16.0] [16.1] [17] [18]
-# CHECK-NEXT: - - - - - - - - - - - - - 1.00 - 1.00 - - - - - - -
+# CHECK-NEXT: - - - - - - - 1.00 - - - - - 1.00 1.00 - - - - - - - -
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0.0] [0.1] [1] [2] [3] [4] [5] [6] [7.0] [7.1] [8.0] [8.1] [9] [10] [11] [12] [13] [14] [15] [16.0] [16.1] [17] [18] Instructions:
-# CHECK-NEXT: - - - - - - - - - - - - - 1.00 - 1.00 - - - - - - - vcvtsi2ss %ecx, %xmm0, %xmm0
+# CHECK-NEXT: - - - - - - - 1.00 - - - - - 1.00 1.00 - - - - - - - - vcvtsi2ss %ecx, %xmm0, %xmm0
# CHECK: [1] Code Region
@@ -131,22 +131,22 @@ movq %rcx, %xmm0
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0.0] [0.1] [1] [2] [3] [4] [5] [6] [7.0] [7.1] [8.0] [8.1] [9] [10] [11] [12] [13] [14] [15] [16.0] [16.1] [17] [18]
-# CHECK-NEXT: - - - - - - - - - - - - - 1.00 - 1.00 - - - - - - -
+# CHECK-NEXT: - - - - - - - 1.00 - - - - - 1.00 1.00 - - - - - - - -
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0.0] [0.1] [1] [2] [3] [4] [5] [6] [7.0] [7.1] [8.0] [8.1] [9] [10] [11] [12] [13] [14] [15] [16.0] [16.1] [17] [18] Instructions:
-# CHECK-NEXT: - - - - - - - - - - - - - 1.00 - 1.00 - - - - - - - vcvtsi2sd %ecx, %xmm0, %xmm0
+# CHECK-NEXT: - - - - - - - 1.00 - - - - - 1.00 1.00 - - - - - - - - vcvtsi2sd %ecx, %xmm0, %xmm0
# CHECK: [2] Code Region
# CHECK: Iterations: 500
# CHECK-NEXT: Instructions: 500
-# CHECK-NEXT: Total Cycles: 6503
+# CHECK-NEXT: Total Cycles: 2003
# CHECK-NEXT: Total uOps: 1000
# CHECK: Dispatch Width: 4
-# CHECK-NEXT: uOps Per Cycle: 0.15
-# CHECK-NEXT: IPC: 0.08
+# CHECK-NEXT: uOps Per Cycle: 0.50
+# CHECK-NEXT: IPC: 0.25
# CHECK-NEXT: Block RThroughput: 1.0
# CHECK: Instruction Info:
@@ -158,7 +158,7 @@ movq %rcx, %xmm0
# CHECK-NEXT: [6]: HasSideEffects (U)
# CHECK: [1] [2] [3] [4] [5] [6] Instructions:
-# CHECK-NEXT: 2 13 1.00 cvtsi2ss %ecx, %xmm0
+# CHECK-NEXT: 2 14 1.00 cvtsi2ss %ecx, %xmm0
# CHECK: Resources:
# CHECK-NEXT: [0.0] - PdAGLU01
@@ -187,22 +187,22 @@ movq %rcx, %xmm0
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0.0] [0.1] [1] [2] [3] [4] [5] [6] [7.0] [7.1] [8.0] [8.1] [9] [10] [11] [12] [13] [14] [15] [16.0] [16.1] [17] [18]
-# CHECK-NEXT: - - - - - - - - - - - - - 1.00 - 1.00 - - - - - - -
+# CHECK-NEXT: - - - - - - - 1.00 - - - - - 1.00 1.00 - - - - - - - -
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0.0] [0.1] [1] [2] [3] [4] [5] [6] [7.0] [7.1] [8.0] [8.1] [9] [10] [11] [12] [13] [14] [15] [16.0] [16.1] [17] [18] Instructions:
-# CHECK-NEXT: - - - - - - - - - - - - - 1.00 - 1.00 - - - - - - - cvtsi2ss %ecx, %xmm0
+# CHECK-NEXT: - - - - - - - 1.00 - - - - - 1.00 1.00 - - - - - - - - cvtsi2ss %ecx, %xmm0
# CHECK: [3] Code Region
# CHECK: Iterations: 500
# CHECK-NEXT: Instructions: 500
-# CHECK-NEXT: Total Cycles: 6503
+# CHECK-NEXT: Total Cycles: 2003
# CHECK-NEXT: Total uOps: 1000
# CHECK: Dispatch Width: 4
-# CHECK-NEXT: uOps Per Cycle: 0.15
-# CHECK-NEXT: IPC: 0.08
+# CHECK-NEXT: uOps Per Cycle: 0.50
+# CHECK-NEXT: IPC: 0.25
# CHECK-NEXT: Block RThroughput: 1.0
# CHECK: Instruction Info:
@@ -214,7 +214,7 @@ movq %rcx, %xmm0
# CHECK-NEXT: [6]: HasSideEffects (U)
# CHECK: [1] [2] [3] [4] [5] [6] Instructions:
-# CHECK-NEXT: 2 13 1.00 cvtsi2sd %ecx, %xmm0
+# CHECK-NEXT: 2 14 1.00 cvtsi2sd %ecx, %xmm0
# CHECK: Resources:
# CHECK-NEXT: [0.0] - PdAGLU01
@@ -243,23 +243,23 @@ movq %rcx, %xmm0
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0.0] [0.1] [1] [2] [3] [4] [5] [6] [7.0] [7.1] [8.0] [8.1] [9] [10] [11] [12] [13] [14] [15] [16.0] [16.1] [17] [18]
-# CHECK-NEXT: - - - - - - - - - - - - - 1.00 - 1.00 - - - - - - -
+# CHECK-NEXT: - - - - - - - 1.00 - - - - - 1.00 1.00 - - - - - - - -
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0.0] [0.1] [1] [2] [3] [4] [5] [6] [7.0] [7.1] [8.0] [8.1] [9] [10] [11] [12] [13] [14] [15] [16.0] [16.1] [17] [18] Instructions:
-# CHECK-NEXT: - - - - - - - - - - - - - 1.00 - 1.00 - - - - - - - cvtsi2sd %ecx, %xmm0
+# CHECK-NEXT: - - - - - - - 1.00 - - - - - 1.00 1.00 - - - - - - - - cvtsi2sd %ecx, %xmm0
# CHECK: [4] Code Region
# CHECK: Iterations: 500
# CHECK-NEXT: Instructions: 500
-# CHECK-NEXT: Total Cycles: 263
+# CHECK-NEXT: Total Cycles: 512
# CHECK-NEXT: Total uOps: 1000
# CHECK: Dispatch Width: 4
-# CHECK-NEXT: uOps Per Cycle: 3.80
-# CHECK-NEXT: IPC: 1.90
-# CHECK-NEXT: Block RThroughput: 0.5
+# CHECK-NEXT: uOps Per Cycle: 1.95
+# CHECK-NEXT: IPC: 0.98
+# CHECK-NEXT: Block RThroughput: 1.0
# CHECK: Instruction Info:
# CHECK-NEXT: [1]: #uOps
@@ -270,7 +270,7 @@ movq %rcx, %xmm0
# CHECK-NEXT: [6]: HasSideEffects (U)
# CHECK: [1] [2] [3] [4] [5] [6] Instructions:
-# CHECK-NEXT: 2 11 0.50 movd %ecx, %xmm0
+# CHECK-NEXT: 2 11 1.00 movd %ecx, %xmm0
# CHECK: Resources:
# CHECK-NEXT: [0.0] - PdAGLU01
@@ -299,23 +299,23 @@ movq %rcx, %xmm0
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0.0] [0.1] [1] [2] [3] [4] [5] [6] [7.0] [7.1] [8.0] [8.1] [9] [10] [11] [12] [13] [14] [15] [16.0] [16.1] [17] [18]
-# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - -
+# CHECK-NEXT: - - - - - - - - 1.00 1.00 - - - - 0.50 0.50 - - - - - - -
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0.0] [0.1] [1] [2] [3] [4] [5] [6] [7.0] [7.1] [8.0] [8.1] [9] [10] [11] [12] [13] [14] [15] [16.0] [16.1] [17] [18] Instructions:
-# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - movd %ecx, %xmm0
+# CHECK-NEXT: - - - - - - - - 1.00 1.00 - - - - 0.50 0.50 - - - - - - - movd %ecx, %xmm0
# CHECK: [5] Code Region
# CHECK: Iterations: 500
# CHECK-NEXT: Instructions: 500
-# CHECK-NEXT: Total Cycles: 263
+# CHECK-NEXT: Total Cycles: 512
# CHECK-NEXT: Total uOps: 1000
# CHECK: Dispatch Width: 4
-# CHECK-NEXT: uOps Per Cycle: 3.80
-# CHECK-NEXT: IPC: 1.90
-# CHECK-NEXT: Block RThroughput: 0.5
+# CHECK-NEXT: uOps Per Cycle: 1.95
+# CHECK-NEXT: IPC: 0.98
+# CHECK-NEXT: Block RThroughput: 1.0
# CHECK: Instruction Info:
# CHECK-NEXT: [1]: #uOps
@@ -326,7 +326,7 @@ movq %rcx, %xmm0
# CHECK-NEXT: [6]: HasSideEffects (U)
# CHECK: [1] [2] [3] [4] [5] [6] Instructions:
-# CHECK-NEXT: 2 11 0.50 movq %rcx, %xmm0
+# CHECK-NEXT: 2 11 1.00 movq %rcx, %xmm0
# CHECK: Resources:
# CHECK-NEXT: [0.0] - PdAGLU01
@@ -355,8 +355,8 @@ movq %rcx, %xmm0
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0.0] [0.1] [1] [2] [3] [4] [5] [6] [7.0] [7.1] [8.0] [8.1] [9] [10] [11] [12] [13] [14] [15] [16.0] [16.1] [17] [18]
-# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - -
+# CHECK-NEXT: - - - - - - - - 1.00 1.00 - - - - 0.50 0.50 - - - - - - -
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0.0] [0.1] [1] [2] [3] [4] [5] [6] [7.0] [7.1] [8.0] [8.1] [9] [10] [11] [12] [13] [14] [15] [16.0] [16.1] [17] [18] Instructions:
-# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - movq %rcx, %xmm0
+# CHECK-NEXT: - - - - - - - - 1.00 1.00 - - - - 0.50 0.50 - - - - - - - movq %rcx, %xmm0
Modified: llvm/trunk/test/tools/llvm-mca/X86/BdVer2/int-to-fpu-forwarding-3.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-mca/X86/BdVer2/int-to-fpu-forwarding-3.s?rev=360341&r1=360340&r2=360341&view=diff
==============================================================================
--- llvm/trunk/test/tools/llvm-mca/X86/BdVer2/int-to-fpu-forwarding-3.s (original)
+++ llvm/trunk/test/tools/llvm-mca/X86/BdVer2/int-to-fpu-forwarding-3.s Thu May 9 06:54:51 2019
@@ -13,7 +13,7 @@ vpinsrb $1, %eax, %xmm0, %xmm0
# CHECK: Dispatch Width: 4
# CHECK-NEXT: uOps Per Cycle: 1.24
# CHECK-NEXT: IPC: 0.74
-# CHECK-NEXT: Block RThroughput: 1.3
+# CHECK-NEXT: Block RThroughput: 3.0
# CHECK: Instruction Info:
# CHECK-NEXT: [1]: #uOps
@@ -24,9 +24,9 @@ vpinsrb $1, %eax, %xmm0, %xmm0
# CHECK-NEXT: [6]: HasSideEffects (U)
# CHECK: [1] [2] [3] [4] [5] [6] Instructions:
-# CHECK-NEXT: 1 1 0.50 addl %eax, %eax
-# CHECK-NEXT: 2 12 0.50 vpinsrb $0, %eax, %xmm0, %xmm0
-# CHECK-NEXT: 2 12 0.50 vpinsrb $1, %eax, %xmm0, %xmm0
+# CHECK-NEXT: 1 1 1.00 addl %eax, %eax
+# CHECK-NEXT: 2 12 1.50 vpinsrb $0, %eax, %xmm0, %xmm0
+# CHECK-NEXT: 2 12 1.50 vpinsrb $1, %eax, %xmm0, %xmm0
# CHECK: Resources:
# CHECK-NEXT: [0.0] - PdAGLU01
@@ -55,13 +55,13 @@ vpinsrb $1, %eax, %xmm0, %xmm0
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0.0] [0.1] [1] [2] [3] [4] [5] [6] [7.0] [7.1] [8.0] [8.1] [9] [10] [11] [12] [13] [14] [15] [16.0] [16.1] [17] [18]
-# CHECK-NEXT: - - - - - 0.50 0.50 - - - 1.00 1.00 - - 1.00 1.00 - - - - - - -
+# CHECK-NEXT: - - - - - 1.00 1.00 - - - 3.00 3.00 - - 1.00 1.00 - - - - - - -
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0.0] [0.1] [1] [2] [3] [4] [5] [6] [7.0] [7.1] [8.0] [8.1] [9] [10] [11] [12] [13] [14] [15] [16.0] [16.1] [17] [18] Instructions:
-# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - addl %eax, %eax
-# CHECK-NEXT: - - - - - - - - - - - 1.00 - - - 1.00 - - - - - - - vpinsrb $0, %eax, %xmm0, %xmm0
-# CHECK-NEXT: - - - - - - - - - - 1.00 - - - 1.00 - - - - - - - - vpinsrb $1, %eax, %xmm0, %xmm0
+# CHECK-NEXT: - - - - - 1.00 1.00 - - - - - - - - - - - - - - - - addl %eax, %eax
+# CHECK-NEXT: - - - - - - - - - - - 3.00 - - - 1.00 - - - - - - - vpinsrb $0, %eax, %xmm0, %xmm0
+# CHECK-NEXT: - - - - - - - - - - 3.00 - - - 1.00 - - - - - - - - vpinsrb $1, %eax, %xmm0, %xmm0
# CHECK: Timeline view:
# CHECK-NEXT: 0123456789
Modified: llvm/trunk/test/tools/llvm-mca/X86/BdVer2/load-store-alias.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-mca/X86/BdVer2/load-store-alias.s?rev=360341&r1=360340&r2=360341&view=diff
==============================================================================
--- llvm/trunk/test/tools/llvm-mca/X86/BdVer2/load-store-alias.s (original)
+++ llvm/trunk/test/tools/llvm-mca/X86/BdVer2/load-store-alias.s Thu May 9 06:54:51 2019
@@ -18,7 +18,7 @@ vmovaps %xmm0, 48(%rdi)
# CHECK: Dispatch Width: 4
# CHECK-NEXT: uOps Per Cycle: 0.33
# CHECK-NEXT: IPC: 0.33
-# CHECK-NEXT: Block RThroughput: 4.0
+# CHECK-NEXT: Block RThroughput: 8.0
# CHECK: Instruction Info:
# CHECK-NEXT: [1]: #uOps
@@ -29,14 +29,14 @@ vmovaps %xmm0, 48(%rdi)
# CHECK-NEXT: [6]: HasSideEffects (U)
# CHECK: [1] [2] [3] [4] [5] [6] Instructions:
-# CHECK-NEXT: 1 5 0.50 * vmovaps (%rsi), %xmm0
-# CHECK-NEXT: 1 1 1.00 * vmovaps %xmm0, (%rdi)
-# CHECK-NEXT: 1 5 0.50 * vmovaps 16(%rsi), %xmm0
-# CHECK-NEXT: 1 1 1.00 * vmovaps %xmm0, 16(%rdi)
-# CHECK-NEXT: 1 5 0.50 * vmovaps 32(%rsi), %xmm0
-# CHECK-NEXT: 1 1 1.00 * vmovaps %xmm0, 32(%rdi)
-# CHECK-NEXT: 1 5 0.50 * vmovaps 48(%rsi), %xmm0
-# CHECK-NEXT: 1 1 1.00 * vmovaps %xmm0, 48(%rdi)
+# CHECK-NEXT: 1 5 1.50 * vmovaps (%rsi), %xmm0
+# CHECK-NEXT: 1 1 1.50 * vmovaps %xmm0, (%rdi)
+# CHECK-NEXT: 1 5 1.50 * vmovaps 16(%rsi), %xmm0
+# CHECK-NEXT: 1 1 1.50 * vmovaps %xmm0, 16(%rdi)
+# CHECK-NEXT: 1 5 1.50 * vmovaps 32(%rsi), %xmm0
+# CHECK-NEXT: 1 1 1.50 * vmovaps %xmm0, 32(%rdi)
+# CHECK-NEXT: 1 5 1.50 * vmovaps 48(%rsi), %xmm0
+# CHECK-NEXT: 1 1 1.50 * vmovaps %xmm0, 48(%rdi)
# CHECK: Resources:
# CHECK-NEXT: [0.0] - PdAGLU01
@@ -65,18 +65,18 @@ vmovaps %xmm0, 48(%rdi)
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0.0] [0.1] [1] [2] [3] [4] [5] [6] [7.0] [7.1] [8.0] [8.1] [9] [10] [11] [12] [13] [14] [15] [16.0] [16.1] [17] [18]
-# CHECK-NEXT: 4.00 4.00 - - - - - - 2.00 2.00 - - - 4.00 3.99 4.01 - - - 2.00 2.00 - 4.00
+# CHECK-NEXT: 4.00 12.00 - - - - - - 6.00 6.00 - - - 4.00 2.00 2.00 6.00 6.00 - 6.00 6.00 - 4.00
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0.0] [0.1] [1] [2] [3] [4] [5] [6] [7.0] [7.1] [8.0] [8.1] [9] [10] [11] [12] [13] [14] [15] [16.0] [16.1] [17] [18] Instructions:
-# CHECK-NEXT: - 1.00 - - - - - - - 1.00 - - - - 0.99 0.01 - - - - 1.00 - - vmovaps (%rsi), %xmm0
-# CHECK-NEXT: 1.00 - - - - - - - - - - - - 1.00 - 1.00 - - - - - - 1.00 vmovaps %xmm0, (%rdi)
-# CHECK-NEXT: - 1.00 - - - - - - 1.00 - - - - - 1.00 - - - - 1.00 - - - vmovaps 16(%rsi), %xmm0
-# CHECK-NEXT: 1.00 - - - - - - - - - - - - 1.00 - 1.00 - - - - - - 1.00 vmovaps %xmm0, 16(%rdi)
-# CHECK-NEXT: - 1.00 - - - - - - - 1.00 - - - - 1.00 - - - - - 1.00 - - vmovaps 32(%rsi), %xmm0
-# CHECK-NEXT: 1.00 - - - - - - - - - - - - 1.00 - 1.00 - - - - - - 1.00 vmovaps %xmm0, 32(%rdi)
-# CHECK-NEXT: - 1.00 - - - - - - 1.00 - - - - - 1.00 - - - - 1.00 - - - vmovaps 48(%rsi), %xmm0
-# CHECK-NEXT: 1.00 - - - - - - - - - - - - 1.00 - 1.00 - - - - - - 1.00 vmovaps %xmm0, 48(%rdi)
+# CHECK-NEXT: - 3.00 - - - - - - - 3.00 - - - - - 1.00 - - - - 3.00 - - vmovaps (%rsi), %xmm0
+# CHECK-NEXT: 1.00 - - - - - - - - - - - - 1.00 - - - 3.00 - - - - 1.00 vmovaps %xmm0, (%rdi)
+# CHECK-NEXT: - 3.00 - - - - - - 3.00 - - - - - 1.00 - - - - 3.00 - - - vmovaps 16(%rsi), %xmm0
+# CHECK-NEXT: 1.00 - - - - - - - - - - - - 1.00 - - 3.00 - - - - - 1.00 vmovaps %xmm0, 16(%rdi)
+# CHECK-NEXT: - 3.00 - - - - - - - 3.00 - - - - - 1.00 - - - - 3.00 - - vmovaps 32(%rsi), %xmm0
+# CHECK-NEXT: 1.00 - - - - - - - - - - - - 1.00 - - - 3.00 - - - - 1.00 vmovaps %xmm0, 32(%rdi)
+# CHECK-NEXT: - 3.00 - - - - - - 3.00 - - - - - 1.00 - - - - 3.00 - - - vmovaps 48(%rsi), %xmm0
+# CHECK-NEXT: 1.00 - - - - - - - - - - - - 1.00 - - 3.00 - - - - - 1.00 vmovaps %xmm0, 48(%rdi)
# CHECK: Timeline view:
# CHECK-NEXT: 0123456789
Modified: llvm/trunk/test/tools/llvm-mca/X86/BdVer2/load-throughput.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-mca/X86/BdVer2/load-throughput.s?rev=360341&r1=360340&r2=360341&view=diff
==============================================================================
--- llvm/trunk/test/tools/llvm-mca/X86/BdVer2/load-throughput.s (original)
+++ llvm/trunk/test/tools/llvm-mca/X86/BdVer2/load-throughput.s Thu May 9 06:54:51 2019
@@ -54,13 +54,13 @@ vmovaps (%rbx), %ymm3
# CHECK: Iterations: 100
# CHECK-NEXT: Instructions: 400
-# CHECK-NEXT: Total Cycles: 207
+# CHECK-NEXT: Total Cycles: 406
# CHECK-NEXT: Total uOps: 400
# CHECK: Dispatch Width: 4
-# CHECK-NEXT: uOps Per Cycle: 1.93
-# CHECK-NEXT: IPC: 1.93
-# CHECK-NEXT: Block RThroughput: 2.0
+# CHECK-NEXT: uOps Per Cycle: 0.99
+# CHECK-NEXT: IPC: 0.99
+# CHECK-NEXT: Block RThroughput: 4.0
# CHECK: Instruction Info:
# CHECK-NEXT: [1]: #uOps
@@ -71,29 +71,29 @@ vmovaps (%rbx), %ymm3
# CHECK-NEXT: [6]: HasSideEffects (U)
# CHECK: [1] [2] [3] [4] [5] [6] Instructions:
-# CHECK-NEXT: 1 5 0.50 * movb (%rax), %spl
-# CHECK-NEXT: 1 5 0.50 * movb (%rcx), %bpl
-# CHECK-NEXT: 1 5 0.50 * movb (%rdx), %sil
-# CHECK-NEXT: 1 5 0.50 * movb (%rbx), %dil
+# CHECK-NEXT: 1 5 1.00 * movb (%rax), %spl
+# CHECK-NEXT: 1 5 1.00 * movb (%rcx), %bpl
+# CHECK-NEXT: 1 5 1.00 * movb (%rdx), %sil
+# CHECK-NEXT: 1 5 1.00 * movb (%rbx), %dil
# CHECK: Dynamic Dispatch Stall Cycles:
# CHECK-NEXT: RAT - Register unavailable: 0
# CHECK-NEXT: RCU - Retire tokens unavailable: 0
# CHECK-NEXT: SCHEDQ - Scheduler full: 0
-# CHECK-NEXT: LQ - Load queue full: 171 (82.6%)
+# CHECK-NEXT: LQ - Load queue full: 353 (86.9%)
# CHECK-NEXT: SQ - Store queue full: 0
# CHECK-NEXT: GROUP - Static restrictions on the dispatch group: 0
# CHECK: Dispatch Logic - number of cycles where we saw N micro opcodes dispatched:
# CHECK-NEXT: [# dispatched], [# cycles]
-# CHECK-NEXT: 0, 21 (10.1%)
-# CHECK-NEXT: 2, 172 (83.1%)
-# CHECK-NEXT: 4, 14 (6.8%)
+# CHECK-NEXT: 0, 217 (53.4%)
+# CHECK-NEXT: 2, 178 (43.8%)
+# CHECK-NEXT: 4, 11 (2.7%)
# CHECK: Schedulers - number of cycles where we saw N micro opcodes issued:
# CHECK-NEXT: [# issued], [# cycles]
-# CHECK-NEXT: 0, 7 (3.4%)
-# CHECK-NEXT: 2, 200 (96.6%)
+# CHECK-NEXT: 0, 206 (50.7%)
+# CHECK-NEXT: 2, 200 (49.3%)
# CHECK: Scheduler's queue usage:
# CHECK-NEXT: [1] Resource name.
@@ -102,9 +102,9 @@ vmovaps (%rbx), %ymm3
# CHECK-NEXT: [4] Total number of buffer entries.
# CHECK: [1] [2] [3] [4]
-# CHECK-NEXT: PdEX 27 30 40
+# CHECK-NEXT: PdEX 32 36 40
# CHECK-NEXT: PdFPU 0 0 64
-# CHECK-NEXT: PdLoad 36 40 40
+# CHECK-NEXT: PdLoad 37 40 40
# CHECK-NEXT: PdStore 0 0 24
# CHECK: Resources:
@@ -134,22 +134,22 @@ vmovaps (%rbx), %ymm3
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0.0] [0.1] [1] [2] [3] [4] [5] [6] [7.0] [7.1] [8.0] [8.1] [9] [10] [11] [12] [13] [14] [15] [16.0] [16.1] [17] [18]
-# CHECK-NEXT: 2.00 2.00 - - - - - - - - - - - - - - - - - 2.00 2.00 - -
+# CHECK-NEXT: 4.00 4.00 - - - - - - - - - - - - - - - - - 4.00 4.00 - -
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0.0] [0.1] [1] [2] [3] [4] [5] [6] [7.0] [7.1] [8.0] [8.1] [9] [10] [11] [12] [13] [14] [15] [16.0] [16.1] [17] [18] Instructions:
-# CHECK-NEXT: - 1.00 - - - - - - - - - - - - - - - - - - 1.00 - - movb (%rax), %spl
-# CHECK-NEXT: 1.00 - - - - - - - - - - - - - - - - - - 1.00 - - - movb (%rcx), %bpl
-# CHECK-NEXT: - 1.00 - - - - - - - - - - - - - - - - - - 1.00 - - movb (%rdx), %sil
-# CHECK-NEXT: 1.00 - - - - - - - - - - - - - - - - - - 1.00 - - - movb (%rbx), %dil
+# CHECK-NEXT: - 2.00 - - - - - - - - - - - - - - - - - - 2.00 - - movb (%rax), %spl
+# CHECK-NEXT: 2.00 - - - - - - - - - - - - - - - - - - 2.00 - - - movb (%rcx), %bpl
+# CHECK-NEXT: - 2.00 - - - - - - - - - - - - - - - - - - 2.00 - - movb (%rdx), %sil
+# CHECK-NEXT: 2.00 - - - - - - - - - - - - - - - - - - 2.00 - - - movb (%rbx), %dil
# CHECK: Timeline view:
-# CHECK-NEXT: Index 012345678
+# CHECK-NEXT: Index 0123456789
-# CHECK: [0,0] DeeeeeER. movb (%rax), %spl
-# CHECK-NEXT: [0,1] DeeeeeER. movb (%rcx), %bpl
-# CHECK-NEXT: [0,2] D=eeeeeER movb (%rdx), %sil
-# CHECK-NEXT: [0,3] D=eeeeeER movb (%rbx), %dil
+# CHECK: [0,0] DeeeeeER . movb (%rax), %spl
+# CHECK-NEXT: [0,1] DeeeeeER . movb (%rcx), %bpl
+# CHECK-NEXT: [0,2] D==eeeeeER movb (%rdx), %sil
+# CHECK-NEXT: [0,3] D==eeeeeER movb (%rbx), %dil
# CHECK: Average Wait times (based on the timeline view):
# CHECK-NEXT: [0]: Executions
@@ -160,20 +160,20 @@ vmovaps (%rbx), %ymm3
# CHECK: [0] [1] [2] [3]
# CHECK-NEXT: 0. 1 1.0 1.0 0.0 movb (%rax), %spl
# CHECK-NEXT: 1. 1 1.0 1.0 0.0 movb (%rcx), %bpl
-# CHECK-NEXT: 2. 1 2.0 2.0 0.0 movb (%rdx), %sil
-# CHECK-NEXT: 3. 1 2.0 2.0 0.0 movb (%rbx), %dil
+# CHECK-NEXT: 2. 1 3.0 3.0 0.0 movb (%rdx), %sil
+# CHECK-NEXT: 3. 1 3.0 3.0 0.0 movb (%rbx), %dil
# CHECK: [1] Code Region
# CHECK: Iterations: 100
# CHECK-NEXT: Instructions: 400
-# CHECK-NEXT: Total Cycles: 207
+# CHECK-NEXT: Total Cycles: 406
# CHECK-NEXT: Total uOps: 400
# CHECK: Dispatch Width: 4
-# CHECK-NEXT: uOps Per Cycle: 1.93
-# CHECK-NEXT: IPC: 1.93
-# CHECK-NEXT: Block RThroughput: 2.0
+# CHECK-NEXT: uOps Per Cycle: 0.99
+# CHECK-NEXT: IPC: 0.99
+# CHECK-NEXT: Block RThroughput: 4.0
# CHECK: Instruction Info:
# CHECK-NEXT: [1]: #uOps
@@ -184,29 +184,29 @@ vmovaps (%rbx), %ymm3
# CHECK-NEXT: [6]: HasSideEffects (U)
# CHECK: [1] [2] [3] [4] [5] [6] Instructions:
-# CHECK-NEXT: 1 5 0.50 * movw (%rax), %sp
-# CHECK-NEXT: 1 5 0.50 * movw (%rcx), %bp
-# CHECK-NEXT: 1 5 0.50 * movw (%rdx), %si
-# CHECK-NEXT: 1 5 0.50 * movw (%rbx), %di
+# CHECK-NEXT: 1 5 1.00 * movw (%rax), %sp
+# CHECK-NEXT: 1 5 1.00 * movw (%rcx), %bp
+# CHECK-NEXT: 1 5 1.00 * movw (%rdx), %si
+# CHECK-NEXT: 1 5 1.00 * movw (%rbx), %di
# CHECK: Dynamic Dispatch Stall Cycles:
# CHECK-NEXT: RAT - Register unavailable: 0
# CHECK-NEXT: RCU - Retire tokens unavailable: 0
# CHECK-NEXT: SCHEDQ - Scheduler full: 0
-# CHECK-NEXT: LQ - Load queue full: 171 (82.6%)
+# CHECK-NEXT: LQ - Load queue full: 353 (86.9%)
# CHECK-NEXT: SQ - Store queue full: 0
# CHECK-NEXT: GROUP - Static restrictions on the dispatch group: 0
# CHECK: Dispatch Logic - number of cycles where we saw N micro opcodes dispatched:
# CHECK-NEXT: [# dispatched], [# cycles]
-# CHECK-NEXT: 0, 21 (10.1%)
-# CHECK-NEXT: 2, 172 (83.1%)
-# CHECK-NEXT: 4, 14 (6.8%)
+# CHECK-NEXT: 0, 217 (53.4%)
+# CHECK-NEXT: 2, 178 (43.8%)
+# CHECK-NEXT: 4, 11 (2.7%)
# CHECK: Schedulers - number of cycles where we saw N micro opcodes issued:
# CHECK-NEXT: [# issued], [# cycles]
-# CHECK-NEXT: 0, 7 (3.4%)
-# CHECK-NEXT: 2, 200 (96.6%)
+# CHECK-NEXT: 0, 206 (50.7%)
+# CHECK-NEXT: 2, 200 (49.3%)
# CHECK: Scheduler's queue usage:
# CHECK-NEXT: [1] Resource name.
@@ -215,9 +215,9 @@ vmovaps (%rbx), %ymm3
# CHECK-NEXT: [4] Total number of buffer entries.
# CHECK: [1] [2] [3] [4]
-# CHECK-NEXT: PdEX 27 30 40
+# CHECK-NEXT: PdEX 32 36 40
# CHECK-NEXT: PdFPU 0 0 64
-# CHECK-NEXT: PdLoad 36 40 40
+# CHECK-NEXT: PdLoad 37 40 40
# CHECK-NEXT: PdStore 0 0 24
# CHECK: Resources:
@@ -247,22 +247,22 @@ vmovaps (%rbx), %ymm3
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0.0] [0.1] [1] [2] [3] [4] [5] [6] [7.0] [7.1] [8.0] [8.1] [9] [10] [11] [12] [13] [14] [15] [16.0] [16.1] [17] [18]
-# CHECK-NEXT: 2.00 2.00 - - - - - - - - - - - - - - - - - 2.00 2.00 - -
+# CHECK-NEXT: 4.00 4.00 - - - - - - - - - - - - - - - - - 4.00 4.00 - -
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0.0] [0.1] [1] [2] [3] [4] [5] [6] [7.0] [7.1] [8.0] [8.1] [9] [10] [11] [12] [13] [14] [15] [16.0] [16.1] [17] [18] Instructions:
-# CHECK-NEXT: - 1.00 - - - - - - - - - - - - - - - - - - 1.00 - - movw (%rax), %sp
-# CHECK-NEXT: 1.00 - - - - - - - - - - - - - - - - - - 1.00 - - - movw (%rcx), %bp
-# CHECK-NEXT: - 1.00 - - - - - - - - - - - - - - - - - - 1.00 - - movw (%rdx), %si
-# CHECK-NEXT: 1.00 - - - - - - - - - - - - - - - - - - 1.00 - - - movw (%rbx), %di
+# CHECK-NEXT: - 2.00 - - - - - - - - - - - - - - - - - - 2.00 - - movw (%rax), %sp
+# CHECK-NEXT: 2.00 - - - - - - - - - - - - - - - - - - 2.00 - - - movw (%rcx), %bp
+# CHECK-NEXT: - 2.00 - - - - - - - - - - - - - - - - - - 2.00 - - movw (%rdx), %si
+# CHECK-NEXT: 2.00 - - - - - - - - - - - - - - - - - - 2.00 - - - movw (%rbx), %di
# CHECK: Timeline view:
-# CHECK-NEXT: Index 012345678
+# CHECK-NEXT: Index 0123456789
-# CHECK: [0,0] DeeeeeER. movw (%rax), %sp
-# CHECK-NEXT: [0,1] DeeeeeER. movw (%rcx), %bp
-# CHECK-NEXT: [0,2] D=eeeeeER movw (%rdx), %si
-# CHECK-NEXT: [0,3] D=eeeeeER movw (%rbx), %di
+# CHECK: [0,0] DeeeeeER . movw (%rax), %sp
+# CHECK-NEXT: [0,1] DeeeeeER . movw (%rcx), %bp
+# CHECK-NEXT: [0,2] D==eeeeeER movw (%rdx), %si
+# CHECK-NEXT: [0,3] D==eeeeeER movw (%rbx), %di
# CHECK: Average Wait times (based on the timeline view):
# CHECK-NEXT: [0]: Executions
@@ -273,20 +273,20 @@ vmovaps (%rbx), %ymm3
# CHECK: [0] [1] [2] [3]
# CHECK-NEXT: 0. 1 1.0 1.0 0.0 movw (%rax), %sp
# CHECK-NEXT: 1. 1 1.0 1.0 0.0 movw (%rcx), %bp
-# CHECK-NEXT: 2. 1 2.0 2.0 0.0 movw (%rdx), %si
-# CHECK-NEXT: 3. 1 2.0 2.0 0.0 movw (%rbx), %di
+# CHECK-NEXT: 2. 1 3.0 3.0 0.0 movw (%rdx), %si
+# CHECK-NEXT: 3. 1 3.0 3.0 0.0 movw (%rbx), %di
# CHECK: [2] Code Region
# CHECK: Iterations: 100
# CHECK-NEXT: Instructions: 400
-# CHECK-NEXT: Total Cycles: 207
+# CHECK-NEXT: Total Cycles: 406
# CHECK-NEXT: Total uOps: 400
# CHECK: Dispatch Width: 4
-# CHECK-NEXT: uOps Per Cycle: 1.93
-# CHECK-NEXT: IPC: 1.93
-# CHECK-NEXT: Block RThroughput: 2.0
+# CHECK-NEXT: uOps Per Cycle: 0.99
+# CHECK-NEXT: IPC: 0.99
+# CHECK-NEXT: Block RThroughput: 4.0
# CHECK: Instruction Info:
# CHECK-NEXT: [1]: #uOps
@@ -297,29 +297,29 @@ vmovaps (%rbx), %ymm3
# CHECK-NEXT: [6]: HasSideEffects (U)
# CHECK: [1] [2] [3] [4] [5] [6] Instructions:
-# CHECK-NEXT: 1 5 0.50 * movl (%rax), %esp
-# CHECK-NEXT: 1 5 0.50 * movl (%rcx), %ebp
-# CHECK-NEXT: 1 5 0.50 * movl (%rdx), %esi
-# CHECK-NEXT: 1 5 0.50 * movl (%rbx), %edi
+# CHECK-NEXT: 1 5 1.00 * movl (%rax), %esp
+# CHECK-NEXT: 1 5 1.00 * movl (%rcx), %ebp
+# CHECK-NEXT: 1 5 1.00 * movl (%rdx), %esi
+# CHECK-NEXT: 1 5 1.00 * movl (%rbx), %edi
# CHECK: Dynamic Dispatch Stall Cycles:
# CHECK-NEXT: RAT - Register unavailable: 0
# CHECK-NEXT: RCU - Retire tokens unavailable: 0
# CHECK-NEXT: SCHEDQ - Scheduler full: 0
-# CHECK-NEXT: LQ - Load queue full: 171 (82.6%)
+# CHECK-NEXT: LQ - Load queue full: 353 (86.9%)
# CHECK-NEXT: SQ - Store queue full: 0
# CHECK-NEXT: GROUP - Static restrictions on the dispatch group: 0
# CHECK: Dispatch Logic - number of cycles where we saw N micro opcodes dispatched:
# CHECK-NEXT: [# dispatched], [# cycles]
-# CHECK-NEXT: 0, 21 (10.1%)
-# CHECK-NEXT: 2, 172 (83.1%)
-# CHECK-NEXT: 4, 14 (6.8%)
+# CHECK-NEXT: 0, 217 (53.4%)
+# CHECK-NEXT: 2, 178 (43.8%)
+# CHECK-NEXT: 4, 11 (2.7%)
# CHECK: Schedulers - number of cycles where we saw N micro opcodes issued:
# CHECK-NEXT: [# issued], [# cycles]
-# CHECK-NEXT: 0, 7 (3.4%)
-# CHECK-NEXT: 2, 200 (96.6%)
+# CHECK-NEXT: 0, 206 (50.7%)
+# CHECK-NEXT: 2, 200 (49.3%)
# CHECK: Scheduler's queue usage:
# CHECK-NEXT: [1] Resource name.
@@ -328,9 +328,9 @@ vmovaps (%rbx), %ymm3
# CHECK-NEXT: [4] Total number of buffer entries.
# CHECK: [1] [2] [3] [4]
-# CHECK-NEXT: PdEX 27 30 40
+# CHECK-NEXT: PdEX 32 36 40
# CHECK-NEXT: PdFPU 0 0 64
-# CHECK-NEXT: PdLoad 36 40 40
+# CHECK-NEXT: PdLoad 37 40 40
# CHECK-NEXT: PdStore 0 0 24
# CHECK: Resources:
@@ -360,22 +360,22 @@ vmovaps (%rbx), %ymm3
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0.0] [0.1] [1] [2] [3] [4] [5] [6] [7.0] [7.1] [8.0] [8.1] [9] [10] [11] [12] [13] [14] [15] [16.0] [16.1] [17] [18]
-# CHECK-NEXT: 2.00 2.00 - - - - - - - - - - - - - - - - - 2.00 2.00 - -
+# CHECK-NEXT: 4.00 4.00 - - - - - - - - - - - - - - - - - 4.00 4.00 - -
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0.0] [0.1] [1] [2] [3] [4] [5] [6] [7.0] [7.1] [8.0] [8.1] [9] [10] [11] [12] [13] [14] [15] [16.0] [16.1] [17] [18] Instructions:
-# CHECK-NEXT: - 1.00 - - - - - - - - - - - - - - - - - - 1.00 - - movl (%rax), %esp
-# CHECK-NEXT: 1.00 - - - - - - - - - - - - - - - - - - 1.00 - - - movl (%rcx), %ebp
-# CHECK-NEXT: - 1.00 - - - - - - - - - - - - - - - - - - 1.00 - - movl (%rdx), %esi
-# CHECK-NEXT: 1.00 - - - - - - - - - - - - - - - - - - 1.00 - - - movl (%rbx), %edi
+# CHECK-NEXT: - 2.00 - - - - - - - - - - - - - - - - - - 2.00 - - movl (%rax), %esp
+# CHECK-NEXT: 2.00 - - - - - - - - - - - - - - - - - - 2.00 - - - movl (%rcx), %ebp
+# CHECK-NEXT: - 2.00 - - - - - - - - - - - - - - - - - - 2.00 - - movl (%rdx), %esi
+# CHECK-NEXT: 2.00 - - - - - - - - - - - - - - - - - - 2.00 - - - movl (%rbx), %edi
# CHECK: Timeline view:
-# CHECK-NEXT: Index 012345678
+# CHECK-NEXT: Index 0123456789
-# CHECK: [0,0] DeeeeeER. movl (%rax), %esp
-# CHECK-NEXT: [0,1] DeeeeeER. movl (%rcx), %ebp
-# CHECK-NEXT: [0,2] D=eeeeeER movl (%rdx), %esi
-# CHECK-NEXT: [0,3] D=eeeeeER movl (%rbx), %edi
+# CHECK: [0,0] DeeeeeER . movl (%rax), %esp
+# CHECK-NEXT: [0,1] DeeeeeER . movl (%rcx), %ebp
+# CHECK-NEXT: [0,2] D==eeeeeER movl (%rdx), %esi
+# CHECK-NEXT: [0,3] D==eeeeeER movl (%rbx), %edi
# CHECK: Average Wait times (based on the timeline view):
# CHECK-NEXT: [0]: Executions
@@ -386,20 +386,20 @@ vmovaps (%rbx), %ymm3
# CHECK: [0] [1] [2] [3]
# CHECK-NEXT: 0. 1 1.0 1.0 0.0 movl (%rax), %esp
# CHECK-NEXT: 1. 1 1.0 1.0 0.0 movl (%rcx), %ebp
-# CHECK-NEXT: 2. 1 2.0 2.0 0.0 movl (%rdx), %esi
-# CHECK-NEXT: 3. 1 2.0 2.0 0.0 movl (%rbx), %edi
+# CHECK-NEXT: 2. 1 3.0 3.0 0.0 movl (%rdx), %esi
+# CHECK-NEXT: 3. 1 3.0 3.0 0.0 movl (%rbx), %edi
# CHECK: [3] Code Region
# CHECK: Iterations: 100
# CHECK-NEXT: Instructions: 400
-# CHECK-NEXT: Total Cycles: 207
+# CHECK-NEXT: Total Cycles: 406
# CHECK-NEXT: Total uOps: 400
# CHECK: Dispatch Width: 4
-# CHECK-NEXT: uOps Per Cycle: 1.93
-# CHECK-NEXT: IPC: 1.93
-# CHECK-NEXT: Block RThroughput: 2.0
+# CHECK-NEXT: uOps Per Cycle: 0.99
+# CHECK-NEXT: IPC: 0.99
+# CHECK-NEXT: Block RThroughput: 4.0
# CHECK: Instruction Info:
# CHECK-NEXT: [1]: #uOps
@@ -410,29 +410,29 @@ vmovaps (%rbx), %ymm3
# CHECK-NEXT: [6]: HasSideEffects (U)
# CHECK: [1] [2] [3] [4] [5] [6] Instructions:
-# CHECK-NEXT: 1 5 0.50 * movq (%rax), %rsp
-# CHECK-NEXT: 1 5 0.50 * movq (%rcx), %rbp
-# CHECK-NEXT: 1 5 0.50 * movq (%rdx), %rsi
-# CHECK-NEXT: 1 5 0.50 * movq (%rbx), %rdi
+# CHECK-NEXT: 1 5 1.00 * movq (%rax), %rsp
+# CHECK-NEXT: 1 5 1.00 * movq (%rcx), %rbp
+# CHECK-NEXT: 1 5 1.00 * movq (%rdx), %rsi
+# CHECK-NEXT: 1 5 1.00 * movq (%rbx), %rdi
# CHECK: Dynamic Dispatch Stall Cycles:
# CHECK-NEXT: RAT - Register unavailable: 0
# CHECK-NEXT: RCU - Retire tokens unavailable: 0
# CHECK-NEXT: SCHEDQ - Scheduler full: 0
-# CHECK-NEXT: LQ - Load queue full: 171 (82.6%)
+# CHECK-NEXT: LQ - Load queue full: 353 (86.9%)
# CHECK-NEXT: SQ - Store queue full: 0
# CHECK-NEXT: GROUP - Static restrictions on the dispatch group: 0
# CHECK: Dispatch Logic - number of cycles where we saw N micro opcodes dispatched:
# CHECK-NEXT: [# dispatched], [# cycles]
-# CHECK-NEXT: 0, 21 (10.1%)
-# CHECK-NEXT: 2, 172 (83.1%)
-# CHECK-NEXT: 4, 14 (6.8%)
+# CHECK-NEXT: 0, 217 (53.4%)
+# CHECK-NEXT: 2, 178 (43.8%)
+# CHECK-NEXT: 4, 11 (2.7%)
# CHECK: Schedulers - number of cycles where we saw N micro opcodes issued:
# CHECK-NEXT: [# issued], [# cycles]
-# CHECK-NEXT: 0, 7 (3.4%)
-# CHECK-NEXT: 2, 200 (96.6%)
+# CHECK-NEXT: 0, 206 (50.7%)
+# CHECK-NEXT: 2, 200 (49.3%)
# CHECK: Scheduler's queue usage:
# CHECK-NEXT: [1] Resource name.
@@ -441,9 +441,9 @@ vmovaps (%rbx), %ymm3
# CHECK-NEXT: [4] Total number of buffer entries.
# CHECK: [1] [2] [3] [4]
-# CHECK-NEXT: PdEX 27 30 40
+# CHECK-NEXT: PdEX 32 36 40
# CHECK-NEXT: PdFPU 0 0 64
-# CHECK-NEXT: PdLoad 36 40 40
+# CHECK-NEXT: PdLoad 37 40 40
# CHECK-NEXT: PdStore 0 0 24
# CHECK: Resources:
@@ -473,22 +473,22 @@ vmovaps (%rbx), %ymm3
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0.0] [0.1] [1] [2] [3] [4] [5] [6] [7.0] [7.1] [8.0] [8.1] [9] [10] [11] [12] [13] [14] [15] [16.0] [16.1] [17] [18]
-# CHECK-NEXT: 2.00 2.00 - - - - - - - - - - - - - - - - - 2.00 2.00 - -
+# CHECK-NEXT: 4.00 4.00 - - - - - - - - - - - - - - - - - 4.00 4.00 - -
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0.0] [0.1] [1] [2] [3] [4] [5] [6] [7.0] [7.1] [8.0] [8.1] [9] [10] [11] [12] [13] [14] [15] [16.0] [16.1] [17] [18] Instructions:
-# CHECK-NEXT: - 1.00 - - - - - - - - - - - - - - - - - - 1.00 - - movq (%rax), %rsp
-# CHECK-NEXT: 1.00 - - - - - - - - - - - - - - - - - - 1.00 - - - movq (%rcx), %rbp
-# CHECK-NEXT: - 1.00 - - - - - - - - - - - - - - - - - - 1.00 - - movq (%rdx), %rsi
-# CHECK-NEXT: 1.00 - - - - - - - - - - - - - - - - - - 1.00 - - - movq (%rbx), %rdi
+# CHECK-NEXT: - 2.00 - - - - - - - - - - - - - - - - - - 2.00 - - movq (%rax), %rsp
+# CHECK-NEXT: 2.00 - - - - - - - - - - - - - - - - - - 2.00 - - - movq (%rcx), %rbp
+# CHECK-NEXT: - 2.00 - - - - - - - - - - - - - - - - - - 2.00 - - movq (%rdx), %rsi
+# CHECK-NEXT: 2.00 - - - - - - - - - - - - - - - - - - 2.00 - - - movq (%rbx), %rdi
# CHECK: Timeline view:
-# CHECK-NEXT: Index 012345678
+# CHECK-NEXT: Index 0123456789
-# CHECK: [0,0] DeeeeeER. movq (%rax), %rsp
-# CHECK-NEXT: [0,1] DeeeeeER. movq (%rcx), %rbp
-# CHECK-NEXT: [0,2] D=eeeeeER movq (%rdx), %rsi
-# CHECK-NEXT: [0,3] D=eeeeeER movq (%rbx), %rdi
+# CHECK: [0,0] DeeeeeER . movq (%rax), %rsp
+# CHECK-NEXT: [0,1] DeeeeeER . movq (%rcx), %rbp
+# CHECK-NEXT: [0,2] D==eeeeeER movq (%rdx), %rsi
+# CHECK-NEXT: [0,3] D==eeeeeER movq (%rbx), %rdi
# CHECK: Average Wait times (based on the timeline view):
# CHECK-NEXT: [0]: Executions
@@ -499,20 +499,20 @@ vmovaps (%rbx), %ymm3
# CHECK: [0] [1] [2] [3]
# CHECK-NEXT: 0. 1 1.0 1.0 0.0 movq (%rax), %rsp
# CHECK-NEXT: 1. 1 1.0 1.0 0.0 movq (%rcx), %rbp
-# CHECK-NEXT: 2. 1 2.0 2.0 0.0 movq (%rdx), %rsi
-# CHECK-NEXT: 3. 1 2.0 2.0 0.0 movq (%rbx), %rdi
+# CHECK-NEXT: 2. 1 3.0 3.0 0.0 movq (%rdx), %rsi
+# CHECK-NEXT: 3. 1 3.0 3.0 0.0 movq (%rbx), %rdi
# CHECK: [4] Code Region
# CHECK: Iterations: 100
# CHECK-NEXT: Instructions: 400
-# CHECK-NEXT: Total Cycles: 207
+# CHECK-NEXT: Total Cycles: 605
# CHECK-NEXT: Total uOps: 400
# CHECK: Dispatch Width: 4
-# CHECK-NEXT: uOps Per Cycle: 1.93
-# CHECK-NEXT: IPC: 1.93
-# CHECK-NEXT: Block RThroughput: 2.0
+# CHECK-NEXT: uOps Per Cycle: 0.66
+# CHECK-NEXT: IPC: 0.66
+# CHECK-NEXT: Block RThroughput: 6.0
# CHECK: Instruction Info:
# CHECK-NEXT: [1]: #uOps
@@ -523,29 +523,29 @@ vmovaps (%rbx), %ymm3
# CHECK-NEXT: [6]: HasSideEffects (U)
# CHECK: [1] [2] [3] [4] [5] [6] Instructions:
-# CHECK-NEXT: 1 5 0.50 * movd (%rax), %mm0
-# CHECK-NEXT: 1 5 0.50 * movd (%rcx), %mm1
-# CHECK-NEXT: 1 5 0.50 * movd (%rdx), %mm2
-# CHECK-NEXT: 1 5 0.50 * movd (%rbx), %mm3
+# CHECK-NEXT: 1 5 1.50 * movd (%rax), %mm0
+# CHECK-NEXT: 1 5 1.50 * movd (%rcx), %mm1
+# CHECK-NEXT: 1 5 1.50 * movd (%rdx), %mm2
+# CHECK-NEXT: 1 5 1.50 * movd (%rbx), %mm3
# CHECK: Dynamic Dispatch Stall Cycles:
# CHECK-NEXT: RAT - Register unavailable: 0
# CHECK-NEXT: RCU - Retire tokens unavailable: 0
# CHECK-NEXT: SCHEDQ - Scheduler full: 0
-# CHECK-NEXT: LQ - Load queue full: 171 (82.6%)
+# CHECK-NEXT: LQ - Load queue full: 532 (87.9%)
# CHECK-NEXT: SQ - Store queue full: 0
# CHECK-NEXT: GROUP - Static restrictions on the dispatch group: 0
# CHECK: Dispatch Logic - number of cycles where we saw N micro opcodes dispatched:
# CHECK-NEXT: [# dispatched], [# cycles]
-# CHECK-NEXT: 0, 21 (10.1%)
-# CHECK-NEXT: 2, 172 (83.1%)
-# CHECK-NEXT: 4, 14 (6.8%)
+# CHECK-NEXT: 0, 416 (68.8%)
+# CHECK-NEXT: 2, 178 (29.4%)
+# CHECK-NEXT: 4, 11 (1.8%)
# CHECK: Schedulers - number of cycles where we saw N micro opcodes issued:
# CHECK-NEXT: [# issued], [# cycles]
-# CHECK-NEXT: 0, 7 (3.4%)
-# CHECK-NEXT: 2, 200 (96.6%)
+# CHECK-NEXT: 0, 405 (66.9%)
+# CHECK-NEXT: 2, 200 (33.1%)
# CHECK: Scheduler's queue usage:
# CHECK-NEXT: [1] Resource name.
@@ -554,9 +554,9 @@ vmovaps (%rbx), %ymm3
# CHECK-NEXT: [4] Total number of buffer entries.
# CHECK: [1] [2] [3] [4]
-# CHECK-NEXT: PdEX 27 30 40
-# CHECK-NEXT: PdFPU 27 30 64
-# CHECK-NEXT: PdLoad 36 40 40
+# CHECK-NEXT: PdEX 34 38 40
+# CHECK-NEXT: PdFPU 34 38 64
+# CHECK-NEXT: PdLoad 37 40 40
# CHECK-NEXT: PdStore 0 0 24
# CHECK: Resources:
@@ -586,22 +586,23 @@ vmovaps (%rbx), %ymm3
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0.0] [0.1] [1] [2] [3] [4] [5] [6] [7.0] [7.1] [8.0] [8.1] [9] [10] [11] [12] [13] [14] [15] [16.0] [16.1] [17] [18]
-# CHECK-NEXT: 2.00 2.00 - - - - - - - - 2.00 2.00 - - 2.00 2.00 - - - 2.00 2.00 - -
+# CHECK-NEXT: 6.00 6.00 - - - - - - - - 6.00 6.00 - - 2.00 2.00 - - - 6.00 6.00 - -
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0.0] [0.1] [1] [2] [3] [4] [5] [6] [7.0] [7.1] [8.0] [8.1] [9] [10] [11] [12] [13] [14] [15] [16.0] [16.1] [17] [18] Instructions:
-# CHECK-NEXT: - 1.00 - - - - - - - - - 1.00 - - - 1.00 - - - - 1.00 - - movd (%rax), %mm0
-# CHECK-NEXT: 1.00 - - - - - - - - - 1.00 - - - 1.00 - - - - 1.00 - - - movd (%rcx), %mm1
-# CHECK-NEXT: - 1.00 - - - - - - - - - 1.00 - - - 1.00 - - - - 1.00 - - movd (%rdx), %mm2
-# CHECK-NEXT: 1.00 - - - - - - - - - 1.00 - - - 1.00 - - - - 1.00 - - - movd (%rbx), %mm3
+# CHECK-NEXT: - 3.00 - - - - - - - - - 3.00 - - - 1.00 - - - - 3.00 - - movd (%rax), %mm0
+# CHECK-NEXT: 3.00 - - - - - - - - - 3.00 - - - 1.00 - - - - 3.00 - - - movd (%rcx), %mm1
+# CHECK-NEXT: - 3.00 - - - - - - - - - 3.00 - - - 1.00 - - - - 3.00 - - movd (%rdx), %mm2
+# CHECK-NEXT: 3.00 - - - - - - - - - 3.00 - - - 1.00 - - - - 3.00 - - - movd (%rbx), %mm3
# CHECK: Timeline view:
-# CHECK-NEXT: Index 012345678
+# CHECK-NEXT: 0
+# CHECK-NEXT: Index 0123456789
-# CHECK: [0,0] DeeeeeER. movd (%rax), %mm0
-# CHECK-NEXT: [0,1] DeeeeeER. movd (%rcx), %mm1
-# CHECK-NEXT: [0,2] D=eeeeeER movd (%rdx), %mm2
-# CHECK-NEXT: [0,3] D=eeeeeER movd (%rbx), %mm3
+# CHECK: [0,0] DeeeeeER . movd (%rax), %mm0
+# CHECK-NEXT: [0,1] DeeeeeER . movd (%rcx), %mm1
+# CHECK-NEXT: [0,2] D===eeeeeER movd (%rdx), %mm2
+# CHECK-NEXT: [0,3] D===eeeeeER movd (%rbx), %mm3
# CHECK: Average Wait times (based on the timeline view):
# CHECK-NEXT: [0]: Executions
@@ -612,20 +613,20 @@ vmovaps (%rbx), %ymm3
# CHECK: [0] [1] [2] [3]
# CHECK-NEXT: 0. 1 1.0 1.0 0.0 movd (%rax), %mm0
# CHECK-NEXT: 1. 1 1.0 1.0 0.0 movd (%rcx), %mm1
-# CHECK-NEXT: 2. 1 2.0 2.0 0.0 movd (%rdx), %mm2
-# CHECK-NEXT: 3. 1 2.0 2.0 0.0 movd (%rbx), %mm3
+# CHECK-NEXT: 2. 1 4.0 4.0 0.0 movd (%rdx), %mm2
+# CHECK-NEXT: 3. 1 4.0 4.0 0.0 movd (%rbx), %mm3
# CHECK: [5] Code Region
# CHECK: Iterations: 100
# CHECK-NEXT: Instructions: 400
-# CHECK-NEXT: Total Cycles: 207
+# CHECK-NEXT: Total Cycles: 605
# CHECK-NEXT: Total uOps: 400
# CHECK: Dispatch Width: 4
-# CHECK-NEXT: uOps Per Cycle: 1.93
-# CHECK-NEXT: IPC: 1.93
-# CHECK-NEXT: Block RThroughput: 2.0
+# CHECK-NEXT: uOps Per Cycle: 0.66
+# CHECK-NEXT: IPC: 0.66
+# CHECK-NEXT: Block RThroughput: 6.0
# CHECK: Instruction Info:
# CHECK-NEXT: [1]: #uOps
@@ -636,29 +637,29 @@ vmovaps (%rbx), %ymm3
# CHECK-NEXT: [6]: HasSideEffects (U)
# CHECK: [1] [2] [3] [4] [5] [6] Instructions:
-# CHECK-NEXT: 1 5 0.50 * movaps (%rax), %xmm0
-# CHECK-NEXT: 1 5 0.50 * movaps (%rcx), %xmm1
-# CHECK-NEXT: 1 5 0.50 * movaps (%rdx), %xmm2
-# CHECK-NEXT: 1 5 0.50 * movaps (%rbx), %xmm3
+# CHECK-NEXT: 1 5 1.50 * movaps (%rax), %xmm0
+# CHECK-NEXT: 1 5 1.50 * movaps (%rcx), %xmm1
+# CHECK-NEXT: 1 5 1.50 * movaps (%rdx), %xmm2
+# CHECK-NEXT: 1 5 1.50 * movaps (%rbx), %xmm3
# CHECK: Dynamic Dispatch Stall Cycles:
# CHECK-NEXT: RAT - Register unavailable: 0
# CHECK-NEXT: RCU - Retire tokens unavailable: 0
# CHECK-NEXT: SCHEDQ - Scheduler full: 0
-# CHECK-NEXT: LQ - Load queue full: 171 (82.6%)
+# CHECK-NEXT: LQ - Load queue full: 532 (87.9%)
# CHECK-NEXT: SQ - Store queue full: 0
# CHECK-NEXT: GROUP - Static restrictions on the dispatch group: 0
# CHECK: Dispatch Logic - number of cycles where we saw N micro opcodes dispatched:
# CHECK-NEXT: [# dispatched], [# cycles]
-# CHECK-NEXT: 0, 21 (10.1%)
-# CHECK-NEXT: 2, 172 (83.1%)
-# CHECK-NEXT: 4, 14 (6.8%)
+# CHECK-NEXT: 0, 416 (68.8%)
+# CHECK-NEXT: 2, 178 (29.4%)
+# CHECK-NEXT: 4, 11 (1.8%)
# CHECK: Schedulers - number of cycles where we saw N micro opcodes issued:
# CHECK-NEXT: [# issued], [# cycles]
-# CHECK-NEXT: 0, 7 (3.4%)
-# CHECK-NEXT: 2, 200 (96.6%)
+# CHECK-NEXT: 0, 405 (66.9%)
+# CHECK-NEXT: 2, 200 (33.1%)
# CHECK: Scheduler's queue usage:
# CHECK-NEXT: [1] Resource name.
@@ -667,9 +668,9 @@ vmovaps (%rbx), %ymm3
# CHECK-NEXT: [4] Total number of buffer entries.
# CHECK: [1] [2] [3] [4]
-# CHECK-NEXT: PdEX 27 30 40
-# CHECK-NEXT: PdFPU 27 30 64
-# CHECK-NEXT: PdLoad 36 40 40
+# CHECK-NEXT: PdEX 34 38 40
+# CHECK-NEXT: PdFPU 34 38 64
+# CHECK-NEXT: PdLoad 37 40 40
# CHECK-NEXT: PdStore 0 0 24
# CHECK: Resources:
@@ -699,22 +700,23 @@ vmovaps (%rbx), %ymm3
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0.0] [0.1] [1] [2] [3] [4] [5] [6] [7.0] [7.1] [8.0] [8.1] [9] [10] [11] [12] [13] [14] [15] [16.0] [16.1] [17] [18]
-# CHECK-NEXT: 2.00 2.00 - - - - - - 2.00 2.00 - - - - 2.00 2.00 - - - 2.00 2.00 - -
+# CHECK-NEXT: 6.00 6.00 - - - - - - 6.00 6.00 - - - - 2.00 2.00 - - - 6.00 6.00 - -
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0.0] [0.1] [1] [2] [3] [4] [5] [6] [7.0] [7.1] [8.0] [8.1] [9] [10] [11] [12] [13] [14] [15] [16.0] [16.1] [17] [18] Instructions:
-# CHECK-NEXT: - 1.00 - - - - - - - 1.00 - - - - - 1.00 - - - - 1.00 - - movaps (%rax), %xmm0
-# CHECK-NEXT: 1.00 - - - - - - - 1.00 - - - - - 1.00 - - - - 1.00 - - - movaps (%rcx), %xmm1
-# CHECK-NEXT: - 1.00 - - - - - - - 1.00 - - - - - 1.00 - - - - 1.00 - - movaps (%rdx), %xmm2
-# CHECK-NEXT: 1.00 - - - - - - - 1.00 - - - - - 1.00 - - - - 1.00 - - - movaps (%rbx), %xmm3
+# CHECK-NEXT: - 3.00 - - - - - - - 3.00 - - - - - 1.00 - - - - 3.00 - - movaps (%rax), %xmm0
+# CHECK-NEXT: 3.00 - - - - - - - 3.00 - - - - - 1.00 - - - - 3.00 - - - movaps (%rcx), %xmm1
+# CHECK-NEXT: - 3.00 - - - - - - - 3.00 - - - - - 1.00 - - - - 3.00 - - movaps (%rdx), %xmm2
+# CHECK-NEXT: 3.00 - - - - - - - 3.00 - - - - - 1.00 - - - - 3.00 - - - movaps (%rbx), %xmm3
# CHECK: Timeline view:
-# CHECK-NEXT: Index 012345678
+# CHECK-NEXT: 0
+# CHECK-NEXT: Index 0123456789
-# CHECK: [0,0] DeeeeeER. movaps (%rax), %xmm0
-# CHECK-NEXT: [0,1] DeeeeeER. movaps (%rcx), %xmm1
-# CHECK-NEXT: [0,2] D=eeeeeER movaps (%rdx), %xmm2
-# CHECK-NEXT: [0,3] D=eeeeeER movaps (%rbx), %xmm3
+# CHECK: [0,0] DeeeeeER . movaps (%rax), %xmm0
+# CHECK-NEXT: [0,1] DeeeeeER . movaps (%rcx), %xmm1
+# CHECK-NEXT: [0,2] D===eeeeeER movaps (%rdx), %xmm2
+# CHECK-NEXT: [0,3] D===eeeeeER movaps (%rbx), %xmm3
# CHECK: Average Wait times (based on the timeline view):
# CHECK-NEXT: [0]: Executions
@@ -725,20 +727,20 @@ vmovaps (%rbx), %ymm3
# CHECK: [0] [1] [2] [3]
# CHECK-NEXT: 0. 1 1.0 1.0 0.0 movaps (%rax), %xmm0
# CHECK-NEXT: 1. 1 1.0 1.0 0.0 movaps (%rcx), %xmm1
-# CHECK-NEXT: 2. 1 2.0 2.0 0.0 movaps (%rdx), %xmm2
-# CHECK-NEXT: 3. 1 2.0 2.0 0.0 movaps (%rbx), %xmm3
+# CHECK-NEXT: 2. 1 4.0 4.0 0.0 movaps (%rdx), %xmm2
+# CHECK-NEXT: 3. 1 4.0 4.0 0.0 movaps (%rbx), %xmm3
# CHECK: [6] Code Region
# CHECK: Iterations: 100
# CHECK-NEXT: Instructions: 400
-# CHECK-NEXT: Total Cycles: 207
+# CHECK-NEXT: Total Cycles: 605
# CHECK-NEXT: Total uOps: 800
# CHECK: Dispatch Width: 4
-# CHECK-NEXT: uOps Per Cycle: 3.86
-# CHECK-NEXT: IPC: 1.93
-# CHECK-NEXT: Block RThroughput: 2.0
+# CHECK-NEXT: uOps Per Cycle: 1.32
+# CHECK-NEXT: IPC: 0.66
+# CHECK-NEXT: Block RThroughput: 6.0
# CHECK: Instruction Info:
# CHECK-NEXT: [1]: #uOps
@@ -749,28 +751,28 @@ vmovaps (%rbx), %ymm3
# CHECK-NEXT: [6]: HasSideEffects (U)
# CHECK: [1] [2] [3] [4] [5] [6] Instructions:
-# CHECK-NEXT: 2 5 0.50 * vmovaps (%rax), %ymm0
-# CHECK-NEXT: 2 5 0.50 * vmovaps (%rcx), %ymm1
-# CHECK-NEXT: 2 5 0.50 * vmovaps (%rdx), %ymm2
-# CHECK-NEXT: 2 5 0.50 * vmovaps (%rbx), %ymm3
+# CHECK-NEXT: 2 5 1.50 * vmovaps (%rax), %ymm0
+# CHECK-NEXT: 2 5 1.50 * vmovaps (%rcx), %ymm1
+# CHECK-NEXT: 2 5 1.50 * vmovaps (%rdx), %ymm2
+# CHECK-NEXT: 2 5 1.50 * vmovaps (%rbx), %ymm3
# CHECK: Dynamic Dispatch Stall Cycles:
# CHECK-NEXT: RAT - Register unavailable: 0
# CHECK-NEXT: RCU - Retire tokens unavailable: 0
# CHECK-NEXT: SCHEDQ - Scheduler full: 0
-# CHECK-NEXT: LQ - Load queue full: 0
+# CHECK-NEXT: LQ - Load queue full: 344 (56.9%)
# CHECK-NEXT: SQ - Store queue full: 0
# CHECK-NEXT: GROUP - Static restrictions on the dispatch group: 0
# CHECK: Dispatch Logic - number of cycles where we saw N micro opcodes dispatched:
# CHECK-NEXT: [# dispatched], [# cycles]
-# CHECK-NEXT: 0, 7 (3.4%)
-# CHECK-NEXT: 4, 200 (96.6%)
+# CHECK-NEXT: 0, 405 (66.9%)
+# CHECK-NEXT: 4, 200 (33.1%)
# CHECK: Schedulers - number of cycles where we saw N micro opcodes issued:
# CHECK-NEXT: [# issued], [# cycles]
-# CHECK-NEXT: 0, 7 (3.4%)
-# CHECK-NEXT: 4, 200 (96.6%)
+# CHECK-NEXT: 0, 405 (66.9%)
+# CHECK-NEXT: 4, 200 (33.1%)
# CHECK: Scheduler's queue usage:
# CHECK-NEXT: [1] Resource name.
@@ -779,9 +781,9 @@ vmovaps (%rbx), %ymm3
# CHECK-NEXT: [4] Total number of buffer entries.
# CHECK: [1] [2] [3] [4]
-# CHECK-NEXT: PdEX 1 2 40
-# CHECK-NEXT: PdFPU 1 2 64
-# CHECK-NEXT: PdLoad 11 12 40
+# CHECK-NEXT: PdEX 33 38 40
+# CHECK-NEXT: PdFPU 33 38 64
+# CHECK-NEXT: PdLoad 37 40 40
# CHECK-NEXT: PdStore 0 0 24
# CHECK: Resources:
@@ -811,22 +813,23 @@ vmovaps (%rbx), %ymm3
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0.0] [0.1] [1] [2] [3] [4] [5] [6] [7.0] [7.1] [8.0] [8.1] [9] [10] [11] [12] [13] [14] [15] [16.0] [16.1] [17] [18]
-# CHECK-NEXT: 2.00 2.00 - - - - - - 2.00 2.00 - - - - 2.00 2.00 - - - 2.00 2.00 - -
+# CHECK-NEXT: 6.00 6.00 - - - - - - 6.00 6.00 - - - - 2.00 2.00 - - - 6.00 6.00 - -
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0.0] [0.1] [1] [2] [3] [4] [5] [6] [7.0] [7.1] [8.0] [8.1] [9] [10] [11] [12] [13] [14] [15] [16.0] [16.1] [17] [18] Instructions:
-# CHECK-NEXT: - 1.00 - - - - - - - 1.00 - - - - - 1.00 - - - - 1.00 - - vmovaps (%rax), %ymm0
-# CHECK-NEXT: 1.00 - - - - - - - 1.00 - - - - - 1.00 - - - - 1.00 - - - vmovaps (%rcx), %ymm1
-# CHECK-NEXT: - 1.00 - - - - - - - 1.00 - - - - - 1.00 - - - - 1.00 - - vmovaps (%rdx), %ymm2
-# CHECK-NEXT: 1.00 - - - - - - - 1.00 - - - - - 1.00 - - - - 1.00 - - - vmovaps (%rbx), %ymm3
+# CHECK-NEXT: - 3.00 - - - - - - - 3.00 - - - - - 1.00 - - - - 3.00 - - vmovaps (%rax), %ymm0
+# CHECK-NEXT: 3.00 - - - - - - - 3.00 - - - - - 1.00 - - - - 3.00 - - - vmovaps (%rcx), %ymm1
+# CHECK-NEXT: - 3.00 - - - - - - - 3.00 - - - - - 1.00 - - - - 3.00 - - vmovaps (%rdx), %ymm2
+# CHECK-NEXT: 3.00 - - - - - - - 3.00 - - - - - 1.00 - - - - 3.00 - - - vmovaps (%rbx), %ymm3
# CHECK: Timeline view:
-# CHECK-NEXT: Index 012345678
+# CHECK-NEXT: 0
+# CHECK-NEXT: Index 0123456789
-# CHECK: [0,0] DeeeeeER. vmovaps (%rax), %ymm0
-# CHECK-NEXT: [0,1] DeeeeeER. vmovaps (%rcx), %ymm1
-# CHECK-NEXT: [0,2] .DeeeeeER vmovaps (%rdx), %ymm2
-# CHECK-NEXT: [0,3] .DeeeeeER vmovaps (%rbx), %ymm3
+# CHECK: [0,0] DeeeeeER . vmovaps (%rax), %ymm0
+# CHECK-NEXT: [0,1] DeeeeeER . vmovaps (%rcx), %ymm1
+# CHECK-NEXT: [0,2] .D==eeeeeER vmovaps (%rdx), %ymm2
+# CHECK-NEXT: [0,3] .D==eeeeeER vmovaps (%rbx), %ymm3
# CHECK: Average Wait times (based on the timeline view):
# CHECK-NEXT: [0]: Executions
@@ -837,5 +840,5 @@ vmovaps (%rbx), %ymm3
# CHECK: [0] [1] [2] [3]
# CHECK-NEXT: 0. 1 1.0 1.0 0.0 vmovaps (%rax), %ymm0
# CHECK-NEXT: 1. 1 1.0 1.0 0.0 vmovaps (%rcx), %ymm1
-# CHECK-NEXT: 2. 1 1.0 1.0 0.0 vmovaps (%rdx), %ymm2
-# CHECK-NEXT: 3. 1 1.0 1.0 0.0 vmovaps (%rbx), %ymm3
+# CHECK-NEXT: 2. 1 3.0 3.0 0.0 vmovaps (%rdx), %ymm2
+# CHECK-NEXT: 3. 1 3.0 3.0 0.0 vmovaps (%rbx), %ymm3
Modified: llvm/trunk/test/tools/llvm-mca/X86/BdVer2/memcpy-like-test.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-mca/X86/BdVer2/memcpy-like-test.s?rev=360341&r1=360340&r2=360341&view=diff
==============================================================================
--- llvm/trunk/test/tools/llvm-mca/X86/BdVer2/memcpy-like-test.s (original)
+++ llvm/trunk/test/tools/llvm-mca/X86/BdVer2/memcpy-like-test.s Thu May 9 06:54:51 2019
@@ -12,13 +12,13 @@ vmovaps %xmm0, 48(%rdi)
# CHECK: Iterations: 100
# CHECK-NEXT: Instructions: 800
-# CHECK-NEXT: Total Cycles: 408
+# CHECK-NEXT: Total Cycles: 806
# CHECK-NEXT: Total uOps: 800
# CHECK: Dispatch Width: 4
-# CHECK-NEXT: uOps Per Cycle: 1.96
-# CHECK-NEXT: IPC: 1.96
-# CHECK-NEXT: Block RThroughput: 4.0
+# CHECK-NEXT: uOps Per Cycle: 0.99
+# CHECK-NEXT: IPC: 0.99
+# CHECK-NEXT: Block RThroughput: 8.0
# CHECK: Instruction Info:
# CHECK-NEXT: [1]: #uOps
@@ -29,14 +29,14 @@ vmovaps %xmm0, 48(%rdi)
# CHECK-NEXT: [6]: HasSideEffects (U)
# CHECK: [1] [2] [3] [4] [5] [6] Instructions:
-# CHECK-NEXT: 1 5 0.50 * vmovaps (%rsi), %xmm0
-# CHECK-NEXT: 1 1 1.00 * vmovaps %xmm0, (%rdi)
-# CHECK-NEXT: 1 5 0.50 * vmovaps 16(%rsi), %xmm0
-# CHECK-NEXT: 1 1 1.00 * vmovaps %xmm0, 16(%rdi)
-# CHECK-NEXT: 1 5 0.50 * vmovaps 32(%rsi), %xmm0
-# CHECK-NEXT: 1 1 1.00 * vmovaps %xmm0, 32(%rdi)
-# CHECK-NEXT: 1 5 0.50 * vmovaps 48(%rsi), %xmm0
-# CHECK-NEXT: 1 1 1.00 * vmovaps %xmm0, 48(%rdi)
+# CHECK-NEXT: 1 5 1.50 * vmovaps (%rsi), %xmm0
+# CHECK-NEXT: 1 1 1.50 * vmovaps %xmm0, (%rdi)
+# CHECK-NEXT: 1 5 1.50 * vmovaps 16(%rsi), %xmm0
+# CHECK-NEXT: 1 1 1.50 * vmovaps %xmm0, 16(%rdi)
+# CHECK-NEXT: 1 5 1.50 * vmovaps 32(%rsi), %xmm0
+# CHECK-NEXT: 1 1 1.50 * vmovaps %xmm0, 32(%rdi)
+# CHECK-NEXT: 1 5 1.50 * vmovaps 48(%rsi), %xmm0
+# CHECK-NEXT: 1 1 1.50 * vmovaps %xmm0, 48(%rdi)
# CHECK: Resources:
# CHECK-NEXT: [0.0] - PdAGLU01
@@ -65,31 +65,31 @@ vmovaps %xmm0, 48(%rdi)
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0.0] [0.1] [1] [2] [3] [4] [5] [6] [7.0] [7.1] [8.0] [8.1] [9] [10] [11] [12] [13] [14] [15] [16.0] [16.1] [17] [18]
-# CHECK-NEXT: 4.00 4.00 - - - - - - 2.00 2.00 - - - 4.00 3.95 4.05 - - - 2.00 2.00 - 4.00
+# CHECK-NEXT: 8.00 8.00 - - - - - - 6.00 6.00 - - - 4.00 2.00 2.00 6.00 6.00 - 6.00 6.00 - 4.00
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0.0] [0.1] [1] [2] [3] [4] [5] [6] [7.0] [7.1] [8.0] [8.1] [9] [10] [11] [12] [13] [14] [15] [16.0] [16.1] [17] [18] Instructions:
-# CHECK-NEXT: 0.97 0.03 - - - - - - - 1.00 - - - - 0.97 0.03 - - - - 1.00 - - vmovaps (%rsi), %xmm0
-# CHECK-NEXT: - 1.00 - - - - - - - - - - - 1.00 - 1.00 - - - - - - 1.00 vmovaps %xmm0, (%rdi)
-# CHECK-NEXT: 1.00 - - - - - - - 1.00 - - - - - 1.00 - - - - 1.00 - - - vmovaps 16(%rsi), %xmm0
-# CHECK-NEXT: 0.02 0.98 - - - - - - - - - - - 1.00 - 1.00 - - - - - - 1.00 vmovaps %xmm0, 16(%rdi)
-# CHECK-NEXT: 0.98 0.02 - - - - - - - 1.00 - - - - 0.98 0.02 - - - - 1.00 - - vmovaps 32(%rsi), %xmm0
-# CHECK-NEXT: - 1.00 - - - - - - - - - - - 1.00 - 1.00 - - - - - - 1.00 vmovaps %xmm0, 32(%rdi)
-# CHECK-NEXT: 1.00 - - - - - - - 1.00 - - - - - 1.00 - - - - 1.00 - - - vmovaps 48(%rsi), %xmm0
-# CHECK-NEXT: 0.03 0.97 - - - - - - - - - - - 1.00 - 1.00 - - - - - - 1.00 vmovaps %xmm0, 48(%rdi)
+# CHECK-NEXT: 2.97 0.03 - - - - - - - 3.00 - - - - - 1.00 - - - - 3.00 - - vmovaps (%rsi), %xmm0
+# CHECK-NEXT: - 1.00 - - - - - - - - - - - 1.00 - - - 3.00 - - - - 1.00 vmovaps %xmm0, (%rdi)
+# CHECK-NEXT: 0.03 2.97 - - - - - - 3.00 - - - - - 1.00 - - - - 3.00 - - - vmovaps 16(%rsi), %xmm0
+# CHECK-NEXT: 0.01 0.99 - - - - - - - - - - - 1.00 - - 3.00 - - - - - 1.00 vmovaps %xmm0, 16(%rdi)
+# CHECK-NEXT: - 3.00 - - - - - - - 3.00 - - - - - 1.00 - - - - 3.00 - - vmovaps 32(%rsi), %xmm0
+# CHECK-NEXT: 0.99 0.01 - - - - - - - - - - - 1.00 - - - 3.00 - - - - 1.00 vmovaps %xmm0, 32(%rdi)
+# CHECK-NEXT: 3.00 - - - - - - - 3.00 - - - - - 1.00 - - - - 3.00 - - - vmovaps 48(%rsi), %xmm0
+# CHECK-NEXT: 1.00 - - - - - - - - - - - - 1.00 - - 3.00 - - - - - 1.00 vmovaps %xmm0, 48(%rdi)
# CHECK: Timeline view:
-# CHECK-NEXT: 01
+# CHECK-NEXT: 0123
# CHECK-NEXT: Index 0123456789
-# CHECK: [0,0] DeeeeeER .. vmovaps (%rsi), %xmm0
-# CHECK-NEXT: [0,1] D=====eER .. vmovaps %xmm0, (%rdi)
-# CHECK-NEXT: [0,2] DeeeeeE-R .. vmovaps 16(%rsi), %xmm0
-# CHECK-NEXT: [0,3] D======eER.. vmovaps %xmm0, 16(%rdi)
-# CHECK-NEXT: [0,4] .DeeeeeE-R.. vmovaps 32(%rsi), %xmm0
-# CHECK-NEXT: [0,5] .D======eER. vmovaps %xmm0, 32(%rdi)
-# CHECK-NEXT: [0,6] .DeeeeeE--R. vmovaps 48(%rsi), %xmm0
-# CHECK-NEXT: [0,7] .D=======eER vmovaps %xmm0, 48(%rdi)
+# CHECK: [0,0] DeeeeeER . . vmovaps (%rsi), %xmm0
+# CHECK-NEXT: [0,1] D======eER. . vmovaps %xmm0, (%rdi)
+# CHECK-NEXT: [0,2] DeeeeeE--R. . vmovaps 16(%rsi), %xmm0
+# CHECK-NEXT: [0,3] D=======eER . vmovaps %xmm0, 16(%rdi)
+# CHECK-NEXT: [0,4] .D==eeeeeER . vmovaps 32(%rsi), %xmm0
+# CHECK-NEXT: [0,5] .D========eER. vmovaps %xmm0, 32(%rdi)
+# CHECK-NEXT: [0,6] .D==eeeeeE--R. vmovaps 48(%rsi), %xmm0
+# CHECK-NEXT: [0,7] .D=========eER vmovaps %xmm0, 48(%rdi)
# CHECK: Average Wait times (based on the timeline view):
# CHECK-NEXT: [0]: Executions
@@ -99,10 +99,10 @@ vmovaps %xmm0, 48(%rdi)
# CHECK: [0] [1] [2] [3]
# CHECK-NEXT: 0. 1 1.0 1.0 0.0 vmovaps (%rsi), %xmm0
-# CHECK-NEXT: 1. 1 6.0 0.0 0.0 vmovaps %xmm0, (%rdi)
-# CHECK-NEXT: 2. 1 1.0 1.0 1.0 vmovaps 16(%rsi), %xmm0
-# CHECK-NEXT: 3. 1 7.0 0.0 0.0 vmovaps %xmm0, 16(%rdi)
-# CHECK-NEXT: 4. 1 1.0 1.0 1.0 vmovaps 32(%rsi), %xmm0
-# CHECK-NEXT: 5. 1 7.0 0.0 0.0 vmovaps %xmm0, 32(%rdi)
-# CHECK-NEXT: 6. 1 1.0 1.0 2.0 vmovaps 48(%rsi), %xmm0
-# CHECK-NEXT: 7. 1 8.0 0.0 0.0 vmovaps %xmm0, 48(%rdi)
+# CHECK-NEXT: 1. 1 7.0 1.0 0.0 vmovaps %xmm0, (%rdi)
+# CHECK-NEXT: 2. 1 1.0 1.0 2.0 vmovaps 16(%rsi), %xmm0
+# CHECK-NEXT: 3. 1 8.0 0.0 0.0 vmovaps %xmm0, 16(%rdi)
+# CHECK-NEXT: 4. 1 3.0 3.0 0.0 vmovaps 32(%rsi), %xmm0
+# CHECK-NEXT: 5. 1 9.0 1.0 0.0 vmovaps %xmm0, 32(%rdi)
+# CHECK-NEXT: 6. 1 3.0 3.0 2.0 vmovaps 48(%rsi), %xmm0
+# CHECK-NEXT: 7. 1 10.0 0.0 0.0 vmovaps %xmm0, 48(%rdi)
Modified: llvm/trunk/test/tools/llvm-mca/X86/BdVer2/one-idioms.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-mca/X86/BdVer2/one-idioms.s?rev=360341&r1=360340&r2=360341&view=diff
==============================================================================
--- llvm/trunk/test/tools/llvm-mca/X86/BdVer2/one-idioms.s (original)
+++ llvm/trunk/test/tools/llvm-mca/X86/BdVer2/one-idioms.s Thu May 9 06:54:51 2019
@@ -29,13 +29,13 @@ vpcmpeqw %xmm3, %xmm3, %xmm5
# CHECK: Iterations: 100
# CHECK-NEXT: Instructions: 1500
-# CHECK-NEXT: Total Cycles: 754
+# CHECK-NEXT: Total Cycles: 1353
# CHECK-NEXT: Total uOps: 1500
# CHECK: Dispatch Width: 4
-# CHECK-NEXT: uOps Per Cycle: 1.99
-# CHECK-NEXT: IPC: 1.99
-# CHECK-NEXT: Block RThroughput: 7.5
+# CHECK-NEXT: uOps Per Cycle: 1.11
+# CHECK-NEXT: IPC: 1.11
+# CHECK-NEXT: Block RThroughput: 13.5
# CHECK: Instruction Info:
# CHECK-NEXT: [1]: #uOps
@@ -49,27 +49,27 @@ vpcmpeqw %xmm3, %xmm3, %xmm5
# CHECK-NEXT: 1 2 0.50 pcmpeqb %mm2, %mm2
# CHECK-NEXT: 1 2 0.50 pcmpeqd %mm2, %mm2
# CHECK-NEXT: 1 2 0.50 pcmpeqw %mm2, %mm2
-# CHECK-NEXT: 1 2 0.50 pcmpeqb %xmm2, %xmm2
-# CHECK-NEXT: 1 2 0.50 pcmpeqd %xmm2, %xmm2
-# CHECK-NEXT: 1 2 0.50 pcmpeqq %xmm2, %xmm2
-# CHECK-NEXT: 1 2 0.50 pcmpeqw %xmm2, %xmm2
-# CHECK-NEXT: 1 2 0.50 vpcmpeqb %xmm3, %xmm3, %xmm3
-# CHECK-NEXT: 1 2 0.50 vpcmpeqd %xmm3, %xmm3, %xmm3
-# CHECK-NEXT: 1 2 0.50 vpcmpeqq %xmm3, %xmm3, %xmm3
-# CHECK-NEXT: 1 2 0.50 vpcmpeqw %xmm3, %xmm3, %xmm3
-# CHECK-NEXT: 1 2 0.50 vpcmpeqb %xmm3, %xmm3, %xmm5
-# CHECK-NEXT: 1 2 0.50 vpcmpeqd %xmm3, %xmm3, %xmm5
-# CHECK-NEXT: 1 2 0.50 vpcmpeqq %xmm3, %xmm3, %xmm5
-# CHECK-NEXT: 1 2 0.50 vpcmpeqw %xmm3, %xmm3, %xmm5
+# CHECK-NEXT: 1 2 1.00 pcmpeqb %xmm2, %xmm2
+# CHECK-NEXT: 1 2 1.00 pcmpeqd %xmm2, %xmm2
+# CHECK-NEXT: 1 2 1.00 pcmpeqq %xmm2, %xmm2
+# CHECK-NEXT: 1 2 1.00 pcmpeqw %xmm2, %xmm2
+# CHECK-NEXT: 1 2 1.00 vpcmpeqb %xmm3, %xmm3, %xmm3
+# CHECK-NEXT: 1 2 1.00 vpcmpeqd %xmm3, %xmm3, %xmm3
+# CHECK-NEXT: 1 2 1.00 vpcmpeqq %xmm3, %xmm3, %xmm3
+# CHECK-NEXT: 1 2 1.00 vpcmpeqw %xmm3, %xmm3, %xmm3
+# CHECK-NEXT: 1 2 1.00 vpcmpeqb %xmm3, %xmm3, %xmm5
+# CHECK-NEXT: 1 2 1.00 vpcmpeqd %xmm3, %xmm3, %xmm5
+# CHECK-NEXT: 1 2 1.00 vpcmpeqq %xmm3, %xmm3, %xmm5
+# CHECK-NEXT: 1 2 1.00 vpcmpeqw %xmm3, %xmm3, %xmm5
# CHECK: Register File statistics:
# CHECK-NEXT: Total number of mappings created: 1500
-# CHECK-NEXT: Max number of mappings used: 72
+# CHECK-NEXT: Max number of mappings used: 69
# CHECK: * Register File #1 -- PdFpuPRF:
# CHECK-NEXT: Number of physical registers: 160
# CHECK-NEXT: Total number of mappings created: 1500
-# CHECK-NEXT: Max number of mappings used: 72
+# CHECK-NEXT: Max number of mappings used: 69
# CHECK: * Register File #2 -- PdIntegerPRF:
# CHECK-NEXT: Number of physical registers: 96
@@ -103,45 +103,45 @@ vpcmpeqw %xmm3, %xmm3, %xmm5
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0.0] [0.1] [1] [2] [3] [4] [5] [6] [7.0] [7.1] [8.0] [8.1] [9] [10] [11] [12] [13] [14] [15] [16.0] [16.1] [17] [18]
-# CHECK-NEXT: - - - - - - - - - - 7.50 7.50 - - 7.50 7.50 - - - - - - -
+# CHECK-NEXT: - - - - - - - - - - 13.50 13.50 - - 7.50 7.50 - - - - - - -
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0.0] [0.1] [1] [2] [3] [4] [5] [6] [7.0] [7.1] [8.0] [8.1] [9] [10] [11] [12] [13] [14] [15] [16.0] [16.1] [17] [18] Instructions:
# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - - - - pcmpeqb %mm2, %mm2
# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - - - - pcmpeqd %mm2, %mm2
# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - - - - pcmpeqw %mm2, %mm2
-# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - - - - pcmpeqb %xmm2, %xmm2
-# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - - - - pcmpeqd %xmm2, %xmm2
-# CHECK-NEXT: - - - - - - - - - - - 1.00 - - - 1.00 - - - - - - - pcmpeqq %xmm2, %xmm2
-# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - - - - pcmpeqw %xmm2, %xmm2
-# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - - - - vpcmpeqb %xmm3, %xmm3, %xmm3
-# CHECK-NEXT: - - - - - - - - - - 1.00 - - - 1.00 - - - - - - - - vpcmpeqd %xmm3, %xmm3, %xmm3
-# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - - - - vpcmpeqq %xmm3, %xmm3, %xmm3
-# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - - - - vpcmpeqw %xmm3, %xmm3, %xmm3
-# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - - - - vpcmpeqb %xmm3, %xmm3, %xmm5
-# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - - - - vpcmpeqd %xmm3, %xmm3, %xmm5
-# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - - - - vpcmpeqq %xmm3, %xmm3, %xmm5
-# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - - - - vpcmpeqw %xmm3, %xmm3, %xmm5
+# CHECK-NEXT: - - - - - - - - - - 1.00 1.00 - - 0.50 0.50 - - - - - - - pcmpeqb %xmm2, %xmm2
+# CHECK-NEXT: - - - - - - - - - - 1.00 1.00 - - 0.50 0.50 - - - - - - - pcmpeqd %xmm2, %xmm2
+# CHECK-NEXT: - - - - - - - - - - 1.00 1.00 - - 0.50 0.50 - - - - - - - pcmpeqq %xmm2, %xmm2
+# CHECK-NEXT: - - - - - - - - - - 1.00 1.00 - - 0.50 0.50 - - - - - - - pcmpeqw %xmm2, %xmm2
+# CHECK-NEXT: - - - - - - - - - - 1.00 1.00 - - 0.50 0.50 - - - - - - - vpcmpeqb %xmm3, %xmm3, %xmm3
+# CHECK-NEXT: - - - - - - - - - - 1.00 1.00 - - 0.50 0.50 - - - - - - - vpcmpeqd %xmm3, %xmm3, %xmm3
+# CHECK-NEXT: - - - - - - - - - - 1.00 1.00 - - 0.50 0.50 - - - - - - - vpcmpeqq %xmm3, %xmm3, %xmm3
+# CHECK-NEXT: - - - - - - - - - - 1.00 1.00 - - 0.50 0.50 - - - - - - - vpcmpeqw %xmm3, %xmm3, %xmm3
+# CHECK-NEXT: - - - - - - - - - - 1.00 1.00 - - 0.50 0.50 - - - - - - - vpcmpeqb %xmm3, %xmm3, %xmm5
+# CHECK-NEXT: - - - - - - - - - - 1.00 1.00 - - 0.50 0.50 - - - - - - - vpcmpeqd %xmm3, %xmm3, %xmm5
+# CHECK-NEXT: - - - - - - - - - - 1.00 1.00 - - 0.50 0.50 - - - - - - - vpcmpeqq %xmm3, %xmm3, %xmm5
+# CHECK-NEXT: - - - - - - - - - - 1.00 1.00 - - 0.50 0.50 - - - - - - - vpcmpeqw %xmm3, %xmm3, %xmm5
# CHECK: Timeline view:
-# CHECK-NEXT: 01
+# CHECK-NEXT: 0123456
# CHECK-NEXT: Index 0123456789
-# CHECK: [0,0] DeeER. .. pcmpeqb %mm2, %mm2
-# CHECK-NEXT: [0,1] DeeER. .. pcmpeqd %mm2, %mm2
-# CHECK-NEXT: [0,2] D=eeER .. pcmpeqw %mm2, %mm2
-# CHECK-NEXT: [0,3] D==eeER .. pcmpeqb %xmm2, %xmm2
-# CHECK-NEXT: [0,4] .DeeE-R .. pcmpeqd %xmm2, %xmm2
-# CHECK-NEXT: [0,5] .D==eeER .. pcmpeqq %xmm2, %xmm2
-# CHECK-NEXT: [0,6] .D=eeE-R .. pcmpeqw %xmm2, %xmm2
-# CHECK-NEXT: [0,7] .D===eeER .. vpcmpeqb %xmm3, %xmm3, %xmm3
-# CHECK-NEXT: [0,8] . D=eeE-R .. vpcmpeqd %xmm3, %xmm3, %xmm3
-# CHECK-NEXT: [0,9] . D===eeER.. vpcmpeqq %xmm3, %xmm3, %xmm3
-# CHECK-NEXT: [0,10] . D==eeE-R.. vpcmpeqw %xmm3, %xmm3, %xmm3
-# CHECK-NEXT: [0,11] . D===eeER.. vpcmpeqb %xmm3, %xmm3, %xmm5
-# CHECK-NEXT: [0,12] . D===eeER. vpcmpeqd %xmm3, %xmm3, %xmm5
-# CHECK-NEXT: [0,13] . D===eeER. vpcmpeqq %xmm3, %xmm3, %xmm5
-# CHECK-NEXT: [0,14] . D====eeER vpcmpeqw %xmm3, %xmm3, %xmm5
+# CHECK: [0,0] DeeER. . .. pcmpeqb %mm2, %mm2
+# CHECK-NEXT: [0,1] DeeER. . .. pcmpeqd %mm2, %mm2
+# CHECK-NEXT: [0,2] D=eeER . .. pcmpeqw %mm2, %mm2
+# CHECK-NEXT: [0,3] D==eeER . .. pcmpeqb %xmm2, %xmm2
+# CHECK-NEXT: [0,4] .DeeE-R . .. pcmpeqd %xmm2, %xmm2
+# CHECK-NEXT: [0,5] .D==eeER . .. pcmpeqq %xmm2, %xmm2
+# CHECK-NEXT: [0,6] .D===eeER . .. pcmpeqw %xmm2, %xmm2
+# CHECK-NEXT: [0,7] .D=====eeER .. vpcmpeqb %xmm3, %xmm3, %xmm3
+# CHECK-NEXT: [0,8] . D===eeE-R .. vpcmpeqd %xmm3, %xmm3, %xmm3
+# CHECK-NEXT: [0,9] . D======eeER .. vpcmpeqq %xmm3, %xmm3, %xmm3
+# CHECK-NEXT: [0,10] . D=====eeE-R .. vpcmpeqw %xmm3, %xmm3, %xmm3
+# CHECK-NEXT: [0,11] . D=======eeER .. vpcmpeqb %xmm3, %xmm3, %xmm5
+# CHECK-NEXT: [0,12] . D=======eeER.. vpcmpeqd %xmm3, %xmm3, %xmm5
+# CHECK-NEXT: [0,13] . D========eeER. vpcmpeqq %xmm3, %xmm3, %xmm5
+# CHECK-NEXT: [0,14] . D=========eeER vpcmpeqw %xmm3, %xmm3, %xmm5
# CHECK: Average Wait times (based on the timeline view):
# CHECK-NEXT: [0]: Executions
@@ -156,12 +156,12 @@ vpcmpeqw %xmm3, %xmm3, %xmm5
# CHECK-NEXT: 3. 1 3.0 3.0 0.0 pcmpeqb %xmm2, %xmm2
# CHECK-NEXT: 4. 1 1.0 1.0 1.0 pcmpeqd %xmm2, %xmm2
# CHECK-NEXT: 5. 1 3.0 0.0 0.0 pcmpeqq %xmm2, %xmm2
-# CHECK-NEXT: 6. 1 2.0 2.0 1.0 pcmpeqw %xmm2, %xmm2
-# CHECK-NEXT: 7. 1 4.0 4.0 0.0 vpcmpeqb %xmm3, %xmm3, %xmm3
-# CHECK-NEXT: 8. 1 2.0 2.0 1.0 vpcmpeqd %xmm3, %xmm3, %xmm3
-# CHECK-NEXT: 9. 1 4.0 0.0 0.0 vpcmpeqq %xmm3, %xmm3, %xmm3
-# CHECK-NEXT: 10. 1 3.0 3.0 1.0 vpcmpeqw %xmm3, %xmm3, %xmm3
-# CHECK-NEXT: 11. 1 4.0 4.0 0.0 vpcmpeqb %xmm3, %xmm3, %xmm5
-# CHECK-NEXT: 12. 1 4.0 4.0 0.0 vpcmpeqd %xmm3, %xmm3, %xmm5
-# CHECK-NEXT: 13. 1 4.0 0.0 0.0 vpcmpeqq %xmm3, %xmm3, %xmm5
-# CHECK-NEXT: 14. 1 5.0 5.0 0.0 vpcmpeqw %xmm3, %xmm3, %xmm5
+# CHECK-NEXT: 6. 1 4.0 4.0 0.0 pcmpeqw %xmm2, %xmm2
+# CHECK-NEXT: 7. 1 6.0 6.0 0.0 vpcmpeqb %xmm3, %xmm3, %xmm3
+# CHECK-NEXT: 8. 1 4.0 4.0 1.0 vpcmpeqd %xmm3, %xmm3, %xmm3
+# CHECK-NEXT: 9. 1 7.0 1.0 0.0 vpcmpeqq %xmm3, %xmm3, %xmm3
+# CHECK-NEXT: 10. 1 6.0 6.0 1.0 vpcmpeqw %xmm3, %xmm3, %xmm3
+# CHECK-NEXT: 11. 1 8.0 8.0 0.0 vpcmpeqb %xmm3, %xmm3, %xmm5
+# CHECK-NEXT: 12. 1 8.0 8.0 0.0 vpcmpeqd %xmm3, %xmm3, %xmm5
+# CHECK-NEXT: 13. 1 9.0 2.0 0.0 vpcmpeqq %xmm3, %xmm3, %xmm5
+# CHECK-NEXT: 14. 1 10.0 10.0 0.0 vpcmpeqw %xmm3, %xmm3, %xmm5
Modified: llvm/trunk/test/tools/llvm-mca/X86/BdVer2/partial-reg-update-2.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-mca/X86/BdVer2/partial-reg-update-2.s?rev=360341&r1=360340&r2=360341&view=diff
==============================================================================
--- llvm/trunk/test/tools/llvm-mca/X86/BdVer2/partial-reg-update-2.s (original)
+++ llvm/trunk/test/tools/llvm-mca/X86/BdVer2/partial-reg-update-2.s Thu May 9 06:54:51 2019
@@ -25,8 +25,8 @@ add %ecx, %ebx
# CHECK: [1] [2] [3] [4] [5] [6] Instructions:
# CHECK-NEXT: 1 6 4.00 imulq %rax, %rbx
-# CHECK-NEXT: 2 2 0.50 lzcntw %ax, %bx
-# CHECK-NEXT: 1 1 0.50 addl %ecx, %ebx
+# CHECK-NEXT: 2 2 2.00 lzcntw %ax, %bx
+# CHECK-NEXT: 1 1 1.00 addl %ecx, %ebx
# CHECK: Timeline view:
# CHECK-NEXT: 0
Modified: llvm/trunk/test/tools/llvm-mca/X86/BdVer2/partial-reg-update-3.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-mca/X86/BdVer2/partial-reg-update-3.s?rev=360341&r1=360340&r2=360341&view=diff
==============================================================================
--- llvm/trunk/test/tools/llvm-mca/X86/BdVer2/partial-reg-update-3.s (original)
+++ llvm/trunk/test/tools/llvm-mca/X86/BdVer2/partial-reg-update-3.s Thu May 9 06:54:51 2019
@@ -18,7 +18,7 @@ xor %bx, %dx
# CHECK: Dispatch Width: 4
# CHECK-NEXT: uOps Per Cycle: 1.00
# CHECK-NEXT: IPC: 1.00
-# CHECK-NEXT: Block RThroughput: 1.5
+# CHECK-NEXT: Block RThroughput: 3.0
# CHECK: Instruction Info:
# CHECK-NEXT: [1]: #uOps
@@ -29,9 +29,9 @@ xor %bx, %dx
# CHECK-NEXT: [6]: HasSideEffects (U)
# CHECK: [1] [2] [3] [4] [5] [6] Instructions:
-# CHECK-NEXT: 1 1 0.50 addw %cx, %dx
-# CHECK-NEXT: 1 1 0.50 movw %ax, %dx
-# CHECK-NEXT: 1 1 0.50 xorw %bx, %dx
+# CHECK-NEXT: 1 1 1.00 addw %cx, %dx
+# CHECK-NEXT: 1 1 1.00 movw %ax, %dx
+# CHECK-NEXT: 1 1 1.00 xorw %bx, %dx
# CHECK: Resources:
# CHECK-NEXT: [0.0] - PdAGLU01
@@ -60,13 +60,13 @@ xor %bx, %dx
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0.0] [0.1] [1] [2] [3] [4] [5] [6] [7.0] [7.1] [8.0] [8.1] [9] [10] [11] [12] [13] [14] [15] [16.0] [16.1] [17] [18]
-# CHECK-NEXT: - - - - - 1.50 1.50 - - - - - - - - - - - - - - - -
+# CHECK-NEXT: - - - - - 3.00 3.00 - - - - - - - - - - - - - - - -
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0.0] [0.1] [1] [2] [3] [4] [5] [6] [7.0] [7.1] [8.0] [8.1] [9] [10] [11] [12] [13] [14] [15] [16.0] [16.1] [17] [18] Instructions:
-# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - addw %cx, %dx
-# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - movw %ax, %dx
-# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - xorw %bx, %dx
+# CHECK-NEXT: - - - - - 1.00 1.00 - - - - - - - - - - - - - - - - addw %cx, %dx
+# CHECK-NEXT: - - - - - 1.00 1.00 - - - - - - - - - - - - - - - - movw %ax, %dx
+# CHECK-NEXT: - - - - - 1.00 1.00 - - - - - - - - - - - - - - - - xorw %bx, %dx
# CHECK: Timeline view:
# CHECK-NEXT: 01
Modified: llvm/trunk/test/tools/llvm-mca/X86/BdVer2/partial-reg-update-4.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-mca/X86/BdVer2/partial-reg-update-4.s?rev=360341&r1=360340&r2=360341&view=diff
==============================================================================
--- llvm/trunk/test/tools/llvm-mca/X86/BdVer2/partial-reg-update-4.s (original)
+++ llvm/trunk/test/tools/llvm-mca/X86/BdVer2/partial-reg-update-4.s Thu May 9 06:54:51 2019
@@ -12,13 +12,13 @@ add %cx, %bx
# CHECK: Iterations: 1500
# CHECK-NEXT: Instructions: 4500
-# CHECK-NEXT: Total Cycles: 9003
+# CHECK-NEXT: Total Cycles: 9753
# CHECK-NEXT: Total uOps: 6000
# CHECK: Dispatch Width: 4
-# CHECK-NEXT: uOps Per Cycle: 0.67
-# CHECK-NEXT: IPC: 0.50
-# CHECK-NEXT: Block RThroughput: 1.0
+# CHECK-NEXT: uOps Per Cycle: 0.62
+# CHECK-NEXT: IPC: 0.46
+# CHECK-NEXT: Block RThroughput: 2.0
# CHECK: Instruction Info:
# CHECK-NEXT: [1]: #uOps
@@ -29,9 +29,9 @@ add %cx, %bx
# CHECK-NEXT: [6]: HasSideEffects (U)
# CHECK: [1] [2] [3] [4] [5] [6] Instructions:
-# CHECK-NEXT: 1 4 1.00 imulw %ax, %bx
-# CHECK-NEXT: 2 2 0.50 lzcntw %ax, %bx
-# CHECK-NEXT: 1 1 0.50 addw %cx, %bx
+# CHECK-NEXT: 1 4 2.00 imulw %ax, %bx
+# CHECK-NEXT: 2 2 2.00 lzcntw %ax, %bx
+# CHECK-NEXT: 1 1 1.00 addw %cx, %bx
# CHECK: Resources:
# CHECK-NEXT: [0.0] - PdAGLU01
@@ -60,27 +60,27 @@ add %cx, %bx
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0.0] [0.1] [1] [2] [3] [4] [5] [6] [7.0] [7.1] [8.0] [8.1] [9] [10] [11] [12] [13] [14] [15] [16.0] [16.1] [17] [18]
-# CHECK-NEXT: - - - - - 1.50 1.50 - - - - - - - - - - - - - - 1.00 -
+# CHECK-NEXT: - - - - - 3.00 2.00 - - - - - - - - - - - - - - 2.00 -
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0.0] [0.1] [1] [2] [3] [4] [5] [6] [7.0] [7.1] [8.0] [8.1] [9] [10] [11] [12] [13] [14] [15] [16.0] [16.1] [17] [18] Instructions:
-# CHECK-NEXT: - - - - - - 1.00 - - - - - - - - - - - - - - 1.00 - imulw %ax, %bx
-# CHECK-NEXT: - - - - - 1.00 - - - - - - - - - - - - - - - - - lzcntw %ax, %bx
-# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - addw %cx, %bx
+# CHECK-NEXT: - - - - - - 1.00 - - - - - - - - - - - - - - 2.00 - imulw %ax, %bx
+# CHECK-NEXT: - - - - - 2.00 - - - - - - - - - - - - - - - - - lzcntw %ax, %bx
+# CHECK-NEXT: - - - - - 1.00 1.00 - - - - - - - - - - - - - - - - addw %cx, %bx
# CHECK: Timeline view:
# CHECK-NEXT: 0123456789
-# CHECK-NEXT: Index 0123456789 0
+# CHECK-NEXT: Index 0123456789 01
-# CHECK: [0,0] DeeeeER . . . imulw %ax, %bx
-# CHECK-NEXT: [0,1] D===eeER . . . lzcntw %ax, %bx
-# CHECK-NEXT: [0,2] D=====eER . . . addw %cx, %bx
-# CHECK-NEXT: [1,0] .D=====eeeeER . . imulw %ax, %bx
-# CHECK-NEXT: [1,1] .D========eeER . . lzcntw %ax, %bx
-# CHECK-NEXT: [1,2] .D==========eER. . addw %cx, %bx
-# CHECK-NEXT: [2,0] . D==========eeeeER . imulw %ax, %bx
-# CHECK-NEXT: [2,1] . D=============eeER. lzcntw %ax, %bx
-# CHECK-NEXT: [2,2] . D===============eER addw %cx, %bx
+# CHECK: [0,0] DeeeeER . . .. imulw %ax, %bx
+# CHECK-NEXT: [0,1] D===eeER . . .. lzcntw %ax, %bx
+# CHECK-NEXT: [0,2] D=====eER . . .. addw %cx, %bx
+# CHECK-NEXT: [1,0] .D======eeeeER . .. imulw %ax, %bx
+# CHECK-NEXT: [1,1] .D=========eeER. .. lzcntw %ax, %bx
+# CHECK-NEXT: [1,2] .D===========eER .. addw %cx, %bx
+# CHECK-NEXT: [2,0] . D===========eeeeER.. imulw %ax, %bx
+# CHECK-NEXT: [2,1] . D==============eeER. lzcntw %ax, %bx
+# CHECK-NEXT: [2,2] . D================eER addw %cx, %bx
# CHECK: Average Wait times (based on the timeline view):
# CHECK-NEXT: [0]: Executions
@@ -89,6 +89,6 @@ add %cx, %bx
# CHECK-NEXT: [3]: Average time elapsed from WB until retire stage
# CHECK: [0] [1] [2] [3]
-# CHECK-NEXT: 0. 3 6.0 0.3 0.0 imulw %ax, %bx
-# CHECK-NEXT: 1. 3 9.0 0.0 0.0 lzcntw %ax, %bx
-# CHECK-NEXT: 2. 3 11.0 0.0 0.0 addw %cx, %bx
+# CHECK-NEXT: 0. 3 6.7 0.7 0.0 imulw %ax, %bx
+# CHECK-NEXT: 1. 3 9.7 0.0 0.0 lzcntw %ax, %bx
+# CHECK-NEXT: 2. 3 11.7 0.0 0.0 addw %cx, %bx
Modified: llvm/trunk/test/tools/llvm-mca/X86/BdVer2/partial-reg-update-5.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-mca/X86/BdVer2/partial-reg-update-5.s?rev=360341&r1=360340&r2=360341&view=diff
==============================================================================
--- llvm/trunk/test/tools/llvm-mca/X86/BdVer2/partial-reg-update-5.s (original)
+++ llvm/trunk/test/tools/llvm-mca/X86/BdVer2/partial-reg-update-5.s Thu May 9 06:54:51 2019
@@ -7,13 +7,13 @@ lzcnt %ax, %bx ## partial register stal
# CHECK: Iterations: 1500
# CHECK-NEXT: Instructions: 1500
-# CHECK-NEXT: Total Cycles: 1504
+# CHECK-NEXT: Total Cycles: 3003
# CHECK-NEXT: Total uOps: 3000
# CHECK: Dispatch Width: 4
-# CHECK-NEXT: uOps Per Cycle: 1.99
-# CHECK-NEXT: IPC: 1.00
-# CHECK-NEXT: Block RThroughput: 0.5
+# CHECK-NEXT: uOps Per Cycle: 1.00
+# CHECK-NEXT: IPC: 0.50
+# CHECK-NEXT: Block RThroughput: 2.0
# CHECK: Instruction Info:
# CHECK-NEXT: [1]: #uOps
@@ -24,7 +24,7 @@ lzcnt %ax, %bx ## partial register stal
# CHECK-NEXT: [6]: HasSideEffects (U)
# CHECK: [1] [2] [3] [4] [5] [6] Instructions:
-# CHECK-NEXT: 2 2 0.50 lzcntw %ax, %bx
+# CHECK-NEXT: 2 2 2.00 lzcntw %ax, %bx
# CHECK: Resources:
# CHECK-NEXT: [0.0] - PdAGLU01
@@ -53,18 +53,18 @@ lzcnt %ax, %bx ## partial register stal
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0.0] [0.1] [1] [2] [3] [4] [5] [6] [7.0] [7.1] [8.0] [8.1] [9] [10] [11] [12] [13] [14] [15] [16.0] [16.1] [17] [18]
-# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - -
+# CHECK-NEXT: - - - - - 2.00 - - - - - - - - - - - - - - - - -
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0.0] [0.1] [1] [2] [3] [4] [5] [6] [7.0] [7.1] [8.0] [8.1] [9] [10] [11] [12] [13] [14] [15] [16.0] [16.1] [17] [18] Instructions:
-# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - lzcntw %ax, %bx
+# CHECK-NEXT: - - - - - 2.00 - - - - - - - - - - - - - - - - - lzcntw %ax, %bx
# CHECK: Timeline view:
-# CHECK-NEXT: Index 0123456
+# CHECK-NEXT: Index 012345678
-# CHECK: [0,0] DeeER.. lzcntw %ax, %bx
-# CHECK-NEXT: [1,0] D=eeER. lzcntw %ax, %bx
-# CHECK-NEXT: [2,0] .D=eeER lzcntw %ax, %bx
+# CHECK: [0,0] DeeER. . lzcntw %ax, %bx
+# CHECK-NEXT: [1,0] D==eeER . lzcntw %ax, %bx
+# CHECK-NEXT: [2,0] .D===eeER lzcntw %ax, %bx
# CHECK: Average Wait times (based on the timeline view):
# CHECK-NEXT: [0]: Executions
@@ -73,4 +73,4 @@ lzcnt %ax, %bx ## partial register stal
# CHECK-NEXT: [3]: Average time elapsed from WB until retire stage
# CHECK: [0] [1] [2] [3]
-# CHECK-NEXT: 0. 3 1.7 0.3 0.0 lzcntw %ax, %bx
+# CHECK-NEXT: 0. 3 2.7 1.0 0.0 lzcntw %ax, %bx
Modified: llvm/trunk/test/tools/llvm-mca/X86/BdVer2/partial-reg-update-6.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-mca/X86/BdVer2/partial-reg-update-6.s?rev=360341&r1=360340&r2=360341&view=diff
==============================================================================
--- llvm/trunk/test/tools/llvm-mca/X86/BdVer2/partial-reg-update-6.s (original)
+++ llvm/trunk/test/tools/llvm-mca/X86/BdVer2/partial-reg-update-6.s Thu May 9 06:54:51 2019
@@ -13,13 +13,13 @@ lzcnt 2(%rsp), %cx
# CHECK: Iterations: 1500
# CHECK-NEXT: Instructions: 4500
-# CHECK-NEXT: Total Cycles: 10503
+# CHECK-NEXT: Total Cycles: 12003
# CHECK-NEXT: Total uOps: 7500
# CHECK: Dispatch Width: 4
-# CHECK-NEXT: uOps Per Cycle: 0.71
-# CHECK-NEXT: IPC: 0.43
-# CHECK-NEXT: Block RThroughput: 1.3
+# CHECK-NEXT: uOps Per Cycle: 0.62
+# CHECK-NEXT: IPC: 0.37
+# CHECK-NEXT: Block RThroughput: 4.0
# CHECK: Instruction Info:
# CHECK-NEXT: [1]: #uOps
@@ -30,9 +30,9 @@ lzcnt 2(%rsp), %cx
# CHECK-NEXT: [6]: HasSideEffects (U)
# CHECK: [1] [2] [3] [4] [5] [6] Instructions:
-# CHECK-NEXT: 1 4 1.00 imull %edx, %ecx
-# CHECK-NEXT: 2 6 0.50 * lzcntw (%rsp), %cx
-# CHECK-NEXT: 2 6 0.50 * lzcntw 2(%rsp), %cx
+# CHECK-NEXT: 1 4 2.00 imull %edx, %ecx
+# CHECK-NEXT: 2 6 2.00 * lzcntw (%rsp), %cx
+# CHECK-NEXT: 2 6 2.00 * lzcntw 2(%rsp), %cx
# CHECK: Resources:
# CHECK-NEXT: [0.0] - PdAGLU01
@@ -61,27 +61,27 @@ lzcnt 2(%rsp), %cx
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0.0] [0.1] [1] [2] [3] [4] [5] [6] [7.0] [7.1] [8.0] [8.1] [9] [10] [11] [12] [13] [14] [15] [16.0] [16.1] [17] [18]
-# CHECK-NEXT: 1.00 1.00 - - - 1.50 1.50 - - - - - - - - - - - - 1.00 1.00 1.00 -
+# CHECK-NEXT: 3.00 3.00 - - - 4.00 1.00 - - - - - - - - - - - - 3.00 3.00 2.00 -
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0.0] [0.1] [1] [2] [3] [4] [5] [6] [7.0] [7.1] [8.0] [8.1] [9] [10] [11] [12] [13] [14] [15] [16.0] [16.1] [17] [18] Instructions:
-# CHECK-NEXT: - - - - - - 1.00 - - - - - - - - - - - - - - 1.00 - imull %edx, %ecx
-# CHECK-NEXT: - 1.00 - - - 1.00 - - - - - - - - - - - - - - 1.00 - - lzcntw (%rsp), %cx
-# CHECK-NEXT: 1.00 - - - - 0.50 0.50 - - - - - - - - - - - - 1.00 - - - lzcntw 2(%rsp), %cx
+# CHECK-NEXT: - - - - - - 1.00 - - - - - - - - - - - - - - 2.00 - imull %edx, %ecx
+# CHECK-NEXT: - 3.00 - - - 2.00 - - - - - - - - - - - - - - 3.00 - - lzcntw (%rsp), %cx
+# CHECK-NEXT: 3.00 - - - - 2.00 - - - - - - - - - - - - - 3.00 - - - lzcntw 2(%rsp), %cx
# CHECK: Timeline view:
# CHECK-NEXT: 0123456789
-# CHECK-NEXT: Index 0123456789 0123
+# CHECK-NEXT: Index 0123456789 0123456
-# CHECK: [0,0] DeeeeER . . . . imull %edx, %ecx
-# CHECK-NEXT: [0,1] DeeeeeeER . . . . lzcntw (%rsp), %cx
-# CHECK-NEXT: [0,2] .DeeeeeeER. . . . lzcntw 2(%rsp), %cx
-# CHECK-NEXT: [1,0] .D======eeeeER . . . imull %edx, %ecx
-# CHECK-NEXT: [1,1] . D=====eeeeeeER . . lzcntw (%rsp), %cx
-# CHECK-NEXT: [1,2] . D======eeeeeeER . . lzcntw 2(%rsp), %cx
-# CHECK-NEXT: [2,0] . D===========eeeeER . imull %edx, %ecx
-# CHECK-NEXT: [2,1] . D===========eeeeeeER. lzcntw (%rsp), %cx
-# CHECK-NEXT: [2,2] . D===========eeeeeeER lzcntw 2(%rsp), %cx
+# CHECK: [0,0] DeeeeER . . . .. imull %edx, %ecx
+# CHECK-NEXT: [0,1] DeeeeeeER . . . .. lzcntw (%rsp), %cx
+# CHECK-NEXT: [0,2] .D=eeeeeeER . . .. lzcntw 2(%rsp), %cx
+# CHECK-NEXT: [1,0] .D=======eeeeER. . .. imull %edx, %ecx
+# CHECK-NEXT: [1,1] . D======eeeeeeER . .. lzcntw (%rsp), %cx
+# CHECK-NEXT: [1,2] . D========eeeeeeER . .. lzcntw 2(%rsp), %cx
+# CHECK-NEXT: [2,0] . D=============eeeeER .. imull %edx, %ecx
+# CHECK-NEXT: [2,1] . D=============eeeeeeER.. lzcntw (%rsp), %cx
+# CHECK-NEXT: [2,2] . D==============eeeeeeER lzcntw 2(%rsp), %cx
# CHECK: Average Wait times (based on the timeline view):
# CHECK-NEXT: [0]: Executions
@@ -90,6 +90,6 @@ lzcnt 2(%rsp), %cx
# CHECK-NEXT: [3]: Average time elapsed from WB until retire stage
# CHECK: [0] [1] [2] [3]
-# CHECK-NEXT: 0. 3 6.7 0.3 0.0 imull %edx, %ecx
-# CHECK-NEXT: 1. 3 6.3 0.0 0.0 lzcntw (%rsp), %cx
-# CHECK-NEXT: 2. 3 6.7 0.0 0.0 lzcntw 2(%rsp), %cx
+# CHECK-NEXT: 0. 3 7.7 0.3 0.0 imull %edx, %ecx
+# CHECK-NEXT: 1. 3 7.3 0.0 0.0 lzcntw (%rsp), %cx
+# CHECK-NEXT: 2. 3 8.7 1.0 0.0 lzcntw 2(%rsp), %cx
Modified: llvm/trunk/test/tools/llvm-mca/X86/BdVer2/partial-reg-update.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-mca/X86/BdVer2/partial-reg-update.s?rev=360341&r1=360340&r2=360341&view=diff
==============================================================================
--- llvm/trunk/test/tools/llvm-mca/X86/BdVer2/partial-reg-update.s (original)
+++ llvm/trunk/test/tools/llvm-mca/X86/BdVer2/partial-reg-update.s Thu May 9 06:54:51 2019
@@ -13,7 +13,7 @@ add %ecx, %ebx
# CHECK: Dispatch Width: 4
# CHECK-NEXT: uOps Per Cycle: 0.33
# CHECK-NEXT: IPC: 0.33
-# CHECK-NEXT: Block RThroughput: 1.0
+# CHECK-NEXT: Block RThroughput: 2.0
# CHECK: Instruction Info:
# CHECK-NEXT: [1]: #uOps
@@ -24,9 +24,9 @@ add %ecx, %ebx
# CHECK-NEXT: [6]: HasSideEffects (U)
# CHECK: [1] [2] [3] [4] [5] [6] Instructions:
-# CHECK-NEXT: 1 4 1.00 imulw %ax, %cx
-# CHECK-NEXT: 1 1 0.50 addb %al, %cl
-# CHECK-NEXT: 1 1 0.50 addl %ecx, %ebx
+# CHECK-NEXT: 1 4 2.00 imulw %ax, %cx
+# CHECK-NEXT: 1 1 1.00 addb %al, %cl
+# CHECK-NEXT: 1 1 1.00 addl %ecx, %ebx
# CHECK: Timeline view:
# CHECK-NEXT: Index 012345678
Modified: llvm/trunk/test/tools/llvm-mca/X86/BdVer2/pipes-fpu.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-mca/X86/BdVer2/pipes-fpu.s?rev=360341&r1=360340&r2=360341&view=diff
==============================================================================
--- llvm/trunk/test/tools/llvm-mca/X86/BdVer2/pipes-fpu.s (original)
+++ llvm/trunk/test/tools/llvm-mca/X86/BdVer2/pipes-fpu.s Thu May 9 06:54:51 2019
@@ -19,13 +19,13 @@ vsqrtps %ymm0, %ymm2
# CHECK: Iterations: 100
# CHECK-NEXT: Instructions: 800
-# CHECK-NEXT: Total Cycles: 3244
+# CHECK-NEXT: Total Cycles: 1503
# CHECK-NEXT: Total uOps: 1500
# CHECK: Dispatch Width: 4
-# CHECK-NEXT: uOps Per Cycle: 0.46
-# CHECK-NEXT: IPC: 0.25
-# CHECK-NEXT: Block RThroughput: 32.5
+# CHECK-NEXT: uOps Per Cycle: 1.00
+# CHECK-NEXT: IPC: 0.53
+# CHECK-NEXT: Block RThroughput: 15.0
# CHECK: Instruction Info:
# CHECK-NEXT: [1]: #uOps
@@ -37,13 +37,13 @@ vsqrtps %ymm0, %ymm2
# CHECK: [1] [2] [3] [4] [5] [6] Instructions:
# CHECK-NEXT: 1 5 2.00 vpmulld %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 2 0.50 vpand %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 2 1.00 vpand %xmm0, %xmm1, %xmm2
# CHECK-NEXT: 1 4 1.00 vcvttps2dq %xmm0, %xmm2
-# CHECK-NEXT: 6 12 1.00 vpclmulqdq $0, %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 6 12 7.00 vpclmulqdq $0, %xmm0, %xmm1, %xmm2
# CHECK-NEXT: 1 5 1.00 vaddps %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 9 10.50 vsqrtps %xmm0, %xmm2
-# CHECK-NEXT: 2 5 2.00 vaddps %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 2 9 21.00 vsqrtps %ymm0, %ymm2
+# CHECK-NEXT: 1 9 4.50 vsqrtps %xmm0, %xmm2
+# CHECK-NEXT: 2 5 1.00 vaddps %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 2 9 9.00 vsqrtps %ymm0, %ymm2
# CHECK: Resources:
# CHECK-NEXT: [0.0] - PdAGLU01
@@ -72,39 +72,39 @@ vsqrtps %ymm0, %ymm2
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0.0] [0.1] [1] [2] [3] [4] [5] [6] [7.0] [7.1] [8.0] [8.1] [9] [10] [11] [12] [13] [14] [15] [16.0] [16.1] [17] [18]
-# CHECK-NEXT: - - - - - - - - 32.29 32.71 1.00 1.00 3.00 1.00 6.00 6.00 - - - - - - -
+# CHECK-NEXT: - - - - - - - 1.00 15.06 14.94 1.12 1.88 9.00 1.00 6.44 4.56 - - - - - - -
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0.0] [0.1] [1] [2] [3] [4] [5] [6] [7.0] [7.1] [8.0] [8.1] [9] [10] [11] [12] [13] [14] [15] [16.0] [16.1] [17] [18] Instructions:
-# CHECK-NEXT: - - - - - - - - - - 0.02 0.98 2.00 - 2.00 1.00 - - - - - - - vpmulld %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - - - - 0.98 0.02 - - - 1.00 - - - - - - - vpand %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - - - - - - - 1.00 - 1.00 - - - - - - - vcvttps2dq %xmm0, %xmm2
-# CHECK-NEXT: - - - - - - - - - - - - 1.00 - 1.00 - - - - - - - - vpclmulqdq $0, %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 1.00 - - - - - - - - vaddps %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - - 10.71 10.29 - - - - - 1.00 - - - - - - - vsqrtps %xmm0, %xmm2
-# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 2.00 - - - - - - - - vaddps %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: - - - - - - - - 20.58 21.42 - - - - - 2.00 - - - - - - - vsqrtps %ymm0, %ymm2
+# CHECK-NEXT: - - - - - - - - - - 0.88 0.12 2.00 - 2.00 1.00 - - - - - - - vpmulld %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - - - 0.24 1.76 - - 0.44 0.56 - - - - - - - vpand %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - 1.00 - - - - - 1.00 1.00 - - - - - - - - vcvttps2dq %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - - - - - - - 7.00 - 1.00 - - - - - - - - vpclmulqdq $0, %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - 0.52 0.48 - - - - 1.00 - - - - - - - - vaddps %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - 4.50 4.50 - - - - - 1.00 - - - - - - - vsqrtps %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - - - 1.04 0.96 - - - - 1.00 - - - - - - - - vaddps %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - - 9.00 9.00 - - - - - 2.00 - - - - - - - vsqrtps %ymm0, %ymm2
# CHECK: Timeline view:
-# CHECK-NEXT: 0123456789 0123456789 012345678
-# CHECK-NEXT: Index 0123456789 0123456789 0123456789
+# CHECK-NEXT: 0123456789 012
+# CHECK-NEXT: Index 0123456789 0123456789
-# CHECK: [0,0] DeeeeeER . . . . . . . . . . . vpmulld %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: [0,1] D=eeE--R . . . . . . . . . . . vpand %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: [0,2] D==eeeeER . . . . . . . . . . . vcvttps2dq %xmm0, %xmm2
-# CHECK-NEXT: [0,3] .D=eeeeeeeeeeeeER . . . . . . . . . vpclmulqdq $0, %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: [0,4] . D=eeeeeE------R . . . . . . . . . vaddps %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: [0,5] . D=eeeeeeeeeE--R . . . . . . . . . vsqrtps %xmm0, %xmm2
-# CHECK-NEXT: [0,6] . D=eeeeeE-----R . . . . . . . . . vaddps %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: [0,7] . D==eeeeeeeeeE-R . . . . . . . . . vsqrtps %ymm0, %ymm2
-# CHECK-NEXT: [1,0] . D===eeeeeE---R . . . . . . . . . vpmulld %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: [1,1] . DeeE---------R . . . . . . . . . vpand %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: [1,2] . D====eeeeE---R . . . . . . . . . vcvttps2dq %xmm0, %xmm2
-# CHECK-NEXT: [1,3] . D=eeeeeeeeeeeeER . . . . . . . . vpclmulqdq $0, %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: [1,4] . .D==================eeeeeER . . . . . . vaddps %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: [1,5] . .D===================eeeeeeeeeER . . . . . vsqrtps %xmm0, %xmm2
-# CHECK-NEXT: [1,6] . . D=======================================eeeeeER . . vaddps %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: [1,7] . . D========================================eeeeeeeeeER vsqrtps %ymm0, %ymm2
+# CHECK: [0,0] DeeeeeER . . . . . . vpmulld %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: [0,1] D=eeE--R . . . . . . vpand %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: [0,2] D==eeeeER . . . . . . vcvttps2dq %xmm0, %xmm2
+# CHECK-NEXT: [0,3] .D==eeeeeeeeeeeeER . . . . vpclmulqdq $0, %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: [0,4] . D===================eeeeeER . . vaddps %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: [0,5] . DeeeeeeeeeE---------------R . . vsqrtps %xmm0, %xmm2
+# CHECK-NEXT: [0,6] . D===================eeeeeER. . vaddps %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: [0,7] . DeeeeeeeeeE---------------R. . vsqrtps %ymm0, %ymm2
+# CHECK-NEXT: [1,0] . D======eeeeeE------------R. . vpmulld %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: [1,1] . DeeE---------------------R. . vpand %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: [1,2] . D=eeeeE-------------------R . vcvttps2dq %xmm0, %xmm2
+# CHECK-NEXT: [1,3] . D=======eeeeeeeeeeeeE----R . vpclmulqdq $0, %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: [1,4] . .D==================eeeeeER. vaddps %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: [1,5] . .D=====eeeeeeeeeE---------R. vsqrtps %xmm0, %xmm2
+# CHECK-NEXT: [1,6] . . D==================eeeeeER vaddps %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: [1,7] . . D=============eeeeeeeeeE-R vsqrtps %ymm0, %ymm2
# CHECK: Average Wait times (based on the timeline view):
# CHECK-NEXT: [0]: Executions
@@ -113,11 +113,11 @@ vsqrtps %ymm0, %ymm2
# CHECK-NEXT: [3]: Average time elapsed from WB until retire stage
# CHECK: [0] [1] [2] [3]
-# CHECK-NEXT: 0. 2 2.5 2.5 1.5 vpmulld %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1. 2 1.5 1.5 5.5 vpand %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 2. 2 4.0 4.0 1.5 vcvttps2dq %xmm0, %xmm2
-# CHECK-NEXT: 3. 2 2.0 2.0 0.0 vpclmulqdq $0, %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 4. 2 10.5 10.5 3.0 vaddps %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 5. 2 11.0 11.0 1.0 vsqrtps %xmm0, %xmm2
-# CHECK-NEXT: 6. 2 21.0 21.0 2.5 vaddps %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 7. 2 22.0 22.0 0.5 vsqrtps %ymm0, %ymm2
+# CHECK-NEXT: 0. 2 4.0 4.0 6.0 vpmulld %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1. 2 1.5 1.5 11.5 vpand %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 2. 2 2.5 2.5 9.5 vcvttps2dq %xmm0, %xmm2
+# CHECK-NEXT: 3. 2 5.5 5.5 2.0 vpclmulqdq $0, %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 4. 2 19.5 19.5 0.0 vaddps %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 5. 2 3.5 3.5 12.0 vsqrtps %xmm0, %xmm2
+# CHECK-NEXT: 6. 2 19.5 19.5 0.0 vaddps %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 7. 2 7.5 7.5 8.0 vsqrtps %ymm0, %ymm2
Modified: llvm/trunk/test/tools/llvm-mca/X86/BdVer2/pr37790.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-mca/X86/BdVer2/pr37790.s?rev=360341&r1=360340&r2=360341&view=diff
==============================================================================
--- llvm/trunk/test/tools/llvm-mca/X86/BdVer2/pr37790.s (original)
+++ llvm/trunk/test/tools/llvm-mca/X86/BdVer2/pr37790.s Thu May 9 06:54:51 2019
@@ -12,7 +12,7 @@ stmxcsr (%rsp)
# CHECK: Dispatch Width: 4
# CHECK-NEXT: uOps Per Cycle: 0.03
# CHECK-NEXT: IPC: 0.02
-# CHECK-NEXT: Block RThroughput: 1.0
+# CHECK-NEXT: Block RThroughput: 18.0
# CHECK: Instruction Info:
# CHECK-NEXT: [1]: #uOps
@@ -24,7 +24,7 @@ stmxcsr (%rsp)
# CHECK: [1] [2] [3] [4] [5] [6] Instructions:
# CHECK-NEXT: 1 100 0.50 * * U int3
-# CHECK-NEXT: 2 1 1.00 * * U stmxcsr (%rsp)
+# CHECK-NEXT: 2 1 18.00 * * U stmxcsr (%rsp)
# CHECK: Timeline view:
# CHECK-NEXT: 0123456789 0123456789 0123456789 0123456789 0123456789
Modified: llvm/trunk/test/tools/llvm-mca/X86/BdVer2/rank.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-mca/X86/BdVer2/rank.s?rev=360341&r1=360340&r2=360341&view=diff
==============================================================================
--- llvm/trunk/test/tools/llvm-mca/X86/BdVer2/rank.s (original)
+++ llvm/trunk/test/tools/llvm-mca/X86/BdVer2/rank.s Thu May 9 06:54:51 2019
@@ -12,13 +12,13 @@ add %ebx, %eax
# CHECK: Iterations: 100
# CHECK-NEXT: Instructions: 800
-# CHECK-NEXT: Total Cycles: 503
+# CHECK-NEXT: Total Cycles: 803
# CHECK-NEXT: Total uOps: 800
# CHECK: Dispatch Width: 4
-# CHECK-NEXT: uOps Per Cycle: 1.59
-# CHECK-NEXT: IPC: 1.59
-# CHECK-NEXT: Block RThroughput: 4.0
+# CHECK-NEXT: uOps Per Cycle: 1.00
+# CHECK-NEXT: IPC: 1.00
+# CHECK-NEXT: Block RThroughput: 8.0
# CHECK: Instruction Info:
# CHECK-NEXT: [1]: #uOps
@@ -29,14 +29,14 @@ add %ebx, %eax
# CHECK-NEXT: [6]: HasSideEffects (U)
# CHECK: [1] [2] [3] [4] [5] [6] Instructions:
-# CHECK-NEXT: 1 1 0.50 addl %eax, %ecx
-# CHECK-NEXT: 1 1 0.50 addl %eax, %edx
-# CHECK-NEXT: 1 1 0.50 addl %eax, %ebx
-# CHECK-NEXT: 1 1 0.50 addl %edx, %esi
-# CHECK-NEXT: 1 1 0.50 addl %ebx, %eax
-# CHECK-NEXT: 1 1 0.50 addl %edx, %esi
-# CHECK-NEXT: 1 1 0.50 addl %ebx, %eax
-# CHECK-NEXT: 1 1 0.50 addl %ebx, %eax
+# CHECK-NEXT: 1 1 1.00 addl %eax, %ecx
+# CHECK-NEXT: 1 1 1.00 addl %eax, %edx
+# CHECK-NEXT: 1 1 1.00 addl %eax, %ebx
+# CHECK-NEXT: 1 1 1.00 addl %edx, %esi
+# CHECK-NEXT: 1 1 1.00 addl %ebx, %eax
+# CHECK-NEXT: 1 1 1.00 addl %edx, %esi
+# CHECK-NEXT: 1 1 1.00 addl %ebx, %eax
+# CHECK-NEXT: 1 1 1.00 addl %ebx, %eax
# CHECK: Resources:
# CHECK-NEXT: [0.0] - PdAGLU01
@@ -65,47 +65,47 @@ add %ebx, %eax
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0.0] [0.1] [1] [2] [3] [4] [5] [6] [7.0] [7.1] [8.0] [8.1] [9] [10] [11] [12] [13] [14] [15] [16.0] [16.1] [17] [18]
-# CHECK-NEXT: - - - - - 4.00 4.00 - - - - - - - - - - - - - - - -
+# CHECK-NEXT: - - - - - 8.00 8.00 - - - - - - - - - - - - - - - -
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0.0] [0.1] [1] [2] [3] [4] [5] [6] [7.0] [7.1] [8.0] [8.1] [9] [10] [11] [12] [13] [14] [15] [16.0] [16.1] [17] [18] Instructions:
-# CHECK-NEXT: - - - - - - 1.00 - - - - - - - - - - - - - - - - addl %eax, %ecx
-# CHECK-NEXT: - - - - - 0.01 0.99 - - - - - - - - - - - - - - - - addl %eax, %edx
-# CHECK-NEXT: - - - - - 0.99 0.01 - - - - - - - - - - - - - - - - addl %eax, %ebx
-# CHECK-NEXT: - - - - - 1.00 - - - - - - - - - - - - - - - - - addl %edx, %esi
-# CHECK-NEXT: - - - - - - 1.00 - - - - - - - - - - - - - - - - addl %ebx, %eax
-# CHECK-NEXT: - - - - - 1.00 - - - - - - - - - - - - - - - - - addl %edx, %esi
-# CHECK-NEXT: - - - - - - 1.00 - - - - - - - - - - - - - - - - addl %ebx, %eax
-# CHECK-NEXT: - - - - - 1.00 - - - - - - - - - - - - - - - - - addl %ebx, %eax
+# CHECK-NEXT: - - - - - - 2.00 - - - - - - - - - - - - - - - - addl %eax, %ecx
+# CHECK-NEXT: - - - - - 0.02 1.98 - - - - - - - - - - - - - - - - addl %eax, %edx
+# CHECK-NEXT: - - - - - 1.98 0.02 - - - - - - - - - - - - - - - - addl %eax, %ebx
+# CHECK-NEXT: - - - - - 2.00 - - - - - - - - - - - - - - - - - addl %edx, %esi
+# CHECK-NEXT: - - - - - - 2.00 - - - - - - - - - - - - - - - - addl %ebx, %eax
+# CHECK-NEXT: - - - - - 2.00 - - - - - - - - - - - - - - - - - addl %edx, %esi
+# CHECK-NEXT: - - - - - - 2.00 - - - - - - - - - - - - - - - - addl %ebx, %eax
+# CHECK-NEXT: - - - - - 2.00 - - - - - - - - - - - - - - - - - addl %ebx, %eax
# CHECK: Timeline view:
-# CHECK-NEXT: 01234567
-# CHECK-NEXT: Index 0123456789
+# CHECK-NEXT: 0123456789
+# CHECK-NEXT: Index 0123456789 0123456
-# CHECK: [0,0] DeER . . . . addl %eax, %ecx
-# CHECK-NEXT: [0,1] DeER . . . . addl %eax, %edx
-# CHECK-NEXT: [0,2] D=eER. . . . addl %eax, %ebx
-# CHECK-NEXT: [0,3] D=eER. . . . addl %edx, %esi
-# CHECK-NEXT: [0,4] .D=eER . . . addl %ebx, %eax
-# CHECK-NEXT: [0,5] .D=eER . . . addl %edx, %esi
-# CHECK-NEXT: [0,6] .D==eER . . . addl %ebx, %eax
-# CHECK-NEXT: [0,7] .D===eER . . . addl %ebx, %eax
-# CHECK-NEXT: [1,0] . D====eER. . . addl %eax, %ecx
-# CHECK-NEXT: [1,1] . D===eE-R. . . addl %eax, %edx
-# CHECK-NEXT: [1,2] . D===eE-R. . . addl %eax, %ebx
-# CHECK-NEXT: [1,3] . D====eER. . . addl %edx, %esi
-# CHECK-NEXT: [1,4] . D====eER . . addl %ebx, %eax
-# CHECK-NEXT: [1,5] . D====eER . . addl %edx, %esi
-# CHECK-NEXT: [1,6] . D=====eER . . addl %ebx, %eax
-# CHECK-NEXT: [1,7] . D======eER . . addl %ebx, %eax
-# CHECK-NEXT: [2,0] . D=======eER. . addl %eax, %ecx
-# CHECK-NEXT: [2,1] . D======eE-R. . addl %eax, %edx
-# CHECK-NEXT: [2,2] . D======eE-R. . addl %eax, %ebx
-# CHECK-NEXT: [2,3] . D=======eER. . addl %edx, %esi
-# CHECK-NEXT: [2,4] . D=======eER . addl %ebx, %eax
-# CHECK-NEXT: [2,5] . D=======eER . addl %edx, %esi
-# CHECK-NEXT: [2,6] . D========eER. addl %ebx, %eax
-# CHECK-NEXT: [2,7] . D=========eER addl %ebx, %eax
+# CHECK: [0,0] DeER . . . . .. addl %eax, %ecx
+# CHECK-NEXT: [0,1] DeER . . . . .. addl %eax, %edx
+# CHECK-NEXT: [0,2] D==eER . . . .. addl %eax, %ebx
+# CHECK-NEXT: [0,3] D==eER . . . .. addl %edx, %esi
+# CHECK-NEXT: [0,4] .D===eER . . . .. addl %ebx, %eax
+# CHECK-NEXT: [0,5] .D===eER . . . .. addl %edx, %esi
+# CHECK-NEXT: [0,6] .D=====eER. . . .. addl %ebx, %eax
+# CHECK-NEXT: [0,7] .D======eER . . .. addl %ebx, %eax
+# CHECK-NEXT: [1,0] . D========eER . . .. addl %eax, %ecx
+# CHECK-NEXT: [1,1] . D======eE--R . . .. addl %eax, %edx
+# CHECK-NEXT: [1,2] . D=======eE-R . . .. addl %eax, %ebx
+# CHECK-NEXT: [1,3] . D=========eER. . .. addl %edx, %esi
+# CHECK-NEXT: [1,4] . D=========eER . .. addl %ebx, %eax
+# CHECK-NEXT: [1,5] . D==========eER . .. addl %edx, %esi
+# CHECK-NEXT: [1,6] . D===========eER . .. addl %ebx, %eax
+# CHECK-NEXT: [1,7] . D============eER . .. addl %ebx, %eax
+# CHECK-NEXT: [2,0] . D==============eER .. addl %eax, %ecx
+# CHECK-NEXT: [2,1] . D============eE--R .. addl %eax, %edx
+# CHECK-NEXT: [2,2] . D=============eE-R .. addl %eax, %ebx
+# CHECK-NEXT: [2,3] . D===============eER .. addl %edx, %esi
+# CHECK-NEXT: [2,4] . D===============eER .. addl %ebx, %eax
+# CHECK-NEXT: [2,5] . D================eER.. addl %edx, %esi
+# CHECK-NEXT: [2,6] . D=================eER. addl %ebx, %eax
+# CHECK-NEXT: [2,7] . D==================eER addl %ebx, %eax
# CHECK: Average Wait times (based on the timeline view):
# CHECK-NEXT: [0]: Executions
@@ -114,11 +114,11 @@ add %ebx, %eax
# CHECK-NEXT: [3]: Average time elapsed from WB until retire stage
# CHECK: [0] [1] [2] [3]
-# CHECK-NEXT: 0. 3 4.7 1.0 0.0 addl %eax, %ecx
-# CHECK-NEXT: 1. 3 4.0 0.3 0.7 addl %eax, %edx
-# CHECK-NEXT: 2. 3 4.3 0.7 0.7 addl %eax, %ebx
-# CHECK-NEXT: 3. 3 5.0 0.0 0.0 addl %edx, %esi
-# CHECK-NEXT: 4. 3 5.0 0.7 0.0 addl %ebx, %eax
-# CHECK-NEXT: 5. 3 5.0 0.0 0.0 addl %edx, %esi
-# CHECK-NEXT: 6. 3 6.0 0.0 0.0 addl %ebx, %eax
-# CHECK-NEXT: 7. 3 7.0 0.0 0.0 addl %ebx, %eax
+# CHECK-NEXT: 0. 3 8.3 1.7 0.0 addl %eax, %ecx
+# CHECK-NEXT: 1. 3 7.0 0.3 1.3 addl %eax, %edx
+# CHECK-NEXT: 2. 3 8.3 1.7 0.7 addl %eax, %ebx
+# CHECK-NEXT: 3. 3 9.7 1.7 0.0 addl %edx, %esi
+# CHECK-NEXT: 4. 3 10.0 1.7 0.0 addl %ebx, %eax
+# CHECK-NEXT: 5. 3 10.7 1.0 0.0 addl %edx, %esi
+# CHECK-NEXT: 6. 3 12.0 1.0 0.0 addl %ebx, %eax
+# CHECK-NEXT: 7. 3 13.0 0.0 0.0 addl %ebx, %eax
Modified: llvm/trunk/test/tools/llvm-mca/X86/BdVer2/rcu-statistics.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-mca/X86/BdVer2/rcu-statistics.s?rev=360341&r1=360340&r2=360341&view=diff
==============================================================================
--- llvm/trunk/test/tools/llvm-mca/X86/BdVer2/rcu-statistics.s (original)
+++ llvm/trunk/test/tools/llvm-mca/X86/BdVer2/rcu-statistics.s Thu May 9 06:54:51 2019
@@ -26,7 +26,7 @@
# CHECK: Dispatch Width: 4
# CHECK-NEXT: uOps Per Cycle: 0.73
# CHECK-NEXT: IPC: 0.73
-# CHECK-NEXT: Block RThroughput: 18.0
+# CHECK-NEXT: Block RThroughput: 15.0
# CHECK: Instruction Info:
# CHECK-NEXT: [1]: #uOps
@@ -37,7 +37,7 @@
# CHECK-NEXT: [6]: HasSideEffects (U)
# CHECK: [1] [2] [3] [4] [5] [6] Instructions:
-# CHECK-NEXT: 1 9 10.50 vsqrtps %xmm0, %xmm2
+# CHECK-NEXT: 1 9 4.50 vsqrtps %xmm0, %xmm2
# CHECK-NEXT: 1 5 1.00 vaddps %xmm0, %xmm1, %xmm2
# CHECK-NEXT: 1 5 1.00 vaddps %xmm0, %xmm1, %xmm2
# CHECK-NEXT: 1 5 1.00 vaddps %xmm0, %xmm1, %xmm2
Modified: llvm/trunk/test/tools/llvm-mca/X86/BdVer2/read-advance-1.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-mca/X86/BdVer2/read-advance-1.s?rev=360341&r1=360340&r2=360341&view=diff
==============================================================================
--- llvm/trunk/test/tools/llvm-mca/X86/BdVer2/read-advance-1.s (original)
+++ llvm/trunk/test/tools/llvm-mca/X86/BdVer2/read-advance-1.s Thu May 9 06:54:51 2019
@@ -16,7 +16,7 @@ vmulps (%rdi), %xmm1, %xmm2
# CHECK: Dispatch Width: 4
# CHECK-NEXT: uOps Per Cycle: 0.15
# CHECK-NEXT: IPC: 0.15
-# CHECK-NEXT: Block RThroughput: 1.0
+# CHECK-NEXT: Block RThroughput: 1.5
# CHECK: Instruction Info:
# CHECK-NEXT: [1]: #uOps
@@ -28,7 +28,7 @@ vmulps (%rdi), %xmm1, %xmm2
# CHECK: [1] [2] [3] [4] [5] [6] Instructions:
# CHECK-NEXT: 1 5 1.00 vaddps %xmm0, %xmm0, %xmm1
-# CHECK-NEXT: 1 10 1.00 * vmulps (%rdi), %xmm1, %xmm2
+# CHECK-NEXT: 1 10 1.50 * vmulps (%rdi), %xmm1, %xmm2
# CHECK: Timeline view:
# CHECK-NEXT: 012
Modified: llvm/trunk/test/tools/llvm-mca/X86/BdVer2/read-advance-2.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-mca/X86/BdVer2/read-advance-2.s?rev=360341&r1=360340&r2=360341&view=diff
==============================================================================
--- llvm/trunk/test/tools/llvm-mca/X86/BdVer2/read-advance-2.s (original)
+++ llvm/trunk/test/tools/llvm-mca/X86/BdVer2/read-advance-2.s Thu May 9 06:54:51 2019
@@ -9,13 +9,13 @@
# CHECK: Iterations: 1
# CHECK-NEXT: Instructions: 2
-# CHECK-NEXT: Total Cycles: 12
+# CHECK-NEXT: Total Cycles: 15
# CHECK-NEXT: Total uOps: 2
# CHECK: Dispatch Width: 4
-# CHECK-NEXT: uOps Per Cycle: 0.17
-# CHECK-NEXT: IPC: 0.17
-# CHECK-NEXT: Block RThroughput: 2.0
+# CHECK-NEXT: uOps Per Cycle: 0.13
+# CHECK-NEXT: IPC: 0.13
+# CHECK-NEXT: Block RThroughput: 8.0
# CHECK: Instruction Info:
# CHECK-NEXT: [1]: #uOps
@@ -26,15 +26,15 @@
# CHECK-NEXT: [6]: HasSideEffects (U)
# CHECK: [1] [2] [3] [4] [5] [6] Instructions:
-# CHECK-NEXT: 1 4 1.00 imull %esi
-# CHECK-NEXT: 1 8 1.00 * imull (%rdi)
+# CHECK-NEXT: 1 4 4.00 imull %esi
+# CHECK-NEXT: 1 8 4.00 * imull (%rdi)
# CHECK: Timeline view:
-# CHECK-NEXT: 01
+# CHECK-NEXT: 01234
# CHECK-NEXT: Index 0123456789
-# CHECK: [0,0] DeeeeER .. imull %esi
-# CHECK-NEXT: [0,1] D=eeeeeeeeER imull (%rdi)
+# CHECK: [0,0] DeeeeER . . imull %esi
+# CHECK-NEXT: [0,1] D====eeeeeeeeER imull (%rdi)
# CHECK: Average Wait times (based on the timeline view):
# CHECK-NEXT: [0]: Executions
@@ -44,4 +44,4 @@
# CHECK: [0] [1] [2] [3]
# CHECK-NEXT: 0. 1 1.0 1.0 0.0 imull %esi
-# CHECK-NEXT: 1. 1 2.0 1.0 0.0 imull (%rdi)
+# CHECK-NEXT: 1. 1 5.0 4.0 0.0 imull (%rdi)
Modified: llvm/trunk/test/tools/llvm-mca/X86/BdVer2/read-advance-3.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-mca/X86/BdVer2/read-advance-3.s?rev=360341&r1=360340&r2=360341&view=diff
==============================================================================
--- llvm/trunk/test/tools/llvm-mca/X86/BdVer2/read-advance-3.s (original)
+++ llvm/trunk/test/tools/llvm-mca/X86/BdVer2/read-advance-3.s Thu May 9 06:54:51 2019
@@ -13,7 +13,7 @@
# CHECK: Dispatch Width: 3
# CHECK-NEXT: uOps Per Cycle: 0.38
# CHECK-NEXT: IPC: 0.38
-# CHECK-NEXT: Block RThroughput: 1.5
+# CHECK-NEXT: Block RThroughput: 3.0
# CHECK: Instruction Info:
# CHECK-NEXT: [1]: #uOps
@@ -24,16 +24,16 @@
# CHECK-NEXT: [6]: HasSideEffects (U)
# CHECK: [1] [2] [3] [4] [5] [6] Instructions:
-# CHECK-NEXT: 1 1 0.50 addq %rdi, %rsi
-# CHECK-NEXT: 1 5 0.50 * addq (%rsp), %rsi
-# CHECK-NEXT: 1 1 0.50 addq %rdx, %r8
+# CHECK-NEXT: 1 1 1.00 addq %rdi, %rsi
+# CHECK-NEXT: 1 5 1.50 * addq (%rsp), %rsi
+# CHECK-NEXT: 1 1 1.00 addq %rdx, %r8
# CHECK: Timeline view:
# CHECK-NEXT: Index 01234567
# CHECK: [0,0] DeER . . addq %rdi, %rsi
# CHECK-NEXT: [0,1] DeeeeeER addq (%rsp), %rsi
-# CHECK-NEXT: [0,2] D=eE---R addq %rdx, %r8
+# CHECK-NEXT: [0,2] D==eE--R addq %rdx, %r8
# CHECK: Average Wait times (based on the timeline view):
# CHECK-NEXT: [0]: Executions
@@ -44,4 +44,4 @@
# CHECK: [0] [1] [2] [3]
# CHECK-NEXT: 0. 1 1.0 1.0 0.0 addq %rdi, %rsi
# CHECK-NEXT: 1. 1 1.0 0.0 0.0 addq (%rsp), %rsi
-# CHECK-NEXT: 2. 1 2.0 2.0 3.0 addq %rdx, %r8
+# CHECK-NEXT: 2. 1 3.0 3.0 2.0 addq %rdx, %r8
Modified: llvm/trunk/test/tools/llvm-mca/X86/BdVer2/reg-move-elimination-1.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-mca/X86/BdVer2/reg-move-elimination-1.s?rev=360341&r1=360340&r2=360341&view=diff
==============================================================================
--- llvm/trunk/test/tools/llvm-mca/X86/BdVer2/reg-move-elimination-1.s (original)
+++ llvm/trunk/test/tools/llvm-mca/X86/BdVer2/reg-move-elimination-1.s Thu May 9 06:54:51 2019
@@ -10,13 +10,13 @@ vaddps %xmm1, %xmm1, %xmm2
# CHECK: Iterations: 3
# CHECK-NEXT: Instructions: 9
-# CHECK-NEXT: Total Cycles: 11
+# CHECK-NEXT: Total Cycles: 13
# CHECK-NEXT: Total uOps: 9
# CHECK: Dispatch Width: 4
-# CHECK-NEXT: uOps Per Cycle: 0.82
-# CHECK-NEXT: IPC: 0.82
-# CHECK-NEXT: Block RThroughput: 1.0
+# CHECK-NEXT: uOps Per Cycle: 0.69
+# CHECK-NEXT: IPC: 0.69
+# CHECK-NEXT: Block RThroughput: 1.5
# CHECK: Instruction Info:
# CHECK-NEXT: [1]: #uOps
@@ -28,7 +28,7 @@ vaddps %xmm1, %xmm1, %xmm2
# CHECK: [1] [2] [3] [4] [5] [6] Instructions:
# CHECK-NEXT: 1 0 0.25 vxorps %xmm0, %xmm0, %xmm0
-# CHECK-NEXT: 1 1 0.50 vmovaps %xmm0, %xmm1
+# CHECK-NEXT: 1 1 1.00 vmovaps %xmm0, %xmm1
# CHECK-NEXT: 1 5 1.00 vaddps %xmm1, %xmm1, %xmm2
# CHECK: Register File statistics:
@@ -72,27 +72,27 @@ vaddps %xmm1, %xmm1, %xmm2
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0.0] [0.1] [1] [2] [3] [4] [5] [6] [7.0] [7.1] [8.0] [8.1] [9] [10] [11] [12] [13] [14] [15] [16.0] [16.1] [17] [18]
-# CHECK-NEXT: - - - - - - - - 1.00 1.00 - - - - 1.00 1.00 - - - - - - -
+# CHECK-NEXT: - - - - - - - - 1.33 1.67 - - - - 1.33 0.67 - - - - - - -
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0.0] [0.1] [1] [2] [3] [4] [5] [6] [7.0] [7.1] [8.0] [8.1] [9] [10] [11] [12] [13] [14] [15] [16.0] [16.1] [17] [18] Instructions:
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - - - vxorps %xmm0, %xmm0, %xmm0
-# CHECK-NEXT: - - - - - - - - - 1.00 - - - - - 1.00 - - - - - - - vmovaps %xmm0, %xmm1
-# CHECK-NEXT: - - - - - - - - 1.00 - - - - - 1.00 - - - - - - - - vaddps %xmm1, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - 0.67 1.33 - - - - 0.33 0.67 - - - - - - - vmovaps %xmm0, %xmm1
+# CHECK-NEXT: - - - - - - - - 0.67 0.33 - - - - 1.00 - - - - - - - - vaddps %xmm1, %xmm1, %xmm2
# CHECK: Timeline view:
-# CHECK-NEXT: 0
+# CHECK-NEXT: 012
# CHECK-NEXT: Index 0123456789
-# CHECK: [0,0] DR . . vxorps %xmm0, %xmm0, %xmm0
-# CHECK-NEXT: [0,1] DeER . . vmovaps %xmm0, %xmm1
-# CHECK-NEXT: [0,2] D=eeeeeER . vaddps %xmm1, %xmm1, %xmm2
-# CHECK-NEXT: [1,0] D-------R . vxorps %xmm0, %xmm0, %xmm0
-# CHECK-NEXT: [1,1] .DeE----R . vmovaps %xmm0, %xmm1
-# CHECK-NEXT: [1,2] .D=eeeeeER. vaddps %xmm1, %xmm1, %xmm2
-# CHECK-NEXT: [2,0] .D-------R. vxorps %xmm0, %xmm0, %xmm0
-# CHECK-NEXT: [2,1] .D=eE----R. vmovaps %xmm0, %xmm1
-# CHECK-NEXT: [2,2] . D=eeeeeER vaddps %xmm1, %xmm1, %xmm2
+# CHECK: [0,0] DR . . . vxorps %xmm0, %xmm0, %xmm0
+# CHECK-NEXT: [0,1] DeER . . . vmovaps %xmm0, %xmm1
+# CHECK-NEXT: [0,2] D=eeeeeER . . vaddps %xmm1, %xmm1, %xmm2
+# CHECK-NEXT: [1,0] D-------R . . vxorps %xmm0, %xmm0, %xmm0
+# CHECK-NEXT: [1,1] .D=eE---R . . vmovaps %xmm0, %xmm1
+# CHECK-NEXT: [1,2] .D===eeeeeER. vaddps %xmm1, %xmm1, %xmm2
+# CHECK-NEXT: [2,0] .D---------R. vxorps %xmm0, %xmm0, %xmm0
+# CHECK-NEXT: [2,1] .D=eE------R. vmovaps %xmm0, %xmm1
+# CHECK-NEXT: [2,2] . D===eeeeeER vaddps %xmm1, %xmm1, %xmm2
# CHECK: Average Wait times (based on the timeline view):
# CHECK-NEXT: [0]: Executions
@@ -101,6 +101,6 @@ vaddps %xmm1, %xmm1, %xmm2
# CHECK-NEXT: [3]: Average time elapsed from WB until retire stage
# CHECK: [0] [1] [2] [3]
-# CHECK-NEXT: 0. 3 0.0 0.0 4.7 vxorps %xmm0, %xmm0, %xmm0
-# CHECK-NEXT: 1. 3 1.3 1.3 2.7 vmovaps %xmm0, %xmm1
-# CHECK-NEXT: 2. 3 2.0 0.0 0.0 vaddps %xmm1, %xmm1, %xmm2
+# CHECK-NEXT: 0. 3 0.0 0.0 5.3 vxorps %xmm0, %xmm0, %xmm0
+# CHECK-NEXT: 1. 3 1.7 1.7 3.0 vmovaps %xmm0, %xmm1
+# CHECK-NEXT: 2. 3 3.3 1.0 0.0 vaddps %xmm1, %xmm1, %xmm2
Modified: llvm/trunk/test/tools/llvm-mca/X86/BdVer2/reg-move-elimination-2.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-mca/X86/BdVer2/reg-move-elimination-2.s?rev=360341&r1=360340&r2=360341&view=diff
==============================================================================
--- llvm/trunk/test/tools/llvm-mca/X86/BdVer2/reg-move-elimination-2.s (original)
+++ llvm/trunk/test/tools/llvm-mca/X86/BdVer2/reg-move-elimination-2.s Thu May 9 06:54:51 2019
@@ -14,13 +14,13 @@ movdqu %xmm5, %xmm0
# CHECK: Iterations: 3
# CHECK-NEXT: Instructions: 27
-# CHECK-NEXT: Total Cycles: 16
+# CHECK-NEXT: Total Cycles: 17
# CHECK-NEXT: Total uOps: 27
# CHECK: Dispatch Width: 4
-# CHECK-NEXT: uOps Per Cycle: 1.69
-# CHECK-NEXT: IPC: 1.69
-# CHECK-NEXT: Block RThroughput: 3.5
+# CHECK-NEXT: uOps Per Cycle: 1.59
+# CHECK-NEXT: IPC: 1.59
+# CHECK-NEXT: Block RThroughput: 4.0
# CHECK: Instruction Info:
# CHECK-NEXT: [1]: #uOps
@@ -34,12 +34,12 @@ movdqu %xmm5, %xmm0
# CHECK-NEXT: 1 0 0.25 pxor %mm0, %mm0
# CHECK-NEXT: 1 2 0.50 movq %mm0, %mm1
# CHECK-NEXT: 1 0 0.25 xorps %xmm0, %xmm0
-# CHECK-NEXT: 1 1 0.50 movaps %xmm0, %xmm1
-# CHECK-NEXT: 1 1 0.50 movups %xmm1, %xmm2
-# CHECK-NEXT: 1 1 0.50 movapd %xmm2, %xmm3
-# CHECK-NEXT: 1 1 0.50 movupd %xmm3, %xmm4
+# CHECK-NEXT: 1 1 1.00 movaps %xmm0, %xmm1
+# CHECK-NEXT: 1 1 1.00 movups %xmm1, %xmm2
+# CHECK-NEXT: 1 1 1.00 movapd %xmm2, %xmm3
+# CHECK-NEXT: 1 1 1.00 movupd %xmm3, %xmm4
# CHECK-NEXT: 1 1 0.50 movdqa %xmm4, %xmm5
-# CHECK-NEXT: 1 1 0.50 movdqu %xmm5, %xmm0
+# CHECK-NEXT: 1 1 1.00 movdqu %xmm5, %xmm0
# CHECK: Register File statistics:
# CHECK-NEXT: Total number of mappings created: 21
@@ -82,51 +82,51 @@ movdqu %xmm5, %xmm0
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0.0] [0.1] [1] [2] [3] [4] [5] [6] [7.0] [7.1] [8.0] [8.1] [9] [10] [11] [12] [13] [14] [15] [16.0] [16.1] [17] [18]
-# CHECK-NEXT: - - - - - - - - 2.00 2.00 1.33 1.67 - - 3.33 3.67 - - - - - - -
+# CHECK-NEXT: - - - - - - - - 4.00 4.00 1.67 2.33 - - 3.33 3.67 - - - - - - -
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0.0] [0.1] [1] [2] [3] [4] [5] [6] [7.0] [7.1] [8.0] [8.1] [9] [10] [11] [12] [13] [14] [15] [16.0] [16.1] [17] [18] Instructions:
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - - - pxor %mm0, %mm0
-# CHECK-NEXT: - - - - - - - - - - 0.33 0.67 - - - 1.00 - - - - - - - movq %mm0, %mm1
+# CHECK-NEXT: - - - - - - - - - - 0.33 0.67 - - 0.33 0.67 - - - - - - - movq %mm0, %mm1
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - - - xorps %xmm0, %xmm0
-# CHECK-NEXT: - - - - - - - - - 1.00 - - - - 0.33 0.67 - - - - - - - movaps %xmm0, %xmm1
-# CHECK-NEXT: - - - - - - - - 1.00 - - - - - - 1.00 - - - - - - - movups %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - - - 1.00 - - - - 0.67 0.33 - - - - - - - movapd %xmm2, %xmm3
-# CHECK-NEXT: - - - - - - - - 1.00 - - - - - 0.67 0.33 - - - - - - - movupd %xmm3, %xmm4
-# CHECK-NEXT: - - - - - - - - - - 0.67 0.33 - - 1.00 - - - - - - - - movdqa %xmm4, %xmm5
-# CHECK-NEXT: - - - - - - - - - - 0.33 0.67 - - 0.67 0.33 - - - - - - - movdqu %xmm5, %xmm0
+# CHECK-NEXT: - - - - - - - - - 2.00 - - - - 0.67 0.33 - - - - - - - movaps %xmm0, %xmm1
+# CHECK-NEXT: - - - - - - - - 2.00 - - - - - 0.33 0.67 - - - - - - - movups %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - - 2.00 - - - - 0.67 0.33 - - - - - - - movapd %xmm2, %xmm3
+# CHECK-NEXT: - - - - - - - - 2.00 - - - - - 0.33 0.67 - - - - - - - movupd %xmm3, %xmm4
+# CHECK-NEXT: - - - - - - - - - - 0.67 0.33 - - 0.67 0.33 - - - - - - - movdqa %xmm4, %xmm5
+# CHECK-NEXT: - - - - - - - - - - 0.67 1.33 - - 0.33 0.67 - - - - - - - movdqu %xmm5, %xmm0
# CHECK: Timeline view:
-# CHECK-NEXT: 012345
+# CHECK-NEXT: 0123456
# CHECK-NEXT: Index 0123456789
-# CHECK: [0,0] DR . . . pxor %mm0, %mm0
-# CHECK-NEXT: [0,1] DeeER. . . movq %mm0, %mm1
-# CHECK-NEXT: [0,2] D---R. . . xorps %xmm0, %xmm0
-# CHECK-NEXT: [0,3] DeE-R. . . movaps %xmm0, %xmm1
-# CHECK-NEXT: [0,4] .DeER. . . 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] . D-----R . . pxor %mm0, %mm0
-# CHECK-NEXT: [1,1] . DeeE--R . . movq %mm0, %mm1
-# CHECK-NEXT: [1,2] . D-----R . . xorps %xmm0, %xmm0
-# CHECK-NEXT: [1,3] . DeE---R. . movaps %xmm0, %xmm1
-# CHECK-NEXT: [1,4] . D=eE--R. . movups %xmm1, %xmm2
-# CHECK-NEXT: [1,5] . D==eE-R. . 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] . D------R . pxor %mm0, %mm0
-# CHECK-NEXT: [2,1] . D==eeE-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===eE-R . 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] DR . . .. pxor %mm0, %mm0
+# CHECK-NEXT: [0,1] DeeER. . .. movq %mm0, %mm1
+# CHECK-NEXT: [0,2] D---R. . .. xorps %xmm0, %xmm0
+# CHECK-NEXT: [0,3] DeE-R. . .. movaps %xmm0, %xmm1
+# CHECK-NEXT: [0,4] .DeER. . .. 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] . D-----R . .. pxor %mm0, %mm0
+# CHECK-NEXT: [1,1] . DeeE--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==eE-R. .. 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] . D-------R .. pxor %mm0, %mm0
+# CHECK-NEXT: [2,1] . D==eeE--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====eE-R .. 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
@@ -135,12 +135,12 @@ movdqu %xmm5, %xmm0
# CHECK-NEXT: [3]: Average time elapsed from WB until retire stage
# CHECK: [0] [1] [2] [3]
-# CHECK-NEXT: 0. 3 0.0 0.0 3.7 pxor %mm0, %mm0
-# CHECK-NEXT: 1. 3 1.7 1.7 1.0 movq %mm0, %mm1
-# CHECK-NEXT: 2. 3 0.0 0.0 4.3 xorps %xmm0, %xmm0
-# CHECK-NEXT: 3. 3 1.7 1.7 2.0 movaps %xmm0, %xmm1
-# CHECK-NEXT: 4. 3 2.3 0.0 1.0 movups %xmm1, %xmm2
-# CHECK-NEXT: 5. 3 3.3 0.0 0.3 movapd %xmm2, %xmm3
-# CHECK-NEXT: 6. 3 4.0 0.0 0.0 movupd %xmm3, %xmm4
-# CHECK-NEXT: 7. 3 4.7 0.0 0.0 movdqa %xmm4, %xmm5
-# CHECK-NEXT: 8. 3 5.3 0.0 0.0 movdqu %xmm5, %xmm0
+# CHECK-NEXT: 0. 3 0.0 0.0 4.0 pxor %mm0, %mm0
+# CHECK-NEXT: 1. 3 1.7 1.7 1.3 movq %mm0, %mm1
+# CHECK-NEXT: 2. 3 0.0 0.0 4.7 xorps %xmm0, %xmm0
+# CHECK-NEXT: 3. 3 2.3 2.3 1.7 movaps %xmm0, %xmm1
+# CHECK-NEXT: 4. 3 3.0 0.0 0.7 movups %xmm1, %xmm2
+# CHECK-NEXT: 5. 3 4.0 0.0 0.0 movapd %xmm2, %xmm3
+# CHECK-NEXT: 6. 3 4.7 0.0 0.0 movupd %xmm3, %xmm4
+# CHECK-NEXT: 7. 3 5.3 0.0 0.0 movdqa %xmm4, %xmm5
+# CHECK-NEXT: 8. 3 6.0 0.0 0.0 movdqu %xmm5, %xmm0
Modified: llvm/trunk/test/tools/llvm-mca/X86/BdVer2/reg-move-elimination-3.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-mca/X86/BdVer2/reg-move-elimination-3.s?rev=360341&r1=360340&r2=360341&view=diff
==============================================================================
--- llvm/trunk/test/tools/llvm-mca/X86/BdVer2/reg-move-elimination-3.s (original)
+++ llvm/trunk/test/tools/llvm-mca/X86/BdVer2/reg-move-elimination-3.s Thu May 9 06:54:51 2019
@@ -11,13 +11,13 @@ vmovdqu %xmm5, %xmm0
# CHECK: Iterations: 3
# CHECK-NEXT: Instructions: 21
-# CHECK-NEXT: Total Cycles: 15
+# CHECK-NEXT: Total Cycles: 17
# CHECK-NEXT: Total uOps: 21
# CHECK: Dispatch Width: 4
-# CHECK-NEXT: uOps Per Cycle: 1.40
-# CHECK-NEXT: IPC: 1.40
-# CHECK-NEXT: Block RThroughput: 3.0
+# CHECK-NEXT: uOps Per Cycle: 1.24
+# CHECK-NEXT: IPC: 1.24
+# CHECK-NEXT: Block RThroughput: 4.0
# CHECK: Instruction Info:
# CHECK-NEXT: [1]: #uOps
@@ -29,12 +29,12 @@ vmovdqu %xmm5, %xmm0
# CHECK: [1] [2] [3] [4] [5] [6] Instructions:
# CHECK-NEXT: 1 0 0.25 vxorps %xmm0, %xmm0, %xmm0
-# CHECK-NEXT: 1 1 0.50 vmovaps %xmm0, %xmm1
-# CHECK-NEXT: 1 1 0.50 vmovups %xmm1, %xmm2
-# CHECK-NEXT: 1 1 0.50 vmovapd %xmm2, %xmm3
-# CHECK-NEXT: 1 1 0.50 vmovupd %xmm3, %xmm4
-# CHECK-NEXT: 1 1 0.50 vmovdqa %xmm4, %xmm5
-# CHECK-NEXT: 1 1 0.50 vmovdqu %xmm5, %xmm0
+# CHECK-NEXT: 1 1 1.00 vmovaps %xmm0, %xmm1
+# CHECK-NEXT: 1 1 1.00 vmovups %xmm1, %xmm2
+# CHECK-NEXT: 1 1 1.00 vmovapd %xmm2, %xmm3
+# CHECK-NEXT: 1 1 1.00 vmovupd %xmm3, %xmm4
+# CHECK-NEXT: 1 1 1.00 vmovdqa %xmm4, %xmm5
+# CHECK-NEXT: 1 1 1.00 vmovdqu %xmm5, %xmm0
# CHECK: Register File statistics:
# CHECK-NEXT: Total number of mappings created: 18
@@ -77,43 +77,43 @@ vmovdqu %xmm5, %xmm0
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0.0] [0.1] [1] [2] [3] [4] [5] [6] [7.0] [7.1] [8.0] [8.1] [9] [10] [11] [12] [13] [14] [15] [16.0] [16.1] [17] [18]
-# CHECK-NEXT: - - - - - - - - 2.00 2.00 1.00 1.00 - - 3.00 3.00 - - - - - - -
+# CHECK-NEXT: - - - - - - - - 4.00 4.00 2.00 2.00 - - 3.00 3.00 - - - - - - -
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0.0] [0.1] [1] [2] [3] [4] [5] [6] [7.0] [7.1] [8.0] [8.1] [9] [10] [11] [12] [13] [14] [15] [16.0] [16.1] [17] [18] Instructions:
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - - - vxorps %xmm0, %xmm0, %xmm0
-# CHECK-NEXT: - - - - - - - - 0.33 0.67 - - - - 0.67 0.33 - - - - - - - vmovaps %xmm0, %xmm1
-# CHECK-NEXT: - - - - - - - - 1.00 - - - - - 1.00 - - - - - - - - vmovups %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - - - 1.00 - - - - 0.33 0.67 - - - - - - - vmovapd %xmm2, %xmm3
-# CHECK-NEXT: - - - - - - - - 0.67 0.33 - - - - 0.67 0.33 - - - - - - - vmovupd %xmm3, %xmm4
-# CHECK-NEXT: - - - - - - - - - - - 1.00 - - - 1.00 - - - - - - - vmovdqa %xmm4, %xmm5
-# CHECK-NEXT: - - - - - - - - - - 1.00 - - - 0.33 0.67 - - - - - - - vmovdqu %xmm5, %xmm0
+# CHECK-NEXT: - - - - - - - - - 2.00 - - - - 0.67 0.33 - - - - - - - vmovaps %xmm0, %xmm1
+# CHECK-NEXT: - - - - - - - - 2.00 - - - - - 1.00 - - - - - - - - vmovups %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - - 2.00 - - - - - 1.00 - - - - - - - vmovapd %xmm2, %xmm3
+# CHECK-NEXT: - - - - - - - - 2.00 - - - - - 1.00 - - - - - - - - vmovupd %xmm3, %xmm4
+# CHECK-NEXT: - - - - - - - - - - - 2.00 - - - 1.00 - - - - - - - vmovdqa %xmm4, %xmm5
+# CHECK-NEXT: - - - - - - - - - - 2.00 - - - 0.33 0.67 - - - - - - - vmovdqu %xmm5, %xmm0
# CHECK: Timeline view:
-# CHECK-NEXT: 01234
+# CHECK-NEXT: 0123456
# CHECK-NEXT: Index 0123456789
-# CHECK: [0,0] DR . . . vxorps %xmm0, %xmm0, %xmm0
-# CHECK-NEXT: [0,1] DeER . . . vmovaps %xmm0, %xmm1
-# CHECK-NEXT: [0,2] D=eER. . . vmovups %xmm1, %xmm2
-# CHECK-NEXT: [0,3] D==eER . . vmovapd %xmm2, %xmm3
-# CHECK-NEXT: [0,4] .D==eER . . vmovupd %xmm3, %xmm4
-# CHECK-NEXT: [0,5] .D===eER . . vmovdqa %xmm4, %xmm5
-# CHECK-NEXT: [0,6] .D====eER . . vmovdqu %xmm5, %xmm0
-# CHECK-NEXT: [1,0] .D------R . . vxorps %xmm0, %xmm0, %xmm0
-# CHECK-NEXT: [1,1] . DeE---R . . vmovaps %xmm0, %xmm1
-# CHECK-NEXT: [1,2] . D=eE--R . . vmovups %xmm1, %xmm2
-# CHECK-NEXT: [1,3] . D==eE--R. . vmovapd %xmm2, %xmm3
-# CHECK-NEXT: [1,4] . D===eE-R. . vmovupd %xmm3, %xmm4
-# CHECK-NEXT: [1,5] . D===eER. . vmovdqa %xmm4, %xmm5
-# CHECK-NEXT: [1,6] . D====eER . vmovdqu %xmm5, %xmm0
-# CHECK-NEXT: [2,0] . D------R . vxorps %xmm0, %xmm0, %xmm0
-# CHECK-NEXT: [2,1] . D===eE-R . vmovaps %xmm0, %xmm1
-# CHECK-NEXT: [2,2] . D===eER . vmovups %xmm1, %xmm2
-# CHECK-NEXT: [2,3] . D====eER . vmovapd %xmm2, %xmm3
-# CHECK-NEXT: [2,4] . D=====eER . vmovupd %xmm3, %xmm4
-# CHECK-NEXT: [2,5] . D======eER. vmovdqa %xmm4, %xmm5
-# CHECK-NEXT: [2,6] . D======eER vmovdqu %xmm5, %xmm0
+# CHECK: [0,0] DR . . .. vxorps %xmm0, %xmm0, %xmm0
+# CHECK-NEXT: [0,1] DeER . . .. vmovaps %xmm0, %xmm1
+# CHECK-NEXT: [0,2] D=eER. . .. vmovups %xmm1, %xmm2
+# CHECK-NEXT: [0,3] D==eER . .. vmovapd %xmm2, %xmm3
+# CHECK-NEXT: [0,4] .D==eER . .. vmovupd %xmm3, %xmm4
+# CHECK-NEXT: [0,5] .D===eER . .. vmovdqa %xmm4, %xmm5
+# CHECK-NEXT: [0,6] .D====eER . .. vmovdqu %xmm5, %xmm0
+# CHECK-NEXT: [1,0] .D------R . .. vxorps %xmm0, %xmm0, %xmm0
+# CHECK-NEXT: [1,1] . D==eE-R . .. vmovaps %xmm0, %xmm1
+# CHECK-NEXT: [1,2] . D===eER . .. vmovups %xmm1, %xmm2
+# CHECK-NEXT: [1,3] . D====eER. .. vmovapd %xmm2, %xmm3
+# CHECK-NEXT: [1,4] . D=====eER .. vmovupd %xmm3, %xmm4
+# CHECK-NEXT: [1,5] . D=====eER .. vmovdqa %xmm4, %xmm5
+# CHECK-NEXT: [1,6] . D======eER .. vmovdqu %xmm5, %xmm0
+# CHECK-NEXT: [2,0] . D--------R .. vxorps %xmm0, %xmm0, %xmm0
+# CHECK-NEXT: [2,1] . D=====eE-R .. vmovaps %xmm0, %xmm1
+# CHECK-NEXT: [2,2] . D=====eER .. vmovups %xmm1, %xmm2
+# CHECK-NEXT: [2,3] . D======eER .. vmovapd %xmm2, %xmm3
+# CHECK-NEXT: [2,4] . D=======eER.. vmovupd %xmm3, %xmm4
+# CHECK-NEXT: [2,5] . D========eER. vmovdqa %xmm4, %xmm5
+# CHECK-NEXT: [2,6] . D========eER vmovdqu %xmm5, %xmm0
# CHECK: Average Wait times (based on the timeline view):
# CHECK-NEXT: [0]: Executions
@@ -122,10 +122,10 @@ vmovdqu %xmm5, %xmm0
# CHECK-NEXT: [3]: Average time elapsed from WB until retire stage
# CHECK: [0] [1] [2] [3]
-# CHECK-NEXT: 0. 3 0.0 0.0 4.0 vxorps %xmm0, %xmm0, %xmm0
-# CHECK-NEXT: 1. 3 2.0 2.0 1.3 vmovaps %xmm0, %xmm1
-# CHECK-NEXT: 2. 3 2.7 0.0 0.7 vmovups %xmm1, %xmm2
-# CHECK-NEXT: 3. 3 3.7 0.0 0.7 vmovapd %xmm2, %xmm3
-# CHECK-NEXT: 4. 3 4.3 0.0 0.3 vmovupd %xmm3, %xmm4
-# CHECK-NEXT: 5. 3 5.0 0.0 0.0 vmovdqa %xmm4, %xmm5
-# CHECK-NEXT: 6. 3 5.7 0.0 0.0 vmovdqu %xmm5, %xmm0
+# CHECK-NEXT: 0. 3 0.0 0.0 4.7 vxorps %xmm0, %xmm0, %xmm0
+# CHECK-NEXT: 1. 3 3.3 3.3 0.7 vmovaps %xmm0, %xmm1
+# CHECK-NEXT: 2. 3 4.0 0.0 0.0 vmovups %xmm1, %xmm2
+# CHECK-NEXT: 3. 3 5.0 0.0 0.0 vmovapd %xmm2, %xmm3
+# CHECK-NEXT: 4. 3 5.7 0.0 0.0 vmovupd %xmm3, %xmm4
+# CHECK-NEXT: 5. 3 6.3 0.0 0.0 vmovdqa %xmm4, %xmm5
+# CHECK-NEXT: 6. 3 7.0 0.0 0.0 vmovdqu %xmm5, %xmm0
Modified: llvm/trunk/test/tools/llvm-mca/X86/BdVer2/reg-move-elimination-4.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-mca/X86/BdVer2/reg-move-elimination-4.s?rev=360341&r1=360340&r2=360341&view=diff
==============================================================================
--- llvm/trunk/test/tools/llvm-mca/X86/BdVer2/reg-move-elimination-4.s (original)
+++ llvm/trunk/test/tools/llvm-mca/X86/BdVer2/reg-move-elimination-4.s Thu May 9 06:54:51 2019
@@ -9,13 +9,13 @@ mov %edx, %eax
# CHECK: Iterations: 3
# CHECK-NEXT: Instructions: 15
-# CHECK-NEXT: Total Cycles: 11
+# CHECK-NEXT: Total Cycles: 15
# CHECK-NEXT: Total uOps: 15
# CHECK: Dispatch Width: 4
-# CHECK-NEXT: uOps Per Cycle: 1.36
-# CHECK-NEXT: IPC: 1.36
-# CHECK-NEXT: Block RThroughput: 2.0
+# CHECK-NEXT: uOps Per Cycle: 1.00
+# CHECK-NEXT: IPC: 1.00
+# CHECK-NEXT: Block RThroughput: 4.0
# CHECK: Instruction Info:
# CHECK-NEXT: [1]: #uOps
@@ -27,10 +27,10 @@ mov %edx, %eax
# CHECK: [1] [2] [3] [4] [5] [6] Instructions:
# CHECK-NEXT: 1 0 0.25 xorl %eax, %eax
-# CHECK-NEXT: 1 1 0.50 movl %eax, %ebx
-# CHECK-NEXT: 1 1 0.50 movl %ebx, %ecx
-# CHECK-NEXT: 1 1 0.50 movl %ecx, %edx
-# CHECK-NEXT: 1 1 0.50 movl %edx, %eax
+# CHECK-NEXT: 1 1 1.00 movl %eax, %ebx
+# CHECK-NEXT: 1 1 1.00 movl %ebx, %ecx
+# CHECK-NEXT: 1 1 1.00 movl %ecx, %edx
+# CHECK-NEXT: 1 1 1.00 movl %edx, %eax
# CHECK: Register File statistics:
# CHECK-NEXT: Total number of mappings created: 12
@@ -73,35 +73,35 @@ mov %edx, %eax
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0.0] [0.1] [1] [2] [3] [4] [5] [6] [7.0] [7.1] [8.0] [8.1] [9] [10] [11] [12] [13] [14] [15] [16.0] [16.1] [17] [18]
-# CHECK-NEXT: - - - - - 2.00 2.00 - - - - - - - - - - - - - - - -
+# CHECK-NEXT: - - - - - 4.00 4.00 - - - - - - - - - - - - - - - -
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0.0] [0.1] [1] [2] [3] [4] [5] [6] [7.0] [7.1] [8.0] [8.1] [9] [10] [11] [12] [13] [14] [15] [16.0] [16.1] [17] [18] Instructions:
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - - - xorl %eax, %eax
-# CHECK-NEXT: - - - - - - 1.00 - - - - - - - - - - - - - - - - movl %eax, %ebx
-# CHECK-NEXT: - - - - - 0.67 0.33 - - - - - - - - - - - - - - - - movl %ebx, %ecx
-# CHECK-NEXT: - - - - - 0.33 0.67 - - - - - - - - - - - - - - - - movl %ecx, %edx
-# CHECK-NEXT: - - - - - 1.00 - - - - - - - - - - - - - - - - - movl %edx, %eax
+# CHECK-NEXT: - - - - - - 2.00 - - - - - - - - - - - - - - - - movl %eax, %ebx
+# CHECK-NEXT: - - - - - 2.00 - - - - - - - - - - - - - - - - - movl %ebx, %ecx
+# CHECK-NEXT: - - - - - - 2.00 - - - - - - - - - - - - - - - - movl %ecx, %edx
+# CHECK-NEXT: - - - - - 2.00 - - - - - - - - - - - - - - - - - movl %edx, %eax
# CHECK: Timeline view:
-# CHECK-NEXT: 0
+# CHECK-NEXT: 01234
# CHECK-NEXT: Index 0123456789
-# 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=eE-R . 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] . 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] .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-------R . 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: Average Wait times (based on the timeline view):
# CHECK-NEXT: [0]: Executions
@@ -110,8 +110,8 @@ mov %edx, %eax
# CHECK-NEXT: [3]: Average time elapsed from WB until retire stage
# CHECK: [0] [1] [2] [3]
-# CHECK-NEXT: 0. 3 0.0 0.0 2.7 xorl %eax, %eax
-# CHECK-NEXT: 1. 3 1.7 1.7 0.7 movl %eax, %ebx
-# CHECK-NEXT: 2. 3 2.3 0.0 0.3 movl %ebx, %ecx
-# CHECK-NEXT: 3. 3 3.0 0.0 0.3 movl %ecx, %edx
-# CHECK-NEXT: 4. 3 3.7 0.0 0.0 movl %edx, %eax
+# CHECK-NEXT: 0. 3 0.0 0.0 3.7 xorl %eax, %eax
+# CHECK-NEXT: 1. 3 4.0 4.0 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
Modified: llvm/trunk/test/tools/llvm-mca/X86/BdVer2/reg-move-elimination-5.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-mca/X86/BdVer2/reg-move-elimination-5.s?rev=360341&r1=360340&r2=360341&view=diff
==============================================================================
--- llvm/trunk/test/tools/llvm-mca/X86/BdVer2/reg-move-elimination-5.s (original)
+++ llvm/trunk/test/tools/llvm-mca/X86/BdVer2/reg-move-elimination-5.s Thu May 9 06:54:51 2019
@@ -9,13 +9,13 @@ mov %rdx, %rax
# CHECK: Iterations: 3
# CHECK-NEXT: Instructions: 15
-# CHECK-NEXT: Total Cycles: 11
+# CHECK-NEXT: Total Cycles: 15
# CHECK-NEXT: Total uOps: 15
# CHECK: Dispatch Width: 4
-# CHECK-NEXT: uOps Per Cycle: 1.36
-# CHECK-NEXT: IPC: 1.36
-# CHECK-NEXT: Block RThroughput: 2.0
+# CHECK-NEXT: uOps Per Cycle: 1.00
+# CHECK-NEXT: IPC: 1.00
+# CHECK-NEXT: Block RThroughput: 4.0
# CHECK: Instruction Info:
# CHECK-NEXT: [1]: #uOps
@@ -27,10 +27,10 @@ mov %rdx, %rax
# CHECK: [1] [2] [3] [4] [5] [6] Instructions:
# CHECK-NEXT: 1 0 0.25 xorq %rax, %rax
-# CHECK-NEXT: 1 1 0.50 movq %rax, %rbx
-# CHECK-NEXT: 1 1 0.50 movq %rbx, %rcx
-# CHECK-NEXT: 1 1 0.50 movq %rcx, %rdx
-# CHECK-NEXT: 1 1 0.50 movq %rdx, %rax
+# CHECK-NEXT: 1 1 1.00 movq %rax, %rbx
+# CHECK-NEXT: 1 1 1.00 movq %rbx, %rcx
+# CHECK-NEXT: 1 1 1.00 movq %rcx, %rdx
+# CHECK-NEXT: 1 1 1.00 movq %rdx, %rax
# CHECK: Register File statistics:
# CHECK-NEXT: Total number of mappings created: 12
@@ -73,35 +73,35 @@ mov %rdx, %rax
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0.0] [0.1] [1] [2] [3] [4] [5] [6] [7.0] [7.1] [8.0] [8.1] [9] [10] [11] [12] [13] [14] [15] [16.0] [16.1] [17] [18]
-# CHECK-NEXT: - - - - - 2.00 2.00 - - - - - - - - - - - - - - - -
+# CHECK-NEXT: - - - - - 4.00 4.00 - - - - - - - - - - - - - - - -
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0.0] [0.1] [1] [2] [3] [4] [5] [6] [7.0] [7.1] [8.0] [8.1] [9] [10] [11] [12] [13] [14] [15] [16.0] [16.1] [17] [18] Instructions:
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - - - xorq %rax, %rax
-# CHECK-NEXT: - - - - - - 1.00 - - - - - - - - - - - - - - - - movq %rax, %rbx
-# CHECK-NEXT: - - - - - 0.67 0.33 - - - - - - - - - - - - - - - - movq %rbx, %rcx
-# CHECK-NEXT: - - - - - 0.33 0.67 - - - - - - - - - - - - - - - - movq %rcx, %rdx
-# CHECK-NEXT: - - - - - 1.00 - - - - - - - - - - - - - - - - - movq %rdx, %rax
+# CHECK-NEXT: - - - - - - 2.00 - - - - - - - - - - - - - - - - movq %rax, %rbx
+# CHECK-NEXT: - - - - - 2.00 - - - - - - - - - - - - - - - - - movq %rbx, %rcx
+# CHECK-NEXT: - - - - - - 2.00 - - - - - - - - - - - - - - - - movq %rcx, %rdx
+# CHECK-NEXT: - - - - - 2.00 - - - - - - - - - - - - - - - - - movq %rdx, %rax
# CHECK: Timeline view:
-# CHECK-NEXT: 0
+# CHECK-NEXT: 01234
# CHECK-NEXT: Index 0123456789
-# 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=eE-R . 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] . 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] .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-------R . 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: Average Wait times (based on the timeline view):
# CHECK-NEXT: [0]: Executions
@@ -110,8 +110,8 @@ mov %rdx, %rax
# CHECK-NEXT: [3]: Average time elapsed from WB until retire stage
# CHECK: [0] [1] [2] [3]
-# CHECK-NEXT: 0. 3 0.0 0.0 2.7 xorq %rax, %rax
-# CHECK-NEXT: 1. 3 1.7 1.7 0.7 movq %rax, %rbx
-# CHECK-NEXT: 2. 3 2.3 0.0 0.3 movq %rbx, %rcx
-# CHECK-NEXT: 3. 3 3.0 0.0 0.3 movq %rcx, %rdx
-# CHECK-NEXT: 4. 3 3.7 0.0 0.0 movq %rdx, %rax
+# CHECK-NEXT: 0. 3 0.0 0.0 3.7 xorq %rax, %rax
+# CHECK-NEXT: 1. 3 4.0 4.0 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
Modified: llvm/trunk/test/tools/llvm-mca/X86/BdVer2/register-files-5.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-mca/X86/BdVer2/register-files-5.s?rev=360341&r1=360340&r2=360341&view=diff
==============================================================================
--- llvm/trunk/test/tools/llvm-mca/X86/BdVer2/register-files-5.s (original)
+++ llvm/trunk/test/tools/llvm-mca/X86/BdVer2/register-files-5.s Thu May 9 06:54:51 2019
@@ -37,13 +37,13 @@
# CHECK: Iterations: 1
# CHECK-NEXT: Instructions: 33
-# CHECK-NEXT: Total Cycles: 70
+# CHECK-NEXT: Total Cycles: 48
# CHECK-NEXT: Total uOps: 66
# CHECK: Dispatch Width: 4
-# CHECK-NEXT: uOps Per Cycle: 0.94
-# CHECK-NEXT: IPC: 0.47
-# CHECK-NEXT: Block RThroughput: 64.0
+# CHECK-NEXT: uOps Per Cycle: 1.38
+# CHECK-NEXT: IPC: 0.69
+# CHECK-NEXT: Block RThroughput: 41.0
# CHECK: Dynamic Dispatch Stall Cycles:
# CHECK-NEXT: RAT - Register unavailable: 0
@@ -55,9 +55,9 @@
# CHECK: Dispatch Logic - number of cycles where we saw N micro opcodes dispatched:
# CHECK-NEXT: [# dispatched], [# cycles]
-# CHECK-NEXT: 0, 53 (75.7%)
-# CHECK-NEXT: 2, 1 (1.4%)
-# CHECK-NEXT: 4, 16 (22.9%)
+# CHECK-NEXT: 0, 31 (64.6%)
+# CHECK-NEXT: 2, 1 (2.1%)
+# CHECK-NEXT: 4, 16 (33.3%)
# CHECK: Register File statistics:
# CHECK-NEXT: Total number of mappings created: 66
@@ -74,42 +74,42 @@
# CHECK-NEXT: Max number of mappings used: 0
# CHECK: Timeline view:
-# CHECK-NEXT: 0123456789 0123456789 0123456789
-# CHECK-NEXT: Index 0123456789 0123456789 0123456789 0123456789
+# CHECK-NEXT: 0123456789 0123456789
+# CHECK-NEXT: Index 0123456789 0123456789 01234567
-# CHECK: [0,0] DeeeeeeeeeER . . . . . . . . . . . . vdivps %ymm0, %ymm0, %ymm1
-# CHECK-NEXT: [0,1] DeeeeeE----R . . . . . . . . . . . . vaddps %ymm0, %ymm0, %ymm2
-# CHECK-NEXT: [0,2] .D=eeeeeE--R . . . . . . . . . . . . vaddps %ymm0, %ymm0, %ymm3
-# CHECK-NEXT: [0,3] .D===eeeeeER . . . . . . . . . . . . vaddps %ymm0, %ymm0, %ymm4
-# CHECK-NEXT: [0,4] . D====eeeeeER . . . . . . . . . . . . vaddps %ymm0, %ymm0, %ymm5
-# CHECK-NEXT: [0,5] . D======eeeeeER . . . . . . . . . . . vaddps %ymm0, %ymm0, %ymm6
-# CHECK-NEXT: [0,6] . D=======eeeeeER . . . . . . . . . . . vaddps %ymm0, %ymm0, %ymm7
-# CHECK-NEXT: [0,7] . D===========eeeeeER . . . . . . . . . . vaddps %ymm0, %ymm0, %ymm8
-# CHECK-NEXT: [0,8] . D============eeeeeER . . . . . . . . . . vaddps %ymm0, %ymm0, %ymm9
-# CHECK-NEXT: [0,9] . D==============eeeeeER . . . . . . . . . vaddps %ymm0, %ymm0, %ymm10
-# CHECK-NEXT: [0,10] . D===============eeeeeER . . . . . . . . . vaddps %ymm0, %ymm0, %ymm11
-# CHECK-NEXT: [0,11] . D=================eeeeeER. . . . . . . . . vaddps %ymm0, %ymm0, %ymm12
-# CHECK-NEXT: [0,12] . .D==================eeeeeER . . . . . . . . vaddps %ymm0, %ymm0, %ymm13
-# CHECK-NEXT: [0,13] . .D======================eeeeeER . . . . . . . vaddps %ymm0, %ymm0, %ymm14
-# CHECK-NEXT: [0,14] . . D=======================eeeeeER . . . . . . . vaddps %ymm0, %ymm0, %ymm15
-# CHECK-NEXT: [0,15] . . D=====eeeeeE------------------R . . . . . . . vaddps %ymm2, %ymm0, %ymm0
-# CHECK-NEXT: [0,16] . . D==================eeeeeE----R . . . . . . . vaddps %ymm2, %ymm0, %ymm3
-# CHECK-NEXT: [0,17] . . D========================eeeeeER. . . . . . . vaddps %ymm2, %ymm0, %ymm4
-# CHECK-NEXT: [0,18] . . D=========================eeeeeER . . . . . . vaddps %ymm2, %ymm0, %ymm5
-# CHECK-NEXT: [0,19] . . D===========================eeeeeER . . . . . . vaddps %ymm2, %ymm0, %ymm6
-# CHECK-NEXT: [0,20] . . D============================eeeeeER . . . . . vaddps %ymm2, %ymm0, %ymm7
-# CHECK-NEXT: [0,21] . . D==============================eeeeeER . . . . . vaddps %ymm2, %ymm0, %ymm8
-# CHECK-NEXT: [0,22] . . .D===============================eeeeeER. . . . . vaddps %ymm2, %ymm0, %ymm9
-# CHECK-NEXT: [0,23] . . .D=================================eeeeeER . . . . vaddps %ymm2, %ymm0, %ymm10
-# CHECK-NEXT: [0,24] . . . D==================================eeeeeER . . . . vaddps %ymm2, %ymm0, %ymm11
-# CHECK-NEXT: [0,25] . . . D====================================eeeeeER . . . vaddps %ymm2, %ymm0, %ymm12
-# CHECK-NEXT: [0,26] . . . D=====================================eeeeeER . . . vaddps %ymm2, %ymm0, %ymm13
-# CHECK-NEXT: [0,27] . . . D=======================================eeeeeER. . . vaddps %ymm2, %ymm0, %ymm14
-# CHECK-NEXT: [0,28] . . . D========================================eeeeeER . . vaddps %ymm2, %ymm0, %ymm15
-# CHECK-NEXT: [0,29] . . . D==========================================eeeeeER . . vaddps %ymm3, %ymm0, %ymm2
-# CHECK-NEXT: [0,30] . . . D===========================================eeeeeER . vaddps %ymm3, %ymm0, %ymm4
-# CHECK-NEXT: [0,31] . . . D=============================================eeeeeER . vaddps %ymm3, %ymm0, %ymm5
-# CHECK-NEXT: [0,32] . . . .D==============================================eeeeeER vaddps %ymm3, %ymm0, %ymm6
+# CHECK: [0,0] DeeeeeeeeeER . . . . . . . . vdivps %ymm0, %ymm0, %ymm1
+# CHECK-NEXT: [0,1] DeeeeeE----R . . . . . . . . vaddps %ymm0, %ymm0, %ymm2
+# CHECK-NEXT: [0,2] .D=eeeeeE--R . . . . . . . . vaddps %ymm0, %ymm0, %ymm3
+# CHECK-NEXT: [0,3] .D===eeeeeER . . . . . . . . vaddps %ymm0, %ymm0, %ymm4
+# CHECK-NEXT: [0,4] . D====eeeeeER . . . . . . . . vaddps %ymm0, %ymm0, %ymm5
+# CHECK-NEXT: [0,5] . D======eeeeeER . . . . . . . vaddps %ymm0, %ymm0, %ymm6
+# CHECK-NEXT: [0,6] . D=======eeeeeER . . . . . . . vaddps %ymm0, %ymm0, %ymm7
+# CHECK-NEXT: [0,7] . D===========eeeeeER . . . . . . vaddps %ymm0, %ymm0, %ymm8
+# CHECK-NEXT: [0,8] . D============eeeeeER . . . . . . vaddps %ymm0, %ymm0, %ymm9
+# CHECK-NEXT: [0,9] . D==============eeeeeER . . . . . vaddps %ymm0, %ymm0, %ymm10
+# CHECK-NEXT: [0,10] . D==============eeeeeER . . . . . vaddps %ymm0, %ymm0, %ymm11
+# CHECK-NEXT: [0,11] . D===============eeeeeER . . . . . vaddps %ymm0, %ymm0, %ymm12
+# CHECK-NEXT: [0,12] . .D===============eeeeeER . . . . . vaddps %ymm0, %ymm0, %ymm13
+# CHECK-NEXT: [0,13] . .D=================eeeeeER . . . . vaddps %ymm0, %ymm0, %ymm14
+# CHECK-NEXT: [0,14] . . D=================eeeeeER . . . . vaddps %ymm0, %ymm0, %ymm15
+# CHECK-NEXT: [0,15] . . D=====eeeeeE------------R . . . . vaddps %ymm2, %ymm0, %ymm0
+# CHECK-NEXT: [0,16] . . D==============eeeeeE--R . . . . vaddps %ymm2, %ymm0, %ymm3
+# CHECK-NEXT: [0,17] . . D=================eeeeeER . . . . vaddps %ymm2, %ymm0, %ymm4
+# CHECK-NEXT: [0,18] . . D=================eeeeeER . . . . vaddps %ymm2, %ymm0, %ymm5
+# CHECK-NEXT: [0,19] . . D==================eeeeeER. . . . vaddps %ymm2, %ymm0, %ymm6
+# CHECK-NEXT: [0,20] . . D==================eeeeeER . . . vaddps %ymm2, %ymm0, %ymm7
+# CHECK-NEXT: [0,21] . . D===================eeeeeER . . . vaddps %ymm2, %ymm0, %ymm8
+# CHECK-NEXT: [0,22] . . .D===================eeeeeER . . . vaddps %ymm2, %ymm0, %ymm9
+# CHECK-NEXT: [0,23] . . .D====================eeeeeER . . . vaddps %ymm2, %ymm0, %ymm10
+# CHECK-NEXT: [0,24] . . . D====================eeeeeER. . . vaddps %ymm2, %ymm0, %ymm11
+# CHECK-NEXT: [0,25] . . . D=====================eeeeeER . . vaddps %ymm2, %ymm0, %ymm12
+# CHECK-NEXT: [0,26] . . . D=====================eeeeeER . . vaddps %ymm2, %ymm0, %ymm13
+# CHECK-NEXT: [0,27] . . . D======================eeeeeER . . vaddps %ymm2, %ymm0, %ymm14
+# CHECK-NEXT: [0,28] . . . D======================eeeeeER . . vaddps %ymm2, %ymm0, %ymm15
+# CHECK-NEXT: [0,29] . . . D=======================eeeeeER. . vaddps %ymm3, %ymm0, %ymm2
+# CHECK-NEXT: [0,30] . . . D=======================eeeeeER . vaddps %ymm3, %ymm0, %ymm4
+# CHECK-NEXT: [0,31] . . . D========================eeeeeER. vaddps %ymm3, %ymm0, %ymm5
+# CHECK-NEXT: [0,32] . . . .D========================eeeeeER vaddps %ymm3, %ymm0, %ymm6
# CHECK: Average Wait times (based on the timeline view):
# CHECK-NEXT: [0]: Executions
@@ -128,26 +128,26 @@
# CHECK-NEXT: 7. 1 12.0 12.0 0.0 vaddps %ymm0, %ymm0, %ymm8
# CHECK-NEXT: 8. 1 13.0 13.0 0.0 vaddps %ymm0, %ymm0, %ymm9
# CHECK-NEXT: 9. 1 15.0 15.0 0.0 vaddps %ymm0, %ymm0, %ymm10
-# CHECK-NEXT: 10. 1 16.0 16.0 0.0 vaddps %ymm0, %ymm0, %ymm11
-# CHECK-NEXT: 11. 1 18.0 18.0 0.0 vaddps %ymm0, %ymm0, %ymm12
-# CHECK-NEXT: 12. 1 19.0 19.0 0.0 vaddps %ymm0, %ymm0, %ymm13
-# CHECK-NEXT: 13. 1 23.0 23.0 0.0 vaddps %ymm0, %ymm0, %ymm14
-# CHECK-NEXT: 14. 1 24.0 24.0 0.0 vaddps %ymm0, %ymm0, %ymm15
-# CHECK-NEXT: 15. 1 6.0 6.0 18.0 vaddps %ymm2, %ymm0, %ymm0
-# CHECK-NEXT: 16. 1 19.0 9.0 4.0 vaddps %ymm2, %ymm0, %ymm3
-# CHECK-NEXT: 17. 1 25.0 15.0 0.0 vaddps %ymm2, %ymm0, %ymm4
-# CHECK-NEXT: 18. 1 26.0 17.0 0.0 vaddps %ymm2, %ymm0, %ymm5
-# CHECK-NEXT: 19. 1 28.0 19.0 0.0 vaddps %ymm2, %ymm0, %ymm6
-# CHECK-NEXT: 20. 1 29.0 21.0 0.0 vaddps %ymm2, %ymm0, %ymm7
-# CHECK-NEXT: 21. 1 31.0 23.0 0.0 vaddps %ymm2, %ymm0, %ymm8
-# CHECK-NEXT: 22. 1 32.0 25.0 0.0 vaddps %ymm2, %ymm0, %ymm9
-# CHECK-NEXT: 23. 1 34.0 27.0 0.0 vaddps %ymm2, %ymm0, %ymm10
-# CHECK-NEXT: 24. 1 35.0 29.0 0.0 vaddps %ymm2, %ymm0, %ymm11
-# CHECK-NEXT: 25. 1 37.0 31.0 0.0 vaddps %ymm2, %ymm0, %ymm12
-# CHECK-NEXT: 26. 1 38.0 33.0 0.0 vaddps %ymm2, %ymm0, %ymm13
-# CHECK-NEXT: 27. 1 40.0 35.0 0.0 vaddps %ymm2, %ymm0, %ymm14
-# CHECK-NEXT: 28. 1 41.0 37.0 0.0 vaddps %ymm2, %ymm0, %ymm15
-# CHECK-NEXT: 29. 1 43.0 25.0 0.0 vaddps %ymm3, %ymm0, %ymm2
-# CHECK-NEXT: 30. 1 44.0 27.0 0.0 vaddps %ymm3, %ymm0, %ymm4
-# CHECK-NEXT: 31. 1 46.0 29.0 0.0 vaddps %ymm3, %ymm0, %ymm5
-# CHECK-NEXT: 32. 1 47.0 31.0 0.0 vaddps %ymm3, %ymm0, %ymm6
+# CHECK-NEXT: 10. 1 15.0 15.0 0.0 vaddps %ymm0, %ymm0, %ymm11
+# CHECK-NEXT: 11. 1 16.0 16.0 0.0 vaddps %ymm0, %ymm0, %ymm12
+# CHECK-NEXT: 12. 1 16.0 16.0 0.0 vaddps %ymm0, %ymm0, %ymm13
+# CHECK-NEXT: 13. 1 18.0 18.0 0.0 vaddps %ymm0, %ymm0, %ymm14
+# CHECK-NEXT: 14. 1 18.0 18.0 0.0 vaddps %ymm0, %ymm0, %ymm15
+# CHECK-NEXT: 15. 1 6.0 6.0 12.0 vaddps %ymm2, %ymm0, %ymm0
+# CHECK-NEXT: 16. 1 15.0 5.0 2.0 vaddps %ymm2, %ymm0, %ymm3
+# CHECK-NEXT: 17. 1 18.0 8.0 0.0 vaddps %ymm2, %ymm0, %ymm4
+# CHECK-NEXT: 18. 1 18.0 9.0 0.0 vaddps %ymm2, %ymm0, %ymm5
+# CHECK-NEXT: 19. 1 19.0 10.0 0.0 vaddps %ymm2, %ymm0, %ymm6
+# CHECK-NEXT: 20. 1 19.0 11.0 0.0 vaddps %ymm2, %ymm0, %ymm7
+# CHECK-NEXT: 21. 1 20.0 12.0 0.0 vaddps %ymm2, %ymm0, %ymm8
+# CHECK-NEXT: 22. 1 20.0 13.0 0.0 vaddps %ymm2, %ymm0, %ymm9
+# CHECK-NEXT: 23. 1 21.0 14.0 0.0 vaddps %ymm2, %ymm0, %ymm10
+# CHECK-NEXT: 24. 1 21.0 15.0 0.0 vaddps %ymm2, %ymm0, %ymm11
+# CHECK-NEXT: 25. 1 22.0 16.0 0.0 vaddps %ymm2, %ymm0, %ymm12
+# CHECK-NEXT: 26. 1 22.0 17.0 0.0 vaddps %ymm2, %ymm0, %ymm13
+# CHECK-NEXT: 27. 1 23.0 18.0 0.0 vaddps %ymm2, %ymm0, %ymm14
+# CHECK-NEXT: 28. 1 23.0 19.0 0.0 vaddps %ymm2, %ymm0, %ymm15
+# CHECK-NEXT: 29. 1 24.0 10.0 0.0 vaddps %ymm3, %ymm0, %ymm2
+# CHECK-NEXT: 30. 1 24.0 11.0 0.0 vaddps %ymm3, %ymm0, %ymm4
+# CHECK-NEXT: 31. 1 25.0 12.0 0.0 vaddps %ymm3, %ymm0, %ymm5
+# CHECK-NEXT: 32. 1 25.0 13.0 0.0 vaddps %ymm3, %ymm0, %ymm6
Modified: llvm/trunk/test/tools/llvm-mca/X86/BdVer2/resources-3dnow.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-mca/X86/BdVer2/resources-3dnow.s?rev=360341&r1=360340&r2=360341&view=diff
==============================================================================
--- llvm/trunk/test/tools/llvm-mca/X86/BdVer2/resources-3dnow.s (original)
+++ llvm/trunk/test/tools/llvm-mca/X86/BdVer2/resources-3dnow.s Thu May 9 06:54:51 2019
@@ -89,55 +89,55 @@ pswapd (%rax), %mm2
# CHECK: [1] [2] [3] [4] [5] [6] Instructions:
# CHECK-NEXT: 1 2 0.50 * * U femms
# CHECK-NEXT: 1 2 0.50 pavgusb %mm0, %mm2
-# CHECK-NEXT: 1 7 0.50 * pavgusb (%rax), %mm2
+# CHECK-NEXT: 1 7 1.50 * pavgusb (%rax), %mm2
# CHECK-NEXT: 1 4 1.00 pf2id %mm0, %mm2
-# CHECK-NEXT: 1 9 1.00 * pf2id (%rax), %mm2
+# CHECK-NEXT: 1 9 1.50 * pf2id (%rax), %mm2
# CHECK-NEXT: 1 4 1.00 pf2iw %mm0, %mm2
-# CHECK-NEXT: 1 9 1.00 * pf2iw (%rax), %mm2
+# CHECK-NEXT: 1 9 1.50 * pf2iw (%rax), %mm2
# CHECK-NEXT: 1 5 1.00 pfacc %mm0, %mm2
-# CHECK-NEXT: 1 10 1.00 * pfacc (%rax), %mm2
+# CHECK-NEXT: 1 10 1.50 * pfacc (%rax), %mm2
# CHECK-NEXT: 1 5 1.00 pfadd %mm0, %mm2
-# CHECK-NEXT: 1 10 1.00 * pfadd (%rax), %mm2
+# CHECK-NEXT: 1 10 1.50 * pfadd (%rax), %mm2
# CHECK-NEXT: 1 5 1.00 pfcmpeq %mm0, %mm2
-# CHECK-NEXT: 1 10 1.00 * pfcmpeq (%rax), %mm2
+# CHECK-NEXT: 1 10 1.50 * pfcmpeq (%rax), %mm2
# CHECK-NEXT: 1 5 1.00 pfcmpge %mm0, %mm2
-# CHECK-NEXT: 1 10 1.00 * pfcmpge (%rax), %mm2
+# CHECK-NEXT: 1 10 1.50 * pfcmpge (%rax), %mm2
# CHECK-NEXT: 1 5 1.00 pfcmpgt %mm0, %mm2
-# CHECK-NEXT: 1 10 1.00 * pfcmpgt (%rax), %mm2
+# CHECK-NEXT: 1 10 1.50 * pfcmpgt (%rax), %mm2
# CHECK-NEXT: 1 5 1.00 pfmax %mm0, %mm2
-# CHECK-NEXT: 1 10 1.00 * pfmax (%rax), %mm2
+# CHECK-NEXT: 1 10 1.50 * pfmax (%rax), %mm2
# CHECK-NEXT: 1 5 1.00 pfmin %mm0, %mm2
-# CHECK-NEXT: 1 10 1.00 * pfmin (%rax), %mm2
+# CHECK-NEXT: 1 10 1.50 * pfmin (%rax), %mm2
# CHECK-NEXT: 1 5 1.00 pfmul %mm0, %mm2
-# CHECK-NEXT: 1 10 1.00 * pfmul (%rax), %mm2
+# CHECK-NEXT: 1 10 1.50 * pfmul (%rax), %mm2
# CHECK-NEXT: 1 5 1.00 pfnacc %mm0, %mm2
-# CHECK-NEXT: 1 10 1.00 * pfnacc (%rax), %mm2
+# CHECK-NEXT: 1 10 1.50 * pfnacc (%rax), %mm2
# CHECK-NEXT: 1 5 1.00 pfpnacc %mm0, %mm2
-# CHECK-NEXT: 1 10 1.00 * pfpnacc (%rax), %mm2
+# CHECK-NEXT: 1 10 1.50 * pfpnacc (%rax), %mm2
# CHECK-NEXT: 1 5 1.00 pfrcp %mm0, %mm2
-# CHECK-NEXT: 1 10 1.00 * pfrcp (%rax), %mm2
+# CHECK-NEXT: 1 10 1.50 * pfrcp (%rax), %mm2
# CHECK-NEXT: 1 5 1.00 pfrcpit1 %mm0, %mm2
-# CHECK-NEXT: 1 10 1.00 * pfrcpit1 (%rax), %mm2
+# CHECK-NEXT: 1 10 1.50 * pfrcpit1 (%rax), %mm2
# CHECK-NEXT: 1 5 1.00 pfrcpit2 %mm0, %mm2
-# CHECK-NEXT: 1 10 1.00 * pfrcpit2 (%rax), %mm2
+# CHECK-NEXT: 1 10 1.50 * pfrcpit2 (%rax), %mm2
# CHECK-NEXT: 1 5 1.00 pfrsqit1 %mm0, %mm2
-# CHECK-NEXT: 1 10 1.00 * pfrsqit1 (%rax), %mm2
+# CHECK-NEXT: 1 10 1.50 * pfrsqit1 (%rax), %mm2
# CHECK-NEXT: 1 5 1.00 pfrsqrt %mm0, %mm2
-# CHECK-NEXT: 1 10 1.00 * pfrsqrt (%rax), %mm2
+# CHECK-NEXT: 1 10 1.50 * pfrsqrt (%rax), %mm2
# CHECK-NEXT: 1 5 1.00 pfsub %mm0, %mm2
-# CHECK-NEXT: 1 10 1.00 * pfsub (%rax), %mm2
+# CHECK-NEXT: 1 10 1.50 * pfsub (%rax), %mm2
# CHECK-NEXT: 1 5 1.00 pfsubr %mm0, %mm2
-# CHECK-NEXT: 1 10 1.00 * pfsubr (%rax), %mm2
+# CHECK-NEXT: 1 10 1.50 * pfsubr (%rax), %mm2
# CHECK-NEXT: 1 4 1.00 pi2fd %mm0, %mm2
-# CHECK-NEXT: 1 9 1.00 * pi2fd (%rax), %mm2
+# CHECK-NEXT: 1 9 1.50 * pi2fd (%rax), %mm2
# CHECK-NEXT: 1 4 1.00 pi2fw %mm0, %mm2
-# CHECK-NEXT: 1 9 1.00 * pi2fw (%rax), %mm2
+# CHECK-NEXT: 1 9 1.50 * pi2fw (%rax), %mm2
# CHECK-NEXT: 1 4 1.00 pmulhrw %mm0, %mm2
-# CHECK-NEXT: 1 9 1.00 * pmulhrw (%rax), %mm2
-# CHECK-NEXT: 1 5 0.50 * * prefetch (%rax)
-# CHECK-NEXT: 1 5 0.50 * * prefetchw (%rax)
-# CHECK-NEXT: 1 2 0.50 pswapd %mm0, %mm2
-# CHECK-NEXT: 1 7 0.50 * pswapd (%rax), %mm2
+# CHECK-NEXT: 1 9 1.50 * pmulhrw (%rax), %mm2
+# CHECK-NEXT: 1 5 1.00 * * prefetch (%rax)
+# CHECK-NEXT: 1 5 1.00 * * prefetchw (%rax)
+# CHECK-NEXT: 1 2 1.00 pswapd %mm0, %mm2
+# CHECK-NEXT: 1 7 1.50 * pswapd (%rax), %mm2
# CHECK: Resources:
# CHECK-NEXT: [0.0] - PdAGLU01
@@ -166,58 +166,58 @@ pswapd (%rax), %mm2
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0.0] [0.1] [1] [2] [3] [4] [5] [6] [7.0] [7.1] [8.0] [8.1] [9] [10] [11] [12] [13] [14] [15] [16.0] [16.1] [17] [18]
-# CHECK-NEXT: 13.00 13.00 - - - - - - 17.50 17.50 2.00 2.00 2.00 8.00 38.50 10.50 - - - 13.00 13.00 - -
+# CHECK-NEXT: 38.00 38.00 - - - - - 8.00 17.50 17.50 3.00 3.00 2.00 8.00 46.50 2.50 - - - 38.00 38.00 - -
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0.0] [0.1] [1] [2] [3] [4] [5] [6] [7.0] [7.1] [8.0] [8.1] [9] [10] [11] [12] [13] [14] [15] [16.0] [16.1] [17] [18] Instructions:
# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - femms
# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - - - - pavgusb %mm0, %mm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - 0.50 0.50 - - pavgusb (%rax), %mm2
-# CHECK-NEXT: - - - - - - - - - - - - - 1.00 - 1.00 - - - - - - - pf2id %mm0, %mm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - 1.00 - 1.00 - - - 0.50 0.50 - - pf2id (%rax), %mm2
-# CHECK-NEXT: - - - - - - - - - - - - - 1.00 - 1.00 - - - - - - - pf2iw %mm0, %mm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - 1.00 - 1.00 - - - 0.50 0.50 - - pf2iw (%rax), %mm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - 1.50 1.50 - - pavgusb (%rax), %mm2
+# CHECK-NEXT: - - - - - - - 1.00 - - - - - 1.00 1.00 - - - - - - - - pf2id %mm0, %mm2
+# CHECK-NEXT: 1.50 1.50 - - - - - 1.00 - - - - - 1.00 1.00 - - - - 1.50 1.50 - - pf2id (%rax), %mm2
+# CHECK-NEXT: - - - - - - - 1.00 - - - - - 1.00 1.00 - - - - - - - - pf2iw %mm0, %mm2
+# CHECK-NEXT: 1.50 1.50 - - - - - 1.00 - - - - - 1.00 1.00 - - - - 1.50 1.50 - - pf2iw (%rax), %mm2
# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 1.00 - - - - - - - - pfacc %mm0, %mm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 1.00 - - - - 0.50 0.50 - - pfacc (%rax), %mm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - 0.50 0.50 - - - - 1.00 - - - - 1.50 1.50 - - pfacc (%rax), %mm2
# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 1.00 - - - - - - - - pfadd %mm0, %mm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 1.00 - - - - 0.50 0.50 - - pfadd (%rax), %mm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - 0.50 0.50 - - - - 1.00 - - - - 1.50 1.50 - - pfadd (%rax), %mm2
# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 1.00 - - - - - - - - pfcmpeq %mm0, %mm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 1.00 - - - - 0.50 0.50 - - pfcmpeq (%rax), %mm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - 0.50 0.50 - - - - 1.00 - - - - 1.50 1.50 - - pfcmpeq (%rax), %mm2
# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 1.00 - - - - - - - - pfcmpge %mm0, %mm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 1.00 - - - - 0.50 0.50 - - pfcmpge (%rax), %mm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - 0.50 0.50 - - - - 1.00 - - - - 1.50 1.50 - - pfcmpge (%rax), %mm2
# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 1.00 - - - - - - - - pfcmpgt %mm0, %mm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 1.00 - - - - 0.50 0.50 - - pfcmpgt (%rax), %mm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - 0.50 0.50 - - - - 1.00 - - - - 1.50 1.50 - - pfcmpgt (%rax), %mm2
# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 1.00 - - - - - - - - pfmax %mm0, %mm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 1.00 - - - - 0.50 0.50 - - pfmax (%rax), %mm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - 0.50 0.50 - - - - 1.00 - - - - 1.50 1.50 - - pfmax (%rax), %mm2
# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 1.00 - - - - - - - - pfmin %mm0, %mm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 1.00 - - - - 0.50 0.50 - - pfmin (%rax), %mm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - 0.50 0.50 - - - - 1.00 - - - - 1.50 1.50 - - pfmin (%rax), %mm2
# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 1.00 - - - - - - - - pfmul %mm0, %mm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 1.00 - - - - 0.50 0.50 - - pfmul (%rax), %mm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - 0.50 0.50 - - - - 1.00 - - - - 1.50 1.50 - - pfmul (%rax), %mm2
# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 1.00 - - - - - - - - pfnacc %mm0, %mm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 1.00 - - - - 0.50 0.50 - - pfnacc (%rax), %mm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - 0.50 0.50 - - - - 1.00 - - - - 1.50 1.50 - - pfnacc (%rax), %mm2
# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 1.00 - - - - - - - - pfpnacc %mm0, %mm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 1.00 - - - - 0.50 0.50 - - pfpnacc (%rax), %mm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - 0.50 0.50 - - - - 1.00 - - - - 1.50 1.50 - - pfpnacc (%rax), %mm2
# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 1.00 - - - - - - - - pfrcp %mm0, %mm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 1.00 - - - - 0.50 0.50 - - pfrcp (%rax), %mm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - 0.50 0.50 - - - - 1.00 - - - - 1.50 1.50 - - pfrcp (%rax), %mm2
# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 1.00 - - - - - - - - pfrcpit1 %mm0, %mm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 1.00 - - - - 0.50 0.50 - - pfrcpit1 (%rax), %mm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - 0.50 0.50 - - - - 1.00 - - - - 1.50 1.50 - - pfrcpit1 (%rax), %mm2
# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 1.00 - - - - - - - - pfrcpit2 %mm0, %mm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 1.00 - - - - 0.50 0.50 - - pfrcpit2 (%rax), %mm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - 0.50 0.50 - - - - 1.00 - - - - 1.50 1.50 - - pfrcpit2 (%rax), %mm2
# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 1.00 - - - - - - - - pfrsqit1 %mm0, %mm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 1.00 - - - - 0.50 0.50 - - pfrsqit1 (%rax), %mm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - 0.50 0.50 - - - - 1.00 - - - - 1.50 1.50 - - pfrsqit1 (%rax), %mm2
# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 1.00 - - - - - - - - pfrsqrt %mm0, %mm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 1.00 - - - - 0.50 0.50 - - pfrsqrt (%rax), %mm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - 0.50 0.50 - - - - 1.00 - - - - 1.50 1.50 - - pfrsqrt (%rax), %mm2
# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 1.00 - - - - - - - - pfsub %mm0, %mm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 1.00 - - - - 0.50 0.50 - - pfsub (%rax), %mm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - 0.50 0.50 - - - - 1.00 - - - - 1.50 1.50 - - pfsub (%rax), %mm2
# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 1.00 - - - - - - - - pfsubr %mm0, %mm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 1.00 - - - - 0.50 0.50 - - pfsubr (%rax), %mm2
-# CHECK-NEXT: - - - - - - - - - - - - - 1.00 - 1.00 - - - - - - - pi2fd %mm0, %mm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - 1.00 - 1.00 - - - 0.50 0.50 - - pi2fd (%rax), %mm2
-# CHECK-NEXT: - - - - - - - - - - - - - 1.00 - 1.00 - - - - - - - pi2fw %mm0, %mm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - 1.00 - 1.00 - - - 0.50 0.50 - - pi2fw (%rax), %mm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - 0.50 0.50 - - - - 1.00 - - - - 1.50 1.50 - - pfsubr (%rax), %mm2
+# CHECK-NEXT: - - - - - - - 1.00 - - - - - 1.00 1.00 - - - - - - - - pi2fd %mm0, %mm2
+# CHECK-NEXT: 1.50 1.50 - - - - - 1.00 - - - - - 1.00 1.00 - - - - 1.50 1.50 - - pi2fd (%rax), %mm2
+# CHECK-NEXT: - - - - - - - 1.00 - - - - - 1.00 1.00 - - - - - - - - pi2fw %mm0, %mm2
+# CHECK-NEXT: 1.50 1.50 - - - - - 1.00 - - - - - 1.00 1.00 - - - - 1.50 1.50 - - pi2fw (%rax), %mm2
# CHECK-NEXT: - - - - - - - - - - - - 1.00 - 1.00 - - - - - - - - pmulhrw %mm0, %mm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - 1.00 - 1.00 - - - - 0.50 0.50 - - pmulhrw (%rax), %mm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - - - - - - - 0.50 0.50 - - prefetch (%rax)
-# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - - - - - - - 0.50 0.50 - - prefetchw (%rax)
-# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - - - - pswapd %mm0, %mm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - 0.50 0.50 - - pswapd (%rax), %mm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - - - - - 1.00 - 1.00 - - - - 1.50 1.50 - - pmulhrw (%rax), %mm2
+# CHECK-NEXT: 1.00 1.00 - - - - - - - - - - - - - - - - - 1.00 1.00 - - prefetch (%rax)
+# CHECK-NEXT: 1.00 1.00 - - - - - - - - - - - - - - - - - 1.00 1.00 - - prefetchw (%rax)
+# CHECK-NEXT: - - - - - - - - - - 1.00 1.00 - - 0.50 0.50 - - - - - - - pswapd %mm0, %mm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - - - 1.00 1.00 - - 0.50 0.50 - - - 1.50 1.50 - - pswapd (%rax), %mm2
Modified: llvm/trunk/test/tools/llvm-mca/X86/BdVer2/resources-adx.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-mca/X86/BdVer2/resources-adx.s?rev=360341&r1=360340&r2=360341&view=diff
==============================================================================
--- llvm/trunk/test/tools/llvm-mca/X86/BdVer2/resources-adx.s (original)
+++ llvm/trunk/test/tools/llvm-mca/X86/BdVer2/resources-adx.s Thu May 9 06:54:51 2019
@@ -21,13 +21,13 @@ adox (%rbx), %rcx
# CHECK: [1] [2] [3] [4] [5] [6] Instructions:
# CHECK-NEXT: 1 1 1.00 adcxl %ebx, %ecx
-# CHECK-NEXT: 1 5 1.00 * adcxl (%rbx), %ecx
+# CHECK-NEXT: 1 5 1.50 * adcxl (%rbx), %ecx
# CHECK-NEXT: 1 1 1.00 adcxq %rbx, %rcx
-# CHECK-NEXT: 1 5 1.00 * adcxq (%rbx), %rcx
+# CHECK-NEXT: 1 5 1.50 * adcxq (%rbx), %rcx
# CHECK-NEXT: 1 1 1.00 adoxl %ebx, %ecx
-# CHECK-NEXT: 1 5 1.00 * adoxl (%rbx), %ecx
+# CHECK-NEXT: 1 5 1.50 * adoxl (%rbx), %ecx
# CHECK-NEXT: 1 1 1.00 adoxq %rbx, %rcx
-# CHECK-NEXT: 1 5 1.00 * adoxq (%rbx), %rcx
+# CHECK-NEXT: 1 5 1.50 * adoxq (%rbx), %rcx
# CHECK: Resources:
# CHECK-NEXT: [0.0] - PdAGLU01
@@ -56,15 +56,15 @@ adox (%rbx), %rcx
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0.0] [0.1] [1] [2] [3] [4] [5] [6] [7.0] [7.1] [8.0] [8.1] [9] [10] [11] [12] [13] [14] [15] [16.0] [16.1] [17] [18]
-# CHECK-NEXT: 2.00 2.00 - - - 8.00 8.00 - - - - - - - - - - - - 2.00 2.00 - -
+# CHECK-NEXT: 6.00 6.00 - - - 8.00 8.00 - - - - - - - - - - - - 6.00 6.00 - -
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0.0] [0.1] [1] [2] [3] [4] [5] [6] [7.0] [7.1] [8.0] [8.1] [9] [10] [11] [12] [13] [14] [15] [16.0] [16.1] [17] [18] Instructions:
# CHECK-NEXT: - - - - - 1.00 1.00 - - - - - - - - - - - - - - - - adcxl %ebx, %ecx
-# CHECK-NEXT: 0.50 0.50 - - - 1.00 1.00 - - - - - - - - - - - - 0.50 0.50 - - adcxl (%rbx), %ecx
+# CHECK-NEXT: 1.50 1.50 - - - 1.00 1.00 - - - - - - - - - - - - 1.50 1.50 - - adcxl (%rbx), %ecx
# CHECK-NEXT: - - - - - 1.00 1.00 - - - - - - - - - - - - - - - - adcxq %rbx, %rcx
-# CHECK-NEXT: 0.50 0.50 - - - 1.00 1.00 - - - - - - - - - - - - 0.50 0.50 - - adcxq (%rbx), %rcx
+# CHECK-NEXT: 1.50 1.50 - - - 1.00 1.00 - - - - - - - - - - - - 1.50 1.50 - - adcxq (%rbx), %rcx
# CHECK-NEXT: - - - - - 1.00 1.00 - - - - - - - - - - - - - - - - adoxl %ebx, %ecx
-# CHECK-NEXT: 0.50 0.50 - - - 1.00 1.00 - - - - - - - - - - - - 0.50 0.50 - - adoxl (%rbx), %ecx
+# CHECK-NEXT: 1.50 1.50 - - - 1.00 1.00 - - - - - - - - - - - - 1.50 1.50 - - adoxl (%rbx), %ecx
# CHECK-NEXT: - - - - - 1.00 1.00 - - - - - - - - - - - - - - - - adoxq %rbx, %rcx
-# CHECK-NEXT: 0.50 0.50 - - - 1.00 1.00 - - - - - - - - - - - - 0.50 0.50 - - adoxq (%rbx), %rcx
+# CHECK-NEXT: 1.50 1.50 - - - 1.00 1.00 - - - - - - - - - - - - 1.50 1.50 - - adoxq (%rbx), %rcx
Modified: llvm/trunk/test/tools/llvm-mca/X86/BdVer2/resources-aes.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-mca/X86/BdVer2/resources-aes.s?rev=360341&r1=360340&r2=360341&view=diff
==============================================================================
--- llvm/trunk/test/tools/llvm-mca/X86/BdVer2/resources-aes.s (original)
+++ llvm/trunk/test/tools/llvm-mca/X86/BdVer2/resources-aes.s Thu May 9 06:54:51 2019
@@ -29,17 +29,17 @@ aeskeygenassist $22, (%rax), %xmm2
# CHECK: [1] [2] [3] [4] [5] [6] Instructions:
# CHECK-NEXT: 2 9 1.00 aesdec %xmm0, %xmm2
-# CHECK-NEXT: 2 14 1.00 * aesdec (%rax), %xmm2
+# CHECK-NEXT: 2 14 1.50 * aesdec (%rax), %xmm2
# CHECK-NEXT: 2 9 1.00 aesdeclast %xmm0, %xmm2
-# CHECK-NEXT: 2 14 1.00 * aesdeclast (%rax), %xmm2
+# CHECK-NEXT: 2 14 1.50 * aesdeclast (%rax), %xmm2
# CHECK-NEXT: 2 9 1.00 aesenc %xmm0, %xmm2
-# CHECK-NEXT: 2 14 1.00 * aesenc (%rax), %xmm2
+# CHECK-NEXT: 2 14 1.50 * aesenc (%rax), %xmm2
# CHECK-NEXT: 2 9 1.00 aesenclast %xmm0, %xmm2
-# CHECK-NEXT: 2 14 1.00 * aesenclast (%rax), %xmm2
+# CHECK-NEXT: 2 14 1.50 * aesenclast (%rax), %xmm2
# CHECK-NEXT: 1 5 1.00 aesimc %xmm0, %xmm2
-# CHECK-NEXT: 1 10 1.00 * aesimc (%rax), %xmm2
+# CHECK-NEXT: 1 10 1.50 * aesimc (%rax), %xmm2
# CHECK-NEXT: 1 5 1.00 aeskeygenassist $22, %xmm0, %xmm2
-# CHECK-NEXT: 1 10 1.00 * aeskeygenassist $22, (%rax), %xmm2
+# CHECK-NEXT: 1 10 1.50 * aeskeygenassist $22, (%rax), %xmm2
# CHECK: Resources:
# CHECK-NEXT: [0.0] - PdAGLU01
@@ -68,19 +68,19 @@ aeskeygenassist $22, (%rax), %xmm2
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0.0] [0.1] [1] [2] [3] [4] [5] [6] [7.0] [7.1] [8.0] [8.1] [9] [10] [11] [12] [13] [14] [15] [16.0] [16.1] [17] [18]
-# CHECK-NEXT: 3.00 3.00 - - - - - - - - - - 12.00 - 12.00 - - - - 3.00 3.00 - -
+# CHECK-NEXT: 9.00 9.00 - - - - - - - - - - 12.00 - 12.00 - - - - 9.00 9.00 - -
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0.0] [0.1] [1] [2] [3] [4] [5] [6] [7.0] [7.1] [8.0] [8.1] [9] [10] [11] [12] [13] [14] [15] [16.0] [16.1] [17] [18] Instructions:
# CHECK-NEXT: - - - - - - - - - - - - 1.00 - 1.00 - - - - - - - - aesdec %xmm0, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - 1.00 - 1.00 - - - - 0.50 0.50 - - aesdec (%rax), %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - - - - - 1.00 - 1.00 - - - - 1.50 1.50 - - aesdec (%rax), %xmm2
# CHECK-NEXT: - - - - - - - - - - - - 1.00 - 1.00 - - - - - - - - aesdeclast %xmm0, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - 1.00 - 1.00 - - - - 0.50 0.50 - - aesdeclast (%rax), %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - - - - - 1.00 - 1.00 - - - - 1.50 1.50 - - aesdeclast (%rax), %xmm2
# CHECK-NEXT: - - - - - - - - - - - - 1.00 - 1.00 - - - - - - - - aesenc %xmm0, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - 1.00 - 1.00 - - - - 0.50 0.50 - - aesenc (%rax), %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - - - - - 1.00 - 1.00 - - - - 1.50 1.50 - - aesenc (%rax), %xmm2
# CHECK-NEXT: - - - - - - - - - - - - 1.00 - 1.00 - - - - - - - - aesenclast %xmm0, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - 1.00 - 1.00 - - - - 0.50 0.50 - - aesenclast (%rax), %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - - - - - 1.00 - 1.00 - - - - 1.50 1.50 - - aesenclast (%rax), %xmm2
# CHECK-NEXT: - - - - - - - - - - - - 1.00 - 1.00 - - - - - - - - aesimc %xmm0, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - 1.00 - 1.00 - - - - 0.50 0.50 - - aesimc (%rax), %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - - - - - 1.00 - 1.00 - - - - 1.50 1.50 - - aesimc (%rax), %xmm2
# CHECK-NEXT: - - - - - - - - - - - - 1.00 - 1.00 - - - - - - - - aeskeygenassist $22, %xmm0, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - 1.00 - 1.00 - - - - 0.50 0.50 - - aeskeygenassist $22, (%rax), %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - - - - - 1.00 - 1.00 - - - - 1.50 1.50 - - aeskeygenassist $22, (%rax), %xmm2
Modified: llvm/trunk/test/tools/llvm-mca/X86/BdVer2/resources-avx1.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-mca/X86/BdVer2/resources-avx1.s?rev=360341&r1=360340&r2=360341&view=diff
==============================================================================
--- llvm/trunk/test/tools/llvm-mca/X86/BdVer2/resources-avx1.s (original)
+++ llvm/trunk/test/tools/llvm-mca/X86/BdVer2/resources-avx1.s Thu May 9 06:54:51 2019
@@ -1031,694 +1031,694 @@ vzeroupper
# CHECK: [1] [2] [3] [4] [5] [6] Instructions:
# CHECK-NEXT: 1 5 1.00 vaddpd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 10 1.00 * vaddpd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 2 5 2.00 vaddpd %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 2 10 2.00 * vaddpd (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 1 10 1.50 * vaddpd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 2 5 1.00 vaddpd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 2 10 1.50 * vaddpd (%rax), %ymm1, %ymm2
# CHECK-NEXT: 1 5 1.00 vaddps %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 10 1.00 * vaddps (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 2 5 2.00 vaddps %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 2 10 2.00 * vaddps (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 1 10 1.50 * vaddps (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 2 5 1.00 vaddps %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 2 10 1.50 * vaddps (%rax), %ymm1, %ymm2
# CHECK-NEXT: 1 5 1.00 vaddsd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 10 1.00 * vaddsd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 10 1.50 * vaddsd (%rax), %xmm1, %xmm2
# CHECK-NEXT: 1 5 1.00 vaddss %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 10 1.00 * vaddss (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 10 1.50 * vaddss (%rax), %xmm1, %xmm2
# CHECK-NEXT: 1 5 1.00 vaddsubpd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 10 1.00 * vaddsubpd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 2 5 2.00 vaddsubpd %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 2 10 2.00 * vaddsubpd (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 1 10 1.50 * vaddsubpd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 2 5 1.00 vaddsubpd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 2 10 1.50 * vaddsubpd (%rax), %ymm1, %ymm2
# CHECK-NEXT: 1 5 1.00 vaddsubps %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 10 1.00 * vaddsubps (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 2 5 2.00 vaddsubps %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 2 10 2.00 * vaddsubps (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 1 10 1.50 * vaddsubps (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 2 5 1.00 vaddsubps %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 2 10 1.50 * vaddsubps (%rax), %ymm1, %ymm2
# CHECK-NEXT: 2 9 1.00 vaesdec %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 2 14 1.00 * vaesdec (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 2 14 1.50 * vaesdec (%rax), %xmm1, %xmm2
# CHECK-NEXT: 2 9 1.00 vaesdeclast %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 2 14 1.00 * vaesdeclast (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 2 14 1.50 * vaesdeclast (%rax), %xmm1, %xmm2
# CHECK-NEXT: 2 9 1.00 vaesenc %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 2 14 1.00 * vaesenc (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 2 14 1.50 * vaesenc (%rax), %xmm1, %xmm2
# CHECK-NEXT: 2 9 1.00 vaesenclast %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 2 14 1.00 * vaesenclast (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 2 14 1.50 * vaesenclast (%rax), %xmm1, %xmm2
# CHECK-NEXT: 1 5 1.00 vaesimc %xmm0, %xmm2
-# CHECK-NEXT: 1 10 1.00 * vaesimc (%rax), %xmm2
+# CHECK-NEXT: 1 10 1.50 * vaesimc (%rax), %xmm2
# CHECK-NEXT: 1 5 1.00 vaeskeygenassist $22, %xmm0, %xmm2
-# CHECK-NEXT: 1 10 1.00 * vaeskeygenassist $22, (%rax), %xmm2
-# CHECK-NEXT: 1 2 0.50 vandnpd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 7 0.50 * vandnpd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 10 1.50 * vaeskeygenassist $22, (%rax), %xmm2
+# CHECK-NEXT: 1 2 1.00 vandnpd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 7 1.50 * vandnpd (%rax), %xmm1, %xmm2
# CHECK-NEXT: 2 2 1.00 vandnpd %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 2 7 1.00 * vandnpd (%rax), %ymm1, %ymm2
-# CHECK-NEXT: 1 2 0.50 vandnps %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 7 0.50 * vandnps (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 2 7 1.50 * vandnpd (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 1 2 1.00 vandnps %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 7 1.50 * vandnps (%rax), %xmm1, %xmm2
# CHECK-NEXT: 2 2 1.00 vandnps %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 2 7 1.00 * vandnps (%rax), %ymm1, %ymm2
-# CHECK-NEXT: 1 2 0.50 vandpd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 7 0.50 * vandpd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 2 7 1.50 * vandnps (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 1 2 1.00 vandpd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 7 1.50 * vandpd (%rax), %xmm1, %xmm2
# CHECK-NEXT: 2 2 1.00 vandpd %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 2 7 1.00 * vandpd (%rax), %ymm1, %ymm2
-# CHECK-NEXT: 1 2 0.50 vandps %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 7 0.50 * vandps (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 2 7 1.50 * vandpd (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 1 2 1.00 vandps %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 7 1.50 * vandps (%rax), %xmm1, %xmm2
# CHECK-NEXT: 2 2 1.00 vandps %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 2 7 1.00 * vandps (%rax), %ymm1, %ymm2
-# CHECK-NEXT: 1 2 0.50 vblendpd $11, %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 7 0.50 * vblendpd $11, (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 2 2 1.00 vblendpd $11, %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 2 7 1.00 * vblendpd $11, (%rax), %ymm1, %ymm2
-# CHECK-NEXT: 1 2 0.50 vblendps $11, %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 7 0.50 * vblendps $11, (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 2 2 1.00 vblendps $11, %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 2 7 1.00 * vblendps $11, (%rax), %ymm1, %ymm2
-# CHECK-NEXT: 1 2 2.00 vblendvpd %xmm3, %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 7 2.00 * vblendvpd %xmm3, (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 2 2 3.00 vblendvpd %ymm3, %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 2 7 3.00 * vblendvpd %ymm3, (%rax), %ymm1, %ymm2
-# CHECK-NEXT: 1 2 2.00 vblendvps %xmm3, %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 7 2.00 * vblendvps %xmm3, (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 2 2 3.00 vblendvps %ymm3, %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 2 7 3.00 * vblendvps %ymm3, (%rax), %ymm1, %ymm2
-# CHECK-NEXT: 2 7 0.50 * vbroadcastf128 (%rax), %ymm2
+# CHECK-NEXT: 2 7 1.50 * vandps (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 1 2 1.50 vblendpd $11, %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 7 1.50 * vblendpd $11, (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 2 2 1.50 vblendpd $11, %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 2 7 1.50 * vblendpd $11, (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 1 2 1.50 vblendps $11, %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 7 1.50 * vblendps $11, (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 2 2 1.50 vblendps $11, %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 2 7 1.50 * vblendps $11, (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 1 2 1.50 vblendvpd %xmm3, %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 7 1.50 * vblendvpd %xmm3, (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 2 2 2.00 vblendvpd %ymm3, %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 2 7 2.00 * vblendvpd %ymm3, (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 1 2 1.50 vblendvps %xmm3, %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 7 1.50 * vblendvps %xmm3, (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 2 2 2.00 vblendvps %ymm3, %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 2 7 2.00 * vblendvps %ymm3, (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 2 7 1.50 * vbroadcastf128 (%rax), %ymm2
# CHECK-NEXT: 2 6 2.00 * vbroadcastsd (%rax), %ymm2
-# CHECK-NEXT: 1 7 0.50 * vbroadcastss (%rax), %xmm2
+# CHECK-NEXT: 1 7 1.50 * vbroadcastss (%rax), %xmm2
# CHECK-NEXT: 2 6 2.00 * vbroadcastss (%rax), %ymm2
# CHECK-NEXT: 1 2 1.00 vcmpeqpd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 7 1.00 * vcmpeqpd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 2 2 2.00 vcmpeqpd %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 2 7 2.00 * vcmpeqpd (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 1 7 1.50 * vcmpeqpd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 2 2 1.00 vcmpeqpd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 2 7 1.50 * vcmpeqpd (%rax), %ymm1, %ymm2
# CHECK-NEXT: 1 2 1.00 vcmpeqps %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 7 1.00 * vcmpeqps (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 2 2 2.00 vcmpeqps %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 2 7 2.00 * vcmpeqps (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 1 7 1.50 * vcmpeqps (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 2 2 1.00 vcmpeqps %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 2 7 1.50 * vcmpeqps (%rax), %ymm1, %ymm2
# CHECK-NEXT: 1 2 1.00 vcmpeqsd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 7 1.00 * vcmpeqsd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 7 1.50 * vcmpeqsd (%rax), %xmm1, %xmm2
# CHECK-NEXT: 1 2 1.00 vcmpeqss %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 7 1.00 * vcmpeqss (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 7 1.50 * vcmpeqss (%rax), %xmm1, %xmm2
# CHECK-NEXT: 2 1 1.00 vcomisd %xmm0, %xmm1
-# CHECK-NEXT: 2 6 1.00 * vcomisd (%rax), %xmm1
+# CHECK-NEXT: 2 6 1.50 * vcomisd (%rax), %xmm1
# CHECK-NEXT: 2 1 1.00 vcomiss %xmm0, %xmm1
-# CHECK-NEXT: 2 6 1.00 * vcomiss (%rax), %xmm1
+# CHECK-NEXT: 2 6 1.50 * vcomiss (%rax), %xmm1
# CHECK-NEXT: 2 8 1.00 vcvtdq2pd %xmm0, %xmm2
-# CHECK-NEXT: 2 13 1.00 * vcvtdq2pd (%rax), %xmm2
+# CHECK-NEXT: 2 13 1.50 * vcvtdq2pd (%rax), %xmm2
# CHECK-NEXT: 4 8 2.00 vcvtdq2pd %xmm0, %ymm2
# CHECK-NEXT: 5 13 2.00 * vcvtdq2pd (%rax), %ymm2
# CHECK-NEXT: 1 4 1.00 vcvtdq2ps %xmm0, %xmm2
-# CHECK-NEXT: 1 9 1.00 * vcvtdq2ps (%rax), %xmm2
+# CHECK-NEXT: 1 9 1.50 * vcvtdq2ps (%rax), %xmm2
# CHECK-NEXT: 2 4 2.00 vcvtdq2ps %ymm0, %ymm2
# CHECK-NEXT: 2 9 2.00 * vcvtdq2ps (%rax), %ymm2
# CHECK-NEXT: 2 8 1.00 vcvtpd2dq %xmm0, %xmm2
-# CHECK-NEXT: 2 13 1.00 * vcvtpd2dqx (%rax), %xmm2
+# CHECK-NEXT: 2 13 1.50 * vcvtpd2dqx (%rax), %xmm2
# CHECK-NEXT: 4 8 2.00 vcvtpd2dq %ymm0, %xmm2
# CHECK-NEXT: 4 13 2.00 * vcvtpd2dqy (%rax), %xmm2
# CHECK-NEXT: 2 8 1.00 vcvtpd2ps %xmm0, %xmm2
-# CHECK-NEXT: 2 13 1.00 * vcvtpd2psx (%rax), %xmm2
+# CHECK-NEXT: 2 13 1.50 * vcvtpd2psx (%rax), %xmm2
# CHECK-NEXT: 4 8 2.00 vcvtpd2ps %ymm0, %xmm2
# CHECK-NEXT: 4 13 2.00 * vcvtpd2psy (%rax), %xmm2
# CHECK-NEXT: 1 4 1.00 vcvtps2dq %xmm0, %xmm2
-# CHECK-NEXT: 1 9 1.00 * vcvtps2dq (%rax), %xmm2
+# CHECK-NEXT: 1 9 1.50 * vcvtps2dq (%rax), %xmm2
# CHECK-NEXT: 2 4 2.00 vcvtps2dq %ymm0, %ymm2
# CHECK-NEXT: 2 9 2.00 * vcvtps2dq (%rax), %ymm2
# CHECK-NEXT: 2 8 1.00 vcvtps2pd %xmm0, %xmm2
-# CHECK-NEXT: 2 13 1.00 * vcvtps2pd (%rax), %xmm2
+# CHECK-NEXT: 2 13 1.50 * vcvtps2pd (%rax), %xmm2
# CHECK-NEXT: 4 8 2.00 vcvtps2pd %xmm0, %ymm2
# CHECK-NEXT: 5 13 2.00 * vcvtps2pd (%rax), %ymm2
# CHECK-NEXT: 2 13 1.00 vcvtsd2si %xmm0, %ecx
# CHECK-NEXT: 2 13 1.00 vcvtsd2si %xmm0, %rcx
-# CHECK-NEXT: 2 18 1.00 * vcvtsd2si (%rax), %ecx
-# CHECK-NEXT: 2 18 1.00 * vcvtsd2si (%rax), %rcx
-# CHECK-NEXT: 1 4 1.00 vcvtsd2ss %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 9 1.00 * vcvtsd2ss (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 2 18 1.50 * vcvtsd2si (%rax), %ecx
+# CHECK-NEXT: 2 18 1.50 * vcvtsd2si (%rax), %rcx
+# CHECK-NEXT: 1 4 2.00 vcvtsd2ss %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 9 2.00 * vcvtsd2ss (%rax), %xmm1, %xmm2
# CHECK-NEXT: 2 14 1.00 vcvtsi2sd %ecx, %xmm0, %xmm2
# CHECK-NEXT: 2 14 1.00 vcvtsi2sd %rcx, %xmm0, %xmm2
-# CHECK-NEXT: 2 9 1.00 * vcvtsi2sdl (%rax), %xmm0, %xmm2
-# CHECK-NEXT: 2 9 1.00 * vcvtsi2sdq (%rax), %xmm0, %xmm2
+# CHECK-NEXT: 2 9 1.50 * vcvtsi2sdl (%rax), %xmm0, %xmm2
+# CHECK-NEXT: 2 9 1.50 * vcvtsi2sdq (%rax), %xmm0, %xmm2
# CHECK-NEXT: 2 14 1.00 vcvtsi2ss %ecx, %xmm0, %xmm2
# CHECK-NEXT: 2 14 1.00 vcvtsi2ss %rcx, %xmm0, %xmm2
-# CHECK-NEXT: 2 9 1.00 * vcvtsi2ssl (%rax), %xmm0, %xmm2
-# CHECK-NEXT: 2 9 1.00 * vcvtsi2ssq (%rax), %xmm0, %xmm2
-# CHECK-NEXT: 1 4 1.00 vcvtss2sd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 9 1.00 * vcvtss2sd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 2 9 1.50 * vcvtsi2ssl (%rax), %xmm0, %xmm2
+# CHECK-NEXT: 2 9 1.50 * vcvtsi2ssq (%rax), %xmm0, %xmm2
+# CHECK-NEXT: 1 4 2.00 vcvtss2sd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 9 2.00 * vcvtss2sd (%rax), %xmm1, %xmm2
# CHECK-NEXT: 2 13 1.00 vcvtss2si %xmm0, %ecx
# CHECK-NEXT: 2 13 1.00 vcvtss2si %xmm0, %rcx
-# CHECK-NEXT: 2 18 1.00 * vcvtss2si (%rax), %ecx
-# CHECK-NEXT: 2 18 1.00 * vcvtss2si (%rax), %rcx
+# CHECK-NEXT: 2 18 1.50 * vcvtss2si (%rax), %ecx
+# CHECK-NEXT: 2 18 1.50 * vcvtss2si (%rax), %rcx
# CHECK-NEXT: 2 8 1.00 vcvttpd2dq %xmm0, %xmm2
-# CHECK-NEXT: 2 13 1.00 * vcvttpd2dqx (%rax), %xmm2
+# CHECK-NEXT: 2 13 1.50 * vcvttpd2dqx (%rax), %xmm2
# CHECK-NEXT: 4 8 2.00 vcvttpd2dq %ymm0, %xmm2
# CHECK-NEXT: 4 13 2.00 * vcvttpd2dqy (%rax), %xmm2
# CHECK-NEXT: 1 4 1.00 vcvttps2dq %xmm0, %xmm2
-# CHECK-NEXT: 1 9 1.00 * vcvttps2dq (%rax), %xmm2
+# CHECK-NEXT: 1 9 1.50 * vcvttps2dq (%rax), %xmm2
# CHECK-NEXT: 2 4 2.00 vcvttps2dq %ymm0, %ymm2
# CHECK-NEXT: 2 9 2.00 * vcvttps2dq (%rax), %ymm2
# CHECK-NEXT: 2 13 1.00 vcvttsd2si %xmm0, %ecx
# CHECK-NEXT: 2 13 1.00 vcvttsd2si %xmm0, %rcx
-# CHECK-NEXT: 2 18 1.00 * vcvttsd2si (%rax), %ecx
-# CHECK-NEXT: 2 18 1.00 * vcvttsd2si (%rax), %rcx
+# CHECK-NEXT: 2 18 1.50 * vcvttsd2si (%rax), %ecx
+# CHECK-NEXT: 2 18 1.50 * vcvttsd2si (%rax), %rcx
# CHECK-NEXT: 2 13 1.00 vcvttss2si %xmm0, %ecx
# CHECK-NEXT: 2 13 1.00 vcvttss2si %xmm0, %rcx
-# CHECK-NEXT: 2 18 1.00 * vcvttss2si (%rax), %ecx
-# CHECK-NEXT: 2 18 1.00 * vcvttss2si (%rax), %rcx
-# CHECK-NEXT: 1 9 9.50 vdivpd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 14 9.50 * vdivpd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 2 9 19.00 vdivpd %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 2 14 19.00 * vdivpd (%rax), %ymm1, %ymm2
-# CHECK-NEXT: 1 9 9.50 vdivps %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 14 9.50 * vdivps (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 2 9 19.00 vdivps %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 2 14 19.00 * vdivps (%rax), %ymm1, %ymm2
-# CHECK-NEXT: 1 9 9.50 vdivsd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 14 9.50 * vdivsd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 9 9.50 vdivss %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 14 9.50 * vdivss (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 15 15 1.50 vdppd $22, %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 17 20 1.50 * vdppd $22, (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 17 27 1.50 vdpps $22, %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 18 30 1.50 * vdpps $22, (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 25 27 3.00 vdpps $22, %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 29 32 3.00 * vdpps $22, (%rax), %ymm1, %ymm2
-# CHECK-NEXT: 1 2 0.50 vextractf128 $1, %ymm0, %xmm2
-# CHECK-NEXT: 2 7 0.50 * vextractf128 $1, %ymm0, (%rax)
-# CHECK-NEXT: 2 12 1.00 vextractps $1, %xmm0, %ecx
-# CHECK-NEXT: 2 13 1.00 * vextractps $1, %xmm0, (%rax)
-# CHECK-NEXT: 3 11 1.00 vhaddpd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 4 16 1.00 * vhaddpd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 8 11 2.00 vhaddpd %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 10 16 2.00 * vhaddpd (%rax), %ymm1, %ymm2
-# CHECK-NEXT: 3 11 1.00 vhaddps %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 4 16 1.00 * vhaddps (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 8 11 2.00 vhaddps %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 10 16 2.00 * vhaddps (%rax), %ymm1, %ymm2
-# CHECK-NEXT: 3 11 1.00 vhsubpd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 4 16 1.00 * vhsubpd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 8 11 2.00 vhsubpd %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 10 16 2.00 * vhsubpd (%rax), %ymm1, %ymm2
-# CHECK-NEXT: 3 11 1.00 vhsubps %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 4 16 1.00 * vhsubps (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 8 11 2.00 vhsubps %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 10 16 2.00 * vhsubps (%rax), %ymm1, %ymm2
-# CHECK-NEXT: 2 2 0.50 vinsertf128 $1, %xmm0, %ymm1, %ymm2
-# CHECK-NEXT: 2 7 0.50 * vinsertf128 $1, (%rax), %ymm1, %ymm2
-# CHECK-NEXT: 1 2 0.50 vinsertps $1, %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 7 0.50 * vinsertps $1, (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 5 0.50 * vlddqu (%rax), %xmm2
-# CHECK-NEXT: 2 5 0.50 * vlddqu (%rax), %ymm2
+# CHECK-NEXT: 2 18 1.50 * vcvttss2si (%rax), %ecx
+# CHECK-NEXT: 2 18 1.50 * vcvttss2si (%rax), %rcx
+# CHECK-NEXT: 1 9 4.50 vdivpd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 14 4.50 * vdivpd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 2 9 9.00 vdivpd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 2 14 9.00 * vdivpd (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 1 9 4.50 vdivps %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 14 4.50 * vdivps (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 2 9 9.00 vdivps %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 2 14 9.00 * vdivps (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 1 9 4.50 vdivsd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 14 4.50 * vdivsd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 9 4.50 vdivss %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 14 4.50 * vdivss (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 15 15 5.00 vdppd $22, %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 17 20 5.00 * vdppd $22, (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 17 27 7.00 vdpps $22, %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 18 30 7.00 * vdpps $22, (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 25 27 12.50 vdpps $22, %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 29 32 12.50 * vdpps $22, (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 1 2 1.00 vextractf128 $1, %ymm0, %xmm2
+# CHECK-NEXT: 2 7 2.00 * vextractf128 $1, %ymm0, (%rax)
+# CHECK-NEXT: 2 12 1.50 vextractps $1, %xmm0, %ecx
+# CHECK-NEXT: 2 13 2.00 * vextractps $1, %xmm0, (%rax)
+# CHECK-NEXT: 3 11 2.50 vhaddpd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 4 16 2.50 * vhaddpd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 8 11 4.00 vhaddpd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 10 16 4.00 * vhaddpd (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 3 11 2.50 vhaddps %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 4 16 2.50 * vhaddps (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 8 11 4.00 vhaddps %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 10 16 4.00 * vhaddps (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 3 11 2.50 vhsubpd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 4 16 2.50 * vhsubpd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 8 11 4.00 vhsubpd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 10 16 4.00 * vhsubpd (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 3 11 2.50 vhsubps %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 4 16 2.50 * vhsubps (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 8 11 4.00 vhsubps %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 10 16 4.00 * vhsubps (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 2 2 1.50 vinsertf128 $1, %xmm0, %ymm1, %ymm2
+# CHECK-NEXT: 2 7 1.50 * vinsertf128 $1, (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 1 2 1.00 vinsertps $1, %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 7 1.50 * vinsertps $1, (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 5 1.50 * vlddqu (%rax), %xmm2
+# CHECK-NEXT: 2 5 1.50 * vlddqu (%rax), %ymm2
# CHECK-NEXT: 1 5 0.50 * * U vldmxcsr (%rax)
-# CHECK-NEXT: 1 1 1.00 * * U vmaskmovdqu %xmm0, %xmm1
-# CHECK-NEXT: 1 6 1.00 * vmaskmovpd (%rax), %xmm0, %xmm2
+# CHECK-NEXT: 1 1 1.50 * * U vmaskmovdqu %xmm0, %xmm1
+# CHECK-NEXT: 1 6 2.00 * vmaskmovpd (%rax), %xmm0, %xmm2
# CHECK-NEXT: 2 6 2.00 * vmaskmovpd (%rax), %ymm0, %ymm2
-# CHECK-NEXT: 18 6 2.00 * * vmaskmovpd %xmm0, %xmm1, (%rax)
-# CHECK-NEXT: 34 6 2.00 * * vmaskmovpd %ymm0, %ymm1, (%rax)
-# CHECK-NEXT: 1 6 1.00 * vmaskmovps (%rax), %xmm0, %xmm2
+# CHECK-NEXT: 18 6 94.00 * * vmaskmovpd %xmm0, %xmm1, (%rax)
+# CHECK-NEXT: 34 6 188.00 * * vmaskmovpd %ymm0, %ymm1, (%rax)
+# CHECK-NEXT: 1 6 2.00 * vmaskmovps (%rax), %xmm0, %xmm2
# CHECK-NEXT: 2 6 2.00 * vmaskmovps (%rax), %ymm0, %ymm2
-# CHECK-NEXT: 18 6 2.00 * * vmaskmovps %xmm0, %xmm1, (%rax)
-# CHECK-NEXT: 34 6 2.00 * * vmaskmovps %ymm0, %ymm1, (%rax)
+# CHECK-NEXT: 18 6 94.00 * * vmaskmovps %xmm0, %xmm1, (%rax)
+# CHECK-NEXT: 34 6 188.00 * * vmaskmovps %ymm0, %ymm1, (%rax)
# CHECK-NEXT: 1 2 1.00 vmaxpd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 7 1.00 * vmaxpd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 2 2 2.00 vmaxpd %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 2 7 2.00 * vmaxpd (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 1 7 1.50 * vmaxpd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 2 2 1.00 vmaxpd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 2 7 1.50 * vmaxpd (%rax), %ymm1, %ymm2
# CHECK-NEXT: 1 2 1.00 vmaxps %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 7 1.00 * vmaxps (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 2 2 2.00 vmaxps %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 2 7 2.00 * vmaxps (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 1 7 1.50 * vmaxps (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 2 2 1.00 vmaxps %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 2 7 1.50 * vmaxps (%rax), %ymm1, %ymm2
# CHECK-NEXT: 1 2 1.00 vmaxsd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 7 1.00 * vmaxsd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 7 1.50 * vmaxsd (%rax), %xmm1, %xmm2
# CHECK-NEXT: 1 2 1.00 vmaxss %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 7 1.00 * vmaxss (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 7 1.50 * vmaxss (%rax), %xmm1, %xmm2
# CHECK-NEXT: 1 2 1.00 vminpd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 7 1.00 * vminpd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 2 2 2.00 vminpd %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 2 7 2.00 * vminpd (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 1 7 1.50 * vminpd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 2 2 1.00 vminpd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 2 7 1.50 * vminpd (%rax), %ymm1, %ymm2
# CHECK-NEXT: 1 2 1.00 vminps %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 7 1.00 * vminps (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 2 2 2.00 vminps %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 2 7 2.00 * vminps (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 1 7 1.50 * vminps (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 2 2 1.00 vminps %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 2 7 1.50 * vminps (%rax), %ymm1, %ymm2
# CHECK-NEXT: 1 2 1.00 vminsd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 7 1.00 * vminsd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 7 1.50 * vminsd (%rax), %xmm1, %xmm2
# CHECK-NEXT: 1 2 1.00 vminss %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 7 1.00 * vminss (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 1 0.50 vmovapd %xmm0, %xmm2
-# CHECK-NEXT: 1 1 1.00 * vmovapd %xmm0, (%rax)
-# CHECK-NEXT: 1 5 0.50 * vmovapd (%rax), %xmm2
+# CHECK-NEXT: 1 7 1.50 * vminss (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 1 1.00 vmovapd %xmm0, %xmm2
+# CHECK-NEXT: 1 1 1.50 * vmovapd %xmm0, (%rax)
+# CHECK-NEXT: 1 5 1.50 * vmovapd (%rax), %xmm2
# CHECK-NEXT: 2 2 1.00 vmovapd %ymm0, %ymm2
-# CHECK-NEXT: 4 1 1.00 * vmovapd %ymm0, (%rax)
-# CHECK-NEXT: 2 5 0.50 * vmovapd (%rax), %ymm2
-# CHECK-NEXT: 1 1 0.50 vmovaps %xmm0, %xmm2
-# CHECK-NEXT: 1 1 1.00 * vmovaps %xmm0, (%rax)
-# CHECK-NEXT: 1 5 0.50 * vmovaps (%rax), %xmm2
+# CHECK-NEXT: 4 1 18.00 * vmovapd %ymm0, (%rax)
+# CHECK-NEXT: 2 5 1.50 * vmovapd (%rax), %ymm2
+# CHECK-NEXT: 1 1 1.00 vmovaps %xmm0, %xmm2
+# CHECK-NEXT: 1 1 1.50 * vmovaps %xmm0, (%rax)
+# CHECK-NEXT: 1 5 1.50 * vmovaps (%rax), %xmm2
# CHECK-NEXT: 2 2 1.00 vmovaps %ymm0, %ymm2
-# CHECK-NEXT: 4 1 1.00 * vmovaps %ymm0, (%rax)
-# CHECK-NEXT: 2 5 0.50 * vmovaps (%rax), %ymm2
-# CHECK-NEXT: 2 11 0.50 vmovd %eax, %xmm2
-# CHECK-NEXT: 1 5 0.50 * vmovd (%rax), %xmm2
+# CHECK-NEXT: 4 1 18.00 * vmovaps %ymm0, (%rax)
+# CHECK-NEXT: 2 5 1.50 * vmovaps (%rax), %ymm2
+# CHECK-NEXT: 2 11 1.00 vmovd %eax, %xmm2
+# CHECK-NEXT: 1 5 1.50 * vmovd (%rax), %xmm2
# CHECK-NEXT: 1 11 1.00 vmovd %xmm0, %ecx
-# CHECK-NEXT: 1 2 1.00 * vmovd %xmm0, (%rax)
-# CHECK-NEXT: 1 2 0.50 vmovddup %xmm0, %xmm2
-# CHECK-NEXT: 1 7 0.50 * vmovddup (%rax), %xmm2
-# CHECK-NEXT: 2 2 1.00 vmovddup %ymm0, %ymm2
-# CHECK-NEXT: 2 7 1.00 * vmovddup (%rax), %ymm2
-# CHECK-NEXT: 1 1 0.50 vmovdqa %xmm0, %xmm2
-# CHECK-NEXT: 1 1 1.00 * vmovdqa %xmm0, (%rax)
-# CHECK-NEXT: 1 5 0.50 * vmovdqa (%rax), %xmm2
+# CHECK-NEXT: 1 2 1.50 * vmovd %xmm0, (%rax)
+# CHECK-NEXT: 1 2 1.00 vmovddup %xmm0, %xmm2
+# CHECK-NEXT: 1 7 1.50 * vmovddup (%rax), %xmm2
+# CHECK-NEXT: 2 2 2.00 vmovddup %ymm0, %ymm2
+# CHECK-NEXT: 2 7 2.00 * vmovddup (%rax), %ymm2
+# CHECK-NEXT: 1 1 1.00 vmovdqa %xmm0, %xmm2
+# CHECK-NEXT: 1 1 1.50 * vmovdqa %xmm0, (%rax)
+# CHECK-NEXT: 1 5 1.50 * vmovdqa (%rax), %xmm2
# CHECK-NEXT: 2 2 1.00 vmovdqa %ymm0, %ymm2
-# CHECK-NEXT: 4 1 1.00 * vmovdqa %ymm0, (%rax)
-# CHECK-NEXT: 2 5 0.50 * vmovdqa (%rax), %ymm2
-# CHECK-NEXT: 1 1 0.50 vmovdqu %xmm0, %xmm2
-# CHECK-NEXT: 1 1 1.00 * vmovdqu %xmm0, (%rax)
-# CHECK-NEXT: 1 5 0.50 * vmovdqu (%rax), %xmm2
+# CHECK-NEXT: 4 1 18.00 * vmovdqa %ymm0, (%rax)
+# CHECK-NEXT: 2 5 1.50 * vmovdqa (%rax), %ymm2
+# CHECK-NEXT: 1 1 1.00 vmovdqu %xmm0, %xmm2
+# CHECK-NEXT: 1 1 1.50 * vmovdqu %xmm0, (%rax)
+# CHECK-NEXT: 1 5 1.50 * vmovdqu (%rax), %xmm2
# CHECK-NEXT: 2 2 1.00 vmovdqu %ymm0, %ymm2
# CHECK-NEXT: 8 1 1.00 * vmovdqu %ymm0, (%rax)
-# CHECK-NEXT: 2 5 0.50 * vmovdqu (%rax), %ymm2
-# CHECK-NEXT: 1 2 0.50 vmovhlps %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 2 0.50 vmovlhps %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 2 2 1.00 * vmovhpd %xmm0, (%rax)
-# CHECK-NEXT: 1 7 0.50 * vmovhpd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 2 2 1.00 * vmovhps %xmm0, (%rax)
-# CHECK-NEXT: 1 7 0.50 * vmovhps (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 2 1.00 * vmovlpd %xmm0, (%rax)
-# CHECK-NEXT: 1 7 0.50 * vmovlpd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 2 1.00 * vmovlps %xmm0, (%rax)
-# CHECK-NEXT: 1 7 0.50 * vmovlps (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 2 5 1.50 * vmovdqu (%rax), %ymm2
+# CHECK-NEXT: 1 2 1.00 vmovhlps %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 2 1.00 vmovlhps %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 2 2 1.50 * vmovhpd %xmm0, (%rax)
+# CHECK-NEXT: 1 7 1.50 * vmovhpd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 2 2 1.50 * vmovhps %xmm0, (%rax)
+# CHECK-NEXT: 1 7 1.50 * vmovhps (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 2 1.50 * vmovlpd %xmm0, (%rax)
+# CHECK-NEXT: 1 7 1.50 * vmovlpd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 2 1.50 * vmovlps %xmm0, (%rax)
+# CHECK-NEXT: 1 7 1.50 * vmovlps (%rax), %xmm1, %xmm2
# CHECK-NEXT: 2 12 1.00 vmovmskpd %xmm0, %ecx
# CHECK-NEXT: 2 12 1.00 vmovmskpd %ymm0, %ecx
# CHECK-NEXT: 2 12 1.00 vmovmskps %xmm0, %ecx
# CHECK-NEXT: 2 12 1.00 vmovmskps %ymm0, %ecx
# CHECK-NEXT: 1 2 1.00 * vmovntdq %xmm0, (%rax)
# CHECK-NEXT: 4 2 2.00 * vmovntdq %ymm0, (%rax)
-# CHECK-NEXT: 1 5 0.50 * vmovntdqa (%rax), %xmm2
-# CHECK-NEXT: 1 5 0.50 * vmovntdqa (%rax), %ymm2
+# CHECK-NEXT: 1 5 2.00 * vmovntdqa (%rax), %xmm2
+# CHECK-NEXT: 1 5 2.00 * vmovntdqa (%rax), %ymm2
# CHECK-NEXT: 1 3 1.00 * vmovntpd %xmm0, (%rax)
# CHECK-NEXT: 4 3 2.00 * vmovntpd %ymm0, (%rax)
# CHECK-NEXT: 1 3 1.00 * vmovntps %xmm0, (%rax)
# CHECK-NEXT: 4 3 2.00 * vmovntps %ymm0, (%rax)
-# CHECK-NEXT: 1 2 0.50 vmovq %xmm0, %xmm2
-# CHECK-NEXT: 2 11 0.50 vmovq %rax, %xmm2
-# CHECK-NEXT: 1 5 0.50 * vmovq (%rax), %xmm2
+# CHECK-NEXT: 1 2 1.00 vmovq %xmm0, %xmm2
+# CHECK-NEXT: 2 11 1.00 vmovq %rax, %xmm2
+# CHECK-NEXT: 1 5 1.50 * vmovq (%rax), %xmm2
# CHECK-NEXT: 1 11 1.00 vmovq %xmm0, %rcx
-# CHECK-NEXT: 1 2 1.00 * vmovq %xmm0, (%rax)
-# CHECK-NEXT: 1 2 0.50 vmovsd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 2 1.00 * vmovsd %xmm0, (%rax)
-# CHECK-NEXT: 1 5 0.50 * vmovsd (%rax), %xmm2
-# CHECK-NEXT: 1 2 0.50 vmovshdup %xmm0, %xmm2
-# CHECK-NEXT: 1 7 0.50 * vmovshdup (%rax), %xmm2
-# CHECK-NEXT: 2 2 1.00 vmovshdup %ymm0, %ymm2
-# CHECK-NEXT: 2 7 1.00 * vmovshdup (%rax), %ymm2
-# CHECK-NEXT: 1 2 0.50 vmovsldup %xmm0, %xmm2
-# CHECK-NEXT: 1 7 0.50 * vmovsldup (%rax), %xmm2
-# CHECK-NEXT: 2 2 1.00 vmovsldup %ymm0, %ymm2
-# CHECK-NEXT: 2 7 1.00 * vmovsldup (%rax), %ymm2
-# CHECK-NEXT: 1 2 0.50 vmovss %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 2 1.00 * vmovss %xmm0, (%rax)
-# CHECK-NEXT: 1 5 0.50 * vmovss (%rax), %xmm2
-# CHECK-NEXT: 1 1 0.50 vmovupd %xmm0, %xmm2
-# CHECK-NEXT: 1 1 1.00 * vmovupd %xmm0, (%rax)
-# CHECK-NEXT: 1 5 0.50 * vmovupd (%rax), %xmm2
+# CHECK-NEXT: 1 2 1.50 * vmovq %xmm0, (%rax)
+# CHECK-NEXT: 1 2 1.00 vmovsd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 2 1.50 * vmovsd %xmm0, (%rax)
+# CHECK-NEXT: 1 5 1.50 * vmovsd (%rax), %xmm2
+# CHECK-NEXT: 1 2 1.00 vmovshdup %xmm0, %xmm2
+# CHECK-NEXT: 1 7 1.50 * vmovshdup (%rax), %xmm2
+# CHECK-NEXT: 2 2 2.00 vmovshdup %ymm0, %ymm2
+# CHECK-NEXT: 2 7 2.00 * vmovshdup (%rax), %ymm2
+# CHECK-NEXT: 1 2 1.00 vmovsldup %xmm0, %xmm2
+# CHECK-NEXT: 1 7 1.50 * vmovsldup (%rax), %xmm2
+# CHECK-NEXT: 2 2 2.00 vmovsldup %ymm0, %ymm2
+# CHECK-NEXT: 2 7 2.00 * vmovsldup (%rax), %ymm2
+# CHECK-NEXT: 1 2 1.00 vmovss %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 2 1.50 * vmovss %xmm0, (%rax)
+# CHECK-NEXT: 1 5 1.50 * vmovss (%rax), %xmm2
+# CHECK-NEXT: 1 1 1.00 vmovupd %xmm0, %xmm2
+# CHECK-NEXT: 1 1 1.50 * vmovupd %xmm0, (%rax)
+# CHECK-NEXT: 1 5 1.50 * vmovupd (%rax), %xmm2
# CHECK-NEXT: 2 2 1.00 vmovupd %ymm0, %ymm2
# CHECK-NEXT: 8 1 1.00 * vmovupd %ymm0, (%rax)
-# CHECK-NEXT: 2 5 0.50 * vmovupd (%rax), %ymm2
-# CHECK-NEXT: 1 1 0.50 vmovups %xmm0, %xmm2
-# CHECK-NEXT: 1 1 1.00 * vmovups %xmm0, (%rax)
-# CHECK-NEXT: 1 5 0.50 * vmovups (%rax), %xmm2
+# CHECK-NEXT: 2 5 1.50 * vmovupd (%rax), %ymm2
+# CHECK-NEXT: 1 1 1.00 vmovups %xmm0, %xmm2
+# CHECK-NEXT: 1 1 1.50 * vmovups %xmm0, (%rax)
+# CHECK-NEXT: 1 5 1.50 * vmovups (%rax), %xmm2
# CHECK-NEXT: 2 2 1.00 vmovups %ymm0, %ymm2
# CHECK-NEXT: 8 1 1.00 * vmovups %ymm0, (%rax)
-# CHECK-NEXT: 2 5 0.50 * vmovups (%rax), %ymm2
-# CHECK-NEXT: 9 8 2.00 vmpsadbw $1, %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 9 14 2.00 * vmpsadbw $1, (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 2 5 1.50 * vmovups (%rax), %ymm2
+# CHECK-NEXT: 10 8 4.00 vmpsadbw $1, %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 8 14 4.00 * vmpsadbw $1, (%rax), %xmm1, %xmm2
# CHECK-NEXT: 1 5 1.00 vmulpd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 10 1.00 * vmulpd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 2 5 2.00 vmulpd %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 2 10 2.00 * vmulpd (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 1 10 1.50 * vmulpd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 2 5 1.00 vmulpd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 2 10 1.50 * vmulpd (%rax), %ymm1, %ymm2
# CHECK-NEXT: 1 5 1.00 vmulps %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 10 1.00 * vmulps (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 2 5 2.00 vmulps %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 2 10 2.00 * vmulps (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 1 10 1.50 * vmulps (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 2 5 1.00 vmulps %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 2 10 1.50 * vmulps (%rax), %ymm1, %ymm2
# CHECK-NEXT: 1 5 1.00 vmulsd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 10 1.00 * vmulsd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 10 1.50 * vmulsd (%rax), %xmm1, %xmm2
# CHECK-NEXT: 1 5 1.00 vmulss %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 10 1.00 * vmulss (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 2 0.50 vorpd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 7 0.50 * vorpd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 10 1.50 * vmulss (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 2 1.00 vorpd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 7 1.50 * vorpd (%rax), %xmm1, %xmm2
# CHECK-NEXT: 2 2 1.00 vorpd %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 2 7 1.00 * vorpd (%rax), %ymm1, %ymm2
-# CHECK-NEXT: 1 2 0.50 vorps %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 7 0.50 * vorps (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 2 7 1.50 * vorpd (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 1 2 1.00 vorps %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 7 1.50 * vorps (%rax), %xmm1, %xmm2
# CHECK-NEXT: 2 2 1.00 vorps %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 2 7 1.00 * vorps (%rax), %ymm1, %ymm2
-# CHECK-NEXT: 1 2 0.50 vpabsb %xmm0, %xmm2
-# CHECK-NEXT: 1 7 0.50 * vpabsb (%rax), %xmm2
-# CHECK-NEXT: 1 2 0.50 vpabsd %xmm0, %xmm2
-# CHECK-NEXT: 1 7 0.50 * vpabsd (%rax), %xmm2
-# CHECK-NEXT: 1 2 0.50 vpabsw %xmm0, %xmm2
-# CHECK-NEXT: 1 7 0.50 * vpabsw (%rax), %xmm2
-# CHECK-NEXT: 1 2 0.50 vpackssdw %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 7 0.50 * vpackssdw (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 2 0.50 vpacksswb %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 7 0.50 * vpacksswb (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 2 0.50 vpackusdw %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 7 0.50 * vpackusdw (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 2 0.50 vpackuswb %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 7 0.50 * vpackuswb (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 2 0.50 vpaddb %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 7 0.50 * vpaddb (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 2 0.50 vpaddd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 7 0.50 * vpaddd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 2 0.50 vpaddq %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 7 0.50 * vpaddq (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 2 0.50 vpaddsb %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 7 0.50 * vpaddsb (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 2 0.50 vpaddsw %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 7 0.50 * vpaddsw (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 2 0.50 vpaddusb %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 7 0.50 * vpaddusb (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 2 0.50 vpaddusw %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 7 0.50 * vpaddusw (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 2 0.50 vpaddw %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 7 0.50 * vpaddw (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 2 0.50 vpalignr $1, %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 7 0.50 * vpalignr $1, (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 2 0.50 vpand %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 7 0.50 * vpand (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 2 0.50 vpandn %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 7 0.50 * vpandn (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 2 0.50 vpavgb %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 7 0.50 * vpavgb (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 2 0.50 vpavgw %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 7 0.50 * vpavgw (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 2 2.00 vpblendvb %xmm3, %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 7 2.00 * vpblendvb %xmm3, (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 2 7 1.50 * vorps (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 1 2 1.00 vpabsb %xmm0, %xmm2
+# CHECK-NEXT: 1 7 1.50 * vpabsb (%rax), %xmm2
+# CHECK-NEXT: 1 2 1.00 vpabsd %xmm0, %xmm2
+# CHECK-NEXT: 1 7 1.50 * vpabsd (%rax), %xmm2
+# CHECK-NEXT: 1 2 1.00 vpabsw %xmm0, %xmm2
+# CHECK-NEXT: 1 7 1.50 * vpabsw (%rax), %xmm2
+# CHECK-NEXT: 1 2 1.00 vpackssdw %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 7 1.50 * vpackssdw (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 2 1.00 vpacksswb %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 7 1.50 * vpacksswb (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 2 1.00 vpackusdw %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 7 1.50 * vpackusdw (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 2 1.00 vpackuswb %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 7 1.50 * vpackuswb (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 2 1.00 vpaddb %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 7 1.50 * vpaddb (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 2 1.00 vpaddd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 7 1.50 * vpaddd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 2 1.00 vpaddq %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 7 1.50 * vpaddq (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 2 1.00 vpaddsb %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 7 1.50 * vpaddsb (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 2 1.00 vpaddsw %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 7 1.50 * vpaddsw (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 2 1.00 vpaddusb %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 7 1.50 * vpaddusb (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 2 1.00 vpaddusw %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 7 1.50 * vpaddusw (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 2 1.00 vpaddw %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 7 1.50 * vpaddw (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 2 1.00 vpalignr $1, %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 7 1.50 * vpalignr $1, (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 2 1.00 vpand %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 7 1.50 * vpand (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 2 1.00 vpandn %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 7 1.50 * vpandn (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 2 1.00 vpavgb %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 7 1.50 * vpavgb (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 2 1.00 vpavgw %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 7 1.50 * vpavgw (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 2 1.00 vpblendvb %xmm3, %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 7 1.50 * vpblendvb %xmm3, (%rax), %xmm1, %xmm2
# CHECK-NEXT: 1 2 0.50 vpblendw $11, %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 7 0.50 * vpblendw $11, (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 6 12 1.00 vpclmulqdq $11, %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 6 17 1.00 * vpclmulqdq $11, (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 2 0.50 vpcmpeqb %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 7 0.50 * vpcmpeqb (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 2 0.50 vpcmpeqd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 7 0.50 * vpcmpeqd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 2 0.50 vpcmpeqq %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 7 0.50 * vpcmpeqq (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 2 0.50 vpcmpeqw %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 7 0.50 * vpcmpeqw (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 27 14 4.00 vpcmpestri $1, %xmm0, %xmm2
-# CHECK-NEXT: 28 19 4.50 * vpcmpestri $1, (%rax), %xmm2
-# CHECK-NEXT: 27 10 4.00 vpcmpestrm $1, %xmm0, %xmm2
-# CHECK-NEXT: 28 15 4.50 * vpcmpestrm $1, (%rax), %xmm2
-# CHECK-NEXT: 1 2 0.50 vpcmpgtb %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 7 0.50 * vpcmpgtb (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 2 0.50 vpcmpgtd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 7 0.50 * vpcmpgtd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 2 0.50 vpcmpgtq %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 7 0.50 * vpcmpgtq (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 2 0.50 vpcmpgtw %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 7 0.50 * vpcmpgtw (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 7 11 1.00 vpcmpistri $1, %xmm0, %xmm2
-# CHECK-NEXT: 8 16 1.00 * vpcmpistri $1, (%rax), %xmm2
-# CHECK-NEXT: 7 7 1.00 vpcmpistrm $1, %xmm0, %xmm2
-# CHECK-NEXT: 9 12 1.00 * vpcmpistrm $1, (%rax), %xmm2
-# CHECK-NEXT: 8 4 0.50 vperm2f128 $1, %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 10 8 0.50 * vperm2f128 $1, (%rax), %ymm1, %ymm2
-# CHECK-NEXT: 1 2 0.50 vpermilpd $1, %xmm0, %xmm2
-# CHECK-NEXT: 1 7 0.50 * vpermilpd $1, (%rax), %xmm2
-# CHECK-NEXT: 1 3 2.00 vpermilpd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 8 2.00 * vpermilpd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 2 2 1.00 vpermilpd $1, %ymm0, %ymm2
-# CHECK-NEXT: 2 7 1.00 * vpermilpd $1, (%rax), %ymm2
-# CHECK-NEXT: 2 3 3.00 vpermilpd %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 2 8 3.00 * vpermilpd (%rax), %ymm1, %ymm2
-# CHECK-NEXT: 1 2 0.50 vpermilps $1, %xmm0, %xmm2
-# CHECK-NEXT: 1 7 0.50 * vpermilps $1, (%rax), %xmm2
-# CHECK-NEXT: 1 3 2.00 vpermilps %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 8 2.00 * vpermilps (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 2 2 1.00 vpermilps $1, %ymm0, %ymm2
-# CHECK-NEXT: 2 7 1.00 * vpermilps $1, (%rax), %ymm2
-# CHECK-NEXT: 2 3 3.00 vpermilps %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 2 8 3.00 * vpermilps (%rax), %ymm1, %ymm2
-# CHECK-NEXT: 2 12 1.00 vpextrb $1, %xmm0, %ecx
-# CHECK-NEXT: 2 13 1.00 * vpextrb $1, %xmm0, (%rax)
-# CHECK-NEXT: 2 12 1.00 vpextrd $1, %xmm0, %ecx
-# CHECK-NEXT: 2 13 1.00 * vpextrd $1, %xmm0, (%rax)
-# CHECK-NEXT: 2 12 1.00 vpextrq $1, %xmm0, %rcx
-# CHECK-NEXT: 2 13 1.00 * vpextrq $1, %xmm0, (%rax)
-# CHECK-NEXT: 2 12 1.00 vpextrw $1, %xmm0, %ecx
-# CHECK-NEXT: 2 13 1.00 * vpextrw $1, %xmm0, (%rax)
-# CHECK-NEXT: 3 5 0.50 vphaddd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 4 10 0.50 * vphaddd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 3 5 0.50 vphaddsw %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 4 10 0.50 * vphaddsw (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 3 5 0.50 vphaddw %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 4 10 0.50 * vphaddw (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 7 1.50 * vpblendw $11, (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 6 12 7.00 vpclmulqdq $11, %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 6 17 7.00 * vpclmulqdq $11, (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 2 1.00 vpcmpeqb %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 7 1.50 * vpcmpeqb (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 2 1.00 vpcmpeqd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 7 1.50 * vpcmpeqd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 2 1.00 vpcmpeqq %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 7 1.50 * vpcmpeqq (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 2 1.00 vpcmpeqw %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 7 1.50 * vpcmpeqw (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 27 14 10.00 vpcmpestri $1, %xmm0, %xmm2
+# CHECK-NEXT: 28 19 11.50 * vpcmpestri $1, (%rax), %xmm2
+# CHECK-NEXT: 27 10 10.00 vpcmpestrm $1, %xmm0, %xmm2
+# CHECK-NEXT: 28 15 11.50 * vpcmpestrm $1, (%rax), %xmm2
+# CHECK-NEXT: 1 2 1.00 vpcmpgtb %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 7 1.50 * vpcmpgtb (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 2 1.00 vpcmpgtd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 7 1.50 * vpcmpgtd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 2 1.00 vpcmpgtq %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 7 1.50 * vpcmpgtq (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 2 1.00 vpcmpgtw %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 7 1.50 * vpcmpgtw (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 7 11 3.00 vpcmpistri $1, %xmm0, %xmm2
+# CHECK-NEXT: 8 16 3.00 * vpcmpistri $1, (%rax), %xmm2
+# CHECK-NEXT: 7 7 4.00 vpcmpistrm $1, %xmm0, %xmm2
+# CHECK-NEXT: 9 12 4.00 * vpcmpistrm $1, (%rax), %xmm2
+# CHECK-NEXT: 8 4 3.00 vperm2f128 $1, %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 10 8 4.00 * vperm2f128 $1, (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 1 2 1.00 vpermilpd $1, %xmm0, %xmm2
+# CHECK-NEXT: 1 7 1.50 * vpermilpd $1, (%rax), %xmm2
+# CHECK-NEXT: 1 3 1.00 vpermilpd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 8 1.50 * vpermilpd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 2 2 2.00 vpermilpd $1, %ymm0, %ymm2
+# CHECK-NEXT: 2 7 2.00 * vpermilpd $1, (%rax), %ymm2
+# CHECK-NEXT: 2 3 2.00 vpermilpd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 2 8 2.00 * vpermilpd (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 1 2 1.00 vpermilps $1, %xmm0, %xmm2
+# CHECK-NEXT: 1 7 1.50 * vpermilps $1, (%rax), %xmm2
+# CHECK-NEXT: 1 3 1.00 vpermilps %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 8 1.50 * vpermilps (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 2 2 2.00 vpermilps $1, %ymm0, %ymm2
+# CHECK-NEXT: 2 7 2.00 * vpermilps $1, (%rax), %ymm2
+# CHECK-NEXT: 2 3 2.00 vpermilps %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 2 8 2.00 * vpermilps (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 2 12 1.50 vpextrb $1, %xmm0, %ecx
+# CHECK-NEXT: 2 13 2.00 * vpextrb $1, %xmm0, (%rax)
+# CHECK-NEXT: 2 12 1.50 vpextrd $1, %xmm0, %ecx
+# CHECK-NEXT: 2 13 2.00 * vpextrd $1, %xmm0, (%rax)
+# CHECK-NEXT: 2 12 1.50 vpextrq $1, %xmm0, %rcx
+# CHECK-NEXT: 2 13 2.00 * vpextrq $1, %xmm0, (%rax)
+# CHECK-NEXT: 2 12 1.50 vpextrw $1, %xmm0, %ecx
+# CHECK-NEXT: 2 13 2.00 * vpextrw $1, %xmm0, (%rax)
+# CHECK-NEXT: 3 5 2.00 vphaddd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 4 10 2.00 * vphaddd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 3 5 2.00 vphaddsw %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 4 10 2.00 * vphaddsw (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 3 5 2.00 vphaddw %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 4 10 2.00 * vphaddw (%rax), %xmm1, %xmm2
# CHECK-NEXT: 2 4 1.00 vphminposuw %xmm0, %xmm2
-# CHECK-NEXT: 2 9 1.00 * vphminposuw (%rax), %xmm2
-# CHECK-NEXT: 3 5 0.50 vphsubd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 4 10 0.50 * vphsubd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 3 5 0.50 vphsubsw %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 4 10 0.50 * vphsubsw (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 3 5 0.50 vphsubw %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 4 10 0.50 * vphsubw (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 2 12 0.50 vpinsrb $1, %eax, %xmm1, %xmm2
-# CHECK-NEXT: 2 6 0.50 * vpinsrb $1, (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 2 12 0.50 vpinsrd $1, %eax, %xmm1, %xmm2
-# CHECK-NEXT: 2 6 0.50 * vpinsrd $1, (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 2 12 0.50 vpinsrq $1, %rax, %xmm1, %xmm2
-# CHECK-NEXT: 2 6 0.50 * vpinsrq $1, (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 2 12 0.50 vpinsrw $1, %eax, %xmm1, %xmm2
-# CHECK-NEXT: 2 6 0.50 * vpinsrw $1, (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 2 9 1.50 * vphminposuw (%rax), %xmm2
+# CHECK-NEXT: 3 5 2.00 vphsubd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 4 10 2.00 * vphsubd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 3 5 2.00 vphsubsw %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 4 10 2.00 * vphsubsw (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 3 5 2.00 vphsubw %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 4 10 2.00 * vphsubw (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 2 12 1.50 vpinsrb $1, %eax, %xmm1, %xmm2
+# CHECK-NEXT: 2 6 2.00 * vpinsrb $1, (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 2 12 1.50 vpinsrd $1, %eax, %xmm1, %xmm2
+# CHECK-NEXT: 2 6 2.00 * vpinsrd $1, (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 2 12 1.50 vpinsrq $1, %rax, %xmm1, %xmm2
+# CHECK-NEXT: 2 6 2.00 * vpinsrq $1, (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 2 12 1.50 vpinsrw $1, %eax, %xmm1, %xmm2
+# CHECK-NEXT: 2 6 2.00 * vpinsrw $1, (%rax), %xmm1, %xmm2
# CHECK-NEXT: 1 4 1.00 vpmaddubsw %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 9 1.00 * vpmaddubsw (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 9 1.50 * vpmaddubsw (%rax), %xmm1, %xmm2
# CHECK-NEXT: 1 4 1.00 vpmaddwd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 9 1.00 * vpmaddwd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 2 0.50 vpmaxsb %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 7 0.50 * vpmaxsb (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 2 0.50 vpmaxsd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 7 0.50 * vpmaxsd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 2 0.50 vpmaxsw %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 7 0.50 * vpmaxsw (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 2 0.50 vpmaxub %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 7 0.50 * vpmaxub (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 2 0.50 vpmaxud %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 7 0.50 * vpmaxud (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 2 0.50 vpmaxuw %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 7 0.50 * vpmaxuw (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 2 0.50 vpminsb %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 7 0.50 * vpminsb (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 2 0.50 vpminsd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 7 0.50 * vpminsd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 2 0.50 vpminsw %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 7 0.50 * vpminsw (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 2 0.50 vpminub %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 7 0.50 * vpminub (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 2 0.50 vpminud %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 7 0.50 * vpminud (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 2 0.50 vpminuw %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 7 0.50 * vpminuw (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 9 1.50 * vpmaddwd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 2 1.00 vpmaxsb %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 7 1.50 * vpmaxsb (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 2 1.00 vpmaxsd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 7 1.50 * vpmaxsd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 2 1.00 vpmaxsw %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 7 1.50 * vpmaxsw (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 2 1.00 vpmaxub %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 7 1.50 * vpmaxub (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 2 1.00 vpmaxud %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 7 1.50 * vpmaxud (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 2 1.00 vpmaxuw %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 7 1.50 * vpmaxuw (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 2 1.00 vpminsb %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 7 1.50 * vpminsb (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 2 1.00 vpminsd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 7 1.50 * vpminsd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 2 1.00 vpminsw %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 7 1.50 * vpminsw (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 2 1.00 vpminub %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 7 1.50 * vpminub (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 2 1.00 vpminud %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 7 1.50 * vpminud (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 2 1.00 vpminuw %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 7 1.50 * vpminuw (%rax), %xmm1, %xmm2
# CHECK-NEXT: 2 12 1.00 vpmovmskb %xmm0, %ecx
-# CHECK-NEXT: 1 2 0.50 vpmovsxbd %xmm0, %xmm2
-# CHECK-NEXT: 1 7 0.50 * vpmovsxbd (%rax), %xmm2
-# CHECK-NEXT: 1 2 0.50 vpmovsxbq %xmm0, %xmm2
-# CHECK-NEXT: 1 7 0.50 * vpmovsxbq (%rax), %xmm2
-# CHECK-NEXT: 1 2 0.50 vpmovsxbw %xmm0, %xmm2
-# CHECK-NEXT: 1 7 0.50 * vpmovsxbw (%rax), %xmm2
-# CHECK-NEXT: 1 2 0.50 vpmovsxdq %xmm0, %xmm2
-# CHECK-NEXT: 1 7 0.50 * vpmovsxdq (%rax), %xmm2
-# CHECK-NEXT: 1 2 0.50 vpmovsxwd %xmm0, %xmm2
-# CHECK-NEXT: 1 7 0.50 * vpmovsxwd (%rax), %xmm2
-# CHECK-NEXT: 1 2 0.50 vpmovsxwq %xmm0, %xmm2
-# CHECK-NEXT: 1 7 0.50 * vpmovsxwq (%rax), %xmm2
-# CHECK-NEXT: 1 2 0.50 vpmovzxbd %xmm0, %xmm2
-# CHECK-NEXT: 1 7 0.50 * vpmovzxbd (%rax), %xmm2
-# CHECK-NEXT: 1 2 0.50 vpmovzxbq %xmm0, %xmm2
-# CHECK-NEXT: 1 7 0.50 * vpmovzxbq (%rax), %xmm2
-# CHECK-NEXT: 1 2 0.50 vpmovzxbw %xmm0, %xmm2
-# CHECK-NEXT: 1 7 0.50 * vpmovzxbw (%rax), %xmm2
-# CHECK-NEXT: 1 2 0.50 vpmovzxdq %xmm0, %xmm2
-# CHECK-NEXT: 1 7 0.50 * vpmovzxdq (%rax), %xmm2
-# CHECK-NEXT: 1 2 0.50 vpmovzxwd %xmm0, %xmm2
-# CHECK-NEXT: 1 7 0.50 * vpmovzxwd (%rax), %xmm2
-# CHECK-NEXT: 1 2 0.50 vpmovzxwq %xmm0, %xmm2
-# CHECK-NEXT: 1 7 0.50 * vpmovzxwq (%rax), %xmm2
+# CHECK-NEXT: 1 2 1.00 vpmovsxbd %xmm0, %xmm2
+# CHECK-NEXT: 1 7 1.50 * vpmovsxbd (%rax), %xmm2
+# CHECK-NEXT: 1 2 1.00 vpmovsxbq %xmm0, %xmm2
+# CHECK-NEXT: 1 7 1.50 * vpmovsxbq (%rax), %xmm2
+# CHECK-NEXT: 1 2 1.00 vpmovsxbw %xmm0, %xmm2
+# CHECK-NEXT: 1 7 1.50 * vpmovsxbw (%rax), %xmm2
+# CHECK-NEXT: 1 2 1.00 vpmovsxdq %xmm0, %xmm2
+# CHECK-NEXT: 1 7 1.50 * vpmovsxdq (%rax), %xmm2
+# CHECK-NEXT: 1 2 1.00 vpmovsxwd %xmm0, %xmm2
+# CHECK-NEXT: 1 7 1.50 * vpmovsxwd (%rax), %xmm2
+# CHECK-NEXT: 1 2 1.00 vpmovsxwq %xmm0, %xmm2
+# CHECK-NEXT: 1 7 1.50 * vpmovsxwq (%rax), %xmm2
+# CHECK-NEXT: 1 2 1.00 vpmovzxbd %xmm0, %xmm2
+# CHECK-NEXT: 1 7 1.50 * vpmovzxbd (%rax), %xmm2
+# CHECK-NEXT: 1 2 1.00 vpmovzxbq %xmm0, %xmm2
+# CHECK-NEXT: 1 7 1.50 * vpmovzxbq (%rax), %xmm2
+# CHECK-NEXT: 1 2 1.00 vpmovzxbw %xmm0, %xmm2
+# CHECK-NEXT: 1 7 1.50 * vpmovzxbw (%rax), %xmm2
+# CHECK-NEXT: 1 2 1.00 vpmovzxdq %xmm0, %xmm2
+# CHECK-NEXT: 1 7 1.50 * vpmovzxdq (%rax), %xmm2
+# CHECK-NEXT: 1 2 1.00 vpmovzxwd %xmm0, %xmm2
+# CHECK-NEXT: 1 7 1.50 * vpmovzxwd (%rax), %xmm2
+# CHECK-NEXT: 1 2 1.00 vpmovzxwq %xmm0, %xmm2
+# CHECK-NEXT: 1 7 1.50 * vpmovzxwq (%rax), %xmm2
# CHECK-NEXT: 1 4 1.00 vpmuldq %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 9 1.00 * vpmuldq (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 9 1.50 * vpmuldq (%rax), %xmm1, %xmm2
# CHECK-NEXT: 1 4 1.00 vpmulhrsw %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 9 1.00 * vpmulhrsw (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 9 1.50 * vpmulhrsw (%rax), %xmm1, %xmm2
# CHECK-NEXT: 1 4 1.00 vpmulhuw %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 9 1.00 * vpmulhuw (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 9 1.50 * vpmulhuw (%rax), %xmm1, %xmm2
# CHECK-NEXT: 1 4 1.00 vpmulhw %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 9 1.00 * vpmulhw (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 9 1.50 * vpmulhw (%rax), %xmm1, %xmm2
# CHECK-NEXT: 1 5 2.00 vpmulld %xmm0, %xmm1, %xmm2
# CHECK-NEXT: 1 10 2.00 * vpmulld (%rax), %xmm1, %xmm2
# CHECK-NEXT: 1 4 1.00 vpmullw %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 9 1.00 * vpmullw (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 9 1.50 * vpmullw (%rax), %xmm1, %xmm2
# CHECK-NEXT: 1 4 1.00 vpmuludq %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 9 1.00 * vpmuludq (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 2 0.50 vpor %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 7 0.50 * vpor (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 2 4 0.50 vpsadbw %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 2 9 0.50 * vpsadbw (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 3 2.00 vpshufb %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 8 2.00 * vpshufb (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 2 0.50 vpshufd $1, %xmm0, %xmm2
-# CHECK-NEXT: 1 7 0.50 * vpshufd $1, (%rax), %xmm2
-# CHECK-NEXT: 1 2 0.50 vpshufhw $1, %xmm0, %xmm2
-# CHECK-NEXT: 1 7 0.50 * vpshufhw $1, (%rax), %xmm2
-# CHECK-NEXT: 1 2 0.50 vpshuflw $1, %xmm0, %xmm2
-# CHECK-NEXT: 1 7 0.50 * vpshuflw $1, (%rax), %xmm2
-# CHECK-NEXT: 1 2 0.50 vpsignb %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 7 0.50 * vpsignb (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 2 0.50 vpsignd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 7 0.50 * vpsignd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 2 0.50 vpsignw %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 7 0.50 * vpsignw (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 2 0.50 vpslld $1, %xmm0, %xmm2
-# CHECK-NEXT: 1 3 0.50 vpslld %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 8 0.50 * vpslld (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 2 0.50 vpslldq $1, %xmm1, %xmm2
-# CHECK-NEXT: 1 2 0.50 vpsllq $1, %xmm0, %xmm2
-# CHECK-NEXT: 1 3 0.50 vpsllq %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 8 0.50 * vpsllq (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 2 0.50 vpsllw $1, %xmm0, %xmm2
-# CHECK-NEXT: 1 3 0.50 vpsllw %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 8 0.50 * vpsllw (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 2 0.50 vpsrad $1, %xmm0, %xmm2
-# CHECK-NEXT: 1 3 0.50 vpsrad %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 8 0.50 * vpsrad (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 2 0.50 vpsraw $1, %xmm0, %xmm2
-# CHECK-NEXT: 1 3 0.50 vpsraw %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 8 0.50 * vpsraw (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 2 0.50 vpsrld $1, %xmm0, %xmm2
-# CHECK-NEXT: 1 3 0.50 vpsrld %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 8 0.50 * vpsrld (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 2 0.50 vpsrldq $1, %xmm1, %xmm2
-# CHECK-NEXT: 1 2 0.50 vpsrlq $1, %xmm0, %xmm2
-# CHECK-NEXT: 1 3 0.50 vpsrlq %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 8 0.50 * vpsrlq (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 2 0.50 vpsrlw $1, %xmm0, %xmm2
-# CHECK-NEXT: 1 3 0.50 vpsrlw %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 8 0.50 * vpsrlw (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 2 0.50 vpsubb %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 7 0.50 * vpsubb (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 2 0.50 vpsubd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 7 0.50 * vpsubd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 2 0.50 vpsubq %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 7 0.50 * vpsubq (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 2 0.50 vpsubsb %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 7 0.50 * vpsubsb (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 2 0.50 vpsubsw %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 7 0.50 * vpsubsw (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 2 0.50 vpsubusb %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 7 0.50 * vpsubusb (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 2 0.50 vpsubusw %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 7 0.50 * vpsubusw (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 2 0.50 vpsubw %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 7 0.50 * vpsubw (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 9 1.50 * vpmuludq (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 2 1.00 vpor %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 7 1.50 * vpor (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 2 4 1.00 vpsadbw %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 2 9 1.50 * vpsadbw (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 3 1.50 vpshufb %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 8 1.50 * vpshufb (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 2 1.00 vpshufd $1, %xmm0, %xmm2
+# CHECK-NEXT: 1 7 1.50 * vpshufd $1, (%rax), %xmm2
+# CHECK-NEXT: 1 2 1.00 vpshufhw $1, %xmm0, %xmm2
+# CHECK-NEXT: 1 7 1.50 * vpshufhw $1, (%rax), %xmm2
+# CHECK-NEXT: 1 2 1.00 vpshuflw $1, %xmm0, %xmm2
+# CHECK-NEXT: 1 7 1.50 * vpshuflw $1, (%rax), %xmm2
+# CHECK-NEXT: 1 2 1.00 vpsignb %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 7 1.50 * vpsignb (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 2 1.00 vpsignd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 7 1.50 * vpsignd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 2 1.00 vpsignw %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 7 1.50 * vpsignw (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 2 1.00 vpslld $1, %xmm0, %xmm2
+# CHECK-NEXT: 1 3 1.00 vpslld %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 8 1.50 * vpslld (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 2 1.00 vpslldq $1, %xmm1, %xmm2
+# CHECK-NEXT: 1 2 1.00 vpsllq $1, %xmm0, %xmm2
+# CHECK-NEXT: 1 3 1.00 vpsllq %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 8 1.50 * vpsllq (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 2 1.00 vpsllw $1, %xmm0, %xmm2
+# CHECK-NEXT: 1 3 1.00 vpsllw %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 8 1.50 * vpsllw (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 2 1.00 vpsrad $1, %xmm0, %xmm2
+# CHECK-NEXT: 1 3 1.00 vpsrad %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 8 1.50 * vpsrad (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 2 1.00 vpsraw $1, %xmm0, %xmm2
+# CHECK-NEXT: 1 3 1.00 vpsraw %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 8 1.50 * vpsraw (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 2 1.00 vpsrld $1, %xmm0, %xmm2
+# CHECK-NEXT: 1 3 1.00 vpsrld %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 8 1.50 * vpsrld (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 2 1.00 vpsrldq $1, %xmm1, %xmm2
+# CHECK-NEXT: 1 2 1.00 vpsrlq $1, %xmm0, %xmm2
+# CHECK-NEXT: 1 3 1.00 vpsrlq %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 8 1.50 * vpsrlq (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 2 1.00 vpsrlw $1, %xmm0, %xmm2
+# CHECK-NEXT: 1 3 1.00 vpsrlw %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 8 1.50 * vpsrlw (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 2 1.00 vpsubb %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 7 1.50 * vpsubb (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 2 1.00 vpsubd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 7 1.50 * vpsubd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 2 1.00 vpsubq %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 7 1.50 * vpsubq (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 2 1.00 vpsubsb %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 7 1.50 * vpsubsb (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 2 1.00 vpsubsw %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 7 1.50 * vpsubsw (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 2 1.00 vpsubusb %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 7 1.50 * vpsubusb (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 2 1.00 vpsubusw %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 7 1.50 * vpsubusw (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 2 1.00 vpsubw %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 7 1.50 * vpsubw (%rax), %xmm1, %xmm2
# CHECK-NEXT: 2 1 1.00 vptest %xmm0, %xmm1
-# CHECK-NEXT: 2 6 1.00 * vptest (%rax), %xmm1
-# CHECK-NEXT: 4 1 1.00 vptest %ymm0, %ymm1
-# CHECK-NEXT: 6 6 1.00 * vptest (%rax), %ymm1
-# CHECK-NEXT: 1 2 0.50 vpunpckhbw %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 7 0.50 * vpunpckhbw (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 2 0.50 vpunpckhdq %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 7 0.50 * vpunpckhdq (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 2 0.50 vpunpckhqdq %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 7 0.50 * vpunpckhqdq (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 2 0.50 vpunpckhwd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 7 0.50 * vpunpckhwd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 2 0.50 vpunpcklbw %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 7 0.50 * vpunpcklbw (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 2 0.50 vpunpckldq %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 7 0.50 * vpunpckldq (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 2 0.50 vpunpcklqdq %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 7 0.50 * vpunpcklqdq (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 2 0.50 vpunpcklwd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 7 0.50 * vpunpcklwd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 2 0.50 vpxor %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 7 0.50 * vpxor (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 2 6 1.50 * vptest (%rax), %xmm1
+# CHECK-NEXT: 4 1 2.00 vptest %ymm0, %ymm1
+# CHECK-NEXT: 6 6 2.00 * vptest (%rax), %ymm1
+# CHECK-NEXT: 1 2 1.00 vpunpckhbw %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 7 1.50 * vpunpckhbw (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 2 1.00 vpunpckhdq %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 7 1.50 * vpunpckhdq (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 2 1.00 vpunpckhqdq %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 7 1.50 * vpunpckhqdq (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 2 1.00 vpunpckhwd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 7 1.50 * vpunpckhwd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 2 1.00 vpunpcklbw %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 7 1.50 * vpunpcklbw (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 2 1.00 vpunpckldq %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 7 1.50 * vpunpckldq (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 2 1.00 vpunpcklqdq %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 7 1.50 * vpunpcklqdq (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 2 1.00 vpunpcklwd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 7 1.50 * vpunpcklwd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 2 1.00 vpxor %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 7 1.50 * vpxor (%rax), %xmm1, %xmm2
# CHECK-NEXT: 1 5 1.00 vrcpps %xmm0, %xmm2
-# CHECK-NEXT: 1 10 1.00 * vrcpps (%rax), %xmm2
+# CHECK-NEXT: 1 10 1.50 * vrcpps (%rax), %xmm2
# CHECK-NEXT: 2 5 2.00 vrcpps %ymm0, %ymm2
# CHECK-NEXT: 2 10 2.00 * vrcpps (%rax), %ymm2
# CHECK-NEXT: 1 5 1.00 vrcpss %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 10 1.00 * vrcpss (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 10 1.50 * vrcpss (%rax), %xmm1, %xmm2
# CHECK-NEXT: 1 4 1.00 vroundpd $1, %xmm0, %xmm2
-# CHECK-NEXT: 1 9 1.00 * vroundpd $1, (%rax), %xmm2
+# CHECK-NEXT: 1 9 1.50 * vroundpd $1, (%rax), %xmm2
# CHECK-NEXT: 2 4 2.00 vroundpd $1, %ymm0, %ymm2
# CHECK-NEXT: 2 9 2.00 * vroundpd $1, (%rax), %ymm2
# CHECK-NEXT: 1 4 1.00 vroundps $1, %xmm0, %xmm2
-# CHECK-NEXT: 1 9 1.00 * vroundps $1, (%rax), %xmm2
+# CHECK-NEXT: 1 9 1.50 * vroundps $1, (%rax), %xmm2
# CHECK-NEXT: 2 4 2.00 vroundps $1, %ymm0, %ymm2
# CHECK-NEXT: 2 9 2.00 * vroundps $1, (%rax), %ymm2
# CHECK-NEXT: 1 4 1.00 vroundsd $1, %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 9 1.00 * vroundsd $1, (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 9 1.50 * vroundsd $1, (%rax), %xmm1, %xmm2
# CHECK-NEXT: 1 4 1.00 vroundss $1, %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 9 1.00 * vroundss $1, (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 9 1.50 * vroundss $1, (%rax), %xmm1, %xmm2
# CHECK-NEXT: 1 5 1.00 vrsqrtps %xmm0, %xmm2
-# CHECK-NEXT: 1 10 1.00 * vrsqrtps (%rax), %xmm2
+# CHECK-NEXT: 1 10 1.50 * vrsqrtps (%rax), %xmm2
# CHECK-NEXT: 2 5 2.00 vrsqrtps %ymm0, %ymm2
# CHECK-NEXT: 2 10 2.00 * vrsqrtps (%rax), %ymm2
# CHECK-NEXT: 1 5 1.00 vrsqrtss %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 10 1.00 * vrsqrtss (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 2 0.50 vshufpd $1, %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 7 0.50 * vshufpd $1, (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 2 2 1.00 vshufpd $1, %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 2 7 1.00 * vshufpd $1, (%rax), %ymm1, %ymm2
-# CHECK-NEXT: 1 2 0.50 vshufps $1, %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 7 0.50 * vshufps $1, (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 2 2 1.00 vshufps $1, %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 2 7 1.00 * vshufps $1, (%rax), %ymm1, %ymm2
-# CHECK-NEXT: 1 9 13.50 vsqrtpd %xmm0, %xmm2
-# CHECK-NEXT: 1 14 13.50 * vsqrtpd (%rax), %xmm2
-# CHECK-NEXT: 2 9 27.00 vsqrtpd %ymm0, %ymm2
-# CHECK-NEXT: 2 14 27.00 * vsqrtpd (%rax), %ymm2
-# CHECK-NEXT: 1 9 10.50 vsqrtps %xmm0, %xmm2
-# CHECK-NEXT: 1 14 10.50 * vsqrtps (%rax), %xmm2
-# CHECK-NEXT: 2 9 21.00 vsqrtps %ymm0, %ymm2
-# CHECK-NEXT: 2 14 21.00 * vsqrtps (%rax), %ymm2
-# CHECK-NEXT: 1 9 13.50 vsqrtsd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 14 13.50 * vsqrtsd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 9 10.50 vsqrtss %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 14 10.50 * vsqrtss (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 2 1 1.00 * * U vstmxcsr (%rax)
+# CHECK-NEXT: 1 10 1.50 * vrsqrtss (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 2 1.00 vshufpd $1, %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 7 1.50 * vshufpd $1, (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 2 2 2.00 vshufpd $1, %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 2 7 2.00 * vshufpd $1, (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 1 2 1.00 vshufps $1, %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 7 1.50 * vshufps $1, (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 2 2 2.00 vshufps $1, %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 2 7 2.00 * vshufps $1, (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 1 9 4.50 vsqrtpd %xmm0, %xmm2
+# CHECK-NEXT: 1 14 4.50 * vsqrtpd (%rax), %xmm2
+# CHECK-NEXT: 2 9 9.00 vsqrtpd %ymm0, %ymm2
+# CHECK-NEXT: 2 14 9.00 * vsqrtpd (%rax), %ymm2
+# CHECK-NEXT: 1 9 4.50 vsqrtps %xmm0, %xmm2
+# CHECK-NEXT: 1 14 4.50 * vsqrtps (%rax), %xmm2
+# CHECK-NEXT: 2 9 9.00 vsqrtps %ymm0, %ymm2
+# CHECK-NEXT: 2 14 9.00 * vsqrtps (%rax), %ymm2
+# CHECK-NEXT: 1 9 4.50 vsqrtsd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 14 4.50 * vsqrtsd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 9 4.50 vsqrtss %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 14 4.50 * vsqrtss (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 2 1 18.00 * * U vstmxcsr (%rax)
# CHECK-NEXT: 1 5 1.00 vsubpd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 10 1.00 * vsubpd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 2 5 2.00 vsubpd %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 2 10 2.00 * vsubpd (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 1 10 1.50 * vsubpd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 2 5 1.00 vsubpd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 2 10 1.50 * vsubpd (%rax), %ymm1, %ymm2
# CHECK-NEXT: 1 5 1.00 vsubps %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 10 1.00 * vsubps (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 2 5 2.00 vsubps %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 2 10 2.00 * vsubps (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 1 10 1.50 * vsubps (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 2 5 1.00 vsubps %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 2 10 1.50 * vsubps (%rax), %ymm1, %ymm2
# CHECK-NEXT: 1 5 1.00 vsubsd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 10 1.00 * vsubsd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 10 1.50 * vsubsd (%rax), %xmm1, %xmm2
# CHECK-NEXT: 1 5 1.00 vsubss %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 10 1.00 * vsubss (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 10 1.50 * vsubss (%rax), %xmm1, %xmm2
# CHECK-NEXT: 2 1 1.00 vtestpd %xmm0, %xmm1
-# CHECK-NEXT: 2 6 1.00 * vtestpd (%rax), %xmm1
-# CHECK-NEXT: 4 1 1.00 vtestpd %ymm0, %ymm1
-# CHECK-NEXT: 6 6 1.00 * vtestpd (%rax), %ymm1
+# CHECK-NEXT: 2 6 1.50 * vtestpd (%rax), %xmm1
+# CHECK-NEXT: 4 1 2.00 vtestpd %ymm0, %ymm1
+# CHECK-NEXT: 6 6 2.00 * vtestpd (%rax), %ymm1
# CHECK-NEXT: 2 1 1.00 vtestps %xmm0, %xmm1
-# CHECK-NEXT: 2 6 1.00 * vtestps (%rax), %xmm1
-# CHECK-NEXT: 4 1 1.00 vtestps %ymm0, %ymm1
-# CHECK-NEXT: 6 6 1.00 * vtestps (%rax), %ymm1
+# CHECK-NEXT: 2 6 1.50 * vtestps (%rax), %xmm1
+# CHECK-NEXT: 4 1 2.00 vtestps %ymm0, %ymm1
+# CHECK-NEXT: 6 6 2.00 * vtestps (%rax), %ymm1
# CHECK-NEXT: 2 1 1.00 vucomisd %xmm0, %xmm1
-# CHECK-NEXT: 2 6 1.00 * vucomisd (%rax), %xmm1
+# CHECK-NEXT: 2 6 1.50 * vucomisd (%rax), %xmm1
# CHECK-NEXT: 2 1 1.00 vucomiss %xmm0, %xmm1
-# CHECK-NEXT: 2 6 1.00 * vucomiss (%rax), %xmm1
-# CHECK-NEXT: 1 2 0.50 vunpckhpd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 7 0.50 * vunpckhpd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 2 2 1.00 vunpckhpd %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 2 7 1.00 * vunpckhpd (%rax), %ymm1, %ymm2
-# CHECK-NEXT: 1 2 0.50 vunpckhps %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 7 0.50 * vunpckhps (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 2 2 1.00 vunpckhps %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 2 7 1.00 * vunpckhps (%rax), %ymm1, %ymm2
-# CHECK-NEXT: 1 2 0.50 vunpcklpd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 7 0.50 * vunpcklpd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 2 2 1.00 vunpcklpd %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 2 7 1.00 * vunpcklpd (%rax), %ymm1, %ymm2
-# CHECK-NEXT: 1 2 0.50 vunpcklps %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 7 0.50 * vunpcklps (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 2 2 1.00 vunpcklps %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 2 7 1.00 * vunpcklps (%rax), %ymm1, %ymm2
-# CHECK-NEXT: 1 2 0.50 vxorpd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 7 0.50 * vxorpd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 2 6 1.50 * vucomiss (%rax), %xmm1
+# CHECK-NEXT: 1 2 1.00 vunpckhpd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 7 1.50 * vunpckhpd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 2 2 2.00 vunpckhpd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 2 7 2.00 * vunpckhpd (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 1 2 1.00 vunpckhps %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 7 1.50 * vunpckhps (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 2 2 2.00 vunpckhps %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 2 7 2.00 * vunpckhps (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 1 2 1.00 vunpcklpd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 7 1.50 * vunpcklpd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 2 2 2.00 vunpcklpd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 2 7 2.00 * vunpcklpd (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 1 2 1.00 vunpcklps %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 7 1.50 * vunpcklps (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 2 2 2.00 vunpcklps %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 2 7 2.00 * vunpcklps (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 1 2 1.00 vxorpd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 7 1.50 * vxorpd (%rax), %xmm1, %xmm2
# CHECK-NEXT: 2 2 1.00 vxorpd %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 2 7 1.00 * vxorpd (%rax), %ymm1, %ymm2
-# CHECK-NEXT: 1 2 0.50 vxorps %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 7 0.50 * vxorps (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 2 7 1.50 * vxorpd (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 1 2 1.00 vxorps %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 7 1.50 * vxorps (%rax), %xmm1, %xmm2
# CHECK-NEXT: 2 2 1.00 vxorps %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 2 7 1.00 * vxorps (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 2 7 1.50 * vxorps (%rax), %ymm1, %ymm2
# CHECK-NEXT: 32 90 8.00 * * U vzeroall
# CHECK-NEXT: 16 46 4.00 * * U vzeroupper
@@ -1749,698 +1749,698 @@ vzeroupper
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0.0] [0.1] [1] [2] [3] [4] [5] [6] [7.0] [7.1] [8.0] [8.1] [9] [10] [11] [12] [13] [14] [15] [16.0] [16.1] [17] [18]
-# CHECK-NEXT: 229.00 229.00 - - - 56.00 - - 588.00 588.00 127.50 127.50 38.00 107.00 402.50 429.50 - - - 204.00 204.00 - 50.00
+# CHECK-NEXT: 545.50 545.50 - - - 56.00 - 80.00 1126.50 1126.50 267.00 267.00 54.00 110.00 436.50 342.50 76.50 76.50 - 495.50 495.50 - 100.00
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0.0] [0.1] [1] [2] [3] [4] [5] [6] [7.0] [7.1] [8.0] [8.1] [9] [10] [11] [12] [13] [14] [15] [16.0] [16.1] [17] [18] Instructions:
# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 1.00 - - - - - - - - vaddpd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 1.00 - - - - 0.50 0.50 - - vaddpd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 2.00 - - - - - - - - vaddpd %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 1.00 1.00 - - - - - - 0.50 0.50 - - - - 2.00 - - - - 1.00 1.00 - - vaddpd (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - 0.50 0.50 - - - - 1.00 - - - - 1.50 1.50 - - vaddpd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - 1.00 1.00 - - - - 1.00 - - - - - - - - vaddpd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - 1.00 1.00 - - - - 1.00 - - - - 1.50 1.50 - - vaddpd (%rax), %ymm1, %ymm2
# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 1.00 - - - - - - - - vaddps %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 1.00 - - - - 0.50 0.50 - - vaddps (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 2.00 - - - - - - - - vaddps %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 1.00 1.00 - - - - - - 0.50 0.50 - - - - 2.00 - - - - 1.00 1.00 - - vaddps (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - 0.50 0.50 - - - - 1.00 - - - - 1.50 1.50 - - vaddps (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - 1.00 1.00 - - - - 1.00 - - - - - - - - vaddps %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - 1.00 1.00 - - - - 1.00 - - - - 1.50 1.50 - - vaddps (%rax), %ymm1, %ymm2
# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 1.00 - - - - - - - - vaddsd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 1.00 - - - - 0.50 0.50 - - vaddsd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - 0.50 0.50 - - - - 1.00 - - - - 1.50 1.50 - - vaddsd (%rax), %xmm1, %xmm2
# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 1.00 - - - - - - - - vaddss %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 1.00 - - - - 0.50 0.50 - - vaddss (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - 0.50 0.50 - - - - 1.00 - - - - 1.50 1.50 - - vaddss (%rax), %xmm1, %xmm2
# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 1.00 - - - - - - - - vaddsubpd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 1.00 - - - - 0.50 0.50 - - vaddsubpd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 2.00 - - - - - - - - vaddsubpd %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 1.00 1.00 - - - - - - 0.50 0.50 - - - - 2.00 - - - - 1.00 1.00 - - vaddsubpd (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - 0.50 0.50 - - - - 1.00 - - - - 1.50 1.50 - - vaddsubpd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - 1.00 1.00 - - - - 1.00 - - - - - - - - vaddsubpd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - 1.00 1.00 - - - - 1.00 - - - - 1.50 1.50 - - vaddsubpd (%rax), %ymm1, %ymm2
# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 1.00 - - - - - - - - vaddsubps %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 1.00 - - - - 0.50 0.50 - - vaddsubps (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 2.00 - - - - - - - - vaddsubps %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 1.00 1.00 - - - - - - 0.50 0.50 - - - - 2.00 - - - - 1.00 1.00 - - vaddsubps (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - 0.50 0.50 - - - - 1.00 - - - - 1.50 1.50 - - vaddsubps (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - 1.00 1.00 - - - - 1.00 - - - - - - - - vaddsubps %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - 1.00 1.00 - - - - 1.00 - - - - 1.50 1.50 - - vaddsubps (%rax), %ymm1, %ymm2
# CHECK-NEXT: - - - - - - - - - - - - 1.00 - 1.00 - - - - - - - - vaesdec %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - 1.00 - 1.00 - - - - 0.50 0.50 - - vaesdec (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - - - - - 1.00 - 1.00 - - - - 1.50 1.50 - - vaesdec (%rax), %xmm1, %xmm2
# CHECK-NEXT: - - - - - - - - - - - - 1.00 - 1.00 - - - - - - - - vaesdeclast %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - 1.00 - 1.00 - - - - 0.50 0.50 - - vaesdeclast (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - - - - - 1.00 - 1.00 - - - - 1.50 1.50 - - vaesdeclast (%rax), %xmm1, %xmm2
# CHECK-NEXT: - - - - - - - - - - - - 1.00 - 1.00 - - - - - - - - vaesenc %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - 1.00 - 1.00 - - - - 0.50 0.50 - - vaesenc (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - - - - - 1.00 - 1.00 - - - - 1.50 1.50 - - vaesenc (%rax), %xmm1, %xmm2
# CHECK-NEXT: - - - - - - - - - - - - 1.00 - 1.00 - - - - - - - - vaesenclast %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - 1.00 - 1.00 - - - - 0.50 0.50 - - vaesenclast (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - - - - - 1.00 - 1.00 - - - - 1.50 1.50 - - vaesenclast (%rax), %xmm1, %xmm2
# CHECK-NEXT: - - - - - - - - - - - - 1.00 - 1.00 - - - - - - - - vaesimc %xmm0, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - 1.00 - 1.00 - - - - 0.50 0.50 - - vaesimc (%rax), %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - - - - - 1.00 - 1.00 - - - - 1.50 1.50 - - vaesimc (%rax), %xmm2
# CHECK-NEXT: - - - - - - - - - - - - 1.00 - 1.00 - - - - - - - - vaeskeygenassist $22, %xmm0, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - 1.00 - 1.00 - - - - 0.50 0.50 - - vaeskeygenassist $22, (%rax), %xmm2
-# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - vandnpd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.50 0.50 - - - 0.50 0.50 - - vandnpd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - - - - - 1.00 - 1.00 - - - - 1.50 1.50 - - vaeskeygenassist $22, (%rax), %xmm2
+# CHECK-NEXT: - - - - - - - - 1.00 1.00 - - - - 0.50 0.50 - - - - - - - vandnpd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - 1.00 1.00 - - - - 0.50 0.50 - - - 1.50 1.50 - - vandnpd (%rax), %xmm1, %xmm2
# CHECK-NEXT: - - - - - - - - 1.00 1.00 - - - - 1.00 1.00 - - - - - - - vandnpd %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 1.00 1.00 - - - - - - 1.00 1.00 - - - - 1.00 1.00 - - - 1.00 1.00 - - vandnpd (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - vandnps %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.50 0.50 - - - 0.50 0.50 - - vandnps (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - 1.00 1.00 - - - - 1.00 1.00 - - - 1.50 1.50 - - vandnpd (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - - 1.00 1.00 - - - - 0.50 0.50 - - - - - - - vandnps %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - 1.00 1.00 - - - - 0.50 0.50 - - - 1.50 1.50 - - vandnps (%rax), %xmm1, %xmm2
# CHECK-NEXT: - - - - - - - - 1.00 1.00 - - - - 1.00 1.00 - - - - - - - vandnps %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 1.00 1.00 - - - - - - 1.00 1.00 - - - - 1.00 1.00 - - - 1.00 1.00 - - vandnps (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - vandpd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.50 0.50 - - - 0.50 0.50 - - vandpd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - 1.00 1.00 - - - - 1.00 1.00 - - - 1.50 1.50 - - vandnps (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - - 1.00 1.00 - - - - 0.50 0.50 - - - - - - - vandpd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - 1.00 1.00 - - - - 0.50 0.50 - - - 1.50 1.50 - - vandpd (%rax), %xmm1, %xmm2
# CHECK-NEXT: - - - - - - - - 1.00 1.00 - - - - 1.00 1.00 - - - - - - - vandpd %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 1.00 1.00 - - - - - - 1.00 1.00 - - - - 1.00 1.00 - - - 1.00 1.00 - - vandpd (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - vandps %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.50 0.50 - - - 0.50 0.50 - - vandps (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - 1.00 1.00 - - - - 1.00 1.00 - - - 1.50 1.50 - - vandpd (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - - 1.00 1.00 - - - - 0.50 0.50 - - - - - - - vandps %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - 1.00 1.00 - - - - 0.50 0.50 - - - 1.50 1.50 - - vandps (%rax), %xmm1, %xmm2
# CHECK-NEXT: - - - - - - - - 1.00 1.00 - - - - 1.00 1.00 - - - - - - - vandps %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 1.00 1.00 - - - - - - 1.00 1.00 - - - - 1.00 1.00 - - - 1.00 1.00 - - vandps (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - vblendpd $11, %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.50 0.50 - - - 0.50 0.50 - - vblendpd $11, (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - - 1.00 1.00 - - - - 1.00 1.00 - - - - - - - vblendpd $11, %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 1.00 1.00 - - - - - - 1.00 1.00 - - - - 1.00 1.00 - - - 1.00 1.00 - - vblendpd $11, (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - vblendps $11, %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.50 0.50 - - - 0.50 0.50 - - vblendps $11, (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - - 1.00 1.00 - - - - 1.00 1.00 - - - - - - - vblendps $11, %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 1.00 1.00 - - - - - - 1.00 1.00 - - - - 1.00 1.00 - - - 1.00 1.00 - - vblendps $11, (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - - - - - - - 2.00 2.00 - - - - 0.50 0.50 - - - - - - - vblendvpd %xmm3, %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - 2.00 2.00 - - - - 0.50 0.50 - - - 0.50 0.50 - - vblendvpd %xmm3, (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - - 3.00 3.00 - - - - 1.00 1.00 - - - - - - - vblendvpd %ymm3, %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 1.00 1.00 - - - - - - 3.00 3.00 - - - - 1.00 1.00 - - - 1.00 1.00 - - vblendvpd %ymm3, (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - - - - - - - 2.00 2.00 - - - - 0.50 0.50 - - - - - - - vblendvps %xmm3, %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - 2.00 2.00 - - - - 0.50 0.50 - - - 0.50 0.50 - - vblendvps %xmm3, (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - - 3.00 3.00 - - - - 1.00 1.00 - - - - - - - vblendvps %ymm3, %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 1.00 1.00 - - - - - - 3.00 3.00 - - - - 1.00 1.00 - - - 1.00 1.00 - - vblendvps %ymm3, (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - vbroadcastf128 (%rax), %ymm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - 1.00 1.00 - - - - 1.00 1.00 - - - 1.50 1.50 - - vandps (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - - 1.50 1.50 - - - - 0.50 0.50 - - - - - - - vblendpd $11, %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - 1.50 1.50 - - - - 0.50 0.50 - - - 1.50 1.50 - - vblendpd $11, (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - 1.50 1.50 - - - - 1.00 1.00 - - - - - - - vblendpd $11, %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - 1.50 1.50 - - - - 1.00 1.00 - - - 1.50 1.50 - - vblendpd $11, (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - - 1.50 1.50 - - - - 0.50 0.50 - - - - - - - vblendps $11, %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - 1.50 1.50 - - - - 0.50 0.50 - - - 1.50 1.50 - - vblendps $11, (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - 1.50 1.50 - - - - 1.00 1.00 - - - - - - - vblendps $11, %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - 1.50 1.50 - - - - 1.00 1.00 - - - 1.50 1.50 - - vblendps $11, (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - - 1.50 1.50 - - - - 0.50 0.50 - - - - - - - vblendvpd %xmm3, %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - 1.50 1.50 - - - - 0.50 0.50 - - - 1.50 1.50 - - vblendvpd %xmm3, (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - 2.00 2.00 - - - - 1.00 1.00 - - - - - - - vblendvpd %ymm3, %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - 2.00 2.00 - - - - 1.00 1.00 - - - 1.50 1.50 - - vblendvpd %ymm3, (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - - 1.50 1.50 - - - - 0.50 0.50 - - - - - - - vblendvps %xmm3, %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - 1.50 1.50 - - - - 0.50 0.50 - - - 1.50 1.50 - - vblendvps %xmm3, (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - 2.00 2.00 - - - - 1.00 1.00 - - - - - - - vblendvps %ymm3, %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - 2.00 2.00 - - - - 1.00 1.00 - - - 1.50 1.50 - - vblendvps %ymm3, (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - - 1.50 1.50 - - - - 0.50 0.50 - - - - - - - vbroadcastf128 (%rax), %ymm2
# CHECK-NEXT: 0.50 0.50 - - - - - - 2.00 2.00 - - - - 1.00 1.00 - - - 0.50 0.50 - - vbroadcastsd (%rax), %ymm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.50 0.50 - - - 0.50 0.50 - - vbroadcastss (%rax), %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - 1.00 1.00 - - - - 0.50 0.50 - - - 1.50 1.50 - - vbroadcastss (%rax), %xmm2
# CHECK-NEXT: 0.50 0.50 - - - - - - 2.00 2.00 - - - - 1.00 1.00 - - - 0.50 0.50 - - vbroadcastss (%rax), %ymm2
# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 1.00 - - - - - - - - vcmpeqpd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 1.00 - - - - 0.50 0.50 - - vcmpeqpd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 2.00 - - - - - - - - vcmpeqpd %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 1.00 1.00 - - - - - - 0.50 0.50 - - - - 2.00 - - - - 1.00 1.00 - - vcmpeqpd (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - 0.50 0.50 - - - - 1.00 - - - - 1.50 1.50 - - vcmpeqpd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - 1.00 1.00 - - - - 1.00 - - - - - - - - vcmpeqpd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - 1.00 1.00 - - - - 1.00 - - - - 1.50 1.50 - - vcmpeqpd (%rax), %ymm1, %ymm2
# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 1.00 - - - - - - - - vcmpeqps %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 1.00 - - - - 0.50 0.50 - - vcmpeqps (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 2.00 - - - - - - - - vcmpeqps %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 1.00 1.00 - - - - - - 0.50 0.50 - - - - 2.00 - - - - 1.00 1.00 - - vcmpeqps (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - 0.50 0.50 - - - - 1.00 - - - - 1.50 1.50 - - vcmpeqps (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - 1.00 1.00 - - - - 1.00 - - - - - - - - vcmpeqps %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - 1.00 1.00 - - - - 1.00 - - - - 1.50 1.50 - - vcmpeqps (%rax), %ymm1, %ymm2
# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 1.00 - - - - - - - - vcmpeqsd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 1.00 - - - - 0.50 0.50 - - vcmpeqsd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - 0.50 0.50 - - - - 1.00 - - - - 1.50 1.50 - - vcmpeqsd (%rax), %xmm1, %xmm2
# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 1.00 - - - - - - - - vcmpeqss %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 1.00 - - - - 0.50 0.50 - - vcmpeqss (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - 0.50 0.50 - - - - 1.00 - - - - 1.50 1.50 - - vcmpeqss (%rax), %xmm1, %xmm2
# CHECK-NEXT: - - - - - 1.00 - - 0.50 0.50 - - - - 1.00 - - - - - - - - vcomisd %xmm0, %xmm1
-# CHECK-NEXT: 0.50 0.50 - - - 1.00 - - 0.50 0.50 - - - - 1.00 - - - - 0.50 0.50 - - vcomisd (%rax), %xmm1
+# CHECK-NEXT: 1.50 1.50 - - - 1.00 - - 0.50 0.50 - - - - 1.00 - - - - 1.50 1.50 - - vcomisd (%rax), %xmm1
# CHECK-NEXT: - - - - - 1.00 - - 0.50 0.50 - - - - 1.00 - - - - - - - - vcomiss %xmm0, %xmm1
-# CHECK-NEXT: 0.50 0.50 - - - 1.00 - - 0.50 0.50 - - - - 1.00 - - - - 0.50 0.50 - - vcomiss (%rax), %xmm1
-# CHECK-NEXT: - - - - - - - - - - - - - 1.00 - 1.00 - - - - - - - vcvtdq2pd %xmm0, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - 1.00 - 1.00 - - - 0.50 0.50 - - vcvtdq2pd (%rax), %xmm2
-# CHECK-NEXT: - - - - - - - - - - - - - 1.00 - 2.00 - - - - - - - vcvtdq2pd %xmm0, %ymm2
-# CHECK-NEXT: 1.00 1.00 - - - - - - - - - - - 1.00 - 2.00 - - - 1.00 1.00 - - vcvtdq2pd (%rax), %ymm2
-# CHECK-NEXT: - - - - - - - - - - - - - 1.00 - 1.00 - - - - - - - vcvtdq2ps %xmm0, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - 1.00 - 1.00 - - - 0.50 0.50 - - vcvtdq2ps (%rax), %xmm2
-# CHECK-NEXT: - - - - - - - - - - - - - 1.00 - 2.00 - - - - - - - vcvtdq2ps %ymm0, %ymm2
-# CHECK-NEXT: 1.00 1.00 - - - - - - - - - - - 1.00 - 2.00 - - - 1.00 1.00 - - vcvtdq2ps (%rax), %ymm2
-# CHECK-NEXT: - - - - - - - - - - - - - 1.00 - 1.00 - - - - - - - vcvtpd2dq %xmm0, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - 1.00 - 1.00 - - - 0.50 0.50 - - vcvtpd2dqx (%rax), %xmm2
-# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - 1.00 - 2.00 - - - - - - - vcvtpd2dq %ymm0, %xmm2
-# CHECK-NEXT: 1.00 1.00 - - - - - - 0.50 0.50 - - - 1.00 - 2.00 - - - 1.00 1.00 - - vcvtpd2dqy (%rax), %xmm2
-# CHECK-NEXT: - - - - - - - - - - - - - 1.00 - 1.00 - - - - - - - vcvtpd2ps %xmm0, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - 1.00 - 1.00 - - - 0.50 0.50 - - vcvtpd2psx (%rax), %xmm2
-# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - 1.00 - 2.00 - - - - - - - vcvtpd2ps %ymm0, %xmm2
-# CHECK-NEXT: 1.00 1.00 - - - - - - 0.50 0.50 - - - 1.00 - 2.00 - - - 1.00 1.00 - - vcvtpd2psy (%rax), %xmm2
-# CHECK-NEXT: - - - - - - - - - - - - - 1.00 - 1.00 - - - - - - - vcvtps2dq %xmm0, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - 1.00 - 1.00 - - - 0.50 0.50 - - vcvtps2dq (%rax), %xmm2
-# CHECK-NEXT: - - - - - - - - - - - - - 1.00 - 2.00 - - - - - - - vcvtps2dq %ymm0, %ymm2
-# CHECK-NEXT: 1.00 1.00 - - - - - - - - - - - 1.00 - 2.00 - - - 1.00 1.00 - - vcvtps2dq (%rax), %ymm2
-# CHECK-NEXT: - - - - - - - - - - - - - 1.00 - 1.00 - - - - - - - vcvtps2pd %xmm0, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - 1.00 - 1.00 - - - 0.50 0.50 - - vcvtps2pd (%rax), %xmm2
-# CHECK-NEXT: - - - - - - - - - - - - - 1.00 - 2.00 - - - - - - - vcvtps2pd %xmm0, %ymm2
-# CHECK-NEXT: 1.00 1.00 - - - - - - - - - - - 1.00 - 2.00 - - - 1.00 1.00 - - vcvtps2pd (%rax), %ymm2
-# CHECK-NEXT: - - - - - 1.00 - - 0.50 0.50 - - - 1.00 - 1.00 - - - - - - - vcvtsd2si %xmm0, %ecx
-# CHECK-NEXT: - - - - - 1.00 - - 0.50 0.50 - - - 1.00 - 1.00 - - - - - - - vcvtsd2si %xmm0, %rcx
-# CHECK-NEXT: 0.50 0.50 - - - 1.00 - - 0.50 0.50 - - - 1.00 - 1.00 - - - 0.50 0.50 - - vcvtsd2si (%rax), %ecx
-# CHECK-NEXT: 0.50 0.50 - - - 1.00 - - 0.50 0.50 - - - 1.00 - 1.00 - - - 0.50 0.50 - - vcvtsd2si (%rax), %rcx
-# CHECK-NEXT: - - - - - - - - - - - - - 1.00 - 1.00 - - - - - - - vcvtsd2ss %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - 1.00 - 1.00 - - - 0.50 0.50 - - vcvtsd2ss (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - - - - - - - 1.00 - 1.00 - - - - - - - vcvtsi2sd %ecx, %xmm0, %xmm2
-# CHECK-NEXT: - - - - - - - - - - - - - 1.00 - 1.00 - - - - - - - vcvtsi2sd %rcx, %xmm0, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - 1.00 - 1.00 - - - 0.50 0.50 - - vcvtsi2sdl (%rax), %xmm0, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - 1.00 - 1.00 - - - 0.50 0.50 - - vcvtsi2sdq (%rax), %xmm0, %xmm2
-# CHECK-NEXT: - - - - - - - - - - - - - 1.00 - 1.00 - - - - - - - vcvtsi2ss %ecx, %xmm0, %xmm2
-# CHECK-NEXT: - - - - - - - - - - - - - 1.00 - 1.00 - - - - - - - vcvtsi2ss %rcx, %xmm0, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - 1.00 - 1.00 - - - 0.50 0.50 - - vcvtsi2ssl (%rax), %xmm0, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - 1.00 - 1.00 - - - 0.50 0.50 - - vcvtsi2ssq (%rax), %xmm0, %xmm2
-# CHECK-NEXT: - - - - - - - - - - - - - 1.00 - 1.00 - - - - - - - vcvtss2sd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - 1.00 - 1.00 - - - 0.50 0.50 - - vcvtss2sd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - 1.00 - - 0.50 0.50 - - - 1.00 - 1.00 - - - - - - - vcvtss2si %xmm0, %ecx
-# CHECK-NEXT: - - - - - 1.00 - - 0.50 0.50 - - - 1.00 - 1.00 - - - - - - - vcvtss2si %xmm0, %rcx
-# CHECK-NEXT: 0.50 0.50 - - - 1.00 - - 0.50 0.50 - - - 1.00 - 1.00 - - - 0.50 0.50 - - vcvtss2si (%rax), %ecx
-# CHECK-NEXT: 0.50 0.50 - - - 1.00 - - 0.50 0.50 - - - 1.00 - 1.00 - - - 0.50 0.50 - - vcvtss2si (%rax), %rcx
-# CHECK-NEXT: - - - - - - - - - - - - - 1.00 - 1.00 - - - - - - - vcvttpd2dq %xmm0, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - 1.00 - 1.00 - - - 0.50 0.50 - - vcvttpd2dqx (%rax), %xmm2
-# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - 1.00 - 2.00 - - - - - - - vcvttpd2dq %ymm0, %xmm2
-# CHECK-NEXT: 1.00 1.00 - - - - - - 0.50 0.50 - - - 1.00 - 2.00 - - - 1.00 1.00 - - vcvttpd2dqy (%rax), %xmm2
-# CHECK-NEXT: - - - - - - - - - - - - - 1.00 - 1.00 - - - - - - - vcvttps2dq %xmm0, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - 1.00 - 1.00 - - - 0.50 0.50 - - vcvttps2dq (%rax), %xmm2
-# CHECK-NEXT: - - - - - - - - - - - - - 1.00 - 2.00 - - - - - - - vcvttps2dq %ymm0, %ymm2
-# CHECK-NEXT: 1.00 1.00 - - - - - - - - - - - 1.00 - 2.00 - - - 1.00 1.00 - - vcvttps2dq (%rax), %ymm2
-# CHECK-NEXT: - - - - - 1.00 - - 0.50 0.50 - - - 1.00 - 1.00 - - - - - - - vcvttsd2si %xmm0, %ecx
-# CHECK-NEXT: - - - - - 1.00 - - 0.50 0.50 - - - 1.00 - 1.00 - - - - - - - vcvttsd2si %xmm0, %rcx
-# CHECK-NEXT: 0.50 0.50 - - - 1.00 - - 0.50 0.50 - - - 1.00 - 1.00 - - - 0.50 0.50 - - vcvttsd2si (%rax), %ecx
-# CHECK-NEXT: 0.50 0.50 - - - 1.00 - - 0.50 0.50 - - - 1.00 - 1.00 - - - 0.50 0.50 - - vcvttsd2si (%rax), %rcx
-# CHECK-NEXT: - - - - - 1.00 - - 0.50 0.50 - - - 1.00 - 1.00 - - - - - - - vcvttss2si %xmm0, %ecx
-# CHECK-NEXT: - - - - - 1.00 - - 0.50 0.50 - - - 1.00 - 1.00 - - - - - - - vcvttss2si %xmm0, %rcx
-# CHECK-NEXT: 0.50 0.50 - - - 1.00 - - 0.50 0.50 - - - 1.00 - 1.00 - - - 0.50 0.50 - - vcvttss2si (%rax), %ecx
-# CHECK-NEXT: 0.50 0.50 - - - 1.00 - - 0.50 0.50 - - - 1.00 - 1.00 - - - 0.50 0.50 - - vcvttss2si (%rax), %rcx
-# CHECK-NEXT: - - - - - - - - 9.50 9.50 - - - - - 1.00 - - - - - - - vdivpd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - 9.50 9.50 - - - - - 1.00 - - - 0.50 0.50 - - vdivpd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - - 19.00 19.00 - - - - - 2.00 - - - - - - - vdivpd %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 1.00 1.00 - - - - - - 19.00 19.00 - - - - - 2.00 - - - 1.00 1.00 - - vdivpd (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - - - - - - - 9.50 9.50 - - - - - 1.00 - - - - - - - vdivps %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - 9.50 9.50 - - - - - 1.00 - - - 0.50 0.50 - - vdivps (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - - 19.00 19.00 - - - - - 2.00 - - - - - - - vdivps %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 1.00 1.00 - - - - - - 19.00 19.00 - - - - - 2.00 - - - 1.00 1.00 - - vdivps (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - - - - - - - 9.50 9.50 - - - - - 1.00 - - - - - - - vdivsd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - 9.50 9.50 - - - - - 1.00 - - - 0.50 0.50 - - vdivsd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - - 9.50 9.50 - - - - - 1.00 - - - - - - - vdivss %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - 9.50 9.50 - - - - - 1.00 - - - 0.50 0.50 - - vdivss (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - - 1.50 1.50 - - - - - 1.00 - - - - - - - vdppd $22, %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - 1.50 1.50 - - - - - 1.00 - - - 0.50 0.50 - - vdppd $22, (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - - 1.50 1.50 - - - - - 1.00 - - - - - - - vdpps $22, %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - 1.50 1.50 - - - - - 1.00 - - - 0.50 0.50 - - vdpps $22, (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - - 3.00 3.00 - - - - - 2.00 - - - - - - - vdpps $22, %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 1.00 1.00 - - - - - - 3.00 3.00 - - - - - 2.00 - - - 1.00 1.00 - - vdpps $22, (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - vextractf128 $1, %ymm0, %xmm2
-# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - vextractf128 $1, %ymm0, (%rax)
-# CHECK-NEXT: - - - - - 1.00 - - 0.50 0.50 - - - - 1.00 - - - - - - - - vextractps $1, %xmm0, %ecx
-# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - 1.00 - 1.00 - - - - - - 1.00 vextractps $1, %xmm0, (%rax)
-# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 1.00 - - - - - - - - vhaddpd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 1.00 - - - - 0.50 0.50 - - vhaddpd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 2.00 - - - - - - - - vhaddpd %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 1.00 1.00 - - - - - - 0.50 0.50 - - - - 2.00 - - - - 1.00 1.00 - - vhaddpd (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 1.00 - - - - - - - - vhaddps %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 1.00 - - - - 0.50 0.50 - - vhaddps (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 2.00 - - - - - - - - vhaddps %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 1.00 1.00 - - - - - - 0.50 0.50 - - - - 2.00 - - - - 1.00 1.00 - - vhaddps (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 1.00 - - - - - - - - vhsubpd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 1.00 - - - - 0.50 0.50 - - vhsubpd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 2.00 - - - - - - - - vhsubpd %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 1.00 1.00 - - - - - - 0.50 0.50 - - - - 2.00 - - - - 1.00 1.00 - - vhsubpd (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 1.00 - - - - - - - - vhsubps %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 1.00 - - - - 0.50 0.50 - - vhsubps (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 2.00 - - - - - - - - vhsubps %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 1.00 1.00 - - - - - - 0.50 0.50 - - - - 2.00 - - - - 1.00 1.00 - - vhsubps (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - vinsertf128 $1, %xmm0, %ymm1, %ymm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.50 0.50 - - - 0.50 0.50 - - vinsertf128 $1, (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - vinsertps $1, %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.50 0.50 - - - 0.50 0.50 - - vinsertps $1, (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - 0.50 0.50 - - vlddqu (%rax), %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - 0.50 0.50 - - vlddqu (%rax), %ymm2
+# CHECK-NEXT: 1.50 1.50 - - - 1.00 - - 0.50 0.50 - - - - 1.00 - - - - 1.50 1.50 - - vcomiss (%rax), %xmm1
+# CHECK-NEXT: - - - - - - - 1.00 - - - - - 1.00 1.00 - - - - - - - - vcvtdq2pd %xmm0, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - 1.00 - - - - - 1.00 1.00 - - - - 1.50 1.50 - - vcvtdq2pd (%rax), %xmm2
+# CHECK-NEXT: - - - - - - - 2.00 - - - - - 1.00 1.00 - - - - - - - - vcvtdq2pd %xmm0, %ymm2
+# CHECK-NEXT: 1.50 1.50 - - - - - 2.00 - - - - - 1.00 1.00 - - - - 1.50 1.50 - - vcvtdq2pd (%rax), %ymm2
+# CHECK-NEXT: - - - - - - - 1.00 - - - - - 1.00 1.00 - - - - - - - - vcvtdq2ps %xmm0, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - 1.00 - - - - - 1.00 1.00 - - - - 1.50 1.50 - - vcvtdq2ps (%rax), %xmm2
+# CHECK-NEXT: - - - - - - - 2.00 - - - - - 1.00 1.00 - - - - - - - - vcvtdq2ps %ymm0, %ymm2
+# CHECK-NEXT: 1.50 1.50 - - - - - 2.00 - - - - - 1.00 1.00 - - - - 1.50 1.50 - - vcvtdq2ps (%rax), %ymm2
+# CHECK-NEXT: - - - - - - - 1.00 - - - - - 1.00 1.00 - - - - - - - - vcvtpd2dq %xmm0, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - 1.00 - - - - - 1.00 1.00 - - - - 1.50 1.50 - - vcvtpd2dqx (%rax), %xmm2
+# CHECK-NEXT: - - - - - - - 2.00 0.50 0.50 - - - 1.00 1.00 - - - - - - - - vcvtpd2dq %ymm0, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - 2.00 0.50 0.50 - - - 1.00 1.00 - - - - 1.50 1.50 - - vcvtpd2dqy (%rax), %xmm2
+# CHECK-NEXT: - - - - - - - 1.00 - - - - - 1.00 1.00 - - - - - - - - vcvtpd2ps %xmm0, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - 1.00 - - - - - 1.00 1.00 - - - - 1.50 1.50 - - vcvtpd2psx (%rax), %xmm2
+# CHECK-NEXT: - - - - - - - 2.00 0.50 0.50 - - - 1.00 1.00 - - - - - - - - vcvtpd2ps %ymm0, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - 2.00 0.50 0.50 - - - 1.00 1.00 - - - - 1.50 1.50 - - vcvtpd2psy (%rax), %xmm2
+# CHECK-NEXT: - - - - - - - 1.00 - - - - - 1.00 1.00 - - - - - - - - vcvtps2dq %xmm0, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - 1.00 - - - - - 1.00 1.00 - - - - 1.50 1.50 - - vcvtps2dq (%rax), %xmm2
+# CHECK-NEXT: - - - - - - - 2.00 - - - - - 1.00 1.00 - - - - - - - - vcvtps2dq %ymm0, %ymm2
+# CHECK-NEXT: 1.50 1.50 - - - - - 2.00 - - - - - 1.00 1.00 - - - - 1.50 1.50 - - vcvtps2dq (%rax), %ymm2
+# CHECK-NEXT: - - - - - - - 1.00 - - - - - 1.00 1.00 - - - - - - - - vcvtps2pd %xmm0, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - 1.00 - - - - - 1.00 1.00 - - - - 1.50 1.50 - - vcvtps2pd (%rax), %xmm2
+# CHECK-NEXT: - - - - - - - 2.00 - - - - - 1.00 1.00 - - - - - - - - vcvtps2pd %xmm0, %ymm2
+# CHECK-NEXT: 1.50 1.50 - - - - - 2.00 - - - - - 1.00 1.00 - - - - 1.50 1.50 - - vcvtps2pd (%rax), %ymm2
+# CHECK-NEXT: - - - - - 1.00 - 1.00 0.50 0.50 - - - 1.00 1.00 - - - - - - - - vcvtsd2si %xmm0, %ecx
+# CHECK-NEXT: - - - - - 1.00 - 1.00 0.50 0.50 - - - 1.00 1.00 - - - - - - - - vcvtsd2si %xmm0, %rcx
+# CHECK-NEXT: 1.50 1.50 - - - 1.00 - 1.00 0.50 0.50 - - - 1.00 1.00 - - - - 1.50 1.50 - - vcvtsd2si (%rax), %ecx
+# CHECK-NEXT: 1.50 1.50 - - - 1.00 - 1.00 0.50 0.50 - - - 1.00 1.00 - - - - 1.50 1.50 - - vcvtsd2si (%rax), %rcx
+# CHECK-NEXT: - - - - - - - 2.00 - - - - - 1.00 1.00 - - - - - - - - vcvtsd2ss %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - 2.00 - - - - - 1.00 1.00 - - - - 1.50 1.50 - - vcvtsd2ss (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - 1.00 - - - - - 1.00 1.00 - - - - - - - - vcvtsi2sd %ecx, %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - - 1.00 - - - - - 1.00 1.00 - - - - - - - - vcvtsi2sd %rcx, %xmm0, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - 1.00 - - - - - 1.00 1.00 - - - - 1.50 1.50 - - vcvtsi2sdl (%rax), %xmm0, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - 1.00 - - - - - 1.00 1.00 - - - - 1.50 1.50 - - vcvtsi2sdq (%rax), %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - - 1.00 - - - - - 1.00 1.00 - - - - - - - - vcvtsi2ss %ecx, %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - - 1.00 - - - - - 1.00 1.00 - - - - - - - - vcvtsi2ss %rcx, %xmm0, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - 1.00 - - - - - 1.00 1.00 - - - - 1.50 1.50 - - vcvtsi2ssl (%rax), %xmm0, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - 1.00 - - - - - 1.00 1.00 - - - - 1.50 1.50 - - vcvtsi2ssq (%rax), %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - - 2.00 - - - - - 1.00 1.00 - - - - - - - - vcvtss2sd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - 2.00 - - - - - 1.00 1.00 - - - - 1.50 1.50 - - vcvtss2sd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - 1.00 0.50 0.50 - - - 1.00 1.00 - - - - - - - - vcvtss2si %xmm0, %ecx
+# CHECK-NEXT: - - - - - 1.00 - 1.00 0.50 0.50 - - - 1.00 1.00 - - - - - - - - vcvtss2si %xmm0, %rcx
+# CHECK-NEXT: 1.50 1.50 - - - 1.00 - 1.00 0.50 0.50 - - - 1.00 1.00 - - - - 1.50 1.50 - - vcvtss2si (%rax), %ecx
+# CHECK-NEXT: 1.50 1.50 - - - 1.00 - 1.00 0.50 0.50 - - - 1.00 1.00 - - - - 1.50 1.50 - - vcvtss2si (%rax), %rcx
+# CHECK-NEXT: - - - - - - - 1.00 - - - - - 1.00 1.00 - - - - - - - - vcvttpd2dq %xmm0, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - 1.00 - - - - - 1.00 1.00 - - - - 1.50 1.50 - - vcvttpd2dqx (%rax), %xmm2
+# CHECK-NEXT: - - - - - - - 2.00 0.50 0.50 - - - 1.00 1.00 - - - - - - - - vcvttpd2dq %ymm0, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - 2.00 0.50 0.50 - - - 1.00 1.00 - - - - 1.50 1.50 - - vcvttpd2dqy (%rax), %xmm2
+# CHECK-NEXT: - - - - - - - 1.00 - - - - - 1.00 1.00 - - - - - - - - vcvttps2dq %xmm0, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - 1.00 - - - - - 1.00 1.00 - - - - 1.50 1.50 - - vcvttps2dq (%rax), %xmm2
+# CHECK-NEXT: - - - - - - - 2.00 - - - - - 1.00 1.00 - - - - - - - - vcvttps2dq %ymm0, %ymm2
+# CHECK-NEXT: 1.50 1.50 - - - - - 2.00 - - - - - 1.00 1.00 - - - - 1.50 1.50 - - vcvttps2dq (%rax), %ymm2
+# CHECK-NEXT: - - - - - 1.00 - 1.00 0.50 0.50 - - - 1.00 1.00 - - - - - - - - vcvttsd2si %xmm0, %ecx
+# CHECK-NEXT: - - - - - 1.00 - 1.00 0.50 0.50 - - - 1.00 1.00 - - - - - - - - vcvttsd2si %xmm0, %rcx
+# CHECK-NEXT: 1.50 1.50 - - - 1.00 - 1.00 0.50 0.50 - - - 1.00 1.00 - - - - 1.50 1.50 - - vcvttsd2si (%rax), %ecx
+# CHECK-NEXT: 1.50 1.50 - - - 1.00 - 1.00 0.50 0.50 - - - 1.00 1.00 - - - - 1.50 1.50 - - vcvttsd2si (%rax), %rcx
+# CHECK-NEXT: - - - - - 1.00 - 1.00 0.50 0.50 - - - 1.00 1.00 - - - - - - - - vcvttss2si %xmm0, %ecx
+# CHECK-NEXT: - - - - - 1.00 - 1.00 0.50 0.50 - - - 1.00 1.00 - - - - - - - - vcvttss2si %xmm0, %rcx
+# CHECK-NEXT: 1.50 1.50 - - - 1.00 - 1.00 0.50 0.50 - - - 1.00 1.00 - - - - 1.50 1.50 - - vcvttss2si (%rax), %ecx
+# CHECK-NEXT: 1.50 1.50 - - - 1.00 - 1.00 0.50 0.50 - - - 1.00 1.00 - - - - 1.50 1.50 - - vcvttss2si (%rax), %rcx
+# CHECK-NEXT: - - - - - - - - 4.50 4.50 - - - - - 1.00 - - - - - - - vdivpd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - 4.50 4.50 - - - - - 1.00 - - - 1.50 1.50 - - vdivpd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - 9.00 9.00 - - - - - 2.00 - - - - - - - vdivpd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - 9.00 9.00 - - - - - 2.00 - - - 1.50 1.50 - - vdivpd (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - - 4.50 4.50 - - - - - 1.00 - - - - - - - vdivps %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - 4.50 4.50 - - - - - 1.00 - - - 1.50 1.50 - - vdivps (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - 9.00 9.00 - - - - - 2.00 - - - - - - - vdivps %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - 9.00 9.00 - - - - - 2.00 - - - 1.50 1.50 - - vdivps (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - - 4.50 4.50 - - - - - 1.00 - - - - - - - vdivsd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - 4.50 4.50 - - - - - 1.00 - - - 1.50 1.50 - - vdivsd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - 4.50 4.50 - - - - - 1.00 - - - - - - - vdivss %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - 4.50 4.50 - - - - - 1.00 - - - 1.50 1.50 - - vdivss (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - 5.00 5.00 - - - - - 1.00 - - - - - - - vdppd $22, %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - 5.00 5.00 - - - - - 1.00 - - - 1.50 1.50 - - vdppd $22, (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - 7.00 7.00 - - - - - 1.00 - - - - - - - vdpps $22, %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - 7.00 7.00 - - - - - 1.00 - - - 1.50 1.50 - - vdpps $22, (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - 12.50 12.50 - - - - - 2.00 - - - - - - - vdpps $22, %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - 12.50 12.50 - - - - - 2.00 - - - 1.50 1.50 - - vdpps $22, (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - - 1.00 1.00 - - - - 0.50 0.50 - - - - - - - vextractf128 $1, %ymm0, %xmm2
+# CHECK-NEXT: - - - - - - - - 2.00 2.00 - - - - 0.50 0.50 - - - - - - - vextractf128 $1, %ymm0, (%rax)
+# CHECK-NEXT: - - - - - 1.00 - - 1.50 1.50 - - - - 1.00 - - - - - - - - vextractps $1, %xmm0, %ecx
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - 1.00 - 2.00 - - - - - - 1.00 vextractps $1, %xmm0, (%rax)
+# CHECK-NEXT: - - - - - - - - 2.50 2.50 - - - - 1.00 - - - - - - - - vhaddpd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - 2.50 2.50 - - - - 1.00 - - - - 1.50 1.50 - - vhaddpd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - 4.00 4.00 - - - - 1.00 - - - - - - - - vhaddpd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - 4.00 4.00 - - - - 1.00 - - - - 1.50 1.50 - - vhaddpd (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - - 2.50 2.50 - - - - 1.00 - - - - - - - - vhaddps %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - 2.50 2.50 - - - - 1.00 - - - - 1.50 1.50 - - vhaddps (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - 4.00 4.00 - - - - 1.00 - - - - - - - - vhaddps %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - 4.00 4.00 - - - - 1.00 - - - - 1.50 1.50 - - vhaddps (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - - 2.50 2.50 - - - - 1.00 - - - - - - - - vhsubpd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - 2.50 2.50 - - - - 1.00 - - - - 1.50 1.50 - - vhsubpd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - 4.00 4.00 - - - - 1.00 - - - - - - - - vhsubpd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - 4.00 4.00 - - - - 1.00 - - - - 1.50 1.50 - - vhsubpd (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - - 2.50 2.50 - - - - 1.00 - - - - - - - - vhsubps %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - 2.50 2.50 - - - - 1.00 - - - - 1.50 1.50 - - vhsubps (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - 4.00 4.00 - - - - 1.00 - - - - - - - - vhsubps %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - 4.00 4.00 - - - - 1.00 - - - - 1.50 1.50 - - vhsubps (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - - 1.50 1.50 - - - - 0.50 0.50 - - - - - - - vinsertf128 $1, %xmm0, %ymm1, %ymm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - 1.50 1.50 - - - - 0.50 0.50 - - - 1.50 1.50 - - vinsertf128 $1, (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - - 1.00 1.00 - - - - 0.50 0.50 - - - - - - - vinsertps $1, %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - 1.00 1.00 - - - - 0.50 0.50 - - - 1.50 1.50 - - vinsertps $1, (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - - - 1.50 1.50 - - 0.50 0.50 - - - 1.50 1.50 - - vlddqu (%rax), %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - - - 1.50 1.50 - - 1.00 1.00 - - - 1.50 1.50 - - vlddqu (%rax), %ymm2
# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - - - - - - - 0.50 0.50 - - vldmxcsr (%rax)
-# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - 1.00 - 1.00 - - - - - - 1.00 vmaskmovdqu %xmm0, %xmm1
-# CHECK-NEXT: 0.50 0.50 - - - - - - 1.00 1.00 - - - - 0.50 0.50 - - - 0.50 0.50 - - vmaskmovpd (%rax), %xmm0, %xmm2
-# CHECK-NEXT: 1.00 1.00 - - - - - - 2.00 2.00 - - - - 1.00 1.00 - - - 1.00 1.00 - - vmaskmovpd (%rax), %ymm0, %ymm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - 2.00 2.00 - - - - 0.50 0.50 - - - - - - 1.00 vmaskmovpd %xmm0, %xmm1, (%rax)
-# CHECK-NEXT: 1.00 1.00 - - - - - - 2.00 2.00 - - - - 1.00 1.00 - - - - - - 2.00 vmaskmovpd %ymm0, %ymm1, (%rax)
-# CHECK-NEXT: 0.50 0.50 - - - - - - 1.00 1.00 - - - - 0.50 0.50 - - - 0.50 0.50 - - vmaskmovps (%rax), %xmm0, %xmm2
-# CHECK-NEXT: 1.00 1.00 - - - - - - 2.00 2.00 - - - - 1.00 1.00 - - - 1.00 1.00 - - vmaskmovps (%rax), %ymm0, %ymm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - 2.00 2.00 - - - - 0.50 0.50 - - - - - - 1.00 vmaskmovps %xmm0, %xmm1, (%rax)
-# CHECK-NEXT: 1.00 1.00 - - - - - - 2.00 2.00 - - - - 1.00 1.00 - - - - - - 2.00 vmaskmovps %ymm0, %ymm1, (%rax)
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - 1.00 - - 1.50 1.50 - - - - 1.00 vmaskmovdqu %xmm0, %xmm1
+# CHECK-NEXT: 1.50 1.50 - - - - - - 2.00 2.00 - - - - 0.50 0.50 - - - 1.50 1.50 - - vmaskmovpd (%rax), %xmm0, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - 2.00 2.00 - - - - 1.00 1.00 - - - 1.50 1.50 - - vmaskmovpd (%rax), %ymm0, %ymm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - 94.00 94.00 - - - - 0.50 0.50 - - - - - - 1.00 vmaskmovpd %xmm0, %xmm1, (%rax)
+# CHECK-NEXT: 1.00 1.00 - - - - - - 188.00 188.00 - - - - 1.00 1.00 - - - - - - 2.00 vmaskmovpd %ymm0, %ymm1, (%rax)
+# CHECK-NEXT: 1.50 1.50 - - - - - - 2.00 2.00 - - - - 0.50 0.50 - - - 1.50 1.50 - - vmaskmovps (%rax), %xmm0, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - 2.00 2.00 - - - - 1.00 1.00 - - - 1.50 1.50 - - vmaskmovps (%rax), %ymm0, %ymm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - 94.00 94.00 - - - - 0.50 0.50 - - - - - - 1.00 vmaskmovps %xmm0, %xmm1, (%rax)
+# CHECK-NEXT: 1.00 1.00 - - - - - - 188.00 188.00 - - - - 1.00 1.00 - - - - - - 2.00 vmaskmovps %ymm0, %ymm1, (%rax)
# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 1.00 - - - - - - - - vmaxpd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 1.00 - - - - 0.50 0.50 - - vmaxpd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 2.00 - - - - - - - - vmaxpd %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 1.00 1.00 - - - - - - 0.50 0.50 - - - - 2.00 - - - - 1.00 1.00 - - vmaxpd (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - 0.50 0.50 - - - - 1.00 - - - - 1.50 1.50 - - vmaxpd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - 1.00 1.00 - - - - 1.00 - - - - - - - - vmaxpd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - 1.00 1.00 - - - - 1.00 - - - - 1.50 1.50 - - vmaxpd (%rax), %ymm1, %ymm2
# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 1.00 - - - - - - - - vmaxps %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 1.00 - - - - 0.50 0.50 - - vmaxps (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 2.00 - - - - - - - - vmaxps %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 1.00 1.00 - - - - - - 0.50 0.50 - - - - 2.00 - - - - 1.00 1.00 - - vmaxps (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - 0.50 0.50 - - - - 1.00 - - - - 1.50 1.50 - - vmaxps (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - 1.00 1.00 - - - - 1.00 - - - - - - - - vmaxps %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - 1.00 1.00 - - - - 1.00 - - - - 1.50 1.50 - - vmaxps (%rax), %ymm1, %ymm2
# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 1.00 - - - - - - - - vmaxsd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 1.00 - - - - 0.50 0.50 - - vmaxsd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - 0.50 0.50 - - - - 1.00 - - - - 1.50 1.50 - - vmaxsd (%rax), %xmm1, %xmm2
# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 1.00 - - - - - - - - vmaxss %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 1.00 - - - - 0.50 0.50 - - vmaxss (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - 0.50 0.50 - - - - 1.00 - - - - 1.50 1.50 - - vmaxss (%rax), %xmm1, %xmm2
# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 1.00 - - - - - - - - vminpd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 1.00 - - - - 0.50 0.50 - - vminpd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 2.00 - - - - - - - - vminpd %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 1.00 1.00 - - - - - - 0.50 0.50 - - - - 2.00 - - - - 1.00 1.00 - - vminpd (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - 0.50 0.50 - - - - 1.00 - - - - 1.50 1.50 - - vminpd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - 1.00 1.00 - - - - 1.00 - - - - - - - - vminpd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - 1.00 1.00 - - - - 1.00 - - - - 1.50 1.50 - - vminpd (%rax), %ymm1, %ymm2
# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 1.00 - - - - - - - - vminps %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 1.00 - - - - 0.50 0.50 - - vminps (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 2.00 - - - - - - - - vminps %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 1.00 1.00 - - - - - - 0.50 0.50 - - - - 2.00 - - - - 1.00 1.00 - - vminps (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - 0.50 0.50 - - - - 1.00 - - - - 1.50 1.50 - - vminps (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - 1.00 1.00 - - - - 1.00 - - - - - - - - vminps %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - 1.00 1.00 - - - - 1.00 - - - - 1.50 1.50 - - vminps (%rax), %ymm1, %ymm2
# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 1.00 - - - - - - - - vminsd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 1.00 - - - - 0.50 0.50 - - vminsd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - 0.50 0.50 - - - - 1.00 - - - - 1.50 1.50 - - vminsd (%rax), %xmm1, %xmm2
# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 1.00 - - - - - - - - vminss %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 1.00 - - - - 0.50 0.50 - - vminss (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - vmovapd %xmm0, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - 1.00 - 1.00 - - - - - - 1.00 vmovapd %xmm0, (%rax)
-# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.50 0.50 - - - 0.50 0.50 - - vmovapd (%rax), %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - 0.50 0.50 - - - - 1.00 - - - - 1.50 1.50 - - vminss (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - 1.00 1.00 - - - - 0.50 0.50 - - - - - - - vmovapd %xmm0, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - 1.00 - - 1.50 1.50 - - - - 1.00 vmovapd %xmm0, (%rax)
+# CHECK-NEXT: 1.50 1.50 - - - - - - 1.50 1.50 - - - - 0.50 0.50 - - - 1.50 1.50 - - vmovapd (%rax), %xmm2
# CHECK-NEXT: - - - - - - - - 1.00 1.00 - - - - 1.00 1.00 - - - - - - - vmovapd %ymm0, %ymm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - 1.00 - 1.00 - - - - - - 1.00 vmovapd %ymm0, (%rax)
-# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.50 0.50 - - - 0.50 0.50 - - vmovapd (%rax), %ymm2
-# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - vmovaps %xmm0, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - 1.00 - 1.00 - - - - - - 1.00 vmovaps %xmm0, (%rax)
-# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.50 0.50 - - - 0.50 0.50 - - vmovaps (%rax), %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - 2.00 - - 18.00 18.00 - - - - 1.00 vmovapd %ymm0, (%rax)
+# CHECK-NEXT: 1.50 1.50 - - - - - - 1.50 1.50 - - - - 0.50 0.50 - - - 1.50 1.50 - - vmovapd (%rax), %ymm2
+# CHECK-NEXT: - - - - - - - - 1.00 1.00 - - - - 0.50 0.50 - - - - - - - vmovaps %xmm0, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - 1.00 - - 1.50 1.50 - - - - 1.00 vmovaps %xmm0, (%rax)
+# CHECK-NEXT: 1.50 1.50 - - - - - - 1.50 1.50 - - - - 0.50 0.50 - - - 1.50 1.50 - - vmovaps (%rax), %xmm2
# CHECK-NEXT: - - - - - - - - 1.00 1.00 - - - - 1.00 1.00 - - - - - - - vmovaps %ymm0, %ymm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - 1.00 - 1.00 - - - - - - 1.00 vmovaps %ymm0, (%rax)
-# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.50 0.50 - - - 0.50 0.50 - - vmovaps (%rax), %ymm2
-# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - vmovd %eax, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - 0.50 0.50 - - vmovd (%rax), %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - 2.00 - - 18.00 18.00 - - - - 1.00 vmovaps %ymm0, (%rax)
+# CHECK-NEXT: 1.50 1.50 - - - - - - 1.50 1.50 - - - - 0.50 0.50 - - - 1.50 1.50 - - vmovaps (%rax), %ymm2
+# CHECK-NEXT: - - - - - - - - 1.00 1.00 - - - - 0.50 0.50 - - - - - - - vmovd %eax, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - - - 1.50 1.50 - - 0.50 0.50 - - - 1.50 1.50 - - vmovd (%rax), %xmm2
# CHECK-NEXT: - - - - - 1.00 - - 0.50 0.50 - - - - 1.00 - - - - - - - - vmovd %xmm0, %ecx
-# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - 1.00 - 1.00 - - - - - - 1.00 vmovd %xmm0, (%rax)
-# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - vmovddup %xmm0, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.50 0.50 - - - 0.50 0.50 - - vmovddup (%rax), %xmm2
-# CHECK-NEXT: - - - - - - - - 1.00 1.00 - - - - 1.00 1.00 - - - - - - - vmovddup %ymm0, %ymm2
-# CHECK-NEXT: 1.00 1.00 - - - - - - 1.00 1.00 - - - - 1.00 1.00 - - - 1.00 1.00 - - vmovddup (%rax), %ymm2
-# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - - - - vmovdqa %xmm0, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - 1.00 - 1.00 - - - - - - 1.00 vmovdqa %xmm0, (%rax)
-# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - 0.50 0.50 - - vmovdqa (%rax), %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - 1.00 - - 1.50 1.50 - - - - 1.00 vmovd %xmm0, (%rax)
+# CHECK-NEXT: - - - - - - - - 1.00 1.00 - - - - 0.50 0.50 - - - - - - - vmovddup %xmm0, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - 1.00 1.00 - - - - 0.50 0.50 - - - 1.50 1.50 - - vmovddup (%rax), %xmm2
+# CHECK-NEXT: - - - - - - - - 2.00 2.00 - - - - 1.00 1.00 - - - - - - - vmovddup %ymm0, %ymm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - 2.00 2.00 - - - - 1.00 1.00 - - - 1.50 1.50 - - vmovddup (%rax), %ymm2
+# CHECK-NEXT: - - - - - - - - - - 1.00 1.00 - - 0.50 0.50 - - - - - - - vmovdqa %xmm0, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - 1.00 - - 1.50 1.50 - - - - 1.00 vmovdqa %xmm0, (%rax)
+# CHECK-NEXT: 1.50 1.50 - - - - - - - - 1.50 1.50 - - 0.50 0.50 - - - 1.50 1.50 - - vmovdqa (%rax), %xmm2
# CHECK-NEXT: - - - - - - - - - - 1.00 1.00 - - 1.00 1.00 - - - - - - - vmovdqa %ymm0, %ymm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - 1.00 - 1.00 - - - - - - 1.00 vmovdqa %ymm0, (%rax)
-# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - 0.50 0.50 - - vmovdqa (%rax), %ymm2
-# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - - - - vmovdqu %xmm0, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - 1.00 - 1.00 - - - - - - 1.00 vmovdqu %xmm0, (%rax)
-# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - 0.50 0.50 - - vmovdqu (%rax), %xmm2
+# CHECK-NEXT: 1.00 1.00 - - - - - - - - - - - 2.00 - - 18.00 18.00 - - - - 2.00 vmovdqa %ymm0, (%rax)
+# CHECK-NEXT: 1.50 1.50 - - - - - - - - 1.50 1.50 - - 1.00 1.00 - - - 1.50 1.50 - - vmovdqa (%rax), %ymm2
+# CHECK-NEXT: - - - - - - - - - - 1.00 1.00 - - 0.50 0.50 - - - - - - - vmovdqu %xmm0, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - 1.00 - - 1.50 1.50 - - - - 1.00 vmovdqu %xmm0, (%rax)
+# CHECK-NEXT: 1.50 1.50 - - - - - - - - 1.50 1.50 - - 0.50 0.50 - - - 1.50 1.50 - - vmovdqu (%rax), %xmm2
# CHECK-NEXT: - - - - - - - - - - 1.00 1.00 - - 1.00 1.00 - - - - - - - vmovdqu %ymm0, %ymm2
# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - 1.00 - 1.00 - - - - - - 1.00 vmovdqu %ymm0, (%rax)
-# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - 0.50 0.50 - - vmovdqu (%rax), %ymm2
-# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - vmovhlps %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - vmovlhps %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - 1.00 - 1.00 - - - - - - 1.00 vmovhpd %xmm0, (%rax)
-# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.50 0.50 - - - 0.50 0.50 - - vmovhpd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - 1.00 - 1.00 - - - - - - 1.00 vmovhps %xmm0, (%rax)
-# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.50 0.50 - - - 0.50 0.50 - - vmovhps (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - 1.00 - 1.00 - - - - - - 1.00 vmovlpd %xmm0, (%rax)
-# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.50 0.50 - - - 0.50 0.50 - - vmovlpd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - 1.00 - 1.00 - - - - - - 1.00 vmovlps %xmm0, (%rax)
-# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.50 0.50 - - - 0.50 0.50 - - vmovlps (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - - - 1.50 1.50 - - 1.00 1.00 - - - 1.50 1.50 - - vmovdqu (%rax), %ymm2
+# CHECK-NEXT: - - - - - - - - 1.00 1.00 - - - - 0.50 0.50 - - - - - - - vmovhlps %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - 1.00 1.00 - - - - 0.50 0.50 - - - - - - - vmovlhps %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - 1.00 - - 1.50 1.50 - - - - 1.00 vmovhpd %xmm0, (%rax)
+# CHECK-NEXT: 1.50 1.50 - - - - - - 1.00 1.00 - - - - 0.50 0.50 - - - 1.50 1.50 - - vmovhpd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - 1.00 - - 1.50 1.50 - - - - 1.00 vmovhps %xmm0, (%rax)
+# CHECK-NEXT: 1.50 1.50 - - - - - - 1.00 1.00 - - - - 0.50 0.50 - - - 1.50 1.50 - - vmovhps (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - 1.00 - - 1.50 1.50 - - - - 1.00 vmovlpd %xmm0, (%rax)
+# CHECK-NEXT: 1.50 1.50 - - - - - - 1.00 1.00 - - - - 0.50 0.50 - - - 1.50 1.50 - - vmovlpd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - 1.00 - - 1.50 1.50 - - - - 1.00 vmovlps %xmm0, (%rax)
+# CHECK-NEXT: 1.50 1.50 - - - - - - 1.00 1.00 - - - - 0.50 0.50 - - - 1.50 1.50 - - vmovlps (%rax), %xmm1, %xmm2
# CHECK-NEXT: - - - - - 1.00 - - 0.50 0.50 - - - - 1.00 - - - - - - - - vmovmskpd %xmm0, %ecx
# CHECK-NEXT: - - - - - 1.00 - - 0.50 0.50 - - - - 1.00 - - - - - - - - vmovmskpd %ymm0, %ecx
# CHECK-NEXT: - - - - - 1.00 - - 0.50 0.50 - - - - 1.00 - - - - - - - - vmovmskps %xmm0, %ecx
# CHECK-NEXT: - - - - - 1.00 - - 0.50 0.50 - - - - 1.00 - - - - - - - - vmovmskps %ymm0, %ecx
# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - 1.00 - 1.00 - - - - - - 1.00 vmovntdq %xmm0, (%rax)
# CHECK-NEXT: 1.00 1.00 - - - - - - - - - - - 2.00 - 2.00 - - - - - - 2.00 vmovntdq %ymm0, (%rax)
-# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - 0.50 0.50 - - vmovntdqa (%rax), %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - 0.50 0.50 - - vmovntdqa (%rax), %ymm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - - - 2.00 2.00 - - 0.50 0.50 - - - 1.50 1.50 - - vmovntdqa (%rax), %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - - - 2.00 2.00 - - 1.00 1.00 - - - 1.50 1.50 - - vmovntdqa (%rax), %ymm2
# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - 1.00 - 1.00 - - - - - - 1.00 vmovntpd %xmm0, (%rax)
# CHECK-NEXT: 1.00 1.00 - - - - - - - - - - - 2.00 - 2.00 - - - - - - 2.00 vmovntpd %ymm0, (%rax)
# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - 1.00 - 1.00 - - - - - - 1.00 vmovntps %xmm0, (%rax)
# CHECK-NEXT: 1.00 1.00 - - - - - - - - - - - 2.00 - 2.00 - - - - - - 2.00 vmovntps %ymm0, (%rax)
-# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - - - - vmovq %xmm0, %xmm2
-# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - vmovq %rax, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - 0.50 0.50 - - vmovq (%rax), %xmm2
+# CHECK-NEXT: - - - - - - - - - - 1.00 1.00 - - 0.50 0.50 - - - - - - - vmovq %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - - - 1.00 1.00 - - - - 0.50 0.50 - - - - - - - vmovq %rax, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - - - 1.50 1.50 - - 0.50 0.50 - - - 1.50 1.50 - - vmovq (%rax), %xmm2
# CHECK-NEXT: - - - - - 1.00 - - 0.50 0.50 - - - - 1.00 - - - - - - - - vmovq %xmm0, %rcx
-# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - 1.00 - 1.00 - - - - - - 1.00 vmovq %xmm0, (%rax)
-# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - vmovsd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - 1.00 - 1.00 - - - - - - 1.00 vmovsd %xmm0, (%rax)
-# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.50 0.50 - - - 0.50 0.50 - - vmovsd (%rax), %xmm2
-# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - vmovshdup %xmm0, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.50 0.50 - - - 0.50 0.50 - - vmovshdup (%rax), %xmm2
-# CHECK-NEXT: - - - - - - - - 1.00 1.00 - - - - 1.00 1.00 - - - - - - - vmovshdup %ymm0, %ymm2
-# CHECK-NEXT: 1.00 1.00 - - - - - - 1.00 1.00 - - - - 1.00 1.00 - - - 1.00 1.00 - - vmovshdup (%rax), %ymm2
-# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - vmovsldup %xmm0, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.50 0.50 - - - 0.50 0.50 - - vmovsldup (%rax), %xmm2
-# CHECK-NEXT: - - - - - - - - 1.00 1.00 - - - - 1.00 1.00 - - - - - - - vmovsldup %ymm0, %ymm2
-# CHECK-NEXT: 1.00 1.00 - - - - - - 1.00 1.00 - - - - 1.00 1.00 - - - 1.00 1.00 - - vmovsldup (%rax), %ymm2
-# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - vmovss %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - 1.00 - 1.00 - - - - - - 1.00 vmovss %xmm0, (%rax)
-# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.50 0.50 - - - 0.50 0.50 - - vmovss (%rax), %xmm2
-# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - vmovupd %xmm0, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - 1.00 - 1.00 - - - - - - 1.00 vmovupd %xmm0, (%rax)
-# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.50 0.50 - - - 0.50 0.50 - - vmovupd (%rax), %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - 1.00 - - 1.50 1.50 - - - - 1.00 vmovq %xmm0, (%rax)
+# CHECK-NEXT: - - - - - - - - 1.00 1.00 - - - - 0.50 0.50 - - - - - - - vmovsd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - 1.00 - - 1.50 1.50 - - - - 1.00 vmovsd %xmm0, (%rax)
+# CHECK-NEXT: 1.50 1.50 - - - - - - 1.50 1.50 - - - - 0.50 0.50 - - - 1.50 1.50 - - vmovsd (%rax), %xmm2
+# CHECK-NEXT: - - - - - - - - 1.00 1.00 - - - - 0.50 0.50 - - - - - - - vmovshdup %xmm0, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - 1.00 1.00 - - - - 0.50 0.50 - - - 1.50 1.50 - - vmovshdup (%rax), %xmm2
+# CHECK-NEXT: - - - - - - - - 2.00 2.00 - - - - 1.00 1.00 - - - - - - - vmovshdup %ymm0, %ymm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - 2.00 2.00 - - - - 1.00 1.00 - - - 1.50 1.50 - - vmovshdup (%rax), %ymm2
+# CHECK-NEXT: - - - - - - - - 1.00 1.00 - - - - 0.50 0.50 - - - - - - - vmovsldup %xmm0, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - 1.00 1.00 - - - - 0.50 0.50 - - - 1.50 1.50 - - vmovsldup (%rax), %xmm2
+# CHECK-NEXT: - - - - - - - - 2.00 2.00 - - - - 1.00 1.00 - - - - - - - vmovsldup %ymm0, %ymm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - 2.00 2.00 - - - - 1.00 1.00 - - - 1.50 1.50 - - vmovsldup (%rax), %ymm2
+# CHECK-NEXT: - - - - - - - - 1.00 1.00 - - - - 0.50 0.50 - - - - - - - vmovss %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - 1.00 - - 1.50 1.50 - - - - 1.00 vmovss %xmm0, (%rax)
+# CHECK-NEXT: 1.50 1.50 - - - - - - 1.50 1.50 - - - - 0.50 0.50 - - - 1.50 1.50 - - vmovss (%rax), %xmm2
+# CHECK-NEXT: - - - - - - - - 1.00 1.00 - - - - 0.50 0.50 - - - - - - - vmovupd %xmm0, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - 1.00 - - 1.50 1.50 - - - - 1.00 vmovupd %xmm0, (%rax)
+# CHECK-NEXT: 1.50 1.50 - - - - - - 1.50 1.50 - - - - 0.50 0.50 - - - 1.50 1.50 - - vmovupd (%rax), %xmm2
# CHECK-NEXT: - - - - - - - - 1.00 1.00 - - - - 1.00 1.00 - - - - - - - vmovupd %ymm0, %ymm2
# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - 1.00 - 1.00 - - - - - - 1.00 vmovupd %ymm0, (%rax)
-# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.50 0.50 - - - 0.50 0.50 - - vmovupd (%rax), %ymm2
-# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - vmovups %xmm0, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - 1.00 - 1.00 - - - - - - 1.00 vmovups %xmm0, (%rax)
-# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.50 0.50 - - - 0.50 0.50 - - vmovups (%rax), %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - 1.50 1.50 - - - - 0.50 0.50 - - - 1.50 1.50 - - vmovupd (%rax), %ymm2
+# CHECK-NEXT: - - - - - - - - 1.00 1.00 - - - - 0.50 0.50 - - - - - - - vmovups %xmm0, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - 1.00 - - 1.50 1.50 - - - - 1.00 vmovups %xmm0, (%rax)
+# CHECK-NEXT: 1.50 1.50 - - - - - - 1.50 1.50 - - - - 0.50 0.50 - - - 1.50 1.50 - - vmovups (%rax), %xmm2
# CHECK-NEXT: - - - - - - - - 1.00 1.00 - - - - 1.00 1.00 - - - - - - - vmovups %ymm0, %ymm2
# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - 1.00 - 1.00 - - - - - - 1.00 vmovups %ymm0, (%rax)
-# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.50 0.50 - - - 0.50 0.50 - - vmovups (%rax), %ymm2
-# CHECK-NEXT: - - - - - - - - - - - - 2.00 - 1.00 - - - - - - - - vmpsadbw $1, %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - 2.00 - 1.00 - - - - 0.50 0.50 - - vmpsadbw $1, (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - 1.50 1.50 - - - - 0.50 0.50 - - - 1.50 1.50 - - vmovups (%rax), %ymm2
+# CHECK-NEXT: - - - - - - - - - - - - 4.00 - 1.00 - - - - - - - - vmpsadbw $1, %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - - - - - 4.00 - 1.00 - - - - 1.50 1.50 - - vmpsadbw $1, (%rax), %xmm1, %xmm2
# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - - 1.00 - - - - - - - vmulpd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - - 1.00 - - - 0.50 0.50 - - vmulpd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - - 2.00 - - - - - - - vmulpd %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 1.00 1.00 - - - - - - 0.50 0.50 - - - - - 2.00 - - - 1.00 1.00 - - vmulpd (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - 0.50 0.50 - - - - - 1.00 - - - 1.50 1.50 - - vmulpd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - 1.00 1.00 - - - - - 1.00 - - - - - - - vmulpd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - 1.00 1.00 - - - - - 1.00 - - - 1.50 1.50 - - vmulpd (%rax), %ymm1, %ymm2
# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - - 1.00 - - - - - - - vmulps %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - - 1.00 - - - 0.50 0.50 - - vmulps (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - - 2.00 - - - - - - - vmulps %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 1.00 1.00 - - - - - - 0.50 0.50 - - - - - 2.00 - - - 1.00 1.00 - - vmulps (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - 0.50 0.50 - - - - - 1.00 - - - 1.50 1.50 - - vmulps (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - 1.00 1.00 - - - - - 1.00 - - - - - - - vmulps %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - 1.00 1.00 - - - - - 1.00 - - - 1.50 1.50 - - vmulps (%rax), %ymm1, %ymm2
# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - - 1.00 - - - - - - - vmulsd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - - 1.00 - - - 0.50 0.50 - - vmulsd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - 0.50 0.50 - - - - - 1.00 - - - 1.50 1.50 - - vmulsd (%rax), %xmm1, %xmm2
# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - - 1.00 - - - - - - - vmulss %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - - 1.00 - - - 0.50 0.50 - - vmulss (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - vorpd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.50 0.50 - - - 0.50 0.50 - - vorpd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - 0.50 0.50 - - - - - 1.00 - - - 1.50 1.50 - - vmulss (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - 1.00 1.00 - - - - 0.50 0.50 - - - - - - - vorpd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - 1.00 1.00 - - - - 0.50 0.50 - - - 1.50 1.50 - - vorpd (%rax), %xmm1, %xmm2
# CHECK-NEXT: - - - - - - - - 1.00 1.00 - - - - 1.00 1.00 - - - - - - - vorpd %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 1.00 1.00 - - - - - - 1.00 1.00 - - - - 1.00 1.00 - - - 1.00 1.00 - - vorpd (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - vorps %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.50 0.50 - - - 0.50 0.50 - - vorps (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - 1.00 1.00 - - - - 1.00 1.00 - - - 1.50 1.50 - - vorpd (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - - 1.00 1.00 - - - - 0.50 0.50 - - - - - - - vorps %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - 1.00 1.00 - - - - 0.50 0.50 - - - 1.50 1.50 - - vorps (%rax), %xmm1, %xmm2
# CHECK-NEXT: - - - - - - - - 1.00 1.00 - - - - 1.00 1.00 - - - - - - - vorps %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 1.00 1.00 - - - - - - 1.00 1.00 - - - - 1.00 1.00 - - - 1.00 1.00 - - vorps (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - - - - vpabsb %xmm0, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - 0.50 0.50 - - vpabsb (%rax), %xmm2
-# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - - - - vpabsd %xmm0, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - 0.50 0.50 - - vpabsd (%rax), %xmm2
-# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - - - - vpabsw %xmm0, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - 0.50 0.50 - - vpabsw (%rax), %xmm2
-# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - - - - vpackssdw %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - 0.50 0.50 - - vpackssdw (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - - - - vpacksswb %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - 0.50 0.50 - - vpacksswb (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - - - - vpackusdw %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - 0.50 0.50 - - vpackusdw (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - - - - vpackuswb %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - 0.50 0.50 - - vpackuswb (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - - - - vpaddb %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - 0.50 0.50 - - vpaddb (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - - - - vpaddd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - 0.50 0.50 - - vpaddd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - - - - vpaddq %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - 0.50 0.50 - - vpaddq (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - - - - vpaddsb %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - 0.50 0.50 - - vpaddsb (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - - - - vpaddsw %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - 0.50 0.50 - - vpaddsw (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - - - - vpaddusb %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - 0.50 0.50 - - vpaddusb (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - - - - vpaddusw %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - 0.50 0.50 - - vpaddusw (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - - - - vpaddw %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - 0.50 0.50 - - vpaddw (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - - - - vpalignr $1, %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - 0.50 0.50 - - vpalignr $1, (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - - - - vpand %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - 0.50 0.50 - - vpand (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - - - - vpandn %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - 0.50 0.50 - - vpandn (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - - - - vpavgb %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - 0.50 0.50 - - vpavgb (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - - - - vpavgw %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - 0.50 0.50 - - vpavgw (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - - - - 2.00 2.00 - - 0.50 0.50 - - - - - - - vpblendvb %xmm3, %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - - - 2.00 2.00 - - 0.50 0.50 - - - 0.50 0.50 - - vpblendvb %xmm3, (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - 1.00 1.00 - - - - 1.00 1.00 - - - 1.50 1.50 - - vorps (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - - - - 1.00 1.00 - - 0.50 0.50 - - - - - - - vpabsb %xmm0, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - - - 1.00 1.00 - - 0.50 0.50 - - - 1.50 1.50 - - vpabsb (%rax), %xmm2
+# CHECK-NEXT: - - - - - - - - - - 1.00 1.00 - - 0.50 0.50 - - - - - - - vpabsd %xmm0, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - - - 1.00 1.00 - - 0.50 0.50 - - - 1.50 1.50 - - vpabsd (%rax), %xmm2
+# CHECK-NEXT: - - - - - - - - - - 1.00 1.00 - - 0.50 0.50 - - - - - - - vpabsw %xmm0, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - - - 1.00 1.00 - - 0.50 0.50 - - - 1.50 1.50 - - vpabsw (%rax), %xmm2
+# CHECK-NEXT: - - - - - - - - - - 1.00 1.00 - - 0.50 0.50 - - - - - - - vpackssdw %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - - - 1.00 1.00 - - 0.50 0.50 - - - 1.50 1.50 - - vpackssdw (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - - - 1.00 1.00 - - 0.50 0.50 - - - - - - - vpacksswb %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - - - 1.00 1.00 - - 0.50 0.50 - - - 1.50 1.50 - - vpacksswb (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - - - 1.00 1.00 - - 0.50 0.50 - - - - - - - vpackusdw %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - - - 1.00 1.00 - - 0.50 0.50 - - - 1.50 1.50 - - vpackusdw (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - - - 1.00 1.00 - - 0.50 0.50 - - - - - - - vpackuswb %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - - - 1.00 1.00 - - 0.50 0.50 - - - 1.50 1.50 - - vpackuswb (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - - - 1.00 1.00 - - 0.50 0.50 - - - - - - - vpaddb %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - - - 1.00 1.00 - - 0.50 0.50 - - - 1.50 1.50 - - vpaddb (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - - - 1.00 1.00 - - 0.50 0.50 - - - - - - - vpaddd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - - - 1.00 1.00 - - 0.50 0.50 - - - 1.50 1.50 - - vpaddd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - - - 1.00 1.00 - - 0.50 0.50 - - - - - - - vpaddq %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - - - 1.00 1.00 - - 0.50 0.50 - - - 1.50 1.50 - - vpaddq (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - - - 1.00 1.00 - - 0.50 0.50 - - - - - - - vpaddsb %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - - - 1.00 1.00 - - 0.50 0.50 - - - 1.50 1.50 - - vpaddsb (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - - - 1.00 1.00 - - 0.50 0.50 - - - - - - - vpaddsw %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - - - 1.00 1.00 - - 0.50 0.50 - - - 1.50 1.50 - - vpaddsw (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - - - 1.00 1.00 - - 0.50 0.50 - - - - - - - vpaddusb %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - - - 1.00 1.00 - - 0.50 0.50 - - - 1.50 1.50 - - vpaddusb (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - - - 1.00 1.00 - - 0.50 0.50 - - - - - - - vpaddusw %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - - - 1.00 1.00 - - 0.50 0.50 - - - 1.50 1.50 - - vpaddusw (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - - - 1.00 1.00 - - 0.50 0.50 - - - - - - - vpaddw %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - - - 1.00 1.00 - - 0.50 0.50 - - - 1.50 1.50 - - vpaddw (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - - - 1.00 1.00 - - 0.50 0.50 - - - - - - - vpalignr $1, %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - - - 1.00 1.00 - - 0.50 0.50 - - - 1.50 1.50 - - vpalignr $1, (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - - - 1.00 1.00 - - 0.50 0.50 - - - - - - - vpand %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - - - 1.00 1.00 - - 0.50 0.50 - - - 1.50 1.50 - - vpand (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - - - 1.00 1.00 - - 0.50 0.50 - - - - - - - vpandn %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - - - 1.00 1.00 - - 0.50 0.50 - - - 1.50 1.50 - - vpandn (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - - - 1.00 1.00 - - 0.50 0.50 - - - - - - - vpavgb %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - - - 1.00 1.00 - - 0.50 0.50 - - - 1.50 1.50 - - vpavgb (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - - - 1.00 1.00 - - 0.50 0.50 - - - - - - - vpavgw %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - - - 1.00 1.00 - - 0.50 0.50 - - - 1.50 1.50 - - vpavgw (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - - - 1.00 1.00 - - 0.50 0.50 - - - - - - - vpblendvb %xmm3, %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - - - 1.00 1.00 - - 0.50 0.50 - - - 1.50 1.50 - - vpblendvb %xmm3, (%rax), %xmm1, %xmm2
# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - - - - vpblendw $11, %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - 0.50 0.50 - - vpblendw $11, (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - - - - - - 1.00 - 1.00 - - - - - - - - vpclmulqdq $11, %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - 1.00 - 1.00 - - - - 0.50 0.50 - - vpclmulqdq $11, (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - - - - vpcmpeqb %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - 0.50 0.50 - - vpcmpeqb (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - - - - vpcmpeqd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - 0.50 0.50 - - vpcmpeqd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - - - - vpcmpeqq %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - 0.50 0.50 - - vpcmpeqq (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - - - - vpcmpeqw %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - 0.50 0.50 - - vpcmpeqw (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 4.00 4.00 - - - 1.00 - - 0.50 0.50 2.00 2.00 - - - 1.00 - - - 3.00 3.00 - 2.00 vpcmpestri $1, %xmm0, %xmm2
-# CHECK-NEXT: 4.50 4.50 - - - 1.00 - - 0.50 0.50 2.00 2.00 - - - 1.00 - - - 3.50 3.50 - 2.00 vpcmpestri $1, (%rax), %xmm2
-# CHECK-NEXT: 4.00 4.00 - - - 1.00 - - 0.50 0.50 2.00 2.00 - - - 1.00 - - - 3.00 3.00 - 2.00 vpcmpestrm $1, %xmm0, %xmm2
-# CHECK-NEXT: 4.50 4.50 - - - 1.00 - - 0.50 0.50 2.00 2.00 - - - 1.00 - - - 3.50 3.50 - 2.00 vpcmpestrm $1, (%rax), %xmm2
-# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - - - - vpcmpgtb %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - 0.50 0.50 - - vpcmpgtb (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - - - - vpcmpgtd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - 0.50 0.50 - - vpcmpgtd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - - - - vpcmpgtq %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - 0.50 0.50 - - vpcmpgtq (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - - - - vpcmpgtw %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - 0.50 0.50 - - vpcmpgtw (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - 1.00 - - 1.00 1.00 - - - - - 1.00 - - - - - - - vpcmpistri $1, %xmm0, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - 1.00 - - 1.00 1.00 - - - - - 1.00 - - - 0.50 0.50 - - vpcmpistri $1, (%rax), %xmm2
-# CHECK-NEXT: - - - - - 1.00 - - 1.00 1.00 - - - - - 1.00 - - - - - - - vpcmpistrm $1, %xmm0, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - 1.00 - - 1.00 1.00 - - - - - 1.00 - - - 0.50 0.50 - - vpcmpistrm $1, (%rax), %xmm2
-# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - vperm2f128 $1, %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - vperm2f128 $1, (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - vpermilpd $1, %xmm0, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.50 0.50 - - - 0.50 0.50 - - vpermilpd $1, (%rax), %xmm2
-# CHECK-NEXT: - - - - - - - - 2.00 2.00 - - - - 0.50 0.50 - - - - - - - vpermilpd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - 2.00 2.00 - - - - 0.50 0.50 - - - 0.50 0.50 - - vpermilpd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - - 1.00 1.00 - - - - 1.00 1.00 - - - - - - - vpermilpd $1, %ymm0, %ymm2
-# CHECK-NEXT: 1.00 1.00 - - - - - - 1.00 1.00 - - - - 1.00 1.00 - - - 1.00 1.00 - - vpermilpd $1, (%rax), %ymm2
-# CHECK-NEXT: - - - - - - - - 3.00 3.00 - - - - 1.00 1.00 - - - - - - - vpermilpd %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 1.00 1.00 - - - - - - 3.00 3.00 - - - - 1.00 1.00 - - - 1.00 1.00 - - vpermilpd (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - vpermilps $1, %xmm0, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.50 0.50 - - - 0.50 0.50 - - vpermilps $1, (%rax), %xmm2
-# CHECK-NEXT: - - - - - - - - 2.00 2.00 - - - - 0.50 0.50 - - - - - - - vpermilps %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - 2.00 2.00 - - - - 0.50 0.50 - - - 0.50 0.50 - - vpermilps (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - - 1.00 1.00 - - - - 1.00 1.00 - - - - - - - vpermilps $1, %ymm0, %ymm2
-# CHECK-NEXT: 1.00 1.00 - - - - - - 1.00 1.00 - - - - 1.00 1.00 - - - 1.00 1.00 - - vpermilps $1, (%rax), %ymm2
-# CHECK-NEXT: - - - - - - - - 3.00 3.00 - - - - 1.00 1.00 - - - - - - - vpermilps %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 1.00 1.00 - - - - - - 3.00 3.00 - - - - 1.00 1.00 - - - 1.00 1.00 - - vpermilps (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - - - - 1.00 - - 0.50 0.50 - - - - 1.00 - - - - - - - - vpextrb $1, %xmm0, %ecx
-# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - 1.00 - 1.00 - - - - - - 1.00 vpextrb $1, %xmm0, (%rax)
-# CHECK-NEXT: - - - - - 1.00 - - 0.50 0.50 - - - - 1.00 - - - - - - - - vpextrd $1, %xmm0, %ecx
-# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - 1.00 - 1.00 - - - - - - 1.00 vpextrd $1, %xmm0, (%rax)
-# CHECK-NEXT: - - - - - 1.00 - - 0.50 0.50 - - - - 1.00 - - - - - - - - vpextrq $1, %xmm0, %rcx
-# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - 1.00 - 1.00 - - - - - - 1.00 vpextrq $1, %xmm0, (%rax)
-# CHECK-NEXT: - - - - - 1.00 - - 0.50 0.50 - - - - 1.00 - - - - - - - - vpextrw $1, %xmm0, %ecx
-# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - 1.00 - 1.00 - - - - - - 1.00 vpextrw $1, %xmm0, (%rax)
-# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - - - - vphaddd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - 0.50 0.50 - - vphaddd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - - - - vphaddsw %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - 0.50 0.50 - - vphaddsw (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - - - - vphaddw %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - 0.50 0.50 - - vphaddw (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - 1.50 1.50 - - vpblendw $11, (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - - - - - 7.00 - 1.00 - - - - - - - - vpclmulqdq $11, %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - - - - - 7.00 - 1.00 - - - - 1.50 1.50 - - vpclmulqdq $11, (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - - - 1.00 1.00 - - 0.50 0.50 - - - - - - - vpcmpeqb %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - - - 1.00 1.00 - - 0.50 0.50 - - - 1.50 1.50 - - vpcmpeqb (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - - - 1.00 1.00 - - 0.50 0.50 - - - - - - - vpcmpeqd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - - - 1.00 1.00 - - 0.50 0.50 - - - 1.50 1.50 - - vpcmpeqd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - - - 1.00 1.00 - - 0.50 0.50 - - - - - - - vpcmpeqq %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - - - 1.00 1.00 - - 0.50 0.50 - - - 1.50 1.50 - - vpcmpeqq (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - - - 1.00 1.00 - - 0.50 0.50 - - - - - - - vpcmpeqw %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - - - 1.00 1.00 - - 0.50 0.50 - - - 1.50 1.50 - - vpcmpeqw (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 10.00 10.00 - - - 1.00 - - 0.50 0.50 5.00 5.00 - - - 1.00 - - - 5.00 5.00 - 10.00 vpcmpestri $1, %xmm0, %xmm2
+# CHECK-NEXT: 11.50 11.50 - - - 1.00 - - 0.50 0.50 5.00 5.00 - - - 1.00 - - - 6.50 6.50 - 10.00 vpcmpestri $1, (%rax), %xmm2
+# CHECK-NEXT: 10.00 10.00 - - - 1.00 - - 0.50 0.50 5.00 5.00 - - - 1.00 - - - 5.00 5.00 - 10.00 vpcmpestrm $1, %xmm0, %xmm2
+# CHECK-NEXT: 11.50 11.50 - - - 1.00 - - 0.50 0.50 5.00 5.00 - - - 1.00 - - - 6.50 6.50 - 10.00 vpcmpestrm $1, (%rax), %xmm2
+# CHECK-NEXT: - - - - - - - - - - 1.00 1.00 - - 0.50 0.50 - - - - - - - vpcmpgtb %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - - - 1.00 1.00 - - 0.50 0.50 - - - 1.50 1.50 - - vpcmpgtb (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - - - 1.00 1.00 - - 0.50 0.50 - - - - - - - vpcmpgtd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - - - 1.00 1.00 - - 0.50 0.50 - - - 1.50 1.50 - - vpcmpgtd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - - - 1.00 1.00 - - 0.50 0.50 - - - - - - - vpcmpgtq %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - - - 1.00 1.00 - - 0.50 0.50 - - - 1.50 1.50 - - vpcmpgtq (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - - - 1.00 1.00 - - 0.50 0.50 - - - - - - - vpcmpgtw %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - - - 1.00 1.00 - - 0.50 0.50 - - - 1.50 1.50 - - vpcmpgtw (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - 3.00 3.00 - - - - - 1.00 - - - - - - - vpcmpistri $1, %xmm0, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - 1.00 - - 3.00 3.00 - - - - - 1.00 - - - 1.50 1.50 - - vpcmpistri $1, (%rax), %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - 4.00 4.00 - - - - - 1.00 - - - - - - - vpcmpistrm $1, %xmm0, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - 1.00 - - 4.00 4.00 - - - - - 1.00 - - - 1.50 1.50 - - vpcmpistrm $1, (%rax), %xmm2
+# CHECK-NEXT: - - - - - - - - 3.00 3.00 - - - - 0.50 0.50 - - - - - - - vperm2f128 $1, %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - - 4.00 4.00 - - - - 0.50 0.50 - - - - - - - vperm2f128 $1, (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - - 1.00 1.00 - - - - 0.50 0.50 - - - - - - - vpermilpd $1, %xmm0, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - 1.00 1.00 - - - - 0.50 0.50 - - - 1.50 1.50 - - vpermilpd $1, (%rax), %xmm2
+# CHECK-NEXT: - - - - - - - - 1.00 1.00 - - - - 0.50 0.50 - - - - - - - vpermilpd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - 1.00 1.00 - - - - 0.50 0.50 - - - 1.50 1.50 - - vpermilpd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - 2.00 2.00 - - - - 1.00 1.00 - - - - - - - vpermilpd $1, %ymm0, %ymm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - 2.00 2.00 - - - - 1.00 1.00 - - - 1.50 1.50 - - vpermilpd $1, (%rax), %ymm2
+# CHECK-NEXT: - - - - - - - - 2.00 2.00 - - - - 1.00 1.00 - - - - - - - vpermilpd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - 2.00 2.00 - - - - 1.00 1.00 - - - 1.50 1.50 - - vpermilpd (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - - 1.00 1.00 - - - - 0.50 0.50 - - - - - - - vpermilps $1, %xmm0, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - 1.00 1.00 - - - - 0.50 0.50 - - - 1.50 1.50 - - vpermilps $1, (%rax), %xmm2
+# CHECK-NEXT: - - - - - - - - 1.00 1.00 - - - - 0.50 0.50 - - - - - - - vpermilps %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - 1.00 1.00 - - - - 0.50 0.50 - - - 1.50 1.50 - - vpermilps (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - 2.00 2.00 - - - - 1.00 1.00 - - - - - - - vpermilps $1, %ymm0, %ymm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - 2.00 2.00 - - - - 1.00 1.00 - - - 1.50 1.50 - - vpermilps $1, (%rax), %ymm2
+# CHECK-NEXT: - - - - - - - - 2.00 2.00 - - - - 1.00 1.00 - - - - - - - vpermilps %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - 2.00 2.00 - - - - 1.00 1.00 - - - 1.50 1.50 - - vpermilps (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - 1.00 - - 1.50 1.50 - - - - 1.00 - - - - - - - - vpextrb $1, %xmm0, %ecx
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - 1.00 - 2.00 - - - - - - 1.00 vpextrb $1, %xmm0, (%rax)
+# CHECK-NEXT: - - - - - 1.00 - - 1.50 1.50 - - - - 1.00 - - - - - - - - vpextrd $1, %xmm0, %ecx
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - 1.00 - 2.00 - - - - - - 1.00 vpextrd $1, %xmm0, (%rax)
+# CHECK-NEXT: - - - - - 1.00 - - 1.50 1.50 - - - - 1.00 - - - - - - - - vpextrq $1, %xmm0, %rcx
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - 1.00 - 2.00 - - - - - - 1.00 vpextrq $1, %xmm0, (%rax)
+# CHECK-NEXT: - - - - - 1.00 - - 1.50 1.50 - - - - 1.00 - - - - - - - - vpextrw $1, %xmm0, %ecx
+# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - 1.00 - 2.00 - - - - - - 1.00 vpextrw $1, %xmm0, (%rax)
+# CHECK-NEXT: - - - - - - - - - - 2.00 2.00 - - 0.50 0.50 - - - - - - - vphaddd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - - - 2.00 2.00 - - 0.50 0.50 - - - 1.50 1.50 - - vphaddd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - - - 2.00 2.00 - - 0.50 0.50 - - - - - - - vphaddsw %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - - - 2.00 2.00 - - 0.50 0.50 - - - 1.50 1.50 - - vphaddsw (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - - - 2.00 2.00 - - 0.50 0.50 - - - - - - - vphaddw %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - - - 2.00 2.00 - - 0.50 0.50 - - - 1.50 1.50 - - vphaddw (%rax), %xmm1, %xmm2
# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 1.00 - - - - - - - - vphminposuw %xmm0, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 1.00 - - - - 0.50 0.50 - - vphminposuw (%rax), %xmm2
-# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - - - - vphsubd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - 0.50 0.50 - - vphsubd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - - - - vphsubsw %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - 0.50 0.50 - - vphsubsw (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - - - - vphsubw %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - 0.50 0.50 - - vphsubw (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - - - - vpinsrb $1, %eax, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - 0.50 0.50 - - vpinsrb $1, (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - - - - vpinsrd $1, %eax, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - 0.50 0.50 - - vpinsrd $1, (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - - - - vpinsrq $1, %rax, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - 0.50 0.50 - - vpinsrq $1, (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - - - - vpinsrw $1, %eax, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - 0.50 0.50 - - vpinsrw $1, (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - - - 0.50 0.50 - - 1.00 - - - - 1.50 1.50 - - vphminposuw (%rax), %xmm2
+# CHECK-NEXT: - - - - - - - - - - 2.00 2.00 - - 0.50 0.50 - - - - - - - vphsubd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - - - 2.00 2.00 - - 0.50 0.50 - - - 1.50 1.50 - - vphsubd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - - - 2.00 2.00 - - 0.50 0.50 - - - - - - - vphsubsw %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - - - 2.00 2.00 - - 0.50 0.50 - - - 1.50 1.50 - - vphsubsw (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - - - 2.00 2.00 - - 0.50 0.50 - - - - - - - vphsubw %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - - - 2.00 2.00 - - 0.50 0.50 - - - 1.50 1.50 - - vphsubw (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - - - 1.50 1.50 - - 0.50 0.50 - - - - - - - vpinsrb $1, %eax, %xmm1, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - - - 2.00 2.00 - - 0.50 0.50 - - - 1.50 1.50 - - vpinsrb $1, (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - - - 1.50 1.50 - - 0.50 0.50 - - - - - - - vpinsrd $1, %eax, %xmm1, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - - - 2.00 2.00 - - 0.50 0.50 - - - 1.50 1.50 - - vpinsrd $1, (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - - - 1.50 1.50 - - 0.50 0.50 - - - - - - - vpinsrq $1, %rax, %xmm1, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - - - 2.00 2.00 - - 0.50 0.50 - - - 1.50 1.50 - - vpinsrq $1, (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - - - 1.50 1.50 - - 0.50 0.50 - - - - - - - vpinsrw $1, %eax, %xmm1, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - - - 2.00 2.00 - - 0.50 0.50 - - - 1.50 1.50 - - vpinsrw $1, (%rax), %xmm1, %xmm2
# CHECK-NEXT: - - - - - - - - - - - - 1.00 - 1.00 - - - - - - - - vpmaddubsw %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - 1.00 - 1.00 - - - - 0.50 0.50 - - vpmaddubsw (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - - - - - 1.00 - 1.00 - - - - 1.50 1.50 - - vpmaddubsw (%rax), %xmm1, %xmm2
# CHECK-NEXT: - - - - - - - - - - - - 1.00 - 1.00 - - - - - - - - vpmaddwd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - 1.00 - 1.00 - - - - 0.50 0.50 - - vpmaddwd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - - - - vpmaxsb %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - 0.50 0.50 - - vpmaxsb (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - - - - vpmaxsd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - 0.50 0.50 - - vpmaxsd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - - - - vpmaxsw %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - 0.50 0.50 - - vpmaxsw (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - - - - vpmaxub %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - 0.50 0.50 - - vpmaxub (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - - - - vpmaxud %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - 0.50 0.50 - - vpmaxud (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - - - - vpmaxuw %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - 0.50 0.50 - - vpmaxuw (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - - - - vpminsb %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - 0.50 0.50 - - vpminsb (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - - - - vpminsd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - 0.50 0.50 - - vpminsd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - - - - vpminsw %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - 0.50 0.50 - - vpminsw (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - - - - vpminub %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - 0.50 0.50 - - vpminub (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - - - - vpminud %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - 0.50 0.50 - - vpminud (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - - - - vpminuw %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - 0.50 0.50 - - vpminuw (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - - - - - 1.00 - 1.00 - - - - 1.50 1.50 - - vpmaddwd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - - - 1.00 1.00 - - 0.50 0.50 - - - - - - - vpmaxsb %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - - - 1.00 1.00 - - 0.50 0.50 - - - 1.50 1.50 - - vpmaxsb (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - - - 1.00 1.00 - - 0.50 0.50 - - - - - - - vpmaxsd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - - - 1.00 1.00 - - 0.50 0.50 - - - 1.50 1.50 - - vpmaxsd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - - - 1.00 1.00 - - 0.50 0.50 - - - - - - - vpmaxsw %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - - - 1.00 1.00 - - 0.50 0.50 - - - 1.50 1.50 - - vpmaxsw (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - - - 1.00 1.00 - - 0.50 0.50 - - - - - - - vpmaxub %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - - - 1.00 1.00 - - 0.50 0.50 - - - 1.50 1.50 - - vpmaxub (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - - - 1.00 1.00 - - 0.50 0.50 - - - - - - - vpmaxud %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - - - 1.00 1.00 - - 0.50 0.50 - - - 1.50 1.50 - - vpmaxud (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - - - 1.00 1.00 - - 0.50 0.50 - - - - - - - vpmaxuw %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - - - 1.00 1.00 - - 0.50 0.50 - - - 1.50 1.50 - - vpmaxuw (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - - - 1.00 1.00 - - 0.50 0.50 - - - - - - - vpminsb %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - - - 1.00 1.00 - - 0.50 0.50 - - - 1.50 1.50 - - vpminsb (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - - - 1.00 1.00 - - 0.50 0.50 - - - - - - - vpminsd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - - - 1.00 1.00 - - 0.50 0.50 - - - 1.50 1.50 - - vpminsd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - - - 1.00 1.00 - - 0.50 0.50 - - - - - - - vpminsw %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - - - 1.00 1.00 - - 0.50 0.50 - - - 1.50 1.50 - - vpminsw (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - - - 1.00 1.00 - - 0.50 0.50 - - - - - - - vpminub %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - - - 1.00 1.00 - - 0.50 0.50 - - - 1.50 1.50 - - vpminub (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - - - 1.00 1.00 - - 0.50 0.50 - - - - - - - vpminud %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - - - 1.00 1.00 - - 0.50 0.50 - - - 1.50 1.50 - - vpminud (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - - - 1.00 1.00 - - 0.50 0.50 - - - - - - - vpminuw %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - - - 1.00 1.00 - - 0.50 0.50 - - - 1.50 1.50 - - vpminuw (%rax), %xmm1, %xmm2
# CHECK-NEXT: - - - - - 1.00 - - 0.50 0.50 - - - - 1.00 - - - - - - - - vpmovmskb %xmm0, %ecx
-# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - - - - vpmovsxbd %xmm0, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - 0.50 0.50 - - vpmovsxbd (%rax), %xmm2
-# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - - - - vpmovsxbq %xmm0, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - 0.50 0.50 - - vpmovsxbq (%rax), %xmm2
-# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - - - - vpmovsxbw %xmm0, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - 0.50 0.50 - - vpmovsxbw (%rax), %xmm2
-# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - - - - vpmovsxdq %xmm0, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - 0.50 0.50 - - vpmovsxdq (%rax), %xmm2
-# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - - - - vpmovsxwd %xmm0, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - 0.50 0.50 - - vpmovsxwd (%rax), %xmm2
-# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - - - - vpmovsxwq %xmm0, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - 0.50 0.50 - - vpmovsxwq (%rax), %xmm2
-# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - - - - vpmovzxbd %xmm0, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - 0.50 0.50 - - vpmovzxbd (%rax), %xmm2
-# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - - - - vpmovzxbq %xmm0, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - 0.50 0.50 - - vpmovzxbq (%rax), %xmm2
-# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - - - - vpmovzxbw %xmm0, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - 0.50 0.50 - - vpmovzxbw (%rax), %xmm2
-# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - - - - vpmovzxdq %xmm0, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - 0.50 0.50 - - vpmovzxdq (%rax), %xmm2
-# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - - - - vpmovzxwd %xmm0, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - 0.50 0.50 - - vpmovzxwd (%rax), %xmm2
-# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - - - - vpmovzxwq %xmm0, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - 0.50 0.50 - - vpmovzxwq (%rax), %xmm2
+# CHECK-NEXT: - - - - - - - - - - 1.00 1.00 - - 0.50 0.50 - - - - - - - vpmovsxbd %xmm0, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - - - 1.00 1.00 - - 0.50 0.50 - - - 1.50 1.50 - - vpmovsxbd (%rax), %xmm2
+# CHECK-NEXT: - - - - - - - - - - 1.00 1.00 - - 0.50 0.50 - - - - - - - vpmovsxbq %xmm0, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - - - 1.00 1.00 - - 0.50 0.50 - - - 1.50 1.50 - - vpmovsxbq (%rax), %xmm2
+# CHECK-NEXT: - - - - - - - - - - 1.00 1.00 - - 0.50 0.50 - - - - - - - vpmovsxbw %xmm0, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - - - 1.00 1.00 - - 0.50 0.50 - - - 1.50 1.50 - - vpmovsxbw (%rax), %xmm2
+# CHECK-NEXT: - - - - - - - - - - 1.00 1.00 - - 0.50 0.50 - - - - - - - vpmovsxdq %xmm0, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - - - 1.00 1.00 - - 0.50 0.50 - - - 1.50 1.50 - - vpmovsxdq (%rax), %xmm2
+# CHECK-NEXT: - - - - - - - - - - 1.00 1.00 - - 0.50 0.50 - - - - - - - vpmovsxwd %xmm0, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - - - 1.00 1.00 - - 0.50 0.50 - - - 1.50 1.50 - - vpmovsxwd (%rax), %xmm2
+# CHECK-NEXT: - - - - - - - - - - 1.00 1.00 - - 0.50 0.50 - - - - - - - vpmovsxwq %xmm0, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - - - 1.00 1.00 - - 0.50 0.50 - - - 1.50 1.50 - - vpmovsxwq (%rax), %xmm2
+# CHECK-NEXT: - - - - - - - - - - 1.00 1.00 - - 0.50 0.50 - - - - - - - vpmovzxbd %xmm0, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - - - 1.00 1.00 - - 0.50 0.50 - - - 1.50 1.50 - - vpmovzxbd (%rax), %xmm2
+# CHECK-NEXT: - - - - - - - - - - 1.00 1.00 - - 0.50 0.50 - - - - - - - vpmovzxbq %xmm0, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - - - 1.00 1.00 - - 0.50 0.50 - - - 1.50 1.50 - - vpmovzxbq (%rax), %xmm2
+# CHECK-NEXT: - - - - - - - - - - 1.00 1.00 - - 0.50 0.50 - - - - - - - vpmovzxbw %xmm0, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - - - 1.00 1.00 - - 0.50 0.50 - - - 1.50 1.50 - - vpmovzxbw (%rax), %xmm2
+# CHECK-NEXT: - - - - - - - - - - 1.00 1.00 - - 0.50 0.50 - - - - - - - vpmovzxdq %xmm0, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - - - 1.00 1.00 - - 0.50 0.50 - - - 1.50 1.50 - - vpmovzxdq (%rax), %xmm2
+# CHECK-NEXT: - - - - - - - - - - 1.00 1.00 - - 0.50 0.50 - - - - - - - vpmovzxwd %xmm0, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - - - 1.00 1.00 - - 0.50 0.50 - - - 1.50 1.50 - - vpmovzxwd (%rax), %xmm2
+# CHECK-NEXT: - - - - - - - - - - 1.00 1.00 - - 0.50 0.50 - - - - - - - vpmovzxwq %xmm0, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - - - 1.00 1.00 - - 0.50 0.50 - - - 1.50 1.50 - - vpmovzxwq (%rax), %xmm2
# CHECK-NEXT: - - - - - - - - - - - - 1.00 - 1.00 - - - - - - - - vpmuldq %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - 1.00 - 1.00 - - - - 0.50 0.50 - - vpmuldq (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - - - - - 1.00 - 1.00 - - - - 1.50 1.50 - - vpmuldq (%rax), %xmm1, %xmm2
# CHECK-NEXT: - - - - - - - - - - - - 1.00 - 1.00 - - - - - - - - vpmulhrsw %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - 1.00 - 1.00 - - - - 0.50 0.50 - - vpmulhrsw (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - - - - - 1.00 - 1.00 - - - - 1.50 1.50 - - vpmulhrsw (%rax), %xmm1, %xmm2
# CHECK-NEXT: - - - - - - - - - - - - 1.00 - 1.00 - - - - - - - - vpmulhuw %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - 1.00 - 1.00 - - - - 0.50 0.50 - - vpmulhuw (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - - - - - 1.00 - 1.00 - - - - 1.50 1.50 - - vpmulhuw (%rax), %xmm1, %xmm2
# CHECK-NEXT: - - - - - - - - - - - - 1.00 - 1.00 - - - - - - - - vpmulhw %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - 1.00 - 1.00 - - - - 0.50 0.50 - - vpmulhw (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - - - - - 1.00 - 1.00 - - - - 1.50 1.50 - - vpmulhw (%rax), %xmm1, %xmm2
# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 2.00 - 2.50 0.50 - - - - - - - vpmulld %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 2.00 - 2.50 0.50 - - - 0.50 0.50 - - vpmulld (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - - - 0.50 0.50 2.00 - 2.50 0.50 - - - 1.50 1.50 - - vpmulld (%rax), %xmm1, %xmm2
# CHECK-NEXT: - - - - - - - - - - - - 1.00 - 1.00 - - - - - - - - vpmullw %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - 1.00 - 1.00 - - - - 0.50 0.50 - - vpmullw (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - - - - - 1.00 - 1.00 - - - - 1.50 1.50 - - vpmullw (%rax), %xmm1, %xmm2
# CHECK-NEXT: - - - - - - - - - - - - 1.00 - 1.00 - - - - - - - - vpmuludq %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - 1.00 - 1.00 - - - - 0.50 0.50 - - vpmuludq (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - - - - vpor %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - 0.50 0.50 - - vpor (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - - - - vpsadbw %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - 0.50 0.50 - - vpsadbw (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - - - - 2.00 2.00 - - 0.50 0.50 - - - - - - - vpshufb %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - - - 2.00 2.00 - - 0.50 0.50 - - - 0.50 0.50 - - vpshufb (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - - - - vpshufd $1, %xmm0, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - 0.50 0.50 - - vpshufd $1, (%rax), %xmm2
-# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - - - - vpshufhw $1, %xmm0, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - 0.50 0.50 - - vpshufhw $1, (%rax), %xmm2
-# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - - - - vpshuflw $1, %xmm0, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - 0.50 0.50 - - vpshuflw $1, (%rax), %xmm2
-# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - - - - vpsignb %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - 0.50 0.50 - - vpsignb (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - - - - vpsignd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - 0.50 0.50 - - vpsignd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - - - - vpsignw %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - 0.50 0.50 - - vpsignw (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - - - - vpslld $1, %xmm0, %xmm2
-# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - - - - vpslld %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - 0.50 0.50 - - vpslld (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - - - - vpslldq $1, %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - - - - vpsllq $1, %xmm0, %xmm2
-# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - - - - vpsllq %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - 0.50 0.50 - - vpsllq (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - - - - vpsllw $1, %xmm0, %xmm2
-# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - - - - vpsllw %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - 0.50 0.50 - - vpsllw (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - - - - vpsrad $1, %xmm0, %xmm2
-# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - - - - vpsrad %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - 0.50 0.50 - - vpsrad (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - - - - vpsraw $1, %xmm0, %xmm2
-# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - - - - vpsraw %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - 0.50 0.50 - - vpsraw (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - - - - vpsrld $1, %xmm0, %xmm2
-# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - - - - vpsrld %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - 0.50 0.50 - - vpsrld (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - - - - vpsrldq $1, %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - - - - vpsrlq $1, %xmm0, %xmm2
-# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - - - - vpsrlq %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - 0.50 0.50 - - vpsrlq (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - - - - vpsrlw $1, %xmm0, %xmm2
-# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - - - - vpsrlw %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - 0.50 0.50 - - vpsrlw (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - - - - vpsubb %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - 0.50 0.50 - - vpsubb (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - - - - vpsubd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - 0.50 0.50 - - vpsubd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - - - - vpsubq %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - 0.50 0.50 - - vpsubq (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - - - - vpsubsb %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - 0.50 0.50 - - vpsubsb (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - - - - vpsubsw %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - 0.50 0.50 - - vpsubsw (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - - - - vpsubusb %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - 0.50 0.50 - - vpsubusb (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - - - - vpsubusw %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - 0.50 0.50 - - vpsubusw (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - - - - vpsubw %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - 0.50 0.50 - - vpsubw (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - - - - - 1.00 - 1.00 - - - - 1.50 1.50 - - vpmuludq (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - - - 1.00 1.00 - - 0.50 0.50 - - - - - - - vpor %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - - - 1.00 1.00 - - 0.50 0.50 - - - 1.50 1.50 - - vpor (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - - - 1.00 1.00 - - 0.50 0.50 - - - - - - - vpsadbw %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - - - 1.00 1.00 - - 0.50 0.50 - - - 1.50 1.50 - - vpsadbw (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - - - 1.50 1.50 - - 0.50 0.50 - - - - - - - vpshufb %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - - - 1.50 1.50 - - 0.50 0.50 - - - 1.50 1.50 - - vpshufb (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - - - 1.00 1.00 - - 0.50 0.50 - - - - - - - vpshufd $1, %xmm0, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - - - 1.00 1.00 - - 0.50 0.50 - - - 1.50 1.50 - - vpshufd $1, (%rax), %xmm2
+# CHECK-NEXT: - - - - - - - - - - 1.00 1.00 - - 0.50 0.50 - - - - - - - vpshufhw $1, %xmm0, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - - - 1.00 1.00 - - 0.50 0.50 - - - 1.50 1.50 - - vpshufhw $1, (%rax), %xmm2
+# CHECK-NEXT: - - - - - - - - - - 1.00 1.00 - - 0.50 0.50 - - - - - - - vpshuflw $1, %xmm0, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - - - 1.00 1.00 - - 0.50 0.50 - - - 1.50 1.50 - - vpshuflw $1, (%rax), %xmm2
+# CHECK-NEXT: - - - - - - - - - - 1.00 1.00 - - 0.50 0.50 - - - - - - - vpsignb %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - - - 1.00 1.00 - - 0.50 0.50 - - - 1.50 1.50 - - vpsignb (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - - - 1.00 1.00 - - 0.50 0.50 - - - - - - - vpsignd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - - - 1.00 1.00 - - 0.50 0.50 - - - 1.50 1.50 - - vpsignd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - - - 1.00 1.00 - - 0.50 0.50 - - - - - - - vpsignw %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - - - 1.00 1.00 - - 0.50 0.50 - - - 1.50 1.50 - - vpsignw (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - - - 1.00 1.00 - - 0.50 0.50 - - - - - - - vpslld $1, %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - - - - - 1.00 1.00 - - 0.50 0.50 - - - - - - - vpslld %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - - - 1.00 1.00 - - 0.50 0.50 - - - 1.50 1.50 - - vpslld (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - - - 1.00 1.00 - - 0.50 0.50 - - - - - - - vpslldq $1, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - - - 1.00 1.00 - - 0.50 0.50 - - - - - - - vpsllq $1, %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - - - - - 1.00 1.00 - - 0.50 0.50 - - - - - - - vpsllq %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - - - 1.00 1.00 - - 0.50 0.50 - - - 1.50 1.50 - - vpsllq (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - - - 1.00 1.00 - - 0.50 0.50 - - - - - - - vpsllw $1, %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - - - - - 1.00 1.00 - - 0.50 0.50 - - - - - - - vpsllw %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - - - 1.00 1.00 - - 0.50 0.50 - - - 1.50 1.50 - - vpsllw (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - - - 1.00 1.00 - - 0.50 0.50 - - - - - - - vpsrad $1, %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - - - - - 1.00 1.00 - - 0.50 0.50 - - - - - - - vpsrad %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - - - 1.00 1.00 - - 0.50 0.50 - - - 1.50 1.50 - - vpsrad (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - - - 1.00 1.00 - - 0.50 0.50 - - - - - - - vpsraw $1, %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - - - - - 1.00 1.00 - - 0.50 0.50 - - - - - - - vpsraw %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - - - 1.00 1.00 - - 0.50 0.50 - - - 1.50 1.50 - - vpsraw (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - - - 1.00 1.00 - - 0.50 0.50 - - - - - - - vpsrld $1, %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - - - - - 1.00 1.00 - - 0.50 0.50 - - - - - - - vpsrld %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - - - 1.00 1.00 - - 0.50 0.50 - - - 1.50 1.50 - - vpsrld (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - - - 1.00 1.00 - - 0.50 0.50 - - - - - - - vpsrldq $1, %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - - - 1.00 1.00 - - 0.50 0.50 - - - - - - - vpsrlq $1, %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - - - - - 1.00 1.00 - - 0.50 0.50 - - - - - - - vpsrlq %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - - - 1.00 1.00 - - 0.50 0.50 - - - 1.50 1.50 - - vpsrlq (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - - - 1.00 1.00 - - 0.50 0.50 - - - - - - - vpsrlw $1, %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - - - - - 1.00 1.00 - - 0.50 0.50 - - - - - - - vpsrlw %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - - - 1.00 1.00 - - 0.50 0.50 - - - 1.50 1.50 - - vpsrlw (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - - - 1.00 1.00 - - 0.50 0.50 - - - - - - - vpsubb %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - - - 1.00 1.00 - - 0.50 0.50 - - - 1.50 1.50 - - vpsubb (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - - - 1.00 1.00 - - 0.50 0.50 - - - - - - - vpsubd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - - - 1.00 1.00 - - 0.50 0.50 - - - 1.50 1.50 - - vpsubd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - - - 1.00 1.00 - - 0.50 0.50 - - - - - - - vpsubq %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - - - 1.00 1.00 - - 0.50 0.50 - - - 1.50 1.50 - - vpsubq (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - - - 1.00 1.00 - - 0.50 0.50 - - - - - - - vpsubsb %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - - - 1.00 1.00 - - 0.50 0.50 - - - 1.50 1.50 - - vpsubsb (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - - - 1.00 1.00 - - 0.50 0.50 - - - - - - - vpsubsw %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - - - 1.00 1.00 - - 0.50 0.50 - - - 1.50 1.50 - - vpsubsw (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - - - 1.00 1.00 - - 0.50 0.50 - - - - - - - vpsubusb %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - - - 1.00 1.00 - - 0.50 0.50 - - - 1.50 1.50 - - vpsubusb (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - - - 1.00 1.00 - - 0.50 0.50 - - - - - - - vpsubusw %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - - - 1.00 1.00 - - 0.50 0.50 - - - 1.50 1.50 - - vpsubusw (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - - - 1.00 1.00 - - 0.50 0.50 - - - - - - - vpsubw %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - - - 1.00 1.00 - - 0.50 0.50 - - - 1.50 1.50 - - vpsubw (%rax), %xmm1, %xmm2
# CHECK-NEXT: - - - - - 1.00 - - 0.50 0.50 - - - - 1.00 - - - - - - - - vptest %xmm0, %xmm1
-# CHECK-NEXT: 0.50 0.50 - - - 1.00 - - 0.50 0.50 - - - - 1.00 - - - - 0.50 0.50 - - vptest (%rax), %xmm1
-# CHECK-NEXT: - - - - - 1.00 - - 1.00 1.00 - - - - 1.00 1.00 - - - - - - - vptest %ymm0, %ymm1
-# CHECK-NEXT: 1.00 1.00 - - - 1.00 - - 1.00 1.00 - - - - 1.00 1.00 - - - 1.00 1.00 - - vptest (%rax), %ymm1
-# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - - - - vpunpckhbw %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - 0.50 0.50 - - vpunpckhbw (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - - - - vpunpckhdq %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - 0.50 0.50 - - vpunpckhdq (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - - - - vpunpckhqdq %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - 0.50 0.50 - - vpunpckhqdq (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - - - - vpunpckhwd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - 0.50 0.50 - - vpunpckhwd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - - - - vpunpcklbw %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - 0.50 0.50 - - vpunpcklbw (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - - - - vpunpckldq %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - 0.50 0.50 - - vpunpckldq (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - - - - vpunpcklqdq %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - 0.50 0.50 - - vpunpcklqdq (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - - - - vpunpcklwd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - 0.50 0.50 - - vpunpcklwd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - - - - vpxor %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - 0.50 0.50 - - vpxor (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - 1.00 - - 0.50 0.50 - - - - 1.00 - - - - 1.50 1.50 - - vptest (%rax), %xmm1
+# CHECK-NEXT: - - - - - 1.00 - - 2.00 2.00 - - - - 1.00 1.00 - - - - - - - vptest %ymm0, %ymm1
+# CHECK-NEXT: 1.50 1.50 - - - 1.00 - - 2.00 2.00 - - - - 1.00 1.00 - - - 1.50 1.50 - - vptest (%rax), %ymm1
+# CHECK-NEXT: - - - - - - - - - - 1.00 1.00 - - 0.50 0.50 - - - - - - - vpunpckhbw %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - - - 1.00 1.00 - - 0.50 0.50 - - - 1.50 1.50 - - vpunpckhbw (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - - - 1.00 1.00 - - 0.50 0.50 - - - - - - - vpunpckhdq %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - - - 1.00 1.00 - - 0.50 0.50 - - - 1.50 1.50 - - vpunpckhdq (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - - - 1.00 1.00 - - 0.50 0.50 - - - - - - - vpunpckhqdq %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - - - 1.00 1.00 - - 0.50 0.50 - - - 1.50 1.50 - - vpunpckhqdq (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - - - 1.00 1.00 - - 0.50 0.50 - - - - - - - vpunpckhwd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - - - 1.00 1.00 - - 0.50 0.50 - - - 1.50 1.50 - - vpunpckhwd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - - - 1.00 1.00 - - 0.50 0.50 - - - - - - - vpunpcklbw %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - - - 1.00 1.00 - - 0.50 0.50 - - - 1.50 1.50 - - vpunpcklbw (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - - - 1.00 1.00 - - 0.50 0.50 - - - - - - - vpunpckldq %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - - - 1.00 1.00 - - 0.50 0.50 - - - 1.50 1.50 - - vpunpckldq (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - - - 1.00 1.00 - - 0.50 0.50 - - - - - - - vpunpcklqdq %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - - - 1.00 1.00 - - 0.50 0.50 - - - 1.50 1.50 - - vpunpcklqdq (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - - - 1.00 1.00 - - 0.50 0.50 - - - - - - - vpunpcklwd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - - - 1.00 1.00 - - 0.50 0.50 - - - 1.50 1.50 - - vpunpcklwd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - - - 1.00 1.00 - - 0.50 0.50 - - - - - - - vpxor %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - - - 1.00 1.00 - - 0.50 0.50 - - - 1.50 1.50 - - vpxor (%rax), %xmm1, %xmm2
# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - - 1.00 - - - - - - - vrcpps %xmm0, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - - 1.00 - - - 0.50 0.50 - - vrcpps (%rax), %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - 0.50 0.50 - - - - - 1.00 - - - 1.50 1.50 - - vrcpps (%rax), %xmm2
# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - - 2.00 - - - - - - - vrcpps %ymm0, %ymm2
-# CHECK-NEXT: 1.00 1.00 - - - - - - 0.50 0.50 - - - - - 2.00 - - - 1.00 1.00 - - vrcpps (%rax), %ymm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - 0.50 0.50 - - - - - 2.00 - - - 1.50 1.50 - - vrcpps (%rax), %ymm2
# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - - 1.00 - - - - - - - vrcpss %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - - 1.00 - - - 0.50 0.50 - - vrcpss (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - 0.50 0.50 - - - - - 1.00 - - - 1.50 1.50 - - vrcpss (%rax), %xmm1, %xmm2
# CHECK-NEXT: - - - - - - - - - - - - - 1.00 - 1.00 - - - - - - - vroundpd $1, %xmm0, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - 1.00 - 1.00 - - - 0.50 0.50 - - vroundpd $1, (%rax), %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - - - - - - 1.00 - 1.00 - - - 1.50 1.50 - - vroundpd $1, (%rax), %xmm2
# CHECK-NEXT: - - - - - - - - - - - - - 1.00 - 2.00 - - - - - - - vroundpd $1, %ymm0, %ymm2
-# CHECK-NEXT: 1.00 1.00 - - - - - - - - - - - 1.00 - 2.00 - - - 1.00 1.00 - - vroundpd $1, (%rax), %ymm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - - - - - - 1.00 - 2.00 - - - 1.50 1.50 - - vroundpd $1, (%rax), %ymm2
# CHECK-NEXT: - - - - - - - - - - - - - 1.00 - 1.00 - - - - - - - vroundps $1, %xmm0, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - 1.00 - 1.00 - - - 0.50 0.50 - - vroundps $1, (%rax), %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - - - - - - 1.00 - 1.00 - - - 1.50 1.50 - - vroundps $1, (%rax), %xmm2
# CHECK-NEXT: - - - - - - - - - - - - - 1.00 - 2.00 - - - - - - - vroundps $1, %ymm0, %ymm2
-# CHECK-NEXT: 1.00 1.00 - - - - - - - - - - - 1.00 - 2.00 - - - 1.00 1.00 - - vroundps $1, (%rax), %ymm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - - - - - - 1.00 - 2.00 - - - 1.50 1.50 - - vroundps $1, (%rax), %ymm2
# CHECK-NEXT: - - - - - - - - - - - - - 1.00 - 1.00 - - - - - - - vroundsd $1, %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - 1.00 - 1.00 - - - 0.50 0.50 - - vroundsd $1, (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - - - - - - 1.00 - 1.00 - - - 1.50 1.50 - - vroundsd $1, (%rax), %xmm1, %xmm2
# CHECK-NEXT: - - - - - - - - - - - - - 1.00 - 1.00 - - - - - - - vroundss $1, %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - 1.00 - 1.00 - - - 0.50 0.50 - - vroundss $1, (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - - - - - - 1.00 - 1.00 - - - 1.50 1.50 - - vroundss $1, (%rax), %xmm1, %xmm2
# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - - 1.00 - - - - - - - vrsqrtps %xmm0, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - - 1.00 - - - 0.50 0.50 - - vrsqrtps (%rax), %xmm2
-# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - - 2.00 - - - - - - - vrsqrtps %ymm0, %ymm2
-# CHECK-NEXT: 1.00 1.00 - - - - - - 0.50 0.50 - - - - - 2.00 - - - 1.00 1.00 - - vrsqrtps (%rax), %ymm2
-# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - - 1.00 - - - - - - - vrsqrtss %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - - 1.00 - - - 0.50 0.50 - - vrsqrtss (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - vshufpd $1, %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.50 0.50 - - - 0.50 0.50 - - vshufpd $1, (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - - 1.00 1.00 - - - - 1.00 1.00 - - - - - - - vshufpd $1, %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 1.00 1.00 - - - - - - 1.00 1.00 - - - - 1.00 1.00 - - - 1.00 1.00 - - vshufpd $1, (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - vshufps $1, %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.50 0.50 - - - 0.50 0.50 - - vshufps $1, (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - - 1.00 1.00 - - - - 1.00 1.00 - - - - - - - vshufps $1, %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 1.00 1.00 - - - - - - 1.00 1.00 - - - - 1.00 1.00 - - - 1.00 1.00 - - vshufps $1, (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - - - - - - - 13.50 13.50 - - - - - 1.00 - - - - - - - vsqrtpd %xmm0, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - 13.50 13.50 - - - - - 1.00 - - - 0.50 0.50 - - vsqrtpd (%rax), %xmm2
-# CHECK-NEXT: - - - - - - - - 27.00 27.00 - - - - - 2.00 - - - - - - - vsqrtpd %ymm0, %ymm2
-# CHECK-NEXT: 1.00 1.00 - - - - - - 27.00 27.00 - - - - - 2.00 - - - 1.00 1.00 - - vsqrtpd (%rax), %ymm2
-# CHECK-NEXT: - - - - - - - - 10.50 10.50 - - - - - 1.00 - - - - - - - vsqrtps %xmm0, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - 10.50 10.50 - - - - - 1.00 - - - 0.50 0.50 - - vsqrtps (%rax), %xmm2
-# CHECK-NEXT: - - - - - - - - 21.00 21.00 - - - - - 2.00 - - - - - - - vsqrtps %ymm0, %ymm2
-# CHECK-NEXT: 1.00 1.00 - - - - - - 21.00 21.00 - - - - - 2.00 - - - 1.00 1.00 - - vsqrtps (%rax), %ymm2
-# CHECK-NEXT: - - - - - - - - 13.50 13.50 - - - - - 1.00 - - - - - - - vsqrtsd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - 13.50 13.50 - - - - - 1.00 - - - 0.50 0.50 - - vsqrtsd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - - 10.50 10.50 - - - - - 1.00 - - - - - - - vsqrtss %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - 10.50 10.50 - - - - - 1.00 - - - 0.50 0.50 - - vsqrtss (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - - - - - - - - - - 1.00 vstmxcsr (%rax)
+# CHECK-NEXT: 1.50 1.50 - - - - - - 0.50 0.50 - - - - - 1.00 - - - 1.50 1.50 - - vrsqrtps (%rax), %xmm2
+# CHECK-NEXT: - - - - - - - - 1.00 1.00 - - - - - 2.00 - - - - - - - vrsqrtps %ymm0, %ymm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - 1.00 1.00 - - - - - 2.00 - - - 1.50 1.50 - - vrsqrtps (%rax), %ymm2
+# CHECK-NEXT: - - - - - - - - 1.00 1.00 - - - - - 1.00 - - - - - - - vrsqrtss %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - 1.00 1.00 - - - - - 1.00 - - - 1.50 1.50 - - vrsqrtss (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - 1.00 1.00 - - - - 0.50 0.50 - - - - - - - vshufpd $1, %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - 1.00 1.00 - - - - 0.50 0.50 - - - 1.50 1.50 - - vshufpd $1, (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - 2.00 2.00 - - - - 1.00 1.00 - - - - - - - vshufpd $1, %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - 2.00 2.00 - - - - 1.00 1.00 - - - 1.50 1.50 - - vshufpd $1, (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - - 1.00 1.00 - - - - 0.50 0.50 - - - - - - - vshufps $1, %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - 1.00 1.00 - - - - 0.50 0.50 - - - 1.50 1.50 - - vshufps $1, (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - 2.00 2.00 - - - - 1.00 1.00 - - - - - - - vshufps $1, %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - 2.00 2.00 - - - - 1.00 1.00 - - - 1.50 1.50 - - vshufps $1, (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - - 4.50 4.50 - - - - - 1.00 - - - - - - - vsqrtpd %xmm0, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - 4.50 4.50 - - - - - 1.00 - - - 1.50 1.50 - - vsqrtpd (%rax), %xmm2
+# CHECK-NEXT: - - - - - - - - 9.00 9.00 - - - - - 2.00 - - - - - - - vsqrtpd %ymm0, %ymm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - 9.00 9.00 - - - - - 2.00 - - - 1.50 1.50 - - vsqrtpd (%rax), %ymm2
+# CHECK-NEXT: - - - - - - - - 4.50 4.50 - - - - - 1.00 - - - - - - - vsqrtps %xmm0, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - 4.50 4.50 - - - - - 1.00 - - - 1.50 1.50 - - vsqrtps (%rax), %xmm2
+# CHECK-NEXT: - - - - - - - - 9.00 9.00 - - - - - 2.00 - - - - - - - vsqrtps %ymm0, %ymm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - 9.00 9.00 - - - - - 2.00 - - - 1.50 1.50 - - vsqrtps (%rax), %ymm2
+# CHECK-NEXT: - - - - - - - - 4.50 4.50 - - - - - 1.00 - - - - - - - vsqrtsd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - 4.50 4.50 - - - - - 1.00 - - - 1.50 1.50 - - vsqrtsd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - 4.50 4.50 - - - - - 1.00 - - - - - - - vsqrtss %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - 4.50 4.50 - - - - - 1.00 - - - 1.50 1.50 - - vsqrtss (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 9.00 9.00 - - - - - - - - - - - - - - - - - - - - 18.00 vstmxcsr (%rax)
# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 1.00 - - - - - - - - vsubpd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 1.00 - - - - 0.50 0.50 - - vsubpd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 2.00 - - - - - - - - vsubpd %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 1.00 1.00 - - - - - - 0.50 0.50 - - - - 2.00 - - - - 1.00 1.00 - - vsubpd (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - 0.50 0.50 - - - - 1.00 - - - - 1.50 1.50 - - vsubpd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - 1.00 1.00 - - - - 1.00 - - - - - - - - vsubpd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - 1.00 1.00 - - - - 1.00 - - - - 1.50 1.50 - - vsubpd (%rax), %ymm1, %ymm2
# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 1.00 - - - - - - - - vsubps %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 1.00 - - - - 0.50 0.50 - - vsubps (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 2.00 - - - - - - - - vsubps %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 1.00 1.00 - - - - - - 0.50 0.50 - - - - 2.00 - - - - 1.00 1.00 - - vsubps (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - 0.50 0.50 - - - - 1.00 - - - - 1.50 1.50 - - vsubps (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - 1.00 1.00 - - - - 1.00 - - - - - - - - vsubps %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - 1.00 1.00 - - - - 1.00 - - - - 1.50 1.50 - - vsubps (%rax), %ymm1, %ymm2
# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 1.00 - - - - - - - - vsubsd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 1.00 - - - - 0.50 0.50 - - vsubsd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - 0.50 0.50 - - - - 1.00 - - - - 1.50 1.50 - - vsubsd (%rax), %xmm1, %xmm2
# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 1.00 - - - - - - - - vsubss %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 1.00 - - - - 0.50 0.50 - - vsubss (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - 0.50 0.50 - - - - 1.00 - - - - 1.50 1.50 - - vsubss (%rax), %xmm1, %xmm2
# CHECK-NEXT: - - - - - 1.00 - - 0.50 0.50 - - - - 1.00 - - - - - - - - vtestpd %xmm0, %xmm1
-# CHECK-NEXT: 0.50 0.50 - - - 1.00 - - 0.50 0.50 - - - - 1.00 - - - - 0.50 0.50 - - vtestpd (%rax), %xmm1
-# CHECK-NEXT: - - - - - 1.00 - - 1.00 1.00 - - - - 1.00 1.00 - - - - - - - vtestpd %ymm0, %ymm1
-# CHECK-NEXT: 1.00 1.00 - - - 1.00 - - 1.00 1.00 - - - - 1.00 1.00 - - - 1.00 1.00 - - vtestpd (%rax), %ymm1
+# CHECK-NEXT: 1.50 1.50 - - - 1.00 - - 0.50 0.50 - - - - 1.00 - - - - 1.50 1.50 - - vtestpd (%rax), %xmm1
+# CHECK-NEXT: - - - - - 1.00 - - 2.00 2.00 - - - - 2.00 2.00 - - - - - - - vtestpd %ymm0, %ymm1
+# CHECK-NEXT: 1.50 1.50 - - - 1.00 - - 2.00 2.00 - - - - 2.00 2.00 - - - 1.50 1.50 - - vtestpd (%rax), %ymm1
# CHECK-NEXT: - - - - - 1.00 - - 0.50 0.50 - - - - 1.00 - - - - - - - - vtestps %xmm0, %xmm1
-# CHECK-NEXT: 0.50 0.50 - - - 1.00 - - 0.50 0.50 - - - - 1.00 - - - - 0.50 0.50 - - vtestps (%rax), %xmm1
-# CHECK-NEXT: - - - - - 1.00 - - 1.00 1.00 - - - - 1.00 1.00 - - - - - - - vtestps %ymm0, %ymm1
-# CHECK-NEXT: 1.00 1.00 - - - 1.00 - - 1.00 1.00 - - - - 1.00 1.00 - - - 1.00 1.00 - - vtestps (%rax), %ymm1
+# CHECK-NEXT: 1.50 1.50 - - - 1.00 - - 0.50 0.50 - - - - 1.00 - - - - 1.50 1.50 - - vtestps (%rax), %xmm1
+# CHECK-NEXT: - - - - - 1.00 - - 2.00 2.00 - - - - 2.00 2.00 - - - - - - - vtestps %ymm0, %ymm1
+# CHECK-NEXT: 1.50 1.50 - - - 1.00 - - 2.00 2.00 - - - - 2.00 2.00 - - - 1.50 1.50 - - vtestps (%rax), %ymm1
# CHECK-NEXT: - - - - - 1.00 - - 0.50 0.50 - - - - 1.00 - - - - - - - - vucomisd %xmm0, %xmm1
-# CHECK-NEXT: 0.50 0.50 - - - 1.00 - - 0.50 0.50 - - - - 1.00 - - - - 0.50 0.50 - - vucomisd (%rax), %xmm1
+# CHECK-NEXT: 1.50 1.50 - - - 1.00 - - 0.50 0.50 - - - - 1.00 - - - - 1.50 1.50 - - vucomisd (%rax), %xmm1
# CHECK-NEXT: - - - - - 1.00 - - 0.50 0.50 - - - - 1.00 - - - - - - - - vucomiss %xmm0, %xmm1
-# CHECK-NEXT: 0.50 0.50 - - - 1.00 - - 0.50 0.50 - - - - 1.00 - - - - 0.50 0.50 - - vucomiss (%rax), %xmm1
-# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - vunpckhpd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.50 0.50 - - - 0.50 0.50 - - vunpckhpd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - - 1.00 1.00 - - - - 1.00 1.00 - - - - - - - vunpckhpd %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 1.00 1.00 - - - - - - 1.00 1.00 - - - - 1.00 1.00 - - - 1.00 1.00 - - vunpckhpd (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - vunpckhps %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.50 0.50 - - - 0.50 0.50 - - vunpckhps (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - - 1.00 1.00 - - - - 1.00 1.00 - - - - - - - vunpckhps %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 1.00 1.00 - - - - - - 1.00 1.00 - - - - 1.00 1.00 - - - 1.00 1.00 - - vunpckhps (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - vunpcklpd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.50 0.50 - - - 0.50 0.50 - - vunpcklpd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - - 1.00 1.00 - - - - 1.00 1.00 - - - - - - - vunpcklpd %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 1.00 1.00 - - - - - - 1.00 1.00 - - - - 1.00 1.00 - - - 1.00 1.00 - - vunpcklpd (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - vunpcklps %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.50 0.50 - - - 0.50 0.50 - - vunpcklps (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - - 1.00 1.00 - - - - 1.00 1.00 - - - - - - - vunpcklps %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 1.00 1.00 - - - - - - 1.00 1.00 - - - - 1.00 1.00 - - - 1.00 1.00 - - vunpcklps (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - vxorpd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.50 0.50 - - - 0.50 0.50 - - vxorpd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - 1.00 - - 0.50 0.50 - - - - 1.00 - - - - 1.50 1.50 - - vucomiss (%rax), %xmm1
+# CHECK-NEXT: - - - - - - - - 1.00 1.00 - - - - 0.50 0.50 - - - - - - - vunpckhpd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - 1.00 1.00 - - - - 0.50 0.50 - - - 1.50 1.50 - - vunpckhpd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - 2.00 2.00 - - - - 1.00 1.00 - - - - - - - vunpckhpd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - 2.00 2.00 - - - - 1.00 1.00 - - - 1.50 1.50 - - vunpckhpd (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - - 1.00 1.00 - - - - 0.50 0.50 - - - - - - - vunpckhps %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - 1.00 1.00 - - - - 0.50 0.50 - - - 1.50 1.50 - - vunpckhps (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - 2.00 2.00 - - - - 1.00 1.00 - - - - - - - vunpckhps %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - 2.00 2.00 - - - - 1.00 1.00 - - - 1.50 1.50 - - vunpckhps (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - - 1.00 1.00 - - - - 0.50 0.50 - - - - - - - vunpcklpd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - 1.00 1.00 - - - - 0.50 0.50 - - - 1.50 1.50 - - vunpcklpd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - 2.00 2.00 - - - - 1.00 1.00 - - - - - - - vunpcklpd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - 2.00 2.00 - - - - 1.00 1.00 - - - 1.50 1.50 - - vunpcklpd (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - - 1.00 1.00 - - - - 0.50 0.50 - - - - - - - vunpcklps %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - 1.00 1.00 - - - - 0.50 0.50 - - - 1.50 1.50 - - vunpcklps (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - 2.00 2.00 - - - - 1.00 1.00 - - - - - - - vunpcklps %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - 2.00 2.00 - - - - 1.00 1.00 - - - 1.50 1.50 - - vunpcklps (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - - 1.00 1.00 - - - - 0.50 0.50 - - - - - - - vxorpd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - 1.00 1.00 - - - - 0.50 0.50 - - - 1.50 1.50 - - vxorpd (%rax), %xmm1, %xmm2
# CHECK-NEXT: - - - - - - - - 1.00 1.00 - - - - 1.00 1.00 - - - - - - - vxorpd %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 1.00 1.00 - - - - - - 1.00 1.00 - - - - 1.00 1.00 - - - 1.00 1.00 - - vxorpd (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - vxorps %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.50 0.50 - - - 0.50 0.50 - - vxorps (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - 1.00 1.00 - - - - 1.00 1.00 - - - 1.50 1.50 - - vxorpd (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - - 1.00 1.00 - - - - 0.50 0.50 - - - - - - - vxorps %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - 1.00 1.00 - - - - 0.50 0.50 - - - 1.50 1.50 - - vxorps (%rax), %xmm1, %xmm2
# CHECK-NEXT: - - - - - - - - 1.00 1.00 - - - - 1.00 1.00 - - - - - - - vxorps %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 1.00 1.00 - - - - - - 1.00 1.00 - - - - 1.00 1.00 - - - 1.00 1.00 - - vxorps (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - 1.00 1.00 - - - - 1.00 1.00 - - - 1.50 1.50 - - vxorps (%rax), %ymm1, %ymm2
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - - - vzeroall
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - - - vzeroupper
Modified: llvm/trunk/test/tools/llvm-mca/X86/BdVer2/resources-bmi1.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-mca/X86/BdVer2/resources-bmi1.s?rev=360341&r1=360340&r2=360341&view=diff
==============================================================================
--- llvm/trunk/test/tools/llvm-mca/X86/BdVer2/resources-bmi1.s (original)
+++ llvm/trunk/test/tools/llvm-mca/X86/BdVer2/resources-bmi1.s Thu May 9 06:54:51 2019
@@ -49,32 +49,32 @@ tzcnt (%rax), %rcx
# CHECK-NEXT: [6]: HasSideEffects (U)
# CHECK: [1] [2] [3] [4] [5] [6] Instructions:
-# CHECK-NEXT: 1 1 0.50 andnl %eax, %ebx, %ecx
-# CHECK-NEXT: 1 5 0.50 * andnl (%rax), %ebx, %ecx
-# CHECK-NEXT: 1 1 0.50 andnq %rax, %rbx, %rcx
-# CHECK-NEXT: 1 5 0.50 * andnq (%rax), %rbx, %rcx
-# CHECK-NEXT: 2 2 0.50 bextrl %eax, %ebx, %ecx
-# CHECK-NEXT: 2 6 0.50 * bextrl %eax, (%rbx), %ecx
-# CHECK-NEXT: 2 2 0.50 bextrq %rax, %rbx, %rcx
-# CHECK-NEXT: 2 6 0.50 * bextrq %rax, (%rbx), %rcx
-# CHECK-NEXT: 2 2 0.50 blsil %eax, %ecx
-# CHECK-NEXT: 2 6 0.50 * blsil (%rax), %ecx
-# CHECK-NEXT: 2 2 0.50 blsiq %rax, %rcx
-# CHECK-NEXT: 2 6 0.50 * blsiq (%rax), %rcx
-# CHECK-NEXT: 2 2 0.50 blsmskl %eax, %ecx
-# CHECK-NEXT: 2 6 0.50 * blsmskl (%rax), %ecx
-# CHECK-NEXT: 2 2 0.50 blsmskq %rax, %rcx
-# CHECK-NEXT: 2 6 0.50 * blsmskq (%rax), %rcx
-# CHECK-NEXT: 2 2 0.50 blsrl %eax, %ecx
-# CHECK-NEXT: 2 6 0.50 * blsrl (%rax), %ecx
-# CHECK-NEXT: 2 2 0.50 blsrq %rax, %rcx
-# CHECK-NEXT: 2 6 0.50 * blsrq (%rax), %rcx
-# CHECK-NEXT: 2 2 1.00 tzcntw %ax, %cx
-# CHECK-NEXT: 2 6 1.00 * tzcntw (%rax), %cx
-# CHECK-NEXT: 2 2 1.00 tzcntl %eax, %ecx
-# CHECK-NEXT: 2 6 1.00 * tzcntl (%rax), %ecx
-# CHECK-NEXT: 2 2 1.00 tzcntq %rax, %rcx
-# CHECK-NEXT: 2 6 1.00 * tzcntq (%rax), %rcx
+# CHECK-NEXT: 1 1 1.00 andnl %eax, %ebx, %ecx
+# CHECK-NEXT: 1 5 1.50 * andnl (%rax), %ebx, %ecx
+# CHECK-NEXT: 1 1 1.00 andnq %rax, %rbx, %rcx
+# CHECK-NEXT: 1 5 1.50 * andnq (%rax), %rbx, %rcx
+# CHECK-NEXT: 2 2 1.00 bextrl %eax, %ebx, %ecx
+# CHECK-NEXT: 2 6 1.50 * bextrl %eax, (%rbx), %ecx
+# CHECK-NEXT: 2 2 1.00 bextrq %rax, %rbx, %rcx
+# CHECK-NEXT: 2 6 1.50 * bextrq %rax, (%rbx), %rcx
+# CHECK-NEXT: 2 2 1.00 blsil %eax, %ecx
+# CHECK-NEXT: 2 6 1.50 * blsil (%rax), %ecx
+# CHECK-NEXT: 2 2 1.00 blsiq %rax, %rcx
+# CHECK-NEXT: 2 6 1.50 * blsiq (%rax), %rcx
+# CHECK-NEXT: 2 2 1.00 blsmskl %eax, %ecx
+# CHECK-NEXT: 2 6 1.50 * blsmskl (%rax), %ecx
+# CHECK-NEXT: 2 2 1.00 blsmskq %rax, %rcx
+# CHECK-NEXT: 2 6 1.50 * blsmskq (%rax), %rcx
+# CHECK-NEXT: 2 2 1.00 blsrl %eax, %ecx
+# CHECK-NEXT: 2 6 1.50 * blsrl (%rax), %ecx
+# CHECK-NEXT: 2 2 1.00 blsrq %rax, %rcx
+# CHECK-NEXT: 2 6 1.50 * blsrq (%rax), %rcx
+# CHECK-NEXT: 2 2 2.00 tzcntw %ax, %cx
+# CHECK-NEXT: 2 6 2.00 * tzcntw (%rax), %cx
+# CHECK-NEXT: 2 2 2.00 tzcntl %eax, %ecx
+# CHECK-NEXT: 2 6 2.00 * tzcntl (%rax), %ecx
+# CHECK-NEXT: 2 2 2.00 tzcntq %rax, %rcx
+# CHECK-NEXT: 2 6 2.00 * tzcntq (%rax), %rcx
# CHECK: Resources:
# CHECK-NEXT: [0.0] - PdAGLU01
@@ -103,33 +103,33 @@ tzcnt (%rax), %rcx
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0.0] [0.1] [1] [2] [3] [4] [5] [6] [7.0] [7.1] [8.0] [8.1] [9] [10] [11] [12] [13] [14] [15] [16.0] [16.1] [17] [18]
-# CHECK-NEXT: 6.50 6.50 - - - 16.00 16.00 - - - - - - - - - - - - 6.50 6.50 - -
+# CHECK-NEXT: 19.50 19.50 - - - 32.00 20.00 - - - - - - - - - - - - 19.50 19.50 - -
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0.0] [0.1] [1] [2] [3] [4] [5] [6] [7.0] [7.1] [8.0] [8.1] [9] [10] [11] [12] [13] [14] [15] [16.0] [16.1] [17] [18] Instructions:
-# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - andnl %eax, %ebx, %ecx
-# CHECK-NEXT: 0.50 0.50 - - - 0.50 0.50 - - - - - - - - - - - - 0.50 0.50 - - andnl (%rax), %ebx, %ecx
-# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - andnq %rax, %rbx, %rcx
-# CHECK-NEXT: 0.50 0.50 - - - 0.50 0.50 - - - - - - - - - - - - 0.50 0.50 - - andnq (%rax), %rbx, %rcx
-# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - bextrl %eax, %ebx, %ecx
-# CHECK-NEXT: 0.50 0.50 - - - 0.50 0.50 - - - - - - - - - - - - 0.50 0.50 - - bextrl %eax, (%rbx), %ecx
-# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - bextrq %rax, %rbx, %rcx
-# CHECK-NEXT: 0.50 0.50 - - - 0.50 0.50 - - - - - - - - - - - - 0.50 0.50 - - bextrq %rax, (%rbx), %rcx
-# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - blsil %eax, %ecx
-# CHECK-NEXT: 0.50 0.50 - - - 0.50 0.50 - - - - - - - - - - - - 0.50 0.50 - - blsil (%rax), %ecx
-# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - blsiq %rax, %rcx
-# CHECK-NEXT: 0.50 0.50 - - - 0.50 0.50 - - - - - - - - - - - - 0.50 0.50 - - blsiq (%rax), %rcx
-# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - blsmskl %eax, %ecx
-# CHECK-NEXT: 0.50 0.50 - - - 0.50 0.50 - - - - - - - - - - - - 0.50 0.50 - - blsmskl (%rax), %ecx
-# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - blsmskq %rax, %rcx
-# CHECK-NEXT: 0.50 0.50 - - - 0.50 0.50 - - - - - - - - - - - - 0.50 0.50 - - blsmskq (%rax), %rcx
-# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - blsrl %eax, %ecx
-# CHECK-NEXT: 0.50 0.50 - - - 0.50 0.50 - - - - - - - - - - - - 0.50 0.50 - - blsrl (%rax), %ecx
-# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - blsrq %rax, %rcx
-# CHECK-NEXT: 0.50 0.50 - - - 0.50 0.50 - - - - - - - - - - - - 0.50 0.50 - - blsrq (%rax), %rcx
-# CHECK-NEXT: - - - - - 1.00 1.00 - - - - - - - - - - - - - - - - tzcntw %ax, %cx
-# CHECK-NEXT: 0.50 0.50 - - - 1.00 1.00 - - - - - - - - - - - - 0.50 0.50 - - tzcntw (%rax), %cx
-# CHECK-NEXT: - - - - - 1.00 1.00 - - - - - - - - - - - - - - - - tzcntl %eax, %ecx
-# CHECK-NEXT: 0.50 0.50 - - - 1.00 1.00 - - - - - - - - - - - - 0.50 0.50 - - tzcntl (%rax), %ecx
-# CHECK-NEXT: - - - - - 1.00 1.00 - - - - - - - - - - - - - - - - tzcntq %rax, %rcx
-# CHECK-NEXT: 0.50 0.50 - - - 1.00 1.00 - - - - - - - - - - - - 0.50 0.50 - - tzcntq (%rax), %rcx
+# CHECK-NEXT: - - - - - 1.00 1.00 - - - - - - - - - - - - - - - - andnl %eax, %ebx, %ecx
+# CHECK-NEXT: 1.50 1.50 - - - 1.00 1.00 - - - - - - - - - - - - 1.50 1.50 - - andnl (%rax), %ebx, %ecx
+# CHECK-NEXT: - - - - - 1.00 1.00 - - - - - - - - - - - - - - - - andnq %rax, %rbx, %rcx
+# CHECK-NEXT: 1.50 1.50 - - - 1.00 1.00 - - - - - - - - - - - - 1.50 1.50 - - andnq (%rax), %rbx, %rcx
+# CHECK-NEXT: - - - - - 1.00 1.00 - - - - - - - - - - - - - - - - bextrl %eax, %ebx, %ecx
+# CHECK-NEXT: 1.50 1.50 - - - 1.00 1.00 - - - - - - - - - - - - 1.50 1.50 - - bextrl %eax, (%rbx), %ecx
+# CHECK-NEXT: - - - - - 1.00 1.00 - - - - - - - - - - - - - - - - bextrq %rax, %rbx, %rcx
+# CHECK-NEXT: 1.50 1.50 - - - 1.00 1.00 - - - - - - - - - - - - 1.50 1.50 - - bextrq %rax, (%rbx), %rcx
+# CHECK-NEXT: - - - - - 1.00 1.00 - - - - - - - - - - - - - - - - blsil %eax, %ecx
+# CHECK-NEXT: 1.50 1.50 - - - 1.00 1.00 - - - - - - - - - - - - 1.50 1.50 - - blsil (%rax), %ecx
+# CHECK-NEXT: - - - - - 1.00 1.00 - - - - - - - - - - - - - - - - blsiq %rax, %rcx
+# CHECK-NEXT: 1.50 1.50 - - - 1.00 1.00 - - - - - - - - - - - - 1.50 1.50 - - blsiq (%rax), %rcx
+# CHECK-NEXT: - - - - - 1.00 1.00 - - - - - - - - - - - - - - - - blsmskl %eax, %ecx
+# CHECK-NEXT: 1.50 1.50 - - - 1.00 1.00 - - - - - - - - - - - - 1.50 1.50 - - blsmskl (%rax), %ecx
+# CHECK-NEXT: - - - - - 1.00 1.00 - - - - - - - - - - - - - - - - blsmskq %rax, %rcx
+# CHECK-NEXT: 1.50 1.50 - - - 1.00 1.00 - - - - - - - - - - - - 1.50 1.50 - - blsmskq (%rax), %rcx
+# CHECK-NEXT: - - - - - 1.00 1.00 - - - - - - - - - - - - - - - - blsrl %eax, %ecx
+# CHECK-NEXT: 1.50 1.50 - - - 1.00 1.00 - - - - - - - - - - - - 1.50 1.50 - - blsrl (%rax), %ecx
+# CHECK-NEXT: - - - - - 1.00 1.00 - - - - - - - - - - - - - - - - blsrq %rax, %rcx
+# CHECK-NEXT: 1.50 1.50 - - - 1.00 1.00 - - - - - - - - - - - - 1.50 1.50 - - blsrq (%rax), %rcx
+# CHECK-NEXT: - - - - - 2.00 - - - - - - - - - - - - - - - - - tzcntw %ax, %cx
+# CHECK-NEXT: 1.50 1.50 - - - 2.00 - - - - - - - - - - - - - 1.50 1.50 - - tzcntw (%rax), %cx
+# CHECK-NEXT: - - - - - 2.00 - - - - - - - - - - - - - - - - - tzcntl %eax, %ecx
+# CHECK-NEXT: 1.50 1.50 - - - 2.00 - - - - - - - - - - - - - 1.50 1.50 - - tzcntl (%rax), %ecx
+# CHECK-NEXT: - - - - - 2.00 - - - - - - - - - - - - - - - - - tzcntq %rax, %rcx
+# CHECK-NEXT: 1.50 1.50 - - - 2.00 - - - - - - - - - - - - - 1.50 1.50 - - tzcntq (%rax), %rcx
Modified: llvm/trunk/test/tools/llvm-mca/X86/BdVer2/resources-clflushopt.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-mca/X86/BdVer2/resources-clflushopt.s?rev=360341&r1=360340&r2=360341&view=diff
==============================================================================
--- llvm/trunk/test/tools/llvm-mca/X86/BdVer2/resources-clflushopt.s (original)
+++ llvm/trunk/test/tools/llvm-mca/X86/BdVer2/resources-clflushopt.s Thu May 9 06:54:51 2019
@@ -12,7 +12,7 @@ clflushopt (%rax)
# CHECK-NEXT: [6]: HasSideEffects (U)
# CHECK: [1] [2] [3] [4] [5] [6] Instructions:
-# CHECK-NEXT: 1 5 0.50 * * U clflushopt (%rax)
+# CHECK-NEXT: 1 5 1.00 * * U clflushopt (%rax)
# CHECK: Resources:
# CHECK-NEXT: [0.0] - PdAGLU01
@@ -41,8 +41,8 @@ clflushopt (%rax)
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0.0] [0.1] [1] [2] [3] [4] [5] [6] [7.0] [7.1] [8.0] [8.1] [9] [10] [11] [12] [13] [14] [15] [16.0] [16.1] [17] [18]
-# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - - - - - - - 0.50 0.50 - -
+# CHECK-NEXT: 1.00 1.00 - - - - - - - - - - - - - - - - - 1.00 1.00 - -
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0.0] [0.1] [1] [2] [3] [4] [5] [6] [7.0] [7.1] [8.0] [8.1] [9] [10] [11] [12] [13] [14] [15] [16.0] [16.1] [17] [18] Instructions:
-# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - - - - - - - 0.50 0.50 - - clflushopt (%rax)
+# CHECK-NEXT: 1.00 1.00 - - - - - - - - - - - - - - - - - 1.00 1.00 - - clflushopt (%rax)
Modified: llvm/trunk/test/tools/llvm-mca/X86/BdVer2/resources-cmov.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-mca/X86/BdVer2/resources-cmov.s?rev=360341&r1=360340&r2=360341&view=diff
==============================================================================
--- llvm/trunk/test/tools/llvm-mca/X86/BdVer2/resources-cmov.s (original)
+++ llvm/trunk/test/tools/llvm-mca/X86/BdVer2/resources-cmov.s Thu May 9 06:54:51 2019
@@ -128,22 +128,22 @@ cmovgq (%rax), %rdi
# CHECK-NEXT: 1 1 0.50 cmovgew %si, %di
# CHECK-NEXT: 1 1 0.50 cmovlew %si, %di
# CHECK-NEXT: 1 1 0.50 cmovgw %si, %di
-# CHECK-NEXT: 1 5 0.50 * cmovow (%rax), %di
-# CHECK-NEXT: 1 5 0.50 * cmovnow (%rax), %di
-# CHECK-NEXT: 1 5 0.50 * cmovbw (%rax), %di
-# CHECK-NEXT: 1 5 0.50 * cmovaew (%rax), %di
-# CHECK-NEXT: 1 5 0.50 * cmovew (%rax), %di
-# CHECK-NEXT: 1 5 0.50 * cmovnew (%rax), %di
-# CHECK-NEXT: 2 5 0.50 * cmovbew (%rax), %di
-# CHECK-NEXT: 2 5 0.50 * cmovaw (%rax), %di
-# CHECK-NEXT: 1 5 0.50 * cmovsw (%rax), %di
-# CHECK-NEXT: 1 5 0.50 * cmovnsw (%rax), %di
-# CHECK-NEXT: 1 5 0.50 * cmovpw (%rax), %di
-# CHECK-NEXT: 1 5 0.50 * cmovnpw (%rax), %di
-# CHECK-NEXT: 2 5 0.50 * cmovlw (%rax), %di
-# CHECK-NEXT: 2 5 0.50 * cmovgew (%rax), %di
-# CHECK-NEXT: 2 5 0.50 * cmovlew (%rax), %di
-# CHECK-NEXT: 2 5 0.50 * cmovgw (%rax), %di
+# CHECK-NEXT: 1 5 1.50 * cmovow (%rax), %di
+# CHECK-NEXT: 1 5 1.50 * cmovnow (%rax), %di
+# CHECK-NEXT: 1 5 1.50 * cmovbw (%rax), %di
+# CHECK-NEXT: 1 5 1.50 * cmovaew (%rax), %di
+# CHECK-NEXT: 1 5 1.50 * cmovew (%rax), %di
+# CHECK-NEXT: 1 5 1.50 * cmovnew (%rax), %di
+# CHECK-NEXT: 2 5 1.50 * cmovbew (%rax), %di
+# CHECK-NEXT: 2 5 1.50 * cmovaw (%rax), %di
+# CHECK-NEXT: 1 5 1.50 * cmovsw (%rax), %di
+# CHECK-NEXT: 1 5 1.50 * cmovnsw (%rax), %di
+# CHECK-NEXT: 1 5 1.50 * cmovpw (%rax), %di
+# CHECK-NEXT: 1 5 1.50 * cmovnpw (%rax), %di
+# CHECK-NEXT: 2 5 1.50 * cmovlw (%rax), %di
+# CHECK-NEXT: 2 5 1.50 * cmovgew (%rax), %di
+# CHECK-NEXT: 2 5 1.50 * cmovlew (%rax), %di
+# CHECK-NEXT: 2 5 1.50 * cmovgw (%rax), %di
# CHECK-NEXT: 1 1 0.50 cmovol %esi, %edi
# CHECK-NEXT: 1 1 0.50 cmovnol %esi, %edi
# CHECK-NEXT: 1 1 0.50 cmovbl %esi, %edi
@@ -160,22 +160,22 @@ cmovgq (%rax), %rdi
# CHECK-NEXT: 1 1 0.50 cmovgel %esi, %edi
# CHECK-NEXT: 1 1 0.50 cmovlel %esi, %edi
# CHECK-NEXT: 1 1 0.50 cmovgl %esi, %edi
-# CHECK-NEXT: 1 5 0.50 * cmovol (%rax), %edi
-# CHECK-NEXT: 1 5 0.50 * cmovnol (%rax), %edi
-# CHECK-NEXT: 1 5 0.50 * cmovbl (%rax), %edi
-# CHECK-NEXT: 1 5 0.50 * cmovael (%rax), %edi
-# CHECK-NEXT: 1 5 0.50 * cmovel (%rax), %edi
-# CHECK-NEXT: 1 5 0.50 * cmovnel (%rax), %edi
-# CHECK-NEXT: 2 5 0.50 * cmovbel (%rax), %edi
-# CHECK-NEXT: 2 5 0.50 * cmoval (%rax), %edi
-# CHECK-NEXT: 1 5 0.50 * cmovsl (%rax), %edi
-# CHECK-NEXT: 1 5 0.50 * cmovnsl (%rax), %edi
-# CHECK-NEXT: 1 5 0.50 * cmovpl (%rax), %edi
-# CHECK-NEXT: 1 5 0.50 * cmovnpl (%rax), %edi
-# CHECK-NEXT: 2 5 0.50 * cmovll (%rax), %edi
-# CHECK-NEXT: 2 5 0.50 * cmovgel (%rax), %edi
-# CHECK-NEXT: 2 5 0.50 * cmovlel (%rax), %edi
-# CHECK-NEXT: 2 5 0.50 * cmovgl (%rax), %edi
+# CHECK-NEXT: 1 5 1.50 * cmovol (%rax), %edi
+# CHECK-NEXT: 1 5 1.50 * cmovnol (%rax), %edi
+# CHECK-NEXT: 1 5 1.50 * cmovbl (%rax), %edi
+# CHECK-NEXT: 1 5 1.50 * cmovael (%rax), %edi
+# CHECK-NEXT: 1 5 1.50 * cmovel (%rax), %edi
+# CHECK-NEXT: 1 5 1.50 * cmovnel (%rax), %edi
+# CHECK-NEXT: 2 5 1.50 * cmovbel (%rax), %edi
+# CHECK-NEXT: 2 5 1.50 * cmoval (%rax), %edi
+# CHECK-NEXT: 1 5 1.50 * cmovsl (%rax), %edi
+# CHECK-NEXT: 1 5 1.50 * cmovnsl (%rax), %edi
+# CHECK-NEXT: 1 5 1.50 * cmovpl (%rax), %edi
+# CHECK-NEXT: 1 5 1.50 * cmovnpl (%rax), %edi
+# CHECK-NEXT: 2 5 1.50 * cmovll (%rax), %edi
+# CHECK-NEXT: 2 5 1.50 * cmovgel (%rax), %edi
+# CHECK-NEXT: 2 5 1.50 * cmovlel (%rax), %edi
+# CHECK-NEXT: 2 5 1.50 * cmovgl (%rax), %edi
# CHECK-NEXT: 1 1 0.50 cmovoq %rsi, %rdi
# CHECK-NEXT: 1 1 0.50 cmovnoq %rsi, %rdi
# CHECK-NEXT: 1 1 0.50 cmovbq %rsi, %rdi
@@ -192,22 +192,22 @@ cmovgq (%rax), %rdi
# CHECK-NEXT: 1 1 0.50 cmovgeq %rsi, %rdi
# CHECK-NEXT: 1 1 0.50 cmovleq %rsi, %rdi
# CHECK-NEXT: 1 1 0.50 cmovgq %rsi, %rdi
-# CHECK-NEXT: 1 5 0.50 * cmovoq (%rax), %rdi
-# CHECK-NEXT: 1 5 0.50 * cmovnoq (%rax), %rdi
-# CHECK-NEXT: 1 5 0.50 * cmovbq (%rax), %rdi
-# CHECK-NEXT: 1 5 0.50 * cmovaeq (%rax), %rdi
-# CHECK-NEXT: 1 5 0.50 * cmoveq (%rax), %rdi
-# CHECK-NEXT: 1 5 0.50 * cmovneq (%rax), %rdi
-# CHECK-NEXT: 2 5 0.50 * cmovbeq (%rax), %rdi
-# CHECK-NEXT: 2 5 0.50 * cmovaq (%rax), %rdi
-# CHECK-NEXT: 1 5 0.50 * cmovsq (%rax), %rdi
-# CHECK-NEXT: 1 5 0.50 * cmovnsq (%rax), %rdi
-# CHECK-NEXT: 1 5 0.50 * cmovpq (%rax), %rdi
-# CHECK-NEXT: 1 5 0.50 * cmovnpq (%rax), %rdi
-# CHECK-NEXT: 2 5 0.50 * cmovlq (%rax), %rdi
-# CHECK-NEXT: 2 5 0.50 * cmovgeq (%rax), %rdi
-# CHECK-NEXT: 2 5 0.50 * cmovleq (%rax), %rdi
-# CHECK-NEXT: 2 5 0.50 * cmovgq (%rax), %rdi
+# CHECK-NEXT: 1 5 1.50 * cmovoq (%rax), %rdi
+# CHECK-NEXT: 1 5 1.50 * cmovnoq (%rax), %rdi
+# CHECK-NEXT: 1 5 1.50 * cmovbq (%rax), %rdi
+# CHECK-NEXT: 1 5 1.50 * cmovaeq (%rax), %rdi
+# CHECK-NEXT: 1 5 1.50 * cmoveq (%rax), %rdi
+# CHECK-NEXT: 1 5 1.50 * cmovneq (%rax), %rdi
+# CHECK-NEXT: 2 5 1.50 * cmovbeq (%rax), %rdi
+# CHECK-NEXT: 2 5 1.50 * cmovaq (%rax), %rdi
+# CHECK-NEXT: 1 5 1.50 * cmovsq (%rax), %rdi
+# CHECK-NEXT: 1 5 1.50 * cmovnsq (%rax), %rdi
+# CHECK-NEXT: 1 5 1.50 * cmovpq (%rax), %rdi
+# CHECK-NEXT: 1 5 1.50 * cmovnpq (%rax), %rdi
+# CHECK-NEXT: 2 5 1.50 * cmovlq (%rax), %rdi
+# CHECK-NEXT: 2 5 1.50 * cmovgeq (%rax), %rdi
+# CHECK-NEXT: 2 5 1.50 * cmovleq (%rax), %rdi
+# CHECK-NEXT: 2 5 1.50 * cmovgq (%rax), %rdi
# CHECK: Resources:
# CHECK-NEXT: [0.0] - PdAGLU01
@@ -236,7 +236,7 @@ cmovgq (%rax), %rdi
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0.0] [0.1] [1] [2] [3] [4] [5] [6] [7.0] [7.1] [8.0] [8.1] [9] [10] [11] [12] [13] [14] [15] [16.0] [16.1] [17] [18]
-# CHECK-NEXT: 24.00 24.00 - - - 48.00 48.00 - - - - - - - - - - - - 24.00 24.00 - -
+# CHECK-NEXT: 72.00 72.00 - - - 66.00 66.00 - - - - - - - - - - - - 72.00 72.00 - -
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0.0] [0.1] [1] [2] [3] [4] [5] [6] [7.0] [7.1] [8.0] [8.1] [9] [10] [11] [12] [13] [14] [15] [16.0] [16.1] [17] [18] Instructions:
@@ -256,22 +256,22 @@ cmovgq (%rax), %rdi
# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - cmovgew %si, %di
# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - cmovlew %si, %di
# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - cmovgw %si, %di
-# CHECK-NEXT: 0.50 0.50 - - - 0.50 0.50 - - - - - - - - - - - - 0.50 0.50 - - cmovow (%rax), %di
-# CHECK-NEXT: 0.50 0.50 - - - 0.50 0.50 - - - - - - - - - - - - 0.50 0.50 - - cmovnow (%rax), %di
-# CHECK-NEXT: 0.50 0.50 - - - 0.50 0.50 - - - - - - - - - - - - 0.50 0.50 - - cmovbw (%rax), %di
-# CHECK-NEXT: 0.50 0.50 - - - 0.50 0.50 - - - - - - - - - - - - 0.50 0.50 - - cmovaew (%rax), %di
-# CHECK-NEXT: 0.50 0.50 - - - 0.50 0.50 - - - - - - - - - - - - 0.50 0.50 - - cmovew (%rax), %di
-# CHECK-NEXT: 0.50 0.50 - - - 0.50 0.50 - - - - - - - - - - - - 0.50 0.50 - - cmovnew (%rax), %di
-# CHECK-NEXT: 0.50 0.50 - - - 0.50 0.50 - - - - - - - - - - - - 0.50 0.50 - - cmovbew (%rax), %di
-# CHECK-NEXT: 0.50 0.50 - - - 0.50 0.50 - - - - - - - - - - - - 0.50 0.50 - - cmovaw (%rax), %di
-# CHECK-NEXT: 0.50 0.50 - - - 0.50 0.50 - - - - - - - - - - - - 0.50 0.50 - - cmovsw (%rax), %di
-# CHECK-NEXT: 0.50 0.50 - - - 0.50 0.50 - - - - - - - - - - - - 0.50 0.50 - - cmovnsw (%rax), %di
-# CHECK-NEXT: 0.50 0.50 - - - 0.50 0.50 - - - - - - - - - - - - 0.50 0.50 - - cmovpw (%rax), %di
-# CHECK-NEXT: 0.50 0.50 - - - 0.50 0.50 - - - - - - - - - - - - 0.50 0.50 - - cmovnpw (%rax), %di
-# CHECK-NEXT: 0.50 0.50 - - - 0.50 0.50 - - - - - - - - - - - - 0.50 0.50 - - cmovlw (%rax), %di
-# CHECK-NEXT: 0.50 0.50 - - - 0.50 0.50 - - - - - - - - - - - - 0.50 0.50 - - cmovgew (%rax), %di
-# CHECK-NEXT: 0.50 0.50 - - - 0.50 0.50 - - - - - - - - - - - - 0.50 0.50 - - cmovlew (%rax), %di
-# CHECK-NEXT: 0.50 0.50 - - - 0.50 0.50 - - - - - - - - - - - - 0.50 0.50 - - cmovgw (%rax), %di
+# CHECK-NEXT: 1.50 1.50 - - - 0.50 0.50 - - - - - - - - - - - - 1.50 1.50 - - cmovow (%rax), %di
+# CHECK-NEXT: 1.50 1.50 - - - 0.50 0.50 - - - - - - - - - - - - 1.50 1.50 - - cmovnow (%rax), %di
+# CHECK-NEXT: 1.50 1.50 - - - 0.50 0.50 - - - - - - - - - - - - 1.50 1.50 - - cmovbw (%rax), %di
+# CHECK-NEXT: 1.50 1.50 - - - 0.50 0.50 - - - - - - - - - - - - 1.50 1.50 - - cmovaew (%rax), %di
+# CHECK-NEXT: 1.50 1.50 - - - 0.50 0.50 - - - - - - - - - - - - 1.50 1.50 - - cmovew (%rax), %di
+# CHECK-NEXT: 1.50 1.50 - - - 0.50 0.50 - - - - - - - - - - - - 1.50 1.50 - - cmovnew (%rax), %di
+# CHECK-NEXT: 1.50 1.50 - - - 1.50 1.50 - - - - - - - - - - - - 1.50 1.50 - - cmovbew (%rax), %di
+# CHECK-NEXT: 1.50 1.50 - - - 1.50 1.50 - - - - - - - - - - - - 1.50 1.50 - - cmovaw (%rax), %di
+# CHECK-NEXT: 1.50 1.50 - - - 0.50 0.50 - - - - - - - - - - - - 1.50 1.50 - - cmovsw (%rax), %di
+# CHECK-NEXT: 1.50 1.50 - - - 0.50 0.50 - - - - - - - - - - - - 1.50 1.50 - - cmovnsw (%rax), %di
+# CHECK-NEXT: 1.50 1.50 - - - 0.50 0.50 - - - - - - - - - - - - 1.50 1.50 - - cmovpw (%rax), %di
+# CHECK-NEXT: 1.50 1.50 - - - 0.50 0.50 - - - - - - - - - - - - 1.50 1.50 - - cmovnpw (%rax), %di
+# CHECK-NEXT: 1.50 1.50 - - - 1.50 1.50 - - - - - - - - - - - - 1.50 1.50 - - cmovlw (%rax), %di
+# CHECK-NEXT: 1.50 1.50 - - - 1.50 1.50 - - - - - - - - - - - - 1.50 1.50 - - cmovgew (%rax), %di
+# CHECK-NEXT: 1.50 1.50 - - - 1.50 1.50 - - - - - - - - - - - - 1.50 1.50 - - cmovlew (%rax), %di
+# CHECK-NEXT: 1.50 1.50 - - - 1.50 1.50 - - - - - - - - - - - - 1.50 1.50 - - cmovgw (%rax), %di
# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - cmovol %esi, %edi
# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - cmovnol %esi, %edi
# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - cmovbl %esi, %edi
@@ -288,22 +288,22 @@ cmovgq (%rax), %rdi
# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - cmovgel %esi, %edi
# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - cmovlel %esi, %edi
# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - cmovgl %esi, %edi
-# CHECK-NEXT: 0.50 0.50 - - - 0.50 0.50 - - - - - - - - - - - - 0.50 0.50 - - cmovol (%rax), %edi
-# CHECK-NEXT: 0.50 0.50 - - - 0.50 0.50 - - - - - - - - - - - - 0.50 0.50 - - cmovnol (%rax), %edi
-# CHECK-NEXT: 0.50 0.50 - - - 0.50 0.50 - - - - - - - - - - - - 0.50 0.50 - - cmovbl (%rax), %edi
-# CHECK-NEXT: 0.50 0.50 - - - 0.50 0.50 - - - - - - - - - - - - 0.50 0.50 - - cmovael (%rax), %edi
-# CHECK-NEXT: 0.50 0.50 - - - 0.50 0.50 - - - - - - - - - - - - 0.50 0.50 - - cmovel (%rax), %edi
-# CHECK-NEXT: 0.50 0.50 - - - 0.50 0.50 - - - - - - - - - - - - 0.50 0.50 - - cmovnel (%rax), %edi
-# CHECK-NEXT: 0.50 0.50 - - - 0.50 0.50 - - - - - - - - - - - - 0.50 0.50 - - cmovbel (%rax), %edi
-# CHECK-NEXT: 0.50 0.50 - - - 0.50 0.50 - - - - - - - - - - - - 0.50 0.50 - - cmoval (%rax), %edi
-# CHECK-NEXT: 0.50 0.50 - - - 0.50 0.50 - - - - - - - - - - - - 0.50 0.50 - - cmovsl (%rax), %edi
-# CHECK-NEXT: 0.50 0.50 - - - 0.50 0.50 - - - - - - - - - - - - 0.50 0.50 - - cmovnsl (%rax), %edi
-# CHECK-NEXT: 0.50 0.50 - - - 0.50 0.50 - - - - - - - - - - - - 0.50 0.50 - - cmovpl (%rax), %edi
-# CHECK-NEXT: 0.50 0.50 - - - 0.50 0.50 - - - - - - - - - - - - 0.50 0.50 - - cmovnpl (%rax), %edi
-# CHECK-NEXT: 0.50 0.50 - - - 0.50 0.50 - - - - - - - - - - - - 0.50 0.50 - - cmovll (%rax), %edi
-# CHECK-NEXT: 0.50 0.50 - - - 0.50 0.50 - - - - - - - - - - - - 0.50 0.50 - - cmovgel (%rax), %edi
-# CHECK-NEXT: 0.50 0.50 - - - 0.50 0.50 - - - - - - - - - - - - 0.50 0.50 - - cmovlel (%rax), %edi
-# CHECK-NEXT: 0.50 0.50 - - - 0.50 0.50 - - - - - - - - - - - - 0.50 0.50 - - cmovgl (%rax), %edi
+# CHECK-NEXT: 1.50 1.50 - - - 0.50 0.50 - - - - - - - - - - - - 1.50 1.50 - - cmovol (%rax), %edi
+# CHECK-NEXT: 1.50 1.50 - - - 0.50 0.50 - - - - - - - - - - - - 1.50 1.50 - - cmovnol (%rax), %edi
+# CHECK-NEXT: 1.50 1.50 - - - 0.50 0.50 - - - - - - - - - - - - 1.50 1.50 - - cmovbl (%rax), %edi
+# CHECK-NEXT: 1.50 1.50 - - - 0.50 0.50 - - - - - - - - - - - - 1.50 1.50 - - cmovael (%rax), %edi
+# CHECK-NEXT: 1.50 1.50 - - - 0.50 0.50 - - - - - - - - - - - - 1.50 1.50 - - cmovel (%rax), %edi
+# CHECK-NEXT: 1.50 1.50 - - - 0.50 0.50 - - - - - - - - - - - - 1.50 1.50 - - cmovnel (%rax), %edi
+# CHECK-NEXT: 1.50 1.50 - - - 1.50 1.50 - - - - - - - - - - - - 1.50 1.50 - - cmovbel (%rax), %edi
+# CHECK-NEXT: 1.50 1.50 - - - 1.50 1.50 - - - - - - - - - - - - 1.50 1.50 - - cmoval (%rax), %edi
+# CHECK-NEXT: 1.50 1.50 - - - 0.50 0.50 - - - - - - - - - - - - 1.50 1.50 - - cmovsl (%rax), %edi
+# CHECK-NEXT: 1.50 1.50 - - - 0.50 0.50 - - - - - - - - - - - - 1.50 1.50 - - cmovnsl (%rax), %edi
+# CHECK-NEXT: 1.50 1.50 - - - 0.50 0.50 - - - - - - - - - - - - 1.50 1.50 - - cmovpl (%rax), %edi
+# CHECK-NEXT: 1.50 1.50 - - - 0.50 0.50 - - - - - - - - - - - - 1.50 1.50 - - cmovnpl (%rax), %edi
+# CHECK-NEXT: 1.50 1.50 - - - 1.50 1.50 - - - - - - - - - - - - 1.50 1.50 - - cmovll (%rax), %edi
+# CHECK-NEXT: 1.50 1.50 - - - 1.50 1.50 - - - - - - - - - - - - 1.50 1.50 - - cmovgel (%rax), %edi
+# CHECK-NEXT: 1.50 1.50 - - - 1.50 1.50 - - - - - - - - - - - - 1.50 1.50 - - cmovlel (%rax), %edi
+# CHECK-NEXT: 1.50 1.50 - - - 1.50 1.50 - - - - - - - - - - - - 1.50 1.50 - - cmovgl (%rax), %edi
# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - cmovoq %rsi, %rdi
# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - cmovnoq %rsi, %rdi
# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - cmovbq %rsi, %rdi
@@ -320,19 +320,19 @@ cmovgq (%rax), %rdi
# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - cmovgeq %rsi, %rdi
# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - cmovleq %rsi, %rdi
# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - cmovgq %rsi, %rdi
-# CHECK-NEXT: 0.50 0.50 - - - 0.50 0.50 - - - - - - - - - - - - 0.50 0.50 - - cmovoq (%rax), %rdi
-# CHECK-NEXT: 0.50 0.50 - - - 0.50 0.50 - - - - - - - - - - - - 0.50 0.50 - - cmovnoq (%rax), %rdi
-# CHECK-NEXT: 0.50 0.50 - - - 0.50 0.50 - - - - - - - - - - - - 0.50 0.50 - - cmovbq (%rax), %rdi
-# CHECK-NEXT: 0.50 0.50 - - - 0.50 0.50 - - - - - - - - - - - - 0.50 0.50 - - cmovaeq (%rax), %rdi
-# CHECK-NEXT: 0.50 0.50 - - - 0.50 0.50 - - - - - - - - - - - - 0.50 0.50 - - cmoveq (%rax), %rdi
-# CHECK-NEXT: 0.50 0.50 - - - 0.50 0.50 - - - - - - - - - - - - 0.50 0.50 - - cmovneq (%rax), %rdi
-# CHECK-NEXT: 0.50 0.50 - - - 0.50 0.50 - - - - - - - - - - - - 0.50 0.50 - - cmovbeq (%rax), %rdi
-# CHECK-NEXT: 0.50 0.50 - - - 0.50 0.50 - - - - - - - - - - - - 0.50 0.50 - - cmovaq (%rax), %rdi
-# CHECK-NEXT: 0.50 0.50 - - - 0.50 0.50 - - - - - - - - - - - - 0.50 0.50 - - cmovsq (%rax), %rdi
-# CHECK-NEXT: 0.50 0.50 - - - 0.50 0.50 - - - - - - - - - - - - 0.50 0.50 - - cmovnsq (%rax), %rdi
-# CHECK-NEXT: 0.50 0.50 - - - 0.50 0.50 - - - - - - - - - - - - 0.50 0.50 - - cmovpq (%rax), %rdi
-# CHECK-NEXT: 0.50 0.50 - - - 0.50 0.50 - - - - - - - - - - - - 0.50 0.50 - - cmovnpq (%rax), %rdi
-# CHECK-NEXT: 0.50 0.50 - - - 0.50 0.50 - - - - - - - - - - - - 0.50 0.50 - - cmovlq (%rax), %rdi
-# CHECK-NEXT: 0.50 0.50 - - - 0.50 0.50 - - - - - - - - - - - - 0.50 0.50 - - cmovgeq (%rax), %rdi
-# CHECK-NEXT: 0.50 0.50 - - - 0.50 0.50 - - - - - - - - - - - - 0.50 0.50 - - cmovleq (%rax), %rdi
-# CHECK-NEXT: 0.50 0.50 - - - 0.50 0.50 - - - - - - - - - - - - 0.50 0.50 - - cmovgq (%rax), %rdi
+# CHECK-NEXT: 1.50 1.50 - - - 0.50 0.50 - - - - - - - - - - - - 1.50 1.50 - - cmovoq (%rax), %rdi
+# CHECK-NEXT: 1.50 1.50 - - - 0.50 0.50 - - - - - - - - - - - - 1.50 1.50 - - cmovnoq (%rax), %rdi
+# CHECK-NEXT: 1.50 1.50 - - - 0.50 0.50 - - - - - - - - - - - - 1.50 1.50 - - cmovbq (%rax), %rdi
+# CHECK-NEXT: 1.50 1.50 - - - 0.50 0.50 - - - - - - - - - - - - 1.50 1.50 - - cmovaeq (%rax), %rdi
+# CHECK-NEXT: 1.50 1.50 - - - 0.50 0.50 - - - - - - - - - - - - 1.50 1.50 - - cmoveq (%rax), %rdi
+# CHECK-NEXT: 1.50 1.50 - - - 0.50 0.50 - - - - - - - - - - - - 1.50 1.50 - - cmovneq (%rax), %rdi
+# CHECK-NEXT: 1.50 1.50 - - - 1.50 1.50 - - - - - - - - - - - - 1.50 1.50 - - cmovbeq (%rax), %rdi
+# CHECK-NEXT: 1.50 1.50 - - - 1.50 1.50 - - - - - - - - - - - - 1.50 1.50 - - cmovaq (%rax), %rdi
+# CHECK-NEXT: 1.50 1.50 - - - 0.50 0.50 - - - - - - - - - - - - 1.50 1.50 - - cmovsq (%rax), %rdi
+# CHECK-NEXT: 1.50 1.50 - - - 0.50 0.50 - - - - - - - - - - - - 1.50 1.50 - - cmovnsq (%rax), %rdi
+# CHECK-NEXT: 1.50 1.50 - - - 0.50 0.50 - - - - - - - - - - - - 1.50 1.50 - - cmovpq (%rax), %rdi
+# CHECK-NEXT: 1.50 1.50 - - - 0.50 0.50 - - - - - - - - - - - - 1.50 1.50 - - cmovnpq (%rax), %rdi
+# CHECK-NEXT: 1.50 1.50 - - - 1.50 1.50 - - - - - - - - - - - - 1.50 1.50 - - cmovlq (%rax), %rdi
+# CHECK-NEXT: 1.50 1.50 - - - 1.50 1.50 - - - - - - - - - - - - 1.50 1.50 - - cmovgeq (%rax), %rdi
+# CHECK-NEXT: 1.50 1.50 - - - 1.50 1.50 - - - - - - - - - - - - 1.50 1.50 - - cmovleq (%rax), %rdi
+# CHECK-NEXT: 1.50 1.50 - - - 1.50 1.50 - - - - - - - - - - - - 1.50 1.50 - - cmovgq (%rax), %rdi
Modified: llvm/trunk/test/tools/llvm-mca/X86/BdVer2/resources-cmpxchg.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-mca/X86/BdVer2/resources-cmpxchg.s?rev=360341&r1=360340&r2=360341&view=diff
==============================================================================
--- llvm/trunk/test/tools/llvm-mca/X86/BdVer2/resources-cmpxchg.s (original)
+++ llvm/trunk/test/tools/llvm-mca/X86/BdVer2/resources-cmpxchg.s Thu May 9 06:54:51 2019
@@ -13,8 +13,8 @@ cmpxchg16b (%rax)
# CHECK-NEXT: [6]: HasSideEffects (U)
# CHECK: [1] [2] [3] [4] [5] [6] Instructions:
-# CHECK-NEXT: 18 3 1.00 * * cmpxchg8b (%rax)
-# CHECK-NEXT: 22 3 1.00 * * cmpxchg16b (%rax)
+# CHECK-NEXT: 18 3 26.00 * * cmpxchg8b (%rax)
+# CHECK-NEXT: 22 3 69.00 * * cmpxchg16b (%rax)
# CHECK: Resources:
# CHECK-NEXT: [0.0] - PdAGLU01
@@ -43,9 +43,9 @@ cmpxchg16b (%rax)
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0.0] [0.1] [1] [2] [3] [4] [5] [6] [7.0] [7.1] [8.0] [8.1] [9] [10] [11] [12] [13] [14] [15] [16.0] [16.1] [17] [18]
-# CHECK-NEXT: - - - - - - 2.00 - - - - - - - - - - - - - - - -
+# CHECK-NEXT: - - - - - - 95.00 - - - - - - - - - - - - - - - -
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0.0] [0.1] [1] [2] [3] [4] [5] [6] [7.0] [7.1] [8.0] [8.1] [9] [10] [11] [12] [13] [14] [15] [16.0] [16.1] [17] [18] Instructions:
-# CHECK-NEXT: - - - - - - 1.00 - - - - - - - - - - - - - - - - cmpxchg8b (%rax)
-# CHECK-NEXT: - - - - - - 1.00 - - - - - - - - - - - - - - - - cmpxchg16b (%rax)
+# CHECK-NEXT: - - - - - - 26.00 - - - - - - - - - - - - - - - - cmpxchg8b (%rax)
+# CHECK-NEXT: - - - - - - 69.00 - - - - - - - - - - - - - - - - cmpxchg16b (%rax)
Modified: llvm/trunk/test/tools/llvm-mca/X86/BdVer2/resources-f16c.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-mca/X86/BdVer2/resources-f16c.s?rev=360341&r1=360340&r2=360341&view=diff
==============================================================================
--- llvm/trunk/test/tools/llvm-mca/X86/BdVer2/resources-f16c.s (original)
+++ llvm/trunk/test/tools/llvm-mca/X86/BdVer2/resources-f16c.s Thu May 9 06:54:51 2019
@@ -22,12 +22,12 @@ vcvtps2ph $0, %ymm0, (%rax)
# CHECK-NEXT: [6]: HasSideEffects (U)
# CHECK: [1] [2] [3] [4] [5] [6] Instructions:
-# CHECK-NEXT: 2 8 1.00 vcvtph2ps %xmm0, %xmm2
-# CHECK-NEXT: 3 13 1.00 * vcvtph2ps (%rax), %xmm2
+# CHECK-NEXT: 2 8 2.00 vcvtph2ps %xmm0, %xmm2
+# CHECK-NEXT: 3 13 2.00 * vcvtph2ps (%rax), %xmm2
# CHECK-NEXT: 4 8 2.00 vcvtph2ps %xmm0, %ymm2
# CHECK-NEXT: 7 13 2.00 * vcvtph2ps (%rax), %ymm2
-# CHECK-NEXT: 2 8 1.00 vcvtps2ph $0, %xmm0, %xmm2
-# CHECK-NEXT: 3 4 1.00 * vcvtps2ph $0, %xmm0, (%rax)
+# CHECK-NEXT: 2 8 2.00 vcvtps2ph $0, %xmm0, %xmm2
+# CHECK-NEXT: 3 4 2.00 * vcvtps2ph $0, %xmm0, (%rax)
# CHECK-NEXT: 4 8 2.00 vcvtps2ph $0, %ymm0, %xmm2
# CHECK-NEXT: 4 4 2.00 * vcvtps2ph $0, %ymm0, (%rax)
@@ -58,15 +58,15 @@ vcvtps2ph $0, %ymm0, (%rax)
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0.0] [0.1] [1] [2] [3] [4] [5] [6] [7.0] [7.1] [8.0] [8.1] [9] [10] [11] [12] [13] [14] [15] [16.0] [16.1] [17] [18]
-# CHECK-NEXT: 2.50 2.50 - - - - - - 1.00 1.00 - - - 8.00 - 12.00 - - - 1.50 1.50 - 2.00
+# CHECK-NEXT: 4.00 4.00 - - - - - 16.00 1.00 1.00 - - - 8.00 8.00 - - - - 3.00 3.00 - 2.00
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0.0] [0.1] [1] [2] [3] [4] [5] [6] [7.0] [7.1] [8.0] [8.1] [9] [10] [11] [12] [13] [14] [15] [16.0] [16.1] [17] [18] Instructions:
-# CHECK-NEXT: - - - - - - - - - - - - - 1.00 - 1.00 - - - - - - - vcvtph2ps %xmm0, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - 1.00 - 1.00 - - - 0.50 0.50 - - vcvtph2ps (%rax), %xmm2
-# CHECK-NEXT: - - - - - - - - - - - - - 1.00 - 2.00 - - - - - - - vcvtph2ps %xmm0, %ymm2
-# CHECK-NEXT: 1.00 1.00 - - - - - - - - - - - 1.00 - 2.00 - - - 1.00 1.00 - - vcvtph2ps (%rax), %ymm2
-# CHECK-NEXT: - - - - - - - - - - - - - 1.00 - 1.00 - - - - - - - vcvtps2ph $0, %xmm0, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - 1.00 - 1.00 - - - - - - 1.00 vcvtps2ph $0, %xmm0, (%rax)
-# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - 1.00 - 2.00 - - - - - - - vcvtps2ph $0, %ymm0, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - 1.00 - 2.00 - - - - - - 1.00 vcvtps2ph $0, %ymm0, (%rax)
+# CHECK-NEXT: - - - - - - - 2.00 - - - - - 1.00 1.00 - - - - - - - - vcvtph2ps %xmm0, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - 2.00 - - - - - 1.00 1.00 - - - - 1.50 1.50 - - vcvtph2ps (%rax), %xmm2
+# CHECK-NEXT: - - - - - - - 2.00 - - - - - 1.00 1.00 - - - - - - - - vcvtph2ps %xmm0, %ymm2
+# CHECK-NEXT: 1.50 1.50 - - - - - 2.00 - - - - - 1.00 1.00 - - - - 1.50 1.50 - - vcvtph2ps (%rax), %ymm2
+# CHECK-NEXT: - - - - - - - 2.00 - - - - - 1.00 1.00 - - - - - - - - vcvtps2ph $0, %xmm0, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - 2.00 - - - - - 1.00 1.00 - - - - - - - 1.00 vcvtps2ph $0, %xmm0, (%rax)
+# CHECK-NEXT: - - - - - - - 2.00 0.50 0.50 - - - 1.00 1.00 - - - - - - - - vcvtps2ph $0, %ymm0, %xmm2
+# CHECK-NEXT: 0.50 0.50 - - - - - 2.00 0.50 0.50 - - - 1.00 1.00 - - - - - - - 1.00 vcvtps2ph $0, %ymm0, (%rax)
Modified: llvm/trunk/test/tools/llvm-mca/X86/BdVer2/resources-fma.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-mca/X86/BdVer2/resources-fma.s?rev=360341&r1=360340&r2=360341&view=diff
==============================================================================
--- llvm/trunk/test/tools/llvm-mca/X86/BdVer2/resources-fma.s (original)
+++ llvm/trunk/test/tools/llvm-mca/X86/BdVer2/resources-fma.s Thu May 9 06:54:51 2019
@@ -298,198 +298,198 @@ vfnmsub231ss (%rax), %xmm1, %xmm2
# CHECK-NEXT: [6]: HasSideEffects (U)
# CHECK: [1] [2] [3] [4] [5] [6] Instructions:
-# CHECK-NEXT: 1 5 0.50 vfmadd132pd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 10 0.50 * vfmadd132pd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 2 5 0.50 vfmadd132pd %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 2 10 1.00 * vfmadd132pd (%rax), %ymm1, %ymm2
-# CHECK-NEXT: 1 5 0.50 vfmadd213pd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 10 0.50 * vfmadd213pd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 2 5 0.50 vfmadd213pd %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 2 10 1.00 * vfmadd213pd (%rax), %ymm1, %ymm2
-# CHECK-NEXT: 1 5 0.50 vfmadd231pd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 10 0.50 * vfmadd231pd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 2 5 0.50 vfmadd231pd %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 2 10 1.00 * vfmadd231pd (%rax), %ymm1, %ymm2
-# CHECK-NEXT: 1 5 0.50 vfmadd132ps %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 10 0.50 * vfmadd132ps (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 2 5 0.50 vfmadd132ps %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 2 10 1.00 * vfmadd132ps (%rax), %ymm1, %ymm2
-# CHECK-NEXT: 1 5 0.50 vfmadd213ps %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 10 0.50 * vfmadd213ps (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 2 5 0.50 vfmadd213ps %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 2 10 1.00 * vfmadd213ps (%rax), %ymm1, %ymm2
-# CHECK-NEXT: 1 5 0.50 vfmadd231ps %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 10 0.50 * vfmadd231ps (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 2 5 0.50 vfmadd231ps %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 2 10 1.00 * vfmadd231ps (%rax), %ymm1, %ymm2
-# CHECK-NEXT: 1 5 0.50 vfmadd132sd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 10 0.50 * vfmadd132sd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 5 0.50 vfmadd213sd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 10 0.50 * vfmadd213sd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 5 0.50 vfmadd231sd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 10 0.50 * vfmadd231sd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 5 0.50 vfmadd132ss %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 10 0.50 * vfmadd132ss (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 5 0.50 vfmadd213ss %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 10 0.50 * vfmadd213ss (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 5 0.50 vfmadd231ss %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 10 0.50 * vfmadd231ss (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 5 0.50 vfmaddsub132pd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 10 0.50 * vfmaddsub132pd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 2 5 0.50 vfmaddsub132pd %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 2 10 1.00 * vfmaddsub132pd (%rax), %ymm1, %ymm2
-# CHECK-NEXT: 1 5 0.50 vfmaddsub213pd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 10 0.50 * vfmaddsub213pd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 2 5 0.50 vfmaddsub213pd %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 2 10 1.00 * vfmaddsub213pd (%rax), %ymm1, %ymm2
-# CHECK-NEXT: 1 5 0.50 vfmaddsub231pd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 10 0.50 * vfmaddsub231pd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 2 5 0.50 vfmaddsub231pd %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 2 10 1.00 * vfmaddsub231pd (%rax), %ymm1, %ymm2
-# CHECK-NEXT: 1 5 0.50 vfmaddsub132ps %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 10 0.50 * vfmaddsub132ps (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 2 5 0.50 vfmaddsub132ps %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 2 10 1.00 * vfmaddsub132ps (%rax), %ymm1, %ymm2
-# CHECK-NEXT: 1 5 0.50 vfmaddsub213ps %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 10 0.50 * vfmaddsub213ps (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 2 5 0.50 vfmaddsub213ps %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 2 10 1.00 * vfmaddsub213ps (%rax), %ymm1, %ymm2
-# CHECK-NEXT: 1 5 0.50 vfmaddsub231ps %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 10 0.50 * vfmaddsub231ps (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 2 5 0.50 vfmaddsub231ps %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 2 10 1.00 * vfmaddsub231ps (%rax), %ymm1, %ymm2
-# CHECK-NEXT: 1 5 0.50 vfmsub132pd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 10 0.50 * vfmsub132pd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 2 5 0.50 vfmsub132pd %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 2 10 1.00 * vfmsub132pd (%rax), %ymm1, %ymm2
-# CHECK-NEXT: 1 5 0.50 vfmsub213pd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 10 0.50 * vfmsub213pd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 2 5 0.50 vfmsub213pd %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 2 10 1.00 * vfmsub213pd (%rax), %ymm1, %ymm2
-# CHECK-NEXT: 1 5 0.50 vfmsub231pd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 10 0.50 * vfmsub231pd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 2 5 0.50 vfmsub231pd %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 2 10 1.00 * vfmsub231pd (%rax), %ymm1, %ymm2
-# CHECK-NEXT: 1 5 0.50 vfmsub132ps %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 10 0.50 * vfmsub132ps (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 2 5 0.50 vfmsub132ps %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 2 10 1.00 * vfmsub132ps (%rax), %ymm1, %ymm2
-# CHECK-NEXT: 1 5 0.50 vfmsub213ps %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 10 0.50 * vfmsub213ps (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 2 5 0.50 vfmsub213ps %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 2 10 1.00 * vfmsub213ps (%rax), %ymm1, %ymm2
-# CHECK-NEXT: 1 5 0.50 vfmsub231ps %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 10 0.50 * vfmsub231ps (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 2 5 0.50 vfmsub231ps %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 2 10 1.00 * vfmsub231ps (%rax), %ymm1, %ymm2
-# CHECK-NEXT: 1 5 0.50 vfmsub132sd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 10 0.50 * vfmsub132sd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 5 0.50 vfmsub213sd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 10 0.50 * vfmsub213sd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 5 0.50 vfmsub231sd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 10 0.50 * vfmsub231sd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 5 0.50 vfmsub132ss %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 10 0.50 * vfmsub132ss (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 5 0.50 vfmsub213ss %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 10 0.50 * vfmsub213ss (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 5 0.50 vfmsub231ss %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 10 0.50 * vfmsub231ss (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 5 0.50 vfmsubadd132pd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 10 0.50 * vfmsubadd132pd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 2 5 0.50 vfmsubadd132pd %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 2 10 1.00 * vfmsubadd132pd (%rax), %ymm1, %ymm2
-# CHECK-NEXT: 1 5 0.50 vfmsubadd213pd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 10 0.50 * vfmsubadd213pd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 2 5 0.50 vfmsubadd213pd %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 2 10 1.00 * vfmsubadd213pd (%rax), %ymm1, %ymm2
-# CHECK-NEXT: 1 5 0.50 vfmsubadd231pd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 10 0.50 * vfmsubadd231pd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 2 5 0.50 vfmsubadd231pd %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 2 10 1.00 * vfmsubadd231pd (%rax), %ymm1, %ymm2
-# CHECK-NEXT: 1 5 0.50 vfmsubadd132ps %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 10 0.50 * vfmsubadd132ps (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 2 5 0.50 vfmsubadd132ps %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 2 10 1.00 * vfmsubadd132ps (%rax), %ymm1, %ymm2
-# CHECK-NEXT: 1 5 0.50 vfmsubadd213ps %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 10 0.50 * vfmsubadd213ps (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 2 5 0.50 vfmsubadd213ps %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 2 10 1.00 * vfmsubadd213ps (%rax), %ymm1, %ymm2
-# CHECK-NEXT: 1 5 0.50 vfmsubadd231ps %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 10 0.50 * vfmsubadd231ps (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 2 5 0.50 vfmsubadd231ps %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 2 10 1.00 * vfmsubadd231ps (%rax), %ymm1, %ymm2
-# CHECK-NEXT: 1 5 0.50 vfnmadd132pd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 10 0.50 * vfnmadd132pd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 2 5 0.50 vfnmadd132pd %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 2 10 1.00 * vfnmadd132pd (%rax), %ymm1, %ymm2
-# CHECK-NEXT: 1 5 0.50 vfnmadd213pd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 10 0.50 * vfnmadd213pd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 2 5 0.50 vfnmadd213pd %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 2 10 1.00 * vfnmadd213pd (%rax), %ymm1, %ymm2
-# CHECK-NEXT: 1 5 0.50 vfnmadd231pd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 10 0.50 * vfnmadd231pd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 2 5 0.50 vfnmadd231pd %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 2 10 1.00 * vfnmadd231pd (%rax), %ymm1, %ymm2
-# CHECK-NEXT: 1 5 0.50 vfnmadd132ps %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 10 0.50 * vfnmadd132ps (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 2 5 0.50 vfnmadd132ps %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 2 10 1.00 * vfnmadd132ps (%rax), %ymm1, %ymm2
-# CHECK-NEXT: 1 5 0.50 vfnmadd213ps %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 10 0.50 * vfnmadd213ps (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 2 5 0.50 vfnmadd213ps %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 2 10 1.00 * vfnmadd213ps (%rax), %ymm1, %ymm2
-# CHECK-NEXT: 1 5 0.50 vfnmadd231ps %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 10 0.50 * vfnmadd231ps (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 2 5 0.50 vfnmadd231ps %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 2 10 1.00 * vfnmadd231ps (%rax), %ymm1, %ymm2
-# CHECK-NEXT: 1 5 0.50 vfnmadd132sd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 10 0.50 * vfnmadd132sd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 5 0.50 vfnmadd213sd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 10 0.50 * vfnmadd213sd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 5 0.50 vfnmadd231sd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 10 0.50 * vfnmadd231sd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 5 0.50 vfnmadd132ss %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 10 0.50 * vfnmadd132ss (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 5 0.50 vfnmadd213ss %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 10 0.50 * vfnmadd213ss (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 5 0.50 vfnmadd231ss %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 10 0.50 * vfnmadd231ss (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 5 0.50 vfnmsub132pd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 10 0.50 * vfnmsub132pd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 2 5 0.50 vfnmsub132pd %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 2 10 1.00 * vfnmsub132pd (%rax), %ymm1, %ymm2
-# CHECK-NEXT: 1 5 0.50 vfnmsub213pd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 10 0.50 * vfnmsub213pd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 2 5 0.50 vfnmsub213pd %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 2 10 1.00 * vfnmsub213pd (%rax), %ymm1, %ymm2
-# CHECK-NEXT: 1 5 0.50 vfnmsub231pd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 10 0.50 * vfnmsub231pd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 2 5 0.50 vfnmsub231pd %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 2 10 1.00 * vfnmsub231pd (%rax), %ymm1, %ymm2
-# CHECK-NEXT: 1 5 0.50 vfnmsub132ps %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 10 0.50 * vfnmsub132ps (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 2 5 0.50 vfnmsub132ps %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 2 10 1.00 * vfnmsub132ps (%rax), %ymm1, %ymm2
-# CHECK-NEXT: 1 5 0.50 vfnmsub213ps %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 10 0.50 * vfnmsub213ps (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 2 5 0.50 vfnmsub213ps %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 2 10 1.00 * vfnmsub213ps (%rax), %ymm1, %ymm2
-# CHECK-NEXT: 1 5 0.50 vfnmsub231ps %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 10 0.50 * vfnmsub231ps (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 2 5 0.50 vfnmsub231ps %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 2 10 1.00 * vfnmsub231ps (%rax), %ymm1, %ymm2
-# CHECK-NEXT: 1 5 0.50 vfnmsub132sd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 10 0.50 * vfnmsub132sd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 5 0.50 vfnmsub213sd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 10 0.50 * vfnmsub213sd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 5 0.50 vfnmsub231sd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 10 0.50 * vfnmsub231sd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 5 0.50 vfnmsub132ss %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 10 0.50 * vfnmsub132ss (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 5 0.50 vfnmsub213ss %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 10 0.50 * vfnmsub213ss (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 5 0.50 vfnmsub231ss %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 10 0.50 * vfnmsub231ss (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 5 1.50 vfmadd132pd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 10 1.50 * vfmadd132pd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 2 5 1.50 vfmadd132pd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 2 10 1.50 * vfmadd132pd (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 1 5 1.50 vfmadd213pd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 10 1.50 * vfmadd213pd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 2 5 1.50 vfmadd213pd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 2 10 1.50 * vfmadd213pd (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 1 5 1.50 vfmadd231pd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 10 1.50 * vfmadd231pd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 2 5 1.50 vfmadd231pd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 2 10 1.50 * vfmadd231pd (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 1 5 1.50 vfmadd132ps %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 10 1.50 * vfmadd132ps (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 2 5 1.50 vfmadd132ps %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 2 10 1.50 * vfmadd132ps (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 1 5 1.50 vfmadd213ps %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 10 1.50 * vfmadd213ps (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 2 5 1.50 vfmadd213ps %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 2 10 1.50 * vfmadd213ps (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 1 5 1.50 vfmadd231ps %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 10 1.50 * vfmadd231ps (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 2 5 1.50 vfmadd231ps %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 2 10 1.50 * vfmadd231ps (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 1 5 1.50 vfmadd132sd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 10 1.50 * vfmadd132sd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 5 1.50 vfmadd213sd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 10 1.50 * vfmadd213sd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 5 1.50 vfmadd231sd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 10 1.50 * vfmadd231sd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 5 1.50 vfmadd132ss %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 10 1.50 * vfmadd132ss (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 5 1.50 vfmadd213ss %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 10 1.50 * vfmadd213ss (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 5 1.50 vfmadd231ss %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 10 1.50 * vfmadd231ss (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 5 1.50 vfmaddsub132pd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 10 1.50 * vfmaddsub132pd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 2 5 1.50 vfmaddsub132pd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 2 10 1.50 * vfmaddsub132pd (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 1 5 1.50 vfmaddsub213pd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 10 1.50 * vfmaddsub213pd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 2 5 1.50 vfmaddsub213pd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 2 10 1.50 * vfmaddsub213pd (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 1 5 1.50 vfmaddsub231pd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 10 1.50 * vfmaddsub231pd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 2 5 1.50 vfmaddsub231pd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 2 10 1.50 * vfmaddsub231pd (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 1 5 1.50 vfmaddsub132ps %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 10 1.50 * vfmaddsub132ps (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 2 5 1.50 vfmaddsub132ps %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 2 10 1.50 * vfmaddsub132ps (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 1 5 1.50 vfmaddsub213ps %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 10 1.50 * vfmaddsub213ps (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 2 5 1.50 vfmaddsub213ps %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 2 10 1.50 * vfmaddsub213ps (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 1 5 1.50 vfmaddsub231ps %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 10 1.50 * vfmaddsub231ps (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 2 5 1.50 vfmaddsub231ps %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 2 10 1.50 * vfmaddsub231ps (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 1 5 1.50 vfmsub132pd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 10 1.50 * vfmsub132pd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 2 5 1.50 vfmsub132pd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 2 10 1.50 * vfmsub132pd (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 1 5 1.50 vfmsub213pd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 10 1.50 * vfmsub213pd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 2 5 1.50 vfmsub213pd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 2 10 1.50 * vfmsub213pd (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 1 5 1.50 vfmsub231pd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 10 1.50 * vfmsub231pd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 2 5 1.50 vfmsub231pd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 2 10 1.50 * vfmsub231pd (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 1 5 1.50 vfmsub132ps %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 10 1.50 * vfmsub132ps (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 2 5 1.50 vfmsub132ps %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 2 10 1.50 * vfmsub132ps (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 1 5 1.50 vfmsub213ps %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 10 1.50 * vfmsub213ps (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 2 5 1.50 vfmsub213ps %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 2 10 1.50 * vfmsub213ps (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 1 5 1.50 vfmsub231ps %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 10 1.50 * vfmsub231ps (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 2 5 1.50 vfmsub231ps %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 2 10 1.50 * vfmsub231ps (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 1 5 1.50 vfmsub132sd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 10 1.50 * vfmsub132sd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 5 1.50 vfmsub213sd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 10 1.50 * vfmsub213sd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 5 1.50 vfmsub231sd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 10 1.50 * vfmsub231sd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 5 1.50 vfmsub132ss %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 10 1.50 * vfmsub132ss (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 5 1.50 vfmsub213ss %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 10 1.50 * vfmsub213ss (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 5 1.50 vfmsub231ss %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 10 1.50 * vfmsub231ss (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 5 1.50 vfmsubadd132pd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 10 1.50 * vfmsubadd132pd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 2 5 1.50 vfmsubadd132pd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 2 10 1.50 * vfmsubadd132pd (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 1 5 1.50 vfmsubadd213pd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 10 1.50 * vfmsubadd213pd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 2 5 1.50 vfmsubadd213pd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 2 10 1.50 * vfmsubadd213pd (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 1 5 1.50 vfmsubadd231pd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 10 1.50 * vfmsubadd231pd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 2 5 1.50 vfmsubadd231pd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 2 10 1.50 * vfmsubadd231pd (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 1 5 1.50 vfmsubadd132ps %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 10 1.50 * vfmsubadd132ps (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 2 5 1.50 vfmsubadd132ps %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 2 10 1.50 * vfmsubadd132ps (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 1 5 1.50 vfmsubadd213ps %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 10 1.50 * vfmsubadd213ps (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 2 5 1.50 vfmsubadd213ps %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 2 10 1.50 * vfmsubadd213ps (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 1 5 1.50 vfmsubadd231ps %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 10 1.50 * vfmsubadd231ps (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 2 5 1.50 vfmsubadd231ps %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 2 10 1.50 * vfmsubadd231ps (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 1 5 1.50 vfnmadd132pd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 10 1.50 * vfnmadd132pd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 2 5 1.50 vfnmadd132pd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 2 10 1.50 * vfnmadd132pd (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 1 5 1.50 vfnmadd213pd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 10 1.50 * vfnmadd213pd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 2 5 1.50 vfnmadd213pd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 2 10 1.50 * vfnmadd213pd (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 1 5 1.50 vfnmadd231pd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 10 1.50 * vfnmadd231pd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 2 5 1.50 vfnmadd231pd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 2 10 1.50 * vfnmadd231pd (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 1 5 1.50 vfnmadd132ps %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 10 1.50 * vfnmadd132ps (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 2 5 1.50 vfnmadd132ps %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 2 10 1.50 * vfnmadd132ps (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 1 5 1.50 vfnmadd213ps %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 10 1.50 * vfnmadd213ps (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 2 5 1.50 vfnmadd213ps %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 2 10 1.50 * vfnmadd213ps (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 1 5 1.50 vfnmadd231ps %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 10 1.50 * vfnmadd231ps (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 2 5 1.50 vfnmadd231ps %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 2 10 1.50 * vfnmadd231ps (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 1 5 1.50 vfnmadd132sd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 10 1.50 * vfnmadd132sd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 5 1.50 vfnmadd213sd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 10 1.50 * vfnmadd213sd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 5 1.50 vfnmadd231sd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 10 1.50 * vfnmadd231sd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 5 1.50 vfnmadd132ss %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 10 1.50 * vfnmadd132ss (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 5 1.50 vfnmadd213ss %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 10 1.50 * vfnmadd213ss (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 5 1.50 vfnmadd231ss %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 10 1.50 * vfnmadd231ss (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 5 1.50 vfnmsub132pd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 10 1.50 * vfnmsub132pd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 2 5 1.50 vfnmsub132pd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 2 10 1.50 * vfnmsub132pd (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 1 5 1.50 vfnmsub213pd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 10 1.50 * vfnmsub213pd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 2 5 1.50 vfnmsub213pd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 2 10 1.50 * vfnmsub213pd (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 1 5 1.50 vfnmsub231pd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 10 1.50 * vfnmsub231pd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 2 5 1.50 vfnmsub231pd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 2 10 1.50 * vfnmsub231pd (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 1 5 1.50 vfnmsub132ps %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 10 1.50 * vfnmsub132ps (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 2 5 1.50 vfnmsub132ps %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 2 10 1.50 * vfnmsub132ps (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 1 5 1.50 vfnmsub213ps %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 10 1.50 * vfnmsub213ps (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 2 5 1.50 vfnmsub213ps %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 2 10 1.50 * vfnmsub213ps (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 1 5 1.50 vfnmsub231ps %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 10 1.50 * vfnmsub231ps (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 2 5 1.50 vfnmsub231ps %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 2 10 1.50 * vfnmsub231ps (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 1 5 1.50 vfnmsub132sd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 10 1.50 * vfnmsub132sd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 5 1.50 vfnmsub213sd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 10 1.50 * vfnmsub213sd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 5 1.50 vfnmsub231sd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 10 1.50 * vfnmsub231sd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 5 1.50 vfnmsub132ss %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 10 1.50 * vfnmsub132ss (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 5 1.50 vfnmsub213ss %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 10 1.50 * vfnmsub213ss (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 5 1.50 vfnmsub231ss %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1 10 1.50 * vfnmsub231ss (%rax), %xmm1, %xmm2
# CHECK: Resources:
# CHECK-NEXT: [0.0] - PdAGLU01
@@ -518,199 +518,199 @@ vfnmsub231ss (%rax), %xmm1, %xmm2
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0.0] [0.1] [1] [2] [3] [4] [5] [6] [7.0] [7.1] [8.0] [8.1] [9] [10] [11] [12] [13] [14] [15] [16.0] [16.1] [17] [18]
-# CHECK-NEXT: 66.00 66.00 - - - - - - 96.00 96.00 - - - - 48.00 48.00 48.00 48.00 - 66.00 66.00 - -
+# CHECK-NEXT: 144.00 144.00 - - - - - - 288.00 288.00 - - - - 48.00 48.00 48.00 48.00 - 144.00 144.00 - -
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0.0] [0.1] [1] [2] [3] [4] [5] [6] [7.0] [7.1] [8.0] [8.1] [9] [10] [11] [12] [13] [14] [15] [16.0] [16.1] [17] [18] Instructions:
-# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfmadd132pd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - 0.50 0.50 - - vfmadd132pd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfmadd132pd %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 1.00 1.00 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - 1.00 1.00 - - vfmadd132pd (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfmadd213pd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - 0.50 0.50 - - vfmadd213pd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfmadd213pd %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 1.00 1.00 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - 1.00 1.00 - - vfmadd213pd (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfmadd231pd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - 0.50 0.50 - - vfmadd231pd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfmadd231pd %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 1.00 1.00 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - 1.00 1.00 - - vfmadd231pd (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfmadd132ps %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - 0.50 0.50 - - vfmadd132ps (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfmadd132ps %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 1.00 1.00 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - 1.00 1.00 - - vfmadd132ps (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfmadd213ps %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - 0.50 0.50 - - vfmadd213ps (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfmadd213ps %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 1.00 1.00 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - 1.00 1.00 - - vfmadd213ps (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfmadd231ps %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - 0.50 0.50 - - vfmadd231ps (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfmadd231ps %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 1.00 1.00 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - 1.00 1.00 - - vfmadd231ps (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfmadd132sd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - 0.50 0.50 - - vfmadd132sd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfmadd213sd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - 0.50 0.50 - - vfmadd213sd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfmadd231sd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - 0.50 0.50 - - vfmadd231sd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfmadd132ss %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - 0.50 0.50 - - vfmadd132ss (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfmadd213ss %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - 0.50 0.50 - - vfmadd213ss (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfmadd231ss %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - 0.50 0.50 - - vfmadd231ss (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfmaddsub132pd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - 0.50 0.50 - - vfmaddsub132pd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfmaddsub132pd %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 1.00 1.00 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - 1.00 1.00 - - vfmaddsub132pd (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfmaddsub213pd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - 0.50 0.50 - - vfmaddsub213pd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfmaddsub213pd %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 1.00 1.00 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - 1.00 1.00 - - vfmaddsub213pd (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfmaddsub231pd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - 0.50 0.50 - - vfmaddsub231pd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfmaddsub231pd %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 1.00 1.00 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - 1.00 1.00 - - vfmaddsub231pd (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfmaddsub132ps %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - 0.50 0.50 - - vfmaddsub132ps (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfmaddsub132ps %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 1.00 1.00 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - 1.00 1.00 - - vfmaddsub132ps (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfmaddsub213ps %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - 0.50 0.50 - - vfmaddsub213ps (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfmaddsub213ps %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 1.00 1.00 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - 1.00 1.00 - - vfmaddsub213ps (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfmaddsub231ps %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - 0.50 0.50 - - vfmaddsub231ps (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfmaddsub231ps %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 1.00 1.00 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - 1.00 1.00 - - vfmaddsub231ps (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfmsub132pd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - 0.50 0.50 - - vfmsub132pd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfmsub132pd %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 1.00 1.00 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - 1.00 1.00 - - vfmsub132pd (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfmsub213pd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - 0.50 0.50 - - vfmsub213pd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfmsub213pd %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 1.00 1.00 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - 1.00 1.00 - - vfmsub213pd (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfmsub231pd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - 0.50 0.50 - - vfmsub231pd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfmsub231pd %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 1.00 1.00 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - 1.00 1.00 - - vfmsub231pd (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfmsub132ps %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - 0.50 0.50 - - vfmsub132ps (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfmsub132ps %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 1.00 1.00 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - 1.00 1.00 - - vfmsub132ps (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfmsub213ps %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - 0.50 0.50 - - vfmsub213ps (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfmsub213ps %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 1.00 1.00 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - 1.00 1.00 - - vfmsub213ps (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfmsub231ps %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - 0.50 0.50 - - vfmsub231ps (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfmsub231ps %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 1.00 1.00 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - 1.00 1.00 - - vfmsub231ps (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfmsub132sd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - 0.50 0.50 - - vfmsub132sd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfmsub213sd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - 0.50 0.50 - - vfmsub213sd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfmsub231sd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - 0.50 0.50 - - vfmsub231sd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfmsub132ss %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - 0.50 0.50 - - vfmsub132ss (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfmsub213ss %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - 0.50 0.50 - - vfmsub213ss (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfmsub231ss %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - 0.50 0.50 - - vfmsub231ss (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfmsubadd132pd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - 0.50 0.50 - - vfmsubadd132pd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfmsubadd132pd %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 1.00 1.00 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - 1.00 1.00 - - vfmsubadd132pd (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfmsubadd213pd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - 0.50 0.50 - - vfmsubadd213pd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfmsubadd213pd %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 1.00 1.00 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - 1.00 1.00 - - vfmsubadd213pd (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfmsubadd231pd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - 0.50 0.50 - - vfmsubadd231pd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfmsubadd231pd %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 1.00 1.00 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - 1.00 1.00 - - vfmsubadd231pd (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfmsubadd132ps %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - 0.50 0.50 - - vfmsubadd132ps (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfmsubadd132ps %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 1.00 1.00 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - 1.00 1.00 - - vfmsubadd132ps (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfmsubadd213ps %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - 0.50 0.50 - - vfmsubadd213ps (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfmsubadd213ps %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 1.00 1.00 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - 1.00 1.00 - - vfmsubadd213ps (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfmsubadd231ps %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - 0.50 0.50 - - vfmsubadd231ps (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfmsubadd231ps %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 1.00 1.00 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - 1.00 1.00 - - vfmsubadd231ps (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfnmadd132pd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - 0.50 0.50 - - vfnmadd132pd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfnmadd132pd %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 1.00 1.00 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - 1.00 1.00 - - vfnmadd132pd (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfnmadd213pd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - 0.50 0.50 - - vfnmadd213pd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfnmadd213pd %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 1.00 1.00 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - 1.00 1.00 - - vfnmadd213pd (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfnmadd231pd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - 0.50 0.50 - - vfnmadd231pd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfnmadd231pd %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 1.00 1.00 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - 1.00 1.00 - - vfnmadd231pd (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfnmadd132ps %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - 0.50 0.50 - - vfnmadd132ps (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfnmadd132ps %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 1.00 1.00 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - 1.00 1.00 - - vfnmadd132ps (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfnmadd213ps %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - 0.50 0.50 - - vfnmadd213ps (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfnmadd213ps %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 1.00 1.00 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - 1.00 1.00 - - vfnmadd213ps (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfnmadd231ps %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - 0.50 0.50 - - vfnmadd231ps (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfnmadd231ps %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 1.00 1.00 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - 1.00 1.00 - - vfnmadd231ps (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfnmadd132sd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - 0.50 0.50 - - vfnmadd132sd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfnmadd213sd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - 0.50 0.50 - - vfnmadd213sd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfnmadd231sd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - 0.50 0.50 - - vfnmadd231sd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfnmadd132ss %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - 0.50 0.50 - - vfnmadd132ss (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfnmadd213ss %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - 0.50 0.50 - - vfnmadd213ss (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfnmadd231ss %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - 0.50 0.50 - - vfnmadd231ss (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfnmsub132pd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - 0.50 0.50 - - vfnmsub132pd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfnmsub132pd %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 1.00 1.00 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - 1.00 1.00 - - vfnmsub132pd (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfnmsub213pd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - 0.50 0.50 - - vfnmsub213pd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfnmsub213pd %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 1.00 1.00 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - 1.00 1.00 - - vfnmsub213pd (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfnmsub231pd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - 0.50 0.50 - - vfnmsub231pd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfnmsub231pd %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 1.00 1.00 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - 1.00 1.00 - - vfnmsub231pd (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfnmsub132ps %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - 0.50 0.50 - - vfnmsub132ps (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfnmsub132ps %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 1.00 1.00 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - 1.00 1.00 - - vfnmsub132ps (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfnmsub213ps %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - 0.50 0.50 - - vfnmsub213ps (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfnmsub213ps %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 1.00 1.00 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - 1.00 1.00 - - vfnmsub213ps (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfnmsub231ps %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - 0.50 0.50 - - vfnmsub231ps (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfnmsub231ps %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 1.00 1.00 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - 1.00 1.00 - - vfnmsub231ps (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfnmsub132sd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - 0.50 0.50 - - vfnmsub132sd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfnmsub213sd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - 0.50 0.50 - - vfnmsub213sd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfnmsub231sd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - 0.50 0.50 - - vfnmsub231sd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfnmsub132ss %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - 0.50 0.50 - - vfnmsub132ss (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfnmsub213ss %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - 0.50 0.50 - - vfnmsub213ss (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfnmsub231ss %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - 0.50 0.50 - - vfnmsub231ss (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfmadd132pd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - 1.50 1.50 - - vfmadd132pd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfmadd132pd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - 1.50 1.50 - - vfmadd132pd (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfmadd213pd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - 1.50 1.50 - - vfmadd213pd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfmadd213pd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - 1.50 1.50 - - vfmadd213pd (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfmadd231pd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - 1.50 1.50 - - vfmadd231pd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfmadd231pd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - 1.50 1.50 - - vfmadd231pd (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfmadd132ps %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - 1.50 1.50 - - vfmadd132ps (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfmadd132ps %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - 1.50 1.50 - - vfmadd132ps (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfmadd213ps %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - 1.50 1.50 - - vfmadd213ps (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfmadd213ps %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - 1.50 1.50 - - vfmadd213ps (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfmadd231ps %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - 1.50 1.50 - - vfmadd231ps (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfmadd231ps %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - 1.50 1.50 - - vfmadd231ps (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfmadd132sd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - 1.50 1.50 - - vfmadd132sd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfmadd213sd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - 1.50 1.50 - - vfmadd213sd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfmadd231sd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - 1.50 1.50 - - vfmadd231sd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfmadd132ss %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - 1.50 1.50 - - vfmadd132ss (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfmadd213ss %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - 1.50 1.50 - - vfmadd213ss (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfmadd231ss %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - 1.50 1.50 - - vfmadd231ss (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfmaddsub132pd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - 1.50 1.50 - - vfmaddsub132pd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfmaddsub132pd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - 1.50 1.50 - - vfmaddsub132pd (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfmaddsub213pd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - 1.50 1.50 - - vfmaddsub213pd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfmaddsub213pd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - 1.50 1.50 - - vfmaddsub213pd (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfmaddsub231pd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - 1.50 1.50 - - vfmaddsub231pd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfmaddsub231pd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - 1.50 1.50 - - vfmaddsub231pd (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfmaddsub132ps %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - 1.50 1.50 - - vfmaddsub132ps (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfmaddsub132ps %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - 1.50 1.50 - - vfmaddsub132ps (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfmaddsub213ps %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - 1.50 1.50 - - vfmaddsub213ps (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfmaddsub213ps %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - 1.50 1.50 - - vfmaddsub213ps (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfmaddsub231ps %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - 1.50 1.50 - - vfmaddsub231ps (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfmaddsub231ps %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - 1.50 1.50 - - vfmaddsub231ps (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfmsub132pd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - 1.50 1.50 - - vfmsub132pd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfmsub132pd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - 1.50 1.50 - - vfmsub132pd (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfmsub213pd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - 1.50 1.50 - - vfmsub213pd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfmsub213pd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - 1.50 1.50 - - vfmsub213pd (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfmsub231pd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - 1.50 1.50 - - vfmsub231pd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfmsub231pd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - 1.50 1.50 - - vfmsub231pd (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfmsub132ps %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - 1.50 1.50 - - vfmsub132ps (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfmsub132ps %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - 1.50 1.50 - - vfmsub132ps (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfmsub213ps %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - 1.50 1.50 - - vfmsub213ps (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfmsub213ps %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - 1.50 1.50 - - vfmsub213ps (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfmsub231ps %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - 1.50 1.50 - - vfmsub231ps (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfmsub231ps %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - 1.50 1.50 - - vfmsub231ps (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfmsub132sd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - 1.50 1.50 - - vfmsub132sd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfmsub213sd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - 1.50 1.50 - - vfmsub213sd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfmsub231sd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - 1.50 1.50 - - vfmsub231sd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfmsub132ss %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - 1.50 1.50 - - vfmsub132ss (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfmsub213ss %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - 1.50 1.50 - - vfmsub213ss (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfmsub231ss %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - 1.50 1.50 - - vfmsub231ss (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfmsubadd132pd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - 1.50 1.50 - - vfmsubadd132pd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfmsubadd132pd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - 1.50 1.50 - - vfmsubadd132pd (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfmsubadd213pd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - 1.50 1.50 - - vfmsubadd213pd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfmsubadd213pd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - 1.50 1.50 - - vfmsubadd213pd (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfmsubadd231pd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - 1.50 1.50 - - vfmsubadd231pd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfmsubadd231pd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - 1.50 1.50 - - vfmsubadd231pd (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfmsubadd132ps %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - 1.50 1.50 - - vfmsubadd132ps (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfmsubadd132ps %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - 1.50 1.50 - - vfmsubadd132ps (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfmsubadd213ps %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - 1.50 1.50 - - vfmsubadd213ps (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfmsubadd213ps %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - 1.50 1.50 - - vfmsubadd213ps (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfmsubadd231ps %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - 1.50 1.50 - - vfmsubadd231ps (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfmsubadd231ps %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - 1.50 1.50 - - vfmsubadd231ps (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfnmadd132pd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - 1.50 1.50 - - vfnmadd132pd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfnmadd132pd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - 1.50 1.50 - - vfnmadd132pd (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfnmadd213pd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - 1.50 1.50 - - vfnmadd213pd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfnmadd213pd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - 1.50 1.50 - - vfnmadd213pd (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfnmadd231pd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - 1.50 1.50 - - vfnmadd231pd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfnmadd231pd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - 1.50 1.50 - - vfnmadd231pd (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfnmadd132ps %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - 1.50 1.50 - - vfnmadd132ps (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfnmadd132ps %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - 1.50 1.50 - - vfnmadd132ps (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfnmadd213ps %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - 1.50 1.50 - - vfnmadd213ps (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfnmadd213ps %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - 1.50 1.50 - - vfnmadd213ps (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfnmadd231ps %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - 1.50 1.50 - - vfnmadd231ps (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfnmadd231ps %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - 1.50 1.50 - - vfnmadd231ps (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfnmadd132sd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - 1.50 1.50 - - vfnmadd132sd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfnmadd213sd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - 1.50 1.50 - - vfnmadd213sd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfnmadd231sd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - 1.50 1.50 - - vfnmadd231sd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfnmadd132ss %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - 1.50 1.50 - - vfnmadd132ss (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfnmadd213ss %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - 1.50 1.50 - - vfnmadd213ss (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfnmadd231ss %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - 1.50 1.50 - - vfnmadd231ss (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfnmsub132pd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - 1.50 1.50 - - vfnmsub132pd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfnmsub132pd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - 1.50 1.50 - - vfnmsub132pd (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfnmsub213pd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - 1.50 1.50 - - vfnmsub213pd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfnmsub213pd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - 1.50 1.50 - - vfnmsub213pd (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfnmsub231pd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - 1.50 1.50 - - vfnmsub231pd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfnmsub231pd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - 1.50 1.50 - - vfnmsub231pd (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfnmsub132ps %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - 1.50 1.50 - - vfnmsub132ps (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfnmsub132ps %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - 1.50 1.50 - - vfnmsub132ps (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfnmsub213ps %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - 1.50 1.50 - - vfnmsub213ps (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfnmsub213ps %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - 1.50 1.50 - - vfnmsub213ps (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfnmsub231ps %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - 1.50 1.50 - - vfnmsub231ps (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfnmsub231ps %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - 1.50 1.50 - - vfnmsub231ps (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfnmsub132sd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - 1.50 1.50 - - vfnmsub132sd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfnmsub213sd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - 1.50 1.50 - - vfnmsub213sd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfnmsub231sd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - 1.50 1.50 - - vfnmsub231sd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfnmsub132ss %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - 1.50 1.50 - - vfnmsub132ss (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfnmsub213ss %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - 1.50 1.50 - - vfnmsub213ss (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfnmsub231ss %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: 1.50 1.50 - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - 1.50 1.50 - - vfnmsub231ss (%rax), %xmm1, %xmm2
Modified: llvm/trunk/test/tools/llvm-mca/X86/BdVer2/resources-fma4.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-mca/X86/BdVer2/resources-fma4.s?rev=360341&r1=360340&r2=360341&view=diff
==============================================================================
--- llvm/trunk/test/tools/llvm-mca/X86/BdVer2/resources-fma4.s (original)
+++ llvm/trunk/test/tools/llvm-mca/X86/BdVer2/resources-fma4.s Thu May 9 06:54:51 2019
@@ -138,102 +138,102 @@ vfnmsubss %xmm0, (%rax), %xmm2, %xmm3
# CHECK-NEXT: [6]: HasSideEffects (U)
# CHECK: [1] [2] [3] [4] [5] [6] Instructions:
-# CHECK-NEXT: 1 5 0.50 vfmaddpd %xmm0, %xmm1, %xmm2, %xmm3
-# CHECK-NEXT: 1 10 0.50 * vfmaddpd (%rax), %xmm1, %xmm2, %xmm3
-# CHECK-NEXT: 1 10 0.50 * vfmaddpd %xmm0, (%rax), %xmm2, %xmm3
-# CHECK-NEXT: 2 5 0.50 vfmaddpd %ymm0, %ymm1, %ymm2, %ymm3
-# CHECK-NEXT: 2 10 1.00 * vfmaddpd (%rax), %ymm1, %ymm2, %ymm3
-# CHECK-NEXT: 2 10 1.00 * vfmaddpd %ymm0, (%rax), %ymm2, %ymm3
-# CHECK-NEXT: 1 5 0.50 vfmaddps %xmm0, %xmm1, %xmm2, %xmm3
-# CHECK-NEXT: 1 10 0.50 * vfmaddps (%rax), %xmm1, %xmm2, %xmm3
-# CHECK-NEXT: 1 10 0.50 * vfmaddps %xmm0, (%rax), %xmm2, %xmm3
-# CHECK-NEXT: 2 5 0.50 vfmaddps %ymm0, %ymm1, %ymm2, %ymm3
-# CHECK-NEXT: 2 10 1.00 * vfmaddps (%rax), %ymm1, %ymm2, %ymm3
-# CHECK-NEXT: 2 10 1.00 * vfmaddps %ymm0, (%rax), %ymm2, %ymm3
-# CHECK-NEXT: 1 5 0.50 vfmaddsd %xmm0, %xmm1, %xmm2, %xmm3
-# CHECK-NEXT: 1 10 0.50 * vfmaddsd (%rax), %xmm1, %xmm2, %xmm3
-# CHECK-NEXT: 1 10 0.50 * vfmaddsd %xmm0, (%rax), %xmm2, %xmm3
-# CHECK-NEXT: 1 5 0.50 vfmaddss %xmm0, %xmm1, %xmm2, %xmm3
-# CHECK-NEXT: 1 10 0.50 * vfmaddss (%rax), %xmm1, %xmm2, %xmm3
-# CHECK-NEXT: 1 10 0.50 * vfmaddss %xmm0, (%rax), %xmm2, %xmm3
-# CHECK-NEXT: 1 5 0.50 vfmaddsubpd %xmm0, %xmm1, %xmm2, %xmm3
-# CHECK-NEXT: 1 10 0.50 * vfmaddsubpd (%rax), %xmm1, %xmm2, %xmm3
-# CHECK-NEXT: 1 10 0.50 * vfmaddsubpd %xmm0, (%rax), %xmm2, %xmm3
-# CHECK-NEXT: 2 5 0.50 vfmaddsubpd %ymm0, %ymm1, %ymm2, %ymm3
-# CHECK-NEXT: 2 10 1.00 * vfmaddsubpd (%rax), %ymm1, %ymm2, %ymm3
-# CHECK-NEXT: 2 10 1.00 * vfmaddsubpd %ymm0, (%rax), %ymm2, %ymm3
-# CHECK-NEXT: 1 5 0.50 vfmaddsubps %xmm0, %xmm1, %xmm2, %xmm3
-# CHECK-NEXT: 1 10 0.50 * vfmaddsubps (%rax), %xmm1, %xmm2, %xmm3
-# CHECK-NEXT: 1 10 0.50 * vfmaddsubps %xmm0, (%rax), %xmm2, %xmm3
-# CHECK-NEXT: 2 5 0.50 vfmaddsubps %ymm0, %ymm1, %ymm2, %ymm3
-# CHECK-NEXT: 2 10 1.00 * vfmaddsubps (%rax), %ymm1, %ymm2, %ymm3
-# CHECK-NEXT: 2 10 1.00 * vfmaddsubps %ymm0, (%rax), %ymm2, %ymm3
-# CHECK-NEXT: 1 5 0.50 vfmsubaddpd %xmm0, %xmm1, %xmm2, %xmm3
-# CHECK-NEXT: 1 10 0.50 * vfmsubaddpd (%rax), %xmm1, %xmm2, %xmm3
-# CHECK-NEXT: 1 10 0.50 * vfmsubaddpd %xmm0, (%rax), %xmm2, %xmm3
-# CHECK-NEXT: 2 5 0.50 vfmsubaddpd %ymm0, %ymm1, %ymm2, %ymm3
-# CHECK-NEXT: 2 10 1.00 * vfmsubaddpd (%rax), %ymm1, %ymm2, %ymm3
-# CHECK-NEXT: 2 10 1.00 * vfmsubaddpd %ymm0, (%rax), %ymm2, %ymm3
-# CHECK-NEXT: 1 5 0.50 vfmsubaddps %xmm0, %xmm1, %xmm2, %xmm3
-# CHECK-NEXT: 1 10 0.50 * vfmsubaddps (%rax), %xmm1, %xmm2, %xmm3
-# CHECK-NEXT: 1 10 0.50 * vfmsubaddps %xmm0, (%rax), %xmm2, %xmm3
-# CHECK-NEXT: 2 5 0.50 vfmsubaddps %ymm0, %ymm1, %ymm2, %ymm3
-# CHECK-NEXT: 2 10 1.00 * vfmsubaddps (%rax), %ymm1, %ymm2, %ymm3
-# CHECK-NEXT: 2 10 1.00 * vfmsubaddps %ymm0, (%rax), %ymm2, %ymm3
-# CHECK-NEXT: 1 5 0.50 vfmsubpd %xmm0, %xmm1, %xmm2, %xmm3
-# CHECK-NEXT: 1 10 0.50 * vfmsubpd (%rax), %xmm1, %xmm2, %xmm3
-# CHECK-NEXT: 1 10 0.50 * vfmsubpd %xmm0, (%rax), %xmm2, %xmm3
-# CHECK-NEXT: 2 5 0.50 vfmsubpd %ymm0, %ymm1, %ymm2, %ymm3
-# CHECK-NEXT: 2 10 1.00 * vfmsubpd (%rax), %ymm1, %ymm2, %ymm3
-# CHECK-NEXT: 2 10 1.00 * vfmsubpd %ymm0, (%rax), %ymm2, %ymm3
-# CHECK-NEXT: 1 5 0.50 vfmsubps %xmm0, %xmm1, %xmm2, %xmm3
-# CHECK-NEXT: 1 10 0.50 * vfmsubps (%rax), %xmm1, %xmm2, %xmm3
-# CHECK-NEXT: 1 10 0.50 * vfmsubps %xmm0, (%rax), %xmm2, %xmm3
-# CHECK-NEXT: 2 5 0.50 vfmsubps %ymm0, %ymm1, %ymm2, %ymm3
-# CHECK-NEXT: 2 10 1.00 * vfmsubps (%rax), %ymm1, %ymm2, %ymm3
-# CHECK-NEXT: 2 10 1.00 * vfmsubps %ymm0, (%rax), %ymm2, %ymm3
-# CHECK-NEXT: 1 5 0.50 vfmsubsd %xmm0, %xmm1, %xmm2, %xmm3
-# CHECK-NEXT: 1 10 0.50 * vfmsubsd (%rax), %xmm1, %xmm2, %xmm3
-# CHECK-NEXT: 1 10 0.50 * vfmsubsd %xmm0, (%rax), %xmm2, %xmm3
-# CHECK-NEXT: 1 5 0.50 vfmsubss %xmm0, %xmm1, %xmm2, %xmm3
-# CHECK-NEXT: 1 10 0.50 * vfmsubss (%rax), %xmm1, %xmm2, %xmm3
-# CHECK-NEXT: 1 10 0.50 * vfmsubss %xmm0, (%rax), %xmm2, %xmm3
-# CHECK-NEXT: 1 5 0.50 vfnmaddpd %xmm0, %xmm1, %xmm2, %xmm3
-# CHECK-NEXT: 1 10 0.50 * vfnmaddpd (%rax), %xmm1, %xmm2, %xmm3
-# CHECK-NEXT: 1 10 0.50 * vfnmaddpd %xmm0, (%rax), %xmm2, %xmm3
-# CHECK-NEXT: 2 5 0.50 vfnmaddpd %ymm0, %ymm1, %ymm2, %ymm3
-# CHECK-NEXT: 2 10 1.00 * vfnmaddpd (%rax), %ymm1, %ymm2, %ymm3
-# CHECK-NEXT: 2 10 1.00 * vfnmaddpd %ymm0, (%rax), %ymm2, %ymm3
-# CHECK-NEXT: 1 5 0.50 vfnmaddps %xmm0, %xmm1, %xmm2, %xmm3
-# CHECK-NEXT: 1 10 0.50 * vfnmaddps (%rax), %xmm1, %xmm2, %xmm3
-# CHECK-NEXT: 1 10 0.50 * vfnmaddps %xmm0, (%rax), %xmm2, %xmm3
-# CHECK-NEXT: 2 5 0.50 vfnmaddps %ymm0, %ymm1, %ymm2, %ymm3
-# CHECK-NEXT: 2 10 1.00 * vfnmaddps (%rax), %ymm1, %ymm2, %ymm3
-# CHECK-NEXT: 2 10 1.00 * vfnmaddps %ymm0, (%rax), %ymm2, %ymm3
-# CHECK-NEXT: 1 5 0.50 vfnmaddsd %xmm0, %xmm1, %xmm2, %xmm3
-# CHECK-NEXT: 1 10 0.50 * vfnmaddsd (%rax), %xmm1, %xmm2, %xmm3
-# CHECK-NEXT: 1 10 0.50 * vfnmaddsd %xmm0, (%rax), %xmm2, %xmm3
-# CHECK-NEXT: 1 5 0.50 vfnmaddss %xmm0, %xmm1, %xmm2, %xmm3
-# CHECK-NEXT: 1 10 0.50 * vfnmaddss (%rax), %xmm1, %xmm2, %xmm3
-# CHECK-NEXT: 1 10 0.50 * vfnmaddss %xmm0, (%rax), %xmm2, %xmm3
-# CHECK-NEXT: 1 5 0.50 vfnmsubpd %xmm0, %xmm1, %xmm2, %xmm3
-# CHECK-NEXT: 1 10 0.50 * vfnmsubpd (%rax), %xmm1, %xmm2, %xmm3
-# CHECK-NEXT: 1 10 0.50 * vfnmsubpd %xmm0, (%rax), %xmm2, %xmm3
-# CHECK-NEXT: 2 5 0.50 vfnmsubpd %ymm0, %ymm1, %ymm2, %ymm3
-# CHECK-NEXT: 2 10 1.00 * vfnmsubpd (%rax), %ymm1, %ymm2, %ymm3
-# CHECK-NEXT: 2 10 1.00 * vfnmsubpd %ymm0, (%rax), %ymm2, %ymm3
-# CHECK-NEXT: 1 5 0.50 vfnmsubps %xmm0, %xmm1, %xmm2, %xmm3
-# CHECK-NEXT: 1 10 0.50 * vfnmsubps (%rax), %xmm1, %xmm2, %xmm3
-# CHECK-NEXT: 1 10 0.50 * vfnmsubps %xmm0, (%rax), %xmm2, %xmm3
-# CHECK-NEXT: 2 5 0.50 vfnmsubps %ymm0, %ymm1, %ymm2, %ymm3
-# CHECK-NEXT: 2 10 1.00 * vfnmsubps (%rax), %ymm1, %ymm2, %ymm3
-# CHECK-NEXT: 2 10 1.00 * vfnmsubps %ymm0, (%rax), %ymm2, %ymm3
-# CHECK-NEXT: 1 5 0.50 vfnmsubsd %xmm0, %xmm1, %xmm2, %xmm3
-# CHECK-NEXT: 1 10 0.50 * vfnmsubsd (%rax), %xmm1, %xmm2, %xmm3
-# CHECK-NEXT: 1 10 0.50 * vfnmsubsd %xmm0, (%rax), %xmm2, %xmm3
-# CHECK-NEXT: 1 5 0.50 vfnmsubss %xmm0, %xmm1, %xmm2, %xmm3
-# CHECK-NEXT: 1 10 0.50 * vfnmsubss (%rax), %xmm1, %xmm2, %xmm3
-# CHECK-NEXT: 1 10 0.50 * vfnmsubss %xmm0, (%rax), %xmm2, %xmm3
+# CHECK-NEXT: 1 5 1.50 vfmaddpd %xmm0, %xmm1, %xmm2, %xmm3
+# CHECK-NEXT: 1 10 1.50 * vfmaddpd (%rax), %xmm1, %xmm2, %xmm3
+# CHECK-NEXT: 1 10 1.50 * vfmaddpd %xmm0, (%rax), %xmm2, %xmm3
+# CHECK-NEXT: 2 5 1.50 vfmaddpd %ymm0, %ymm1, %ymm2, %ymm3
+# CHECK-NEXT: 2 10 1.50 * vfmaddpd (%rax), %ymm1, %ymm2, %ymm3
+# CHECK-NEXT: 2 10 1.50 * vfmaddpd %ymm0, (%rax), %ymm2, %ymm3
+# CHECK-NEXT: 1 5 1.50 vfmaddps %xmm0, %xmm1, %xmm2, %xmm3
+# CHECK-NEXT: 1 10 1.50 * vfmaddps (%rax), %xmm1, %xmm2, %xmm3
+# CHECK-NEXT: 1 10 1.50 * vfmaddps %xmm0, (%rax), %xmm2, %xmm3
+# CHECK-NEXT: 2 5 1.50 vfmaddps %ymm0, %ymm1, %ymm2, %ymm3
+# CHECK-NEXT: 2 10 1.50 * vfmaddps (%rax), %ymm1, %ymm2, %ymm3
+# CHECK-NEXT: 2 10 1.50 * vfmaddps %ymm0, (%rax), %ymm2, %ymm3
+# CHECK-NEXT: 1 5 1.50 vfmaddsd %xmm0, %xmm1, %xmm2, %xmm3
+# CHECK-NEXT: 1 10 1.50 * vfmaddsd (%rax), %xmm1, %xmm2, %xmm3
+# CHECK-NEXT: 1 10 1.50 * vfmaddsd %xmm0, (%rax), %xmm2, %xmm3
+# CHECK-NEXT: 1 5 1.50 vfmaddss %xmm0, %xmm1, %xmm2, %xmm3
+# CHECK-NEXT: 1 10 1.50 * vfmaddss (%rax), %xmm1, %xmm2, %xmm3
+# CHECK-NEXT: 1 10 1.50 * vfmaddss %xmm0, (%rax), %xmm2, %xmm3
+# CHECK-NEXT: 1 5 1.50 vfmaddsubpd %xmm0, %xmm1, %xmm2, %xmm3
+# CHECK-NEXT: 1 10 1.50 * vfmaddsubpd (%rax), %xmm1, %xmm2, %xmm3
+# CHECK-NEXT: 1 10 1.50 * vfmaddsubpd %xmm0, (%rax), %xmm2, %xmm3
+# CHECK-NEXT: 2 5 1.50 vfmaddsubpd %ymm0, %ymm1, %ymm2, %ymm3
+# CHECK-NEXT: 2 10 1.50 * vfmaddsubpd (%rax), %ymm1, %ymm2, %ymm3
+# CHECK-NEXT: 2 10 1.50 * vfmaddsubpd %ymm0, (%rax), %ymm2, %ymm3
+# CHECK-NEXT: 1 5 1.50 vfmaddsubps %xmm0, %xmm1, %xmm2, %xmm3
+# CHECK-NEXT: 1 10 1.50 * vfmaddsubps (%rax), %xmm1, %xmm2, %xmm3
+# CHECK-NEXT: 1 10 1.50 * vfmaddsubps %xmm0, (%rax), %xmm2, %xmm3
+# CHECK-NEXT: 2 5 1.50 vfmaddsubps %ymm0, %ymm1, %ymm2, %ymm3
+# CHECK-NEXT: 2 10 1.50 * vfmaddsubps (%rax), %ymm1, %ymm2, %ymm3
+# CHECK-NEXT: 2 10 1.50 * vfmaddsubps %ymm0, (%rax), %ymm2, %ymm3
+# CHECK-NEXT: 1 5 1.50 vfmsubaddpd %xmm0, %xmm1, %xmm2, %xmm3
+# CHECK-NEXT: 1 10 1.50 * vfmsubaddpd (%rax), %xmm1, %xmm2, %xmm3
+# CHECK-NEXT: 1 10 1.50 * vfmsubaddpd %xmm0, (%rax), %xmm2, %xmm3
+# CHECK-NEXT: 2 5 1.50 vfmsubaddpd %ymm0, %ymm1, %ymm2, %ymm3
+# CHECK-NEXT: 2 10 1.50 * vfmsubaddpd (%rax), %ymm1, %ymm2, %ymm3
+# CHECK-NEXT: 2 10 1.50 * vfmsubaddpd %ymm0, (%rax), %ymm2, %ymm3
+# CHECK-NEXT: 1 5 1.50 vfmsubaddps %xmm0, %xmm1, %xmm2, %xmm3
+# CHECK-NEXT: 1 10 1.50 * vfmsubaddps (%rax), %xmm1, %xmm2, %xmm3
+# CHECK-NEXT: 1 10 1.50 * vfmsubaddps %xmm0, (%rax), %xmm2, %xmm3
+# CHECK-NEXT: 2 5 1.50 vfmsubaddps %ymm0, %ymm1, %ymm2, %ymm3
+# CHECK-NEXT: 2 10 1.50 * vfmsubaddps (%rax), %ymm1, %ymm2, %ymm3
+# CHECK-NEXT: 2 10 1.50 * vfmsubaddps %ymm0, (%rax), %ymm2, %ymm3
+# CHECK-NEXT: 1 5 1.50 vfmsubpd %xmm0, %xmm1, %xmm2, %xmm3
+# CHECK-NEXT: 1 10 1.50 * vfmsubpd (%rax), %xmm1, %xmm2, %xmm3
+# CHECK-NEXT: 1 10 1.50 * vfmsubpd %xmm0, (%rax), %xmm2, %xmm3
+# CHECK-NEXT: 2 5 1.50 vfmsubpd %ymm0, %ymm1, %ymm2, %ymm3
+# CHECK-NEXT: 2 10 1.50 * vfmsubpd (%rax), %ymm1, %ymm2, %ymm3
+# CHECK-NEXT: 2 10 1.50 * vfmsubpd %ymm0, (%rax), %ymm2, %ymm3
+# CHECK-NEXT: 1 5 1.50 vfmsubps %xmm0, %xmm1, %xmm2, %xmm3
+# CHECK-NEXT: 1 10 1.50 * vfmsubps (%rax), %xmm1, %xmm2, %xmm3
+# CHECK-NEXT: 1 10 1.50 * vfmsubps %xmm0, (%rax), %xmm2, %xmm3
+# CHECK-NEXT: 2 5 1.50 vfmsubps %ymm0, %ymm1, %ymm2, %ymm3
+# CHECK-NEXT: 2 10 1.50 * vfmsubps (%rax), %ymm1, %ymm2, %ymm3
+# CHECK-NEXT: 2 10 1.50 * vfmsubps %ymm0, (%rax), %ymm2, %ymm3
+# CHECK-NEXT: 1 5 1.50 vfmsubsd %xmm0, %xmm1, %xmm2, %xmm3
+# CHECK-NEXT: 1 10 1.50 * vfmsubsd (%rax), %xmm1, %xmm2, %xmm3
+# CHECK-NEXT: 1 10 1.50 * vfmsubsd %xmm0, (%rax), %xmm2, %xmm3
+# CHECK-NEXT: 1 5 1.50 vfmsubss %xmm0, %xmm1, %xmm2, %xmm3
+# CHECK-NEXT: 1 10 1.50 * vfmsubss (%rax), %xmm1, %xmm2, %xmm3
+# CHECK-NEXT: 1 10 1.50 * vfmsubss %xmm0, (%rax), %xmm2, %xmm3
+# CHECK-NEXT: 1 5 1.50 vfnmaddpd %xmm0, %xmm1, %xmm2, %xmm3
+# CHECK-NEXT: 1 10 1.50 * vfnmaddpd (%rax), %xmm1, %xmm2, %xmm3
+# CHECK-NEXT: 1 10 1.50 * vfnmaddpd %xmm0, (%rax), %xmm2, %xmm3
+# CHECK-NEXT: 2 5 1.50 vfnmaddpd %ymm0, %ymm1, %ymm2, %ymm3
+# CHECK-NEXT: 2 10 1.50 * vfnmaddpd (%rax), %ymm1, %ymm2, %ymm3
+# CHECK-NEXT: 2 10 1.50 * vfnmaddpd %ymm0, (%rax), %ymm2, %ymm3
+# CHECK-NEXT: 1 5 1.50 vfnmaddps %xmm0, %xmm1, %xmm2, %xmm3
+# CHECK-NEXT: 1 10 1.50 * vfnmaddps (%rax), %xmm1, %xmm2, %xmm3
+# CHECK-NEXT: 1 10 1.50 * vfnmaddps %xmm0, (%rax), %xmm2, %xmm3
+# CHECK-NEXT: 2 5 1.50 vfnmaddps %ymm0, %ymm1, %ymm2, %ymm3
+# CHECK-NEXT: 2 10 1.50 * vfnmaddps (%rax), %ymm1, %ymm2, %ymm3
+# CHECK-NEXT: 2 10 1.50 * vfnmaddps %ymm0, (%rax), %ymm2, %ymm3
+# CHECK-NEXT: 1 5 1.50 vfnmaddsd %xmm0, %xmm1, %xmm2, %xmm3
+# CHECK-NEXT: 1 10 1.50 * vfnmaddsd (%rax), %xmm1, %xmm2, %xmm3
+# CHECK-NEXT: 1 10 1.50 * vfnmaddsd %xmm0, (%rax), %xmm2, %xmm3
+# CHECK-NEXT: 1 5 1.50 vfnmaddss %xmm0, %xmm1, %xmm2, %xmm3
+# CHECK-NEXT: 1 10 1.50 * vfnmaddss (%rax), %xmm1, %xmm2, %xmm3
+# CHECK-NEXT: 1 10 1.50 * vfnmaddss %xmm0, (%rax), %xmm2, %xmm3
+# CHECK-NEXT: 1 5 1.50 vfnmsubpd %xmm0, %xmm1, %xmm2, %xmm3
+# CHECK-NEXT: 1 10 1.50 * vfnmsubpd (%rax), %xmm1, %xmm2, %xmm3
+# CHECK-NEXT: 1 10 1.50 * vfnmsubpd %xmm0, (%rax), %xmm2, %xmm3
+# CHECK-NEXT: 2 5 1.50 vfnmsubpd %ymm0, %ymm1, %ymm2, %ymm3
+# CHECK-NEXT: 2 10 1.50 * vfnmsubpd (%rax), %ymm1, %ymm2, %ymm3
+# CHECK-NEXT: 2 10 1.50 * vfnmsubpd %ymm0, (%rax), %ymm2, %ymm3
+# CHECK-NEXT: 1 5 1.50 vfnmsubps %xmm0, %xmm1, %xmm2, %xmm3
+# CHECK-NEXT: 1 10 1.50 * vfnmsubps (%rax), %xmm1, %xmm2, %xmm3
+# CHECK-NEXT: 1 10 1.50 * vfnmsubps %xmm0, (%rax), %xmm2, %xmm3
+# CHECK-NEXT: 2 5 1.50 vfnmsubps %ymm0, %ymm1, %ymm2, %ymm3
+# CHECK-NEXT: 2 10 1.50 * vfnmsubps (%rax), %ymm1, %ymm2, %ymm3
+# CHECK-NEXT: 2 10 1.50 * vfnmsubps %ymm0, (%rax), %ymm2, %ymm3
+# CHECK-NEXT: 1 5 1.50 vfnmsubsd %xmm0, %xmm1, %xmm2, %xmm3
+# CHECK-NEXT: 1 10 1.50 * vfnmsubsd (%rax), %xmm1, %xmm2, %xmm3
+# CHECK-NEXT: 1 10 1.50 * vfnmsubsd %xmm0, (%rax), %xmm2, %xmm3
+# CHECK-NEXT: 1 5 1.50 vfnmsubss %xmm0, %xmm1, %xmm2, %xmm3
+# CHECK-NEXT: 1 10 1.50 * vfnmsubss (%rax), %xmm1, %xmm2, %xmm3
+# CHECK-NEXT: 1 10 1.50 * vfnmsubss %xmm0, (%rax), %xmm2, %xmm3
# CHECK: Resources:
# CHECK-NEXT: [0.0] - PdAGLU01
@@ -262,103 +262,103 @@ vfnmsubss %xmm0, (%rax), %xmm2, %xmm3
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0.0] [0.1] [1] [2] [3] [4] [5] [6] [7.0] [7.1] [8.0] [8.1] [9] [10] [11] [12] [13] [14] [15] [16.0] [16.1] [17] [18]
-# CHECK-NEXT: 44.00 44.00 - - - - - - 48.00 48.00 - - - - 24.00 24.00 24.00 24.00 - 44.00 44.00 - -
+# CHECK-NEXT: 96.00 96.00 - - - - - - 144.00 144.00 - - - - 24.00 24.00 24.00 24.00 - 96.00 96.00 - -
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0.0] [0.1] [1] [2] [3] [4] [5] [6] [7.0] [7.1] [8.0] [8.1] [9] [10] [11] [12] [13] [14] [15] [16.0] [16.1] [17] [18] Instructions:
-# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfmaddpd %xmm0, %xmm1, %xmm2, %xmm3
-# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - 0.50 0.50 - - vfmaddpd (%rax), %xmm1, %xmm2, %xmm3
-# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - 0.50 0.50 - - vfmaddpd %xmm0, (%rax), %xmm2, %xmm3
-# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfmaddpd %ymm0, %ymm1, %ymm2, %ymm3
-# CHECK-NEXT: 1.00 1.00 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - 1.00 1.00 - - vfmaddpd (%rax), %ymm1, %ymm2, %ymm3
-# CHECK-NEXT: 1.00 1.00 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - 1.00 1.00 - - vfmaddpd %ymm0, (%rax), %ymm2, %ymm3
-# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfmaddps %xmm0, %xmm1, %xmm2, %xmm3
-# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - 0.50 0.50 - - vfmaddps (%rax), %xmm1, %xmm2, %xmm3
-# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - 0.50 0.50 - - vfmaddps %xmm0, (%rax), %xmm2, %xmm3
-# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfmaddps %ymm0, %ymm1, %ymm2, %ymm3
-# CHECK-NEXT: 1.00 1.00 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - 1.00 1.00 - - vfmaddps (%rax), %ymm1, %ymm2, %ymm3
-# CHECK-NEXT: 1.00 1.00 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - 1.00 1.00 - - vfmaddps %ymm0, (%rax), %ymm2, %ymm3
-# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfmaddsd %xmm0, %xmm1, %xmm2, %xmm3
-# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - 0.50 0.50 - - vfmaddsd (%rax), %xmm1, %xmm2, %xmm3
-# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - 0.50 0.50 - - vfmaddsd %xmm0, (%rax), %xmm2, %xmm3
-# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfmaddss %xmm0, %xmm1, %xmm2, %xmm3
-# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - 0.50 0.50 - - vfmaddss (%rax), %xmm1, %xmm2, %xmm3
-# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - 0.50 0.50 - - vfmaddss %xmm0, (%rax), %xmm2, %xmm3
-# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfmaddsubpd %xmm0, %xmm1, %xmm2, %xmm3
-# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - 0.50 0.50 - - vfmaddsubpd (%rax), %xmm1, %xmm2, %xmm3
-# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - 0.50 0.50 - - vfmaddsubpd %xmm0, (%rax), %xmm2, %xmm3
-# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfmaddsubpd %ymm0, %ymm1, %ymm2, %ymm3
-# CHECK-NEXT: 1.00 1.00 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - 1.00 1.00 - - vfmaddsubpd (%rax), %ymm1, %ymm2, %ymm3
-# CHECK-NEXT: 1.00 1.00 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - 1.00 1.00 - - vfmaddsubpd %ymm0, (%rax), %ymm2, %ymm3
-# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfmaddsubps %xmm0, %xmm1, %xmm2, %xmm3
-# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - 0.50 0.50 - - vfmaddsubps (%rax), %xmm1, %xmm2, %xmm3
-# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - 0.50 0.50 - - vfmaddsubps %xmm0, (%rax), %xmm2, %xmm3
-# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfmaddsubps %ymm0, %ymm1, %ymm2, %ymm3
-# CHECK-NEXT: 1.00 1.00 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - 1.00 1.00 - - vfmaddsubps (%rax), %ymm1, %ymm2, %ymm3
-# CHECK-NEXT: 1.00 1.00 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - 1.00 1.00 - - vfmaddsubps %ymm0, (%rax), %ymm2, %ymm3
-# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfmsubaddpd %xmm0, %xmm1, %xmm2, %xmm3
-# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - 0.50 0.50 - - vfmsubaddpd (%rax), %xmm1, %xmm2, %xmm3
-# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - 0.50 0.50 - - vfmsubaddpd %xmm0, (%rax), %xmm2, %xmm3
-# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfmsubaddpd %ymm0, %ymm1, %ymm2, %ymm3
-# CHECK-NEXT: 1.00 1.00 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - 1.00 1.00 - - vfmsubaddpd (%rax), %ymm1, %ymm2, %ymm3
-# CHECK-NEXT: 1.00 1.00 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - 1.00 1.00 - - vfmsubaddpd %ymm0, (%rax), %ymm2, %ymm3
-# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfmsubaddps %xmm0, %xmm1, %xmm2, %xmm3
-# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - 0.50 0.50 - - vfmsubaddps (%rax), %xmm1, %xmm2, %xmm3
-# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - 0.50 0.50 - - vfmsubaddps %xmm0, (%rax), %xmm2, %xmm3
-# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfmsubaddps %ymm0, %ymm1, %ymm2, %ymm3
-# CHECK-NEXT: 1.00 1.00 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - 1.00 1.00 - - vfmsubaddps (%rax), %ymm1, %ymm2, %ymm3
-# CHECK-NEXT: 1.00 1.00 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - 1.00 1.00 - - vfmsubaddps %ymm0, (%rax), %ymm2, %ymm3
-# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfmsubpd %xmm0, %xmm1, %xmm2, %xmm3
-# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - 0.50 0.50 - - vfmsubpd (%rax), %xmm1, %xmm2, %xmm3
-# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - 0.50 0.50 - - vfmsubpd %xmm0, (%rax), %xmm2, %xmm3
-# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfmsubpd %ymm0, %ymm1, %ymm2, %ymm3
-# CHECK-NEXT: 1.00 1.00 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - 1.00 1.00 - - vfmsubpd (%rax), %ymm1, %ymm2, %ymm3
-# CHECK-NEXT: 1.00 1.00 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - 1.00 1.00 - - vfmsubpd %ymm0, (%rax), %ymm2, %ymm3
-# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfmsubps %xmm0, %xmm1, %xmm2, %xmm3
-# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - 0.50 0.50 - - vfmsubps (%rax), %xmm1, %xmm2, %xmm3
-# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - 0.50 0.50 - - vfmsubps %xmm0, (%rax), %xmm2, %xmm3
-# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfmsubps %ymm0, %ymm1, %ymm2, %ymm3
-# CHECK-NEXT: 1.00 1.00 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - 1.00 1.00 - - vfmsubps (%rax), %ymm1, %ymm2, %ymm3
-# CHECK-NEXT: 1.00 1.00 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - 1.00 1.00 - - vfmsubps %ymm0, (%rax), %ymm2, %ymm3
-# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfmsubsd %xmm0, %xmm1, %xmm2, %xmm3
-# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - 0.50 0.50 - - vfmsubsd (%rax), %xmm1, %xmm2, %xmm3
-# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - 0.50 0.50 - - vfmsubsd %xmm0, (%rax), %xmm2, %xmm3
-# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfmsubss %xmm0, %xmm1, %xmm2, %xmm3
-# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - 0.50 0.50 - - vfmsubss (%rax), %xmm1, %xmm2, %xmm3
-# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - 0.50 0.50 - - vfmsubss %xmm0, (%rax), %xmm2, %xmm3
-# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfnmaddpd %xmm0, %xmm1, %xmm2, %xmm3
-# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - 0.50 0.50 - - vfnmaddpd (%rax), %xmm1, %xmm2, %xmm3
-# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - 0.50 0.50 - - vfnmaddpd %xmm0, (%rax), %xmm2, %xmm3
-# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfnmaddpd %ymm0, %ymm1, %ymm2, %ymm3
-# CHECK-NEXT: 1.00 1.00 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - 1.00 1.00 - - vfnmaddpd (%rax), %ymm1, %ymm2, %ymm3
-# CHECK-NEXT: 1.00 1.00 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - 1.00 1.00 - - vfnmaddpd %ymm0, (%rax), %ymm2, %ymm3
-# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfnmaddps %xmm0, %xmm1, %xmm2, %xmm3
-# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - 0.50 0.50 - - vfnmaddps (%rax), %xmm1, %xmm2, %xmm3
-# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - 0.50 0.50 - - vfnmaddps %xmm0, (%rax), %xmm2, %xmm3
-# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfnmaddps %ymm0, %ymm1, %ymm2, %ymm3
-# CHECK-NEXT: 1.00 1.00 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - 1.00 1.00 - - vfnmaddps (%rax), %ymm1, %ymm2, %ymm3
-# CHECK-NEXT: 1.00 1.00 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - 1.00 1.00 - - vfnmaddps %ymm0, (%rax), %ymm2, %ymm3
-# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfnmaddsd %xmm0, %xmm1, %xmm2, %xmm3
-# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - 0.50 0.50 - - vfnmaddsd (%rax), %xmm1, %xmm2, %xmm3
-# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - 0.50 0.50 - - vfnmaddsd %xmm0, (%rax), %xmm2, %xmm3
-# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfnmaddss %xmm0, %xmm1, %xmm2, %xmm3
-# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - 0.50 0.50 - - vfnmaddss (%rax), %xmm1, %xmm2, %xmm3
-# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - 0.50 0.50 - - vfnmaddss %xmm0, (%rax), %xmm2, %xmm3
-# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfnmsubpd %xmm0, %xmm1, %xmm2, %xmm3
-# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - 0.50 0.50 - - vfnmsubpd (%rax), %xmm1, %xmm2, %xmm3
-# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - 0.50 0.50 - - vfnmsubpd %xmm0, (%rax), %xmm2, %xmm3
-# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfnmsubpd %ymm0, %ymm1, %ymm2, %ymm3
-# CHECK-NEXT: 1.00 1.00 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - 1.00 1.00 - - vfnmsubpd (%rax), %ymm1, %ymm2, %ymm3
-# CHECK-NEXT: 1.00 1.00 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - 1.00 1.00 - - vfnmsubpd %ymm0, (%rax), %ymm2, %ymm3
-# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfnmsubps %xmm0, %xmm1, %xmm2, %xmm3
-# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - 0.50 0.50 - - vfnmsubps (%rax), %xmm1, %xmm2, %xmm3
-# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - 0.50 0.50 - - vfnmsubps %xmm0, (%rax), %xmm2, %xmm3
-# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfnmsubps %ymm0, %ymm1, %ymm2, %ymm3
-# CHECK-NEXT: 1.00 1.00 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - 1.00 1.00 - - vfnmsubps (%rax), %ymm1, %ymm2, %ymm3
-# CHECK-NEXT: 1.00 1.00 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - 1.00 1.00 - - vfnmsubps %ymm0, (%rax), %ymm2, %ymm3
-# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfnmsubsd %xmm0, %xmm1, %xmm2, %xmm3
-# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - 0.50 0.50 - - vfnmsubsd (%rax), %xmm1, %xmm2, %xmm3
-# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - 0.50 0.50 - - vfnmsubsd %xmm0, (%rax), %xmm2, %xmm3
-# CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfnmsubss %xmm0, %xmm1, %xmm2, %xmm3
-# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - 0.50 0.50 - - vfnmsubss (%rax), %xmm1, %xmm2, %xmm3
-# CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.25 0.25 0.25 0.25 - 0.50 0.50 - - vfnmsubss %xmm0, (%rax), %xmm2, %xmm3
+# CHECK-NEXT: - - - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfmaddpd %xmm0, %xmm1, %xmm2, %xmm3
+# CHECK-NEXT: 1.50 1.50 - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - 1.50 1.50 - - vfmaddpd (%rax), %xmm1, %xmm2, %xmm3
+# CHECK-NEXT: 1.50 1.50 - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - 1.50 1.50 - - vfmaddpd %xmm0, (%rax), %xmm2, %xmm3
+# CHECK-NEXT: - - - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfmaddpd %ymm0, %ymm1, %ymm2, %ymm3
+# CHECK-NEXT: 1.50 1.50 - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - 1.50 1.50 - - vfmaddpd (%rax), %ymm1, %ymm2, %ymm3
+# CHECK-NEXT: 1.50 1.50 - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - 1.50 1.50 - - vfmaddpd %ymm0, (%rax), %ymm2, %ymm3
+# CHECK-NEXT: - - - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfmaddps %xmm0, %xmm1, %xmm2, %xmm3
+# CHECK-NEXT: 1.50 1.50 - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - 1.50 1.50 - - vfmaddps (%rax), %xmm1, %xmm2, %xmm3
+# CHECK-NEXT: 1.50 1.50 - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - 1.50 1.50 - - vfmaddps %xmm0, (%rax), %xmm2, %xmm3
+# CHECK-NEXT: - - - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfmaddps %ymm0, %ymm1, %ymm2, %ymm3
+# CHECK-NEXT: 1.50 1.50 - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - 1.50 1.50 - - vfmaddps (%rax), %ymm1, %ymm2, %ymm3
+# CHECK-NEXT: 1.50 1.50 - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - 1.50 1.50 - - vfmaddps %ymm0, (%rax), %ymm2, %ymm3
+# CHECK-NEXT: - - - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfmaddsd %xmm0, %xmm1, %xmm2, %xmm3
+# CHECK-NEXT: 1.50 1.50 - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - 1.50 1.50 - - vfmaddsd (%rax), %xmm1, %xmm2, %xmm3
+# CHECK-NEXT: 1.50 1.50 - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - 1.50 1.50 - - vfmaddsd %xmm0, (%rax), %xmm2, %xmm3
+# CHECK-NEXT: - - - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfmaddss %xmm0, %xmm1, %xmm2, %xmm3
+# CHECK-NEXT: 1.50 1.50 - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - 1.50 1.50 - - vfmaddss (%rax), %xmm1, %xmm2, %xmm3
+# CHECK-NEXT: 1.50 1.50 - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - 1.50 1.50 - - vfmaddss %xmm0, (%rax), %xmm2, %xmm3
+# CHECK-NEXT: - - - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfmaddsubpd %xmm0, %xmm1, %xmm2, %xmm3
+# CHECK-NEXT: 1.50 1.50 - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - 1.50 1.50 - - vfmaddsubpd (%rax), %xmm1, %xmm2, %xmm3
+# CHECK-NEXT: 1.50 1.50 - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - 1.50 1.50 - - vfmaddsubpd %xmm0, (%rax), %xmm2, %xmm3
+# CHECK-NEXT: - - - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfmaddsubpd %ymm0, %ymm1, %ymm2, %ymm3
+# CHECK-NEXT: 1.50 1.50 - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - 1.50 1.50 - - vfmaddsubpd (%rax), %ymm1, %ymm2, %ymm3
+# CHECK-NEXT: 1.50 1.50 - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - 1.50 1.50 - - vfmaddsubpd %ymm0, (%rax), %ymm2, %ymm3
+# CHECK-NEXT: - - - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfmaddsubps %xmm0, %xmm1, %xmm2, %xmm3
+# CHECK-NEXT: 1.50 1.50 - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - 1.50 1.50 - - vfmaddsubps (%rax), %xmm1, %xmm2, %xmm3
+# CHECK-NEXT: 1.50 1.50 - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - 1.50 1.50 - - vfmaddsubps %xmm0, (%rax), %xmm2, %xmm3
+# CHECK-NEXT: - - - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfmaddsubps %ymm0, %ymm1, %ymm2, %ymm3
+# CHECK-NEXT: 1.50 1.50 - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - 1.50 1.50 - - vfmaddsubps (%rax), %ymm1, %ymm2, %ymm3
+# CHECK-NEXT: 1.50 1.50 - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - 1.50 1.50 - - vfmaddsubps %ymm0, (%rax), %ymm2, %ymm3
+# CHECK-NEXT: - - - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfmsubaddpd %xmm0, %xmm1, %xmm2, %xmm3
+# CHECK-NEXT: 1.50 1.50 - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - 1.50 1.50 - - vfmsubaddpd (%rax), %xmm1, %xmm2, %xmm3
+# CHECK-NEXT: 1.50 1.50 - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - 1.50 1.50 - - vfmsubaddpd %xmm0, (%rax), %xmm2, %xmm3
+# CHECK-NEXT: - - - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfmsubaddpd %ymm0, %ymm1, %ymm2, %ymm3
+# CHECK-NEXT: 1.50 1.50 - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - 1.50 1.50 - - vfmsubaddpd (%rax), %ymm1, %ymm2, %ymm3
+# CHECK-NEXT: 1.50 1.50 - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - 1.50 1.50 - - vfmsubaddpd %ymm0, (%rax), %ymm2, %ymm3
+# CHECK-NEXT: - - - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfmsubaddps %xmm0, %xmm1, %xmm2, %xmm3
+# CHECK-NEXT: 1.50 1.50 - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - 1.50 1.50 - - vfmsubaddps (%rax), %xmm1, %xmm2, %xmm3
+# CHECK-NEXT: 1.50 1.50 - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - 1.50 1.50 - - vfmsubaddps %xmm0, (%rax), %xmm2, %xmm3
+# CHECK-NEXT: - - - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfmsubaddps %ymm0, %ymm1, %ymm2, %ymm3
+# CHECK-NEXT: 1.50 1.50 - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - 1.50 1.50 - - vfmsubaddps (%rax), %ymm1, %ymm2, %ymm3
+# CHECK-NEXT: 1.50 1.50 - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - 1.50 1.50 - - vfmsubaddps %ymm0, (%rax), %ymm2, %ymm3
+# CHECK-NEXT: - - - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfmsubpd %xmm0, %xmm1, %xmm2, %xmm3
+# CHECK-NEXT: 1.50 1.50 - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - 1.50 1.50 - - vfmsubpd (%rax), %xmm1, %xmm2, %xmm3
+# CHECK-NEXT: 1.50 1.50 - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - 1.50 1.50 - - vfmsubpd %xmm0, (%rax), %xmm2, %xmm3
+# CHECK-NEXT: - - - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfmsubpd %ymm0, %ymm1, %ymm2, %ymm3
+# CHECK-NEXT: 1.50 1.50 - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - 1.50 1.50 - - vfmsubpd (%rax), %ymm1, %ymm2, %ymm3
+# CHECK-NEXT: 1.50 1.50 - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - 1.50 1.50 - - vfmsubpd %ymm0, (%rax), %ymm2, %ymm3
+# CHECK-NEXT: - - - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfmsubps %xmm0, %xmm1, %xmm2, %xmm3
+# CHECK-NEXT: 1.50 1.50 - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - 1.50 1.50 - - vfmsubps (%rax), %xmm1, %xmm2, %xmm3
+# CHECK-NEXT: 1.50 1.50 - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - 1.50 1.50 - - vfmsubps %xmm0, (%rax), %xmm2, %xmm3
+# CHECK-NEXT: - - - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfmsubps %ymm0, %ymm1, %ymm2, %ymm3
+# CHECK-NEXT: 1.50 1.50 - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - 1.50 1.50 - - vfmsubps (%rax), %ymm1, %ymm2, %ymm3
+# CHECK-NEXT: 1.50 1.50 - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - 1.50 1.50 - - vfmsubps %ymm0, (%rax), %ymm2, %ymm3
+# CHECK-NEXT: - - - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfmsubsd %xmm0, %xmm1, %xmm2, %xmm3
+# CHECK-NEXT: 1.50 1.50 - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - 1.50 1.50 - - vfmsubsd (%rax), %xmm1, %xmm2, %xmm3
+# CHECK-NEXT: 1.50 1.50 - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - 1.50 1.50 - - vfmsubsd %xmm0, (%rax), %xmm2, %xmm3
+# CHECK-NEXT: - - - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfmsubss %xmm0, %xmm1, %xmm2, %xmm3
+# CHECK-NEXT: 1.50 1.50 - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - 1.50 1.50 - - vfmsubss (%rax), %xmm1, %xmm2, %xmm3
+# CHECK-NEXT: 1.50 1.50 - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - 1.50 1.50 - - vfmsubss %xmm0, (%rax), %xmm2, %xmm3
+# CHECK-NEXT: - - - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfnmaddpd %xmm0, %xmm1, %xmm2, %xmm3
+# CHECK-NEXT: 1.50 1.50 - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - 1.50 1.50 - - vfnmaddpd (%rax), %xmm1, %xmm2, %xmm3
+# CHECK-NEXT: 1.50 1.50 - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - 1.50 1.50 - - vfnmaddpd %xmm0, (%rax), %xmm2, %xmm3
+# CHECK-NEXT: - - - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfnmaddpd %ymm0, %ymm1, %ymm2, %ymm3
+# CHECK-NEXT: 1.50 1.50 - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - 1.50 1.50 - - vfnmaddpd (%rax), %ymm1, %ymm2, %ymm3
+# CHECK-NEXT: 1.50 1.50 - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - 1.50 1.50 - - vfnmaddpd %ymm0, (%rax), %ymm2, %ymm3
+# CHECK-NEXT: - - - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfnmaddps %xmm0, %xmm1, %xmm2, %xmm3
+# CHECK-NEXT: 1.50 1.50 - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - 1.50 1.50 - - vfnmaddps (%rax), %xmm1, %xmm2, %xmm3
+# CHECK-NEXT: 1.50 1.50 - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - 1.50 1.50 - - vfnmaddps %xmm0, (%rax), %xmm2, %xmm3
+# CHECK-NEXT: - - - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfnmaddps %ymm0, %ymm1, %ymm2, %ymm3
+# CHECK-NEXT: 1.50 1.50 - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - 1.50 1.50 - - vfnmaddps (%rax), %ymm1, %ymm2, %ymm3
+# CHECK-NEXT: 1.50 1.50 - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - 1.50 1.50 - - vfnmaddps %ymm0, (%rax), %ymm2, %ymm3
+# CHECK-NEXT: - - - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfnmaddsd %xmm0, %xmm1, %xmm2, %xmm3
+# CHECK-NEXT: 1.50 1.50 - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - 1.50 1.50 - - vfnmaddsd (%rax), %xmm1, %xmm2, %xmm3
+# CHECK-NEXT: 1.50 1.50 - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - 1.50 1.50 - - vfnmaddsd %xmm0, (%rax), %xmm2, %xmm3
+# CHECK-NEXT: - - - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfnmaddss %xmm0, %xmm1, %xmm2, %xmm3
+# CHECK-NEXT: 1.50 1.50 - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - 1.50 1.50 - - vfnmaddss (%rax), %xmm1, %xmm2, %xmm3
+# CHECK-NEXT: 1.50 1.50 - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - 1.50 1.50 - - vfnmaddss %xmm0, (%rax), %xmm2, %xmm3
+# CHECK-NEXT: - - - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfnmsubpd %xmm0, %xmm1, %xmm2, %xmm3
+# CHECK-NEXT: 1.50 1.50 - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - 1.50 1.50 - - vfnmsubpd (%rax), %xmm1, %xmm2, %xmm3
+# CHECK-NEXT: 1.50 1.50 - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - 1.50 1.50 - - vfnmsubpd %xmm0, (%rax), %xmm2, %xmm3
+# CHECK-NEXT: - - - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfnmsubpd %ymm0, %ymm1, %ymm2, %ymm3
+# CHECK-NEXT: 1.50 1.50 - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - 1.50 1.50 - - vfnmsubpd (%rax), %ymm1, %ymm2, %ymm3
+# CHECK-NEXT: 1.50 1.50 - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - 1.50 1.50 - - vfnmsubpd %ymm0, (%rax), %ymm2, %ymm3
+# CHECK-NEXT: - - - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfnmsubps %xmm0, %xmm1, %xmm2, %xmm3
+# CHECK-NEXT: 1.50 1.50 - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - 1.50 1.50 - - vfnmsubps (%rax), %xmm1, %xmm2, %xmm3
+# CHECK-NEXT: 1.50 1.50 - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - 1.50 1.50 - - vfnmsubps %xmm0, (%rax), %xmm2, %xmm3
+# CHECK-NEXT: - - - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfnmsubps %ymm0, %ymm1, %ymm2, %ymm3
+# CHECK-NEXT: 1.50 1.50 - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - 1.50 1.50 - - vfnmsubps (%rax), %ymm1, %ymm2, %ymm3
+# CHECK-NEXT: 1.50 1.50 - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - 1.50 1.50 - - vfnmsubps %ymm0, (%rax), %ymm2, %ymm3
+# CHECK-NEXT: - - - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfnmsubsd %xmm0, %xmm1, %xmm2, %xmm3
+# CHECK-NEXT: 1.50 1.50 - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - 1.50 1.50 - - vfnmsubsd (%rax), %xmm1, %xmm2, %xmm3
+# CHECK-NEXT: 1.50 1.50 - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - 1.50 1.50 - - vfnmsubsd %xmm0, (%rax), %xmm2, %xmm3
+# CHECK-NEXT: - - - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - - - - - vfnmsubss %xmm0, %xmm1, %xmm2, %xmm3
+# CHECK-NEXT: 1.50 1.50 - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - 1.50 1.50 - - vfnmsubss (%rax), %xmm1, %xmm2, %xmm3
+# CHECK-NEXT: 1.50 1.50 - - - - - - 1.50 1.50 - - - - 0.25 0.25 0.25 0.25 - 1.50 1.50 - - vfnmsubss %xmm0, (%rax), %xmm2, %xmm3
Modified: llvm/trunk/test/tools/llvm-mca/X86/BdVer2/resources-lzcnt.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-mca/X86/BdVer2/resources-lzcnt.s?rev=360341&r1=360340&r2=360341&view=diff
==============================================================================
--- llvm/trunk/test/tools/llvm-mca/X86/BdVer2/resources-lzcnt.s (original)
+++ llvm/trunk/test/tools/llvm-mca/X86/BdVer2/resources-lzcnt.s Thu May 9 06:54:51 2019
@@ -19,12 +19,12 @@ lzcntq (%rax), %rcx
# CHECK-NEXT: [6]: HasSideEffects (U)
# CHECK: [1] [2] [3] [4] [5] [6] Instructions:
-# CHECK-NEXT: 2 2 0.50 lzcntw %cx, %cx
-# CHECK-NEXT: 2 6 0.50 * lzcntw (%rax), %cx
-# CHECK-NEXT: 2 2 0.50 lzcntl %eax, %ecx
-# CHECK-NEXT: 2 6 0.50 * lzcntl (%rax), %ecx
-# CHECK-NEXT: 2 2 0.50 lzcntq %rax, %rcx
-# CHECK-NEXT: 2 6 0.50 * lzcntq (%rax), %rcx
+# CHECK-NEXT: 2 2 2.00 lzcntw %cx, %cx
+# CHECK-NEXT: 2 6 2.00 * lzcntw (%rax), %cx
+# CHECK-NEXT: 2 2 2.00 lzcntl %eax, %ecx
+# CHECK-NEXT: 2 6 2.00 * lzcntl (%rax), %ecx
+# CHECK-NEXT: 2 2 2.00 lzcntq %rax, %rcx
+# CHECK-NEXT: 2 6 2.00 * lzcntq (%rax), %rcx
# CHECK: Resources:
# CHECK-NEXT: [0.0] - PdAGLU01
@@ -53,13 +53,13 @@ lzcntq (%rax), %rcx
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0.0] [0.1] [1] [2] [3] [4] [5] [6] [7.0] [7.1] [8.0] [8.1] [9] [10] [11] [12] [13] [14] [15] [16.0] [16.1] [17] [18]
-# CHECK-NEXT: 1.50 1.50 - - - 3.00 3.00 - - - - - - - - - - - - 1.50 1.50 - -
+# CHECK-NEXT: 4.50 4.50 - - - 12.00 - - - - - - - - - - - - - 4.50 4.50 - -
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0.0] [0.1] [1] [2] [3] [4] [5] [6] [7.0] [7.1] [8.0] [8.1] [9] [10] [11] [12] [13] [14] [15] [16.0] [16.1] [17] [18] Instructions:
-# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - lzcntw %cx, %cx
-# CHECK-NEXT: 0.50 0.50 - - - 0.50 0.50 - - - - - - - - - - - - 0.50 0.50 - - lzcntw (%rax), %cx
-# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - lzcntl %eax, %ecx
-# CHECK-NEXT: 0.50 0.50 - - - 0.50 0.50 - - - - - - - - - - - - 0.50 0.50 - - lzcntl (%rax), %ecx
-# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - lzcntq %rax, %rcx
-# CHECK-NEXT: 0.50 0.50 - - - 0.50 0.50 - - - - - - - - - - - - 0.50 0.50 - - lzcntq (%rax), %rcx
+# CHECK-NEXT: - - - - - 2.00 - - - - - - - - - - - - - - - - - lzcntw %cx, %cx
+# CHECK-NEXT: 1.50 1.50 - - - 2.00 - - - - - - - - - - - - - 1.50 1.50 - - lzcntw (%rax), %cx
+# CHECK-NEXT: - - - - - 2.00 - - - - - - - - - - - - - - - - - lzcntl %eax, %ecx
+# CHECK-NEXT: 1.50 1.50 - - - 2.00 - - - - - - - - - - - - - 1.50 1.50 - - lzcntl (%rax), %ecx
+# CHECK-NEXT: - - - - - 2.00 - - - - - - - - - - - - - - - - - lzcntq %rax, %rcx
+# CHECK-NEXT: 1.50 1.50 - - - 2.00 - - - - - - - - - - - - - 1.50 1.50 - - lzcntq (%rax), %rcx
More information about the llvm-commits
mailing list