[llvm] r328886 - [X86][BtVer2] Fix the number of uOps for horizontal operations.
Andrea Di Biagio via llvm-commits
llvm-commits at lists.llvm.org
Fri Mar 30 11:15:31 PDT 2018
Author: adibiagio
Date: Fri Mar 30 11:15:30 2018
New Revision: 328886
URL: http://llvm.org/viewvc/llvm-project?rev=328886&view=rev
Log:
[X86][BtVer2] Fix the number of uOps for horizontal operations.
Modified:
llvm/trunk/lib/Target/X86/X86ScheduleBtVer2.td
llvm/trunk/test/tools/llvm-mca/X86/BtVer2/hadd-read-after-ld-2.s
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=328886&r1=328885&r2=328886&view=diff
==============================================================================
--- llvm/trunk/lib/Target/X86/X86ScheduleBtVer2.td (original)
+++ llvm/trunk/lib/Target/X86/X86ScheduleBtVer2.td Fri Mar 30 11:15:30 2018
@@ -388,12 +388,14 @@ defm : JWriteResFpuPair<WritePHAdd,
def JWriteFHAddY: SchedWriteRes<[JFPU0, JFPA]> {
let Latency = 3;
let ResourceCycles = [2, 2];
+ let NumMicroOps = 2;
}
def : InstRW<[JWriteFHAddY], (instrs VHADDPDYrr, VHADDPSYrr, VHSUBPDYrr, VHSUBPSYrr)>;
def JWriteFHAddYLd: SchedWriteRes<[JLAGU, JFPU0, JFPA]> {
let Latency = 8;
let ResourceCycles = [2, 2, 2];
+ let NumMicroOps = 2;
}
def : InstRW<[JWriteFHAddYLd, ReadAfterLd], (instrs VHADDPDYrm, VHADDPSYrm,
VHSUBPDYrm, VHSUBPSYrm)>;
Modified: llvm/trunk/test/tools/llvm-mca/X86/BtVer2/hadd-read-after-ld-2.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-mca/X86/BtVer2/hadd-read-after-ld-2.s?rev=328886&r1=328885&r2=328886&view=diff
==============================================================================
--- llvm/trunk/test/tools/llvm-mca/X86/BtVer2/hadd-read-after-ld-2.s (original)
+++ llvm/trunk/test/tools/llvm-mca/X86/BtVer2/hadd-read-after-ld-2.s Fri Mar 30 11:15:30 2018
@@ -13,11 +13,11 @@ vhaddps (%rdi), %ymm1, %ymm2
# CHECK: [1] [2] [3] [4] [5] [6] Instructions:
# CHECK-NEXT: 1 1 0.50 vshufps $0, %xmm0, %xmm1, %xmm1
-# CHECK-NEXT: 1 8 2.00 * vhaddps (%rdi), %ymm1, %ymm2
+# CHECK-NEXT: 2 8 2.00 * vhaddps (%rdi), %ymm1, %ymm2
# CHECK: Timeline view:
-# CHECK-NEXT: 0
+# CHECK-NEXT: 01
# CHECK-NEXT: Index 0123456789
-# CHECK: [0,0] DeER . . vshufps $0, %xmm0, %xmm1, %xmm1
-# CHECK-NEXT: [0,1] DeeeeeeeeER vhaddps (%rdi), %ymm1, %ymm2
+# CHECK: [0,0] DeER . .. vshufps $0, %xmm0, %xmm1, %xmm1
+# CHECK-NEXT: [0,1] .DeeeeeeeeER vhaddps (%rdi), %ymm1, %ymm2
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=328886&r1=328885&r2=328886&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 Fri Mar 30 11:15:30 2018
@@ -1186,20 +1186,20 @@ vzeroupper
# CHECK-NEXT: 2 6 1.00 * vextractps $1, %xmm0, (%rax)
# CHECK-NEXT: 1 3 1.00 vhaddpd %xmm0, %xmm1, %xmm2
# CHECK-NEXT: 1 8 1.00 * vhaddpd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 3 2.00 vhaddpd %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 1 8 2.00 * vhaddpd (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 2 3 2.00 vhaddpd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 2 8 2.00 * vhaddpd (%rax), %ymm1, %ymm2
# CHECK-NEXT: 1 3 1.00 vhaddps %xmm0, %xmm1, %xmm2
# CHECK-NEXT: 1 8 1.00 * vhaddps (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 3 2.00 vhaddps %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 1 8 2.00 * vhaddps (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 2 3 2.00 vhaddps %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 2 8 2.00 * vhaddps (%rax), %ymm1, %ymm2
# CHECK-NEXT: 1 3 1.00 vhsubpd %xmm0, %xmm1, %xmm2
# CHECK-NEXT: 1 8 1.00 * vhsubpd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 3 2.00 vhsubpd %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 1 8 2.00 * vhsubpd (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 2 3 2.00 vhsubpd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 2 8 2.00 * vhsubpd (%rax), %ymm1, %ymm2
# CHECK-NEXT: 1 3 1.00 vhsubps %xmm0, %xmm1, %xmm2
# CHECK-NEXT: 1 8 1.00 * vhsubps (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 3 2.00 vhsubps %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: 1 8 2.00 * vhsubps (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 2 3 2.00 vhsubps %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 2 8 2.00 * vhsubps (%rax), %ymm1, %ymm2
# CHECK-NEXT: 1 1 0.50 vinsertf128 $1, %xmm0, %ymm1, %ymm2
# CHECK-NEXT: 1 6 1.00 * vinsertf128 $1, (%rax), %ymm1, %ymm2
# CHECK-NEXT: 1 1 0.50 vinsertps $1, %xmm0, %xmm1, %xmm2
More information about the llvm-commits
mailing list