[llvm] r328295 - [X86] Correct the latencies of SNB integer vector multiplies based on Agner's data. Add missing MMX multiplies.

Craig Topper via llvm-commits llvm-commits at lists.llvm.org
Thu Mar 22 23:41:43 PDT 2018


Author: ctopper
Date: Thu Mar 22 23:41:43 2018
New Revision: 328295

URL: http://llvm.org/viewvc/llvm-project?rev=328295&view=rev
Log:
[X86] Correct the latencies of SNB integer vector multiplies based on Agner's data. Add missing MMX multiplies.

Modified:
    llvm/trunk/lib/Target/X86/X86SchedSandyBridge.td
    llvm/trunk/test/CodeGen/X86/mmx-schedule.ll
    llvm/trunk/test/CodeGen/X86/sse2-schedule.ll
    llvm/trunk/test/CodeGen/X86/sse41-schedule.ll
    llvm/trunk/test/CodeGen/X86/ssse3-schedule.ll

Modified: llvm/trunk/lib/Target/X86/X86SchedSandyBridge.td
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/X86SchedSandyBridge.td?rev=328295&r1=328294&r2=328295&view=diff
==============================================================================
--- llvm/trunk/lib/Target/X86/X86SchedSandyBridge.td (original)
+++ llvm/trunk/lib/Target/X86/X86SchedSandyBridge.td Thu Mar 22 23:41:43 2018
@@ -676,13 +676,18 @@ def: InstRW<[SBWriteResGroup19], (instre
                                             "SHRD(16|32|64)rri8")>;
 
 def SBWriteResGroup20 : SchedWriteRes<[SBPort0]> {
-  let Latency = 3;
+  let Latency = 5;
   let NumMicroOps = 1;
   let ResourceCycles = [1];
 }
 def: InstRW<[SBWriteResGroup20], (instregex "MMX_PMADDUBSWrr",
+                                            "MMX_PMADDWDirr",
                                             "MMX_PMULHRSWrr",
+                                            "MMX_PMULHUWirr",
+                                            "MMX_PMULHWirr",
+                                            "MMX_PMULLWirr",
                                             "MMX_PMULUDQirr",
+                                            "MMX_PSADBWirr",
                                             "(V?)PMADDUBSWrr",
                                             "(V?)PMADDWDrr",
                                             "(V?)PMULDQrr",
@@ -995,7 +1000,7 @@ def: InstRW<[SBWriteResGroup33], (instre
                                             "(V?)MOVUPSmr")>;
 
 def SBWriteResGroup34 : SchedWriteRes<[SBPort0,SBPort15]> {
-  let Latency = 5;
+  let Latency = 7;
   let NumMicroOps = 3;
   let ResourceCycles = [1,2];
 }
@@ -1475,9 +1480,7 @@ def SBWriteResGroup71 : SchedWriteRes<[S
   let NumMicroOps = 2;
   let ResourceCycles = [1,1];
 }
-def: InstRW<[SBWriteResGroup71], (instregex "MMX_PMADDUBSWrm",
-                                            "MMX_PMULHRSWrm",
-                                            "VTESTPDYrm",
+def: InstRW<[SBWriteResGroup71], (instregex "VTESTPDYrm",
                                             "VTESTPSYrm")>;
 
 def SBWriteResGroup72 : SchedWriteRes<[SBPort1,SBPort23]> {
@@ -1659,12 +1662,11 @@ def: InstRW<[SBWriteResGroup88], (instre
                                             "SHRD(16|32|64)mri8")>;
 
 def SBWriteResGroup89 : SchedWriteRes<[SBPort0,SBPort23]> {
-  let Latency = 9;
+  let Latency = 11;
   let NumMicroOps = 2;
   let ResourceCycles = [1,1];
 }
-def: InstRW<[SBWriteResGroup89], (instregex "MMX_PMULUDQirm",
-                                            "(V?)PMADDUBSWrm",
+def: InstRW<[SBWriteResGroup89], (instregex "(V?)PMADDUBSWrm",
                                             "(V?)PMADDWDrm",
                                             "(V?)PMULDQrm",
                                             "(V?)PMULHRSWrm",
@@ -1675,6 +1677,20 @@ def: InstRW<[SBWriteResGroup89], (instre
                                             "(V?)PMULUDQrm",
                                             "(V?)PSADBWrm")>;
 
+def SBWriteResGroup89_2 : SchedWriteRes<[SBPort0,SBPort23]> {
+  let Latency = 10;
+  let NumMicroOps = 2;
+  let ResourceCycles = [1,1];
+}
+def: InstRW<[SBWriteResGroup89], (instregex "MMX_PMADDUBSWrm",
+                                            "MMX_PMADDWDirm"
+                                            "MMX_PMULHRSWrm",
+                                            "MMX_PMULHUWirm",
+                                            "MMX_PMULHWirm",
+                                            "MMX_PMULLWirm",
+                                            "MMX_PMULUDQirm",
+                                            "MMX_PSADBWirm")>;
+
 def SBWriteResGroup90 : SchedWriteRes<[SBPort1,SBPort23]> {
   let Latency = 9;
   let NumMicroOps = 2;
@@ -1932,7 +1948,7 @@ def: InstRW<[SBWriteResGroup107], (instr
                                              "VCVTTPD2DQYrm")>;
 
 def SBWriteResGroup108 : SchedWriteRes<[SBPort0,SBPort23,SBPort15]> {
-  let Latency = 11;
+  let Latency = 13;
   let NumMicroOps = 4;
   let ResourceCycles = [1,1,2];
 }

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=328295&r1=328294&r2=328295&view=diff
==============================================================================
--- llvm/trunk/test/CodeGen/X86/mmx-schedule.ll (original)
+++ llvm/trunk/test/CodeGen/X86/mmx-schedule.ll Thu Mar 22 23:41:43 2018
@@ -3668,8 +3668,8 @@ declare x86_mmx @llvm.x86.mmx.pmadd.wd(x
 define i64 @test_pmaddubsw(x86_mmx %a0, x86_mmx %a1, x86_mmx* %a2) optsize {
 ; GENERIC-LABEL: test_pmaddubsw:
 ; GENERIC:       # %bb.0:
-; GENERIC-NEXT:    pmaddubsw %mm1, %mm0 # sched: [3:1.00]
-; GENERIC-NEXT:    pmaddubsw (%rdi), %mm0 # sched: [8:1.00]
+; GENERIC-NEXT:    pmaddubsw %mm1, %mm0 # sched: [5:1.00]
+; GENERIC-NEXT:    pmaddubsw (%rdi), %mm0 # sched: [11:1.00]
 ; GENERIC-NEXT:    movq %mm0, %rax # sched: [1:0.33]
 ; GENERIC-NEXT:    retq # sched: [1:1.00]
 ;
@@ -3689,8 +3689,8 @@ define i64 @test_pmaddubsw(x86_mmx %a0,
 ;
 ; SANDY-LABEL: test_pmaddubsw:
 ; SANDY:       # %bb.0:
-; SANDY-NEXT:    pmaddubsw %mm1, %mm0 # sched: [3:1.00]
-; SANDY-NEXT:    pmaddubsw (%rdi), %mm0 # sched: [8:1.00]
+; SANDY-NEXT:    pmaddubsw %mm1, %mm0 # sched: [5:1.00]
+; SANDY-NEXT:    pmaddubsw (%rdi), %mm0 # sched: [11:1.00]
 ; SANDY-NEXT:    movq %mm0, %rax # sched: [1:0.33]
 ; SANDY-NEXT:    retq # sched: [1:1.00]
 ;
@@ -4113,8 +4113,8 @@ declare i32 @llvm.x86.mmx.pmovmskb(x86_m
 define i64 @test_pmulhrsw(x86_mmx %a0, x86_mmx %a1, x86_mmx* %a2) optsize {
 ; GENERIC-LABEL: test_pmulhrsw:
 ; GENERIC:       # %bb.0:
-; GENERIC-NEXT:    pmulhrsw %mm1, %mm0 # sched: [3:1.00]
-; GENERIC-NEXT:    pmulhrsw (%rdi), %mm0 # sched: [8:1.00]
+; GENERIC-NEXT:    pmulhrsw %mm1, %mm0 # sched: [5:1.00]
+; GENERIC-NEXT:    pmulhrsw (%rdi), %mm0 # sched: [9:1.00]
 ; GENERIC-NEXT:    movq %mm0, %rax # sched: [1:0.33]
 ; GENERIC-NEXT:    retq # sched: [1:1.00]
 ;
@@ -4134,8 +4134,8 @@ define i64 @test_pmulhrsw(x86_mmx %a0, x
 ;
 ; SANDY-LABEL: test_pmulhrsw:
 ; SANDY:       # %bb.0:
-; SANDY-NEXT:    pmulhrsw %mm1, %mm0 # sched: [3:1.00]
-; SANDY-NEXT:    pmulhrsw (%rdi), %mm0 # sched: [8:1.00]
+; SANDY-NEXT:    pmulhrsw %mm1, %mm0 # sched: [5:1.00]
+; SANDY-NEXT:    pmulhrsw (%rdi), %mm0 # sched: [9:1.00]
 ; SANDY-NEXT:    movq %mm0, %rax # sched: [1:0.33]
 ; SANDY-NEXT:    retq # sched: [1:1.00]
 ;
@@ -4192,7 +4192,7 @@ define i64 @test_pmulhw(x86_mmx %a0, x86
 ; GENERIC-LABEL: test_pmulhw:
 ; GENERIC:       # %bb.0:
 ; GENERIC-NEXT:    pmulhw %mm1, %mm0 # sched: [5:1.00]
-; GENERIC-NEXT:    pmulhw (%rdi), %mm0 # sched: [9:1.00]
+; GENERIC-NEXT:    pmulhw (%rdi), %mm0 # sched: [11:1.00]
 ; GENERIC-NEXT:    movq %mm0, %rax # sched: [1:0.33]
 ; GENERIC-NEXT:    retq # sched: [1:1.00]
 ;
@@ -4213,7 +4213,7 @@ define i64 @test_pmulhw(x86_mmx %a0, x86
 ; SANDY-LABEL: test_pmulhw:
 ; SANDY:       # %bb.0:
 ; SANDY-NEXT:    pmulhw %mm1, %mm0 # sched: [5:1.00]
-; SANDY-NEXT:    pmulhw (%rdi), %mm0 # sched: [9:1.00]
+; SANDY-NEXT:    pmulhw (%rdi), %mm0 # sched: [11:1.00]
 ; SANDY-NEXT:    movq %mm0, %rax # sched: [1:0.33]
 ; SANDY-NEXT:    retq # sched: [1:1.00]
 ;
@@ -4270,7 +4270,7 @@ define i64 @test_pmulhuw(x86_mmx %a0, x8
 ; GENERIC-LABEL: test_pmulhuw:
 ; GENERIC:       # %bb.0:
 ; GENERIC-NEXT:    pmulhuw %mm1, %mm0 # sched: [5:1.00]
-; GENERIC-NEXT:    pmulhuw (%rdi), %mm0 # sched: [9:1.00]
+; GENERIC-NEXT:    pmulhuw (%rdi), %mm0 # sched: [11:1.00]
 ; GENERIC-NEXT:    movq %mm0, %rax # sched: [1:0.33]
 ; GENERIC-NEXT:    retq # sched: [1:1.00]
 ;
@@ -4291,7 +4291,7 @@ define i64 @test_pmulhuw(x86_mmx %a0, x8
 ; SANDY-LABEL: test_pmulhuw:
 ; SANDY:       # %bb.0:
 ; SANDY-NEXT:    pmulhuw %mm1, %mm0 # sched: [5:1.00]
-; SANDY-NEXT:    pmulhuw (%rdi), %mm0 # sched: [9:1.00]
+; SANDY-NEXT:    pmulhuw (%rdi), %mm0 # sched: [11:1.00]
 ; SANDY-NEXT:    movq %mm0, %rax # sched: [1:0.33]
 ; SANDY-NEXT:    retq # sched: [1:1.00]
 ;
@@ -4348,7 +4348,7 @@ define i64 @test_pmullw(x86_mmx %a0, x86
 ; GENERIC-LABEL: test_pmullw:
 ; GENERIC:       # %bb.0:
 ; GENERIC-NEXT:    pmullw %mm1, %mm0 # sched: [5:1.00]
-; GENERIC-NEXT:    pmullw (%rdi), %mm0 # sched: [9:1.00]
+; GENERIC-NEXT:    pmullw (%rdi), %mm0 # sched: [11:1.00]
 ; GENERIC-NEXT:    movq %mm0, %rax # sched: [1:0.33]
 ; GENERIC-NEXT:    retq # sched: [1:1.00]
 ;
@@ -4369,7 +4369,7 @@ define i64 @test_pmullw(x86_mmx %a0, x86
 ; SANDY-LABEL: test_pmullw:
 ; SANDY:       # %bb.0:
 ; SANDY-NEXT:    pmullw %mm1, %mm0 # sched: [5:1.00]
-; SANDY-NEXT:    pmullw (%rdi), %mm0 # sched: [9:1.00]
+; SANDY-NEXT:    pmullw (%rdi), %mm0 # sched: [11:1.00]
 ; SANDY-NEXT:    movq %mm0, %rax # sched: [1:0.33]
 ; SANDY-NEXT:    retq # sched: [1:1.00]
 ;
@@ -4425,8 +4425,8 @@ declare x86_mmx @llvm.x86.mmx.pmull.w(x8
 define i64 @test_pmuludq(x86_mmx %a0, x86_mmx %a1, x86_mmx* %a2) optsize {
 ; GENERIC-LABEL: test_pmuludq:
 ; GENERIC:       # %bb.0:
-; GENERIC-NEXT:    pmuludq %mm1, %mm0 # sched: [3:1.00]
-; GENERIC-NEXT:    pmuludq (%rdi), %mm0 # sched: [9:1.00]
+; GENERIC-NEXT:    pmuludq %mm1, %mm0 # sched: [5:1.00]
+; GENERIC-NEXT:    pmuludq (%rdi), %mm0 # sched: [11:1.00]
 ; GENERIC-NEXT:    movq %mm0, %rax # sched: [1:0.33]
 ; GENERIC-NEXT:    retq # sched: [1:1.00]
 ;
@@ -4446,8 +4446,8 @@ define i64 @test_pmuludq(x86_mmx %a0, x8
 ;
 ; SANDY-LABEL: test_pmuludq:
 ; SANDY:       # %bb.0:
-; SANDY-NEXT:    pmuludq %mm1, %mm0 # sched: [3:1.00]
-; SANDY-NEXT:    pmuludq (%rdi), %mm0 # sched: [9:1.00]
+; SANDY-NEXT:    pmuludq %mm1, %mm0 # sched: [5:1.00]
+; SANDY-NEXT:    pmuludq (%rdi), %mm0 # sched: [11:1.00]
 ; SANDY-NEXT:    movq %mm0, %rax # sched: [1:0.33]
 ; SANDY-NEXT:    retq # sched: [1:1.00]
 ;
@@ -4582,7 +4582,7 @@ define i64 @test_psadbw(x86_mmx %a0, x86
 ; GENERIC-LABEL: test_psadbw:
 ; GENERIC:       # %bb.0:
 ; GENERIC-NEXT:    psadbw %mm1, %mm0 # sched: [5:1.00]
-; GENERIC-NEXT:    psadbw (%rdi), %mm0 # sched: [9:1.00]
+; GENERIC-NEXT:    psadbw (%rdi), %mm0 # sched: [11:1.00]
 ; GENERIC-NEXT:    movq %mm0, %rax # sched: [1:0.33]
 ; GENERIC-NEXT:    retq # sched: [1:1.00]
 ;
@@ -4603,7 +4603,7 @@ define i64 @test_psadbw(x86_mmx %a0, x86
 ; SANDY-LABEL: test_psadbw:
 ; SANDY:       # %bb.0:
 ; SANDY-NEXT:    psadbw %mm1, %mm0 # sched: [5:1.00]
-; SANDY-NEXT:    psadbw (%rdi), %mm0 # sched: [9:1.00]
+; SANDY-NEXT:    psadbw (%rdi), %mm0 # sched: [11:1.00]
 ; SANDY-NEXT:    movq %mm0, %rax # sched: [1:0.33]
 ; SANDY-NEXT:    retq # sched: [1:1.00]
 ;

Modified: llvm/trunk/test/CodeGen/X86/sse2-schedule.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/sse2-schedule.ll?rev=328295&r1=328294&r2=328295&view=diff
==============================================================================
--- llvm/trunk/test/CodeGen/X86/sse2-schedule.ll (original)
+++ llvm/trunk/test/CodeGen/X86/sse2-schedule.ll Thu Mar 22 23:41:43 2018
@@ -5618,8 +5618,8 @@ define <8 x i16> @test_pinsrw(<8 x i16>
 define <4 x i32> @test_pmaddwd(<8 x i16> %a0, <8 x i16> %a1, <8 x i16> *%a2) {
 ; GENERIC-LABEL: test_pmaddwd:
 ; GENERIC:       # %bb.0:
-; GENERIC-NEXT:    pmaddwd %xmm1, %xmm0 # sched: [3:1.00]
-; GENERIC-NEXT:    pmaddwd (%rdi), %xmm0 # sched: [9:1.00]
+; GENERIC-NEXT:    pmaddwd %xmm1, %xmm0 # sched: [5:1.00]
+; GENERIC-NEXT:    pmaddwd (%rdi), %xmm0 # sched: [11:1.00]
 ; GENERIC-NEXT:    retq # sched: [1:1.00]
 ;
 ; ATOM-LABEL: test_pmaddwd:
@@ -5636,8 +5636,8 @@ define <4 x i32> @test_pmaddwd(<8 x i16>
 ;
 ; SANDY-LABEL: test_pmaddwd:
 ; SANDY:       # %bb.0:
-; SANDY-NEXT:    vpmaddwd %xmm1, %xmm0, %xmm0 # sched: [3:1.00]
-; SANDY-NEXT:    vpmaddwd (%rdi), %xmm0, %xmm0 # sched: [9:1.00]
+; SANDY-NEXT:    vpmaddwd %xmm1, %xmm0, %xmm0 # sched: [5:1.00]
+; SANDY-NEXT:    vpmaddwd (%rdi), %xmm0, %xmm0 # sched: [11:1.00]
 ; SANDY-NEXT:    retq # sched: [1:1.00]
 ;
 ; HASWELL-LABEL: test_pmaddwd:
@@ -6027,8 +6027,8 @@ declare i32 @llvm.x86.sse2.pmovmskb.128(
 define <8 x i16> @test_pmulhuw(<8 x i16> %a0, <8 x i16> %a1, <8 x i16> *%a2) {
 ; GENERIC-LABEL: test_pmulhuw:
 ; GENERIC:       # %bb.0:
-; GENERIC-NEXT:    pmulhuw %xmm1, %xmm0 # sched: [3:1.00]
-; GENERIC-NEXT:    pmulhuw (%rdi), %xmm0 # sched: [9:1.00]
+; GENERIC-NEXT:    pmulhuw %xmm1, %xmm0 # sched: [5:1.00]
+; GENERIC-NEXT:    pmulhuw (%rdi), %xmm0 # sched: [11:1.00]
 ; GENERIC-NEXT:    retq # sched: [1:1.00]
 ;
 ; ATOM-LABEL: test_pmulhuw:
@@ -6045,8 +6045,8 @@ define <8 x i16> @test_pmulhuw(<8 x i16>
 ;
 ; SANDY-LABEL: test_pmulhuw:
 ; SANDY:       # %bb.0:
-; SANDY-NEXT:    vpmulhuw %xmm1, %xmm0, %xmm0 # sched: [3:1.00]
-; SANDY-NEXT:    vpmulhuw (%rdi), %xmm0, %xmm0 # sched: [9:1.00]
+; SANDY-NEXT:    vpmulhuw %xmm1, %xmm0, %xmm0 # sched: [5:1.00]
+; SANDY-NEXT:    vpmulhuw (%rdi), %xmm0, %xmm0 # sched: [11:1.00]
 ; SANDY-NEXT:    retq # sched: [1:1.00]
 ;
 ; HASWELL-LABEL: test_pmulhuw:
@@ -6094,8 +6094,8 @@ declare <8 x i16> @llvm.x86.sse2.pmulhu.
 define <8 x i16> @test_pmulhw(<8 x i16> %a0, <8 x i16> %a1, <8 x i16> *%a2) {
 ; GENERIC-LABEL: test_pmulhw:
 ; GENERIC:       # %bb.0:
-; GENERIC-NEXT:    pmulhw %xmm1, %xmm0 # sched: [3:1.00]
-; GENERIC-NEXT:    pmulhw (%rdi), %xmm0 # sched: [9:1.00]
+; GENERIC-NEXT:    pmulhw %xmm1, %xmm0 # sched: [5:1.00]
+; GENERIC-NEXT:    pmulhw (%rdi), %xmm0 # sched: [11:1.00]
 ; GENERIC-NEXT:    retq # sched: [1:1.00]
 ;
 ; ATOM-LABEL: test_pmulhw:
@@ -6112,8 +6112,8 @@ define <8 x i16> @test_pmulhw(<8 x i16>
 ;
 ; SANDY-LABEL: test_pmulhw:
 ; SANDY:       # %bb.0:
-; SANDY-NEXT:    vpmulhw %xmm1, %xmm0, %xmm0 # sched: [3:1.00]
-; SANDY-NEXT:    vpmulhw (%rdi), %xmm0, %xmm0 # sched: [9:1.00]
+; SANDY-NEXT:    vpmulhw %xmm1, %xmm0, %xmm0 # sched: [5:1.00]
+; SANDY-NEXT:    vpmulhw (%rdi), %xmm0, %xmm0 # sched: [11:1.00]
 ; SANDY-NEXT:    retq # sched: [1:1.00]
 ;
 ; HASWELL-LABEL: test_pmulhw:
@@ -6161,8 +6161,8 @@ declare <8 x i16> @llvm.x86.sse2.pmulh.w
 define <8 x i16> @test_pmullw(<8 x i16> %a0, <8 x i16> %a1, <8 x i16> *%a2) {
 ; GENERIC-LABEL: test_pmullw:
 ; GENERIC:       # %bb.0:
-; GENERIC-NEXT:    pmullw %xmm1, %xmm0 # sched: [3:1.00]
-; GENERIC-NEXT:    pmullw (%rdi), %xmm0 # sched: [9:1.00]
+; GENERIC-NEXT:    pmullw %xmm1, %xmm0 # sched: [5:1.00]
+; GENERIC-NEXT:    pmullw (%rdi), %xmm0 # sched: [11:1.00]
 ; GENERIC-NEXT:    retq # sched: [1:1.00]
 ;
 ; ATOM-LABEL: test_pmullw:
@@ -6179,8 +6179,8 @@ define <8 x i16> @test_pmullw(<8 x i16>
 ;
 ; SANDY-LABEL: test_pmullw:
 ; SANDY:       # %bb.0:
-; SANDY-NEXT:    vpmullw %xmm1, %xmm0, %xmm0 # sched: [3:1.00]
-; SANDY-NEXT:    vpmullw (%rdi), %xmm0, %xmm0 # sched: [9:1.00]
+; SANDY-NEXT:    vpmullw %xmm1, %xmm0, %xmm0 # sched: [5:1.00]
+; SANDY-NEXT:    vpmullw (%rdi), %xmm0, %xmm0 # sched: [11:1.00]
 ; SANDY-NEXT:    retq # sched: [1:1.00]
 ;
 ; HASWELL-LABEL: test_pmullw:
@@ -6227,8 +6227,8 @@ define <8 x i16> @test_pmullw(<8 x i16>
 define <2 x i64> @test_pmuludq(<4 x i32> %a0, <4 x i32> %a1, <4 x i32> *%a2) {
 ; GENERIC-LABEL: test_pmuludq:
 ; GENERIC:       # %bb.0:
-; GENERIC-NEXT:    pmuludq %xmm1, %xmm0 # sched: [3:1.00]
-; GENERIC-NEXT:    pmuludq (%rdi), %xmm0 # sched: [9:1.00]
+; GENERIC-NEXT:    pmuludq %xmm1, %xmm0 # sched: [5:1.00]
+; GENERIC-NEXT:    pmuludq (%rdi), %xmm0 # sched: [11:1.00]
 ; GENERIC-NEXT:    retq # sched: [1:1.00]
 ;
 ; ATOM-LABEL: test_pmuludq:
@@ -6245,8 +6245,8 @@ define <2 x i64> @test_pmuludq(<4 x i32>
 ;
 ; SANDY-LABEL: test_pmuludq:
 ; SANDY:       # %bb.0:
-; SANDY-NEXT:    vpmuludq %xmm1, %xmm0, %xmm0 # sched: [3:1.00]
-; SANDY-NEXT:    vpmuludq (%rdi), %xmm0, %xmm0 # sched: [9:1.00]
+; SANDY-NEXT:    vpmuludq %xmm1, %xmm0, %xmm0 # sched: [5:1.00]
+; SANDY-NEXT:    vpmuludq (%rdi), %xmm0, %xmm0 # sched: [11:1.00]
 ; SANDY-NEXT:    retq # sched: [1:1.00]
 ;
 ; HASWELL-LABEL: test_pmuludq:
@@ -6372,8 +6372,8 @@ define <2 x i64> @test_por(<2 x i64> %a0
 define <2 x i64> @test_psadbw(<16 x i8> %a0, <16 x i8> %a1, <16 x i8> *%a2) {
 ; GENERIC-LABEL: test_psadbw:
 ; GENERIC:       # %bb.0:
-; GENERIC-NEXT:    psadbw %xmm1, %xmm0 # sched: [3:1.00]
-; GENERIC-NEXT:    psadbw (%rdi), %xmm0 # sched: [9:1.00]
+; GENERIC-NEXT:    psadbw %xmm1, %xmm0 # sched: [5:1.00]
+; GENERIC-NEXT:    psadbw (%rdi), %xmm0 # sched: [11:1.00]
 ; GENERIC-NEXT:    retq # sched: [1:1.00]
 ;
 ; ATOM-LABEL: test_psadbw:
@@ -6394,8 +6394,8 @@ define <2 x i64> @test_psadbw(<16 x i8>
 ;
 ; SANDY-LABEL: test_psadbw:
 ; SANDY:       # %bb.0:
-; SANDY-NEXT:    vpsadbw %xmm1, %xmm0, %xmm0 # sched: [3:1.00]
-; SANDY-NEXT:    vpsadbw (%rdi), %xmm0, %xmm0 # sched: [9:1.00]
+; SANDY-NEXT:    vpsadbw %xmm1, %xmm0, %xmm0 # sched: [5:1.00]
+; SANDY-NEXT:    vpsadbw (%rdi), %xmm0, %xmm0 # sched: [11:1.00]
 ; SANDY-NEXT:    retq # sched: [1:1.00]
 ;
 ; HASWELL-LABEL: test_psadbw:

Modified: llvm/trunk/test/CodeGen/X86/sse41-schedule.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/sse41-schedule.ll?rev=328295&r1=328294&r2=328295&view=diff
==============================================================================
--- llvm/trunk/test/CodeGen/X86/sse41-schedule.ll (original)
+++ llvm/trunk/test/CodeGen/X86/sse41-schedule.ll Thu Mar 22 23:41:43 2018
@@ -583,8 +583,8 @@ declare <2 x i64> @llvm.x86.sse41.movntd
 define <8 x i16> @test_mpsadbw(<16 x i8> %a0, <16 x i8> %a1, <16 x i8> *%a2) {
 ; GENERIC-LABEL: test_mpsadbw:
 ; GENERIC:       # %bb.0:
-; GENERIC-NEXT:    mpsadbw $7, %xmm1, %xmm0 # sched: [5:1.00]
-; GENERIC-NEXT:    mpsadbw $7, (%rdi), %xmm0 # sched: [11:1.00]
+; GENERIC-NEXT:    mpsadbw $7, %xmm1, %xmm0 # sched: [7:1.00]
+; GENERIC-NEXT:    mpsadbw $7, (%rdi), %xmm0 # sched: [13:1.00]
 ; GENERIC-NEXT:    retq # sched: [1:1.00]
 ;
 ; SLM-LABEL: test_mpsadbw:
@@ -595,8 +595,8 @@ define <8 x i16> @test_mpsadbw(<16 x i8>
 ;
 ; SANDY-LABEL: test_mpsadbw:
 ; SANDY:       # %bb.0:
-; SANDY-NEXT:    vmpsadbw $7, %xmm1, %xmm0, %xmm0 # sched: [5:1.00]
-; SANDY-NEXT:    vmpsadbw $7, (%rdi), %xmm0, %xmm0 # sched: [11:1.00]
+; SANDY-NEXT:    vmpsadbw $7, %xmm1, %xmm0, %xmm0 # sched: [7:1.00]
+; SANDY-NEXT:    vmpsadbw $7, (%rdi), %xmm0, %xmm0 # sched: [13:1.00]
 ; SANDY-NEXT:    retq # sched: [1:1.00]
 ;
 ; HASWELL-LABEL: test_mpsadbw:
@@ -2761,8 +2761,8 @@ define <2 x i64> @test_pmovzxwq(<8 x i16
 define <2 x i64> @test_pmuldq(<4 x i32> %a0, <4 x i32> %a1, <4 x i32> *%a2) {
 ; GENERIC-LABEL: test_pmuldq:
 ; GENERIC:       # %bb.0:
-; GENERIC-NEXT:    pmuldq %xmm1, %xmm0 # sched: [3:1.00]
-; GENERIC-NEXT:    pmuldq (%rdi), %xmm0 # sched: [9:1.00]
+; GENERIC-NEXT:    pmuldq %xmm1, %xmm0 # sched: [5:1.00]
+; GENERIC-NEXT:    pmuldq (%rdi), %xmm0 # sched: [11:1.00]
 ; GENERIC-NEXT:    retq # sched: [1:1.00]
 ;
 ; SLM-LABEL: test_pmuldq:
@@ -2773,8 +2773,8 @@ define <2 x i64> @test_pmuldq(<4 x i32>
 ;
 ; SANDY-LABEL: test_pmuldq:
 ; SANDY:       # %bb.0:
-; SANDY-NEXT:    vpmuldq %xmm1, %xmm0, %xmm0 # sched: [3:1.00]
-; SANDY-NEXT:    vpmuldq (%rdi), %xmm0, %xmm0 # sched: [9:1.00]
+; SANDY-NEXT:    vpmuldq %xmm1, %xmm0, %xmm0 # sched: [5:1.00]
+; SANDY-NEXT:    vpmuldq (%rdi), %xmm0, %xmm0 # sched: [11:1.00]
 ; SANDY-NEXT:    retq # sched: [1:1.00]
 ;
 ; HASWELL-LABEL: test_pmuldq:
@@ -2823,8 +2823,8 @@ declare <2 x i64> @llvm.x86.sse41.pmuldq
 define <4 x i32> @test_pmulld(<4 x i32> %a0, <4 x i32> %a1, <4 x i32> *%a2) {
 ; GENERIC-LABEL: test_pmulld:
 ; GENERIC:       # %bb.0:
-; GENERIC-NEXT:    pmulld %xmm1, %xmm0 # sched: [3:1.00]
-; GENERIC-NEXT:    pmulld (%rdi), %xmm0 # sched: [9:1.00]
+; GENERIC-NEXT:    pmulld %xmm1, %xmm0 # sched: [5:1.00]
+; GENERIC-NEXT:    pmulld (%rdi), %xmm0 # sched: [11:1.00]
 ; GENERIC-NEXT:    retq # sched: [1:1.00]
 ;
 ; SLM-LABEL: test_pmulld:
@@ -2835,8 +2835,8 @@ define <4 x i32> @test_pmulld(<4 x i32>
 ;
 ; SANDY-LABEL: test_pmulld:
 ; SANDY:       # %bb.0:
-; SANDY-NEXT:    vpmulld %xmm1, %xmm0, %xmm0 # sched: [3:1.00]
-; SANDY-NEXT:    vpmulld (%rdi), %xmm0, %xmm0 # sched: [9:1.00]
+; SANDY-NEXT:    vpmulld %xmm1, %xmm0, %xmm0 # sched: [5:1.00]
+; SANDY-NEXT:    vpmulld (%rdi), %xmm0, %xmm0 # sched: [11:1.00]
 ; SANDY-NEXT:    retq # sched: [1:1.00]
 ;
 ; HASWELL-LABEL: test_pmulld:

Modified: llvm/trunk/test/CodeGen/X86/ssse3-schedule.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/ssse3-schedule.ll?rev=328295&r1=328294&r2=328295&view=diff
==============================================================================
--- llvm/trunk/test/CodeGen/X86/ssse3-schedule.ll (original)
+++ llvm/trunk/test/CodeGen/X86/ssse3-schedule.ll Thu Mar 22 23:41:43 2018
@@ -724,8 +724,8 @@ declare <8 x i16> @llvm.x86.ssse3.phsub.
 define <8 x i16> @test_pmaddubsw(<16 x i8> %a0, <16 x i8> %a1, <16 x i8> *%a2) {
 ; GENERIC-LABEL: test_pmaddubsw:
 ; GENERIC:       # %bb.0:
-; GENERIC-NEXT:    pmaddubsw %xmm1, %xmm0 # sched: [3:1.00]
-; GENERIC-NEXT:    pmaddubsw (%rdi), %xmm0 # sched: [9:1.00]
+; GENERIC-NEXT:    pmaddubsw %xmm1, %xmm0 # sched: [5:1.00]
+; GENERIC-NEXT:    pmaddubsw (%rdi), %xmm0 # sched: [11:1.00]
 ; GENERIC-NEXT:    retq # sched: [1:1.00]
 ;
 ; ATOM-LABEL: test_pmaddubsw:
@@ -742,8 +742,8 @@ define <8 x i16> @test_pmaddubsw(<16 x i
 ;
 ; SANDY-LABEL: test_pmaddubsw:
 ; SANDY:       # %bb.0:
-; SANDY-NEXT:    vpmaddubsw %xmm1, %xmm0, %xmm0 # sched: [3:1.00]
-; SANDY-NEXT:    vpmaddubsw (%rdi), %xmm0, %xmm0 # sched: [9:1.00]
+; SANDY-NEXT:    vpmaddubsw %xmm1, %xmm0, %xmm0 # sched: [5:1.00]
+; SANDY-NEXT:    vpmaddubsw (%rdi), %xmm0, %xmm0 # sched: [11:1.00]
 ; SANDY-NEXT:    retq # sched: [1:1.00]
 ;
 ; HASWELL-LABEL: test_pmaddubsw:
@@ -792,8 +792,8 @@ declare <8 x i16> @llvm.x86.ssse3.pmadd.
 define <8 x i16> @test_pmulhrsw(<8 x i16> %a0, <8 x i16> %a1, <8 x i16> *%a2) {
 ; GENERIC-LABEL: test_pmulhrsw:
 ; GENERIC:       # %bb.0:
-; GENERIC-NEXT:    pmulhrsw %xmm1, %xmm0 # sched: [3:1.00]
-; GENERIC-NEXT:    pmulhrsw (%rdi), %xmm0 # sched: [9:1.00]
+; GENERIC-NEXT:    pmulhrsw %xmm1, %xmm0 # sched: [5:1.00]
+; GENERIC-NEXT:    pmulhrsw (%rdi), %xmm0 # sched: [11:1.00]
 ; GENERIC-NEXT:    retq # sched: [1:1.00]
 ;
 ; ATOM-LABEL: test_pmulhrsw:
@@ -810,8 +810,8 @@ define <8 x i16> @test_pmulhrsw(<8 x i16
 ;
 ; SANDY-LABEL: test_pmulhrsw:
 ; SANDY:       # %bb.0:
-; SANDY-NEXT:    vpmulhrsw %xmm1, %xmm0, %xmm0 # sched: [3:1.00]
-; SANDY-NEXT:    vpmulhrsw (%rdi), %xmm0, %xmm0 # sched: [9:1.00]
+; SANDY-NEXT:    vpmulhrsw %xmm1, %xmm0, %xmm0 # sched: [5:1.00]
+; SANDY-NEXT:    vpmulhrsw (%rdi), %xmm0, %xmm0 # sched: [11:1.00]
 ; SANDY-NEXT:    retq # sched: [1:1.00]
 ;
 ; HASWELL-LABEL: test_pmulhrsw:




More information about the llvm-commits mailing list