[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