[llvm] r332269 - [X86][BtVer2] Fix MMX/YMM integer vector nt store schedules

Simon Pilgrim via llvm-commits llvm-commits at lists.llvm.org
Mon May 14 11:07:28 PDT 2018


Author: rksimon
Date: Mon May 14 11:07:28 2018
New Revision: 332269

URL: http://llvm.org/viewvc/llvm-project?rev=332269&view=rev
Log:
[X86][BtVer2] Fix MMX/YMM integer vector nt store schedules

MMX was missing and YMM was tagged as a fp nt store

Modified:
    llvm/trunk/lib/Target/X86/X86ScheduleBtVer2.td
    llvm/trunk/test/CodeGen/X86/avx-schedule.ll
    llvm/trunk/test/CodeGen/X86/mmx-schedule.ll
    llvm/trunk/test/tools/llvm-mca/X86/BtVer2/resources-avx1.s
    llvm/trunk/test/tools/llvm-mca/X86/BtVer2/resources-sse1.s

Modified: llvm/trunk/lib/Target/X86/X86ScheduleBtVer2.td
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/X86ScheduleBtVer2.td?rev=332269&r1=332268&r2=332269&view=diff
==============================================================================
--- llvm/trunk/lib/Target/X86/X86ScheduleBtVer2.td (original)
+++ llvm/trunk/lib/Target/X86/X86ScheduleBtVer2.td Mon May 14 11:07:28 2018
@@ -575,7 +575,13 @@ def : InstRW<[JWriteVCVTYLd, ReadAfterLd
 def JWriteVMOVNTDQSt: SchedWriteRes<[JFPU1, JSTC, JSAGU]> {
   let Latency = 2;
 }
-def : InstRW<[JWriteVMOVNTDQSt], (instrs MOVNTDQmr, VMOVNTDQmr)>;
+def : InstRW<[JWriteVMOVNTDQSt], (instrs MMX_MOVNTQmr, MOVNTDQmr, VMOVNTDQmr)>;
+
+def JWriteVMOVNTDQYSt: SchedWriteRes<[JFPU1, JSTC, JSAGU]> {
+  let Latency = 2;
+  let ResourceCycles = [2, 2, 2];
+}
+def : InstRW<[JWriteVMOVNTDQYSt], (instrs VMOVNTDQYmr)>;
 
 def JWriteMOVNTSt: SchedWriteRes<[JFPU1, JSTC, JSAGU]> {
   let Latency = 3;
@@ -586,7 +592,7 @@ def JWriteVMOVNTPYSt: SchedWriteRes<[JFP
   let Latency = 3;
   let ResourceCycles = [2, 2, 2];
 }
-def : InstRW<[JWriteVMOVNTPYSt], (instrs VMOVNTDQYmr, VMOVNTPDYmr, VMOVNTPSYmr)>;
+def : InstRW<[JWriteVMOVNTPYSt], (instrs VMOVNTPDYmr, VMOVNTPSYmr)>;
 
 def JWriteVCVTPDY: SchedWriteRes<[JFPU1, JSTC, JFPX]> {
   let Latency = 6;

Modified: llvm/trunk/test/CodeGen/X86/avx-schedule.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/avx-schedule.ll?rev=332269&r1=332268&r2=332269&view=diff
==============================================================================
--- llvm/trunk/test/CodeGen/X86/avx-schedule.ll (original)
+++ llvm/trunk/test/CodeGen/X86/avx-schedule.ll Mon May 14 11:07:28 2018
@@ -2864,7 +2864,7 @@ define void @test_movntdq(<4 x i64> %a0,
 ; BTVER2-LABEL: test_movntdq:
 ; BTVER2:       # %bb.0:
 ; BTVER2-NEXT:    #APP
-; BTVER2-NEXT:    vmovntdq %ymm0, (%rdi) # sched: [3:2.00]
+; BTVER2-NEXT:    vmovntdq %ymm0, (%rdi) # sched: [2:2.00]
 ; BTVER2-NEXT:    #NO_APP
 ; BTVER2-NEXT:    retq # sched: [4:1.00]
 ;

Modified: llvm/trunk/test/CodeGen/X86/mmx-schedule.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/mmx-schedule.ll?rev=332269&r1=332268&r2=332269&view=diff
==============================================================================
--- llvm/trunk/test/CodeGen/X86/mmx-schedule.ll (original)
+++ llvm/trunk/test/CodeGen/X86/mmx-schedule.ll Mon May 14 11:07:28 2018
@@ -878,7 +878,7 @@ define void @test_movntq(x86_mmx* %a0, x
 ;
 ; BTVER2-LABEL: test_movntq:
 ; BTVER2:       # %bb.0:
-; BTVER2-NEXT:    movntq %mm0, (%rdi) # sched: [1:1.00]
+; BTVER2-NEXT:    movntq %mm0, (%rdi) # sched: [2:1.00]
 ; BTVER2-NEXT:    retq # sched: [4:1.00]
 ;
 ; ZNVER1-LABEL: test_movntq:

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=332269&r1=332268&r2=332269&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 Mon May 14 11:07:28 2018
@@ -1287,7 +1287,7 @@ vzeroupper
 # CHECK-NEXT:  1      3     1.00                    	vmovmskps	%xmm0, %ecx
 # CHECK-NEXT:  1      3     1.00                    	vmovmskps	%ymm0, %ecx
 # CHECK-NEXT:  1      2     1.00           *        	vmovntdq	%xmm0, (%rax)
-# CHECK-NEXT:  1      3     2.00           *        	vmovntdq	%ymm0, (%rax)
+# CHECK-NEXT:  1      2     2.00           *        	vmovntdq	%ymm0, (%rax)
 # CHECK-NEXT:  1      5     1.00    *               	vmovntdqa	(%rax), %xmm2
 # CHECK-NEXT:  1      5     1.00    *               	vmovntdqa	(%rax), %ymm2
 # CHECK-NEXT:  1      3     1.00           *        	vmovntpd	%xmm0, (%rax)

Modified: llvm/trunk/test/tools/llvm-mca/X86/BtVer2/resources-sse1.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-mca/X86/BtVer2/resources-sse1.s?rev=332269&r1=332268&r2=332269&view=diff
==============================================================================
--- llvm/trunk/test/tools/llvm-mca/X86/BtVer2/resources-sse1.s (original)
+++ llvm/trunk/test/tools/llvm-mca/X86/BtVer2/resources-sse1.s Mon May 14 11:07:28 2018
@@ -251,7 +251,7 @@ xorps       (%rax), %xmm2
 # CHECK-NEXT:  1      6     1.00    *               	movlps	(%rax), %xmm2
 # CHECK-NEXT:  1      3     1.00                    	movmskps	%xmm0, %ecx
 # CHECK-NEXT:  1      3     1.00           *        	movntps	%xmm0, (%rax)
-# CHECK-NEXT:  1      1     1.00    *      *      * 	movntq	%mm0, (%rax)
+# CHECK-NEXT:  1      2     1.00    *      *      * 	movntq	%mm0, (%rax)
 # CHECK-NEXT:  1      1     0.50                    	movss	%xmm0, %xmm2
 # CHECK-NEXT:  1      1     1.00           *        	movss	%xmm0, (%rax)
 # CHECK-NEXT:  1      5     1.00    *               	movss	(%rax), %xmm2




More information about the llvm-commits mailing list