[llvm] r327803 - [X86][Btver2] Float bitwise ymm instructions are double pumped on the JFPX (JFPA/JFPM) functional pipes
Simon Pilgrim via llvm-commits
llvm-commits at lists.llvm.org
Sun Mar 18 10:10:12 PDT 2018
Author: rksimon
Date: Sun Mar 18 10:10:12 2018
New Revision: 327803
URL: http://llvm.org/viewvc/llvm-project?rev=327803&view=rev
Log:
[X86][Btver2] Float bitwise ymm instructions are double pumped on the JFPX (JFPA/JFPM) functional pipes
Modified:
llvm/trunk/lib/Target/X86/X86ScheduleBtVer2.td
llvm/trunk/test/tools/llvm-mca/X86/BtVer2/resources-avx1.s
Modified: llvm/trunk/lib/Target/X86/X86ScheduleBtVer2.td
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/X86ScheduleBtVer2.td?rev=327803&r1=327802&r2=327803&view=diff
==============================================================================
--- llvm/trunk/lib/Target/X86/X86ScheduleBtVer2.td (original)
+++ llvm/trunk/lib/Target/X86/X86ScheduleBtVer2.td Sun Mar 18 10:10:12 2018
@@ -478,8 +478,8 @@ def : InstRW<[JWriteFLogicLd], (instrs O
ANDPDrm, ANDPSrm, VANDPDrm, VANDPSrm,
ANDNPDrm, ANDNPSrm, VANDNPDrm, VANDNPSrm)>;
-def JWriteFLogicY: SchedWriteRes<[JFPU01]> {
- let ResourceCycles = [2];
+def JWriteFLogicY: SchedWriteRes<[JFPU01, JFPX]> {
+ let ResourceCycles = [2, 2];
let NumMicroOps = 2;
}
def : InstRW<[JWriteFLogicY], (instrs VORPDYrr, VORPSYrr,
@@ -487,9 +487,9 @@ def : InstRW<[JWriteFLogicY], (instrs VO
VANDPDYrr, VANDPSYrr,
VANDNPDYrr, VANDNPSYrr)>;
-def JWriteFLogicYLd: SchedWriteRes<[JLAGU, JFPU01]> {
+def JWriteFLogicYLd: SchedWriteRes<[JLAGU, JFPU01, JFPX]> {
let Latency = 6;
- let ResourceCycles = [1, 2];
+ let ResourceCycles = [1, 2, 2];
let NumMicroOps = 3;
}
def : InstRW<[JWriteFLogicYLd], (instrs VORPDYrm, VORPSYrm,
Modified: llvm/trunk/test/tools/llvm-mca/X86/BtVer2/resources-avx1.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-mca/X86/BtVer2/resources-avx1.s?rev=327803&r1=327802&r2=327803&view=diff
==============================================================================
--- llvm/trunk/test/tools/llvm-mca/X86/BtVer2/resources-avx1.s (original)
+++ llvm/trunk/test/tools/llvm-mca/X86/BtVer2/resources-avx1.s Sun Mar 18 10:10:12 2018
@@ -1055,25 +1055,25 @@ vzeroupper
# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - - 1.00 vaeskeygenassist $22, (%rax), %xmm2
# CHECK-NEXT: - - - - 1.00 - 1.00 - - - - - - - vandnpd %xmm0, %xmm1, %xmm2
# CHECK-NEXT: - - - - 1.00 - 1.00 1.00 - - - - - - vandnpd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - 2.00 - - - - - - - vandnpd %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: - - - - - - 2.00 1.00 - - - - - - vandnpd (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - - - 1.00 - 1.00 - - - - - - - vandnps %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - 2.00 - 2.00 - - - - - - - vandnpd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: - - - - 2.00 - 2.00 1.00 - - - - - - vandnpd (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - 1.00 - - 1.00 - - - - - - - vandnps %xmm0, %xmm1, %xmm2
# CHECK-NEXT: - - - - 1.00 - 1.00 1.00 - - - - - - vandnps (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - 2.00 - - - - - - - vandnps %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: - - - - - - 2.00 1.00 - - - - - - vandnps (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - 2.00 - - 2.00 - - - - - - - vandnps %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: - - - - 2.00 - 2.00 1.00 - - - - - - vandnps (%rax), %ymm1, %ymm2
# CHECK-NEXT: - - - 1.00 - - 1.00 - - - - - - - vandpd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - - 1.00 - - 1.00 1.00 - - - - - - vandpd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - 2.00 - - - - - - - vandpd %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: - - - - - - 2.00 1.00 - - - - - - vandpd (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - - - 1.00 - 1.00 - - - - - - - vandps %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - 1.00 - 1.00 1.00 - - - - - - vandpd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - 2.00 - 2.00 - - - - - - - vandpd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: - - - 2.00 - - 2.00 1.00 - - - - - - vandpd (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - 1.00 - - 1.00 - - - - - - - vandps %xmm0, %xmm1, %xmm2
# CHECK-NEXT: - - - - 1.00 1.00 - 1.00 - - - - - - vandps (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - 2.00 - - - - - - - vandps %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: - - - - - - 2.00 1.00 - - - - - - vandps (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - 2.00 - - 2.00 - - - - - - - vandps %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: - - - 2.00 - - 2.00 1.00 - - - - - - vandps (%rax), %ymm1, %ymm2
# CHECK-NEXT: - - - - 1.00 - 1.00 - - - - - - - vblendpd $11, %xmm0, %xmm1, %xmm2
# CHECK-NEXT: - - - - 1.00 1.00 - 1.00 - - - - - - vblendpd $11, (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - 1.00 - 1.00 - - - - - - - - vblendpd $11, %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: - - - - 1.00 1.00 - - - - - - - - vblendpd $11, %ymm0, %ymm1, %ymm2
# CHECK-NEXT: - - - 1.00 - - 1.00 1.00 - - - - - - vblendpd $11, (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - - 1.00 - 1.00 - - - - - - - - vblendps $11, %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - - 1.00 1.00 - - - - - - - - vblendps $11, %xmm0, %xmm1, %xmm2
# CHECK-NEXT: - - - 1.00 - - 1.00 1.00 - - - - - - vblendps $11, (%rax), %xmm1, %xmm2
# CHECK-NEXT: - - - - 1.00 1.00 - - - - - - - - vblendps $11, %ymm0, %ymm1, %ymm2
# CHECK-NEXT: - - - 1.00 - - 1.00 1.00 - - - - - - vblendps $11, (%rax), %ymm1, %ymm2
@@ -1340,12 +1340,12 @@ vzeroupper
# CHECK-NEXT: - - - - 1.00 - 1.00 1.00 - - - - - - vmulss (%rax), %xmm1, %xmm2
# CHECK-NEXT: - - - - 1.00 1.00 - - - - - - - - vorpd %xmm0, %xmm1, %xmm2
# CHECK-NEXT: - - - 1.00 - 1.00 - 1.00 - - - - - - vorpd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - 2.00 - - - - - - - - vorpd %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: - - - - - 2.00 - 1.00 - - - - - - vorpd (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - 2.00 2.00 - - - - - - - - vorpd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: - - - 2.00 - 2.00 - 1.00 - - - - - - vorpd (%rax), %ymm1, %ymm2
# CHECK-NEXT: - - - 1.00 - 1.00 - - - - - - - - vorps %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - - 1.00 - 1.00 - 1.00 - - - - - - vorps (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - 2.00 - - - - - - - - vorps %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: - - - - - 2.00 - 1.00 - - - - - - vorps (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - 1.00 1.00 - 1.00 - - - - - - vorps (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - 2.00 - 2.00 - - - - - - - - vorps %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: - - - 2.00 - 2.00 - 1.00 - - - - - - vorps (%rax), %ymm1, %ymm2
# CHECK-NEXT: - - - - - 1.00 - - - - - 1.00 - - vpabsb %xmm0, %xmm2
# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - 1.00 - vpabsb (%rax), %xmm2
# CHECK-NEXT: - - - - - 1.00 - - - - - 1.00 - - vpabsd %xmm0, %xmm2
@@ -1679,11 +1679,11 @@ vzeroupper
# CHECK-NEXT: - - - 1.00 - - 1.00 - - - - - - - vunpckhpd %ymm0, %ymm1, %ymm2
# CHECK-NEXT: - - - - 1.00 - 1.00 1.00 - - - - - - vunpckhpd (%rax), %ymm1, %ymm2
# CHECK-NEXT: - - - - 1.00 - 1.00 - - - - - - - vunpckhps %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - - - 1.00 1.00 - 1.00 - - - - - - vunpckhps (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - 1.00 - 1.00 - 1.00 - - - - - - vunpckhps (%rax), %xmm1, %xmm2
# CHECK-NEXT: - - - 1.00 - - 1.00 - - - - - - - vunpckhps %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: - - - 1.00 - - 1.00 1.00 - - - - - - vunpckhps (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - 1.00 - 1.00 1.00 - - - - - - vunpckhps (%rax), %ymm1, %ymm2
# CHECK-NEXT: - - - - 1.00 - 1.00 - - - - - - - vunpcklpd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - - 1.00 - - 1.00 1.00 - - - - - - vunpcklpd (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - - 1.00 - 1.00 1.00 - - - - - - vunpcklpd (%rax), %xmm1, %xmm2
# CHECK-NEXT: - - - - 1.00 - 1.00 - - - - - - - vunpcklpd %ymm0, %ymm1, %ymm2
# CHECK-NEXT: - - - - 1.00 - 1.00 1.00 - - - - - - vunpcklpd (%rax), %ymm1, %ymm2
# CHECK-NEXT: - - - 1.00 - - 1.00 - - - - - - - vunpcklps %xmm0, %xmm1, %xmm2
@@ -1692,11 +1692,11 @@ vzeroupper
# CHECK-NEXT: - - - - 1.00 - 1.00 1.00 - - - - - - vunpcklps (%rax), %ymm1, %ymm2
# CHECK-NEXT: - - - - 1.00 - 1.00 - - - - - - - vxorpd %xmm0, %xmm1, %xmm2
# CHECK-NEXT: - - - 1.00 - 1.00 - 1.00 - - - - - - vxorpd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - 2.00 - - - - - - - vxorpd %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: - - - - - - 2.00 1.00 - - - - - - vxorpd (%rax), %ymm1, %ymm2
-# CHECK-NEXT: - - - - 1.00 1.00 - - - - - - - - vxorps %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - - - 1.00 1.00 - 1.00 - - - - - - vxorps (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - 2.00 - - - - - - - - vxorps %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: - - - - - - 2.00 1.00 - - - - - - vxorps (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - 2.00 - 2.00 - - - - - - - vxorpd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: - - - - 2.00 - 2.00 1.00 - - - - - - vxorpd (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - 1.00 - 1.00 - - - - - - - - vxorps %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - 1.00 - 1.00 - 1.00 - - - - - - vxorps (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - 2.00 - 2.00 - - - - - - - - vxorps %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: - - - - 2.00 - 2.00 1.00 - - - - - - vxorps (%rax), %ymm1, %ymm2
# CHECK-NEXT: - - - - - - - - - - - - - - vzeroall
# CHECK-NEXT: - - - - - - - - - - - - - - vzeroupper
More information about the llvm-commits
mailing list