[llvm] r309666 - Support itineraries in TargetSubtargetInfo::getSchedInfoStr - Now if the given instr does not have sched model then we try to calculate the latecy/throughput with help of itineraries.

Andrew V. Tischenko via llvm-commits llvm-commits at lists.llvm.org
Tue Aug 1 02:15:43 PDT 2017


Author: avt77
Date: Tue Aug  1 02:15:43 2017
New Revision: 309666

URL: http://llvm.org/viewvc/llvm-project?rev=309666&view=rev
Log:
Support itineraries in TargetSubtargetInfo::getSchedInfoStr - Now if the given instr does not have sched model then we try to calculate the latecy/throughput with help of itineraries.
Differential Revision https://reviews.llvm.org/D35997

Modified:
    llvm/trunk/lib/CodeGen/TargetSubtargetInfo.cpp
    llvm/trunk/test/CodeGen/X86/lea32-schedule.ll
    llvm/trunk/test/CodeGen/X86/lea64-schedule.ll
    llvm/trunk/test/CodeGen/X86/sse-schedule.ll
    llvm/trunk/test/CodeGen/X86/sse2-schedule.ll
    llvm/trunk/test/CodeGen/X86/sse3-schedule.ll
    llvm/trunk/test/CodeGen/X86/ssse3-schedule.ll

Modified: llvm/trunk/lib/CodeGen/TargetSubtargetInfo.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/TargetSubtargetInfo.cpp?rev=309666&r1=309665&r2=309666&view=diff
==============================================================================
--- llvm/trunk/lib/CodeGen/TargetSubtargetInfo.cpp (original)
+++ llvm/trunk/lib/CodeGen/TargetSubtargetInfo.cpp Tue Aug  1 02:15:43 2017
@@ -11,13 +11,14 @@
 //
 //===----------------------------------------------------------------------===//
 
+#include "llvm/Target/TargetSubtargetInfo.h"
 #include "llvm/ADT/Optional.h"
 #include "llvm/CodeGen/MachineInstr.h"
 #include "llvm/CodeGen/TargetSchedule.h"
 #include "llvm/MC/MCInst.h"
-#include "llvm/Target/TargetSubtargetInfo.h"
 #include "llvm/Support/Format.h"
 #include "llvm/Support/raw_ostream.h"
+#include "llvm/Target/TargetInstrInfo.h"
 #include <string>
 
 using namespace llvm;
@@ -93,9 +94,15 @@ std::string TargetSubtargetInfo::getSche
   // that could be changed during the compilation
   TargetSchedModel TSchedModel;
   TSchedModel.init(getSchedModel(), this, getInstrInfo());
-  if (!TSchedModel.hasInstrSchedModel())
+  unsigned Latency;
+  if (TSchedModel.hasInstrSchedModel())
+    Latency = TSchedModel.computeInstrLatency(MCI.getOpcode());
+  else if (TSchedModel.hasInstrItineraries()) {
+    auto *ItinData = TSchedModel.getInstrItineraries();
+    Latency = ItinData->getStageLatency(
+        getInstrInfo()->get(MCI.getOpcode()).getSchedClass());
+  } else
     return std::string();
-  unsigned Latency = TSchedModel.computeInstrLatency(MCI.getOpcode());
   Optional<double> RThroughput =
       TSchedModel.computeInstrRThroughput(MCI.getOpcode());
   return createSchedInfoStr(Latency, RThroughput);

Modified: llvm/trunk/test/CodeGen/X86/lea32-schedule.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/lea32-schedule.ll?rev=309666&r1=309665&r2=309666&view=diff
==============================================================================
--- llvm/trunk/test/CodeGen/X86/lea32-schedule.ll (original)
+++ llvm/trunk/test/CodeGen/X86/lea32-schedule.ll Tue Aug  1 02:15:43 2017
@@ -20,14 +20,14 @@ define i32 @test_lea_offset(i32) {
 ; ATOM-LABEL: test_lea_offset:
 ; ATOM:       # BB#0:
 ; ATOM-NEXT:    # kill: %EDI<def> %EDI<kill> %RDI<def>
-; ATOM-NEXT:    leal -24(%rdi), %eax
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    retq
+; ATOM-NEXT:    leal -24(%rdi), %eax # sched: [1:1.00]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    retq # sched: [79:39.50]
 ;
 ; SLM-LABEL: test_lea_offset:
 ; SLM:       # BB#0:
@@ -72,14 +72,14 @@ define i32 @test_lea_offset_big(i32) {
 ; ATOM-LABEL: test_lea_offset_big:
 ; ATOM:       # BB#0:
 ; ATOM-NEXT:    # kill: %EDI<def> %EDI<kill> %RDI<def>
-; ATOM-NEXT:    leal 1024(%rdi), %eax
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    retq
+; ATOM-NEXT:    leal 1024(%rdi), %eax # sched: [1:1.00]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    retq # sched: [79:39.50]
 ;
 ; SLM-LABEL: test_lea_offset_big:
 ; SLM:       # BB#0:
@@ -127,14 +127,14 @@ define i32 @test_lea_add(i32, i32) {
 ; ATOM:       # BB#0:
 ; ATOM-NEXT:    # kill: %ESI<def> %ESI<kill> %RSI<def>
 ; ATOM-NEXT:    # kill: %EDI<def> %EDI<kill> %RDI<def>
-; ATOM-NEXT:    leal (%rdi,%rsi), %eax
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    retq
+; ATOM-NEXT:    leal (%rdi,%rsi), %eax # sched: [1:1.00]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    retq # sched: [79:39.50]
 ;
 ; SLM-LABEL: test_lea_add:
 ; SLM:       # BB#0:
@@ -186,14 +186,14 @@ define i32 @test_lea_add_offset(i32, i32
 ; ATOM:       # BB#0:
 ; ATOM-NEXT:    # kill: %ESI<def> %ESI<kill> %RSI<def>
 ; ATOM-NEXT:    # kill: %EDI<def> %EDI<kill> %RDI<def>
-; ATOM-NEXT:    leal 16(%rdi,%rsi), %eax
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    retq
+; ATOM-NEXT:    leal 16(%rdi,%rsi), %eax # sched: [1:1.00]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    retq # sched: [79:39.50]
 ;
 ; SLM-LABEL: test_lea_add_offset:
 ; SLM:       # BB#0:
@@ -248,14 +248,14 @@ define i32 @test_lea_add_offset_big(i32,
 ; ATOM:       # BB#0:
 ; ATOM-NEXT:    # kill: %ESI<def> %ESI<kill> %RSI<def>
 ; ATOM-NEXT:    # kill: %EDI<def> %EDI<kill> %RDI<def>
-; ATOM-NEXT:    leal -4096(%rdi,%rsi), %eax
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    retq
+; ATOM-NEXT:    leal -4096(%rdi,%rsi), %eax # sched: [1:1.00]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    retq # sched: [79:39.50]
 ;
 ; SLM-LABEL: test_lea_add_offset_big:
 ; SLM:       # BB#0:
@@ -310,14 +310,14 @@ define i32 @test_lea_mul(i32) {
 ; ATOM-LABEL: test_lea_mul:
 ; ATOM:       # BB#0:
 ; ATOM-NEXT:    # kill: %EDI<def> %EDI<kill> %RDI<def>
-; ATOM-NEXT:    leal (%rdi,%rdi,2), %eax
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    retq
+; ATOM-NEXT:    leal (%rdi,%rdi,2), %eax # sched: [1:1.00]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    retq # sched: [79:39.50]
 ;
 ; SLM-LABEL: test_lea_mul:
 ; SLM:       # BB#0:
@@ -362,14 +362,14 @@ define i32 @test_lea_mul_offset(i32) {
 ; ATOM-LABEL: test_lea_mul_offset:
 ; ATOM:       # BB#0:
 ; ATOM-NEXT:    # kill: %EDI<def> %EDI<kill> %RDI<def>
-; ATOM-NEXT:    leal -32(%rdi,%rdi,2), %eax
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    retq
+; ATOM-NEXT:    leal -32(%rdi,%rdi,2), %eax # sched: [1:1.00]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    retq # sched: [79:39.50]
 ;
 ; SLM-LABEL: test_lea_mul_offset:
 ; SLM:       # BB#0:
@@ -417,14 +417,14 @@ define i32 @test_lea_mul_offset_big(i32)
 ; ATOM-LABEL: test_lea_mul_offset_big:
 ; ATOM:       # BB#0:
 ; ATOM-NEXT:    # kill: %EDI<def> %EDI<kill> %RDI<def>
-; ATOM-NEXT:    leal 10000(%rdi,%rdi,8), %eax
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    retq
+; ATOM-NEXT:    leal 10000(%rdi,%rdi,8), %eax # sched: [1:1.00]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    retq # sched: [79:39.50]
 ;
 ; SLM-LABEL: test_lea_mul_offset_big:
 ; SLM:       # BB#0:
@@ -476,14 +476,14 @@ define i32 @test_lea_add_scale(i32, i32)
 ; ATOM:       # BB#0:
 ; ATOM-NEXT:    # kill: %ESI<def> %ESI<kill> %RSI<def>
 ; ATOM-NEXT:    # kill: %EDI<def> %EDI<kill> %RDI<def>
-; ATOM-NEXT:    leal (%rdi,%rsi,2), %eax
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    retq
+; ATOM-NEXT:    leal (%rdi,%rsi,2), %eax # sched: [1:1.00]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    retq # sched: [79:39.50]
 ;
 ; SLM-LABEL: test_lea_add_scale:
 ; SLM:       # BB#0:
@@ -536,14 +536,14 @@ define i32 @test_lea_add_scale_offset(i3
 ; ATOM:       # BB#0:
 ; ATOM-NEXT:    # kill: %ESI<def> %ESI<kill> %RSI<def>
 ; ATOM-NEXT:    # kill: %EDI<def> %EDI<kill> %RDI<def>
-; ATOM-NEXT:    leal 96(%rdi,%rsi,4), %eax
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    retq
+; ATOM-NEXT:    leal 96(%rdi,%rsi,4), %eax # sched: [1:1.00]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    retq # sched: [79:39.50]
 ;
 ; SLM-LABEL: test_lea_add_scale_offset:
 ; SLM:       # BB#0:
@@ -599,14 +599,14 @@ define i32 @test_lea_add_scale_offset_bi
 ; ATOM:       # BB#0:
 ; ATOM-NEXT:    # kill: %ESI<def> %ESI<kill> %RSI<def>
 ; ATOM-NEXT:    # kill: %EDI<def> %EDI<kill> %RDI<def>
-; ATOM-NEXT:    leal -1200(%rdi,%rsi,8), %eax
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    retq
+; ATOM-NEXT:    leal -1200(%rdi,%rsi,8), %eax # sched: [1:1.00]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    retq # sched: [79:39.50]
 ;
 ; SLM-LABEL: test_lea_add_scale_offset_big:
 ; SLM:       # BB#0:

Modified: llvm/trunk/test/CodeGen/X86/lea64-schedule.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/lea64-schedule.ll?rev=309666&r1=309665&r2=309666&view=diff
==============================================================================
--- llvm/trunk/test/CodeGen/X86/lea64-schedule.ll (original)
+++ llvm/trunk/test/CodeGen/X86/lea64-schedule.ll Tue Aug  1 02:15:43 2017
@@ -18,14 +18,14 @@ define i64 @test_lea_offset(i64) {
 ;
 ; ATOM-LABEL: test_lea_offset:
 ; ATOM:       # BB#0:
-; ATOM-NEXT:    leaq -24(%rdi), %rax
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    retq
+; ATOM-NEXT:    leaq -24(%rdi), %rax # sched: [1:1.00]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    retq # sched: [79:39.50]
 ;
 ; SLM-LABEL: test_lea_offset:
 ; SLM:       # BB#0:
@@ -63,14 +63,14 @@ define i64 @test_lea_offset_big(i64) {
 ;
 ; ATOM-LABEL: test_lea_offset_big:
 ; ATOM:       # BB#0:
-; ATOM-NEXT:    leaq 1024(%rdi), %rax
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    retq
+; ATOM-NEXT:    leaq 1024(%rdi), %rax # sched: [1:1.00]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    retq # sched: [79:39.50]
 ;
 ; SLM-LABEL: test_lea_offset_big:
 ; SLM:       # BB#0:
@@ -109,14 +109,14 @@ define i64 @test_lea_add(i64, i64) {
 ;
 ; ATOM-LABEL: test_lea_add:
 ; ATOM:       # BB#0:
-; ATOM-NEXT:    leaq (%rdi,%rsi), %rax
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    retq
+; ATOM-NEXT:    leaq (%rdi,%rsi), %rax # sched: [1:1.00]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    retq # sched: [79:39.50]
 ;
 ; SLM-LABEL: test_lea_add:
 ; SLM:       # BB#0:
@@ -154,14 +154,14 @@ define i64 @test_lea_add_offset(i64, i64
 ;
 ; ATOM-LABEL: test_lea_add_offset:
 ; ATOM:       # BB#0:
-; ATOM-NEXT:    leaq 16(%rdi,%rsi), %rax
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    retq
+; ATOM-NEXT:    leaq 16(%rdi,%rsi), %rax # sched: [1:1.00]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    retq # sched: [79:39.50]
 ;
 ; SLM-LABEL: test_lea_add_offset:
 ; SLM:       # BB#0:
@@ -202,14 +202,14 @@ define i64 @test_lea_add_offset_big(i64,
 ;
 ; ATOM-LABEL: test_lea_add_offset_big:
 ; ATOM:       # BB#0:
-; ATOM-NEXT:    leaq -4096(%rdi,%rsi), %rax
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    retq
+; ATOM-NEXT:    leaq -4096(%rdi,%rsi), %rax # sched: [1:1.00]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    retq # sched: [79:39.50]
 ;
 ; SLM-LABEL: test_lea_add_offset_big:
 ; SLM:       # BB#0:
@@ -252,14 +252,14 @@ define i64 @test_lea_mul(i64) {
 ;
 ; ATOM-LABEL: test_lea_mul:
 ; ATOM:       # BB#0:
-; ATOM-NEXT:    leaq (%rdi,%rdi,2), %rax
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    retq
+; ATOM-NEXT:    leaq (%rdi,%rdi,2), %rax # sched: [1:1.00]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    retq # sched: [79:39.50]
 ;
 ; SLM-LABEL: test_lea_mul:
 ; SLM:       # BB#0:
@@ -297,14 +297,14 @@ define i64 @test_lea_mul_offset(i64) {
 ;
 ; ATOM-LABEL: test_lea_mul_offset:
 ; ATOM:       # BB#0:
-; ATOM-NEXT:    leaq -32(%rdi,%rdi,2), %rax
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    retq
+; ATOM-NEXT:    leaq -32(%rdi,%rdi,2), %rax # sched: [1:1.00]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    retq # sched: [79:39.50]
 ;
 ; SLM-LABEL: test_lea_mul_offset:
 ; SLM:       # BB#0:
@@ -345,14 +345,14 @@ define i64 @test_lea_mul_offset_big(i64)
 ;
 ; ATOM-LABEL: test_lea_mul_offset_big:
 ; ATOM:       # BB#0:
-; ATOM-NEXT:    leaq 10000(%rdi,%rdi,8), %rax
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    retq
+; ATOM-NEXT:    leaq 10000(%rdi,%rdi,8), %rax # sched: [1:1.00]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    retq # sched: [79:39.50]
 ;
 ; SLM-LABEL: test_lea_mul_offset_big:
 ; SLM:       # BB#0:
@@ -395,14 +395,14 @@ define i64 @test_lea_add_scale(i64, i64)
 ;
 ; ATOM-LABEL: test_lea_add_scale:
 ; ATOM:       # BB#0:
-; ATOM-NEXT:    leaq (%rdi,%rsi,2), %rax
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    retq
+; ATOM-NEXT:    leaq (%rdi,%rsi,2), %rax # sched: [1:1.00]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    retq # sched: [79:39.50]
 ;
 ; SLM-LABEL: test_lea_add_scale:
 ; SLM:       # BB#0:
@@ -441,14 +441,14 @@ define i64 @test_lea_add_scale_offset(i6
 ;
 ; ATOM-LABEL: test_lea_add_scale_offset:
 ; ATOM:       # BB#0:
-; ATOM-NEXT:    leaq 96(%rdi,%rsi,4), %rax
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    retq
+; ATOM-NEXT:    leaq 96(%rdi,%rsi,4), %rax # sched: [1:1.00]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    retq # sched: [79:39.50]
 ;
 ; SLM-LABEL: test_lea_add_scale_offset:
 ; SLM:       # BB#0:
@@ -490,14 +490,14 @@ define i64 @test_lea_add_scale_offset_bi
 ;
 ; ATOM-LABEL: test_lea_add_scale_offset_big:
 ; ATOM:       # BB#0:
-; ATOM-NEXT:    leaq -1200(%rdi,%rsi,8), %rax
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    retq
+; ATOM-NEXT:    leaq -1200(%rdi,%rsi,8), %rax # sched: [1:1.00]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    retq # sched: [79:39.50]
 ;
 ; SLM-LABEL: test_lea_add_scale_offset_big:
 ; SLM:       # BB#0:

Modified: llvm/trunk/test/CodeGen/X86/sse-schedule.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/sse-schedule.ll?rev=309666&r1=309665&r2=309666&view=diff
==============================================================================
--- llvm/trunk/test/CodeGen/X86/sse-schedule.ll (original)
+++ llvm/trunk/test/CodeGen/X86/sse-schedule.ll Tue Aug  1 02:15:43 2017
@@ -18,9 +18,9 @@ define <4 x float> @test_addps(<4 x floa
 ;
 ; ATOM-LABEL: test_addps:
 ; ATOM:       # BB#0:
-; ATOM-NEXT:    addps %xmm1, %xmm0
-; ATOM-NEXT:    addps (%rdi), %xmm0
-; ATOM-NEXT:    retq
+; ATOM-NEXT:    addps %xmm1, %xmm0 # sched: [5:5.00]
+; ATOM-NEXT:    addps (%rdi), %xmm0 # sched: [5:5.00]
+; ATOM-NEXT:    retq # sched: [79:39.50]
 ;
 ; SLM-LABEL: test_addps:
 ; SLM:       # BB#0:
@@ -66,9 +66,9 @@ define float @test_addss(float %a0, floa
 ;
 ; ATOM-LABEL: test_addss:
 ; ATOM:       # BB#0:
-; ATOM-NEXT:    addss %xmm1, %xmm0
-; ATOM-NEXT:    addss (%rdi), %xmm0
-; ATOM-NEXT:    retq
+; ATOM-NEXT:    addss %xmm1, %xmm0 # sched: [5:5.00]
+; ATOM-NEXT:    addss (%rdi), %xmm0 # sched: [5:5.00]
+; ATOM-NEXT:    retq # sched: [79:39.50]
 ;
 ; SLM-LABEL: test_addss:
 ; SLM:       # BB#0:
@@ -116,15 +116,15 @@ define <4 x float> @test_andps(<4 x floa
 ; ATOM:       # BB#0:
 ; ATOM-NEXT:    andps %xmm1, %xmm0
 ; ATOM-NEXT:    andps (%rdi), %xmm0
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    retq
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    retq # sched: [79:39.50]
 ;
 ; SLM-LABEL: test_andps:
 ; SLM:       # BB#0:
@@ -176,15 +176,15 @@ define <4 x float> @test_andnotps(<4 x f
 ; ATOM:       # BB#0:
 ; ATOM-NEXT:    andnps %xmm1, %xmm0
 ; ATOM-NEXT:    andnps (%rdi), %xmm0
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    retq
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    retq # sched: [79:39.50]
 ;
 ; SLM-LABEL: test_andnotps:
 ; SLM:       # BB#0:
@@ -237,10 +237,10 @@ define <4 x float> @test_cmpps(<4 x floa
 ;
 ; ATOM-LABEL: test_cmpps:
 ; ATOM:       # BB#0:
-; ATOM-NEXT:    cmpeqps %xmm0, %xmm1
-; ATOM-NEXT:    cmpeqps (%rdi), %xmm0
+; ATOM-NEXT:    cmpeqps %xmm0, %xmm1 # sched: [5:5.00]
+; ATOM-NEXT:    cmpeqps (%rdi), %xmm0 # sched: [5:5.00]
 ; ATOM-NEXT:    orps %xmm1, %xmm0
-; ATOM-NEXT:    retq
+; ATOM-NEXT:    retq # sched: [79:39.50]
 ;
 ; SLM-LABEL: test_cmpps:
 ; SLM:       # BB#0:
@@ -294,9 +294,9 @@ define float @test_cmpss(float %a0, floa
 ;
 ; ATOM-LABEL: test_cmpss:
 ; ATOM:       # BB#0:
-; ATOM-NEXT:    cmpeqss %xmm1, %xmm0
-; ATOM-NEXT:    cmpeqss (%rdi), %xmm0
-; ATOM-NEXT:    retq
+; ATOM-NEXT:    cmpeqss %xmm1, %xmm0 # sched: [5:5.00]
+; ATOM-NEXT:    cmpeqss (%rdi), %xmm0 # sched: [5:5.00]
+; ATOM-NEXT:    retq # sched: [79:39.50]
 ;
 ; SLM-LABEL: test_cmpss:
 ; SLM:       # BB#0:
@@ -355,17 +355,17 @@ define i32 @test_comiss(<4 x float> %a0,
 ;
 ; ATOM-LABEL: test_comiss:
 ; ATOM:       # BB#0:
-; ATOM-NEXT:    comiss %xmm1, %xmm0
-; ATOM-NEXT:    setnp %al
-; ATOM-NEXT:    sete %cl
-; ATOM-NEXT:    andb %al, %cl
-; ATOM-NEXT:    comiss (%rdi), %xmm0
-; ATOM-NEXT:    setnp %al
-; ATOM-NEXT:    sete %dl
-; ATOM-NEXT:    andb %al, %dl
-; ATOM-NEXT:    orb %cl, %dl
-; ATOM-NEXT:    movzbl %dl, %eax
-; ATOM-NEXT:    retq
+; ATOM-NEXT:    comiss %xmm1, %xmm0 # sched: [9:4.50]
+; ATOM-NEXT:    setnp %al # sched: [1:0.50]
+; ATOM-NEXT:    sete %cl # sched: [1:0.50]
+; ATOM-NEXT:    andb %al, %cl # sched: [1:0.50]
+; ATOM-NEXT:    comiss (%rdi), %xmm0 # sched: [10:5.00]
+; ATOM-NEXT:    setnp %al # sched: [1:0.50]
+; ATOM-NEXT:    sete %dl # sched: [1:0.50]
+; ATOM-NEXT:    andb %al, %dl # sched: [1:0.50]
+; ATOM-NEXT:    orb %cl, %dl # sched: [1:0.50]
+; ATOM-NEXT:    movzbl %dl, %eax # sched: [1:1.00]
+; ATOM-NEXT:    retq # sched: [79:39.50]
 ;
 ; SLM-LABEL: test_comiss:
 ; SLM:       # BB#0:
@@ -454,10 +454,10 @@ define float @test_cvtsi2ss(i32 %a0, i32
 ;
 ; ATOM-LABEL: test_cvtsi2ss:
 ; ATOM:       # BB#0:
-; ATOM-NEXT:    cvtsi2ssl (%rsi), %xmm0
-; ATOM-NEXT:    cvtsi2ssl %edi, %xmm1
-; ATOM-NEXT:    addss %xmm1, %xmm0
-; ATOM-NEXT:    retq
+; ATOM-NEXT:    cvtsi2ssl (%rsi), %xmm0 # sched: [7:3.50]
+; ATOM-NEXT:    cvtsi2ssl %edi, %xmm1 # sched: [6:3.00]
+; ATOM-NEXT:    addss %xmm1, %xmm0 # sched: [5:5.00]
+; ATOM-NEXT:    retq # sched: [79:39.50]
 ;
 ; SLM-LABEL: test_cvtsi2ss:
 ; SLM:       # BB#0:
@@ -510,10 +510,10 @@ define float @test_cvtsi2ssq(i64 %a0, i6
 ;
 ; ATOM-LABEL: test_cvtsi2ssq:
 ; ATOM:       # BB#0:
-; ATOM-NEXT:    cvtsi2ssq (%rsi), %xmm0
-; ATOM-NEXT:    cvtsi2ssq %rdi, %xmm1
-; ATOM-NEXT:    addss %xmm1, %xmm0
-; ATOM-NEXT:    retq
+; ATOM-NEXT:    cvtsi2ssq (%rsi), %xmm0 # sched: [7:3.50]
+; ATOM-NEXT:    cvtsi2ssq %rdi, %xmm1 # sched: [6:3.00]
+; ATOM-NEXT:    addss %xmm1, %xmm0 # sched: [5:5.00]
+; ATOM-NEXT:    retq # sched: [79:39.50]
 ;
 ; SLM-LABEL: test_cvtsi2ssq:
 ; SLM:       # BB#0:
@@ -566,10 +566,10 @@ define i32 @test_cvtss2si(float %a0, flo
 ;
 ; ATOM-LABEL: test_cvtss2si:
 ; ATOM:       # BB#0:
-; ATOM-NEXT:    cvtss2si (%rdi), %eax
-; ATOM-NEXT:    cvtss2si %xmm0, %ecx
-; ATOM-NEXT:    addl %ecx, %eax
-; ATOM-NEXT:    retq
+; ATOM-NEXT:    cvtss2si (%rdi), %eax # sched: [9:4.50]
+; ATOM-NEXT:    cvtss2si %xmm0, %ecx # sched: [8:4.00]
+; ATOM-NEXT:    addl %ecx, %eax # sched: [1:0.50]
+; ATOM-NEXT:    retq # sched: [79:39.50]
 ;
 ; SLM-LABEL: test_cvtss2si:
 ; SLM:       # BB#0:
@@ -625,10 +625,10 @@ define i64 @test_cvtss2siq(float %a0, fl
 ;
 ; ATOM-LABEL: test_cvtss2siq:
 ; ATOM:       # BB#0:
-; ATOM-NEXT:    cvtss2si (%rdi), %rax
-; ATOM-NEXT:    cvtss2si %xmm0, %rcx
-; ATOM-NEXT:    addq %rcx, %rax
-; ATOM-NEXT:    retq
+; ATOM-NEXT:    cvtss2si (%rdi), %rax # sched: [10:5.00]
+; ATOM-NEXT:    cvtss2si %xmm0, %rcx # sched: [9:4.50]
+; ATOM-NEXT:    addq %rcx, %rax # sched: [1:0.50]
+; ATOM-NEXT:    retq # sched: [79:39.50]
 ;
 ; SLM-LABEL: test_cvtss2siq:
 ; SLM:       # BB#0:
@@ -684,10 +684,10 @@ define i32 @test_cvttss2si(float %a0, fl
 ;
 ; ATOM-LABEL: test_cvttss2si:
 ; ATOM:       # BB#0:
-; ATOM-NEXT:    cvttss2si (%rdi), %eax
-; ATOM-NEXT:    cvttss2si %xmm0, %ecx
-; ATOM-NEXT:    addl %ecx, %eax
-; ATOM-NEXT:    retq
+; ATOM-NEXT:    cvttss2si (%rdi), %eax # sched: [9:4.50]
+; ATOM-NEXT:    cvttss2si %xmm0, %ecx # sched: [8:4.00]
+; ATOM-NEXT:    addl %ecx, %eax # sched: [1:0.50]
+; ATOM-NEXT:    retq # sched: [79:39.50]
 ;
 ; SLM-LABEL: test_cvttss2si:
 ; SLM:       # BB#0:
@@ -740,10 +740,10 @@ define i64 @test_cvttss2siq(float %a0, f
 ;
 ; ATOM-LABEL: test_cvttss2siq:
 ; ATOM:       # BB#0:
-; ATOM-NEXT:    cvttss2si (%rdi), %rax
-; ATOM-NEXT:    cvttss2si %xmm0, %rcx
-; ATOM-NEXT:    addq %rcx, %rax
-; ATOM-NEXT:    retq
+; ATOM-NEXT:    cvttss2si (%rdi), %rax # sched: [10:5.00]
+; ATOM-NEXT:    cvttss2si %xmm0, %rcx # sched: [9:4.50]
+; ATOM-NEXT:    addq %rcx, %rax # sched: [1:0.50]
+; ATOM-NEXT:    retq # sched: [79:39.50]
 ;
 ; SLM-LABEL: test_cvttss2siq:
 ; SLM:       # BB#0:
@@ -795,9 +795,9 @@ define <4 x float> @test_divps(<4 x floa
 ;
 ; ATOM-LABEL: test_divps:
 ; ATOM:       # BB#0:
-; ATOM-NEXT:    divps %xmm1, %xmm0
-; ATOM-NEXT:    divps (%rdi), %xmm0
-; ATOM-NEXT:    retq
+; ATOM-NEXT:    divps %xmm1, %xmm0 # sched: [70:35.00]
+; ATOM-NEXT:    divps (%rdi), %xmm0 # sched: [125:62.50]
+; ATOM-NEXT:    retq # sched: [79:39.50]
 ;
 ; SLM-LABEL: test_divps:
 ; SLM:       # BB#0:
@@ -843,9 +843,9 @@ define float @test_divss(float %a0, floa
 ;
 ; ATOM-LABEL: test_divss:
 ; ATOM:       # BB#0:
-; ATOM-NEXT:    divss %xmm1, %xmm0
-; ATOM-NEXT:    divss (%rdi), %xmm0
-; ATOM-NEXT:    retq
+; ATOM-NEXT:    divss %xmm1, %xmm0 # sched: [34:17.00]
+; ATOM-NEXT:    divss (%rdi), %xmm0 # sched: [62:31.00]
+; ATOM-NEXT:    retq # sched: [79:39.50]
 ;
 ; SLM-LABEL: test_divss:
 ; SLM:       # BB#0:
@@ -891,9 +891,9 @@ define void @test_ldmxcsr(i32 %a0) {
 ;
 ; ATOM-LABEL: test_ldmxcsr:
 ; ATOM:       # BB#0:
-; ATOM-NEXT:    movl %edi, -{{[0-9]+}}(%rsp)
-; ATOM-NEXT:    ldmxcsr -{{[0-9]+}}(%rsp)
-; ATOM-NEXT:    retq
+; ATOM-NEXT:    movl %edi, -{{[0-9]+}}(%rsp) # sched: [1:1.00]
+; ATOM-NEXT:    ldmxcsr -{{[0-9]+}}(%rsp) # sched: [5:2.50]
+; ATOM-NEXT:    retq # sched: [79:39.50]
 ;
 ; SLM-LABEL: test_ldmxcsr:
 ; SLM:       # BB#0:
@@ -941,9 +941,9 @@ define <4 x float> @test_maxps(<4 x floa
 ;
 ; ATOM-LABEL: test_maxps:
 ; ATOM:       # BB#0:
-; ATOM-NEXT:    maxps %xmm1, %xmm0
-; ATOM-NEXT:    maxps (%rdi), %xmm0
-; ATOM-NEXT:    retq
+; ATOM-NEXT:    maxps %xmm1, %xmm0 # sched: [5:5.00]
+; ATOM-NEXT:    maxps (%rdi), %xmm0 # sched: [5:5.00]
+; ATOM-NEXT:    retq # sched: [79:39.50]
 ;
 ; SLM-LABEL: test_maxps:
 ; SLM:       # BB#0:
@@ -990,9 +990,9 @@ define <4 x float> @test_maxss(<4 x floa
 ;
 ; ATOM-LABEL: test_maxss:
 ; ATOM:       # BB#0:
-; ATOM-NEXT:    maxss %xmm1, %xmm0
-; ATOM-NEXT:    maxss (%rdi), %xmm0
-; ATOM-NEXT:    retq
+; ATOM-NEXT:    maxss %xmm1, %xmm0 # sched: [5:5.00]
+; ATOM-NEXT:    maxss (%rdi), %xmm0 # sched: [5:5.00]
+; ATOM-NEXT:    retq # sched: [79:39.50]
 ;
 ; SLM-LABEL: test_maxss:
 ; SLM:       # BB#0:
@@ -1039,9 +1039,9 @@ define <4 x float> @test_minps(<4 x floa
 ;
 ; ATOM-LABEL: test_minps:
 ; ATOM:       # BB#0:
-; ATOM-NEXT:    minps %xmm1, %xmm0
-; ATOM-NEXT:    minps (%rdi), %xmm0
-; ATOM-NEXT:    retq
+; ATOM-NEXT:    minps %xmm1, %xmm0 # sched: [5:5.00]
+; ATOM-NEXT:    minps (%rdi), %xmm0 # sched: [5:5.00]
+; ATOM-NEXT:    retq # sched: [79:39.50]
 ;
 ; SLM-LABEL: test_minps:
 ; SLM:       # BB#0:
@@ -1088,9 +1088,9 @@ define <4 x float> @test_minss(<4 x floa
 ;
 ; ATOM-LABEL: test_minss:
 ; ATOM:       # BB#0:
-; ATOM-NEXT:    minss %xmm1, %xmm0
-; ATOM-NEXT:    minss (%rdi), %xmm0
-; ATOM-NEXT:    retq
+; ATOM-NEXT:    minss %xmm1, %xmm0 # sched: [5:5.00]
+; ATOM-NEXT:    minss (%rdi), %xmm0 # sched: [5:5.00]
+; ATOM-NEXT:    retq # sched: [79:39.50]
 ;
 ; SLM-LABEL: test_minss:
 ; SLM:       # BB#0:
@@ -1138,10 +1138,10 @@ define void @test_movaps(<4 x float> *%a
 ;
 ; ATOM-LABEL: test_movaps:
 ; ATOM:       # BB#0:
-; ATOM-NEXT:    movaps (%rdi), %xmm0
-; ATOM-NEXT:    addps %xmm0, %xmm0
-; ATOM-NEXT:    movaps %xmm0, (%rsi)
-; ATOM-NEXT:    retq
+; ATOM-NEXT:    movaps (%rdi), %xmm0 # sched: [1:1.00]
+; ATOM-NEXT:    addps %xmm0, %xmm0 # sched: [5:5.00]
+; ATOM-NEXT:    movaps %xmm0, (%rsi) # sched: [1:1.00]
+; ATOM-NEXT:    retq # sched: [79:39.50]
 ;
 ; SLM-LABEL: test_movaps:
 ; SLM:       # BB#0:
@@ -1193,14 +1193,14 @@ define <4 x float> @test_movhlps(<4 x fl
 ;
 ; ATOM-LABEL: test_movhlps:
 ; ATOM:       # BB#0:
-; ATOM-NEXT:    movhlps {{.*#+}} xmm0 = xmm1[1],xmm0[1]
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    retq
+; ATOM-NEXT:    movhlps {{.*#+}} xmm0 = xmm1[1],xmm0[1] sched: [1:1.00]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    retq # sched: [79:39.50]
 ;
 ; SLM-LABEL: test_movhlps:
 ; SLM:       # BB#0:
@@ -1243,11 +1243,11 @@ define void @test_movhps(<4 x float> %a0
 ;
 ; ATOM-LABEL: test_movhps:
 ; ATOM:       # BB#0:
-; ATOM-NEXT:    movhpd {{.*#+}} xmm1 = xmm1[0],mem[0]
-; ATOM-NEXT:    addps %xmm0, %xmm1
-; ATOM-NEXT:    movhlps {{.*#+}} xmm1 = xmm1[1,1]
-; ATOM-NEXT:    movlps %xmm1, (%rdi)
-; ATOM-NEXT:    retq
+; ATOM-NEXT:    movhpd {{.*#+}} xmm1 = xmm1[0],mem[0] sched: [1:1.00]
+; ATOM-NEXT:    addps %xmm0, %xmm1 # sched: [5:5.00]
+; ATOM-NEXT:    movhlps {{.*#+}} xmm1 = xmm1[1,1] sched: [1:1.00]
+; ATOM-NEXT:    movlps %xmm1, (%rdi) # sched: [1:1.00]
+; ATOM-NEXT:    retq # sched: [79:39.50]
 ;
 ; SLM-LABEL: test_movhps:
 ; SLM:       # BB#0:
@@ -1304,9 +1304,9 @@ define <4 x float> @test_movlhps(<4 x fl
 ;
 ; ATOM-LABEL: test_movlhps:
 ; ATOM:       # BB#0:
-; ATOM-NEXT:    unpcklpd {{.*#+}} xmm0 = xmm0[0],xmm1[0]
-; ATOM-NEXT:    addps %xmm1, %xmm0
-; ATOM-NEXT:    retq
+; ATOM-NEXT:    unpcklpd {{.*#+}} xmm0 = xmm0[0],xmm1[0] sched: [1:1.00]
+; ATOM-NEXT:    addps %xmm1, %xmm0 # sched: [5:5.00]
+; ATOM-NEXT:    retq # sched: [79:39.50]
 ;
 ; SLM-LABEL: test_movlhps:
 ; SLM:       # BB#0:
@@ -1352,10 +1352,10 @@ define void @test_movlps(<4 x float> %a0
 ;
 ; ATOM-LABEL: test_movlps:
 ; ATOM:       # BB#0:
-; ATOM-NEXT:    movlpd {{.*#+}} xmm1 = mem[0],xmm1[1]
-; ATOM-NEXT:    addps %xmm0, %xmm1
-; ATOM-NEXT:    movlps %xmm1, (%rdi)
-; ATOM-NEXT:    retq
+; ATOM-NEXT:    movlpd {{.*#+}} xmm1 = mem[0],xmm1[1] sched: [1:1.00]
+; ATOM-NEXT:    addps %xmm0, %xmm1 # sched: [5:5.00]
+; ATOM-NEXT:    movlps %xmm1, (%rdi) # sched: [1:1.00]
+; ATOM-NEXT:    retq # sched: [79:39.50]
 ;
 ; SLM-LABEL: test_movlps:
 ; SLM:       # BB#0:
@@ -1409,10 +1409,10 @@ define i32 @test_movmskps(<4 x float> %a
 ;
 ; ATOM-LABEL: test_movmskps:
 ; ATOM:       # BB#0:
-; ATOM-NEXT:    movmskps %xmm0, %eax
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    retq
+; ATOM-NEXT:    movmskps %xmm0, %eax # sched: [3:3.00]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    retq # sched: [79:39.50]
 ;
 ; SLM-LABEL: test_movmskps:
 ; SLM:       # BB#0:
@@ -1451,14 +1451,14 @@ define void @test_movntps(<4 x float> %a
 ;
 ; ATOM-LABEL: test_movntps:
 ; ATOM:       # BB#0:
-; ATOM-NEXT:    movntps %xmm0, (%rdi)
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    retq
+; ATOM-NEXT:    movntps %xmm0, (%rdi) # sched: [1:1.00]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    retq # sched: [79:39.50]
 ;
 ; SLM-LABEL: test_movntps:
 ; SLM:       # BB#0:
@@ -1498,10 +1498,10 @@ define void @test_movss_mem(float* %a0,
 ;
 ; ATOM-LABEL: test_movss_mem:
 ; ATOM:       # BB#0:
-; ATOM-NEXT:    movss {{.*#+}} xmm0 = mem[0],zero,zero,zero
-; ATOM-NEXT:    addss %xmm0, %xmm0
-; ATOM-NEXT:    movss %xmm0, (%rsi)
-; ATOM-NEXT:    retq
+; ATOM-NEXT:    movss {{.*#+}} xmm0 = mem[0],zero,zero,zero sched: [1:1.00]
+; ATOM-NEXT:    addss %xmm0, %xmm0 # sched: [5:5.00]
+; ATOM-NEXT:    movss %xmm0, (%rsi) # sched: [1:1.00]
+; ATOM-NEXT:    retq # sched: [79:39.50]
 ;
 ; SLM-LABEL: test_movss_mem:
 ; SLM:       # BB#0:
@@ -1551,14 +1551,14 @@ define <4 x float> @test_movss_reg(<4 x
 ;
 ; ATOM-LABEL: test_movss_reg:
 ; ATOM:       # BB#0:
-; ATOM-NEXT:    movss {{.*#+}} xmm0 = xmm1[0],xmm0[1,2,3]
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    retq
+; ATOM-NEXT:    movss {{.*#+}} xmm0 = xmm1[0],xmm0[1,2,3] sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    retq # sched: [79:39.50]
 ;
 ; SLM-LABEL: test_movss_reg:
 ; SLM:       # BB#0:
@@ -1598,10 +1598,10 @@ define void @test_movups(<4 x float> *%a
 ;
 ; ATOM-LABEL: test_movups:
 ; ATOM:       # BB#0:
-; ATOM-NEXT:    movups (%rdi), %xmm0
-; ATOM-NEXT:    addps %xmm0, %xmm0
-; ATOM-NEXT:    movups %xmm0, (%rsi)
-; ATOM-NEXT:    retq
+; ATOM-NEXT:    movups (%rdi), %xmm0 # sched: [3:1.50]
+; ATOM-NEXT:    addps %xmm0, %xmm0 # sched: [5:5.00]
+; ATOM-NEXT:    movups %xmm0, (%rsi) # sched: [2:1.00]
+; ATOM-NEXT:    retq # sched: [79:39.50]
 ;
 ; SLM-LABEL: test_movups:
 ; SLM:       # BB#0:
@@ -1652,9 +1652,9 @@ define <4 x float> @test_mulps(<4 x floa
 ;
 ; ATOM-LABEL: test_mulps:
 ; ATOM:       # BB#0:
-; ATOM-NEXT:    mulps %xmm1, %xmm0
-; ATOM-NEXT:    mulps (%rdi), %xmm0
-; ATOM-NEXT:    retq
+; ATOM-NEXT:    mulps %xmm1, %xmm0 # sched: [5:5.00]
+; ATOM-NEXT:    mulps (%rdi), %xmm0 # sched: [10:5.00]
+; ATOM-NEXT:    retq # sched: [79:39.50]
 ;
 ; SLM-LABEL: test_mulps:
 ; SLM:       # BB#0:
@@ -1700,9 +1700,9 @@ define float @test_mulss(float %a0, floa
 ;
 ; ATOM-LABEL: test_mulss:
 ; ATOM:       # BB#0:
-; ATOM-NEXT:    mulss %xmm1, %xmm0
-; ATOM-NEXT:    mulss (%rdi), %xmm0
-; ATOM-NEXT:    retq
+; ATOM-NEXT:    mulss %xmm1, %xmm0 # sched: [4:4.00]
+; ATOM-NEXT:    mulss (%rdi), %xmm0 # sched: [5:5.00]
+; ATOM-NEXT:    retq # sched: [79:39.50]
 ;
 ; SLM-LABEL: test_mulss:
 ; SLM:       # BB#0:
@@ -1750,15 +1750,15 @@ define <4 x float> @test_orps(<4 x float
 ; ATOM:       # BB#0:
 ; ATOM-NEXT:    orps %xmm1, %xmm0
 ; ATOM-NEXT:    orps (%rdi), %xmm0
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    retq
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    retq # sched: [79:39.50]
 ;
 ; SLM-LABEL: test_orps:
 ; SLM:       # BB#0:
@@ -1807,14 +1807,14 @@ define void @test_prefetchnta(i8* %a0) {
 ;
 ; ATOM-LABEL: test_prefetchnta:
 ; ATOM:       # BB#0:
-; ATOM-NEXT:    prefetchnta (%rdi)
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    retq
+; ATOM-NEXT:    prefetchnta (%rdi) # sched: [1:1.00]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    retq # sched: [79:39.50]
 ;
 ; SLM-LABEL: test_prefetchnta:
 ; SLM:       # BB#0:
@@ -1855,11 +1855,11 @@ define <4 x float> @test_rcpps(<4 x floa
 ;
 ; ATOM-LABEL: test_rcpps:
 ; ATOM:       # BB#0:
-; ATOM-NEXT:    rcpps (%rdi), %xmm1
-; ATOM-NEXT:    rcpps %xmm0, %xmm0
-; ATOM-NEXT:    addps %xmm0, %xmm1
-; ATOM-NEXT:    movaps %xmm1, %xmm0
-; ATOM-NEXT:    retq
+; ATOM-NEXT:    rcpps (%rdi), %xmm1 # sched: [10:5.00]
+; ATOM-NEXT:    rcpps %xmm0, %xmm0 # sched: [9:4.50]
+; ATOM-NEXT:    addps %xmm0, %xmm1 # sched: [5:5.00]
+; ATOM-NEXT:    movaps %xmm1, %xmm0 # sched: [1:0.50]
+; ATOM-NEXT:    retq # sched: [79:39.50]
 ;
 ; SLM-LABEL: test_rcpps:
 ; SLM:       # BB#0:
@@ -1917,11 +1917,11 @@ define <4 x float> @test_rcpss(float %a0
 ;
 ; ATOM-LABEL: test_rcpss:
 ; ATOM:       # BB#0:
-; ATOM-NEXT:    movss {{.*#+}} xmm1 = mem[0],zero,zero,zero
+; ATOM-NEXT:    movss {{.*#+}} xmm1 = mem[0],zero,zero,zero sched: [1:1.00]
 ; ATOM-NEXT:    rcpss %xmm0, %xmm0
 ; ATOM-NEXT:    rcpss %xmm1, %xmm1
-; ATOM-NEXT:    addps %xmm1, %xmm0
-; ATOM-NEXT:    retq
+; ATOM-NEXT:    addps %xmm1, %xmm0 # sched: [5:5.00]
+; ATOM-NEXT:    retq # sched: [79:39.50]
 ;
 ; SLM-LABEL: test_rcpss:
 ; SLM:       # BB#0:
@@ -1982,11 +1982,11 @@ define <4 x float> @test_rsqrtps(<4 x fl
 ;
 ; ATOM-LABEL: test_rsqrtps:
 ; ATOM:       # BB#0:
-; ATOM-NEXT:    rsqrtps (%rdi), %xmm1
-; ATOM-NEXT:    rsqrtps %xmm0, %xmm0
-; ATOM-NEXT:    addps %xmm0, %xmm1
-; ATOM-NEXT:    movaps %xmm1, %xmm0
-; ATOM-NEXT:    retq
+; ATOM-NEXT:    rsqrtps (%rdi), %xmm1 # sched: [10:5.00]
+; ATOM-NEXT:    rsqrtps %xmm0, %xmm0 # sched: [9:4.50]
+; ATOM-NEXT:    addps %xmm0, %xmm1 # sched: [5:5.00]
+; ATOM-NEXT:    movaps %xmm1, %xmm0 # sched: [1:0.50]
+; ATOM-NEXT:    retq # sched: [79:39.50]
 ;
 ; SLM-LABEL: test_rsqrtps:
 ; SLM:       # BB#0:
@@ -2044,11 +2044,11 @@ define <4 x float> @test_rsqrtss(float %
 ;
 ; ATOM-LABEL: test_rsqrtss:
 ; ATOM:       # BB#0:
-; ATOM-NEXT:    movss {{.*#+}} xmm1 = mem[0],zero,zero,zero
+; ATOM-NEXT:    movss {{.*#+}} xmm1 = mem[0],zero,zero,zero sched: [1:1.00]
 ; ATOM-NEXT:    rsqrtss %xmm0, %xmm0
 ; ATOM-NEXT:    rsqrtss %xmm1, %xmm1
-; ATOM-NEXT:    addps %xmm1, %xmm0
-; ATOM-NEXT:    retq
+; ATOM-NEXT:    addps %xmm1, %xmm0 # sched: [5:5.00]
+; ATOM-NEXT:    retq # sched: [79:39.50]
 ;
 ; SLM-LABEL: test_rsqrtss:
 ; SLM:       # BB#0:
@@ -2107,14 +2107,14 @@ define void @test_sfence() {
 ;
 ; ATOM-LABEL: test_sfence:
 ; ATOM:       # BB#0:
-; ATOM-NEXT:    sfence
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    retq
+; ATOM-NEXT:    sfence # sched: [1:1.00]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    retq # sched: [79:39.50]
 ;
 ; SLM-LABEL: test_sfence:
 ; SLM:       # BB#0:
@@ -2154,13 +2154,13 @@ define <4 x float> @test_shufps(<4 x flo
 ;
 ; ATOM-LABEL: test_shufps:
 ; ATOM:       # BB#0:
-; ATOM-NEXT:    shufps {{.*#+}} xmm0 = xmm0[0,0],xmm1[0,0]
-; ATOM-NEXT:    shufps {{.*#+}} xmm0 = xmm0[0,3],mem[0,0]
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    retq
+; ATOM-NEXT:    shufps {{.*#+}} xmm0 = xmm0[0,0],xmm1[0,0] sched: [1:1.00]
+; ATOM-NEXT:    shufps {{.*#+}} xmm0 = xmm0[0,3],mem[0,0] sched: [1:1.00]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    retq # sched: [79:39.50]
 ;
 ; SLM-LABEL: test_shufps:
 ; SLM:       # BB#0:
@@ -2207,10 +2207,10 @@ define <4 x float> @test_sqrtps(<4 x flo
 ;
 ; ATOM-LABEL: test_sqrtps:
 ; ATOM:       # BB#0:
-; ATOM-NEXT:    sqrtps %xmm0, %xmm1
-; ATOM-NEXT:    sqrtps (%rdi), %xmm0
-; ATOM-NEXT:    addps %xmm1, %xmm0
-; ATOM-NEXT:    retq
+; ATOM-NEXT:    sqrtps %xmm0, %xmm1 # sched: [70:35.00]
+; ATOM-NEXT:    sqrtps (%rdi), %xmm0 # sched: [70:35.00]
+; ATOM-NEXT:    addps %xmm1, %xmm0 # sched: [5:5.00]
+; ATOM-NEXT:    retq # sched: [79:39.50]
 ;
 ; SLM-LABEL: test_sqrtps:
 ; SLM:       # BB#0:
@@ -2268,11 +2268,11 @@ define <4 x float> @test_sqrtss(<4 x flo
 ;
 ; ATOM-LABEL: test_sqrtss:
 ; ATOM:       # BB#0:
-; ATOM-NEXT:    movaps (%rdi), %xmm1
+; ATOM-NEXT:    movaps (%rdi), %xmm1 # sched: [1:1.00]
 ; ATOM-NEXT:    sqrtss %xmm0, %xmm0
 ; ATOM-NEXT:    sqrtss %xmm1, %xmm1
-; ATOM-NEXT:    addps %xmm1, %xmm0
-; ATOM-NEXT:    retq
+; ATOM-NEXT:    addps %xmm1, %xmm0 # sched: [5:5.00]
+; ATOM-NEXT:    retq # sched: [79:39.50]
 ;
 ; SLM-LABEL: test_sqrtss:
 ; SLM:       # BB#0:
@@ -2330,9 +2330,9 @@ define i32 @test_stmxcsr() {
 ;
 ; ATOM-LABEL: test_stmxcsr:
 ; ATOM:       # BB#0:
-; ATOM-NEXT:    stmxcsr -{{[0-9]+}}(%rsp)
-; ATOM-NEXT:    movl -{{[0-9]+}}(%rsp), %eax
-; ATOM-NEXT:    retq
+; ATOM-NEXT:    stmxcsr -{{[0-9]+}}(%rsp) # sched: [15:7.50]
+; ATOM-NEXT:    movl -{{[0-9]+}}(%rsp), %eax # sched: [1:1.00]
+; ATOM-NEXT:    retq # sched: [79:39.50]
 ;
 ; SLM-LABEL: test_stmxcsr:
 ; SLM:       # BB#0:
@@ -2380,9 +2380,9 @@ define <4 x float> @test_subps(<4 x floa
 ;
 ; ATOM-LABEL: test_subps:
 ; ATOM:       # BB#0:
-; ATOM-NEXT:    subps %xmm1, %xmm0
-; ATOM-NEXT:    subps (%rdi), %xmm0
-; ATOM-NEXT:    retq
+; ATOM-NEXT:    subps %xmm1, %xmm0 # sched: [5:5.00]
+; ATOM-NEXT:    subps (%rdi), %xmm0 # sched: [5:5.00]
+; ATOM-NEXT:    retq # sched: [79:39.50]
 ;
 ; SLM-LABEL: test_subps:
 ; SLM:       # BB#0:
@@ -2428,9 +2428,9 @@ define float @test_subss(float %a0, floa
 ;
 ; ATOM-LABEL: test_subss:
 ; ATOM:       # BB#0:
-; ATOM-NEXT:    subss %xmm1, %xmm0
-; ATOM-NEXT:    subss (%rdi), %xmm0
-; ATOM-NEXT:    retq
+; ATOM-NEXT:    subss %xmm1, %xmm0 # sched: [5:5.00]
+; ATOM-NEXT:    subss (%rdi), %xmm0 # sched: [5:5.00]
+; ATOM-NEXT:    retq # sched: [79:39.50]
 ;
 ; SLM-LABEL: test_subss:
 ; SLM:       # BB#0:
@@ -2484,17 +2484,17 @@ define i32 @test_ucomiss(<4 x float> %a0
 ;
 ; ATOM-LABEL: test_ucomiss:
 ; ATOM:       # BB#0:
-; ATOM-NEXT:    ucomiss %xmm1, %xmm0
-; ATOM-NEXT:    setnp %al
-; ATOM-NEXT:    sete %cl
-; ATOM-NEXT:    andb %al, %cl
-; ATOM-NEXT:    ucomiss (%rdi), %xmm0
-; ATOM-NEXT:    setnp %al
-; ATOM-NEXT:    sete %dl
-; ATOM-NEXT:    andb %al, %dl
-; ATOM-NEXT:    orb %cl, %dl
-; ATOM-NEXT:    movzbl %dl, %eax
-; ATOM-NEXT:    retq
+; ATOM-NEXT:    ucomiss %xmm1, %xmm0 # sched: [9:4.50]
+; ATOM-NEXT:    setnp %al # sched: [1:0.50]
+; ATOM-NEXT:    sete %cl # sched: [1:0.50]
+; ATOM-NEXT:    andb %al, %cl # sched: [1:0.50]
+; ATOM-NEXT:    ucomiss (%rdi), %xmm0 # sched: [10:5.00]
+; ATOM-NEXT:    setnp %al # sched: [1:0.50]
+; ATOM-NEXT:    sete %dl # sched: [1:0.50]
+; ATOM-NEXT:    andb %al, %dl # sched: [1:0.50]
+; ATOM-NEXT:    orb %cl, %dl # sched: [1:0.50]
+; ATOM-NEXT:    movzbl %dl, %eax # sched: [1:1.00]
+; ATOM-NEXT:    retq # sched: [79:39.50]
 ;
 ; SLM-LABEL: test_ucomiss:
 ; SLM:       # BB#0:
@@ -2582,13 +2582,13 @@ define <4 x float> @test_unpckhps(<4 x f
 ;
 ; ATOM-LABEL: test_unpckhps:
 ; ATOM:       # BB#0:
-; ATOM-NEXT:    unpckhps {{.*#+}} xmm0 = xmm0[2],xmm1[2],xmm0[3],xmm1[3]
-; ATOM-NEXT:    unpckhps {{.*#+}} xmm0 = xmm0[2],mem[2],xmm0[3],mem[3]
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    retq
+; ATOM-NEXT:    unpckhps {{.*#+}} xmm0 = xmm0[2],xmm1[2],xmm0[3],xmm1[3] sched: [1:1.00]
+; ATOM-NEXT:    unpckhps {{.*#+}} xmm0 = xmm0[2],mem[2],xmm0[3],mem[3] sched: [1:1.00]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    retq # sched: [79:39.50]
 ;
 ; SLM-LABEL: test_unpckhps:
 ; SLM:       # BB#0:
@@ -2634,13 +2634,13 @@ define <4 x float> @test_unpcklps(<4 x f
 ;
 ; ATOM-LABEL: test_unpcklps:
 ; ATOM:       # BB#0:
-; ATOM-NEXT:    unpcklps {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
-; ATOM-NEXT:    unpcklps {{.*#+}} xmm0 = xmm0[0],mem[0],xmm0[1],mem[1]
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    retq
+; ATOM-NEXT:    unpcklps {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1] sched: [1:1.00]
+; ATOM-NEXT:    unpcklps {{.*#+}} xmm0 = xmm0[0],mem[0],xmm0[1],mem[1] sched: [1:1.00]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    retq # sched: [79:39.50]
 ;
 ; SLM-LABEL: test_unpcklps:
 ; SLM:       # BB#0:
@@ -2688,15 +2688,15 @@ define <4 x float> @test_xorps(<4 x floa
 ; ATOM:       # BB#0:
 ; ATOM-NEXT:    xorps %xmm1, %xmm0
 ; ATOM-NEXT:    xorps (%rdi), %xmm0
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    retq
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    retq # sched: [79:39.50]
 ;
 ; SLM-LABEL: test_xorps:
 ; SLM:       # BB#0:

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=309666&r1=309665&r2=309666&view=diff
==============================================================================
--- llvm/trunk/test/CodeGen/X86/sse2-schedule.ll (original)
+++ llvm/trunk/test/CodeGen/X86/sse2-schedule.ll Tue Aug  1 02:15:43 2017
@@ -18,9 +18,9 @@ define <2 x double> @test_addpd(<2 x dou
 ;
 ; ATOM-LABEL: test_addpd:
 ; ATOM:       # BB#0:
-; ATOM-NEXT:    addpd %xmm1, %xmm0
-; ATOM-NEXT:    addpd (%rdi), %xmm0
-; ATOM-NEXT:    retq
+; ATOM-NEXT:    addpd %xmm1, %xmm0 # sched: [6:3.00]
+; ATOM-NEXT:    addpd (%rdi), %xmm0 # sched: [7:3.50]
+; ATOM-NEXT:    retq # sched: [79:39.50]
 ;
 ; SLM-LABEL: test_addpd:
 ; SLM:       # BB#0:
@@ -66,9 +66,9 @@ define double @test_addsd(double %a0, do
 ;
 ; ATOM-LABEL: test_addsd:
 ; ATOM:       # BB#0:
-; ATOM-NEXT:    addsd %xmm1, %xmm0
-; ATOM-NEXT:    addsd (%rdi), %xmm0
-; ATOM-NEXT:    retq
+; ATOM-NEXT:    addsd %xmm1, %xmm0 # sched: [5:5.00]
+; ATOM-NEXT:    addsd (%rdi), %xmm0 # sched: [5:5.00]
+; ATOM-NEXT:    retq # sched: [79:39.50]
 ;
 ; SLM-LABEL: test_addsd:
 ; SLM:       # BB#0:
@@ -117,8 +117,8 @@ define <2 x double> @test_andpd(<2 x dou
 ; ATOM:       # BB#0:
 ; ATOM-NEXT:    andpd %xmm1, %xmm0
 ; ATOM-NEXT:    andpd (%rdi), %xmm0
-; ATOM-NEXT:    addpd %xmm1, %xmm0
-; ATOM-NEXT:    retq
+; ATOM-NEXT:    addpd %xmm1, %xmm0 # sched: [6:3.00]
+; ATOM-NEXT:    retq # sched: [79:39.50]
 ;
 ; SLM-LABEL: test_andpd:
 ; SLM:       # BB#0:
@@ -177,8 +177,8 @@ define <2 x double> @test_andnotpd(<2 x
 ; ATOM:       # BB#0:
 ; ATOM-NEXT:    andnpd %xmm1, %xmm0
 ; ATOM-NEXT:    andnpd (%rdi), %xmm0
-; ATOM-NEXT:    addpd %xmm1, %xmm0
-; ATOM-NEXT:    retq
+; ATOM-NEXT:    addpd %xmm1, %xmm0 # sched: [6:3.00]
+; ATOM-NEXT:    retq # sched: [79:39.50]
 ;
 ; SLM-LABEL: test_andnotpd:
 ; SLM:       # BB#0:
@@ -237,10 +237,10 @@ define <2 x double> @test_cmppd(<2 x dou
 ;
 ; ATOM-LABEL: test_cmppd:
 ; ATOM:       # BB#0:
-; ATOM-NEXT:    cmpeqpd %xmm0, %xmm1
-; ATOM-NEXT:    cmpeqpd (%rdi), %xmm0
+; ATOM-NEXT:    cmpeqpd %xmm0, %xmm1 # sched: [6:3.00]
+; ATOM-NEXT:    cmpeqpd (%rdi), %xmm0 # sched: [7:3.50]
 ; ATOM-NEXT:    orpd %xmm1, %xmm0
-; ATOM-NEXT:    retq
+; ATOM-NEXT:    retq # sched: [79:39.50]
 ;
 ; SLM-LABEL: test_cmppd:
 ; SLM:       # BB#0:
@@ -294,9 +294,9 @@ define double @test_cmpsd(double %a0, do
 ;
 ; ATOM-LABEL: test_cmpsd:
 ; ATOM:       # BB#0:
-; ATOM-NEXT:    cmpeqsd %xmm1, %xmm0
-; ATOM-NEXT:    cmpeqsd (%rdi), %xmm0
-; ATOM-NEXT:    retq
+; ATOM-NEXT:    cmpeqsd %xmm1, %xmm0 # sched: [5:5.00]
+; ATOM-NEXT:    cmpeqsd (%rdi), %xmm0 # sched: [5:5.00]
+; ATOM-NEXT:    retq # sched: [79:39.50]
 ;
 ; SLM-LABEL: test_cmpsd:
 ; SLM:       # BB#0:
@@ -355,17 +355,17 @@ define i32 @test_comisd(<2 x double> %a0
 ;
 ; ATOM-LABEL: test_comisd:
 ; ATOM:       # BB#0:
-; ATOM-NEXT:    comisd %xmm1, %xmm0
-; ATOM-NEXT:    setnp %al
-; ATOM-NEXT:    sete %cl
-; ATOM-NEXT:    andb %al, %cl
-; ATOM-NEXT:    comisd (%rdi), %xmm0
-; ATOM-NEXT:    setnp %al
-; ATOM-NEXT:    sete %dl
-; ATOM-NEXT:    andb %al, %dl
-; ATOM-NEXT:    orb %cl, %dl
-; ATOM-NEXT:    movzbl %dl, %eax
-; ATOM-NEXT:    retq
+; ATOM-NEXT:    comisd %xmm1, %xmm0 # sched: [9:4.50]
+; ATOM-NEXT:    setnp %al # sched: [1:0.50]
+; ATOM-NEXT:    sete %cl # sched: [1:0.50]
+; ATOM-NEXT:    andb %al, %cl # sched: [1:0.50]
+; ATOM-NEXT:    comisd (%rdi), %xmm0 # sched: [10:5.00]
+; ATOM-NEXT:    setnp %al # sched: [1:0.50]
+; ATOM-NEXT:    sete %dl # sched: [1:0.50]
+; ATOM-NEXT:    andb %al, %dl # sched: [1:0.50]
+; ATOM-NEXT:    orb %cl, %dl # sched: [1:0.50]
+; ATOM-NEXT:    movzbl %dl, %eax # sched: [1:1.00]
+; ATOM-NEXT:    retq # sched: [79:39.50]
 ;
 ; SLM-LABEL: test_comisd:
 ; SLM:       # BB#0:
@@ -454,10 +454,10 @@ define <2 x double> @test_cvtdq2pd(<4 x
 ;
 ; ATOM-LABEL: test_cvtdq2pd:
 ; ATOM:       # BB#0:
-; ATOM-NEXT:    cvtdq2pd %xmm0, %xmm1
-; ATOM-NEXT:    cvtdq2pd (%rdi), %xmm0
-; ATOM-NEXT:    addpd %xmm1, %xmm0
-; ATOM-NEXT:    retq
+; ATOM-NEXT:    cvtdq2pd %xmm0, %xmm1 # sched: [8:4.00]
+; ATOM-NEXT:    cvtdq2pd (%rdi), %xmm0 # sched: [7:3.50]
+; ATOM-NEXT:    addpd %xmm1, %xmm0 # sched: [6:3.00]
+; ATOM-NEXT:    retq # sched: [79:39.50]
 ;
 ; SLM-LABEL: test_cvtdq2pd:
 ; SLM:       # BB#0:
@@ -512,11 +512,11 @@ define <4 x float> @test_cvtdq2ps(<4 x i
 ;
 ; ATOM-LABEL: test_cvtdq2ps:
 ; ATOM:       # BB#0:
-; ATOM-NEXT:    cvtdq2ps (%rdi), %xmm1
-; ATOM-NEXT:    cvtdq2ps %xmm0, %xmm0
-; ATOM-NEXT:    addps %xmm0, %xmm1
-; ATOM-NEXT:    movaps %xmm1, %xmm0
-; ATOM-NEXT:    retq
+; ATOM-NEXT:    cvtdq2ps (%rdi), %xmm1 # sched: [7:3.50]
+; ATOM-NEXT:    cvtdq2ps %xmm0, %xmm0 # sched: [6:3.00]
+; ATOM-NEXT:    addps %xmm0, %xmm1 # sched: [5:5.00]
+; ATOM-NEXT:    movaps %xmm1, %xmm0 # sched: [1:0.50]
+; ATOM-NEXT:    retq # sched: [79:39.50]
 ;
 ; SLM-LABEL: test_cvtdq2ps:
 ; SLM:       # BB#0:
@@ -569,11 +569,11 @@ define <4 x i32> @test_cvtpd2dq(<2 x dou
 ;
 ; ATOM-LABEL: test_cvtpd2dq:
 ; ATOM:       # BB#0:
-; ATOM-NEXT:    cvtpd2dq (%rdi), %xmm1
-; ATOM-NEXT:    cvtpd2dq %xmm0, %xmm0
-; ATOM-NEXT:    paddd %xmm0, %xmm1
-; ATOM-NEXT:    movdqa %xmm1, %xmm0
-; ATOM-NEXT:    retq
+; ATOM-NEXT:    cvtpd2dq (%rdi), %xmm1 # sched: [8:4.00]
+; ATOM-NEXT:    cvtpd2dq %xmm0, %xmm0 # sched: [7:3.50]
+; ATOM-NEXT:    paddd %xmm0, %xmm1 # sched: [1:0.50]
+; ATOM-NEXT:    movdqa %xmm1, %xmm0 # sched: [1:0.50]
+; ATOM-NEXT:    retq # sched: [79:39.50]
 ;
 ; SLM-LABEL: test_cvtpd2dq:
 ; SLM:       # BB#0:
@@ -627,11 +627,11 @@ define <4 x float> @test_cvtpd2ps(<2 x d
 ;
 ; ATOM-LABEL: test_cvtpd2ps:
 ; ATOM:       # BB#0:
-; ATOM-NEXT:    cvtpd2ps (%rdi), %xmm1
-; ATOM-NEXT:    cvtpd2ps %xmm0, %xmm0
-; ATOM-NEXT:    addps %xmm0, %xmm1
-; ATOM-NEXT:    movaps %xmm1, %xmm0
-; ATOM-NEXT:    retq
+; ATOM-NEXT:    cvtpd2ps (%rdi), %xmm1 # sched: [8:4.00]
+; ATOM-NEXT:    cvtpd2ps %xmm0, %xmm0 # sched: [7:3.50]
+; ATOM-NEXT:    addps %xmm0, %xmm1 # sched: [5:5.00]
+; ATOM-NEXT:    movaps %xmm1, %xmm0 # sched: [1:0.50]
+; ATOM-NEXT:    retq # sched: [79:39.50]
 ;
 ; SLM-LABEL: test_cvtpd2ps:
 ; SLM:       # BB#0:
@@ -685,11 +685,11 @@ define <4 x i32> @test_cvtps2dq(<4 x flo
 ;
 ; ATOM-LABEL: test_cvtps2dq:
 ; ATOM:       # BB#0:
-; ATOM-NEXT:    cvtps2dq (%rdi), %xmm1
-; ATOM-NEXT:    cvtps2dq %xmm0, %xmm0
-; ATOM-NEXT:    paddd %xmm0, %xmm1
-; ATOM-NEXT:    movdqa %xmm1, %xmm0
-; ATOM-NEXT:    retq
+; ATOM-NEXT:    cvtps2dq (%rdi), %xmm1 # sched: [7:3.50]
+; ATOM-NEXT:    cvtps2dq %xmm0, %xmm0 # sched: [6:3.00]
+; ATOM-NEXT:    paddd %xmm0, %xmm1 # sched: [1:0.50]
+; ATOM-NEXT:    movdqa %xmm1, %xmm0 # sched: [1:0.50]
+; ATOM-NEXT:    retq # sched: [79:39.50]
 ;
 ; SLM-LABEL: test_cvtps2dq:
 ; SLM:       # BB#0:
@@ -743,11 +743,11 @@ define <2 x double> @test_cvtps2pd(<4 x
 ;
 ; ATOM-LABEL: test_cvtps2pd:
 ; ATOM:       # BB#0:
-; ATOM-NEXT:    cvtps2pd (%rdi), %xmm1
-; ATOM-NEXT:    cvtps2pd %xmm0, %xmm0
-; ATOM-NEXT:    addpd %xmm0, %xmm1
-; ATOM-NEXT:    movapd %xmm1, %xmm0
-; ATOM-NEXT:    retq
+; ATOM-NEXT:    cvtps2pd (%rdi), %xmm1 # sched: [8:4.00]
+; ATOM-NEXT:    cvtps2pd %xmm0, %xmm0 # sched: [7:3.50]
+; ATOM-NEXT:    addpd %xmm0, %xmm1 # sched: [6:3.00]
+; ATOM-NEXT:    movapd %xmm1, %xmm0 # sched: [1:0.50]
+; ATOM-NEXT:    retq # sched: [79:39.50]
 ;
 ; SLM-LABEL: test_cvtps2pd:
 ; SLM:       # BB#0:
@@ -802,10 +802,10 @@ define i32 @test_cvtsd2si(double %a0, do
 ;
 ; ATOM-LABEL: test_cvtsd2si:
 ; ATOM:       # BB#0:
-; ATOM-NEXT:    cvtsd2si (%rdi), %eax
-; ATOM-NEXT:    cvtsd2si %xmm0, %ecx
-; ATOM-NEXT:    addl %ecx, %eax
-; ATOM-NEXT:    retq
+; ATOM-NEXT:    cvtsd2si (%rdi), %eax # sched: [9:4.50]
+; ATOM-NEXT:    cvtsd2si %xmm0, %ecx # sched: [8:4.00]
+; ATOM-NEXT:    addl %ecx, %eax # sched: [1:0.50]
+; ATOM-NEXT:    retq # sched: [79:39.50]
 ;
 ; SLM-LABEL: test_cvtsd2si:
 ; SLM:       # BB#0:
@@ -861,10 +861,10 @@ define i64 @test_cvtsd2siq(double %a0, d
 ;
 ; ATOM-LABEL: test_cvtsd2siq:
 ; ATOM:       # BB#0:
-; ATOM-NEXT:    cvtsd2si (%rdi), %rax
-; ATOM-NEXT:    cvtsd2si %xmm0, %rcx
-; ATOM-NEXT:    addq %rcx, %rax
-; ATOM-NEXT:    retq
+; ATOM-NEXT:    cvtsd2si (%rdi), %rax # sched: [9:4.50]
+; ATOM-NEXT:    cvtsd2si %xmm0, %rcx # sched: [8:4.00]
+; ATOM-NEXT:    addq %rcx, %rax # sched: [1:0.50]
+; ATOM-NEXT:    retq # sched: [79:39.50]
 ;
 ; SLM-LABEL: test_cvtsd2siq:
 ; SLM:       # BB#0:
@@ -921,12 +921,12 @@ define float @test_cvtsd2ss(double %a0,
 ;
 ; ATOM-LABEL: test_cvtsd2ss:
 ; ATOM:       # BB#0:
-; ATOM-NEXT:    movsd {{.*#+}} xmm1 = mem[0],zero
-; ATOM-NEXT:    cvtsd2ss %xmm0, %xmm2
+; ATOM-NEXT:    movsd {{.*#+}} xmm1 = mem[0],zero sched: [1:1.00]
+; ATOM-NEXT:    cvtsd2ss %xmm0, %xmm2 # sched: [6:3.00]
 ; ATOM-NEXT:    xorps %xmm0, %xmm0
-; ATOM-NEXT:    cvtsd2ss %xmm1, %xmm0
-; ATOM-NEXT:    addss %xmm2, %xmm0
-; ATOM-NEXT:    retq
+; ATOM-NEXT:    cvtsd2ss %xmm1, %xmm0 # sched: [6:3.00]
+; ATOM-NEXT:    addss %xmm2, %xmm0 # sched: [5:5.00]
+; ATOM-NEXT:    retq # sched: [79:39.50]
 ;
 ; SLM-LABEL: test_cvtsd2ss:
 ; SLM:       # BB#0:
@@ -984,10 +984,10 @@ define double @test_cvtsi2sd(i32 %a0, i3
 ;
 ; ATOM-LABEL: test_cvtsi2sd:
 ; ATOM:       # BB#0:
-; ATOM-NEXT:    cvtsi2sdl (%rsi), %xmm0
-; ATOM-NEXT:    cvtsi2sdl %edi, %xmm1
-; ATOM-NEXT:    addsd %xmm1, %xmm0
-; ATOM-NEXT:    retq
+; ATOM-NEXT:    cvtsi2sdl (%rsi), %xmm0 # sched: [7:3.50]
+; ATOM-NEXT:    cvtsi2sdl %edi, %xmm1 # sched: [6:3.00]
+; ATOM-NEXT:    addsd %xmm1, %xmm0 # sched: [5:5.00]
+; ATOM-NEXT:    retq # sched: [79:39.50]
 ;
 ; SLM-LABEL: test_cvtsi2sd:
 ; SLM:       # BB#0:
@@ -1040,10 +1040,10 @@ define double @test_cvtsi2sdq(i64 %a0, i
 ;
 ; ATOM-LABEL: test_cvtsi2sdq:
 ; ATOM:       # BB#0:
-; ATOM-NEXT:    cvtsi2sdq (%rsi), %xmm0
-; ATOM-NEXT:    cvtsi2sdq %rdi, %xmm1
-; ATOM-NEXT:    addsd %xmm1, %xmm0
-; ATOM-NEXT:    retq
+; ATOM-NEXT:    cvtsi2sdq (%rsi), %xmm0 # sched: [7:3.50]
+; ATOM-NEXT:    cvtsi2sdq %rdi, %xmm1 # sched: [6:3.00]
+; ATOM-NEXT:    addsd %xmm1, %xmm0 # sched: [5:5.00]
+; ATOM-NEXT:    retq # sched: [79:39.50]
 ;
 ; SLM-LABEL: test_cvtsi2sdq:
 ; SLM:       # BB#0:
@@ -1099,12 +1099,12 @@ define double @test_cvtss2sd(float %a0,
 ;
 ; ATOM-LABEL: test_cvtss2sd:
 ; ATOM:       # BB#0:
-; ATOM-NEXT:    movss {{.*#+}} xmm1 = mem[0],zero,zero,zero
-; ATOM-NEXT:    cvtss2sd %xmm0, %xmm2
+; ATOM-NEXT:    movss {{.*#+}} xmm1 = mem[0],zero,zero,zero sched: [1:1.00]
+; ATOM-NEXT:    cvtss2sd %xmm0, %xmm2 # sched: [6:3.00]
 ; ATOM-NEXT:    xorps %xmm0, %xmm0
-; ATOM-NEXT:    cvtss2sd %xmm1, %xmm0
-; ATOM-NEXT:    addsd %xmm2, %xmm0
-; ATOM-NEXT:    retq
+; ATOM-NEXT:    cvtss2sd %xmm1, %xmm0 # sched: [6:3.00]
+; ATOM-NEXT:    addsd %xmm2, %xmm0 # sched: [5:5.00]
+; ATOM-NEXT:    retq # sched: [79:39.50]
 ;
 ; SLM-LABEL: test_cvtss2sd:
 ; SLM:       # BB#0:
@@ -1162,11 +1162,11 @@ define <4 x i32> @test_cvttpd2dq(<2 x do
 ;
 ; ATOM-LABEL: test_cvttpd2dq:
 ; ATOM:       # BB#0:
-; ATOM-NEXT:    cvttpd2dq (%rdi), %xmm1
-; ATOM-NEXT:    cvttpd2dq %xmm0, %xmm0
-; ATOM-NEXT:    paddd %xmm0, %xmm1
-; ATOM-NEXT:    movdqa %xmm1, %xmm0
-; ATOM-NEXT:    retq
+; ATOM-NEXT:    cvttpd2dq (%rdi), %xmm1 # sched: [8:4.00]
+; ATOM-NEXT:    cvttpd2dq %xmm0, %xmm0 # sched: [7:3.50]
+; ATOM-NEXT:    paddd %xmm0, %xmm1 # sched: [1:0.50]
+; ATOM-NEXT:    movdqa %xmm1, %xmm0 # sched: [1:0.50]
+; ATOM-NEXT:    retq # sched: [79:39.50]
 ;
 ; SLM-LABEL: test_cvttpd2dq:
 ; SLM:       # BB#0:
@@ -1221,11 +1221,11 @@ define <4 x i32> @test_cvttps2dq(<4 x fl
 ;
 ; ATOM-LABEL: test_cvttps2dq:
 ; ATOM:       # BB#0:
-; ATOM-NEXT:    cvttps2dq (%rdi), %xmm1
-; ATOM-NEXT:    cvttps2dq %xmm0, %xmm0
-; ATOM-NEXT:    paddd %xmm0, %xmm1
-; ATOM-NEXT:    movdqa %xmm1, %xmm0
-; ATOM-NEXT:    retq
+; ATOM-NEXT:    cvttps2dq (%rdi), %xmm1 # sched: [7:3.50]
+; ATOM-NEXT:    cvttps2dq %xmm0, %xmm0 # sched: [6:3.00]
+; ATOM-NEXT:    paddd %xmm0, %xmm1 # sched: [1:0.50]
+; ATOM-NEXT:    movdqa %xmm1, %xmm0 # sched: [1:0.50]
+; ATOM-NEXT:    retq # sched: [79:39.50]
 ;
 ; SLM-LABEL: test_cvttps2dq:
 ; SLM:       # BB#0:
@@ -1278,10 +1278,10 @@ define i32 @test_cvttsd2si(double %a0, d
 ;
 ; ATOM-LABEL: test_cvttsd2si:
 ; ATOM:       # BB#0:
-; ATOM-NEXT:    cvttsd2si (%rdi), %eax
-; ATOM-NEXT:    cvttsd2si %xmm0, %ecx
-; ATOM-NEXT:    addl %ecx, %eax
-; ATOM-NEXT:    retq
+; ATOM-NEXT:    cvttsd2si (%rdi), %eax # sched: [9:4.50]
+; ATOM-NEXT:    cvttsd2si %xmm0, %ecx # sched: [8:4.00]
+; ATOM-NEXT:    addl %ecx, %eax # sched: [1:0.50]
+; ATOM-NEXT:    retq # sched: [79:39.50]
 ;
 ; SLM-LABEL: test_cvttsd2si:
 ; SLM:       # BB#0:
@@ -1334,10 +1334,10 @@ define i64 @test_cvttsd2siq(double %a0,
 ;
 ; ATOM-LABEL: test_cvttsd2siq:
 ; ATOM:       # BB#0:
-; ATOM-NEXT:    cvttsd2si (%rdi), %rax
-; ATOM-NEXT:    cvttsd2si %xmm0, %rcx
-; ATOM-NEXT:    addq %rcx, %rax
-; ATOM-NEXT:    retq
+; ATOM-NEXT:    cvttsd2si (%rdi), %rax # sched: [9:4.50]
+; ATOM-NEXT:    cvttsd2si %xmm0, %rcx # sched: [8:4.00]
+; ATOM-NEXT:    addq %rcx, %rax # sched: [1:0.50]
+; ATOM-NEXT:    retq # sched: [79:39.50]
 ;
 ; SLM-LABEL: test_cvttsd2siq:
 ; SLM:       # BB#0:
@@ -1389,9 +1389,9 @@ define <2 x double> @test_divpd(<2 x dou
 ;
 ; ATOM-LABEL: test_divpd:
 ; ATOM:       # BB#0:
-; ATOM-NEXT:    divpd %xmm1, %xmm0
-; ATOM-NEXT:    divpd (%rdi), %xmm0
-; ATOM-NEXT:    retq
+; ATOM-NEXT:    divpd %xmm1, %xmm0 # sched: [125:62.50]
+; ATOM-NEXT:    divpd (%rdi), %xmm0 # sched: [125:62.50]
+; ATOM-NEXT:    retq # sched: [79:39.50]
 ;
 ; SLM-LABEL: test_divpd:
 ; SLM:       # BB#0:
@@ -1437,9 +1437,9 @@ define double @test_divsd(double %a0, do
 ;
 ; ATOM-LABEL: test_divsd:
 ; ATOM:       # BB#0:
-; ATOM-NEXT:    divsd %xmm1, %xmm0
-; ATOM-NEXT:    divsd (%rdi), %xmm0
-; ATOM-NEXT:    retq
+; ATOM-NEXT:    divsd %xmm1, %xmm0 # sched: [62:31.00]
+; ATOM-NEXT:    divsd (%rdi), %xmm0 # sched: [62:31.00]
+; ATOM-NEXT:    retq # sched: [79:39.50]
 ;
 ; SLM-LABEL: test_divsd:
 ; SLM:       # BB#0:
@@ -1484,14 +1484,14 @@ define void @test_lfence() {
 ;
 ; ATOM-LABEL: test_lfence:
 ; ATOM:       # BB#0:
-; ATOM-NEXT:    lfence
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    retq
+; ATOM-NEXT:    lfence # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    retq # sched: [79:39.50]
 ;
 ; SLM-LABEL: test_lfence:
 ; SLM:       # BB#0:
@@ -1530,14 +1530,14 @@ define void @test_mfence() {
 ;
 ; ATOM-LABEL: test_mfence:
 ; ATOM:       # BB#0:
-; ATOM-NEXT:    mfence
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    retq
+; ATOM-NEXT:    mfence # sched: [1:1.00]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    retq # sched: [79:39.50]
 ;
 ; SLM-LABEL: test_mfence:
 ; SLM:       # BB#0:
@@ -1576,12 +1576,12 @@ define void @test_maskmovdqu(<16 x i8> %
 ;
 ; ATOM-LABEL: test_maskmovdqu:
 ; ATOM:       # BB#0:
-; ATOM-NEXT:    maskmovdqu %xmm1, %xmm0
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    retq
+; ATOM-NEXT:    maskmovdqu %xmm1, %xmm0 # sched: [2:1.00]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    retq # sched: [79:39.50]
 ;
 ; SLM-LABEL: test_maskmovdqu:
 ; SLM:       # BB#0:
@@ -1621,9 +1621,9 @@ define <2 x double> @test_maxpd(<2 x dou
 ;
 ; ATOM-LABEL: test_maxpd:
 ; ATOM:       # BB#0:
-; ATOM-NEXT:    maxpd %xmm1, %xmm0
-; ATOM-NEXT:    maxpd (%rdi), %xmm0
-; ATOM-NEXT:    retq
+; ATOM-NEXT:    maxpd %xmm1, %xmm0 # sched: [6:3.00]
+; ATOM-NEXT:    maxpd (%rdi), %xmm0 # sched: [7:3.50]
+; ATOM-NEXT:    retq # sched: [79:39.50]
 ;
 ; SLM-LABEL: test_maxpd:
 ; SLM:       # BB#0:
@@ -1670,9 +1670,9 @@ define <2 x double> @test_maxsd(<2 x dou
 ;
 ; ATOM-LABEL: test_maxsd:
 ; ATOM:       # BB#0:
-; ATOM-NEXT:    maxsd %xmm1, %xmm0
-; ATOM-NEXT:    maxsd (%rdi), %xmm0
-; ATOM-NEXT:    retq
+; ATOM-NEXT:    maxsd %xmm1, %xmm0 # sched: [5:5.00]
+; ATOM-NEXT:    maxsd (%rdi), %xmm0 # sched: [5:5.00]
+; ATOM-NEXT:    retq # sched: [79:39.50]
 ;
 ; SLM-LABEL: test_maxsd:
 ; SLM:       # BB#0:
@@ -1719,9 +1719,9 @@ define <2 x double> @test_minpd(<2 x dou
 ;
 ; ATOM-LABEL: test_minpd:
 ; ATOM:       # BB#0:
-; ATOM-NEXT:    minpd %xmm1, %xmm0
-; ATOM-NEXT:    minpd (%rdi), %xmm0
-; ATOM-NEXT:    retq
+; ATOM-NEXT:    minpd %xmm1, %xmm0 # sched: [6:3.00]
+; ATOM-NEXT:    minpd (%rdi), %xmm0 # sched: [7:3.50]
+; ATOM-NEXT:    retq # sched: [79:39.50]
 ;
 ; SLM-LABEL: test_minpd:
 ; SLM:       # BB#0:
@@ -1768,9 +1768,9 @@ define <2 x double> @test_minsd(<2 x dou
 ;
 ; ATOM-LABEL: test_minsd:
 ; ATOM:       # BB#0:
-; ATOM-NEXT:    minsd %xmm1, %xmm0
-; ATOM-NEXT:    minsd (%rdi), %xmm0
-; ATOM-NEXT:    retq
+; ATOM-NEXT:    minsd %xmm1, %xmm0 # sched: [5:5.00]
+; ATOM-NEXT:    minsd (%rdi), %xmm0 # sched: [5:5.00]
+; ATOM-NEXT:    retq # sched: [79:39.50]
 ;
 ; SLM-LABEL: test_minsd:
 ; SLM:       # BB#0:
@@ -1818,10 +1818,10 @@ define void @test_movapd(<2 x double> *%
 ;
 ; ATOM-LABEL: test_movapd:
 ; ATOM:       # BB#0:
-; ATOM-NEXT:    movapd (%rdi), %xmm0
-; ATOM-NEXT:    addpd %xmm0, %xmm0
-; ATOM-NEXT:    movapd %xmm0, (%rsi)
-; ATOM-NEXT:    retq
+; ATOM-NEXT:    movapd (%rdi), %xmm0 # sched: [1:1.00]
+; ATOM-NEXT:    addpd %xmm0, %xmm0 # sched: [6:3.00]
+; ATOM-NEXT:    movapd %xmm0, (%rsi) # sched: [1:1.00]
+; ATOM-NEXT:    retq # sched: [79:39.50]
 ;
 ; SLM-LABEL: test_movapd:
 ; SLM:       # BB#0:
@@ -1873,10 +1873,10 @@ define void @test_movdqa(<2 x i64> *%a0,
 ;
 ; ATOM-LABEL: test_movdqa:
 ; ATOM:       # BB#0:
-; ATOM-NEXT:    movdqa (%rdi), %xmm0
-; ATOM-NEXT:    paddq %xmm0, %xmm0
-; ATOM-NEXT:    movdqa %xmm0, (%rsi)
-; ATOM-NEXT:    retq
+; ATOM-NEXT:    movdqa (%rdi), %xmm0 # sched: [1:1.00]
+; ATOM-NEXT:    paddq %xmm0, %xmm0 # sched: [2:1.00]
+; ATOM-NEXT:    movdqa %xmm0, (%rsi) # sched: [1:1.00]
+; ATOM-NEXT:    retq # sched: [79:39.50]
 ;
 ; SLM-LABEL: test_movdqa:
 ; SLM:       # BB#0:
@@ -1928,10 +1928,10 @@ define void @test_movdqu(<2 x i64> *%a0,
 ;
 ; ATOM-LABEL: test_movdqu:
 ; ATOM:       # BB#0:
-; ATOM-NEXT:    movdqu (%rdi), %xmm0
-; ATOM-NEXT:    paddq %xmm0, %xmm0
-; ATOM-NEXT:    movdqu %xmm0, (%rsi)
-; ATOM-NEXT:    retq
+; ATOM-NEXT:    movdqu (%rdi), %xmm0 # sched: [3:1.50]
+; ATOM-NEXT:    paddq %xmm0, %xmm0 # sched: [2:1.00]
+; ATOM-NEXT:    movdqu %xmm0, (%rsi) # sched: [2:1.00]
+; ATOM-NEXT:    retq # sched: [79:39.50]
 ;
 ; SLM-LABEL: test_movdqu:
 ; SLM:       # BB#0:
@@ -1986,13 +1986,13 @@ define i32 @test_movd(<4 x i32> %a0, i32
 ;
 ; ATOM-LABEL: test_movd:
 ; ATOM:       # BB#0:
-; ATOM-NEXT:    movd {{.*#+}} xmm1 = mem[0],zero,zero,zero
-; ATOM-NEXT:    paddd %xmm0, %xmm1
-; ATOM-NEXT:    movd %xmm1, %eax
-; ATOM-NEXT:    movd %edi, %xmm1
-; ATOM-NEXT:    paddd %xmm0, %xmm1
-; ATOM-NEXT:    movd %xmm1, (%rsi)
-; ATOM-NEXT:    retq
+; ATOM-NEXT:    movd {{.*#+}} xmm1 = mem[0],zero,zero,zero sched: [1:1.00]
+; ATOM-NEXT:    paddd %xmm0, %xmm1 # sched: [1:0.50]
+; ATOM-NEXT:    movd %xmm1, %eax # sched: [3:3.00]
+; ATOM-NEXT:    movd %edi, %xmm1 # sched: [1:1.00]
+; ATOM-NEXT:    paddd %xmm0, %xmm1 # sched: [1:0.50]
+; ATOM-NEXT:    movd %xmm1, (%rsi) # sched: [1:1.00]
+; ATOM-NEXT:    retq # sched: [79:39.50]
 ;
 ; SLM-LABEL: test_movd:
 ; SLM:       # BB#0:
@@ -2067,13 +2067,13 @@ define i64 @test_movd_64(<2 x i64> %a0,
 ;
 ; ATOM-LABEL: test_movd_64:
 ; ATOM:       # BB#0:
-; ATOM-NEXT:    movq {{.*#+}} xmm1 = mem[0],zero
-; ATOM-NEXT:    movq %rdi, %xmm2
-; ATOM-NEXT:    paddq %xmm0, %xmm2
-; ATOM-NEXT:    paddq %xmm0, %xmm1
-; ATOM-NEXT:    movq %xmm2, (%rsi)
-; ATOM-NEXT:    movq %xmm1, %rax
-; ATOM-NEXT:    retq
+; ATOM-NEXT:    movq {{.*#+}} xmm1 = mem[0],zero sched: [1:1.00]
+; ATOM-NEXT:    movq %rdi, %xmm2 # sched: [1:1.00]
+; ATOM-NEXT:    paddq %xmm0, %xmm2 # sched: [2:1.00]
+; ATOM-NEXT:    paddq %xmm0, %xmm1 # sched: [2:1.00]
+; ATOM-NEXT:    movq %xmm2, (%rsi) # sched: [1:1.00]
+; ATOM-NEXT:    movq %xmm1, %rax # sched: [3:3.00]
+; ATOM-NEXT:    retq # sched: [79:39.50]
 ;
 ; SLM-LABEL: test_movd_64:
 ; SLM:       # BB#0:
@@ -2145,10 +2145,10 @@ define void @test_movhpd(<2 x double> %a
 ;
 ; ATOM-LABEL: test_movhpd:
 ; ATOM:       # BB#0:
-; ATOM-NEXT:    movhpd {{.*#+}} xmm1 = xmm1[0],mem[0]
-; ATOM-NEXT:    addpd %xmm0, %xmm1
-; ATOM-NEXT:    movhpd %xmm1, (%rdi)
-; ATOM-NEXT:    retq
+; ATOM-NEXT:    movhpd {{.*#+}} xmm1 = xmm1[0],mem[0] sched: [1:1.00]
+; ATOM-NEXT:    addpd %xmm0, %xmm1 # sched: [6:3.00]
+; ATOM-NEXT:    movhpd %xmm1, (%rdi) # sched: [1:1.00]
+; ATOM-NEXT:    retq # sched: [79:39.50]
 ;
 ; SLM-LABEL: test_movhpd:
 ; SLM:       # BB#0:
@@ -2203,10 +2203,10 @@ define void @test_movlpd(<2 x double> %a
 ;
 ; ATOM-LABEL: test_movlpd:
 ; ATOM:       # BB#0:
-; ATOM-NEXT:    movlpd {{.*#+}} xmm1 = mem[0],xmm1[1]
-; ATOM-NEXT:    addpd %xmm0, %xmm1
-; ATOM-NEXT:    movlpd %xmm1, (%rdi)
-; ATOM-NEXT:    retq
+; ATOM-NEXT:    movlpd {{.*#+}} xmm1 = mem[0],xmm1[1] sched: [1:1.00]
+; ATOM-NEXT:    addpd %xmm0, %xmm1 # sched: [6:3.00]
+; ATOM-NEXT:    movlpd %xmm1, (%rdi) # sched: [1:1.00]
+; ATOM-NEXT:    retq # sched: [79:39.50]
 ;
 ; SLM-LABEL: test_movlpd:
 ; SLM:       # BB#0:
@@ -2259,10 +2259,10 @@ define i32 @test_movmskpd(<2 x double> %
 ;
 ; ATOM-LABEL: test_movmskpd:
 ; ATOM:       # BB#0:
-; ATOM-NEXT:    movmskpd %xmm0, %eax
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    retq
+; ATOM-NEXT:    movmskpd %xmm0, %eax # sched: [3:3.00]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    retq # sched: [79:39.50]
 ;
 ; SLM-LABEL: test_movmskpd:
 ; SLM:       # BB#0:
@@ -2302,11 +2302,11 @@ define void @test_movntdqa(<2 x i64> %a0
 ;
 ; ATOM-LABEL: test_movntdqa:
 ; ATOM:       # BB#0:
-; ATOM-NEXT:    paddq %xmm0, %xmm0
-; ATOM-NEXT:    movntdq %xmm0, (%rdi)
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    retq
+; ATOM-NEXT:    paddq %xmm0, %xmm0 # sched: [2:1.00]
+; ATOM-NEXT:    movntdq %xmm0, (%rdi) # sched: [1:1.00]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    retq # sched: [79:39.50]
 ;
 ; SLM-LABEL: test_movntdqa:
 ; SLM:       # BB#0:
@@ -2351,9 +2351,9 @@ define void @test_movntpd(<2 x double> %
 ;
 ; ATOM-LABEL: test_movntpd:
 ; ATOM:       # BB#0:
-; ATOM-NEXT:    addpd %xmm0, %xmm0
-; ATOM-NEXT:    movntpd %xmm0, (%rdi)
-; ATOM-NEXT:    retq
+; ATOM-NEXT:    addpd %xmm0, %xmm0 # sched: [6:3.00]
+; ATOM-NEXT:    movntpd %xmm0, (%rdi) # sched: [1:1.00]
+; ATOM-NEXT:    retq # sched: [79:39.50]
 ;
 ; SLM-LABEL: test_movntpd:
 ; SLM:       # BB#0:
@@ -2399,10 +2399,10 @@ define <2 x i64> @test_movq_mem(<2 x i64
 ;
 ; ATOM-LABEL: test_movq_mem:
 ; ATOM:       # BB#0:
-; ATOM-NEXT:    movq {{.*#+}} xmm1 = mem[0],zero
-; ATOM-NEXT:    paddq %xmm1, %xmm0
-; ATOM-NEXT:    movq %xmm0, (%rdi)
-; ATOM-NEXT:    retq
+; ATOM-NEXT:    movq {{.*#+}} xmm1 = mem[0],zero sched: [1:1.00]
+; ATOM-NEXT:    paddq %xmm1, %xmm0 # sched: [2:1.00]
+; ATOM-NEXT:    movq %xmm0, (%rdi) # sched: [1:1.00]
+; ATOM-NEXT:    retq # sched: [79:39.50]
 ;
 ; SLM-LABEL: test_movq_mem:
 ; SLM:       # BB#0:
@@ -2455,11 +2455,11 @@ define <2 x i64> @test_movq_reg(<2 x i64
 ;
 ; ATOM-LABEL: test_movq_reg:
 ; ATOM:       # BB#0:
-; ATOM-NEXT:    movq {{.*#+}} xmm0 = xmm0[0],zero
-; ATOM-NEXT:    paddq %xmm1, %xmm0
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    retq
+; ATOM-NEXT:    movq {{.*#+}} xmm0 = xmm0[0],zero sched: [1:0.50]
+; ATOM-NEXT:    paddq %xmm1, %xmm0 # sched: [2:1.00]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    retq # sched: [79:39.50]
 ;
 ; SLM-LABEL: test_movq_reg:
 ; SLM:       # BB#0:
@@ -2505,10 +2505,10 @@ define void @test_movsd_mem(double* %a0,
 ;
 ; ATOM-LABEL: test_movsd_mem:
 ; ATOM:       # BB#0:
-; ATOM-NEXT:    movsd {{.*#+}} xmm0 = mem[0],zero
-; ATOM-NEXT:    addsd %xmm0, %xmm0
-; ATOM-NEXT:    movsd %xmm0, (%rsi)
-; ATOM-NEXT:    retq
+; ATOM-NEXT:    movsd {{.*#+}} xmm0 = mem[0],zero sched: [1:1.00]
+; ATOM-NEXT:    addsd %xmm0, %xmm0 # sched: [5:5.00]
+; ATOM-NEXT:    movsd %xmm0, (%rsi) # sched: [1:1.00]
+; ATOM-NEXT:    retq # sched: [79:39.50]
 ;
 ; SLM-LABEL: test_movsd_mem:
 ; SLM:       # BB#0:
@@ -2559,13 +2559,13 @@ define <2 x double> @test_movsd_reg(<2 x
 ;
 ; ATOM-LABEL: test_movsd_reg:
 ; ATOM:       # BB#0:
-; ATOM-NEXT:    unpcklpd {{.*#+}} xmm1 = xmm1[0],xmm0[0]
-; ATOM-NEXT:    movapd %xmm1, %xmm0
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    retq
+; ATOM-NEXT:    unpcklpd {{.*#+}} xmm1 = xmm1[0],xmm0[0] sched: [1:1.00]
+; ATOM-NEXT:    movapd %xmm1, %xmm0 # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    retq # sched: [79:39.50]
 ;
 ; SLM-LABEL: test_movsd_reg:
 ; SLM:       # BB#0:
@@ -2606,10 +2606,10 @@ define void @test_movupd(<2 x double> *%
 ;
 ; ATOM-LABEL: test_movupd:
 ; ATOM:       # BB#0:
-; ATOM-NEXT:    movupd (%rdi), %xmm0
-; ATOM-NEXT:    addpd %xmm0, %xmm0
-; ATOM-NEXT:    movupd %xmm0, (%rsi)
-; ATOM-NEXT:    retq
+; ATOM-NEXT:    movupd (%rdi), %xmm0 # sched: [3:1.50]
+; ATOM-NEXT:    addpd %xmm0, %xmm0 # sched: [6:3.00]
+; ATOM-NEXT:    movupd %xmm0, (%rsi) # sched: [2:1.00]
+; ATOM-NEXT:    retq # sched: [79:39.50]
 ;
 ; SLM-LABEL: test_movupd:
 ; SLM:       # BB#0:
@@ -2660,9 +2660,9 @@ define <2 x double> @test_mulpd(<2 x dou
 ;
 ; ATOM-LABEL: test_mulpd:
 ; ATOM:       # BB#0:
-; ATOM-NEXT:    mulpd %xmm1, %xmm0
-; ATOM-NEXT:    mulpd (%rdi), %xmm0
-; ATOM-NEXT:    retq
+; ATOM-NEXT:    mulpd %xmm1, %xmm0 # sched: [9:4.50]
+; ATOM-NEXT:    mulpd (%rdi), %xmm0 # sched: [10:5.00]
+; ATOM-NEXT:    retq # sched: [79:39.50]
 ;
 ; SLM-LABEL: test_mulpd:
 ; SLM:       # BB#0:
@@ -2708,9 +2708,9 @@ define double @test_mulsd(double %a0, do
 ;
 ; ATOM-LABEL: test_mulsd:
 ; ATOM:       # BB#0:
-; ATOM-NEXT:    mulsd %xmm1, %xmm0
-; ATOM-NEXT:    mulsd (%rdi), %xmm0
-; ATOM-NEXT:    retq
+; ATOM-NEXT:    mulsd %xmm1, %xmm0 # sched: [5:5.00]
+; ATOM-NEXT:    mulsd (%rdi), %xmm0 # sched: [5:5.00]
+; ATOM-NEXT:    retq # sched: [79:39.50]
 ;
 ; SLM-LABEL: test_mulsd:
 ; SLM:       # BB#0:
@@ -2759,8 +2759,8 @@ define <2 x double> @test_orpd(<2 x doub
 ; ATOM:       # BB#0:
 ; ATOM-NEXT:    orpd %xmm1, %xmm0
 ; ATOM-NEXT:    orpd (%rdi), %xmm0
-; ATOM-NEXT:    addpd %xmm1, %xmm0
-; ATOM-NEXT:    retq
+; ATOM-NEXT:    addpd %xmm1, %xmm0 # sched: [6:3.00]
+; ATOM-NEXT:    retq # sched: [79:39.50]
 ;
 ; SLM-LABEL: test_orpd:
 ; SLM:       # BB#0:
@@ -2818,15 +2818,15 @@ define <8 x i16> @test_packssdw(<4 x i32
 ; ATOM:       # BB#0:
 ; ATOM-NEXT:    packssdw %xmm1, %xmm0
 ; ATOM-NEXT:    packssdw (%rdi), %xmm0
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    retq
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    retq # sched: [79:39.50]
 ;
 ; SLM-LABEL: test_packssdw:
 ; SLM:       # BB#0:
@@ -2876,15 +2876,15 @@ define <16 x i8> @test_packsswb(<8 x i16
 ; ATOM:       # BB#0:
 ; ATOM-NEXT:    packsswb %xmm1, %xmm0
 ; ATOM-NEXT:    packsswb (%rdi), %xmm0
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    retq
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    retq # sched: [79:39.50]
 ;
 ; SLM-LABEL: test_packsswb:
 ; SLM:       # BB#0:
@@ -2934,15 +2934,15 @@ define <16 x i8> @test_packuswb(<8 x i16
 ; ATOM:       # BB#0:
 ; ATOM-NEXT:    packuswb %xmm1, %xmm0
 ; ATOM-NEXT:    packuswb (%rdi), %xmm0
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    retq
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    retq # sched: [79:39.50]
 ;
 ; SLM-LABEL: test_packuswb:
 ; SLM:       # BB#0:
@@ -2990,13 +2990,13 @@ define <16 x i8> @test_paddb(<16 x i8> %
 ;
 ; ATOM-LABEL: test_paddb:
 ; ATOM:       # BB#0:
-; ATOM-NEXT:    paddb %xmm1, %xmm0
-; ATOM-NEXT:    paddb (%rdi), %xmm0
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    retq
+; ATOM-NEXT:    paddb %xmm1, %xmm0 # sched: [1:0.50]
+; ATOM-NEXT:    paddb (%rdi), %xmm0 # sched: [1:1.00]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    retq # sched: [79:39.50]
 ;
 ; SLM-LABEL: test_paddb:
 ; SLM:       # BB#0:
@@ -3042,13 +3042,13 @@ define <4 x i32> @test_paddd(<4 x i32> %
 ;
 ; ATOM-LABEL: test_paddd:
 ; ATOM:       # BB#0:
-; ATOM-NEXT:    paddd %xmm1, %xmm0
-; ATOM-NEXT:    paddd (%rdi), %xmm0
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    retq
+; ATOM-NEXT:    paddd %xmm1, %xmm0 # sched: [1:0.50]
+; ATOM-NEXT:    paddd (%rdi), %xmm0 # sched: [1:1.00]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    retq # sched: [79:39.50]
 ;
 ; SLM-LABEL: test_paddd:
 ; SLM:       # BB#0:
@@ -3094,9 +3094,9 @@ define <2 x i64> @test_paddq(<2 x i64> %
 ;
 ; ATOM-LABEL: test_paddq:
 ; ATOM:       # BB#0:
-; ATOM-NEXT:    paddq %xmm1, %xmm0
-; ATOM-NEXT:    paddq (%rdi), %xmm0
-; ATOM-NEXT:    retq
+; ATOM-NEXT:    paddq %xmm1, %xmm0 # sched: [2:1.00]
+; ATOM-NEXT:    paddq (%rdi), %xmm0 # sched: [3:1.50]
+; ATOM-NEXT:    retq # sched: [79:39.50]
 ;
 ; SLM-LABEL: test_paddq:
 ; SLM:       # BB#0:
@@ -3142,13 +3142,13 @@ define <16 x i8> @test_paddsb(<16 x i8>
 ;
 ; ATOM-LABEL: test_paddsb:
 ; ATOM:       # BB#0:
-; ATOM-NEXT:    paddsb %xmm1, %xmm0
-; ATOM-NEXT:    paddsb (%rdi), %xmm0
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    retq
+; ATOM-NEXT:    paddsb %xmm1, %xmm0 # sched: [1:0.50]
+; ATOM-NEXT:    paddsb (%rdi), %xmm0 # sched: [1:1.00]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    retq # sched: [79:39.50]
 ;
 ; SLM-LABEL: test_paddsb:
 ; SLM:       # BB#0:
@@ -3195,13 +3195,13 @@ define <8 x i16> @test_paddsw(<8 x i16>
 ;
 ; ATOM-LABEL: test_paddsw:
 ; ATOM:       # BB#0:
-; ATOM-NEXT:    paddsw %xmm1, %xmm0
-; ATOM-NEXT:    paddsw (%rdi), %xmm0
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    retq
+; ATOM-NEXT:    paddsw %xmm1, %xmm0 # sched: [1:0.50]
+; ATOM-NEXT:    paddsw (%rdi), %xmm0 # sched: [1:1.00]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    retq # sched: [79:39.50]
 ;
 ; SLM-LABEL: test_paddsw:
 ; SLM:       # BB#0:
@@ -3248,13 +3248,13 @@ define <16 x i8> @test_paddusb(<16 x i8>
 ;
 ; ATOM-LABEL: test_paddusb:
 ; ATOM:       # BB#0:
-; ATOM-NEXT:    paddusb %xmm1, %xmm0
-; ATOM-NEXT:    paddusb (%rdi), %xmm0
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    retq
+; ATOM-NEXT:    paddusb %xmm1, %xmm0 # sched: [1:0.50]
+; ATOM-NEXT:    paddusb (%rdi), %xmm0 # sched: [1:1.00]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    retq # sched: [79:39.50]
 ;
 ; SLM-LABEL: test_paddusb:
 ; SLM:       # BB#0:
@@ -3301,13 +3301,13 @@ define <8 x i16> @test_paddusw(<8 x i16>
 ;
 ; ATOM-LABEL: test_paddusw:
 ; ATOM:       # BB#0:
-; ATOM-NEXT:    paddusw %xmm1, %xmm0
-; ATOM-NEXT:    paddusw (%rdi), %xmm0
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    retq
+; ATOM-NEXT:    paddusw %xmm1, %xmm0 # sched: [1:0.50]
+; ATOM-NEXT:    paddusw (%rdi), %xmm0 # sched: [1:1.00]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    retq # sched: [79:39.50]
 ;
 ; SLM-LABEL: test_paddusw:
 ; SLM:       # BB#0:
@@ -3354,13 +3354,13 @@ define <8 x i16> @test_paddw(<8 x i16> %
 ;
 ; ATOM-LABEL: test_paddw:
 ; ATOM:       # BB#0:
-; ATOM-NEXT:    paddw %xmm1, %xmm0
-; ATOM-NEXT:    paddw (%rdi), %xmm0
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    retq
+; ATOM-NEXT:    paddw %xmm1, %xmm0 # sched: [1:0.50]
+; ATOM-NEXT:    paddw (%rdi), %xmm0 # sched: [1:1.00]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    retq # sched: [79:39.50]
 ;
 ; SLM-LABEL: test_paddw:
 ; SLM:       # BB#0:
@@ -3407,10 +3407,10 @@ define <2 x i64> @test_pand(<2 x i64> %a
 ;
 ; ATOM-LABEL: test_pand:
 ; ATOM:       # BB#0:
-; ATOM-NEXT:    pand %xmm1, %xmm0
-; ATOM-NEXT:    pand (%rdi), %xmm0
-; ATOM-NEXT:    paddq %xmm1, %xmm0
-; ATOM-NEXT:    retq
+; ATOM-NEXT:    pand %xmm1, %xmm0 # sched: [1:0.50]
+; ATOM-NEXT:    pand (%rdi), %xmm0 # sched: [1:1.00]
+; ATOM-NEXT:    paddq %xmm1, %xmm0 # sched: [2:1.00]
+; ATOM-NEXT:    retq # sched: [79:39.50]
 ;
 ; SLM-LABEL: test_pand:
 ; SLM:       # BB#0:
@@ -3465,12 +3465,12 @@ define <2 x i64> @test_pandn(<2 x i64> %
 ;
 ; ATOM-LABEL: test_pandn:
 ; ATOM:       # BB#0:
-; ATOM-NEXT:    pandn %xmm1, %xmm0
-; ATOM-NEXT:    movdqa %xmm0, %xmm1
-; ATOM-NEXT:    pandn (%rdi), %xmm1
-; ATOM-NEXT:    paddq %xmm0, %xmm1
-; ATOM-NEXT:    movdqa %xmm1, %xmm0
-; ATOM-NEXT:    retq
+; ATOM-NEXT:    pandn %xmm1, %xmm0 # sched: [1:0.50]
+; ATOM-NEXT:    movdqa %xmm0, %xmm1 # sched: [1:0.50]
+; ATOM-NEXT:    pandn (%rdi), %xmm1 # sched: [1:1.00]
+; ATOM-NEXT:    paddq %xmm0, %xmm1 # sched: [2:1.00]
+; ATOM-NEXT:    movdqa %xmm1, %xmm0 # sched: [1:0.50]
+; ATOM-NEXT:    retq # sched: [79:39.50]
 ;
 ; SLM-LABEL: test_pandn:
 ; SLM:       # BB#0:
@@ -3526,13 +3526,13 @@ define <16 x i8> @test_pavgb(<16 x i8> %
 ;
 ; ATOM-LABEL: test_pavgb:
 ; ATOM:       # BB#0:
-; ATOM-NEXT:    pavgb %xmm1, %xmm0
-; ATOM-NEXT:    pavgb (%rdi), %xmm0
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    retq
+; ATOM-NEXT:    pavgb %xmm1, %xmm0 # sched: [1:0.50]
+; ATOM-NEXT:    pavgb (%rdi), %xmm0 # sched: [1:1.00]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    retq # sched: [79:39.50]
 ;
 ; SLM-LABEL: test_pavgb:
 ; SLM:       # BB#0:
@@ -3579,13 +3579,13 @@ define <8 x i16> @test_pavgw(<8 x i16> %
 ;
 ; ATOM-LABEL: test_pavgw:
 ; ATOM:       # BB#0:
-; ATOM-NEXT:    pavgw %xmm1, %xmm0
-; ATOM-NEXT:    pavgw (%rdi), %xmm0
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    retq
+; ATOM-NEXT:    pavgw %xmm1, %xmm0 # sched: [1:0.50]
+; ATOM-NEXT:    pavgw (%rdi), %xmm0 # sched: [1:1.00]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    retq # sched: [79:39.50]
 ;
 ; SLM-LABEL: test_pavgw:
 ; SLM:       # BB#0:
@@ -3633,12 +3633,12 @@ define <16 x i8> @test_pcmpeqb(<16 x i8>
 ;
 ; ATOM-LABEL: test_pcmpeqb:
 ; ATOM:       # BB#0:
-; ATOM-NEXT:    pcmpeqb %xmm0, %xmm1
-; ATOM-NEXT:    pcmpeqb (%rdi), %xmm0
-; ATOM-NEXT:    por %xmm1, %xmm0
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    retq
+; ATOM-NEXT:    pcmpeqb %xmm0, %xmm1 # sched: [1:0.50]
+; ATOM-NEXT:    pcmpeqb (%rdi), %xmm0 # sched: [1:1.00]
+; ATOM-NEXT:    por %xmm1, %xmm0 # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    retq # sched: [79:39.50]
 ;
 ; SLM-LABEL: test_pcmpeqb:
 ; SLM:       # BB#0:
@@ -3692,12 +3692,12 @@ define <4 x i32> @test_pcmpeqd(<4 x i32>
 ;
 ; ATOM-LABEL: test_pcmpeqd:
 ; ATOM:       # BB#0:
-; ATOM-NEXT:    pcmpeqd %xmm0, %xmm1
-; ATOM-NEXT:    pcmpeqd (%rdi), %xmm0
-; ATOM-NEXT:    por %xmm1, %xmm0
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    retq
+; ATOM-NEXT:    pcmpeqd %xmm0, %xmm1 # sched: [1:0.50]
+; ATOM-NEXT:    pcmpeqd (%rdi), %xmm0 # sched: [1:1.00]
+; ATOM-NEXT:    por %xmm1, %xmm0 # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    retq # sched: [79:39.50]
 ;
 ; SLM-LABEL: test_pcmpeqd:
 ; SLM:       # BB#0:
@@ -3751,12 +3751,12 @@ define <8 x i16> @test_pcmpeqw(<8 x i16>
 ;
 ; ATOM-LABEL: test_pcmpeqw:
 ; ATOM:       # BB#0:
-; ATOM-NEXT:    pcmpeqw %xmm0, %xmm1
-; ATOM-NEXT:    pcmpeqw (%rdi), %xmm0
-; ATOM-NEXT:    por %xmm1, %xmm0
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    retq
+; ATOM-NEXT:    pcmpeqw %xmm0, %xmm1 # sched: [1:0.50]
+; ATOM-NEXT:    pcmpeqw (%rdi), %xmm0 # sched: [1:1.00]
+; ATOM-NEXT:    por %xmm1, %xmm0 # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    retq # sched: [79:39.50]
 ;
 ; SLM-LABEL: test_pcmpeqw:
 ; SLM:       # BB#0:
@@ -3811,11 +3811,11 @@ define <16 x i8> @test_pcmpgtb(<16 x i8>
 ;
 ; ATOM-LABEL: test_pcmpgtb:
 ; ATOM:       # BB#0:
-; ATOM-NEXT:    movdqa %xmm0, %xmm2
-; ATOM-NEXT:    pcmpgtb (%rdi), %xmm0
-; ATOM-NEXT:    pcmpgtb %xmm1, %xmm2
-; ATOM-NEXT:    por %xmm2, %xmm0
-; ATOM-NEXT:    retq
+; ATOM-NEXT:    movdqa %xmm0, %xmm2 # sched: [1:0.50]
+; ATOM-NEXT:    pcmpgtb (%rdi), %xmm0 # sched: [1:1.00]
+; ATOM-NEXT:    pcmpgtb %xmm1, %xmm2 # sched: [1:0.50]
+; ATOM-NEXT:    por %xmm2, %xmm0 # sched: [1:0.50]
+; ATOM-NEXT:    retq # sched: [79:39.50]
 ;
 ; SLM-LABEL: test_pcmpgtb:
 ; SLM:       # BB#0:
@@ -3871,11 +3871,11 @@ define <4 x i32> @test_pcmpgtd(<4 x i32>
 ;
 ; ATOM-LABEL: test_pcmpgtd:
 ; ATOM:       # BB#0:
-; ATOM-NEXT:    movdqa %xmm0, %xmm2
-; ATOM-NEXT:    pcmpeqd (%rdi), %xmm0
-; ATOM-NEXT:    pcmpgtd %xmm1, %xmm2
-; ATOM-NEXT:    por %xmm2, %xmm0
-; ATOM-NEXT:    retq
+; ATOM-NEXT:    movdqa %xmm0, %xmm2 # sched: [1:0.50]
+; ATOM-NEXT:    pcmpeqd (%rdi), %xmm0 # sched: [1:1.00]
+; ATOM-NEXT:    pcmpgtd %xmm1, %xmm2 # sched: [1:0.50]
+; ATOM-NEXT:    por %xmm2, %xmm0 # sched: [1:0.50]
+; ATOM-NEXT:    retq # sched: [79:39.50]
 ;
 ; SLM-LABEL: test_pcmpgtd:
 ; SLM:       # BB#0:
@@ -3931,11 +3931,11 @@ define <8 x i16> @test_pcmpgtw(<8 x i16>
 ;
 ; ATOM-LABEL: test_pcmpgtw:
 ; ATOM:       # BB#0:
-; ATOM-NEXT:    movdqa %xmm0, %xmm2
-; ATOM-NEXT:    pcmpgtw (%rdi), %xmm0
-; ATOM-NEXT:    pcmpgtw %xmm1, %xmm2
-; ATOM-NEXT:    por %xmm2, %xmm0
-; ATOM-NEXT:    retq
+; ATOM-NEXT:    movdqa %xmm0, %xmm2 # sched: [1:0.50]
+; ATOM-NEXT:    pcmpgtw (%rdi), %xmm0 # sched: [1:1.00]
+; ATOM-NEXT:    pcmpgtw %xmm1, %xmm2 # sched: [1:0.50]
+; ATOM-NEXT:    por %xmm2, %xmm0 # sched: [1:0.50]
+; ATOM-NEXT:    retq # sched: [79:39.50]
 ;
 ; SLM-LABEL: test_pcmpgtw:
 ; SLM:       # BB#0:
@@ -3989,9 +3989,9 @@ define i16 @test_pextrw(<8 x i16> %a0) {
 ;
 ; ATOM-LABEL: test_pextrw:
 ; ATOM:       # BB#0:
-; ATOM-NEXT:    pextrw $6, %xmm0, %eax
+; ATOM-NEXT:    pextrw $6, %xmm0, %eax # sched: [4:2.00]
 ; ATOM-NEXT:    # kill: %AX<def> %AX<kill> %EAX<kill>
-; ATOM-NEXT:    retq
+; ATOM-NEXT:    retq # sched: [79:39.50]
 ;
 ; SLM-LABEL: test_pextrw:
 ; SLM:       # BB#0:
@@ -4035,13 +4035,13 @@ define <8 x i16> @test_pinsrw(<8 x i16>
 ;
 ; ATOM-LABEL: test_pinsrw:
 ; ATOM:       # BB#0:
-; ATOM-NEXT:    pinsrw $1, %edi, %xmm0
-; ATOM-NEXT:    pinsrw $3, (%rsi), %xmm0
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    retq
+; ATOM-NEXT:    pinsrw $1, %edi, %xmm0 # sched: [1:1.00]
+; ATOM-NEXT:    pinsrw $3, (%rsi), %xmm0 # sched: [1:1.00]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    retq # sched: [79:39.50]
 ;
 ; SLM-LABEL: test_pinsrw:
 ; SLM:       # BB#0:
@@ -4089,15 +4089,15 @@ define <4 x i32> @test_pmaddwd(<8 x i16>
 ; ATOM:       # BB#0:
 ; ATOM-NEXT:    pmaddwd %xmm1, %xmm0
 ; ATOM-NEXT:    pmaddwd (%rdi), %xmm0
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    retq
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    retq # sched: [79:39.50]
 ;
 ; SLM-LABEL: test_pmaddwd:
 ; SLM:       # BB#0:
@@ -4145,13 +4145,13 @@ define <8 x i16> @test_pmaxsw(<8 x i16>
 ;
 ; ATOM-LABEL: test_pmaxsw:
 ; ATOM:       # BB#0:
-; ATOM-NEXT:    pmaxsw %xmm1, %xmm0
-; ATOM-NEXT:    pmaxsw (%rdi), %xmm0
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    retq
+; ATOM-NEXT:    pmaxsw %xmm1, %xmm0 # sched: [1:0.50]
+; ATOM-NEXT:    pmaxsw (%rdi), %xmm0 # sched: [1:1.00]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    retq # sched: [79:39.50]
 ;
 ; SLM-LABEL: test_pmaxsw:
 ; SLM:       # BB#0:
@@ -4198,13 +4198,13 @@ define <16 x i8> @test_pmaxub(<16 x i8>
 ;
 ; ATOM-LABEL: test_pmaxub:
 ; ATOM:       # BB#0:
-; ATOM-NEXT:    pmaxub %xmm1, %xmm0
-; ATOM-NEXT:    pmaxub (%rdi), %xmm0
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    retq
+; ATOM-NEXT:    pmaxub %xmm1, %xmm0 # sched: [1:0.50]
+; ATOM-NEXT:    pmaxub (%rdi), %xmm0 # sched: [1:1.00]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    retq # sched: [79:39.50]
 ;
 ; SLM-LABEL: test_pmaxub:
 ; SLM:       # BB#0:
@@ -4251,13 +4251,13 @@ define <8 x i16> @test_pminsw(<8 x i16>
 ;
 ; ATOM-LABEL: test_pminsw:
 ; ATOM:       # BB#0:
-; ATOM-NEXT:    pminsw %xmm1, %xmm0
-; ATOM-NEXT:    pminsw (%rdi), %xmm0
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    retq
+; ATOM-NEXT:    pminsw %xmm1, %xmm0 # sched: [1:0.50]
+; ATOM-NEXT:    pminsw (%rdi), %xmm0 # sched: [1:1.00]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    retq # sched: [79:39.50]
 ;
 ; SLM-LABEL: test_pminsw:
 ; SLM:       # BB#0:
@@ -4304,13 +4304,13 @@ define <16 x i8> @test_pminub(<16 x i8>
 ;
 ; ATOM-LABEL: test_pminub:
 ; ATOM:       # BB#0:
-; ATOM-NEXT:    pminub %xmm1, %xmm0
-; ATOM-NEXT:    pminub (%rdi), %xmm0
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    retq
+; ATOM-NEXT:    pminub %xmm1, %xmm0 # sched: [1:0.50]
+; ATOM-NEXT:    pminub (%rdi), %xmm0 # sched: [1:1.00]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    retq # sched: [79:39.50]
 ;
 ; SLM-LABEL: test_pminub:
 ; SLM:       # BB#0:
@@ -4356,10 +4356,10 @@ define i32 @test_pmovmskb(<16 x i8> %a0)
 ;
 ; ATOM-LABEL: test_pmovmskb:
 ; ATOM:       # BB#0:
-; ATOM-NEXT:    pmovmskb %xmm0, %eax
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    retq
+; ATOM-NEXT:    pmovmskb %xmm0, %eax # sched: [3:3.00]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    retq # sched: [79:39.50]
 ;
 ; SLM-LABEL: test_pmovmskb:
 ; SLM:       # BB#0:
@@ -4399,9 +4399,9 @@ define <8 x i16> @test_pmulhuw(<8 x i16>
 ;
 ; ATOM-LABEL: test_pmulhuw:
 ; ATOM:       # BB#0:
-; ATOM-NEXT:    pmulhuw %xmm1, %xmm0
-; ATOM-NEXT:    pmulhuw (%rdi), %xmm0
-; ATOM-NEXT:    retq
+; ATOM-NEXT:    pmulhuw %xmm1, %xmm0 # sched: [5:5.00]
+; ATOM-NEXT:    pmulhuw (%rdi), %xmm0 # sched: [5:5.00]
+; ATOM-NEXT:    retq # sched: [79:39.50]
 ;
 ; SLM-LABEL: test_pmulhuw:
 ; SLM:       # BB#0:
@@ -4448,9 +4448,9 @@ define <8 x i16> @test_pmulhw(<8 x i16>
 ;
 ; ATOM-LABEL: test_pmulhw:
 ; ATOM:       # BB#0:
-; ATOM-NEXT:    pmulhw %xmm1, %xmm0
-; ATOM-NEXT:    pmulhw (%rdi), %xmm0
-; ATOM-NEXT:    retq
+; ATOM-NEXT:    pmulhw %xmm1, %xmm0 # sched: [5:5.00]
+; ATOM-NEXT:    pmulhw (%rdi), %xmm0 # sched: [5:5.00]
+; ATOM-NEXT:    retq # sched: [79:39.50]
 ;
 ; SLM-LABEL: test_pmulhw:
 ; SLM:       # BB#0:
@@ -4497,9 +4497,9 @@ define <8 x i16> @test_pmullw(<8 x i16>
 ;
 ; ATOM-LABEL: test_pmullw:
 ; ATOM:       # BB#0:
-; ATOM-NEXT:    pmullw %xmm1, %xmm0
-; ATOM-NEXT:    pmullw (%rdi), %xmm0
-; ATOM-NEXT:    retq
+; ATOM-NEXT:    pmullw %xmm1, %xmm0 # sched: [5:5.00]
+; ATOM-NEXT:    pmullw (%rdi), %xmm0 # sched: [5:5.00]
+; ATOM-NEXT:    retq # sched: [79:39.50]
 ;
 ; SLM-LABEL: test_pmullw:
 ; SLM:       # BB#0:
@@ -4547,15 +4547,15 @@ define <2 x i64> @test_pmuludq(<4 x i32>
 ; ATOM:       # BB#0:
 ; ATOM-NEXT:    pmuludq %xmm1, %xmm0
 ; ATOM-NEXT:    pmuludq (%rdi), %xmm0
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    retq
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    retq # sched: [79:39.50]
 ;
 ; SLM-LABEL: test_pmuludq:
 ; SLM:       # BB#0:
@@ -4604,10 +4604,10 @@ define <2 x i64> @test_por(<2 x i64> %a0
 ;
 ; ATOM-LABEL: test_por:
 ; ATOM:       # BB#0:
-; ATOM-NEXT:    por %xmm1, %xmm0
-; ATOM-NEXT:    por (%rdi), %xmm0
-; ATOM-NEXT:    paddq %xmm1, %xmm0
-; ATOM-NEXT:    retq
+; ATOM-NEXT:    por %xmm1, %xmm0 # sched: [1:0.50]
+; ATOM-NEXT:    por (%rdi), %xmm0 # sched: [1:1.00]
+; ATOM-NEXT:    paddq %xmm1, %xmm0 # sched: [2:1.00]
+; ATOM-NEXT:    retq # sched: [79:39.50]
 ;
 ; SLM-LABEL: test_por:
 ; SLM:       # BB#0:
@@ -4661,15 +4661,15 @@ define <2 x i64> @test_psadbw(<16 x i8>
 ; ATOM:       # BB#0:
 ; ATOM-NEXT:    psadbw %xmm1, %xmm0
 ; ATOM-NEXT:    psadbw (%rdi), %xmm0
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    retq
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    retq # sched: [79:39.50]
 ;
 ; SLM-LABEL: test_psadbw:
 ; SLM:       # BB#0:
@@ -4718,11 +4718,11 @@ define <4 x i32> @test_pshufd(<4 x i32>
 ;
 ; ATOM-LABEL: test_pshufd:
 ; ATOM:       # BB#0:
-; ATOM-NEXT:    pshufd {{.*#+}} xmm1 = mem[3,2,1,0]
-; ATOM-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[1,0,3,2]
-; ATOM-NEXT:    paddd %xmm0, %xmm1
-; ATOM-NEXT:    movdqa %xmm1, %xmm0
-; ATOM-NEXT:    retq
+; ATOM-NEXT:    pshufd {{.*#+}} xmm1 = mem[3,2,1,0] sched: [1:1.00]
+; ATOM-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[1,0,3,2] sched: [1:1.00]
+; ATOM-NEXT:    paddd %xmm0, %xmm1 # sched: [1:0.50]
+; ATOM-NEXT:    movdqa %xmm1, %xmm0 # sched: [1:0.50]
+; ATOM-NEXT:    retq # sched: [79:39.50]
 ;
 ; SLM-LABEL: test_pshufd:
 ; SLM:       # BB#0:
@@ -4776,11 +4776,11 @@ define <8 x i16> @test_pshufhw(<8 x i16>
 ;
 ; ATOM-LABEL: test_pshufhw:
 ; ATOM:       # BB#0:
-; ATOM-NEXT:    pshufhw {{.*#+}} xmm1 = mem[0,1,2,3,7,6,5,4]
-; ATOM-NEXT:    pshufhw {{.*#+}} xmm0 = xmm0[0,1,2,3,5,4,7,6]
-; ATOM-NEXT:    paddw %xmm0, %xmm1
-; ATOM-NEXT:    movdqa %xmm1, %xmm0
-; ATOM-NEXT:    retq
+; ATOM-NEXT:    pshufhw {{.*#+}} xmm1 = mem[0,1,2,3,7,6,5,4] sched: [1:1.00]
+; ATOM-NEXT:    pshufhw {{.*#+}} xmm0 = xmm0[0,1,2,3,5,4,7,6] sched: [1:1.00]
+; ATOM-NEXT:    paddw %xmm0, %xmm1 # sched: [1:0.50]
+; ATOM-NEXT:    movdqa %xmm1, %xmm0 # sched: [1:0.50]
+; ATOM-NEXT:    retq # sched: [79:39.50]
 ;
 ; SLM-LABEL: test_pshufhw:
 ; SLM:       # BB#0:
@@ -4834,11 +4834,11 @@ define <8 x i16> @test_pshuflw(<8 x i16>
 ;
 ; ATOM-LABEL: test_pshuflw:
 ; ATOM:       # BB#0:
-; ATOM-NEXT:    pshuflw {{.*#+}} xmm1 = mem[3,2,1,0,4,5,6,7]
-; ATOM-NEXT:    pshuflw {{.*#+}} xmm0 = xmm0[1,0,3,2,4,5,6,7]
-; ATOM-NEXT:    paddw %xmm0, %xmm1
-; ATOM-NEXT:    movdqa %xmm1, %xmm0
-; ATOM-NEXT:    retq
+; ATOM-NEXT:    pshuflw {{.*#+}} xmm1 = mem[3,2,1,0,4,5,6,7] sched: [1:1.00]
+; ATOM-NEXT:    pshuflw {{.*#+}} xmm0 = xmm0[1,0,3,2,4,5,6,7] sched: [1:1.00]
+; ATOM-NEXT:    paddw %xmm0, %xmm1 # sched: [1:0.50]
+; ATOM-NEXT:    movdqa %xmm1, %xmm0 # sched: [1:0.50]
+; ATOM-NEXT:    retq # sched: [79:39.50]
 ;
 ; SLM-LABEL: test_pshuflw:
 ; SLM:       # BB#0:
@@ -4892,10 +4892,10 @@ define <4 x i32> @test_pslld(<4 x i32> %
 ;
 ; ATOM-LABEL: test_pslld:
 ; ATOM:       # BB#0:
-; ATOM-NEXT:    pslld %xmm1, %xmm0
-; ATOM-NEXT:    pslld (%rdi), %xmm0
-; ATOM-NEXT:    pslld $2, %xmm0
-; ATOM-NEXT:    retq
+; ATOM-NEXT:    pslld %xmm1, %xmm0 # sched: [2:1.00]
+; ATOM-NEXT:    pslld (%rdi), %xmm0 # sched: [3:1.50]
+; ATOM-NEXT:    pslld $2, %xmm0 # sched: [1:0.50]
+; ATOM-NEXT:    retq # sched: [79:39.50]
 ;
 ; SLM-LABEL: test_pslld:
 ; SLM:       # BB#0:
@@ -4948,14 +4948,14 @@ define <4 x i32> @test_pslldq(<4 x i32>
 ;
 ; ATOM-LABEL: test_pslldq:
 ; ATOM:       # BB#0:
-; ATOM-NEXT:    pslldq {{.*#+}} xmm0 = zero,zero,zero,zero,xmm0[0,1,2,3,4,5,6,7,8,9,10,11]
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    retq
+; ATOM-NEXT:    pslldq {{.*#+}} xmm0 = zero,zero,zero,zero,xmm0[0,1,2,3,4,5,6,7,8,9,10,11] sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    retq # sched: [79:39.50]
 ;
 ; SLM-LABEL: test_pslldq:
 ; SLM:       # BB#0:
@@ -4995,10 +4995,10 @@ define <2 x i64> @test_psllq(<2 x i64> %
 ;
 ; ATOM-LABEL: test_psllq:
 ; ATOM:       # BB#0:
-; ATOM-NEXT:    psllq %xmm1, %xmm0
-; ATOM-NEXT:    psllq (%rdi), %xmm0
-; ATOM-NEXT:    psllq $2, %xmm0
-; ATOM-NEXT:    retq
+; ATOM-NEXT:    psllq %xmm1, %xmm0 # sched: [2:1.00]
+; ATOM-NEXT:    psllq (%rdi), %xmm0 # sched: [3:1.50]
+; ATOM-NEXT:    psllq $2, %xmm0 # sched: [1:0.50]
+; ATOM-NEXT:    retq # sched: [79:39.50]
 ;
 ; SLM-LABEL: test_psllq:
 ; SLM:       # BB#0:
@@ -5053,10 +5053,10 @@ define <8 x i16> @test_psllw(<8 x i16> %
 ;
 ; ATOM-LABEL: test_psllw:
 ; ATOM:       # BB#0:
-; ATOM-NEXT:    psllw %xmm1, %xmm0
-; ATOM-NEXT:    psllw (%rdi), %xmm0
-; ATOM-NEXT:    psllw $2, %xmm0
-; ATOM-NEXT:    retq
+; ATOM-NEXT:    psllw %xmm1, %xmm0 # sched: [2:1.00]
+; ATOM-NEXT:    psllw (%rdi), %xmm0 # sched: [3:1.50]
+; ATOM-NEXT:    psllw $2, %xmm0 # sched: [1:0.50]
+; ATOM-NEXT:    retq # sched: [79:39.50]
 ;
 ; SLM-LABEL: test_psllw:
 ; SLM:       # BB#0:
@@ -5111,10 +5111,10 @@ define <4 x i32> @test_psrad(<4 x i32> %
 ;
 ; ATOM-LABEL: test_psrad:
 ; ATOM:       # BB#0:
-; ATOM-NEXT:    psrad %xmm1, %xmm0
-; ATOM-NEXT:    psrad (%rdi), %xmm0
-; ATOM-NEXT:    psrad $2, %xmm0
-; ATOM-NEXT:    retq
+; ATOM-NEXT:    psrad %xmm1, %xmm0 # sched: [2:1.00]
+; ATOM-NEXT:    psrad (%rdi), %xmm0 # sched: [3:1.50]
+; ATOM-NEXT:    psrad $2, %xmm0 # sched: [1:0.50]
+; ATOM-NEXT:    retq # sched: [79:39.50]
 ;
 ; SLM-LABEL: test_psrad:
 ; SLM:       # BB#0:
@@ -5169,10 +5169,10 @@ define <8 x i16> @test_psraw(<8 x i16> %
 ;
 ; ATOM-LABEL: test_psraw:
 ; ATOM:       # BB#0:
-; ATOM-NEXT:    psraw %xmm1, %xmm0
-; ATOM-NEXT:    psraw (%rdi), %xmm0
-; ATOM-NEXT:    psraw $2, %xmm0
-; ATOM-NEXT:    retq
+; ATOM-NEXT:    psraw %xmm1, %xmm0 # sched: [2:1.00]
+; ATOM-NEXT:    psraw (%rdi), %xmm0 # sched: [3:1.50]
+; ATOM-NEXT:    psraw $2, %xmm0 # sched: [1:0.50]
+; ATOM-NEXT:    retq # sched: [79:39.50]
 ;
 ; SLM-LABEL: test_psraw:
 ; SLM:       # BB#0:
@@ -5227,10 +5227,10 @@ define <4 x i32> @test_psrld(<4 x i32> %
 ;
 ; ATOM-LABEL: test_psrld:
 ; ATOM:       # BB#0:
-; ATOM-NEXT:    psrld %xmm1, %xmm0
-; ATOM-NEXT:    psrld (%rdi), %xmm0
-; ATOM-NEXT:    psrld $2, %xmm0
-; ATOM-NEXT:    retq
+; ATOM-NEXT:    psrld %xmm1, %xmm0 # sched: [2:1.00]
+; ATOM-NEXT:    psrld (%rdi), %xmm0 # sched: [3:1.50]
+; ATOM-NEXT:    psrld $2, %xmm0 # sched: [1:0.50]
+; ATOM-NEXT:    retq # sched: [79:39.50]
 ;
 ; SLM-LABEL: test_psrld:
 ; SLM:       # BB#0:
@@ -5283,14 +5283,14 @@ define <4 x i32> @test_psrldq(<4 x i32>
 ;
 ; ATOM-LABEL: test_psrldq:
 ; ATOM:       # BB#0:
-; ATOM-NEXT:    psrldq {{.*#+}} xmm0 = xmm0[4,5,6,7,8,9,10,11,12,13,14,15],zero,zero,zero,zero
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    retq
+; ATOM-NEXT:    psrldq {{.*#+}} xmm0 = xmm0[4,5,6,7,8,9,10,11,12,13,14,15],zero,zero,zero,zero sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    retq # sched: [79:39.50]
 ;
 ; SLM-LABEL: test_psrldq:
 ; SLM:       # BB#0:
@@ -5330,10 +5330,10 @@ define <2 x i64> @test_psrlq(<2 x i64> %
 ;
 ; ATOM-LABEL: test_psrlq:
 ; ATOM:       # BB#0:
-; ATOM-NEXT:    psrlq %xmm1, %xmm0
-; ATOM-NEXT:    psrlq (%rdi), %xmm0
-; ATOM-NEXT:    psrlq $2, %xmm0
-; ATOM-NEXT:    retq
+; ATOM-NEXT:    psrlq %xmm1, %xmm0 # sched: [2:1.00]
+; ATOM-NEXT:    psrlq (%rdi), %xmm0 # sched: [3:1.50]
+; ATOM-NEXT:    psrlq $2, %xmm0 # sched: [1:0.50]
+; ATOM-NEXT:    retq # sched: [79:39.50]
 ;
 ; SLM-LABEL: test_psrlq:
 ; SLM:       # BB#0:
@@ -5388,10 +5388,10 @@ define <8 x i16> @test_psrlw(<8 x i16> %
 ;
 ; ATOM-LABEL: test_psrlw:
 ; ATOM:       # BB#0:
-; ATOM-NEXT:    psrlw %xmm1, %xmm0
-; ATOM-NEXT:    psrlw (%rdi), %xmm0
-; ATOM-NEXT:    psrlw $2, %xmm0
-; ATOM-NEXT:    retq
+; ATOM-NEXT:    psrlw %xmm1, %xmm0 # sched: [2:1.00]
+; ATOM-NEXT:    psrlw (%rdi), %xmm0 # sched: [3:1.50]
+; ATOM-NEXT:    psrlw $2, %xmm0 # sched: [1:0.50]
+; ATOM-NEXT:    retq # sched: [79:39.50]
 ;
 ; SLM-LABEL: test_psrlw:
 ; SLM:       # BB#0:
@@ -5445,13 +5445,13 @@ define <16 x i8> @test_psubb(<16 x i8> %
 ;
 ; ATOM-LABEL: test_psubb:
 ; ATOM:       # BB#0:
-; ATOM-NEXT:    psubb %xmm1, %xmm0
-; ATOM-NEXT:    psubb (%rdi), %xmm0
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    retq
+; ATOM-NEXT:    psubb %xmm1, %xmm0 # sched: [1:0.50]
+; ATOM-NEXT:    psubb (%rdi), %xmm0 # sched: [1:1.00]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    retq # sched: [79:39.50]
 ;
 ; SLM-LABEL: test_psubb:
 ; SLM:       # BB#0:
@@ -5497,13 +5497,13 @@ define <4 x i32> @test_psubd(<4 x i32> %
 ;
 ; ATOM-LABEL: test_psubd:
 ; ATOM:       # BB#0:
-; ATOM-NEXT:    psubd %xmm1, %xmm0
-; ATOM-NEXT:    psubd (%rdi), %xmm0
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    retq
+; ATOM-NEXT:    psubd %xmm1, %xmm0 # sched: [1:0.50]
+; ATOM-NEXT:    psubd (%rdi), %xmm0 # sched: [1:1.00]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    retq # sched: [79:39.50]
 ;
 ; SLM-LABEL: test_psubd:
 ; SLM:       # BB#0:
@@ -5549,9 +5549,9 @@ define <2 x i64> @test_psubq(<2 x i64> %
 ;
 ; ATOM-LABEL: test_psubq:
 ; ATOM:       # BB#0:
-; ATOM-NEXT:    psubq %xmm1, %xmm0
-; ATOM-NEXT:    psubq (%rdi), %xmm0
-; ATOM-NEXT:    retq
+; ATOM-NEXT:    psubq %xmm1, %xmm0 # sched: [2:1.00]
+; ATOM-NEXT:    psubq (%rdi), %xmm0 # sched: [3:1.50]
+; ATOM-NEXT:    retq # sched: [79:39.50]
 ;
 ; SLM-LABEL: test_psubq:
 ; SLM:       # BB#0:
@@ -5597,13 +5597,13 @@ define <16 x i8> @test_psubsb(<16 x i8>
 ;
 ; ATOM-LABEL: test_psubsb:
 ; ATOM:       # BB#0:
-; ATOM-NEXT:    psubsb %xmm1, %xmm0
-; ATOM-NEXT:    psubsb (%rdi), %xmm0
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    retq
+; ATOM-NEXT:    psubsb %xmm1, %xmm0 # sched: [1:0.50]
+; ATOM-NEXT:    psubsb (%rdi), %xmm0 # sched: [1:1.00]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    retq # sched: [79:39.50]
 ;
 ; SLM-LABEL: test_psubsb:
 ; SLM:       # BB#0:
@@ -5650,13 +5650,13 @@ define <8 x i16> @test_psubsw(<8 x i16>
 ;
 ; ATOM-LABEL: test_psubsw:
 ; ATOM:       # BB#0:
-; ATOM-NEXT:    psubsw %xmm1, %xmm0
-; ATOM-NEXT:    psubsw (%rdi), %xmm0
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    retq
+; ATOM-NEXT:    psubsw %xmm1, %xmm0 # sched: [1:0.50]
+; ATOM-NEXT:    psubsw (%rdi), %xmm0 # sched: [1:1.00]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    retq # sched: [79:39.50]
 ;
 ; SLM-LABEL: test_psubsw:
 ; SLM:       # BB#0:
@@ -5703,13 +5703,13 @@ define <16 x i8> @test_psubusb(<16 x i8>
 ;
 ; ATOM-LABEL: test_psubusb:
 ; ATOM:       # BB#0:
-; ATOM-NEXT:    psubusb %xmm1, %xmm0
-; ATOM-NEXT:    psubusb (%rdi), %xmm0
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    retq
+; ATOM-NEXT:    psubusb %xmm1, %xmm0 # sched: [1:0.50]
+; ATOM-NEXT:    psubusb (%rdi), %xmm0 # sched: [1:1.00]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    retq # sched: [79:39.50]
 ;
 ; SLM-LABEL: test_psubusb:
 ; SLM:       # BB#0:
@@ -5756,13 +5756,13 @@ define <8 x i16> @test_psubusw(<8 x i16>
 ;
 ; ATOM-LABEL: test_psubusw:
 ; ATOM:       # BB#0:
-; ATOM-NEXT:    psubusw %xmm1, %xmm0
-; ATOM-NEXT:    psubusw (%rdi), %xmm0
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    retq
+; ATOM-NEXT:    psubusw %xmm1, %xmm0 # sched: [1:0.50]
+; ATOM-NEXT:    psubusw (%rdi), %xmm0 # sched: [1:1.00]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    retq # sched: [79:39.50]
 ;
 ; SLM-LABEL: test_psubusw:
 ; SLM:       # BB#0:
@@ -5809,13 +5809,13 @@ define <8 x i16> @test_psubw(<8 x i16> %
 ;
 ; ATOM-LABEL: test_psubw:
 ; ATOM:       # BB#0:
-; ATOM-NEXT:    psubw %xmm1, %xmm0
-; ATOM-NEXT:    psubw (%rdi), %xmm0
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    retq
+; ATOM-NEXT:    psubw %xmm1, %xmm0 # sched: [1:0.50]
+; ATOM-NEXT:    psubw (%rdi), %xmm0 # sched: [1:1.00]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    retq # sched: [79:39.50]
 ;
 ; SLM-LABEL: test_psubw:
 ; SLM:       # BB#0:
@@ -5861,13 +5861,13 @@ define <16 x i8> @test_punpckhbw(<16 x i
 ;
 ; ATOM-LABEL: test_punpckhbw:
 ; ATOM:       # BB#0:
-; ATOM-NEXT:    punpckhbw {{.*#+}} xmm0 = xmm0[8],xmm1[8],xmm0[9],xmm1[9],xmm0[10],xmm1[10],xmm0[11],xmm1[11],xmm0[12],xmm1[12],xmm0[13],xmm1[13],xmm0[14],xmm1[14],xmm0[15],xmm1[15]
-; ATOM-NEXT:    punpckhbw {{.*#+}} xmm0 = xmm0[8],mem[8],xmm0[9],mem[9],xmm0[10],mem[10],xmm0[11],mem[11],xmm0[12],mem[12],xmm0[13],mem[13],xmm0[14],mem[14],xmm0[15],mem[15]
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    retq
+; ATOM-NEXT:    punpckhbw {{.*#+}} xmm0 = xmm0[8],xmm1[8],xmm0[9],xmm1[9],xmm0[10],xmm1[10],xmm0[11],xmm1[11],xmm0[12],xmm1[12],xmm0[13],xmm1[13],xmm0[14],xmm1[14],xmm0[15],xmm1[15] sched: [1:1.00]
+; ATOM-NEXT:    punpckhbw {{.*#+}} xmm0 = xmm0[8],mem[8],xmm0[9],mem[9],xmm0[10],mem[10],xmm0[11],mem[11],xmm0[12],mem[12],xmm0[13],mem[13],xmm0[14],mem[14],xmm0[15],mem[15] sched: [1:1.00]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    retq # sched: [79:39.50]
 ;
 ; SLM-LABEL: test_punpckhbw:
 ; SLM:       # BB#0:
@@ -5914,12 +5914,12 @@ define <4 x i32> @test_punpckhdq(<4 x i3
 ;
 ; ATOM-LABEL: test_punpckhdq:
 ; ATOM:       # BB#0:
-; ATOM-NEXT:    punpckhdq {{.*#+}} xmm0 = xmm0[2],xmm1[2],xmm0[3],xmm1[3]
-; ATOM-NEXT:    punpckhdq {{.*#+}} xmm1 = xmm1[2],mem[2],xmm1[3],mem[3]
-; ATOM-NEXT:    paddd %xmm1, %xmm0
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    retq
+; ATOM-NEXT:    punpckhdq {{.*#+}} xmm0 = xmm0[2],xmm1[2],xmm0[3],xmm1[3] sched: [1:1.00]
+; ATOM-NEXT:    punpckhdq {{.*#+}} xmm1 = xmm1[2],mem[2],xmm1[3],mem[3] sched: [1:1.00]
+; ATOM-NEXT:    paddd %xmm1, %xmm0 # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    retq # sched: [79:39.50]
 ;
 ; SLM-LABEL: test_punpckhdq:
 ; SLM:       # BB#0:
@@ -5972,10 +5972,10 @@ define <2 x i64> @test_punpckhqdq(<2 x i
 ;
 ; ATOM-LABEL: test_punpckhqdq:
 ; ATOM:       # BB#0:
-; ATOM-NEXT:    punpckhqdq {{.*#+}} xmm0 = xmm0[1],xmm1[1]
-; ATOM-NEXT:    punpckhqdq {{.*#+}} xmm1 = xmm1[1],mem[1]
-; ATOM-NEXT:    paddq %xmm1, %xmm0
-; ATOM-NEXT:    retq
+; ATOM-NEXT:    punpckhqdq {{.*#+}} xmm0 = xmm0[1],xmm1[1] sched: [1:1.00]
+; ATOM-NEXT:    punpckhqdq {{.*#+}} xmm1 = xmm1[1],mem[1] sched: [1:1.00]
+; ATOM-NEXT:    paddq %xmm1, %xmm0 # sched: [2:1.00]
+; ATOM-NEXT:    retq # sched: [79:39.50]
 ;
 ; SLM-LABEL: test_punpckhqdq:
 ; SLM:       # BB#0:
@@ -6027,13 +6027,13 @@ define <8 x i16> @test_punpckhwd(<8 x i1
 ;
 ; ATOM-LABEL: test_punpckhwd:
 ; ATOM:       # BB#0:
-; ATOM-NEXT:    punpckhwd {{.*#+}} xmm0 = xmm0[4],xmm1[4],xmm0[5],xmm1[5],xmm0[6],xmm1[6],xmm0[7],xmm1[7]
-; ATOM-NEXT:    punpckhwd {{.*#+}} xmm0 = xmm0[4],mem[4],xmm0[5],mem[5],xmm0[6],mem[6],xmm0[7],mem[7]
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    retq
+; ATOM-NEXT:    punpckhwd {{.*#+}} xmm0 = xmm0[4],xmm1[4],xmm0[5],xmm1[5],xmm0[6],xmm1[6],xmm0[7],xmm1[7] sched: [1:1.00]
+; ATOM-NEXT:    punpckhwd {{.*#+}} xmm0 = xmm0[4],mem[4],xmm0[5],mem[5],xmm0[6],mem[6],xmm0[7],mem[7] sched: [1:1.00]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    retq # sched: [79:39.50]
 ;
 ; SLM-LABEL: test_punpckhwd:
 ; SLM:       # BB#0:
@@ -6079,13 +6079,13 @@ define <16 x i8> @test_punpcklbw(<16 x i
 ;
 ; ATOM-LABEL: test_punpcklbw:
 ; ATOM:       # BB#0:
-; ATOM-NEXT:    punpcklbw {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1],xmm0[2],xmm1[2],xmm0[3],xmm1[3],xmm0[4],xmm1[4],xmm0[5],xmm1[5],xmm0[6],xmm1[6],xmm0[7],xmm1[7]
-; ATOM-NEXT:    punpcklbw {{.*#+}} xmm0 = xmm0[0],mem[0],xmm0[1],mem[1],xmm0[2],mem[2],xmm0[3],mem[3],xmm0[4],mem[4],xmm0[5],mem[5],xmm0[6],mem[6],xmm0[7],mem[7]
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    retq
+; ATOM-NEXT:    punpcklbw {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1],xmm0[2],xmm1[2],xmm0[3],xmm1[3],xmm0[4],xmm1[4],xmm0[5],xmm1[5],xmm0[6],xmm1[6],xmm0[7],xmm1[7] sched: [1:1.00]
+; ATOM-NEXT:    punpcklbw {{.*#+}} xmm0 = xmm0[0],mem[0],xmm0[1],mem[1],xmm0[2],mem[2],xmm0[3],mem[3],xmm0[4],mem[4],xmm0[5],mem[5],xmm0[6],mem[6],xmm0[7],mem[7] sched: [1:1.00]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    retq # sched: [79:39.50]
 ;
 ; SLM-LABEL: test_punpcklbw:
 ; SLM:       # BB#0:
@@ -6132,12 +6132,12 @@ define <4 x i32> @test_punpckldq(<4 x i3
 ;
 ; ATOM-LABEL: test_punpckldq:
 ; ATOM:       # BB#0:
-; ATOM-NEXT:    punpckldq {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
-; ATOM-NEXT:    punpckldq {{.*#+}} xmm1 = xmm1[0],mem[0],xmm1[1],mem[1]
-; ATOM-NEXT:    paddd %xmm1, %xmm0
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    retq
+; ATOM-NEXT:    punpckldq {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1] sched: [1:1.00]
+; ATOM-NEXT:    punpckldq {{.*#+}} xmm1 = xmm1[0],mem[0],xmm1[1],mem[1] sched: [1:1.00]
+; ATOM-NEXT:    paddd %xmm1, %xmm0 # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    retq # sched: [79:39.50]
 ;
 ; SLM-LABEL: test_punpckldq:
 ; SLM:       # BB#0:
@@ -6190,10 +6190,10 @@ define <2 x i64> @test_punpcklqdq(<2 x i
 ;
 ; ATOM-LABEL: test_punpcklqdq:
 ; ATOM:       # BB#0:
-; ATOM-NEXT:    punpcklqdq {{.*#+}} xmm0 = xmm0[0],xmm1[0]
-; ATOM-NEXT:    punpcklqdq {{.*#+}} xmm1 = xmm1[0],mem[0]
-; ATOM-NEXT:    paddq %xmm1, %xmm0
-; ATOM-NEXT:    retq
+; ATOM-NEXT:    punpcklqdq {{.*#+}} xmm0 = xmm0[0],xmm1[0] sched: [1:1.00]
+; ATOM-NEXT:    punpcklqdq {{.*#+}} xmm1 = xmm1[0],mem[0] sched: [1:1.00]
+; ATOM-NEXT:    paddq %xmm1, %xmm0 # sched: [2:1.00]
+; ATOM-NEXT:    retq # sched: [79:39.50]
 ;
 ; SLM-LABEL: test_punpcklqdq:
 ; SLM:       # BB#0:
@@ -6245,13 +6245,13 @@ define <8 x i16> @test_punpcklwd(<8 x i1
 ;
 ; ATOM-LABEL: test_punpcklwd:
 ; ATOM:       # BB#0:
-; ATOM-NEXT:    punpcklwd {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1],xmm0[2],xmm1[2],xmm0[3],xmm1[3]
-; ATOM-NEXT:    punpcklwd {{.*#+}} xmm0 = xmm0[0],mem[0],xmm0[1],mem[1],xmm0[2],mem[2],xmm0[3],mem[3]
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    retq
+; ATOM-NEXT:    punpcklwd {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1],xmm0[2],xmm1[2],xmm0[3],xmm1[3] sched: [1:1.00]
+; ATOM-NEXT:    punpcklwd {{.*#+}} xmm0 = xmm0[0],mem[0],xmm0[1],mem[1],xmm0[2],mem[2],xmm0[3],mem[3] sched: [1:1.00]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    retq # sched: [79:39.50]
 ;
 ; SLM-LABEL: test_punpcklwd:
 ; SLM:       # BB#0:
@@ -6298,10 +6298,10 @@ define <2 x i64> @test_pxor(<2 x i64> %a
 ;
 ; ATOM-LABEL: test_pxor:
 ; ATOM:       # BB#0:
-; ATOM-NEXT:    pxor %xmm1, %xmm0
-; ATOM-NEXT:    pxor (%rdi), %xmm0
-; ATOM-NEXT:    paddq %xmm1, %xmm0
-; ATOM-NEXT:    retq
+; ATOM-NEXT:    pxor %xmm1, %xmm0 # sched: [1:0.50]
+; ATOM-NEXT:    pxor (%rdi), %xmm0 # sched: [1:1.00]
+; ATOM-NEXT:    paddq %xmm1, %xmm0 # sched: [2:1.00]
+; ATOM-NEXT:    retq # sched: [79:39.50]
 ;
 ; SLM-LABEL: test_pxor:
 ; SLM:       # BB#0:
@@ -6354,10 +6354,10 @@ define <2 x double> @test_shufpd(<2 x do
 ;
 ; ATOM-LABEL: test_shufpd:
 ; ATOM:       # BB#0:
-; ATOM-NEXT:    shufpd {{.*#+}} xmm0 = xmm0[1],xmm1[0]
-; ATOM-NEXT:    shufpd {{.*#+}} xmm1 = xmm1[1],mem[0]
-; ATOM-NEXT:    addpd %xmm1, %xmm0
-; ATOM-NEXT:    retq
+; ATOM-NEXT:    shufpd {{.*#+}} xmm0 = xmm0[1],xmm1[0] sched: [1:1.00]
+; ATOM-NEXT:    shufpd {{.*#+}} xmm1 = xmm1[1],mem[0] sched: [1:1.00]
+; ATOM-NEXT:    addpd %xmm1, %xmm0 # sched: [6:3.00]
+; ATOM-NEXT:    retq # sched: [79:39.50]
 ;
 ; SLM-LABEL: test_shufpd:
 ; SLM:       # BB#0:
@@ -6410,10 +6410,10 @@ define <2 x double> @test_sqrtpd(<2 x do
 ;
 ; ATOM-LABEL: test_sqrtpd:
 ; ATOM:       # BB#0:
-; ATOM-NEXT:    sqrtpd %xmm0, %xmm1
-; ATOM-NEXT:    sqrtpd (%rdi), %xmm0
-; ATOM-NEXT:    addpd %xmm1, %xmm0
-; ATOM-NEXT:    retq
+; ATOM-NEXT:    sqrtpd %xmm0, %xmm1 # sched: [125:62.50]
+; ATOM-NEXT:    sqrtpd (%rdi), %xmm0 # sched: [125:62.50]
+; ATOM-NEXT:    addpd %xmm1, %xmm0 # sched: [6:3.00]
+; ATOM-NEXT:    retq # sched: [79:39.50]
 ;
 ; SLM-LABEL: test_sqrtpd:
 ; SLM:       # BB#0:
@@ -6471,11 +6471,11 @@ define <2 x double> @test_sqrtsd(<2 x do
 ;
 ; ATOM-LABEL: test_sqrtsd:
 ; ATOM:       # BB#0:
-; ATOM-NEXT:    movapd (%rdi), %xmm1
+; ATOM-NEXT:    movapd (%rdi), %xmm1 # sched: [1:1.00]
 ; ATOM-NEXT:    sqrtsd %xmm0, %xmm0
 ; ATOM-NEXT:    sqrtsd %xmm1, %xmm1
-; ATOM-NEXT:    addpd %xmm1, %xmm0
-; ATOM-NEXT:    retq
+; ATOM-NEXT:    addpd %xmm1, %xmm0 # sched: [6:3.00]
+; ATOM-NEXT:    retq # sched: [79:39.50]
 ;
 ; SLM-LABEL: test_sqrtsd:
 ; SLM:       # BB#0:
@@ -6533,9 +6533,9 @@ define <2 x double> @test_subpd(<2 x dou
 ;
 ; ATOM-LABEL: test_subpd:
 ; ATOM:       # BB#0:
-; ATOM-NEXT:    subpd %xmm1, %xmm0
-; ATOM-NEXT:    subpd (%rdi), %xmm0
-; ATOM-NEXT:    retq
+; ATOM-NEXT:    subpd %xmm1, %xmm0 # sched: [6:3.00]
+; ATOM-NEXT:    subpd (%rdi), %xmm0 # sched: [7:3.50]
+; ATOM-NEXT:    retq # sched: [79:39.50]
 ;
 ; SLM-LABEL: test_subpd:
 ; SLM:       # BB#0:
@@ -6581,9 +6581,9 @@ define double @test_subsd(double %a0, do
 ;
 ; ATOM-LABEL: test_subsd:
 ; ATOM:       # BB#0:
-; ATOM-NEXT:    subsd %xmm1, %xmm0
-; ATOM-NEXT:    subsd (%rdi), %xmm0
-; ATOM-NEXT:    retq
+; ATOM-NEXT:    subsd %xmm1, %xmm0 # sched: [5:5.00]
+; ATOM-NEXT:    subsd (%rdi), %xmm0 # sched: [5:5.00]
+; ATOM-NEXT:    retq # sched: [79:39.50]
 ;
 ; SLM-LABEL: test_subsd:
 ; SLM:       # BB#0:
@@ -6637,17 +6637,17 @@ define i32 @test_ucomisd(<2 x double> %a
 ;
 ; ATOM-LABEL: test_ucomisd:
 ; ATOM:       # BB#0:
-; ATOM-NEXT:    ucomisd %xmm1, %xmm0
-; ATOM-NEXT:    setnp %al
-; ATOM-NEXT:    sete %cl
-; ATOM-NEXT:    andb %al, %cl
-; ATOM-NEXT:    ucomisd (%rdi), %xmm0
-; ATOM-NEXT:    setnp %al
-; ATOM-NEXT:    sete %dl
-; ATOM-NEXT:    andb %al, %dl
-; ATOM-NEXT:    orb %cl, %dl
-; ATOM-NEXT:    movzbl %dl, %eax
-; ATOM-NEXT:    retq
+; ATOM-NEXT:    ucomisd %xmm1, %xmm0 # sched: [9:4.50]
+; ATOM-NEXT:    setnp %al # sched: [1:0.50]
+; ATOM-NEXT:    sete %cl # sched: [1:0.50]
+; ATOM-NEXT:    andb %al, %cl # sched: [1:0.50]
+; ATOM-NEXT:    ucomisd (%rdi), %xmm0 # sched: [10:5.00]
+; ATOM-NEXT:    setnp %al # sched: [1:0.50]
+; ATOM-NEXT:    sete %dl # sched: [1:0.50]
+; ATOM-NEXT:    andb %al, %dl # sched: [1:0.50]
+; ATOM-NEXT:    orb %cl, %dl # sched: [1:0.50]
+; ATOM-NEXT:    movzbl %dl, %eax # sched: [1:1.00]
+; ATOM-NEXT:    retq # sched: [79:39.50]
 ;
 ; SLM-LABEL: test_ucomisd:
 ; SLM:       # BB#0:
@@ -6736,10 +6736,10 @@ define <2 x double> @test_unpckhpd(<2 x
 ;
 ; ATOM-LABEL: test_unpckhpd:
 ; ATOM:       # BB#0:
-; ATOM-NEXT:    unpckhpd {{.*#+}} xmm0 = xmm0[1],xmm1[1]
-; ATOM-NEXT:    unpckhpd {{.*#+}} xmm1 = xmm1[1],mem[1]
-; ATOM-NEXT:    addpd %xmm1, %xmm0
-; ATOM-NEXT:    retq
+; ATOM-NEXT:    unpckhpd {{.*#+}} xmm0 = xmm0[1],xmm1[1] sched: [1:1.00]
+; ATOM-NEXT:    unpckhpd {{.*#+}} xmm1 = xmm1[1],mem[1] sched: [1:1.00]
+; ATOM-NEXT:    addpd %xmm1, %xmm0 # sched: [6:3.00]
+; ATOM-NEXT:    retq # sched: [79:39.50]
 ;
 ; SLM-LABEL: test_unpckhpd:
 ; SLM:       # BB#0:
@@ -6794,12 +6794,12 @@ define <2 x double> @test_unpcklpd(<2 x
 ;
 ; ATOM-LABEL: test_unpcklpd:
 ; ATOM:       # BB#0:
-; ATOM-NEXT:    unpcklpd {{.*#+}} xmm0 = xmm0[0],xmm1[0]
-; ATOM-NEXT:    movapd %xmm0, %xmm1
-; ATOM-NEXT:    unpcklpd {{.*#+}} xmm1 = xmm1[0],mem[0]
-; ATOM-NEXT:    addpd %xmm0, %xmm1
-; ATOM-NEXT:    movapd %xmm1, %xmm0
-; ATOM-NEXT:    retq
+; ATOM-NEXT:    unpcklpd {{.*#+}} xmm0 = xmm0[0],xmm1[0] sched: [1:1.00]
+; ATOM-NEXT:    movapd %xmm0, %xmm1 # sched: [1:0.50]
+; ATOM-NEXT:    unpcklpd {{.*#+}} xmm1 = xmm1[0],mem[0] sched: [1:1.00]
+; ATOM-NEXT:    addpd %xmm0, %xmm1 # sched: [6:3.00]
+; ATOM-NEXT:    movapd %xmm1, %xmm0 # sched: [1:0.50]
+; ATOM-NEXT:    retq # sched: [79:39.50]
 ;
 ; SLM-LABEL: test_unpcklpd:
 ; SLM:       # BB#0:
@@ -6856,8 +6856,8 @@ define <2 x double> @test_xorpd(<2 x dou
 ; ATOM:       # BB#0:
 ; ATOM-NEXT:    xorpd %xmm1, %xmm0
 ; ATOM-NEXT:    xorpd (%rdi), %xmm0
-; ATOM-NEXT:    addpd %xmm1, %xmm0
-; ATOM-NEXT:    retq
+; ATOM-NEXT:    addpd %xmm1, %xmm0 # sched: [6:3.00]
+; ATOM-NEXT:    retq # sched: [79:39.50]
 ;
 ; SLM-LABEL: test_xorpd:
 ; SLM:       # BB#0:

Modified: llvm/trunk/test/CodeGen/X86/sse3-schedule.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/sse3-schedule.ll?rev=309666&r1=309665&r2=309666&view=diff
==============================================================================
--- llvm/trunk/test/CodeGen/X86/sse3-schedule.ll (original)
+++ llvm/trunk/test/CodeGen/X86/sse3-schedule.ll Tue Aug  1 02:15:43 2017
@@ -18,9 +18,9 @@ define <2 x double> @test_addsubpd(<2 x
 ;
 ; ATOM-LABEL: test_addsubpd:
 ; ATOM:       # BB#0:
-; ATOM-NEXT:    addsubpd %xmm1, %xmm0
-; ATOM-NEXT:    addsubpd (%rdi), %xmm0
-; ATOM-NEXT:    retq
+; ATOM-NEXT:    addsubpd %xmm1, %xmm0 # sched: [6:3.00]
+; ATOM-NEXT:    addsubpd (%rdi), %xmm0 # sched: [6:3.00]
+; ATOM-NEXT:    retq # sched: [79:39.50]
 ;
 ; SLM-LABEL: test_addsubpd:
 ; SLM:       # BB#0:
@@ -67,9 +67,9 @@ define <4 x float> @test_addsubps(<4 x f
 ;
 ; ATOM-LABEL: test_addsubps:
 ; ATOM:       # BB#0:
-; ATOM-NEXT:    addsubps %xmm1, %xmm0
-; ATOM-NEXT:    addsubps (%rdi), %xmm0
-; ATOM-NEXT:    retq
+; ATOM-NEXT:    addsubps %xmm1, %xmm0 # sched: [5:5.00]
+; ATOM-NEXT:    addsubps (%rdi), %xmm0 # sched: [5:5.00]
+; ATOM-NEXT:    retq # sched: [79:39.50]
 ;
 ; SLM-LABEL: test_addsubps:
 ; SLM:       # BB#0:
@@ -116,9 +116,9 @@ define <2 x double> @test_haddpd(<2 x do
 ;
 ; ATOM-LABEL: test_haddpd:
 ; ATOM:       # BB#0:
-; ATOM-NEXT:    haddpd %xmm1, %xmm0
-; ATOM-NEXT:    haddpd (%rdi), %xmm0
-; ATOM-NEXT:    retq
+; ATOM-NEXT:    haddpd %xmm1, %xmm0 # sched: [8:4.00]
+; ATOM-NEXT:    haddpd (%rdi), %xmm0 # sched: [9:4.50]
+; ATOM-NEXT:    retq # sched: [79:39.50]
 ;
 ; SLM-LABEL: test_haddpd:
 ; SLM:       # BB#0:
@@ -165,9 +165,9 @@ define <4 x float> @test_haddps(<4 x flo
 ;
 ; ATOM-LABEL: test_haddps:
 ; ATOM:       # BB#0:
-; ATOM-NEXT:    haddps %xmm1, %xmm0
-; ATOM-NEXT:    haddps (%rdi), %xmm0
-; ATOM-NEXT:    retq
+; ATOM-NEXT:    haddps %xmm1, %xmm0 # sched: [8:4.00]
+; ATOM-NEXT:    haddps (%rdi), %xmm0 # sched: [9:4.50]
+; ATOM-NEXT:    retq # sched: [79:39.50]
 ;
 ; SLM-LABEL: test_haddps:
 ; SLM:       # BB#0:
@@ -214,9 +214,9 @@ define <2 x double> @test_hsubpd(<2 x do
 ;
 ; ATOM-LABEL: test_hsubpd:
 ; ATOM:       # BB#0:
-; ATOM-NEXT:    hsubpd %xmm1, %xmm0
-; ATOM-NEXT:    hsubpd (%rdi), %xmm0
-; ATOM-NEXT:    retq
+; ATOM-NEXT:    hsubpd %xmm1, %xmm0 # sched: [8:4.00]
+; ATOM-NEXT:    hsubpd (%rdi), %xmm0 # sched: [9:4.50]
+; ATOM-NEXT:    retq # sched: [79:39.50]
 ;
 ; SLM-LABEL: test_hsubpd:
 ; SLM:       # BB#0:
@@ -263,9 +263,9 @@ define <4 x float> @test_hsubps(<4 x flo
 ;
 ; ATOM-LABEL: test_hsubps:
 ; ATOM:       # BB#0:
-; ATOM-NEXT:    hsubps %xmm1, %xmm0
-; ATOM-NEXT:    hsubps (%rdi), %xmm0
-; ATOM-NEXT:    retq
+; ATOM-NEXT:    hsubps %xmm1, %xmm0 # sched: [8:4.00]
+; ATOM-NEXT:    hsubps (%rdi), %xmm0 # sched: [9:4.50]
+; ATOM-NEXT:    retq # sched: [79:39.50]
 ;
 ; SLM-LABEL: test_hsubps:
 ; SLM:       # BB#0:
@@ -311,10 +311,10 @@ define <16 x i8> @test_lddqu(i8* %a0) {
 ;
 ; ATOM-LABEL: test_lddqu:
 ; ATOM:       # BB#0:
-; ATOM-NEXT:    lddqu (%rdi), %xmm0
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    retq
+; ATOM-NEXT:    lddqu (%rdi), %xmm0 # sched: [3:1.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    retq # sched: [79:39.50]
 ;
 ; SLM-LABEL: test_lddqu:
 ; SLM:       # BB#0:
@@ -355,11 +355,11 @@ define <2 x double> @test_movddup(<2 x d
 ;
 ; ATOM-LABEL: test_movddup:
 ; ATOM:       # BB#0:
-; ATOM-NEXT:    movddup {{.*#+}} xmm1 = mem[0,0]
-; ATOM-NEXT:    movddup {{.*#+}} xmm0 = xmm0[0,0]
-; ATOM-NEXT:    addpd %xmm0, %xmm1
-; ATOM-NEXT:    movapd %xmm1, %xmm0
-; ATOM-NEXT:    retq
+; ATOM-NEXT:    movddup {{.*#+}} xmm1 = mem[0,0] sched: [1:1.00]
+; ATOM-NEXT:    movddup {{.*#+}} xmm0 = xmm0[0,0] sched: [1:1.00]
+; ATOM-NEXT:    addpd %xmm0, %xmm1 # sched: [6:3.00]
+; ATOM-NEXT:    movapd %xmm1, %xmm0 # sched: [1:0.50]
+; ATOM-NEXT:    retq # sched: [79:39.50]
 ;
 ; SLM-LABEL: test_movddup:
 ; SLM:       # BB#0:
@@ -412,11 +412,11 @@ define <4 x float> @test_movshdup(<4 x f
 ;
 ; ATOM-LABEL: test_movshdup:
 ; ATOM:       # BB#0:
-; ATOM-NEXT:    movshdup {{.*#+}} xmm1 = mem[1,1,3,3]
-; ATOM-NEXT:    movshdup {{.*#+}} xmm0 = xmm0[1,1,3,3]
-; ATOM-NEXT:    addps %xmm0, %xmm1
-; ATOM-NEXT:    movaps %xmm1, %xmm0
-; ATOM-NEXT:    retq
+; ATOM-NEXT:    movshdup {{.*#+}} xmm1 = mem[1,1,3,3] sched: [1:1.00]
+; ATOM-NEXT:    movshdup {{.*#+}} xmm0 = xmm0[1,1,3,3] sched: [1:1.00]
+; ATOM-NEXT:    addps %xmm0, %xmm1 # sched: [5:5.00]
+; ATOM-NEXT:    movaps %xmm1, %xmm0 # sched: [1:0.50]
+; ATOM-NEXT:    retq # sched: [79:39.50]
 ;
 ; SLM-LABEL: test_movshdup:
 ; SLM:       # BB#0:
@@ -469,11 +469,11 @@ define <4 x float> @test_movsldup(<4 x f
 ;
 ; ATOM-LABEL: test_movsldup:
 ; ATOM:       # BB#0:
-; ATOM-NEXT:    movsldup {{.*#+}} xmm1 = mem[0,0,2,2]
-; ATOM-NEXT:    movsldup {{.*#+}} xmm0 = xmm0[0,0,2,2]
-; ATOM-NEXT:    addps %xmm0, %xmm1
-; ATOM-NEXT:    movaps %xmm1, %xmm0
-; ATOM-NEXT:    retq
+; ATOM-NEXT:    movsldup {{.*#+}} xmm1 = mem[0,0,2,2] sched: [1:1.00]
+; ATOM-NEXT:    movsldup {{.*#+}} xmm0 = xmm0[0,0,2,2] sched: [1:1.00]
+; ATOM-NEXT:    addps %xmm0, %xmm1 # sched: [5:5.00]
+; ATOM-NEXT:    movaps %xmm1, %xmm0 # sched: [1:0.50]
+; ATOM-NEXT:    retq # sched: [79:39.50]
 ;
 ; SLM-LABEL: test_movsldup:
 ; SLM:       # BB#0:

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=309666&r1=309665&r2=309666&view=diff
==============================================================================
--- llvm/trunk/test/CodeGen/X86/ssse3-schedule.ll (original)
+++ llvm/trunk/test/CodeGen/X86/ssse3-schedule.ll Tue Aug  1 02:15:43 2017
@@ -19,11 +19,11 @@ define <16 x i8> @test_pabsb(<16 x i8> %
 ;
 ; ATOM-LABEL: test_pabsb:
 ; ATOM:       # BB#0:
-; ATOM-NEXT:    pabsb (%rdi), %xmm1
-; ATOM-NEXT:    pabsb %xmm0, %xmm0
-; ATOM-NEXT:    por %xmm0, %xmm1
-; ATOM-NEXT:    movdqa %xmm1, %xmm0
-; ATOM-NEXT:    retq
+; ATOM-NEXT:    pabsb (%rdi), %xmm1 # sched: [1:1.00]
+; ATOM-NEXT:    pabsb %xmm0, %xmm0 # sched: [1:0.50]
+; ATOM-NEXT:    por %xmm0, %xmm1 # sched: [1:0.50]
+; ATOM-NEXT:    movdqa %xmm1, %xmm0 # sched: [1:0.50]
+; ATOM-NEXT:    retq # sched: [79:39.50]
 ;
 ; SLM-LABEL: test_pabsb:
 ; SLM:       # BB#0:
@@ -77,11 +77,11 @@ define <4 x i32> @test_pabsd(<4 x i32> %
 ;
 ; ATOM-LABEL: test_pabsd:
 ; ATOM:       # BB#0:
-; ATOM-NEXT:    pabsd (%rdi), %xmm1
-; ATOM-NEXT:    pabsd %xmm0, %xmm0
-; ATOM-NEXT:    por %xmm0, %xmm1
-; ATOM-NEXT:    movdqa %xmm1, %xmm0
-; ATOM-NEXT:    retq
+; ATOM-NEXT:    pabsd (%rdi), %xmm1 # sched: [1:1.00]
+; ATOM-NEXT:    pabsd %xmm0, %xmm0 # sched: [1:0.50]
+; ATOM-NEXT:    por %xmm0, %xmm1 # sched: [1:0.50]
+; ATOM-NEXT:    movdqa %xmm1, %xmm0 # sched: [1:0.50]
+; ATOM-NEXT:    retq # sched: [79:39.50]
 ;
 ; SLM-LABEL: test_pabsd:
 ; SLM:       # BB#0:
@@ -133,14 +133,14 @@ define <8 x i16> @test_pabsw(<8 x i16> %
 ;
 ; ATOM-LABEL: test_pabsw:
 ; ATOM:       # BB#0:
-; ATOM-NEXT:    pabsw %xmm0, %xmm0
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    retq
+; ATOM-NEXT:    pabsw %xmm0, %xmm0 # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    retq # sched: [79:39.50]
 ;
 ; SLM-LABEL: test_pabsw:
 ; SLM:       # BB#0:
@@ -184,12 +184,12 @@ define <8 x i16> @test_palignr(<8 x i16>
 ;
 ; ATOM-LABEL: test_palignr:
 ; ATOM:       # BB#0:
-; ATOM-NEXT:    palignr {{.*#+}} xmm1 = xmm0[6,7,8,9,10,11,12,13,14,15],xmm1[0,1,2,3,4,5]
-; ATOM-NEXT:    palignr {{.*#+}} xmm1 = mem[14,15],xmm1[0,1,2,3,4,5,6,7,8,9,10,11,12,13]
-; ATOM-NEXT:    movdqa %xmm1, %xmm0
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    retq
+; ATOM-NEXT:    palignr {{.*#+}} xmm1 = xmm0[6,7,8,9,10,11,12,13,14,15],xmm1[0,1,2,3,4,5] sched: [1:1.00]
+; ATOM-NEXT:    palignr {{.*#+}} xmm1 = mem[14,15],xmm1[0,1,2,3,4,5,6,7,8,9,10,11,12,13] sched: [1:1.00]
+; ATOM-NEXT:    movdqa %xmm1, %xmm0 # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    retq # sched: [79:39.50]
 ;
 ; SLM-LABEL: test_palignr:
 ; SLM:       # BB#0:
@@ -236,9 +236,9 @@ define <4 x i32> @test_phaddd(<4 x i32>
 ;
 ; ATOM-LABEL: test_phaddd:
 ; ATOM:       # BB#0:
-; ATOM-NEXT:    phaddd %xmm1, %xmm0
-; ATOM-NEXT:    phaddd (%rdi), %xmm0
-; ATOM-NEXT:    retq
+; ATOM-NEXT:    phaddd %xmm1, %xmm0 # sched: [3:1.50]
+; ATOM-NEXT:    phaddd (%rdi), %xmm0 # sched: [4:2.00]
+; ATOM-NEXT:    retq # sched: [79:39.50]
 ;
 ; SLM-LABEL: test_phaddd:
 ; SLM:       # BB#0:
@@ -287,15 +287,15 @@ define <8 x i16> @test_phaddsw(<8 x i16>
 ; ATOM:       # BB#0:
 ; ATOM-NEXT:    phaddsw %xmm1, %xmm0
 ; ATOM-NEXT:    phaddsw (%rdi), %xmm0
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    retq
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    retq # sched: [79:39.50]
 ;
 ; SLM-LABEL: test_phaddsw:
 ; SLM:       # BB#0:
@@ -342,9 +342,9 @@ define <8 x i16> @test_phaddw(<8 x i16>
 ;
 ; ATOM-LABEL: test_phaddw:
 ; ATOM:       # BB#0:
-; ATOM-NEXT:    phaddw %xmm1, %xmm0
-; ATOM-NEXT:    phaddw (%rdi), %xmm0
-; ATOM-NEXT:    retq
+; ATOM-NEXT:    phaddw %xmm1, %xmm0 # sched: [7:3.50]
+; ATOM-NEXT:    phaddw (%rdi), %xmm0 # sched: [8:4.00]
+; ATOM-NEXT:    retq # sched: [79:39.50]
 ;
 ; SLM-LABEL: test_phaddw:
 ; SLM:       # BB#0:
@@ -391,9 +391,9 @@ define <4 x i32> @test_phsubd(<4 x i32>
 ;
 ; ATOM-LABEL: test_phsubd:
 ; ATOM:       # BB#0:
-; ATOM-NEXT:    phsubd %xmm1, %xmm0
-; ATOM-NEXT:    phsubd (%rdi), %xmm0
-; ATOM-NEXT:    retq
+; ATOM-NEXT:    phsubd %xmm1, %xmm0 # sched: [3:1.50]
+; ATOM-NEXT:    phsubd (%rdi), %xmm0 # sched: [4:2.00]
+; ATOM-NEXT:    retq # sched: [79:39.50]
 ;
 ; SLM-LABEL: test_phsubd:
 ; SLM:       # BB#0:
@@ -442,15 +442,15 @@ define <8 x i16> @test_phsubsw(<8 x i16>
 ; ATOM:       # BB#0:
 ; ATOM-NEXT:    phsubsw %xmm1, %xmm0
 ; ATOM-NEXT:    phsubsw (%rdi), %xmm0
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    retq
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    retq # sched: [79:39.50]
 ;
 ; SLM-LABEL: test_phsubsw:
 ; SLM:       # BB#0:
@@ -497,9 +497,9 @@ define <8 x i16> @test_phsubw(<8 x i16>
 ;
 ; ATOM-LABEL: test_phsubw:
 ; ATOM:       # BB#0:
-; ATOM-NEXT:    phsubw %xmm1, %xmm0
-; ATOM-NEXT:    phsubw (%rdi), %xmm0
-; ATOM-NEXT:    retq
+; ATOM-NEXT:    phsubw %xmm1, %xmm0 # sched: [7:3.50]
+; ATOM-NEXT:    phsubw (%rdi), %xmm0 # sched: [8:4.00]
+; ATOM-NEXT:    retq # sched: [79:39.50]
 ;
 ; SLM-LABEL: test_phsubw:
 ; SLM:       # BB#0:
@@ -546,9 +546,9 @@ define <8 x i16> @test_pmaddubsw(<16 x i
 ;
 ; ATOM-LABEL: test_pmaddubsw:
 ; ATOM:       # BB#0:
-; ATOM-NEXT:    pmaddubsw %xmm1, %xmm0
-; ATOM-NEXT:    pmaddubsw (%rdi), %xmm0
-; ATOM-NEXT:    retq
+; ATOM-NEXT:    pmaddubsw %xmm1, %xmm0 # sched: [5:5.00]
+; ATOM-NEXT:    pmaddubsw (%rdi), %xmm0 # sched: [5:5.00]
+; ATOM-NEXT:    retq # sched: [79:39.50]
 ;
 ; SLM-LABEL: test_pmaddubsw:
 ; SLM:       # BB#0:
@@ -595,8 +595,8 @@ define <8 x i16> @test_pmulhrsw(<8 x i16
 ;
 ; ATOM-LABEL: test_pmulhrsw:
 ; ATOM:       # BB#0:
-; ATOM-NEXT:    pmulhrsw %xmm1, %xmm0
-; ATOM-NEXT:    retq
+; ATOM-NEXT:    pmulhrsw %xmm1, %xmm0 # sched: [5:5.00]
+; ATOM-NEXT:    retq # sched: [79:39.50]
 ;
 ; SLM-LABEL: test_pmulhrsw:
 ; SLM:       # BB#0:
@@ -638,9 +638,9 @@ define <16 x i8> @test_pshufb(<16 x i8>
 ;
 ; ATOM-LABEL: test_pshufb:
 ; ATOM:       # BB#0:
-; ATOM-NEXT:    pshufb %xmm1, %xmm0
-; ATOM-NEXT:    pshufb (%rdi), %xmm0
-; ATOM-NEXT:    retq
+; ATOM-NEXT:    pshufb %xmm1, %xmm0 # sched: [4:2.00]
+; ATOM-NEXT:    pshufb (%rdi), %xmm0 # sched: [5:2.50]
+; ATOM-NEXT:    retq # sched: [79:39.50]
 ;
 ; SLM-LABEL: test_pshufb:
 ; SLM:       # BB#0:
@@ -689,15 +689,15 @@ define <16 x i8> @test_psignb(<16 x i8>
 ; ATOM:       # BB#0:
 ; ATOM-NEXT:    psignb %xmm1, %xmm0
 ; ATOM-NEXT:    psignb (%rdi), %xmm0
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    retq
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    retq # sched: [79:39.50]
 ;
 ; SLM-LABEL: test_psignb:
 ; SLM:       # BB#0:
@@ -746,15 +746,15 @@ define <4 x i32> @test_psignd(<4 x i32>
 ; ATOM:       # BB#0:
 ; ATOM-NEXT:    psignd %xmm1, %xmm0
 ; ATOM-NEXT:    psignd (%rdi), %xmm0
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    retq
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    retq # sched: [79:39.50]
 ;
 ; SLM-LABEL: test_psignd:
 ; SLM:       # BB#0:
@@ -803,15 +803,15 @@ define <8 x i16> @test_psignw(<8 x i16>
 ; ATOM:       # BB#0:
 ; ATOM-NEXT:    psignw %xmm1, %xmm0
 ; ATOM-NEXT:    psignw (%rdi), %xmm0
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    nop
-; ATOM-NEXT:    retq
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    nop # sched: [1:0.50]
+; ATOM-NEXT:    retq # sched: [79:39.50]
 ;
 ; SLM-LABEL: test_psignw:
 ; SLM:       # BB#0:




More information about the llvm-commits mailing list