aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSimon Pilgrim <llvm-dev@redking.me.uk>2018-03-26 16:10:08 +0000
committerSimon Pilgrim <llvm-dev@redking.me.uk>2018-03-26 16:10:08 +0000
commitaa40148cae6611fb8b30e5f51492d5f73ed3660b (patch)
tree32a284e10f1c4a16f21521d8d473efc8a31fdc23
parent8e1363df4e351c306b33f5e8896494a84b72d722 (diff)
downloadllvm-aa40148cae6611fb8b30e5f51492d5f73ed3660b.zip
llvm-aa40148cae6611fb8b30e5f51492d5f73ed3660b.tar.gz
llvm-aa40148cae6611fb8b30e5f51492d5f73ed3660b.tar.bz2
[X86][Btver2] Account for the "+i" integer pipe transfer costs (1cy use of JALU0 for GPR PRF write)
llvm-svn: 328536
-rw-r--r--llvm/lib/Target/X86/X86ScheduleBtVer2.td31
-rw-r--r--llvm/test/tools/llvm-mca/X86/BtVer2/resources-avx1.s34
-rw-r--r--llvm/test/tools/llvm-mca/X86/BtVer2/resources-sse1.s2
-rw-r--r--llvm/test/tools/llvm-mca/X86/BtVer2/resources-sse2.s4
-rw-r--r--llvm/test/tools/llvm-mca/X86/BtVer2/resources-sse41.s4
-rw-r--r--llvm/test/tools/llvm-mca/X86/BtVer2/resources-sse42.s16
6 files changed, 41 insertions, 50 deletions
diff --git a/llvm/lib/Target/X86/X86ScheduleBtVer2.td b/llvm/lib/Target/X86/X86ScheduleBtVer2.td
index 6e3bec5..75413aa 100644
--- a/llvm/lib/Target/X86/X86ScheduleBtVer2.td
+++ b/llvm/lib/Target/X86/X86ScheduleBtVer2.td
@@ -355,13 +355,12 @@ defm : JWriteResFpuPair<WriteVarVecShift, [JFPU01, JVALU], 1>; // NOTE: Doesn't
////////////////////////////////////////////////////////////////////////////////
// SSE42 String instructions.
-// FIXME: Latency+i
////////////////////////////////////////////////////////////////////////////////
-defm : JWriteResFpuPair<WritePCmpIStrI, [JFPU1, JVALU1, JFPA], 7, [1, 2, 1], 3>;
-defm : JWriteResFpuPair<WritePCmpIStrM, [JFPU1, JVALU1, JFPA], 8, [1, 2, 1], 3>;
-defm : JWriteResFpuPair<WritePCmpEStrI, [JFPU1, JSAGU, JLAGU, JVALU, JVALU1, JFPA], 14, [1, 2, 2, 6, 4, 1], 9>;
-defm : JWriteResFpuPair<WritePCmpEStrM, [JFPU1, JSAGU, JLAGU, JVALU, JVALU1, JFPA], 14, [1, 2, 2, 6, 4, 1], 9>;
+defm : JWriteResFpuPair<WritePCmpIStrI, [JFPU1, JVALU1, JFPA, JALU0], 7, [1, 2, 1, 1], 3>;
+defm : JWriteResFpuPair<WritePCmpIStrM, [JFPU1, JVALU1, JFPA, JALU0], 8, [1, 2, 1, 1], 3>;
+defm : JWriteResFpuPair<WritePCmpEStrI, [JFPU1, JSAGU, JLAGU, JVALU, JVALU1, JFPA, JALU0], 14, [1, 2, 2, 6, 4, 1, 1], 9>;
+defm : JWriteResFpuPair<WritePCmpEStrM, [JFPU1, JSAGU, JLAGU, JVALU, JVALU1, JFPA, JALU0], 14, [1, 2, 2, 6, 4, 1, 1], 9>;
////////////////////////////////////////////////////////////////////////////////
// AES Instructions.
@@ -766,41 +765,33 @@ def JWriteVMaskMovYSt: SchedWriteRes<[JFPU01, JFPX, JSAGU]> {
}
def : InstRW<[JWriteVMaskMovYSt], (instrs VMASKMOVPDYmr, VMASKMOVPSYmr)>;
-// TODO: In fact we have latency '2+i'. The +i represents an additional 1 cycle transfer
-// operation which moves the floating point result to the integer unit. During this
-// additional cycle the floating point unit execution resources are not occupied
-// and ALU0 in the integer unit is occupied instead.
-def JWriteVMOVMSK: SchedWriteRes<[JFPU0, JFPA]> {
+def JWriteVMOVMSK: SchedWriteRes<[JFPU0, JFPA, JALU0]> {
let Latency = 3;
}
def : InstRW<[JWriteVMOVMSK], (instrs MOVMSKPDrr, VMOVMSKPDrr, VMOVMSKPDYrr,
MOVMSKPSrr, VMOVMSKPSrr, VMOVMSKPSYrr,
PMOVMSKBrr, VPMOVMSKBrr)>;
-// TODO: In fact we have latency '3+i'. The +i represents an additional 1 cycle transfer
-// operation which moves the floating point result to the integer unit. During this
-// additional cycle the floating point unit execution resources are not occupied
-// and ALU0 in the integer unit is occupied instead.
-def JWriteVTESTY: SchedWriteRes<[JFPU01, JFPX, JFPA]> {
+def JWriteVTESTY: SchedWriteRes<[JFPU01, JFPX, JFPA, JALU0]> {
let Latency = 4;
- let ResourceCycles = [2, 2, 2];
+ let ResourceCycles = [2, 2, 2, 1];
let NumMicroOps = 3;
}
def : InstRW<[JWriteVTESTY], (instrs VPTESTYrr, VTESTPDYrr, VTESTPSYrr)>;
-def JWriteVTESTYLd: SchedWriteRes<[JLAGU, JFPU01, JFPX, JFPA]> {
+def JWriteVTESTYLd: SchedWriteRes<[JLAGU, JFPU01, JFPX, JFPA, JALU0]> {
let Latency = 9;
- let ResourceCycles = [2, 2, 2, 2];
+ let ResourceCycles = [2, 2, 2, 2, 1];
let NumMicroOps = 3;
}
def : InstRW<[JWriteVTESTYLd], (instrs VPTESTYrm, VTESTPDYrm, VTESTPSYrm)>;
-def JWriteVTEST: SchedWriteRes<[JFPU0, JFPA]> {
+def JWriteVTEST: SchedWriteRes<[JFPU0, JFPA, JALU0]> {
let Latency = 3;
}
def : InstRW<[JWriteVTEST], (instrs PTESTrr, VPTESTrr, VTESTPDrr, VTESTPSrr)>;
-def JWriteVTESTLd: SchedWriteRes<[JLAGU, JFPU0, JFPA]> {
+def JWriteVTESTLd: SchedWriteRes<[JLAGU, JFPU0, JFPA, JALU0]> {
let Latency = 8;
}
def : InstRW<[JWriteVTESTLd], (instrs PTESTrm, VPTESTrm, VTESTPDrm, VTESTPSrm)>;
diff --git a/llvm/test/tools/llvm-mca/X86/BtVer2/resources-avx1.s b/llvm/test/tools/llvm-mca/X86/BtVer2/resources-avx1.s
index 7368fea..fb2a134 100644
--- a/llvm/test/tools/llvm-mca/X86/BtVer2/resources-avx1.s
+++ b/llvm/test/tools/llvm-mca/X86/BtVer2/resources-avx1.s
@@ -1290,10 +1290,10 @@ vzeroupper
# CHECK-NEXT: - - - 0.50 0.50 0.50 0.50 1.00 - - - - - - vmovlpd (%rax), %xmm1, %xmm2
# CHECK-NEXT: - - - - - - - - - 1.00 - - - - vmovlps %xmm0, (%rax)
# CHECK-NEXT: - - - 0.50 0.50 0.50 0.50 1.00 - - - - - - vmovlps (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - 1.00 - 1.00 - - - - - - - - vmovmskpd %xmm0, %ecx
-# CHECK-NEXT: - - - 1.00 - 1.00 - - - - - - - - vmovmskpd %ymm0, %ecx
-# CHECK-NEXT: - - - 1.00 - 1.00 - - - - - - - - vmovmskps %xmm0, %ecx
-# CHECK-NEXT: - - - 1.00 - 1.00 - - - - - - - - vmovmskps %ymm0, %ecx
+# CHECK-NEXT: 1.00 - - 1.00 - 1.00 - - - - - - - - vmovmskpd %xmm0, %ecx
+# CHECK-NEXT: 1.00 - - 1.00 - 1.00 - - - - - - - - vmovmskpd %ymm0, %ecx
+# CHECK-NEXT: 1.00 - - 1.00 - 1.00 - - - - - - - - vmovmskps %xmm0, %ecx
+# CHECK-NEXT: 1.00 - - 1.00 - 1.00 - - - - - - - - vmovmskps %ymm0, %ecx
# CHECK-NEXT: - - - - - - 1.00 - - 1.00 1.00 - - - vmovntdq %xmm0, (%rax)
# CHECK-NEXT: - - - - - - 2.00 - - 2.00 2.00 - - - vmovntdq %ymm0, (%rax)
# CHECK-NEXT: - - - - - 0.50 0.50 1.00 - - - 0.50 0.50 - vmovntdqa (%rax), %xmm2
@@ -1493,7 +1493,7 @@ vzeroupper
# CHECK-NEXT: - - - - - 0.50 0.50 1.00 - - - 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 1.00 - - - 0.50 0.50 - vpminuw (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - 1.00 - 1.00 - - - - - - - - vpmovmskb %xmm0, %ecx
+# CHECK-NEXT: 1.00 - - 1.00 - 1.00 - - - - - - - - vpmovmskb %xmm0, %ecx
# CHECK-NEXT: - - - - - 0.50 0.50 - - - - 0.50 0.50 - vpmovsxbd %xmm0, %xmm2
# CHECK-NEXT: - - - - - 0.50 0.50 1.00 - - - 0.50 0.50 - vpmovsxbd (%rax), %xmm2
# CHECK-NEXT: - - - - - 0.50 0.50 - - - - 0.50 0.50 - vpmovsxbq %xmm0, %xmm2
@@ -1592,10 +1592,10 @@ vzeroupper
# CHECK-NEXT: - - - - - 0.50 0.50 1.00 - - - 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 1.00 - - - 0.50 0.50 - vpsubw (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - 1.00 - 1.00 - - - - - - - - vptest %xmm0, %xmm1
-# CHECK-NEXT: - - - 1.00 - 1.00 - 1.00 - - - - - - vptest (%rax), %xmm1
-# CHECK-NEXT: - - - 3.00 1.00 1.00 1.00 - - - - - - - vptest %ymm0, %ymm1
-# CHECK-NEXT: - - - 3.00 1.00 1.00 1.00 2.00 - - - - - - vptest (%rax), %ymm1
+# CHECK-NEXT: 1.00 - - 1.00 - 1.00 - - - - - - - - vptest %xmm0, %xmm1
+# CHECK-NEXT: 1.00 - - 1.00 - 1.00 - 1.00 - - - - - - vptest (%rax), %xmm1
+# CHECK-NEXT: 1.00 - - 3.00 1.00 1.00 1.00 - - - - - - - vptest %ymm0, %ymm1
+# CHECK-NEXT: 1.00 - - 3.00 1.00 1.00 1.00 2.00 - - - - - - vptest (%rax), %ymm1
# CHECK-NEXT: - - - - - 0.50 0.50 - - - - 0.50 0.50 - vpunpckhbw %xmm0, %xmm1, %xmm2
# CHECK-NEXT: - - - - - 0.50 0.50 1.00 - - - 0.50 0.50 - vpunpckhbw (%rax), %xmm1, %xmm2
# CHECK-NEXT: - - - - - 0.50 0.50 - - - - 0.50 0.50 - vpunpckhdq %xmm0, %xmm1, %xmm2
@@ -1671,14 +1671,14 @@ vzeroupper
# CHECK-NEXT: - - - 1.00 - 1.00 - 1.00 - - - - - - vsubsd (%rax), %xmm1, %xmm2
# CHECK-NEXT: - - - 1.00 - 1.00 - - - - - - - - vsubss %xmm0, %xmm1, %xmm2
# CHECK-NEXT: - - - 1.00 - 1.00 - 1.00 - - - - - - vsubss (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - 1.00 - 1.00 - - - - - - - - vtestpd %xmm0, %xmm1
-# CHECK-NEXT: - - - 1.00 - 1.00 - 1.00 - - - - - - vtestpd (%rax), %xmm1
-# CHECK-NEXT: - - - 3.00 1.00 1.00 1.00 - - - - - - - vtestpd %ymm0, %ymm1
-# CHECK-NEXT: - - - 3.00 1.00 1.00 1.00 2.00 - - - - - - vtestpd (%rax), %ymm1
-# CHECK-NEXT: - - - 1.00 - 1.00 - - - - - - - - vtestps %xmm0, %xmm1
-# CHECK-NEXT: - - - 1.00 - 1.00 - 1.00 - - - - - - vtestps (%rax), %xmm1
-# CHECK-NEXT: - - - 3.00 1.00 1.00 1.00 - - - - - - - vtestps %ymm0, %ymm1
-# CHECK-NEXT: - - - 3.00 1.00 1.00 1.00 2.00 - - - - - - vtestps (%rax), %ymm1
+# CHECK-NEXT: 1.00 - - 1.00 - 1.00 - - - - - - - - vtestpd %xmm0, %xmm1
+# CHECK-NEXT: 1.00 - - 1.00 - 1.00 - 1.00 - - - - - - vtestpd (%rax), %xmm1
+# CHECK-NEXT: 1.00 - - 3.00 1.00 1.00 1.00 - - - - - - - vtestpd %ymm0, %ymm1
+# CHECK-NEXT: 1.00 - - 3.00 1.00 1.00 1.00 2.00 - - - - - - vtestpd (%rax), %ymm1
+# CHECK-NEXT: 1.00 - - 1.00 - 1.00 - - - - - - - - vtestps %xmm0, %xmm1
+# CHECK-NEXT: 1.00 - - 1.00 - 1.00 - 1.00 - - - - - - vtestps (%rax), %xmm1
+# CHECK-NEXT: 1.00 - - 3.00 1.00 1.00 1.00 - - - - - - - vtestps %ymm0, %ymm1
+# CHECK-NEXT: 1.00 - - 3.00 1.00 1.00 1.00 2.00 - - - - - - vtestps (%rax), %ymm1
# CHECK-NEXT: - - - 1.00 - 1.00 - - - - - - - - vucomisd %xmm0, %xmm1
# CHECK-NEXT: - - - 1.00 - 1.00 - 1.00 - - - - - - vucomisd (%rax), %xmm1
# CHECK-NEXT: - - - 1.00 - 1.00 - - - - - - - - vucomiss %xmm0, %xmm1
diff --git a/llvm/test/tools/llvm-mca/X86/BtVer2/resources-sse1.s b/llvm/test/tools/llvm-mca/X86/BtVer2/resources-sse1.s
index 1193e5c..3589aaaf 100644
--- a/llvm/test/tools/llvm-mca/X86/BtVer2/resources-sse1.s
+++ b/llvm/test/tools/llvm-mca/X86/BtVer2/resources-sse1.s
@@ -304,7 +304,7 @@ xorps (%rax), %xmm2
# CHECK-NEXT: - - - 0.50 0.50 0.50 0.50 1.00 - - - - - - movhps (%rax), %xmm2
# CHECK-NEXT: - - - - - - - - - 1.00 - - - - movlps %xmm0, (%rax)
# CHECK-NEXT: - - - 0.50 0.50 0.50 0.50 1.00 - - - - - - movlps (%rax), %xmm2
-# CHECK-NEXT: - - - 1.00 - 1.00 - - - - - - - - movmskps %xmm0, %ecx
+# CHECK-NEXT: 1.00 - - 1.00 - 1.00 - - - - - - - - movmskps %xmm0, %ecx
# CHECK-NEXT: - - - - - - 1.00 - - 1.00 1.00 - - - movntps %xmm0, (%rax)
# CHECK-NEXT: - - - 0.50 0.50 0.50 0.50 - - - - - - - movss %xmm0, %xmm2
# CHECK-NEXT: - - - - - - - - - 1.00 - - - - movss %xmm0, (%rax)
diff --git a/llvm/test/tools/llvm-mca/X86/BtVer2/resources-sse2.s b/llvm/test/tools/llvm-mca/X86/BtVer2/resources-sse2.s
index 960fcc9..a5e7051 100644
--- a/llvm/test/tools/llvm-mca/X86/BtVer2/resources-sse2.s
+++ b/llvm/test/tools/llvm-mca/X86/BtVer2/resources-sse2.s
@@ -472,7 +472,7 @@ xorpd (%rax), %xmm2
# CHECK-NEXT: - - - 0.50 0.50 0.50 0.50 1.00 - - - - - - movhpd (%rax), %xmm2
# CHECK-NEXT: - - - - - - - - - 1.00 - - - - movlpd %xmm0, (%rax)
# CHECK-NEXT: - - - 0.50 0.50 0.50 0.50 1.00 - - - - - - movlpd (%rax), %xmm2
-# CHECK-NEXT: - - - 1.00 - 1.00 - - - - - - - - movmskpd %xmm0, %ecx
+# CHECK-NEXT: 1.00 - - 1.00 - 1.00 - - - - - - - - movmskpd %xmm0, %ecx
# CHECK-NEXT: - - - - - - 1.00 - - 1.00 1.00 - - - movntdq %xmm0, (%rax)
# CHECK-NEXT: - - - - - - 1.00 - - 1.00 1.00 - - - movntpd %xmm0, (%rax)
# CHECK-NEXT: - - - - - 0.50 0.50 - - - - 0.50 0.50 - movq %xmm0, %xmm2
@@ -551,7 +551,7 @@ xorpd (%rax), %xmm2
# CHECK-NEXT: - - - - - 0.50 0.50 1.00 - - - 0.50 0.50 - pminsw (%rax), %xmm2
# CHECK-NEXT: - - - - - 0.50 0.50 - - - - 0.50 0.50 - pminub %xmm0, %xmm2
# CHECK-NEXT: - - - - - 0.50 0.50 1.00 - - - 0.50 0.50 - pminub (%rax), %xmm2
-# CHECK-NEXT: - - - 1.00 - 1.00 - - - - - - - - pmovmskb %xmm0, %ecx
+# CHECK-NEXT: 1.00 - - 1.00 - 1.00 - - - - - - - - pmovmskb %xmm0, %ecx
# CHECK-NEXT: - - - - - 1.00 - - - - - - - 1.00 pmulhuw %xmm0, %xmm2
# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - - 1.00 pmulhuw (%rax), %xmm2
# CHECK-NEXT: - - - - - 1.00 - - - - - - - 1.00 pmulhw %xmm0, %xmm2
diff --git a/llvm/test/tools/llvm-mca/X86/BtVer2/resources-sse41.s b/llvm/test/tools/llvm-mca/X86/BtVer2/resources-sse41.s
index 21f8fb8..9a7a082 100644
--- a/llvm/test/tools/llvm-mca/X86/BtVer2/resources-sse41.s
+++ b/llvm/test/tools/llvm-mca/X86/BtVer2/resources-sse41.s
@@ -249,8 +249,8 @@ roundss $1, (%rax), %xmm2
# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - - 1.00 pmuldq (%rax), %xmm2
# CHECK-NEXT: - - - - - 1.00 - - - - - - - 1.00 pmulld %xmm0, %xmm2
# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - - 1.00 pmulld (%rax), %xmm2
-# CHECK-NEXT: - - - 1.00 - 1.00 - - - - - - - - ptest %xmm0, %xmm1
-# CHECK-NEXT: - - - 1.00 - 1.00 - 1.00 - - - - - - ptest (%rax), %xmm1
+# CHECK-NEXT: 1.00 - - 1.00 - 1.00 - - - - - - - - ptest %xmm0, %xmm1
+# CHECK-NEXT: 1.00 - - 1.00 - 1.00 - 1.00 - - - - - - ptest (%rax), %xmm1
# CHECK-NEXT: - - - 1.00 - 1.00 - - - - - - - - roundpd $1, %xmm0, %xmm2
# CHECK-NEXT: - - - 1.00 - 1.00 - 1.00 - - - - - - roundpd $1, (%rax), %xmm2
# CHECK-NEXT: - - - 1.00 - 1.00 - - - - - - - - roundps $1, %xmm0, %xmm2
diff --git a/llvm/test/tools/llvm-mca/X86/BtVer2/resources-sse42.s b/llvm/test/tools/llvm-mca/X86/BtVer2/resources-sse42.s
index 39112dc..195ef86 100644
--- a/llvm/test/tools/llvm-mca/X86/BtVer2/resources-sse42.s
+++ b/llvm/test/tools/llvm-mca/X86/BtVer2/resources-sse42.s
@@ -58,13 +58,13 @@ pcmpgtq (%rax), %xmm2
# CHECK-NEXT: 2.00 2.00 - - - - - 1.00 - - - - - - crc32b (%rax), %rcx
# CHECK-NEXT: 2.00 2.00 - - - - - - - - - - - - crc32q %rax, %rcx
# CHECK-NEXT: 2.00 2.00 - - - - - 1.00 - - - - - - crc32q (%rax), %rcx
-# CHECK-NEXT: - - - 1.00 - - 1.00 2.00 - 2.00 - 3.00 7.00 - pcmpestri $1, %xmm0, %xmm2
-# CHECK-NEXT: - - - 1.00 - - 1.00 3.00 - 2.00 - 3.00 7.00 - pcmpestri $1, (%rax), %xmm2
-# CHECK-NEXT: - - - 1.00 - - 1.00 2.00 - 2.00 - 3.00 7.00 - pcmpestrm $1, %xmm0, %xmm2
-# CHECK-NEXT: - - - 1.00 - - 1.00 3.00 - 2.00 - 3.00 7.00 - pcmpestrm $1, (%rax), %xmm2
-# CHECK-NEXT: - - - 1.00 - - 1.00 - - - - - 2.00 - pcmpistri $1, %xmm0, %xmm2
-# CHECK-NEXT: - - - 1.00 - - 1.00 1.00 - - - - 2.00 - pcmpistri $1, (%rax), %xmm2
-# CHECK-NEXT: - - - 1.00 - - 1.00 - - - - - 2.00 - pcmpistrm $1, %xmm0, %xmm2
-# CHECK-NEXT: - - - 1.00 - - 1.00 1.00 - - - - 2.00 - pcmpistrm $1, (%rax), %xmm2
+# CHECK-NEXT: 1.00 - - 1.00 - - 1.00 2.00 - 2.00 - 3.00 7.00 - pcmpestri $1, %xmm0, %xmm2
+# CHECK-NEXT: 1.00 - - 1.00 - - 1.00 3.00 - 2.00 - 3.00 7.00 - pcmpestri $1, (%rax), %xmm2
+# CHECK-NEXT: 1.00 - - 1.00 - - 1.00 2.00 - 2.00 - 3.00 7.00 - pcmpestrm $1, %xmm0, %xmm2
+# CHECK-NEXT: 1.00 - - 1.00 - - 1.00 3.00 - 2.00 - 3.00 7.00 - pcmpestrm $1, (%rax), %xmm2
+# CHECK-NEXT: 1.00 - - 1.00 - - 1.00 - - - - - 2.00 - pcmpistri $1, %xmm0, %xmm2
+# CHECK-NEXT: 1.00 - - 1.00 - - 1.00 1.00 - - - - 2.00 - pcmpistri $1, (%rax), %xmm2
+# CHECK-NEXT: 1.00 - - 1.00 - - 1.00 - - - - - 2.00 - pcmpistrm $1, %xmm0, %xmm2
+# CHECK-NEXT: 1.00 - - 1.00 - - 1.00 1.00 - - - - 2.00 - pcmpistrm $1, (%rax), %xmm2
# CHECK-NEXT: - - - - - 0.50 0.50 - - - - 0.50 0.50 - pcmpgtq %xmm0, %xmm2
# CHECK-NEXT: - - - - - 0.50 0.50 1.00 - - - 0.50 0.50 - pcmpgtq (%rax), %xmm2