[llvm] r315985 - [X86][Skylake] fixed/updated regression test mmx-schedule.ll which failed after r315978.

Gadi Haber via llvm-commits llvm-commits at lists.llvm.org
Tue Oct 17 03:00:08 PDT 2017


Author: gadi.haber
Date: Tue Oct 17 03:00:08 2017
New Revision: 315985

URL: http://llvm.org/viewvc/llvm-project?rev=315985&view=rev
Log:
[X86][Skylake] fixed/updated regression test mmx-schedule.ll which failed after r315978.

Change-Id: I60cd7e03ea6c3d9a3dc661a882458e83feca66e3

Modified:
    llvm/trunk/test/CodeGen/X86/mmx-schedule.ll

Modified: llvm/trunk/test/CodeGen/X86/mmx-schedule.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/mmx-schedule.ll?rev=315985&r1=315984&r2=315985&view=diff
==============================================================================
--- llvm/trunk/test/CodeGen/X86/mmx-schedule.ll (original)
+++ llvm/trunk/test/CodeGen/X86/mmx-schedule.ll Tue Oct 17 03:00:08 2017
@@ -54,10 +54,10 @@ define i64 @test_cvtpd2pi(<2 x double> %
 ; SKYLAKE-LABEL: test_cvtpd2pi:
 ; SKYLAKE:       # BB#0:
 ; SKYLAKE-NEXT:    cvtpd2pi %xmm0, %mm0 # sched: [5:1.00]
-; SKYLAKE-NEXT:    cvtpd2pi (%rdi), %mm1 # sched: [5:1.00]
-; SKYLAKE-NEXT:    por %mm0, %mm1 # sched: [1:1.00]
-; SKYLAKE-NEXT:    movd %mm1, %rax # sched: [1:0.50]
-; SKYLAKE-NEXT:    retq # sched: [2:1.00]
+; SKYLAKE-NEXT:    cvtpd2pi (%rdi), %mm1 # sched: [11:1.00]
+; SKYLAKE-NEXT:    por %mm0, %mm1 # sched: [1:0.50]
+; SKYLAKE-NEXT:    movd %mm1, %rax # sched: [1:0.33]
+; SKYLAKE-NEXT:    retq # sched: [7:1.00]
 ;
 ; SKX-LABEL: test_cvtpd2pi:
 ; SKX:       # BB#0:
@@ -130,9 +130,9 @@ define <2 x double> @test_cvtpi2pd(x86_m
 ; SKYLAKE-LABEL: test_cvtpi2pd:
 ; SKYLAKE:       # BB#0:
 ; SKYLAKE-NEXT:    cvtpi2pd %mm0, %xmm0 # sched: [5:1.00]
-; SKYLAKE-NEXT:    cvtpi2pd (%rdi), %xmm1 # sched: [5:1.00]
+; SKYLAKE-NEXT:    cvtpi2pd (%rdi), %xmm1 # sched: [10:1.00]
 ; SKYLAKE-NEXT:    vaddpd %xmm1, %xmm0, %xmm0 # sched: [4:0.50]
-; SKYLAKE-NEXT:    retq # sched: [2:1.00]
+; SKYLAKE-NEXT:    retq # sched: [7:1.00]
 ;
 ; SKX-LABEL: test_cvtpi2pd:
 ; SKX:       # BB#0:
@@ -201,9 +201,9 @@ define <4 x float> @test_cvtpi2ps(x86_mm
 ; SKYLAKE-LABEL: test_cvtpi2ps:
 ; SKYLAKE:       # BB#0:
 ; SKYLAKE-NEXT:    cvtpi2ps %mm0, %xmm0 # sched: [6:2.00]
-; SKYLAKE-NEXT:    cvtpi2ps (%rdi), %xmm1 # sched: [4:1.00]
+; SKYLAKE-NEXT:    cvtpi2ps (%rdi), %xmm1 # sched: [9:1.00]
 ; SKYLAKE-NEXT:    vaddps %xmm1, %xmm0, %xmm0 # sched: [4:0.50]
-; SKYLAKE-NEXT:    retq # sched: [2:1.00]
+; SKYLAKE-NEXT:    retq # sched: [7:1.00]
 ;
 ; SKX-LABEL: test_cvtpi2ps:
 ; SKX:       # BB#0:
@@ -277,10 +277,10 @@ define i64 @test_cvtps2pi(<4 x float> %a
 ; SKYLAKE-LABEL: test_cvtps2pi:
 ; SKYLAKE:       # BB#0:
 ; SKYLAKE-NEXT:    cvtps2pi %xmm0, %mm0 # sched: [5:1.00]
-; SKYLAKE-NEXT:    cvtps2pi (%rdi), %mm1 # sched: [4:0.50]
-; SKYLAKE-NEXT:    por %mm0, %mm1 # sched: [1:1.00]
-; SKYLAKE-NEXT:    movd %mm1, %rax # sched: [1:0.50]
-; SKYLAKE-NEXT:    retq # sched: [2:1.00]
+; SKYLAKE-NEXT:    cvtps2pi (%rdi), %mm1 # sched: [9:0.50]
+; SKYLAKE-NEXT:    por %mm0, %mm1 # sched: [1:0.50]
+; SKYLAKE-NEXT:    movd %mm1, %rax # sched: [1:0.33]
+; SKYLAKE-NEXT:    retq # sched: [7:1.00]
 ;
 ; SKX-LABEL: test_cvtps2pi:
 ; SKX:       # BB#0:
@@ -358,10 +358,10 @@ define i64 @test_cvttpd2pi(<2 x double>
 ; SKYLAKE-LABEL: test_cvttpd2pi:
 ; SKYLAKE:       # BB#0:
 ; SKYLAKE-NEXT:    cvttpd2pi %xmm0, %mm0 # sched: [5:1.00]
-; SKYLAKE-NEXT:    cvttpd2pi (%rdi), %mm1 # sched: [5:1.00]
-; SKYLAKE-NEXT:    por %mm0, %mm1 # sched: [1:1.00]
-; SKYLAKE-NEXT:    movd %mm1, %rax # sched: [1:0.50]
-; SKYLAKE-NEXT:    retq # sched: [2:1.00]
+; SKYLAKE-NEXT:    cvttpd2pi (%rdi), %mm1 # sched: [11:1.00]
+; SKYLAKE-NEXT:    por %mm0, %mm1 # sched: [1:0.50]
+; SKYLAKE-NEXT:    movd %mm1, %rax # sched: [1:0.33]
+; SKYLAKE-NEXT:    retq # sched: [7:1.00]
 ;
 ; SKX-LABEL: test_cvttpd2pi:
 ; SKX:       # BB#0:
@@ -439,10 +439,10 @@ define i64 @test_cvttps2pi(<4 x float> %
 ; SKYLAKE-LABEL: test_cvttps2pi:
 ; SKYLAKE:       # BB#0:
 ; SKYLAKE-NEXT:    cvttps2pi %xmm0, %mm0 # sched: [5:1.00]
-; SKYLAKE-NEXT:    cvttps2pi (%rdi), %mm1 # sched: [4:0.50]
-; SKYLAKE-NEXT:    por %mm0, %mm1 # sched: [1:1.00]
-; SKYLAKE-NEXT:    movd %mm1, %rax # sched: [1:0.50]
-; SKYLAKE-NEXT:    retq # sched: [2:1.00]
+; SKYLAKE-NEXT:    cvttps2pi (%rdi), %mm1 # sched: [9:0.50]
+; SKYLAKE-NEXT:    por %mm0, %mm1 # sched: [1:0.50]
+; SKYLAKE-NEXT:    movd %mm1, %rax # sched: [1:0.33]
+; SKYLAKE-NEXT:    retq # sched: [7:1.00]
 ;
 ; SKX-LABEL: test_cvttps2pi:
 ; SKX:       # BB#0:
@@ -505,7 +505,7 @@ define void @test_emms() optsize {
 ; SKYLAKE-LABEL: test_emms:
 ; SKYLAKE:       # BB#0:
 ; SKYLAKE-NEXT:    emms # sched: [10:4.50]
-; SKYLAKE-NEXT:    retq # sched: [2:1.00]
+; SKYLAKE-NEXT:    retq # sched: [7:1.00]
 ;
 ; SKX-LABEL: test_emms:
 ; SKX:       # BB#0:
@@ -555,7 +555,7 @@ define void @test_maskmovq(x86_mmx %a0,
 ; SKYLAKE-LABEL: test_maskmovq:
 ; SKYLAKE:       # BB#0:
 ; SKYLAKE-NEXT:    maskmovq %mm1, %mm0 # sched: [1:1.00]
-; SKYLAKE-NEXT:    retq # sched: [2:1.00]
+; SKYLAKE-NEXT:    retq # sched: [7:1.00]
 ;
 ; SKX-LABEL: test_maskmovq:
 ; SKX:       # BB#0:
@@ -651,15 +651,15 @@ define i32 @test_movd(x86_mmx %a0, i32 %
 ; SKYLAKE:       # BB#0:
 ; SKYLAKE-NEXT:    vmovd %edi, %xmm0 # sched: [1:1.00]
 ; SKYLAKE-NEXT:    vmovq %xmm0, -{{[0-9]+}}(%rsp) # sched: [1:1.00]
-; SKYLAKE-NEXT:    movq -{{[0-9]+}}(%rsp), %mm1 # sched: [1:0.50]
-; SKYLAKE-NEXT:    vmovss {{.*#+}} xmm0 = mem[0],zero,zero,zero sched: [1:0.50]
+; SKYLAKE-NEXT:    movq -{{[0-9]+}}(%rsp), %mm1 # sched: [5:0.50]
+; SKYLAKE-NEXT:    vmovss {{.*#+}} xmm0 = mem[0],zero,zero,zero sched: [5:0.50]
 ; SKYLAKE-NEXT:    vmovlps %xmm0, -{{[0-9]+}}(%rsp) # sched: [1:1.00]
-; SKYLAKE-NEXT:    paddd -{{[0-9]+}}(%rsp), %mm1 # sched: [1:0.50]
-; SKYLAKE-NEXT:    paddd %mm1, %mm0 # sched: [1:1.00]
+; SKYLAKE-NEXT:    paddd -{{[0-9]+}}(%rsp), %mm1 # sched: [6:0.50]
+; SKYLAKE-NEXT:    paddd %mm1, %mm0 # sched: [1:0.50]
 ; SKYLAKE-NEXT:    movd %mm1, %ecx # sched: [2:1.00]
 ; SKYLAKE-NEXT:    movd %mm0, %eax # sched: [2:1.00]
 ; SKYLAKE-NEXT:    movl %ecx, (%rsi) # sched: [1:1.00]
-; SKYLAKE-NEXT:    retq # sched: [2:1.00]
+; SKYLAKE-NEXT:    retq # sched: [7:1.00]
 ;
 ; SKX-LABEL: test_movd:
 ; SKX:       # BB#0:
@@ -756,9 +756,9 @@ define i64 @test_movdq2q(<2 x i64> %a0)
 ; SKYLAKE-LABEL: test_movdq2q:
 ; SKYLAKE:       # BB#0:
 ; SKYLAKE-NEXT:    movdq2q %xmm0, %mm0 # sched: [2:1.00]
-; SKYLAKE-NEXT:    paddd %mm0, %mm0 # sched: [1:1.00]
-; SKYLAKE-NEXT:    movd %mm0, %rax # sched: [1:0.50]
-; SKYLAKE-NEXT:    retq # sched: [2:1.00]
+; SKYLAKE-NEXT:    paddd %mm0, %mm0 # sched: [1:0.50]
+; SKYLAKE-NEXT:    movd %mm0, %rax # sched: [1:0.33]
+; SKYLAKE-NEXT:    retq # sched: [7:1.00]
 ;
 ; SKX-LABEL: test_movdq2q:
 ; SKX:       # BB#0:
@@ -816,7 +816,7 @@ define void @test_movntq(x86_mmx* %a0, x
 ; SKYLAKE-LABEL: test_movntq:
 ; SKYLAKE:       # BB#0:
 ; SKYLAKE-NEXT:    movntq %mm0, (%rdi) # sched: [1:1.00]
-; SKYLAKE-NEXT:    retq # sched: [2:1.00]
+; SKYLAKE-NEXT:    retq # sched: [7:1.00]
 ;
 ; SKX-LABEL: test_movntq:
 ; SKX:       # BB#0:
@@ -877,10 +877,10 @@ define void @test_movq(i64 *%a0) {
 ;
 ; SKYLAKE-LABEL: test_movq:
 ; SKYLAKE:       # BB#0:
-; SKYLAKE-NEXT:    movq (%rdi), %mm0 # sched: [1:0.50]
-; SKYLAKE-NEXT:    paddd %mm0, %mm0 # sched: [1:1.00]
+; SKYLAKE-NEXT:    movq (%rdi), %mm0 # sched: [5:0.50]
+; SKYLAKE-NEXT:    paddd %mm0, %mm0 # sched: [1:0.50]
 ; SKYLAKE-NEXT:    movq %mm0, (%rdi) # sched: [1:1.00]
-; SKYLAKE-NEXT:    retq # sched: [2:1.00]
+; SKYLAKE-NEXT:    retq # sched: [7:1.00]
 ;
 ; SKX-LABEL: test_movq:
 ; SKX:       # BB#0:
@@ -939,7 +939,7 @@ define <2 x i64> @test_movq2dq(x86_mmx %
 ; SKYLAKE-LABEL: test_movq2dq:
 ; SKYLAKE:       # BB#0:
 ; SKYLAKE-NEXT:    movq2dq %mm0, %xmm0 # sched: [2:2.00]
-; SKYLAKE-NEXT:    retq # sched: [2:1.00]
+; SKYLAKE-NEXT:    retq # sched: [7:1.00]
 ;
 ; SKX-LABEL: test_movq2dq:
 ; SKX:       # BB#0:
@@ -998,10 +998,10 @@ define i64 @test_pabsb(x86_mmx *%a0) opt
 ;
 ; SKYLAKE-LABEL: test_pabsb:
 ; SKYLAKE:       # BB#0:
-; SKYLAKE-NEXT:    pabsb (%rdi), %mm0 # sched: [1:0.50]
-; SKYLAKE-NEXT:    pabsb %mm0, %mm0 # sched: [1:1.00]
-; SKYLAKE-NEXT:    movd %mm0, %rax # sched: [1:0.50]
-; SKYLAKE-NEXT:    retq # sched: [2:1.00]
+; SKYLAKE-NEXT:    pabsb (%rdi), %mm0 # sched: [6:0.50]
+; SKYLAKE-NEXT:    pabsb %mm0, %mm0 # sched: [1:0.50]
+; SKYLAKE-NEXT:    movd %mm0, %rax # sched: [1:0.33]
+; SKYLAKE-NEXT:    retq # sched: [7:1.00]
 ;
 ; SKX-LABEL: test_pabsb:
 ; SKX:       # BB#0:
@@ -1069,10 +1069,10 @@ define i64 @test_pabsd(x86_mmx *%a0) opt
 ;
 ; SKYLAKE-LABEL: test_pabsd:
 ; SKYLAKE:       # BB#0:
-; SKYLAKE-NEXT:    pabsd (%rdi), %mm0 # sched: [1:0.50]
-; SKYLAKE-NEXT:    pabsd %mm0, %mm0 # sched: [1:1.00]
-; SKYLAKE-NEXT:    movd %mm0, %rax # sched: [1:0.50]
-; SKYLAKE-NEXT:    retq # sched: [2:1.00]
+; SKYLAKE-NEXT:    pabsd (%rdi), %mm0 # sched: [6:0.50]
+; SKYLAKE-NEXT:    pabsd %mm0, %mm0 # sched: [1:0.50]
+; SKYLAKE-NEXT:    movd %mm0, %rax # sched: [1:0.33]
+; SKYLAKE-NEXT:    retq # sched: [7:1.00]
 ;
 ; SKX-LABEL: test_pabsd:
 ; SKX:       # BB#0:
@@ -1140,10 +1140,10 @@ define i64 @test_pabsw(x86_mmx *%a0) opt
 ;
 ; SKYLAKE-LABEL: test_pabsw:
 ; SKYLAKE:       # BB#0:
-; SKYLAKE-NEXT:    pabsw (%rdi), %mm0 # sched: [1:0.50]
-; SKYLAKE-NEXT:    pabsw %mm0, %mm0 # sched: [1:1.00]
-; SKYLAKE-NEXT:    movd %mm0, %rax # sched: [1:0.50]
-; SKYLAKE-NEXT:    retq # sched: [2:1.00]
+; SKYLAKE-NEXT:    pabsw (%rdi), %mm0 # sched: [6:0.50]
+; SKYLAKE-NEXT:    pabsw %mm0, %mm0 # sched: [1:0.50]
+; SKYLAKE-NEXT:    movd %mm0, %rax # sched: [1:0.33]
+; SKYLAKE-NEXT:    retq # sched: [7:1.00]
 ;
 ; SKX-LABEL: test_pabsw:
 ; SKX:       # BB#0:
@@ -1212,9 +1212,9 @@ define i64 @test_packssdw(x86_mmx %a0, x
 ; SKYLAKE-LABEL: test_packssdw:
 ; SKYLAKE:       # BB#0:
 ; SKYLAKE-NEXT:    packssdw %mm1, %mm0 # sched: [3:2.00]
-; SKYLAKE-NEXT:    packssdw (%rdi), %mm0 # sched: [2:2.00]
-; SKYLAKE-NEXT:    movd %mm0, %rax # sched: [1:0.50]
-; SKYLAKE-NEXT:    retq # sched: [2:1.00]
+; SKYLAKE-NEXT:    packssdw (%rdi), %mm0 # sched: [7:2.00]
+; SKYLAKE-NEXT:    movd %mm0, %rax # sched: [1:0.33]
+; SKYLAKE-NEXT:    retq # sched: [7:1.00]
 ;
 ; SKX-LABEL: test_packssdw:
 ; SKX:       # BB#0:
@@ -1283,9 +1283,9 @@ define i64 @test_packsswb(x86_mmx %a0, x
 ; SKYLAKE-LABEL: test_packsswb:
 ; SKYLAKE:       # BB#0:
 ; SKYLAKE-NEXT:    packsswb %mm1, %mm0 # sched: [3:2.00]
-; SKYLAKE-NEXT:    packsswb (%rdi), %mm0 # sched: [2:2.00]
-; SKYLAKE-NEXT:    movd %mm0, %rax # sched: [1:0.50]
-; SKYLAKE-NEXT:    retq # sched: [2:1.00]
+; SKYLAKE-NEXT:    packsswb (%rdi), %mm0 # sched: [7:2.00]
+; SKYLAKE-NEXT:    movd %mm0, %rax # sched: [1:0.33]
+; SKYLAKE-NEXT:    retq # sched: [7:1.00]
 ;
 ; SKX-LABEL: test_packsswb:
 ; SKX:       # BB#0:
@@ -1354,9 +1354,9 @@ define i64 @test_packuswb(x86_mmx %a0, x
 ; SKYLAKE-LABEL: test_packuswb:
 ; SKYLAKE:       # BB#0:
 ; SKYLAKE-NEXT:    packuswb %mm1, %mm0 # sched: [3:2.00]
-; SKYLAKE-NEXT:    packuswb (%rdi), %mm0 # sched: [2:2.00]
-; SKYLAKE-NEXT:    movd %mm0, %rax # sched: [1:0.50]
-; SKYLAKE-NEXT:    retq # sched: [2:1.00]
+; SKYLAKE-NEXT:    packuswb (%rdi), %mm0 # sched: [7:2.00]
+; SKYLAKE-NEXT:    movd %mm0, %rax # sched: [1:0.33]
+; SKYLAKE-NEXT:    retq # sched: [7:1.00]
 ;
 ; SKX-LABEL: test_packuswb:
 ; SKX:       # BB#0:
@@ -1424,10 +1424,10 @@ define i64 @test_paddb(x86_mmx %a0, x86_
 ;
 ; SKYLAKE-LABEL: test_paddb:
 ; SKYLAKE:       # BB#0:
-; SKYLAKE-NEXT:    paddb %mm1, %mm0 # sched: [1:1.00]
-; SKYLAKE-NEXT:    paddb (%rdi), %mm0 # sched: [1:0.50]
-; SKYLAKE-NEXT:    movd %mm0, %rax # sched: [1:0.50]
-; SKYLAKE-NEXT:    retq # sched: [2:1.00]
+; SKYLAKE-NEXT:    paddb %mm1, %mm0 # sched: [1:0.50]
+; SKYLAKE-NEXT:    paddb (%rdi), %mm0 # sched: [6:0.50]
+; SKYLAKE-NEXT:    movd %mm0, %rax # sched: [1:0.33]
+; SKYLAKE-NEXT:    retq # sched: [7:1.00]
 ;
 ; SKX-LABEL: test_paddb:
 ; SKX:       # BB#0:
@@ -1495,10 +1495,10 @@ define i64 @test_paddd(x86_mmx %a0, x86_
 ;
 ; SKYLAKE-LABEL: test_paddd:
 ; SKYLAKE:       # BB#0:
-; SKYLAKE-NEXT:    paddd %mm1, %mm0 # sched: [1:1.00]
-; SKYLAKE-NEXT:    paddd (%rdi), %mm0 # sched: [1:0.50]
-; SKYLAKE-NEXT:    movd %mm0, %rax # sched: [1:0.50]
-; SKYLAKE-NEXT:    retq # sched: [2:1.00]
+; SKYLAKE-NEXT:    paddd %mm1, %mm0 # sched: [1:0.50]
+; SKYLAKE-NEXT:    paddd (%rdi), %mm0 # sched: [6:0.50]
+; SKYLAKE-NEXT:    movd %mm0, %rax # sched: [1:0.33]
+; SKYLAKE-NEXT:    retq # sched: [7:1.00]
 ;
 ; SKX-LABEL: test_paddd:
 ; SKX:       # BB#0:
@@ -1566,10 +1566,10 @@ define i64 @test_paddq(x86_mmx %a0, x86_
 ;
 ; SKYLAKE-LABEL: test_paddq:
 ; SKYLAKE:       # BB#0:
-; SKYLAKE-NEXT:    paddq %mm1, %mm0 # sched: [1:1.00]
-; SKYLAKE-NEXT:    paddq (%rdi), %mm0 # sched: [1:0.50]
-; SKYLAKE-NEXT:    movd %mm0, %rax # sched: [1:0.50]
-; SKYLAKE-NEXT:    retq # sched: [2:1.00]
+; SKYLAKE-NEXT:    paddq %mm1, %mm0 # sched: [1:0.50]
+; SKYLAKE-NEXT:    paddq (%rdi), %mm0 # sched: [6:0.50]
+; SKYLAKE-NEXT:    movd %mm0, %rax # sched: [1:0.33]
+; SKYLAKE-NEXT:    retq # sched: [7:1.00]
 ;
 ; SKX-LABEL: test_paddq:
 ; SKX:       # BB#0:
@@ -1638,9 +1638,9 @@ define i64 @test_paddsb(x86_mmx %a0, x86
 ; SKYLAKE-LABEL: test_paddsb:
 ; SKYLAKE:       # BB#0:
 ; SKYLAKE-NEXT:    paddsb %mm1, %mm0 # sched: [1:1.00]
-; SKYLAKE-NEXT:    paddsb (%rdi), %mm0 # sched: [1:1.00]
-; SKYLAKE-NEXT:    movd %mm0, %rax # sched: [1:0.50]
-; SKYLAKE-NEXT:    retq # sched: [2:1.00]
+; SKYLAKE-NEXT:    paddsb (%rdi), %mm0 # sched: [6:1.00]
+; SKYLAKE-NEXT:    movd %mm0, %rax # sched: [1:0.33]
+; SKYLAKE-NEXT:    retq # sched: [7:1.00]
 ;
 ; SKX-LABEL: test_paddsb:
 ; SKX:       # BB#0:
@@ -1709,9 +1709,9 @@ define i64 @test_paddsw(x86_mmx %a0, x86
 ; SKYLAKE-LABEL: test_paddsw:
 ; SKYLAKE:       # BB#0:
 ; SKYLAKE-NEXT:    paddsw %mm1, %mm0 # sched: [1:1.00]
-; SKYLAKE-NEXT:    paddsw (%rdi), %mm0 # sched: [1:1.00]
-; SKYLAKE-NEXT:    movd %mm0, %rax # sched: [1:0.50]
-; SKYLAKE-NEXT:    retq # sched: [2:1.00]
+; SKYLAKE-NEXT:    paddsw (%rdi), %mm0 # sched: [6:1.00]
+; SKYLAKE-NEXT:    movd %mm0, %rax # sched: [1:0.33]
+; SKYLAKE-NEXT:    retq # sched: [7:1.00]
 ;
 ; SKX-LABEL: test_paddsw:
 ; SKX:       # BB#0:
@@ -1780,9 +1780,9 @@ define i64 @test_paddusb(x86_mmx %a0, x8
 ; SKYLAKE-LABEL: test_paddusb:
 ; SKYLAKE:       # BB#0:
 ; SKYLAKE-NEXT:    paddusb %mm1, %mm0 # sched: [1:1.00]
-; SKYLAKE-NEXT:    paddusb (%rdi), %mm0 # sched: [1:1.00]
-; SKYLAKE-NEXT:    movd %mm0, %rax # sched: [1:0.50]
-; SKYLAKE-NEXT:    retq # sched: [2:1.00]
+; SKYLAKE-NEXT:    paddusb (%rdi), %mm0 # sched: [6:1.00]
+; SKYLAKE-NEXT:    movd %mm0, %rax # sched: [1:0.33]
+; SKYLAKE-NEXT:    retq # sched: [7:1.00]
 ;
 ; SKX-LABEL: test_paddusb:
 ; SKX:       # BB#0:
@@ -1851,9 +1851,9 @@ define i64 @test_paddusw(x86_mmx %a0, x8
 ; SKYLAKE-LABEL: test_paddusw:
 ; SKYLAKE:       # BB#0:
 ; SKYLAKE-NEXT:    paddusw %mm1, %mm0 # sched: [1:1.00]
-; SKYLAKE-NEXT:    paddusw (%rdi), %mm0 # sched: [1:1.00]
-; SKYLAKE-NEXT:    movd %mm0, %rax # sched: [1:0.50]
-; SKYLAKE-NEXT:    retq # sched: [2:1.00]
+; SKYLAKE-NEXT:    paddusw (%rdi), %mm0 # sched: [6:1.00]
+; SKYLAKE-NEXT:    movd %mm0, %rax # sched: [1:0.33]
+; SKYLAKE-NEXT:    retq # sched: [7:1.00]
 ;
 ; SKX-LABEL: test_paddusw:
 ; SKX:       # BB#0:
@@ -1921,10 +1921,10 @@ define i64 @test_paddw(x86_mmx %a0, x86_
 ;
 ; SKYLAKE-LABEL: test_paddw:
 ; SKYLAKE:       # BB#0:
-; SKYLAKE-NEXT:    paddw %mm1, %mm0 # sched: [1:1.00]
-; SKYLAKE-NEXT:    paddw (%rdi), %mm0 # sched: [1:0.50]
-; SKYLAKE-NEXT:    movd %mm0, %rax # sched: [1:0.50]
-; SKYLAKE-NEXT:    retq # sched: [2:1.00]
+; SKYLAKE-NEXT:    paddw %mm1, %mm0 # sched: [1:0.50]
+; SKYLAKE-NEXT:    paddw (%rdi), %mm0 # sched: [6:0.50]
+; SKYLAKE-NEXT:    movd %mm0, %rax # sched: [1:0.33]
+; SKYLAKE-NEXT:    retq # sched: [7:1.00]
 ;
 ; SKX-LABEL: test_paddw:
 ; SKX:       # BB#0:
@@ -1993,9 +1993,9 @@ define i64 @test_palignr(x86_mmx %a0, x8
 ; SKYLAKE-LABEL: test_palignr:
 ; SKYLAKE:       # BB#0:
 ; SKYLAKE-NEXT:    palignr $1, %mm1, %mm0 # sched: [1:1.00]
-; SKYLAKE-NEXT:    palignr $1, (%rdi), %mm0 # sched: [1:1.00]
-; SKYLAKE-NEXT:    movd %mm0, %rax # sched: [1:0.50]
-; SKYLAKE-NEXT:    retq # sched: [2:1.00]
+; SKYLAKE-NEXT:    palignr $1, (%rdi), %mm0 # sched: [6:1.00]
+; SKYLAKE-NEXT:    movd %mm0, %rax # sched: [1:0.33]
+; SKYLAKE-NEXT:    retq # sched: [7:1.00]
 ;
 ; SKX-LABEL: test_palignr:
 ; SKX:       # BB#0:
@@ -2063,10 +2063,10 @@ define i64 @test_pand(x86_mmx %a0, x86_m
 ;
 ; SKYLAKE-LABEL: test_pand:
 ; SKYLAKE:       # BB#0:
-; SKYLAKE-NEXT:    pand %mm1, %mm0 # sched: [1:1.00]
-; SKYLAKE-NEXT:    pand (%rdi), %mm0 # sched: [1:0.50]
-; SKYLAKE-NEXT:    movd %mm0, %rax # sched: [1:0.50]
-; SKYLAKE-NEXT:    retq # sched: [2:1.00]
+; SKYLAKE-NEXT:    pand %mm1, %mm0 # sched: [1:0.50]
+; SKYLAKE-NEXT:    pand (%rdi), %mm0 # sched: [6:0.50]
+; SKYLAKE-NEXT:    movd %mm0, %rax # sched: [1:0.33]
+; SKYLAKE-NEXT:    retq # sched: [7:1.00]
 ;
 ; SKX-LABEL: test_pand:
 ; SKX:       # BB#0:
@@ -2134,10 +2134,10 @@ define i64 @test_pandn(x86_mmx %a0, x86_
 ;
 ; SKYLAKE-LABEL: test_pandn:
 ; SKYLAKE:       # BB#0:
-; SKYLAKE-NEXT:    pandn %mm1, %mm0 # sched: [1:1.00]
-; SKYLAKE-NEXT:    pandn (%rdi), %mm0 # sched: [1:0.50]
-; SKYLAKE-NEXT:    movd %mm0, %rax # sched: [1:0.50]
-; SKYLAKE-NEXT:    retq # sched: [2:1.00]
+; SKYLAKE-NEXT:    pandn %mm1, %mm0 # sched: [1:0.50]
+; SKYLAKE-NEXT:    pandn (%rdi), %mm0 # sched: [6:0.50]
+; SKYLAKE-NEXT:    movd %mm0, %rax # sched: [1:0.33]
+; SKYLAKE-NEXT:    retq # sched: [7:1.00]
 ;
 ; SKX-LABEL: test_pandn:
 ; SKX:       # BB#0:
@@ -2206,9 +2206,9 @@ define i64 @test_pavgb(x86_mmx %a0, x86_
 ; SKYLAKE-LABEL: test_pavgb:
 ; SKYLAKE:       # BB#0:
 ; SKYLAKE-NEXT:    pavgb %mm1, %mm0 # sched: [1:1.00]
-; SKYLAKE-NEXT:    pavgb (%rdi), %mm0 # sched: [1:1.00]
-; SKYLAKE-NEXT:    movd %mm0, %rax # sched: [1:0.50]
-; SKYLAKE-NEXT:    retq # sched: [2:1.00]
+; SKYLAKE-NEXT:    pavgb (%rdi), %mm0 # sched: [6:1.00]
+; SKYLAKE-NEXT:    movd %mm0, %rax # sched: [1:0.33]
+; SKYLAKE-NEXT:    retq # sched: [7:1.00]
 ;
 ; SKX-LABEL: test_pavgb:
 ; SKX:       # BB#0:
@@ -2277,9 +2277,9 @@ define i64 @test_pavgw(x86_mmx %a0, x86_
 ; SKYLAKE-LABEL: test_pavgw:
 ; SKYLAKE:       # BB#0:
 ; SKYLAKE-NEXT:    pavgw %mm1, %mm0 # sched: [1:1.00]
-; SKYLAKE-NEXT:    pavgw (%rdi), %mm0 # sched: [1:1.00]
-; SKYLAKE-NEXT:    movd %mm0, %rax # sched: [1:0.50]
-; SKYLAKE-NEXT:    retq # sched: [2:1.00]
+; SKYLAKE-NEXT:    pavgw (%rdi), %mm0 # sched: [6:1.00]
+; SKYLAKE-NEXT:    movd %mm0, %rax # sched: [1:0.33]
+; SKYLAKE-NEXT:    retq # sched: [7:1.00]
 ;
 ; SKX-LABEL: test_pavgw:
 ; SKX:       # BB#0:
@@ -2348,9 +2348,9 @@ define i64 @test_pcmpeqb(x86_mmx %a0, x8
 ; SKYLAKE-LABEL: test_pcmpeqb:
 ; SKYLAKE:       # BB#0:
 ; SKYLAKE-NEXT:    pcmpeqb %mm1, %mm0 # sched: [1:1.00]
-; SKYLAKE-NEXT:    pcmpeqb (%rdi), %mm0 # sched: [1:1.00]
-; SKYLAKE-NEXT:    movd %mm0, %rax # sched: [1:0.50]
-; SKYLAKE-NEXT:    retq # sched: [2:1.00]
+; SKYLAKE-NEXT:    pcmpeqb (%rdi), %mm0 # sched: [6:1.00]
+; SKYLAKE-NEXT:    movd %mm0, %rax # sched: [1:0.33]
+; SKYLAKE-NEXT:    retq # sched: [7:1.00]
 ;
 ; SKX-LABEL: test_pcmpeqb:
 ; SKX:       # BB#0:
@@ -2419,9 +2419,9 @@ define i64 @test_pcmpeqd(x86_mmx %a0, x8
 ; SKYLAKE-LABEL: test_pcmpeqd:
 ; SKYLAKE:       # BB#0:
 ; SKYLAKE-NEXT:    pcmpeqd %mm1, %mm0 # sched: [1:1.00]
-; SKYLAKE-NEXT:    pcmpeqd (%rdi), %mm0 # sched: [1:1.00]
-; SKYLAKE-NEXT:    movd %mm0, %rax # sched: [1:0.50]
-; SKYLAKE-NEXT:    retq # sched: [2:1.00]
+; SKYLAKE-NEXT:    pcmpeqd (%rdi), %mm0 # sched: [6:1.00]
+; SKYLAKE-NEXT:    movd %mm0, %rax # sched: [1:0.33]
+; SKYLAKE-NEXT:    retq # sched: [7:1.00]
 ;
 ; SKX-LABEL: test_pcmpeqd:
 ; SKX:       # BB#0:
@@ -2490,9 +2490,9 @@ define i64 @test_pcmpeqw(x86_mmx %a0, x8
 ; SKYLAKE-LABEL: test_pcmpeqw:
 ; SKYLAKE:       # BB#0:
 ; SKYLAKE-NEXT:    pcmpeqw %mm1, %mm0 # sched: [1:1.00]
-; SKYLAKE-NEXT:    pcmpeqw (%rdi), %mm0 # sched: [1:1.00]
-; SKYLAKE-NEXT:    movd %mm0, %rax # sched: [1:0.50]
-; SKYLAKE-NEXT:    retq # sched: [2:1.00]
+; SKYLAKE-NEXT:    pcmpeqw (%rdi), %mm0 # sched: [6:1.00]
+; SKYLAKE-NEXT:    movd %mm0, %rax # sched: [1:0.33]
+; SKYLAKE-NEXT:    retq # sched: [7:1.00]
 ;
 ; SKX-LABEL: test_pcmpeqw:
 ; SKX:       # BB#0:
@@ -2561,9 +2561,9 @@ define i64 @test_pcmpgtb(x86_mmx %a0, x8
 ; SKYLAKE-LABEL: test_pcmpgtb:
 ; SKYLAKE:       # BB#0:
 ; SKYLAKE-NEXT:    pcmpgtb %mm1, %mm0 # sched: [1:1.00]
-; SKYLAKE-NEXT:    pcmpgtb (%rdi), %mm0 # sched: [1:1.00]
-; SKYLAKE-NEXT:    movd %mm0, %rax # sched: [1:0.50]
-; SKYLAKE-NEXT:    retq # sched: [2:1.00]
+; SKYLAKE-NEXT:    pcmpgtb (%rdi), %mm0 # sched: [6:1.00]
+; SKYLAKE-NEXT:    movd %mm0, %rax # sched: [1:0.33]
+; SKYLAKE-NEXT:    retq # sched: [7:1.00]
 ;
 ; SKX-LABEL: test_pcmpgtb:
 ; SKX:       # BB#0:
@@ -2632,9 +2632,9 @@ define i64 @test_pcmpgtd(x86_mmx %a0, x8
 ; SKYLAKE-LABEL: test_pcmpgtd:
 ; SKYLAKE:       # BB#0:
 ; SKYLAKE-NEXT:    pcmpgtd %mm1, %mm0 # sched: [1:1.00]
-; SKYLAKE-NEXT:    pcmpgtd (%rdi), %mm0 # sched: [1:1.00]
-; SKYLAKE-NEXT:    movd %mm0, %rax # sched: [1:0.50]
-; SKYLAKE-NEXT:    retq # sched: [2:1.00]
+; SKYLAKE-NEXT:    pcmpgtd (%rdi), %mm0 # sched: [6:1.00]
+; SKYLAKE-NEXT:    movd %mm0, %rax # sched: [1:0.33]
+; SKYLAKE-NEXT:    retq # sched: [7:1.00]
 ;
 ; SKX-LABEL: test_pcmpgtd:
 ; SKX:       # BB#0:
@@ -2703,9 +2703,9 @@ define i64 @test_pcmpgtw(x86_mmx %a0, x8
 ; SKYLAKE-LABEL: test_pcmpgtw:
 ; SKYLAKE:       # BB#0:
 ; SKYLAKE-NEXT:    pcmpgtw %mm1, %mm0 # sched: [1:1.00]
-; SKYLAKE-NEXT:    pcmpgtw (%rdi), %mm0 # sched: [1:1.00]
-; SKYLAKE-NEXT:    movd %mm0, %rax # sched: [1:0.50]
-; SKYLAKE-NEXT:    retq # sched: [2:1.00]
+; SKYLAKE-NEXT:    pcmpgtw (%rdi), %mm0 # sched: [6:1.00]
+; SKYLAKE-NEXT:    movd %mm0, %rax # sched: [1:0.33]
+; SKYLAKE-NEXT:    retq # sched: [7:1.00]
 ;
 ; SKX-LABEL: test_pcmpgtw:
 ; SKX:       # BB#0:
@@ -2764,7 +2764,7 @@ define i32 @test_pextrw(x86_mmx %a0) opt
 ; SKYLAKE-LABEL: test_pextrw:
 ; SKYLAKE:       # BB#0:
 ; SKYLAKE-NEXT:    pextrw $0, %mm0, %eax # sched: [3:1.00]
-; SKYLAKE-NEXT:    retq # sched: [2:1.00]
+; SKYLAKE-NEXT:    retq # sched: [7:1.00]
 ;
 ; SKX-LABEL: test_pextrw:
 ; SKX:       # BB#0:
@@ -2824,9 +2824,9 @@ define i64 @test_phaddd(x86_mmx %a0, x86
 ; SKYLAKE-LABEL: test_phaddd:
 ; SKYLAKE:       # BB#0:
 ; SKYLAKE-NEXT:    phaddd %mm1, %mm0 # sched: [3:2.00]
-; SKYLAKE-NEXT:    phaddd (%rdi), %mm0 # sched: [3:2.00]
-; SKYLAKE-NEXT:    movd %mm0, %rax # sched: [1:0.50]
-; SKYLAKE-NEXT:    retq # sched: [2:1.00]
+; SKYLAKE-NEXT:    phaddd (%rdi), %mm0 # sched: [8:2.00]
+; SKYLAKE-NEXT:    movd %mm0, %rax # sched: [1:0.33]
+; SKYLAKE-NEXT:    retq # sched: [7:1.00]
 ;
 ; SKX-LABEL: test_phaddd:
 ; SKX:       # BB#0:
@@ -2895,9 +2895,9 @@ define i64 @test_phaddsw(x86_mmx %a0, x8
 ; SKYLAKE-LABEL: test_phaddsw:
 ; SKYLAKE:       # BB#0:
 ; SKYLAKE-NEXT:    phaddsw %mm1, %mm0 # sched: [3:2.00]
-; SKYLAKE-NEXT:    phaddsw (%rdi), %mm0 # sched: [3:2.00]
-; SKYLAKE-NEXT:    movd %mm0, %rax # sched: [1:0.50]
-; SKYLAKE-NEXT:    retq # sched: [2:1.00]
+; SKYLAKE-NEXT:    phaddsw (%rdi), %mm0 # sched: [8:2.00]
+; SKYLAKE-NEXT:    movd %mm0, %rax # sched: [1:0.33]
+; SKYLAKE-NEXT:    retq # sched: [7:1.00]
 ;
 ; SKX-LABEL: test_phaddsw:
 ; SKX:       # BB#0:
@@ -2966,9 +2966,9 @@ define i64 @test_phaddw(x86_mmx %a0, x86
 ; SKYLAKE-LABEL: test_phaddw:
 ; SKYLAKE:       # BB#0:
 ; SKYLAKE-NEXT:    phaddw %mm1, %mm0 # sched: [3:2.00]
-; SKYLAKE-NEXT:    phaddw (%rdi), %mm0 # sched: [3:2.00]
-; SKYLAKE-NEXT:    movd %mm0, %rax # sched: [1:0.50]
-; SKYLAKE-NEXT:    retq # sched: [2:1.00]
+; SKYLAKE-NEXT:    phaddw (%rdi), %mm0 # sched: [8:2.00]
+; SKYLAKE-NEXT:    movd %mm0, %rax # sched: [1:0.33]
+; SKYLAKE-NEXT:    retq # sched: [7:1.00]
 ;
 ; SKX-LABEL: test_phaddw:
 ; SKX:       # BB#0:
@@ -3037,9 +3037,9 @@ define i64 @test_phsubd(x86_mmx %a0, x86
 ; SKYLAKE-LABEL: test_phsubd:
 ; SKYLAKE:       # BB#0:
 ; SKYLAKE-NEXT:    phsubd %mm1, %mm0 # sched: [3:2.00]
-; SKYLAKE-NEXT:    phsubd (%rdi), %mm0 # sched: [3:2.00]
-; SKYLAKE-NEXT:    movd %mm0, %rax # sched: [1:0.50]
-; SKYLAKE-NEXT:    retq # sched: [2:1.00]
+; SKYLAKE-NEXT:    phsubd (%rdi), %mm0 # sched: [8:2.00]
+; SKYLAKE-NEXT:    movd %mm0, %rax # sched: [1:0.33]
+; SKYLAKE-NEXT:    retq # sched: [7:1.00]
 ;
 ; SKX-LABEL: test_phsubd:
 ; SKX:       # BB#0:
@@ -3108,9 +3108,9 @@ define i64 @test_phsubsw(x86_mmx %a0, x8
 ; SKYLAKE-LABEL: test_phsubsw:
 ; SKYLAKE:       # BB#0:
 ; SKYLAKE-NEXT:    phsubsw %mm1, %mm0 # sched: [3:2.00]
-; SKYLAKE-NEXT:    phsubsw (%rdi), %mm0 # sched: [3:2.00]
-; SKYLAKE-NEXT:    movd %mm0, %rax # sched: [1:0.50]
-; SKYLAKE-NEXT:    retq # sched: [2:1.00]
+; SKYLAKE-NEXT:    phsubsw (%rdi), %mm0 # sched: [8:2.00]
+; SKYLAKE-NEXT:    movd %mm0, %rax # sched: [1:0.33]
+; SKYLAKE-NEXT:    retq # sched: [7:1.00]
 ;
 ; SKX-LABEL: test_phsubsw:
 ; SKX:       # BB#0:
@@ -3179,9 +3179,9 @@ define i64 @test_phsubw(x86_mmx %a0, x86
 ; SKYLAKE-LABEL: test_phsubw:
 ; SKYLAKE:       # BB#0:
 ; SKYLAKE-NEXT:    phsubw %mm1, %mm0 # sched: [3:2.00]
-; SKYLAKE-NEXT:    phsubw (%rdi), %mm0 # sched: [3:2.00]
-; SKYLAKE-NEXT:    movd %mm0, %rax # sched: [1:0.50]
-; SKYLAKE-NEXT:    retq # sched: [2:1.00]
+; SKYLAKE-NEXT:    phsubw (%rdi), %mm0 # sched: [8:2.00]
+; SKYLAKE-NEXT:    movd %mm0, %rax # sched: [1:0.33]
+; SKYLAKE-NEXT:    retq # sched: [7:1.00]
 ;
 ; SKX-LABEL: test_phsubw:
 ; SKX:       # BB#0:
@@ -3255,10 +3255,10 @@ define i64 @test_pinsrw(x86_mmx %a0, i32
 ; SKYLAKE-LABEL: test_pinsrw:
 ; SKYLAKE:       # BB#0:
 ; SKYLAKE-NEXT:    pinsrw $0, %edi, %mm0 # sched: [2:2.00]
-; SKYLAKE-NEXT:    movswl (%rsi), %eax # sched: [1:0.50]
+; SKYLAKE-NEXT:    movswl (%rsi), %eax # sched: [5:0.50]
 ; SKYLAKE-NEXT:    pinsrw $1, %eax, %mm0 # sched: [2:2.00]
-; SKYLAKE-NEXT:    movd %mm0, %rax # sched: [1:0.50]
-; SKYLAKE-NEXT:    retq # sched: [2:1.00]
+; SKYLAKE-NEXT:    movd %mm0, %rax # sched: [1:0.33]
+; SKYLAKE-NEXT:    retq # sched: [7:1.00]
 ;
 ; SKX-LABEL: test_pinsrw:
 ; SKX:       # BB#0:
@@ -3331,9 +3331,9 @@ define i64 @test_pmaddwd(x86_mmx %a0, x8
 ; SKYLAKE-LABEL: test_pmaddwd:
 ; SKYLAKE:       # BB#0:
 ; SKYLAKE-NEXT:    pmaddwd %mm1, %mm0 # sched: [4:1.00]
-; SKYLAKE-NEXT:    pmaddwd (%rdi), %mm0 # sched: [4:1.00]
-; SKYLAKE-NEXT:    movd %mm0, %rax # sched: [1:0.50]
-; SKYLAKE-NEXT:    retq # sched: [2:1.00]
+; SKYLAKE-NEXT:    pmaddwd (%rdi), %mm0 # sched: [9:1.00]
+; SKYLAKE-NEXT:    movd %mm0, %rax # sched: [1:0.33]
+; SKYLAKE-NEXT:    retq # sched: [7:1.00]
 ;
 ; SKX-LABEL: test_pmaddwd:
 ; SKX:       # BB#0:
@@ -3402,9 +3402,9 @@ define i64 @test_pmaddubsw(x86_mmx %a0,
 ; SKYLAKE-LABEL: test_pmaddubsw:
 ; SKYLAKE:       # BB#0:
 ; SKYLAKE-NEXT:    pmaddubsw %mm1, %mm0 # sched: [4:1.00]
-; SKYLAKE-NEXT:    pmaddubsw (%rdi), %mm0 # sched: [4:1.00]
-; SKYLAKE-NEXT:    movd %mm0, %rax # sched: [1:0.50]
-; SKYLAKE-NEXT:    retq # sched: [2:1.00]
+; SKYLAKE-NEXT:    pmaddubsw (%rdi), %mm0 # sched: [9:1.00]
+; SKYLAKE-NEXT:    movd %mm0, %rax # sched: [1:0.33]
+; SKYLAKE-NEXT:    retq # sched: [7:1.00]
 ;
 ; SKX-LABEL: test_pmaddubsw:
 ; SKX:       # BB#0:
@@ -3473,9 +3473,9 @@ define i64 @test_pmaxsw(x86_mmx %a0, x86
 ; SKYLAKE-LABEL: test_pmaxsw:
 ; SKYLAKE:       # BB#0:
 ; SKYLAKE-NEXT:    pmaxsw %mm1, %mm0 # sched: [1:1.00]
-; SKYLAKE-NEXT:    pmaxsw (%rdi), %mm0 # sched: [1:1.00]
-; SKYLAKE-NEXT:    movd %mm0, %rax # sched: [1:0.50]
-; SKYLAKE-NEXT:    retq # sched: [2:1.00]
+; SKYLAKE-NEXT:    pmaxsw (%rdi), %mm0 # sched: [6:1.00]
+; SKYLAKE-NEXT:    movd %mm0, %rax # sched: [1:0.33]
+; SKYLAKE-NEXT:    retq # sched: [7:1.00]
 ;
 ; SKX-LABEL: test_pmaxsw:
 ; SKX:       # BB#0:
@@ -3544,9 +3544,9 @@ define i64 @test_pmaxub(x86_mmx %a0, x86
 ; SKYLAKE-LABEL: test_pmaxub:
 ; SKYLAKE:       # BB#0:
 ; SKYLAKE-NEXT:    pmaxub %mm1, %mm0 # sched: [1:1.00]
-; SKYLAKE-NEXT:    pmaxub (%rdi), %mm0 # sched: [1:1.00]
-; SKYLAKE-NEXT:    movd %mm0, %rax # sched: [1:0.50]
-; SKYLAKE-NEXT:    retq # sched: [2:1.00]
+; SKYLAKE-NEXT:    pmaxub (%rdi), %mm0 # sched: [6:1.00]
+; SKYLAKE-NEXT:    movd %mm0, %rax # sched: [1:0.33]
+; SKYLAKE-NEXT:    retq # sched: [7:1.00]
 ;
 ; SKX-LABEL: test_pmaxub:
 ; SKX:       # BB#0:
@@ -3615,9 +3615,9 @@ define i64 @test_pminsw(x86_mmx %a0, x86
 ; SKYLAKE-LABEL: test_pminsw:
 ; SKYLAKE:       # BB#0:
 ; SKYLAKE-NEXT:    pminsw %mm1, %mm0 # sched: [1:1.00]
-; SKYLAKE-NEXT:    pminsw (%rdi), %mm0 # sched: [1:1.00]
-; SKYLAKE-NEXT:    movd %mm0, %rax # sched: [1:0.50]
-; SKYLAKE-NEXT:    retq # sched: [2:1.00]
+; SKYLAKE-NEXT:    pminsw (%rdi), %mm0 # sched: [6:1.00]
+; SKYLAKE-NEXT:    movd %mm0, %rax # sched: [1:0.33]
+; SKYLAKE-NEXT:    retq # sched: [7:1.00]
 ;
 ; SKX-LABEL: test_pminsw:
 ; SKX:       # BB#0:
@@ -3686,9 +3686,9 @@ define i64 @test_pminub(x86_mmx %a0, x86
 ; SKYLAKE-LABEL: test_pminub:
 ; SKYLAKE:       # BB#0:
 ; SKYLAKE-NEXT:    pminub %mm1, %mm0 # sched: [1:1.00]
-; SKYLAKE-NEXT:    pminub (%rdi), %mm0 # sched: [1:1.00]
-; SKYLAKE-NEXT:    movd %mm0, %rax # sched: [1:0.50]
-; SKYLAKE-NEXT:    retq # sched: [2:1.00]
+; SKYLAKE-NEXT:    pminub (%rdi), %mm0 # sched: [6:1.00]
+; SKYLAKE-NEXT:    movd %mm0, %rax # sched: [1:0.33]
+; SKYLAKE-NEXT:    retq # sched: [7:1.00]
 ;
 ; SKX-LABEL: test_pminub:
 ; SKX:       # BB#0:
@@ -3747,7 +3747,7 @@ define i32 @test_pmovmskb(x86_mmx %a0) o
 ; SKYLAKE-LABEL: test_pmovmskb:
 ; SKYLAKE:       # BB#0:
 ; SKYLAKE-NEXT:    pmovmskb %mm0, %eax # sched: [2:1.00]
-; SKYLAKE-NEXT:    retq # sched: [2:1.00]
+; SKYLAKE-NEXT:    retq # sched: [7:1.00]
 ;
 ; SKX-LABEL: test_pmovmskb:
 ; SKX:       # BB#0:
@@ -3807,9 +3807,9 @@ define i64 @test_pmulhrsw(x86_mmx %a0, x
 ; SKYLAKE-LABEL: test_pmulhrsw:
 ; SKYLAKE:       # BB#0:
 ; SKYLAKE-NEXT:    pmulhrsw %mm1, %mm0 # sched: [4:1.00]
-; SKYLAKE-NEXT:    pmulhrsw (%rdi), %mm0 # sched: [4:1.00]
-; SKYLAKE-NEXT:    movd %mm0, %rax # sched: [1:0.50]
-; SKYLAKE-NEXT:    retq # sched: [2:1.00]
+; SKYLAKE-NEXT:    pmulhrsw (%rdi), %mm0 # sched: [9:1.00]
+; SKYLAKE-NEXT:    movd %mm0, %rax # sched: [1:0.33]
+; SKYLAKE-NEXT:    retq # sched: [7:1.00]
 ;
 ; SKX-LABEL: test_pmulhrsw:
 ; SKX:       # BB#0:
@@ -3878,9 +3878,9 @@ define i64 @test_pmulhw(x86_mmx %a0, x86
 ; SKYLAKE-LABEL: test_pmulhw:
 ; SKYLAKE:       # BB#0:
 ; SKYLAKE-NEXT:    pmulhw %mm1, %mm0 # sched: [4:1.00]
-; SKYLAKE-NEXT:    pmulhw (%rdi), %mm0 # sched: [4:1.00]
-; SKYLAKE-NEXT:    movd %mm0, %rax # sched: [1:0.50]
-; SKYLAKE-NEXT:    retq # sched: [2:1.00]
+; SKYLAKE-NEXT:    pmulhw (%rdi), %mm0 # sched: [9:1.00]
+; SKYLAKE-NEXT:    movd %mm0, %rax # sched: [1:0.33]
+; SKYLAKE-NEXT:    retq # sched: [7:1.00]
 ;
 ; SKX-LABEL: test_pmulhw:
 ; SKX:       # BB#0:
@@ -3949,9 +3949,9 @@ define i64 @test_pmulhuw(x86_mmx %a0, x8
 ; SKYLAKE-LABEL: test_pmulhuw:
 ; SKYLAKE:       # BB#0:
 ; SKYLAKE-NEXT:    pmulhuw %mm1, %mm0 # sched: [4:1.00]
-; SKYLAKE-NEXT:    pmulhuw (%rdi), %mm0 # sched: [4:1.00]
-; SKYLAKE-NEXT:    movd %mm0, %rax # sched: [1:0.50]
-; SKYLAKE-NEXT:    retq # sched: [2:1.00]
+; SKYLAKE-NEXT:    pmulhuw (%rdi), %mm0 # sched: [9:1.00]
+; SKYLAKE-NEXT:    movd %mm0, %rax # sched: [1:0.33]
+; SKYLAKE-NEXT:    retq # sched: [7:1.00]
 ;
 ; SKX-LABEL: test_pmulhuw:
 ; SKX:       # BB#0:
@@ -4020,9 +4020,9 @@ define i64 @test_pmullw(x86_mmx %a0, x86
 ; SKYLAKE-LABEL: test_pmullw:
 ; SKYLAKE:       # BB#0:
 ; SKYLAKE-NEXT:    pmullw %mm1, %mm0 # sched: [4:1.00]
-; SKYLAKE-NEXT:    pmullw (%rdi), %mm0 # sched: [4:1.00]
-; SKYLAKE-NEXT:    movd %mm0, %rax # sched: [1:0.50]
-; SKYLAKE-NEXT:    retq # sched: [2:1.00]
+; SKYLAKE-NEXT:    pmullw (%rdi), %mm0 # sched: [9:1.00]
+; SKYLAKE-NEXT:    movd %mm0, %rax # sched: [1:0.33]
+; SKYLAKE-NEXT:    retq # sched: [7:1.00]
 ;
 ; SKX-LABEL: test_pmullw:
 ; SKX:       # BB#0:
@@ -4091,9 +4091,9 @@ define i64 @test_pmuludq(x86_mmx %a0, x8
 ; SKYLAKE-LABEL: test_pmuludq:
 ; SKYLAKE:       # BB#0:
 ; SKYLAKE-NEXT:    pmuludq %mm1, %mm0 # sched: [4:1.00]
-; SKYLAKE-NEXT:    pmuludq (%rdi), %mm0 # sched: [4:1.00]
-; SKYLAKE-NEXT:    movd %mm0, %rax # sched: [1:0.50]
-; SKYLAKE-NEXT:    retq # sched: [2:1.00]
+; SKYLAKE-NEXT:    pmuludq (%rdi), %mm0 # sched: [9:1.00]
+; SKYLAKE-NEXT:    movd %mm0, %rax # sched: [1:0.33]
+; SKYLAKE-NEXT:    retq # sched: [7:1.00]
 ;
 ; SKX-LABEL: test_pmuludq:
 ; SKX:       # BB#0:
@@ -4161,10 +4161,10 @@ define i64 @test_por(x86_mmx %a0, x86_mm
 ;
 ; SKYLAKE-LABEL: test_por:
 ; SKYLAKE:       # BB#0:
-; SKYLAKE-NEXT:    por %mm1, %mm0 # sched: [1:1.00]
-; SKYLAKE-NEXT:    por (%rdi), %mm0 # sched: [1:0.50]
-; SKYLAKE-NEXT:    movd %mm0, %rax # sched: [1:0.50]
-; SKYLAKE-NEXT:    retq # sched: [2:1.00]
+; SKYLAKE-NEXT:    por %mm1, %mm0 # sched: [1:0.50]
+; SKYLAKE-NEXT:    por (%rdi), %mm0 # sched: [6:0.50]
+; SKYLAKE-NEXT:    movd %mm0, %rax # sched: [1:0.33]
+; SKYLAKE-NEXT:    retq # sched: [7:1.00]
 ;
 ; SKX-LABEL: test_por:
 ; SKX:       # BB#0:
@@ -4233,9 +4233,9 @@ define i64 @test_psadbw(x86_mmx %a0, x86
 ; SKYLAKE-LABEL: test_psadbw:
 ; SKYLAKE:       # BB#0:
 ; SKYLAKE-NEXT:    psadbw %mm1, %mm0 # sched: [3:1.00]
-; SKYLAKE-NEXT:    psadbw (%rdi), %mm0 # sched: [3:1.00]
-; SKYLAKE-NEXT:    movd %mm0, %rax # sched: [1:0.50]
-; SKYLAKE-NEXT:    retq # sched: [2:1.00]
+; SKYLAKE-NEXT:    psadbw (%rdi), %mm0 # sched: [8:1.00]
+; SKYLAKE-NEXT:    movd %mm0, %rax # sched: [1:0.33]
+; SKYLAKE-NEXT:    retq # sched: [7:1.00]
 ;
 ; SKX-LABEL: test_psadbw:
 ; SKX:       # BB#0:
@@ -4304,9 +4304,9 @@ define i64 @test_pshufb(x86_mmx %a0, x86
 ; SKYLAKE-LABEL: test_pshufb:
 ; SKYLAKE:       # BB#0:
 ; SKYLAKE-NEXT:    pshufb %mm1, %mm0 # sched: [1:1.00]
-; SKYLAKE-NEXT:    pshufb (%rdi), %mm0 # sched: [1:1.00]
-; SKYLAKE-NEXT:    movd %mm0, %rax # sched: [1:0.50]
-; SKYLAKE-NEXT:    retq # sched: [2:1.00]
+; SKYLAKE-NEXT:    pshufb (%rdi), %mm0 # sched: [6:1.00]
+; SKYLAKE-NEXT:    movd %mm0, %rax # sched: [1:0.33]
+; SKYLAKE-NEXT:    retq # sched: [7:1.00]
 ;
 ; SKX-LABEL: test_pshufb:
 ; SKX:       # BB#0:
@@ -4374,10 +4374,10 @@ define i64 @test_pshufw(x86_mmx *%a0) op
 ;
 ; SKYLAKE-LABEL: test_pshufw:
 ; SKYLAKE:       # BB#0:
-; SKYLAKE-NEXT:    pshufw $0, (%rdi), %mm0 # mm0 = mem[0,0,0,0] sched: [1:1.00]
+; SKYLAKE-NEXT:    pshufw $0, (%rdi), %mm0 # mm0 = mem[0,0,0,0] sched: [6:1.00]
 ; SKYLAKE-NEXT:    pshufw $0, %mm0, %mm0 # mm0 = mm0[0,0,0,0] sched: [1:1.00]
-; SKYLAKE-NEXT:    movd %mm0, %rax # sched: [1:0.50]
-; SKYLAKE-NEXT:    retq # sched: [2:1.00]
+; SKYLAKE-NEXT:    movd %mm0, %rax # sched: [1:0.33]
+; SKYLAKE-NEXT:    retq # sched: [7:1.00]
 ;
 ; SKX-LABEL: test_pshufw:
 ; SKX:       # BB#0:
@@ -4445,10 +4445,10 @@ define i64 @test_psignb(x86_mmx %a0, x86
 ;
 ; SKYLAKE-LABEL: test_psignb:
 ; SKYLAKE:       # BB#0:
-; SKYLAKE-NEXT:    psignb %mm1, %mm0 # sched: [1:1.00]
-; SKYLAKE-NEXT:    psignb (%rdi), %mm0 # sched: [1:0.50]
-; SKYLAKE-NEXT:    movd %mm0, %rax # sched: [1:0.50]
-; SKYLAKE-NEXT:    retq # sched: [2:1.00]
+; SKYLAKE-NEXT:    psignb %mm1, %mm0 # sched: [1:0.50]
+; SKYLAKE-NEXT:    psignb (%rdi), %mm0 # sched: [6:0.50]
+; SKYLAKE-NEXT:    movd %mm0, %rax # sched: [1:0.33]
+; SKYLAKE-NEXT:    retq # sched: [7:1.00]
 ;
 ; SKX-LABEL: test_psignb:
 ; SKX:       # BB#0:
@@ -4516,10 +4516,10 @@ define i64 @test_psignd(x86_mmx %a0, x86
 ;
 ; SKYLAKE-LABEL: test_psignd:
 ; SKYLAKE:       # BB#0:
-; SKYLAKE-NEXT:    psignd %mm1, %mm0 # sched: [1:1.00]
-; SKYLAKE-NEXT:    psignd (%rdi), %mm0 # sched: [1:0.50]
-; SKYLAKE-NEXT:    movd %mm0, %rax # sched: [1:0.50]
-; SKYLAKE-NEXT:    retq # sched: [2:1.00]
+; SKYLAKE-NEXT:    psignd %mm1, %mm0 # sched: [1:0.50]
+; SKYLAKE-NEXT:    psignd (%rdi), %mm0 # sched: [6:0.50]
+; SKYLAKE-NEXT:    movd %mm0, %rax # sched: [1:0.33]
+; SKYLAKE-NEXT:    retq # sched: [7:1.00]
 ;
 ; SKX-LABEL: test_psignd:
 ; SKX:       # BB#0:
@@ -4587,10 +4587,10 @@ define i64 @test_psignw(x86_mmx %a0, x86
 ;
 ; SKYLAKE-LABEL: test_psignw:
 ; SKYLAKE:       # BB#0:
-; SKYLAKE-NEXT:    psignw %mm1, %mm0 # sched: [1:1.00]
-; SKYLAKE-NEXT:    psignw (%rdi), %mm0 # sched: [1:0.50]
-; SKYLAKE-NEXT:    movd %mm0, %rax # sched: [1:0.50]
-; SKYLAKE-NEXT:    retq # sched: [2:1.00]
+; SKYLAKE-NEXT:    psignw %mm1, %mm0 # sched: [1:0.50]
+; SKYLAKE-NEXT:    psignw (%rdi), %mm0 # sched: [6:0.50]
+; SKYLAKE-NEXT:    movd %mm0, %rax # sched: [1:0.33]
+; SKYLAKE-NEXT:    retq # sched: [7:1.00]
 ;
 ; SKX-LABEL: test_psignw:
 ; SKX:       # BB#0:
@@ -4664,10 +4664,10 @@ define i64 @test_pslld(x86_mmx %a0, x86_
 ; SKYLAKE-LABEL: test_pslld:
 ; SKYLAKE:       # BB#0:
 ; SKYLAKE-NEXT:    pslld %mm1, %mm0 # sched: [1:1.00]
-; SKYLAKE-NEXT:    pslld (%rdi), %mm0 # sched: [1:1.00]
+; SKYLAKE-NEXT:    pslld (%rdi), %mm0 # sched: [6:1.00]
 ; SKYLAKE-NEXT:    pslld $7, %mm0 # sched: [1:1.00]
-; SKYLAKE-NEXT:    movd %mm0, %rax # sched: [1:0.50]
-; SKYLAKE-NEXT:    retq # sched: [2:1.00]
+; SKYLAKE-NEXT:    movd %mm0, %rax # sched: [1:0.33]
+; SKYLAKE-NEXT:    retq # sched: [7:1.00]
 ;
 ; SKX-LABEL: test_pslld:
 ; SKX:       # BB#0:
@@ -4746,10 +4746,10 @@ define i64 @test_psllq(x86_mmx %a0, x86_
 ; SKYLAKE-LABEL: test_psllq:
 ; SKYLAKE:       # BB#0:
 ; SKYLAKE-NEXT:    psllq %mm1, %mm0 # sched: [1:1.00]
-; SKYLAKE-NEXT:    psllq (%rdi), %mm0 # sched: [1:1.00]
+; SKYLAKE-NEXT:    psllq (%rdi), %mm0 # sched: [6:1.00]
 ; SKYLAKE-NEXT:    psllq $7, %mm0 # sched: [1:1.00]
-; SKYLAKE-NEXT:    movd %mm0, %rax # sched: [1:0.50]
-; SKYLAKE-NEXT:    retq # sched: [2:1.00]
+; SKYLAKE-NEXT:    movd %mm0, %rax # sched: [1:0.33]
+; SKYLAKE-NEXT:    retq # sched: [7:1.00]
 ;
 ; SKX-LABEL: test_psllq:
 ; SKX:       # BB#0:
@@ -4828,10 +4828,10 @@ define i64 @test_psllw(x86_mmx %a0, x86_
 ; SKYLAKE-LABEL: test_psllw:
 ; SKYLAKE:       # BB#0:
 ; SKYLAKE-NEXT:    psllw %mm1, %mm0 # sched: [1:1.00]
-; SKYLAKE-NEXT:    psllw (%rdi), %mm0 # sched: [1:1.00]
+; SKYLAKE-NEXT:    psllw (%rdi), %mm0 # sched: [6:1.00]
 ; SKYLAKE-NEXT:    psllw $7, %mm0 # sched: [1:1.00]
-; SKYLAKE-NEXT:    movd %mm0, %rax # sched: [1:0.50]
-; SKYLAKE-NEXT:    retq # sched: [2:1.00]
+; SKYLAKE-NEXT:    movd %mm0, %rax # sched: [1:0.33]
+; SKYLAKE-NEXT:    retq # sched: [7:1.00]
 ;
 ; SKX-LABEL: test_psllw:
 ; SKX:       # BB#0:
@@ -4910,10 +4910,10 @@ define i64 @test_psrad(x86_mmx %a0, x86_
 ; SKYLAKE-LABEL: test_psrad:
 ; SKYLAKE:       # BB#0:
 ; SKYLAKE-NEXT:    psrad %mm1, %mm0 # sched: [1:1.00]
-; SKYLAKE-NEXT:    psrad (%rdi), %mm0 # sched: [1:1.00]
+; SKYLAKE-NEXT:    psrad (%rdi), %mm0 # sched: [6:1.00]
 ; SKYLAKE-NEXT:    psrad $7, %mm0 # sched: [1:1.00]
-; SKYLAKE-NEXT:    movd %mm0, %rax # sched: [1:0.50]
-; SKYLAKE-NEXT:    retq # sched: [2:1.00]
+; SKYLAKE-NEXT:    movd %mm0, %rax # sched: [1:0.33]
+; SKYLAKE-NEXT:    retq # sched: [7:1.00]
 ;
 ; SKX-LABEL: test_psrad:
 ; SKX:       # BB#0:
@@ -4992,10 +4992,10 @@ define i64 @test_psraw(x86_mmx %a0, x86_
 ; SKYLAKE-LABEL: test_psraw:
 ; SKYLAKE:       # BB#0:
 ; SKYLAKE-NEXT:    psraw %mm1, %mm0 # sched: [1:1.00]
-; SKYLAKE-NEXT:    psraw (%rdi), %mm0 # sched: [1:1.00]
+; SKYLAKE-NEXT:    psraw (%rdi), %mm0 # sched: [6:1.00]
 ; SKYLAKE-NEXT:    psraw $7, %mm0 # sched: [1:1.00]
-; SKYLAKE-NEXT:    movd %mm0, %rax # sched: [1:0.50]
-; SKYLAKE-NEXT:    retq # sched: [2:1.00]
+; SKYLAKE-NEXT:    movd %mm0, %rax # sched: [1:0.33]
+; SKYLAKE-NEXT:    retq # sched: [7:1.00]
 ;
 ; SKX-LABEL: test_psraw:
 ; SKX:       # BB#0:
@@ -5074,10 +5074,10 @@ define i64 @test_psrld(x86_mmx %a0, x86_
 ; SKYLAKE-LABEL: test_psrld:
 ; SKYLAKE:       # BB#0:
 ; SKYLAKE-NEXT:    psrld %mm1, %mm0 # sched: [1:1.00]
-; SKYLAKE-NEXT:    psrld (%rdi), %mm0 # sched: [1:1.00]
+; SKYLAKE-NEXT:    psrld (%rdi), %mm0 # sched: [6:1.00]
 ; SKYLAKE-NEXT:    psrld $7, %mm0 # sched: [1:1.00]
-; SKYLAKE-NEXT:    movd %mm0, %rax # sched: [1:0.50]
-; SKYLAKE-NEXT:    retq # sched: [2:1.00]
+; SKYLAKE-NEXT:    movd %mm0, %rax # sched: [1:0.33]
+; SKYLAKE-NEXT:    retq # sched: [7:1.00]
 ;
 ; SKX-LABEL: test_psrld:
 ; SKX:       # BB#0:
@@ -5156,10 +5156,10 @@ define i64 @test_psrlq(x86_mmx %a0, x86_
 ; SKYLAKE-LABEL: test_psrlq:
 ; SKYLAKE:       # BB#0:
 ; SKYLAKE-NEXT:    psrlq %mm1, %mm0 # sched: [1:1.00]
-; SKYLAKE-NEXT:    psrlq (%rdi), %mm0 # sched: [1:1.00]
+; SKYLAKE-NEXT:    psrlq (%rdi), %mm0 # sched: [6:1.00]
 ; SKYLAKE-NEXT:    psrlq $7, %mm0 # sched: [1:1.00]
-; SKYLAKE-NEXT:    movd %mm0, %rax # sched: [1:0.50]
-; SKYLAKE-NEXT:    retq # sched: [2:1.00]
+; SKYLAKE-NEXT:    movd %mm0, %rax # sched: [1:0.33]
+; SKYLAKE-NEXT:    retq # sched: [7:1.00]
 ;
 ; SKX-LABEL: test_psrlq:
 ; SKX:       # BB#0:
@@ -5238,10 +5238,10 @@ define i64 @test_psrlw(x86_mmx %a0, x86_
 ; SKYLAKE-LABEL: test_psrlw:
 ; SKYLAKE:       # BB#0:
 ; SKYLAKE-NEXT:    psrlw %mm1, %mm0 # sched: [1:1.00]
-; SKYLAKE-NEXT:    psrlw (%rdi), %mm0 # sched: [1:1.00]
+; SKYLAKE-NEXT:    psrlw (%rdi), %mm0 # sched: [6:1.00]
 ; SKYLAKE-NEXT:    psrlw $7, %mm0 # sched: [1:1.00]
-; SKYLAKE-NEXT:    movd %mm0, %rax # sched: [1:0.50]
-; SKYLAKE-NEXT:    retq # sched: [2:1.00]
+; SKYLAKE-NEXT:    movd %mm0, %rax # sched: [1:0.33]
+; SKYLAKE-NEXT:    retq # sched: [7:1.00]
 ;
 ; SKX-LABEL: test_psrlw:
 ; SKX:       # BB#0:
@@ -5314,10 +5314,10 @@ define i64 @test_psubb(x86_mmx %a0, x86_
 ;
 ; SKYLAKE-LABEL: test_psubb:
 ; SKYLAKE:       # BB#0:
-; SKYLAKE-NEXT:    psubb %mm1, %mm0 # sched: [1:1.00]
-; SKYLAKE-NEXT:    psubb (%rdi), %mm0 # sched: [1:0.50]
-; SKYLAKE-NEXT:    movd %mm0, %rax # sched: [1:0.50]
-; SKYLAKE-NEXT:    retq # sched: [2:1.00]
+; SKYLAKE-NEXT:    psubb %mm1, %mm0 # sched: [1:0.50]
+; SKYLAKE-NEXT:    psubb (%rdi), %mm0 # sched: [6:0.50]
+; SKYLAKE-NEXT:    movd %mm0, %rax # sched: [1:0.33]
+; SKYLAKE-NEXT:    retq # sched: [7:1.00]
 ;
 ; SKX-LABEL: test_psubb:
 ; SKX:       # BB#0:
@@ -5385,10 +5385,10 @@ define i64 @test_psubd(x86_mmx %a0, x86_
 ;
 ; SKYLAKE-LABEL: test_psubd:
 ; SKYLAKE:       # BB#0:
-; SKYLAKE-NEXT:    psubd %mm1, %mm0 # sched: [1:1.00]
-; SKYLAKE-NEXT:    psubd (%rdi), %mm0 # sched: [1:0.50]
-; SKYLAKE-NEXT:    movd %mm0, %rax # sched: [1:0.50]
-; SKYLAKE-NEXT:    retq # sched: [2:1.00]
+; SKYLAKE-NEXT:    psubd %mm1, %mm0 # sched: [1:0.50]
+; SKYLAKE-NEXT:    psubd (%rdi), %mm0 # sched: [6:0.50]
+; SKYLAKE-NEXT:    movd %mm0, %rax # sched: [1:0.33]
+; SKYLAKE-NEXT:    retq # sched: [7:1.00]
 ;
 ; SKX-LABEL: test_psubd:
 ; SKX:       # BB#0:
@@ -5456,10 +5456,10 @@ define i64 @test_psubq(x86_mmx %a0, x86_
 ;
 ; SKYLAKE-LABEL: test_psubq:
 ; SKYLAKE:       # BB#0:
-; SKYLAKE-NEXT:    psubq %mm1, %mm0 # sched: [1:1.00]
-; SKYLAKE-NEXT:    psubq (%rdi), %mm0 # sched: [1:0.50]
-; SKYLAKE-NEXT:    movd %mm0, %rax # sched: [1:0.50]
-; SKYLAKE-NEXT:    retq # sched: [2:1.00]
+; SKYLAKE-NEXT:    psubq %mm1, %mm0 # sched: [1:0.50]
+; SKYLAKE-NEXT:    psubq (%rdi), %mm0 # sched: [6:0.50]
+; SKYLAKE-NEXT:    movd %mm0, %rax # sched: [1:0.33]
+; SKYLAKE-NEXT:    retq # sched: [7:1.00]
 ;
 ; SKX-LABEL: test_psubq:
 ; SKX:       # BB#0:
@@ -5528,9 +5528,9 @@ define i64 @test_psubsb(x86_mmx %a0, x86
 ; SKYLAKE-LABEL: test_psubsb:
 ; SKYLAKE:       # BB#0:
 ; SKYLAKE-NEXT:    psubsb %mm1, %mm0 # sched: [1:1.00]
-; SKYLAKE-NEXT:    psubsb (%rdi), %mm0 # sched: [1:1.00]
-; SKYLAKE-NEXT:    movd %mm0, %rax # sched: [1:0.50]
-; SKYLAKE-NEXT:    retq # sched: [2:1.00]
+; SKYLAKE-NEXT:    psubsb (%rdi), %mm0 # sched: [6:1.00]
+; SKYLAKE-NEXT:    movd %mm0, %rax # sched: [1:0.33]
+; SKYLAKE-NEXT:    retq # sched: [7:1.00]
 ;
 ; SKX-LABEL: test_psubsb:
 ; SKX:       # BB#0:
@@ -5599,9 +5599,9 @@ define i64 @test_psubsw(x86_mmx %a0, x86
 ; SKYLAKE-LABEL: test_psubsw:
 ; SKYLAKE:       # BB#0:
 ; SKYLAKE-NEXT:    psubsw %mm1, %mm0 # sched: [1:1.00]
-; SKYLAKE-NEXT:    psubsw (%rdi), %mm0 # sched: [1:1.00]
-; SKYLAKE-NEXT:    movd %mm0, %rax # sched: [1:0.50]
-; SKYLAKE-NEXT:    retq # sched: [2:1.00]
+; SKYLAKE-NEXT:    psubsw (%rdi), %mm0 # sched: [6:1.00]
+; SKYLAKE-NEXT:    movd %mm0, %rax # sched: [1:0.33]
+; SKYLAKE-NEXT:    retq # sched: [7:1.00]
 ;
 ; SKX-LABEL: test_psubsw:
 ; SKX:       # BB#0:
@@ -5670,9 +5670,9 @@ define i64 @test_psubusb(x86_mmx %a0, x8
 ; SKYLAKE-LABEL: test_psubusb:
 ; SKYLAKE:       # BB#0:
 ; SKYLAKE-NEXT:    psubusb %mm1, %mm0 # sched: [1:1.00]
-; SKYLAKE-NEXT:    psubusb (%rdi), %mm0 # sched: [1:1.00]
-; SKYLAKE-NEXT:    movd %mm0, %rax # sched: [1:0.50]
-; SKYLAKE-NEXT:    retq # sched: [2:1.00]
+; SKYLAKE-NEXT:    psubusb (%rdi), %mm0 # sched: [6:1.00]
+; SKYLAKE-NEXT:    movd %mm0, %rax # sched: [1:0.33]
+; SKYLAKE-NEXT:    retq # sched: [7:1.00]
 ;
 ; SKX-LABEL: test_psubusb:
 ; SKX:       # BB#0:
@@ -5741,9 +5741,9 @@ define i64 @test_psubusw(x86_mmx %a0, x8
 ; SKYLAKE-LABEL: test_psubusw:
 ; SKYLAKE:       # BB#0:
 ; SKYLAKE-NEXT:    psubusw %mm1, %mm0 # sched: [1:1.00]
-; SKYLAKE-NEXT:    psubusw (%rdi), %mm0 # sched: [1:1.00]
-; SKYLAKE-NEXT:    movd %mm0, %rax # sched: [1:0.50]
-; SKYLAKE-NEXT:    retq # sched: [2:1.00]
+; SKYLAKE-NEXT:    psubusw (%rdi), %mm0 # sched: [6:1.00]
+; SKYLAKE-NEXT:    movd %mm0, %rax # sched: [1:0.33]
+; SKYLAKE-NEXT:    retq # sched: [7:1.00]
 ;
 ; SKX-LABEL: test_psubusw:
 ; SKX:       # BB#0:
@@ -5811,10 +5811,10 @@ define i64 @test_psubw(x86_mmx %a0, x86_
 ;
 ; SKYLAKE-LABEL: test_psubw:
 ; SKYLAKE:       # BB#0:
-; SKYLAKE-NEXT:    psubw %mm1, %mm0 # sched: [1:1.00]
-; SKYLAKE-NEXT:    psubw (%rdi), %mm0 # sched: [1:0.50]
-; SKYLAKE-NEXT:    movd %mm0, %rax # sched: [1:0.50]
-; SKYLAKE-NEXT:    retq # sched: [2:1.00]
+; SKYLAKE-NEXT:    psubw %mm1, %mm0 # sched: [1:0.50]
+; SKYLAKE-NEXT:    psubw (%rdi), %mm0 # sched: [6:0.50]
+; SKYLAKE-NEXT:    movd %mm0, %rax # sched: [1:0.33]
+; SKYLAKE-NEXT:    retq # sched: [7:1.00]
 ;
 ; SKX-LABEL: test_psubw:
 ; SKX:       # BB#0:
@@ -5883,9 +5883,9 @@ define i64 @test_punpckhbw(x86_mmx %a0,
 ; SKYLAKE-LABEL: test_punpckhbw:
 ; SKYLAKE:       # BB#0:
 ; SKYLAKE-NEXT:    punpckhbw %mm1, %mm0 # mm0 = mm0[4],mm1[4],mm0[5],mm1[5],mm0[6],mm1[6],mm0[7],mm1[7] sched: [1:1.00]
-; SKYLAKE-NEXT:    punpckhbw (%rdi), %mm0 # mm0 = mm0[4],mem[4],mm0[5],mem[5],mm0[6],mem[6],mm0[7],mem[7] sched: [1:1.00]
-; SKYLAKE-NEXT:    movd %mm0, %rax # sched: [1:0.50]
-; SKYLAKE-NEXT:    retq # sched: [2:1.00]
+; SKYLAKE-NEXT:    punpckhbw (%rdi), %mm0 # mm0 = mm0[4],mem[4],mm0[5],mem[5],mm0[6],mem[6],mm0[7],mem[7] sched: [6:1.00]
+; SKYLAKE-NEXT:    movd %mm0, %rax # sched: [1:0.33]
+; SKYLAKE-NEXT:    retq # sched: [7:1.00]
 ;
 ; SKX-LABEL: test_punpckhbw:
 ; SKX:       # BB#0:
@@ -5954,9 +5954,9 @@ define i64 @test_punpckhdq(x86_mmx %a0,
 ; SKYLAKE-LABEL: test_punpckhdq:
 ; SKYLAKE:       # BB#0:
 ; SKYLAKE-NEXT:    punpckhdq %mm1, %mm0 # mm0 = mm0[1],mm1[1] sched: [1:1.00]
-; SKYLAKE-NEXT:    punpckhdq (%rdi), %mm0 # mm0 = mm0[1],mem[1] sched: [1:1.00]
-; SKYLAKE-NEXT:    movd %mm0, %rax # sched: [1:0.50]
-; SKYLAKE-NEXT:    retq # sched: [2:1.00]
+; SKYLAKE-NEXT:    punpckhdq (%rdi), %mm0 # mm0 = mm0[1],mem[1] sched: [6:1.00]
+; SKYLAKE-NEXT:    movd %mm0, %rax # sched: [1:0.33]
+; SKYLAKE-NEXT:    retq # sched: [7:1.00]
 ;
 ; SKX-LABEL: test_punpckhdq:
 ; SKX:       # BB#0:
@@ -6025,9 +6025,9 @@ define i64 @test_punpckhwd(x86_mmx %a0,
 ; SKYLAKE-LABEL: test_punpckhwd:
 ; SKYLAKE:       # BB#0:
 ; SKYLAKE-NEXT:    punpckhwd %mm1, %mm0 # mm0 = mm0[2],mm1[2],mm0[3],mm1[3] sched: [1:1.00]
-; SKYLAKE-NEXT:    punpckhwd (%rdi), %mm0 # mm0 = mm0[2],mem[2],mm0[3],mem[3] sched: [1:1.00]
-; SKYLAKE-NEXT:    movd %mm0, %rax # sched: [1:0.50]
-; SKYLAKE-NEXT:    retq # sched: [2:1.00]
+; SKYLAKE-NEXT:    punpckhwd (%rdi), %mm0 # mm0 = mm0[2],mem[2],mm0[3],mem[3] sched: [6:1.00]
+; SKYLAKE-NEXT:    movd %mm0, %rax # sched: [1:0.33]
+; SKYLAKE-NEXT:    retq # sched: [7:1.00]
 ;
 ; SKX-LABEL: test_punpckhwd:
 ; SKX:       # BB#0:
@@ -6096,9 +6096,9 @@ define i64 @test_punpcklbw(x86_mmx %a0,
 ; SKYLAKE-LABEL: test_punpcklbw:
 ; SKYLAKE:       # BB#0:
 ; SKYLAKE-NEXT:    punpcklbw %mm1, %mm0 # mm0 = mm0[0],mm1[0],mm0[1],mm1[1],mm0[2],mm1[2],mm0[3],mm1[3] sched: [1:1.00]
-; SKYLAKE-NEXT:    punpcklbw (%rdi), %mm0 # mm0 = mm0[0],mem[0],mm0[1],mem[1],mm0[2],mem[2],mm0[3],mem[3] sched: [1:1.00]
-; SKYLAKE-NEXT:    movd %mm0, %rax # sched: [1:0.50]
-; SKYLAKE-NEXT:    retq # sched: [2:1.00]
+; SKYLAKE-NEXT:    punpcklbw (%rdi), %mm0 # mm0 = mm0[0],mem[0],mm0[1],mem[1],mm0[2],mem[2],mm0[3],mem[3] sched: [6:1.00]
+; SKYLAKE-NEXT:    movd %mm0, %rax # sched: [1:0.33]
+; SKYLAKE-NEXT:    retq # sched: [7:1.00]
 ;
 ; SKX-LABEL: test_punpcklbw:
 ; SKX:       # BB#0:
@@ -6167,9 +6167,9 @@ define i64 @test_punpckldq(x86_mmx %a0,
 ; SKYLAKE-LABEL: test_punpckldq:
 ; SKYLAKE:       # BB#0:
 ; SKYLAKE-NEXT:    punpckldq %mm1, %mm0 # mm0 = mm0[0],mm1[0] sched: [1:1.00]
-; SKYLAKE-NEXT:    punpckldq (%rdi), %mm0 # mm0 = mm0[0],mem[0] sched: [1:1.00]
-; SKYLAKE-NEXT:    movd %mm0, %rax # sched: [1:0.50]
-; SKYLAKE-NEXT:    retq # sched: [2:1.00]
+; SKYLAKE-NEXT:    punpckldq (%rdi), %mm0 # mm0 = mm0[0],mem[0] sched: [6:1.00]
+; SKYLAKE-NEXT:    movd %mm0, %rax # sched: [1:0.33]
+; SKYLAKE-NEXT:    retq # sched: [7:1.00]
 ;
 ; SKX-LABEL: test_punpckldq:
 ; SKX:       # BB#0:
@@ -6238,9 +6238,9 @@ define i64 @test_punpcklwd(x86_mmx %a0,
 ; SKYLAKE-LABEL: test_punpcklwd:
 ; SKYLAKE:       # BB#0:
 ; SKYLAKE-NEXT:    punpcklwd %mm1, %mm0 # mm0 = mm0[0],mm1[0],mm0[1],mm1[1] sched: [1:1.00]
-; SKYLAKE-NEXT:    punpcklwd (%rdi), %mm0 # mm0 = mm0[0],mem[0],mm0[1],mem[1] sched: [1:1.00]
-; SKYLAKE-NEXT:    movd %mm0, %rax # sched: [1:0.50]
-; SKYLAKE-NEXT:    retq # sched: [2:1.00]
+; SKYLAKE-NEXT:    punpcklwd (%rdi), %mm0 # mm0 = mm0[0],mem[0],mm0[1],mem[1] sched: [6:1.00]
+; SKYLAKE-NEXT:    movd %mm0, %rax # sched: [1:0.33]
+; SKYLAKE-NEXT:    retq # sched: [7:1.00]
 ;
 ; SKX-LABEL: test_punpcklwd:
 ; SKX:       # BB#0:
@@ -6308,10 +6308,10 @@ define i64 @test_pxor(x86_mmx %a0, x86_m
 ;
 ; SKYLAKE-LABEL: test_pxor:
 ; SKYLAKE:       # BB#0:
-; SKYLAKE-NEXT:    pxor %mm1, %mm0 # sched: [1:1.00]
-; SKYLAKE-NEXT:    pxor (%rdi), %mm0 # sched: [1:0.50]
-; SKYLAKE-NEXT:    movd %mm0, %rax # sched: [1:0.50]
-; SKYLAKE-NEXT:    retq # sched: [2:1.00]
+; SKYLAKE-NEXT:    pxor %mm1, %mm0 # sched: [1:0.50]
+; SKYLAKE-NEXT:    pxor (%rdi), %mm0 # sched: [6:0.50]
+; SKYLAKE-NEXT:    movd %mm0, %rax # sched: [1:0.33]
+; SKYLAKE-NEXT:    retq # sched: [7:1.00]
 ;
 ; SKX-LABEL: test_pxor:
 ; SKX:       # BB#0:




More information about the llvm-commits mailing list